- 1. 学習と目標:
Webサービス、ESB、応用学習
2. 学習方法:
3. 学習内容:
4. 研究ノート:
A、 Webサービスの概要
Webサービス上の(A)
WSプロトコルとは、HTTP、XML技術をベースとし、不均一な溶液とWSDLとSOAPプロトコル伝送システムを用いて説明します。クロスランゲージ、クロスシステム
私たちは、WSサーバーと呼ばれるアプリケーションを提供すると呼ばれるWSクライアントアプリケーションを呼び出します。
一番重要なのは、WSの使用であります:
まず:WSDLファイル(サービス軽蔑)。
第二:オブジェクトとXML変換(データ)。
(2)のSOA
SOA(サービス指向アーキテクチャ)を達成するためのソフトウェアシステムのアーキテクチャに依存しない機能の特定のタスクを完了するために接続することにより、inernet環境ニーズに事業統合を解決するために、両方のサービス指向アーキテクチャの手段は。学術強い味の定義が、核となるアイデアは、理解しやすいです:聞かせてアプリケーションを簡単にビジネスへの対応が変更と開発サービスを必要とするビジネスをできるように、技術に限定されるものではありません。現在含ま達成するための、SOA手段:ウェブSerice(ネットワークサービス)、CORBAやJINIのように。
ESBについて(C)
つまり、エンタープライズ・サービス・バスESBフルネームEnterpriseServiceBus、。
これは、生成物と一緒に伝統的なミドルウェア技術やXML、Webサービス技術です。ESBは、最も基本的なネットワーク接続ハブは、企業神経システムを構築するために不可欠な要素です提供します。ESBは、伝統的なミドルウェアソリューションよりも安く提供することができ、従来のソフトウェア・アーキテクチャを変更しましたが、それはまた別のアプリケーションサーバが別のサービスを実現するために協調して動作するように、異なるアプリケーション間での技術的な相違点を解消することができます通信との統合。機能的な観点から、ESBは、複雑なデータの伝送容量と、コンテンツベースのルーティングおよびフィルタリングをサポートするイベント・ドリブンとドキュメント指向処理モード、及び分散運用管理機構を提供し、標準インタフェースの範囲を提供することができ。
(D)SOA、ESB、Webサービスとの間の関係
SOAは、アーキテクチャ、自然ガイドのように、方法論です。
ESBは、建築図面、インフラの構築を合理化です。
ウェブSはちょうどプレハブのパネルのような材料を、建物の固有のものです。
Webサービスは、技術仕様、SOAの設計原理、建築のパターンです。
WSDL、UDDI、およびSOAPベースのSOA基礎部材です。
(E)問題:
まず、ESBどのようにあなたが何をどのようなサービスを知っていますか?この時点で、我々はそれがサービスを行うために公開する必要があり、この記述はWSDLであること。
WSDL(WebServicesDescriptionLanguage):WS記述言語。どのようなバスサービスへのあなたの露出を知らせます。
第二に、クエリ:私はこのサービスを公開、あなたはサービス登録、クエリのために、同様のDNSに彼にそのようなことを見つける必要があり、これはUDDIです。
UDDI(汎用の説明、発見andIntegrationは):均一の説明、発見、および統合のためのディレクトリサービスです。UDDIは、WS(およびWSDLファイル)を見つけるためにどのように定義していますが、多くの時間は、ユーザーが(通常、企業のイントラネットにあります)は、Webサービスの場所を知っているだろう。
第三に、送信データ:データ伝送規格の定義は、XMLを使用して転送、XMLオブジェクト、およびSOAP仕様によって変換があります。
SOAP(簡易オブジェクトアクセスプロトコル):シンプルオブジェクトアクセスプロトコル。硬化されるように設計されており、WEBで構造化された情報を交換している軽量、シンプル、XMLベースのプロトコルです。トランスポート層としては、クライアントとサーバー間のメッセージを転送します。
第二に、Webサービスに共通のラベル
1、@WebServiceラベル
@WebServiceラベルの使用、あなたがクラスに設定する必要があり、これはWSサービスクラスに代わって提供されます。
endpointInterface:抽象WebServiceのサービス契約のサービスエンドポイントインタフェースの定義の完全な名前。このメンバーは、エンドポイント値では許可されていない、この要素の値は、webserviceタグを持っている必要があります。デフォルトでは、サーバーは自動的にインターフェイスサーバーを生成します。
名前:サービス・インタフェースの名前(WSDLに対応する:portTypeのname属性、サービスのインターフェイスを使用して)。
serviceNameは:サービスクラス名。デフォルトの実装クラス名+サービス(実装クラスで使用されている名前とサービス定義に対応する属性名に対応します)。
portName:ポート名のWebサービス。ポートの名前:この名前は、WSDLとして使用されます。
targetNamespace:ターゲット名前空間、WSDLは、定義済みサービス(統一される実装クラス及びサービスインターフェースに同時使用)の位置を記載しています。
wsdlLocation:WSDLアドレス(WSDLの優先度に加えて、サーバーが書き込みに、WSDLファイルのWebアドレスを終了するには、クライアントプロキシインターフェイス、ポイント上でこのプロパティを設定する必要がありません)
2 @WebMethodラベル
@WebMethodラベルの使用は、コンフィギュレーション方法で彼を配置する必要があります。
operationName:エイリアスサービスメソッド指定暴露。
除外:露出のこのマークをしました。
3 @WebResultラベル
メソッドが戻る前に、彼またはマーカーの種類が定義方法で、ラベルを使用@WebResult。
名前:値の定義の名前を返します。
ヘッダ:ブール型、値はヘッダ要素に渡されるかどうか。
4 @WebParamラベル
使用@WebParamは、仮引数宣言の前に彼を標識し、ラベルを付けます。
名前:パラメータ(デフォルトパラメータのarg0、arg1に...)を渡すときに名前を定義します。
ヘッダ:ブール型、値はヘッダ要素に渡されるかどうか。
5 @SOAPBinding
SOAPBindingラベル、クラスで彼のマーク@を使用します。
パラメータはメッセージ本文全体を表すかどうか、またはパラメータは、最上位の要素と命名包装要素を動作させるか否かを決定するSOAPBinding.ParameterStyleparameterStyle方法。
パラメータパッケージを使用して、デフォルトでは、SOAPBinding.ParameterStyle.WRAPPED
SOAPBinding.ParameterStyle.BARE、パラメータがパッケージ化されていません
SOAPBinding.Styleスタイルのコードパターンは、Webサービスから送信されたWebサービスの送信メッセージとメッセージを定義します。
SOAPBinding.Style.RPC:面向RPC
SOAPBinding.Style.DOCUMENTデフォルト、ドキュメント指向
SOAPBinding.Useuseは、WebServiceがメッセージやWebサービスから送信されたメッセージに送信された書式設定スタイルを定義しました。
サーバーとクライアントの開発者が一緒にされていない場合SOAPBinding.Use.LITERAL、デフォルトでは、リテラルスタイル、我々はこれを使用する必要があります
SOAPBinding.Use.ENCODED使用SOAPエンコーディングスタイルは使用しないようにしようとし、失敗WS相互運用性の側面につながる可能性があります。
三、Webサービスを実現します
(A)サーバー
ステップ1:Javaプロジェクトを作成し、jarファイルのパッケージをインポートする必要はありません。
ステップ2:インターフェイスを作成します。Webサービスは、(既知のポートタイプではWSDL)にSEIと呼ばれます。
ステップ3:実装クラスを作成します。実装クラス上のコメント@WebServiceを追加する必要があります。
ステップ4:発行サービス。サービスを公開するEndPoint.publish。
(1)インターフェース:WeatherInterface.java
輸入javax.jws.WebService;
@ウェブサービス
パブリックインターフェースWeatherInterface {
文字列getWeatherByCity(String型の都市);
}
(2)実現:WeatherInterfaceImpl
@ウェブサービス
パブリッククラスWeatherInterfaceImpl実装WeatherInterface {
@オーバーライド
公共の文字列getWeatherByCity(String型都市){
System.out.println(「街の名前の上にクライアントから送信された:」+市)。
//気象サービスを呼び出します
// ....
//ここでは、シミュレーション結果ので、直接のリターン
文字列の結果=「寒さ」。
System.out.println(「天気返すクエリ結果:」+結果)。
結果を返します。
}
}
(3)WeatherServer.java発行サービス
パブリッククラスWeatherServer {
パブリック静的無効メイン(文字列[] args){
WeatherInterfaceサーバー=新しいWeatherInterfaceImpl();
文字列のアドレス=「http://192.168.31.159:1111/WeatherInterface」。
Endpoint.publish(アドレス、サーバ)。
}
}
(4)ブラウザサービスを使用しては成功し、訪問WSDLを掲載されます。http://192.168.31.159:1111 / WeatherInterface WSDL?
(B)クライアント
1)クライアント・コード生成手段の準備を使用することができます。
2)クライアントへの書き込みを呼び出します。
ステップ1:サービス・ビュー・オブジェクトを作成します。
ステップ2:ビューからポートタイプサービスオブジェクトを取得します。
ステップ3:ポートタイプの呼び出しプロセス(遠隔通信が実現されてもよいです)
ステップ4:戻り値を受信する方法(サーバ応答の結果)。
パブリッククラスクライアント{
パブリック静的無効メイン(文字列[] args){
WeatherInterfaceImplServiceサーバー=新しいWeatherInterfaceImplService();
WeatherInterfaceImpl IMPL = server.getWeatherInterfaceImplPort()。
System.out.println(impl.getWeatherByCity( "北京"));
}
}