確かに、ポータルは基本的に、多くのサーバー側インクルードを行うことによってビューを作成します。ポートレット仕様 (JSR-168、286) は、ポートレットがポータルに適合するようにポートレットをコーディングする方法を定義するだけです。ポートレットが同じポータル ページに共存するために必要なもの、つまり J2EE サーブレットまたは JSP 定義の一部ではないものだけを定義します。
仕様がなければ、異なる開発チームのポートレットを使用することはほとんど不可能であり、単一のポータル ページで異なるベンダーのポートレットを使用することさえできません。
ポータル スタイルの UI を備えた単一の J2EE アプリケーションでも、ポートレット コンテナを使用することでメリットが得られます。ポートレット コンテナは、多くの典型的な UI 関連のタスクを実行するのに役立ちます。
たとえば、ポータルの仕様で定義されている次の機能を検討してください (ごく一部):
- 他のポートレットから分離されたポートレットのライフサイクル。
- ポートレットごとに分離された URL スペース
- ポートレットのモードとウィンドウの状態
- ポートレット セッション スコープ
- パーソナライゼーション、ポートレットの設定。ユーザーは、個々のポートレットを配置および設定することにより、自分のポータル ページの外観を構成します。
- イベントの発生/消費 (JSR-286)
- ...
仕様はロケット科学ではなく、UI デザインなどのパラダイムも示していません。私にとって、ポータルに関して最も革新的なのは、ユーザーのデスクトップを Web アプリケーションに組み込むというアイデアでした。