[ ↑ ]目次[ PREV ]ベーシスシステムとは?[ NEXT ] ディクショナリ
トランザクション
R/3 では論理的に矛盾のない一連の対話処理をトランザクションと呼ぶ。
例えば、「出庫伝票の入力」は1つのトランザクションである。
トランザクションとステップ
トランザクションは画面推移と対応して、ステップと呼ばれる単位に分割される。
この図は、あるトランザクションでの画面変移とデータベースへのアクセスを示している。
- ステップ(or LUW:Logical Units of Work?)
- 実際にアプリケーションサーバ上で実行されるプロセスの単位。
このステップは常に同じサーバで実行されるとは限らない。
- PBO - Process Before Output
- アプリケーションが画面に処理結果を出力する直前に実行されるプロセス
- PAI - Process After Input
- ユーザ入力データをアプリケーションに渡す際に実行されるプロセス。
ステップと処理の流れ
対話プロセスは先に延べたように、論理的な一連の処理であるトランザクションと
それを画面単位に分割したステップに別れる。
次の図はひとつのステップが GUI から起動され、データベースを更新、参照しその結果を
受けるまでの各層の動きを表している。
- ステップ開始
- SAP GUI からステップ開始を指示(Enter
や
Run
)
- キューイング
- リクエストはディスパッチャにより、一旦キューに溜められ整列される。
- FIFO(First In First Out) で、処理すべきリクエストが決定される。
- ワークプロセスへ処理依頼
- ディスパッチャは複数あるワークプロセスから現在空いているものを選び、
処理を指示する
- DB リクエスト
- ワークプロセスは必要に応じて計算し、データベースに要求を出す。
- DB 処理結果
- ワークプロセスはデータベースから結果を受け取る。
- 結果作成
- ワークプロセスはデータベース結果などの処理した結果を圧縮し
ディスパッチャに返す
- 画面表示
- ワークプロセスから得た処理結果を、最初にリクエストを出した端末に転送する。
アプリケーション・サービス
アプリケーション・サーバではディスパッチャやデータベースサーバなど、
機能別にプロセスが動作している。これらを R/3 ではアプリケーション・サービス
またはワークプロセスと呼び、次のものがある。
- ダイアログ・サービス(D:DIA)
- 端末からの要求を処理し、結果を返すサービス。
R/3 アプリケーション・サーバ上では2つ以上の DIA が必要。
- 更新・サービス(V)
- データベースを端末と非同期で更新する。優先順位により更に VB(V1更新)、
UP2(V2更新)の2つに分けられ、VB の方が優先順位が高い。
- ロック管理(エンキュー/デキュー)(E:ENQ)
- データベースを矛盾なく複数のプロセスで更新できるよう、排他制御を行う。
- 大規模なデータベースの場合1つ以上 ENQ を割り当てる事ができるが、
データベースサーバー上にしか存在できない。
- バックグラウンド・サービス(B:BTC)
- 対話ではなく事前に実行する日時や動作条件(イベントと呼ぶ)を指定された
プログラムを実行するサービス。
- スプール・サービス(S:SPO)
- 印刷を管理するサービス。印刷自体は動作している OS に依存している。
- メッセージ・サービス(M)
- 各アプリケーション・サービスを管理するサービスで、R/3 システム全ての中で
唯一データベースのあるホストで動作する。
- CPI-C ゲートウエイ(G)
- 他の SAP システム(とりわけ R/2)との通信を行うプロセス。
インスタンス
幾つかの(場合によっては1つ)アプリケーション・サービスを管理する単位にまとめた
ものをインスタンスと呼ぶ。
インスタンスは2種類あり、
- セントラル・インスタンス
- データベースシステムと同じホストで実行される(よって ENQ はここで実行される)
- メッセージサービスを唯一もち、他のインスタンスを制御する
- ゲートウェイ・サービスを実行できる
- 追加(ダイアログ)インスタンス
- セントラルインスタンスの負荷分散のため他のホストで実行されることが多い
- 対話(DIA),更新(VB/UP2),バックグラウウンド(BTC),スプール(SPO)の
4種のサービスのみ提供できる。
[ ↑ ]目次[ PREV ]ベーシスシステムとは?[ NEXT ] ディクショナリ