...

つなぐ、つながる SOA (異機種混在環境での SOA) 2009年 3月 13日 渋谷テクニカルナイト SOA

by user

on
Category: Documents
38

views

Report

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)
Fly UP