企業ポータルとポートレットコンテナ
では、ポータルとポートレットコンテナの違いは何でしょうか? ポータルは、ユーザーが直接目にするサイトであり、ポートレットコンテナに対するインターフェースです。ポートレットコンテナとは、ポートレットをそのライフサイクル全体を通して管理するプラットフォームのことです。ポートレットコンテナは、標準ポートレットAPIに基づいて実装されたポートレットのためのランタイム環境です。このプラットフォームを使用することにより、ポートレットをインスタンス化し、使用し、最終的には破棄できます。Javaポートレットコンテナは、サーブレットコンテナのようなスタンドアロンのコンテナではなく、Java Servletコンテナ上のシン(thin)レイヤーとして実装され、その機能を再利用します。構造的には、ポータルとポートレットとをつなぐインターフェースとなります。
初期のWebポータルは、「社内」で開発されたカスタム技術によって構築されていました。つまり、あるプラットフォームまたはコンテナ向けに作成されたポートレットには、他のプラットフォームやコンテナとの互換性はありませんでした。新しいポートレットの追加、ポートレットウィンドウの最小化、ページ上の別の場所へのポートレットの移動といった機能を実現するためには、開発者がサポートコードを複製したり再作成したりする必要がありました。この状況に変化が生じたのは、Sun MicrosystemsがJSR 168をリリースした2003年のことです。最初のバージョンであるこの仕様は、完全なものではありませんでしたが、ポートレットのライフサイクルやその他の機能を定めた、標準化されたポートレットAPIを提供しました。
現在では、ほとんどのポートレットおよびポートレットコンテナが、JSR 168、またはその後継仕様であるJSR 286のいずれかに準拠しているため、あるJavaコンテナ向けに作成されたポートレットを、他のコンテナでも動作させることができます。
IBMのWebSphereポータルは唯一の例外でした。IBMは、Sun Portlet APIに似た、独自のIBM Portlet APIを開発しました。しかし、最新版のIBM WebSphereポータルではIBM Portlet APIのサポートを廃止し、現在では標準のJSR 168/286 Java APIを使用しサポートしています。
最新のポートレットコンテナは、イントラネットサイト、商業用サイト、または個人サイトの構築に使用できます。その多くに、インターナリゼーション(internalization:内面化)サポート、コンテンツ管理ツール、ロールベース認証、Secure Single Sign On(SSO)サポート、検索またはタグ付けサポートなど、そのまますぐに利用可能な機能が提供されています。図3と図4に、実際のポートレットの例を示します。


