何(転載)Webサービス?

転載住所:http://blog.csdn.net/qq_19916577/article/details/44988015

 

I.前文

  私たちは多かれ少なかれWebサービス(Webサービス)を聞いたことがある、コンピュータ雑誌、書籍やWebサイトの多くが記載されている時間と気まぐれ広報Webサービス技術の期間があり、それらの多くは、広告や食材の多くを誇っています。しかし、それWebServiceが本当に新しい、有望な技術である認めざるを得ない、そして最終的には何がWebServiceのでしょうか?するときは、使用する必要がありますか?

   アプリケーション開発の現在のフェーズは、2つの非常に異なる傾向を示して:1をシンクライアントアプリケーションのブラウザに基づいており、一つはもちろんのリッチクライアントアプリケーションのブラウザ(RIA)、後者の技術に基づいています主に元についてここでは、(今非常に人気のHTML5の技術のように)いくつかは、比較的多くのトレンディな。

   ベースのシンクライアントアプリケーションのブラウザは、優れたユーザーインターフェースを提供できるシンクライアントによるものではないが、それは、公開デスクトップアプリケーションに費やすコスト高を回避することができますので。理由の一つは、アプリケーションのインストールと設定、およびその他の半分に問題の高価なデスクトップパブリッシングアプリケーションは、クライアントとサーバー間の通信に問題が原因です。従来のWindowsリッチクライアントアプリケーションがサーバーとリモートオブジェクトの呼び出しとの通信にDCOMを使用しています。ことは、通常の操作で大規模なネットワークでは困難な作業ではなく、多くのITエンジニアの悪夢となりますので、DCOMが構成します。実際には、多くのITエンジニアではなく、ローカルエリアネットワークDCOMでそれを実行したくない、ブラウザによってもたらされた機能的な制限を容認します。クライアントとサーバーの通信の問題は、完璧なソリューションは、通信にHTTPプロトコルを使用することです。Webブラウザを実行している任意のマシンは、HTTPプロトコルを使用しているためです。同時に、現在の多くのファイアウォールは、HTTP接続のみを許可するように設定されています。多くの商用プログラムは、他のプログラムとの相互運用性があり、別の問題に直面しています。すべてのアプリケーションがCOMまたは.NET言語を使用して書かれており、Windowsプラットフォーム上で実行されている場合、それは平和と調和です。しかし、ほとんどのビジネスデータがまだCOBOLメインフレームへのアクセスで書かれたプログラムによって、メインフレーム上の非リレーショナルファイル(VSAM)の形式で格納されているという事実。また、多くの商用プログラムはC ++やJava、Visual Basicの、およびその他のさまざまな言語を使用し続けて残っています。今、最も簡単な手順に加えて、すべてのアプリケーションは、異種プラットフォームとのデータ交換上で実行されている他のアプリケーションと統合する必要があります。通常、などを完了するために、現在の(APPC)を交互にプログラムに、IBMの高度なプログラムなどのファイル転送および分析、メッセージキュー、および唯一のAPIのいくつかのケースのために、のような特殊な方法によるこのようなタスク。過去には、全くアプリケーション通信規格が存在しない、プラットフォームに依存し、コンポーネントモデルとプログラミング言語です。クライアントとサーバーのみが自由にかかわらず、どのような二つの手順のプラットフォームやプログラミング言語はいの、Webサービスを通じてHTTPで通信できるようにします。

 

