Justin Cormack氏の記事が引き金となって、エンタープライズ分野にRestfulなアーキテクチャを適用することの可能性についての議論 が起こっている。
…CTOがこんなこと言うときがありました。“これをSOAP APIとして実装した場合の問題を誰か知っている?”こういう居心地の悪いときは、だれも何も言いません。しかし、私は反対します。SOAPは幸せなアーキテクチャのバックボーンではありません。でも、今すぐそのように言い切るのは力不足です。
エンタープライズ分野でのリソースの役割を説明するなかで、氏が示す統計によると 20人[開発者]のうち9がRESTを使うのが好きで、[なぜなら]RESTの方が生産的だからだ。氏がほのめかしているのは、WS-*標準に基づいて構築されている可能性のあるサービスの契約やスキーマ(wsdl, xsd)からクライアントプロキシを生成するのに比べて、RESTベースのAPIを使う方が簡便だ、ということだ。
RESTなら不要なコードの巨大な塊を生成しなくても済みます。データベースのスキーマにマッピングできる意味のはっきりしたハイパーテキスト(HATEOAS)が必要なだけです。
続けて氏は、CRMシステムでの典型的な顧客のモデリング方法を例に挙げて、エンタープライズ分野でのリソースの考え方について説明している。
エンタープライズ分野でのリソースとは一体なんでしょうか。まずは顧客から始めましょう。CRMシステムは良い例になります。リソースとして表現する必要のある要素を扱うからです。顧客が購入した製品やサポートチケットを見つけるため、また、重要なデータを集めて顧客サポート窓口やサポート業務の支援アプリケーションを作るため、APIをコールする必要があります。
ROE(リソース指向エンタープライズ)について書かれたこの記事によると、どのようなエンタープライズシステムでもデータの貯蔵庫を持っている。それらの貯蔵庫は、給与支払いや人事など異なる業務要件を満たしている。このような貯蔵庫に入っているデータをアドレス可能なリソースとして考えることに意義がある。コスト面から言っても、個々に点在するデータを開示する点から言っても、このような考え方は、種々の情報に基づくビジネス上の意思決定を後押しするために利用できる。
…ROEを実現するために必要なのは、組織をさらにオープンにしなければなりません。技術的な感覚だけではなく、情報をより良い形に抽象化して提供する必要があります。リソース指向エンタープライズで、このようなことを達成するには、データをURIでアドレスできる枠組みに統合すればいいのです。
Justin氏によれば、実現するのはそれほど難しくない。
この枠組みは漸進的に構築できます。RESTのAPIを提供するツールか、Webアプリケーションの開発フレームワークがあれば、作業はより簡単になります。この枠組みがアプリケーションのフレームワークとWebのコンテンツマネジメントの間を統合する点になります。.
自身のブログでROEへと進んでいくメリットの説明に付け加えて、氏はRESTのメーリングリストに対する返答も収集している。
[この枠組みによって]物事は人間からも閲覧可能になり、宣言的な記述があれば、それらはコンピュータからも閲覧可能になります。[…] ビジネスロジックはデータというよりもむしろコンテンツになり、ブラックボックス化したビジネスロジックが利用するパラメータを格納するテーブルにはなりません。状態そのものがリソースとなって検索され、指示され、考察の対象になります。
RESTをエンタープライズ分野に導入すれば […] Webアーキテクチャの俊敏性の改善を手伝ってくれます。そして安価で簡単なエンタープライズアプリケーションが作れるようになるでしょう。
RESTを使えば、Webの分散的な側面をエンタープライズ分野に持ち込むことができ、設計者や開発者がひとつの部屋に集まってAPIについて一生懸命議論するための時間や資源を割かなくて、ネットワークシステムを作ってそのコンポーネントを改良していくことができます。[Jan Algermissen氏のRESTのメーリングリストの発言より]
ハイパーメディアにRESTを適用することで […] メンテナンスや配布、バージョン管理が今まで以上に楽になると思います。そうなれば、アプリケーションの運用に関わるコストも減るでしょう。[Darrel Miller氏のRESTのメーリングリストの発言より]
さらに、[…]互換性を確保するのはとても簡単です。HTTPプロトコルは今やどこにでもあるのですから。このことが他のシステムとの統合に与える影響は巨大で好ましいものです。きっとSOAのガバナンスもRESTfulなアーキテクチャから多大な恩恵を受けるでしょう。それがどんな形で現れるかまだわかりませんが。[Bill Burke氏のRESTのメーリングリストの発言より]
Justin氏が注目するのは、Benjamin Carlyle氏のRESTをSOAの進化したものと見ることができるという見解、つまり、RESTはより簡単で優れたサービスだという考えだ。我々が見ているのは、エンタープライズ分野で、サービス指向からRESTfulな手法を適用する方向へと力点が移っていく過程なのか。それともこの流れは、Benjamin氏が示唆するように自然な進化なのだろうか。