Web サービスは、一連の機能をエンティティ (実体) として集めたものであり、ネットワーク上に公開されます。これらの機能は、Web サービスに対応し、かつ同じネットワークに接続する任意のアプリケーションから呼び出したり、使用することができます。当然ながら、Web サービスはインターネット上に公開された上で、最大限に利用されることを目的としています。
Web サービスにより、運送会社の貨物配送管理や eコマース、市場価格の監視など、あらゆる種類のタスクを実行することができます。
このサービスを公開するプログラムは、“サーバー”と呼ばれます。したがって、Web サービスに対応しているアプリケーションはすべて、これらの機能を一つ以上利用することができます。これが“クライアント”プログラムです。Web サービスの利点は、さまざまな情報システムとの相互運用が可能であるところです。つまり、このシステムが機能するために、サーバー側とクライアント側のプログラムが互いに互換性を持つ必要はありません。クライアントアプリケーション側からみると、Web サービスは“ブラックボックス”のようなものです。これは、ある値を Web サービスに送信すると、処理結果である別の値が返されるためです。
サーバーが提供する Web サービスは、パブリックまたはプライベートのいずれのタイプでも構いません。インターネット上にはパブリックタイプの Web サービスが多数提供されており、任意のアプリケーションが無料で要求を送信することができます。
Web サービスは、W3C (World Wide Web Consortium、インターネットに関する管轄機関) やコンピュータ産業の主要企業により管理されているため、信頼性が高く永続的で機能向上可能なコネクティビティソリューションの代名詞となっています。
Web サービスは、原則的に HTTP 通信プロトコルを使用して通信を行います。
- SOAP: Web サービスは、“オープン”なハイレベル通信プロトコルである SOAP (Simple Object Access Protocol) を使用します。このプロトコルは、メッセージ構造 (エンベロープ) レベルと交換データレベルの双方において、全面的に XML 言語を使用しています。このプロトコルの運用は、RFC (Request for Comment : インターネットに関するさまざまな局面を標準化する文書) により定義され、広範囲にわたり互換することが保証されています。
Web サービスの運用原理は、次の通りです。まず、Web サービスのクライアントが SOAP プロトコルを介して、リクエストを XML でサーバーに送信します。サーバーはこのリクエストを解析し、要求された処理を実行した後、同じプロトコルと言語を使用してその応答を返します。
- WSDL: 通常、Web サービスのサーバーは、提供するサービスの利用に関する仕様を定義するため、WSDL (Web Service Description Language) を公開します。この WSDL により、Web サービスのサーバーは、提供するサービスの“操作説明”を公開することができます (URL、メソッド一覧、パラメーター等)。これは XML ファイル形式で記述され、一般的にサーバーアプリケーション自体が作成します。このファイルは、必須ではありません。
- UDDI: UDDI (Universal Description Discovery and Integration) は、すべてのパブリック Web サービスが登録されている世界規模のデータベースです。ただし、必ずしも Web サービスをパブリックにする必要はなく、大抵の場合は、この登録が不要である点に注意してください。
4Dは、Web サービスのサーバーやクライアントとして使用することができます。Web サービスを4Dへ統合する方法はシンプルで安全です。いくつかの設定を行うだけで、公開やサブスクライブの状況を正確に監視することができます。
特に大きな変更を加えなくても、任意のプロジェクトメソッドを Web サービスとして公開することができます。公開はメソッドのプロパティで行います:

注:
- 4Dを使用して Web サービスの公開を行うには、特定のライセンス (SOAP ライセンス) が必要です。
- 4D Web サービスメソッドは、プリエンプティブ4Dプロセスにて実行可能です(64-bit 版、コンパイル済みアプリケーションのみ)
4D Web サーバーは、サービスの管理、およびWSDL ファイルの公開や保守を自動的に処理します。XML でのリクエスト内容の解析やパラメーターのフォーマット、結果の送信などの操作は4Dが実行し、特定のプログラムは必要ありません。
しかし、リクエスト処理をカスタマイズしたい場合は、特定の4Dランゲージコマンドを使用することができます (4DランゲージリファレンスマニュアルのWebサービス (サーバ)参照)。
インターネット上やネットワーク上で提供されるあらゆるタイプの Web サービスをデータベースから利用することができます。大抵の場合は、Web サービスウィザードを使用すると、ほとんどプログラムを行わなくても、すべての Web サービスを直ちに使用することができます:

