« Notes/Domino6.5のJavaでのDOM Level2/SAX2の利用 | トップページ | Notes/Domino6.5でのLotusScriptによるXML操作環境 »

2004/09/08

Notes/Domino6.5でkXMLを利用する

Notes/Domino6.5上でのJavaによるXML操作に関して、「kXML2」の利用もよい方法だと思います。

kXML2はJ2ME環境等、小さなJava実行環境で動作させることを意図しており、軽量でとても小さなパッケージ(フルセットでも40キロバイトほど)になっています。

kXML2は、XML操作APIの一つである「XML Pull Parsing」を実装しています。少なくとも「DOM」「SAX」のように、製品に元々ある古い実装と衝突する、ということはありません。

また「XML Pull Parsing」はいわゆる「プル型」のAPIで、SAXに代表される「イベント駆動型」のものと同様、少ないメモリで動作させる事ができるといわれます。そして処理の進行に合わせてXMLの解釈を進めていくことができるので、論理的な処理の流れに則ったコードを書くことができ、SAXよりとても扱いやすいと感じました。

元々は、PersonalJava1.2の実行環境を持つPDA「PocketCosmo」で利用できるXML操作のAPIとして雑誌で紹介されているのを見てkXMLを知りました。時期を逸した内容ですが、PersonalJava1.2はJDK1.1.8のサブセットに相当する仕様なので、「Notes/Domino R5」でも使えるのではと当時思いました。実際使えると思います。

同様に、「XML Pull Parsing」実装を利用する「kSOAP 2」の利用も、有効だと思います。Javaエージェントを用いてSOAPサービスにリクエストを行うことも可能ですし、「LS2J」を用いればノーツフォームとより連携する形でSOAPサービスを利用できるのではと思います。

ただ「Apache Axis」等のような大きな実装とは違い、「kSOAP 2」が提供するものは基本的にSOAPエンベロープに関する処理の部分であり、HTTP通信などを含めたユーティリティクラスのようなもの等は提供されていません。自身で入出力の部分をコーディングする必要があります。

しかし応用もしやすいのではと考えます。例えばJavaエージェント用いることで、ドミノサーバー上でHTTP経由でSOAPサービスを提供することも恐らく可能ではあると思います。

携帯端末上のアプリケーションと違い、大げさにサイズや動作の軽量さにこだわる必要も無いとは思います。しかしノーツアプリケーションというと、やはり少しでも軽くという想いがあるのではと思います。実際ノーツクライアント上でXML処理を行わせる場面がどの程度あるものなのかわかりませんが、設計要素としてロードする際の回線負荷という点でもkXMLのサイズは、それなりに魅力かと思います。

※上記の内容は、あくまでSakamotoの個人的な興味、好奇心より確かめた内容であり、またあくまで個人的な意見です。参考になさる場合はご自身の責任においてお願いいたします。Sakamotoは一切責任を負いません。
Sakamotoは上記の内容の正誤に関する保証、上記の内容に関するサポートは行いません。またこの旨を伝える返信等も行いません。

|

« Notes/Domino6.5のJavaでのDOM Level2/SAX2の利用 | トップページ | Notes/Domino6.5でのLotusScriptによるXML操作環境 »