InfoQ

InfoQ

News

マイブックマーク

ブックマークするためにログイン または 会員登録 する

ブックマークされました!

ブックマークがエラーになりました。もう一度お願いします。

ビジネスでRESTを使う

作者 Dilip Krishnan , 翻訳者 徳武 聡 投稿日 2009年9月7日

セクション
設計/アーキテクチャ,
エンタープライズ・アーキテクチャ
トピック
SOA ,
REST
タグ
ビジネスアーキテクチャ ,
Adoption

原文(投稿日:2009/09/02)へのリンク

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氏が示唆するように自然な進化なのだろうか。

特集コンテンツ一覧

GAE開発の落とし穴

Googleのクラウド環境をつかったGoogle App Engineによる開発するにあたり、初めての試みで苦悩する開発者達の経験をもとに、各開発フェーズにあわせて問題点やどう解決したかをご紹介します

イベントレポート:「Coqチュートリアル#1」

去る1月12日、定理証明支援系ツールCoqの初心者向けチュートリアルが開催さ れた(http://kokucheese.com/event/index/23667/)。今後も2月2日 (http://kokucheese.com/event/index/23744/)、2月9日、2月16日と引き続き開 催されていく予定である。本記事では、開催の様子をレポートする。

Javaの未来についてのNeal Gafter氏とのディスカッション

Choosing Options

Neal Gafter氏はOracleによるJava買収の影響に関する議論、Javaにセグメンテッドスタックやメタオブジェクトプロトコルを追加することについての主張、そしてJavaとC#との比較について話をしてくれた。

Google Dartのエッセンス:アプリケーションの構築、スナップショット、Isolate

GoogleはVMをともなう新しい言語であり、JSコンパイラでもあるDartをプレビューした。 InfoQはDartのアプリの構築に貢献する文法の裏側を探った:スナップショット、Isolate、モジュール方式

CSPベースのモデル検査ツール「Process Analysis Toolkit」

本記事ではCSPベースの「マルチドメイン・モデル検査ツール」である、PAT(Process Analysis Toolkit)について紹介する。モデル検査は、形式手法(Formal Method)という方法論を基礎とする技術であり、複雑さが増大しながらも安全性を求められる、現在のソフトウェア開発の状況に対する処方箋の1つとして注目されている手法である。

Jenkinsによる継続的インテグレーションのススメ(4) ~CloudBeesでJenkinsをサービスとして使う~

前回まで、Jenkinsの幾つかの側面に注目して解説をしてきました。シリーズ最後の今回は、Jenkinsをサービスとして使う方法を紹介します。

書籍『抽象によるソフトウェア設計-Alloyではじめる形式手法-』の紹介

Alloyは、MITにて開発された仕様記述言語であり、ツールによる自動解析を使い、インクリメンタルに形式仕様が書けることが特長である。筆者らはAlloy開発者による、Alloyを使った形式手法入門書を翻訳、今夏にオーム社より刊行した。本記事では、Alloyの簡単な概要と、翻訳書『抽象によるソフトウェア設計』(「Alloy本」)を紹介する。

Windows デバイスで開発するタッチユーザーインターフェイス

スマートフォンを中心としたマルチデバイスにおけるタッチユーザーインターフェイスへの対応は、既に必須の項目となりつつある。本記事では、Windows デバイスにおける UX のベースとなっている「メトロ」というデザイン言語を掘り下げながら、既存環境を意識しつつもどのようにタッチユーザーインターフェイス開発に取り組んでいくべきであるかについて解説していく。