Caché での Web サービスおよび Web クライアントの作成
Caché Web サービスおよび Web クライアントの概要
[Home] [Back] [Next]
InterSystems: The power behind what matters   
Class Reference   
Search:    

Caché は、SOAP (Simple Object Access Protocol) の 1.1 および 1.2 をサポートしています。このサポートは、使いやすく効率的で、SOAP 仕様と完全な互換性があります。このサポートは、Caché に組み込まれており、Caché にサポートされるすべてのプラットフォームで使用できます。

この章は、以下のセクションで構成されます。
Caché Web サービスの概要
このセクションでは、Caché Web サービスの概要について説明します。
Caché Web サービスの作成
Caché では、次のいずれかの方法で Web サービスを作成できます。
Web アプリケーションの一部としての Web サービス
Caché Web サービス・クラスは、%SOAP.WebService クラスから継承され、その継承元クラスは %CSP.Page クラスから継承されます。
そのため、Caché Web サービスは、Web アプリケーション内に格納されます。このアプリケーションの構成は、管理ポータルで行います。詳細は、"Caché セキュリティ管理ガイド" の アプリケーション の章を参照してください。
WSDL
クラス・コンパイラは、Web サービスをコンパイルする際、そのサービス用の WSDL を生成し、利便性を向上するために、その WSDL を Web サーバ経由で公開します。この WSDL は、WS-I (Web Services Interoperability Organization) によって確立された Basic Profile 1.0 に準拠しています。Caché では、WSDL ドキュメントが特定の URL で動的に処理され、(実行時に追加されるヘッダ要素以外にも) ユーザの Web サービス・クラスのインタフェースに対する変更のすべてが自動的に反映されます。ほとんどの場合は、このドキュメントを使用して、Web サービスと相互運用する Web クライアントを生成できます。
詳細と重要な注意事項は、次の章の WSDL の表示 を参照してください。
Web サービスのアーキテクチャ
Caché Web サービスの既定の機能を理解するには、Web サービスが認識可能なメッセージである、SOAP メッセージが含まれる HTTP 要求を受け取ったときに、Web サービスで発生するイベントについて理解することが有用です。
まず、特定の URL にリダイレクトされる HTTP 要求のコンテンツを考えてみます。
ここで、この要求が送信された場合に実行される処理を確認しましょう。
  1. サードパーティの Web サーバがこの要求を受け取ります。
  2. この要求は .cls で終わる URL 宛てになっているため、Web サーバはこの要求を CSP ゲートウェイに転送します。
  3. CSP ゲートウェイで、この URL が検証されます。CSP ゲートウェイは、この URL の一部を Web アプリケーションの論理名として解釈します。CSP ゲートウェイは、Web アプリケーション内の該当する物理位置 (Web サービスのページ) にこの要求を転送します。
  4. Web サービス・ページはこの要求を受け取ると、その OnPage メソッドを呼び出します。
  5. Web サービスは、要求に Caché SOAP セッション・ヘッダが含まれているかどうかを確認し、含まれている場合には、該当する SOAP セッションを再開するか、新規のセッションを開始します。
    Note:
    この手順では、SOAP セッションとは、Caché SOAP サポートでサポートされるセッションのことです。SOAP 仕様がセッションの標準を定義するわけではありません。ただし、ここで説明するように、Caché SOAP サポートでは、Web クライアントと Web サービス間のセッションの管理に使用できる専用の Caché SOAP セッション・ヘッダが提供されます。
  6. Web サービスは、メッセージをアンパックし、それを検証して、すべての入力パラメータを適合する Caché 表記に変換します。変換では、複雑なタイプごとに、その複雑なタイプを表現するオブジェクト・インスタンスが作成され、そのオブジェクトが Web メソッドの入力として使用されます。
    ここで HTTP ヘッダの SOAP アクションを使用して、メソッドと要求オブジェクトが指定されます。
    Web サービスは、メッセージをアンパックするときに、新しい要求オブジェクトを作成し、そのオブジェクトに SOAP メッセージをインポートします。このプロセスでは、Web サービスは、この Web サービスがコンパイルされたときに作成されたクラス (Web メソッド・ハンドラ・クラス) を使用します。
  7. Web サービスは、要求された Caché メソッドを実行し、応答をパッケージ化して、SOAP 応答を作成します。このときに必要に応じて SOAP ヘッダも組み込みます。
  8. Web サービスは、SOAP 応答 (XML ドキュメント) を現在の出力デバイスに書き込みます。
