BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース SOAの世代分類

SOAの世代分類

ブックマーク
SOAはそれが普及する前から長い間(source)、そのハイプ曲線はピークのままである(source)。分散型システムやEAIのためのアプローチとしての疎結合は、しばしば遅延バインディング(source)を使用したソフトウェアパターンと比較されている。ソフトウェア開発の原理と実践は、ダーウィンの進化論(source)のように、この数十年で継続的に進化し続けている(source)。我々はPrologのような第五世代言語(source)のような世代的なプログラミング言語(source)をもち、そして今、XAware(サイト・英語)の創設者で主任研究員であるKristan Vandersluis氏(source)によれば、サービスベースのアーキテクチャ的アプローチは少なくともすでに四つの世代を経て今に至っているという事実を認識すべきであるという。
業種を問わず、すぐれたアーキテクトはずっと前から機能を再利用可能なサービスとして提供してきた。このことは、サービス指向アーキテクチャが長い時間をかけてどのように進化してきたのかを私に考えさせてくれた。我々のようにSOAツールの機能拡張に取り組んできた者は、この数年でSOAをポピュラーなものとした"Web サービス"よりはるかに長い間、サービスやSOAが身の周りに存在していたことを知っている。そして今、ソフトウェア業界では、サービス指向の実装が成熟期を迎えているようである。
Kirstan氏はときとしてSOAはWebサービスとかかわりを持ちすぎている(source)という考え方に同調している(source)。彼は、まだSOAの全てのポテンシャルを引き出せていないと信じており、またそれには時間を要すると考えている。
伝統的な1年から1年半の開発サイクルを持つ開発では、大勢のアナリストや開発者を要するが、それらはあたらしいプロセスのフローグラフを描くビジネスアナリスト置き換えられ、そうすることにより enterprise-readyな環境へボタンをクリックすることでアプリケーションをデプロイできてしまうだろう。サービス指向的なアプローチであれば数日から数週間わずかなエンジニアリングリソースを使用するだけで済むはずだ。
しかしながら、どこかで聞いたことがあるように(source) 、時々あなたのマイレージは変わってしまうかもしれないし(source)、SOAのプロジェクトはある種の万能薬のように自動的に成功するわけではない(source)。しかしKirstan氏によれば、これは世代的な問題で時間を経ることによりだんだん良くなる(もしくは何か新しい良いものが生まれる)とのことである。さらにKirstan氏によると、すでに四つの世代(もしくはそれ以上)のサービスベースのアーキテクチャが存在しているそうだ。:
第一世代サービス  - WS-* や REST のようなモダンなSOAの標準な手法を使用していない、C、C++、C#やJavaといった第三世代のプログラミング言語によって書かれたシンプルなサービス群である。こういったサービスは、コンシューマと潜在的なリソースの依存関係が非常に強くなってしまう傾向にある。CORBA やDCOMといった比較的古い技術はこの世代に当てはまる。

第二世代サービス - データベースのデータを取得、修正、作成、削除したりするような、標準ベースのそれなりにシンプルなサービス群である。こういったサービスはJava やC#のクラスやEJB、データベースへ送信するクエリから自動生成することができる。これらのサービスはオブジェクトのメソッドをそのまま反映し、リレーショナルテーブルのような内部実装を外部にさらけ出してしまう傾向がある。開発は簡単だが、そのようなサービスはビジネス指向ではなく技術指向であるため、ビジネスプロセスで直接使用するのは非常に難しい。システムを編成するための適切なレベルの粒度で提供するためには、他の別のサービスやロジックと結合させる必要がある。

第三世代サービス - 本当の意味での「サービス指向」のサービス群である。このようなサービスはビジネスプロセスに適している。サービスのリクエストやレスポンスのペイロードといったデータフォーマットを明確に定義することによって疎結合が実現されている。これらのデータフォーマットは、実行パフォーマンスや必要なストレージの最適化をするような技術者ではなく、ビジネスプロセスをよく知るアナリストによって定義される。これらのサービスは、システムの編成に適した粗い粒度と疎結合を実現するために、第一世代と第二世代のサービスを縫い合わせて変形することで作られることが多い。

第四世代サービス - 第三世代のサービスを管理されたセキュアで再利用可能なサービスとして制度化したサービス群である。第四世代のSOAは、より高レベルのサービスやビジネスプロセスの構築や管理をするための、SOAを意識した技術や手続き等のエコシステムを持つ。第四世代のサービスを実現させるために時間をついやせば、企業はSOAの恩恵を最大限受けることになり、変化するビジネス的な要求を短い時間でビジネスプロセスに反映することができるようになるだろう。
原文はこちらです:http://www.infoq.com/news/2008/04/soa-generations

この記事に星をつける

おすすめ度
スタイル

BT