クラウドコンピューティング ~ EC2、Mosso、GoGrid
クラウドコンピューティングのプロバイダーであるEC2、Mosso、GoGridの新しいユーザーエクスペリエンスと、それぞれの機能の違いについて学びます。

作者 Ganesh Prasad, Peter Svensson, 翻訳者 渡辺 裕之 投稿日 2008年7月15日 午後9時31分
私達はプレゼンテーション(層の)技術に関する現時点での見解を徹底的に見直さなければなりません。というのは、何年にも渡ってさまざまな制約が加えられていたことでIT業界では正道から外れたデザイン・パターンがまるで当然であるかのように考えられているからです。このことが現代においてもよいアプリケーションを作ることの大きな障害となっているのです。この記事では、(静的なWebサイトの対照としての)Webアプリケーションが特徴となるシン・クライアントのパラダイムは"その場しのぎの解決策"であり捨て去らなければならないと考えています。なぜこのようなことを言うのか理解していただくためにインターネットが広まり始めた90年代半ばに立ち戻りましょう。
MySQLならNRI ~ MySQL Special Days ~
InfoQ Japanはコンポーネントスクエアが運営しています
セキュアなIT基盤と付帯運用サービス”SecureOnline”
インターネットが一般に広まるに連れ、ほぼ同時に2つの相反する発展がありました。(1)アプリケーションを少ない労力で簡単に配布できるという意味でユビキタスなクライアント・サイドの"アプリケーション・プラットフォーム"としてのブラウザの圧倒的な重要さと(2)同じプラットフォーム(ブラウザ)から多くの可能性を奪ったベンダー依存による分裂です。後述するNetscape社とMicrosoft社によるブラウザ戦争によって(リンク)、2つの製品群はwebのレンダリングとJavaScriptコードの実行において全く異なる挙動をとるようになってしまったのです。webアプリケーションがもう片方のブラウザで動かないということが頭にくるくらい一般的でした。一方ではインターネットを通してユーザにアプリケーションを配布するという要求が増大し、もう一方ではその配布先が信頼性の低いプラットフォームであるという状況に直面して(IT)業界にいったい何ができたでしょう。
最も一般的なアプローチはブラウザの最小限の機能―シンプルな形式のwebページのレンダリング、ハイパーリンク、フォームの送信、などなど―だけに依存するということでした。そして全てのプレゼンテーション・ロジックをサービス提供側がコントロールできるシステムの一部―Webサーバへと移動したのです。ビジネス・ロジックとプレゼンテーション・ロジックを一つのプラットフォームに融合させる複雑さを補助しようと多くのサーバ・サイドのwebフレーム・ワークが登場し始めました。これらのフレーム・ワークの中ではStrutsが初期の成功例になるでしょう。今日では実に50以上ものフレーム・ワークが存在していて、それぞれが他の製品に対する優位性を主張しています。
しかし、このようなフレーム・ワークの影響については置いておきましょう。(フレーム・ワークは)確かにサーバ・サイドのプレゼンテーション・ロジックに秩序をもたらし合理化しましたが、それはただその場しのぎの解決策を不滅の物にしただけなのです。プレゼンテーション層の凝集度は低いです。なぜならプレゼンテーションに関する責務は、アーキテクチャに無意味な筋違いの理由により、ブラウザとwebサーバに分断されているからです。同時に、サーバ・サイドにあるプレゼンテーション・ロジックとビジネス・ロジックの結合度は高いのです。とりわけ最近のwebフレーム・ワークはサーバ・サイドのテンプレート、設定ファイル、アノテーションといった様々な要素からクライアント(へ渡す情報)をサーバ上で生成しています。これによって本来分かり易いはずの(アプリケーション)構築が複雑になっているのです。今となってはwebフレーム・ワークは不要だというだけではありません、それ(フレーム・ワーク)がどのシステムでも標準のコンポーネントとして容認されていることが、より良いアプリケーション構築をしようという私達の努力の足かせとなっているのです。
歴史を打ち破る開発方法が直近だけで少なくても3つあります。
一般的なアーキテクチャ・モデルであるSOFEA(サービス指向フロント・エンド・アーキテクチャ)を通してこれら全ての進化の恩恵に授かることができます。面白いのは、シン・クライアントやwebモデルの陰に隠れていた、リッチ・クライアントという古いパラダイムがその両者を上回るよいアーキテクチャへの道筋を示しているということです。
新しいモデルの基本的な原理はプレゼンテーションの関心事をビジネス・ロジックの関心事から切り離すことです。ビジネス・ロジックの関心事についてはSOAの原理の範疇にあります。従ってプレゼンテーション層は、明確に定義されたサービス・インタフェースを通してサービス指向のビジネス層と適合していなければなりません。SOAをアーキテクチャ的に離れた2つの領域(それがマーケティングや金融であろうと、"レイヤ"という技術的な領域であろうとも)間における明確に設計された構造化データの交換であると捉えると、プレゼンテーション層がこのような原理から除外される理由がありません。
このような適合性における重要な要素の一つはアプリケーションの入口から出口までデータの完全性に配慮することです。これはつまり、最近の一般的なサービス提供のパラダイムであるSOAP/WS-*やRESTを利用して、XMLをXMLペイロードとして扱えなければならないことを意味します。
上の図はこのアーキテクチャにおける重要な物理コンポーネントと論理プロセスの関係を示しています。アプリケーション・コンテナはクライアント・サイドのアプリケーションが稼働するプラットフォームに対する一般的な呼称です。これは決してサーバ・サイドのコンポーネントではないというのが重要です。アプリケーションとはこのプラットフォーム上で稼動するコードのことを指します。アプリケーションはアプリケーション・コンテナの一部ではありません。
他の場所から提供され稼動前のある時点でアプリケーション・プラットフォームにロードされるのです。ダウンロード・サーバというのは実行前にローカル環境にインストールするためのアプリケーションをクライアント・プラットフォームに配信するコンポーネントを指す用語です。サービス・インタフェースはサービス層の標準的なインタフェースです。サービス層はプレゼンテーション層とビジネス・ロジック層でXMLベースのドキュメントを交換する一般的な仕組みを提供します。
クライアント側で行われる基本的な処理が三つあります。アプリケーション・ダウンロードとは起動前にアプリケーションをアプリケーション・コンテナ上に取得する処理のことです。普通、この処理は一回のみになりますが、実行時にこの処理を行うこともできます。必要に応じてダウンロード・サーバから表示画面をロードするのです。しかし、この後半の方法で設計されたアプリケーションは画面表示フローの制御をサーバー・サイドのwebフレーム・ワークで行うという伝統的なwebアプリケーションのようには振舞いません。画面やページをロードしたクライアント・アプケーションが引き続きフローも制御することになります。プレゼンテーション・フローはどの画面(もしくはチャンネル固有の生成物)がユーザに対して表示されるかというロジックを表しています。データ交換は(Schema定義に準拠したXML文書)データをプレゼンテーション層とサービス層の間で交換する
このモデルの背後にあるメイン・テーマは直行する関心事の分離です。このことは過去常にに求められてきましたが、クライアント・プラットフォームの制限のせいでこれまで一度もなし得ませんでした。ところがやっとアプリケーションは本来あるべき姿で実装できる状況に変わったのです。ビジネス・ロジックが取り去られることによりプレゼンテーション層はより小さくなり、凝集度が高まり、分かりやすくそして保守性が高まるのです。同じようにプレゼンテーション・ロジックが除かれることでサーバ・サイドにも利点があります。
.Ajaxフレームワーク(Dojo、 jQuery、 Ext、 など)、GWT、TIBCO GI、XForms、Mozilla XUL、Microsoft Silverlight/XAML、Java WebStart、JavaFX Script、Adobe Flex、OpenLaszlo、など。
このモデルの成果は、もはや古く頑なに守られている妥協の産物を作ることはないということについて特に新しいことを紹介してはいません。どのようにして新しい技術によってアプリケーションが本来あるべき姿で構築できるようになるのかということを示そうとしました。これは遂に到達したパラダイムなのです。
原文はこちらです:http://www.infoq.com/jp/articles/rationalizing-presentation-tier
クラウドコンピューティングのプロバイダーであるEC2、Mosso、GoGridの新しいユーザーエクスペリエンスと、それぞれの機能の違いについて学びます。
パート2では、ベンチマークの結果を検証するために用いられるテクニックについてさらに深く見ていきたいと思います。最後に、「なぜプロセッサが異なるとロックのコストも大きく異なるのか」と言う真の疑問に答えます。
本稿では、Stefan Tilkov氏が「RESTful」な設計であると主張するアプリケーションに見受けられる最も一般的なアンチパターンのいくつかについて説明し、それらを避けるための方法を提案しています。
Sven Efftinge氏、Peter Friese氏とJan Köhnlein氏が、MDDを取り入れて成功した経験から、ベストプラクティスの解説を行います。
Our panel of leading experts explores some of the challenges and thought processes that go into making their apps as scalable and performant as possible.
この記事は、Spring 2.5で導入されたアノテーションを探究する3部作の第2弾です。Web層におけるアノテーションのサポートを扱います。最後の論文では、統合と検査で利用できる追加機能を説明する予定です。
私は「浴衣」を着てパーティーに参加したことで、たくさん声を掛けていただけました。 そこで感じたことは、このカンファレンスが人との繋がりを生み出し、また言葉の壁を越えて積極的に交流する場所であることです。民族衣装はそれらを助けてくれるものでした。きっとこの交流が、新たなムーブメントをアジア圏の仲間たちにも与えてくれると確信しています。
No comments
返信