SOAへ至る経緯
出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/05/03 07:14 UTC 版)
「サービス指向アーキテクチャ」の記事における「SOAへ至る経緯」の解説
SOAに通じる考え方や技術は古くから存在している。オブジェクト指向やコンポーネント指向は、決められたインタフェースに従ってソフトウェアの一部分をカプセル化、部品化し、それを組み合わせて全体を構成するという考え方を基本としている。また、分散オブジェクト、メッセージング、EAI (Enterprise Application Integration) などの技術を使用し、ネットワークを介してソフトウェアを連携(疎結合)させるといったことは、大規模なシステムにおいてはすでにある程度実施されている。 ただし、オブジェクト指向やコンポーネント指向においては、主にプログラム上の部品をソフトウェアの構成単位としており、業務処理の変化をシステムの変更に素早く反映させたいという視点においては単位が小さすぎる、とされている(もっとも、単位の大きさ(粒度)は元来任意であり、オブジェクト指向やコンポーネント指向における部品の粒度を業務処理のそれに合わせたものがSOAにおけるサービスであると捉えることもできる)。 また、従来のシステム連携技術は、特定のソフトウェア基盤の使用を前提としている、あるいは連携させるために必要な作業や手順が煩雑である。こうしたことから、システム連携のスピードやコストにおける問題点が指摘されていた。このような問題を解決するための技術あるいは概念として、2000年頃からWebサービスが提唱されている。 ただし当初のWebサービスは、現在のSOAと同様の構想がすでに提唱されてはいたものの、実装技術としてはWebを介したソフトウェアの連携自体に主眼が置かれていた。また、連携する個々のソフトウェア(サービス)をシステム全体の中でどのように位置づけるのか(サービスの粒度の目安を何に置くのか)、多数のサービスを連携させる複雑なトランザクション処理などをどのように設計、実装するのかといった事柄が、課題として残されていた。その後、Webサービスの概念や技術の拡張に伴い、2004年頃から、「Webサービス」に代わって「SOA」がキーワードとして注目されるようになった。 これらの課題の対策としてポートレットフレームワークが注目されている。オブジェクト指向やコンポーネント指向は基本的IT部品の再利用を考えている場合が多い。ポートレットフレームワークの場合は、エンドユーザが直接利用するwebページ上の機能の再利用を目指している。また、オブジェクトやコンポーネントをエンドユーザが利用する場合は別にプログラムを必要としたため、ユーザと開発者の考えに差異がある場合があった。ポートレットフレームワークの場合は、ユーザが要求する機能毎をプラグインで実装する。プラグインにはWebページに配置できる複数のポートレットを含むことができる。 オブジェクト及びコンポーネントと異なりプラグイン毎にアプリケーションサーバに追加/変更/削除できる。なお、インストールされているプラグインに含まれるポートレットをエンドユーザがドラッグ・アンド・ドロップ処理でWebページに配置することができる。即ち、エンドユーザが利用するビジネス機能をWebページに配置して利用することができる。 なお、ポートレット毎に表示、エンティティ・インターフェース、ビジネスロジックが含まれている。そのため、技術により非依存である。例えば、JSFで作成したポートレットとSpringFrameworkで作成したポートレットを一つのWebページに配置することもできる。なお、PHPで作成されたポートレットと同様な機能をもつJavaのポートレットで置き換えることもできる。 ポートレット間通信はJava API, Java RMI, Web Service, JSONなどで行うことができる。これらのプロトコル用のAPIはポートレットフレームワークが同じ機能なものを提供する。 オープンソース・ポートレットフレームワークの例としてLiferayが挙げられる。
※この「SOAへ至る経緯」の解説は、「サービス指向アーキテクチャ」の解説の一部です。
「SOAへ至る経緯」を含む「サービス指向アーキテクチャ」の記事については、「サービス指向アーキテクチャ」の概要を参照ください。
- SOAへ至る経緯のページへのリンク