S2Axis

(via http://d.hatena.ne.jp/skimura/20040813#p10)
id:koichikさんってHibernate入門記の人ですか、凄げー、楽しみ。先月、NHibernateを弄ってた時に参照させて頂きました。
 そういや去年行ったIBMセミナーでAxisのコミッタの中村氏がAxisの内部動作を説明されてましたが、凄い難しかったけど面白かったよな。なんでもApaceh SOAPSOAPヘッダ処理がサポートされていないことからAxisのプロジェクトが立ち上がったとか。
 思い出しついでに資料引っ張り出して備忘録としてメモ
 ・クライアント側からはDll(Dynamic Invocation Interface) Call、Dynamic Proxy、またはWSDL2Javaで生成したスタティックなスタブからAxis Callする。
 ・Dll Callの場合、javax.xml.rpc.Callのインスタンスに引数を渡してinvokeした結果をObject型で受けとる必要がある。
 ・Dynamic Proxyの場合、AddressServiceのインスタンスをService.getPortを利用してDynamic Proxyを生成する。AddressServiceはインターフェイスで実装はRMI Proxyを使って実行時に生成される。
 ・Axis Callは呼び出すサービスのオペレーション、引数等をSAAJのTreeにしてMessage Contextを生成する。
 ・Axisのハンドラの実装は何でも有り(w。Handler Chainも可能で他のWeb Serviceを呼び出しことも可能。request時でもresponse時にでもMessage Context内のリソースにアクセス可能。
 ・HTTP SenderがSAAJ Treeをバイト列にシリアライズする。
 ・クライアントが要求したサービスをサーバーが処理する際にはデシリアライズ時に間にSAXのイベントを発生させる場合と直接レスポンスをクライアントに返す2つのモードがある。
 ・Web Service SecurityとJSR-109は私にはまだまだ難しいです(w。仕様も未だにリキッドな感じですしね、そうそうUDDIもだよ。Transactionと共に現時点でも課題なんじゃないでしょうか。
 ・WSS-CoreはAxisのハンドラによって実装、但しDOMにて実装しているのでパフォーマンスのオーバーヘッドは発生する。
 当時の率直な感想・・・、Web Serviceの実装はどとねとでやろっと(w。でもS2Axisが楽にしてくれることを期待します。
 なんかセミナーは全体的に意地でもWSDL2JavaとJava2WSDL使いなさい!!な流れでしたが、正直まだクライアント側のスタブ作るため、としてしかメリットを享受できなさそうな。