プロキシサービス(Proxy Services)
スキーマ、WSDLや、元のサービス以上のQoS(WS-Security、WS-Reliable Messagingのような)の上に、作成・公開することができます。そして、プロキシサービスは、実際のエンドポイントに届く前のメッセージや、クライアントに届く前のエンドポイントの応答を、仲介することができます。 クライアントは、Synapseのプロキシサービスにリクエストを送信します。クライアントからは、Synapseの上に、サービスがホストされているように見えます。例えば、"?wsdl"を実行できたり、仮想プロキシサービスのWSDLを参照することができます。ですが、Synapseの設定によって、そのようなリクエストを好きな方法で扱うことができます。もっとも明らかなことは、メッセージに何らかの処理を行い、実際のサービス、大抵は異なるコンピュータの上で動作しているサービスにメッセージを送信することです。しかし、実際のサービスにメッセージを送信することが、常に必要なわけではありません。プロキシサービスは、実際のサービスにメッセージを送信せずに、処理のフロー(?flow)を終了したり、java(?)をクライアントに送り返したりするための、メッセージの受信により実行される任意のタスクを並べることができます。よりよい理解をえるために、シンプルなプロキシサービスのシナリオをひとつひとつ見てみましょう。
/samples/axis2Serverディレクトリに移動して、以下のコマンドでサーバを起動するだけです。
前回のセクションと同様のメッセージがコンソールに表示されます。
/bin内の以下のコマンドで、Synapseを起動しましょう。ターゲットとなるエンドポイントの代わりに、入ってくるメッセージを仲介するシーケンス指定でき、そして、他の多くの設定(possiblity and options)がプロキシサービスを設定するために利用することができます。それらは、サンプルや、設定ガイドの中で、説明されています。
Synapseは、前回のセクションの処理の起動のステップで記述したときと同様のメッセージを画面に表示します。クライアントを実行するまえに、公開されたWSDLを表示するプロキシサービスの別の機能を見てみましょう。Webブラウザを起動し、そして、http://localhost:8080/soap/StockQuoteProxy?wsdl のアドレスを指定してください。設定の中で指定された sample_proxy_1.wsdl ではなく、http/s上のサービスの正しいEPRが表示されるはずです。
/samples/axis2Clients ディレクトリに移動して、以下のコマンドをタイプしてください。
その名のとおり、プロキシサービスは、Synapseの中にサービスをホストしているかのように動作し、そして、一般的に、サービスのエンドポイントの前面に配置されます。プロキシサービスは、異なるトランスポート、サンプルを実行する。(Running the sample)
前のセクションと同様に、プロキシサービスを説明するために、サーバ、クライアント、そしてSynapseの3つの要素を実行します。Axis2サーバのサンプルをスタートする。(Starting the sample Axis2 server)
前のセクションで、SimpleStockQuoteサービスをビルドしてデプロイしているなら、Synapseを起動する。(Starting Synapse)
プロキシサービスの定義を含む設定で、Synapseを起動します。今回は、synapse_sample_150.xml を使用します。新たに設定を書く必要はありません。<definitions xmlns="http://ws.apache.org/ns/synapse"> <proxy name="StockQuoteProxy"> <target> <endpoint> <address uri="http://localhost:9000/soap/SimpleStockQuoteService"/> </endpoint> <outSequence> <send/> </outSequence> </target> <publishWSDL uri="file:repository/conf/sample/resources/proxy/sample_proxy_1.wsdl"/> </proxy> </definitions>上記の設定は、StockQuoteProxyという名前でプロキシサービスを公開します。そして、プロキシサービスのターゲットとして、エンドポイント(http://localhost:9000/soap/SimpleStockQuoteService)を指定しています。この設定により、プロキシサービスに到達したメッセージは、エンドポイントに指定した http://localhost:9000/soap/SimpleStockQuoteService のアドレスに送信されます。プロキシサービスには、応答メッセージに適用される外に出て行くシーケンス(an out sequence?)もあります。外に出て行くシーケンス(out sequence?)は、クライアントにメッセージを送り返すだけです。publishWSDLタグは、このプロキシサービスがWSDLを公開するように指定しています。では、このサンプルの設定を使用して、以下に示す
クライアントを実行する。(Run the client)
さて、実行してみましょう。ant stockquote -Dtrpurl=http://localhost:8080/soap/StockQuoteProxy -Dmode=quote -Dsymbol=IBM上記のコマンドは、http://localhost:8080/soap/StockQuoteProxy のエンドポイントに株価情報のリクエストを送信します。その結果、以下に示すようなサーバからの応答がコンソールに表示されます。
Standard :: Stock price = $165.32687331383468このクイックガイドでは、プロキシサービスの簡単な使用法を説明しています。より高度な使用方法を深く知るには、サンプルガイドの中の150番そして、それ以上の番号のサンプルを参考にしてください。 これで、Synapseの概要を見たことになります。Synapseの高度な機能をより深く、そして明らかにしていきましょう。あなたは関心のある機能のサンプルを参照することができます。Synapseを利用している際に、何らかの問題があったときは、遠慮なくSynapuseユーザメーリングリスト(http://synapse.apache.org/mail-lists.html)に質問してください。