Java & WebSphere についてのいろいろ


Java

Java も 1.5 になって、ここからリリースは 5.0 になるそうです。
内容もかなり新しくなっていて、これはなかなか面白そうです。

J2SE 開発キット 5.0 の導入
i5/OS で JDK 5.0 (1.5)
i5/OS で JDK 5.0 (1.5) を実際に稼動させてみました
i5 で J2SE 5.0 (実行環境の設定)
i5 で J2SE 5.0 (新機能を使ってみる)
V5R4 での JDK 1.5/5.0 (64bit/32bit)

初心者向けに本当に初歩から、そして初心者をようやっと脱出した(と本人が思っている)人にも改めて基礎を問い直すような本が最近二つも出ました。「ひとつ上をゆく Javaの教科書」と「Javaプログラマガ知ツテオクベキコト」です。

また、同様に"オブジェクト指向とは"という原点に返って考える本も出ています。「なぜ、あなたはJavaでオブジェクト指向開発ができないのか―Javaの壁を克服する実践トレーニング」や(こちらは Java に限定してはいませんが)「わかるオブジェクト指向 豆蔵セミナーライブオンテキスト」ですね。さらに、オブジェクト指向の考え方、モデリングということでは「UMLによるオブジェクト指向モデリングセルフレビューノート」があります。

こういった"基本に戻って""改めて"考え直す、捉え直すような本が出てくるようになった、ということが、少なくとも日本では Java がプログラミング言語としての地歩を固めた、ということでもあるでしょうし、Java のプログラミング言語としての成熟を表すものでもあるのでしょう。
1.0 のころから Java を知っている人間には隔世の感がありますね。すごいことです。

オープンソース

オープンソース関係の話題をちょっと集めてみました。

Java オープンソース・ソフトウェアのソースを見る (Derby)

Enterprise Java

直下パラグラフのEJB 2.0 についての記述がまだそのままですが、EJB 3.0 というのはさらに大きなジャンプですね。2.0/2.1 がステップで 3.0 では大きくジャンプできるのか、興味深いものがあります。
本もけっこういろんなものが出てきていて、たとえば「Pro EJB 3: Java Persistence API 」などは EJB 3.0 のスペック・リードであり Java EE 5 エキスパート・グループのメンバーでもある Michael Keith によるものですし、「Beginning EJB 3: From Novice to Professional 」は Oracle Application Server の"consulting product manager and SOA evangelist " の人によって書かれています。("has been the lead product manager for EJB design-time features in Oracle JDeveloper since the EJB 1.1 specification" だそうです)
定番の二冊もそれぞれアップデイトされています。「Mastering Enterprise JavaBeans 3.0」の作者は Ed Roman じゃなくて "staff engineer in the technology outreach group at Sun Microsystems" の Rima Patel Sriganesh という人になっていますが、 「Enterprise JavaBeans 3.0 (5th Edition)」の作者は引き続いて Bill Burke と Richard Monson-Haefel で、ちゃんと JBoss 用の Workbook もついていそうです。
日本語でも「マスタリングJavaEE5」(現在は第二版が出ています)とか「標準EJB 3.0プログラミング」といった本が出ていますね。
JBoss徹底活用ガイド」にも EJB 3.0 の解説が載っています。

EJB 2.0 というのはかなり大きなジャンプですね。Java が Java 2 になった時と同じワクワク感があります。
EJB の 1.1 なんかもまさしく JDK の 1.1 の時のような、面白そうなんだけど、ちょっといまひとつかな、といったところが似たかんじだったような気がします。
Java はその JDK 1.1 から Java 2 になって本格的に花開いたんですものねえ...ここのところ J2EE がちょっと面白そうかな、といった感があります。
WebLogic/JBoss/JRUN と EJB 2.0 対応の J2EE サーバーが出揃いつつある中、IBMサンはいったいどういうつもりなんでしょうか。早く出してくれないかなあ ... (もう今は IBM から WebSphere の V5.0 というのが出ています)

EJB 2.1 についても、もう「Applying Enterprise Javabeans 2.1: Component-Based Development for the J2EE Platform」という本がでています。

J2EE SDK も 1.4 Developer Release がダウンロードできるようになっていますし、チュートリアルもあります。

とりあえずは EJB の基礎ともなる RMI のごくごく基礎的なお話から ...

RMI (Remote Method Invocation): 基礎の基礎

オープンソースの EJB 2.0 対応のサーバーで JBOSS というものがあります。ちょっと動かしてみている程度、というか導入して稼動させてみているだけですが、おいおいいろいろ見ていきたいと思っています。なかなか面白そうな製品ではあります。

Domino とも iSeries とも基本的には関係ないのですが、最近は JBOSS 関係のものが多くなってきちゃってますね。(iSeries でも稼動しますので ... でもここではいろいろ諸般の事情で PC で稼動させた場合の記事がほとんどになると思いますが)
せめて PC版でいいから次期 WebSphere が出ないことには EJB 2.0 の学習もできないし、まあ仕方がないかなと思ってます。このサイトの看板からはちょっとずれますが、「Java」関係だからいいでしょ?!
(WebSphere の EJB 2.0 対応版ということで V5.0 が出ましたが、これが信じられないくらい重いのでやっぱり今後も JBoss は使うことになりそうです)

ちなみに今現在の最新は 3.0.7/3.2.1 です。ひょっとして今現在 iSeries で唯一稼動する EJB 2.0 対応の J2EE サーバーかもしれませんね?!
[今は WebSphere Application Server V5.0 が出て「唯一」ではなくなりましたけど]

