1. HOME »
  2. ITA Issue

ITA Issue Article

ソーシャルブックマークに登録 : Yahoo!ブックマークに登録 はてなブックマークに登録 del.icio.usに登録 newsing it!に登録 Buzzurlにブックマーク livedoorクリップに登録 Choix!にブックマーク イザ!ブックマーク

print 印刷用ページの表示

ITA Issue 連載 : WebとSOAを融合したWeb Oriented Architectureの世界

Project Zeroで試すアジャイルなWebアプリケーション開発

第1回 Project Zero誕生の背景

「Project Zero」は、現在IBMが開発を進めている、徹底的にシンプルさを追求し、アジャイルな開発スタイルの実現を目指したWebアプリケーション・プラットフォームである。今日普及しつつあるサービス・マッシュアップやスクリプト言語による開発手法を取り入れ、既存のJavaアプリケーション資産も生かしながらアプリケーションを迅速に組み立て/提供できる環境を指向している。本連載では、サービス指向時代の新たなアプリケーション開発環境/開発手法の一例として、このProject Zeroの概要や同プラットフォームにおけるアプリケーション開発スタイルなどを紹介していく。初回となる今回は、Project Zeroが誕生した背景の説明として、今日のWebアプリケーション開発を巡る状況を概観してみたい。

2008年7月28日更新

text ●  樽澤 広亨 日本IBM

WebとSOAを融合したシンプルかつアジャイルなWebアプリケーション・プラットフォームを目指して

 今日、IBMが進めている実験的なプロジェクトの1つに「Project Zero」がある。これは、シンプルさを徹底的に追求し、アジャイルな開発スタイルの実現を目指したWebアプリケーション・プラットフォームだ。Webアプリケーション・サーバとしてだけでなく、WebとSOAを融合した「WOA(Web Oriented Architecture)」の中核を担うプラットフォームとしても重要なポジションを担う。

 現在IBMでは、バイナリ・コードに加えてソース・コードまで公開するというオープンな開発プロセスをとり、世界中の開発者のフィードバックを受けながらProject Zeroの開発を進めている。本連載は、筆者も開発に参加しているこのProject Zeroがどのようなものなのか、どういった開発スタイル/システム・アーキクチャを実現するものなのかの解説を通じて、読者にWebアプリケーション開発の新しいスタイルを提示してみたい。

 なお、Project Zeroの開発作業は現在も進行中だが、今年5月、その商用製品版として「IBM WebSphere sMash V1.0」を発表した。本連載では、このWebSphere sMashの無償版であるIBM WebSphere sMash DE(Developer Edition)を用いて、具体的な開発作業の説明を行う。

 連載初回となる今回は、まずProject Zeroが誕生した背景を説明する。Webアプリケーション開発の分野は今日、Web 2.0技術などの台頭によって新たなる世界へと突入しようとしている。その流れを押さえることで、Project Zeroのねらいや目指す方向性がよりスムーズにご理解いただけるはずだ。

Project Zero誕生の背景――RESTful Webサービスの台頭

 Webを取り込んだアプリケーション・プラットフォームとして現在広く普及しているものと言えばJava EE(Java Platform, Enterprise Edition)であろう。Java EEは、その豊富な機能やAPI、そして約10年間にわたって蓄積されてきた実績により、今日、企業の基幹システム構築に欠かせない存在となっている。

 ただし、そんなJava EEにも課題がある。豊富な機能を提供するということは、言いかえれば覚えることが多いため、開発要員の育成に多くのコスト(費用と時間)がかかる。そのうえ、使いこなすのも容易ではなく、仕様のミスリードにより誤った実装もしばしば見受けられる。また、Java EEによる開発を支援するものとして、コーディングからテスト、パッケージング、配備までをカバーする商用やオープンソースのツールが数多く提供されているが、それらのツールを使って行う作業自体はそれなりに手間がかかるものであり、今日浸透しつつあるアジャイル開発とはほど遠いのが実情だ。

 その一方で、近年、よりシンプルかつ軽量で、使いやすい技術へと、世の中の興味は移りつつある。Java EEの世界ではDI(Dependency Injection)コンテナの登場があったし、オープン技術の世界で起きたLAMP(Linux、Apache、MySQL、PHP/Python)ブームも記憶に新しい。そして今、Web 2.0の流行の下、軽量なWeb技術への注目が高まっている。なかでも「Ajax(Asynchronous JavaScript + XML)」は非常に重要な技術要素だ。AjaxはWebアプリケーションのアーキテクチャ・パターンの1つであり、Webブラウザ上で動作するJavaScriptが、XMLHttpRequest APIを使ってWebサーバと非同期で通信することを可能にする。WebアプリケーションにAjaxを適用すれば、これまでは単なるWebの端末にすぎなかったWebブラウザを、インテリジェントなエージェントに変えることができるのである。

Ajaxを適用したWebアプリケーションのアーキテクチャ

図1:Java EEにおけるMVCの適用パターン

 それでは具体的に、AjaxはWebアプリケーションの設計にどのような影響を与えるのだろうか。ここで、図1、2をご覧いただきたい。図1はJava EEにおけるMVC(Model-View-Controller)パターンの適用イメージを、図2はAjaxを取り入れたWebアプリケーションにおけるMVCパターンの適用イメージを図示したものだ。

 両者の大きな違いは、Controllerが動作する場所とViewが生成される場所にある。Java EE(図1)では、Controllerがサーバ側で動作してViewを生成するが、Ajaxを適用した場合(図2)はModelのみがサーバ上で動作し、ControllerとViewはクライアント側で動作する。つまり、Ajaxを適用したMVCモデルでは、Webブラウザ上で動作するControllerがエンドユーザーの操作に応じてサーバに適切なリクエストを送信し、その応答に応じてViewを生成して表示する。Webブラウザが能動的なクライアント・エージェントとなるというわけだ。

図2:Ajaxを取り入れたMVCの適用パターン

 Ajaxを適用したアーキテクチャの特徴として、クライアントとサーバをそれぞれ異なる技術で実装できる点が挙げられる。HTML、CSS、JavaScriptといったオープンな技術で実装されたクライアントは、Java EEはもちろんのこと、.NET、PHP、Ruby on RailsなどさまざまなWebアプリケーション・サーバと会話することが可能だ。なぜなら、クライアント/サーバ間で用いられるプロトコルは、シンプルでオープンなHTTPだからである。

 さらに踏み込んで考えてみよう。さまざまなWebアプリケーション・サーバ上で、一定の粒度から成るサービスを稼働させ、Webブラウザ上のAjaxクライアントがそれらを呼び出すことができるのなら、それはSOAの世界で目指しているサービス統合を、SOAPやWSDLといったWebサービス技術に頼ることなく、Web技術だけで実現することになる。

ページの先頭へ戻る