OpenSOAP Logo OpenSOAP Project
The Middleware as Platform for IT Application Services

メニュー

-トップ
-OpenSOAPについて
-リリース
-ドキュメント

-ダウンロード
-協力
-リンク

-FAQ
-バグ情報
-ロードマップ

-検索
-連絡先
-バグジラ

English version

First Step Guide

First Step: サンプルHelloが動くまで(Linux編)

OpenSOAPのインストール

実行環境の整備

以下のソフトウェアがインストールされていない場合は,お使いのディストリビューションのWebサイト等から入手し,インストールしてください. OpenSOAP同士の接続を試される場合にはJava環境は必要ありません.

OpenSOAPのダウンロード

パッケージのダウンロードページ

http://opensoap.jp/download.html

から,最新パッケージopensoap-1.0-xxxxxx.tar.gzを入手してください.

パッケージの展開

パッケージファイルを置いたユーザディレクトリで,パッケージを展開してください.

% tar zxvf opensoap-1.0-xxxxxx.tar.gz

もしくは,

% gzip -dc opensoap-1.0-xxxxxx.tar.gz | tar xf -

パッケージのコンパイル・インストール

パッケージを展開した最上位ディレクトリで,

% ./configure
% make

とすると全てのパッケージがコンパイルされます.デフォルトではCGI実行ディレクトリが,VineLinuxやRedHatLinux6.xに合わせて/home/httpd/cgi-binとなっていますので,RedHatLinux7.x,TurboLinux7などのディストリビューションでは,

% ./configure --with-cgi-bin=/var/www/cgi-bin/
% make

とします.その他,ディストリビューションの設定に合わせてconfigureオプションを指定してください. 上記を実行し,エラーがないのを確認した後,

% su
% make install

とすれば,インストールは完了です.

ここまでの操作で,OpenSOAP API,OpenSOAPサーバ(注*)がインストールされ,サンプルファイルがコンパイルされています. OpenSOAPサーバがインストールされると,CGI実行ディレクトリの下にsoapInterface.cgi(注**)がコピーされます.

* OpenSOAPサーバを利用することで,サービスへのディスパッチや,非同期メッセージング,メッセージルーティングなどを利用することができるようになります.(後述)

** soapInterface.cgiは,OpenSOAPサーバの入り口(endpoint)となるインターフェイスです.

HelloServiceを動かす

このままのディレクトリ構造でサンプルを試すためには,パッケージ内のHelloサンプルのディレクトリ,samples/Helloに移動して,

% su
% make service-install

とすると,サービスプログラムがCGIディレクトリ,/usr/local/opensoap/services/Helloにインストールされ,OpenSOAPサーバとの連携の状態が整います.
(パッケージの一括コンパイルでできる実行ファイルHelloServiceの本体は,samples/Hello/.libs/HelloServiceとなっています.)

この状態で,

% ./HelloClient myname

と入力すると,クライアントプログラムHelloClientは,HTTPを経由して,Helloのサービスプログラムのendpointである,

http://localhost/cgi-bin/HelloService.cgi

にSOAPメッセージを投げ(注***),レスポンスを解釈します.
(デフォルトはOpenSOAPサーバ(soapInterface.cgi)ではありません.)

*** メッセージをOpenSOAPサーバへ投げるなど,endpointの変更を行うときは,サンプルプログラムHelloClient.cの70行目以降で,指定することができます.プログラムを変更した後,再度サンプルプログラムをmake,installしてください.OpenSOAPサーバを使用する場合の設定は後述します.

自作Makefileのすすめ

上記のインストールでは,automakeによって自動生成される,パッケージのディレクトリ構造に依存した形のMakefileを使用しています. 独立したMakefileはHelloディレクトリにある,Hello.makとして提供されています.Makefileを自作される場合には参考にしてください.
これを利用してHelloServiceをインストールするにはまず,samples/Hello/ディレクトリ内で,

% make clean

で,まず実行ファイルを消去,初期化し,Hello.mak内のCGI実行ディレクトリの記述(CGI_BIN_DIR)をディストリビューションに合わせて修正します.

次に,サンプルのインストールは,

% make -f Hello.mak

としたあと,

% su
% make -f Hello.mak install

とすると,先ほどと同様,サービスプログラムがCGIディレクトリ,/usr/local/opensoap/services/Hello にインストールされ,OpenSOAPサーバとの連携の状態が整います.

OpenSOAPサーバを使う

OpenSOAPサーバを経由すると,同じEndpointで複数のサービスが利用できるようになります.
OpenSOAPサーバを利用する場合には,クライアントのEndpointの設定を

http://localhost/cgi-bin/soapInterface.cgi

とします.(上述のようにHelloClient.cを修正します.)
さきほどの説明では,

http://localhost/cgi-bin/HelloService.cgi

にメッセージを投げていました.

OpenSOAPサーバを利用することで,サービスへのディスパッチや,非同期メッセージング,メッセージルーティングなどを利用することができるようになります.

OpenSOAPサーバを利用するためには,先ほどのHelloサンプルサービスのインストールで生成された,

/usr/local/opensoap/etc/ssml/Hello.ssml

のXML記述を確認します.(参照: doc/server/SSML_Readme.sjis.txt

ssmlファイルはOpenSOAPサーバと,サービスプログラム(/usr/local/opensoap/services/Hello/HelloService)の連携を設定します.

デフォルトでは,サーバへのHelloの呼び出しに対し,StdIO接続する設定となっています.
(socket接続するためには,サービスのinetdへの登録が必要です.(参照: doc/server/RegistService.sjis.txt))

StdIO接続とは,OpenSOAPサーバが直接立ち上げて標準入出力で通信する方法です. この場合の設定は,SSMLファイル

/usr/local/opensoap/etc/ssml/Hello.ssml

の中の,

<connection name='HelloStdio'>
  <StdIO>
  <exec prog='/usr/local/opensoap/services/Hello/HelloService'/>
  </StdIO>

で起動するサービスプログラムを指定し,

<operation type ='HelloStdio'>Hello</operation>

で使用する接続形式名を指定しています.

ssmlファイル等,サーバ設定の更新後は,OpenSOAPサーバのリロードが必要です.念のために再起動してください.

% /usr/local/opensoap/sbin/opensoap-server-ctl reload

(OpenSOAPサーバの設定ファイルを再読み込みします)

もしくは,

% /usr/local/opensoap/sbin/opensoap-server-ctl stop
% /usr/local/opensoap/sbin/opensoap-server-ctl start

(OpenSOAPサーバを再起動します ※必ずstopの操作を先に行ってください.)

の操作後,クライアントの実行をお試しください.

% ./HelloClient myname

サンプル,SimpleCalcやCalcAsyncも試してみてください.
Copyright (C) 2001-2004 Webmasters of www.opensoap.jp. All Rights Reserved.
ご利用の際は 免責・著作権情報をご覧ください.