IBM Webサービス対応ミドルウェア

製品の紹介

1.IBM WebSphereアプリケーション・サーバーV4.0

IBM WebSphereアプリケーション・サーバー(以下WAS)は、J2EE準拠のアプリケーション・サーバーです。Webサービスは、ApacheSOAPをベースとしたランタイムによりWebコンテナ(サーブレット・エンジン)の上で稼動します。

製品名 IBM WebSphereアプリケーション・サーバー V4.0
WebページURL http://www.ibm.com/jp/software/websphere/
製品構成 J2EE準拠サーバー機能においてSOAPサーバー
ApacheSOAP-API によるクライアント機能
プライベートUDDI 稼動環境
動作OS(プラットフォーム) Windows NT/2000、Linux/Intel、AS/400、AIX、OS/390、Linux/390、HP-UX、Sun Soralis
推奨マシンスペック プラットフォーム、業務規模によって変動
価格 IBMへお問い合わせください。
お試し版の有無(ダウンロードサイト) http://www-6.ibm.com/jp/software/websphere/download.html
SOAP対応 SOAP v1.1対応(ApacheSOAP v2.2実装)
SOAP実装 SOAP-RPC、メッセージング、SOAP添付、SOAP電子署名
基本型、ストリング、配列、複合型、Enumeration、Javaコレクションクラス他
トランスポート HTTPーSOAP、HTTP-GET、HTTP-POST、HTTPS、SMTP、HTTPR、MQ
UDDI UDDI v1.0仕様:IBM DB2 UDB V7.2+IBM WebSphere Private UDDI Registry V1.0 Preview の追加で稼動可能
UDDI v2.0仕様:IBM DB2 UDB V7.2+IBM WebSphere UDDI Registry V1.1 の追加で稼動可能
WSDL IBM WebSphere Studio シリーズでWSDL自動生成、プロキシー生成、スケルトン生成が可能
ebXMLのサポート なし
セキュリティ SSL、基本認証、電子署名が利用可能
Tivoli と組み合わせることでより強固なセキュリティ管理機能を提供
フロー定義 なし
その他の分散オブジェクトとの連携 WSIFによるJavaBean、EJB、CORBAとの連携、J2EEによるメインフレームとの連携
負荷分散 簡易負荷分散のほか、Edgeサーバーを組み合わせて超大規模システムに対応
開発言語 フロントエンドにJavaを使うほか、PL/I、COBOL、RPG、C/C++など
開発環境 IBM WebSphere Studio シリーズ
IBM WebSPhere Classic Studio+VisualAge for Java
ツール郡 下記ソフトウェアの他、alphaWorksから入手
チュートリアル等のドキュメント 上記Webサイト
http://www.ibm.com/jp/software/webservices/
翔泳社「Webサービス完全解説」
技術評論者「WebSphere Studio Webアプリケーション開発入門」

2.IBM DB2ユニバーサル・データベースV7.2

DB2は、IBMのリレーショナル・データベースです。DB2ではWORF(WebServices Object Runtime Framework)を提供しており、DB2の中の表形式のデータベースをプログラミングなしに、簡単にWebサービス化することができます。SOAPメッセージングとして、DB2表データをXMLに変換して取り出すことができます。自動生成されるXMLは、自動生成される形式のほか、XMLエクステンダーと組み合わせることで、自由なXML形式(DTD、XML Schemaを利用)に整形して出力することができます。

3.IBM Websphere UDDI Registry V1.1

IBM WebSphere UDDI Registry は、プライベートUDDI サイトを構築するためのソフトウェアです。DB2上にUDDI のデータベースを構築し、以下の用途にUDDI を利用することができます。

4.IBM WebSphere Studio Application Developer V4.0

IBM WebSphere Studio Application Developer(以下StudioAD)は、Java/J2EEアプリケーションを開発するための統合開発環境です。Javaサーブレット、JSP、EJB、JMS、J2C、DB2などのJava/J2EEアプリケーションを効率よく開発できます。Webサービスを開発するための各種ウィザード、XMLアプリケーションを開発するための数多くのエディター類、WebSphereやTomcatのインライン・デバッグを可能にする機能などを提供しています。

