RosettaNet Connector - Mule 4

サポートカテゴリ: Premium

RosettaNet Connector は、RosettaNet Information Framework (RNIF) を使用して Rosetta Partner Interface Process (PIP) メッセージを交換することで、B2B 機能を提供します。

RosettaNet Connector は RNIF 2.00.01 をサポートします。

次の PIP がサポートされています。

PIP Version (バージョン) 目的

0A1

v02.00

失敗の通知

3A4

3A4MG1 v02.02

注文の要求

3A4

3A4MG2 v02.02

注文の要求

3A6

3A6MG1 v02.00, v02.02, v02.03

注文状況の配布

3B2

3B2MG1 v01.00

事前出荷通知

3C3

3C3MG1 v01.00, v01.11

請求通知

RosettaNet Connector は常にすべての失敗の通知メッセージで PIP 0A1 v02.00 を使用します。

注意:​ サンプルファイルのダウンロードについては、​関連情報​を参照してください。

始める前に

このドキュメントでは、読者が RosettaNet、Mule、Anypoint Connector、Anypoint Studio、Mule フロー、および Mule グローバル要素に精通していることを前提としています。

互換性については、​RosettaNet のリリースノート​を参照してください。

RosettaNet Connector を本番環境で使用するには、Anypoint B2B 用の MuleSoft ライセンスを購入しておく必要があります。

このコネクタの新機能

Mule 4 の RosettaNet Connector 2.x では、RosettaNet Connector 1.x の実装から設定や処理が少し変更されています。

  • ソースのメタデータを自動的に供給 (1.x で必要だった個別のメタデータ定義は不要)

  • パートナーやメッセージごとに個別のフローを使用することでフロー構造を簡素化。

Anypoint Studio 7 でこのコネクタをインストールする

  1. Studio で Mule プロジェクトを作成します。

  2. Studio タスクバーの Exchange ​(X)​ アイコンをクリックします。

  3. Exchange で、​[Login (ログイン)]​ をクリックし、Anypoint Platform のユーザー名とパスワードを指定します。

  4. Exchange で ​[All assets (すべてのアセット)]​ を選択して「RosettaNet」を検索します。

  5. 「RosettaNet」を選択して ​[Add to project (プロジェクトに追加)]​ をクリックします。

  6. 画面の指示に従ってコネクタをインストールします。

Anypoint Studio 7 で Mule プロジェクトを作成する

コネクタをインストールしたら、すぐに使い始めることができます。まず、Mule とメッセージの交換に使用するパートナーエンドポイント用の HTTP リスナーと HTTP 要求を作成します。

  1. キャンバスの下部にある [Global Elements (グローバル要素)] タブをクリックし、​[Create (作成)]​ をクリックします。

  2. [Connector Configuration (コネクタ設定)] で [HTTP Listener config (HTTP リスナー設定)] を選択して ​[OK]​ をクリックします。

  3. 設定の定義で、取引パートナーからのアクションやシグナルメッセージを受信するための​ホスト​と​ポート​を入力して ​[OK]​ をクリックします。

  4. [Global Elements (グローバル要素)] タブで再び ​[Create (作成)]​ をクリックします。

  5. [Connector Configuration (コネクタ設定)]​ で [HTTP Request config (HTTP 要求設定)] を選択して ​[OK]​ をクリックします。

  6. 設定の定義で、取引パートナーにアクションやシグナルメッセージを送信するためのホストとポートを入力して ​[OK]​ をクリックします。

  7. キャンバスの下部にある ​[Global Elements (グローバル要素)]​ タブをクリックし、​[Create (作成)]​ をクリックします。

  8. [Connector Configuration (コネクタ設定)]​ で ​[RosettaNet Config (RosettaNet 設定)]​ を選択して ​[OK]​ をクリックします。

  9. 作成してあるグローバル HTTP リスナーとグローバル HTTP 要求の定義への参照情報を入力し、エンドポイントパス、セルフ/パートナー ID 情報、PIP ロールおよび定義パスを指定します (用意されている標準 PIP 定義を使用する場合は、​/{pipId}/{version}.xml​ の形式でパスを指定してください。例: /PIP3A4/V02_02.xml​)。

  10. PIP 定義で署名入りメッセージを使用する場合は、​Keystore path​ と ​Keystore access password​ の値を設定する必要があります。また、署名入りメッセージを送信する場合には ​Signing key password​ も設定する必要があります。

  11. [OK]​ をクリックして、グローバルコネクタ設定を保存します。

  12. Studio の ​[Message Flow (メッセージフロー)]​ タブに戻ります。

  13. RosettaNet コンポーネントをフローにドラッグし、各コンポーネントで使用する設定を選択します。

コネクタコンポーネント