JBoss については開発者が書いているオンラインドキュメント(有料)「JBoss 3.0 Deployment and Administration Handbook 」などが参考になります。「Core Jboss 3.X: J2EE Application Development and Deployment」(←これって「コア」シリーズで出るんですね!! 「コア Java」とか「コア・サーブレット & JSP」と同じ) という本も出ることになっていますので、こちらも楽しみです。
JBoss 4.0 Official Guide」というのもあります。

最近 (2005/07) では「JBoss: A Developer's Notebook」という本が出るようです。(「Java 5.0 Tiger 開発者ノートシリーズ」と同様な "開発者ノート"シリーズですね)

JBoss 3.2.x/4.0.x からは Web でドキュメントが公開されています。こちらを参照してみてください。

日本語では「JBoss 入門」という本がでています。これはよくまとまっていて、EJB の入門としても JBoss の解説書としても過不足なくたいへんよい本です。お勧めです!!
さらに「JBossでWeb+DB開発してみませんか?―楽しいJava・オープンソース」という本が、実際に JBoss で自社の基幹システムを開発した人によって書かれています。その自社固有の部分を省いた在庫管理システムがサンプルアプリケーションとしてついていますし、何より具体的でとても参考になると思います。「JBoss 入門」もこの本も、JBoss 自体いろんな機能拡張をしてバージョンが上がってもコアなところはほぼ変わらないこともあり、こうした最新技術の解説書/参考書としては例外的といってもいいくらい、長い間活用できるんじゃないでしょうか。(でも「JBoss 入門」、4.x 対応版を第二版としてぜひ希望です! US のそういった本のように版を重ねて定番化していってほしいなと思います)

(2008/02) ↑の要望はきっといろいろなところからあったようで、続編というか"4.x 対応版"というかで「JBoss徹底活用ガイド」が出ました!!

また、直接 JBoss の解説ではありませんが、JBoss をプラットフォームとしての EJB の解説として「J2EE プログラマのためのEJB パーフェクトガイド」があります。ある意味、使い方のガイドにもなっています。
「EJB + J2EE 入門 -JBoss と Struts で作る Web アプリケーション- 」もよくまとまっていてよい本だと思います。実践的な内容をたいへんコンパクトにまとめています。

まだこのサイトでは触れる機会がないのですが、上に挙げた日本語での JBoss の本を出している技術評論社から「Spring 入門」という本が出ています。Spring というアプリケーション・フレームワークについての本ですが、これも同様に先進的な内容をわかりやすくまとめていて、お勧めできると思います。

以下の記事の中にサーバー上でのテスティング・フレームワークとして Cactus というのがあり、これについても最近「カンタンCactus―Jakartaプロジェクト オープンソースフレームワークJUnit/Cactus」という本が出ています。

JBOSS の導入と起動
war ファイルの作成と JBOSS へのデプロイ (WebDAV)
JBOSS 3.0.0 RC3 (Jetty) の導入と起動
JBOSS 3.0.1 RC1/ JBOSS 3.0.1
JBOSS 3.0.1-Jetty での Web コンテナの設定変更 (ポートの変更)
JBOSS 3.0.1-Jetty に Tomcat の Examples をデプロイ
JBOSS の実行オプション
JBOSS のソースに CVS をとおしてアクセスする
JBOSS のソースからの生成
ソースから作成した JBOSS のテスト (ant/jUnit)
JBOSS の管理コンソールと JMX
JBOSS 管理コンソール (サーバー/システム情報へのアクセス)
JBOSS 管理コンソール (サーバーへの操作)
MC4J for JBoss (JMX を使用した GUI コンソール)
JBOSS 3.0.2 の OS/400 での稼動 (V5R2 PASE)
JBoss で Web アプリケーションのセキュリティを設定する (JMX-Console)
JBoss のセキュリティ (Web アプリケーション)
Jakarta Cactus サンプルテストの実行 (JBoss 3.2.0 での実行/ant 用 build ファイルの作成)
Jakarta Watchdog (JBoss でのテスト)
Apache Cocoon の導入とサンプルの実行 (JBoss 3.0.3)
Apache Axis 1.0 の導入と稼動 -導入- (JBoss 3.0.3)
Apache Axis 1.0 の導入と稼動 -サンプルの実行- (JBoss 3.0.3)
Jetspeed の JBoss への導入
Eclipse ベースの JBoss JMX 管理コンソール
JUnit EE の実行例 (JBoss 3.0.6)
JBoss で Struts (「マスタリング Jakarta Struts」から最初のサンプルの実行)
JBoss 3.2.1 Web Console
JBoss 3.2.1 の OS/400 での稼動 (V5R1 QShell)
CL プログラムでの OS/400 上の JBoss の起動
OS/400 Apache で JBoss 3.2.x
JBoss 3.2.1 のデータベースを変更 (デフォルトを DB2/400 に)
JBoss のデータベースを変更 (デフォルトを DB2/400 Native に)
JBoss IDE (導入と画面例)
JBoss でのデータソースの定義のしかた (DB2/400)
J2EE アプリケーションの互換性 (RDB の変更)
J2EE アプリケーションの互換性 (データタイプ の変更/Many to Many リレーションの実現)
JBoss 3.2.x で J2EE チュートリアル (DB2/400)
JBoss 4.0.x のマニュアル
JBoss 4.0.x の DB2/400 サポート
JBoss 4.0.x の DB2/400 サポート (iSeries 上で実行)
JBoss 4.0.x の DB2/400 サポート (iSeries 上で実行/Type 2 JDBC)
JBoss で在庫管理 (サンプルアプリケーションの実行)
DefaultDS の削除 (JBoss 4.0.3)
JBoss 5.0.0 Beta1 を i5/OS の JVM で実行 (64bit/32bit)
Eclipse 3.3 (Europa) で JBoss 5.0 を開発用コンテナとして使用する
Eclipse 3.3 EE + JBoss 5.0 で簡単なJSP (WTP の使い方)
Eclipse 3.3 EE + JBoss 5.0 で簡単なサーブレット (WTP の使い方)

