BT

最新技術を追い求めるデベロッパのための情報コミュニティ

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース IBMはプロジェクトゼロで静的なSOAと動的言語を主張する

IBMはプロジェクトゼロで静的なSOAと動的言語を主張する

REST主体とウェブ指向アーキテクチャの概念が、コンピュータマニアの先端技術から企業の主流へと移行しつつある中、IBMのWebSphere CTOであるJerry Cuomo氏は最近のインタビューでこのように言っている。「“一般的なウェブ技術に基づいたアプリケーションを作成し、組み合わせ、実行するためのシ ンプルな環境を導入する”、というプロジェクトゼロにおいて、それらの概念がIBMのフォーカスの中核となっています。」 プロジェクトゼロは、オープン開発モデル(しかしオープンソースではない)のもとで開発されている。プロジェクトゼロについて2,3興味深いのは、Webアプリケーションの開発において、純粋なJavaの流れに逆行を続け、動的言語に向かっていること、また企業においてはRESTサービスの開発に力を入 れていることである。

プロジェクトゼロはJava言語を直接使うのではなく、GroovyおよびPHPを採用している。Cuomo氏はこう言っている。

「IBMの人達はJavaが大好きです。IBM、Sun、BEA、そしてOracleで、業界の人々の多くがJavaを愛してきたと思います。だから、と ても有用なアプリケーション、しかもこれから少なくとも10年はそうであろうアプリケーションの開発に使われるJavaなどには評価が辛いのです。しか し、プロジェクトゼロおよびゼロプラットフォームでは、Javaをシステムプログラミング言語にまで発展させてきました。今日におけるJavaのような場 合では、Cがシステムプログラミング言語です。何か下のレベルで泥臭いものを書きたいと実際に思ったら、Cで書き、Java方式でCの関数を覆ってしまう でしょう。ゼロにおいては、そうですね、OO Javaの世界がシステムレベルに昇進し、その上にスクリプト言語があります。」

動的言語の技術を既存のJavaスタックに取り入れるという概念は新しいものではないが、この点に関してプロジェクトゼロは、BEAが昨年のJavaOne?で発表したWebLogicとPHP の統合に対する、またそれだけではなく、アプリケーションサーバーおよびデータベース製品とPHPとの統合におけるOracleとZendの提携に対する、IBMの答えのように思われる。Sun Microsystemsも、Zendと提携して動的言語のWeb層の開発や、JRubyチームPhobosアプリケーションサーバ・プロジェクトを 獲得に大量に投資している。最後に、Caucho Technologiesは、最も強力なクリーンルーム方式のPHP実装のうちの一つを開発し、Causho社のResin Javaアプリケーションサーバーに取り込んでいる。

動的言語の使用はさておき、インタビューとプロジェクト自体のもう一つの突出した話題は、プロジェクトゼロの中心をなすRESTアークテクチャスタイルである。Cuomo氏は、WS-*スタック技術の必要性と価値を保つことに努めるとコメントする一方で、RESTスタイルのサービスのわかりやすい単純性に立 ち戻ることは、具体的なビジネス上の利益があることも明確にした。

「(IBMと仕事をしたある顧客の場合、既存のWS-*)サービスは、サービスコールのたびに10個のパラメータを使用していたようです。私達はAPIを簡素化して、おそらく5個だけにしたと思います。そしてもちろん、(それらのAPIは)URLアクセスが可能であるため、情報のやり取りがさらに流動的になりました。そして、エンタープライズサービスを使用するときに、自動的に50%の理解ですむことがわかりました。これらのことはRESTを使用するウェブフォームでさらに評価できるようにしたので、今では多くの人たちがそのサービスを利用しています。面白いのは、人々がサービスを使ってくれるようになったのが、エンタープライズサービスのハードルを低くしたためであるところです。そのうちに、人々は全く思いもしなかった方法でサービスを使い始めます。そしてサービスに逆らって書かれた、全く新しい一組のアプリケーションが現れてきます。うまくいけば、このようなアプリケーションは新しいビジネスへの駆動力となるでしょう。だから、これはWeb SOAとエンタープライズSOAのすごい組み合わせだと思っています。」

また、Cuomo氏がエンタープライズWS-*サービスと軽量RESTサービスフレームワークが手を携えて協力しあうという未来像を楽しみにしているのも明らかである。それは、どちらか一つ、といったシナリオではない。

「今日では達成することがおそらく難しい分野にまでエンタープライズ・プラットフォームを拡張する方法として、ゼロのような環境がエンタープライズSOAと連動することが、とても強力な組み合わせであると思っています。フィードとして表示する一組のエンタープライズサービスを変換しようと思ったら、ゼロを使うことでとても早くできます。エンタープライズ・アプリケーションの前で、一組のエンタープライズサービスを一組の融通の利くWebサービスに変換するようなアプリケーションを、ゼロで作ることができます。」

PHPやRuby on Railsが実現する開発時間の効率性に対して、業界全体が何らかのやり方で答えを出さなければならないことに気付いたとき、プロジェクトゼロはそれに対する面白い答えとなる。それはRailsの移植版でも複製品でもないからである。Ruby on Railsは、Ruby言語の柔軟な特性を大いに活用する、高度に最適化されたMVCアーキテクチャ・パターンの実装と見なされているかもしれないが、 一方、プロジェクトゼロは少し違うところにフォーカスしている、とプロジェクトゼロの中心概念が書かれた(Web)ページは説明している。フレームワークの概念を言語の実装から取り去ることにより、プロジェクトゼロのユーザーは言語の柔軟性を手にしている。GroovyとPHP(将来的には他のものかもしれないが)を消して同じフレームワークを活用することができるし、また、必要性や希望に応じてJavaにポンと戻るといった柔軟性もある。 アーキテクチャ的には、従来のアクションベースのフレームワークではなく、トランザクションの状態がグローバルコンテキスト内に保持される、ステートレス なイベントハンドラを使うイベントベースのアーキテクチャを重点的に採用している。最後に、プロジェクトゼロはそれ自体をオープンで拡張可能なモジュール式アーキテクチャの中核として考えており、それはIBMが大ヒットさせたEclipseモデルによく似ている。

この記事に星をつける

おすすめ度
スタイル

BT