図1●5種類のコンポーネント群を数社が分担して開発
デュオシステムズは,「CPIC(Customizable Personal Information Components for J2EE)」と呼ばれるJavaコンポーネント生成ツールを利用して開発した。

Javaのソース・コードを生成

 Webアプリケーション・サーバーとしては,実績などを理由に日本BEAシステムズのBEA WebLogic Serverを採用した。ShareStageで開発したWebアプリケーションは,大きく5つのEJBコンポーネント群から成る(図1[拡大表示])。このうち,オートログインの機能を実現するコンポーネントは,デュオシステムズが開発した。開発にあたっては,同社のツール「CPIC(Customizable Personal Information Compornents)」を利用した。

 CPICは,XMLのデータをもとにJavaプログラムのソース・コードを生成するツールである。パーソナライズやユーザー情報を管理するコンポーネントを生成できる。どのようなプログラムを生成するかは,XMLファイルに記述すればよい。そのJavaプログラムで扱うメソッドやデータ型といったビジネス・ロジックを記述する。それを基にXSLTを使って,エンティティBeanやセッションBeanなどを生成する。このツールを利用することで,生産性が向上するとともに,コーディング・ミスも大幅に減る。

 ビジネス・ロジックをXMLファイルにメタ情報として格納しておくことにより,プログラム言語が変わったとしても,ビジネス・ロジックは再利用できる。Javaにもバージョン・アップや仕様変更があるため,「5年後も同じJavaが使えるとは限らない」(デュオシステムズ コンポーネントエンジニアリング事業部長の飯塚 富雄氏)。

 SharaStageでは,オートログインを実現するため,CPICが備えるFormPadというコンポーネントも利用している。HTMLファイルの入力フィールドを解析し,自動的にユーザーIDやパスワードを入力してくれるものである。

各社が開発したプログラムを結合

 Webアプリケーションのコンポーネントのうち,ブックマーク情報を管理するためのコンポーネントには,ワイヤーアクションのDMC(Directory Management Component)を利用した。仮想的にディレクトリ構造を作り,その中にあるファイルや文字列へのポインタを提供する機能を持つ。

 ShareStageでは,ディレクトリやフォルダを作成し,多くのブックマークを整理できる。ただし,そのディレクトリ構造は,DMCが作り出している疑似的なものに過ぎない。ブックマークやファイルは,実際はデータベースに格納している。ワイヤーアクションは,コンポーネントとしてDMCを開発すると同時に,ShareStage用のカスタマイズも施した。

 Webデザインを担当したビジネス・アーキテクツは,HTMLを生成するJSPプログラムまでを開発した。まずWebページをデザインし,次にそのHTMLを生成するスクリプトをJSPで記述していった。

 こうした複数の企業が開発したプログラムを取りまとめたのは日立ソフトである。日立ソフトはJava部品の再利用はせず,すべて新規に開発した。

 ただし,各社の開発は同時進行で進む。サーブレットとEJBなど,互いに依存関係にあるプログラムを別々の企業が同時に開発していることになる。そのため,「システムの連携部分は,お互いに小さな接続用のモジュールを作り,それを使って開発した」(日立ソフトの堀田氏)という。ただし,あくまでサンプルのモジュールに過ぎないので,相互接続するまで不安は残る。

 アプリケーションの開発は,3月と4月の2カ月間。5月には各社で開発したプログラムを結合させ,プログラムの修正,テストを実施した。各社ともかなり堅牢なコンポーネントを開発していたため,アプリケーション同士の接続はスムーズだった。「品質が悪いままで接続テストをしていたら,不具合があっても,どのコンポーネントのバグなのか,切り分けるのは難しかった」(日立ソフトの堀田氏)。

データベース・サーバーはSANで

図2●各部を2重化するなどして,サービスの停止を防ぐ
図に示したもの以外に,メール・サーバーや課金用のサーバーもすべて2重化している。システム全体はNTTコミュニケーションズのデータセンターに設置している。

 ShareStageのシステムは,NTTコミュニケーションズのデータセンター内に設置(図2[拡大表示])。アプリケーション・サーバーやストレージ機器の機種選定は日立ソフト,それ以外のネットワーク機器の選定やネットワーク設計はデータクラフトジャパンが担当した。

 日立ソフトがWebアプリケーションに必要なCPUやメモリーなどのスペックを提示し,それをもとにデータクラフトジャパンが具体的に機種を選定した。データを格納するストレージ機器としてはNASとSANを使い分ける。

 ユーザーごとに50Mバイトを割り当てるディスク・スペースには,NASを使う。SANと比べて価格が安く,ディスクの追加が容易なことが決め手となった。ユーザーがどのくらいのディスクを利用するかがわからないため,とりあえず2Tバイト程度の容量を用意した。ネットワーク・アプライアンスのソフトウエア「Snap Mirror」を使ってミラー化し,障害に備える。

 ユーザー情報やブックマークを格納するデータベースはSANを使って構築した。NASにするとNFS(ネットワーク・ファイル・システム)を利用しなければならないため,データベースで使用するにはやや不安があった。そこで,ローカル・ディスクのようにアクセス可能なSANを採用した。データは1日1回ネットワーク経由でテープにバックアップする。

1ギガビット/秒でネット接続

 ShareStageのサーバーは,いずれも1ギガビット/秒のネットワークに対応させている。「将来的には100万人のユーザーにも対応できるだけのシステムを,という要望があった」(データクラフトジャパン サービス部の二瓶 一久氏)からである。

 インターネットとの接続点には3台のファイアウォールをクラスタ化して設置した。ファイアウォールはチェック・ポイント・ソフトウェア・テクノロジーの「Firewall-1」。ハードウエアは,いずれもサン・マイクロシステムズの「Enterprise 4500」である。「Firewall-1を使って1Gビット/秒のパケットを処理するためには,このくらいのサーバーが必要だった」(データクラフトジャパンの二瓶氏)。

 また,セキュリティを考慮して,Webサーバーとアプリケーション・サーバーの間のやり取りも,ファイアウォールを経由するようにした。万が一Webサーバーが踏み台にされた場合でもアプリケーション・サーバーなどに影響しないようにするためである。