【コラム】

Java API、使ってますか?

24 Webサービス向けのポートレット仕様「WSRP」

24/60

Web Services for Remote Portlets

前回はJavaプラットフォーム向けのポートレット仕様であるJSR 168を紹介したので、今回はそれに関連してOASISによるWSRP(Web Services for Remote Portlets)という仕様を紹介したい。WSRPはJCPによる標準ではないが、多くのアプリケーションサーバがこれに準拠したポータルの機能を提供している。

WSRPは、ポートレットをWebサービス経由で遠隔のポータルに対して提供したり、逆に遠隔にあるポートレットを手元のポータルに取り込んだりすることができる規格である。このとき、ポートレットの提供側を「プロバイダ」、利用側を「コンシューマ」と呼ぶ。プロデューサはポートレットをホストし、それをサービスとしてWebサービスプロトコル経由でコンシューマに提供する。

コンシューマはプロデューサから受け取る情報を集約し、それを他のポータルに表示する。クライアントがコンシューマに対してポータルを要求すると、コンシューマではそれを適切なプロデューサに転送する。プロデューサはリクエストを処理して結果をコンシューマに返し、コンシューマはそれをクライアントに転送する。

このような仕組みにすることで、ひとつのサーバや場所に依存しないポータルサービスを実現することができる。また、アプリケーションの配備とサービスとしての提供を分離することが可能となる。

WSRPの現行仕様は2003年に発行されたもので、現在は次期バージョンとなるWSRP v2.0の仕様策定が進められている。v2.0ではポートレット同士の協調動作を実現するInter-Portlet通信など、様々な新機能が追加される予定。現在はPublic Review Draft 03が公開されている。なお、JSR 168の後継バージョンとなるJSR 286でも、WSRP v2.0への対応を謳っている。

OpenPortal WSRPを利用する

現行のWSRP 1.xに対応したアプリケーションサーバは多数あるが、その中でも今回はオープンソースで開発が行われているOpenPortal WSRPを使用してみる。OpenPotalプロジェクトはオープンソースのポータルサーバを開発する目的でスタートしたプロジェクトであり、そのサブプロジェクトのひとつがOpenPortal WSRPプロジェクトだ。

OpenPortal WSRPは、ポータルコンテナとドライバ、そしてWSRPのコンフィギュレーションをアプリケーションサーバにデプロイする形で利用する。GlassFishApache Tomcatに対応しているので、今回はGlassFishを使用したい。ここではD:\GlassFishディレクトリにGlassFishがインストールされており、domain1というドメインが設定済みであるとして解説を進める。

OpenPortal WSRPはこのページよりダウンロードできる。WSRP 1.0に準拠した「1.0 Stable Nightly」と、WSRP 2.0のドラフトに対応した「2.0 Milestone 1 Preview」があるが、今回は「1.0 Stable Nightly」の方を使用する。

必要なファイルは「Portlet Container」(ファイル名portlet-container-configurator.jar)と「WSRP」(ファイル名wsrp-configurator.jar)の2つ。まず、Portlet Containerの方をコマンドラインからプロンプト1のように実行する。

プロンプト1

> java -jar portlet-container-configurator.jar

図1のようなウィンドウが表示されるので、GlassFishのインストール先とドメインディレクトリのパスを入力し、[Ok]をクリックする。デプロイに成功したら[Quit]を押せばインストール完了となる。

図1 Portlet Containerのインストール

続いてWSRPをプロンプト2のようにしてインストールする。

プロンプト2

> java -jar wsrp-configurator.jar D:\GlassFish D:\GlassFish\domains\domain1

インストールできたらGlassFishを再起動すれば設定が有効になる。ブラウザから次のURLにアクセスし、図2のようにWSRPの管理画面が表示されたらインストールは完了だ。

図2 WSRPの管理画面

初期状態ではプロデューサとコンシューマを管理するポートレットがそれぞれ1つづつ用意されている。ポートレットの追加は[Admin]タグのページから行える。ポートレットの作成方法は前回紹介したのでここでは省略し、ここで配布されているサンプルのポートレットを使ってみる。

使用したいポートレットのWARファイルをダウンロードし、管理画面から図3のようにして配備する。

図3 ポートレットの配備

プロデューサの作成は、図2の画面から「WSRP Producer Admin Portlet」を使って行うことができる。[New]ボタンをクリックすると図4の画面になるので、ここでプロデューサ名とレジストレーションの有無を設定する。

図4 プロデューサの作成

プロデューサが作成されると、図5のように一覧に表示される。ここでプロデューサ名をクリックすると図6の画面に移行して詳細を設定できる。「Unpublished Portlets」には非公開のポートレットの一覧が表示されているので、このうち公開したいものを選んで[Add]をクリックし、「Published Portlets」の方に移動させる。また、「Status」を[Enabled]にしておく。

図5

図6

続いてコンシューマを作成する。コンシューマは図2の画面から「WSRP Consumer Admin Portlet」を使って作成できる。[New]ボタンをクリックすると図7の画面になるので、ここで接続するプロデューサのWSDLのURLを入力する。

図7

[Get]をクリックすると図8の設定画面になるので、コンシューマ名やレジストレーションの設定を行う。

図8

コンシューマが作成されると、図9のように一覧に表示される。ここで[Create]をクリックすると、クライアント側で表示するウィンドウの設定を行うことができる。図10のように表示されるので、有効にするポートレットを選択し、ウィンドウ名を設定する。