JBoss の他に Geronimo という製品も新たな J2EE プラットフォームとして参入してきました。
DI コンテナというアイデアもなかなか興味深く、今後が楽しみです。

Apache Geronimo on iSeries
Geronimo で Web アプリケーション (OS/400)
Geronimo で EJB アプリケーション (OS/400)

WebSphere 6.0 が J2EE 1.4 対応ということで IBM から出てきます。
以下のサイトから preview みたいなものがダウンロードできるようになっていますね。チュートリアルなどもありますので、いろいろ参考になるんじゃないでしょうか。

WebSphere Application Server Technology for Developers V6

WebSphere 5.0 ってのが EJB 2.0 対応で IBM から出てくるらしいのですが、どうなっているのやら ...

WebSphere Technology for Developers (WAS V5.0 Preview ?!)

WebSphere V5.0 が EJB 2.0 対応で IBM から出てきました。
機能はけっこう素晴らしそうなのですが、私の ThinkPad 600E / メモリ 128MB (古くてすみません ...) では起動すらできません ... (JBoss は楽勝でうごくのに ... でも 4.0DR1 から楽勝ではなくなりつつあります ...)
ちょっと他の PC など算段しつつ、いろいろ見ていきたいと思います。
iSeries版についてはこちら

WebSphere Application Server V5.0 についてはけっこう書籍も出るみたいです。
「Professional IBM Websphere 5.0 Application Server」などは IBM の開発チームの人が書いたということですし、一番最初に出たものになります。他には「Building J2EE Applications With IBM Websphere」には内容の紹介に"5.0"の文字があります。また、「IBM Websphere Application Server Administration 」「Understanding Websphere」は発売時期から見て 5.0 の内容で出てきそうです。

WebSphere Apllication Server V5.0 Base の導入/導入状態の確認
WebSphere Apllication Server V5.0 ND の導入/導入状態の確認
WebSphere Application Server V5.0 Base ディレクトリ構成
WebSphere Application Server V5.0 Network Deployment ディレクトリ構成
WebSphere Application Server V5.0 構成情報のバックアップ
WebSphere Application Server V5.0 導入バージョンの確認
WAS 5 for iSeries での複数インスタンスの作成

結局、容量も少なくてすむし、やはり本家ということで学習用には Sun の J2EE SDK についてくる J2EE サーバー (J2EE Reference Implementation) が一番よさそうです。
とりあえず今のところしばらくはこれを使って学習することにしようと思っています。

J2EE RI の導入
PetStore 1.3.1 の J2EE RI への導入
J2EE 1.4 RI (β) の導入
J2EE SDK 1.4 ベータ 2 版の導入
J2EE 1.4 Developer Release の導入

EJB の簡単な作り方の学習をはじめてみました。

J2EE RI でとりあえずはじめての Session Bean の開発/デプロイ/実行
EJB クライアントと EJB の関係とその定義のしかた

WSAD を使って EJB と RDB の対応っていうのはどうやって定義する/されているのかを調べてみました。
完全にベンダー固有なんですね、このあたりは。

EJB と RDB のマッピング

その他フレームワークや XML-RPC 関係のいろいろです。
Struts 関係の本はもうほんとにたくさん出ていますが、最近 Spring というフレームワークが注目を集めており、「Spring 入門」という本が出ています。後半はちょっと専門的なので該当のトピックについてそれなりの知識がないとわかりにくいとは思いますが、前半はとても手際よくこのフレームワークの意義と概要、使い方をまとめており、入門にはとてもお勧めだと思います。「Spring2.0入門 Java・オープンソース・Web開発自由自在」という続編も出ていますね。
Spring については「実践Spring Framework」という本も続いて出ています。

Struts の導入 (サンプルアプリケーション)
Apache Axis (サンプルの導入)
Apache Axis (Web サービスの簡単なデプロイ)

クライアントで Java アプリケーションを稼動させるため、またそのより簡単な配布/メインテナンスのために Java Web Start というテクノロジーが生まれました。
ごくごく簡単な紹介をしてみてます。

Java Web Start の簡単な例 (iSeries / JTOpen)

JMX (Java Management eXtentions) という API があり、Java を通していろいろなアプリケーションやリソースを管理するために利用できるようになっています。一番の実例は JBOSS だと思いますが、いろいろなところで採用され始めています。
J2EE 1.4 にも組み込まれる予定らしいので、今から学習しておくのもよいのではないか、ということでちょっと見始めてるところです。

初めての JMX (MBean/エージェント[MBean サーバー/プロトコル・アダプター])
初めての JMX (通知 [Notification])

