I will be waiting for your knock ever after from today.


Visards, Inc.

Java Sticky Note

java
  ・JSTL
  ・Commons Net
  ・Apache
  ・Tomcat
  ・James
  ・Jetspeed
  ・POI
  ・Jexl
  ・Jelly
  ・Blojsom
  ・eclipse

link
  ・James

author
  ・profile

Jetspeed  
<< prev | Index | next >>
Jetspeedによるポータルサイトの構築

mixiチェック

3. Jetspeed概要
Jetspeedは, Apache Jakartaプロジェクトで開 発が進められているオープンソースのポータルサイト 構築のためのアプリケーションフレームワークです. Jakartaプロジェクトの前身であるJava Apacheプロジ ェクトの時代からある,Jakartaプロジェクトの中でも 比較的古くから活動しているプロジェクトです.Java とXMLをベース技術として使用しており,Windows, UNIXを含む幅広い環境で動作します.

3.1 Jetspeedの持つ機能
Jetspeedは,前節で記述されているすべての機能が 提供されているわけではありませんが,ポータルサイ ト構築のための非常に有用な機能・フレームワークお よびAPIが提供されています.Jetspeedが提供する特 徴的な機能を次に示します.
  • ユーザ管理
  • Jetspeedでは,データベースを使用したユーザ管理 機能が提供されています.ID・パスワードの発行,ユ ーザ情報の管理・編集,ユーザの認証・認可が可能 です.
  • 複数出力メディアのサポート
  • Jetspeed は,HTML だけではなく携帯電話など HTML以外の出力メディアをサポートすることができ ます.現時点ではHTML 以外にWAP(Wireless Application Protocol)がサポートされています.
  • さまざまな出力技術のサポート
  • 図2 は,JetspeedでHTMLを出力する場合のデー タの流れを概念的に示したものです.Jetspeedでは, H T M L, J S P で作成されたコンテンツ以外に, WebMacroVelocity 等のテンプレート出力技術 をサポートしています.
  • さまざまなデータの取り込み
  • 図2に示すように,Jetspeedではネットワーク上の WebページやRSS(Rich Site Summary)の情報を取 り込み,ポートレットとして出力することが可能です. また,データベースやXMLデータをポートレットとし て出力する方法も提供されています.
  • キャッシュ
  • 1画面上で,インターネット上のデータを含む複数 の情報を同時に扱うポータルサイトでは,パフォーマ ンスが大きな問題となります.Jetspeedでは,ポート レットのキャッシュ機能が提供されています.
  • ユーザによるカスタマイズ機能
  • Jetspeedでは,レジストリに登録されているポート レットのうち,どの情報をどのようなレイアウトで画 面上に表示するかをユーザが選択し,カスタマイズす ることが可能です.

          図2 Jetspeedによるデータの流れ





3.2 Jetspeedの画面構成
図1は,Jetspeedにより表示された画面の例ですが, 図3にJetspeedにより作成されるページの概念的な構 成を示します.


          図3 Jetspeedのページ構成



Jetspeedにより生成されるページは,多くの情報系 Webサイトと同様に,表示内容を選択・制御するた めのナビゲーション部分と,情報本体を表示するため のスクリーン部分に分割されています.スクリーン内 には,複数のペインやポートレットがあります.ポー トレットについては以下で詳しく説明しますが,実際 に情報を表示する単位となる領域です.ペインは,複 数のポートレットをまとめた画面上の領域です. 本稿では詳細は触れませんが,ナビゲーションやス クリーン,レイアウトを含めページ上の表示要素のほ とんどは,変更あるいはカスタマイズすることができ ます.

3.3 Jetspeedにおけるポートレット
ポートレットは,ポータルサイト上でひとまとまり のデータ・コンテンツを表示するための仮想的なビュ ーで,Jetspeed上で動作するポートレットアプリケー ションの表示領域です.1つの画面を複数の領域に分 割し,同時に多数の情報を表示する技術として,ウ ィンドウシステムがあります.ポートレットは,ウィ ンドウシステムにおけるトップレベルウィンドウに相 当するものと考えることができます.ポートレットア プリケーションはウィンドウシステム上のアプリケー ションとは異なり,Jetspeedと独立したプロセスでは なく,Jetspeed上で動作するJavaのオブジェクトで す.
ポートレットの画面上の構造を図4に示します.

          図4 ポートレットの画面構成



