.NET テクノロジー を利用した SAP ソリューションの拡張 (3階層化) マイクロソフト株式会社 SAP/Microsoft コンピテンスセンター
Agenda SAP アプリケーションの3階層化の意義 3階層化を実現するためのテクノロジー 3階層化提案のポイント 3階層化がもたらす更なる付加価値 まとめ 最後に
1. SAP アプリケーションの3階層化 の意義
SAPアプリケーションの通常の導入方式 2階層のアーキテクチャ APサーバー、DBサーバー スケーラビリティ? ユーザービリティ? 管理性? ・SAP GUI の配布 と管理の問題 SAPサーバ DBサーバ SAP SAP GUI クライアント ・限定的な機能しか 利用しないユーザー にとっての、SAP GUI の 使い勝手の問題 ・APサーバーに UI 表示まで 行わせるため、APサーバーに スペックが必要となる (スケーラビリティの問題)
3階層アーキテクチャの組込み 2階層アーキテクチャと3階層アーキテクチャを同居させ、 要件に応じて使い分ける SAP 少数のヘビーユーザーにだけ SAP GUIを配布、2階層での利用を促す その他のカジュアルユーザー、インターネットユーザーには Web ブラウザ からの3階層での利用を促す SAPサーバ DBサーバ SAP GUI クライアント SAP ・負荷分散によるシステム 拡張が非常に容易 Web クライアント Webサーバ
(※)3階層イメージ(Microsoft)(1) AMモジュール連携 FIモジュール連携 APサーバ×11 Webサーバ DBサーバ×1 BW モジュール 連携 遠隔地複製 DBサーバ×1 SDモジュール連携 HRモジュール連携 ※人事部、経理部等に属する「ヘビーユーザー」は通常通り SAP GUI を利用(named: 2000人)
(※)3階層イメージ(Microsoft)(2) 8つの SAP モジュール (FI, CO, AM, MM, SD, HR, BW, APO)に対して、80 カ国以上、全社員約 7万人(同時利用ピーク時 600人)が 接続しているが、下記の通り非常に 経済的な H/W スペックで、稼働率 99.9 %を実現している DB サーバー 1台の Windows Server 2003, SQL Server 2000 (32-bit) HP Proliant, Xeon 900 Mhz 8 way, 6GB メモリ, 1.2TB ディスク AP サーバー 11台の Windows Server 2003, SAP R/3 4.5B (32-bit) HP Proliant, Pentium II 400Mhz 4 way, 3GB メモリ Web サーバーを介した3階層接続だからこそ可能な構成
(※)2階層/3階層クライアントの選別 ユーザービリティ(UI の機能の数)と ディプロイアビリティ(UI 展開の範囲)との トレードオフ ヘビー ユーザー SAP GUIユーザー Web ブラウザユーザー カジュアル・ インターネット ユーザー ユーザー数
2. 3階層化を実現するための テクノロジー
SAP システムへの3階層の組込 本日のテーマ SAP 密結合方式 疎結合方式(1) 疎結合方式(2) 密結合方式 SAP の ABAP/BAPI をコールする Connector を利用したリアルタイムな連携 リアルタイムの照会、更新、制御が必要とされる場合に選択 疎結合方式(1) 中間 DB から SAP へバッチインプット、SAP からダンプ出力して中間 DB へ Web サーバーと SAP とが原則 1:1の連携に限定される場合に選択 疎結合方式(2) EAI エンジン + SAP用アダプタ による SAP との システム連携 Non-SAP まで含めた多数システムを疎結合連携させる場合に選択 本日のテーマ 本日の テーマ コネクタ tRFC Web アプリ ABAP / BAPI バッチインプット ダンプ出力 ユーザー Web アプリ ファイル SAP 中間DB tRFC DB Server SAP アダプタ メイン フレーム Web アプリ IDoc他 他システム Web&AP サーバ EAIエンジン SAP R/3 Server
(※) SAP .NET Connector とは? Visual Studio .NET のアドインとしての機能 SAP の ABAP 汎用モジュール、BAPI インターフェースをラップする .NET のクラス、メソッドなどを生成 .NET アプリケーションのランタイムとしての機能 .NET のメソッドが実行される事で、ABAP 汎用モジュール、BAPI インターフェースが裏でコールされる SAP ABAP / BAPI .NET アプリケーション SAP アプリケーション
Demo SAP の顧客情報を照会する Web アプリケーションを C# により開発 SAP汎用モジュール:RFC_CUSTOMER_GET Windows Server 2003 .NET Framework, Visual Studio .NET 2003, Java VM, .NET Connector 本日は全て一つの筐体 (ThinkPad T40 Virtual PC)内に構成 開発環境 ASP .NET Webアプリケーションサーバ SAPサーバ 実行環境 (クライアント) HTTP RFC SAP インターネット Windows Server 2003 Internet Explorer 6.0 Netscape Navigator 7.0 Windows Server 2003 IIS 6.0, .NET Framework, Web アプリケーション (.NET Connector ランタイム含) Windows Server 2003 SQL Server 2000 MiniSAP (WebAS6.2)
Demo:本日の構成 H/W ThinkPad T40, PentiumM 1.5GHz, 512GB RAM (Virtual PC) S/W Windows Server 2003 Enterprise Edition(日本語版) IIS 6.0, ASP .NET 同梱 SQL Server 2000 Enterprise Edition + SP3 (正式版、英語版) MiniSAP (Kernel : WebAS 6.20) Visual Studio .NET 2003 (正式版、日本語版) Java2 Runtime v1.4.1_01 SAP .NET Connector 1.0.1 Internet Explorer 6.0.3700.0 Netscape Navigator 7.02
Demo: 開発イメージ ABAP 汎用モジュール、BAPI インターフェースを ラップする .NET のクラスを生成 ・・・・・・ (1)SAP Connect Wizard からABAP ディクショナリへ接続しABAP/BAPI 汎用 モジュールを指定 (4)ビハインド コード記述 ABAP/BAPI ディクショナリ (5).NET から 汎用モジュールのクラスをコール するようCoding .NET (3)Web ページの デザイン (2).NET へ 汎用モジュールのクラスを生成 ABAP/ BAPI ABAP/ BAPI (6)戻り値 取得の コーディング (4)SAP への接続情報をセット ・・・・・・ (7)インターフェースへの反映 .NET Connector アドイン ABAP/ BAPI インターフェース デザインコード ASP .NET Web アプリケーション SAP R/3, APO, ….
Demo: 開発イメージ (汎用モジュールの .NET クラスを生成) 1.SAP汎用モジュールの指定 3..NET側に 汎用モジュール をコールするクラス(PG)が生成された 2.Nextボタンをおして.NET側に クラスを生成
Demo: 開発イメージ (汎用モジュールのクラスをコール) 次の一行で汎用モジュールをコールする。 proxy.Rfc_Customer_Get (“”,TextBox1.Text, ref brfcknA1Table1); ※ トランザクションのコールは出来ない。
Demo: 開発イメージ (SAP への接続情報(”Superuser”)の設定) 1.Webページのデザイン 2.SAPへ接続する ための”スーパーユーザー” のユーザー名、パスワード などを指定
Demo: 実行イメージ .NET のメソッドが実行されることで ABAP汎用 モジュール、BAPIインターフェースがコールされる (1)ユーザー からのリクエスト、アクセスコントロール (2)ユーザーからのアクション ABAP/BAPI ディクショナリ (3)メソッド コール .NET ABAP/ BAPI ABAP/ BAPI (5)戻り値 取得 (4)ABAP/BAPI リモートファンクション コール ・・・・・・ (6)インターフェースへの反映 .NET Connector ランタイム ABAP/ BAPI インターフェース コンパイルコード ASP .NET Web アプリケーション SAP R/3, APO, ….
Demo: 実行イメージ (アクセスコントロールの設定-1) NT4 ドメイン、もしくは Active Direcoty 上で認証し、 Web アプリケーションサーバ 上でアクセスをコントロール ユーザーが属する グループ、組織単位(OU) に応じた権限設定 SAP サーバーへは 単一の ”SuperUser” の ID でログオンするよう、Web アプリケーションを開発・構成する SAP のコネクションプーリングが利用可能になり、パフォーマンスとスケーラビリティを確保 SAP サーバー側と Web アプリケーションサーバー側とで、アクセスコントロール(権限プロファイル設定)が2重管理と なる点、運用上の見極めが必要 Web アプリケーションのアクセスコントロールが複雑でなければ、 導入はたやすい
Demo: 実行イメージ (アクセスコントロールの設定-2) 2.AD上の (Domain名)\(グループ名)を指定(ユーザー名を直接 指定してもOK) 4.ADとの統合認証の設定が完了 1.エクスプローラより、 Webアプリケーションの 実体が存在するフォルダを右クリック 3.権限を付加
中央拠点 他拠点 I P - V P N や 専 用 線 な ど R/3 APO Web ブラウザ Web ブラウザ SRM 認証情報 ADGroup1 ADUser1 (password) ADUser2 (password) ADUser3 (password) ADGroup2 …………… ADGroup1 ADUser1 (password) ADUser2 (password) ADUser3 (password) ADGroup2 …………… NT Domain, Active Directory Active Directory レプリケーション(同期) NT Domain, Active Directory I P - V P N や 専 用 線 な ど (1) ADUser1 としてログ オン (2) ADGroup1としてのセッションチケット提供 認証情報 R/3 SuperUser (password) アクセスコントロール情報 SuperUser 何でも○ 認証情報 APO SuperUser (password) Web ブラウザ (4) (t)RFCで やりとり (SuperUser として接続、 (コネクションプーリング 利用) Web ブラウザ アクセスコントロール情報 SuperUser 何でも○ 認証情報 SuperUser (password) SRM アクセスコントロール情報 (3) ADGroup1のチケット提示 (6) HTML SuperUser 何でも○ Webアプリ ケーション サーバ アクセスコントロール情報 Webアプリ ケーション サーバ アクセスコントロール情報 ADGroup1 読取/実行○ ADGroup2 読取/実行○ …………… ADGroup1 読取/実行○ ADGroup2 読取/実行○ …………… Content Management Server 2002 を利用 してコンテンツ同期 IIS 6.0/ .NET Framework IIS 6.0/ .NET Framework
3. 3階層化提案のポイント
提案のターゲット SAP サーバーの必要条件 カーネルバージョンが 4.0B 以降 RFC コールが可能 OS/DB は Windows/SQL Server でなくても OK OS/DBの種類は SAP R/3 によって抽象化される ただし SQL Server は .NET アーキテクチャと圧倒的な親和性をもつデータベースである SQL Server には .NET にネイティブなデータプロバイダ メインフレーム オフコン
提案の業務シナリオ 提案例(トランザクションコード単位でない事に注意) 予算実績対比表(CO) 経費清算(FI) 勤怠管理(HR) 間接財購買(EBP) 在庫不足アラート(APO) 受注登録(SD) などなど・・・
必要なシステムリソース 開発環境&実行環境 (両者兼用も OK) OS : Windows XP もしくは 2000、2003 IIS のサービスを起動 Visual Studio .NET もしくは Visual Studio .NET 2003 詳細:http://www.microsoft.com/japan/msdn/vstudio/default.asp 正式リリース版である必要(※ MSDN 版でも OK) .NET Framework 1.0 or 1.1 を含む Java VM(最新バージョン) 入手元:http://java.sun.com/j2se/ SAP .NET Connector 1.0 もしくは 1.0.1 入手元:http://service.sap.com/connectors 但し SAP Service Marketplace のUser IDが必要
トランザクションSE37 において、汎用 モジュールの指定 必要な人的リソース 業務コンサルタントの存在は不可欠 ABAP/BAPI の特定、ない場合、設計 (場合によっては) ABAP 開発者 設計された ABAP/BAPI の開発 (RFCコールを意識) Visual Studio .NET の開発者 ABAP が出来なくても、SAP 汎用モジュールのテスト実行だけできれば十分 トランザクションコード:SE37 引数(Input)の渡し方の理解、戻り値(Output)の解釈 トランザクションSE37 において、汎用 モジュールの指定 引数に値セット、 テスト実行 戻り値の確認
3階層化の事例 セコム株式会社様による DCOM Connector を利用した HR モジュール Web インターフェース作成の事例 時間外勤務申請業務 Microsoft 社内ではDCOM/.NET Connector 双方を本番システムで利用している Microsoft ITShowcase
4. 3階層化がもたらす更なる付加価値
SharePoint Portal ServerをWebサーバーのフロントに配置 ポータルへの応用 全システムのフロントに SharePoint Portal Serverを配置 基幹系+情報系のポータル構築 SAP 関連情報のポータルへの 組み込みは、 .NET Connector を 利用する事で格段に容易に 情報系システム Lotus Notes / Domino Web Server File Server HTML ASP JSP メール 予定表 連絡先 仕事 Office 文書 MS Exchange Server Database メール 予定表 連絡先 仕事 テーブル ビュー Web File SAP Exch ange Exchange Exchange Exch ange SAP SAP R/3 基幹系システム HTTP HTTP (t)RFC SAP ABAP / BAPI ポータル SharePoint Portal ServerをWebサーバーのフロントに配置 Webアプリ ケーションサーバ
ポータル導入の効果 ポータルが無い今・・・ ポータル導入後は・・・ 様々な場所に散在する、様々な情報に対して、社員は それぞれにアクセスしなくてはならない Pull型ナレッジマネジメント (ボトムアップ) Mail, File, Web, SAP ・・・・ 情報過多の状況において、「これだけは伝えたい」 「この辺は知ってほしい」情報の伝達には向かない ポータル導入後は・・・ 必要な情報を一つにマージして一箇所で一挙に見せる Push 型ナレッジマネジメント (トップダウン) .NET Connector のおかげで、SAP のような基幹系の情報までもが Portal を用いて伝達できる
アクセスしてきたデバイスをその場で認識し、 各デバイスごとに最適化されたインターフェースをクライアントに対して提供 モバイルインターフェースの構築 モバイル機器と通信する Web アプリケーションを 容易に構築可能 Visual Studio .NET を利用する場合、Mobile Internet Toolkit を利用 http://www.microsoft.com/japan/msdn/vstudio/device/mitdefault.asp Visual Studio .NET 2003 では組込み済みの機能 .NET Framework 1.1 の機能 SAP R/3 サーバ (t)RFC モバイルWeb アプリケーション ABAP / BAPI SAP HTTPS Webアプリ ケーション サーバ アクセスしてきたデバイスをその場で認識し、 各デバイスごとに最適化されたインターフェースをクライアントに対して提供 F/W F/W
モバイルインターフェースの構築 アクセスしてきたモバイル機器に応じて、 適切なマークアップ言語のコードを生成 cHTML HTML HDML Web アプリケーション cHTML HTML HDML MML NTT ドコモ 携帯電話 au 携帯電話 J-Phone 携帯電話 PDA
5. まとめ
まとめ SAP アプリケーションは、2階層と3階層とを織り交ぜて 運用する事で、(1)スケーラビリティ、(2)ユーザービリティ、 (3)管理性、全ての面で最高の ROI を実現する ERP へと変貌する 3階層を実現するためのテクノロジーとしての ASP .NET と .NET Connector SAP アプリケーションへの 3階層アーキテクチャの組込は ポータルの構築にも直結し、これまでの PULL 型オンリーの 弊害をカバーする、PUSH 型のメッセージングを新たに提供 ポータルインターフェースを実現するためのテクノロジーとしての SharePoint Portal Server
Go to MS/SAP Solution Site. http://www. microsoft
6.最後に
.NET について知る http://www.microsoft.com/japan/net/ (.NET) http://www.gotdotnet.com/japan/ (Gotdotnet) http://www.microsoft.com/japan/msdn/default.asp (MSDN Online) http://www.atmarkit.co.jp/fdotnet/index.html (Insider .NET)
トレーニングを受ける http://www.microsoft.com/japan/partners/mtc/training/ (トレーニング) http://www.mstep.net/mstep/jpn_partner/ (MSTEP: パートナー様向け無償トレーニング)
Microsoft のテクノロジーを評価する MSDN サブスクリプション(MS 製品評価の為の S/W 配信プログラム) http://www.microsoft.com/japan/msdn/subscriptions/default.asp
Microsoft のサービスを利用する アドバイザリーサービス マイクロソフトコンサルティングサービス 設計および開発中のシステムに対するアーキテクチャレビュー、 設計・開発・デバッグ支援、最適化(パフォーマンスチューニング)等 1時間 27,000 円(税別) http://support.microsoft.com/default.aspx?scid=http://www.microsoft.com/japan/support/supportnet/AS.asp マイクロソフトコンサルティングサービス http://www.microsoft.com/japan/consulting/
皆様へのお願い .NET テクノロジを利用した SAP ソリューション拡張の ビジネスインパクトを想像してみて下さい MS テクノロジーを評価するために、MSDN Subscription を是非ご購入下さい 特に SAP の開発環境として、Visual Studio .NET (2003) を評価してみて下さい .NET は Java と同等に SAPにアクセスできます Java よりも充実した開発環境を体感できます 実案件で提案する際には、MS アドバイザリーサービスの 導入を是非ご検討下さい 他に何かあれば、下記メールアドレスまでご連絡を下さい! mailto:ms-sap@microsoft.com
Questions and Answers