「アスペクト指向プログラミング」についてのいろいろです。
これも「Aspectj in Action: Practical Aspect-Oriented Programming」「Mastering Aspectj: Aspect-Oriented Programming in Java」など洋書しか資料がなかったのですが、最近「AspectJによるアスペクト指向プログラミング入門」という日本語での解説書が出版されています。さらにその後この手の本のクオリティの高さでは群を抜いている技術評論社から「アスペクト指向入門 -Java ・オブジェクト指向から AspectJプログラミングへ」というのが出ています。
けっこう興味深いものなので、この機会にもっとひろまるといいなって思っています。

AspectJ の導入
AspectJ の Eclipse 用プラグインの導入
はじめての AspectJ

アプリケーション開発関係のいろいろです。Ant とか JUnit とかですね。

XDoclet 1.1.2 サンプルの実行
Ant の基礎の基礎 (1)
Ant の基礎の基礎 (2)
XDoclet 基礎の基礎 (1)
XDoclet 基礎の基礎 (2)
JUnit の基礎の基礎 (1) + ant での実行
Eclipse で JUnit (2.0.2/3.8.1)
JUnit EE の実行例 (JBoss 3.0.5RC1)
JUnit の基礎の基礎 (2) 書き方/実行方法の概略
Ant の基礎の基礎 (3)
Ant で SQL 文を実行 [Ant の基礎の基礎 (4)]
JUnit 4.4の基礎の基礎 (書き方/実行方法の概略)
JUnit 4.4の基礎の基礎 (テストメソッドの前処理)
「テスト駆動開発入門」を JUnit 4.4 と Eclipse 3.3 でやってみる (1)
「テスト駆動開発入門」を JUnit 4.4 と Eclipse 3.3 でやってみる (2)

Eclipse 関係です。
Eclipse も最近本も出るようになりましたね。「Java Development with Eclipse」や「The Java Developer's Guide to Eclipse」、「Eclipse for Java Developers」などがあります。
日本語でも「Javaデベロッパーのための Eclipse 導入ガイド」(もう改訂版が出ています)が出ていますし、「Eclipse パーフェクトマニュアル」というのも出ています。「標準 Eclipse 完全解説」「Eclipsユーザーズガイド - スマートにアジャイルを極めるJava開発 OOP Foundations- 」というのも出ていますね。これには簡単な Easy Struts の使い方なども出ています。
「Java/Eclipseソフトウェアテスト・チュートリアルブック」JUnit を中心としたテストのしかたが詳しく載っています。JUnit については「JUnitによるテストファースト開発入門」「JUnit イン・アクション」なども出ていますね。
「Eclipse による Java アプリケーション開発」には LombozUML プラグインCVS やリファクタリングなどが広く取り上げられています。
Cactus 関係の本も「カンタンCactus―Jakartaプロジェクト オープンソースフレームワークJUnit/Cactus」という本が出ています。

Eclipse の導入 (2.0.1)
Eclipse を使用した CVS へのアクセス (JBoss を例に)
Eclipse の Ant プラグイン (Tomcat のビルドを例に)
Eclipse のソフトウェア更新 (ex: 2.0.1 から 2.0.2)
Eclipse のソフトウェア更新機能 (Update Manager)
Eclipse ベースの JBoss JMX 管理コンソール
Eclipse で JUnit (2.0.2/3.8.1)
Eclipse UML (プラグイン) の導入
Eclipse の DB プラグイン (EasySQL)
Eclipse の DB プラグイン (QuantumDB)
Eclipse で任意のバージョンの Ant を使用する
Eclipse 2.1.1 へのアップグレード
Eclipse + Tomcat プラグイン (無償で Web アプリケーション開発環境を構築)
Eclipse で Struts (Easy Struts)
JBoss IDE (導入と画面例)
J2EE プラグイン (Lomboz [導入と設定])
AspectJ の Eclipse 用プラグインの導入
データベースアクセス用プラグイン (DBEdit)
Eclipse 3.0 が出ました
Eclipse 3.0 ソフトウェア更新機能
SWT を使用した Hello World (Eclipse 3.1)
Eclipse IDE for Java EE Developers (3.3/Europa) のセットアップ
Eclipse 3.3 (Europa) で JBoss 5.0 を開発用コンテナとして使用する
Eclipse 3.3 EE + JBoss 5.0 で簡単なJSP (WTP の使い方)
Eclipse 3.3 EE + JBoss 5.0 で簡単なサーブレット (WTP の使い方)
「テスト駆動開発入門」を JUnit 4.4 と Eclipse 3.3 でやってみる (1)
「テスト駆動開発入門」を JUnit 4.4 と Eclipse 3.3 でやってみる (2)
Eclipse IDE for Java EE Developers (3.4/Ganymede) のセットアップ

Cocoon についてのいろいろです。

Apache Cocoon の導入とサンプルの実行 (JBoss 3.0.3)
Cocoon 2.1.4 の導入とサンプルの実行 (OS/400)

OpenOffice.org についてのいろいろです。

OpenOffice.org 1.1.2 の導入
OpenOffice.org とデータベース (DB2/400)

iSeries・AS/400のJava

AS/400・iSeries のJavaについてのいろいろなトピックを集めてみました。

AS/400・iSeries のデータベースである DB2/400 は実はけっこうオープンソース・プロジェクトでは認知度が高い、ということはご存知でしょうか。

DB2/400 ってオープン!? (JBoss/Torque/Tomcat など)

