(57)【要約】【課題】モックアップオブジェクト用のモックアップデータのための方法および装置を、コンピュータプログラム製品を含めて提供すること。【解決手段】一実施形態では、本方法は、モックアップデータを作成すべきモックアップオブジェクトの名前をユーザから受け取るステップであって、そのオブジェクトが1つまたは複数のノードを含む、ステップを含むことができる。本方法はまた、そのオブジェクトの各ノードについて作成されるレコードの数をユーザから受け取るステップと、既存のモックアップデータを修正するか、それとも各ノードについて新しいモックアップデータを作成するか判定するステップと、そのモックアップデータについて開始範囲および終了範囲をユーザから受け取るステップと、そのフレームワーク内で格納されているメタデータならびに開始範囲および終了範囲に基づいて、オブジェクトの各ノードについてモックアップデータを、フレームワーク内で生成するステップとを含むことができる。【選択図】図3
2008009984.tif 000002
【特許請求の範囲】
【請求項１】
他のオブジェクトを含むフレームワーク内で実装されるモックアップオブジェクト用に、モックアップデータを作成するための方法であって、
前記モックアップデータを作成すべき前記モックアップオブジェクトの名前をユーザから受け取るステップであって、前記オブジェクトが1つまたは複数のノードを含む、ステップと、
前記オブジェクトの各ノードについて作成されるレコードの数をユーザから受け取るステップと、
既存のモックアップデータを修正するか、それとも各ノードについて新しいモックアップデータを作成するか判定するステップと、
前記モックアップデータについて開始範囲および終了範囲をユーザから受け取るステップと、
前記フレームワーク内で格納されているメタデータならびに前記開始範囲および終了範囲に基づいて、前記オブジェクトの各ノードについて前記モックアップデータを、前記フレームワーク内で生成するステップとを含む方法。
【請求項２】
前記ユーザが前記オブジェクトの各ノード内の既存のモックアップデータを保存することを可能にするステップをさらに含み、前記オブジェクトがビジネスオブジェクトを含む、請求項1に記載の方法。
【請求項３】
前記判定するステップが、前記既存のモックアップデータが保存された後で、前記ユーザが前記オブジェクトの各ノード内の前記既存のモックアップデータをパージすることを可能にするステップをさらに含む、請求項1に記載の方法。
【請求項４】
前記オブジェクトの各ノードについてモックアップデータのレコードを作成するステップをさらに含む、請求項1に記載の方法。
【請求項５】
前記判定するステップが、新しいモックアップデータを作成したいか、それとも既存のモックアップデータを変更したいかユーザに決定するように促すステップをさらに含む、請求項1に記載の方法。
【請求項６】
前記ユーザに対して、前記オブジェクトについて子ノード対親ノードの比を表示するステップと、
前記ユーザに対して、各ノードについて作成されることになるレコードの前記数を表示するステップと、
前記ユーザがレコードの前記数を修正することを可能にするステップとをさらに含む、請求項1に記載の方法。
【請求項７】
前記フレームワークがコンピュータフレームワークである、請求項1に記載の方法。
【請求項８】
他のオブジェクトを含むフレームワーク内で実装されるモックアップオブジェクト用に、モックアップデータを作成するためのシステムであって、
プロセッサと、
メモリとを備え、前記プロセッサおよび前記メモリが、
前記モックアップデータを作成すべき前記モックアップオブジェクトの名前をユーザから受け取るステップであって、前記オブジェクトが1つまたは複数のノードを含む、ステップと、
前記オブジェクトの各ノードについて作成されるレコードの数をユーザから受け取るステップと、
既存のモックアップデータを修正するか、それとも各ノードについて新しいモックアップデータを作成するか判定するステップと、
前記モックアップデータについて開始範囲および終了範囲をユーザから受け取るステップと、
前記フレームワーク内で格納されているメタデータならびに前記開始範囲および終了範囲に基づいて、前記オブジェクトの各ノードについて前記モックアップデータを、前記フレームワーク内で生成するステップとを含む方法を実行するように構成される、システム。
【請求項９】
前記判定するステップが前記ユーザが前記オブジェクトの各ノード内の既存のモックアップデータを保存することを可能にすることをさらに含み、前記オブジェクトがビジネスオブジェクトを含む、請求項8に記載のシステム。
【請求項１０】
前記判定するステップが前記既存のモックアップデータが保存された後で、前記ユーザが前記オブジェクトの各ノード内の前記既存のモックアップデータをパージすることを可能にすることをさらに含む、請求項8に記載のシステム。
【請求項１１】
前記オブジェクトの各ノードについてモックアップデータのレコードを作成することをさらに含む、請求項8に記載のシステム。
【請求項１２】
前記判定するステップが、新しいモックアップデータを作成したいか、それとも既存のモックアップデータを変更したいかユーザに決定するように促すことをさらに含む、請求項8に記載のシステム。
【請求項１３】
前記ユーザに対して、前記オブジェクトについて子ノード対親ノードの比を表示すること、
前記ユーザに対して、各ノードについて作成されることになるレコードの前記数を表示すること、および、
前記ユーザがレコードの前記数を修正することを可能にすることをさらに含む、請求項8に記載のシステム。
【請求項１４】
前記フレームワークがコンピュータフレームワークである、請求項8に記載のシステム。
【請求項１５】
他のオブジェクトを含むフレームワーク内で実装されるモックアップオブジェクト用に、モックアップデータを作成するための方法であって、
前記モックアップデータを作成すべき前記モックアップオブジェクトの名前をユーザから受け取るステップであって、前記オブジェクトが1つまたは複数のノードを含む、ステップと、
前記オブジェクトの各ノードについて作成されるレコードの数をユーザから受け取るステップと、
既存のモックアップデータを修正するか、それとも各ノードについて新しいモックアップデータを作成するか判定するステップと、
前記モックアップデータについて開始範囲および終了範囲をユーザから受け取るステップと、
前記フレームワーク内で格納されているメタデータならびに前記開始範囲および終了範囲に基づいて、前記オブジェクトの各ノードについて前記モックアップデータを、前記フレームワーク内で生成するステップとを含む方法を実行するようにプロセッサを構成するための命令を含むコンピュータ可読媒体。
【請求項１６】
前記ユーザが前記オブジェクトの各ノード内の既存のモックアップデータを保存することを可能にすることをさらに含み、前記オブジェクトがビジネスオブジェクトを含む、請求項15に記載のコンピュータ可読媒体。
【請求項１７】
前記判定するステップが前記既存のモックアップデータが保存された後で、前記ユーザが前記オブジェクトの各ノード内の前記既存のモックアップデータをパージすることを可能にすることをさらに含む、請求項15に記載のコンピュータ可読媒体。
【請求項１８】
前記オブジェクトの各ノードについてモックアップデータのレコードを作成することをさらに含む、請求項15に記載のコンピュータ可読媒体。
【請求項１９】
前記判定するステップが、新しいモックアップデータを作成したいか、それとも既存のモックアップデータを変更したいかユーザに決定するように促すことをさらに含む、請求項15に記載のコンピュータ可読媒体。
【請求項２０】
前記ユーザに対して、前記オブジェクトについて子ノード対親ノードの比を表示すること、
前記ユーザに対して、各ノードについて作成されることになるレコードの前記数を表示すること、および、
前記ユーザがレコードの前記数を修正することを可能にすることをさらに含む、請求項15に記載のコンピュータ可読媒体。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、一般にデータ処理に関する。より詳細には、本発明は、モックアップビジネスオブジェクト用のモックアップデータを生成するためのシステムおよび方法に関する。
【背景技術】
【０００２】
企業がどのようにビジネスを行うかにおいては進歩と変化があり、また引き続き進歩し変化することになる。これらの進歩と変化が、増大する競争とグローバリゼーションを介して起きようと、合併と買収を介して起きようと、ビジネスモデルの刷新を介して起きようと、成功のための鍵は、しばしば、企業の情報技術(IT)組織がいかに迅速に、進化するビジネスニーズに適応することができるかによって決まることになる。したがって、これらの企業にとって大きな挑戦課題は、どのように変化を扱うかということである。
【０００３】
組織は、ビジネスの機敏性を可能にするために、企業アプリケーションが、効率を追う高性能ビジネスエンジンであることだけでなく、将来のビジネスシステムの柔軟な構成単位となることをも保証しなければならない。最近の有望な解決策は、サービスの形態で出現した。ウェブサービスまたはウェブプログラムなど、サービスは、他のアプリケーションによって発見しアクセスすることができる自己完結した、自己記述的なアプリケーション機能を表す。サービスは、そのサービスを使用するアプリケーションがサービスそれ自体以外のものに依存する必要がないので自己完結しており、そのサービスをどのように使用するかについての情報すべてをサービスそれ自体から得ることができるので自己記述的である。説明は中央に格納されており、標準的な機構を介してアクセス可能である。
【０００４】
アプリケーション間のリンクを確立し維持することをプログラマに要求するのではなく、サービスは、緩く結合され、接続をより単純な、より柔軟なものにし、アプリケーションアーキテクトが他の協働するアプリケーションによって提供されているサービスを容易に見出し理解することを可能にする。しかし、サービスと共に存在する問題は、サービスがしばしば、個々のアプリケーションの機能を露出するように設計され、したがって企業内全体のビジネスプロセスのための効率的な構成単位とするには制限を受けすぎていることである。この欠点(shortfall)に対する解決策は、サービス指向アーキテクチャ(SOA)に移行することであった。SOAは、オープンアーキテクチャのミドルウェアであり、サービスの利益を築き上げる。SOAの一例は、ドイツ、ヴァルドルフのSAP AGより市販されているESF(Enterprise Service Framework)に見出すことができる。「SOA」という用語はまた、CORBA(Common Object Request Broker Architecture)およびDCOM(Distributed Component Object Model)など「分散オブジェクト」アーキテクチャを指すために使用される可能性がある。
【０００５】
SOAは、(エンタープライズサービスとも称される)サービスとしてモデル化される、ビジネスオブジェクト(BO)の、実際のアプリケーションからの抽象化を可能にする。サービスをビジネスレベルのエンタープライズサービスに集約することにより、企業スケールのビジネスシナリオを自動化するタスクに対して、より意味のある構成単位が得られる可能性がある。エンタープライズサービスは、IT組織が複合アプリケーションを効率的に開発することを可能にする。複合アプリケーションは、新しいビジネスプロセスまたはシナリオをサポートするために、既存のシステムからの機能および情報を構成するアプリケーションと定義される。
【０００６】
SOAはまた、エンタープライズサービスリポジトリの使用を可能にする。エンタープライズサービスリポジトリは、重要な、事前に存在するエンタープライズサービスを格納し、選択されたパートナおよび顧客に対してそれらを使用可能にする。エンタープライズサービスリポジトリを使用することにより、これらの選択されたパートナおよび顧客は、新しいサービス、および対応するビジネスオブジェクトを実装する上で助けとなるように、その事前に存在するエンタープライズサービスを使用することができる。「ビジネスオブジェクト(BO)」という用語は、注文書を生成するためのメソッドを含むデータ構造体など、ビジネスにとって有意な物理的または論理的なオブジェクトを表す。「オブジェクト」は、変数(たとえばデータ)、および関連するメソッドのソフトウェアバンドルを指す。たとえば、オブジェクト指向プログラミングでは、オブジェクトは、データと、そのデータに関連付けられたオペレーションとからなるクラスを具体的に実現したもの(インスタンス)である。
【発明の開示】
【発明が解決しようとする課題】
【０００７】
サービスやビジネスオブジェクトが開発されるとき、他のシステムコンポーネントの開発は、そのサービス、および対応するビジネスオブジェクトの完成まで遅らされる。他のシステムコンポーネントの開発を容易にするために、モックアップビジネスオブジェクトを作成することができる。しばしば、これらのサービスおよびビジネスオブジェクトに対して、回帰テストおよび大量データテストを行うことが必要とされる可能性がある。しかし、これらのモックアップビジネスオブジェクトは、そのビジネスオブジェクトを実際に開発する前に、回帰テストおよび大量データテストのためのデータで充填することを必要とする。したがって、これらのモックアップビジネスオブジェクト用のモックアップデータの開発を改善することが求められている。
【課題を解決するための手段】
【０００８】
本発明は、モックアップビジネスオブジェクト用のモックアップデータを提供するための方法および装置を、コンピュータプログラム製品を含めて提供する。
【０００９】
例示的な一実施形態では、モックアップオブジェクト用のモックアップデータを作成するための方法が提供され、そのモックアップオブジェクトは、他のオブジェクトを含むフレームワーク内で実装される。本方法はまた、そのオブジェクトの各ノードについて作成されるレコードの数をユーザから受け取るステップと、既存のモックアップデータを修正するか、それとも各ノードについて新しいモックアップデータを作成するか判定するステップと、そのモックアップデータについて開始範囲および終了範囲をユーザから受け取るステップと、そのフレームワーク内で格納されているメタデータならびに開始範囲および終了範囲に基づいて、オブジェクトの各ノードについてモックアップデータを、フレームワーク内で生成するステップとを含むことができる。
【００１０】
前述の一般的な説明と以下の詳細な説明は共に、例示的なもの、説明的なものにすぎず、述べられている本発明を制限するものではないことを理解されたい。さらに、特徴および/または変形形態が、本明細書に記載されているものに加えて提供される可能性がある。たとえば、本発明は、開示されている特徴の様々なコンビネーションおよびサブコンビネーション、ならびに/あるいは下記詳細な説明において開示されているいくつかの他の特徴のコンビネーションおよびサブコンビネーションを対象とする可能性がある。
【００１１】
本明細書に組み込まれ、その一部を構成する添付の図面は、本発明のいくつかの態様を示し、その説明と共に、本発明に関連する原理のいくつかを述べる助けとなる。
【発明を実施するための最良の形態】
【００１２】
次に、その諸例が添付の図面に示されている本発明を詳細に参照する。以下の説明で述べられている実装は、特許請求されている本発明による実装すべてを表すものではない。むしろ、それらは、本発明に関係するいくつかの態様による一部の例にすぎない。可能な場合にはいつでも、図面全体にわたって同じ符号を使用し、同じ、または同様の部分を参照する。
【００１３】
図1Aは、クライアントシステム110と、ビジネスオブジェクトを生成するためのサーバシステム190とを含む例示的なシステム100環境のブロック図である。ビジネスオブジェクトはモックアップとして働くことができ、モックアップは、実行時に使用するためにモックアップストレージ内で格納される。モックアップビジネスオブジェクト用の永続的なフレームワークを提供することにより、モックアップビジネスオブジェクトを、実際のビジネスオブジェクト、たとえばシステム100の開発が完了された、または最終的に確定されたとき実装されるビジネスオブジェクトから独立に使用することができる。したがって、生成されるモックアップビジネスオブジェクトは、システム100のコンポーネントの開発、たとえばユーザインターフェースの開発を、実際のビジネスオブジェクトの実装から独立に、またそれに平行して続行することを可能にする。
【００１４】
図1Aを参照すると、クライアントシステム110は、ユーザインターフェース(UI)120と、一般クライアントプロキシ(GCP)140とを含む。クライアントシステム110は、ネットワーク接続150bを介してサーバシステム190に接続する。サーバシステム190はさらに、サービスマネージャ(SM)160と、リポジトリ175と、モックアップサービスアダプタ196と、モックアップデータジェネレータ197と、データベース170と、サービスプロバイダ180、181とを含む。システム100は、エンタープライズサービスフレームワーク(ESF)の一部として実装されてよい。ESFは、1つまたは複数のサービスを含むあるタイプのコンピュータフレームワーク、たとえばクライアント-サーバアーキテクチャフレームワークである。フレームワークは、1つまたは複数の相互接続されたコンピュータ上のソフトウェアのシステムである。サービスは、インターネットまたはイントラネットなど通信機構を介して、クライアントシステムおよびそれらの対応するユーザなど、ESFの他の一部にとってアクセス可能である。ESFは、(ドイツ、ヴァルドルフのSAP AGより市販されている)SAP Netweaver(商標)によって提供されるツールを使用して構築されてよい。図1Aは、単一のクライアントシステム110と単一のサーバシステム190を示しているが、複数のクライアントシステムおよびサーバシステムを使用することができる。さらに、図1Aに示されているコンポーネントは、複数の場所の間で分散される可能性がある。図1Aは、クライアント-サーバアーキテクチャおよびESFに関連して述べられているが、システム100はまた、任意の他のアーキテクチャまたはフレームワークを使用することができる。
【００１５】
クライアントシステム110は、サーバシステム190とインターフェースするために、コンピュータなど1つまたは複数のプロセッサを含むことができる。ユーザインターフェース120は、ユーザが、サービスプロバイダ180、181およびそれらの対応するビジネスオブジェクトなど、他のアプリケーションと対話することができるようにインターフェースを提供することができる。ユーザインターフェース120は、サービスプロバイダ180、181からのコンテンツを提供するために、ブラウザを含むことができる。いくつかの実装においては、(ドイツ、ヴァルドルフのSAP AGより市販されている)SAP Web Dynproが、ユーザインターフェース120を生成するためのモデルベースの開発環境として使用されるが、他の開発環境を使用することもできる。ユーザインターフェース120は、たとえばサービスプロバイダ180、181の1つと対話するために、ネットワーク接続150aを介して、一般クライアントプロキシ140のアプリケーションプログラムインターフェース(API)を呼び出すことができる。
【００１６】
一般クライアントプロキシ140は、ユーザインターフェース120にとってアクセス可能な、クライアントシステム110部で実装されたAPIを有することができる。一般クライアントプロキシ140は、インスタンス化されたとき、ネットワーク接続150bを介して、サーバシステム190部で、サービスマネージャ160に、Remote Procedure Call(RPC)またはSimple Object Access Protocol(SOAP)インターフェースなど、インターフェースを提供することができる。一般クライアントプロキシ140は、サービスマネージャ160に明確なインターフェースを提供することによって、ユーザインターフェース120にとって使用可能な機能を制御するように実装されてよい。たとえば、サービスマネージャ160は様々なプロシージャを含むことができるが、一般クライアントプロキシ140は、それらのプロシージャの一部分だけに対するアクセスが許される可能性がある。さらに、一般クライアントプロキシ140は、ユーザインターフェース120とサービスマネージャ160との間で、要求および/または応答をバッファすることができる。
【００１７】
ネットワーク接続150a〜150iは、電話ベースのネットワーク、ローカルエリアネットワーク(LAN)、ワイドエリアネットワーク(WAN)、専用イントラネット、無線LAN、インターネット、イントラネット、無線ネットワーク、バス、または任意の他の通信機構を単独で、または任意の好適な組合せで含むことができる。さらに、有線および/または無線のコンポーネントおよびシステムの任意の好適な組合せで、ネットワーク接続150a〜150gを提供することができる。さらに、ネットワーク接続150a〜150gは、双方向通信リンク、片方向通信リンク、または専用通信リンクを使用して実施されてよい。ネットワーク接続150a〜150gはまた、伝送制御プロトコル/インターネットプロトコル(TCP/IP)、ハイパーテキスト転送プロトコル(HTTP)、SOAP、RPC、または他のプロトコルなど、標準的な伝送プロトコルを実装することができる。
【００１８】
サーバシステム190は、クライアントシステム110など他のコンピュータとインターフェースするために、コンピュータなど1つまたは複数のプロセッサを含むことができる。一般クライアントプロキシ140は、サーバシステム190部でサービスマネージャ160のAPIを呼び出す。サービスマネージャ160のAPIが呼び出されたとき、サービスマネージャ160のインスタンスが、サーバシステム190部で作成される。サービスマネージャ160はサーバシステム190内で示されているが、サービスマネージャ160は、どこに位置しても、複数の場所の間で分散されてもよい。
【００１９】
リポジトリ175は、ビジネスオブジェクトのメタデータ、ならびにモックアップビジネスオブジェクト用のモックアップデータを含めて、ビジネスオブジェクトに関連する情報を格納することができる。たとえば、リポジトリ175は、識別子(ID)およびモックアップデータコンテンツを含むビジネスオブジェクトノードのリストを格納することができる。ビジネスオブジェクトのIDは、リポジトリ175内で個々のビジネスオブジェクトノードを一意に識別する、ビジネスオブジェクトノードの識別用メモリアドレスを参照する。このメモリアドレスを使用し、特定のビジネスオブジェクトノードのデータコンテンツにアクセスし、それを読み出すことができる。たとえば、ビジネスオブジェクトノードのIDは、そのビジネスオブジェクトノードに関連付けられたディレクトリ構造およびファイル名からなる可能性がある。リポジトリ175は、エンタープライズサービスリポジトリとして実装されてよいが、任意の他のコンピュータ可読記憶媒体を使用することができる。
【００２０】
リポジトリ175はまた、1つまたは複数のビジネスオブジェクトに関するメタデータを格納することができる。メタデータは、データについてのデータとして定義することができる。たとえば、メタデータは、データそれ自体についての情報、たとえば、コンテンツ、品質、状態(condition)、作成元(origin)、サイズ、フォーマット、データの特性などを指すことができる。拡張可能なマークアップ言語(XML)は、他のデータオブジェクトを定義するために使用されるフォーマットであるため、メタデータの特定の例である。メタデータは、スキーマを含むことができる。スキーマは、組織または構造、たとえばデータベースの組織、またはオブジェクト指向プログラムにおけるオブジェクトの構造である。オブジェクト指向プログラミングでは、モデル化(すなわち、ビジネスまたは他の状況で使用されるオブジェクトの分析、およびこれらのデータオブジェクト間の関係の識別)がスキーマに通じ、スキーマは、スキーマとしてリポジトリ175内で格納され得る。スキーマは、構造体または形式的テキスト指向記述(たとえばスクリプト)として、視覚的に示され得る。たとえば、メタデータは、データベーステーブルの形態にあってよい。メタデータは、ビジネスオブジェクト内のノードの数、それらのノードの名前、ビジネスオブジェクト階層内でのノードの位置、ノードの構造、関連(association)、アクション、ノードに対するデフォルトの照会などの情報を含むことができる。
【００２１】
リポジトリ175はまた、モックアップビジネスオブジェクトに関連するモックアップデータを格納することができる。モックアップデータは、下記でさらに述べるように、モックアップデータジェネレータ197によって生成される。
【００２２】
図1Bは、リポジトリ175部で格納された、モックアップデータを含むビジネスオブジェクトノードのためのスキーマ例を示す。このスキーマは、販売注文198aのためのビジネスオブジェクトノードと、販売注文198aと共に含まれる販売注文項目198bと、その対応する製品説明198cとを含む。図1Bはまた、親ノード販売注文項目198d、子ノード販売注文項目198e、子ノード製品説明198fに示されているように、生成されたモックアップデータを有するビジネスオブジェクトノードを示す。これらのモックアップビジネスオブジェクト内のモックアップデータは、下記でさらに述べるように、モックアップデータジェネレータ197によって生成された。さらに、図1Bに示されているスキーマは、ビジネスオブジェクトノード198間の関係を識別するキー199a〜dを含むことができる。たとえば、キー199aは、ビジネスオブジェクトノード198aとビジネスオブジェクトノード198bをリンクするために使用される販売注文識別値(id)である。キー199bは、販売注文項目198bの(図1Bで「製品id」として符号を付けられた)製品識別値を製品説明198cの(「id」と符号を付けられた)製品識別値にリンクする。スキーマは、ビジネスオブジェクトノードを示し、またそれらがどのようにして互いに関連付けられるかを示しており、メタデータと見なし、リポジトリ175内で格納されてよい。さらに、スキーマは、これらのビジネスオブジェクトノードをどのように実装するかという「モデル」と見なしてよい。このモデルは、ビジネスオブジェクトおよびそれらのノード用の他のモデルを構成することができるように、テンプレートとして働くことができる。また、モデルを使用し、ビジネスオブジェクトおよびそれらのノード用のコードを生成するために、スクリプトを生成することができる。スキーマは、メタデータとしてリポジトリ175内で格納されてよい。システム100の最終実装中には、ユーザは、リポジトリ175部で格納されているビジネスオブジェクトにアクセスするために、ウェブサービスなどのサービス、またはサービスプロバイダ180またはサービスプロバイダ181と(たとえば、製品カタログを受け取るために)対話することになる。ビジネスオブジェクト内で格納されているモックアップデータもまた、リポジトリ175内で格納されてよい。
【００２３】
図1Aを参照すると、モックアップサービスアダプタ196はAPIを含むことができ、そのAPIは、呼び出されたとき、メタデータを使用してモックアップビジネスオブジェクトを生成する。たとえば、リポジトリ175内で格納されているメタデータを使用し、モックアップビジネスオブジェクトを生成することができる。モックアップサービスアダプタ196は、任意の生成済みモックアップビジネスオブジェクトをモックアップストレージ内で格納する。
【００２４】
モックアップデータジェネレータ197はAPIを含むことができ、そのAPIは、呼び出されたとき、ユーザ応答とメタデータとを使用して、モックアップビジネスオブジェクト用のモックアップデータを生成する。たとえば、リポジトリ175内で格納されているメタデータを使用し、モックアップデータを生成することができる。具体的には、図1Bのスキーマが、実際のデータを含む実際のビジネスオブジェクトのモデルを示す場合、そのモデルを使用し、モックアップビジネスオブジェクト用のモックアップデータを生成するための同様のモデルを提供することができる。モックアップデータジェネレータ197は、任意の生成済みモックアップデータを(図2に示されているように)モックアップストレージ224内で格納する。実行時には、モックアップデータを有するモックアップビジネスオブジェクトが使用され、その結果、システム100のコンポーネントの開発を独立に行うことができる。たとえば、ユーザインターフェース設計者は、システム100が完成したとき使用される可能性がある実際のビジネスオブジェクトデータを考慮することなしに、モックアップデータを含むモックアップビジネスオブジェクトと対話するためのユーザインターフェース120を開発することができる。
【００２５】
図2は、例示的なモックアップデータジェネレータ197を示す。モックアップデータジェネレータ197は、リポジトリ175内で格納されているメタデータ、およびユーザ応答に基づいて、モックアップビジネスオブジェクト用のモックアップデータを生成することができる。モックアップデータジェネレータ197はまた、モックアップデータをモックアップストレージ224内で格納することができる。さらに、モックアップデータジェネレータ197は、実行中にモックアップデータをインスタンス化することができる。モックアップデータを生成するためのステップが、図3に関連して下記に述べられている。図2を参照すると、モックアップデータジェネレータ197は、サービスマネージャ160によって呼び出されたとき、データアナライザ212を呼び出す。
【００２６】
モックアップデータジェネレータ197は、データアナライザ212と、データジェネレータエンジン220と、バックグラウンドジョブマネージャ226とを含む。データアナライザ212は、モックアップデータを作成するために、ユーザがある範囲の値を指定することを可能にする。たとえば、ユーザは、「1」から「1000」までの値で開始するように、整数フィールド用の値セットを設定することができる。したがって、図1Bを参照すると、ユーザは、198b内の「ラインid」用に生成されるデータが「1」から「1000」の間の整数でなければならないことを指定することができる。データアナライザ212はまた、ユーザが正規表現を使用して値セットを指定することを可能にする。データアナライザ212はまた、指定されたフィールドについて、ユーザによって指定された値に対して検査を実行し、そのフィールドが有効であるかどうか判定する。たとえば、販売注文項目198bについては、「ラインid」が整数でなければならず、「製品id」もまた整数でなければならない。したがって、ユーザは、モックアップデータ用の整数範囲、たとえば「1」から「10,000」の範囲を指定するだけでよい。ユーザがキャラクタ範囲を指定した場合、データアナライザ212は、そのフィールドが有効でないと判定することになる。
【００２７】
データジェネレータエンジン220は、モックアップビジネスオブジェクト用のモックアップデータを生成するために、モックアップデータジェネレータ197によって呼び出される可能性がある。モックアップデータは、どの実際のデータからも独立に生成される。たとえば、ジェネレータエンジン220は、モックアップストレージ224内で格納されているビジネスオブジェクトメタデータ、ならびにユーザ入力に基づいて、モックアップビジネスオブジェクトノード用のモックアップデータ(たとえば、図1Bに示されているテーブル)を作成し、モックアップビジネスオブジェクトノード内の得られたモックアップデータをモックアップストレージ224内で格納する。テーブルは、「販売注文」「販売注文項目」「製品説明」など技術名を有する。データジェネレータエンジン220は、これらの技術名を、モックアップストレージ224またはデータベース170など、適切な記憶機構にマップする。モックアップビジネスオブジェクトノードと、データベーステーブル名と、フィールド名(たとえば、「id」「注文日」「顧客id」部で198aを参照)との関連を、モックアップストレージ224内で格納することができる。
【００２８】
モックアップビジネスオブジェクトノードは、ビジネスオブジェクトノードのフィールドに対する関連のデフォルトの照会を有することができる。たとえば、各モックアップビジネスオブジェクトノードは、フィールドと、これらのフィールドのデフォルトSQL照会とを含む関連のデータベーステーブル(たとえば、ノード198a〜cに対応するテーブル)を有することができる。トランザクションバッファ222は、データベースデータとバッファデータのマージを可能にすることができる。たとえば、モックアップビジネスオブジェクトノード内のモックアップデータに対する変更は、データベースに対してsaveが実施されるまで、バッファ内で格納される可能性がある。saveが呼び出されたとき、バッファ内のどの変更もデータベース170に書き込まれ、その結果、これらの変更が、順序付けられた(または段階的な)形で入力される。トランザクションバッファ222はまた、モックアップビジネスオブジェクトノード全体にわたって、親対子および子対親のナビゲーションを実現することができる。たとえば、モックアップストレージ224部で格納されているモックアップビジネスオブジェクトモデルは、親ノード(たとえば、ノード198a)と子ノード(たとえば、ノード198b)とを定義するスキーマ(たとえば、図1B参照)を含むことができる。親ノードは、販売注文を生成するためのモックアップビジネスオブジェクトノードとすることができ、子ノードの1つは、販売注文のオブジェクト(たとえば、その注文内に含まれる項目、およびそれらの項目についての製品説明)とすることができる。したがって、トランザクションバッファ222は、これらのノード198間でナビゲーションを実現することができる。モックアップビジネスオブジェクトノードは、販売注文ビジネスオブジェクトと共に述べられているが、他のタイプのオブジェクトを使用することができる。
【００２９】
データジェネレータエンジン220内のトランザクションバッファ222は、モックアップストレージ224のモックアップビジネスオブジェクトノードに対して実行されるcreate、retrieve、update、deleteプロシージャなどトランザクションバッファリングを管理する。たとえば、サービスマネージャ160は、様々なプロシージャをサービスプロバイダ180、181から呼び出し、モックアップストレージ224部で格納されているモックアップビジネスオブジェクトをインスタンス化し、モックアップビジネスオブジェクトノードと対話しそれらを操作することができる。これらのプロシージャは、サービスプロバイダ180、181に対応するモックアップビジネスオブジェクトノードを作成し、取り出し、更新し、削除するための命令を含むことができる。たとえば、「create」プロシージャは、新しいモックアップビジネスオブジェクトノードを作成するために、また「update」プロシージャは、1つまたは複数のモックアップビジネスオブジェクトノード内のデータコンテンツを更新するために、また「retrieve」プロシージャは、モックアップビジネスオブジェクトノードを取り出すために、また「delete」プロシージャは、1つまたは複数のモックアップビジネスオブジェクトノードを削除するために使用することができる。さらに、プロシージャは、「query」プロシージャと「retrieve」プロシージャなど、データコンテンツを探索しモックアップビジネスオブジェクトノードから取り出すために、組み合わせて使用することができる。create、retrieve、update、deleteプロシージャを使用するとき、トランザクションバッファ222はまた、check、save、clean-upなど追加のプロシージャを実施し、さらにサービスマネージャ160部でハンドラを変更するための変更通知をサポートすることができる。トランザクションバッファ222について、上記では、モックアップビジネスオブジェクトに対して、create、retrieve、update、deleteなどプロシージャを実行するものとして述べられているが、トランザクションバッファ222はまた、任意のオブジェクトに対してプロシージャを実行することができる。
【００３０】
バックグラウンドジョブマネージャ226は、トランザクションバッファ222内で格納されているモックアップデータすべてを、データベース170またはモックアップストレージ224に書き込むことができる。バックグラウンドジョブマネージャ226は、書込み動作中に何らかの障害がある場合、任意の不一致をデータベース170内で維持する。
【００３１】
データベースエンジンおよびフィールド名マッパ228は、データベース170に対してアクセスを提供し、プロキシ名とデータベース名との間で任意の、必要なマッピング機能を提供することができる。ノードフィールドのプロキシ名(たとえば、図1Bにおけるノード198b部の「製品id」)は、モックアップビジネスオブジェクトのプロキシ生成時に生成されるABAP(Advanced Business Application Programming)辞書内でこれらのノードフィールドについてのABAP名を表すことができる。モックアップビジネスオブジェクトノード用のデータベーステーブルがメタデータを使用して作成されたとき、データベーステーブルの列名を、プロキシ名とまったく同じ名前を用いて作成することは、実際的でない可能性がある。したがって、データベース170は、モックアップビジネスオブジェクトノードによって使用されている実際のプロキシ名ではなく、「疑似」名を使用することができる。データベースエンジン228はまた、データベース170に対するアクセスを制限するAPIを含むことができる。たとえば、データベースエンジン228だけが、データベース170内で使用されている実際の疑似フィールド名を知っている可能性がある。システム200の他のあらゆるコンポーネントはプロキシ名を知っているにすぎない可能性があり、そのプロキシ名は、データベースエンジン228によって、データベース170部で実際の疑似フィールド名にマップされる。データベースエンジン228はまた、デフォルトの照会プロシージャを提供することができる。たとえば、モックアップビジネスオブジェクトノードは、デフォルトの照会として働くように事前定義の照会を含むことができる。したがって、(モックアップエンジンによって定義される)デフォルトの照会は、モックアップビジネスオブジェクトノード(またはその対応するデータベーステーブル)上で定義されている任意の照会となる。
【００３２】
さらに、サービスマネージャ160のAPIがモックアップサービスアダプタ196によって呼び出されたとき、サービスマネージャ160は、1つまたは複数のサービスプロバイダ180、181および対応するモックアップビジネスオブジェクトをインスタンス化することができる。
【００３３】
モックアップストレージ224は、モックアップビジネスオブジェクト、モックアップビジネスオブジェクト用のモックアップデータ、およびそれらのビジネスオブジェクトノードを記憶する(たとえば、図1B参照)。モックアップストレージ224はまた、メタデータを含むことができる。モックアップストレージ224は、モックアップビジネスオブジェクトに関連付けられたモックアップデータすべてを格納するために使用することができるが、モックアップビジネスオブジェクトノードに関連付けられた実際のデータは、データベース170など別の場所において格納されてよい。図1Bを参照すると、モックアップビジネスオブジェクトノードは、ノード198に対応する可能性がある。この例では、ノード198aの注文日に関連付けられたデータは、データベース170部で格納される可能性がある。モックアップストレージ224は、コンピュータ可読記憶媒体(たとえば、ディスクドライブ、光学ドライブなど)として実装されてよい。
【００３４】
図3は、モックアップビジネスオブジェクト用のモックアップデータを生成するための例示的なステップの流れ図である。図2および図3を参照すると、サービスマネージャ160がモックアップデータジェネレータ197を呼び出したとき、その呼出しでステップ302を開始することができる。データアナライザ212は、最初にユーザから、モックアップデータを作成するビジネスオブジェクトの名前を受け取ることができる(ステップ302)。この場合のユーザ(たとえば、コンピュータに向かう人)は、ビジネスオブジェクトの名前、およびモックアップデータ(「シミュレーションデータ」または「ダミーデータ」とも称される)を埋める必要があるビジネスオブジェクトノードを指定していることになる。
【００３５】
モックアップデータジェネレータ197に対する呼出しにより、指定されたモックアップビジネスオブジェクト用にモックアップデータが作成される前に、そのビジネスオブジェクトが存在するかどうか判定するためにデータアナライザ212が開始される。たとえば、その呼出しによって要求されているモックアップビジネスオブジェクトには、モックアップストレージ224部で格納されている任意の対応するデータがない場合、データアナライザ212は、そのビジネスオブジェクトが存在しないと決定することができる。
【００３６】
次いで、ユーザは、ビジネスオブジェクトの各ノードについて作成されるレコードの数を提供することができる(ステップ304)。たとえば、ユーザが親ノード198aを指定する場合、ユーザは、モックアップの販売注文項目198bをモックアップデータジェネレータ197でいくつ作成すべきか指定することになる。親ノードは、販売注文を作成するためのモックアップビジネスオブジェクトノードとすることができ、子ノードの1つ(たとえば、198b)は、その販売注文のオブジェクト(たとえば、その注文内に含まれる項目、およびそれらの項目についての製品説明)とすることができる。
【００３７】
ビジネスオブジェクトがすでにモックアップデータに関連付けられているとデータアナライザ212が決定した場合、ユーザは、その古いデータを保存しパージすることを選択することができる(ステップ306)。ユーザがモックアップデータをパージしようと決めた場合には、指定されたビジネスオブジェクト内のモックアップデータが削除され、保存されない(ステップ308)。しかし、ユーザが既存のモックアップデータを保存しようと決めた場合、データアナライザ212は、データをモックアップストレージ224に書き込むことができる。たとえば、ユーザが販売注文198aを選択し、そのノードの日付が「03/04/05」に設定されている場合、ユーザは、この日付をパージし、モックアップデータジェネレータ197に、このノードに対して新しいモックアップ日付を作成させようと判断することができる。ユーザはまた、販売注文項目198d内の情報をモックアップストレージ224に保存することができる。
【００３８】
また、ユーザには、既存のデータを修正する機会を与えることができる(ステップ310)。たとえば、ユーザがビジネスオブジェクト販売注文項目198dを指定した場合、ユーザは、注文日または顧客idを、格納されている値と異なる値になるように変更することができる。ユーザが既存のデータを修正しようと決めた場合、ユーザは、最初に、そのデータについて開始範囲および終了範囲を指定しなければならない可能性がある(ステップ314)。この範囲は、ビジネスオブジェクトの対応するスキーマによって決定されることになる。たとえば、ユーザが注文日を修正している場合、指定しなければならない範囲は、日付範囲に対応しなければならない。
【００３９】
ユーザは、既存のデータを修正せず(ステップ310)、その代わりに、選択されたビジネスオブジェクトについて新しいデータを作成しよう(ステップ312)と決める可能性がある。ユーザは、再び、上述のように、そのデータについて開始範囲および終了範囲を指定しなければならない可能性がある(ステップ314)。ユーザが、新しいデータを作成すべきか、それとも既存のデータを修正すべきか指定した後で、データジェネレータエンジン220は、次いで、リポジトリ175内で格納されているメタデータ、およびユーザによって指定された値範囲に基づいて、モックアップデータを作成することができる(ステップ316)。次いで、データジェネレータエンジン220は、指定されたビジネスオブジェクトの各ノードを詳しく点検し、各ノードについてモックアップストレージ224内でレコードを作成することができる(ステップ318)。データジェネレータエンジン220は、モックアップビジネスオブジェクト用にランダムなモックアップデータを自動的に作成する。
【００４０】
一実施形態では、ユーザは、モックアップデータジェネレータ197によって生成されるデータに対して、各モックアップビジネスオブジェクトについて親対子の比を指定することができる。したがって、ユーザは、特定の親ノードに、「X」個の子ノードが関連付けられている可能性があることを指定することができる。たとえば、図1Bの例では、親ノード198dには、2つの子ノード198eおよび198fが関連付けられている。ユーザは、この親が2つの子ノードを有することを指定している可能性がある。他の実施形態では、ユーザには、親対子の比が選択された後で、レコードを修正する機会が与えられる。したがって、ユーザが、大きい親対子の比を選択した場合、ユーザは、その比に対して作成されることになるレコードの数を見ることが可能である。ユーザは、モックアップデータジェネレータ197に、指定されたノードに対して、より多くの、またはより少ないレコードを作成させるために、この数を修正することができる。同じ例において、ユーザが、親ノード1つ当たり2つの子ノードを指定している場合、モックアップデータジェネレータ197は、ユーザに、このビジネスオブジェクトに対して7つのレコードが作成されることになることを警告している可能性がある。この時点でユーザは、望むなら、レコードの数を減少させることができる。
【００４１】
本明細書で開示されているシステムおよび方法は、たとえば、やはりデータベースを含むコンピュータなどデータプロセッサ、デジタル電子回路、ファームウェア、またはそれらの任意の組合せを含めて、様々な形態で実施することができる。さらに、上記で指摘されている特徴、ならびに本発明の他の態様および原理は、様々な環境内で実施することができる。そのような環境および関連のアプリケーションは、本発明による様々なプロセスおよびオペレーションを実行するように特別に構築することも、必要な機能を提供するように、コードによって選択的にアクティブ化される、または再構成される汎用コンピュータまたはコンピューティングプラットフォームを含むこともできる。本明細書で開示されているプロセスは、どの特定のコンピュータ、ネットワーク、アーキテクチャ、環境、または他の装置にも本質的に関連するものではなく、ハードウェア、ソフトウェア、および/またはファームウェアの好適な組合せによって実施することができる。たとえば、様々な汎用機械を、本発明の教示に従って書かれたプログラムと共に使用することができ、あるいは、必要とされる方法および技法を実行するために、専門化された装置またはシステムを構築することが、より好都合である可能性がある。
【００４２】
本明細書で開示されているシステムおよび方法は、コンピュータプログラム製品、すなわち、データ処理装置たとえばプログラム可能なプロセッサ、コンピュータ、または複数のコンピュータによって実行するために、またはその動作を制御するために、情報キャリア内、たとえば機械可読記憶装置内で、または伝播信号内で有形に実施されたコンピュータプログラムとして実施することができる。コンピュータプログラムは、コンパイル型言語またはインタープリタ型言語を含めて、任意の形態のプログラミング言語で書くことができ、独立のプログラムとして、またはモジュール、コンポーネント、サブルーチン、もしくはコンピューティング環境内で使用するのに好適な他のユニットとしての形態を含めて、任意の形態で展開することができる。コンピュータプログラムは、1台のコンピュータ上で、または1カ所の、もしくは複数の場所に跨って分散され通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように展開することができる。
【００４３】
前述の説明は、添付の特許請求の範囲によって定義される本発明の範囲を例示するがそれを制限しないものとする。他の実施形態は、特許請求の範囲内にある。
【図面の簡単な説明】
【００４４】
【図１Ａ】本発明に関係するいくつかの態様による例示的なシステム環境のブロック図である。
【図１Ｂ】本発明に関係するいくつかの態様による例示的なスキーマを示す図である。
【図２】本発明に関係するいくつかの態様による、実行時の例示的なシステムのブロック図である。
【図３】本発明に関係するいくつかの態様による、オブジェクトを生成するための例示的なステップを有する流れ図である。
【符号の説明】
【００４５】
110  クライアントシステム
120  ユーザインターフェース
140  一般クライアントプロキシ
160  サービスマネージャ
170  データベース
175  リポジトリ
190  サーバシステム
196  モックアップサービスアダプタ
197  モックアップデータジェネレータ
210  サービス
212  データアナライザ
220  データジェネレータエンジン
222  トランザクションバッファ
224  モックアップストレージ
226  バックグラウンドジョブマネージャ
228  データベースエンジンおよびフィールド名マッパ
【図１Ａ】
2008009984.tif 000003
【図１Ｂ】
2008009984.tif 000004
【図２】
2008009984.tif 000005
【図３】
2008009984.tif 000006