次の図は、このフローの外部部分を示しています。
Caché Web クライアントの概要
このセクションでは、Caché Web クライアントの概要について説明します。
Caché Web クライアントの作成
Caché では、Caché SOAP ウィザードを使用して既存の WSDL ドキュメントを読み取ることで、Web クライアントを作成します。このウィザードでは、Web クライアント・クラスおよびサポートするすべてのタイプ・クラスが生成されます。
生成された Web クライアント・インタフェースには、Web サービスで定義された各メソッドのプロキシ・メソッドを含むクライアント・クラスがあります。各プロキシでは、対応する Web サービス・メソッドで使用されるものと同じシグニチャが使用されます。インタフェースには、メソッドの入出力として必要な XML タイプを定義するためのクラスも含まれています。
通常は、生成されたクラスをカスタマイズすることはありません。その代わり、Web クライアントの動作を制御し、そのプロキシ・メソッドを呼び出す追加クラスを作成します。
Web クライアントのアーキテクチャ
Caché Web クライアントの機能を理解するため、ここでは、ユーザまたは他のエージェントが Web クライアント内のメソッドを呼び出したときに発生するイベントについて考えてみます。
  1. まず、Web クライアントで、メソッド呼び出しとその引数値を表す SOAP メッセージが作成されます。
  2. 次に、SOAP メッセージを含む HTTP 要求が作成されます。前述のとおり、HTTP 要求には要求行と HTTP ヘッダが含まれます。
  3. HTTP 要求が発行され、それが適切な URL に送信されます。
  4. Web クライアントは、HTTP 応答を待機し、状態を判断します。
  5. Web サービスから SOAP 応答を受信します。
  6. SOAP 応答をアンパックします。
以下の図は、このフローを示しています。
その他の機能
Caché Web サービスおよび Web クライアントには、次の機能を追加できます。
サポートされる規格の詳細は、次のセクションを参照してください。
Caché でサポートされる規格
ここでは、Caché Web サービスおよび Web クライアントの基本規格WSDL のサポートの詳細を紹介します。
その他の規格は、"Caché Web サービスの保護" を参照してください。
基本規格
Caché Web サービスおよび Web クライアントは、次の基本規格をサポートします。
Caché でサポートされる XML 規格の詳細については、"Caché XML ツールの使用法" を参照してください。
Caché における WSDL のサポート
Caché では、可能なすべての WSDL ドキュメントをサポートしているわけではありません。変更できない特定の WSDL に対応する Web クライアントの作成が必要なことが多いため、クライアント側により高い柔軟性が与えられます。ここでは、サポートの詳細について説明します。
生成された WSDL ドキュメント
Caché Web サービスによって生成される WSDL ドキュメントにはヘッダが含まれません。また、Caché で作成できる Web サービスがすべての可能なバリエーションを反映するわけではありません。
SOAP 仕様では、WSDL を生成する Web サービスは一切必要とされていないことに注意してください。
WSDL の利用
Caché SOAP ウィザードは、考えられるすべての WSDL ドキュメントを処理できるわけではありません。特に次の制限事項があります。
SOAP ウィザードでは、WSDL における MIME バインディングを使用できます (http://www.w3.org/TR/wsdl#_Toc492291084)。 MIME パーツは無視され、WSDL の残りの部分が処理されます。 MIME バインディングを含む WSDL を基盤とする Web サービスまたは Web クライアントを作成する場合は、MIME 添付をサポートする Caché ObjectScript コードを明示的に追加する必要がありますが、この作業はこのドキュメントの対象ではありません。
SAX パーサについての重要な点
Caché SAX パーサは、Caché が SOAP メッセージを受け取るたびに使用されます。その既定の動作を知っておくと役に立ちます。パーサは、以下のようなタスクを行います。