Webサービス II (第12回) 2006年1月12日 http://www.wakhok.ac.jp/~tatsuo/ws2/ この時間の目標 総まとめ(JWSDP 1.6) UDDI ver 3 JAXR Webサービスの将来 SOA( Service Oriented Architecture) BPEL ( Business Process Execution Language ) Webサービスのアーキテクチャ 登録、探索、発見 UDDIとは? Universal Description, Discovery, and Integration 企業とそのサービスを世界規模で登録 そのためのデータ構造とプロトコルの定義 http://www.uddi.org/ UDDIのデータ構造 企業、サービスに関するメタデータ(XML) 5個の中心となる要素 businessEntity businessService tModel bindingTemplate publisherAssertion UDDI Ver 3 へ キーの定義の拡張 Ver 2 UUIDのみ サーバが登録時に生成 Ver 3 URNに一般化 urn:uddi-org:api_v2:public urn:uuid:469ea252-d39b-45ba-a863eb467f6ebcbf UUIDとは? Universal Unique Identifier 決して重複しない128ビットの数値 Time Stamp(60ビット) Version情報(4ビット) Variant識別、Reserved(2ビット) 重複しない乱数(14ビット) MACアドレス(マシン)の識別(48ビット) uuid:469ea252-d39b-45ba-a863-eb467f6ebcbf キーの拡張の結果 キーの生成はサーバのみでない 複数のサーバに登録可能 複数のサーバの連携が可能 通信プロトコル SOAPのメッセージとして実現(約40種) <SOAP-ENV:Envelope xmlns:SOAP-ENV= "http://schemas.xmlsoap.org/soap/envelope/"> <SOAP-ENV:Header/><SOAP-ENV:Body> <find_service generic="2.0" maxRows="100" xmlns="urn:uddi-org:api_v2"> <name>Wakkanai</name> </find_service> </SOAP-ENV:Body></SOAP-ENV:Envelope> UDDIサーバへのアクセス JAXR JAXRは抽象化されたパッケージ UDDIのデータ構造をおおうことが可能 通信プロトコルを意識する必要はない 例) ConnectionFactory BusinessQueryManager Organization Service 検索のサンプル(1) 通信の開始 ConnectionFactory factory = JAXRUtility.getConnectionFactory(); Properties props = new Properties(); props.setProperty( “…..”, “url” ); factory.setProperties(props); Connection connection= factory.createConnection(); 検索のサンプル(2) サーバへの問い合わせ RegistryService rs = null; BusinessQueryManagerImpl qm = null; rs = connection.getRegistryService(); qm = (BusinessQueryManagerImpl) rs.getBusinessQueryManager(); BulkResponse response = qm.findObjects("RegistryObject", null, namePatterns, null, null, null, null); 検索のサンプル(3) 情報の取り出し Collection objects =response.getCollection(); Iterator objIter = objects.iterator(); while (objIter.hasNext()) { RegistryObject object = (RegistryObject) objIter.next(); Concept objType = object.getObjectType(); 登録のサンプル(1) 通信の開始(検索の場合と同じ) ConnectionFactory factory = JAXRUtility.getConnectionFactory(); factory.setProperties(props); connection = factory.createConnection(); 登録のサンプル(2) ただし、問い合わせと登録の両方の通信 Properties props = new Properties(); props.setProperty( "javax.xml.registry.queryManagerURL", queryUrl); props.setProperty( "javax.xml.registry.lifeCycleManagerURL", publishUrl); 登録のサンプル(3) 登録の操作(追加・削除)は BusinessLifeCycleManager を通じて BusinessLifeCycleManager blcm = rs.getBusinessLifeCycleManager(); Organization org = blcm.createOrganization( bundle.getString("org.name")); SOA とは? Service Oriented Architecture (cf. Object Oriented Language ) 「サービス」の集まりとしてソフトウェアをと らえる(設計、開発の新しい考え方) BPELとは? Business Process Execution Language 複数のWebサービスの統合・連携 サービス間は「疎結合」 XMLメッセージを交換 言語、実行環境には依存しない IBM Web Sphere などで実装 oasis-open.org で規格を策定中 (2005 12月現在で ver. 2.0) 試験の範囲 Webサービスの基本 JAX-RPC と WSDL UDDI とその仕組み UUID の技術 UDDI Ver.3 の新機能 JAXRのAPI 情報の検索と登録 Webサービスの今後( SOA, BPEL )
© Copyright 2024 ExpyDoc