タイトルMDOnline/MJR読者限定WebObjectsセミナー:実際のデモを交えた開発の方法を説明カテゴリーWebObjects, イベント
作成日2000/7/28 22:21:44作成者新居雅行
2000年7月28日に行われた、MDOnline/MJR読者限定のWebObjectsセミナーでは、引き続いてアップルコンピュータのビジネス営業部の石山正太郎氏によるテクニカル面の説明とデモが行われた。

まず、WebObjects自体は長く利用されており、現場からの要望を折り込んできた実践的な開発プラットフォームとして成長してきたソフトウエアである。そして、無制限な同時アクセスが可能なライセンスやマルチプロセッサ対応などハイエンド向けの運用環境をサポートしている。また、オブジェクト指向技術を全面的に採用している。データベースをオブジェクトして見ることができ、テーブル構造やリレーショナル情報を含めてJavaのクラスにオブジェクト化できる。さらに、ユーザーインタフェースとロジックを完全に分離している。HTML部分はデザイナーに依頼するといった方法を取っても、システム全体をスムーズに開発ができる。
そして、フレームワークとして、アプリケーション開発に必要な部品を提供している。WebObjects Framework、Enterprise Objects Frameworks、Foundation Frameworkなど、8000以上の機能を提供している。たとえば、クエリー文字列の処理、メールの発信、全文検索など、さまざまな機能を提供している。WebObjects Framework(WOF)は、ブラウザとのデータのやり取り、セッション管理、HTMLのテンプレートなど、ビジネスロジック外の部分を担当する。AppleStoreのページを例に出し、WOComponentでページ要素のひな形を作り、WODynamicElementによって商品情報を埋め込み、ページが作られている様子が説明された。Eneterprise Objects Framework(EOF)は、データベースやLDAPからデータをオブジェクト化する。データソースアダプタで抽象化されている。テーブルをオブジェクトにマッピングでき、複数のテーブルを集約して1つのオブジェクトとして扱うこともできる。異なるマシンで異なるデータベースをまとめることもできる。さらに、UndoやRedoもサポートしていて、背後ではコミットなどの処理を行っている。開発ツールの上で、データソースとユーザインタフェースの間をドラッグ&ドロップするだけで設定ができるなど、必ずしもソース作成は必要とはしない使い勝手となっている。Foudation Frameworkは、OSに近いレイヤーでフレームワークの中ではいちばん下位の構造となっていて、OSに依存する処理を吸収する。基本データ、コンテナ、時刻などのOSサービス、書式設定のユーティリティもある。クロスプラットフォームを実現するものである。Javaにも同様なクラスもあるが、このフレームワークを使うことで、速度をかせぐことができる。

続いてWebObjectsの開発環境のデモが行われた。よく使われるツールは、統合開発ツールProject Builder、動的HTMLフォームを作るWebObjects Builder、データベースをモデル化するEOModelerの3つである。Project Builderでは1からアプリケーションを作るほか、ウィザードで対話的に作成することもできる。ProjectBuilderはオブジェクトのブラウザやソースコードのエディタがなどが1つのウインドウにまとまっており、開発で利用するさまざまなものをまとめて管理する。WebObjectsBuilderは、グラフィカルにユーザインタフェースを作成できる。コンポーネントをウインドウにドラッグ&ドロップで配置することができる。画面の下半分はオブジェクトブラウザになっていて、データベースとの連動などを指定することができる。EOModelerはデータベースのテーブルをオブジェクト化する。SQLデータベースだけでなく、プレーンテキストを利用することもできる。
映画のデータベースからタイトルを表示すると言うシンプルなアプリケーション作成のデモが行われた。まず、プロジェクトを作成する。プロジェクトの種類としてWebApplicationを選択し、スクラッチから作成するためにNone、言語はJavaを選択した。すると、ProjectBuilderが起動される。スクラッチから作る場合でもスケルトンとなるクラスは作られる。そして、EOModelerを立ち上げて作業をする。データベースとしては、付属のOpenBaseLiteにサンプルとして入っているものを使う。これをEOModelerでオブジェクト化する。モデルオブジェクトを作成する機能を呼び出し、OpenBaseLiteを選び、データベースへのログインが行われる。まず、利用可能なテーブルが一覧表示され、使用するテーブルを選択する。さらに主キーを選択し、リレーションに関する選択を行う。すると、選択したデータベースの中身のスキーマ情報や、テーブルのデータなどが表示される。リレーション情報も得られる。SQLはまったく作成しなくても自動的に一連のデータベース処理が行われている。また、テーブルのリレーション情報をビジュアルに表示することもできる。作成結果をモデルファイルとして保存し、プロジェクトに追加する。テーブルをJavaのクラスにしなければならないが、EOModelerでJavaクラス化するボタンをクリックする。すると、Javaのソースとして保存し、ProjectBuilderに追加される。つづいて、ユーザインタフェースを作成する。タイトルはキーボードから手入力してスタイル付けを行う。さらにフォーム部品からリストを配置する。オブジェクトブラウザからクラスを作成する。データベースから取り出した結果を配列として格納するためにもクラスを作成する。オブジェクトブラウザからフォーム要素にドラッグ&ドロップで結び付け、データベースの内容をリストに表示できるようになる。そして、ソースを追加するなどして、ビルドを行う。
次のデモは、データベースエンジンとしてPostgreSQLを使ったものだ。郵便番号を検索するといったもので、ウィザードを利用しJavaを使ったWebApplicationを作成する。ODBCを経由して別のところで稼働しているredhat Linuxで稼働しているPosgreSQLにアクセスする。ウィザードを使うと、ユーザーインタフェースもその中で指定する場面が出てくる。表示形式などいくつかから選択することができる。ここでは検索結果を表示しながら検索フォームも表示するものを選択した。日本語を表示するために、ソースを少し追加する。そしてビルドした。検索ができることを確かめ、さらに、WebObjects Builderを起動して、メッセージを日本語化する作業に入った。プログラムに手を加えなくても、インタフェースだけを書き換えられて、実際にアプリケーションが日本語で利用できるようになった。

WebObjectsと他のソリューションとの違いは、オブジェクト指向を取り入れて開発効率を高める点にある。また、オープンソースのデータベースPostgreSQLでの稼動も確認されており、スキルがあれば低コストでのシステム開発も可能だ。その他のツールとしては、Webアプリケーションをコーディングなしに作成できるDirect to Webがある。さらにDirect to Javaは、クライアント/サーバタイプのアプリケーションを作成できる。InfoCenterはドキュメントを参照するもので、WebObjectsで作られたアプリケーションとなっている。現在は英語だが、日本語化を考えている。
WebObjectsの運用環境は柔軟に対応できる。アダプタがWebObjectsアプリケーションを呼び出す形式になっている。セキュアにしたい場合、ファイアウォールで作られた緩衝地帯でアダプタのあるWebサーバを稼働し、内部のアプリケーションサーバでアプリケーションを動かすという手法も取ることができる。ソースの変更なしに、自動負荷分散、自動障害復旧処理に対応できる。運用ツールとしては、Monitorを利用できる。統計情報を集めるようなツールも含まれている。

まとめとして、開発モデルとの適合性が説明された。きちんと要件定義を行い、ドキュメントを整備してから実装するのが理想とされてきたが、変化の激しいIT業界では不完全な要件定義や途中の変更は日常茶飯事となっている。こうした状況においても、WebObjectsの生産性の高さは発揮でき、仕様の変更などに追随するということも可能となっている。もちろん、きちんと手順を踏んだ開発プロセスにも十分に対処できることは言うまでもない。
関連リンクWebObjects