今までなかなか手出ししたことなかったWebサービス(最近はWebAPIの一般的?)にちょっと足を踏み込むことに。。
SOAPが使える環境を作れということでちょっとやってみました。
(クライアント、サーバ側共にJava)
まず SOAP についてはDCOMやCORBAのような分散オブジェクト技術の一種で、WEBの世界では複雑高機能がSOAP、軽量簡単が REST くらいしか知らなかったので、そこら辺を調査してみました。
(SOAP,RESTの比較については、REST 入門(その9) REST と SOAPやWeb 2.0時代のWebServices ~SOAP/REST使い分けの指針、【IT用語】マッシュアップとWebサービスAPIあたりを参考。)
SOAPの概要は@IT:連載 WebサービスのキホンやITPro:SOAP,WSDL,REST――Web APIの基礎技術を学ぶがわかりやすかったです。要は異種アーキテクチャ間の相互接続問題やFWを通過が難しい CORBA や DCOM に代わってXMLベースでトランスポート層プロトコルに依存しないRPC,メッセージ交換用のプロトコルということみたいです。
また、WSDLってのがWebサービスのインターフェイスに関する情報を定義しているXMLです。WSDLを開発ツールとかで取り込むと簡単にWEBサービスを利用できるクライアントが作れるようですね。
UDDIというものWEBサービスにはよく語られるものらしいですが、これはどんなWEBサービスがあるかを検索するものなので、今回のプロジェクトでは使う必要がなさそうなのでスルーです。
さて、調べてみると Apache Axis2 ってのが比較的よく使われているようなのでこれで環境を構築してみることにしました。
Axis2 は Apahce SOAP → Apache Axis という経緯を経てるようです。
Axis2 は Tomcat 上で動かすものらしいので、まず Tomcat6 を入れてみました。
これが意外にてこずりました。
この件は詳しくはCentOS5.3 に Tomcat6 を入れてみたにまとめました。
Tomcatがインストールできたら、次にAxis2 を配備します。
Axix2はここから "WAR (Web Archive) Distribution" をダンロードして、WARファイルを Tomcat に配備します。
http://server:8080/axis2/ にアクセスすると、Services ってリンクがあるので、ここを押下するとAxis2の上で動いてるWebサービスの一覧が見えるようですね。デフォルトで Version というWebサービスが配備されており、WSDLも見れるようです。
また、AdiministrationのリンクからWebサービスの配備等の管理ができるようです。
この時のログインのアカウントは、/webapps/axis2/WEB-INF/conf/axis2.xml に定義されています。
name="userName"> admin>
name="password"> axis2>
デフォルトのアカウントはuser:admin,pass:axis2みたいですね。
SOAPを動かすサーバ環境としてはこれだけで構わないようです。
後は、実際のWebサービスの開発ですが、今回は担当しないんで環境構築だけで終わりそうです。。。
参考:
Apache Axis2 を インストール:[SE@HUMAN]$ reboot:So-netブログ:
イロイロな分散処理技術とイマドキのWebサービス (1/2) - @IT javaでの各種分散技術の概略がまとめられています。