Windows system >> Windowsの知識 >  >> コンピュータソフトウェアのチュートリアル >> サーバー技術 >> サーバーについて >> 包括的な解釈:Webサービスとは何ですか?

包括的な解釈:Webサービスとは何ですか?

  
                  

分散アプリケーションとブラウザ

現在のアプリケーション開発を見ると、絶対的な傾向があります。人々はブラウザベースのシンクライアントアプリケーションを好むようになり始めています。これは、シンクライアントが優れたユーザーインターフェイスを提供できるからではなく、デスクトップアプリケーションの公開にかかる高コストを回避できるためです。デスクトップアプリケーションの公開は、アプリケーションのインストールと設定の問題が原因で半分がかかり、残りの半分はクライアントとサーバー間の通信の問題が原因でコストがかかります。

従来のWindowsリッチクライアントアプリケーションは、DCOMを使用してサーバーと通信し、リモートオブジェクトを呼び出します。大規模ネットワークで正しく機能するようにDCOMを構成することは、多くのITエンジニアにとって困難な作業であり、悪夢のようなものです。実際、多くのITエンジニアは、ブラウザの制限に耐え、LAN上でDCOMを実行しないでください。私の意見では、結果は公開しやすいアプリケーションですが、開発が難しく、ユーザーインターフェースが非常に限られています。極端な場合、あなたはより多くのお金と時間を費やしますが、ユーザーの観点からは機能的でないアプリケーションを開発します。信じられませんか?会計担当者に、新しいブラウザベースの会計ソフトウェアについてどう思うか尋ねてください。ほとんどの商用ユーザーは、よりユーザーフレンドリーなWindowsユーザーインターフェイスを望んでいます。

クライアントとサーバー間の通信問題を解決するための良い方法は、通信にHTTPプロトコルを使用することです。これは、Webブラウザを実行しているすべてのマシンがHTTPプロトコルを使用しているためです。同時に、現在の多くのファイアウォールもHTTP接続のみを許可するように設定されています。

多くの商用プログラムは、他のプログラムとの相互運用性という別の問題に直面しています。すべてのアプリケーションがCOMまたは.NETで作成されていて、それらがすべてWindowsプラットフォームで実行されている場合、世界は平和です。ただし、実際には、ほとんどの商用データは依然としてメインフレーム上に非リレーショナルファイル(VSAM)として格納され、COBOL言語で書かれたメインフレームプログラムによってアクセスされます。さらに、C ++、Java、Visual Basic、およびその他のさまざまな言語で引き続き記述されている多くの商用プログラムがあります。現在では、最も単純なプログラムを除いて、すべてのアプリケーションは他の異種プラットフォームで実行されているアプリケーションと統合してデータを交換する必要があります。このようなタスクは通常、ファイル転送や分析、メッセージキュー、およびIBMの「APPC(Advanced Program to Program Communication)」などの特定の状況にのみ適用されるAPIなどの特別な方法で行われます。 。以前は、プラットフォームに依存しない、組み込みの、そしてプログラミング言語であるアプリケーション通信規格はありませんでした。 Webサービスを通じてのみ、クライアントとサーバーは、2つのプログラムのプラットフォームとプログラミング言語に関係なく、HTTPを使用して自由に通信できます。

Webサービスとは

この質問に対する回答は少なくとも2つあります。表面上、WebサービスはWeb上で呼び出すことができるAPIを公開するアプリケーションです。つまり、Web経由でこのアプリケーションをプログラムから呼び出すことができます。このWebサービスを呼び出すアプリケーションをクライアントと呼びます。たとえば、現在の気象条件を返すことを目的としたWebサービスを作成したいとします。次に、郵便番号をクエリ文字列として受け入れ、現在の気温と天気を含むカンマ区切りの文字列を返すASPページを作成できます。このASPページを呼び出すには、クライアントは次のHTTP GETリクエストを送信する必要があります。

http://host.company.com/weather.asp?zipcode=20171

返されるデータは次のようになります。

このASPページはWebサービスとしてカウントされます。 HTTP GETリクエストに基づいているため、Web経由で呼び出すことができるAPIを公開しています。もちろん、Webサービスにはもっとたくさんのことがあります。

以下は、Webサービスのより正確な説明です。Webサービスは、相互運用可能な分散アプリケーションを構築するための新しいプラットフォームです。 Windowsプログラマとしては、COMまたはDCOMを使用してコンポーネントベースの分散アプリケーションを構築したことがあります。 COMは非常に優れたコンポーネントテクノロジですが、COMが要件を満たしていないことは簡単に説明できます。

