Talend ESB ⼊⾨ガイド 5.5.1 Talend ESB 発⾏⽇ 2014年9⽉30⽇ 製作著作 © 2011-2014 Talend Inc. Copyleft 本書は、クリエイティブコモンズパブリックライセンス(CCPL)の条件に基づいて提供されていま す。CCPLに準拠した許可事項および禁⽌事項の詳細は、http://creativecommons.org/licenses/bync-sa/2.0/を参照してください。 このドキュメントには、Apache License 2.0の下でライセンスされているApache Software Foundationで作成されたドキュメンテーションが含まれている場合があります。 商標について TalendおよびTalend ESBはTalend, Inc.の商標です。 Apache CXF、CXF、Apache Karaf、Karaf、Apache Cellar、Cellar、Apache Camel、Camel、Apache Maven、Maven、Apache Archiva、Archiva、Apache Syncope、Syncope、Apache ActiveMQ、ActiveMQはApache Foundationの商標です。Eclipse Equinoxは、Eclipse Foundation, Inc.の商標です。soapUIはSmartBear Softwareの商標で す。HypericはVMware, Inc.の商標です。NagiosはNagios Enterprises, LLC.の商標です。 その他のブランド、商品名、会社名、商標、およびサービスマークは各所有者に帰属します。 ⽬次 1. Talend ESBソリューションの概要 ..................................................................... 1 1.1. Talend ESBフィーチャー ...................................................................................... 2 1.1.1. Webサービスのサポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 1.1.2. 標準のOSGiランタイム . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 3 1.1.3. メッセージング . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.1.4. Talend Studio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 4 1.2. Talend ESB製品およびアーキテクチャ ....................................................................... 7 1.2.1. Talend ESB Standard Edition (SE) . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 7 1.2.2. Talend Open Studio for ESB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 8 1.2.3. Talend Enterprise ESB . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10 1.2.4. Talend Platform . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13 2. Talend ESBの使い⽅ ..................................................................................... 15 2.1. Talend ESB製品を使⽤するための前提条件 ................................................................ 2.2. ソフトウェアのダウンロードおよびインストール ......................................................... 2.2.1. コミュニティ製品の場合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.2.2. EnterpriseおよびPlatform製品の場合 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.3. デモの代替コンテナの作成 .................................................................................... 2.4. ソフトウェアの開始 ............................................................................................ 2.4.1. Talend Runtimeの実⾏ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.2. Talend Administration Centerの開始 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.4.3. Talend Studioの開始 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2.5. デモのソフトウェア要件 ....................................................................................... 16 16 16 17 17 19 19 21 24 26 3. 基本的なデプロイメントとRuntimeのユースケース ........................................... 29 3.1. Studioを使ったデータサービスとルートの構築とデプロイ .............................................. 30 3.1.1. 簡単なSayHelloデータサービスの構築 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30 3.1.2. SayHelloRouteのサンプル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42 3.2. Studioを使ったRESTサービスの構築とデプロイ .......................................................... 48 3.2.1. 単純なRESTサービスの構築 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 49 3.2.2. RESTサービスのデプロイ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 62 3.2.3. 単純なRESTサービスコンシューマーの構築 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 68 3.3. Javaを使⽤したデータサービスおよびルートのビルドおよびデプロイ ................................ 73 3.3.1. Rent-a-Carデモのサンプル . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 73 3.3.2. デモのデプロイ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 3.3.3. デモの実⾏ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 3.3.4. デモのアンインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 3.4. EclipseへのRent-a-Car Javaデモのインポート ........................................................... 82 3.4.1. プロジェクトファイルのビルド . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 3.4.2. Eclipseへのインポート . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 82 3.4.3. サンプルの実⾏ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 4. SOAガバナンスによる⾼度なデプロイメントとRuntimeのユースケース ................ 85 4.1. Service LocatorおよびService Activity Monitoringを使⽤したRent-a-Carデモ ................... 86 4.1.1. Service LocatorおよびService Activity Monitoringのインストールおよび開始 . . . . . . . . . . . . . . . 86 4.1.2. 前のフィーチャーのアンインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 4.1.3. Service Activity MonitoringおよびService Locatorを有効化したデモのビルド . . . . . . . . . . . . . . . 88 4.1.4. Rent-a-Carサンプルフィーチャーのインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 4.1.5. 1つのコンテナでデモを実⾏してService Activity Monitoringデータを⽣成 . . . . . . . . . . . . . . . . . . . 90 4.1.6. 2つのコンテナでのデモの実⾏ - Service Locatorでのサーバーフェールオーバーのシ ミュレーション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 4.1.7. デモフィーチャーのアンインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 4.2. Security Token Serviceを使⽤してWS-SecurityベースのSAML認証を提供するRent-a-Carの デモ .................................................................................................................... 94 4.2.1. ログの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94 4.2.2. セキュリティが有効なデモの構築 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 95 4.2.3. デモフィーチャーのアンインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 4.3. Artifact Repositoryを使⽤したRent-a-Carのデモ ....................................................... 96 4.3.1. NexusArtifact Repositoryのダウンロードおよびインストール . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 4.3.2. Artifact Repositoryへのデモのパブリッシュ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 4.3.3. Nexus Artifact Repositoryを使⽤したデモのTalend ESB Standard Editionへのデプロ イ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.3.4. Talend Administration Centerを使⽤したデモのArtifact RepositoryからTalend Runtimeへのデプロイ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 4.4. XKMSを使⽤したRent-a-Carのデモ ....................................................................... 102 4.4.1. デモ⽤のXKMSサービスの設定 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 4.4.2. Rent-a-Carデモの例の構築 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 Talend ESB⼊⾨ガイド Talend ESB⼊⾨ガイド 1.Talend ESBソリューションの概要 エンタープライズサービスバス(ESB)は、常に各ベンダーのサービス指向アーキテクチャ(SOA)戦略の 基盤となっています。Talend ESBは、従来のESBより以下の点で著しく改善されています: • ⽐較的⼩さなフットプリント • 実証済みのオープンソーステクノロジーの活⽤ • 既存のアプリケーションおよびインフラストラクチャの容易な統合 この章では、Talend Runtime、OSGiコンテナ、Webサービスのサポート、Talend Studioな ど、Talend ESBソリューションとそのコンポーネントおよび機能の⾼度な概要について説明しま す。 また、利⽤可能なパッケージ、およびそれぞれのアーキテクチャの詳細についても説明します。 Talend ESB⼊⾨ガイド Talend ESBフィーチャー 1.1. Talend ESBフィーチャー Talend ESBは、組織でさまざまな統合の課題に対処するための、汎⽤性のある柔軟なESBです。これ は、広範な標準の転送およびプロトコル、エンタープライズ統合パターン(EIP)、効果的なメッセー ジソリューションを設計するために開発された⼀般的な⼀連のベストプラクティスの記述をサポー トします。いくつかのパッケージで利⽤可能なTalend ESBは、既存のレガシーなインフラストラク チャコンポーネントとの広範な相互運⽤性を実現できるオープンで標準ベースのフィーチャーです。 Talendは、多様なユーザーのコミュニティで設計および構築されたソフトウェア製品をエンタープ ライズグレードで配信し、⾃由に利⽤可能にするための最も認知度の⾼いオープンソースコミュニ ティApache Software Foundation (ASF)に参加することで、Talend ESBの基盤となるテクノロジー に投資し、促進を図り、発展に寄与してきました。オープンソースコミュニティは独⾃開発のソフト ウェアのベンダーよりも次世代のイノベーションをいっそう推し進めています。 Talend ESBは、Apache CXF、Apache Camel、およびApache ActiveMQオープンソース統合プロ ジェクトを活⽤し、システムとアプリケーションを統合し拡張するためのコスト効率の良い使いやす い⼿段を提供することで、エンタープライズクラスの統合に対処できるようにします。 オープンソースサービスフレームワーク、Apache CXFにより、企業はJAX-WSやJAX-RSなどのフロ ントエンドプログラミングAPIを使⽤して、サービスを構築および開発することができます。 Apache Camelは、EIPを使⽤してルーティング、転送、およびメディエーションルールを実装するた めの強⼒なオープンソース統合フレームワークです。 最も⼀般的なオープンソースメッセージングプロバイダー、Apache ActiveMQを活⽤することで、各 メッセージブローカーは1秒間に何千ものパーシステントメッセージを処理しながら多数の接続に対 処できます。 1.1.1. Webサービスのサポート Talend ESBは、Webサービスの新規作成、また既存のアプリケーションおよびインターフェイス をWebサービスに対応にする作業を⽀援します。開発者は、コードを作成する代わりに、戦略定 義による設定中⼼のアプローチを利⽤して、さまざまな品質のサービスを実現できます。Talend ESBは、WebサービスおよびRESTアプリケーションを開発およびデプロイするためのApache CXFの フィーチャーを活⽤します。 Apache CXFは、⼀般的なSpring Frameworkでサポートされる軽量のモジュール型アーキテクチャで す。そのため、実⾏するプラットフォームを問わず、アプリケーションと連携できます。以下のよう に実⾏できます: • スタンドアロンのJavaアプリケーション • サービスエンジン(Tomcatなど)の⼀部として • (Talend Runtimeなど)OSGiコンテナでOSGiバンドルとして Apache CXFは、重要なあらゆるWebサービスの標準をサポートし、Java API for XML Web Services (JAX-WS)仕様に完全に準拠します。JAX-WSでは、WebサービスコンテキストでスタンドアロンJava アプリケーションを表す⽅法をCXFなどのツールに指⽰する注釈を定義します。CXFを使⽤したWeb サービスの開発には、次の2種類があります: 1. コントラクトファースト開発: WSDLは、Webサービスが提供する操作およびタイプを定義します。これはWebサービスコントラ クトとも呼ばれることもあり、Webサービスとやりとりするために、コントラクトを満たす必要 があります。コントラクトファースト開発とは、まず(⼿書きまたはツールを使⽤して)WSDLファ イルを記述してから、CXFなどのツールを使⽤してWSDLファイルからスタブJavaクラス実装を⽣ 成するということです。 2 Talend ESB⼊⾨ガイド 標準のOSGiランタイム 2. コードファースト開発: Webサービスを開発するもう1つの⽅法は、まずJavaクラスから開始して、Webサービスフレーム ワークでWSDLコントラクトを⽣成するジョブを処理させるという⽅法です。これは最も容易な開 発モードですが、ツール(この場合、CXF)もコントラクトになるコントロールに含まれることにな ります。WSDLファイルを最適に調整したい場合、コントラクトファーストアプローチをお勧めし ます。 Apacheは、広範なベンダーのWebサービス実装で承認され、検証されてきました。ユーザーはこの 相互運⽤性の検証の恩恵を受け、アプリケーション統合に関する全体的なコストおよび複雑性が削減 されます。 Talend ESBは、SOAPおよびREST Webサービスの作成をサポートし、HTTPおよびJMS転送上での WS-Addressing、WS-Reliable Messaging、およびWS-Securityのサポートを含め、市場で最⾼のWS*機能を提供します。 さらに、Talend ESBディストリビューションのWebサービススタックは、Apache CXFの範囲を超え て、以下をサポートします: • 説明的な例およびドキュメンテーションを含むOSGiコンテナ • Talend Studioを使⽤したグラフィカルなデータサービス開発 • デプロイ時ポリシーを使⽤した詳細サービスガバナンス • WebユーザーインターフェイスおよびJMXベースAPIを介した⼀元的なデプロイおよび設定オプ ション • サービスの管理および監視 1.1.2. 標準のOSGiランタイム Talend ESBの標準ランタイムは、OSGiコンテナです。Talend ESBに同梱のOSGi実装は、OSGi RuntimeとしてEclipse Equinoxを使⽤するApache Karafであり、さまざまなコンポーネントおよび アプリケーションをデプロイできる軽量なコンテナを提供します。 図1.1 Karafコンポーネントの概要 Karafは、以下のフィーチャーをサポートします: • ホットデプロイメント:Karafは、[home]/deployディレクトリ内のjarファイルを監視します。そ のため、jarがこのディレクトリにコピーされるとランタイムの中に⾃動的にインストールされま す。その後これを更新または削除することは可能で、Karafは適宜処理します。 • 動的設定:サービスは、通常、監視対象のプロパティファイルを使⽤して標準のOSGiサービスで設 定されます。変更はサービスに伝播されます。 • ログ: Log4Jでサポートされる⼀元的なロギングバックエンドを使⽤します。 Talend ESB⼊⾨ガイド 3 メッセージング • インスタンスの管理:Karafには、複数のインスタンスを管理するための単純なコンソールコマンド が⽤意されています。 • Karafの例については、「Javaを使用したデータサービスおよびルートのビルドおよびデプロ イ」を参照してください。詳細は、『Talend ESBコンテナ Administration Guide』およびhttp:// karaf.apache.org/を参照してください。 1.1.3. メッセージング エンタープライズメッセージングソフトウェアは、統合プロジェクトにおいて30年以上使⽤されてき ました。アプリケーション間の通信のスタイルをメッセージでやりとりするだけでなく、アプリケー ション間の統合の広く採⽤されたスタイルにもなっています。メッセージングは、アプリケーション 間の相互運⽤性とゆるやかに連携し、通知および⾮同期のニーズを満たします。 Talend ESBには、Apache ActiveMQメッセージブローカーが組み込まれ、数多くのさまざまなメッ セージングオプションがサポートされます。ActiveMQは、Javaで記述され、JMS仕様を実装しま す。さらに、その他の数多くのフィーチャーが追加され、エンタープライズメッセージングに⾼い可 ⽤性、パフォーマンス、スケーラビリティ、信頼性、セキュリティを提供します。 メッセージブローカーの仕事は、分散アプリケーション間でイベントを転送し、対象の送信先に確実 にメッセージが届くようにすることです。そのためブローカーは、可⽤性が⾼く、⾼性能で、スケー ラブルである必要があります。Apache ActiveMQはTalend Runtimeに組み込まれ、Talend ESBで使 いやすい⼿段を提供します。 1.1.4. Talend Studio Talend Studioは、以下のパースペクティブを持つグラフィカルな開発ツールを提供します: • [Integration] (統合)パースペクティブ • [Mediation] (メディエーション)パースペクティブ • [Java]パースペクティブ(m2eclipseプラグインを含むEnterpriseおよびPlatformのStudio) • [soapUI]パースペクティブ(EnterpriseおよびPlatformのStudioのみ) 以下のセクションでは、これらのパースペクティブについて詳細に説明します。 1.1.4.1. [Integration] (統合)パースペクティブ [Integration] (統合)パースペクティブは、Talend Studioの中のグラフィカルツールであり、これに より広範なデータアダプターのリストを使⽤しESBデータサービスをビルドして、スタンドアロン ⽤またはローカルTalend Runtimeコンテナ内のデプロイメント⽤にエクスポートすることができま す。EnterpriseおよびPlatformのStudioでは、アーティファクトリポジトリのプロビジョニングリポ ジトリでサービスをパブリッシュし、Talend Administration Centerからリモートでデプロイするこ ともできます。[Integration] (統合)パースペクティブでは、使いやすいグラフィカルな開発環境で データサービスを開発することができます。これにより、あらゆるタイプのデータサービス、データ 移⾏、およびデータ同期処理に対応する、あらゆるソースおよびターゲットシステムに対する事前に 構築されたコネクターを使⽤して、迅速な開発およびメンテナンスコストの削減を実現できます。 [Integration] (統合)パースペクティブのコアは、Eclipseベースの単⼀のグラフィカルな開発環境の 中で、4つの主要アプリケーションで構成されます(ビジネスモデラー、ジョブデザイナー、サービス デザイナー、メタデータマネージャー)。 4 Talend ESB⼊⾨ガイド Talend Studio 図1.2 サービスデザインを含む[Integration] (統合)パースペクティブ 「Service」ノードのサービスは、WSDLで定義されたWebサービスです。WSDLは、単純にインポー トすることも、組み込みのグラフィカルなWSDLエディターでツールを使⽤して最初から作成するこ とも、既存のWSDLをインポートしてからStudioで編集することもできます。ここでは、サービスは WSDL情報に基づいており、各サービス操作はジョブデザインノードに実装することができます。 図1.3 ジョブデザインを含む[Integration] (統合)パースペクティブ データサービスジョブは、1つ以上のコンポーネントが相互に接続されたグラフィカルな設計で、 データサービス操作を設定し実⾏できます。ジョブは、データ統合プロセスに必要なさまざまなソー スやターゲットすべてに対応しており、データ統合プロセスをWebサービスと組み合わせます。 さらにEnterpriseおよびPlatformのStudioでは、⼤きなチームで作業するために共有リポジトリ フィーチャーを使⽤してリソースを共有することができます。これにはチームコラボレーションの Talend ESB⼊⾨ガイド 5 Talend Studio 機能が備わり、チームメンバーは業界標準のソースマネージャー(SVN)でビジネスモデル、統合お よびサービスジョブ、統合サービスおよびメタデータを保存し共有することができます。そのため オブジェクトおよびコードの再利⽤性が向上し、開発のベストプラクティスの設計が容易になりま す。Talend Studioでは、(SAP⽤などの)ウィザードのようなさらに⽣産性を向上させるための機能や デプロイメントオプション(アーティファクトリポジトリへのパブリッシュ)も利⽤できます。 詳細は、『Talend Studioユーザーガイド』を参照してください。 1.1.4.2. Mediation (メディエーション)パースペクティブ このセクションではまずApache Camelについて説明し、次にこの機能のグラフィカルインターフェ イスとなる[Mediation] (メディエーション)パースペクティブについて説明します。 Apache Camel Talend ESBのメディエーション機能は、⼀般的なApache Camel製品をベースとしています。Camel フレームワークの中枢はルーティングエンジンです。これを使⽤し、コンポーネントを通じてメッ セージを送受信するルーティングルールを定義します。メッセージ形式に制限はなく、Javaオブ ジェクト、XML、JSON、プレーンテキストなどさまざまな形式を使⽤できます。これらのルーティ ングルールは、Gregor Hohpeの著書「Enterprise Integration Patterns」などに基づいています。 そのため、Apache Camelは開発者がエンドポイント/プロセッサをワークフロー(ルート)に組み⽴て て⾼度な機能を実現しやすいフレームワークとなっています。これにより、エンタープライズ統合パ ターン(EIP)を活⽤してスケーラブルなサービスを実質的に組み⽴てることでアプリケーション統合 が促進され、設計および実装対象のメッセージベースのシステム統合がより単純化されます。Camel は、Javaベースのドメイン固有⾔語(DSL)を使⽤してルーティングおよびメディエーションルールを 実装するためのEIPを作成できるオープンソースのJavaフレームワークです。つまり、条件が変更さ れるとすばやく容易に更新できるルーティングルールを完備することができます。 スケーラビリティには⾮同期パターンが必要なため、EIP、つまりCamelは、⾮同期メッセージング パターンに焦点を当てています。ただし、⾮同期メッセージングはより複雑です。Camelは、統合開 発者に広く理解されている⼀般的なフレームワークでこの複雑性をラッピングしています。 Camelには⾼度な抽象概念があるため(メッセージ、交換、コンポーネント、エンドポイントなど)、 同じAPIを使⽤してさまざまなシステムと対話できます。たとえば、各ルートはコンポーネントおよ びエンドポイントAPIを実装し、同じ基本メッセージおよびExchange構造と連携します。特定のプロ トコルおよびデータタイプと連携するために、各コンポーネントを実装します。そのため、同じパ ターンおよびルーティングセマンティクスを使⽤しながら、さまざまなプロトコルおよびシステムを 容易に接続することができます。 Camelは、異なるエンドポイント間の形式および転送を仲介します。⼀般的には、異なるメッセージ 形式を使⽤し、異なる⾔語で記述されていても、サービスはCamelメディエーションで相互にやりと りすることができます。また、ロギングや追跡などの機能を追加することも容易になります。Camel は⾮常に軽量であるため、スタンドアロンJavaアプリケーション、Webアプリケーション、OSGiバ ンドルなど、どこにでも組み込み、デプロイすることができます。 Javaドメイン固有⾔語(DSL)を使⽤してルートを指定することができます。たとえば、以下のように 指定します: From(“file:directory”).to(“jms:queuename”) この単純なステートメントは、ディレクトリからファイルをポーリングし、それぞれのファイルの内 容のJMSメッセージをJMSキューに送信します。CamelはExchangeオブジェクトをベースとする⼀ 律のインターフェイスを提供するため、これが可能になります。 [Mediation] (メディエーション)パースペクティブ 6 Talend ESB⼊⾨ガイド Talend ESB製品およびアーキテクチャ ルートビルダー([Mediation] (メディエーション)パースペクティブ)は、Apache Camel上でTalend Studioと統合されたGUIで、開発者はこれを使⽤してビジュアル的にルートをビルドすることができ ます。 ルートは、スタンドアロンモードで実⾏することも、Talend Runtimeコンテナの中に容易にデプロ イできるOSGiバンドルとしてエクスポートすることもできます。さらにEnterpriseおよびPlatformの Studioでは、共有リポジトリフィーチャーを使⽤して⼤きなチームで作業することもできます。 図1.4 [Mediation] (メディエーション)パースペクティブ 細かな設定が不要なTalend ESBは、豊富なコンポーネントのライブラリを通じて、80を超えるプロ トコルおよびデータ型をサポートします。これらのコンポーネントを使⽤して、ルートを転送で接続 し、APIを使⽤して、データ形式を認識させることができます。また、独⾃のコンポーネントを容易 に作成することもできます。コンポーネントAPIは⾮常に簡潔です。Talend ESBはモジュール式アー キテクチャを備え、これによりコンポーネントが、Camelに同梱されたものか、他社製か、あるい は独⾃にカスタムで作成したものかにかかわらず、Camelにロードすることができます。独⾃のコン ポーネント(プロセッシング、接続、ルーティングなど)は⾮常に簡単に作成することができ、ドキュ メントも揃っています。 1.2. Talend ESB製品およびアーキテクチャ Apacheプロジェクトに組み込まれている標準機能以外に、Talendは、現在および将来の要件を満た すために、4種類のパッケージでESB機能を提供しています。以降のセクションで、このESB機能に ついて説明します。これらのESB製品をすばやく⽐較するには、オンラインのESB⽐較マトリクスを 参照してください。 1.2.1. Talend ESB Standard Edition (SE) Talend ESB Standard Editionは、機能的、エンタープライズおよび地理的な境界にまたがり分散さ れたシステムを統合するために使⽤される標準ベースの接続レイヤーです。機能には、メッセージン Talend ESB⼊⾨ガイド 7 Talend Open Studio for ESB グ、Webサービス、インテリジェントルーティング、およびデータ変換が含まれます。モジュール式 のプラグ可能なアーキテクチャによって、⼤半のエンタープライズ要件に適合するように簡単に拡張 でき、オープンソースのApacheライセンスに基づいて使⽤できます。また、次のエンタープライズ クラスの機能が組み込まれています。 • Service Locator—Talend ESB Standard Editionでは、Apache Zookeeperを介したダイナミックな エンドポイントの登録およびルックアップを可能にする新たに開発されたApache CXFの拡張機能 を通じて、⾃動的かつ透過的なフェールオーバーおよび負荷分散を提供します。 詳細は、「Service LocatorおよびService Activity Monitoringを使用したRent-a-Carデモ」および 『Talend ESBインフラストラクチャサービス Configuration Guide』を参照してください。 • Service Activity Monitoring—Talend ESB Standard Editionは、イベントをキャプチャーし、アク ティビティ情報を保存することで、サービス応答時間、トラフィックパターン、サービスライフサ イクル、監査などを含むサービスアクティビティのより綿密な分析を容易にします。 詳細は、「Service LocatorおよびService Activity Monitoringを使用したRent-a-Carデモ」および 『Talend ESBインフラストラクチャサービス Configuration Guide』を参照してください。 • Security Token Service (STS)フレームワーク—Talend ESB Standard Editionには、Security Assertion Markup Language (SAML 2.0)をサポートするSTSフレームワークが組み込まれていま す。SAMLは、複数のアプリケーションやドメイン間でセキュリティ証明書のフェデレーションを 確⽴します。これによって、クライアントとサービスは、接続時に透過的かつ安全に認証されま す。カスタムコードは必要ありません。このSTSフレームワークは、TalendがApache CXFコミュ ニティのために実現したもう1つの重要な貢献です。 詳細は、「Security Token Serviceを使用してWS-SecurityベースのSAML認証を提供するRent-aCarのデモ」および『Talend ESBインフラストラクチャサービス Configuration Guide』を参照して ください。 1.2.2. Talend Open Studio for ESB Talend Open Studio for ESB‒Talend ESB Standard Editionをはじめとする、データサービスをモ デル化、設定、デプロイおよび管理する⾰新的なEclipseベースのツール環境です。Talend Open Studio for ESBは、開発者の⽣産性を⾼めることで、習得の困難さを排除し、デプロイメントに要す る時間を短縮するため、組織はビジネスの需要に迅速に対応できます。 8 Talend ESB⼊⾨ガイド Talend Open Studio for ESB 図1.5 Talend Open Studio for ESBの運⽤の基本概念 3つの異なるタイプの機能ブロックを特定できます。 • ⻘いブロックは、データ統合またはデータサービスプロセス、メディエーションルート、および サービスを実⾏できるTalend Studio APIを表します。詳細は、『Talend Open Studio for ESB User Guide』の該当する章を参照してください。 • その他のブロックは、1つ以上のTalend Runtimeと追加のESBインフラストラクチャサービスから 構成されるTalend ESB Standard Editionを表します。 • ⾚いブロックは、情報システム内にデプロイされた1つまたは複数のTalend Runtime (実⾏コ ンテナ)を表します。Talend Runtimeを使⽤して、Talend Studioで作成されたジョブ、ルー ト、およびサービスをデプロイおよび実⾏できます。Talend Runtimeにアイテムをデプロイ する⽅法の詳細は、『Talend Open Studio for ESB User Guide』を参照してください。Talend Runtimeの詳細は、『Talend ESBコンテナ Administration Guide』を参照してください。 サービスやルートをデプロイするTalend Runtimeが複数ある場合は、必要に応じてその実⾏の 負荷を分散することができます。Talend RuntimeのすべてのインスタンスはService Locatorを 通じてお互いにコミュニケーションを取り、デプロイおよび実⾏に最適なインスタンスを特定し ます。 • オレンジのブロックは、データプロセスおよびサービスアクティビティの実⾏のログ情報を収集 する監視データベースを表します。 Talend ESB⼊⾨ガイド 9 Talend Enterprise ESB データプロセスログ情報は、tFlowMeterCatcher、tStatCatcher、tLogCatcherコ ンポーネントを使⽤してTalend Studio内でキャプチャできます。詳 細は、『Talend Components Reference Guide』を参照してくださ い。tFlowMeterCatcher、tStatCatcher、tLogCatcherコンポーネントを使⽤せずにそれらの 機能を⾃動化するには、[Stats & Logs] (統計&ログ)タブを使⽤できます。統計およびログの詳細 は、『Talend Open Studio for ESB User Guide』を参照してください。 エンドユーザーはService Activity Monitoringを使⽤してサービスの呼び出しを監視できます。 これは、エンドユーザーがイベントを構成する基本的な要求と応答を把握し、予期せず発⽣する 障害を監視して、システム管理に関する意思決定をサポートすることができる、統合的な監視イ ベント情報を提供します。Service Activity Monitoringの詳細は、『Talend ESBインフラストラ クチャサービス Configuration Guide』の該当の章を参照してください。 • Service LocatorおよびService Activity Monitoringに加え、Talend Runtimeは、特にクライアン トとWebサービスが異なるセキュリティドメインに属する場合に、それらの間で信頼関係を確 ⽴するために使⽤できるSecurity Token Service機能を提供しています。Security Token Service は、セキュリティトークン、つまり、クライアントがサービスにアクセスするための名前、 ロール、認証コードなどのクレームの集合を発⾏するために使⽤されます。メッセージの受信者 は、STS証明書のみを知っていれば、トークン署名を確認し、認証情報の信頼されたステートメ ントを取得できます。 これらすべてのアプリケーションのインストールの詳細は、『Talendインストレーションガイド』を 参照してください。 1.2.3. Talend Enterprise ESB Talend Enterprise ESBは、複数のチーム間で開発プロジェクトを管理し、企業全体にわたり⼀貫し た⽅法で統合された本番環境を運⽤する必要のあるアプリケーションチーム向けに設計されていま す。そのため、Talend ESBには、Talend Open Studio for ESBのすべての機能が含まれ、さらに、 チームのコラボレーション、エンタープライズ管理などの機能によってそれが強化されています。 10 Talend ESB⼊⾨ガイド Talend Enterprise ESB 図1.6 Talend Enterprise ESBの運⽤の基本概念 5つの異なるタイプの機能ブロックが定義されています。 • ⽔⾊のブロックは、1つまたは複数のTalend Studio APIとWebブラウザーが同じマシンまたは別の マシンにあることを⽰しています。 エンドユーザーは、Studio APIから技術的なプロセスを実⾏できます。つまり、データ統合または データサービスプロセス、メディエーションルートおよびサービスを実⾏して、それらをアーティ ファクトリポジトリ上にパブリッシュすることができます。ユーザーは⾃分が許可されているプロ ジェクトの作業をTalend Studioで⾏います。詳細は、『Talend Studio User Guide』を参照してく ださい。 エンドユーザーは、WebブラウザーからセキュアなHTTPプロトコルを通じてリモートベースの Talend Administration Centerに接続します。 この説明におけるエンドユーザーのカテゴリには、開発者、プロジェクトマネージャー、管理者 のほか、Web、REST、データサービス、メディエーションルートの構築に関わるさまざまな⼈た ちが含まれます。それぞれのエンドユーザーは、会社のポリシーに応じて、Talend Studioまたは Talend Administration Center、あるいはその両⽅を使⽤します。 • 紫⾊のブロックは、WebベースのTalend Administration Center (アプリケーションサーバー)を⽰ しています。このサーバーは、SVNサーバーベースとデータベースサーバーベースの2つの共有リ ポジトリに接続しています。 すべてのプロジェクトは、Talend Administration Centerで管理できます。管理メタデータ(ユー ザーアカウント、アクセス権、プロジェクト権限など)はデータベースサーバーに保存され、プロ ジェクトメタデータ(ジョブ、ビジネスモデル、ルーチン、ルート、サービスなど)はSVNサーバー に保存されます(そのため、エンドユーザー間でそれらを容易に共有できます)。 また、Talend Administration Centerでは、Talend Studioで作成されアーティファクトリポジト リにパブリッシュされたルートまたはサービスにアクセスしてそれらを管理し、それらのTalend Runtimeへのデプロイメントおよび実⾏をセットアップし管理できます。 Talend ESB⼊⾨ガイド 11 Talend Enterprise ESB さらに、Talend Administration Centerを使⽤して、ESBアーティファクトにより安全にアクセ スでき、許可されているリソースのみにアクセスするユーザーがを管理できます。事実、Talend Administration Centerでは、サービスリソースとそれらのポリシーベースのセキュリティを専⽤ リポジトリのService Registryに保存して管理できます。Service Registry⾃体は、Talend ESBコン テナの⼀部ですが、Talend Administration Centerからサービスとポリシーの⼀元管理、および配 信を実⾏できます。このように、会社のサービスとポリシーを、常時、アクセス可能で⼀貫した 再利⽤可能な状態に維持できます。サービスセキュリティに加え、Talend Administration Center は、特定のユーザー、ロール、アクセス権限を特定のサービスに付与できる認証機能を提供してい ます。ユーザーとそのロールは、Talend Administration Centerでアクセス可能なTalend Identity ManagementサービスWebアプリケーション(Apache Syncopeに基づく)で定義されます。 最後に、Talend Administration Centerでは、分散されたコンテナから収集されたイベントをすべ て監視および検索できます。それらのイベントは、Talend Runtimeコンテナ(ジョブ、ルートな ど)からのログ、Talend Runtimeによって⽣成されたOSGiイベント(バンドルに関する情報)および Service Activity Monitoringイベントのいずれかです。監視、インデックス付け、および検索でき る各種イベントと、それらの収集の設定⽅法の詳細は、『Talend ESBインフラストラクチャサー ビス Configuration Guide』を参照してください。 詳細は、『Talend Administration Center User Guide』を参照してください。 • 濃⻘⾊のブロックは、以下のすべてを保存するアーティファクトリポジトリを表します。 • ダウンロード可能なソフトウェアアップデート。 • Talend Studioからパブリッシュされ、いつでもTalend Runtimeでデプロイおよび実⾏できる ルートとサービス。 それらのアーティファクトには、ESB Publisher (ESBパブリッシャー)とTalend Administration CenterのSoftware update (ソフトウェアアップデート)ページからアクセス可能なアーティファ クトリポジトリWebアプリケーションでアクセスできます。 • ⾚いブロックは、情報システム内にデプロイされた1つ以上のTalend Runtime (実⾏コンテナ)を表 します。Talend Runtimeでは、Talend Administration Center Webアプリケーションで定義され たセットアップに従って、技術的プロセスをデプロイおよび実⾏します。それらのプロセスは、 アーティファクトリポジトリから取得されたルートおよびサービスです。 サービスやルートアーティファクトをデプロイするTalend Runtimeが複数ある場合は、必要に 応じてその実⾏の負荷を分散することができます。Talend Runtimeのすべてのインスタンスは Service Locatorで相互にコミュニケーションを取り、Talend Administration Centerでデプロイメ ントに設定されたアーティファクトのデプロイと実⾏に最適なインスタンスを特定します。デプロ イメントに選出されたTalend Runtimeは、アーティファクトリポジトリにアーティファクトのデ プロイおよび実⾏を要求します。アーティファクトとその実⾏に必要な依存関係はすべてアーティ ファクトリポジトリからTalend Runtimeに送られて、そのTalend Runtimeによってデプロイおよ び実⾏されます。 • オレンジ⾊のブロックは、Activity MonitoringコンソールおよびService Activity Monitoringによる 監視を表します。 エンドユーザーはActivity Monitoringコンソールを使⽤して、技術的プロセスの実⾏を監視できま す。このコンソールには詳細な監視機能が備わっており、収集したログ情報の統合、基本的なデー タフローのインタラクションの把握、予期しないエラー発⽣の回避、システム管理に関する決定の サポートなどが可能です。 エンドユーザーはService Activity Monitoringを使⽤してサービスの呼び出しを監視できます。こ れは、エンドユーザーがイベントを構成する基本的な要求と応答を把握し、予期せず発⽣する障害 を監視して、システム管理に関する意思決定をサポートすることができる、統合的な監視イベント 情報を提供します。 12 Talend ESB⼊⾨ガイド Talend Platform これらのすべてのアプリケーションのインストールの詳細は、『Talendインストレーションガイド』 を参照してください。 1.2.4. Talend Platform Talend Platform (for Data Services、for Enterprise Integration、for MDM、Universal)は、⾼度なク ラスタリング、ビジネスプロセス管理、アプリケーション統合、強化されたデータマッピング、デー タ管理などのフィーチャーでTalend Enterprise ESBを拡張し、会社がビジネスの⽣産性を⾼め、プ ロジェクトをより迅速に実現し、運⽤コストを低減できるようにします。Talend Platform Universal は、デフォルトでビッグデータテクノロジーが組み込まれていますが、他のプラットフォームでオ プションとして使⽤することもできます。さらに、Talend Platform for Enterprise Integrationと Talend Platform Universalには、⾼度なモデル化、開発、デプロイメント、および管理機能を実現す るBPMも組み込まれています。 Talend ESB⼊⾨ガイド 13 Talend ESB⼊⾨ガイド 2.Talend ESBの使い⽅ この章では、Talend ESBソフトウェアを使⽤する前に必要な情報について説明します。この章を読 むと、以下の章のデモのサンプルを実⾏する準備が整います。 ソフトウェアを使⽤するための主な実⾏⼿順は、以下のセクションで説明されています: 1. 「Talend ESB製品を使用するための前提条件」 2. 「ソフトウェアのダウンロードおよびインストール」 3. 「ソフトウェアの開始」 4. 「デモのソフトウェア要件」 Talend ESB⼊⾨ガイド Talend ESB製品を使⽤するための前提条件 2.1. Talend ESB製品を使⽤するための前提条件 Talend ESB製品のインストールを開始する前に理解しておく必要のある、多数のソフトウェアおよ びハードウェアの前提条件があります。 インストール要件、互換性のあるソフトウェアおよびソフトウェアバージョンの詳細なリストは、次 を参照してください。 • Talend Studioを使⽤している場合は、『Talendインストレーションガイド』を参照してくださ い。 • Talend ESB Standard Editionを使⽤している場合は、該当する『Talendインストレーションガイ ド』を参照してください。 <TalendRuntimePath>は、Talend Runtimeがインストールされているディレクトリになります。これは、通 常、使⽤しているソフトウェアのバージョンに応じてRuntime_ESBSEまたはTalend-ESB-VA.B.Cのフルパスに なります。適宜、置き換えてください。 たとえば、Talend Runtimeの例は、<TalendRuntimePath>/examples/talendディレクトリにあります。 2.2. ソフトウェアのダウンロードおよびインス トール このセクションでは、以降の章で説明されているデモ⽤に使⽤される製品と、それらのインストー ル、設定、および開始⽅法を説明します。 使⽤している製品のバージョンに応じて、以下を参照してください。 • 「コミュニティ製品の場合」 • 「EnterpriseおよびPlatform製品の場合」 2.2.1. コミュニティ製品の場合 Talend ESBコミュニティ製品は、Webサイト: http://www.talend.com/download/esbから無償で⼊ ⼿可能です。 ⼊⼿可能な製品は、次のとおりです。 • Talend ESB Standard Edition、追加のインフラストラクチャサービスを備えた、Apache Karafに 基づくOSGiコンテナ。 • Talend Open Studio for ESB、StudioとESB Runtimeの両⽅が組み込まれています。ESB Runtime は、Talend ESB Standard Edition製品とまったく同等です。 これらの製品の概要については、このガイドの1章Talend ESBソリューションの概要を参照してくだ さい。 デモに必要なソフトウェア: • 「Studioを使ったデータサービスとルートの構築とデプロイ」および「Studioを使ったRESTサー ビスの構築とデプロイ」で説明されているユースケースの場合は、インフラストラクチャサービス に対応した、Talend Open Studio for ESBのStudioとESB Runtimeの両⽅をインストールして開始 する必要があります。 16 Talend ESB⼊⾨ガイド EnterpriseおよびPlatform製品の場合 • ⼀⽅、「Javaを使用したデータサービスおよびルートのビルドおよびデプロイ」、「Service LocatorおよびService Activity Monitoringを使用したRent-a-Carデモ」、「Security Token Service を使用してWS-SecurityベースのSAML認証を提供するRent-a-Carのデモ」で説明されているユー スケースの場合は、インフラストラクチャサービスに対応した、Talend ESB Standard Edition (ま たはTalend Open Studio for ESBのESB Runtime)のみが必要です。 • 「Artifact Repositoryを使用したRent-a-Carのデモ」で説明されているユースケースで は、EnterpriseおよびPlatform製品にデフォルトで含まれているリポジトリ管理ソフトウェアが必 要なため、特にこれらの製品のユーザーを対象としています。ただし、外部リポジトリ管理ソフト ウェアをコミュニティ製品と⼀緒に使⽤することもできます。 • 「XKMSを使用したRent-a-Carのデモ」で説明されているユースケースでは、Enterpriseおよび Platform製品で使⽤可能な暗号化機能が必要なため、これらの製品のユーザーのみを対象としてい ます。 詳細は、以下を参照してください。 • Talend Open Studio for ESBおよびインフラストラクチャサービスをインストールして開始する には、『Talend Open Studio for ESBインストレーションガイド』の⼿順を実⾏します。 • Talend ESB Standard Editionおよびインフラストラクチャサービスをインストールして開始す るには、『Talend ESB Standard Editionインストレーション』の⼿順を実⾏します。 2.2.2. EnterpriseおよびPlatform製品の場合 Enterprise (エンタープライズ)またはPlatform (プラットフォーム)エディションにサブスクライブ したお客様には、ダウンロードの⼿順が記載された電⼦メールとライセンスファイルが送信されま す。 Enterprise (エンタープライズ)またはPlatform (プラットフォーム)エディションをインストール する際には、Talend Installerを使⽤することをお勧めします。代わりに、電⼦メールに指定された 『Talendインストレーションガイド』の⼿順に従うこともできます。 これらの製品の概要については、このガイドの1章Talend ESBソリューションの概要を参照してくだ さい。 2.3. デモの代替コンテナの作成 Talend ESBインストールのcontainerサブディレクトリには、1つのTalend Runtimeコンテナが含 まれます。ただし、このガイドで説明されているデモユースケースの中には、2つのコンテナが必要 なものがあります。このセクションでは、同じマシンに2番⽬のコンテナを作成する⽅法を説明しま す。 2番⽬のコンテナは、異なるコンテナ上で実⾏するクライアントとサーバーに共通する実世界の状況 に⼀致します。それは、個別に起動しアプリケーションをデプロイできるTalend Runtimeコンテナ のコピーです。この2番⽬のコンテナは、SayHelloの例のSayHelloRouteの部分(「SayHelloRouteの サンプル」を参照)、およびRent-a-Car (レンタカー)の例のService Locatorの部分(「Service Locator およびService Activity Monitoringを使用したRent-a-Carデモ」を参照)で必要となります。 Talend ESB Standard EditionまたはTalend Open Studio for ESBのユーザーの場合は、それぞれダウ ンロードしたTESB_SE-VA.B.CパッケージまたはTalend Open Studio for ESBのインストールから抽 出したRuntime_ESBSEフォルダーを直接使⽤して、そのcontainerフォルダーをコピーします。 Talend ESB⼊⾨ガイド 17 デモの代替コンテナの作成 EnterpriseユーザーとPlatformユーザーは、ダウンロードしたTalend-ESB-VA.B.Cパッケージを使⽤ して、そのcontainerフォルダーをコピーします。また、Talend ESBのcontainerフォルダーとまっ たく等しいTalend Runtimeパッケージ(Talend-Runtime-VA.B.C)を直接使⽤することもできます。 Talend InstallerでTalend ESBをインストールしたEnterpriseユーザーとPlatformユーザーの場合 は、esb/containerフォルダーをコピーする必要があります。 コンテナのコピー 1. コピーするコンテナがまだ開始されていないことを確認します。 3. 関連するコマンドを実⾏して、すべての内容とともにディレクトリcontainerのコピーを作成し ます。 2. Linux端末またはWindowsコマンドラインウィンドウで、ディレクトリ を<TalendRuntimePath>に変更します。 • cp -r container alternate-container (Linux) • robocopy /e container alternate-container (Windows) • xcopy /e container alternate-container (robocopyのない古いWindows) これで、ディレクトリalternate-container内に2番⽬のコンテナが存在します。 2つのコンテナインスタンス間の競合を避けるために、alternate-containerの設定を調整する必要 があります。 代替コンテナの設定 1. 2. 3. デフォルト(1番⽬の)コンテナが同時に実⾏されていないことを確認します。同時に実⾏してい ると、ポートの競合が発⽣します。 alternate-containerをデフォルト設定で実⾏します。 代替コンテナの開始: • Linuxで、ディレクトリ<TalendRuntimePath>/alternate-containerに移動し、次のコマンド を実⾏します。 ./bin/trun • Windowsで、ディレクトリ<TalendRuntimePath>\alternate-containerに移動し、次のコマン ドを実⾏します。 .\bin\trun.bat 4. 初期化フェーズが終了するまで待ちます。Talend Runtimeが作成されたすべてのバンドルとと もに開始されたことを確認するには、次のコマンドを実⾏します。 list 5. 代替コンテナのプロンプトで次のコマンドを実⾏し、別の⼀意の設定グループを設定する Talend Runtime設定適合スクリプトを呼び出します。 source scripts/configureC1.sh 6. 18 これで、設定はローカルで更新され保存されます。次回、代替コンテナの実⾏時に、新しい設定 が使⽤され、コンテナと代替コンテナの両⽅を同時に実⾏できます。 以降のデモでは必要ありませんが、3番⽬や4番⽬のコンテナを作成する場合は、元のコンテナの ディレクトリを3番⽬の場所にコピーします(上記の説明を参照)。ここでも、3番⽬のコンテナの Talend ESB⼊⾨ガイド ソフトウェアの開始 実⾏を開始し、コンテナのプロンプトで次のコマンドを使⽤して、別の適合スクリプトを呼び出 します。 source scripts/configureC2.sh 同様に、4番⽬のコンテナでは、次を使⽤します。 source scripts/configureC3.sh 次を使⽤して、任意のコンテナ内のデフォルト値を再設定できます。 source scripts/configureC0.sh 代替コンテナの開始時に"Port already in use" (ポートは既に使⽤中)という例外が表⽰された場合は、デフォ ルトパラメーターを使⽤するコンテナがまだ実⾏されていないことを再確認します。エラーが存続する場 合は、無関係なプロセスによってポートが使⽤されている可能性があるため、状況に応じて、alternatecontainer/etcフォルダー内の設定ファイルを⼿動で更新します。 2.4. ソフトウェアの開始 このセクションでは、ソフトウェアの開始について説明します。このソフトウェアは、本ガイドの後 の章で説明するユースケースを理解するために必要です。 最初に、『Talendインストレーションガイド』の説明に従って、製品を適切にインストールしたこと を確認してください。 使⽤する必要のあるソフトウェアに応じて、次のいずれかの⼿順を実⾏します。 1. 「Talend Runtimeの実行」 2. 「Talend Administration Centerの開始」 (EnterpriseまたはPlatformのみ) 3. 「Talend Studioの開始」 2.4.1. Talend Runtimeの実⾏ このセクションでは、Talend ESB Standard EditionおよびTalend ESB EnterpriseとPlatform Edition のTalend Runtimeを簡単に開始する⽅法を説明します。ここでは、特別な違いがない限り、両⽅の エディションをTalend Runtimeと呼びます。さらに、Talend Runtimeインフラストラクチャサービ スの実⾏⽅法についても説明します。 このセクションの⼿順を実⾏する前に、「Talend ESB製品を使用するための前提条件」をお読みに なることを推奨します。その後で「ソフトウェアのダウンロードおよびインストール」の説明に従っ て、Talend Runtimeをダウンロードしてください。 このパッケージの内容 • Talend Runtimeコンテナ インフラストラクチャサービス • Service Locator • Service Activity Monitoring Talend ESB⼊⾨ガイド 19 Talend Runtimeの実⾏ • Security Token Service その他 • Apache ActiveMQ (メッセージブローカー) 2.4.1.1. Talend Runtimeコンテナの開始 1. 2. 3. 4. Talend Installerを使って製品をインストールした場合、最初に"Talend Runtime"サービスを停 ⽌します。 Talend Runtimeインストールディレクトリの<TalendRuntimePath>\container\binサブディレ クトリに進みます。 trun.bat (Windows)またはtrun.sh (Linux)を実⾏します。 コンテナが開始すると、簡単な⼿順(以下の画⾯に類似)に続き、Talend Runtimeコンテナコン ソールのコマンドプロンプトが表⽰されます。 Talend Runtimeコンテナが開始したら、初期化が完了するまで数秒待ち、それからコマンドを⼊⼒し ます。Talend RuntimeコンテナはKarafに基づいて構築されており、Karafによりコア以外のバンドルが バックグラウンドで開始します。そのため、コンソールが利⽤可能でも、コマンドはまだ利⽤できない 場合があります。 コンソールのプロンプトkaraf@trun>の後に、listコマンドを⼊⼒します。 これにより、Talend RuntimeコンテナにインストールされたすべてのOSGiバンドルが表⽰さ れ、バンドルがアクティブであるかどうかが⽰されます。 詳細は、『Talendインストレーションガイド』を参照してください。 Talend Runtimeコンテナの詳細、およびその操作⽅法の詳細は、『Talend ESBコンテナ Administration Guide』を参照してください。 2.4.1.2. すべてのインフラストラクチャサービスの開始 各インフラストラクチャサービスを個々に開始するのではなく、すべてを⼀度に開始できま す。Talend Runtimeコンテナが開始し、すべてのバンドルがアクティブになったら、次の操作を実 ⾏します。 1. 2. 20 tesb:start-allと⼊⼒し、すべてのインフラストラクチャサービスを開始します。 これで、Service Locator、Service Activity Monitoring、Security Token Serviceのサービスが Talend Runtimeコンテナのフィーチャーとして実⾏されます。 EnterpriseおよびPlatform Talend ESBでは、このコマンドはTalend ESB Standard Editionおよ びTalend Open Studio for ESBの場合と同じように動作しますが、このコマンドにより追加の サービスがインストールされます(たとえば、Service Registry、認証など)。 デモのために、EnterpriseとPlatformのユーザーは、デフォルトのセキュリティ管理システム のTalend Identity ManagementサービスをTalend ESB Standard EditionおよびTalend Open Talend ESB⼊⾨ガイド Talend Administration Centerの開始 Studio for ESBのデフォルト、JAAS認証ハンドラー(使いやすく、追加のソフトウェアのインス トールを必要としない)に変更する必要があります。 Talend Runtimeコンテナコンソールのプロンプトの後に次のように⼊⼒します。 tesb:switch-sts-jaas 上記のサービスを個々に起動またはスタンドアロンとして起動する⽅法についての詳細は、『Talend インストレーションガイド』を参照してください。 Talend ESBインフラストラクチャサービスの詳細は、『Talend ESBインフラストラクチャサービス Configuration Guide』を参照してください。 2.4.2. Talend Administration Centerの開始 EnterpriseまたはPlatformのユーザーは、この時点でTalend Administration Centerを開始しま す。Talend Open Studio for ESBのユーザーは、「Talend Studioの開始」に進んでください。 Talend Administration Centerでは、新規リモートプロジェクトを作成したり、⾃分のための新規 ユーザーアカウントを作成したり、新規作成したこのプロジェクトへのアクセス権を⾃分に付与する ことができます。リモートプロジェクトの利点は、⼀元管理されるプロジェクトで何⼈ものユーザー が共同作業できることで、このプロジェクトは企業全体のプロジェクトに対して最⼩のプロジェクト となります。 また、Talend Studioで作成され、Talend Runtimeコンテナに取り込まれたSOAPサービ ス、RESTサービスジョブ、ルートなどのESBアーティファクトのパブリッシュとデプロイを Talend Administration Centerを使って直接管理することもできます。これを⾏うには、Talend Administration CenterとTalend Runtimeコンテナを接続する必要があります。詳細は、「Talend RuntimeのTalend Administration Centerへの接続」を参照してください。 2.4.2.1. Talend Administration Centerの実⾏ 1. 2. 3. Talend Installerを使って製品をインストールした場合、tacという名前のディレクトリに進みま す。 start_tac.batという実⾏可能ファイルをダブルクリックします。 これにより、Talend Administration Centerの実⾏環境であるサーブレットコンテナ(デフォルト はApache Tomcat)が起動します。 開始したら、デフォルトのアカウントである[email protected]/adminを使って、Talend Administration Centerにログインします。 製品を⼿動でインストールした場合、⾃分のサーブレットコンテナでTalend Administration Center をデプロイしたことになります。その場合は、コンテナを実⾏し、Talend Administration Centerを 開始します。 2.4.2.2. Talend Administration Centerの設定 Talend Administration Centerを設定するには、左側のメニューで[Configuration] (設定)リンクをク リックします。 Talend ESB⼊⾨ガイド 21 Talend Administration Centerの開始 表⽰される警告のほとんどは、製品のすべてのモジュールを開始していないことから発⽣します。た とえば、次のような場合があります。 • [Commandline/secondary] (コマンドライン/セカンダリ)のアイコンは、セカンダリコマンドラ インを使⽤することにし、それを開始する場合にのみ緑⾊になります。これは次のデモユースケー スには該当しません。 • [ESB Service Locator and SAM] (ESB Service LocatorおよびSAM)のアイコンは、Talend ESBお よびそのインフラストラクチャサービスを開始した場合に緑⾊になるはずです。 • [ESB Identity and Access Management] (ESB IdentityおよびAccess Management)のアイコン は、Talend Identity Managementサービスをインストールして開始する場合に緑⾊になります。 これは次のデモユースケースには該当しません。 • [ESB Service Registry]のアイコンは、Talend ESBおよびそのインフラストラクチャサービスを開 始した場合に緑⾊になるはずです。 • [Software Update] (ソフトウェアアップデート)のアイコンは、専⽤のTalend Archiva Artifact Repositoryを開始する場合に緑⾊になります。これは次のデモユースケースには該当しません。 1. Talend Installerを使⽤した場合、Talend Administration Centerの[Configuration] (設定) ページの[Commandline/primary] (コマンドライン/プライマリ)セクションでは、cmdline/ start_cmdline.bat (Windows)またはcmdline/start_cmdline.sh (Linux)というコマンドライン を実⾏します。 ⼿動でCommandlineをインストールした場合、インストールした場所に進み、Windowsの 場合はcommandline.bat、Linuxの場合はそのバージョンに応じてcommandline-linux.shまた はcommandline-linux_x86_64.shを実⾏します。 2. Commandlineは、ESB Publisherを使⽤するために実⾏する必要があります。 Talend Administration Centerの[Configuration] (設定)ページの[ESB Publisher and Conductor] (ESB PublisherおよびConductor)セクションでは、Talend Nexus Artifact Repositoryを開始します。 Talend Administration CenterにはArtifact Repositoryが付属しています。そのため、Talend Installerを使って製品をインストールした場合、インストールディレクトリのtacフォルダーに アーティファクトリポジトリが格納されます。Artifact-Repository-Nexus-VA.B.C.D.Eサブ フォルダーの中にあります。⼿動で製品をインストールすると、Artifact RepositoryはTalend Administration Centerパッケージ(Talend-AdministrationCenter-rXXXXXX-VA.B.C)にも格納され ます。 Artifact-Repository-Nexus-VA.B.C.D.Eディレクトリから、次を実⾏します。 • ./bin/nexus console (Linux) • .\bin\nexus.bat console (Windows) 3. これでアーティファクトリポジトリはhttp://localhost:8081/nexus/index.htmlで実⾏されま す。localhostと8081を、Artifact RepositoryをインストールしたサーバーのIPアドレスとポート 番号に置き換えます。デフォルトのログインとパスワードのadmin/admin123を使ってログイン できます。 テクニカルログファイルおよびビジネスログファイルへのパスを⼊⼒して、Log4jパラメーター を設定します。 デモのユースケースについては、Talendログサーバーは必要ありません。そのた め、[Technical logstash appender] (テクニカルlogstashアペンダー)のパラメーターの警告に は注意する必要がありません。 22 Talend ESB⼊⾨ガイド Talend Administration Centerの開始 4. Svnへの接続情報を⼊⼒し、Svnのパラメーターを設定します。 これを⾏うには、Windowsの場合、最初にSubversionサーバーをインストールする必要があり ます。LinuxではSubversionが組み込まれます。次にSubversionサーバーで、Talendプロジェク トのために1つ、Stuidoを開始するとダウンロードされる外部ライブラリのために1つ、合計で2 つのリポジトリを作成します。 最後に、Talend Administration CenterのSvn設定エントリにこれらの2つのリポジトリへの接続 情報を⼊⼒します。 2.4.2.3. Talend Administration Centerの使い⽅ これでTalend Administration Centerが開始し設定されたため、管理機能を使⽤することができま す。 最初のユーザーとプロジェクトの設定 1. 2. 3. 4. 5. 6. 7. 8. 9. 左側のメニューで[Users] (ユーザー)リンクをクリックし、[Users] (ユーザー)ページで新規ユー ザーを作成します。 [Add] (追加)ボタンをクリックします。 右側の[Data] (データ)パネルに、Talend Administration CenterとSvnの⾃分の認証情報を⼊⼒ します。 アカウントには必ずDesignerとOperation managerの役割を割り当ててください。それによ り、Studioの使⽤およびTalend Administration CenterからESBアーティファクトの管理が可能 になります。 [Save] (保存)をクリックします。作成した新規アカウントがリストに表⽰されます。 左側のメニューで[Projects] (プロジェクト)リンクをクリックし、[Projects] (プロジェクト) ページで新規プロジェクトを作成します。 [Add] (追加)ボタンをクリックします。 右側の[Project] (プロジェクト)パネルの[Label] (ラベル)フィールドにプロジェクトの名前を⼊ ⼒します。 [Save] (保存)をクリックします。作成した新規プロジェクトがリストに表⽰されます。 左側のメニューで[Project authorizations] (プロジェクトアクセス権限)リンクをクリック し、[Project authorizations] (プロジェクトアクセス権限)ページで作成したユーザーアカウン トのプロジェクトにアクセス権を指定します。 10. 左側の[Project] (プロジェクト)パネルでプロジェクトをクリックして選択します。 11. 右側の[User Authorizations] (プロジェクトアクセス権限)パネルで、ユーザーの読み取り・書 き込みアイコンをクリックします。 これでこのプロジェクトに接続することができます。 Talend ESB⼊⾨ガイド 23 Talend Studioの開始 2.4.2.4. Talend RuntimeのTalend Administration Centerへの接続 これを⾏うには、Operation managerのユーザーとしてログインする必要がありま す。[email protected]アカウントにAdministratorとしてログインしている場合、⼀度ログアウト して、「Talend Administration Centerの使い方」で作成したユーザーを使って再度ログインします。 1. 左側のメニューで[Servers] (サーバー)ページをクリックし、サーバーリストを表⽰します。 2. [Add] (追加) > [Add server] (サーバーの追加)をクリックし、新規サーバーを作成します。右側 に[Execution server] (実⾏サーバー)フォームが表⽰されます。 3. Talend Installerを使って製品をインストールした場合、ライセンスに応じて、1つのサーバーと してジョブサーバーがすでにインストールされ、デフォルトでserv1と表⽰される場合がありま す。 次のようにフォームを⼊⼒し、[Save] (保存)をクリックします。 • Label (ラベル):たとえば、Talend Runtime Container • Host (ホスト):127.0.0.1 • [Talend Runtime] (Talendランタイム)チェックボックスをオンにします。 2.4.3. Talend Studioの開始 EnterpriseまたはPlatform製品のユーザーは、最初に「Talend Administration Centerの開始」の⼿順 を実⾏する必要があります。 2.4.3.1. Studioの起動 1. 2. 次のように、使⽤するオペレーティングシステムに対応する実⾏可能ファイルを起動します。 • Talend Open Studio for ESBの場合、TOS_ESB-win-*.exe (Windows)またはTOS_ESB-linuxgtk-* (Linux) • EnterpriseまたはPlatform Studioの場合、Talend-Studio-win-*.exe (Windows)また はTalend-Studio-linux-gtk-* (Linux) EnterpriseまたはPlatform製品の場合、Studioを⼿動でインストールすると、この時点でライセ ンスファイルをロードするように指⽰されます。ライセンスファイルが格納される場所を参照し てファイルを探し、[OK]をクリックしてロードします。 2.4.3.2. Studioへのログイン Talend Open Studio for ESBの場合 接続情報は必要ありません。この製品を初めて使⽤する場合、デモプロジェクトをインポートする か、新規プロジェクトを作成するように指⽰されます。 1. 24 新規プロジェクトを作成するには Talend ESB⼊⾨ガイド Talend Studioの開始 Talend Studioのログイン画⾯で、[Create a New Project] (新規プロジェクトの作成)フィール ドにプロジェクトの名前を⼊⼒し、[Create] (作成)をクリックします。 2. プロジェクト詳細の⼊⼒のために、[New Project] (新規プロジェクト)ウィザードが開きます。 プロジェクトの説明を⼊⼒します。 [Finish] (終了)をクリックします。ログイン画⾯が再度開きますが、この新規プロジェクトが表 ⽰されます。[Open] (開く)をクリックします。 3. 4. [Connect to TalendForge] (TalendForgeへ接続)ウィザードが表⽰されます。 TalendForge (チュートリアル、サポートなどの提供)にすでに登録している場合、この時点で接 続します。登録していない場合は、詳細を⼊⼒してアカウントを作成します。⼀時的にこの⼿順 をスキップすることもできます。 Studioの初期化の終了中に、Talend Studioの[Welcome] (ウェルカム)ページが表⽰されます。 [Welcome] (ウェルカム)ページの[x]ボタンをクリックして閉じ、Talend Studioのメイン画⾯を 開きます。 EnterpriseおよびPlatform Studioの場合 EnterpriseまたはPlatform Studioから、Talend Administration Centerで作成したプロジェクトに接 続します。 1. Talend Administration Centerで作成したアカウントに基づいて新規接続を作成します。 [Connection] (接続)リストの横にある[...]ボタンをクリックします。[Connection] (接続)ウィ ザードが表⽰されます。 Talend ESB⼊⾨ガイド 25 デモのソフトウェア要件 2. [Repository] (リポジトリ)リストで[Remote] (リモート)を選択します。 4. [User E-mail] (ユーザーのEメール)と[User Password] (ユーザーパスワード)にTalend Administration Centerで作成したユーザーアカウントの認証情報を⼊⼒します。 3. 5. 6. 7. 8. 接続に付ける名前を[Name] (名前)フィールドに⼊⼒します。 [Web-app Url] (WebアプリURL)にTalend Administration CenterのURLアドレスを⼊⼒しま す。 [Check url] (URLの確認)ボタンをクリックし、Talend Administration Centerへの接続が正常に ⾏われるかどうかを確認します。 接続が正常に⾏われた場合、[OK]をクリックして接続を作成します。 Talend Studioのログイン画⾯で、フィールドに接続情報が⼊⼒されます。 [Project] (プロジェクト)リストと[SVN Branch] (SVNブランチ)リストには、アクセスして作業 できるすべてのプロジェクトが表⽰されるはずです。 9. ここではプロジェクトを1つ作成しただけで、ブランチを作成していないため、選択項⽬はあり ません。 [Open] (開く)をクリックし、プロジェクトを開きます。 [Connect to TalendForge] (TalendForgeへ接続)ウィザードが表⽰されます。 10. Talendオンラインコミュニティに接続し活⽤したい場合、このウィザードから作成して接続し ます。この⼿順をスキップすることもできます。 11. Studioの開始を終了するには、[Additional Talend Packages] (Talendパッケージの追加) ウィザードで必須およびオプションの他社製ライブラリをインストールするよう指⽰されま す。Studioの機能を⼗分活⽤するために、この操作を⾏ってください。[Required third-party libraries] (必須の他社製ライブラリ)および[Optional third-party libraries] (オプションの他社 製ライブラリ)のチェックボックスがオンになっていることを確認し、[Finish] (終了)をクリック します。 12. [Download external modules] (外部モジュールをダウンロード)ウィザードが表⽰されたら、 ウィザードの下部にある[Accept all] (全てに同意)ボタンをクリックして、Studioで使⽤する外 部モジュールのすべてのライセンスに同意します。 13. [Migration tasks done] (移⾏タスクの終了)ウィザードが表⽰され、可能な移⾏タスクが⽰され るため、[OK]をクリックしてウィザードを閉じます。 14. Studioの初期化の終了中に、Talend Studioの[Welcome] (ウェルカム)ページが表⽰されます。 [Welcome] (ウェルカム)ページの[x]ボタンをクリックして閉じ、Talend Studioのメイン画⾯を 開きます。 2.5. デモのソフトウェア要件 「Talend ESB製品を使用するための前提条件」の要件以外に、デモを実⾏するにはもう1つソフト ウェアが必要です。 Apache Maven 3.0.3を使って、SayHello例(「サービスのエクスポートとTalend Runtimeコンテナで の実行」を参照)のサービスのエクスポート部分とRent-a-Carのデモのすべての部分を構築します。 26 Talend ESB⼊⾨ガイド デモのソフトウェア要件 そのため、http://maven.apache.org/からApache Mavenをダウンロードしてインストール、mvn実 ⾏可能ファイルをPath環境変数に含める必要があります。 mvnを初めて実⾏すると、必要なアーティファクト(および最新の後継バージョン)をダウンロードす るために、インターネットへのHTTPアクセスが必要になります。ローカルのMavenリポジトリはデ フォルトの場所に作成します。つまり、標準のMaven設定を変更することはできません。 Talend ESB⼊⾨ガイド 27 Talend ESB⼊⾨ガイド 3.基本的なデプロイメントとRuntimeのユース ケース この章では、さまざまなデモのユースケースを使ってTalend ESB製品を開始および実⾏する⽅法を 説明します。 • 「Studioを使ったデータサービスとルートの構築とデプロイ」では、Talend Studioでルートおよ びサービスを作成し、それらをTalend Runtimeにデプロイする⽅法について学習します。 • 「Studioを使ったRESTサービスの構築とデプロイ」では、Talend StudioでRESTサービスを作成 し、それをTalend Runtimeにデプロイして、RESTコンシューマージョブで呼び出す⽅法について 学習します。 • 「Javaを使用したデータサービスおよびルートのビルドおよびデプロイ」では、Apache CXFサー ビスをコンパイルして、それらをTalend Runtimeにデプロイする⽅法について学習します。 • 「EclipseへのRent-a-Car Javaデモのインポート」では、サービスをプロジェクトとしてEclipseに インポートする⽅法について学習します。 Talend Studioでサービス、ルートおよびデータサービスジョブを作成し、それらをTalend Runtime にデプロイして、soapUIプロジェクトでサービスをテストし、Apache Camelテストフレームワーク を使⽤してルートの単体テストを⾏うユースケースの詳細は、『Talend Studioユーザーガイド』の ESBの付録「理論の実践」を参照してください。 サービス、ルート、およびデータサービスジョブをパブリッシュおよび実⾏する⽅法、および Talend Administration Centerでサービスエンドポイントおよびサービスアクティビティを監視する ⽅法の詳細は、『Talend Administration Centerユーザーガイド』のESBの付録「理論の実践」を参照 してください。 Talend ESB⼊⾨ガイド Studioを使ったデータサービスとルートの構築とデプロイ 3.1. Studioを使ったデータサービスとルートの 構築とデプロイ このセクションでは、Talend Studioを開始して実⾏する⽅法について説明します。また、あらかじ め定義されたテンプレートを使って、簡単なSayHelloのサンプルを構築する⽅法を⽰します。 JavaベースのESB開発にのみ興味がある場合は、このセクションをスキップして、「Javaを使用したデータ サービスおよびルートのビルドおよびデプロイ」に進んでもかまいません。 SayHelloのサンプルに関連する⼿順は次のとおりです。 1. Talend Studioをインストールします(「ソフトウェアの開始」を参照)。 3. 簡単なSayHelloルートを構築します。 2. 簡単なSayHelloデータサービスを構築します。コンシューマーがサービスにいくつかの名前を送 信すると、それぞれに"Hello!"と出⼒されるサービスです。 このセクションはデモを作成し実⾏するために⼗分な情報を⽰します。Talend Studioユーザーインターフェ イスの包括的な説明については、『Talend Studio User Guide』を参照してください。 このデモで説明する具体的なコンポーネントの詳細は、データサービスコンポーネントの場合は、『Talend Components Reference Guide』を、メディエーションコンポーネントの場合は、『Talend ESB Mediationコ ンポーネント Reference Guide』を参照してください。 3.1.1. 簡単なSayHelloデータサービスの構築 このサービスを作成するには多数のパーツが関連します。そのサービスは既存の機能をドラッグアン ドドロップして実装できます。 1. SayHelloプロバイダーを作成します。 3. サービスをTalend Runtimeコンテナにエキスポートし、コンシューマーを再度実⾏します。 2. SayHelloコンシューマーを作成します。 3.1.1.1. SayHelloプロバイダーの作成 このセクションでは、SayHelloプロバイダーの作成⽅法を⼿順を追って説明します。 サービスの作成 このセクションでは、Webサービスへの外部コントラクトを定義するWSDLを作成します。この WSDLはクライアントにより使⽤されます(詳細は、「Webサービスのサポート」を参照してくださ い)。 1. サービスを作成するには、左側のメニューで[Services] (サービス)を右クリックし、[Create Service] (サービスの作成)を選択します。 30 Talend ESB⼊⾨ガイド 簡単なSayHelloデータサービスの構築 2. 名前にSayHelloService、⽬的にDemoと⼊⼒し、サービスの説明を⼊⼒したら、[Next] (次へ)を クリックします。 3. 次の⼿順の[Assign WSDL] (WSDLの割り当て)で、[Create new WSDL] (WSDLの新規作成)を選 択し、[Finish] (終了)をクリックして、メインの画⾯に戻ります。 4. これでメインの画⾯に[SayHelloService_0.1.wsdl]タブが表⽰されます。このWSDLに は、サービスの新規ポート(SayHelloServicePort)、デフォルトの要求操作と応答操作 Talend ESB⼊⾨ガイド 31 簡単なSayHelloデータサービスの構築 (SayHelloServiceOperationRequestとSayHelloServiceOperationResponse)が含まれま す。グレーの⽮印を操作の右側に置くと、パラメーターが表⽰されます。 新規操作を追加したり、既存の操作を編集して、操作を変更することができます。ただし、この デモの場合は、デフォルトの操作だけで⼗分です。 サービスの設定と公開 グリッドのコンポーネントを変更するには • 四⾓形の境界線をクリックして移動し、グリッドを囲みます。 • 四⾓形を右クリックして適切な操作を選択し、変更を元に戻したり、変更を編集します。 1. 32 • コンポーネントに特定の操作を⾏うために、四⾓形の中央をクリックします(たとえば、コンポーネントの 詳細の確認など)。 サービスの詳細とWSDLの要求・応答データ型をメタデータに保存します。それにより他のコ ンポーネントからアクセスできるようになります。そのためには、[Services] (サービス)の下 の[SayHelloService 0.1]を右クリックし、[Import WSDL Schemas] (WSDLスキーマのイン ポート)を選択します。 Talend ESB⼊⾨ガイド 簡単なSayHelloデータサービスの構築 2. 3. このオプションにより、サービスからWSDLメタデータが[Repository] (リポジトリ) の[Metadata] (メタデータ)の下にある[File xml] (XMLファイル)にインポートされます。それに より、サービスおよびその他のコンポーネントで操作の詳細を共有できるようになります。 操作を実装します。[SayHelloService 0.1]に表⽰されるモジュールを展開 し、[SayHelloServiceOperation 0.1]を右クリックして、[Assign Job] (ジョブの割り当て)を 選択します。ウィザードで、[Create a new Job and Assign it to this Service] (新規ジョブを サービスに割り当て)を選択し、[Next] (次へ)をクリックします。 デフォルトの名前とSayHelloServicePortType_SayHelloServiceOperationというプレ フィックスをそのまま使⽤し、[Finish] (終了)をクリックします。新規ジョブが作成され、この ジョブによりメイングリッドのコンポーネントを使った操作の実装が可能になります。 SayHelloServicePortType_SayHelloServiceOperationジョブのデフォルトのテンプレート は、tESBProviderRequestコンポーネントとtESBProviderResponseコンポーネントで構成さ れています。tESBProviderResponse_1アイコンをクリックし、さらに右にドラッグすること で、グリッド上の2つのESBコンポーネントを離します。 Talend ESB⼊⾨ガイド 33 簡単なSayHelloデータサービスの構築 4. 5. 6. 次にビジネスロジックを付加します。tXMLMapはデータを変換して、1つまたは複数のソース から1つまたは複数のデスティネーションにルーティングするためのコンポーネントです。右側 の[Palette] (パレット)でtXMLMapコンポーネントを探します。異なるセクションに2つのインス タンスが⾒つかる場合がありますが、2つは同じものなので、いずれかを選択します。そのコン ポーネントをドラッグして、2つのESBコンポーネントの間にドロップします。 tESBProviderRequest_1の中央を右クリックし、[Row] (⾏) > [Main] (メイン)の順に選択し、 ラインの終端をtXMLMap_1にドロップします。 次に、tXMLMap_1を右クリックし、[Row] (⾏) > [Main] (メイン)の順に選択し、ラインの終 端をtESBProviderResponse_1にドロップします。そのコンポーネントにResponseという名 前を付け、[OK]をクリックします。スキーマをインポートするかどうかの確認で、デフォルト の[Yes] (はい)をクリックします。 サービス操作の設定 1. 2. 3. 34 ここではシナリオに⼀致するようにサービス操作をカスタマイズします。tXMLMap_1をダブル クリックし、エディターを開きます。tXMLMapを使って、要求から応答に情報をルーティング し、WDSLからの既存のスキーマ情報を使⽤します。 左側のmain :row1の下にある[payload]を右クリックし、[Import from Repository] (リポ ジトリからインポート)をクリックします。[Metadata] (メタデータ)ウィザードが表⽰された ら、[File XML] (XMLファイル)から[SayHelloServiceOperationRequest0.1]を探して選択 し、[OK]をクリックします。 同様に、右側でもデフォルトの応答タイプをインポートします。[payload]を右クリック し、[Import from repository] (リポジトリからインポート) > [File XML] (XMLファイル)の順に クリックして、[SayHelloServiceOperationResponse 0.1]を選択します。 Talend ESB⼊⾨ガイド 簡単なSayHelloデータサービスの構築 [OK]をクリックします。 4. 5. 6. これで既存のスキーマから要求操作と応答操作が実装されます。 次に、要求スキーマを応答スキーマにリンクします。左側のinをクリックしてドラッグし、右側 の応答の下にあるout式にドロップします。 次に、送信されるデフォルトの式を変更します。右側の[Expression] (式)の下にあ るHelloServiceRequestという値をクリックし、その横にある[...]ボタンをクリックします。 フィールドをクリックし、式の前に"Hello " +を、後に+"!"を追加して、式を編集します(これ により結果が名前になります)。 [OK]をクリックします。更新された式を右側で確認できます。[OK]をクリックし、メインの ジョブデザインウィンドウに戻ります。 最後に、ジョブが実⾏されるのをさらに確認するには、ログコンポーネントを追加します。これ を⾏うには、右側の[Palette] (パレット)でtLogを探し、[Palette] (パレット)からtLogRowをド ラッグして、tXMLMap_1とtESBProviderResponse_1の間のResponse (応答)リンクにドロッ プします。 Talend ESB⼊⾨ガイド 35 簡単なSayHelloデータサービスの構築 これでSayHelloServiceOperationの実装が完了しました。 Talend Studioでのサービスの実⾏ ここでは、これまでの部分が機能するかどうかを確認するために簡単なチェックを⾏います。ウィン ドウ下部の中央セクションにある[Run (Job SayHello...)] (実⾏(ジョブSayHello...))タブをクリック し、[Run] (実⾏)ボタンをクリックします。 これによりジョブが構築されます。ログ出⼒ではWebサービスが8090のポートに割り当てられ、他 のサービスで使⽤できるようにパブリッシュされたことが⽰されます。 後で使⽤するために、"http://localhost:8090/services/SayHelloService"を選択してコピーしま す。 Talend Studioでは、ジョブデザインで個々に実装するサービス操作をテストし、実装が正しく⾏われたかど うかを確認できます。複数の操作が設定されたサービス全体をテストする場合、サービスをエクスポートし、 ランタイムにデプロイする必要があります。Talend Studioでは複数の操作が設定されたサービスをテストす ることはできません。 3.1.1.2. SayHelloコンシューマー このセクションでは、SayHelloコンシューマーを作成し、それを使ってサービスを呼び出す⽅法を⽰ します。 36 Talend ESB⼊⾨ガイド 簡単なSayHelloデータサービスの構築 SayHelloコンシューマーの作成 1. 2. 3. 4. サービスをテストするために、簡単なコンシューマージョブを作成できます。[Job Designs] (ジョブデザイン)を右クリックし、[Create Job] (ジョブの作成)を選択します。[Name] (名前) フィールドにSayHelloConsumerと⼊⼒し、⽬的をDemoとします。[Finish] (終了)をクリックし ます。 [Job SayHelloConsumer 0.1] (ジョブSayHelloConsumer 0.1)タブのパレット でtFixedFlowInputを探してドラッグし、グリッドにドロップします。同様に、次の図のよう に、tXMLMap、tESBConsumer、tLogRow (2回)のコンポーネントをドラッグしてドロップし ます。 tFixedFlowInputコンポーネントでは、コンテキスト変数を使って、必要な数のラインとカラ ムを作成できます。tESBConsumerコンポーネントでは、開始したWebサービスから指定した メソッドが呼び出され、パラメーターに基づいてクラスが返されます。 コンポーネントを設定します。tFixedFlowInput_1の中央をダブルクリックし、その下にあ る[Component] (コンポーネント)タブで[Use Inline Table] (インラインテーブルの使⽤)を選 択します。[Edit schema] (スキーマの編集)の横にある[...]ボタンをクリックし、スキーマ編集 ウィンドウを開きます。 このウィンドウで、[+]をクリックして⽂字列引数を追加し、newColumnの名前をNameに変 更し、[OK]をクリックしてウィンドウを閉じます。 tFixedFlowInput_1の[Component] (コンポーネント)タブに戻り、[+]ボタンを使ってサンプル ⾏を追加し、"newLine"のテキストを"Peter"、"Alice"、"Bob"に置き換えます。 Talend ESB⼊⾨ガイド 37 簡単なSayHelloデータサービスの構築 5. 6. 7. 8. 38 これはコンシューマーがSayHelloServiceに送信するデータのサンプルです。 以前⾏ったように、Job SayHelloConsumer 0.1ジョブでコンポーネントをリンクしま す。tFixedFlowInput_1を右クリックし、[Row] (⾏) > [Main]を使って、tXMLMap_1にドラッ グします。tXMLMap_1を右クリックし、[Row] (⾏)を選択して、この新規出⼒にRequestとい う名前を付けます(デフォルトの[Yes] (はい)をクリックし、ターゲットコンポーネントのスキー マを取得します)。ラインの終端をtESBConsumer_1にドロップします。 tXMLMapをダブルクリックし、以前⾏ったように設定します。右側で[payload] (ペイ ロード) > [Import From Repository] (リポジトリからインポート)の順にクリックしま す。[Metadata] (メタデータ)ウィザードが表⽰されたら、[File XML] (XMLファイル)か ら[SayHelloServiceOperationRequest 0.1]を探して選択します。これによりサービス操作を 呼び出すことができます。[OK]をクリックします。 左側で[Name] (名前)をクリックし、右側のinパラメーターにドラッグし、[OK]をクリックして メインウィンドウに戻ります。 最後に応答出⼒を設定します。tESBConsumer_1の中央を右クリックし、[Row] (⾏) > [Response] (応答)の順に選択し、ドラッグしてラインの終端をtLogRow_1にドロップしま す。これによりどの応答もここに送信されます。同様に、tESBConsumer_1を右クリック し、[Row] (⾏) > [Fault] (エラー)を選択し、ラインの終端をtLogRow_2にドロップします。こ れによりどのエラーもここに送信されます。 Talend ESB⼊⾨ガイド 簡単なSayHelloデータサービスの構築 これでコンシューマージョブの設定が完了しました。 これまでの操作を要約すると、tFixedFlowInputにより"Peter"、"Alice"、"Bob"が⽣成され、 これらはtXMLMapによりtESBConsumerに渡されます。このコンポーネントによりターゲット プロバイダーで関連する3つの呼び出しが⾏われます。 コンシューマーの実⾏ 1. コンシューマーをサービスの正しいWSDLエンドポイントにポイントします。tESBConsumerコ ンポーネントの[Component] (コンポーネント)タブで、正しいサービスを参照するように エンドポイントを編集します。[Service configuration] (サービス設定)フィールドの横にあ る[...]ボタンをクリックし、WSDL設定ウィンドウを開きます。正しいアドレスに置き換えるた め、"http://localhost:8090/services/SayHelloService"を貼り付けて、完全なアドレスであ る"http://localhost:8090/services/SayHelloService?WSDL"に変更し、右側の更新ボタンをク リックして情報をロードします。[Finish] (終了)をクリックします。 2. コンシューマージョブを実⾏します。[Run (Job SayHelloConsumer)] (実⾏(ジョブ SayHelloConsumer))タブをクリックし、[Run] (実⾏)をクリックします。ジョブが構築され実⾏ されます。3つの名前を伴うHelloメッセージが出⼒に⽰されます。 Talend ESB⼊⾨ガイド 39 簡単なSayHelloデータサービスの構築 これで、Talend StudioでのSayHelloコンシューマーとプロバイダーの作成と実⾏が正常に⾏われた ことが確認できました。 3.1.1.3. サービスのエクスポートとTalend Runtimeコンテナでの実 ⾏ このセクションでは、SayHelloサービスをエクスポートし、それをOSGiコンテナであるTalend Runtimeコンテナで実⾏する⽅法を⽰します。 1. 2. 40 サービスをエクスポートする前に、Talend Runtimeコンテナを開始します。「Talend Runtime の実行」での説明のように、すべてのインフラストラクチャサービスが開始していることを確認 します。 エクスポートの前に、⼀部の設定が必要とされる場合があります。[Services] (サービス)の下 の[SayHelloService 0.1]を右クリックし、[ESB Runtime Options] (ESB Runtimeオプショ ン)を選択します。オプションでTalend ESBに特定の設定を有効にすることができますが、こ のデモには必要ありません。ここでは、[Use Service Activity Monitoring] (Service Activity Monitoringの使⽤)と[Use Service Locator] (Service Locatorの使⽤)を選択します。 Talend ESB⼊⾨ガイド 簡単なSayHelloデータサービスの構築 3. サービスをエクスポートします。[Services] (サービス)の下の[SayHelloService 0.1]を右ク リックし、[Export Service] (サービスをエクスポート)を選択します。[Save As] (名前を付けて 保存)ウィンドウで、Talend Runtimeコンテナ内のcontainer/deployフォルダーを指定します。 これによりサービスが直接開始します。[Finish] (終了)をクリックします。 サービスはSayHelloService-0.1.karファイルとして保存されます。 4. 5. これによりサービスが構築され、deployディレクトリにエクスポートされます。 この環境は動的ロード環境であるため、サービスの実⾏は⾃動的に開始されます。Talend Runtimeコンテナウィンドウでこれを確認するには、コンソールのプロンプトの後にlistコマン ドを⼊⼒します。 コンシューマーを開始して、サービスが機能しているかどうかを確認します。 サービスが実⾏されるポートが変更され、Talend Runtimeコンテナポートが使⽤されます。こ のポートはデフォルトで8040なので、ポートを更新する必要があります。[Job Designs] (ジョ Talend ESB⼊⾨ガイド 41 SayHelloRouteのサンプル 6. 7. 8. 9. ブデザイン)の下の[SayHelloConsumer 0.1]ジョブを開きます。tESBConsumer_1の中央をク リックします。[Component] (コンポーネント)タブに進みます。 [Service configuration] (サービス設定)フィールドの横にある[...]ボタンをクリックし、WSDL 設定ウィンドウを開きます。 Talend Runtimeコンテナポートを使⽤するために、8090から8040にポート番号を変更し、更新 ボタンをクリックします。 以前⾏ったように、[Run] (実⾏)タブでコンシューマージョブを実⾏します。以前のような出⼒ が⽰されます。 Talend Runtimeコンテナの出⼒を⾒ると、コンテナで実⾏されるサーバーにより⽣成された Helloメッセージが確認できます。 以上の操作が、簡単なSayHelloコンシューマーとサービスを作成し、Talend Studioで実⾏し て、Talend Runtimeコンテナでサービスを実⾏する⽅法です。 3.1.2. SayHelloRouteのサンプル このセクションでは、既存のSayHelloコンシューマーとプロバイダー拡張する⽅法を⽰します。プロ バイダーの2つのインスタンスを設定し、[Mediation] (メディエーション)パースペクティブを使っ て、名前でHelloメッセージをフィルタリングするルートを構築します。それにより、"Alice"という 名前を含むメッセージは1番⽬のプロバイダーに送信され、その他の名前を含むメッセージは2番⽬の プロバイダーに送信されます。 最後に、最初のサンプルからコンシューマーを実⾏し、コンシューマーからメッセージが送信されて いること、および正しいサービスにルーティングされていることを⽰します。 3.1.2.1. ルートの作成 1. 42 右上の[Mediation] (メディエーション)をクリックし、[Integration] (統合)パースペクティブか ら[Mediation] (メディエーション)パースペクティブに切り替えます。 Talend ESB⼊⾨ガイド SayHelloRouteのサンプル 2. 3. [Routes] (ルート) > [Create Route] (ルートの作成)を右クリックし、新規ルートを作成しま す。SayHelloRouteという名前を付け、⽬的をDemoにし、[Finish] (終了)をクリックします。 [Route SayHelloRoute 0.1] (ルートSayHelloRoute 0.1)タブが開きます。 パレットが[Integration] (統合)パースペクティブのものから[Mediation](メディエーション) パースペクティブのものに変わったことがわかります。パレットからコンポーネントをドラッグ してルートグリッドにドロップすることで、⼀般的な内容ベースのルートを作成します。 要求メッセージはコンシューマーから送信されます。そのため、[Messaging] (メッセージン グ)から[cCXF]コンポーネントをドラッグしてドロップします。このコンポーネントによりサー バーのエンドポイントに送信されるメッセージがインターセプトされます。 内容ベースのルートを作成するため、[Routing] (ルーティング)から[cMessageRouter]コン ポーネントをドラッグしてドロップします。このコンポーネントにより、条件に基づいてメッ セージが再ルーティングされます。 2つのターゲットサービスのために、[Messaging] (メッセージング)から[cCXF]コンポーネント をさらに2つ追加します。 1つのルートで複数のcCXFコンポーネントに同じラベルを付けることはサポートされていません。 それぞれのコンポーネントには、ルート内でのその役割がわかりやすいように、⼀意の名前のラベルを 付けることが推奨されています。 4. ⼀部のコンポーネントのコードを⽣成する際に、ラベルが重複すると問題が⽣じる場合があります。 これを実装するには、いくつかのパラメーターを追加します。cCXF_1をクリックし、その下 の[Component] (コンポーネント)タブをクリックします。 Talend ESB⼊⾨ガイド 43 SayHelloRouteのサンプル • Talend Open Studio for ESBを初めて使⽤する場合、cCXFのようなコンポーネントが使⽤で きるように、Studioに外部ライブラリをインストールするように指⽰されます。指⽰に従っ て、ライブラリをインストールしてください。 • [Address] (アドレス)フィールドに、以前のサービスアドレスの"http://localhost:8040/ services/SayHelloService"を貼り付け、ポートを8042に変更します。新規サービスはこ のポートをリッスンします。新規サービスアドレスは"http://localhost:8042/services/ SayHelloService"のようになるはずです。 • [WSDL File] (WSDLファイル)フィールドで、元のサービスからのWSDLファイルのURLを指定 します。http:// addressを使って、リアルタイムのバックグラウンドサービス情報を取得しま す。3つのすべてのサービスに対して、"http://localhost:8040/services/SayHelloService? WSDL"となります。 • この例ではメッセージの本⽂が重要なため、[Dataformat] (データフォーマット)リスト で、[PAYLOAD]を選択します。 5. 6. 7. 44 現在の情報はどの時点でも保存できます。これを⾏うには、[File] (ファイル) > [Save] (保存)を選択する か、左上の[Save] (保存)アイコンをクリックします。 他のコンポーネントに対しても、これまでの⼿順を繰り返します。ただし、cCXF_2の 場合は、[Address] (アドレス)フィールドのポート番号を8040に設定し、cCXF_3の場合 は、[Address] (アドレス)フィールドのポート番号を8041に設定します。 これまでの操作を要約すると、ポート8042 (cCXF_1)で要求を作成し、メッセージの内容に応じ て、それをポート8040 (cCXF_2)または8041 (cCXF_3)のいずれかに送信します。 ここでは、コンポーネントを接続します。cCXF_1の中央を右クリックし、[Row] (⾏) > [Route] (ルート)の順に選択して、ラインの終端をcMessageRouter_1にドロップすること で、cCXF_1とcMessageRouter_1を接続します。 次に、1つのサービスにWhenトリガーを作成します。これを⾏うには、cMessageRouter_1を 右クリックし、[Trigger] (トリガー) > [When] (時期)を選択し、ラインの終端をcCXF_2にド ロップします。 Talend ESB⼊⾨ガイド SayHelloRouteのサンプル 8. 同様に、cMessageRouter_1からcCXF_3にOtherwiseトリガーを追加します。これを⾏うに は、cMessageRouter_1を右クリックし、[Trigger] (トリガー) > [Otherwise] (その他)を選択 し、ラインの終端をcCXF_3にドロップします。この結果は次のようになります。 9. [When] (時期)の条件を設定します。when1のラインを右クリックすると、⼩さいダイアログ ボックスが表⽰されます。 [Type] (タイプ)リストで、[simple] (シンプル)を選択すると、[Condition] (条件) が"${bodyAs(String)} contains 'Alice'"になります。 これにより、本⽂に"Alice"を含むメッセージは、ポート8040をリッスンするTalend Runtimeコ ンテナのサービスにルーティングされます。 3.1.2.2. サービスの実⾏ 1. 2. 3. 最初に、2つ⽬の別のコンテナを作成済みで(詳細は「デモの代替コンテナの作成」を参照)、す べてのインフラストラクチャサービスを実⾏している必要があります(tesb:start-all)。また、 デフォルトのコンテナが実⾏されていることを確認します。必要に応じて開始し直します。さら に別のコンテナも実⾏します。 作成したサービスのkarファイル(Talend ESBインストールディレクトリ/container/deploy/ SayHelloService-0.1.kar)をコピーし、別のコンテナのdeployフォルダーに貼り付けます。 すべてが正しく設定されていることをテストするには、コンシューマーを追加する前に、Studio で作成したルートを実⾏します。[Run (Job SayHelloRoute)] (実⾏(ジョブSayHelloRoute))タ ブの[Run] (実⾏)ボタンをクリックします。 Talend ESB⼊⾨ガイド 45 SayHelloRouteのサンプル これにより、CXF設定情報が構⽂的に正しいかどうかがチェックされます。また、グリッドの"0 rows" (0⾏)の出⼒が⾏われ、メッセージのフローが⽰されます。そのため、コンポーネントが接 続されていることが確認できます。ジョブの実⾏をそのままにして続けます。 構⽂にエラーがある場合は、各コンポーネントを順番にクリックし、[Component] (コンポーネント)タ ブで確認します。特にすべての⼆重引⽤符が挿⼊されていること、およびポート番号が正しいことを確 認します。 4. コンシューマーに切り替え、デモを実際に実⾏します。右上の[Integration] (統合)パース ペクティブをクリックします。[SayHelloConsumer 0.1]を開きます。ポート番号を更新す るために、tESBConsumerの[Component] (コンポーネント)タブをクリックし、[Service Configuration] (サービス設定)フィールドの横にある[...]ボタンをクリックします。ポートを番 号を8040に変更し、更新ボタンをクリックして、WSDL情報を取得します。エンドポイントを ルートのエンドポイントhttp://localhost:8042/services/SayHelloServiceになるように変更 します。 5. [Run (Job SayhelloConsumer)] (実⾏(ジョブSayhelloConsumer))タブをクリックし、[Run] (実⾏)をクリックしてコンシューマージョブを実⾏し、要求を送信します。以前のように、コン シューマーの出⼒に"Hello Peter"、"Hello Alice"、"Hello Bob"と⽰されます。メインのグリッ ドには"3 rows" (3⾏)と表⽰されます。これは、3件のメッセージが送信され、どのメッセージに もエラーがなかったことを⽰します。 46 Talend ESB⼊⾨ガイド SayHelloRouteのサンプル 6. [Route SayHelloRoute 0.1] (ルートSayHelloRoute 0.1)タブを⾒てください。1件のメッセージ がcCXF_2プロバイダーに送信され、2件のメッセージがcCXF_3プロバイダーに送信されていま す。 7. 2つのコンテナの出⼒を⾒ると、メッセージが正しくルーティングされていることがわかりま す。これが1つのコンテナの出⼒です。 これがもう1つのコンテナの出⼒です。 これでSayHelloRouteデモが完了しました。 Talend ESB⼊⾨ガイド 47 Studioを使ったRESTサービスの構築とデプロイ 3.1.2.3. ルートのエクスポート ルートをESB Runtime karファイルとしてエクスポートできます。[Mediation] (メディエーショ ン)パースペクティブの[Routes] (ルート)の下にある[SayHelloRoute 0.1]を右クリックし、[Build Route] (ルートのビルド)を選択します。 karファイルのパスを指定します。 この画⾯はルートがTalend Runtimeの/container/deployディレクトリにエクスポートされることを ⽰しています。そのため、ルートは直接デプロイされますが、別の場所に保存して、deployディレク トリに後でコピーすることもできます。 3.2. Studioを使ったRESTサービスの構築とデ プロイ このセクションでは、単純なRESTサービス例の構築を通じて、Talend Studioの開始し実⾏する⽅法 について説明します。 JavaベースのESB開発にのみ興味がある場合は、このセクションをスキップして「Javaを使用したデータ サービスおよびルートのビルドおよびデプロイ」に進んでもかまいません。 RESTデモサンプルに関連する⼿順は次のとおりです。 48 Talend ESB⼊⾨ガイド 単純なRESTサービスの構築 1. 2. 3. 4. 「ソフトウェアのダウンロードおよびインストール」に従ってソフトウェアをインストール し、「ソフトウェアの開始」に従って実⾏します。 少なくともTalend StudioとTalend Runtimeを開始しておく必要があります。 従業員情報が含まれている単純なデータベーステーブルのデータを調べられる、単純なREST サービスを構築します。 ただし、デモという性格から、次のユースケースではデータベース接続コンポーネントの代わり に[tFixedFlowInput]コンポーネントを使⽤しますが、⼗分慣れてきたらデータベースの使⽤に 導⼊することもできます。 RESTサービスをTalend Runtimeコンテナにデプロイします。 サービスに要求を送信する単純なRESTコンシューマーを構築します。 このセクションでは、デモの作成と実⾏に⼗分な情報が提供されます。Talend Studioユーザーインターフェ イスの包括的な説明については、『Talend Studio ユーザーガイド』を参照してください。 このデモで触れる具体的なコンポーネントについての詳細は、『Talend ComponentsReference Guide』を参 照してください。 3.2.1. 単純なRESTサービスの構築 このセクションでは、RESTサービスプロバイダーの作成⽅法を⼿順を追って説明します。[Service] (サービス)ウィザードで構築されるSOAPサービスとは異なり、RESTサービスはTalend Studio の[Job Design] (ジョブデザイン)ウィザードで構築されます。 このセクションでは、次のアイテムを作成します。 1. 従業員のデータにクエリを実⾏する単純なRESTサービスプロバイダー「サービスプロバイダーの 作成」を参照してください。 2. IDで特定の従業員にのみクエリを実⾏する2番⽬のRESTマッピング「サービスへの新しいマッピン グの追加」を参照してください。 3.2.1.1. サービスプロバイダーの作成 このセクションでは、従業員のリストとそのデータにアクセスできるRESTサービスを作成します。 詳細は、「Webサービスのサポート」を参照してください。 ジョブの作成 1. サービスを作成するには、左のメニューで[Job Designs] (ジョブデザイン)を右クリック し、[Create Job] (ジョブの作成)を選択します。 Talend ESB⼊⾨ガイド 49 単純なRESTサービスの構築 2. 3. 名前(EmployeeService)、⽬的(demo)、サービスの説明を⼊⼒し、[Finish] (終了)をクリックし てメインの画⾯に戻ります。 メインの画⾯に[Job EmployeeService 0.1]タブが表⽰されます。 この新しいジョブデザインではRESTサービスを構築するので、パレットで[tRESTRequest]コ ンポーネントと[tRESTResponse]コンポーネントを検索し、グリッドにドラッグしてドロップ します。 同様に、次の図に⽰されている[tFlowToIterate]、[tFixedFlowInput]、[tXMLMap]の各コン ポーネントをドラッグしてドロップします。 50 Talend ESB⼊⾨ガイド 単純なRESTサービスの構築 REST要求の設定 1. 2. [tFixedFlowInput]コンポーネントをダブルクリックし、該当する[Component] (コンポーネン ト)ビューをウィンドウの下に表⽰させます。[Edit schema] (スキーマの編集)オプションの横に ある[...]ボタンをクリックします。 表⽰される[Schema of tFixedFlowInput] (tFixedFlowInputのスキーマ)ウィザードで、下部に ある[+]ボタンを3回クリックして3つのカラムを追加し、上の図のように設定します。 [Mode] (モード)エリアで[Use Inline Content (delimited file)] (インラインコンテンツの使⽤ (区切り記号付きファイル))オプションを選択し、次の情報を[Content] (コンテンツ)フィールド に貼り付けます。 1;Lyndon;Monroe 2;John;Johnson 3;Calvin;McKinley 4;Andrew;Truman 5;Richard;Taft 6;Andrew;Adams 7;Herbert;Buchanan 8;Bill;Carter 9;Ulysses;Jackson 10;Warren;McKinley 3. [tRESTRequest]をダブルクリックし、該当する[Component] (コンポーネント)ビューを表⽰ させてプロパティを設定します。 Talend ESB⼊⾨ガイド 51 単純なRESTサービスの構築 4. 5. 6. 7. 8. 9. [REST Endpoint] (RESTエンドポイント)フィールドには、サービスの提供元となるエンドポ イントのURIを⼊⼒できます。URIは通常、ホスト名、IPアドレス、ポート番号で構成され、そ れぞれコロンで分けられます。ここに相対パス"/services"を挿⼊します。以上の操作で、URI はhttp://<IP_address>:<port_number>/servicesとなります。 [REST API Mapping] (REST APIマッピング)の下部にある[+]ボタンを1回クリックし、新しい マッピングを追加します。 [HTTP Verb]フィールドのGET操作はそのままにしておきます。 [URI Pattern] (URIパターン)フィールドで、XMLツリーのルートに"/employees"というXPathを ⼊⼒します。 [Output Flow] (出⼒フロー)フィールドをクリックし、[...]ボタンを表⽰させてクリックしま す。 [Give the name for the schema] (スキーマ名の指定)ウィザードが表⽰されます。 [Schema Name] (スキーマ名)フィールドで、スキーマにgetEmployeesという名前を付け て[OK]をクリックします。 新しいウィザードが表⽰されます。ここで、これから作成するスキーマのカラムを定義できま す。 10. 今のところこのREST APIマッピングではスキーマを定義しないので、そのまま[OK]をクリック します。 新しい[getEmployees]マッピングが[REST API Mapping] (REST APIマッピング)テーブルに表⽰ されます。 コンポーネントどうしの接続 1. 2. 3. 4. [tRESTRequest]を右クリックし、メニューで[Row] (⾏) > [getEmployees]を選択し て[tFlowToIterate]コンポーネントをクリックします。 [tFlowToIterate]を右クリックし、メニューで[Row] (⾏) > [Iterate] (反復)を選択し て[tFixedFlowInput]コンポーネントをクリックします。 [tFixedFlowInput]をクリックし、[tXMLMap]にドラッグします。 [tXMLMap]を右クリックして押さえたまま、[tRESTResponse]にドラッグします。表⽰され る[tXMLMap Output] (tXMLMapの出⼒)のポップアップメッセージで出⼒リンクの名前を求め られたら、allと付けます。 tXMLMapの設定 1. 52 ダブルクリックしてエディターを開きます。 Talend ESB⼊⾨ガイド 単純なRESTサービスの構築 2. 3. 4. エディターの左にある⼊⼒エリアに、データベーステーブルからの⼊⼒フローが表⽰されます。 そしてエディターの右にある出⼒エリアで、[tRESTResponse]コンポーネントに送信される出 ⼒XMLフローを設定します。 [all] (すべて)出⼒テーブルで[root] (ルート)モジュールを右クリックし、メニューで[Rename] (名前の変更)を選択して名前をemployeesに変更します。 次に、[employees]ルートモジュールのXMLツリーを定義します。 [employees]を右クリックし、メニューで[Create Sub-Element] (サブモジュールの作成)を選 択して、各従業員の情報を持つemployeeというサブモジュールを作成します。 Talend ESB⼊⾨ガイド 53 単純なRESTサービスの構築 5. 6. 7. 8. 9. この新しい[employee]サブモジュールを右クリックし、メニューで[As loop element] (ループ モジュールとして設定)を選択します。 これで、検出される新従業員ごとにループが実⾏され、彼らの個⼈情報を取得できます。 テーブルの上部にある[Wrench] (レンチ)ボタンをクリックし、出⼒オプションを表⽰して[All in one] (すべて1つに)リストで[true] (真)を選択します。 [All in one] (すべて1つに)オプションが[true] (真)に設定されると、XMLデータはすべて単⼀の フローで出⼒されます。 ⼊⼒フローを出⼒フローにマッピングします。[row1]テーブルで[id]カラムを選択し、[all] (す べて)出⼒テーブルの[employee] (従業員)サブモジュールにドロップすると[Selection] (選択) ウィザードが表⽰されます。 このウィザードで[Create as attribute of target node] (対象ノードの属性として作成)を選択 し、[OK]をクリックして確定します。 [employees] (従業員)データベースの[id]カラムと、[employee] (従業員)XMLツリーの[id]属性 の間にマッピングが作成されました。 [row1]テーブルの[firstname] (ファーストネーム)カラムと[lastname] (ラストネーム)カラムを 選択し、[all] (すべて)出⼒テーブルの[employee] (従業員)サブモジュールにドロップします。 10. [Selection] (選択)ウィザードで[Create as attribute of target node] (対象ノードのサブモ ジュールとして作成)を選択し、[OK]をクリックして確定します。 54 Talend ESB⼊⾨ガイド 単純なRESTサービスの構築 ⼊⼒フローと出⼒フロー間のマッピングが完了しました。 11. [Apply] (適⽤)と[OK]をクリックし、エディターを閉じて設定を確定します。 ジョブの実⾏ 1. 2. F6を押してジョブを実⾏します。ジョブは、実⾏前に⾃動的に保存されます。Studioの下部 に[Run] (実⾏)ビューが表⽰され、コンソールに実⾏結果が表⽰されます。 RESTサービスがhttp://127.0.0.1:8090/servicesというエンドポイントにパブリッシュされ ました。プロバイダーは引き続き要求をリッスンするので、停⽌する時は[Run] (実⾏)ビュー の[Kill] (終了)ボタンをクリックします。 サービスをチェックする場合は、パブリッシュされたエンドポイントアドレス のhttp://127.0.0.1:8090/services/employeesにアクセスします。 Talend ESB⼊⾨ガイド 55 単純なRESTサービスの構築 3.2.1.2. サービスへの新しいマッピングの追加 前のセクション(「サービスプロバイダーの作成」)では、全従業員の情報を取得するRESTサービスの 作成⽅法を説明しました。次に、各従業員の情報を個別に参照できるよう、新しいRESTマッピング を追加する必要があります。 REST要求の変更 1. 2. 3. 56 [EmployeeService]ジョブで[tRESTRequest]コンポーネントをダブルクリックし、該当す る[Component] (コンポーネント)ビューを表⽰させてプロパティを変更します。 [REST API Mapping] (REST APIマッピング)の下部にある[+]ボタンを1回クリックし、新しい マッピングを追加します。 [HTTP Verb]フィールドのGET操作はそのままにしておきます。 Talend ESB⼊⾨ガイド 単純なRESTサービスの構築 4. 5. 6. 7. 今のところは[URI Pattern] (URIパターン)フィールドもそのままにしておきます。 [Output Flow] (出⼒フロー)フィールドをクリックし、[...]ボタンを表⽰させてクリックしま す。 [Give the name for the schema] (スキーマ名の指定)ダイアログボックスが表⽰されます。 [Schema Name] (スキーマ名)フィールドで、スキーマにgetEmployeeという名前を付け て[OK]をクリックします。 スキーマウィザードで[+]ボタンを1回クリックし、テーブルに新しい⾏を追加します。 名前をidに変更し、その[Type] (タイプ)を Integer (整数)に変更します。[OK]をクリックして確 定します。 8. 9. 新しい[getEmployee]マッピングが[REST API Mapping] (REST APIマッピング)テーブルに表⽰ されます。 [URI Pattern] (URIパターン)フィールドで、XMLツリーのルートにXPathと各従業員のID変数を 合わせた"/employees/{id}"を⼊⼒します。 コピーと貼り付けを使い、[tFixedFlowInput]コンポーネントと[tRESTResponse]コンポーネ ントを複製します。 Talend ESB⼊⾨ガイド 57 単純なRESTサービスの構築 10. ワークスペースをクリックし、⾃動的に表⽰されるテキストフィールドに、[tXMLMap]コン ポーネントの名前、追加する場所を⼊⼒し始めます。コンポーネント名をダブルクリックして ワークスペースに追加します。 コンポーネントどうしの接続 1. 2. 3. [tRESTRequest]を右クリックし、メニューで[Row] (⾏) > [getEmployee]を選択して2番⽬ の[tXMLMap]コンポーネントをクリックします。 2番⽬の[tFixedFlowInput]コンポーネントを右クリックして押さえたまま、2番⽬ の[tXMLMap]にドラッグします。 2番⽬の[tXMLMap]を右クリックして押さえたまま、2番⽬の[tRESTResponse]コンポーネント にドラッグします。表⽰される[tXMLMap Output] (tXMLMapの出⼒)のポップアップメッセー ジで出⼒リンクの名前を求められたら、singleと付けます。 2番⽬のtXMLMapの設定 1. 2. 58 2番⽬のtXMLMapを設定するには、ダブルクリックしてエディターを開きます。 [getEmployee]⼊⼒テーブルの[id]カラムを選択し、[row2]テーブルの[id]カラムにドラッグし ます。 Talend ESB⼊⾨ガイド 単純なRESTサービスの構築 3. 4. 5. 6. 7. 結合を表す紫の⽮印がテーブルのカラム間に作成されます。 [tRESTResponse]コンポーネントに送信されるXMLスキーマを定義します。そのために は、[single] (単⼀)テーブルで[root] (ルート)モジュールノードを右クリックし、メニュー で[Rename] (名前の変更)を選択して名前をemployeeに変更します。 ⼊⼒フローを出⼒フローにマッピングします。そのためには、[row2]テーブルで[id]カラム を選択し、[single] (単⼀)出⼒テーブルの[employee] (従業員)モジュールにドロップしま す。[Selection] (選択)ウィザードが表⽰されます。 このウィザードで[Create as attribute of target node] (対象ノードの属性として作成)を選択 し、[OK]をクリックして確定します。 次に、[row2]テーブルの[firstname] (ファーストネーム)カラムと[lastname] (ラストネーム)カ ラムを選択し、[single] (単⼀)出⼒テーブルの[employee] (従業員)モジュールにドロップしま す。 [Selection] (選択)ウィザードで[Create as attribute of target node] (対象ノードのサブモ ジュールとして作成)を選択し、[OK]をクリックして確定します。 Talend ESB⼊⾨ガイド 59 単純なRESTサービスの構築 8. ⼊⼒フローと出⼒フロー間のマッピングが完了しました。 [Apply] (適⽤)と[OK]をクリックし、エディターを閉じて設定を確定します。 ジョブの実⾏ 1. 2. 60 F6を押してジョブを実⾏します。ジョブは、実⾏前に⾃動的に保存されます。Studioの下部 に[Run] (実⾏)ビューが表⽰され、コンソールに実⾏結果が表⽰されます。 RESTサービスがhttp://127.0.0.1:8090/servicesというエンドポイントにパブリッシュされ ました。プロバイダーは引き続き要求をリッスンするので、停⽌する時は[Run] (実⾏)ビュー の[Kill] (終了)ボタンをクリックします。 サービスをチェックする場合は、パブリッシュされたエンドポイントアドレス のhttp://127.0.0.1:8090/services/employeesにアクセスします。 Talend ESB⼊⾨ガイド 単純なRESTサービスの構築 3. 前のシナリオと似た結果が表⽰されます。 次に、URLの末尾に従業員のidを追加してhttp://127.0.0.1:8090/services/employees/1とす ると、 Talend ESB⼊⾨ガイド 61 RESTサービスのデプロイ 該当する従業員に関する情報のみが表⽰されます。 3.2.2. RESTサービスのデプロイ 前のセクションでコンシューマージョブで作成したRESTサービスを呼び出せるようになる前 に、Talend Runtimeでこのサービスをデプロイする必要があります。 まず、Talend Runtimeが実⾏中であることを確認します。2章Talend ESBの使い方のインストール と開始の⼿順を実⾏します。 使⽤している製品とデプロイメントの⽬標に応じてデプロイメントの⽅法が異なります。 • Talend Open Studio for ESBによって、サービスとルートをRuntimeでローカルにデプロイできる ようになります。詳細は、「ローカルデプロイメント(Talend Open Studio for ESB)」を参照して ください。 このローカルデプロイメントは、EnterpriseおよびPlatform Studioで実⾏することもできます。た だし、その場合はサービスやルートのアーティファクトの共有、そしてそのデプロイメントや実⾏ のスケジュールが難しくなります。これは、アーティファクトの共有はArtifact Repositoryで、そ してそのデプロイメントと実⾏はTalend Administration Centerでそれぞれ可能であることが理由 です。 • EnterpriseおよびPlatform製品では、サービスやルートの開発はすべて開発者によってStudioで⾏ われます。パブリッシュはすべてArtifact Repositoryで⼀元管理され、Talend Runtimeコンテナへ のデプロイメントはオペレーションマネージャーによって Talend Administration Centerで⾏われ ます。詳細は、「Talend Administration Centerからのパブリッシュとデプロイメント」を参照して ください。 • EnterpriseおよびPlatform製品ではまた、サービスやルートをStudioからArtifact Repositoryに直 接パブリッシュすることもできます。この操作は、簡単なテスト⽬的のスナップショットでのみ実 ⾏してください。Artifact Repositoryには、この操作専⽤のリポジトリである[Snapshots]が既に 存在します。詳細は、「EnterpriseおよびPlatform Studioからのパブリッシュ(テスト目的のみ)」を 参照してください。 62 Talend ESB⼊⾨ガイド RESTサービスのデプロイ 3.2.2.1. ローカルデプロイメント(Talend Open Studio for ESB) 1. 2. 3. 4. 5. Talend Studioの[Repository] (リポジトリ)ビューにある[Job Designs] (ジョブデザイン)の下 で[EmployeeService 0.1]を右クリックし、[Build Job] (ジョブのビルド)を選択します。 [Build Job] (ジョブのビルド)ウィザードで、[Build type] (ビルドタイプ)を[OSGI Bundle For ESB] (ESB⽤OSGIバンドル)に設定します。 [Browse...] (参照)ボタンをクリックし、Talend Runtimeコンテナの[deploy]フォルダーを参照 します。[Save] (保存)をクリックし、パスを確定します。 [Finish] (終了)をクリックします。サービスはEmployeeService.jarファイルとして保存されま す。 このプロセスによってジョブが構築され、[deploy]ディレクトリにデプロイされます。ま た、Talend Runtimeコンテナが動的ロード環境であるため、このサービスは⾃動的に開始され ます。 Talend Runtimeコンテナウィンドウにlistと⼊⼒します。 Talend ESB⼊⾨ガイド 63 RESTサービスのデプロイ 6. 64 サービスをチェックする場合は、パブリッシュされたエンドポイントアドレス のhttp://127.0.0.1:8040/services/services/employeesにアクセスします。 Talend ESB⼊⾨ガイド RESTサービスのデプロイ また、コンシューマージョブを作成してサービスをチェックすることもできます。 3.2.2.2. Talend Administration Centerからのパブリッシュとデプ ロイメント サービスやルートのアーティファクトをパブリッシュおよびデプロイするには、次の⼿順に従い ます。本番環境では、このデモで使われている[Snapshots] (スナップショット)リポジトリではな く、Artifact Repositoryの[Releases] (リリース)リポジトリを使⽤してください。 2章Talend ESBの使い方の説明に従って、Talend Runtimeのほか、Talend Administration Center、 そしてCommandLineやTalend Nexus Artifact Repositoryといったその他のモジュールが実⾏中であ ることを確認します。 Talend ESB⼊⾨ガイド 65 RESTサービスのデプロイ Talend Administration Centerでのパブリッシュ 1. 2. Talend Administration Centerで、左にあるメニューから[ESB Publisher] (ESBパブリッシャー) をクリックし、該当するページを表⽰させます。Studioで開発してパブリッシュしたサービスや ルートは、このページで⾒つけることができます。 上部の[Add] (追加)ボタンをクリックし、右側に表⽰された[Publish Task] (タスクのパブリッ シュ)フォームに⼊⼒します。 3. [Save] (保存)をクリックします。新しいアーティファクトが[Ready to publish] (パブリッシュ 可能)としてリストに表⽰されます。 4. そのアーティファクトを選択して[Publish] (パブリッシュ)ボタンをクリックします。サービス はただちにArtifact Repositoryに表⽰されます。 また、[ESB Publisher] (ESBパブリッシャー)ページの下部にある[Trigger] (トリガー)タブで アーティファクトのパブリッシュをトリガーすることもできます。 その場合、作成したタスクを選択し、ページの下部にある[Trigger] (トリガー)タブの[Add trigger...] (トリガーの追加...) > [Add CRON trigger] (CRONトリガーの追加)をクリックしま す。右に表⽰される[Add Cron trigger] (CRONトリガーの追加)に⼊⼒します。CRON構⽂を 使い慣れていない場合は、ウィザードを使って関連するフィールドを⼊⼒できます。[Cron UI Trigger configuration] (CRON UIのトリガー設定)ウィザードを開くには、[Open UI configurer] (UI設定を開く)ボタンをクリックします。 ただし、デモでは[Publish] (パブリッシュ)ボタンを使ってRESTサービスジョブをパブリッシュ します。 パブリッシュされたサービスは、Artifact Repositoryのorg/exampleノードの下に表⽰されま す。[ESB Publisher] (ESBパブリッシャー)ページの上部にある[Open Artifact repository] (アーティファクトリポジトリを開く)ボタンをクリックします。これによってNexus Webアプ リケーションが開きます。⽬的のサービスアーティファクトは、[Repositories] (リポジトリ) > [Snapshots] (スナップショット)にあります。 Talend Administration Centerでのデプロイ Artifact Repositoryでパブリッシュされたサービスは、Talend Runtimeコンテナにデプロイできま す。 1. 2. 3. 4. 66 Talend Administration Centerで、左にあるメニューから[ESB Conductor] (ESBコンダクター) をクリックし、該当するページを表⽰させます。Artifact Repositoryでパブリッシュしたサービ スやルートは、このページで⾒つけることができます。 上部の[Add] (追加)ボタンをクリックし、右側に表⽰された[Edition] (エディション)フォームに ⼊⼒します。 [Metadata] (メタデータ)エリアの[Label] (ラベル)フィールドで、サービスデプロイメントタス クの名前を付けます。 [Feature] (フィーチャー)エリアで[Select Feature] (フィーチャーの選択)ボタンをクリック し、[Select Feature from Nexus repository] (フィーチャーをNexusリポジトリから選択)ウィ ザードを開きます。このウィザードは、このエリア以降のフィールドに⼊⼒するうえで役⽴ちま す。 Talend ESB⼊⾨ガイド RESTサービスのデプロイ 5. 6. 7. 8. [Repository] (リポジトリ)リストで[snapshots] (スナップショット)を選択し、[Employee Service] (従業員サービス)フィーチャーを参照して選択します。[OK]をクリックすると、すべて のサービスフィーチャー情報がフォームに⼊⼒されます。 [Runtime Config] (ランタイム設定)エリアの[Server] (サーバー)リストで、サービスをデプロ イするコンテナを選択します。 [Save] (保存)をクリックすると、サービスデプロイメントタスクがリストに表⽰されます。 [Deploy] (デプロイ)ボタンをクリックすると、[Server] (サーバー)リストで指定されたサービス が Talend Runtimeコンテナにデプロイされます。 [Last Action] (最終アクション)カラムの値が、[CREATED] (作成済み)から[DEPLOYED] (デプロ イ済み)に変わります。Talend Runtimeコンテナプロンプトにlistと⼊⼒すると、新しいバンド ルであるEmployee Service (従業員サービス)がリスト表⽰されます。 [ 289] [Active (0.1.0.SNAPSHOT) ] [Created ] [ ] [ 80] EmployeeService 3.2.2.3. EnterpriseおよびPlatform Studioからのパブリッシュ(テス ト⽬的のみ) テスト⽬的で、サービスやルートをStudioからArtifact Repositoryにパブリッシュすることもできま す。そのためには、Artifact Repositoryの専⽤の[Snapshots] (スナップショット)リポジトリを使⽤ してください。 2章Talend ESBの使い方に説明に従って、Talend Runtimeのほか、Talend Administration Center、 およびCommandLineやTalend Nexus Artifact Repositoryといったその他のモジュールが実⾏中であ ることを確認します。 1. 2. 3. 4. StudioでArtifact Repository接続の環境設定が正しく⾏われていることを確認します。メニュー で[Window] (ウィンドウ) > [Preferences] (環境設定) > [Talend] > Artifact Repositoryと進み ます。 Talend Studioの[Repository] (リポジトリビュー)にある[Job Designs] (ジョブデザイン)の下 で[EmployeeService 0.1]を右クリックし、[Publish] (パブリッシュ)を選択します。 [Publish Job into Artifact Repository (アーティファクトリポジトリにジョブを発⾏)ウィザー ドで、[Publish as SNAPSHOT] (スナップショットとしてパブリッシュ)チェックボックスを選 択し、[Snapshots] (スナップショット)リポジトリにジョブがパブリッシュされるようにしま す。 [Finish] (終了)をクリックします。 これで、サービスがTalend Nexus Artifact Repositoryの[Snapshots] (スナップショット)でアー ティファクトとして利⽤可能になりました。[ESB Publisher] (ESBパブリッシャー)ページの上 部にある[Open Artifact repository] (アーティファクトリポジトリを開く)ボタンをクリックし ます。これによってNexus Webアプリケーションが開きます。⽬的のサービスアーティファクト は、[Repositories] (リポジトリ) > [Snapshots] (スナップショット)にあります。 これで、Talend Administration Centerでのデプロイの説明にあるようにTalend Administration Centerアプリケーションからアクセスし、Talend Runtimeコンテナにデプロイできます。 Talend ESB⼊⾨ガイド 67 単純なRESTサービスコンシューマーの構築 3.2.3. 単純なRESTサービスコンシューマーの構築 このセクションでは、RESTサービスに要求を送信するコンシューマーを作成します。 ジョブの作成 1. 左のメニューで[Job Designs] (ジョブデザイン)を右クリックし、[Create Job] (ジョブの作成) を選択します。 2. 名前(EmployeeServiceConsumer)、⽬的(demo)、サービスの説明を⼊⼒し、[Finish] (終了)をク リックしてメインの画⾯に戻ります。 68 Talend ESB⼊⾨ガイド 単純なRESTサービスコンシューマーの構築 3. これで、メインの画⾯に[Job EmployeeServiceConsumer 0.1]タブが表⽰されます。 5. 同様に、次の図に⽰されている[tFixedFlowInput]、[tXMLMap]、[tLogRow]の各コンポーネ ントをドラッグしてドロップします。 4. この新しいジョブデザインではRESTサービスコンシューマーを構築するので、パレット で[tRESTClient]コンポーネントを検索し、グリッドにドラッグしてドロップします。 REST要求の設定 1. 2. 3. 4. 5. まず、[tFixedFlowInput]コンポーネントを[tRESTClient]に接続し、対象コンポーネントのス キーマが⾃動的に取得されるようにします。 次に、[tFixedFlowInput]コンポーネントをダブルクリックし、該当する[Component] (コン ポーネント)ビューをウィンドウの下に表⽰させます。 [Edit schema] (スキーマの編集)オプションの横にある[...]ボタンをクリックします。[Schema of tFixedFlowInput] (tFixedFlowInputのスキーマ)ウィザードが表⽰されます。 ウィザードの下部にある[+]ボタンを1回クリックし、次の図のように名前がid、[Type] (タイプ) がInteger (整数)、[Length] (⻑さ)が2である新しい⾏を追加します。 [OK]をクリックし、変更を伝播させます。 [Mode] (モード)エリアで[Use Inline Table] (インラインテーブルの使⽤)オプションを選択 し、[+]ボタンを3回クリックして3⾏追加して次のように設定します。 Talend ESB⼊⾨ガイド 69 単純なRESTサービスコンシューマーの構築 6. 7. 8. [tRESTClient]をダブルクリックし、該当する[Component] (コンポーネント)ビューを表⽰させ てプロパティを設定します。 [URL]フィールドを"http://127.0.0.1:8040/services"に変更します。 [Relative Path] (相対パス)を"/services/employees/"+row1.idに変更します。 コンポーネントどうしの接続 1. 2. [tRESTClient]を右クリックし、メニューで[Row] (⾏) > [Response] (応答)を選択し て[tXMLMap]コンポーネントをクリックします。 [tXMLMap]を右クリックして押さえたまま、[tLogRow]にドラッグします。表⽰され る[tXMLMap Output] (tXMLMapの出⼒)のポップアップメッセージで出⼒リンクの名前を求め られたら、allと付けます。 tXMLMapの設定 1. 70 ダブルクリックしてエディターを開きます。 Talend ESB⼊⾨ガイド 単純なRESTサービスコンシューマーの構築 2. 3. 4. 5. エディターの左にある⼊⼒エリアに、データベーステーブルからの⼊⼒フローが表⽰されます。 エディターの右にある出⼒エリアで、[tLogRow]コンポーネントに送信する出⼒XMLフローを設 定します。 [row2]⼊⼒XMLツリーで、[root]モジュールを右クリックし、メニューで[Rename] (名前の変 更)を選択して名前をemployeeに変更します。そして各従業員の情報を持つ[employee]ルート モジュールのXMLツリーを定義します。 [employee] (従業員)を右クリックし、メニューで[Create Attribute] (属性の作成)を選択しま す。表⽰される[Create New Attribute] (属性の新規作成)ウィザードで、idという属性を新しく 作成します。 もう⼀度[employee] (従業員)を右クリックし、メニューで[Create Sub-Element] (サブモ ジュールの作成)を選択します。表⽰される[Create New Element] (モジュールの新規作成)ウィ ザードで、firstnameというサブモジュールを新しく作成します。 同じ⼿順を繰り返し、lastnameというサブモジュールを作成します。 ⼊⼒フローを出⼒フローにマッピングします。[row2]XMLツリーで[statusCode]カラ ム、[id]属性、[firstname]モジュールと[lastname]モジュールを選択し、[all] (すべて)出⼒ テーブルにドロップします。 Talend ESB⼊⾨ガイド 71 単純なRESTサービスコンシューマーの構築 6. 7. 8. 9. ⼊⼒フローと出⼒フロー間のマッピングが完了しました。 [Apply] (適⽤)と[OK]をクリックし、エディターを閉じて設定を確定します。 [tLogRow]をダブルクリックし、該当する[Component] (コンポーネント)ビューを表⽰させて プロパティを設定します。 [Sync columns] (カラムの同期)ボタンをクリックし、[tXMLMap]コンポーネントからスキーマ を取得します。 [Mode] (モード)エリアで、[Table] (テーブル)オプションを選択します。 ジョブの実⾏ • 72 F6を押してジョブを実⾏します。ジョブは、実⾏前に⾃動的に保存されます。Studioの下部 に[Run] (実⾏)ビューが表⽰され、コンソールが実⾏をその追います。 Talend ESB⼊⾨ガイド Javaを使⽤したデータサービスおよびルートのビルドおよびデプロイ 3.3. Javaを使⽤したデータサービスおよびルー トのビルドおよびデプロイ このセクションでは、Rent-a-Carデモの最も簡単なバージョンについて説明します。 このサンプルの処理の中で、以下の⽅法を学習します: • Apache CXFサービス(Rent-a-Car)をコンパイルおよびビルドする。 • Talend Runtimeコンテナ(TalendのOSGiコンテナ)を開始する。 • Talend Runtimeコンテナコンソールでコマンドを使⽤してサービスをデプロイする。 デフォルトでは、すべてのRent-a-CarデモはJMXで使⽤できます。 Rent-a-Carデモコードは、追加機能を使⽤するためにさまざまなオプション(Mavenプロファイル)を使⽤して ビルドできます。この詳細は次の章で説明し、このセクションではデフォルトの基本のビルドを使⽤します。 3.3.1. Rent-a-Carデモのサンプル このデモのサンプルのシナリオは、⼀般的なビジネスのユースケースで、レンタカー会社のドメイ ンの実際の例を簡略化したものです。これは、顧客に関する情報を提供する顧客関係管理(CRM)の機 能、および⾞を予約するための予約サービスを使⽤します。 図3.1 Rent-a-Carクライアントアプリケーションおよびサービス 3.3.1.1. Rent-a-Carのシナリオ このシナリオのデモには、ReservationServiceとCRMServiceという2つの主要なサービスがあり ます。単純でグラフィカルなRent-a-Carクライアントアプリケーション(以後「レンタルクライアン ト」といいます)を使⽤して、これらのサービスを作成してオーケストレーションします。 レンタルクライアントは、特定の期間内で利⽤可能な⾞を検索するための基本的な機能も提供し ます。ビジネスロジックを実装するために、下の図に⽰すように、レンタルクライアントはCRM ServiceとReservation Serviceの両⽅から操作を呼び出します。 1. 2. 検索は、選択した顧客のステータス(シルバー、ゴールド、プラチナ)を考慮します。この顧客の プロフィール情報は予約サービスに渡され、検索結果を決定するために使⽤されます。 結果のリストから、顧客の要件を最適に満たす⾞を選択して、[Book] (予約)ボタンをクリック して予約することができます。 Talend ESB⼊⾨ガイド 73 Rent-a-Carデモのサンプル 3. 送信処理の最後に、予約の確認情報が予約IDと共に表⽰されます。 図3.2 レンタルクライアントサービスの呼び出し 3.3.1.2. Rent-a-Carデモの構造 このセクションでは、デモのディレクトリ構造について説明します。これは、2つのサービスとデ モアプリケーションおよびいくつかのサポートファイルで構成されます。これらは、ディレクト リ<TalendRuntimePath>/examples/talend/tesb/rent-a-car/にあります。 ディレクトリまたはファイル名 app-reservation/ 説明 このディレクトリには、ユーザーが⼿順を追ってサービスを呼び出すことが できるコマンドおよび単純なUIクライアントが含まれます。 crmservice/ getCRMInformationおよびgetCRMStatus操作を実装する顧客関係管理(CRM) reservationservice/ getAvailableCars、submitCarReservation、およ びgetConfirmationOfReservation操作を実装する予約サービス。 features/ soapui/ pom.xml settings.xml サービス。 このディレクトリには、Rent-a-CarデモをTalend Runtimeコンテナにインス トールするために使⽤されるフィーチャーファイルが含まれます。 このディレクトリには、soapUIツールのオプションプロジェクトファイルが 含まれます。 このファイルは、Mavenビルドプロセスで使⽤されます。 このファイルには、⾼度な機能が含まれます(基本のデモでは使⽤されませ ん。詳細は、「Artifact Repositoryへのデモのパブリッシュ」を参照してくだ さい)。 次に、サービスおよびクライアントサブディレクトリについて説明します: 74 Talend ESB⼊⾨ガイド デモのデプロイ 1. crmservice: ディレクトリまたはファイル名 common/ client/ client-sl-sam/ client-sts/ client-all/ service/ service-endpoint-jmx/ service-endpoint-jmx/ service-endpoint-sts/ service-endpoint-all/ 説明 このディレクトリには、初期コードの⽣成に使⽤され るCRMService.wsdlファイルが含まれます。 これは、CXFエンドポイントを呼び出すCXFクライアントを表⽰するサンプ ルのクライアントアプリケーションです。 このディレクトリには、Service LocatorおよびService Activity Monitoring シナリオで使⽤できるCRMServiceクライアントが含まれます。 このディレクトリには、Security Token Serviceシナリオで使⽤でき るCRMServiceクライアントが含まれます。 このディレクトリには、すべてのフィーチャーで使⽤できるCRMServiceク ライアントが含まれます。 このディレクトリには、CRMServiceサービスの実装が含まれます。 このディレクトリには、基本のCRMServiceエンドポイントが含まれます。 このディレクトリには、Service LocatorおよびService Activity Monitoring シナリオで使⽤できるCRMServiceエンドポイントが含まれます。 このディレクトリには、Security Token Serviceシナリオで使⽤でき るCRMServiceエンドポイントが含まれます。 このディレクトリには、すべてのフィーチャーで使⽤できるCRMServiceエ ンドポイントが含まれます。 2. reservationserviceは、ReservationService関係の部分を除き、同じ構造を持ちます。 3. app-reservationには、コマンドおよび単純なUIクライアントをビルドするためのコードがありま す: ディレクトリまたはファイル名 src/ target/ pom.xml 説明 このディレクトリには、ソースコードが含まれます。 このディレクトリは、ビルドのターゲットディレクトリです。 このファイルは、Mavenビルドプロセスで使⽤されます。 3.3.2. デモのデプロイ このセクションでは、Rent-a-CarデモをTalend Runtimeコンテナにデプロイする⽅法について説明 します。以下のようないくつかの⼿順があります: 1. 代替コンテナを作成します。「デモの代替コンテナの作成」を参照してください。 3. デモをビルドします。「デモのビルド」を参照してください。 2. 4. 5. プライマリコンテナを開始します。「Talend Runtimeの実行」を参照してください。 デモサービスをデプロイします。「デモサービスのデプロイ」を参照してください。 デモクライアントアプリケーションをデプロイします。「デモクライアントアプリケーションの デプロイ」を参照してください。 3.3.2.1. デモのビルド このドキュメントではこれ以降、<TalendRuntimePath>はTalend Runtimeがインストールされて いるディレクトリを⽰します。これは、⼀般的には使⽤しているソフトウェアのバージョンに応じ て、Runtime_ESBSE、TESB_SE-VA.B.C、またはTalend-ESB-VA.B.C>のフルパスになります(「ソフトウェア のダウンロードおよびインストール」を参照)。これは適宜置き換えてください。 Talend ESB⼊⾨ガイド 75 デモのデプロイ Talend Runtimeサンプルは<TalendRuntimePath>/examples/talendディレクトリにあります。 ESBサンプルのベースディレクトリ<TalendRuntimePath>/examples/talend/tesb/rent-a-car/から Mavenプロジェクトファイルpom.xmlを使⽤してデモをビルドできます。 1. コマンドラインコンソールから、ディレクトリをRent-a-Carサンプルのルートディレクトリに変 更します: cd <TalendRuntimePath>/examples/talend/tesb/rent-a-car/ 2. 次のMavenコマンドを実⾏します:(MavenはLinux端末からもWindowsコマンドラインからも同 様に呼び出せます)。 mvn clean install これでデモはビルドされ、OSGiバンドルはデプロイ⽤にTalend Runtimeコンテナに作成されま す。 3.3.2.2. デモサービスのデプロイ このドキュメントでは、コマンドはTalend ESBのバージョン"5.5.1"を参照しています。別のバージョンを使 ⽤する場合、バージョンの部分⽂字列.../5.5.1/...をお使いのバージョンに置き換えてください。 デモサービスフィーチャーは、受信するHTTP呼び出し⽤に開かれるプライマリのポート8040に依存 するため、他の場所でなくプライマリコンテナにインストールする必要があります。 1. Rent-a-Carフィンチャーの場所を、Talend Runtimeのプライマリコンテナ (<TalendRuntimePath>/container/)に追加します。 コンソールプロンプト(karaf@trun>)で、次のコマンドを⼊⼒します: features:addurl mvn:org.talend.esb.examples.rent-a-car/features/5.5.1/xml 2. このコマンドにより、MavenビルドでインストールされたMavenリポジトリから直接関連のバン ドルを使⽤できるようになります。 Rent-a-CarサービスフィーチャーをTalend Runtimeコンテナにインストールします。 次のコマンドを⼊⼒します: features:install tesb-rac-services 3. フィーチャーが正常にインストールされたことを確認します。 次のコマンドを⼊⼒します: list インストールされたバンドルのリストにデモバンドルが表⽰されます。以下に⽰すよう に、CRMServiceとReservationServiceバンドルがインストールされています: ID State [197] [Active [198] [Active [199] [Active [200] [Active [201] [Active [202] [Active (5.5.1) 76 ] ] ] ] ] ] Blueprint [ ] [ ] [ ] [ ] [ ] [ ] Spring [ ] [ ] [ ] [Started] [ ] [Started] Level [ 80] [ 80] [ 80] [ 80] [ 80] [ 80] Name CRMService Common (5.5.1) ReservationService Common (5.5.1) CRMService Service (5.5.1) CRMService Service Endpoint JMX (5.5.1) ReservationService Service (5.5.1) ReservationService Service Endpoint JMX Talend ESB⼊⾨ガイド デモの実⾏ 3.3.2.3. デモクライアントアプリケーションのデプロイ レンタルクライアントのデモアプリケーションは、サービスと同じコンテナ、プライマリコンテナ、 または代替コンテナのいずれかにデプロイできます(後で、クライアントとサービスが別のコンテナ に存在するより現実的なシナリオをシミュレーションします)。 1. デモアプリケーションのデプロイメントで代替コンテナを使⽤する場合、Rent-a-Carフィー チャーの場所をこのコンテナに追加します。コンテナを終了してから再開始しても実⾏間で状態 は保持されるため、フィーチャーの場所は各コンテナで1回のみ追加する必要があります。ただ し、フィーチャーが既にインストールされているかどうか不明な場合にフィーチャーの場所を再 度追加しても、問題はありません。 コンテナプロンプトで、次のコマンドを⼊⼒します: features:addurl mvn:org.talend.esb.examples.rent-a-car/features/5.5.1/xml 前のサンプルを既に実⾏している場合、内部バンドルキャッシュが更新されるように、次のコマ ンドを実⾏する必要がある場合があります: features:refreshurl 2. レンタルクライアントアプリケーションフィーチャーをコンテナにインストールします。 次のコンソールコマンドを⼊⼒します: features:install tesb-rac-app 3. フィーチャーが正常にインストールされたことを確認します。 次のコマンドを⼊⼒します: list インストールされたバンドルのリストにデモバンドルが表⽰されます(同じコンテナで両⽅のバ ンドルを実⾏している場合、インストールされたサービスバンドルのみが表⽰されます): ID [197] [198] [199] [200] [201] State [Active [Active [Active [Active [Active ] ] ] ] ] Blueprint [ ] [ ] [ ] [ ] [Created] Spring [ ] [ ] [Started] [Started] [ ] Level [ 80] [ 80] [ 80] [ 80] [ 80] Name CRMService Common (5.5.1) ReservationService Common (5.5.1) CRMService Client (5.5.1) ReservationService Client (5.5.1) App Reservation (5.5.1) 3.3.3. デモの実⾏ Rent-a-Carデモのイベントのシーケンスは次のとおりです: 1. 2. 3. 4. 顧客はフォームに、名前、受取⽇付、返却⽇付、希望のレンタル等級の範囲などの必須データを ⼊⼒して、そのクエリを送信します。 アプリケーションは、CRMServiceを呼び出して顧客データおよび顧客のステータス情報を取得 します。 顧客には、利⽤可能な⾞のリストが提⽰され、そのリストから⾞を1台選択します。 アプリケーションは、ReservationServiceを呼び出して予約要求を送信した後、予約確認通知 を顧客に表⽰します。 Talend ESB⼊⾨ガイド 77 デモの実⾏ 3.3.3.1. アプリケーションの開始 この時点で、ReservationService、CRMService、およびapp-reservation (クライアント)は既に Talend Runtimeにデプロイされています。上記のように、Talend Runtimeコンテナコンソールを開 始します。デモサービスとデモアプリケーションが別々のコンテナにデプロイされている場合、両⽅ とも開始する必要があります。 レンタルクライアントアプリケーションは、実際はGUIバージョンとコマンドラインバージョンの2 つのバージョンがあります。そのため、デモアプリケーションを含むコンテナのコンソールでは、次 のように表⽰されます: ---TALEND ESB: Rent-a-Car (OSGi) Commands--car:gui (Show GUI) car:search <user> <pickupDate> <returnDate> (Search for cars to rent, date format yyyy/mm/dd) car:rent <pos> (Rent-a-Car listed in search result of carSearch) 次のセクションでは、レンタルクライアントアプリケーションのユーザーインターフェイスとコマン ドの実⾏について説明します。 3.3.3.2. レンタルクライアントGUIの使⽤ 1. GUIを開始するには、Talend Runtime代替コンテナコンソールウィンドウプロンプト (karaf@trun>)で、次のように⼊⼒します: car:gui 2. [User] (ユーザー)リストからaebertを選択して、[Find] (検索)をクリックして結果を表⽰しま す。利⽤可能な⾞のリストが表⽰されます。 78 Talend ESB⼊⾨ガイド デモの実⾏ 3. 4. 強調表⽰された⾏をクリックするか、別のオプションを選択して[Reserve] (予約)をクリックし ます。 そうすると、確認ページが表⽰されます: Talend ESB⼊⾨ガイド 79 デモの実⾏ [Close] (閉じる)をクリックしてアプリケーションを停⽌します。 3.3.3.3. コマンドラインの使⽤ コマンドラインを使⽤しても同じ予約処理を実⾏することができます。 1. 特定のユーザー(aebert)で⾞を検索するには、コンソールで次のように⼊⼒します: car:search aebert 2014/07/17 2014/07/20 利⽤可能な⾞のリストが表⽰されます。 Found 5 cars. Car details 1 VW Golf Standard 50.00 75.00 40.00 2 BMW 320i Sport 60.00 90.00 45.00 3 Mazda MX5 Sport 65.00 95.00 50.00 4 Lexus LX400 SUV 85.00 120.00 100.00 5 Mercedes E320 Delux 95.00 140.00 100.00 2. 80 ここでコンソールに「car:rent 2」と⼊⼒して、2番⽬の⾞をレンタルします。 Talend ESB⼊⾨ガイド デモのアンインストール ここで、次のような確認情報が表⽰されます: Your reservation is booked! Reservation ID SGA-295484 Customer details ---------------Name: Andrea Ebert eMail: [email protected] City: Munich Status: PLATINUM Car details ----------Brand: BMW Model: 320i Reservation details ------------------Pick up date: 2011/07/17 Return date: 2011/07/20 Daily rate: 60.00 Weekend rate: 90.00 Credits: 210 Thank you for renting a car with Talend ESB :-) 3.3.4. デモのアンインストール このセクションでは、デモをコンテナおよび代替コンテナ(使⽤している場合)からアンインストール する⽅法について説明します。 • デモサービスのみをアンインストールする場合は、コンテナコンソールで以下のコマンドを実⾏し ます: features:uninstall tesb-rac-services ここで、 「デモサービスのデプロイ」で説明されているように、デモサービスを再度インストー ルすることができます。 • デモアプリケーションのみをアンインストールする場合は、コンテナコンソールで以下のコマンド を実⾏します: features:uninstall tesb-rac-app ここで、上記のようにデモアプリケーションを再度インストールすることができます。 • このガイドの別のシナリオを試すなどの理由で、すべてのデモフィーチャーをアンインストールす る場合、コンテナコンソールで次のコマンドを実⾏します(これには前のコマンドも含まれます。2 つのコンテナを使⽤している場合、両⽅のコンテナにすべてのフィーチャーはインストールされま せん): features:uninstall tesb-rac-services features:uninstall tesb-rac-app features:uninstall tesb-rac-common ここで、「features:list | grep tesb-rac」と⼊⼒して、すべてのフィーチャーが実際にアンイ ンストールされていることを確認します。コンソールには次のように表⽰されます: Talend ESB⼊⾨ガイド 81 EclipseへのRent-a-Car Javaデモのインポート [uninstalled] [5.5.1 [uninstalled] [5.5.1 [uninstalled] [5.5.1 ] tesb-rac-common ] tesb-rac-services ] tesb-rac-app repo-0 repo-0 repo-0 コンテナからRent-a-Carフィーチャーの場所を削除することもできます。 コンテナコンソールプロンプトで、次のコマンドを⼊⼒します: features:removeurl mvn:org.talend.esb.examples.rent-a-car/features/5.5.1/xml 3.4. EclipseへのRent-a-Car Javaデモのイン ポート このセクションでは、Maven Eclipse Plugin ( http://maven.apache.org/plugins/maven-eclipseplugin/)を使⽤して、Rent-A-CarサンプルのEclipseプロジェクトファイルを⽣成します(このプラグ インのインストール⽅法は、『Talend ESB Development Guide』を参照してください)。 3.4.1. プロジェクトファイルのビルド 1. 2. Talend ESBサンプルのベースディレクトリ<TalendRuntimePath>/examples/talend/tesb/renta-carに移動します。 デモをビルドしていない場合は、次を実⾏します。 mvn clean install 3. その後、次を実⾏します。 mvn eclipse:eclipse これで、Eclipseプロジェクトファイルが作成されました。 3.4.2. Eclipseへのインポート Eclipse IDEで次を実⾏します。 1. 2. 3. 4. メインメニューバーで、[File] (ファイル) > [Import...] (インポート...)を選択します。[Import] (インポート)ウィザードが開きます。 [General] (⼀般) > [Existing Projects into Workspace] (既存のプロジェクトをワークスペース へ)を選択して、[Next] (次へ)をクリックします。 [Select root directory] (ルートディレクトリの選択)を選択して、関連付けられた[Browse] (参 照)をクリックしてexamples/talend/tesb/rent-a-carディレクトリを⾒つけます。 [Import Projects] (プロジェクトのインポート)ウィンドウに戻り、[Projects] (プロジェクト)の 下で、インポートしたいプロジェクトを選択してから[Finish] (終了)をクリックします。 選択したTalend ESBサンプルプロジェクトはEclipseワークスペースにインポートされます。この段 階で、ソースコードを表⽰して、それを編集し、その他すべてのEclipseフィーチャーを使⽤するこ とができます。 82 Talend ESB⼊⾨ガイド サンプルの実⾏ 3.4.3. サンプルの実⾏ ⼀般的には、サンプルはコマンドラインウィンドウからMavenコマンドを使⽤して実⾏することがで きます。必要に応じて、Maven⽤のEclipseプラグインを使⽤して、IDE内でMavenコマンドを実⾏す ることができます。 Talend ESBおよびEclipseを使⽤した開発の詳細は、『Talend ESB Development Guide』を参照して ください。 Talend ESB⼊⾨ガイド 83 Talend ESB⼊⾨ガイド 4.SOAガバナンスによる⾼度なデプロイメント とRuntimeのユースケース この章では、Service Locator、Service Activity Monitoring、Security Token Serviceなど、Talend Runtimeの⾼度な機能を使⽤する⽅法について説明します。また、サービスおよびルートをデプロイ するためのリポジトリ管理ソフトウェアの使⽤⽅法についても解説します。 この章で⽰す例は、3章基本的なデプロイメントとRuntimeのユースケースで紹介されたRent-a-Car Javaのデモをベースとしています。 Talend ESB⼊⾨ガイド Service LocatorおよびService Activity Monitoringを使⽤したRent-a-Carデモ 4.1. Service LocatorおよびService Activity Monitoringを使⽤したRent-a-Carデモ このセクションでは、Rent-a-Carデモの以下の2つのフィーチャーを使⽤する⽅法について説明しま す。 • Service Locatorコンポーネント。サービスエンドポイントを公に登録します。 • Service Activity Monitoring (SAM)。サービス呼び出しを監視します。⼀般的には、使⽤状況デー タの収集や障害監視に使⽤します。 TalendのEnterpriseまたはPlatformエディションのいずれかがある場合、Service LocatorおよびService Activity Monitoring情報を表⽰するためのTalend Administration Centerで提供されるGUI機能がありま す。Talend Administration CenterのService Activity Monitoringユーザーインターフェイスのプレビュー は、「Talend Administration CenterのService Activity Monitoringインターフェイスでのイベントの表示」を参 照してください。 詳細は、『Talendインストレーションガイド』および『Talend Administration Centerユーザーガイド』を参照 してください。 このセクションでは、Rent-a-CarデモをTalend Runtimeコンテナにデプロイする⽅法について説明 します。基本のRent-a-Carデモと同様の多数の⼿順があります。 1. 代替コンテナを作成します。「デモの代替コンテナの作成」を参照してください。 3. デモをビルドします。「Service Activity MonitoringおよびService Locatorを有効化したデモのビ ルド」を参照してください。 2. プライマリコンテナを開始します。「Talend Runtimeの実行」を参照してください。 4. 実⾏した以前のデモのフィーチャーがアンインストールされていることを確認します。「前の フィーチャーのアンインストール」を参照してください。 5. Talend ESBサービスをデプロイします。「Service LocatorおよびService Activity Monitoringのイ ンストールおよび開始 」を参照してください。 6. 7. Rent-a-Carデモでは、デモファイルがデフォルトコンテナ⽤に設定されているため、(ポート 8040を使⽤して)デフォルトコンテナにインストールされていることが重要です。 デモサービスとクライアントアプリケーションを1つのコンテナにデプロイします。「1つの コンテナでデモを実行してService Activity Monitoringデータを生成」を参照してください。こ のシナリオではService Locatorはほとんど使⽤されないため、この⼿順ではService Activity Monitoring機能を重点的に説明しています。 次に、2つのコンテナを使⽤して1つのサンプルサービスを停⽌しながらデモを再実⾏します。 これにより、サービスのフェールオーバーにおけるService Locatorの役割を⽰し(「2つのコン テナでのデモの実行 - Service Locatorでのサーバーフェールオーバーのシミュレーション」を参 照)、クライアントがこの機能を使⽤して別のサービスに再接続する⽅法を⽰します。 4.1.1. Service LocatorおよびService Activity Monitoringのインストールおよび開始 Rent-a-CarのサンプルでService LocatorおよびService Activity Monitoringを有効にするために、こ れらをTalend Runtimeコンテナにインストールおよびデプロイする必要があります。 86 Talend ESB⼊⾨ガイド Service LocatorおよびService Activity Monitoringのインストールおよび開始 Talend Runtimeコンテナと「Talend Runtimeの実行」で説明されているすべてのインフラストラク チャサービスを開始している場合、tesb:start-allコマンドによってそれらのフィーチャーは既に デプロイされて開始されているはずです。 それらを個別に開始したり設定パラメーターをカスタマイズする場合は、「Service Locator」およ び「Service Activity Monitoring」を参照してください。 4.1.1.1. Service Locator プライマリコンテナコンソールで以下を⼊⼒するだけで、Talend RuntimeコンテナでService Locatorを個別に開始することができます: tesb:start-locator この設定パラメーターは、ファイル<TalendRuntimePath>/container/etc/ org.talend.esb.locator.cfgの中にあります。次に例を⽰します: # Configured zookeeper endpoints (divided by a comma if several instances # uses). The service locator client will one by one pick an endpoint to # connect to the service locator until a connection is established. locator.endpoints=localhost:2181 # Endpoint prefix property is needed because we run services in # a container where the endpoints is only relative to the container. endpoint.http.prefix=http://localhost:8040/services endpoint.https.prefix=https://localhost:9001/services locator.strategy=defaultSelectionStrategy locator.reloadAdressesCount=10 connection.timeout=5000 session.timeout=5000 Service Locatorプロパティ設定の詳細は、『Talend ESBインフラストラクチャサービス Configuration Guide』を参照してください。 4.1.1.2. Service Activity Monitoring プライマリコンテナコンソールで以下を⼊⼒するだけで、Talend RuntimeコンテナでService Activity Monitoringサーバーを個別に開始することができます: tesb:start-sam 次に、Service Activity Monitoringサーバーを開始します。ブラウザーでURL: http:// localhost:8040/services/MonitoringServiceSOAP?wsdlを指定して開始されていることを確認しま す。そこに<wsdl:definitions>がリストされます。 tesb:start-samコマンドにより、デフォルトの1527ポートでlocalhost (ローカルホスト) にDerbyデータベースを開始し、tesb-datasource-derbyフィーチャーおよびtesb-samserverフィーチャーをインストールします。別のデータベースを使⽤している場合(たとえ ば、MySQL、H2、Oracleなど)、『Talend ESBインフラストラクチャサービス Configuration Guide』のDataSourceおよびService Activity Monitoringサーバーのインストールおよび設定の⼿順 を実⾏します。 Talend ESB⼊⾨ガイド 87 前のフィーチャーのアンインストール Service Activity Monitoringサーバー - デフォルトで有効なデーターベースの再作 成 Service Activity MonitoringサーバーがTalend Runtimeにインストールされている場合、デフォルト ではデータベースの再作成が有効になります。org.talend.esb.sam.server.cfg設定ファイルを参照 してください。これにより、以降のコンテナの再開始ごとにコンソールログにエラーが表⽰されます ("can’t create table …")。この開始時のログエラーを回避するには、Service Activity Monitoringサー バーをインストールした後、org.talend.esb.sam.server.cfgでdb.recreateプロパティをfalseに変 更します(db.recreate=false)。 Talend RuntimeコンテナのService Activity Monitoringの設定パラメーター Talend Runtimeコンテナで、Service Activity Monitoringがアクセスするためのプロパティを設定す る場合(service.urlなど)、次のファイルを編集してください: <TalendRuntimePath>/container/etc/org.talend.esb.sam.agent.cfg 4.1.2. 前のフィーチャーのアンインストール 1. 2. プライマリおよび代替コンテナが実⾏していない場合は開始します。 既にコンテナを使⽤して前のサンプルを実⾏している場合、依存関係として暗黙的にロードされ るフィーチャーtesb-rac-commonを含め、前のサンプルで使⽤したすべてのフィーチャーをアン インストールしておく必要があります。アンインストールしていない場合、ロケーターサンプル のフィーチャーのインストールは失敗します。前のフィーチャーがまだインストールされている 可能性がある場合、両⽅のコンテナで次のコマンドを⼊⼒します: features:uninstall tesb-rac-services features:uninstall tesb-rac-common このコンテナにRent-a-Carレンタルクライアントアプリケーションをインストールしている場 合、これもアンインストールする必要があります: features:uninstall tesb-rac-app 3. これらのコマンドにより、基本のサンプルから残りのバンドルがアンインストールされます。 前のサンプルのアンインストール済みフィーチャーをコンテナから削除することもできます: features:removeurl mvn:org.talend.esb.examples.rent-a-car/features/5.5.1/xml このコマンドにより、コンテナから基本シナリオのフィーチャーが削除されます。 4.1.3. Service Activity MonitoringおよびService Locatorを有効化したデモのビルド デモをビルドするには、MavenとService Activity Monitoring およびService Locatorプロファイル を組み合わせて使⽤します。そのためデモをビルドする前に、Talend RuntimeコンテナでService Activity MonitoringおよびService Locator機能が有効になっていることを確認する必要があります。 88 Talend ESB⼊⾨ガイド Rent-a-Carサンプルフィーチャーのインストール 1. 2. コマンドラインコンソールから、ディレクトリを<TalendRuntimePath>/examples/talend/tesb/ rent-a-carに変更します。 その中にあるpom.xmlファイルは、Mavenによりデモのビルドに使⽤されます。 LinuxまたはWindowsでMavenコマンドを実⾏します: mvn install -Pslsam このコマンドを実⾏すると、必要な機能が含むデモがビルドされ、コンテナにデプロイされる OSGiバンドルが作成されます。 Service Activity MonitoringエージェントおよびService Locatorが有効な状態でサンプルをビル ドする場合、以下の変更が発⽣します: • 次のように、Service Activity MonitoringエージェントおよびService Locator のjaxws:featuresが、関連するクライアントやサービスエンドポイントのSpring beans.xmlファイルに追加されます: <import resource="classpath:META-INF/tesb/locator/beans-osgi.xml" /> <import resource="classpath:META-INF/tesb/agent-osgi.xml" /> ... <jaxws:features> <bean class="org.talend.esb.servicelocator.cxf.LocatorFeature"> <property name="selectionStrategy" value="randomSelectionStrategy"/> </bean> <ref bean="eventFeature"/> </jaxws:features> • 関連するクライアントおよびサービスエンドポイントのMANIFEST.MFファイルは、samcommon、sam-agent、locatorバンドルをRequire-Bundleリストに追加することで更新さ れます。 4.1.4. Rent-a-Carサンプルフィーチャーのインストール 4.1.4.1. プライマリコンテナへのサンプルのインストール 1. Rent-a-Carフィーチャーの場所をプライマリTalend Runtimeコンテナ(<TalendRuntimePath>/ container/)に追加します。 コンソールプロンプト(karaf@trun>)で、次のコマンドを⼊⼒します: features:addurl mvn:org.talend.esb.examples.rent-a-car/features-sl-sam/5.5.1/xml 2. ご利⽤のインストール環境のバージョン番号が"5.5.1"でない場合、このバージョンに更新してく ださい。 前のサンプルが既にインストールされている場合、次のコマンドを実⾏します: features:refreshurl 3. 次に以下のコマンドを⼊⼒します: features:install tesb-rac-services-sl-sam features:install tesb-rac-app-sl-sam Talend ESB⼊⾨ガイド 89 1つのコンテナでデモを実⾏してService Activity Monitoringデータを⽣成 4. その後、listコマンドを使⽤して、すべてが適切にインストールされたかどうかを確認します。 たとえば、以下のように表⽰されます: [ [ [ [ 219] [Active ] 220] [Active ] 221] [Active ] 222] [Active ] SAM (5.5.1) [ 223] [Active ] [ 224] [Active ] and SAM (5.5.1) [ 225] [Active ] (5.5.1) [ 226] [Active ] SAM (5.5.1) [ 227] [Active ] [ [ [ [ ] ] ] ] [ ] [ ] [ ] [Started] [ [ [ [ 80] 80] 80] 80] CRMService Common (5.5.1) ReservationService Common (5.5.1) CRMService Service (5.5.1) CRMService Service Endpoint Locator and [ [ ] [ ] [ 80] ReservationService Service (5.5.1) ] [Started] [ 80] ReservationService Service Endpoint SL [ ] [Started] [ 80] CRMService Client Locator and SAM [ ] [Started] [ 80] ReservationService Client Locator and [Created ] [ ] [ 80] App Reservation (5.5.1) 4.1.4.2. 代替コンテナへのサンプルのインストール 1. 2. 初めてデモを実⾏する際に代替コンテナは使⽤されないため、必要に応じてフィーチャーのインストール後に 代替コンテナを停⽌できます。 代替コンテナを開始します。 代替コンテナコンソールで、次のコマンドを⼊⼒します。 features:addurl mvn:org.talend.esb.examples.rent-a-car/features-sl-sam/5.5.1/xml 3. 前のサンプルが既にインストールされている場合、次を⼊⼒します: features:refreshurl 4. さらに次を⼊⼒します: features:install tesb-rac-services-sl-sam 5. tesb-rac-app-sl-samでなく、これらの機能のみをインストールします。 その後、listコマンドを使⽤して、すべてが適切にインストールされたかどうかを確認します。 たとえば、以下のように表⽰されます: [ [ [ [ 219] [Active ] 220] [Active ] 221] [Active ] 222] [Active ] SAM (5.5.1) [ 223] [Active ] [ 224] [Active ] and SAM (5.5.1) [ [ [ [ ] ] ] ] [ ] [ ] [ ] [Started] [ [ [ [ 80] 80] 80] 80] CRMService Common (5.5.1) ReservationService Common (5.5.1) CRMService Service (5.5.1) CRMService Service Endpoint Locator and [ [ ] [ ] [ 80] ReservationService Service (5.5.1) ] [Started] [ 80] ReservationService Service Endpoint SL 4.1.5. 1つのコンテナでデモを実⾏してService Activity Monitoringデータを⽣成 このセクションでは、デモサービスおよびクライアントアプリケーションを1つのコンテナ(プライマ リコンテナ。「1つのコンテナでデモを実行してService Activity Monitoringデータを生成」を参照)に デプロイしてService Activity Monitoring機能を確認する⽅法について説明します。そのため、この シナリオではService Locatorはほとんど使⽤されないので、代替コンテナは不要です。 90 Talend ESB⼊⾨ガイド 1つのコンテナでデモを実⾏してService Activity Monitoringデータを⽣成 1. 2. 代替コンテナを実⾏している場合、実際にデモを実⾏する前にそれを停⽌します。次回デモを実 ⾏するときに再度それを開始します。 基本Rent-a-Carデモのようにクライアントアプリケーションを実⾏します(詳細は「デモの実 行」を参照): car:gui 3. 表⽰されたレンタルクライアントアプリケーションユーザーインターフェイスで、[Find] (検索) をクリックします。 デモではこの⼿順で⼗分です。デフォルトコンテナコンソールには、次のような出⼒が表⽰され ます: ############################################### getCRMInformation() invoked ... request data: org.talend.services.crm.types.LoginUserType@fc0795 ############################################### ############################################### getCRMInformation() invoked ... response data: org.talend.services.crm.types.CustomerDetailsType@560854 ############################################### ############################################### getAvailableCars() invoked ... request data: org.talend.services.reservation.types.RESProfileType@a14297 ############################################### ############################################### getAvailableCars() invoked ... response data: org.talend.services.reservation.types.RESCarListType@11ad529 ############################################### これは、CRMServiceおよびReservationServiceの要求と応答を⽰しています。 4.1.5.1. Talend Administration CenterのService Activity Monitoringインターフェイスでのイベントの表⽰ Rent-a-Carデモを実⾏した後、EnterpriseおよびPlatform製品ユーザーはTalend Administration CenterのService Activity Monitoring GUIを使⽤してサービスのアクティビティを監視できます: 4.1.5.2. Service Activity Monitoringデータベースのイベントの表⽰ Rent-a-Carデモを実⾏した後、Talend ESB Standard EditionおよびTalend Open Studio for ESBの ユーザーは、DbVisualizer (またはその他の任意のデータベースツール)を使⽤して、Service Activity MonitoringデータベースのEVENTSおよびEVENTS_CUSTOMINFOテーブルでサービスのアクティビ ティを監視できます。 Service Activity Monitoringデータベースに接続するには、次の設定を使⽤します: Database connection configuration (Default): DB Driver: org.apache.derby.jdbc.ClientDriver DB URL: jdbc:derby://localhost:1527/db DB username: test DB password: test データベース接続は、<TalendRuntimePath>/etc/org.talend.esb.sam.server.cfgファ イルで定義された設定、および参照するデータソースの設定(デフォルトではDerby (dsTalend ESB⼊⾨ガイド 91 2つのコンテナでのデモの実⾏ - Service Locatorでのサーバーフェールオーバーのシミュレーション derby)。<TalendRuntimePath>/etc/org.talend.esb.datasource.derby.cfgファイルにあります)と ⼀致する必要があります。 これで、EVENTSおよびEVENTS_CUSTOMINFOテーブルのデータをDbVisualizerで参照および監 視できます。たとえば、Service Activity Monitoring機能を有効にしてRen-a-Carデモを実⾏した 後、EVENTSテーブルのデータは次のようになります: テーブルのスキーマ定義の詳細は、『Talend ESBインフラストラクチャサービス Configuration Guide』の「EVENTS構造」および「EVENTS_CUSTOMINFO構造」のセクションを参照してくださ い。 4.1.6. 2つのコンテナでのデモの実⾏ - Service Locatorで のサーバーフェールオーバーのシミュレーション このセクションでは、2つのコンテナを使⽤して1つのサンプルサービスを停⽌しながらデモを再実⾏ する⽅法を⽰します。これにより、サービスのフェールオーバー発⽣時のService Locatorの役割を ⽰し(「2つのコンテナでのデモの実行 - Service Locatorでのサーバーフェールオーバーのシミュレー ション」を参照)、クライアントがこの機能を使⽤して別のサービスに再接続する⽅法を⽰します。 図4.1 サーバーフェールオーバーのデモ 以下のような多数の⼿順があります: 1. app-reservationは、Service LocatorでCRMServiceエンドポイントを検索します。 3. ここで、CRMServiceを停⽌します。 2. 92 その後、プライマリコンテナのCRMServiceに直接接続します。 Talend ESB⼊⾨ガイド 2つのコンテナでのデモの実⾏ - Service Locatorでのサーバーフェールオーバーのシミュレーション 4. 5. app-reservationは、Service LocatorでCRMServiceエンドポイントを⾃動的に再検索します。 その後、代替コンテナのCRMServiceに直接接続します。 4.1.6.1. デモの実⾏ 1. 2. デフォルトのコンテナコンソールでコマンドcar:guiを⼊⼒してアプリケーションで[Find] (検 索)をクリックして、レンタルクライアントアプリケーションを再度実⾏します。アプリケー ションの実⾏時に、前と同じ要求と応答が表⽰されます。 前の予約の⼿順に戻るには、GUIアプリケーションは終了せずに、[Back] (戻る)をクリックしま す。 サービス障害のシミュレーション ここで、サービス障害をシミュレーションします: 1. 2. 代替コンテナを開始します。 デフォルトコンテナで、コマンドlistを⼊⼒してCRMServiceバンドルの詳細を取得 し、CRMServiceサービスエンドポイントバンドルの番号をメモします: [ 222] [Active ] [ SAM (5.5.1) 3. 4. ] [ ] [ 80] CRMService Service Endpoint Locator and (ここでは番号は「222」ですが、多くの場合実際のコンソールでは別の値になります)。 コマンドstop 222を使⽤してバンドルを停⽌します(メモしたバンドル番号を使⽤します)。 次にアプリケーションGUIで[Find] (検索)ボタンをクリックして、CRMServiceの呼び出しを有効 にします。 これでReservationServiceは最初のコンテナで実⾏され、CRMServiceは2番⽬のコンテナで実⾏され ます。 最初のコンテナコンソールでは次のように表⽰されます: ############################################### getAvailableCars() invoked ... request data: org.talend.services.reservation.types.RESProfileType@1d510be ############################################### ############################################### getAvailableCars() invoked ... response data: org.talend.services.reservation.types.RESCarListType@13e49a8 ############################################### その後、ロケーターは2番⽬のコンテナのCRMServiceに切り替えます。代替コンテナコンソールに は、次のように表⽰されます: ############################################### getCRMInformation() invoked ... request data: org.talend.services.crm.types.LoginUserType@1142653 ############################################### ############################################### getCRMInformation() invoked ... response data: org.talend.services.crm.types.CustomerDetailsType@1e03fce ############################################### Talend ESB⼊⾨ガイド 93 デモフィーチャーのアンインストール 4.1.7. デモフィーチャーのアンインストール この後でサンプルを実⾏できるように両⽅のTalend Runtimeコンテナをクリーンアップするため に、ロケーターサンプルのすべてのフィーチャーをアンインストールする必要があります。 1. デフォルトコンテナで、コンソールに次のコマンドを⼊⼒します: features:uninstall tesb-rac-services-sl-sam features:uninstall tesb-rac-common-sl-sam features:uninstall tesb-rac-app-sl-sam 2. 代替コンテナで、コンソールに次のコマンドを⼊⼒します: features:uninstall tesb-rac-services-sl-sam features:uninstall tesb-rac-common-sl-sam 3. 「features:list | grep tesb-rac」と⼊⼒して、すべてのフィーチャーが実際にアンインス トールされていることを確認します。 すべてのフィーチャーの状態は「uninstalled」と表⽰されます。 4.2. Security Token Serviceを使⽤してWSSecurityベースのSAML認証を提供するRent-aCarのデモ このセクションでは、Security Token Serviceフィーチャーを有効にして、WS-Securityベースの SAML認証を提供するRent-a-Carのデモを構築および実⾏する⽅法を説明します。 Rent-a-CarサンプルのWS-Securityを有効にするには、Security Token Serviceサーバーをインストー ルし、デプロイする必要があります。 このデモのサンプルの⼿順を実⾏するには、次の作業が必要です。 1. 必要な場合は、「デモの代替コンテナの作成」の説明に従い、代替のコンテナを作成します。 3. インフラストラクチャサービスを使⽤してプライマリコンテナ(および、必要な場合は代替コン テナ)を開始します。「Talend Runtimeの実行」を参照してください。 2. 4. 必要な場合は、「ログの設定」の説明に従い、デフォルトのログ設定をオーバーライドするため のログを設定します。 デモを構築します。「セキュリティが有効なデモの構築」を参照してください。 4.2.1. ログの設定 STS機能は、<TalendRuntimePath>/examples/talend/tesb/rent-a-car/にある標準のRent-a-Carで 有効です。 Rent-a-CarSecurity Token Serviceサンプルでは、デフォルトで、クライアントとサーバーの設定 ファイル内の⾃動ログが有効になっています。 94 Talend ESB⼊⾨ガイド セキュリティが有効なデモの構築 サンプルの⾃動ログを無効にするには、Rent-a-CarSecurity Token Serviceサンプルのサービスとク ライアントの両⽅でbeans.xmlファイルから次のXMLノードを削除します。 <cxf:bus> <cxf:features> <cxf:logging /> </cxf:features> </cxf:bus> クライアントとSecurity Token Serviceからのログメッセージは、代替コンテナに保存されます。 ./alternate-container/log/tesb.log サービスからのログメッセージは、プライマリコンテナと同じディレクトリに保存されます。 4.2.2. セキュリティが有効なデモの構築 デモを構築するには、MavenとSecurity Token Serviceプロファイルを使⽤します。 1. Security Token Serviceサービスが開始されていることを確認するには、デフォルトのTalend Runtimeコンテナが停⽌している場合はそれを開始し、コンソールで次のコマンドを実⾏しま す。 list 次のバンドルがリストに表⽰されます。Apache CXF STS CoreおよびTalend ::ESB :: STS :: CONFIG。これらではSTS機能が有効です。 2. 3. Security Token Serviceサービスを開始していない場合は、ここでtesb:start-allコマンドで 実⾏するか、または他のフィーチャー (Security Token Service、Service Locator)はすべて除き Security Token Serviceフィーチャーのみをインストールする場合は、tesb:start-stsコマンド を実⾏します。 EnterpriseユーザーとPlatformユーザーは、セキュリティ管理システムがTIDMからJAASに変 わったことを確認する必要があります(tesb:switch-sts-jaas)。詳細は、「Talend Runtimeの実 行」を参照してください。 ここで、デモのサンプルを構築するため、コマンドラインコンソールで、ディレクト リ<TalendRuntimePath>/examples/talend/tesb/rent-a-car/から次のコマンドを実⾏します。 mvn install -Psts 4. 次に、サンプル⾃体をインストールします。デフォルトのコンテナコンソールにRent-a-Car フィーチャーの場所を追加するため、次を⼊⼒します。 features:addurl mvn:org.talend.esb.examples.rent-a-car/features-sts/5.5.1/xml 5. STSのサンプルのインストールが終了し、カーソルが戻ったら、次を⼊⼒します。 features:refreshurl features:install tesb-rac-services-sts 6. 再度、カーソルが戻るまで待ちます。 代替コンテナを開始し、そのコンソール内で、次を⼊⼒します。 features:addurl mvn:org.talend.esb.examples.rent-a-car/features-sts/5.5.1/xml 7. サンプルがインストールされ、カーソルが戻ったら、次を⼊⼒します。 features:refreshurl Talend ESB⼊⾨ガイド 95 デモフィーチャーのアンインストール features:install tesb-rac-app-sts 再度、カーソルが戻るまで待ちます。 8. これで、STSサンプルはインストールされ、いつでも実⾏できます。 たとえば、代替コンテナでcar:guiを実⾏して、Rent-a-Carレンタルクライアントアプリケー ションを実⾏します。詳細は、「Javaを使用したデータサービスおよびルートのビルドおよびデ プロイ」を参照してください。 4.2.3. デモフィーチャーのアンインストール 1. デモの実⾏が終了したら、Security Token Serviceフィーチャーをアンインストールします。 代替コンテナで、次を⼊⼒します。 features:uninstall tesb-rac-app-sts features:uninstall tesb-rac-common-sts 2. プライマリコンテナで、次を⼊⼒します。 features:uninstall tesb-rac-services-sts features:uninstall tesb-rac-common-sts 4.3. Artifact Repositoryを使⽤したRent-a-Car のデモ このセクションでは、Artifact Repositoryを使⽤して、デモをTalend Runtimeにデプロイする⽅法 を説明します。Artifact Repositoryが他のコンポーネントと相互にやり取りする⽅法の概要について は、図1.6「Talend Enterprise ESBの運⽤の基本概念」を参照してください。 Talend ESBのコンテキストでは、Nexus Artifact Repositoryはプロビジョニングリポジトリ管理ソフ トウェアとして使⽤されます。Provisioning (プロビジョニング)は、デプロイおよび実⾏されるすべ てのESBアーティファクト(ルート、サービス、汎⽤OSGiフィーチャー)が保存されるカタログとして 使⽤されます。これらのESBアーティファクトは、開発者がStudioまたはその他のJava IDEで設計し ます。デフォルトでは、2つのリポジトリがこのリポジトリ内に組み込まれています。1つは開発環境 ⽤(Snapshots (スナップショット))で、もう1つは本番環境⽤(Releases (リリース))です。これらの リポジトリにより、アーティファクをはTalend Runtimeのデプロイメントで使⽤できます。 96 Talend ESB⼊⾨ガイド NexusArtifact Repositoryのダウンロードおよびインストール このセクションでは、Rent-a-CarのデモをArtifact Repositoryに⼿動でパブリッシュする⽅法と、そ のサービスをArtifact RepositoryからTalend Runtimeコンテナにデプロイする⽅法を説明します。 ユースケースの主な⼿順は次のとおりです。 • Artifact Repositoryをダウンロードおよびインストールします。「NexusArtifact Repositoryのダウ ンロードおよびインストール」を参照してください。 • Rent-a-CarのデモのフィーチャーをArtifact Repositoryにパブリッシュします。「Artifact Repositoryへのデモのパブリッシュ」を参照してください。 • Talend ESB Standard EditionまたはTalend Open Studio for ESBなどのコミュニティ製品の場合 は⼿動で、Rent-a-CarのデモのフィーチャーをArtifact RepositoryからTalend Runtimeにデプロ イします。「Nexus Artifact Repositoryを使用したデモのTalend ESB Standard Editionへのデプロ イ」を参照してください。 • Talend EnterpriseまたはPlatform製品の場合は、Talend Administration Centerを介してArtifact RepositoryからTalend RuntimeへRent-a-Carのデモのフィーチャーをデプロイします。「Talend Administration Centerを使用したデモのArtifact RepositoryからTalend Runtimeへのデプロイ」を参 照してください。 4.3.1. NexusArtifact Repositoryのダウンロードおよび インストール このユースケースでは、Talendが推奨するArtifact RepositoryであるSonatype Nexusを使⽤しま す。Nexusは、Mavenアーティファクトリポジトリの共有サーバーの⼀種として動作します。 Talend ESB Standard EditionまたはTalend Open Studio for ESBを使⽤している場合は、Nexusの Web (http://www.sonatype.org/nexus)で⼊⼿可能なNexusオープンソースまたはNexus Proディス トリビューションをダウンロードして、NexusのWebサイトで指定されたインストール⼿順に従いま す。 Talend EnterpriseまたはPlatform製品を使⽤している場合は、「Talend Administration Center の開始」で説明したとおり、Talend Administration Centerのインストール時にTalendArtifact Repositoryが既にインストールされています。 インストールするには、パッケージを解凍するだけです。 開始するには、ディレクトリを参照し、次のコマンドを実⾏します。 • ./bin/nexus console (Linux) • .\bin\nexus.bat console (Windows) Nexusは現在、http://localhost:8081/nexus/index.htmlで実⾏されています。デフォルトでは、 ログイン名はadminで、パスワードはadmin123です。 4.3.2. Artifact Repositoryへのデモのパブリッシュ 次の⼿順は、所有している製品のバージョンに応じてTalend ESB Standard Edition製品および Talend Open Studio for ESB製品または、Talend EnterpriseまたはPlatform製品のいずれかから実⾏ できます。これは、Talend Runtimeに付属のMavenプロジェクトファイルを使⽤してデモをNexus Artifact Repositoryにパブリッシュし、その後、Artifact RepositoryからTalend Runtimeコンテナに デプロイする⽅法を⽰しています。 Talend ESB⼊⾨ガイド 97 Artifact Repositoryへのデモのパブリッシュ 1. 2. Sonatype NexusまたはTalend Nexus Artifact Repository (EnterpriseユーザーまたはPlatform ユーザーの場合)が、「NexusArtifact Repositoryのダウンロードおよびインストール」に説明さ れているとおりにインストールされ実⾏していることを確認してください。 Talend Installerでインストールした場合は(EnterpriseユーザーまたはPlatformユーザーの場 合)、環境内でTalend Artifact (Talendアーティファクト)サービスとして表⽰されます。 Maven設定ファイルの<TalendRuntimePath>/examples/talend/tesb/rent-a-car/ settings.xmlと$user.dir/.m2/settings.xmlファイルに次のセクションを追加します。 <server> <id>nexus</id> <username>admin</username> <password>admin123</password> </server> 3. Mavenプロジェクトファイルの<TalendRuntimePath>/examples/talend/tesb/rent-a-car/ pom.xmlで、<distributionManagement>セクションを次のように変更します。 <distributionManagement> <!-- use the following if you're not using a snapshot version. --> <repository> <id>nexus</id> <name>RepositoryProxy</name> <url>http://localhost:8081/nexus/content/repositories/releases</url> </repository> <!-- use the following if you ARE using a snapshot version. --> <snapshotRepository> <id>nexus</id> <name>RepositoryProxy</name> <url>http://localhost:8081/nexus/content/repositories/snapshots</url> </snapshotRepository> </distributionManagement> http://localhost:8081/nexus/content/repositories/releasesは、Nexusがスタンドアロンと 4. してインストールされている場合、またはTalend Nexus Artifact Repositoryを使⽤している場 合に、使⽤される正しいURLです。ただし、NexusがTomcat内でWebアプリケーションとして インストールされている場合は(WARファイルデプロイメント)、URLはhttp://localhost:8080/ nexus-webapp/content/repositories/releasesになります。 ファイル<TalendRuntimePath>/container/etc/org.ops4j.pax.url.mvnのパラメー ターorg.ops4j.pax.url.mvn.repositoriesで、NexusリポジトリのURLを確認し、必要な場合は それを編集します。 org.ops4j.pax.url.mvn.repositories= \ ..... http://localhost:8080/nexus-webapp/content/repositories/releases@id=tesb.release, \ http://localhost:8080/nexus-webapp/content/repositories/ snapshots@snapshots@id=tesb.snapshot, \ http://localhost:8081/nexus/content/repositories/releases@id=tesb.releaseは、Nexus 5. がスタンドアロンとしてインストールされている場合、またはTalend Nexus Artifact Repository を使⽤している場合に、使⽤される正しいURLです。ただし、NexusがTomcat内でWebア プリケーションとしてインストールされている場合は(WARファイルデプロイメント)、URL はhttp://localhost:8080/nexus-webapp/content/repositories/releases@id=tesb.releaseに なります。 コマンドラインコンソールから、ディレクトリを<TalendRuntimePath>/examples/talend/tesb/ rent-a-car/に変更し、次のコマンドを実⾏して、Rent-a-Carの例のフィーチャーをArtifact Repositoryにデプロイします。 mvn deploy 98 Talend ESB⼊⾨ガイド Nexus Artifact Repositoryを使⽤したデモのTalend ESB Standard Editionへのデプロイ 6. http://localhost:8081/nexus/content/repositories/releasesに移動します。Rent-a-Carのサ ンプルorg.talend.esb.examples.rent-a-carは正常にデプロイされています。 Rent-a-CarのデモのフィーチャーはArtifact Repositoryにパブリッシュされているので、それらを Talend Runtimeコンテナにデプロイできます。実⾏⽅法の詳細は、以下を参照してください。 • Talend ESB Standard EditionおよびTalend Open Studio for ESBユーザーの場合は、「Nexus Artifact Repositoryを使用したデモのTalend ESB Standard Editionへのデプロイ」を参照してくださ い。 • Talend EnterpriseユーザーまたはPlatformユーザーの場合は、「Talend Administration Centerを使 用したデモのArtifact RepositoryからTalend Runtimeへのデプロイ」を参照してください。 4.3.3. Nexus Artifact Repositoryを使⽤したデモの Talend ESB Standard Editionへのデプロイ このセクションは、Talend ESB Standard EditionおよびTalend Open Studio for ESBのユーザーを対 象としています。Enterprise製品またはPlatform製品のユーザーは、「Talend Administration Center を使用したデモのArtifact RepositoryからTalend Runtimeへのデプロイ」に進んでください。Rent-aCarのデモのフィーチャーをArtifact RepositoryからTalend Runtimeコンテナにデプロイする⽅法が 説明されています。 1. 2. 3. 「Artifact Repositoryへのデモのパブリッシュ」に説明されているとおりに、Rent-a-Carのデモ のフィーチャーがArtifact Repositoryにパブリッシュされていることを確認します。 それらがパブリッシュされていることを確認するには、http://localhost:8081/ nexus/content/repositories/releaseに移動します。Rent-a-Carのサンプ ルorg.talend.esb.examples.rent-a-carは正常にデプロイされています。 コンテナを開始します。「Talend Runtimeの実行」を参照してください。 次のコマンドを使⽤して、Rent-a-CarのフィーチャーをTalend Runtimeコンテナにインストー ルします。 features:addurl mvn:org.talend.esb.examples.rent-a-car/features/5.5.1/xml features:refreshurl features:install tesb-rac-services features:install tesb-rac-app 4. 次のコマンドを使⽤してデモを実⾏します。 car:gui 4.3.4. Talend Administration Centerを使⽤したデモの Artifact RepositoryからTalend Runtimeへのデプロイ このセクションは、EnterpriseまたはPlatform製品のユーザーを対象としています。Talend ESB Standard EditionおよびTalend Open Studio for ESBのユーザーの場合は、「Nexus Artifact Talend ESB⼊⾨ガイド 99 Talend Administration Centerを使⽤したデモのArtifact RepositoryからTalend Runtimeへのデプロイ Repositoryを使用したデモのTalend ESB Standard Editionへのデプロイ」に進んでください。Talend Administration Center Webアプリケーションを介して、Rent-a-CarのデモのフィーチャーをArtifact RepositoryからTalend Runtimeコンテナにデプロイする⽅法が説明されています。 1. 2. 3. 4. 100 「ソフトウェアの開始」に説明されているとおりに、Talend Runtime、Talend Administration Center、およびNexus Artifact Repositoryが実⾏していることを確認します。 「Artifact Repositoryへのデモのパブリッシュ」に説明されているとおりに、Rent-a-Carのデモ のフィーチャーがArtifact Repositoryにパブリッシュされていることを確認します。 それらがパブリッシュされていることを確認するには、http://localhost:8081/ nexus/content/repositories/releaseに移動します。Rent-a-Carのサンプ ルorg.talend.esb.examples.rent-a-carは正常にデプロイされています。 Talend Administration Centerから、[Conductor] (コンダクター)の下の[ESB Conductor] (ESB コンダクター)をクリックして、新しいデプロイメントタスクを作成します。 上部の[Add] (追加)ボタンをクリックして、右側に表⽰された[Edition] (エディション)フォーム に⼊⼒します。 Talend ESB⼊⾨ガイド Talend Administration Centerを使⽤したデモのArtifact RepositoryからTalend Runtimeへのデプロイ 5. 6. 7. 8. 9. [Metadata] (メタデータ)エリアの[Label] (ラベル)フィールドで、たとえば、サービスにrent-acarと名前を付け、[Description] (説明)フィールドにdemoと⼊⼒します。 [Feature] (フィーチャー)エリアで、[Select Feature] (フィーチャーを選択)をクリックし て、[Select Feature from Nexus repository] (フィーチャーをNexusリポジトリから選択)ウィ ザードを開きます。このウィザードは、このエリアの以降のフィールドを⼊⼒するために役⽴ち ます。 [Repository] (リポジトリ)リストで、releasesを選択し、org > talend > esb > examples > rent-a-car > features > 5.5.1の順に参照して、features-5.5.1.xmlフィーチャーを選択 し、[OK]をクリックします。[Features] (フィーチャー)エリアのフィールドが⾃動的に⼊⼒さ れます。 [Name] (名前)リストでtesb-rac-servicesオプションを選択し、[Type] (タイプ)リスト で[Service] (サービス)を選択します。 [Runtime Config] (ランタイム設定)エリアの[Server] (サーバー)リストで、[Talend Runtime Container] (Talend Runtimeコンテナ)を選択します。 [Save] (保存)をクリックして、デプロイメントタスクを作成します。 rent-a-carデプロイメントタスクがリストに表⽰されます。 [Deploy] (デプロイ)をクリックすると、tesb-rac-servicesフィーチャーがTalend Runtimeコ ンテナにデプロイされ、⾃動的に開始されます。 [Last Action] (最終アクション)列の値が、CREATED (作成済み)からDEPLOYED (デプロイ済み) に変わります。 これでRent-a-CarサービスはTalend Runtimeコンテナにデプロイされ、⾃動的に開始されるた め、使⽤可能となります。コンテナのコンソールプロンプトでlistと⼊⼒すると、サービスがア クティブであることを確認できます。 [ 349] [Active ] [ [ 350] [Active ] [ (5.5.1) [ 351] [Active ] [ [ 352] [Active ] [ JMX (5.5.1) [ 353] [Active ] [ (5.5.1) [ 354] [Active ] [ Endpoint JMX (5.5.1) ] [ ] [ ] [ ] [ 80] CRMService Common (5.5.1) 80] ReservationService Common ] [ ] [ ] [Started] [ 80] CRMService Service (5.5.1) 80] CRMService Service Endpoint ] [ ] [ 80] ReservationService Service ] [Started] [ 80] ReservationService Service Rent-a-Carレンタルクライアントアプリケーションを介してこれらのサービスを使⽤するには、同様 に、該当するサービスをTalend Runtimeコンテナにデプロイする必要があります。デプロイするに Talend ESB⼊⾨ガイド 101 XKMSを使⽤したRent-a-Carのデモ は、上記と同じ⼿順に従います。ただし、[Features] (フィーチャー)エリアの[Name] (名前)リスト でtesb-rac-appフィーチャーを選択します。 レンタルクライアントアプリケーションサービスをTalend Runtimeコンテナにデプロイした 後、car:guiコマンドを介してそのインターフェイスを実⾏し、インターフェイスでRent-a-Carサー ビスを使⽤できます。 Talend Administration Centerを介したデプロイメントの別のユースケースについては、「Talend Administration Centerからのパブリッシュとデプロイメント」を参照してください。このユースケー スでは、サービスの開発がTalend Studio内で⾏われたため、Artifact Repositoryへのパブリッシュと Talend Runtimeコンテナへのデプロイメントの両⽅がTalend Administration Centerで処理されてい ます。 ESBコンダクターの詳細は、『Talend Administration Center User Guide』を参照してください。 4.4. XKMSを使⽤したRent-a-Carのデモ このセクションでは、メッセージを暗号化またはメッセージに署名するためにXKMSサービスからパ ブリック証明書を取得するRent-a-Carの例を設定する⽅法を説明します。 XKMSフィーチャーは、TalendのEnterprise製品とPlatform製品でのみ使⽤可能です。そのた め、Talend ESB Standard EditionおよびTalend Open Studio for ESBのユーザーはこのデモを実⾏で きません。 このデモの例の⼿順を実⾏するには、次の作業が必要です。 1. 2. 3. インフラストラクチャサービスを使⽤してコンテナを開始します。「Talend Runtimeの実行」を 参照してください。 XKMSサービスを設定します。「デモ用のXKMSサービスの設定」を参照してください。 デモを構築し、実⾏します。「Rent-a-Carデモの例の構築」を参照してください。 4.4.1. デモ⽤のXKMSサービスの設定 Talend RuntimeコンテナとXKMSサービスが開始した後、デフォルト設定をデモに適合させる必要が あります。 1. XKMSサービスが開始されていることを確認するには、デフォルトのTalend Runtimeコンテナが 停⽌している場合はそれを開始し、コンソールで次のコマンドを実⾏します。 list XKMS機能が有効な次のバンドルがリストに表⽰されます。 [ 233] [Active ] (2.7.11) [ 234] [Active ] (2.7.11) [ 343] [Active ] (2.7.11) [ 344] [Active ] (2.7.11) [ 345] [Active ] deployment (2.7.11) 102 [ ] [ ] [ 80] Apache CXF XKMS Common [Created ] [ ] [ 80] Apache CXF XKMS Client [ ] [ ] [ 80] Apache CXF XKMS Service [ ] [ ] [ 80] Apache CXF XKMS X509 Handlers [Created ] [ ] [ 80] Apache CXF XKMS OSGi Talend ESB⼊⾨ガイド Rent-a-Carデモの例の構築 2. 3. XKMSサービスを開始していない場合は、ここでtesb:start-allコマンドで実⾏するか、または 他のフィーチャー (Security Token Service、Security Token Service、Service Locator)はすべて 除きXKMSフィーチャーのみをインストールする場合は、tesb:start-xkmsコマンドを実⾏しま す。 XKMSサービスは、バックエンドリポジトリとしてLDAPとFileの両⽅をサポートします。テスト 環境またはデモ環境で、Fileリポジトリを使⽤するようにXKMSサービスを設定します(使⽤がよ り簡単)。 container/etc/org.apache.cxf.xkms.cfg設定ファイルを編集します。 Certificate repository (証明書リポジトリ)パラメーターが次のように設定されていることを確 認します。 xkms.certificate.repo=file 4. Filesystem backend (ファイルシステムバックエンド)パラメーターが次のように設定されてい ることを確認します。 xkms.file.storageDir=${karaf.home}/esbrepo/xkms/certificates この例で使⽤されているパブリック証明書(*.cer)は、Talend Runtimeコンテナのデフォルト の${karaf.home}/esbrepo/xkms/certificates/trusted_cas XKMSリポジトリに事前にインス トールされています。 4.4.2. Rent-a-Carデモの例の構築 この例を構築するには、ランタイムの特定のXKMSで使⽤可能なXKMS Rent-a-Carの例を構築する必 要があります。 1. ここで、デモの例を構築するため、コマンドラインコンソールで、ディレクトリを次に変更しま す。 <TalendRuntimePath>/examples/talend/xkms/rent-a-car 次のコマンドを実⾏します。 mvn install 2. 次に、例⾃体をインストールします。Talend Runtimeコンテナコンソールで、次のコマンドを 実⾏します。 features:addurl mvn:org.talend.esb.ee.examples.rent-a-car/features/5.5.1/xml features:install tesb-rac-services-xkms features:install tesb-rac-app-xkms 3. その後、listコマンドを使⽤して、すべてが適切にインストールされたかどうかを確認します。 [ 373] [Active ] [ [ 374] [Active ] [ (5.5.1) [ 375] [Active ] [ [ 376] [Active ] [ XKMS (5.5.1) [ 377] [Active ] [ (5.5.1) [ 378] [Active ] [ Endpoint XKMS (5.5.1) ] [ ] [ ] [ ] [ 80] CRMService Common (5.5.1) 80] ReservationService Common ] [ ] [ ] [Started] [ 80] CRMService Service (5.5.1) 80] CRMService Service Endpoint ] [ ] [ 80] ReservationService Service ] [Started] [ 80] ReservationService Service Talend ESB⼊⾨ガイド 103 Rent-a-Carデモの例の構築 [ 379] [Active [ 380] [Active (5.5.1) [ 381] [Active 4. ] [ ] [ ] [Started] [ ] [Started] [ 80] CRMService Client XKMS (5.5.1) 80] ReservationService Client XKMS ] [Created ] [ 80] App Reservation (5.5.1) ] [ デモを使⽤するために、レンタルクライアントインターフェイスを使⽤できます。インターフェ イスを開くには、Talend Runtimeコンテナコンソールのプロンプトで、次のコマンドを実⾏し ます。 car:gui 104 Talend ESB⼊⾨ガイド
© Copyright 2024 Paperzz