CAFII - どのツールをSAPは提供するのか?

落合監督お疲れ様

ブロガー: マリオ ヘルガー (Mario Herger)
2004/1/13 pm3:07
翻訳: 古澤 昌宏
2004/10/24


これはCAF コンポジットアプリケーションフレームワークについての2つめのブログです。最初のブログコンポジットアプリケーションフレームワークとはなにか?も、どうぞご覧下さい。


適切なツールを使わずにあるフレームワークの中で仕事をすることは、ミトンなしでストーブにある熱いポットをつかむようなものだ。火傷して長期間痛むだろう。時間を無駄にするし、全くやりきれない。これがSAPが、CAFを使うあなたにいくつかのツールを手供する理由だ。

ビジネスアプリケーションの中身

簡単に言うと、ビジネスアプリケーションは次の4つのレイヤからなる。

これら4つのレイヤは相互に影響しあう。パーシステンシレイヤはデータを格納していて、ビジネスロジックレイヤから格納命令や検索命令を受けているデータベースかストレージからデータを検索する。ビジネスロジックレイヤビジネスプロセスレイヤからデータを受け取り、ユーザインタフェースレイヤは下層(ビジネスプロセスレイヤ)から受け取ったデータを表現する。


混乱した? もう一度説明しろ? OK。例を差し上げよう。我々は数日前、レイヤ同士が会話しているところの録音に成功した。ここにその科白を抜粋してお送りする。



ビジネスロジックレイヤ: "ヘイ!データベース。昨日からのカーターさんの注文明細をくれないか?"

パーシステンシレイヤ: "あんたのためならいつでも喜んで! ええっと ... カーターさんの分は5件だね。アルファベット順に並べておいた。あんたはこれが使いやすいんだろ。"

ビジネスロジックレイヤ: "ありがと。速かったね。合計を計算して米ドルに換算させてくれ。ビジネスプロセスレイヤ。商品が引き当てられるか、出荷できるか教えてくれないか?"

ビジネスプロセスレイヤ: "そんなこと訳もないさ。ビジネスプロセスみんなと良い関係にあることを知っておいてくれよ。5つとも全部在庫がある(ありがとう、棚係のストッキー!)から、出荷しておくよ!"

ビジネスロジックレイヤ: "hydrogen-carbon-based life-form((これ、日本語になんて訳せばいいのか...だれか教えて))をスクリーンに表示するのを忘れるなよ!"


ビジネスプロセスレイヤ: "やぁ、ほとんど忘れるとこだった。ほら、情報だよ、UI。"

ユーザインタフェースレイヤ: "今日はどのUIをまとえばいいのかしら?着ていくものがないわ。"

ビジネスプロセスレイヤ: "こっちへ来いよ。君のワードローブには、たくさんのバーチャート、テーブル、リスト...これでも着るものがないって言うの?"

ユーザインタフェースレイヤ: "いいわ、いいのを見つけた。明るいブルーのリストとちょっと濃い目のブルーのボタンをボトムにつけておくわ。"

CAFは基本的にそれら4つのレイヤで扱われ、それぞれに対応したデザイン時や実行時に対応したツールセットが提供される。もちろん、フレームワークには他のパーツも含まれるが、今はその4つに注目した。

それらツールセットは次のように呼ばれる。

  • ビジネスオブジェクトモデラ (パーシステンシレイヤに対応)
  • サービスモデラ (ビジネスロジックレイヤに対応)
  • ガイデッドプロシージャ (ビジネスプロセスレイヤに対応)
  • WebDynpro と Webdynproパターン (ユーザインタフェースレイヤに対応)

ビジネスオブジェクトモデラ

注目点: ビジネスオブジェクトについて語る。しかしテーブルダイヤグラムSQL、認証などについて論争するつもりはなし。

