連載第11-1回
UMLの基礎と応用
(株)NTTデータ 技術開発本部 副本部長
山本修一郎
本連載ではこれまで10回にわたってUMLの持つ各種の図式について説明してきた。今回は、これらの図式がどのようにして利用されたり拡張されたりしているかを知るために、Webアプリケーション設計へのUMLの適用例について調べてみよう。はじめにWebアプリケーションの構成を説明し、次いでUMLを用いたWebアプリケーション設計法の例を紹介する。
■Webアプリケーションの構成
Webアプリケーションの論理的なアーキテクチャーの例をパッケージ図で図1に示そう。
このWebアプリケーションアーキテクチャーは、Webブラウザ層、Webサーバー層、アプリケーション層、データ層からなる4階層モデルである。
Web ブラウザ層には、Webブラウザとクライアントスクリプト、Javaアプレットなどがある。クライアントスクリプトはHTMLページに埋め込まれたJavaScriptやVBScriptなどである。またWebブラウザがHTTPでWebサーバーと通信する。同様にJavaアプレットがRMI(Remote Method Invocation)でサーバー上のビジネスオブジェクトと通信する。
またIIOP(Internet Inter-ORB Protocol)とRMIを組合わせてサーバー上のオブジェクトとCORBAで通信することもできる。
Webサーバー層にはWebサーバーとクライアントページがある。クライアントページはHTMLで記述されたページでクライアントスクリプトにより機能を拡張することができる。クライアントページはサーバーページの処理の結果として生成されたり、クライアントページからサーバーページへのリンクが張られたりする。
アプリケーション層には、APサーバー、サーバーページ、ビジネスオブジェクトなどがある。
APサーバーでは、ビジネスロジックに対応するアプリケーションをサーバー上で実行する。アプリケーションはサーバーページとして実現する方法とビジネスオブジェクトとしてコンポーネント化する方法、CGIを用いる方法などある。図1ではCGIによる方法は省略した。さて、サーバーページはJSPやASPなどのサーバー上で実行されるスクリプトで記述されたWebページである。サーバーページを用いることにより、ビジネスロジックを実現するコンポーネントやデータベース、外部システムなどをアクセスできる。
データ層には、データベースや既存システム、他のWebシステムなどがある。ところでオブジェクトがデータベースやファイルに保存され、プログラムの実行終了後もその状態や属性の値が保存されるとき、そのオブジェクトが永続的(persistent)であるという。UMLではクラスの属性は一時的か永続的かを指定できるし、クラスも永続的かどうかを指定できる。いずれにしろ、データ層にはデータだけでなく外部システムも含めて、プログラムの実行とは独立に存在するものを置くということである。
■UMLによるWebアプリケーションのモデル化の課題
さて、UMLを用いて、これらの構成要素から構成されるWebアプリケーションをモデル化する上での課題を列挙すると次のようになるだろう。
・Webページやサーバーページ、スクリプトなどをどのようにモデル化すればいいのか?
・Webページ間のリンクによるナビゲーションをどのようにモデル化すればいいのか?
・クライアントとサーバー間の通信関係をどのようにモデル化すればいいのか?
・UMLのどの図を用いればいいのか?
・どんな手順でモデル化していけばいいのか?
それでは、具体的なWebアプリケーションのモデル化手法の例を見てみよう。
■コナレンのWAE(Web Application Extension)[1] [2] [3] [4]
コナレンはWebアプリケーションをモデル化するためにUMLのステレオタイプを用いて、クラスと関係を拡張している。コナレンのWAEの特徴は、Webアプリケーションの構成要素とその関連を自然に拡張されたクラス図で表現できることである。
◆クラスステレオタイプ
コナレンが拡張した主なクラスステレオタイプには、表1に示すように、サーバーページ、クライアントページ、フォーム、フレームセット、ターゲットなどがある。
サーバーページはサーバーによって実行されるスクリプトを持つWebページに対するクラスである。クライアントページはWebブラウザにより表示されるHTML形式のWebページに対するクラスである。フォームは<<form>>タグで表される入力フィールドから構成されるクラスである。ターゲットはWebページが表示されるWebブラウザウィンドウの名前を持つ区画に対するクラスである。またこれらのクラスに対して、分かりやすいアイコンが提案されている。
これらのアイコンを用いて作成された図はもちろんクラス図である。
◆関連ステレオタイプ
コナレンが拡張した主な関連ステレオタイプには、表2に示すように、リンク、ターゲットリンク、フレームコンテンツ、送信、構築、リダイレクト、IIOP、RMIなどである。
リンク関連<<links>>はクライアントページから別のクライアントページやサーバーページへのリンクを表す。ターゲットリンク関連<<Target
link>>は別のターゲットページで表示されるような現在のページと関連するページを表す。フレームコンテンツ関連<<Frame
Content>>は別のページやターゲットページのプレームの内容を表す。送信関連<<submits>>はフォームがサーバーページにより、フィールドの値をサーバーに送信する関連を表す。構築関連<<builds>>はサーバーページが指定されたクライアントページを生成することを表す。リダイレクト関連<<redirects>>は別のWebページとの間のリダイレクト関連を表す。