GAE開発の落とし穴
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
ブックマークされました!
ブックマークがエラーになりました。もう一度お願いします。
作者 Dionysios G. Synodinos , 翻訳者 福田 寅成 投稿日 2009年6月8日
Google は “世界の情報を体系付け、どこからもアクセスし利用できるようにする”というミッションを実現する新たな2つのツールを発表した。一つは高度なクライアントサイドアプリケーションの普及促進を目的とする Chrome ブラウザのバージョン2.0で、もう一つは Wave である。 Wave は Web 上でのコミュニケーションとコラボレーションの新しい環境である。
2008年9月1日にGoogle はオープンソースの新しいブラウザである Google Chrome を発表した。Web でのメジャープレイヤである Google による新しいウェブブラウザの導入は多くの注目や分析、予言を生み出した。
Google はフィードバックや新機能のリクエストの収集を開始し、それらのいくつかは3月にリリースされた最初のベータバージョンで実現されている。
数日前に発表されたバージョン2.0では, Google は300以上のバグを修正したと報告し、さらに多数の改善を追加した:
すぐに確認できる改善点の幾つかを挙げます
新しいタブページ: ユーザから最も多く寄せられた要望は「新しいタブ」ページからサムネイルを削除する機能でした。これからは「よくアクセスするページ」から恥ずかしいゴシップブログを隠すことが出来るようになります。
フルスクリーンモード: Google Chrome でプレゼンテーションを行ったり大きなサイズのビデオを見る時、コンテンツのすみからすみまで見たいと思うでしょう。これからはF11をクリックするかツールメニューのオプションを選ぶことによってタイトルバーやブラウザウィンドウ以外の部分を隠すことが出来るようになります。
フォームオートフィル: 何度もフォームに情報を入力することは退屈な行為です。フォームオートフィルは同じフォームに以前入力した情報を自動的に表示しフォームの入力を助けてくれます。入力情報をクリアしたいと思ったときはいつでもツールメニューから簡単に行うことが出来ます。
これら改善点に加え、ユーザがハイスケーラブルで高度な JavaScript アプリケーションを実行できるようなプラットフォームを Chrome は提供しようとしている。ここで V8 JavaScript エンジンが重要な役割を演じている
V8 JavaScript エンジンはスケーラビリティを中心に設計されています。JavaScript の世界ではスケーラビリティとは何を意味していて、なぜ昨今のウェブアプリケーションにとって重要なポイントなのでしょうか?
ウェブアプリケーションはより複雑なものになってきています。複雑さが増すにつれ JavaScript のコードとオブジェクトはますます増加してきています。オブジェクトの数が増加するにつれ JavaScript エンジンのメモリー管理システムへの負荷はさらに増加しています。メモリー管理システムはオブジェクトの割り当てや再利用をより効率的に扱えるようにスケールされなければいけません。エンジンが大きなオブジェクトヒープを扱えるようにスケールされない場合、大きなウェブアプリケーションを実行するとパフォーマンスが劣化してしまいます。
JavaScript のスケーラビリティが Google の検討課題でとても重要である理由の一つは、数日前に発表された新しいコミュニケーションとコラボレーションのプラットフォームである Google Wave だ
"Wave" は会話やドキュメントと同じもので、リッチテキストや写真、ビデオ、地図などを用いてコミュニケーションしたり仕事をしたりできるようになります。
どのように動作しているのでしょう。Google Wave 上ではあなたは Wave を作成し、それに人々を追加します。あなたの Wave 上のすべての人はリッチテキストや写真、ガジェット、さらにはウェブの他のソースからのフィードですら利用することができます。Wave に返信を挿入したり、Wave を直接編集したりできます。それらは(他の人と)同時に実行することが可能なリッチテキスト編集機能で、あなたと一緒にコラボレーションしている人が Wave 上でタイピングしている事をほとんどすぐにあなたのスクリーンで見ることができる機能です。あなたは"プレイバック"を利用して Wave を巻き戻したりして、それがどのように編集されたかを確認することができます。
アーキテクトの視点から見ると、Google Wave には3つのレイヤがある。プロダクト、プラットフォーム、そしてプロトコルだ
- Google Wave プロダクト(開発者プレビューで利用可能)は Wave にアクセスし編集することが可能になるウェブアプリケーションです。HTML 5 アプリケーションで、Google Web Toolkit 上で構築されています。リッチテキストエディタやデスクトップドラッグアンドドロップのような機能を持っています。(例えば、写真を Wave へ直接ドラッグすることができるようになります)
- Google Wave は豊富なオープンAPIを持ったプラットフォームと考えることもできます。これにより開発者は Wave を他のウェブサービスに貼り付けたり、 Wave 内で動作するような新しい拡張を構築することができます。
- Google Wave プロトコルは Wave を保存する基本的なフォーマットであり、Wave を共有する手段です。さらに"ライブ"同時並行実行制御を含んでいます。これにより編集内容がユーザやサービスをに対して即座に反映されるようになります。プロトコルはオープン Federation 向けに設計されています。そのため例えば Wave サービス同士や Google Wave サービスを相互に同時実行することができます。プロトコルの採用を促進するために我々は Google Wave のコードをオープンソースにする予定です。
開発者はGoogle Wave APIに関してはGoogle Wave Developer ブログでより多くの情報を入手することができる。また、Google Wave Federation Protocolに関して学びたい場合はGoogle Code blogをチェックすると良い。執筆の時点ではJavaクライアントライブラリのみ利用することができるが、Python 向けライブラリも計画されている。
常にオープンであり“悪でない”という Google の理念に沿ったこの新しいプラットフォームのキーとなる要素の一つは、SMTPサーバを運営するように誰もが Wave プロバイダになることができ、Wave サービスを構築することができ、相互運用することができるように設計されていることである
我々はこのプラットフォームを広めたいと考えています。そのために我々は Wave プロバイダー間で Wave を共有する基本的なネットワークプロトコルである Google Wave Federation Protocol の最初のドラフトをまとめました。
そう、Wave プロバイダなんです。誰でも Wave サーバを構築し、相互運用し、SMTPサーバを運営するようにできるのです。我々の目標は情報をどのように共有するかを改善し続けるということであり、Wave プロトコルは広くコミュニティに対してオープンです。
これはまさに始まりです。潜在的な Wave プロバイダに始めてもらうための我々の計画はオープンソースで製品品質な Google Wave クライアントとサーバのリファレンス実装をリリースすることです。さらには、ユーザが Wave にアクセスするようになる前までには オープンなフェデレーションエンドポイントを提供する計画です。
JavaScript、オープンウェブ、ウェブブラウザー、そしてGoogleに関しての情報は InfoQ で入手することができる。
【ネクストスケープ】.NET、C#のアプリケーション開発者募集
【豆蔵】「オブジェクト指向を現場で活かすリファクタリング入門」新規講座キャンペーン中
Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します
去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。
Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。
GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式
本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。
前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。
Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。
スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。
No comments
スレッド表示 返信