5.alphaWorks

IBMでは発表前のプロトタイプ・ソフトウェアを多数公開しています。

製品インストール方法

前提

IBMミドルウェアは多くのプラットフォームで提供されているため、プラットフォームによってインストール方法や前提ソフトウェアが異なります。前提システム、前提ソフトウェア、詳細な手順は、製品に付属するマニュアルを参照してください。ここでは、Windows版に限定して説明します。

前提として、以下のシステムを利用していると仮定します。

システム:インテル系 PC/CPU Pentium4 1GHz程度、メモリー 1GB程度
オペレーティング・システム:Microsoft Windows 2000+SP2

利用するソフトウェア

また、ここでは以下の製品を使用してWebSphereでWebサービスを稼動させる方法をご紹介します。

IBM WebSphere Studio Application Developer V4.03

製品は通常CD-ROMで配布されています。CD-ROMをドライブにマウントするとインストールが始まります。自動的に始まらないときは、setup.exeを実行してください。インストールのウィザードは特になにもせずに進めてかまいません。

Web サービスの作成方法

以下の Java プログラムをWebサービス化します。

public class TestService {
	public String getMessage() {
		return "HelloWorld!";
	}
}

0.StudioAD の使い方

StudioAD は、エクリプスと呼ばれるオープン・ソースのワークベンチ上で稼動します。ワークベンチ上にはたくさんの小さなウィンドウが開きます。これをビューといいます。ビューはいくつかの種類の組み合わせで同時ワークベンチ上に表示され、組み合わせを切り替えて作業することができます。組み合わせの単位のことを「パースペクティブ」といいます。

パースペクティブは、ワークベンチの左側にある「ショートカットバー」と呼ばれるボタンで切り替えることができます。

1.エンタープライズ、およびWebプロジェクトの作成

StudioADでは、開発を「プロジェクト」という単位(フォルダー)で管理します。必ずプロジェクトを作成する必要があります。
StudioADでは、Webサービス・アプリケーションをJ2EEのWebアプリケーションとして構築します。Webアプリケーションとして稼動させるには「EARファイル」の単位となる「エンタープライズ・アプリケーション」プロジェクトと「WARファイル」の単位となる「Web」プロジェクトを作る必要があります。

  1. 「ファイル」−「新規」−「プロジェクト」を選び、「J2EE」−「エンタープライズ・アプリケーション」をパネル上で指定します。
  2. 名前の指定エンタープライズ・アプリケーション・プロジェクト名として名前を指定すると、それに付属する別のプロジェクトにも自動的に名前が作られます。Webサービスを試すだけなら、クライアントとEJBは必要ないので、チェックをはずします。

2.プログラム・ソースの準備とコンパイル

  1. パースペクティブ追加ボタンを押し、「Webパースペクティブ」を表示してください。
  2. ナビゲーター・ビューを見つけてください。
  3. Webプロジェクトのフォルダー(ここではwsadWeb)を見つけてください。
  4. その下にあるsourceフォルダーを見つけてください。
  5. その上で右クリックし、「新規」−「その他」を選択してください。
  6. 新規ウィンドウで「Java」−「Javaクラス」を選択して「次へ」ボタンをクリックします。
  7. ここでは、「TestService」クラスとしますので、それを名前フィールドに入力して「終了」ボタンをクリックします。
  8. JavaファイルのスケルトンがJavaエディターで表示されますので、コードを入力します。
  9. 入力が終わったら「Ctl+S」を押して保存します。自動的にコンパイルされます。

3.Webサービス化

