Mathematica 9 is now available
5.5 Java APIを使う

ドキュメント5. アプリケーション

 

5.5 Java APIを使う

webMathematica の目的はWebサーバでMathematica の計算が行えるようにすることです.このような計算には,数値計算や数式処理のようにMathematica が適している多くのタスクのどれかひとつが含まれるのが一般的です.しかし,時にはwebMathematica の計算にMathematica 以外のものを呼び出して,追加的な機能を補いたい場合もあります.このための最も便利な方法はJavaを使うことです.普通のインタラクティブなMathematicaJ/Link ツールキットを使って非常に簡単にJavaを呼び出すことができますし,webMathematica もこれと同じことができます.Java APIの使用やMathematica 内部からJavaオブジェクトを参照することに関するより詳しい情報は,J/Link のドキュメントをご覧ください.

webMathematica には2つのクラスのコールがあります.一方はサーバ関連のAPIでもう一方はより一般的なJava APIです.詳しくは以下をご覧ください.

5.5.1 サーバAPI

特定のwebMathematica サイトの操作や詳細を制御するサーバ独自のAPIの呼出しは,次に挙げたサーバオブジェクトの定義で簡単に行うことができます.

これらはすべてJ/Linkが持っていて,典型的なJ/Link の方式で使うことができる,Javaオブジェクトの参照です.$ServletRequestはサーブレットHTTPServletRequestオブジェクトへの参照を保持します.$ServletResponseはサーブレットHTTPServletResponseオブジェクトへの参照を保持します.そして$ServletConfigServletConfigオブジェクトへの参照を保持します.これらのオブジェクトのいろいろなメソッドについてはサーブレットAPIに関する部分で触れてあり,その他のサーブレットに関する部分でも触れています.例えば,リクエストオブジェクトにはgetRemoteAddrというメソッドがあり,このメソッドはMSPで次のように使うことができます.

<msp:evaluate>
   $ServletRequest@getRemoteAddr[]
</msp:evaluate>

これがリクエストを送ったクライアントのIPアドレスを返します.これはCGI変数REMOTE_ADDRに相当するものです.

Request.jspにはもっと複雑な例があります.これのソースはwebMathematica/Examplesにあります.前述のようにwebMathematica をインストールするとhttp://localhost:8080/webMathematica/Examples/Request.jspでこれに接続することができます(ご自分のサーバに接続するURLはこれとは多少異なる場合もあります).この例題はHTTPのリクエストから名前と値を抽出します.

特定のページを処理しているときに作られるJavaオブジェクトの参照は,ページ全体の処理が終わると解放されます.カーネルの初期化の際に作られるJavaオブジェクトは解放されず,ひとつのコールから次のコールに生き残るJavaオブジェクトを保持するメカニズムを提供します.Javaオブジェクトは自動的に解放されるのですが,それでもなお,すべてのJavaオブジェクトをJavaBlockへのコールの中で作成するか,ReleaseObjectを明示的に使うかすることをお勧めします.J/Link のドキュメントにJavaBlockReleaseObjectに関する詳しい説明があります.

5.5.2 その他のJava API

で使えるJavaのAPIはこの他にもたくさんあります.その中にはデータベースの接続性用,XMLの処理用,スピーチの生成用,データ形式I/O用,HTTPを使った他のWebサービスの呼出し用等のAPIがあります.これらすべてがwebMathematica ですぐに使えます.これらに関する詳細は,適当なJavaの参考文献をご覧ください.例えばデータベース技術についてはhttp://java.sun.com/docs/books/tutorial/jdbc/index.html のチュートリアルが役に立ちます.



Any questions about topics on this page? Click here to get an individual response.Buy NowMore Information
THIS IS DOCUMENTATION FOR AN OBSOLETE PRODUCT. CURRENT WEBMATHEMATICA DOCUMENTATION IS NOW AVAILABLE.