つなぐ、つながる SOA (異機種混在環境での SOA) 2009年 3月 13日 渋谷テクニカルナイト SOA
by user
Comments
Transcript
つなぐ、つながる SOA (異機種混在環境での SOA) 2009年 3月 13日 渋谷テクニカルナイト SOA
渋谷テクニカルナイト つなぐ、つながる SOA (異機種混在環境での SOA) 2009年 3月 13日 日本アイ・ビー・エム株式会社 ソフトウェア事業 SOAビジネス開発 IT アーキテクト/SOA エバンジェリスト 上沢 健 本日の主旨 世界レベルの経済情勢の激変、少子高齢化、顧客嗜好の多様化、競合製品の増加などにより、 企業を取り巻くビジネス環境は目まぐるしく変化しています。 企業の情報システムには、そのようなビジネス環境の変化に俊敏に追従し、業務部門の要求 を迅速に取り入れるための拡張性と変更性が求められています。 そのような拡張性と変更性に富んだ情報システムを構築するための考え方として、近年脚光を 浴びているのが SOA (サービス指向アーキテクチャー) です。 SOA は、業務の観点から必要なビジネス機能を「サービス」として定義し、稼動している「サー ビス」を統合技術を使って組み合わせてシステムを構築する、というアーキテクチャーです。 しかしながら、業務と情報システムが密接に結び付いている現状においては、既存の情報シス テムと同等の機能をスクラップ&ビルドで一から SOA に従って作り直すというのは、しばしば非 現実的でありコストと期間も掛かります。 SOA を採用する場合に、異機種環境で構成されている既存の情報システムをどのように扱う かは重要な考慮点であり、既存アプリケーションへの影響を極小化しつつ、どのようにしてサー ビス化して再利用して有効活用していくかを明らかにする必要があります。 本日は、既存資産の有効活用や異機種環境への接続性に主眼を置いた SOA 適用パターン について、ケース・スタディやデモを使用して説明していきます。 1 つなぐ、つながる SOA (異機種混在環境での SOA) 企業の情報システムの変遷 1970年代 コンピュータを使用した 大量処理による効率性 1980年代 1990年代 2000年代 人手作業の 自動化 オンライン・システムに よる事務処理の効率性 オープン系システム、LAN、インターネット、 Web 等を活用した新しい業務形態の実現 ERP などのパッケージ製品の採用による 統合的な業務管理の実現 事務処理の 電子化 新しい形態の 業務の実現 ERP などのパッ ケージの採用 現在は、情報システムがあらゆる業務の様々な局面に入り込み、 業務を遂行する上で必須な役割を担っています。 2 つなぐ、つながる SOA (異機種混在環境での SOA) よくある話・・・ 新しく帳票を 1枚作って欲しいのですが・・・ 帳票は○○○伝票のこことそこをこのように変更したもので ここの枠内のデータは△△△システムのこの画面で入力さ れたデータをこのように加工して出力して欲しいのですが。 帳票 1枚追加だけの修正だから すぐ対応してもらえるだろう・・・ 変更箇所の 曖昧さ 変更の影響 変更の反映 ・・・というリクエストが来ているのだが どのくらいで完成できるだろうか? 修正箇所についてはこの辺りだと思いますが、 画面と DB アクセス部分のソース・コードも 一緒にコピーして修正するのが安全かと・・・ その程度ならば、開発はすぐに完了しますが 関連するシステムが修正の影響を受けていないか を確認するためのテストに時間がかかります。 更に、△△△システムは基幹システムなので、 本番に反映できるのはお盆休みになりますが・・・ 大規模な情報システムほど、変更要望への対応に時間とコストかかるのが現状です。 3 つなぐ、つながる SOA (異機種混在環境での SOA) 現在の情報システムが複雑化した主な要因 「その時点でできること」を採用 バッチ処理、オンライン処理、LAN、グループウェア、Web システム・・・ PL/I、COBOL、Basic、C、Java・・・ 構造化設計、オブジェクト指向設計、コンポーネント・ベース設計・・・ 案件毎/部門別の開発 サイロ型のシステム 変更を意識していない設計 重複した機能、データの散在 独自技術による連携機能を ad-hoc に開発 情報システムがカバーすべき範囲の拡大 モバイルアクセス、グローバル対応、製品・サービスの IT 化 ・・・ 効率性の追求 ⇒ 競争優位の実現 ⇒ IT を活用した Innovation の実現 4 つなぐ、つながる SOA (異機種混在環境での SOA) 変化に機敏に追従するための SOA SOA = サービス指向アーキテクチャー (Service Oriented Architecture) 従来のような IT 機能指向ではなく、サービスを指向しているアーキテクチャー。 例えば、「稼動しているサービスを統合技術を使って組み合わせ、システムを構築 する」という考え方です。 http://www.ibm.com/jp/solutions/soa/about/index.html 「SOA とは?」より引用 サービス = ビジネスにおいて繰り返し使用される業務機能 繰り返し可能なビジネス・タスクを共通化・抽象化し、ビジネス的に意味のある単位 で切り出した機能の固まり。 サービスにより ビジネス変化への IT の追従性を高める ビジネス ・ビジネス目標、KPI ・ビジネス・プロセス ・業務フロー、 ・準拠すべき業務ルール等々 5 サービスにより ビジネスと IT の 隔たりを無くす サービス ビジネス IT IT ・システム、サブ・システム ・ワークフロー、ファイル転送 ・インターフェース、コンポーネント ・IT セキュリティ、等々 つなぐ、つながる SOA (異機種混在環境での SOA) SOA の歴史 6 「Service Oriented Architecture」という言葉の登場 1996年 4月 12日 Gartner のリサーチ・ノート Service Oriented Architectures, Part1 Service Oriented Architectures, Part2 広く知られるようになったのは、 2003年 7月 10日 Gartner のリサーチ・ノート 「サービス指向アーキテクチャー (SOA) の紹介」 IBM は 2004年 5月 18日付で SOA に関連するミドルウェア およびコンサルティング・サービスを発表 つなぐ、つながる SOA (異機種混在環境での SOA) 典型的な SOA の進め方 サービスと フローの識別 サービス仕様と フロー仕様の 定義 サービスと フローの実現 サービスと フローの実装 サービスの候補 と、必要なフロー を識別。 サービス候補の 中からサービス として作成するも のを決定し、サ ービス仕様とフロ ー仕様を定義。 サービスとフロー の技術的実現可 能の検証や実現 方法を決定。 サービスとフロー の構築/生成/ アセンブル/テ ストを実施。 サービスと フローの展開 実装したサービス とフローを展開。 タスク3 フロー タスク1 タスク2 タスク6 タスク4 サービス 7 サービス サービス サービス タスク5 サービス サービス サービス つなぐ、つながる SOA (異機種混在環境での SOA) SOA でサービス候補を識別するには、 IBM の SOA メソドロジーではサービス候補を識別する手法を幾つか開発しています。 代表的な手法としては、以下の 3つがあります。 z ドメイン分割 (プロセス分割) ビジネス・プロセスを分割していき、サービス候補を見つけ出す手法 z ゴール・サービス・モデリング ビジネス目標 (ゴール) を分割していき、サービス候補を見つけ出す手法 z 既存資産の分析 既存業務で使用されている情報システムを調査してサービス候補を見つけ出す手法 ドメイン分割 (プロセス分割)の例 既存資産の分析の例 ゴール・サービス・モデリングの例 8 つなぐ、つながる SOA (異機種混在環境での SOA) SOA のサービスを入手するには、 サービスを入手する方法は 4つ に分類されます。 1.Java 等の言語で新規に設計・開発する。 2.SOA 対応の ERP パッケージなど、製品として購入する。 3.インターネット上で公開されているサービスを利用する。 4.既存システムが提供する機能をサービスとして使用する。 新規にサービスを開発することが常に最善策というわけではありません。 IT があらゆる業務の様々な局面に入り込んでいる現状では、 4.の既存システムが提供する機能をサービスとして使用することが 非常に重要となってきます。 9 つなぐ、つながる SOA (異機種混在環境での SOA) 既存資産のサービス化のパターン ①.既存システムをサービスとフローに 再定義して分析・分解し、再構築して サービスとして公開 改修してサービス化 既存資産の サービス化 ②.ファイル転送などで連携している 既存システムに、Web サービス等の 標準技術インターフェースを実装し サービスとして公開 ③.ESB やゲートウェイ等の機能で、 既存システムをサービスとして公開 ESB、ゲートウェイ等 によりサービス化 10 ④.既に Web サービス・インターフェース 等を実装している等の既存のサービスを ESB の機能で仮想化して公開 つなぐ、つながる SOA (異機種混在環境での SOA) ケース・スタディ、デモで使用する IBM 製品 (1) 歴史ある IBM MQ をベースに企業ワイドな 接続性、信頼性、パフォーマンスを提供する IBM WebSphere Message Broker J2EE ベースで Web サービス中心の ESB 機能を提供する IBM WebSphere Enterprise Service Bus 略称:WMB 略称:WESB XML 処理に特化した高速でセキュアなアプライアンス IBM WebSphere DataPower XI50 製品の機能や 詳細については 右記 URL を 参照ください。 11 XS40 略称: DataPower XA35 「WebSphere Message Broker V6.1」 http://www.ibm.com/jp/software/websphere/integration/wmbv61/ 「WebSphere Enterprise Service Bus V6.2」 http://www.ibm.com/jp/software/websphere/integration/esbv61/ 「WebSphere DataPower SOA アプライアンス」 http://www.ibm.com/jp/software/websphere/bi/datapower/ つなぐ、つながる SOA (異機種混在環境での SOA) ケース・スタディ、デモで使用する IBM 製品 (2) 略称:WMB Toolkit 略称:WID IBM WebSphere Message Broker の 統合開発環境である Eclipse ベースの IBM WebSphere Message Broker Toolkit IBM WebSphere Enterprise Service Bus の 統合開発環境である Eclipse ベースの IBM WebSphere Integration Developer 製品については 右記 URL を 参照ください。 12 「Message Broker Toolkit V6.1」 http://www.ibm.com/jp/software/websphere/integration/wmbv61 / 「WebSphere Integration Developer V6.2」 http://www.ibm.com/jp/software/websphere/integration/wid/ つなぐ、つながる SOA (異機種混在環境での SOA) ①.既存システムを分解して再構築 13 つなぐ、つながる SOA (異機種混在環境での SOA) ①.【ケース・スタディ】 既存システムを分解して再構築 課題 輸入システム 手配情報の 連携 請求・支払い 情報の連携 重複した 機能 コンテナ配送システム トラック輸送システム 料金見積 輸入書類 料金見積 作業手配 料金見積 配車処理 作業手配 輸入通関 配車処理 配送処理 配送処理 配送完了 荷捌処理 立替処理 配送完了 請求処理 下払処理 請求処理 下払処理 請求処理 下払処理 収支管理 収支管理 収支管理 輸入フロー コンテナ配送フロー トラック輸送フロー サービスとして公開 14 手配情報 請求情報 支払情報 請求処理 下払処理 収支管理 つなぐ、つながる SOA (異機種混在環境での SOA) ①.【ケース・スタディ】 既存システムを分解して再構築 課題 輸入システム コンテナ配送システム トラック輸送システム 手配情報の 料金見積最も工数と期間が掛かりますが、 輸入書類 料金見積 作業手配 料金見積 配車処理 連携 変化への対応の機敏性向上などを実現するための 請求・支払い 情報の連携 重複した 機能 作業手配 輸入通関 配車処理 配送処理 配送処理 配送完了 最も根本的な解決策であり、王道と言えます。 荷捌処理 立替処理 配送完了 ※ レガシー (ホスト) システムが対象となるケースが多く、 IBM 請求処理 では L2SOA (Legacy to SOA) ソリューションとして提供しています。 下払処理 請求処理 下払処理 請求処理 下払処理 「SOA 設計・開発・統合サービス」 収支管理 http://www.ibm.com/jp/solutions/soa/service/contents.html#5 収支管理 収支管理 輸入フロー ただし、この方法 (①.) だけが、 コンテナ配送フロー 既存資産をSOA化する方法ではありません。 トラック輸送フロー 既存資産の SOA化 (既存システム機能のサービス化) には、 より工数や期間が少なくすむ ②.③.④.の方法もあります。 サービスとして公開 15 手配情報 請求情報 支払情報 請求処理 下払処理 収支管理 つなぐ、つながる SOA (異機種混在環境での SOA) ②.既存システムに標準技術インターフェースを実装 16 つなぐ、つながる SOA (異機種混在環境での SOA) ②.【ケース・スタディ】 既存システムに標準技術インターフェースを実装 ファイル転送 案件管理 システム お客様管理 Web システム 案件管理 システム お客様管理 Web システム Web サービス インターフェース HTTP リアルタイム連携 Web サービス・ クライアント Web ブラウザ CSV ファイルをダウンロードし、 Excel で読み込んで編集 17 直接 Excel を Web サービス・ クライアントとしてデータ取得 つなぐ、つながる SOA (異機種混在環境での SOA) ②.【デモ】 Excel を Web サービス・クライアントにする Microsoft Office XP Web Services Toolkit 2.0 SOAP/HTTP Microsoft Excel 2002 IBM WebSphere Application Server v6.1 JavaBeans WSDL 顧客 一覧 顧客一覧 (XML) MySQL 5.1 Windows XP SP2 マイクロソフト社が、スマート・クライアントとして提唱しているものの一形態です。 スマート クライアント デベロッパー センター: http://www.microsoft.com/japan/msdn/smartclient/ 18 つなぐ、つながる SOA (異機種混在環境での SOA) ②.【デモ説明】 サーバー側 (JavaBeans) MySQL 5.1 3 顧客一覧 (XML) ResultBean.java (結果を格納) 1 2 WSDemo01.java 1. SQL を発行して MySQL 5.1 から該当顧客一覧を取得 2. 一レコードずつ ResultBean に格納 3. レコード数分の ResultBean 配列を Web サービスで返す IBM WebSphere Application Server v6.1 19 つなぐ、つながる SOA (異機種混在環境での SOA) ②.【デモ説明】 クライアント側 (Excel 設定) 1. Microsoft Office XP Web Services Toolkit 2.0 を導入 (マイクロソフト社のサイトからダウンロード) 2. Excel 2002 の Visual Basic Editor で Microsoft Soap Type Library v3.0 にチェック 1 2 20 つなぐ、つながる SOA (異機種混在環境での SOA) ②.【デモ説明】 クライアント側 (Excel コード) 3. 4. 5. 6. WSDL を読み込み Web サービスに接続 顧客一覧を取得するためのオペレーションを呼び出して、XML を取得 XML 展開して Excel シート上に表示 Microsoft Excel 2002 - Visual Basic for Application 3 WSDL_URL = http://localhost:9086/WSDemo01/services/ WSDemo01/wsdl/WSDemo01.wsdl 4 Set SOAPClient = CreateObject("MSSOAP.SOAPClient30") Call SOAPClient.mssoapinit(WSDL_URL) 顧客一覧 (XML) 5 Result = SOAPClient.demo01 'demo01 オペレーションを呼び出し 6 'Result 変数に、返ってきた XML が 入れられるので展開して表示 21 つなぐ、つながる SOA (異機種混在環境での SOA) ③.ESB や GW により既存システムをサービス化 22 つなぐ、つながる SOA (異機種混在環境での SOA) ③.ESB や GW 等により既存システムをサービス化 【ケース・スタディ】 ③-1.レガシー MQ アプリの ESB によるサービス化 【ケース・スタディ】 ③-2.DataPower によるセキュアな接続とサービス化 【ケース・スタディ】 ③-3.ERP パッケージ (SAP) の ESB + Adapter によるサービス化 【ご紹介】 ③-4.IBM/SAP ハイブリッド SOA ソリューション 【ご紹介】 ③-5.金融機関向けソリューション SOA RER for FSS 23 つなぐ、つながる SOA (異機種混在環境での SOA) ③-1.【ケース・スタディ】 MQ アプリの ESB によるサービス化 (1) 課題: 現在、MQ (*1) でアクセス可能な既存のレガシー・アプリケーションに対して 新たに別システムから Web サービスによるアクセスを行う必要が出てきた。 (*1) MQ = メッセージ・キューイング・プロトコル、IBM WebSphere MQ 問題点: Web サービスは SOAP/HTTP でアクセスする予定だが、きちんとリプライが 返って来るためには HTTP リクエスト ID が正しくハンドルされる必要がある。 しかしながら、既存のレガシー・アプリケーションでは HTTP リクエスト ID を 処理することは想定されていない。 既存のレガシー・アプリケーションでは MQ の MsgID および CorrelID のみで リクエスト/リプライの制御をしているため、単なるプロトコル変換では NG。 別システム側に MQ を導入することはレガシー側のライフサイクルの観点から 望ましくない解決策とされた。 Web サービス SOAP/HTTP SOAP/HTTP HTTP リクエストID で制御 24 ? MQ MQ 既存レガシー アプリ MQ MsgID & CorrelID で制御 つなぐ、つながる SOA (異機種混在環境での SOA) ③-1.【ケース・スタディ】 MQ アプリの ESB によるサービス化 (2) 従来の解決策: 間に、HTTP/SOAP (XML) ⇔ MQ のプロトコル/フォーマット変換を行うための ゲートウェイ・システムを設置する。 HTTP リクエスト ID を紛失しないために、レガシー・アプリケーション側に HTTP リクエスト ID を保管しておくためのデータ・フィールド追加&アプリ修正を行う。 Web サービス SOAP/HTTP SOAP/HTTP プロトコル/フォーマット変換 ゲートウェイ・システム MQ MQ 既存レガシー アプリの改修 HTTP リクエスト ID を保管できるよう アプリケーションを改修 既存アプリの改修および 現行機能確認テストの工数が必要 25 つなぐ、つながる SOA (異機種混在環境での SOA) ③-1.【ケース・スタディ】 MQ アプリの ESB によるサービス化 (3) SOA による解決策 = 既存アプリの改修を最小にするサービス化と再利用 ● 間に ESB 製品を置いてプロトコル/フォーマット変換を行う。 ● ESB 内で HTTP リクエスト ID と MQ MsgID & CorrelID の紐付けを保管。 ESB (IBM WebSphere Message Broker) 既存アプリの 修正不要 既存アプリの サービス化 要求メッセージ・フロー WSDL HTTP 要求キュー XML Web サービス HTTP XML 疎結合の 実現 26 HTTP のリクエストID と MQ の MsgID & CorrelID を 紐付けて保管しておく MQ 紐付けキュー MQ 既存ホスト MQ アプリ 応答キュー 応答メッセージ・フロー XML 将来の変更 への対応 つなぐ、つながる SOA (異機種混在環境での SOA) ③-1.【デモ】 MQ アプリの ESB によるサービス化 IBM WebSphere Message Broker v6 warehouseb_invrequest WSDL Web サービス エクスプ ローラ WarehouseB_Inv_MFlow XML HTTP リクエストID Q.WHB.INV.LEG.IN Q.WHB.INV.LEG.REPLY MQ HTTP リクエストID と MQ の ID の紐付け LegacyService.exe (C 言語) Q.WHB.STATE MQ XML HTTP リクエストID warehouseb_invresponse WarehouseB_Inv_MFlow 27 つなぐ、つながる SOA (異機種混在環境での SOA) ③-1.【デモ説明】 レガシー・サービス側 28 入力メッセージ 「INVREQ」 MQ 出力メッセージ MQ LegacyService.exe (C 言語) ヘッダー・ファイル LegacyService.h つなぐ、つながる SOA (異機種混在環境での SOA) ③-1.【デモ説明】 メッセージ・セット <soapenv:Body> <whb:getInventory> <whb:dummy/> </whb:getInventory> </soapenv:Body> INVREQ MQ XML クライアント LegacyService.exe (C 言語) WebSphere Message Broker XML MQ ヘッダー・ファイル LegacyService.h 応答メッセージは、 ヘッダー・ファイルから生成 29 つなぐ、つながる SOA (異機種混在環境での SOA) ③-1.【デモ説明】 要求メッセージ・フロー (XML ⇒ MQ) レガシー側 XML HTTP リクエストID と MQ Msg ID, Correl ID を 紐付けしたメッセージを作成 XML ⇒ CWF 変換 Q.WHB.STATE 紐付けを 保管するキュー レガシー側に 渡すメッセージ Q.WHB.INV.LEG.IN MQ 30 つなぐ、つながる SOA (異機種混在環境での SOA) ③-1.【デモ説明】 応答メッセージ・フロー (MQ ⇒ XML) レガシー側 紐付けから HTTP リクエストID を復元 応答 XML を生成 XML MQ Q.WHB.INV.LEG.REPLY レガシーからの 応答メッセージ 31 Q.WHB.STATE 紐付けを保管しているキュー つなぐ、つながる SOA (異機種混在環境での SOA) ③-1.【デモ説明】 クライアント側 (Web サービス・エクスプローラ) 実行する操作 WSDLの指定 操作結果 (戻り値) 32 つなぐ、つながる SOA (異機種混在環境での SOA) ③-2.【ケース・スタディ】 DataPower によるセキュアな接続とサービス化 課題とニーズ ATM での処理情報を FTP で一晩かけて銀行 支店に転送 セキュリティのため、固定 IPアドレスや VPN を利用 ネットワークも機器も、リソースは飽和状態 ハイボリュームでリアルタイムの処理を、セキュ リティを確保しながらコストを下げる方法を模索 ソリューション WebSphere DataPower XI50 を DMZ に導入 入ってくるメッセージをチェックし、フォーマッ ト変換してルーティング 暗号化、デジタル署名、アクセス制御の機能で、 VPN を使わなくてもセキュアな転送 バッチ転送の代わりに、メッセージで ATM から ほぼリアルタイムに銀行の支店に送付。 認証サーバー ATM WEBサービス リクエスター XI50 DMZ 認証要求 アプリ サーバー ATM クライアント 33 WEBサービス リクエスター WEBサービス リクエスター 導入効果 2~3週間の構築期間で運用開始 他の方法では 6ヶ月の構築期間が必要と試算 ハイボリュームの処理を安全でリアルタイムに実現 VPN 利用料金の削減 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【ケース・スタディ】 SAP ERP を ESB + Adapter によるサービス化 (1) 課題: SAP ERP 6.0 で構築している営業管理システムと J2EE アプリケーション・ システム間でリアルタイムなデータのやり取りを行う必要がある。 問題点: 従来は一定時間毎のファイル転送を実施していたが、周辺アプリ・システムの 新 J2EE システム化に伴い、リアルタイムで双方向のデータ連携をしたい。 従来 アプリ システム ファイル転送 ファイル転送 営業管理システム (SAP ERP 6.0) アプリ システム 34 新規 新J2EE システム ファイル転送 J2EE システム リアルタイム連携 営業管理システム (SAP ERP 6.0) 新J2EE システム リアルタイム 連携 J2EE システム つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【ケース・スタディ】 SAP ERP を ESB + Adapter によるサービス化 (2) SAP ERP 6.0 と連携する主要な 4つの方法 SAP ERP 6.0 システム システム システム 1.Web サービス Enterprise Service 2.Web サービス 3.Web サービス 4.MQ ESB Add-on での Web サービス開発 アダプター 製品 Enterprise Service 化されて いない機能の呼び出し システム 現在のインフラ環境や運用スキル、接続方法の実績やパフォーマンス、コスト等の 様々な観点からの検討を行い、今回は 3.の外部 ESB + アダプター製品経由で Web サービスでアクセスする形態を選択。 35 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【ケース・スタディ】 SAP ERP を ESB + Adapter によるサービス化 (3) 今回の連携要件-1.J2EE 側からリクエストを出して、SAP から該当するデータを取得する リクエスト リクエスト Web ブラウザ J2EE アプリ HTTP/SOAP ESB SAP Adapter SAP データ XML データ 今回の連携要件-2.J2EE 側から SAP にデータを送る XML データ Web ブラウザ J2EE アプリ HTTP/SOAP データ ESB SAP Adapter 応答 SAP 応答 今回の連携要件-3.SAP 側から J2EE にデータを送る XML データ J2EE アプリ HTTP/SOAP 応答 36 データ ESB SAP Adapter SAP 応答 SAP GUI 等 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【ケース・スタディ】 SAP ERP を ESB + Adapter によるサービス化 (4) 通信の流れ: 1 → 2 → 3 → 4 連携要件-1.および 2. の実現方法 1 XML データ J2EE アプリ WMB v6.1 WSDL 要求メッセージ・フロー SOAP/HTTP XML データ 応答メッセージ・フロー SAP JCo 2.1.8 WebSphere Adapter for SAP v6.1 2 SAP 3 4 連携要件-3. の実現方法 1 SAP 4 SAP JCo 2.1.8 ※ WMB v6.1: WebSphere Message Broker v6.1 WMB v6.1 WebSphere Adapter for SAP v6.1 要求メッセージ・フロー 2 WSDL XML データ SOAP/HTTP 応答メッセージ・フロー J2EE アプリ XML データ 3 ※ SAP JCo 2.1.8 : SAP 社が提供している Java Connector ライブラリのバージョン 2.1.8 37 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【ケース・スタディ】 SAP ERP を ESB + Adapter によるサービス化 (5) 連携要件-1.および 2. の実装方法 HTTP/SOAP J2EE アプリ 連携要件-3. の 実装方法 WMB v6.1 WebSphere Adapter for SAP v6.1 メッセージ・フロー BAPI Outbound インターフェース WMB v6.1 WebSphere Adapter for SAP v6.1 SAP JCo 2.1.8 38 SAP BAPI SAP JCo 2.1.8 エンドポイント イベント リカバリー DB シンプル BAPI コール BAPI/RFC 非同期処理 • IDoc SAP ALE Inbound インターフェース ALE IDoc SAP Adapter が 代理で応答を返す つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ】 SAP ERP を ESB + Adapter によりサービス化 BAPI_CUSTOMER_GETDETAIL 得意先コード: 0000005011 Web サービス エクスプローラ SOAP/ HTTP IBM WebSphere ESB v6 モジュール WebSphere Adapter for SAP v6 SAP JCo 2.1.8 SAP ERP 6.0 BAPI WSDL 得意先情報: ABCスーパー(本店) 東京都 千代田区 大手町 1-2-3 39 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 SAP 側 得意先情報 (1) 40 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 SAP 側 得意先情報 (2) 得意先コード: 0000005011 名称: ABCスーパー(本店) 東京都 千代田区 大手町 1-2-3 国コード: JP 地域: 13 納入区域: 0000000001 41 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 SAP 側 得意先情報 (3) 得意先コード: 0000005012 名称: ABC物流センタ 神奈川県 横須賀市 若松町 1-2-1 国コード: JP 地域: 14 納入区域: 0000000002 42 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 ESB 側 WebSphere Integration Developer v6.2 テスト用 組込サーバー WebSphere ESB v6.2 WebSphere Process Server v6.2 43 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 ESB 側 SAP アダプターの設定 (1) 作成する「外部サービス」の種類を選択 = SAP 44 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 ESB 側 SAP アダプターの設定 (2) SAP JCo ライブラリの設定 45 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 ESB 側 SAP アダプターの設定 (3) 46 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 ESB 側 SAP アダプターの設定 (4) xxxxxxxxxxxx xxxxxxxxx BAPI を使用 47 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 ESB 側 SAP アダプターの設定 (5) 呼び出すオブジェクト 48 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 ESB 側 SAP アダプターの設定 (6) 呼び出す操作 49 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 ESB 側 SAP アダプターの設定 (7) 作成するモジュールの情報 50 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 ESB 側 SAP アダプターの設定 (8) 作成したモジュール 設定した SAP アダプター定義 から生成されたデータ型など 51 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 ESB 側 SAP アダプターの設定 (9) 作成したモジュール 設定した SAP アダプター定義 から生成されたデータ型など 52 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 単体テスト (1) 操作と応答 「コンポーネントのテスト」 により 単体テストを実施 初期要求パラメーター 53 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 単体テスト (2) 初期要求パラメーターで、検索条件である 得意先コード = 0000005011 を設定 54 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 単体テスト (3) 処理結果 単体テストの実行結果 実行結果 55 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 単体テスト (4) 処理結果 56 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 単体テスト (5) 実行結果 57 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 Web サービス・インターフェース (1) Web サービス・インターフェースを持つための 「エクスポート」コンポーネントを追加 58 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 Web サービス・インターフェース (2) 追加された 「エクスポート」コンポーネント 59 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 Web サービス・インターフェース (3) Web サービス・ バインディングを設定 60 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 Web サービス・インターフェース (4) トランスポートの選択 61 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 Web サービス・インターフェース (5) WSDL が 生成される 62 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 Web サービス呼び出し (1) Web サービス・エクスプローラーによる Web サービス呼び出し 操作と パラメーター WSDL 要求・応答メッセージ 63 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 Web サービス呼び出し (2) 検索条件である 得意先コード = 0000005011 を 設定して、「実行」ボタン 64 つなぐ、つながる SOA (異機種混在環境での SOA) ③-3.【デモ説明】 Web サービス呼び出し (3) 65 つなぐ、つながる SOA (異機種混在環境での SOA) ③-4.【ご紹介】 IBM/SAP ハイブリッド SOA ソリューション (1) 様々な IBM/SAP ハイブリッド SOA ソリューションについて 動画デモを交えてご紹介 「IBM/SAP ハイブリッド SOA ソリューションのご紹介」 http://www.ibm.com/itsolutions/jp/solutions/businessflexibility/hybrid_soa/top.html 66 つなぐ、つながる SOA (異機種混在環境での SOA) ③-4.【ご紹介】 IBM/SAP ハイブリッド SOA ソリューション (2) Web サイトでの解説と共に Adobe Flash による プレゼンとデモを提供 ※ この画面は、第2回の「複数ERPシステム(SAP ERP & Oracle EBS)に跨る販売業務アプリケーションのデモ」です。 67 つなぐ、つながる SOA (異機種混在環境での SOA) ③-4.【ご紹介】 IBM/SAP ハイブリッド SOA ソリューション (3) 2009年 2月現在、ご提供しているメニュー タイトル 主要なテーマ 第1回 企業変革を加速させる次世代アプリケーション基盤 ソリューションの説明 第2回 SAPを活用したコンポジットアプリケーション コンポジットアプリケーション 第3回 申請・承認ワークフローと内部統制 人間系プロセス制御 第4回 ビジネス・サービスによる複雑なプロセス管理の実現(前編) 第5回 ビジネス・サービスによる複雑なプロセス管理の実現(後編) ・システム系プロセスの制御 ・ビジネス・サービス 第6回 ポータルによるフロントエンドでのアプリケーション統合(前編) 第7回 ポータルによるフロントエンドでのアプリケーション統合(後編) ・ユーザー・インターフェース ・人間系プロセスの制御 第8回 経営の見える化を促進するマネージメントコックピット ユーザー・インターフェース 第9回 サービス・リポジトリーによるサービス管理とガバナンスの実現 サービス・リポジトリー 第10回 プロセス・モデリングからBPMの実装までのシームレスな開発 ・人間系プロセス制御 ・システム系プロセス制御 ※ 今後も随時ソリューションを追加していく予定です。 68 つなぐ、つながる SOA (異機種混在環境での SOA) ③-5. 【ご紹介】 金融機関向けソリューション: SOA RER for FSS 新商品・サービス開発のスピード化 柔軟性を実現できる新システム SOA ワールド フロント ESB 堅牢かつ高速大量処理に 最適化され、確立された アーキテクチャーを持つ 現行システム 現行ワールド サービス サービス サービス SOA Wrapper BPEL BPEL BPEL WSDL Hub Application Hub/GW G/W 新商品・サービス ビジネスプロセス ワークフロー サブシステム 他のワールドを徹底仮想化し 相互の影響を最小限に抑える SOA ラッパー・システム 「SOAによる金融機関向け現行基幹系システム活用ソリューションの発表」 http://www.ibm.com/jp/finance/solutions/fsn/dec2006_soa.html 現行基幹系システム 69 「SOAを活用したRapid Enterprise Renovation(SOA RER)のアーキテクチャ」 http://www.ibm.com/jp/provision/no54/ibm_paper1.html つなぐ、つながる SOA (異機種混在環境での SOA) ④.ESB の機能で既存サービスを仮想化 70 つなぐ、つながる SOA (異機種混在環境での SOA) ④.【ケース・スタディ】 ESB の機能で既存サービスを仮想化 (1) 課題: 既に Web サービスでデータを提供している商品カタログ・システムが 新たに他事業部のシステムに対しても商品情報を提供することになったが XML データのフォーマットが異なっている。 現行 連携先追加 WSDL WSDL SOAP/HTTP 商品情報 A システム A システム ESB ESB WSDL 商品 カタログ システム SOAP/HTTP 商品情報 WSDL 新たに商品情報を 提供するが XML が異なる。 Product No ⇒ Item No Product Code ⇒ Code 等 商品 カタログ システム SOAP/HTTP 商品情報 WSDL B システム 71 B システム 他事業部 システム つなぐ、つながる SOA (異機種混在環境での SOA) ④.【ケース・スタディ】 ESB の機能で既存サービスを仮想化 (2) 解決策: ESB 内のメディエーションで XSLT 変換を行い、相手に合わせる。 WSDL ESB WSDL 商品 カタログ システム 商品カタログ システムの XML 項目 Model No Type Code Product No Product Code Product Name : 72 他事業部 システム XSLT 変換 他事業部 システムの XML 項目 Model-Type Item No Code Name : つなぐ、つながる SOA (異機種混在環境での SOA) ④.【デモ】 ESB による既存サービスの仮想化 (1) Web ブラウザ HTTP Apache Axis2 SOAP/ HTTP メディエーション JavaBeans WSDL Red Hat Enterprise Linux 5 u3 73 IBM WebSphere ESB v6 SOAP/ HTTP Microsoft IIS 6.0 ASP.NET WSDL Windows XP SP2 Windows Server 2003 SP2 つなぐ、つながる SOA (異機種混在環境での SOA) ④.【デモ】 ESB による既存サービスの仮想化 (2) 構築手順 リクエスタ XML WebSphere ESB v6.2 Apache Axis2 リクエスター プロバイダ XML IIS / ASP.NET プロバイダー XSLT 変換 ①.インタフェース作成 WSDL のバインド ②.インターフェース作成 WSDL のバインド ③.ワイヤリング ④.ワイヤリング (インタフェース作成) (参照作成) プロバイダー ⑤.XSLT 変換の実装 4.WSDL の URL を教える リクエスター WSDL ・サービス・ポート サービス用 WSDL は WID が自動生成 74 2.XSLT 変換を 設計する リクエスター WSDL ・インターフェース WSDL ・インターフェース ・サービス・ポート 1.プロバイダー側から WSDL をもらう 3.リクエスター用 WSDL を作成する つなぐ、つながる SOA (異機種混在環境での SOA) ④.【デモ】 ESB による既存サービスの仮想化 (3) テスト手順 Apache Axis2 リクエスター ④.稼動確認 リクエスタ XML WebSphere ESB V6.2 プロバイダ XML IIS / ASP.NET プロバイダー プロバイダー WSDL リクエスター WSDL ②.WID の 「コンポーネントのテスト」で 単体テスト ③.WID の Web サービス・エクスプローラーでテスト 75 ①.Web ブラウザで 稼動を確認 (IIS / .NET の機能) つなぐ、つながる SOA (異機種混在環境での SOA) 本日のまとめ SOA を現実に採用していくためには、既存資産の活用も重要な考慮点です。 既存資産のサービス化には 4つのパターンがあり、ケース・スタディやデモ、 ご紹介を使用して、各パターンの説明をしました。 ① 既存システムを分解して再構築 ・・・ 王道だが、工数や期間がかかる。 ② 既存システムに技術標準インターフェースを実装 ・Excel を Web サービス・クライアントにするデモを実施。 ③ ESB や GW 等により既存システムをサービス化 ・MQ アプリを ESB によりサービス化するデモを実施。 ・ESB + Adapter による SAP 連携デモを実施。 ・IBM/SAP ハイブリッド・ソリューションをご紹介。 ・金融機関向け SOA RER for FSS をご紹介。 ④ ESB による既存サービスの仮想化 ・ESB による Apache Axis2 ⇔ Microsoft IIS 連携デモを実施。 既存資産を活用するためには、異機種間で接続できることを知ることも重要です。 SOA の主要なコンセプトである「再利用」には、スクラップ&ビルドで新規に 作らずに、既に稼動している現行システムを有効活用することも含まれます。 76 つなぐ、つながる SOA (異機種混在環境での SOA) 本資料内で出てきた参照 URL 日本IBM 「SOA とは?」 http://www.ibm.com/jp/solutions/soa/about/index.html 日本IBM 「WebSphere Message Broker V6.1」および「Message Broker Toolkit V6.1」 http://www.ibm.com/jp/software/websphere/integration/wmbv61/ 日本IBM 「WebSphere Enterprise Service Bus V6.2」 http://www.ibm.com/jp/software/websphere/integration/esbv61/ 日本IBM 「WebSphere DataPower SOA アプライアンス」 http://www.ibm.com/jp/software/websphere/bi/datapower/ 日本IBM 「WebSphere Integration Developer V6.2」 http://www.ibm.com/jp/software/websphere/integration/wid/ 日本IBM 「SOA 設計・開発・統合サービス」 http://www.ibm.com/jp/solutions/soa/service/contents.html#5 マイクロソフト 「スマート クライアント デベロッパー センター」 http://www.microsoft.com/japan/msdn/smartclient/ 日本IBM 「IBM/SAP ハイブリッド SOA ソリューションのご紹介」 http://www.ibm.com/itsolutions/jp/solutions/businessflexibility/hybrid_soa/top.html 日本IBM 「SOAによる金融機関向け現行基幹系システム活用ソリューションの発表」 http://www.ibm.com/jp/finance/solutions/fsn/dec2006_soa.html 日本IBM 「SOAを活用したRapid Enterprise Renovation(SOA RER)のアーキテクチャ」 http://www.ibm.com/jp/provision/no54/ibm_paper1.html 77 つなぐ、つながる SOA (異機種混在環境での SOA) ご聴講、ありがとうございました。 お問い合わせは [email protected] までお願いします。 © IBM Corporation 2009. All Rights Reserved. ワークショップ、セッション、および資料は、IBMまたはセッション発表者によって準備され、それぞれ独自の見解を反映したものです。それらは情報提供の目 的のみで提供されており、いかなる参加者に対しても法律的またはその他の指導や助言を意図したものではなく、またそのような結果を生むものでもありませ ん。本プレゼンテーションに含まれている情報については、完全性と正確性を帰するよう努力しましたが、「現状のまま」提供され、明示または暗示にかかわら ずいかなる保証も伴わないものとします。本プレゼンテーションまたはその他の資料の使用によって、あるいはその他の関連によって、いかなる損害が生じた 場合も、IBMは責任を負わないものとします。 本プレゼンテーションに含まれている内容は、IBMまたはそのサプライヤーやライセンス交付者からいかなる保 証または表明を引きだすことを意図したものでも、IBMソフトウェアの使用を規定する適用ライセンス契約の条項を変更することを意図したものでもなく、また そのような結果を生むものでもありません。 本プレゼンテーションでIBM製品、プログラム、またはサービスに言及していても、IBMが営業活動を行っているすべての国でそれらが使用可能であることを 暗示するものではありません。本プレゼンテーションで言及している製品リリース日付や製品機能は、市場機会またはその他の要因に基づいてIBM独自の決 定権をもっていつでも変更できるものとし、いかなる方法においても将来の製品または機能が使用可能になると確約することを意図したものではありません。 本資料に含まれている内容は、参加者が開始する活動によって特定の販売、売上高の向上、またはその他の結果が生じると述べる、または暗示することを 意図したものでも、またそのような結果を生むものでもありません。 パフォーマンスは、管理された環境において標準的なIBMベンチマークを使用した測定と予測に基づいています。ユーザーが経験する実際のスループットや パフォーマンスは、ユーザーのジョブ・ストリームにおけるマルチプログラミングの量、入出力構成、ストレージ構成、および処理されるワークロードなどの考慮 事項を含む、数多くの要因に応じて変化します。したがって、個々のユーザーがここで述べられているものと同様の結果を得られると確約するものではありま せん。 記述されているすべてのお客様事例は、それらのお客様がどのようにIBM製品を使用したか、またそれらのお客様が達成した結果の実例として示されたもの です。実際の環境コストおよびパフォーマンス特性は、お客様ごとに異なる場合があります。 以下は、International Business Machines Corporationの米国およびその他の国における商標。IBMの全商標のリストについては、 www.ibm.com/legal/copytrade.shtmlをご覧ください。 AIX, CICS, CICSPlex, DB2, DB2 Universal Database, i5/OS, IBM, the IBM logo, IMS, iSeries, Lotus, OMEGAMON, OS/390, Parallel Sysplex, pureXML, Rational, RCAF, Redbooks, Sametime, Smart SOA, System i, System i5, System z , Tivoli, WebSphere, z/OS. JavaおよびすべてのJava関連の商標およびロゴは Sun Microsystems, Inc.の米国およびその他の国における商標。 Microsoft, Windows, Windows NT および Windowsロゴは Microsoft Corporationの米国およびその他の国における商標。 Intel, Intelロゴ, Intel Inside, Intel Insideロゴ, Intel Centrino, Intel Centrinoロゴ, Celeron, Intel Xeon, Intel SpeedStep, Itanium, Pentium は Intel Corporationまたは子会社の米国およびその他の国における商標または登録商標。 UNIXはThe Open Groupの米国およびその他の国における登録商標。 Linuxは、Linus Torvaldsの米国およびその他の国における商標。 その他の会社名、製品名およびサービス名等はそれぞれ各社の商標。 79 つなぐ、つながる SOA (異機種混在環境での SOA)