このファイルをWebサービスにするには、Webサービスのウィザードを使います。簡単なプログラムなので余計な設定は必要ありません。

  1. ナビゲーター・ビューでこのクラスのソース・ファイルを見つけます。
  2. ソース・ファイルの上で右クリックし、「新規」−「Webサービス」を選択します。
  3. Webサービスのウィザードが表示されたら、Webサービスを実装するWebプロジェクトが正しく設定されているか確認します。
    また、ここではサンプルJSPを作り、Webサービスを稼動させる確認をするために「サンプルの生成」「サンプルの起動」をチェックします。
    「次へ」ボタンをクリックしてください。
  4. Java Bean の選択のパネルが表示されます。Beanが正しく設定されていることを確認してください。
    このあともさまざまな設定をするパネルがありますが、TestServiceは簡単なプログラムなのでこのあとの設定は必要ありません。
    「終了」ボタンをクリックします。
  5. ウィザードは、以下の自動処理をするために、若干時間がかかります。(2〜3分程度)
    1. 指定されたJavaBeanを解析します。
    2. JavaBeanをSOAPとして公開できるように、設定ファイルを生成します。(ISDファイル=デプロイメント・でスクリプター)
    3. 公開するためのWSDLファイルを生成します。
    4. エンタープライズ・アプリケーション/Webアプリケーション(つまり、EARファイルとWARファイル)を公開する準備をします。
    5. WebSphereテスト環境の設定が存在しなければ作成します。
    6. WebSphereテスト環境にアプリケーションを登録(デプロイ)します。
    7. WebSpehreテスト環境を始動します。
    8. 公開されたWSDLファイルを使って、クライアント用プロキシーを生成します。
    9. 稼動確認をするための、クライアント用プロキシーにアクセスして稼動するJSPファイルを生成します。
    10. 生成されたJSPファイルを公開されているWebアプリケーションに登録して稼動可能な状態にします。
    11. JSPファイルをワークベンチ上のブラウザーで実行します。
  6. 図のように、JSPが表示されます。以下の手順で稼動確認をします。
    1. Methodsウィンドウで、テストしたいメソッドを選択します。Inputsエリアに必要なら入力フィールドと、「Invoke」「Clear」ボタンが表示されます。
    2. 必要に応じてInputエリアの入力フィールドに値を入力し、「Invoke」ボタンをクリックします。
    3. 結果が「Result」エリアに表示されます。今回の例では、Stringで「Hello World!」が返ってきますので、それが表示されます。

作成した Web サービスの公開方法

上記の状態ですでにWSDL、SOAPのサービスとして公開されていますが、他のマシンからアクセスする場合には若干注意が必要です。

1.URL

サービス記述WSDL http://localhost:8080/wsadWeb/wsdl/TestService-service.wsdl
バインディングWSDL http://localhost:8080/wsadWeb/wsdl/TestService-binding.wsdl
SOAPエンド・ポイント http://localhost:8080/wsadWeb/wsdl/soap/rpcrouter

ここで、「wsadWeb」の部分はコンテキスト・ルートといい、J2EEのWebアプリケーションのインストール単位で決まる任意名です。

2.import要素の修正

外部からアクセスする場合、localhostの部分をホスト名に変更すればいいのですが、サービス記述WSDLから <import> 要素でバインディングWSDLを参照している部分がlocalhostになってしまっており、正しくアクセスできません。他のマシンからアクセスする場合には、WSDLファイルの<import>要素のURLを適切に修正してください。複合オブジェクトや配列を使うメソッドの場合は、バインディングWSDLが <import> 要素でXSD(XMLスキーマ・データ)を参照しますので、それも修正します。

3.WebSphereアプリケーション・サーバーでの稼動

以下の手順でWAS V4.0で稼動させることができます。

  1. 上記手順で、<import> 要素を修正する
  2. EARファイルとしてエクスポートする
  3. エクスポートしたEARファイルをWASにインストールする

WAS アドバンスド版以上では、「リモート・サーバー」としてWASを登録することにより、StudioADから直接インストールすることも可能です。

クライアントからのアクセス方法

Javaクライアントからアクセスする場合は、proxyパッケージの下にプロキシークラスが自動生成されますので、それを利用します。インスタンス化し、メソッドをアクセスするだけです。HTTPプロキシーの通過、基本認証へのログイン方法は、IBM のサイトに情報があります。