SAP Basis は、SAPシステムの技術基盤を担う領域です。近年はSAP NetWeaverやSAP Technology、あるいは単にBasisと呼ばれますが、指している内容は変わりません。
Basisが担当する領域
| 領域 | 内容 |
|---|---|
| システム構築・運用 | インストール、パラメータ設定、起動と停止 |
| ユーザー・権限管理 | ユーザーの作成、ロールの設計と割当 |
| トランスポート管理 | 開発物とカスタマイジングの移送 |
| ジョブ管理 | バックグラウンド処理のスケジュールと監視 |
| 監視 | システムの稼働状況、エラー、性能の監視 |
| パッチ管理 | サポートパッケージとカーネルの適用 |
| 性能管理 | ボトルネックの特定とチューニング |
| バックアップとリカバリ | データ保護と障害復旧 |
| セキュリティ | 職務分離、監査対応、脆弱性対策 |
3層アーキテクチャ
SAPシステムは、伝統的に3つの層に分かれています。この分離により、それぞれの層を独立して増強できます。
| 層 | 役割 | 構成要素 |
|---|---|---|
| プレゼンテーション層 | 画面の表示と入力 | SAP GUI、ブラウザ、Fiori |
| アプリケーション層 | 業務ロジックの実行 | ABAPサーバ、ワークプロセス |
| データベース層 | データの永続化 | HANA、Oracle、SQL Serverなど |
負荷が高まったとき、アプリケーション層はサーバを追加することで水平に拡張できます。この構造が、SAPが大規模企業の負荷に耐えられる理由の1つです。
インスタンスとワークプロセス
アプリケーション層は、インスタンスという単位で構成されます。1つのインスタンスは、ディスパッチャと複数のワークプロセスからなります。
ユーザーからのリクエストは、まずディスパッチャが受け取り、空いているワークプロセスに割り当てます。ワークプロセスが実際の処理を実行し、結果を返します。
| 種類 | 略号 | 役割 |
|---|---|---|
| ダイアログ | DIA | 対話処理。画面操作に応答する |
| 更新 | UPD | データベースの更新処理を非同期に実行 |
| 更新2 | UP2 | 重要度の低い更新(統計情報など) |
| バックグラウンド | BTC | バッチジョブの実行 |
| エンキュー | ENQ | ロック管理。システムに1つ |
| スプール | SPO | 印刷処理 |
更新処理の非同期性
SAPでは、伝票を保存したとき、実際のデータベース更新はダイアログプロセスではなく更新プロセスが行います。ユーザーの画面はすぐに戻り、更新は裏で実行されます。
この仕組みにより、レスポンスが向上します。一方で、更新が失敗した場合、ユーザーは気づかないままになります。失敗した更新はSM13で確認でき、Basis担当者が定期的に点検する必要があります。
システムランドスケープ
SAPは通常、開発・品質保証・本番の3システムで構成されます。
| システム | 略号 | 用途 |
|---|---|---|
| 開発システム | DEV | 設定と開発を行う。唯一変更可能 |
| 品質保証システム | QAS | テストを行う。本番に近いデータ |
| 本番システム | PRD | 実業務を行う。変更は移送のみ |
変更は必ず開発システムで行い、トランスポートによって品質保証、本番へと順に移送されます。本番システムで直接変更を行わないことが、品質を担保する基本原則です。