J2EEを空虚なインテリジェンスビルにしないために

2003/6/20

 「J2EEを使うことでWebベースのシステム構築が容易になるといわれるが、それは作る側にとって容易というだけで、利用者にとってはどうか」。「JavaWorld DAY 2003」に登場した日立製作所 ビジネスソリューション事業部 ITコンサルティングセンター 主任コンサルタント 尾花学氏の講演は、このような疑問から始まった。

日立製作所 ビジネスソリューション事業部 ITコンサルティングセンター 主任コンサルタント 尾花学氏

 J2EEはJava VM上でプログラムが動作し、プラットフォームに縛られることが少ない。Javaによる開発では、今や実行基盤やユーティリティ群が豊富。さらにコンポーネント化で再利用できる点も支持され、J2EEがWebベースのシステム構築で広く利用されている。J2EEで開発することで、コンポーネント開発が容易になり、負荷分散などスケーラビリティを備えたシステム構築が可能になるというのだ。しかし、尾花氏はこれらJ2EEの特色を「すべて開発者にとって柔軟で、作りやすいシステムを構築できるということ」と指摘。「作る側は容易になるが、業務要件が複雑になってきている中で、企業の生命線となるミッションクリティカルなシステム構築が容易になるはずはない」と断言した。つまり、開発作業自体が楽になったからといって、業務やエンドユーザーの都合を考えないシステム構築をすることに警告しているのだ。

 尾花氏はJ2EEで構築したシステムを“インテリジェンスビル”に例える。高度な機能があっても、ビルに入居する人の都合を考えて機能を組み合わせないと、ユーザーにとって利用しにくい場所になってしまうということだ。そして尾花氏の例えでは、EJBなどのコンポーネントは、ビルというシステム内における“働く人”だ。コンポーネントはそれぞれ特定の機能を持っているが、単体では使用できず、ほかのコンポーネントと組み合わせて機能を実現する点が、“働く人”と同じだという。システム内でコンポーネント同士を連携させるには何がポイントになるのか。尾花氏は、「業務要件を分析して、コンポーネントの状態や振る舞い、実力を認識することが重要。コンポーネントごとの実行条件を明確にすることも大事だ」と述べた。

 尾花氏は具体的な例を挙げて、“開発者にとって容易なシステム構築”の問題点を指摘した。尾花氏はオンラインショッピングサイトで、ユーザーのキーワード検索によって大量のトランザクションが発生し、購入登録のトランザクションが後回しにされるケースを説明。「開発が簡単だからと、検索処理と画面生成、購入登録をアプリケーション・サーバに任せたのが問題」と述べ、「作る側は簡単だが、使う側の都合を考えていない。このようなシステムは企業にとっては致命的な設計ミスだ」と指摘した。

 尾花氏はJ2EEを使ったシステム設計について、3つのアドバイスを挙げた。1つは「コンポーネントをブラックボックスにしない」ということ。コンポーネントごとの実行条件、処理内容を明確にして、システムの複雑性を解消する。また、「J2EEの機能だから使ってみよう」ではなくて、「コンポーネントの機能実装で必要だからJ2EEを使う」という姿勢も重要。業務処理ごとにコンポーネント間のシーケンスを明確にすることも求めた。「コンポーネントごとに自己完結するシーケンス」が理想だ。

(垣内郁栄)

[関連リンク]
JavaWorld DAY 2003
日立製作所

[関連記事]
塩漬けレガシーシステムをどうする? ベンダが本音で提言 (@ITNews)
ゴスリング氏、「Project RAVEは開発ツールを簡単にする」 (@ITNews)
効率的なJava開発、まずはコーディング規約から (@ITNews)
開発者マインドを変えるコンポーネント販売サイト (@ITNews)
オラクル、Javaでも大胆な新戦略 (@ITNews)
.NETとJ2EEの共存時代へ、ボーランド (@ITNews)

情報をお寄せください:



@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)