AS/400のJavaといってもJavaはJavaですので、Javaのプログラムは動きます。
たとえば、Java Servlet/JSPのレファレンス実装であるところのTomcatも特になんということをしなくても動きます。
Tomcat 5 からは標準で OS/400 対応になっています。(開始用のシェルに OS/400 用の記述があります)
WebSphere Application Server などを買って実行するのが IBM 的には一番いいんでしょうが、まずは Tomcat + DB2/400 に Eclipse で始めてみる、Web アプリケーションの世界に入ってみる、というのもいいのではないでしょうか。よりいろんな機能が必要になってきた時に WAS なり WDSC などに移行すればいいんだと思います。

AS/400でTomcatが動きました!! (Tomcat 3.x)
iSeries で Tomcat 4.1.x
CL コマンドで Tomcat 4.1.x を起動
OS/400 Apache で Tomcat 4.1.x
iSeries で Tomcat 5.0.6 Alpha (初めから OS/400 対応 !)
Tomcat 5 登場
DB2/400 にアクセスする Tomcat 5 on iSeries の設定
複数の Tomcat サーバーを OS/400 上で実行する
Tomcat 起動時のログ表示 (catalina.sh run での起動)
Tomcat 5.x と Apache 2.x での負荷分散 (OS/400)

フリーの Java 開発ツール/環境なども充実してきました。
OS/400 で Tomcat を動かして使うような場合にもおすすめです。

Eclipse + Tomcat プラグイン (無償で Web アプリケーション開発環境を構築)

O/R マッピング・ツールのひとつである Hibernate も DB2/400 を最初からサポートしています。
この Hibernate というのもかなり興味深いもので、本もたくさん出ています。とりあえず定番は「Java Persistence With Hibernate」だと思いますが、日本語でも「Hibernate イン アクション」とか「Hibernate (開発者ノートシリーズ)」とかいった解説書(の翻訳)が出ていますし、「はじめてのJavaフレームワーク―Struts/Spring/Hibernate対応 (TECHNICAL MASTER)」や「Light Weight Java―JSF/Hibernate/SpringによるフレームワークでWebアプリケーションの開発効率向上」のように部分的に取り扱っている解説書もあります。

Hibernate と DB2/400 (JTOpen)
Hibernate と DB2/400 (Type2 JDBC)
データソース稼動確認用の Web アプリケーション (Hibernate)
Hibernate と DB2/400 (SEQUENCE オブジェクト)
Hibernate と DB2/400 (SEQUENCE オブジェクト: V5R4)
Hibernate の jar ファイルに DB2400V5R4Dialect クラスを追加する

O/R マッピングの標準として Java Persistence API (JPA) という仕様が Java EE 5 の構成 API として標準化されました。
実装クラスとして Hibernate を使用することができるのですが、そのまま Hibernate を使うよりはっきり言って簡単です。まず、この JPA から O/R マッピングの世界に入ってみるのがいいんじゃないでしょうか。

DB2/400 で Java Persistence API (主キーによる SELECT)
DB2/400 で Java Persistence API (既存テーブルへのマッピング)
DB2/400 で Java Persistence API (行の INSERT と IDENTITY列による主キーの生成)
DB2/400 で Java Persistence API (行の INSERT と SEQUENCE オブジェクトによる主キーの生成)
DB2/400 で Java Persistence API (既存テーブルの関係・結合の表現)
DB2/400 で Java Persistence API (関連テーブルの取得タイミング)
DB2/400 で Java Persistence API (関連テーブルの処理の連鎖)
DB2/400 で Java Persistence API (JPQL 言語による問い合わせ)
DB2/400 で Java Persistence API (ネイティブ SQL による問い合わせ)
DB2/400 で Java Persistence API (JPQL 問い合わせを名前をつけて保管)
DB2/400 で Java Persistence API (Toplink で動かしてみる)
DB2/400 で Java Persistence API (Toplink で主キーの生成を行う)
DB2/400 で Java Persistence API (OpenJPA で動かしてみる)
DB2/400 で Java Persistence API (OpenJPA で主キーの生成を行う)

O/R マッピングとJDBC によるSQL アクセスとのハイブリッドのような形でiBATIS というフレームワークがJava からのデータベースアクセスに使用できます。
DB2/400 を肴にちょっとどんなものか見てみました。「iBATIS in Action」という解説書もあります。

DB2/400 で iBATIS (単純な SELECT)
DB2/400 で iBATIS (テーブルの結合と関連クラスの実現)

V5R1 の OS/400 には Tomcat がついてきます。こちらの設定の仕方も紹介してみました。

OS/400 Tomcat の構成

オープンソースの EJB サーバーで JOnAS というものもあります。
これも通常の設定で動きました。

オープンソースのEJBサーバーも動きました!!

オープンソースの EJB サーバーで JBoss が有名ですが、これも普通に動きます。

JBOSS 3.0.2 の OS/400 での稼動 (V5R2 PASE)
JBoss 3.2.1 の OS/400 での稼動 (V5R1 QShell)
CL プログラムでの JBoss の起動
OS/400 Apache で JBoss 3.2.x
JBoss のデータベースを変更 (デフォルトを DB2/400 に)
JBoss のデータベースを変更 (デフォルトを DB2/400 Native に)
JBoss でのデータソースの定義のしかた (DB2/400)
JBoss 3.2.x で J2EE チュートリアル (DB2/400)
JBoss を i5/OS の JVM で実行 (32ビット/64ビット)
JBoss 5.0.0 Beta1 を i5/OS の JVM で実行 (64bit/32bit)

また、AS/400自体が純粋なサーバーマシンなので、TomcatのようなサーバーサイドのJavaの方が特性から言って向いているのですが、AWT/Swingを使用したプログラムも動きます。

