oracle soa suite enterprise service...

19
Oracle Corporation 発行「 Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management - 」の翻訳版です。 Oracle SOA Suite Enterprise Service Bus Oracle統合製品管理

Upload: vuongthuan

Post on 28-Aug-2018

236 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

Oracle SOA SuiteEnterprise Service Bus

Oracle統合製品管理

Page 2: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 2Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

Oracle ESBヘッダーのサポート

Page 3: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 3Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

ESBヘッダーのサポート

ユース・ケース

− ファイル、JMS、AQ、MQ、B2B、アプリケーション

ヘッダー変換

− XSL変換を使用

− XSL変数

− 新しいXPathのGet/Set Header関数

− 最小のGUIサポート

ヘッダー・ベースのルーティング

− フィルタ式を使用

Page 4: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 4Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

一方向の起動

リクエスト・ヘッダー

アウトバウンド・ヘッダー

リクエスト・ヘッダー アウトバウンド・ヘッダー

伝播

ルーティング・サービス

Page 5: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 5Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

リクエスト/リプライの双方向の起動

インバウンド・レスポンス・ヘッダー

レスポンス・ヘッダー

ルーティング・サービス

レスポンス・ヘッダーインバウンド・レスポンス・ヘッダー

パススルー

Page 6: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 6Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

ヘッダー変換

XSLT拡張関数によるサポート

ユーザーによるリクエスト・ヘッダーおよびインバウンド・レスポンス・ヘッダーの読込み/取得可

ユーザーによるアウトバウンド・ヘッダーおよびレスポンス・ヘッダーの書込み/設定可

すべての拡張関数の名前空間http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions

Page 7: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 7Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

ヘッダー変換用拡張関数

1. String getRequestHeader(String xpathExpression,String namespaceDecl)

2. void setOutboundHeader(String xpathExpression,String value, String namespaceDecl)

3. String getInboundResponseHeader(String xpathExpression,String namespaceDecl)

4. void setResponseHeader(String xpathExpression,String value, String namespaceDecl)

ここで、

xpathExpression : 取得/設定するXPath式

value : xpathExpressionに設定する値

namespaceDecl : 「接頭辞=名前空間」形式による名前空間の宣言

Page 8: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 8Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

ヘッダー変換例

例: インバウンド・ファイル・アダプタ・メッセージからヘッダーfileNameを読み込む場合

// Declare extension function’s namespace in the XSL file as <xsl:stylesheet version="1.0“

….xmlns:ehdr=http://www.oracle.com/XSL/Transform/java/oracle.tip.es

b.server.headers.ESBHeaderFunctionsexclude-result-prefixes=“…”>

// Read ‘fileName’ from the header

<xsl:variable name="GET_INFILENAME"select="ehdr:getRequestHeader(

'/fhdr:InboundFileHeaderType/fhdr:fileName','fhdr=http://xmlns.oracle.com/pcbpel/adapter/file/;’)”

/>

Page 9: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 9Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

例: アウトバウンド・ファイル・アダプタ・メッセージにヘッダーfileNameを書き込む場合

// Declare extension function’s namespace in the XSL file as<xsl:stylesheet version="1.0“….

xmlns:ehdr=http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.se

rver.headers.ESBHeaderFunctions

exclude-result-prefixes=“…”>

// Write ‘fileName’ from the header<xsl:variable name="SET_OUTFILENAME"

select="ehdr:setOutboundHeader('/fhdr:OutboundFileHeaderType/fhdr:fileName', $GET_INFILENAME,'fhdr=http://xmlns.oracle.com/pcbpel/adapter/file/;')"/>

ヘッダー変換例

Page 10: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 10Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

ヘッダー・ベースのルーティング

XPath拡張関数によるサポート

リクエスト・ヘッダーおよびインバウンド・レスポンス・ヘッダーによりユーザーによるフィルタの追加が可能

構文は、現行のフィルタ式と同じ

{ filterExprssion };{ namespaceDeclaration } すべての拡張関数の名前空間

http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions

次のXPath拡張機能を追加

1. String getRequestHeader(String xpathExpression) 2. String getInboundResponseHeader(String

xpathExpression)

ここで、

xpathExpression : ヘッダーを読み込むためのXPath式

Page 11: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 11Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

ヘッダー・ベースのルーティング例

例: インバウンド・ファイル・アダプタ・メッセージにより読み込んだfileNameがPayload.xmlであるかどうかを確認する場合

// Check if ‘fileName’ from the header is ‘Payload.xml’

// Filter Expression will look like