ウィンドウシステムにおけるウィンドウと同様,最大化, 最小化,削除などのボタンを含むタイトルバー部分 と,コンテンツから構成されます. ポートレットには,主として次のような表示モード があります.

  • 通常表示モード
  • Jetspeed上で,通常表示される状態です.

  • 最小表示モード
  • 最小化された状態です.このモードで表示可能な情 報は,タイトルのみです.

  • 最大表示モード
  • ポートレットを最大化した状態で,1つのポートレ ットがスクリーンを占有して表示されます.このモー ドでは,通常表示モードとは異なる内容の情報を表示 させることできます.たとえば,通常表示モードでは 情報の表示をダイジェスト程度にとどめ,最大表示モ ードでは詳細情報を含む多数の情報を表示するといっ たことが可能です.

  • カスタマイズモード
  • ポートレットの状態をカスタマイズするためのモー ドです.このモードは,ポートレットアプリケーショ ンがカスタマイズ機能を提供している場合に使用可能 です.ユーザがタイトルバーのカスタマイズボタンを クリックした場合に,このモードになります.


なお,ポートレット上部のタイトルバーの表示・管 理はポートレットアプリケーションの仕事ではありま せん.ウィンドウシステムでは,ウィンドウのタイト ルバーは通常ウインドウマネージャと呼ばれるアプリ ケーションとは異なる特殊なプロセスが処理を担当し ますが,Jetspeedも同様です.この処理は,ポートレ ットアプリケーションが直接行うのではなく, PortletControlというオブジェクトが担当します(ポ ートレットアプリケーションからタイトルバーのカス タマイズを行うことは可能です).

3.3.1 Jetspeed で提供されるポートレット
ポートレットアプリケーションはプログラマが新規 に作成することも可能ですが,Jetspeedでは多くの汎 用的に使用できるポートレット(標準ポートレット) が用意されています.これらの標準ポートレットをカ スタマイズすることにより,簡単に新しいポートレッ トを作成することが可能です.たとえばHTMLポート レットを使用すると,HTMLファイルを作成するだけ で,そのHTMLをポータルサイト上のポートレットと して表示させることができます.表1に,主な標準ポ ートレットを示します.
Jetspeedで提供されるポートレットの中で重要な役 割を果たしているのが,Velocityポートレットです. Velocityとは,同じApache Jakartaプロジェクトで開 発が進められているテンプレートエンジンで,JSPの ようにコンテンツの出力にプログラムの処理結果を埋 め込むことを可能にする技術です.Jetspeedで提供さ れているポートレットの多くに,Velocityが使用され ています.
もう1つ重要なポートレットが,RSSポートレット です.RSSポートレットは,インターネット上でRSS として提供されている情報をポートレットで表示する ためのものです.RSSは,もともとNetscape社がWeb サイトの見出しや要約をリストとしてWeb上に提供す るために開発したXML形式のフォーマットで,最近 注目を集めている技術です.多くのニュースサイトが RSSで情報提供を行っており,RSSポートレット機能 により,ポータルサイト上で簡単にニュース提供が可 能となります.RSSの上位に 位置する概念としてOCS(Open Content Syndication) がありますが,Jetspeedでは それもサポートしています.

表1 Jetspeed で提供される主な標準ポートレット
標準ポートレット 概要
HTMLポートレット HTMLファイルをポートレットとして表示します
JSPポートレット JSPをポートレットとして表示します
RSSポートレット RSSをポートレットとして表示します
Webページポートレット ネットワーク上からWebページを取り出し,ポートレットとして表示します
XSLポートレット XMLをXSLで変換してポートレットとして表示します
Velocityポートレット Velocityによるコンテンツをポートレットとして表示します