二つ、あるものを最終的にWebサービス?

   一言で言えば:Webサービス技術は、プログラミング言語とオペレーティングシステムプラットフォーム間でのリモート呼び出しの間です。

   クロスプラットフォーム、クロス言語プログラミングいわゆる、Javaを使用して書かれているサーバプログラム、クライアントプログラムあなたは他のプログラミング言語、およびその逆を使用することができます!クロスオペレーティングシステムプラットフォームサーバープログラムを参照し、クライアントプログラムは、異なるオペレーティングシステム上で実行することができます。

    いわゆる長距離通話は、すなわち、他のコンピュータB上のオブジェクトのメソッドを呼び出すことができるコンピュータ上のプログラムは、例えば、カップはモールのPOSクレジットカードシステムに供給され、コード転送方法モールPOS機が呼を転送します実際には、銀行は、サーバー上で実行されます。別の例として、アマゾン、気象予測システムは、淘宝網、学校のネットワーク、百度と市場を拡大し、サードパーティのWebサイトやプログラムは、これらのサービスを呼び出すことができるように、サービスのうちWebサービスとして公開され、そのシステムへの他のサービスには、独自のシステムを占めています率、大きな概念、いわゆるSOAアプリケーションを爆破します。

   実際には、様々な角度のWebServiceから理解することができ、表面には、Webサービスは、外の世界へのAPI呼び出しを使用してWebアプリケーションを公開している、それは方法は、Web上でこのアプリケーションを呼び出すようにプログラムすることができると言うことです。私たちは、このWebServiceアプリケーションはクライアントと呼ばれ、サービス側と呼ばれるこのWebServiceのアプリケーションを提供するために呼び出します。より深く見て、Webサービスは、相互運用可能な新しいプラットフォームは、プラットフォームで標準のセットである分散アプリケーションを構築することです。これは、Web上のアプリケーションの相互運用性は、あなたが私たちが照会およびWebサービス標準介してこれらのサービスにアクセスできる限り、任意のプラットフォームのWebサービス上で書くことが好き、好きな言語を使用することができる方法を定義します。

   Webサービスプラットフォームは、分散アプリケーションを実装するためのプロトコルのセットを作成する必要があります。任意のプラットフォームは、そのデータ表現と型システムを持っています。相互運用性を実現するために、Webサービスプラットフォームは、異なるプラットフォーム、プログラミング言語やシステムのさまざまな種類のコンポーネントモデルを通信するために使用される標準型システムのセットを提供しなければなりません。顧客がWebサービスを呼び出すための十分な情報を得ることができるように、Webサービスプラットフォームは、Webサービスを記述するための標準を提供する必要があります。最後に、我々はまた、リモートでこのWebサービスを呼び出すための方法を持っている必要があり、この方法は、実際にリモートプロシージャコールプロトコル(RPC)です。相互運用性を実現するためには、RPCプロトコルはまた、プラットフォームやプログラミング言語に依存しなければなりません。

 

三、Webサービスプラットフォーム技術

  XML + XSD、SOAPとWSDLは3つのWebServiceの技術プラットフォームで構成されています。