4Dでは、ネットワーク経由でリクエストを送信し、応答を取得することにより Web サービスを使用します。これらの処理は、“プロキシ”メソッドが担当します。Web サービスを呼びだすプロキシメソッドはすべて自動的に作成され、プログラミングなしで実行されます。つまり、自分のコードからこれらのメソッドを呼び出すだけです。
4Dのランゲージコマンドを使用し、サーバー側と同じ方法でこれらのメソッドをカスタマイズすることができます。 (Webサービス (クライアント)参照)
4Dが公開する Web サービスは、4D Web サーバーに対して設定されたセキュリティメカニズムを継承します。したがって、Web サービスのリクエストでは、パスワード、On Web AuthenticationとOn Web Connection の各データベースメソッド、TLS プロトコルの使用など、今までの Web リクエストと同じ設定を利用することができます。
さらに、特定の設定を用いて (例えば、関数や関数)、Web サービスの公開を詳細に制御することもできます。
クライアント側では、Web サービスのサーバーへの接続はTLS を用いた暗号化モードで実行できます。ここでもコマンドを用いて、認証を必要とするサーバーへの接続を行うことができます。
Web サービスのコミュニケーションレイヤ (転送、サービスのコール、交換セキュリティを保証する) は、RPC (Remote Procedure Call) モードと DOC (Message/Document) モードという2種類のモードで運用することができます。この2つのモードは、サーバーとクライアントに対するリクエストや応答を作成するレベルにおいて異なります。
4Dは、RPC モードと DOC モードをサポートします:
- クライアント側では、Web サービスウィザードにより透過的にサポートされます。生成されるコードは、自動的に公開モードに合わせられます。
- サーバー側でも、透過的にサポートされます。メソッドは RPC モードと DOC モードで自動的に Web サービスとして公開されます。このモードの選択は、WSDL の URL を通して行われます (WSDL ファイルを生成する参照)。
- RPC モードで4DのWeb サービスを公開するには、WSDL の次のURL を使用します:
http://ServerAddress/4DWSDL
4Dのサーバーは、リクエストと応答を RPC モードで処理します。RPC モードのリクエストは自動的に次のアドレスへ送信されます: http://ServerAddress /4DSOAP - DOC モードで4Dの Web サービスを公開するには、WSDL の次の URL を使用します:
http://ServerAddress/4DWSDL/DOC
4Dのサーバーは、リクエストと応答を DOC モードで処理します。DOCモードのリクエストは自動的に次のアドレスへ送信されます: http://ServerAddress /4DSOAP/DOC
SOAP プロトコルにより、単純型 (simple types) と複合型 (complex types) という2種類の XML データのやり取りが行われます。RPC モードで公開されたWeb サービスのデータは、いずれのタイプでも構いません。これとは逆に、DOC モードで公開された Web サービスのデータは、意図的に複合型となります。4Dは、単純型と複合型のデータを使用して Web サービスをサポートします。
4Dデータベースでは複合型の XML データを直接使用することができず、特別な処理が必要になります。ほとんどの場合は、Web サービスウィザードがユーザの代わりにこの処理を実行しますが、4Dの XML ランゲージコマンドを用いてこの処理を完了しなければならない場合もあります。この件に関する詳細は、Processing complex typesを参照してください。
データベースの環境設定 ("Web"テーマ) の Webサービスページを使用して、Web サービスの公開や利用に関する一般的なパラメーターを定義することができます:

これらのパラメーターの働きについては、後章で説明します。各オプションに関する詳細は、LISTBOX GET HIERARCHYを参照してください。