AS/400上でAWTを使用したプログラムを実行する方法 :その1 (Remote AWT)
iSeries 上で AWT を使用したプログラムを実行する方法 :その2 (Native AWT)
iSeries 上で AWT を使用したサーブレットを実行する方法 (Native AWT)
サーバー・グラフィックコンポーネントの NAWT での使用
Using DBCS on NAWT (V5R3)

Java SDK 1.4 から AWT の Headless モードというものがサポートされます。

iSeries で Java2 SDK 1.4 Headless AWT
i5/OS での Java ヘッドレス・モード

Javaを起動するシェルとして 5250コマンド画面から Qshell という POSIX、X/Open 標準に準拠したシェルが使用できます。シェルスクリプトも書けますし、慣れるといろいろ便利でもあります。
ということでちょっと勉強しつつご紹介していきたいと思っています。

Qshell のいろいろ
リモートからの QShell
zip/unzip を PASE/QShell で
QShell での Java 関係のリンク

Apache Ant も使えます。

Apache Ant の OS/400 Java での使用

JDBCを使用してデータベースアクセスを行うのも簡単です。
とってもシンプルにJDBCのコーディング例を載せてみました。

JDBC プログラミングの基本

JDBC 2.0 を Java 1.1しか対応していない Java VMで稼動させるためのやり方を紹介しています。

Java 1.1でJDBC 2.0を使う

JDBC 2.0 の機能を、いくつか紹介してみました。「Java 1.1でJDBC 2.0を使う」と組み合わせて使うこともいくつかの機能ではできます。

JDBC 2.0 の機能 (1)

データベースでイメージデータ (BLOB) をどうやって扱うか、についてやはりシンプルなコーディング例を載せてみました。
こういったケースでもやはりJavaは簡単です。

JDBC プログラミングの基本 (BLOB の扱い方の基本)

iSeriesのデータベースは非常にJavaの機能が充実しています。Oracle以上ではないでしょうか。
そんな中からいくつかのトピックをご紹介していきたいと思います。

Java ストアド・プロシージャ
Java でのユーザー定義関数
Java ストアド・プロシージャ/UDF での jar ファイルの使用
QZDASOINIT の実行中にコマンドを実行したい
ドミノの機能を使用した Java ストアド・プロシージャ

iSeriesには Toolbox for Java というJavaのユーティリティがついてきます。Webからもダウンロードできますし、オープンソース・ソフトウェアなのでなんとなればソースまでアクセスできてしまい、さらになんとなれば自分で直すこと/機能拡張することすらできます。
データベースへのアクセスやiSeries上でのプログラムの実行に加えて、ユーザー情報やシステム値などにもアクセスできます。

Toolbox for Java (JTOpen) 概要
Toolbox for Java (JTOpen サンプル)
Java で iSeries のシステム値をアクセス (1: 単純な表示)
Java で iSeries のシステム値をアクセス (2: リファクタリング/map オブジェクトへの格納)
Java で iSeries のシステム値をアクセス (3: テキスト[Description]の表示)
RDB からのデータと HTML テーブル (JTOpen)
Java のクラスから OS/400 コマンドを実行 (JTOpen)
Java のクラスから OS/400 FTP を実行 (JTOpen)
Java Web Start の簡単な例 (iSeries / JTOpen)

J2EE アプリケーションを作成するにあたって、やはり主役は Servlet/JSP/JavaBeans の3つの技術に当面はなりそうです。
いろいろな組み合わせ方が考えられますが、そのいくつかを試してご紹介していきたいと思います。
また、ちなみにこちらに載せてある実行結果はほとんどドミノのHTTPタスクに WebSphere をプラグインした構成での実行結果です。

Servlet/JSP/JavaBeans (J2EE Application) を組み合わせたデータベースアクセス
Servlet/JSP/JavaBeans (J2EE Application) を組み合わせたデータベースアクセス (WAR)
Servlet/JSP/JavaBeans (J2EE Application) を組み合わせたデータベースアクセス (Hibernate)
カスタムタグ (BodyTagSupport) を使用したデータベースアクセス
カスタムタグ (TagSupport) を使用したデータベースアクセス
include/forward アクション (JSP)
JSPでのフォームの処理

UDB では WORF という、データベースアクセスを Web サービス化するツールがあり、V5R1以降の OS/400 であれば使用することができます。
簡単な紹介と、実行の仕方を見てみました。

データベースアクセスの Web サービス化 (その1: 実行環境のセットアップとサンプルの実行)
データベースアクセスの Web サービス化 (その2: 新規の定義を作成)

OS/400 V5R1 から「WebSphere Development Studio」とかいうものが、いわゆる言語関係/開発関係の一式ということで、まあほとんど福袋的に買うことになってしまっていますが、ここでせっかくなので使ってみよう、ということで導入してみました。
実際のところ、WebSphere Studio や VisualAge for Java がついてもくるので、RPG と SEU のためにこれを買った方も、この機会を利用して Java やJSP等の知識/スキルをつけるというのはいいのではないかと思います。

WebSphere Development Tools for iSeries の導入

WebSphere Studio や VisualAge for Java はそれぞれ独立していて、なんか機能的に重なっているところがあったり、どうやって連携とったらいいかわかりにくいようなところもあったりして、なんとなくあまり使っていなかったのですが、最近その両方が統合されるかたちで WebSphere Studio Application Developer という名前で Eclipse ベースの開発ツールになったのを機会にちょっとどんなものか見てみようという気になってみました。あと、単体の WebSphere Studio や VisualAge for Java だと相手が WebSphere Application Server の V4.0 だと、やりとりするファイルの形式の関係で使いにくいんですよね ...ということでまずはとりあえずの導入とかんたんな使い方です。
もとの Eclipse の方も使えそうかどうかそのうち見てみたいと思います。

