SAP & SQL Server テクニカルアーキテクチャ概要 マイクロソフト株式会社 SAP/Microsoft コンピテンスセンター
R/3 Architecture : Overview Presentation layer User User User Business-logic layer Dispatcher Work- Process Work- Process Work- Process R/3は3-tier。 それぞれのユーザーは、まずディスパッチャにアクセスする。 ディスパッチャは、それぞれのユーザーアクセスをワークプロセスに割り当てる。 それぞれのワークプロセスは、DBにアクセスする。 3-tier! Database layer RDBMS
Presentation layer Presentation layer PC with SAP GUI Thin Client Web Browser Terminal Server with SAP GUI Web Server with Internet Transaction Server SAP APサーバーへのアクセスの手法は3パターン。 ・SAP GUIをインストールしたPCから直接 ・Thin Clientから、SAP GUIをインストールしたTerminal Server (Win2000 TS)を経由して ・Web browserから、ITSをインストールしたWeb Server(IIS)を経由して
Business-logic layer (1) Dispatcher ・・・・ Dialog WP ・・・・ Back- ground WP Enqueue WP Dialog WP Back- ground WP Update WP ・・・・ Spool WP ・・・・
Business-logic layer (2) 用語解説 Dispatcher ユーザーからアクセスを受信すると、まずキューに格納 先入先出法で利用可能なワークプロセスに割当てていく Work-Process Dialog:画面の制御、ユーザーセッションの管理 Background:バックグラウンドジョブの実行 Enqueue:R/3オブジェクトのロックの管理 Update:データの更新、確定 Spool:帳票印刷
R/3 ~ Show work-process list
Background work-process Business-logic layer Dispatcher Dialog WP Back- ground WP ② Job実行依頼 Database layer ① 60秒毎に(Default) 実行するJobがないか確認 RDBMS Schedule Table
Enqueue work-process ~ How to lock (1) Presentation layer User User ① Call function ・・・ (共有ロック指示) ④ Call function ・・・ (共有ロック指示) Business-logic layer Dispatcher ② ロック 情報取得 &更新 ⑤ ロック 情報取得 Dialog WP Enqueue WP Dialog WP In-memory Lock table R/3は、ロックを独自に実装している。 つまり、ENQ WPがロック管理を担当し、Business-logic層のLock Tableがロック情報を保持する。 (SQLのロックマネージャとは別!) ユーザー1が共有ロックを指示すると、Lock Tableの中に「共有ロックします」のエントリが入る。 ユーザー1は読み取りができる。 ユーザー2がこの後共有ロックを指示したとき、Lock Tableには共有ロックのエントリしか入っていないので、 ユーザー2も読み取りができる。 Database layer ③ 読取可能 ⑥ 読取可能 RDBMS
Enqueue work-process ~ How to lock (2) Presentation layer User User ① Call function ・・・ (排他ロック指示) ④ Call function ・・・ (ロック指示) Business-logic layer Dispatcher ② ロック 情報取得 &更新 ⑤ ロック 情報取得 Dialog WP Enqueue WP Dialog WP In-memory Lock table ユーザー1が排他ロックを指示すると、ユーザー2は読み取りもできなくなる。 Database layer ③ 更新可能 ⑥ アクセス不能 RDBMS
Enqueue work-process ~ How to lock (3) 用語解説 In-memory Lock Table Enqueue work-processを実行している サーバーのメモリ上にある、ロック情報を格納しているテーブル 他のサーバーからはメッセージサーバー経由でこのテーブルを参照する RDBMSがもつロック機能を使用しない
Update work-process ~ Transaction flow (1) Presentation layer User ① Call function ・・・ (更新指示) Business-logic layer Dispatcher Dialog WP Update WP R/3は、データ更新についても独自の実装がある。 ユーザーがInsert, Update, Deleteしたタイミングでは、VB*という一時テーブルに更新のログがたまるだけ。 ② Insert into VB* ・・・ Database layer RDBMS VB* R/3 Table
Update work-process ~ Transaction flow (2) Presentation layer User ③ Commit Work ・・・ (確定指示) Business-logic layer Dispatcher Dialog WP Update WP ④確定指示 ユーザーがCommitしたタイミングで、 一時テーブルにある更新ログを元に、実テーブルへInsert, Update, Delete+Commitが行われる。 ⑤ Select ・・・ from VB* ・・・ ⑥ Insert、 Update、Delete Database layer RDBMS VB* R/3 Table
Update work-process ~ Transaction flow (3) VB* 更新ログを格納する一時テーブル
Work-process Time limit (1) Presentation layer User User User User Business-logic layer Dispatcher Dialog WP Dialog WP Dialog WP Dialog WP Dialog WP
Work-process Time limit (2) Presentation layer User User User User Business-logic layer Dispatcher Dialog WP Dialog WP Dialog WP Dialog WP Dialog WP
Data access (1) ABAP Interpreter DB Interface RDBMS Business-logic Layer ABAP Program OPEN SQL (DB非依存) ABAP Interpreter Recordset (DB非依存) DB Interface R/3は、Multi DBである。 ABAPプログラマは、OPEN SQLというDB非依存の仕様にもとづいてSQL文を書く必要がある。 そしてDB Interfaceは、OPEN SQLを(各DBに対応した)Native SQLに変換する仕事をする。 (※SQLだったら、DB InterfaceにOLE DB Providerが入ってるはず?) Local buffer Native SQL (DB依存) Recordset (DB依存) Database layer RDBMS
Data access (2) 用語解説 ABAP DB Interface Local Buffer R/3標準のソフトウエア開発環境 インタープリタ言語 DB Interface DBの相違を隠蔽する抽象化レイヤ 「R/3用のOPEN SQL文」←→「各DB対応のSQL文」の変換 DB Interfaceを介さないSQL文の発行は推奨されない Local Buffer マスター系テーブルをメモリ上に配置
Demo Screenshot
SQL ~ Data space
SQL ~ Memory settings
SQL ~ Processor settings
SQL ~ Security settings
SQL ~ Database files settings
SQL ~ Transaction log files settings
SQL ~ Option settings
R/3 ~ Show DB settings
R/3 ~ Show volume analysis
R/3 ~ Show DB performance monitoring (1)
R/3 ~ Show DB performance monitoring (2)
R/3 ~ Show DB performance monitoring (3)
R/3 ~ Show DB parameter settings (1)
R/3 ~ Show DB parameter settings (2)
R/3 ~ Show Memory tuning