{ehdr:getRequestHeader('/fhdr:InboundFileHeaderType/fhdr:fileName‘) ==‘Payload.xml’};{ namespace ehdr=

http://www.oracle.com/XSL/Transform/java/oracle.tip.esb.server.headers.ESBHeaderFunctions namespace

fhdr=http://xmlns.oracle.com/pcbpel/adapter/file/}

Page 12: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 12Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

既知の制限事項Set Header()関数は、次のタイプのXPath式のみをサポート

− 絶対パス - /Customer/Address/Zip − 索引付け - /Customer/Address[2]/Zip − アドレス[1] がターゲット・ドキュメントに存在しない場合、これが作成される

− 次の構文で作成されたJMSカスタム・プロパティがサポート対象

Get “Property[position()=1]/@name”Set “Property[@name=&quot;Country&quot;]/@value”

− XSL内部で使用するGetおよびSet Header関数には入力、出力を明確に定義する

必要がある

SOAPの限定サポート

− ヘッダー要素をヘッダーとして設定

− ユーザーはヘッダー要素から始まるXPath式を使用する必要あり

− 例: ‘/Header/Message/Priority’

ツールの限定サポート

Page 13: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 13Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

ファイル・ヘッダーのデモJDeveloper

File to File入力ファイルのファイル名がMobile.xmlの場合にのみフィルタのルーティングを実行

変換によりファイル名が出力アダプタに伝播

Page 14: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 14Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

ファイル・ヘッダーのデモXPathフィルタ

フィルタ 式

ehdr:getRequestHeader('/fhdr:InboundFileHeaderType/fhdr:fileName') = 'Mobile.xml'

Page 15: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 15Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

ファイル・ヘッダーのデモXSLTXSL変数設計ビュー

INFILENAME、OUTFILENAME

Page 16: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 16Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

ファイル・ヘッダーのデモXSLTXSL変数ソース・ビュー

INFILENAME、OUTFILENAME

…<xsl:variable name="INFILENAME“

select="ehdr:getRequestHeader('/fhdr:InboundFileHeaderType/fhdr:fileName','fhdr=http://xmlns.oracle.com/pcbpel/adapter/file/;')"/>

<xsl:variable name="OUTFILENAME“select="ehdr:setOutboundHeader('/fhdr:OutboundFileHeaderType/fhdr:fileName', $INFILENAME, 'fhdr=http://xmlns.oracle.com/pcbpel/adapter/file/;')"/>

Page 17: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 17Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

ファイル・ヘッダーのデモ・ランタイム

Page 18: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 18Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

ファイル・ヘッダーのデモについての指示

1 – フォルダtraining\sampledataにあるESBHeader.zipを解凍してフォルダc:\tempに入れる

2 – JDeveloperを起動する

3 – 既存のESBSamplesプロジェクトを選択する

4 – C:\temp\ESBheader\HeaderSupportDemo\HeaderSupportDemo.jprを開く

5 – ESBサーバーに登録する

6 – System TVoxの下にあるESB Consoleの新しいサービスのメタデータを確認する

7 – C:\temp\ESBheader\*.xmlファイルをC:\temp\ESBheader\inにコピーする

8 – 両方のファイルは削除されるが、OutディレクトリではMobile.xmlのみが削除されることを確認する

9 – インスタンス・データをESB Consoleに表示する

注意: C:\temp locationは両方のアダプタでハードコード化される。別の場所に

解凍した後、ファイル・アダプタのウィザードを実行して場所を変更することができる。

Page 19: Oracle SOA Suite Enterprise Service Busotndnld.oracle.co.jp/products/integration/esb/files/esb... · Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration

Slide 19Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。

ヘッダー追加情報

アダプタ 名前空間 入力プロパティ 出力プロパティ XPathの例

JMS http://xmlns.oracle.com/pcbpel/adapter/jms/

jmsAdapterInboundHeader.wsdlJMSCorrelationIDJMSDeliveryModeJMSExpirationJMSMessageIDJMSPriorityJMSRedeliveredJMSTypeJMSTimestampJMSReplyTo

jmsAdapterOutboundHeader.wsdl

JMSDestinationNameJMSDestinationPropertiesJMSCorrelationIDJMSTypeJMSReplyTo

('/jhdr:JMSInboundHeadersAndProperties/jhdr:JMSInboundHeaders/jhdr:JMSCorrelationID') = 'HIGH'

ファイル http://xmlns.oracle.com/pcbpel/adapter/file/

fileAdapterInboundHeader.wsdlファイル名ディレクトリ

fileAdapterOutboundHeader.wsdlファイル名

('/fhdr:InboundFileHeaderType/fhdr:fileName') = 'Mobile.xml'

AQ http://xmlns.oracle.com/pcbpel/adapter/aq/inbound/

aqAdapterInboundHeader.wsdaqAdapterInboundHeader.xsd

MessageId優先順位相関試行回数EnqueueTimeOrigMessageId

aqAdapterOutboundHeader.wsdlaqAdapterOutboundHeader.xsd優先順位遅延有効期限相関RecipientListExceptionQueue

SOAP http://schemas.xmlsoap.org/soap/envelope/

カスタム カスタム ('/soap:Header/ns1:country') = ‘US'

他のアダプタの例: OTNのBPELサンプルおよびアダプタに関するページを参照