oracle soa suite enterprise service...
TRANSCRIPT
Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。
Oracle SOA SuiteEnterprise Service Bus
Oracle統合製品管理
Slide 2Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。
Oracle ESBヘッダーのサポート
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サポート
ヘッダー・ベースのルーティング
− フィルタ式を使用
Slide 4Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。
一方向の起動
リクエスト・ヘッダー
アウトバウンド・ヘッダー
リクエスト・ヘッダー アウトバウンド・ヘッダー
伝播
ルーティング・サービス
Slide 5Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。
リクエスト/リプライの双方向の起動
インバウンド・レスポンス・ヘッダー
レスポンス・ヘッダー
ルーティング・サービス
レスポンス・ヘッダーインバウンド・レスポンス・ヘッダー
パススルー
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
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 : 「接頭辞=名前空間」形式による名前空間の宣言
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/;’)”
/>
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/;')"/>
ヘッダー変換例
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式
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/}
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="Country"]/@value”
− XSL内部で使用するGetおよびSet Header関数には入力、出力を明確に定義する
必要がある
SOAPの限定サポート
− ヘッダー要素をヘッダーとして設定
− ユーザーはヘッダー要素から始まるXPath式を使用する必要あり
− 例: ‘/Header/Message/Priority’
ツールの限定サポート
Slide 13Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。
ファイル・ヘッダーのデモJDeveloper
File to File入力ファイルのファイル名がMobile.xmlの場合にのみフィルタのルーティングを実行
変換によりファイル名が出力アダプタに伝播
Slide 14Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。
ファイル・ヘッダーのデモXPathフィルタ
フィルタ 式
ehdr:getRequestHeader('/fhdr:InboundFileHeaderType/fhdr:fileName') = 'Mobile.xml'
Slide 15Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。
ファイル・ヘッダーのデモXSLTXSL変数設計ビュー
INFILENAME、OUTFILENAME
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/;')"/>
…
Slide 17Oracle Corporation発行「Oracle SOA Suite Enterprise Service Bus - Oracle Integration Product Management -」の翻訳版です。
ファイル・ヘッダーのデモ・ランタイム
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は両方のアダプタでハードコード化される。別の場所に
解凍した後、ファイル・アダプタのウィザードを実行して場所を変更することができる。
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サンプルおよびアダプタに関するページを参照