BT

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

寄稿

Topics

地域を選ぶ

InfoQ ホームページ ニュース SOAをわかりやすく解説する

SOAをわかりやすく解説する

ブックマーク

原文(投稿日:2010/05/25)へのリンク

もしあなたが技術者でないなら、 [SOA は] 頭の上を通り過ぎていってしまう言葉のひとつだろう。Software Adviceの 創設者 でCEOである Don Fornes氏は言う。“SOAP, XML, CORBA, DCOM, .NET, J2EE, REST, BPEL や WS-CDL”など、関連するおびただしい数の略語がさらにSOAを複雑でわかりにくくさせていることは言うまでもない。記事ではSOAとその関連のコンセプトをわかりやすく説明している。

SOAを平易な言葉で表現しようと、彼は日常慣れ親しんだ用語でSOAを定義した。

たくさんの異なるソフトウェアプログラムたちを協調して動かすために、発明、改良された手法です。それぞれのシステムから個別に情報を取り出して、統合して何かをしたい場合に適しています。

Don氏はSOAという情報技術(IT)は、 巨大で多様性のある組織を管理することに似ていると説明する。彼はいう。

巨大な組織でスタッフが効率よく働くための必須条件は以下です。

  • ゴールと成功に必要なものを注意深く決めます
  • 個人それぞれのユニークな才能やナレッジを引き出します
  • 会話のための共通言語を定め、チームとして協力して働きます、そして
  • 現状、および成功の有無を測定します

彼が指摘したこれら全ての条件は、SOAがITソリューションを成功へと導くための特長である。

SOAは、どのシステムがどこに配置され、何ができるのか(どのようなデータを保持しているか)、システムの「カタログ」を作ります。またSOAは、全てのシステムが通信するための共通の言語を特定します。この共通言語がそれぞれのシステムの“母国語”ではないこともあります。これらのコンポーネントを配置することにより、組織は複数のシステムを統合して利用する新しいアプリケーションやプロセスを構築することができます。最終的に、SOA はこれらシステムにまたがるプロセスをとりまとめて監視します。

彼は、SOAはばらばらなシステムを統合することに過ぎないと認めている。しかし、SOAのいくつかの利点をあげ、伝統的なP2Pの統合とSOAとが異なるものであることを示す。

- 今では、システムを統合するのははるかに簡単です

- […]複数のシステムがリアルタイムで協調して処理する必要がある複雑なプロセスを管理・監視できます

- […]次世代システムを開発する上での標準を定義します。これにより、進化し続けるIT業界にあってもSOAのビジョンはより達成しやすいものとなるでしょう。

さらに、彼は巨大で多様な組織という比喩を拡張する。彼はSOAの鍵となるコンセプトとその重要性の概要を示し、それがどのように組織の比喩と関連しているのか説明する。 以下がコンセプトの個々の説明と対応する比喩である。

疎結合
疎結合であるということは、SOA内のサービスがひとつの特定のアプリケーションだけでなく、複数のアプリケーションにサービスを提供できるということを示します。これは組織内で、従業員がその目的に応じて、異なるチームや組織で仕事をすることに似ています。 彼らはひとりのボス、ひとつの組織のために働く、ということに縛られません。

WSDL
Web Services Description Layer (WSDL) はそれぞれのサービスが何をしているか説明するためにできたメタデータ標準です。各部署がもつ全ての役割や責任を書き出すための言語、を想像してみてください。それぞれの配置で従業員がどのような役割を果すか説明するために自然言語を使用するように、コンピュータシステムはそれぞれのサービスの役割を説明するためのそれ特有の言語が必要です。

再利用性
SOAのゴールのひとつは、時間とともにアプリケーションをより簡単に開発できるようにすることです。その寿命がつきるまで、それぞれのサービス、新しいものも既存のものも、将来的に再利用できることを望みます。これは、キャリアを通しさまざまなプロジェクトでスキルを活用してくれるような従業員を雇いたい、と望むようなものです。

構築性
構築性とは、より洗練されたアプリケーションとして振舞う大きなサービスを作るために結合できるかどうか、を意味します。組み合わせることにより、それ自身もサービスとして機能することもできます。これは、従業員たちですばらしいチームを組むことに似ています。全体として、個々の部分の足し算以上のパフォーマンスを見せるチームのようなものです。あなたは繰り返し繰り返しそのチームを新しいプロジェクトに投入したいと願うでしょう。

自律性
自律性とは、それぞれのサービスがベストを発揮できるような方法で処理を実行することを示します。サービスがどのようなデータを扱いどうやって処理をしているか深く知ることなく、サービスのアウトプットを利用したいでしょう。もし、それぞれのサービスが動く仕組みを探求したいなら、あなたはシンプルというSOAの理想を手放すことになります。これは、個々の行動を細かく管理するより任せた方が人はベストを発揮できるということに非常によく似てます。

Don氏は、SOAは、机上ではよいコンセプトにみえるが、現実には難解な問題をいくつか抱えており、まだそれらを解消する課程にある、と警告する。SOAはまだ初期段階にあり、サービス遅延やまだ発生したばかりの標準、標準的な「言語」を話す自立したシステムのを取得など克服すべき課題に取り囲まれている、と指摘する。

これらの課題全てについて考慮するのは確かに重要です。けれどもSOAを多くの産業がサポートしています。また、それらの業界には、SOAのビジョンが現実のものとなるのを待ち望む開発者たちが大勢います。SOAは魔法の弾丸でないとしても、SOAのビジョンに向かって動き出し、その理想のいくつかに到達することには計り知れない価値があります。このモデルは大きな期待が見込めますし、歴史的なIT統合と開発のチャレンジを超えるロードマップを提供するでしょう。

Dons氏のウェブサイトで、投稿の抜粋を読むことができる。

この記事に星をつける

おすすめ度
スタイル

BT