RESTはエンタープライズに浸透するか、ファーガソン氏が講演Web 2.0とWebサービスの似て非なる位置付け

» 2008年05月01日 00時00分 公開
[西村賢,@IT]

 WebはますますRESTfulな世界に向かっている。Web上で提供するデータやサービスを、URI指定によるHTTPリクエストだけで実現するという手軽さと分かりやすさから、多くのWeb 2.0系サイトは、Web APIをRESTと呼ばれる設計方針に基づいて定義・公開している。Webブラウザを媒介して人間が使っていたHTTPやURIといったインターフェイスを、そのまま機械処理にも適用するというRESTはシンプルで、瞬く間にWeb APIの標準的手法となった感がある。現在は先進的なWebサイトだけがWeb APIを公開しているが、今後は多くの一般的なWebサイトがRESTを通して情報・サービス提供をしていくケースが増えていくだろう。

 では、エンタープライズの世界でもRESTが普及するのだろうか。この問いに対して、RESTだけでは満たせないニーズがあると指摘するのは、元IBMフェローで、これまでSOAを主唱してきたドン・ファーガソン氏だ。4月30日に日本Javaユーザグループ(JJUG)の主催で東京・秋葉原で行われたイベント「JJUG Cross Community Conference」で基調講演を行ったファーガソン氏は、「WS-*」で総称されるWebサービスの各種標準技術(SOA)と、RESTを中心に進化を続けるWeb 2.0の違いについて語った。

RESTで小さく始めてSOAに

米コンピュータ・アソシエーツSVPでチーフ・アーキテクト・エンタープライズITマネジメント担当のドン・ファーガソン氏

 ファーガソン氏はWebサービスとWeb 2.0の高い類似性を指摘する。それぞれを構成する技術を対応させてみると、「WSDL」(Web Services Description Language)は「microformats」と対応し、「SOAPやWS-*」は「HTTP」、「XML Schema」は名前と値を対応させるRESTのURI指定のやり方に、それぞれ対応すると考えられる。

 Webサービス、Web 2.0ともソフトウェアのモジュール化を行う手法で非常に似ている。エンタープライズのシステムはWSDLで定義されたWebサービスをESB(Enterprise Service Bus)で接続するが、「ケータイを使ってEchangeサーバ上のメールを読むというのは、インターネットがESBのように機能しているということだ」(ファーガソン氏)と見ることができる。

 巨大化し、複雑さを増すシステムにおいて、疎結合によるソフトウェアのモジュール化を進めるSOAのようなアプローチが有効だという認識が広まりつつあるが、SOAの全面導入は難しい。そのため、ファーガソン氏はRESTで小さく始めて徐々にSOAを目指すのが、現実的なやり方の1つだという。

 「ビジネスモデルとSOAは非常にうまくマッピングできる。ただ、いきなりシステム全体を対象にSOA化を実施するのではなく、より小さなステップで段階的にゴールに向かって実現していけるようなものが必要だ」(同氏)。

 具体的には、XMLのSchemaを作ったりSOAPを使おうとせず、まずHTTP/GETと“name,value”の対応だけで1つのサービスを作ってみるとか、簡単なところからスタートすることだという。

 「非常に非常にシンプルなものからスタートして、徐々に成長させる。マッシュアップやフィードを使ったり、Railsを使ってもいい。大切なのはBAM(Business Activity Monitoring)BPM(Business Process Management)を使って、それをESBで整理していくというビジョン。どういう方向に向かうのかを明確にし、その中でRESTやWeb 2.0を使っていけばいい。RESTはSOAへつなげるためのステップ0.5だ」(同氏)

ファーガソン氏が示したWeb 2.0とWebサービスの類似点

RESTで解決できない課題

 RESTだけで問題解決が難しくなってきたら、よりロバストなWebサービスに移行する。RESTとWebサービスは似ているが、エンタープライズ用途ではRESTで満たせないニーズがあるという。

 ファーガソン氏は1つの例として、企業間のやり取りが発生する場合のセキュリティ機能を挙げる。2者間のセキュリティはHTTP/SSLでも実現できるが、3者間でメッセージをリレーするようなケースでは「WS-Security」のような技術を利用するのが合理的だという。また、メッセージ受信による状態の変更が送信者に分からないという問題もある。RESTでもアプリケーションレベルでこうした機能は実現は可能だが、それは結局Webサービスを使うのと変わらない。WSサービスの存在意義は、こうした普遍的課題に対するベストプラクティスを標準化したことにある、というのがファーガソン氏の指摘だ。独自に仕様を定義して実装してもメリットはない。

 ビジネスプロセスの変更に応じて構成ファイルの変えるだけで柔軟にシステムの改変が可能となることもWebサービスの優位点だという。RailsやPHPといった抽象度の高い開発言語が普及した背景にはCPUリソースの飛躍的な増大があるが、それと同様にエンタープライズ系システムでも、BPELやXQuery、XSLなど抽象度の高い言語を使ったシステム構築を行うべき時だという。

 「RubyやPHPは無視できない」とするファーガソン氏だが、Javaのユーザーグループを前にした講演だからということもあって、最後は今後のJavaの役割について話した。

 「Javaはまだまだエンタープライズで広く使われてる言語で、ミッションクリティカル用途ではバックプレーン(主要回路基板)となっている。RubyやPHPでコンポーネントを作ることは出てくるかもしれないが、Javaを使ってはいけないというわけではない。今後は言語が共存する時代で、Javaに適した用途がある」。ファーガソン氏は、抽象度があがってBPELやRubyが使われるとしても、そのとき下で走っているランタイム環境はJavaのケースが多く、Javaの重要性は今後も変わらないだろうと語った。

Copyright © ITmedia, Inc. All Rights Reserved.

注目のテーマ