Axis2 AXIOM

Axis2では、SOAPメッセージの送受信に、AXIOM(AXis Object Model)というオブジェクトを使ったモデルを採用している。

http://ws.apache.org/axis2/0_94/OMTutorial.html

AXIOMは、StAX(JSR 173 Streaming API for XML)に基づいている。
StAXは、PullベースのXMLパーサ仕様で、XMLドキュメントに対してストリーム経由でアクセスするもの。Java EE 5 にも含まれている。XMLの要素の読み取りが効率的に行えたり、XMLの生成ができたりするらしい。

StAXについては、以下のページが参考になりました。
http://www.javainthebox.net/laboratory/JavaSE6/stax/stax.html


で、話を戻して、AXIOMとはどういうことか?
Axis1.x では、RPC的にリモートオブジェクトのメソッドを呼び出していたが、メッセージ指向としてオブジェクトをやりとりしよう、ということらしい。
簡単に言えば、

OMElement result = sender.sendReceive(payload);

となっている(Axis2のサンプルより)のが、AXIOMということなのでしょう。

AXIOMにより、Webサービスの通信処理が、メモリの消費を抑えつつ高速化されているようですね。