RosettaNet Connector には、アプリケーションフローで使用する 3 つのコンポーネントがあります。

  • Action Source (アクションソース) - パートナーから受信したアクションメッセージを処理するためのソース。

  • Action Sender (アクション送信者) - パートナー宛のアクションメッセージの送信者。

  • Acknowledge Source (肯定応答ソース) - パートナーに送信したアクションメッセージの処理完了 (配信成功、例外、または失敗) のソース。

設定の詳細

「General (一般)」 タブのプロパティ

RosettaNet Connector が使用するすべての設定プロパティは、Studio の [General (一般)] タブにあります。

設定プロパティ 説明

Global HTTP Listener (グローバル HTTP リスナー)

パートナーからのメッセージを受信するために使用する HTTP リスナー設定の名前。

Service Endpoint Path (サービスエンドポイントパス)

HTTP リスナー設定に相対的なパス (必要に応じて異なるパートナーの異なるパスで同じ HTTP リスナーを使用できるようにします)。

Global HTTP Request (グローバル HTTP 要求)

パートナーへのメッセージを送信するために使用する HTTP 要求設定の名前。

Request Endpoint Path (要求エンドポイントパス)

HTTP 要求設定に相対的なパス (必要に応じて異なるパスで同じ HTTP 要求を使用できるようにします)。

Keystore path (キーストアパス)

メッセージの検証や署名に使用するキーストア (署名入りメッセージの送受信時に必要) の絶対ファイルパスまたはプロジェクトの ​/src/main/resources​ ディレクトリに相対的なクラスパス。

Keystore access password (キーストアアクセスパスワード)

キーストア (署名入りメッセージの送受信時に必要) を保護するためのパスワード。

Signing key password (署名キーパスワード)

キーストア (署名入りメッセージの送受信時に必要) 内の署名用の非公開キーにアクセスするためのパスワード。

Force message signing (メッセージの署名を強制)

PIP 定義で求められていない場合でも、署名入りメッセージの使用を強制 (省略可能)。メッセージを署名する PIP 定義ではこの値は空白にし、どのメッセージにも署名しない場合は ​NEVER​、常に署名を要求する場合は ​ALWAYS​ に設定します。

Global usage code (グローバル使用コード)

コネクタの実行モード。次のいずれか:

  • 生産

  • テスト

  • Unchecked (未チェック)

Object store reference (オブジェクトストア参照)

肯定応答待ちのメッセージを保存するために使用するオブジェクトストア定義への参照です (省略可能)。設定しないと、コネクタは常に永続的なデフォルトのオブジェクトストアを使用して送信したメッセージを保存し、肯定応答または再試行を待機します。設定した場合、参照先の Bean は、代わりに使用するオブジェクトストア設定でなければなりません。関連情報: What is an object store bean? (オブジェクトストア Bean とは)

Mule DUNS identifier (Mule DUNS 識別子)

この組織の Dun & Bradstreet Universal Numbering System (DUNS) ID。

Mule location identifier (Mule 場所識別子)

この組織の場所 ID。指定すると、送信されるすべてのメッセージに含められ、受信するすべてのメッセージにも含まれる必要があります。指定しないと、受信メッセージに含まれる値は受け入れられて無視されます。場所 ID を使用すると、キーストアのキーペアで使用する別名も変更されます。

Partner DUNS identifier (パートナー DUNS 識別子)

取引パートナー組織の Dun & Bradstreet Universal Numbering System (DUNS) ID。

Partner location identifier (パートナーの場所識別子)

予期されるパートナー組織の場所 ID。指定すると、送信されるすべてのメッセージに含められ、受信するすべてのメッセージにも含まれる必要があります。指定しないと、受信メッセージに含まれる値は受け入れられて無視されます。場所 ID を使用すると、キーストアのパートナー証明書で使用する別名も変更されます。

Role in PIP (PIP のロール)

Partner Interface Process (PIP) でのロール。次のいずれかになります。

  • INITIATOR

  • RESPONDER

PIP definition path (PIP 定義パス)

PIP 定義 XML ファイルの絶対ファイルパスまたはプロジェクトの ​/src/main/resources​ ディレクトリに相対的なクラスパス。ディストリビューションに含まれる標準 PIP 定義では、​/{pipId}/{version}.xml​ の形式になります (例: /PIP3A4/V02_02.xml​)。

XML での設定オプション

Studio 設定にあるすべての値は XML で直接設定できます。

XML 値 Visual Studio オプション

globalUsageCode

Global usage code (グローバル使用コード)

keystorePass

Keystore access password (キーストアアクセスパスワード)

keystorePath

Keystore path (キーストアパス)

listenerConfigName

Global HTTP Listener (グローバル HTTP リスナー)

objectStore

Object store reference (オブジェクトストア参照)

partnerBusinessIdentifier

Partner DUNS identifier (パートナー DUNS 識別子)

partnerLocationId

Partner location identifier (パートナーの場所識別子)

pipFile

PIP definition path (PIP 定義パス)

