S2Axis 開発記 準備その1 WSDD と AdminService

なんでも○○記ってすればいいもんじゃないと思いつつ,っていうか「その1」っていつまで準備で引っ張るつもりなんだろうと自分で突っ込みつつ,とりあえず書いてみるテスト.


まず S2Axis とはなんぞや? それは,サーバサイドでは S2 のコンポーネントを Web サービスとして利用できるようにするものである.クライアントサイドでは,Web サービスを S2 のコンポーネントとして利用できるようにするものである.たぶん.
ということで,いずれはクライアントサイド・サーバサイドとも実現したいと思っていますが,まずはサーバサイドが欲しいというのが言い出しっぺのはぶさん達の要望でした.どっちもいらなくなったみたいだけど.(^^;


それでそのサーバサイドですが,Java のクラスをWebサービスとして公開するには,WSDD (Web Service Deploymen Descripter) というものを記述しなければならないようです.しかしそんな面倒なことはしたくない!
そこで S2Axis がよきに計らいましょう,ということらしいです.
そこのところについて,まこたんが日記でヒントを書いてくれているのですが...

S2AxisってAOPでリモート呼び出しも組み込まなきゃね。
AdminServiceっていうWebサービスを直接呼び出したら組み込みとか自由に出来るんだ〜へ〜〜そしたらWSDD書かなくて良いと
http://ws.apache.org/~toshi/jp-site/axis/java/user-guide.html

うーん,相変わらず謎めき.(^^;
URL で示されているドキュメントによると,自前のクラスを Web サービスとして公開する際には,AdminClient というコマンドラインから実行できるクラスを使うことになっています.その引数で WSDD を指定します.
この AdminClient というのは,Web サービスのクライアントとして実装されています.つまり,Axis の管理機能自体もまた Web サービスなんですね.
そこで,その Web サービスを直接呼び出せば WSDD いらないじゃん! ってことなのかな?
でもねー,AdminClient を見ると,WSDD をそのまま AdminService に渡してるんだよねぇ (message サービスとかいうらしい),だから WSDD を生成して AdminClient 呼び出すのとたいして変わらないんだよねぇ,ってことはさておき,問題はその AdminService のクライアントってどこで誰が動かすつもりなの? ってこと.


自分が最初にこの S2Axis の話を聞いたときにイメージしたのは,Axis と S2 (コンテナ&コンポーネント) を組み込んだ Web アプリを Tomcat なんかにデプロイすると,S2ContainerServlet の初期化の際に S2Axis によってコンポーネントが Axis に登録されるというもの.
でも,まこたんは Web アプリの外からコンポーネントを Axis に登録しようと考えていた? それはなぜ? どういうこと?
まこたんの構想について解説希望.おいらに理解できるように.(^^;