アーキテクチャーとは、モノづくりの基本設計や設計思想及びその設計に基づいて作成されたものの構成のことです。 元々建築学の言葉ですが、転じて、IT用語として一般的に用いられるようになりました。情報システム分野には下記のようなアーキテクチャーがよく取り上げられます。
システムアーキテクチャーソフトウェアアーキテクチャーアプリケーションアーキテクチャーパッケージアーキテクチャー
NetWeaver ABAPは基本的にSapECCの技術基盤として出荷されるため、SapECCを代表として、NetWeaver ABAPシステムの各アーキテクチャー構成をそれぞれ説明します。
システムアーキテクチャー
システムアーキテクチャーはソフトウェア、ハードウェア、ネットワークを含め、情報システム全体の構成を示すものです。システム構成と呼ばれることがよくあります。 システムの構築開発作業を行う場合によく最初から作成されるシステム構成図はシステムアーキテクチャーを示すものだと考えられます。
SapECCは、導入企業によってシステムアーキテクチャーが異なりますが、殆どはSAP推奨の開発機→検証機→本番機を分離する3システムランドスケープに従っています。SapECCはシステムの稼働だけではなく、開発と検証も対象領域として統合して管理しています。下記はそのイメージ図です。
ソフトウェアアーキテクチャー
ソフトウェアアーキテクチャーとは、情報システムにおける各ソフトウェアの構成を示すものです。 情報システム特にWEBベースのシステムのソフトウェアアーキテクチャーは論理的に階層化されたものがおおいです。
SapECCのソフトウェアアーキテクチャーは、データベース、アプリケーション、プレゼンテーションの3階層のクライアントサーバシステムになっております。以下の図でSapECCのソフトウェアアーキテクチャーを示します。
アプリケーションサーバ
NetWeaverアプリケーションサーバは、ABAP環境とJAVA環境の両方をサポートしており、それぞれ利用タイプAS ABAPとAS JAVAとして利用することができます。 以下の図でNetWeaverアプリケーションサーバのアーキテクチャ構成を示します。
サーバの構造
以下の図で、ABAPアプリケーションサーバの構造を示します。
ワークプロセス
ワークプロセスはアプリケーション(すなわち1つのダイアログステップ) を実行することのできるコンポーネントです。
J2EEにおいては、アプリケーションサーバの実行スレッドに相当します。 ディスパッチャ
ディスパッチャは、ダイアログステップに対するリクエストを SAPgui から受け取って、それを空いているワークプロセスに転送します。J2EEにおいては、アプリケーションサーバ:ディスパッチャスレッドに該当します。ゲートウェイ
ゲートウェイは、ECC通信プロトコル (RFC 、CPI/C) のインタフェースである。ゲートウェイは、同じ ECCシステム内の他のアプリケーションサーバと通信したり、他の R/3 システム、R/2 システム、または非 SAP システムと通信したりすることができます。
J2EEにおいては、クライアントとアプリケーションサーバとのHTTP通信チャンネルに該当します。ワークプロセス
以下の図で、ABAPアプリケーションサーバのワークプロセスの種類を示します。
ダイアログ・ワークプロセス
ダイアログ・ワークプロセスは、ユーザからのリクエスト(ダイアログステップ実行依頼)を実行します。更新ワークプロセス
更新ワークプロセスは、データベース更新依頼を実行します。更新依頼は SAP LUW の一部であり、ダイアログワークプロセスの結果として生じたデータベース操作群を 1 つのバックグランド処理用データベースLUW にまとめたものです。バックグランド・ワークプロセス
バックグランド・ワークプロセスはユーザ・インタラクションなしで実行できるプログラム (バックグランドド・ジョブ) を処理しますスプール・ワークプロセス
スプール・ワークプロセスは、要求された内容を順次にプリンタなどの出力設備に出力します。スプール・ワークプロセスはアプリケーションサーバ毎に一つのみ存在します。エンキュー・ワークプロセス
エンキューサーバは、SapECCシステムに一つのみ存在し、アプリケーションサーバ間の処理同期を管理します。
アプリケーションサーバは、起動する際に、ワークプロセスを必要な数量分全て作成しておきます。何かの処理が実行する必要になるときに、ディスパッチャにより、空いているワークプロセスの中から一つを割り当てられます。処理が終わったら該当ワークプロセスがまた空き状態に戻り、次の割り当てを待ちます。
SapGUI
SAPguiは、SapECCシステムをアクセスするためのフロントエンドソフトウェアであり、WebシステムにおけるWebブラウザと同様にThin-Clientの上に動作します。
SAPguiは、SapECCシステムのアプリケーションサーバである「NetWeaver Applicatiion Server ABAP」と通信し、サーバ上に動作しているABAPプログラムからレスポンスされたプレゼンテーションを表示し、またユーザからの入力を処理し、そのアクションをサーバへリクエストします。
SAP GUIにも以下の三種類あります。
SAP GUI for Windows
Windowsで動くクライアントソフトウェア。SAP GUI for Java
Java環境で動くクライアントソフトウェア。SAP GUI for HTML
HTMLでアプレットとして動く
一番一般的なのは「SAP GUI for Windows」です。
メニュー
SAPgui画面のメニューは大体下記のようなものから構成されます。
システム固有システムメニュー
セッション開始やユーザ設定、ログオフといった、システム全体に影響する機能が含められますヘルプ
さまざまな形式のオンラインヘルプが提供されますアプリケーション共通オブジェクト
品目など、通常は現在作業中のオブジェクト名をとって名付けられます。照会、変更、印刷、または終了など、オブジェクト全体に影響する機能が含まれます編集
選択、編集、コピーなど、現在のオブジェクトの構成要素を編集することができます。ジャンプ: 現在のタスクと関連する他の画面に直接移動することができます。アプリケーション固有
実行中アプリケーション固有の機能が含められるメニューです。ツールバー
アイコン機能説明A入力画面で選択または入力したデータのチェックを行います。 Enterキーと同じ機能。Bコマンドフィールド トランザクションコードを入力することで直接目的の画面を開くことができます。なお以下のコードをトランザクションコードの前に入力した場合、/O -新規ウィンドウで目的画面を開くことが可能。/N -同一ウィンドウで目的の画面へ遷移することが可能。C保存作業を保存します。メニューの保存と同じ機能。D前画面データのチェックを行い、前画面に戻ります。E終了前画面に戻ります。(注)ボタン押下時に画面チェックが行われます。画面チェックにかかると、正常値へ訂正するか、中止ボタンをクリックしないと画面を閉じることができません。F中止データのチェックを行わず、作業を終了し前画面に戻ります。 ※ボタン押下時に画面チェックは行いません。G印刷データを印刷します。H検索データを検索します。I検索続行データを検索します。データ検索後は、次検索ボタンとなります。J第一ページ画面の表示が1ページを超過する場合に使用します。第1ページにスクロールします。K前ページ画面の表示が1ページを超過する場合に使用します。前ページにスクロールします。L次ページ画面の表示が1ページを超過する場合に使用します。次ページにスクロールします。M最終ページ画面の表示が1ページを超過する場合に使用します。最終ページにスクロールします。Nセッション開始別ウィンドウで新規に画面を開く場合に使用します。(注)新規画面では「SAP Easy Access」画面が表示されます。(注)複数画面で処理中に右上 をクリックすると、確認メッセージなしにセッションが終了されます。ステータスバー
処理の状態やエラーメッセージ等が表示されます
アプリケーションアーキテクチャー
アプリケーション・アーキテクチャーとは、情報システムにおいてエンドユーザが利用する各アプリケーションの設計思想やその構成のことです。下記のようなアプリケーション・アーキテクチャーがよく見られます。
クライアント/サーバアーキテクチャ
アプリケーションは論理的にクライアント側とサーバ側と2階層に分割して実装されます。3層アーキテクチャー
アプリケーションはプレゼンテーション層、ビジネスロジック層、データ層の3階層に分割して実装されます。
3層アーキテクチャーの基本原則として、プレゼンテーション層は決してデータ層と直接通信しない。つまり、全ての通信は必ずビジネス・ロジック層を通ることになります。WEBシステムを構築する際に、WEBプラットフォームの特性からこの3層アーキテクチャーが採用されるのはほとんどです。MVCアーキテクチャー
MVCはプログラムを3つの要素、Model(モデル)、View(ビュー)、Controller(コントローラ)に分割して実装する設計思想であり、場所によってMVCアーキテクチャとも呼ばれていますが、ユーザインタフェースにおける画面上のコンポーネントの管理方法を表しているだけのため、、厳密に言うとアプリケーションアーキテクチャーと言えないと思わられます。MVC に基づくコンポーネントは、三層アーキテクチャのアプリケーションでもよく使われます。
SapECCのアプリケーションアーキテクチャーもソフトウェアアーキテクチャーに合わせて、プレゼンテーション→アプリケーション→データベースの3階層から構成されています。
プレゼンテーション:DynproやWebDynproアプリケーション:ABAP(汎用モジュールなど)、Javaデータベース: 各テーブル、ビュー等