図9

図10

以上でプロデューサ、コンシューマの設定は完了だ。クライアントからコンシューマにアクセスすれば、作成したウィンドウを見ることができる。OpenPortal WSRPでは[WSRP]タグのページがクライアントの機能を提供しており、図11のようにコンシューマから取得したポートレットが表示される。

図11

24/60

インデックス

連載目次
第60回 どうなる? 今後のJavaプラットフォーム(Java SE編)
第59回 どうなる? 今後のJavaプラットフォーム(Java EE編)
第58回 Java SE 7の要注目機能"クロージャ"はどうなるのか その6
第57回 Java SE 7の要注目機能"クロージャ"はどうなるのか その5
第56回 Java SE 7の要注目機能"クロージャ"はどうなるのか その4
第55回 Java SE 7の要注目機能"クロージャ"はどうなるのか その3
第54回 Java SE 7の要注目機能"クロージャ"はどうなるのか その2
第53回 Java SE 7の要注目機能"クロージャ"はどうなるのか
第52回 Early Draftが公開されたJSF 2.0
第51回 EJBから独立したJava Persistence 2.0
第50回 モバイルJavaの新しい潮流となるか - MSA 2.0のドラフト公開
第49回 やっぱり基本はServlet - Servlet 3.0のEarly Draftを読む
第48回 JOGLで3Dプログラミング その4
第47回 JOGLで3Dプログラミング その3
第46回 JOGLで3Dプログラミング その2
第45回 JOGLで3Dプログラミング
第44回 JARファイルを効率的にネットワーク転送するためのPack200形式
第43回 Early Draftで把握するEJB 3.1の新機能
第42回 次世代の携帯端末向けJava仕様"MIDP 3.0"はどうなるか その2
第41回 次世代の携帯端末向けJava仕様"MIDP 3.0"はどうなるか その1
第40回 リソースアダプタによる接続の仕組み
第39回 JCAを利用したシステム間接続
第38回 Java EEと外部システムの接続性を支えるJCAがバージョンアップ
第37回 Javaのモジュラリティ強化を担う"スーパーパッケージ"とは
第36回 JSR 308対応のコンパイラを試す
第35回 公開されたJSR 308のEarly Draftを検証する
第34回 スクリプト言語とJavaを結びつけるJSR 223
第33回 Java EE環境に統一されたコンポーネントモデルを提供するJSR 299 その2
第32回 Java EE環境に統一されたコンポーネントモデルを提供するJSR 299 その1
第31回 Javaの文法がそのまま使えるスクリプト言語"BeanShell"
第30回 Javaアプリケーションにオブジェクトのキャッシュ機構を提供するJCache API
第29回 Javaアプリケーションからのリソース管理を可能にするJSR 284
第28回 XMLデータソースへの問い合わせはJSR 225で
第27回 Portlet Specification 2.0をもっと手軽に利用する
第26回 次期Javaポートレット仕様となるJSR 286
第25回 JSFとポートレットをつなげるJSR 301
第24回 Webサービス向けのポートレット仕様「WSRP」
第23回 高い相互運用性を実現するポートレットAPI - JSR 168
第22回 Java EE環境でタスクのスケジューリングを可能にするJSR 236
第21回 Java EE環境でのスレッドプログラミングを可能にするJSR 237
第20回 音声認識/合成のためのAPI - Java Speech APIとJSR 113
第19回 JSR 291でJavaプラットフォームにダイナミックコンポーネントモデルを導入
第18回 JAX-RSで簡単RESTful - JSR 311
第17回 待望のServlet 3.0がJSRに登場 - JSR 315
第16回 アノテーションを使ってバグ退治 - JSR 305
第15回 アノテーションをさらに広い範囲で利用可能にするJSR 308
第14回 Webアプリケーション開発の要となるか - JSF 2.0がJSRに登場
第13回 Webサービス経由でのJMX Agentへの接続を可能にするJSR 262
第12回 Javaアプリケーションのモジュール化をサポートするJava Module System
第11回 "NIO.2"がやってきた - JSR 203: More New I/O APIs for the Java Platform
第10回 JSR 295: Beans Bindingの参照実装を試す
第9回 けっこう便利! 単位を扱うAPI -- JSR 275: Units Specification
第8回 アノテーションでバリデーション - JSR 303: Bean Validator
第7回 Swing開発の救世主となるか - Swing Application Framework
第6回 JavaBeansのプロパティを同期させるバインディングAPI
第5回 誰よりも早く"Java SE 7"を睨む
第4回 日時情報の取り扱いを改善する JSR 310: Date and Time API
第3回 古いAPIも進化している!? - JSR 919: JavaMail 1.4
第2回 JSR 1 リアルタイムJava仕様
第1回 JCPによって進められるJava関連技術の標準化

もっと見る

提供:マイナビ

会員登録はこちら

大学・大学院・短大・専門学生向けの就職情報サイト「マイナビ2010」「マイナビ2009」に今すぐ登録しよう!  大手企業からベンチャー企業までの約13,000社の企業情報を公開、エントリーが可能です。2010年卒予定の方は「マイナビ2010」に、2009年卒予定の方は「マイナビ2009」に登録してください。

毎日コミュニケーションズはプライバシーマークを取得しています。



人気記事

一覧

イチオシ記事

新着記事