3.3.2 PSML によるポートレット構造の定義
前述のように,Jetspeedでは,スクリーンが複数のペイ ンやポートレットなどにより階層構造で構成されます. Jetspeed上で何のポートレットが使用できるか,また画 面上でそれらのポートレットをどのように表示するかは, PSML(Portal Structure MarkupLanguage)で記述されま す.PSMLは,XMLベースのマークアップ形式で記述しま すが,実際には2つの異なる形式のファイルから構成され ています.
    1) レジストリマークアップ
    Jetspeed上で利用可能なポートレットを定義しま す.リスト1を参照してください.リスト1は,本稿 で作成したサンプルポートレットのためのレジストリ マークアップです.このレジストリマークアップでは, ポートレットアプリケーションを提供するクラスのク ラス名,ポートレットの名称,説明文,属するグルー プ,ポートレットの表示に使用するテンプレートファ イルなど,ポートレットアプリケーションが動作する ために必要な情報をすべて記述します.

    2) サイトマークアップ
    ポートレットの画面表示上の構成を定義します.こ の情報は,ユーザごとに用意されます.画面を何段組 で何色で表示するか,どの位置にどのペインやポート レットを表示するかといったレイアウトやポートレッ トのカスタマイズに関する情報が記述されています.

リスト1 レジストリマークアップ
<?xml version="1.0" encoding="UTF-8"?>
<registry>
    <portlet-entry name="SampleJSP" hidden="false" type="ref"
        parent="JSP" application="false">
        <meta-info>
            <title>SampleJSP</title>
            <description>Simple JSP Portlet</description>
        </meta-info>
        <classname>org.apache.jetspeed.portal.portlets.JspPortlet</classname>
        <parameter name="provides.customization" value="true"/>
        <parameter name="template" value="sample.jsp" hidden="true"
            cachedOnName="true" cachedOnValue="true"/>
        <parameter name="customizeTemplate" value="sample-customize.jsp"
            hidden="true" cachedOnName="true" cachedOnValue="true"/>
        <parameter name="maximizeTemplate" value="sample-maximize.jsp"
            hidden="true" cachedOnName="true" cachedOnValue="true"/>
        <parameter name="action" value="SampleJspAction" hidden="true"
            cachedOnName="true" cachedOnValue="true"/>
        <parameter name="subject" value="no subject" hidden="false"
            cachedOnName="true" cachedOnValue="true"/>
        <parameter name="body" value="no body" hidden="false"
            cachedOnName="true" cachedOnValue="true"/>
        <media-type ref="html"/>
        <url cachedOnURL="true"/>
        <category group="Jetspeed">sample</category>
    </portlet-entry>
</registry>

3.4 Jetspeedのソフトウェア構造
Jetspeedのソフトウェア構造を図5に示します. Jetspeed は,Turbine 上で実装されています. Turbineは,Jakartaプロジェクトで開発されている高 機能で汎用的なWebアプリケーション用のフレームワ ークで,サーブレット上で動作します.Turbineは非 常に多くの機能を提供しており,ユーザ管理,テンプ レート機能,ページ構成の管理,キャッシュ,データ ベースへのアクセス機能など,Jetspeedの多くの機能 は実はTurbineの機能を使用しています.
ECS (Element Construction Set)は,HTMLや XML,WML等のマークアップ言語によるコンテンツ を生成するためのJava APIを提供するJakartaプロジ ェクトのプロダクトです.Jetspeedでは,ECSを用い てポートレットの出力を生成することが可能です. Velocityは前述の通り,Jakartaプロジェクトのテン プレート処理エンジンです.VTL(Velocity Template Language)と呼ばれる,JSPとは異なる独自形式で ページを記述することが特徴です.タグベースではな く,サーブレットエンジン上のみならずスタンドアロ ン型のアプリケーションでも使用可能です.
さらに,Jetspeedではポートレットの出力に Cocoon も使用可能で,TomcatやXMLパーサまで含めると, Jetspeedは非常に多くのApacheプロジェクトの成果 の上に成り立っています.

図5 Jetspeed のソフトウェア構造





 << prev  ↑index  next >>


このドキュメントに関するご意見、ご要望などはまで。


Copyright (C) 2003-2005 Visards, Inc. All Rights Reserved.