XML + XSD:

  XML形式のデータを送信するWebサービスのHTTPプロトコル、データパッケージ(パラメータが渡されているか、リモートサービスオブジェクトを呼び出し、どのサービスオブジェクトの結果を返す、すなわち、XML記述方式)。XML Webサービスのプラットフォームは、データ形式で表されます。セットアップが簡単で、分析しやすいことに加えて、XMLの主な利点は、それがプラットフォームに依存しないの両方であることで、ベンダーに依存しないです。独立は、技術的な優位性よりも重要である:ソフトウェアベンダーは、競合他社のが発明した技術を選択しないだろう。

  XMLは、データ表現の問題を解決するが、それは、データ・タイプの標準セットを定義していませんが、データ型のこのセットを拡張する方法を言っていません。例えば、最終的には整形手術の数は何の意味しますか?16、32、64?これらの詳細は、相互運用性を達成するために重要です。XMLスキーマ(XSD)特にこの問題に対処する標準のセットです。これは、標準的なデータ型のセットを定義し、データ型のセットを拡張するための言語を提供します。WebServiceのインターネットは、データ・タイプXSDシステムとして使用されています。あなたは(たとえば、VB.NETやC#など)の言語を使用してWebサービスを構築する場合、Webサービスの標準を遵守するためには、あなたが使用するすべてのデータ型は、XSD型に変換する必要があります。あなたが使用するツールは、自動的に変換を完了助けてきたかもしれないが、あなたのニーズに応じて変換プロセスを変更する可能性があります。

石鹸:

   Webサービスは、要求を送信し、HTTPプロトコルを使用して要求コンテンツを検索結果を受信し、コンテンツ送信の結果は、HTTPメッセージ、これらの特定のHTTPヘッダおよびXMLの形式のコンテンツを示すために、XML形式のパッケージであり、いくつかの特定のHTTPメッセージヘッダを追加するとコンテンツフォーマットは、SOAPプロトコルです。SOAPは、Webサービスを呼び出すための標準的なRPCメソッドを提供します。

  = HTTPプロトコルSOAPプロトコル+ XMLデータ・フォーマット

  SOAPプロトコルはSOAPメッセージのフォーマットを定義し、SOAPはHTTPプロトコルに基づくプロトコルである、SOAPは、XMLおよびXSDに基づいており、XMLは、データのSOAPエンコーディングです。類推:HTTPは、一般道路であるXMLは、両側の緑色バッファゾーンであり、フェンスの中央に、SOAPは、バッファゾーンを通って一般道路と高速道路のフェンスの変換を追加します。

WSDL:

   たとえば、私たちはものを買うために店に行く、我々が最初に買いに戻ってくる、その後、何かを買うために店を知っている必要があり、ビジネスの実践は、広告ポスターを設置することです。Webサービスは、あまりにも、WebサービスのWebサービスクライアントは、最初にすべての私たちは、WSDLファイルによって彼の家を説明するために、サービス、および呼び出すことができるものではサービスですので、我々は最初のWebサービスを終了する必要がありますが、働く場所のアドレスを知る必要があり、サービスを起動したいですそれでは、サービスのコールを開始することができ、サービスを呼び出すために何を意味するのかによって、サービスネットワークアドレスURLアドレスを表すサービスは、(どの方法がサービスを、どのような方法でパラメータがある受け入れ、戻り値は何である)、何です。

   WSDL(Webサービス記述言語)は、Webサービスとその機能、パラメータと戻り値を記述するためのそのようなXMLベースの言語です。これは、クライアントとサーバーが理解できる標準フォーマットのWebサービスです。それはXMLに基づいているため、WSDLは、機械可読でなく、人間が読めるの両方で、それは大きな利点となります。最新の開発ツールの一部は、両方のWebサービスのWSDL文書の生成に基づいて、だけでなく、Webサービスプロキシクラスが適切なコードを呼び出す生成し、WSDL文書をインポートします。

  Webサーバー上に保存されたWSDLファイルには、あなたはURLアドレスを経由してアクセスすることができます。クライアントは、Webサービスのサービスを呼び出すために前に、WSDLファイルは、サービスのアドレスを知っています。Webサービス・サービス・プロバイダは、2つの方法でそのWSDLファイルのアドレスを公開することができます:UDDIサーバに登録された1人を捜索するために、2を直接クライアントに発信者を教えて...

 

四、Webサービスの開発

  Webサービスの開発には、サーバー側の開発およびクライアント開発二つの側面に分けることができます。

   サービス側の開発:遠隔コラボレーションユニットと個々の呼び出しのための社内システムのWebServiceサービスへの出版事業法。(Webサービスフレームワークを簡単にWebサービスのサービス、Javaのエリアの典型的なWebサービスフレームワークが含ま:. Axisを、XFireの、CXFなどに独自のビジネスオブジェクトを公開することができ、JavaのEEサーバは通常、JBossのようパブリッシングWebServiceのサービスサポートのいくつかで)
   クライアントを開発:誰か掲載WebServiceのサービスを呼び出すには、開発に従事し、人々の大半は、たとえば、天気予報は、Webサービスのサービスを呼び出して、この側面に属します。クライアントプログラミングAPIのクラスファクトリを供給し;(プロキシクラスコードの静的呼び出しを生成するツールのように、メーカーのWSDL2Javaのを使用して、以前の標準のSUN会社JAX-RPC開発キットを使用して、SUNの最新の標準を使用するJAX-WS開発キットもちろん、SUN)は、Oracleに買収されました

   Webサービスの呼び出しが動作します。クライアントは、我々はこのWebServiceクライアントAPIのURLアドレスwsdlファイルの様々なタイプに渡された、APIは、基礎となるプロキシクラスを作成します、私はこれらの薬剤は、Webサービスのサービスにアクセスすることができます呼び出します。プロキシクラスのメソッドは、データ形式にクライアント要求から呼び出し、HTTPプロトコルを介して石鹸に送られ、戻り値が返さ石鹸に受信したデータを格納します。リモートクライアントがデータを解析して、httpプロトコルを介して、石鹸のデータ形式から送信された要求、それを呼び出すようにするときに、サービス側では、Webサービスフレームワークの様々なタイプの性質は、大きなサーブレットでは、Javaクラスを呼び出すために知っていますその方法は、検索またはオブジェクトを作成し、そのメソッドを呼び出すために行ってきました、そしてパッケージング方法は、http応答を介してクライアントに戻すSOAPメッセージのデータ形式に結果を返します。

 

V.アプリケーション

図1に示すように、クロスファイアウォール通信:

   アプリケーションは、数千のユーザーを持ち、世界中に分散している場合、クライアントとサーバ間の通信は、厄介な問題になります。クライアントとサーバの間にファイアウォールやプロキシサーバが通常ありますので。この場合は、DCOMを使用すると、すべてのユーザーの手のような多数のクライアントプログラムを公開することは通常は容易ではない、それほど単純ではありません。伝統的なアプローチは、クライアントとして、ブラウザを選択することで、中間層アプリケーションをエンドユーザーに公開され、多くのASPページを書きました。この開発の結果は、プログラムを維持することが困難である、困難です。Webサービスへの中間層コンポーネント場合は、ユーザー・インタフェースから直接、中間層コンポーネントを呼び出すことができます。ほとんどの人々の経験から、ユーザーインターフェイスと中間層をよりインタラクティブなアプリケーション、使用のWebサービスがあり、この構造では、ユーザ・インタフェース・プログラミングに費やした開発時間の20%を保存することができます。

2、アプリケーションの統合:

   エンタープライズアプリケーション開発者が知っている、企業は、多くの場合、異なるプラットフォーム上で実行するプログラムの様々な統合し、この統合は、開発努力の多くを過ごすことになり、異なる言語で書かれたことがあります。アプリケーションは、多くの場合、IBMのメインフレーム上で動作するプログラムからのデータを必要とするか、UNIXホストまたはアプリケーションにデータを送信します。でも、同じプラットフォーム上で、異なるソフトウェアメーカーは、多くの場合、一緒にさまざまなソフトウェアを統合する必要があります。Webサービスでは、それが簡単に異なる構造のアプリケーションを統合することができます。

3、B2B統合:

   Webサービスは、アプリケーションと統合、それは企業内の業務プロセスをさらに自動化することができます。しかし、取引先や顧客間で取引をする際の企業に何が起こるかの境界をプッシュするとき?多くの場合、B2Bインテグレーションと呼ばれるクロス会社の取引を統合しました。WebサービスのB2B統合が成功への鍵です。Webサービスにより、企業は、指定された取引先や顧客に「さらさ」クリティカルなビジネスアプリケーションを置くことができます。例えば、電子発注システムとアウト「暴露」電子請求書システムは、顧客が電子的に注文を送信することができ、原材料の仕入先請求書を電子的に送信することができます購入します。もちろん、これは新しい概念ではありません、EDI(電子文書交換)が長いケースとなっています。しかし、Webサービスの実装がEDIよりもはるかに簡単で、Webサービスは、インターネット上で実行して、簡単にその運転コストが比較的低く、世界のどこにでも実現することができます。しかし、Webサービスは、文書交換やB2B統合のための完全なソリューションとしてEDIとしてではありません。WebサービスのみB2B統合が統合を達成するための重要な部分だけでなく、他の多くの部分です。

   B2B統合で最大の利益を達成するためのWebサービスは、それが簡単に相互運用性を実現することができるということです。限りビジネスロジックアウト「暴露」は、Webサービスになると、あなたが任意の指定されたパートナーなどのビジネスロジックを呼び出すことができ、関係なく、システムの任意のプログラミング言語を使用して、任意のプラットフォーム上で動作します。これは非常に、統合されたB2Bに費やす時間とコストを削減EDIは、元の中小企業の多くは、B2B統合を達成することができますする余裕ができません。

4、ソフトウェア、およびデータの再利用:   

      ソフトウェアの再利用は大きな話題と、再利用可能な形の多くは、異なるサイズの再利用の程度です。最も基本的な形式は、ソース・コード・モジュールまたはクラスの再利用であるバイナリ形式のコンポーネントの再利用の一形態です。Webサービス・アプリケーションは、サービスレベルの再利用を実現するために、他のアプリケーションのために、アウト「暴露」機能やデータへの標準的な方法を使用することができます。

 

六、使用しません

1、スタンドアローンのアプリケーション:

      現在、企業や個人も、デスクトップアプリケーションの多くを使用します。一部のみのマシン上の他のプログラムと通信する必要があります。この場合、それは上のローカルAPI限り、Webサービスを使用するのが最善ではありません。それは小さくて速いので、COMは、この場合には作業に適しています。同様に、同じサーバー上のサーバーソフトウェアを実行してください。好ましくは、直接または他のローカルのCOM APIをアプリケーション間でコールします。もちろん、Webサービスは、これらの機会に使用することができますが、あまりにも多くを消費していなかった、と何か良いをもたらすことはありません。

2、LAN均質なアプリケーション:

      多くのアプリケーションでは、すべてのプログラムが同じローカルエリアネットワーク上で実行されている、Windowsプラットフォーム上でCOMを使用し、VBやVCで開発されています。例えば、2つのサーバアプリケーションが相互に通信を必要やWin32またはLAN上の別のサーバーに接続するためのWinFormクライアントプログラムを持っているがあります。これらの手順では、DCOMを使用すると、SOAP / HTTPよりもはるかに効果的であろう。プログラムは、LAN上の他の.NETの.NETプログラムに接続する場合は同様に、.NETremotingを使用する必要があります。興味深いことに、.NETremotingに、あなたはまた、Webサービスの呼び出しにSOAP / HTTPの使用を指定することができます。しかし、より良いTCP経由でRPCコールを指示するために、はるかに有効になります。

おすすめ

転載: www.cnblogs.com/runwithraining/p/11666836.html