pipRole

Role in PIP (PIP のロール)

privatePass

Signing key password (署名キーパスワード)

requestPath

Request Endpoint Path (要求エンドポイントパス)

requesterConfigName

Global HTTP Request (グローバル HTTP 要求)

selfBusinessIdentifier

Mule DUNS identifier (Mule DUNS 識別子)

selfLocationId

Mule location identifier (Mule 場所識別子)

servicePath

Service Endpoint Path (サービスエンドポイントパス)

signingOverride

Force message signing (メッセージの署名を強制)

オブジェクトストア

デフォルトのオブジェクトストアは、Mule のデフォルトの永続的なオブジェクトストアを使用します。そのため、送信されたメッセージは、肯定応答されるまで累積し、再実行時にはメッセージが再送信される場合があります。

次の定義を使用すると、テストとデバッグ用に一時的なオブジェクトストアを定義して、RosettaNet 設定からオブジェクトストアを名前で参照することができます。

<mule xmlns:os="http://www.mulesoft.org/schema/mule/os" ...
  http://www.mulesoft.org/schema/mule/os http://www.mulesoft.org/schema/mule/os/current/mule-os.xsd" ...>
  ...
  <os:object-store name="transientStore" persistent="false"/>
  ...
  <rosetta:config name="PO_InitiatorConfig_Buyer" ...
    objectStore="transientStore"/>

永続的なオブジェクトストアを使用すると、肯定応答されていないメッセージは Mule アプリケーションを再起動しても保持され、アプリケーションの再起動時に (タイムアウト期限が切れたと判断されて) 再送信されます。肯定応答がないまま PIP 定義で指定されている再送信回数に達するか、または 3 日が経過すると、オブジェクトストアからすべてのメッセージが削除されます。次のシステムプロパティを設定することで、肯定応答されていないメッセージを Mule アプリケーションの起動時に強制的に削除できます。

com.mulesoft.connectors.rosettanet.extension.internal.delivery.DeliveryManager.deleteStore=true

PIP をカスタマイズする

PIP をカスタマイズすると、PIP 設定に 2 通りの変更を加えることができます。

  • パラメーター: PIP バージョンの XML ファイル内で設定を変更します。

  • 詳細: カスタム DTD を作成して、そこから XSD ファイルを作成できます。

どちらの場合も、作成または変更したファイルは Studio プロジェクトの src/main/resources フォルダーに保存してください。

用意されている PIP 設定を開始ポイントとして使用できます。これらは、mule-rosettanet-extension-2.0.0-mule-plugin.jar に入っており、Studio でダウンロードして ​/target/repository/com/mulesoft/connectors/mule-rosettanet-extension​ ディレクトリのプロジェクトに追加できます。また、標準の MuleSoft Enterprise Maven リポジトリ (グループ ID の com.mulesoft.connectors の下) にもあります。各 PIP 設定は jar ファイルの個別のディレクトリ (例: PIP3A4​) に入っています。jar から PIP ディレクトリをコピーして、ニーズに合わせて内容を編集できます。

PIP 設定ディレクトリには、特定の PIP バージョン (例: V02_02.xml​) 用のパラメーターが設定された XML ファイルもあります。この XML ファイルには、PIP で定義されている再試行回数、肯定応答のタイムアウト、アクションの署名要件の詳細が記述されています。また、このファイルは実際のアクションメッセージの DTD と XSD 定義を参照します (DTD は RosettaNet で使用され、XSD は Mule 内で DataSense 情報の提供に使用されるため、両方とも必要です)。

基本の PIP 定義ディレクトリを jar から Studio プロジェクトの src/main/resources フォルダーにコピーし、コピーしたディレクトリの名前をカスタマイズに合わせて変更します (例: PIP3A4-custom​)。その後、必要な変更を行ってから、変更した PIP ディレクトリ名を RosettaNet Connector 設定で (​pipFile​ 値として) 使用します。

キーストア

RosettaNet は X.509 証明書を使用してメッセージを認証します。RosettaNet Connector は、現時点では JKS 形式のキーストアの証明書 (および署名に使用する非公開キー) の保存のみをサポートしています。Portecle など、さまざまなツールを使用してキーストアを処理して、キーと証明書を作成できます。

キーストアの別名は次の形式になります。​{Partner/Self Business Identifier}[:{Partner/Self Location ID}]

値は中括弧で囲まれており、場所 ID が定義されている場合にのみ使用する省略可能な部分は角括弧で囲まれています。

詳細の確認

RosettaNet プロトコル交換の詳細を確認する場合は、次のような行を追加することで、​/src/main/resources/log4j2.xml​ ロギング設定ファイルで ​TRACE​ ロギングを有効にしてください。

<Loggers>
    ...
    <AsyncLogger name="com.mulesoft.connectors.rosettanet.extension" level="TRACE"/>
    ...
</Loggers>