Java の開発は 統合開発環境として Eclipse を使うのが一般的です。私も仕事でよく使うのですが、今後使用するかもしれないので、 休日中に、Oracle JDeveloper 11g 調べてみました。
Oracle は数年前に Weblogic アプリケーションサーバで有名な BEA システムズ を買収し、最近 サンマイクロシステムズを買収しました。そのため Eclipse と比較すると、IDE にWeblogicが組み込まれている点と、Oracle 用の SQL開発環境が組み込まれている点が Eclipse に対するメリットと感じました。 Weblogic向けのEJB関係の自動生成機能などは非常に便利で、EJB2.0 のころと比べると作る敷居がかなり下がった印象でした。
デメリットは、Eclipse のような豊富なプラグインでカスタマイズできないことと、日本語ドキュメントの少なさを感じました。そのため、Weblogic と Oracle を使う前提だと強力な統合開発環境ですが、開発は、Tomcat アプリケーションサーバを使ったり、Seaserフレームワークなど様々なフレームワークを使う場合は Eclipse のほうが使いやすいです。
学習するドキュメントについては、英語ですが、Oracle.com – Getting Started: Java が参考になります。はじめは、Oracle JDeveloper 11g のドキュメントを Google でがんばって探したのですが入門レベルの日本語ドキュメントはないようでした。英語は大変ですが上記ドキュメントで学習したほうが早いです。また、このチュートリアルはスクリーンショットがあるので何とかなると思います。
チュートリアルのはじめの章(Step 3)で、簡単な Java のクラスを作成したり、リファクタリング、ビルド、デバッグなどを通して、その作業で、JDeveloper がどのような動きをするのかが理解できます。 休日にVisual Studio 、NetBeans を使ったりしてある程度いろいろな統合開発環境には慣れているのですが、Weblogic がどのように統合されているかなどを理解するためにも、はじめの章は試してみたほうがよいです。所要時間は30分ぐらいです。
また、Step 4 の Build the business logic for an application using EJB 3.0 で Weblogic向けの EJB3.0 と JPA が学習できます。所要時間はこれも30分くらいです。
私の場合はここまでで1時間30分ぐらい掛かりましたが Step 4まで行えば 今後 JDeveloper で J2EE 側の実装が可能になります。Step 5まで行えば、Web層を含めて開発ができるようになると思います。Step 6 ではさらに SOA の学習となります。
今回 JDeveloper 11g をはじめて使ってみましたが、やはり自社製品との連携機能は強力でした。Oracle データベースは、CPUなどのハードウェアの制約がありますが、Oracle XE が無償で使えるので、Weblogic も個人向けに 無償版ライセンスができると、もっと JDeveloper と Weblogic のユーザが増えそうですね。
MySQL が無償で提供しているER 図作成ツールである MySQL Workbench でRBACを拡張したテーブル定義を書いてみました。通常のRBACだと役割とユーザを結びつけますが、「どこのドメイン」の「どのアプリケーション」が役割を持つのかという構造に拡張しました。

RBACを拡張したのテーブル定義
元々、認証・承認の一元管理についていろいろ調べていたのですが、LDAP で承認も含めて一元管理するのはいろいろ大変そうなので断念しました。RBAC についていろいろ調べてみて分かったことですが、RBACd という日本で作られたRBACデーモンがあるようです。RBAC の ER 図に関しては、Google で画像検索をすると参考になる図がいくつか見つかりました。(参考1, 参考2)
Oracle9iとTomcat6をインストールした時もポート番号が干渉して再設定が必要でしたが、Oracle10g XE でも同じようです。そのためポート番号を変更するには以下の手順が必要になります。
設定が終わったら、ブラウザでhttp://127.0.0.1:18080/apex/に接続して、ブラウザベースの管理画面が出ることを確認すればよいと思います。Oracle XDBは、XMLのデータ管理に最適化されているようです。
systemユーザで接続。
C:\Documents and Settings\a>sqlplus system@xe
Oracle Database 10g Express Edition Release 10.2.0.1.0 - Production
に接続されました。
dbms_xdb.gethttpport()で現在のポート番号確認.
SQL> select dbms_xdb.gethttpport(), dbms_xdb.getftpport() from dual;
DBMS_XDB.GETHTTPPORT() DBMS_XDB.GETFTPPORT()
---------------------- ---------------------
8080 0
pl/sqlの書き方で、dbms_xdb.sethttpport関数を呼び出して設定.
SQL> begin dbms_xdb.sethttpport('18080'); end;
2 /
PL/SQLプロシージャが正常に完了しました。
変更を確認
SQL> select dbms_xdb.gethttpport(), dbms_xdb.getftpport() from dual;
DBMS_XDB.GETHTTPPORT() DBMS_XDB.GETFTPPORT()
---------------------- ---------------------
18080 0
Windowsマシンに、Tomcat6.0とOracle9iをインストールしてテストしていたら8080ポートが使えない事がわかりました。どうやらOracle9iインストール時に、カスタマイズせずにウィザードでインストールを行うと、かいろんな機能をインストールするため8080ポートを使っていることがわかりました。
デフォルトのインストール時のウィザードでは、特に何も変更せずにインスタンスを作ると、以下のような機能が組みこまれます。それでOracle9iの場合は、Oracle XMLDBがftpとWebDAVを使うために8080ポートを予約していました。
- Oracle JVM – Java機能の強化
- interMedia – 動画や音楽などマルチメディア・データの管理を容易にする機能
- Oracle Text – テキスト検索に特化した機能
- Oracle XMLDB – XMLデータベース
再インストールする必要はなく、以下の手順でポート番号を変更できます。
- Database Configuration Assistantを起動
- データベース内のデータベース・オプションの構成 を選択して次へ
- 使用可能なデータベース を選択して次へ、
- 標準データベース・オプション を選択するとダイアログが表示される
- Oracle XML DB の横の”カスタマイズ” を選択すると上記の画像が表示される
- あとは、XMLDBプロトコルをしよう不可にするか、ポートを変更