WebSphere Studio Application Developer (WSAD) の導入
Toolbox for Java (JTOpen) と WSAD を使用したアプリケーション作成手順
WSAD で JTOpen を使ったサーブレットの開発
WSAD のリモートデバッグ機能 (IBM Agent Controller のセットアップ)
WSAD のデータベース設計/関連機能
WSAD への JUnit プラグイン

Eclipse 関係はこちらにあります。

iSeries 上での Java がちゃんと動いているかどうかの簡単な確認の仕方です。

OS/400 Java が正しく動いているかどうかの確認方法

iSeries 上での Java VM の考慮点を少し挙げてみました。

iSeries 上の JVM の考慮点 (ヒープ)

Java アプリケーションのパフォーマンスをチューニングするためのプロファイリングを行うためのツールの紹介です。

iSeries での Java アプリケーションのプロファイリング
Performance Trace Data Visualizer (PTDV) のセットアップ
Performance Trace Data Visualizer (PTDV) の実行

iSeries 上での Java アプリケーションのヒープの状況を見るためのツールです。

Heap Analysis Tools for Java

iSeries 上での Java アプリケーションの状況を見るためのツールのです。

DSPJVMJOB コマンド

iSeries 上の Java アプリケーションのデバッグのやり方について紹介しています。

iSeries上での Java サーブレットのデバッグ
Toolbox for Java の System Debugger
V5R3 iSeries ナビゲーターによるグラフィカル・デバッグ (SQL ストアド・プロシージャですが Java も同じなので ... )
Java の対話型デバッグ (i5/OS)

AS/400のWebSphere

WebSphereのいろいろなトピックです。

AS/400にはWebSphereのスタンダード版が無償でついてくる(要オーダー)ので、これを利用しないのはなんとももったいないことです。
AS/400にはDB2/400がなにを導入するでもなくついていますし、JDKの特別なインストールも必要ありません。
はっきり言って、WebSphereの導入/セットアップがもっとも簡単なプラットフォームです。有用に活用しましょう!!

まず最初に、AS/400のWebSphereの導入は簡単です。
なにか導入に問題がある場合は、前提条件をまずチェックしてみましょう。

AS/400版 WebSphere V3.5 問題判別 (前提条件の確認)

WebSphere は、適宜リリースアップというかたちで機能upやバグの修正を行ってきています。
AS/400版の場合は、非常に簡単に Group PTFという形でまとめて入手できます。
適用のしかたの一例を紹介してみました。

WebSphere Group PTF の適用

より一般的なかたちで、問題判別のごくごく簡単の手順や注意点などをまとめてみました。
他のプラットフォームに比べて格段にシンプルで必要な特殊技能がいらないようになっていると思います。

WebSphere Application Server for AS/400 問題判別 (初級編)

WebSphere Application Server V4.0 が出てしまったので、バージョンをこれからは分けて考えないといけないことが多くなってきますね。
上の初級編よりは詳しく/(自分なりに)体系的に、WebSphere Application Server V3.5 AS/400版についての問題判別の手順や注意点などをまとめてみました。

WebSphere Application Server V3.5 問題判別

導入してからですが、やはりまずセキュリティは考える必要があると思います。
AS/400のユーザープロファイルを使用するにせよ、Dominoのユーザーを使用するにせよ、まずはセットアップが必要になります。

WebSphereとのセキュリティの統合

WebSphereのHTTPスタックにDominoのHTTPサーバーを使用することができます。
Domino側から見れば、より統合的にWebSphere/Javaを使用することができますので、構築できるアプリケーションの幅がとてもひろがると思います。

WebSphere を ドミノ HTTP サーバー にプラグインして使用する

また、これもAS/400版ならではの機能なのですが、WebSphereのドメインをひとつのノード上に複数作成することができます。
上記の「WebSphere を ドミノ HTTP サーバー にプラグインして使用する」でも、別のドメインを作成してそちらをプラグインすることも可能ですし、管理サーバーもリポジトリも異なりますので、開発用/テスト用/本番用とドメインを分けてひとつのノードで動かせますので、それだけ資源も有効に使えるでしょう。

新規 WebSphere 管理サーバーインスタンスを作成する

ドミノのLDAPサーバーを認証に使用して、ドミノとWebSphereのシングルサインオンを構成するとアプリケーションの適材適所化という意味でもとても有用なのではないでしょうか。
ドミノで簡単に作成できるようなものはそうすればいいし、WebSphereでパッケージがあるようなものはそれを使い、なおかつ同じユーザーで統一感のあるインターネット/イントラネット・アプリケーションとして使用する、というのはこれからのひとつの方向性ではないかと思います。

DominoとWebSphereのWebシングルサインオン

Apache SOAP のセットアップのやり方をご紹介しています。WebSphereの今後のリリースでいずれにしてもSOAPはサポートされそうですが、今使ってみたい/勉強しておきたい、という場合や、V3.5でSOAPを使用したい、という場合にはここでご紹介したようなやり方でそれが可能になります。

Apache SOAP のセットアップ

WebSphere V3.5 が発表された時にJSPのバージョンはは0.91/1.0でした。現在の主流はもう1.1になりつつあります。
WebSphere V3.5 で JSP1.1 をサポートするようにするやり方をご紹介します。

