Oracle JDeveloper 10gによる視覚的なJ2EEのWeb開発

アプリケーション開発ツール
Oracle JDeveloper 10g によるビジュアルな J2EE の Web 開発
Chris Schalk, Oracle Corporation
概要
2003 年 6 月にサンフランシスコで開かれた Java One カンファレンスにおいて、Sun は Java を企業開発者の世界に送り込
む、新しいイニシアチブを発表しました。目標は、従来から高度なテクノロジ・ソリューションを設計することよりも、
ビジネスの問題点を解決することに力を注いでいた、何百万もの新しい基幹業務アプリケーション開発者を取り込むこと
ために、Java 開発全体を簡便にすることでした。
このプラットフォームのシフトを成功させるには、Java 自体が進化しさらに使いやすくなることと、統合開発環境(IDE)
がよりユーザーフレンドリーで宣言的かつ視覚的な開発機能を提供できるようになることが必要です。
Java の進化は、Sun の JCP(Java Community Process)を通じて既に進行中です。JCP はコミュニティドリブン型の JSR(Java
Specification Requests)を使用して、Java プラットフォームを進化、革新させています。J2EE(エンタープライズ Java プ
ラットフォーム)の新しいリリースには、特に Java の全体的な使いやすさを改善することに焦点をあてた、新しい JSR
が含まれます。注目すべき新しいテクノロジには、エンタープライズ Java アプリケーションの Thin クライアントのユー
ザー・インタフェースを構築するための標準的な方法である JavaServer Faces(JSR 127)、PHP や Perl に類似したシンプ
ルな Java スクリプト言語を提供する JSR 223、およびあらゆるデータ・ソースにアプリケーションをデータ・バインドす
るシンプルな方法を提供する JSR 227 が含まれます。これに伴い、オラクルは JSR 127 および 227 の両方で、重要なリー
ダーシップの役割を果たしています。
Oracle JDeveloper 10g(リリース 9.0.5)は、Java IDE がより宣言的、視覚的な開発アプローチへと進化していることを表
しています。このホワイト・ペーパーでは、シンプルな人事管理のサンプル・アプリケーションのデモを使用して、Oracle
JDeveloper 10g の新しいビジュアル開発機能を紹介します。
ADF の導入
Oracle JDeveloper 10g で導入された新しい ADF(Application Development Framework)は、J2EE アプリケーションを迅速
かつ宣言的に構築するための、よりシンプルでより生産的な環境を開発者に提供します。
ADF の主な目標は、視覚的、宣言的な開発環境を提供することで、J2EE 開発の複雑性を軽減することです。ユーザーは、
数多くの J2EE コンポーネントを手動でコーディングするかわりに、シンプルな宣言的ジェスチャによって作成すること
ができ、コーディング作業ではなくアプリケーションそのものに集中できます。
ADF と MVC
ADF は、図 1 に示すように、MVC(Model-View-Control)設計方法論を実装することで基幹業務アプリケーションへの最
も実用的なアプローチを提供します。MVC 設計方法論により、中間層または Model コードはユーザー・インタフェース
(View)コードとは別に保たれ、異なるクライアント・テクノロジに対する互換性を持つ View が実現します。MVC のも
う 1 つの利点は、その Controller 概念です。MVC Controller は、アプリケーションのユーザー・インタフェースが多くの
ユーザー・インタフェース・コンポーネントとどのように対話するかを管理する、ユーザー・インタフェース・トラフィッ
クの監視官のようなものです。これは、ページ・フローとしても知られています。
Oracle JDeveloper 10g による視覚的な J2EE の Web 開発
1
Paper # 40256
Oracle Corporation 発行「VISUAL J2EE WEB DEVELOPMENT WITH ORACLE JDEVELOPER 10G」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
ADF は、MVC の各セグメントにテクノロジを提供することで MVC を実装します。View においては、ADF は異なる J2EE
クライアントまたは View テクノロジに対して、一貫した視覚的かつ宣言的な環境を提供します。
Controller セグメントにおいては、ADF は事実上の J2EE Controller 標準である、Struts を使用して操作を行う視覚的環境
を提供します。Struts に加えて、ADF は ADF Controller(ADFc)として知られる別の Controller テクノロジも提供します。
MVC の Model 開発のために、ADF は Business Components for Java として知られている ADF Business Components に加え、
Web サービス、EJB(Enterprise JavaBeans)、シンプル Java Beans および TopLink などの様々なデータ・ソースからデー
タにアクセスする、一貫性を持つシンプルな方法を提供します。
図 1: ADF テクノロジの一覧
ADF アプリケーションとテンプレート
Oracle JDeveloper の以前のバージョンでは、Java 開発の初心者にとってアプリケーションの構築時の無数の異なる J2EE
テクノロジの選択は困難なものでした。Java/J2EE 開発の初心者ために、より詳しいガイドを提供する、テクノロジ・ス
コープという新しい概念が導入されました。テクノロジ・スコープでは、ユーザーが自分の開発環境で、アプリケーショ
ン・テンプレートを使用しカスタマイズできる J2EE テクノロジのサブセットを、論理的にグループ化します。アプリケー
ション・テンプレートにより、ユーザーはどのテクノロジ・スコープを設計時に使用するかをカスタマイズでき、開発作
業を合理化および簡便化できます(図 2 を参照)。
Oracle JDeveloper 10g による視覚的な J2EE の Web 開発
2
Paper # 40256
Oracle Corporation 発行「VISUAL J2EE WEB DEVELOPMENT WITH ORACLE JDEVELOPER 10G」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
図 2: ADF アプリケーションの作成
例えば、Web アプリケーション開発者は、Web 開発にのみ関連するテクノロジのサブセットをユーザーに提供する、デ
フォルトの Web アプリケーション・テンプレートを使用できます。これに対し、Java クライアント開発者は、クライア
ントに関連するテクノロジ・スコープのセットが作成ダイアログ・ボックスで提供される、別のアプリケーション・テン
プレートを使用できます。図 3 にこれらのスコープの例を示します。
Oracle JDeveloper 10g による視覚的な J2EE の Web 開発
3
Paper # 40256
Oracle Corporation 発行「VISUAL J2EE WEB DEVELOPMENT WITH ORACLE JDEVELOPER 10G」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
図 3: ADF アプリケーション・テンプレートおよびテクノロジ・スコープ
アプリケーション・テンプレートのもう 1 つの主要な利点は、アプリケーション作成時にデフォルト・プロジェクトが、
自動的に作成されるように定義できるという点です。
例えば、デフォルトの ADF Web アプリケーションを作成する場合、
Model および ViewController という 2 つのサブプロジェクトが自動的に作成され、これらによって MVC 設計アプローチ
を使用した J2EE のベスト・プラクティスが補強されます(図 4 を参照)。
図 4: ナビゲータのデフォルト ADF Web アプリケーション
Oracle JDeveloper 10g による視覚的な J2EE の Web 開発
4
Paper # 40256
Oracle Corporation 発行「VISUAL J2EE WEB DEVELOPMENT WITH ORACLE JDEVELOPER 10G」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
また、Oracle JDeveloper 10g の Application Navigator が、J2EE アプリケーションのシンプルなビューを提供します。アプ
リケーションの必須ファイルのみが表示されるため、一時ファイルや生成ファイルなどによる混乱はありません。
完全な視覚的開発
テクノロジ・スコープ、テンプレートおよびナビゲータによる J2EE アプリケーションのシンプルな表示に加え、Oracle
JDeveloper 10g では複数の設計ウィンドウ間での一貫した視覚的開発環境により、実際の開発作業も簡便になります。
Structure Pane、Property Inspector、Visual Editor、Code Editor および Component Palette を含む各ウィンドウは、すべて相互
に同期され、複数ウィンドウからの同時編集も可能です。例えば、Code Editor と Visual Editor を同時に使用して、JSP を
編集することができます。また、Structure Pane を使用して JSP を編集することも可能です。
Model の視覚的構築
ADF の中間層ビジネス・ロジック、あるいは「Model」を構築する場合、開発者には多くの選択肢があります。幸いにも、
開発者はあらゆるタイプのモデル・テクノロジに対して、完全な視覚的開発環境を使用できます。例えば、開発者が EJB
をモデル・テクノロジとして使用する場合、開発者は UML(Unified Modeling Language)モデリング機能を使用して、EJB
を視覚的に構築できます。同様に、ADF Business Components または Web サービスを構築する場合、開発者は視覚的なモ
デリング・アプローチを使用できます。
ADF Business Components を使用して、モデルを視覚的に構築する方法について詳しく見てみましょう。最初に、オープ
ン・データベース接続を参照し、データベース表を空の UML 図にドラッグ・アンド・ドロップすることで、データベー
ス・エンティティを作成できます(図 5 を参照)。
図 5: データベース・エンティティを図にドラッグ・アンド・ドロップ
これで、ADF Business Components エンティティ・オブジェクトが視覚的に定義されました。次のステップは、これら
のオブジェクトのハイレベル・コンテナとして機能する ADF Application Module を作成します。Component Palette から
「Application Module」項目を、UML 図にドラッグ・アンド・ドロップします(図 6 を参照)。
Oracle JDeveloper 10g による視覚的な J2EE の Web 開発
5
Paper # 40256
Oracle Corporation 発行「VISUAL J2EE WEB DEVELOPMENT WITH ORACLE JDEVELOPER 10G」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
図 6: Application Module の追加
これで、空のアプリケーション・モジュールが作成されました。これに、前のステップで作成したデータベース・エンティ
ティ・オブジェクトを入れていきます。これにより、データベース・エンティティ・オブジェクトを示す ADF View Objects
で構成される、最終的なデータ・モデルが生成されます。エンティティ・オブジェクトをアプリケーション・モジュール・
コンテナ・オブジェクトにドラッグ・アンド・ドロップ(図 7 を参照)すると、関連する ADF View Objects が自動的に
作成されます。
図 7: エンティティ・オブジェクトからのデータ・モデルの作成
Oracle JDeveloper 10g による視覚的な J2EE の Web 開発
6
Paper # 40256
Oracle Corporation 発行「VISUAL J2EE WEB DEVELOPMENT WITH ORACLE JDEVELOPER 10G」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
これで、ADF モデルができあがりました。必要に応じて、図のコンテキスト・メニューから適切な「プロパティ」ウィ
ザードを、直接呼び出して追加のビジネス・ロジックを追加できます。次に、このシンプルなアプリケーションの View
および Controller 部分の構築に進みます。
View および Controller のページ・フローの視覚的構築
ページ・フロー・モデリング機能により、アプリケーション全体のページ・フローを、ハイレベルで優位な位置から視覚
的に図形化できます。この機能を使用すると、すべてのアプリケーション・オブジェクト、関係および論理フローをマッ
プアウトできます。このハイレベルな設計アプローチにより、開発者は基幹業務アプリケーションの開発において、すべ
てのアプリケーション・コンポーネントおよび Web アプリケーション・コンポーネント間の相互関係を追跡するという、
非常に複雑なタスクを大幅に簡素化する完全なトップダウン型アプローチを実現できます。
ページ・フローの開始
新しいクライアント・アプリケーションを開始する場合、空のページ・フロー図の新規作成から始めます。Component
Palette を使用して、Web アプリケーション・コンポーネントを図にドラッグ・アンド・ドロップします(図 8 を参照)。
このサンプル・アプリケーションでは、「Welcome」ページから始まり、「Login」ページがこれに続きます。
図 8: 新しいページ・フローの開始
新しいページを作成するとそれらが表示され、ページ項目をダブルクリックすることで、図に示されている実際のページ
を生成できます。次のステップでは、「Welcome」ページから「Login」ページへのナビゲーション・リンクを作成しま
す。これは、Component Palette で「Forward/Link」項目をクリックし、「Welcome」ページ、続いて「Login」ページを
クリックすると作成されます。これで、この 2 つのページの間にダッシュ線が表示され、実際には、「Welcome」ページ
から「Login」ページへの Struts リンクが挿入されます。
Oracle JDeveloper 10g による視覚的な J2EE の Web 開発
7
Paper # 40256
Oracle Corporation 発行「VISUAL J2EE WEB DEVELOPMENT WITH ORACLE JDEVELOPER 10G」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
ページの視覚的設計
この時点で、「Welcome」ページと「Login」ページの実際のコンテンツの設計を開始できます。図のページ・アイコン
をダブルクリックし、JSP ビジュアル・エディタにジャンプして各ページを編集します。「Welcome」ページでは、ヘッ
ダー・イメージを視覚的に追加します。これは、単にイメージをデスクトップや開いたブラウザから、ページにドラッグ・
アンド・ドロップすることで行えます。その後、「Welcome」ページの外観や内容を、ビジュアル・エディタの上部にあ
る HTML 設計ツールバーを使用して、カスタマイズできます。図 9 に「Welcome」ページの例を示します。
図 9: 「Welcome」ページの作成
次に「Login」ページのカスタマイズを行います。まず、ユーザー入力を処理し、妥当性/入力エラーをレポートする
Component Palette から Struts タグをドロップします。Component Palette を Struts HTML ページに切り替え、Struts Form タ
グをドロップします。これにより、ビジュアル・エディタにダッシュ線の長方形が作成されます。次に、HTML フォー
ム要素を追加しますが、その前に、フィールド要素にフォーマットを提供するために HTML 表を追加します。HTML 表
を追加するには、Component Palette を標準の HTML 要素に切り替え、表要素をキャンバスの Struts フォームにドラッグ
します。これで、表がフォーム・タグの中に入ります。表をドロップするとき、表の初期視覚属性をカスタマイズするた
めのダイアログ・ボックスが表示されます。この例では、2 つの列と 3 つの行を持つ HTML 表を作成します。
次に、「Username:」および「Password:」プロンプトを、表の左のセルに追加します。
重要な注意: このステップでは、国際化のために Struts メッセージ・タグを使用できますが、この例ではページへのハー
ドコードにとどめます。このアプリケーションを後で国際化する場合、すべてのプロンプトを、リソース・ファイルの多
言語メッセージを参照する Struts メッセージ・タグに置き換えます。
Oracle JDeveloper 10g による視覚的な J2EE の Web 開発
8
Paper # 40256
Oracle Corporation 発行「VISUAL J2EE WEB DEVELOPMENT WITH ORACLE JDEVELOPER 10G」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
右側のセルに、Struts テキスト・フィールドとパスワード・タグをドロップします。下のセルに、Struts 送信タグを追加
します。最後のステップとして、Struts エラー・タグをドロップします。このタグは、ログイン妥当性エラーが発生した
場合に、これをレポートします。「Login」ページは図 10 のようになります。
図 10: 「Login」ページの作成
ページ・フローの設計に戻ります。現在、ページは 2 つのみです。ここで、受信するログイン・パラメータを処理するア
クションを追加する必要があります。追加するためには、Component Palette からアクション項目をページにドラッグ・ア
ンド・ドロップします(図 11 を参照)。この Struts アクションに「processlogin」という名前を付けます。このアクショ
ンは、受信する入力フィールドを処理します。このアクションで、妥当性チェックに失敗した場合、ユーザーは「Login」
ページにリダイレクトされ、ログイン・フィールドに適切なエラー・メッセージが表示されます。ログインに成功すると、
ユーザーはアプリケーション・メニュー・ページに移動します。ユーザーの資格証明に応じて、processlogin アクション
は admin または user ロールを割り当て、続いて表示されるアプリケーション・メニュー・ページは、ユーザーのロール
によって異なります。
Oracle JDeveloper 10g による視覚的な J2EE の Web 開発
9
Paper # 40256
Oracle Corporation 発行「VISUAL J2EE WEB DEVELOPMENT WITH ORACLE JDEVELOPER 10G」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
図 11: ProcessLogin アクションの作成
アプリケーション・メニュー・ページ(図 12)には、ユーザーのロールに応じて 2 つまたは 3 つの選択肢が表示されま
す。標準の user ロールの場合、「Status」と「Browse Employees」の 2 つの選択肢が表示されます。admin ロールの場合、
3 つ目の「Edit」も選択肢として表示されます。このロール・チェックは、JSTL(JavaServer Pages Standard Tag Library)
から If 文(タグ)を使用してロール・セッション変数を確認することで実行されます。
JSTL も Java Community Process で開発されたもので、JSP アプリケーション開発に反復、条件付きなどの共通の機能を加
え、JDeveloper 10g と密接に統合されています。
Oracle JDeveloper 10g による視覚的な J2EE の Web 開発
10
Paper # 40256
Oracle Corporation 発行「VISUAL J2EE WEB DEVELOPMENT WITH ORACLE JDEVELOPER 10G」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
図 12: アプリケーションのメニュー・ページの設計
次に、ページ・フロー設計に戻り、メニュー・ページに表示する 3 つの選択肢を作成します。まず、「Browse Edit」ペー
ジを作成します。これを作成するには、最初に、図 13 に示すように Data Action をページ・フローにドラッグ・アンド・
ドロップします。Data Action は、ADF モデルからデータを抽出するためのカスタム Struts アクションです。
Oracle JDeveloper 10g による視覚的な J2EE の Web 開発
11
Paper # 40256
Oracle Corporation 発行「VISUAL J2EE WEB DEVELOPMENT WITH ORACLE JDEVELOPER 10G」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
図 13: Data Action の追加
この Data Action の次に、Data Action から ADF データを受け取り、ページにブラウズ可能な従業員データを表示する
新しい「browse_emps」ページを追加します。図 14 に、「Browse」ページの追加方法を示します。
図 14: Data Action に続く「Browse」ページの追加
Oracle JDeveloper 10g による視覚的な J2EE の Web 開発
12
Paper # 40256
Oracle Corporation 発行「VISUAL J2EE WEB DEVELOPMENT WITH ORACLE JDEVELOPER 10G」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
Data Action を新しい「Browse」ページにリンクさせ、「Browse」ページを視覚的に編集します。これには、ユーザーが
従業員データをブラウズするための、特定の視覚的コントロールとのデータ・バインディングが含まれます。ページをデー
タ・バインディングするために、ADF Databinding Palette を使用します。このウィンドウでは、すべての中間層 Model デー
タがツリー構造で表示されます。データ項目をページに直接ドラッグ・アンド・ドロップできます。データ・バインディ
ング・パレットの下部に表示されるドロップダウン・リストでは、どのコントロール・タイプをページにバインドするか
を、ユーザーが指定できます(図 15 を参照)。
「Browse Employee」ページでは、EMP 表に対して「Read-Only Form w/Navigation」コントロール・タイプを選択します。
図 15: 「Employee Browse」ページのデータ・バインディング
ドラッグ・アンド・ドロップをデータ・バインディングすると、このページには Employee 表の移動可能な読込み専用
フォームが含まれます。このフォームは、実際は Employee 属性をレンダリングする埋込み JSTL c:out タグを持つ HTML
の抜粋です。
アプリケーション開発の最終ステップは、残りの「Edit」ページの構築です。前の処理と同様に、Data Action を作成し
て、新しい「Edit」ページを作成します。また、シンプルな「Status」ページも作成し、ページ・フロー図を完成します
(図 16 を参照)。
Oracle JDeveloper 10g による視覚的な J2EE の Web 開発
13
Paper # 40256
Oracle Corporation 発行「VISUAL J2EE WEB DEVELOPMENT WITH ORACLE JDEVELOPER 10G」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
図 16: ページ・フローへの「Edit」ページの追加(完成)
「Edit」ページを視覚的にカスタマイズする場合、ここでは図 17 に示すようにレコードのナビゲーションおよび編集を可
能にする、別のコントロール・タイプにデータ・バインディングします。
Oracle JDeveloper 10g による視覚的な J2EE の Web 開発
14
Paper # 40256
Oracle Corporation 発行「VISUAL J2EE WEB DEVELOPMENT WITH ORACLE JDEVELOPER 10G」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
図 17:「Edit」ページのデータ・バインディング
これで、アプリケーションが完成しました。「Welcome」ページで右クリックして「Run」を選択すると、JDeveloper の
Embedded OC4J エンジンで、アプリケーションをテスト実行できます。アプリケーションが実行されたら、scott/tiger と
してログインしてロールのロジックが機能しているかを確認し、その後 system/manager としてログインして、追加の編集
オプションを確認できます。図 18 に最終的な実行アプリケーションのスクリーンショットを示します。
Oracle JDeveloper 10g による視覚的な J2EE の Web 開発
15
Paper # 40256
Oracle Corporation 発行「VISUAL J2EE WEB DEVELOPMENT WITH ORACLE JDEVELOPER 10G」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.
アプリケーション開発ツール
図 18: アプリケーションの実行
まとめ
Java がさらに企業および開発者フレンドリーなプラットフォームへと向かってゆっくりと進化している中、Oracle
JDeveloper 10g はすでに、より生産的、宣言的そして完全なビジュアル開発環境の提供で、大きな進歩を遂げています。
それは、高度な第 3 世代言語(3GL)Java 開発よりも、ビジネス・ソリューションの実現に焦点を絞っている、多くの従
来の基幹業務アプリケーション開発者を魅了しています。標準への準拠に対して妥協したり、既存の技術的機能を削除す
る必要はありません。
Oracle JDeveloper 10g による視覚的な J2EE の Web 開発
16
Paper # 40256
Oracle Corporation 発行「VISUAL J2EE WEB DEVELOPMENT WITH ORACLE JDEVELOPER 10G」の翻訳版です。
Copyright © 2003 Oracle Corporation All rights reserved.