サービス指向アーキテクチャ
ポートレットフレームワークの場合は、ユーザが要求する機能毎をプラグインで実装する。プラグインにはWebページに配置できる複数のポートレットを含むことができる。
オブジェクト及びコンポーネントと異なりプラグイン毎にアプリケーションサーバに追加/変更/削除できる。なお、インストールされているプラグインに含まれるポートレットをエンドユーザがドラッグ・アンド・ドロップ処理でWebページに配置することができる。即ち、エンドユーザが利用するビジネス機能をWebページに配置して利用することができる。
なお、ポートレット毎に表示、エンティティ・インターフェース、ビジネスロジックが含まれている。そのため、技術により非依存である。例えば、JSFで作成したポートレットとSpringFrameworkで作成したポートレットを一つのWebページに配置することもできる。なお、PHPで作成されたポートレットと同様な機能をもつJavaのポートレットで置き換えることもできる。
ポートレット間通信はJava API, Java RMI, Web Service, JSONなどで行うことができる。これらのプロトコル用のAPIはポートレットフレームワークが同じ機能なものを提供する。
オープンソース・ポートレットフレームワークの例としてLiferayが挙げられる。
BPMNは、業務処理のプロセス(サービスを連携する順序やルール)を図として記述するための可視化表記法である。BPMNを用いて作成した図は、BPEL形式の記述へ変換することが可能である。そのような変換を自動化するツールも提供されている。
ESBは、サービス間をつなぐ中継バスとしての役目を担う技術あるいはその実装製品を指す言葉である。サービスを1対1で直接P2P接続する場合と比べて、ESBを使用すれば、多数のサービス間接続を集中して管理、監視できるようになる。複数のESBを接続して連携させ、ルーティングやプロトコル変換などの役割を持たせることも可能である。
BPMN、BPEL、ESBや、それらの基礎となるWebサービスを完全に活用できている状態においては、BPMN形式のビジュアルな図を描くだけでシステム連携が可能となり、その図を描き換えるだけで業務処理の変更に対応できる(とされている)。
なお、個々のサービス(ソフトウェア)の実装においては、任意の技術を使用可能である。ただし、WebサービスあるいはSOAの製品実装においては、Java あるいは .NET の使用が先行している。既存の技術(たとえばメインフレーム系の技術)を使用しているシステムをサービスとして活用する場合、そのインタフェースの作成にはJavaなどを使用するのが通常である(こうした手法はレガシーラッピングと呼ばれる)。