JSP1.1サポートへの変更

ドミノとWebSphereを一体化したかたちで構成するやり方を例としてご紹介しています。

Domino & WebSphere サーバーの構成

WebSphre のいろいろこまごましたことをちょっとまとめてみています。

管理クライアントとサーバーのバージョンのチェック (V3.5)
WebSphere Application Server の開始方法 (V3.5)
WebSphere Application Server 管理ツール (V3.5)
DrAdmin (WebSphere Application Server V3.5 問題判別ツール)
グローバル・セキュリティの設定についてのちょっとしたこと (V3.5)
WebSphere プラグイン (V3.5)

iSeriesのWebSphere

WebSphere Application Server V4.0 for iSeriesのいろいろなトピックです。

今まで書いてきたトピックもほとんど使えそうですが、それはやってみてからこちらのリンクにおいおい足していこうかと思っています。
こちらもみんな HTTPサーバーはドミノでの実行結果です。

Java and Websphere Performance on IBM iSeries Servers」という本もでています。
多分これと同じものだと思いますが、その Redbook については、OS/400 の Java やパフォーマンスについてよくまとまっていてたいへんよい本だった記憶があります。
WAS 3.5/4.0 の頃の本なのですが WAS 5.0 の現在でも役に立つ本だと思います。iSeries で Java/WebSphere をやる人は、一回はひととおり読んでおいた方がいいんじゃないかと思います。

最初に、WebSphere Application Server for iSeries V4.0 の導入手順の紹介です。

WebSphere V4.0 for iSeries の導入

WebSphere Application Server for iSeries V4.0 にはサンプル・アプリケーションとして Java Pet Store がついてきますが、その導入手順の紹介です。

Java Pet Store のセットアップ (WebSphere V4.0)

WebSphere Application Server が V4.0 になって、どんな資料にも war ファイルが導入の基本単位のように書いてあります。
V3.5 の時のようにサーブレットをテストする時には、コンパイルしたものをデフォルトのアプリケーションのクラスパスに置くとすぐに実行できたりするといいのだけれども、その方法はないだろうか、と探しているところにこの本にやり方が書いてあったので、ちょっと試みてみました。その手順の紹介です。エンタープライズ・アプリケーションの導入/インプリメンテーションの紹介になっています。

テスト環境の作成 -エンタープライズ・アプリケーションのしくみ- (V4.0)

WebSphere Application Server for iSeries V4.0 は HTTP サーバーとのやりとりに「プラグイン」という仕組みを使用しますが、その設定が定義されているファイルの内容についてちょっと見てみました。

WebSphere プラグイン (V4.0)

ドミノとWebSphereのシングルサインオンを、WebSphereのV4.0.1 とドミノのR5.0.9で構成してみました。

ドミノと WebSphere のシングル・サインオン構成 (WebSphere V4.0)

上のシングル・サインオンの記事に含まれているのですが、V3.5 で個別の記事にしておいたトピックがいくつかありますので、そちらも V4.0版ということでリストしておきます。

ドミノのHTTPタスクを WAS で使用する (V4.0)
WAS の新規インスタンスを作成する (V4.0)
WAS のセキュリティを設定する (V4.0)

V4.0 になってクラスローディングのしくみが大幅に変更になりました。ちょっとまとめてみましたので参考にしてみてください。

WebSphere V4.0 のクラスローディング
クラスローダの階層 (V4.0)

その他、いろいろです。

ちょっとしたサーブレットのテスト (V4.0)
構成のバックアップ (V4.0)
リモートからの WSCP (V4.0)

WebSphere Application Server V5.x for iSeries

WebSphere Application Server V5.0 for iSeriesのいろいろなトピックです。
V5.0 からインフォメーション・センターにWAS iSeries版のドキュメントが含まれるようになっています。

前提PTF や 最新のリリースになる Group PTF はこちらに情報がありますので必ずチェックするようにしてください。
その他、WAS for iSeries のドキュメントはこちら (BASE/ND) に載っています。

WebSphere Application Server V5.0 for iSeries Base の導入
WebSphere Application Server V5.0 for iSeries Network Deployment の導入
サーバーの開始と管理コンソールへのアクセス (WAS5 for iSeries BASE/ND)
WAS5 for iSeries の構成 (ドミノ 6 HTTP)
WAS5 for iSeries の導入バージョンの確認
WAS5 for iSeries Base で使用できるスクリプト
WAS5 for iSeries のディレクトリ構造
WAS5 for iSeries ND の構成 (セルへのノードの追加)

WebSphere Application Server V5.1 for iSeriesのいろいろなトピックです。
インフォメーション・センターにWAS iSeries版関係のドキュメントがあります。

前提 PTF 等の情報は上と同様にこちらに情報があります。
WAS for iSeries V5.1 のドキュメントはこちら (BASE/ND) に載っています。
その他、WAS Express も含めてインフォメーションセンターに載っています。

WebSphere Application Server V5.1 for iSeries Base/ND の導入

WebSphere Application Server V6.x for iSeries

WebSphere Application Server V6.0 for iSeriesのいろいろなトピックです。
V6.0 のWAS iSeries版のドキュメントもインフォメーション・センターにあります。

WebSphere Application Server V6.0 for iSeries Base の構成 (1)
WebSphere Application Server V6.0 for iSeries Base の構成 (2)

参考文献

今までこのサイトに載っているようなことを学習してくる上で参考になった書籍をリストしてみました。

参考書籍

[Top Pageに戻る]

Ads by TOK2