Webサービスプラットフォームは、アプリケーションがWeb上でどのように相互運用できるかを定義した一連の標準です。 Webサービス標準を介してこれらのサービスにクエリを実行し、アクセスすることができれば、好きなプラットフォームで好きな言語でWebサービスを作成できます。

新しいプラットフォーム

Webサービスプラットフォームには、分散アプリケーションを作成するための一連のプロトコルが必要です。どのプラットフォームにもデータ表現方法と型システムがあります。相互運用性を実現するために、Webサービスプラットフォームは、異なるプラットフォーム、プログラミング言語、およびコンポーネントモデルで異なるタイプのシステムと通信するための標準タイプシステムを提供する必要があります。従来の分散システムでは、インタフェースベースのプラットフォームは、インタフェース、メソッド、およびパラメータを記述するメソッドを提供します(注釈:COMやCOBARなどのIDL言語)。同様に、Webサービスプラットフォームは、顧客がWebサービスを呼び出すために十分な情報を取得できるように、Webサービスを記述する標準も提供する必要があります。最後に、このWebサービスへのリモート呼び出しを行う方法も必要です。このメソッドは、実際にはリモートプロシージャコールプロトコル(RPC)です。相互運用性を達成するために、このRPCプロトコルはプラットフォームとプログラミング言語からも独立していなければなりません。次の3つのセクションでは、Webサービスプラットフォームを構成する3つのテクノロジについて簡単に説明します。

XMLとXSD

XML(Extensible Markup Language)は、Webサービスプラットフォームでデータを表現するための基本的な形式です。構築が簡単で分析が容易であることに加えて、XMLの主な利点は、プラットフォームに依存しないこととベンダーに依存しないことです。独立性は技術的優位性よりも重要です。ソフトウェアベンダは、競合他社が発明したテクノロジを選択しません。

XMLはデータ表現の問題を解決しますが、標準のデータ型を定義するものではなく、このデータ型のセットを拡張する方法は言うまでもありません。たとえば、整数が正確に何を表しているのでしょうか?16ビット、32ビット、または64ビット?これらの詳細は相互運用性にとって重要です。 W3Cによって開発されたXMLスキーマ(XSD)は、この問題を具体的に扱う一連の標準です。標準的なデータ型のセットを定義し、そのデータ型のセットを拡張するための言語を提供します。 Webサービスプラットフォームはデータ型システムとしてXSDを使用します。 Webサービスを言語(VB.NETやC#など)で構築する場合、Webサービス標準に準拠するためには、使用するすべてのデータ型をXSD型に変換する必要があります。あなたが使用しているツールはすでにあなたのためにこの変換を行っているかもしれませんが、あなたはおそらくあなたのニーズに合うように変換プロセスを修正するでしょう。第2章では、XSDについて学び、カスタムデータ型(クラスなど)をXSD型に変換する方法を学びます。

SOAP

Webサービスが構築された後、あなたまたは他の誰かがそれを呼び出すでしょう。 SOAP(Simple Object Access Protocol)は、Webサービスを呼び出すための標準のRPCメソッドを提供します。実際、SOAPはここでは少し誤称です。つまり、次のWebサービスはオブジェクトとして表現されていますが、必ずしもそうとは限りません。Webサービスを一連のC関数として記述することができます。 SOAPを使って呼び出します。 SOAP仕様は、SOAPメッセージの形式とHTTPプロトコル上でのSOAPの使用方法を定義しています。 SOAPもXMLとXSDに基づいており、XMLはSOAPのデータエンコード方式です。第3章では、SOAPについて説明し、SOAPメッセージのさまざまな要素について理解します。

WSDL

Webサービスの機能と各関数呼び出しのパラメータについて他の人にどのように伝えますか?あなたは自分で一連のドキュメントを書くことができます。あなたのWebサービスを使う必要がある人に口頭で話してください。これらの非公式の方法には少なくとも1つの深刻な問題があります。プログラマーがコンピュータの前に座ってWebサービスを使用しようとすると、それらのツール(Visual Studioなど)は基本的なものなので役に立ちません。あなたのWeb

サービスがわかりません。解決策は、機械可読な方法で形式的な説明文書を提供することです。 Webサービス記述言語(WSDL)は、Webサービスとその機能、パラメータ、戻り値を記述するためのXMLベースの言語です。これはXMLに基づいているため、WSDLは機械可読でも人間可読でもあり、これは大きな利点です。最新の開発ツールの中には、Webサービスに基づいてWSDLドキュメントを生成したり、WSDLドキュメントをインポートして対応するWebサービスを呼び出すコードを生成したりするものがあります。

Copyright © Windowsの知識 All Rights Reserved