ビジネスオブジェクトモデラによって、ビジネスオブジェクト、バリューセットおよびメソッドを作ることができる。ビジネスオブジェクトは複数のテーブルとメソッドとひとつのEJBから構成される。ビジネスオブジェクトの役割は主に、データを格納することとデータにアクセスすることだ。ビジネスオブジェクトはライフサイクル・メソッドのみから構成される。ビジネスロジックの特性を持つメソッドもしくは他のビジネスオブジェクトからアクセスするメソッドなどは、(ビジネスオブジェクトモデラーではなくて)サービスモデラーで作成される。*1
CAFのオブジェクトレイヤは、オブジェクトモデラを提供する。その役割は次に挙げるものをモデル化することにある。オブジェクトの構造、関係性、必要ならばXIプロキシへのマッピング表、それからビジネスオブジェクトのテクニカル属性と意味属性だ。オブジェクトモデラは、(サービスメタモデルの一部としての)オブジェクトメタモデルを提供する。これは、ビジネスオブジェクトの実行時インプリメンテーションや、データアクセスフレームワークのようなオブジェクトに対する実行時拡張を生成する、生成フレームワークだ。*2



サービスモデラ

注目点: ビジネスロジックについて語る。適切なAPIを探す苦痛、プログラミング言語を選ぶ苦痛、WebサービスにするかWebサービスにしないかを決断する苦痛を和らげる。

CAFのサービスレイヤはあらゆる種類のサービスの登録を、モデリング、コーディングまたはそれらの混成を通じてサポートする。サービスモデラ、サービスメタモデル、およびメタデータ外のサービスのインプリメンテーションを登録するための生成フレームワークが提供される。


ガイデッドプロシージャ

注目点: ビジネスプロセスについて語る。

ガイデッドプロシージャは(デザイン時および実行時の)フレームワークで、コンポジットアプリケーション内で使われる極めてインタラクティブで動的なシナリオをサポートする。ガイデッドプロシージャは下層でJavaアドホックワークフローエンジンを利用するが、いくつかのシンプルなパターンの利用に限定している。エンドユーザが簡単に理解して受け入れることができるための工夫だ。

ユーザインタフェース

注目点: 再利用可能なGUIと、各新しいビジネスアプリケーションへのユーザトレーニングコストを忘れてよいことについて語る。

CAFはコンポジットアプリケーションのUIレイヤとしてWebDynpro for Javaを活用する。単一的なユーザ操作性を達成するために、例えばダッシュボードパターン検索パターンなどのようなUIパターンが開発され、それに似合った表示画面が提供されなければならない。



どのようにCAFが使われ、SAP NetWeaverを最大活用するか

コンポジットアプリケーションフレームワークSAP NetWeaverを下層のプラットフォームとして使う。NetWeaverのすべてのサービスとツール(パーシステンシ、データベースおよびOSからの抽象化、トランスポートロジスティクス(DTR = Design Time Repository)、共同開発、などなど)が必要なのだ。さらに、KMコラボレーションBIEPそしてXIなどで用意されている機能の活用と統合もCAFによって提供されるようになる。
以下に例を挙げる。ビジネスオブジェクトとメソッドのR/3バックエンドへのマッピング; 3rdパーティとレガシシステムをXIで覆うこと; ビジネスオブジェクトのドキュメント、タスク、およびディスカッションがKMの機能を使ってそこに格納されること; インテグレーションプラットフォームがコラボレーションサービスから使われること; EPからのサービス(例えばユーザ管理やシングルサインオンといった)が使われることなど。

あなたのなすべきこと

ここではCAFに含まれる部品を網羅してお話ししました。まずはここに含まれる技術に親しむところから始めましょう。これはフレームワークというものを理解するのに役立ちます。フレームワークはあなたの人生と、あなたの気にするユーザの仕事を単純にできるものなのですよ。

来週もお越し下さい:

来週は次のゲストスターにお越しいただく予定です。オブジェクトレイヤビジネスオブジェクトモデラです。

                                                                                  • -

マリオ・ヘルガーはコンポジット・アプリケーション・フレームワークの製品マネージャです。

*1:この文はSugimaco-sanによる訳。ビジネスオブジェクトが新しい用語に置き換わっていることに注意。原文は"Methods which have the characteristic of business logic or which are accessing data from other Business Objects will be created with the Service Modeler."

*2:難し〜