.NET テクノロジーを利用した SAP ソリューションの拡張

.NET テクノロジーを利用した
SAP ソリューションの拡張 (詳説)
マイクロソフト株式会社
SAP/Microsoft コンピテンスセンター
Agenda
1.
2.
3.
4.
5.
6.
SAP .NET Connector を利用した UI 拡張
SAP .NET Connector を利用した API 拡張
SAP .NET Connector を利用したサービス 拡張
SAP .NET Connector 詳細
FAQ
SAP ポータル構築提案例
1. SAP .NET Connector を利用した
UI の拡張
(この章の狙い) SAPのユーザーインター
フェースを、次の5パターンに拡張可能で
ある事を説明する。
(1) Windows フォームアプリケーション
(2) ASP .NET Web アプリケーション
(3) コンソールアプリケーション
(4) ポータルインターフェース
(5) モバイルインターフェース
SAP UI 拡張の必要性
SAP R/3 システムを運用するにあたって、
• UI の使い方はユーザーにより様々
–大量のデータ入力が必要 or 特定の機能のみ利用できればよい
• UI の展開範囲も企業により様々
–部門限定の展開でよい or 全社展開が必要
• UI 操作を自動化したい場合もある
–夜間のバッチ処理の自動化
これら3つの条件を総合して勘案し、
カスタマーにとって真に最適な
ユーザーインターフェースを提供する必要性
SAP UI 拡張
SAP GUI
アプリケーション
Windows
アプリケーション
Web
アプリケーション
コンソール
アプリケーション
SAP UI 拡張
• SAP GUI を .NET のユーザーインターフェー
スで拡張する
VS .NET & .NET Connectorで
SAP汎用モジュールをコールする
Windowsフォームアプリケーションを
開発、関連ファイルを配置
Windows
アプリケーション
(t)RFC
(t)RFC
Web
アプリケーション
HTTPS
F/W
コンソール
アプリケーション
VS .NET & .NET Connectorで
SAP汎用モジュールをコールする
ASP .NET Webアプリケーションを
開発、関連ファイルを配置
F/W
ABAP
/ BAPI
Webアプリケーションサーバ
(t)RFC
VS .NET & .NET Connectorで
SAP汎用モジュールをコールする
コンソールアプリケーションを
開発、関連ファイルを配置
コンソールアプリケーションサーバ
SAP
SAP R/3
サーバ
.NET における UI の選択
• ニーズに応じてインターフェースを選択
UIの
使いやすさ
展開の
容易さ
△
Windows
◎
各PCに
アプリ
どのように
ファイルコピー、
ケーション でも作りこみ可
イントラネット内
操作の
自動化
×
Web
アプリ
ケーション
◎
△
サーバーのみ
Web ならでは
ファイルコピー、
の制約は存在
インターネット
コンソール
アプリ
ケーション
×
△
◎
コマンドライン サーバーのみ バッチジョブ
ならでは
ファイルコピー、 エンジンから
の制約は存在 イントラネット内
起動可能
×
最適な UI の例
・大量の会計伝票を入力する
経理アプリケーション
・その他入力効率が要求される
アプリケーション
・全社員向けの単純な経費清算
アプリケーション
・パートナー企業向け案件情報
ポータル
・ジョブ実行エンジン、スクリプト
から制御する月次締め処理
などの定型的バッチ処理
リッチクライアント/シンクライアントの選択
• ユーザービリティ(UI の使いやすさ)と
ディプロイアビリティ(展開の容易さ)との
トレードオフ
ヘビー
ユーザー
Windows
アプリ
ユーザー
Web
アプリケーション
ユーザー
カジュアル
ユーザー
ユーザー数
Windows アプリケーションの展開と管理
• SAP 汎用モジュールを call する Windowsフォーム
アプリケーションを開発
• 各ユーザー のPC に関連ファイル(exeなど)をコピーすれば
インストールが完了
– レジストリ書込み無し(従来と比べると非常に容易)
– アンインストールはファイルを削除するだけ
• .NET Framework がセットアップされている Windows 98
以降の PC であれば、どんな Windows 上でも 稼動する
– .NET Framework が OS の違いを隠蔽
(t)RFC
Windows
アプリケーション
ABAP
/ BAPI
.NET Framework がセットアップ
されている、Win98以降のPCに
Windowsフォームアプリケーション
をファイルごとコピーする
SAP
SAP R/3
サーバ
Web アプリケーションの展開と管理
• SAP汎用モジュールを callする ASP .NET Web アプリケーションを開発
• Web サーバー上に作成した仮想ディレクトリ上に関連ファイル(exeなど)
をコピーすればインストールは完了
• アクセスするクライアントにはブラウザのみがあればよい
– どんなブラウザ、OS でもアクセス可能、クライアントが低スペックでもOK
• インターネット環境でのシステム展開
• Web サーバーを複数ノード設け、冗長構成&負荷分散構成にする事に
よって、可用性&パフォーマンス向上を実現可能
ユーザーのPCには
ブラウザのみ (.NET
Framework など不要)
インターネット環境での
展開が可能
(ただし暗号化、認証の
仕組みが必要)
(t)RFC
Web
アプリケーション
HTTPS
F/W
F/W
Webアプリ
ケーション
サーバ
ABAP
/ BAPI
殆どの処理をサーバー側で行なわせて、ユー
ザー側の要件(ブラウザ、OS、必要
スペックなど)を無くした大規模展開が可能
(ただしスケールアウト構成を考慮すること)
SAP
SAP R/3
サーバ
SAP UI 更なる拡張の必要性
SAP R/3 システムを含め
必要な情報を共有しようとしても
情報が多すぎて効果的に
ユーザーに伝わらない
SAP R/3 ユーザーがオフィスの
デスクトップに座っているとは
限らない
ユーザーが必要とする情報を、
集約して瞬時に提供する
メッセージング手段の必要性
ユーザーが必要とする情報を、
いつでもどこへでも
どんなデバイスへでも提供する
メッセージング手段の必要性
SAP UI 更なる拡張
Web
インターフェース
Exch
ange
SAP
Web
Exchange
File
ポータル
インターフェース
モバイル
インターフェース
ポータルの構築
• 全システムのフロントに
SharePoint Portal Serverを配置
• 基幹系+情報系のポータル構築
– SAP 関連情報のポータルへの
組み込みは、 .NET Connector を
利用する事で格段に容易に
情報系システム
Web Server
File Server
HTML
ASP
JSP
Lotus
Notes / Domino
Database
MS Exchange
Server
メール
予定表
連絡先
仕事
テーブル
ビュー
Exch
ange
SAP
Web
Exchange
File
Exch
Exchange SAP
ange
基幹系システム
HTTP
ポータル
メール
予定表
連絡先
仕事
Office
文書
HTTP
(t)RFC
ABAP
/ BAPI
SharePoint Portal
ServerをWebサーバー
のフロントに配置
Webアプリ
ケーションサーバ
SAP
SAP R/3
SharePoint ポータルテクノロジー
•
メッセージングの一形態:ポータル
–
様々な場所に散在する・・・(Where?)
•
–
様々な異なるデータを・・・(What?)
•
–
Active Directory とのシングルサインオン
様々なレイアウトで・・・(How?)
•
–
ASP(X) (SAP UI含む), JSP, HTML, Officeドキュメント, PDF,
一太郎, 受信トレイ, 予定表, 連絡先, 仕事, テーブル, ビュー
様々なユーザーに対して・・・(Who?)
•
–
Web (SAP のフロント含む), File, Domino, Exchange, DB
属するグループに応じてレイアウトをカスタマイズ
一つの Web UI の中で提供する
ポータル導入の効果
• ポータルが無い今・・・
– 様々な場所に散在する、様々な情報に対して、社員は
それぞれにアクセスしなくてはならない
• 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/mitdefa
ult.asp
– Visual Studio .NET 2003 では組込み済みの機能
• .NET Framework 1.1 の機能
(t)RFC
モバイルWeb
アプリケーション
ABAP
/ BAPI
HTTPS
F/W
F/W
Webアプリ
ケーション
サーバ
アクセスしてきたデバイスをその場で認識し、
各デバイスごとに最適化されたインターフェー
スをクライアントに対して提供
SAP
SAP R/3
サーバ
モバイルインターフェースの構築
• アクセスしてきたモバイル機器に応じて、
適切なマークアップ言語のコードを生成
Web アプリケーション
cHTML
NTT ドコモ
携帯電話
HDML
au
携帯電話
MML
J-Phone
携帯電話
HTML
PDA
2. SAP .NET Connector を利用した
API の拡張
(この章の狙い) 次の non-SAP システム
が SAP へアクセス可能である事を説明する。
(1) .NET/COM クライアント
(2) Web サービスクライアント
(3) レガシーアプリケーション
SAP API 拡張の必要性
• 企業システムを SAP R/3 ただ一つに集約する事は
理想的ではあるが現実的ではない
• SAP システムと Non-SAP システムの混在はまず
避けられない
Non-SAP アプリケーションがシステム的に
SAP R/3 へアクセスするための
アプリケーションプログラミングインターフェース
(API)拡張の必要性
SAP API 拡張
ABAP
/ BAPI
SAP
ABAP/BAPI
SAP
SAP
SAP
.NET
COM
XML Web サービス
SAP API 拡張
• SAP の ABAP/BAPI インターフェースを
.NET の API で拡張
• SAP のシステム連携範囲が大幅に拡大
.NET クラス
ライブラリサーバ
.NET
クライアント
SAP R/3
サーバ
.NET
Remoting
COM
クライアント
ラッ
パー
VS .NET & Connectorで
クラスライブラリを開発
(t)RFC
VS .NET & .NET Connector
でXML Web サービスを開発
XML Web
サービス
クライアント
メイン
フレーム
F/W
SOAP
F/W
XML Web サービスサーバ
ABAP
/ BAPI
SAP
.NET/COM クライアントからのアクセス
• .NET クライアントの範囲
– Visual Studio .NET など .NET 環境で開発するアプリケーション
• VB, C#, C++, J#, Delphi, Pascal, Fortran, Perl, COBOL ….
• COM クライアントの範囲
– Visual Studio 6.0 などCOMが利用できる環境で開発した既存アプリ
– Office XP VBA, BizTalk Server 2002, SQL Server 2000 DTS など
– COM <-> .NET のラッパーを介在させる必要があるため、多少の
変換の負荷がある
• パフォーマンステストの実施
• イントラネット内、Windows 同士の連携
などなど・・
Web サービスクライアントからのアクセス
• Web サービスクライアントの範囲
– Visual Studio .NET などを用いたアプリケーション
– Web Services Toolkit を利用したアドオン
• Office XP, BizTalk Server 2002, SQL Server 2000
– Microsoft だけでなく、SAP, IBM, BEA, Sun, Oracle等殆
どの主要ベンダーが、XML Web サービステクノロジーに
既に対応済み
• インターネット、ファイアーウォール、異種
プラットフォームの壁を越えた連携が可能
(参考) Web サービス対応製品一覧
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
•
Orbix E2A Application Server 5.0 (アイオナテクノロジズ)
WebSphere Application Server 4.0 (IBM)
Web Services Toolkit 3.0 (IBM)
eXtensible Information Server (エクセロン)
Oracle 9i Application Server R2.0 (オラクル)
iPlanet Application Server 6.3 (サンマイクロシステムズ)
Java Web Service Developer Pack EA2 (サンマイクロシステムズ)
SilverStream eXtend Application Server 3.7.3 (シルバーストリームソフトウエア)
SilverStream jBroker Web 1.1 (シルバーストリームソフトウエア)
ActiveGlobe WebOTX4 (日本電気)
WebLogic Server 7.0J (BEAシステムズ)
Cosminexus 5.0 (日立製作所)
Hp Web Services platform (ヒューレットパッカード)
INTERSTAGE Application Server 4.1 (富士通)
Borland Enterprise Server AppServer Edition (ボーランド)
.NET Framework 1.0 (マイクロソフト)
SOAP Toolkit 2.0 (マイクロソフト)
GLUE 2.3 (マインドエレクトリック)
ColdFusion MX Server (マクロマディア)
Enhydra Application Server 4.1 (ルトリステクノロジズ)
出典:日経BP社 Webサービス完全ガイド(2002年6月30日発行)
(参考) Web サービス対応製品一覧
•
•
•
•
•
•
•
•
•
•
•
•
•
•
WebSphere Studio Application Developer (IBM)
eXcelon Stylus Studio (エクセロン)
Oracle 9i JDeveloper (オラクル)
Forte for Java 3.0 (サンマイクロシステムズ)
SilverStream eXtend Workbench (シルバーストリームソフトウエア)
Cosminexus Studio 5.0 (日立製作所)
INTERSTAGE APWORKS V4.0L20 (富士通)
NetCOBOL (富士通)
C++ Builder (ボーランド)
Delphi6 (ボーランド)
JBuilder (ボーランド)
Kylix2 (ボーランド)
Visual Studio .NET (マイクロソフト)
Rational Suite v2001A (ラショナルソフトウエア)
出典:日経BP社 Webサービス完全ガイド(2002年6月30日発行)
SAP API 更なる拡張の必要性
• API にアクセスできないアプリケーションの存在は
無視できない
–特にレガシーシステムに多い
– 外部との連携機能はエクスポート
– 特有の通信手法
Non-SAP アプリケーションが
(1)エクスポート、もしくは、(2)「特有の」通信手法で
SAP へアクセスするための、 EAI 導入の必要性
SAP API 更なる拡張
SAP
COM
SAP
BizTalk を用いたエクスポートに
よるアクセス、
アダプタを介したアクセス
レガシーを含めた EAI の構築 (1)
• BizTalk の受信・送信アーキテクチャによる、レガシーシステムまで
含めたシステム連携
tRFC
レガシー
クライアント
アプリケーション
ABAP
/ BAPI
.NET クラス
ライブラリ
データ入力の都度、
外部ファイルを
吐き出し、BizTalk宛
にファイル転送
SAP
SAP R/3
サーバ
SAP 会計データ更新の
クラスを準備しておく
レガシー
サーバー
アプリケーション
TXT
CSV
FILE
FILE
MSMQ
MSMQ
XML他
XML
HTTPS
・様々なプロトコルでの受信
・様々なファイル形式の取扱
・様々なプロトコルでの送信
・プロトコル/ファイル形式変換
・ルーティング
・マッピングなどデータ加工
・ビジネスプロセス実行
・再送信管理
TXT
CSV
HTTPS
「ビジネスプロセス実行」の過程の中で、
1.SAPに登録する必要のあるデータのみ抽出し
2.メソッド呼び出し、その他のデータを他システムへ送信
XML
レガシーを含めた EAI の構築 (2)
• BizTalk が持っているアダプタを活用したノープログ
ラミングでのシステム連携
– 現在マイクロソフトやパートナーから、多数のアダプタが
提供されている
レ
ガ
シ
ー
ア
プ
リ
ケ
ー
シ
ョ
ン
メイン
フレ
ーム
Host Integration
Server など
アダ
プタ
(t)RFC
オフコン
アダ
プタ
ABAP
/ BAPI
アダ
プタ
UNIX
Services for
UNIXなど
.NET クラス
ライブラリ
SAP
SAP R/3
サーバ
BizTalk EAI テクノロジー
• システム連携の主流: EAI
– 様々な通信プロトコルによる受信と送信
• File, HTTP(S), MSMQ, DCOM, .NET, SMTP(送信)
– 様々なファイル形式の認識
• 固定長 (IDoc 含む), CSV, XML, EDI
– ルーティング送信
– スキーママッピング、集計、ソート等データ加工
– 複数システム間のビジネスプロセス実行と管理
(参考) BizTalk Server アダプタ一覧
●EAI
AS/400
SAP
Ora cle Ap p lica t ions
DB2
DB 全般
ADO
JDBC
HAC L(5250 API)
C IC S / IMS
MQ Series
製品名
提供元
Microsoft BizTalk Adapter for MQSeries
EAI Base Adapters for Biztalk Server
Microsoft BizTalk Adapter for SAP
iOrchestrator for SAP R/3
iOrchestrator for Oracle Applications
Taviz Adapter Offering for Microsoft BizTalk Server
Microsoft Host Integration Server
iOrchestrator for Microsoft ActiveX Data Objects
iOrchestrator for JDBC
EAI Base Adapters for Biztalk Server
EAI Base Adapters for Biztalk Server
iOrchestrator for Microsoft ActiveX Data Objects
iOrchestrator for JDBC
EAI Base Adapters for Biztalk Server
Microsoft Host Integration Server
Microsoft BizTalk Adapter for MQSeries
マイクロソフト(株)
製品名
提供元
日立ソフトウェアエンジニアリング(株)
マイクロソフト(株)
コンパック(株)
ときわ情報(株)
マイクロソフト(株)
コンパック(株)
日立ソフトウェアエンジニアリング(株)
コンパック(株)
日立ソフトウェアエンジニアリング(株)
マイクロソフト(株)
●B2B
Arib a
C ommerce One
C la rus
BizTalk Server Accelerator for Suppliers
cXML
マイクロソフト(株)
x C BL
C IDX
Ros et t a Net
BizTalk Accelerator for RosettaNet
●EDI 手順
ANSI.X12
全銀手順
全銀 TCP/IP 手順
JCA 手順
JEDICOS
CII 標準
製品名
提供元
BizTalk Server 標準機能
マイクロソフト(株)
ACMS/NT for BizTalk Server
(株)データ・アプリケーション
3. SAP .NET Connector を利用した
サービス拡張
(この章の狙い) SAP からも次の non-SAP
システムへアクセス可能である事を説明する。
(1) OLEDB/ODBC/FILE/XML
(2) COM/.NETサーバ
(3) Web サービス
(4) レガシーアプリケーション
SAP サービス拡張の必要性
• Non-SAP システムから SAP システムへのアクセス
だけではシステム連携といえない
• SAP システムから Non-SAP システムへのアクセス
も必要
SAP システムから Non-SAP システムへのアクセスを
可能にするテクノロジーにより、
両者間で完全にインタラクティブな連携を構築
SAP サービス拡張
• SAP が提供するサービスを .NET のパワーで拡大
OLEDB/
ODBC/
File/XML
COM /
.NET
サーバ
SAP
ABAP
/ BAPI
メイン
フレーム
XML
Web
サービス
ひとつの
SAPサービス
として提供
SAP サービス拡張
• ABAP プログラムが .NET アプリケーションと連携する事で、
(SAP 内部に限らず)様々なデータソース、システムに
アクセス可能になる
OLEDB/
• SAP が提供できるサービス自体を拡張
ODBC/
File/XML
.NET
Remoting
/ DCOM
(t)RFC
SAP
SAP R/3
サーバ
COM /
.NET
サーバ
ABAP
/ BAPI
コンソール
アプリケーション
サーバ
F/W
SOAP
F/W
メイン
フレーム
XML
Web
サービス
OLEDB/ODBC データソース
•
•
•
•
•
•
•
•
•
SQL Server
SQL Server Analysis Services
Access
Oracle
DB2
ディレクトリサービス
ISAM
Indexing Service
他
.NET/OLEDB/ODBC データソース
アプリケーション
SQL Server .NET
データ プロバイダ
SQL Server用
OLE DB
プロバイダ
SQL Server
ODBC .NET
データ プロバイダ
OLE DB .NET
データ プロバイダ
Access用
OLE DB
プロバイダ
Access
Oracle /
DB2用
OLE DB
プロバイダ
ODBC用
OLE DB
プロバイダ
Oracle / DB2
Oracle /
DB2用
ODBC
ドライバ
ODBC
ドライバ
ODBC データベース
SAP サービス拡張 具体例(1)
• ABAP でレポートを作成する際、顧客マスタ
Oracle データベースに接続する
– OLEDB 接続
• SAP HR で社員追加処理を行なった後、
Active Directory と Visual Studio .NET で
開発した人事アプリケーションと への社員
追加作業を自動化
– OLEDB, .NET サーバー接続
SAP サービス拡張 具体例(2)
• ABAP で抽出した顧客に対して Exchange Server
からダイレクトメールを送信する
– COM サーバー接続
• ABAP で受注処理を行なった後、IDoc ドキュメント
を BizTalk Server に送信する
– COM サーバー接続
• ABAP で有価証券の再評価を行なう際、
株価 Web サービスに接続する
– XML Web サービス接続
ABAP プログラミングイメージ
(t)RFC
SAP
SAP R/3
サーバ
ABAP
/ BAPI
コンソール
アプリケーション
サーバ
レガシーを含めた EAI の構築
• BizTalk の受信送信アーキテクチャによる、レガシーまで含めた EAI
– BizTalk へ IDocドキュメントを送信する.NET クラスを配置
– SAP の ABAP プログラムの中で上記クラスをcallするよう
プログラム修正
– BizTalk は IDoc ドキュメントを受信すると
各システムへルーティング、加工、そして送信
IDOC
コンソール
アプリケーション
サーバ
(t)RFC
SAP
経理アプリ
ケーション
HTTPS
ラッ
パー
引数として受けた
IDoc ドキュメントを
BizTalk へ送信する
クラスを準備する
ケーション
MSMQ
DCOM etc
XML他
ユーザーがあるトランザクション
を実行した時、ABAP プログラム
の中で.NET アプリをラッピング
するファンクションをコール、
IDoc ドキュメントを送信する。
TXT 人事アプリ
CSV
FILE
ABAP
/ BAPI
各システムに対して
ほぼリアルタイムで更新が
なされる
・様々なプロトコルでの受信
・様々なファイル形式の取扱
・様々なプロトコルでの送信
・プロトコル/ファイル形式変換
・ルーティング
・マッピングなどデータ加工
・ビジネスプロセス実行
・再送信管理
XML
財務アプリ
ケーション
SMTP
TXT
メール
サーバ
4. SAP .NET Connector 詳細
SAP .NET Connector 詳細
• ユーザービリティ
– 非同期メソッド実行
• スケーラビリティ
– 接続プーリング
• リライアビリティ
– tRFC 通信
• セキュリティ
– シングルサインオン
• マネージアビリティ
– ABAP デバッガとの連動
通常のメソッド実行
ユーザービリティ
• 同期メソッド実行
– Java Connector や DCOM/.NET Connector
– たとえば、大量レコードを検索するアプリケー
ションにおいて、ユーザーは長時間待たされる
JAVAアプリ
ケーション
①
②
SAP
もしくは
??
ユーザー
インターフェース
⑤
④
.NETアプリ
ケーション
SAP R/3
サーバ
③
非同期メソッド実行
ユーザビリティ
• .NET Connector のみ
• メソッド ”Begin<RFC名>” をコールすると、戻り値を
待つことなくひとまず制御が戻される
• しばらくして戻り値が返ってくれば通知される
①
この検索には
時間が
かかります・・
ユーザーを待た
せず迅速に返
答
②
SAP
③
OK!
検索が完了
しました!
ユーザー
インターフェース
⑥
.NETアプリ
ケーション
⑤
SAP R/3
サーバ
④
2階層の接続方式
スケーラビリティ
• 都度接続が確立される
– 接続確立の負荷が無視できないケースも多い
接続
確立
接続
確立
接続
確立
SAP
コネクションプーリング
スケーラビリティ
• 3階層の場合、.NET アプリケーションサーバ
において R/3 サーバへの接続を貯めておき
使いまわすことで、接続確立の時間を節約
予めOpenし
ておいた接続
を
使いまわし
SAP
.NETアプリ
ケーション
サーバ
Pooling
接続
Pooling
接続
Pooling
接続
SAP R/3
サーバ
RFC Quality of Service
リライアビリティ
• RFC:
– 同期コール
– プロセスが完了するまでクライアントは待機
– インプット、アウトプットパラメータをサポート
– ABAPでの呼び方:
Call ....DESTINATION Dest .....
– Cでの呼び方: RfcCallReceive()
– VB, Scriptでの呼び方:
DCOM Connector, SAP Automation, C call
RFC Quality of Service
リライアビリティ
• エラーが起こったときのRFC の問題
– エラーがどこで起きたのか
– 失敗した呼び出しは再試行されるのか
client
server
Can retry
client
server
Check data
+ customizing
and retry
client
server
Don't retry
RFC Quality of Service
リライアビリティ
• tRFC
– 一回のみの送信、実行を保証
• 2重登録はあり得ない
–
–
–
–
External tRFC は常に同期
ABAP tRFC は非同期
インプットパラメータのみサポート
ABAPでの呼び方:
Call ... DESTINATION Dest IN BACKGROUND TASK ......
– Cでの呼び方: RfcCallIndirectEx ()
– VBでの呼び方: SAP DCOM Connector, C call
– 外部プログラム(ABAP からコールされる .NET のプログラム)は
通常の RFC 通信のみサポート
• Transaction ID の管理とエラー時の再試行のロジックが必要
tRFC通信
client
リライアビリティ
server
RfcCreateTransID
Get TID
RfcIndirectCallEx
Insert TID,
+ Call
Execution
Store TID
and DATA
Delete TID
and DATA
RfcConfirmTransID
Delete TID
tRFCによる更新
リライアビリティ
• RFC 通信は、途中でネットワーク障害などが
起きた場合、整合性が保証されない
– 2回更新がかかると、そのまま2重で登録される
– 参照処理であればこれで十分
• tRFC (t: transactional)通信は、正確に1回
のみ実行される事が保証される
– 更新処理(受注追加、IDOC のサブミット)に
おいて tRFC は必須であるといえる
通常サポートする認証方式
セキュリティ
• SAPユーザー名、パスワードによるログオン
SAPユーザー名&
パスワードの指定
Windows フォーム
アプリケーション
SAP
SAPユーザー名&
パスワードの指定
ASP .NET Web
アプリケーション
インターネット
ASP .NET Webサーバ
SAP R/3
サーバ
シングルサインオン
X.509 認証による SSO
セキュリティ
• PKI 環境であれば X.509認証
– インターネット環境で運用が可能
– クライアント証明書の配布、
運用が必要
認証局
SAPユーザー
へのマッピング
SAP
証明書
パススルー
証明書の
指定
ASP .NET Web
アプリケーション
SAP R/3
サーバ
6.20~
SSO
他サーバ
インターネット
X.509証明書
ASP .NET Webサーバ
シングルサインオン
Kerberos/NTLM 認証によるSSO
セキュリティ
• Active Directory 環境であれば Kerberos 認証
– データの整合性と機密性を保証
– 通常イントラネット環境で運用
Active
Directory
• NT4 ドメイン環境であれば NTLM 認証
SAPユーザー
へのマッピング
ドメイン
ログオン&
Kerberos
チケット提示
Windows フォーム
アプリケーション
SSO
Kerberos
チケット
パススルー
ドメイン
ログオン&
Kerberos
チケット提示
ASP .NET Web
アプリケーション
SAP
SAP R/3
サーバ
6.20~
SSO
他サーバ
イントラネット
Kerberosチケット
ASP .NET Webサーバ
その他サポートする認証方式
• SAP ログオンチケット
• .NET Passport
セキュリティ
シングルサインオン導入の効果
セキュリティ
• SSO のフレームワークが提供されない場合・・・
– ユーザーはそれぞれのシステムにログインする必要
• ディレクトリが多すぎるとユーザーはパスワードを忘れる
– ディレクトリを複数持つため、セキュリティ面で不安
• いつかどこかで Crack される可能性
• SSO 導入後は・・・
– ユーザーは1回だけ認証を求められる
• ディレクトリが一つであればパスワードは忘れない
– ディレクトリを一つに統一するため、そのディレクトリだけ
をセキュア&堅牢に管理すればよい
ABAP デバッガの起動
マネジアビリティ
• .NET アプリケーションのデバッグから
ABAP 汎用モジュールのデバッグへスイッチ
5. FAQ
Frequently Asked Questions (1)
• DCOM Connector との違いは何か?
– 基本的な考え方は同じ
• .NET Connector は Version 2 のツール
• Load Runnner 等を利用した十分なパフォーマンステストが既に
なされている
– DCOM へのラッピングから .NET へのラッピングへ
• ※ .NET から DCOM を呼び出す事も、その逆も可能
– インターフェースが開発環境に統合され、非常に使い易くなった
– コネクタ自体の不具合について、SAP 社からのサポートが得られる
ようになった
– (.NET から SAP のコールだけでなく) SAP から .NET のコールを
構成できるようになった
Frequently Asked Questions (2)
• Java Connector との違いは何か?
– .NET (Connector) は Java 言語のみに縛られない
• C#, C++, VB, J#, Delphi, Perl, COBOL, …
– 非同期実行機能は .NET Connectorのみ
• Common Language Runtime の機能を利用して実装
Java
VB, VC, C#, J#, Jscript, Delphi,
COBOL, Pascal, Perl, Haskell,
SmallTalk, Pascal, APL,
Mercury, StandardML, Oberon,
Eiffel, Python, Scheme, etc…
Application
Application
上下方向の
ポータビリティ
を実現
下方向のみの
ポータビリティ
JVM
JVM
JVM
Common
Language
Runtime
Common
Language
Runtime
Common
Language
Runtime
Windows
モバイルデバイス
Unixなどその他
Windows
モバイルデバイス
Unixなどその他
Frequently Asked Questions (3)
• .NET Connector はサポートされるのか?
– コネクタ自体は SAP 社によりサポートされる
– コネクタ上のアプリケーションの不具合について
は自己責任となる
Frequently Asked Questions (4)
• ASP .NET Web アプリケーションにアクセス
する Web ブラウザの必要条件は?
– サーバーサイドでアプリケーションがロジックを
動かすのであれば、Webブラウザの指定は無い
• Netscapeでも可
• 低スペックのPCでも十分
6. SAP ポータル構築提案例
ゴールと2つの懸案
ゴール
SAP サーバ (R/3, APO, EBP)のポータル構築
課題1
Webのユーザーインター
フェース有無の確認、
無ければ構築の手法?
課題2
NT ドメイン、
Active Directory との
シングルサインオン、
ユーザー情報管理の
仕組み?
中央拠点
NT Domain,
Active
Directory
(1) ADUser1
としてログ
オン
認証情報
認証情報
ADGroup1
ADUser1 (password)
ADUser2 (password)
ADUser3 (password)
ADGroup2
……………
ADGroup1
ADUser1 (password)
ADUser2 (password)
ADUser3 (password)
ADGroup2
……………
Active Directory レプリケーション(同期)
(2) ADGroup1と
してのセッション
チケット提供
認証情報
SAPUser (password)
R/3
アクセスコントロール情報
SAPUser 何でも○
認証情報
SAPUser (password)
Web
ブラウザ
APO
(4) (t)RFCで
やりとり
(SAPUser
として接続)
(6) HTML
アクセスコントロール情報
SAPUser 何でも○
認証情報
SAPUser (password)
EBP
+ITS
(3) ADGroup1
のチケット提示
NT Domain,
Active
Directory
アクセスコントロール情報
SAPUser 何でも○
I
P
V
P
N
や
専
用
線
な
ど
Web
ブラウザ
アクセスコントロール情報
Webアプリ
ケーション
サーバ
IIS 6.0/
.NET
Framework
ADGroup1 読取/実行○
ADGroup2 読取/実行○
……………
他拠点
アクセスコントロール情報
Content Management Server 2002 を利用
してコンテンツ同期
イ
ン
タ
ー
Webアプリ
ケーション
サーバ
IIS 6.0/
.NET
Framework
ADGroup1 読取/実行○
ADGroup2 読取/実行○
……………
課題の解決
• R/3 と APO と EBP は ABAP のアーキテクチャであるため、 .NET
Connector を利用してこれらのサーバーに (t)RFC でアクセスする
(ASP .NET )Web アプリケーションを開発し、Web の UI を提供する
• R/3, APO, BW, EBP へは 単一のユーザーIDでログオンするよう、
ASP .NET Web アプリケーションを構成する
– SAP サーバー側でのユーザーマッピングは不要
– SAP のコネクションプーリングが利用可能になり、パフォーマンスとスケーラ
ビリティを確保
• SAP 関連のサーバーで持たせる認証&アクセスコントロールの情報は
最低限にする
• 実質 Active Direcoty 上のみで認証させる事とする
• 実質 ASP .NET Web アプリケーションサーバ 上のみでアクセス
コントロールさせる事とする
(※)汎用モジュールのコール(1)
Visual Studio .NET
SAP Connection Wizard
1.SAP汎用モ
ジュールの指定
2.Nextボタンを
おして.NET側に
クラスを生成
3..NET側に
汎用モジュール
をコールするクラス
(PG)が生成された
(※)汎用モジュールのコール(2)
Visual Studio .NET
次の一行で汎用モジュールをコールする。
proxy.Rfc_Customer_Get (“”,TextBox1.Text, ref brfcknA1Table1);
トランザクションのコールは出来ない。
(※)Webアプリケーションサーバへの
アクセスコントロール設定イメージ
エクスプローラ
1.エクスプローラより、
Webアプリケーションの
実体が存在するフォルダを右
クリック
2.AD上の
(Domain名)\(グループ名)を
指定(ユーザー名を直接
指定してもOK)
4.ADとの統合認証の
設定が完了
3.権限を付加
(※) Superuser 接続の設定
Visual Studio .NET
1.Webページの
デザイン
2.SAPへ接続する
ための”スーパーユーザー”
のユーザー名、パスワード
などを指定
SharePoint Portal Server の追加提案
• 部門別パーソナライズ機能の提案
– コーディングするよりも運用管理が楽
• いわゆるポータル以外の2大ソリューションの提案
– Office, PDF などのドキュメントのサーチ機能
– ドキュメントストア・管理機能
• SharePoint 2003 の場合、 .NET Framework と完全統合
される為、SAP サーバーに RFCプロトコルで通信する Web
パーツを開発する事が出来るようになる
– SAP にアクセスする既成の Web パーツも提供予定
– Version 1 では、Web パーツはあくまでHTML を表示しているのみ
中央拠点
NT Domain,
Active
Directory
認証情報
認証情報
ADGroup1
ADUser1 (password)
ADUser2 (password)
ADUser3 (password)
ADGroup2
……………
ADGroup1
ADUser1 (password)
ADUser2 (password)
ADUser3 (password)
ADGroup2
……………
NT Domain,
Active
Directory
他拠点
認証情報
SAPUser (password)
R/3
アクセスコントロール情報
SAPUser 何でも○
認証情報
SAPUser (password)
Web
ブラウザ
APO
SAPUser 何でも○
(4) (t)RFCで
やりとり
(SAPUser
として接続)
認証情報
SAPUser (password)
EBP
+ITS
(5) ユーザーが
所属する部門に
応じて様々な
レイアウトを提供
アクセスコントロール情報
アクセスコントロール情報
SAPUser 何でも○
I
P
V
P
N
や
専
用
線
な
ど
SharePoint
Portal Server
Web
ブラウザ
SharePoint
Portal Server
アクセスコントロール情報
Webアプリ
ケーション
サーバ
IIS 6.0/
.NET
Framework
ADGroup1 読取/実行○
ADGroup2 読取/実行○
……………
アクセスコントロール情報
Content Management Server 2002 を利用
してコンテンツ同期
イ
ン
タ
ー
Webアプリ
ケーション
サーバ
IIS 6.0/
.NET
Framework
ADGroup1 読取/実行○
ADGroup2 読取/実行○
……………
提供される SAP 用 Webパーツ
1.
2.
3.
4.
5.
Accounts Receivable
Account Payable
Open Orders
My Benefits
Expense Report Status and Expense Reports to
Approve
Go to MS/SAP Solution Site !!
http://www.microsoft.com/japan/business/sap/default.mspx
.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.micros
oft.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:[email protected]
Questions and Answers