(57)【要約】【課題】インメモリデータベース処理のためのシステム、方法、およびコンピュータプログラム製品が提供される。【解決手段】ビジネスオブジェクトが、第1のシステム内で生成される。生成されたビジネスオブジェクトは、第1のシステムから第2のシステムに複製される。複製されたビジネスオブジェクトを実装する高性能アプリケーションが、少なくとも1つのシステム固有のビューに基づいて実行される。【選択図】図1
2014120174.tif 000002
【特許請求の範囲】
【請求項１】
第1のシステム内でビジネスオブジェクトを生成する工程と、
前記生成されたビジネスオブジェクトを前記第1のシステムから第2のシステムに複製する工程と、
少なくとも1つのシステム固有のビューに基づいて、前記複製されたビジネスオブジェクトを実装する高性能アプリケーションを実行する工程と、を含み、
前記生成する工程、前記複製する工程、および前記実行する工程の少なくとも1つは、少なくとも1つのプロセッサ上で実行される、コンピュータ実装方法。
【請求項２】
前記第1のシステムは、企業資源計画システムである、請求項1に記載の方法。
【請求項３】
前記第2のシステムは、高性能分析アプライアンスインメモリデータベースシステムである、請求項1に記載の方法。
【請求項４】
前記実行する工程は、
ビジネスオブジェクトに関するメタデータを前記第1のシステムから取得する工程と、
前記取得されたメタデータを前記第2のシステムに提供する工程と、
前記提供されたメタデータを使用して、前記第2のシステム内の少なくとも1つのビジネスオブジェクトへのアクセスを提供する工程と、
少なくとも1つのシステム固有のビューに基づいて、前記第1のシステムおよび前記第2のシステムの少なくとも一方の少なくとも1つのアーティファクトを生成する工程と、をさらに含む、請求項1に記載の方法。
【請求項５】
前記複製する工程は、前記第2のシステムに格納された少なくとも1つの複製スキーマに基づいて実行される、請求項1に記載の方法。
【請求項６】
前記ビジネスオブジェクトは、少なくとも1つの列および少なくとも1つの行を含むテーブルを含み、
データ複製器モジュールは、前記テーブル内の少なくとも1つの列を引き継ぐ、前記第1のシステムの前記テーブルに加えられたメタデータを引き継ぐ、前記第2のシステム内の前記テーブルを再命名する、引き継ぐ前記テーブルに関連付けられた少なくとも1つの外部キーを任意に指定する、引き継ぐ前記テーブルに関連付けられた少なくとも1つのインデックスを任意に指定する、前記第2のシステム内の前記テーブルを格納するための行ストアまたは列ストアの少なくとも1つを指定する、列を追加する、列を削除する、および、少なくとも1つのデータ型マッピングを提供する、の少なくとも1つを実行することによって、前記複製する工程を実行する、請求項1に記載の方法。
【請求項７】
前記データ複製器モジュールは、前記第2のシステム内の複製されたテーブルへのアクセスを提供するための複製投影ビュー、および、前記第2のシステムへのOpenSQLアクセスを提供するための外部ビュー、の少なくとも1つを作成する、請求項6に記載の方法。
【請求項８】
少なくとも1つのプログラマブルプロセッサによって実行されたとき、前記少なくとも1つのプログラマブルプロセッサに、
第1のシステム内でビジネスオブジェクトを生成する工程と、
前記生成されたビジネスオブジェクトを前記第1のシステムから第2のシステムに複製する工程と、
少なくとも1つのシステム固有のビューに基づいて、前記複製されたビジネスオブジェクトを実装する高性能アプリケーションを実行する工程と、を含む操作を実行させる命令を備えるコンピュータプログラム。
【請求項９】
前記第1のシステムは、企業資源計画システムである、請求項8に記載のコンピュータプログラム。
【請求項１０】
前記第2のシステムは、高性能分析アプライアンスインメモリデータベースシステムである、請求項8に記載のコンピュータプログラム。
【請求項１１】
前記実行する工程は、
ビジネスオブジェクトに関するメタデータを前記第1のシステムから取得する工程と、
前記取得されたメタデータを前記第2のシステムに提供する工程と、
前記提供されたメタデータを使用して、前記第2のシステム内の少なくとも1つのビジネスオブジェクトへのアクセスを提供する工程と、
少なくとも1つのシステム固有のビューに基づいて、前記第1のシステムおよび前記第2のシステムの少なくとも一方の少なくとも1つのアーティファクトを生成する工程と、をさらに含む、請求項8に記載のコンピュータプログラム。
【請求項１２】
前記複製する工程は、前記第2のシステムに格納された少なくとも1つの複製スキーマに基づいて実行される、請求項8に記載のコンピュータプログラム。
【請求項１３】
前記ビジネスオブジェクトは、少なくとも1つの列および少なくとも1つの行を含むテーブルを含み、
データ複製器モジュールは、前記テーブル内の少なくとも1つの列を引き継ぐ、前記第1のシステムの前記テーブルに加えられたメタデータを引き継ぐ、前記第2のシステム内の前記テーブルを再命名する、引き継ぐ前記テーブルに関連付けられた少なくとも1つの外部キーを任意に指定する、引き継ぐ前記テーブルに関連付けられた少なくとも1つのインデックスを任意に指定する、前記第2のシステム内の前記テーブルを格納するための行ストアまたは列ストアの少なくとも1つを指定する、列を追加する、列を削除する、および、少なくとも1つのデータ型マッピングを提供する、の少なくとも1つを実行することによって、前記複製する工程を実行する、請求項8に記載のコンピュータプログラム。
【請求項１４】
前記データ複製器モジュールは、前記第2のシステム内の複製されたテーブルへのアクセスを提供するための複製投影ビュー、および、前記第2のシステムへのOpenSQLアクセスを提供するための外部ビュー、の少なくとも1つを作成する、請求項13に記載のコンピュータプログラム。
【請求項１５】
少なくとも1つのプログラマブルプロセッサと、
機械可読記録媒体と、を備え、前記機械可読記録媒体は、
前記少なくとも1つのプログラマブルプロセッサによって実行されたとき、前記少なくとも1つのプログラマブルプロセッサに、
第1のシステム内でビジネスオブジェクトを生成する工程と、
前記生成されたビジネスオブジェクトを前記第1のシステムから第2のシステムに複製する工程と、
少なくとも1つのシステム固有のビューに基づいて、前記複製されたビジネスオブジェクトを実装する高性能アプリケーションを実行する工程と、を含む操作を実行させる命令を格納する、システム。
【請求項１６】
前記第1のシステムは、企業資源計画システムであり、前記第2のシステムは、高性能分析アプライアンスインメモリデータベースシステムである、請求項15に記載のシステム。
【請求項１７】
前記実行する工程は、
ビジネスオブジェクトに関するメタデータを前記第1のシステムから取得する工程と、
前記取得されたメタデータを前記第2のシステムに提供する工程と、
前記提供されたメタデータを使用して、前記第2のシステム内の少なくとも1つのビジネスオブジェクトへのアクセスを提供する工程と、
少なくとも1つのシステム固有のビューに基づいて、前記第1のシステムおよび前記第2のシステムの少なくとも一方の少なくとも1つのアーティファクトを生成する工程と、をさらに含む、請求項15に記載のシステム。
【請求項１８】
前記複製する工程は、前記第2のシステムに格納された少なくとも1つの複製スキーマに基づいて実行される、請求項15に記載のシステム。
【請求項１９】
前記ビジネスオブジェクトは、少なくとも1つの列および少なくとも1つの行を含むテーブルを含み、
データ複製器モジュールは、前記テーブル内の少なくとも1つの列を引き継ぐ、前記第1のシステムの前記テーブルに加えられたメタデータを引き継ぐ、前記第2のシステム内の前記テーブルを再命名する、引き継ぐ前記テーブルに関連付けられた少なくとも1つの外部キーを任意に指定する、引き継ぐ前記テーブルに関連付けられた少なくとも1つのインデックスを任意に指定する、前記第2のシステム内の前記テーブルを格納するための行ストアまたは列ストアの少なくとも1つを指定する、列を追加する、列を削除する、および、少なくとも1つのデータ型マッピングを提供する、の少なくとも1つを実行することによって、前記複製する工程を実行する、請求項15に記載のシステム。
【請求項２０】
前記データ複製器モジュールは、前記第2のシステム内の複製されたテーブルへのアクセスを提供するための複製投影ビュー、および、前記第2のシステムへのOpenSQLアクセスを提供するための外部ビュー、の少なくとも1つを作成する、請求項19に記載のシステム。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、全体的には、データ処理に関し、具体的には、インメモリデータベース処理に関する。
【背景技術】
【０００２】
ビジネスは、それらのビジネス活動で複数のビジネスプロセスアプリケーションおよび/またはサービスを使用する。アプリケーションおよび/またはサービスは、エンドユーザがある種のタスクを成し遂げるために実行し、1つまたは複数のバックエンドシステムと協働して動作することができるプログラムであってよく、1つまたは複数のバックエンドシステムは、例えば、ビジネスオブジェクトおよび他のビジネスデータなど作業することになるデータ、並びに、例えば、トランザクションなどデータを操作するロジックまたは他のビジネスロジックを格納することができる。バックエンドシステムの例は、データベースシステム、企業資源計画(「ERP」)システム、および、顧客関係管理(「CRM」)システムを含むことができる。ユーザインタフェース(「UI」)は、アプリケーションプログラムと協働するように設計されてよく、ユーザ入力を要請し、ユーザ入力に応答することによって、人間とコンピュータとの間のインタラクションを容易にする。様々なタスクを成し遂げるために、ユーザは、ユーザによって望まれる結果を達成するために様々な方法でデータを操作することができる様々なアプリケーション、タスク、エージェント、などを起動することができる。
【発明の概要】
【発明が解決しようとする課題】
【０００３】
ユーザは、販売注文、インボイスなど、様々なビジネスプロセスオブジェクトを設計および/または作成することができる。ビジネスオブジェクトは、任意の既知のコンピューティングシステムおよび言語(そのような例示的な言語の1つは、例えば、ドイツ、ヴァルドルフのSAP AGから入手可能なアドバンスドビジネスアプリケーションプログラミング(「ABAP」)高級プログラミング言語を含む)を使用して作成されてよい。このように作成されたオブジェクトは、メモリ内に、データベースなどに格納されてよい。このようなデータベースの一例は、ドイツ、ヴァルドルフのSAP AGから入手可能な列指向インメモリデータベースアプライアンスである高性能分析アプライアンス(「HANA」)を含む。作成された各オブジェクトには、作成および/または格納されたシステムに固有の特定のビューが付属する。これは、オブジェクト(例えば、テーブル)が作成され、格納されたシステムのビューが、互いに異なり、未知である可能性があることを意味する。これにより、ユーザは、オブジェクトが作成されたシステム内でアクセス可能である可能性がある記憶システム内のビジネスオブジェクトにアクセスできない可能性があり、逆もまた同様である。このように、ユーザは、このようなアプリケーションおよび/またはサービスを、費用および時間効率的に使用することができない。
【課題を解決するための手段】
【０００４】
いくつかの実装では、本主題は、インメモリデータベース処理のためのコンピュータ実装方法に関する。方法は、第1のシステム内でビジネスオブジェクトを生成する工程と、生成されたビジネスオブジェクトを第1のシステムから第2のシステムに複製する工程と、少なくとも1つのシステム固有のビューに基づいて、複製されたビジネスオブジェクトを実装する高性能アプリケーションを実行する工程と、を含むことができる。生成する工程、複製する工程、および実行する工程の少なくとも1つは、少なくとも1つのプロセッサ上で実行されてよい。
【０００５】
いくつかの実装では、本主題は、以下の任意の特徴の1つまたは複数を含むことができる。第1のシステムは、企業資源計画システムであってよい。第2のシステムは、高性能分析アプライアンスインメモリデータベースシステムであってよい。
【０００６】
いくつかの実装では、高性能アプリケーションの実行は、ビジネスオブジェクトに関するメタデータを第1のシステムから取得する工程と、取得されたメタデータを第2のシステムに提供する工程と、提供されたメタデータを使用して、第2のシステム内の少なくとも1つのビジネスオブジェクトへのアクセスを提供する工程と、少なくとも1つのシステム固有のビューに基づいて、第1のシステムおよび第2のシステムの少なくとも一方の少なくとも1つのアーティファクトを生成する工程と、を含むことができる。
【０００７】
いくつかの実装では、生成されたビジネスオブジェクトの複製は、第2のシステムに格納された少なくとも1つの複製スキーマに基づいて実行されてよい。ビジネスオブジェクトは、少なくとも1つの列および少なくとも1つの行を含むテーブルを含むことができる。データ複製器モジュールは、テーブル内の少なくとも1つの列を引き継ぐ（overtake）、第1のシステムのテーブルに加えられたメタデータを引き継ぐ、第2のシステム内のテーブルを再命名する、引き継ぐテーブルに関連付けられた少なくとも1つの外部キーを任意に指定する、引き継ぐテーブルに関連付けられた少なくとも1つのインデックスを任意に指定する、第2のシステム内のテーブルを格納するための行ストアまたは列ストアの少なくとも1つを指定する、列を追加する、列を削除する、および、少なくとも1つのデータ型マッピングを提供する、の少なくとも1つを実行することによって、ビジネスオブジェクトの複製を実行することができる。データ複製器モジュールは、第2のシステム内の複製されたテーブルへのアクセスを提供するための複製投影ビュー、および、第2のシステムへのOpenSQLアクセスを提供するための外部ビューの少なくとも1つを作成することができる。
【０００８】
1つまたは複数のコンピューティングシステムの1つまたは複数のデータプロセッサによって実行されたとき、少なくとも1つのデータプロセッサに本明細書に記載の動作を実行させる命令を格納する非一時的なコンピュータ可読媒体を備えるコンピュータプログラム製品も記載される。同様に、1つまたは複数のデータプロセッサ、および、1つまたは複数のデータプロセッサに結合されたメモリを含むことができるコンピュータシステムも記載される。メモリは、少なくとも1つのプロセッサに本明細書に記載の動作の1つまたは複数を実行させる命令を一時的または永続的に格納することができる。加えて、方法は、単一のコンピューティングシステムの中の、または2つ以上のコンピューティングシステムに分散された1つまたは複数のデータプロセッサによって実装されてよい。
【０００９】
本明細書に記載の主題の1つまたは複数の変形の詳細が、添付図面および以下の説明に記載される。本明細書に記載の主題の他の特徴および利点は、説明および図面から、そして特許請求の範囲から明らかになるであろう。
【００１０】
本明細書に組み込まれ、本明細書の一部を構成する添付図面は、本明細書に開示された主題のある態様を示し、説明と共に、開示された実装に関連する原理のいくつかを説明するのに役立つ。
【図面の簡単な説明】
【００１１】
【図１】例示的なメタデータ複製システムの図である。
【図２】本主題のいくつかの実装による、メタデータの複製を実行するための例示的な次世代ABAPプラットフォーム(NGAP)システムの図である。
【図３】本主題のいくつかの実装による、例示的な次世代ABAPプラットフォーム(NGAP)システムインメモリデータベースの図である。
【図４】本主題のいくつかの実装による、(バックエンドシステムなど)システムからのテーブルメタデータを複製するための例示的なプロセスの図である。
【図５】本主題のいくつかの実装による、メタデータの複製のための例示的な制御テーブルの図である。
【図６】本主題のいくつかの実装による、複製されたテーブル上で動作する例示的なプロセスの図である。
【図７】本主題のいくつかの実装による、データ記憶アプリケーションを含む例示的なシステムを示す図である。
【図８】図7のシステムの詳細を示す図である。
【図９】本主題のいくつかの実装による、例示的なシステムの図である。
【図１０】本主題のいくつかの実装による、例示的な方法の図である。
【発明を実施するための形態】
【００１２】
いくつかの実装では、本主題は、高性能分析アプライアンス(「HANA」)データベースシステムを、アドバンスドビジネスアプリケーションプログラミング(「ABAP」)システムに結合するためのシステムおよび方法に関する。本主題は、インメモリデータベース(「IMDB」)、および、大量のデータを解析する目的のための検索エンジンを提供することができる。本主題は、さらに、IMDBシステムを生産的企業資源計画(「ERP」)システムに結合することができ、ERPシステムからのデータをIMDBシステム内に複製することができ、異なる種類のビュー、例えば、分析ビューおよび/または計算ビューを使用して、IMDBシステム上に高性能アプリケーション(「HPA」)を構築することができる。
【００１３】
いくつかの実装では、HPAは、複製されたデータに作用することができる。HPAは、テーブルのメタデータをERPシステムから取得することができ、それを複製システムに提供することができ、最初のデータローディング段階後、テーブルのコンテンツを定期的に更新することができ、OpenSQLを介して異なるデータベースオブジェクトへのアクセスを提供することができ、分析ビューおよび/または計算ビューに基づいて、HPA実行に関連付けられたABAPおよびデータベースアーティファクトを転送および送達することができる。複製システムは、どのテーブルのメタデータが複製されるべきかを決定するために、複製制御テーブルを使用することによって、テーブルのメタデータの複製を実行することができる。テーブルのメタデータが決定されると、複製システムは、少なくとも1つの複製投影ビューを定義する。システムは、次に、決定されたテーブルのメタデータを複製し、OpenSQL実行のための複製投影ビューを開く。決定されたメタデータは、さらに、外部IMDBビューのために維持されてよく、外部IMDBビューは、テーブル複製メタデータを転送するデータ辞書に提供されてよい。
【００１４】
図1は、ERPシステム102からのメタデータをIMDBシステム106に複製することができる例示的なメタデータ複製システム100を示す。ERPシステム102は、辞書114およびデータベース110を含むことができ、データベース110は、どのような任意のデータベースであってもよい。例示的なERPシステムおよびIMDBシステムは、ドイツ、ヴァルドルフのSAP AGから入手可能である。システム100は、さらに、ERPシステム102およびIMDBシステム106に通信可能に結合され得るミドルウェアシステム104を含むことができる。ミドルウェアシステム104は、辞書複製器モジュール116、複製制御モジュール120と共に辞書118、および、データベース112を含むことができる。
【００１５】
複製を実行するために、ミドルウェアシステム104内の辞書複製器116は、辞書118内の複製制御モジュール120から取得された複製制御データを読み取ることができる。複製制御データは、テーブルがどのように複製されるべきかを示す様々な属性および/またはパラメータを含むことができ、例えば、複製のために選択されるべきテーブル内のデータ、複製のために選択されるべき顧客固有のデータ、複製されるべきテーブルの名前が、複製の結果として変更されることになるか否か、複製されるべきテーブルに関連付けられた外部キーおよびインデックスが、複製のために選択されるべきか否か、行または列ストアが、複製中に使用されるべきか否か、データが、テーブルの複製の結果として削除されるべきか否か、データが、テーブルの複製の結果として追加されるべきか否か、列が、複製の結果としてテーブルに追加および/またはテーブルから削除されるべきか否か、並びに、どんな操作が、複製されるべきテーブルに実行されるべきか、を示すことができる任意の他の情報を含むことができる。辞書複製器116は、次に、テーブルメタデータをERPシステム102の辞書114から取得することができる。次に、複製器116は、取得されたテーブルメタデータおよび任意の他の関連するデータ(テーブルメタデータおよび他のデータは、例えば、列の説明もしくは定義、データ型(例えば、char(n)、integer、など)、外部キーおよび参照フィールド(例えば、CURRもしくはQUANデータ型)、インデックス、顧客固有のデータ、並びに/または、他のデータを含むことができる)を辞書118に適合させ、辞書118内に書き込むことができ、それを、ミドルウェアシステム104のデータベース112(いかなる任意のデータベースであってもよい)に格納することができる。ミドルウェアシステム104は、このような複製制御データにしたがってテーブルがERPシステム102からIMDBシステム106に複製されることを確実にするために、複製制御データに基づくことができる様々な操作を実行することができる。ミドルウェアシステム104によって複製制御データにしたがって複製されたテーブルは、IMDB106に格納される。したがって、IMDB106およびミドルウェアシステム104は、ERPシステム102からのメタデータの複
製を可能にすることができる。ミドルウェアシステム104は、ABAP実行時環境で実行することができるHPAアプリケーション(図示せず)を含むことができる。いくつかの実装では、Java（登録商標）アプリケーションが、実行されてもよく、データ解析を管理することができる。
【００１６】
いくつかの実装では、メタデータ複製は、図2に示すように、次世代ABAPプラットフォーム(「NGAP」)システム202に通信可能に結合されたERPシステム102を含むことができるシステム200によって実行されてよい。NGAPシステム202は、図1に示すミドルウェアシステム104およびIMDB106を結合することができる。
【００１７】
NGAPシステム202は、辞書複製器モジュール204、複製制御モジュール218を含むことができる辞書206、IMDB210、並びに、少なくとも1つの実行時オブジェクト216を含むことができるABAPプログラミングおよびOpenSQLモジュール208を含むことができる。IMDB218は、ABAPスキーマ212および複製スキーマ214を含むことができる。メタデータの複製を開始するために、辞書複製器モジュール204は、辞書206内の複製制御モジュール218によって提供され得る複製制御データ(このようなデータの例は、上述されている)を読み出すことができる。ERPシステム102内の辞書モジュール110は、テーブルメタデータ(テーブルメタデータの例は、上述されている)を辞書複製器モジュール204に提供することができる。複製器モジュール204は、次に、受信されたテーブルメタデータおよび複製制御データを辞書218に適合させ、辞書218内に書き込むことができ、それをIMDB210に格納することができる。受信されたテーブルメタデータおよび複製制御データは、データ操作言語(「DML」)文を実行し、それらをIMDB210に提供するためのABAPプログラミングおよびOpenSQLモジュール208に提供されてもよい。
【００１８】
いくつかの実装では、辞書複製器モジュール204は、すべての選択された透明テーブルの列の指定された組を引き継ぐ(そうでなければ、あるシステムから別のシステム(例えば、ERPシステムから複製システム)に転送するために選択する)、ERPシステム内のテーブルに加えられた顧客メタデータを引き継ぐ、複製システム内のテーブルを再命名する、外部キーおよびインデックスが引き継がれるべきかどうかを指定することを提供する、行もしくは列ストアを指定することを提供する、データ要素およびドメイン情報を削除する、キー列がソースシステム分離のために追加されることを許可する、データ列が追加されることを許可する、列が削除されることを許可する、適切なデータ型マッピングを提供する、並びに/または、アプリケーションが実行可能である必要がある最低限のERPリリース、および/もしくは任意の他の機能および/もしくはそれらの様々な組み合わせの定義を可能にする、の少なくとも1つを実行することができる。
【００１９】
テーブルの異なるメタデータ部分を引き継ぐために、システム200は、テーブルに含まれるデータの長さおよび小数、外部キーおよびインデックス、テーブルの制約、並びに/または、任意の他のテーブルパラメータを含むことができる、少なくともデータ型情報を取得することができる。テーブルがIMDB210の行および列ストアに格納されているか否かについての情報を含むことができるように、他の技術的設定が含まれてよい。顧客固有のメタデータを引き継ぐために、顧客固有のデータは、ERPのソースシステム内で検索され、ERPのソースシステムから取得されてよい。テーブル内の列を追加または再命名するために、追加のキー、データ列、および/または、データベースレベル上のテーブルの第2の名前が、複製プロセス中に含められてよい。これらは、同じテーブルを何度も複製することなしに、異なるERPソースシステムから複製されてよい。さらに、列は、複製されている元のテーブルから除外されてよい。データ型マッピングを実行するために、実際のデータ型が、データベース内のデータ型にマッピングされてよい(例えば、日付および時間データ型が、データベース内のDATEおよびTIMEデータ型にマッピングされる)。このようなデータマッピングは、個々のデータ型を含む特定の列にしたがって実行されてよい。
【００２０】
以下は、NGAPシステム202内の辞書複製器モジュール204のアーキテクチャの概要説明を提供する。辞書複製器モジュール204は、データベーステーブルに関するメタデータをあるシステムから別のシステムに引き継ぐことができるツールであってよい。辞書複製器モジュール204は、メタデータ複製に関連して上述した機能を実行することができる。これは、顧客固有のメタデータを考慮することによって、テーブル内に含まれるデータベース定義を生成および実行することができ、同時に、実行時情報を作成することができる。必要であれば、IMDB210内の追加のデータベース表現が、作成および/または更新されてよい。
【００２１】
辞書複製器モジュール204は、2つの異なるビューを作成することができる。あるビューは、複製投影ビューであってよく、OpenSQLを使用して、複製されたテーブルへのアクセスを可能にすることができる。別のビューは、IMDB計算上のOpenSQLアクセスを提供することができる外部ビュー、および/または属性ビューであってよい。辞書複製器モジュール204は、アプリケーション名およびテーブルの名前をキー列として含むことができる以下の複製制御テーブル、すなわち、
・複製テーブルの名前および/または最低限のリリースなど主要情報およびヘッダ情報を含むことができ、加えて、制御情報、例えば、そのテーブルのための複製プロセスのリターンコード、および/または、テーブルがすでに複製されているかどうかの制御情報を含むことができる、DDREPLICATORテーブル、
・追加および/または挿入する列についての情報、および/または、既存のテーブルに関するデータ型マッピングについての情報を含むことができる、DDREPLINDATAテーブル、
・例えば、複製システム内で参照されるテーブルの名前であってよい既存の外部キーおよび参照フィールドを処理するデータを含むことができる、DDREPLICREFテーブル、並びに、
・テーブル内の単一の列に関する型変換情報を含むことができる、DDREPLICNVDATAテーブル、の上で動作することができる。
【００２２】
すべてのテーブルに関して、複製制御データは、整合性について検査されてよい。検査が成功して実行された場合、テーブルのメタデータが、顧客固有のAppendおよびCI-include情報を含むソースシステムから読み出されてよい。ターゲットシステムで使用することができないすべてのメタデータは、残りのメタデータをターゲットのシステムABAP辞書(図2には示さず)に書き込むことができるように、削除され、操作される。必要ならば、複製制御データにしたがって、テーブルの名前を変更することができ、列を追加、挿入、または削除さえすることができ、データ型マッピングを実行することができる。外部キー、並びに参照テーブルおよびフィールドを適合させることができ、または、完全に削除することさえできる。
【００２３】
複製されたテーブル、またはテーブルの複製された部分は、任意の関連するテーブルメタデータおよび/または(上述したような)他のデータと共に、複製制御データによって定義されるように、ローカルオブジェクトとして、ローカル開発構成要素内に書き込まれ、配置されてよい。アプリケーションの開発中、複製されたテーブル、またはテーブルの複製された部分は、実行時オブジェクトを構築するために使用されてよく、アプリケーションステートメントが実行されてよく、同時に、他の操作が実行されてよい。
【００２４】
いくつかの実装では、様々なビューが、辞書複製器モジュール204を使用して作成されてよい。アプリケーションは、複製されたテーブルにOpenSQLを介してアクセスするために使用され得る1つまたは複数の複製投影ビューを含むことができる。ビューの定義は、テーブルDDREPLICATORVIに保持されてよく、以下の情報、すなわち、
・APPLICATION:ビューが属する現在のアプリケーション、
・OBJECTNAME:データ辞書内のビューの名前、
・OBJECTTYPE:VIEW、
・VIEWCLASS:R(複製投影ビュー)、
・COLUMNS:SPACEによって分離された辞書型および長さ情報をすべての列に提供する、
・BASETABLE:複製されたテーブルの名前、
・DEVCLASS:構成された投影ビュー、
が含まれてよい。
【００２５】
辞書複製器モジュール204は、アプリケーションの名前および「作成投影ビュー」パラメータを使用して、ユーザインタフェース上でユーザに提供されてよい辞書218内の投影ビューを作成することができる。次に、投影ビューは、DDREPLICATORVI情報を使用して、辞書218内で作成され、活性化されてよい。ビューは、辞書複製器を使用して、辞書複製器モジュール204内で提供されてよい「テーブルおよび投影ビュー複製」機能を使用することによって、データベース内に作成されてもよい。投影ビューの作成は、(1)すべてのアプリケーションに関して、上述した辞書複製テーブルを、それらのコンテンツおよびメタデータ情報と共に複製し、(2)データベース内のテーブルを作成またはリロードするように実行されてよい。
【００２６】
いくつかの実装では、テーブルは、すべてのアプリケーションがそれら自身のこれらのテーブルの複製版を作成するとしても、いくつかのアプリケーションで使用(または、再使用)されてよい。このような再使用は、アプリケーションが複製されたテーブルに対して同じ名前を使用する場合、可能であり得る。これを達成するために、(そこからテーブルがターゲットシステムに複製のために生じることができる)ソースシステム並びにテーブル定義およびテーブルの複製制御データが、ターゲットシステム内のものと異なるとしても、テーブルの列および/またはテーブル全体が、複製プロセスを通じて維持されてよい。
【００２７】
図3は、本主題のいくつかの実装による、インメモリデータベースに結合された例示的なNGAPシステム300を示す。システム300は、図2に示すシステム202と同様であってよい。システム300は、辞書/実行時オブジェクトモジュール302、OpenSQLモジュール304を有するABAPコード、および、IMDB306を含むことができる。モジュール302は、辞書複製器モジュール310および複製されたテーブルT1 314、外部ビューV2 312、並びに、テーブルT1 314の複製された投影ビューV_T1 316を含むことができる。モジュール304は、モジュール302とIMDB306の間のインタフェースを援助することができる様々な機能を実行することができる(図3に示す)コードを含むことができる。IMDB306は、上述したような様々な複製スキーマを含むことができる。図3に示すように、IMDB306は、テーブルT1 314の複製を格納するためのデフォルトスキーマ318、S1.V_T1として格納されたスキーマS1にしたがって複製されたテーブルS1.T1を格納するためのスキーマS1 320、および、分析ビューおよび計算ビューS2.V3を提供することができるスキーマS2 322を含むことができる。辞書複製器モジュール310は、HPAのアーティファクトを、OpenSQLアクセスを含むABAP環境でのそれらの使用を可能にするように処理するために、NGAP高性能アプリケーション(HPA)で使用されてよい。辞書複製器モジュール310は、図3に示すように、IMDB306上に構築されてよいNGAPシステム300で実行されてよい。HPAは、アプリケーションを制御するためにデータベースデフォルトスキーマ318を使用することができ、複製されたテーブルおよび投影ビューのために第2のデータベーススキーマS1 320を使用することができ、複製されたテーブルの分析および/または計算ビューを提供するために第3のデータベーススキーマS2 322を使用することができる。
【００２８】
図4は、本主題のいくつかの実装による、(バックエンドシステムなど)システムからのテーブルメタデータを複製するための例示的なプロセス400を示す。プロセスは、(402で)テーブルメタデータを決定する工程と、(404で)複製投影ビューを定義する工程と、(406で)テーブルを複製し、OpenSQL実行のための投影ビューを開く工程と、(408で)外部ビュー(例えば、IMDBビュー)に関するメタデータを維持する工程と、(410で)外部ビューをデータ辞書に提供する工程と、(412で)データ辞書内のテーブル複製メタデータを転送する工程と、任意に、(414で)ログを作成する工程と、を含むことができる。これらの動作の各々は、以下にさらに詳細に説明される。
【００２９】
(402で)複製のためのテーブルメタデータを決定するために、テーブルの定義のどの部分が複製データベーススキーマ内に複製されることになるのかについて、決定が行われる。この情報は、図5に示すいくつかの複製制御テーブル500で定義されてよい。複製制御テーブル500は、メインテーブルデータを含むための制御テーブルDDREPLICATOR502、テーブル列を追加および/もしくは挿入するための制御テーブルDDREPLINDATA504、外部キーを保存するための制御テーブルDDREPLICREF506、並びに/または、既存のテーブル列の型を変更するための制御テーブルDDREPLICNVDATA508を含むことができる。
【００３０】
制御テーブルDDREPLICATOR502は、辞書複製器モジュールのためのメイン制御テーブルであってよい。これは、テーブル複製およびビュー作成を制御することができ、テーブルメタデータを定義することを可能にすることができる。DDREPLICATORテーブル502は、以下のフィールド、すなわち、アプリケーションの名前、オブジェクトの型、およびその元の名前、の少なくとも1つを含むことができる。この情報は、DDREPLICATORテーブル502の主キーを形成することができる。これらのフィールドは、すべての制御テーブル502〜508の一部であってよい。アプリケーションの名前は、任意の名前を含むことができ、文字の数(例えば、60文字)によって制限されてよい。複製データベーススキーマのテーブルのための新しい名前NEWNAME、および、バックエンドシステムから引き継がれるべき文字列フィールド内の列名COLUMNSが、選択されてよい。DDREPLICATORテーブル502内のテーブル列は、以下のパラメータ、すなわち、列DBNAMENEW、列ROWORCOLST、列EXISTCHECK、およびDROPCREATEの少なくとも1つを使用して複製されてよい。列DBNAMENEWは、データベース内のテーブルの名前が、データ辞書内の複製されたテーブルの名前と異なるものにする必要がある場合に補填されてよい第2のテーブル名を保持することができる。列ROWORCOLSTは、IMDB行ストア(値R)および/または列ストア(値C)で作成されてよい。列EXISTCHECKは、データベース内のテーブルの存在を確認することができる。DROPCREATEパラメータは、テーブルを削除および再作成するために使用されてよい。テーブル内の外部キーおよびインデックスは、保存されてよく、それぞれ、PRESERVE_FKおよびPRESERVE_INDXなど適切なパラメータを使用して、複製中に引き継がれてよい。
【００３１】
制御テーブルDDREPLINDATA504は、テーブル列の追加および/または挿入を実行するために使用されてよい。新しい列は、制御データをテーブルDDREPLINDATAに挿入することによって追加されてよい。メイン制御テーブルと同様に、アプリケーション名、オブジェクト型TABL、およびテーブルの名前が提供されてよい。また、新しい列名FIELDNAMENEW、並びに、列が追加される(KIND=ADD)および/または挿入される(KIND=INSERT)べきか否かについての情報が提供されてよい。追加および/または挿入機能は、以下のパラメータ、すなわち、辞書データ型を表すDATATYPE、辞書の長さを表すLENGTH、および、新しい列がdecimal型である場合、小数点以下の桁数を表すDECIMALSを含むことができる。列の挿入のために、COLPOSITION内の挿入位置が、同様に定義されてよい。
【００３２】
制御テーブルDDREPLICREF506は、複製中に外部キーを保存するために使用されてよい。外部キーの保存のために、検査テーブルおよび参照テーブルが複製されてよく、外部キーおよび/または参照フィールドは、テーブルがNGAPシステム内に存在する場合、複製されたテーブルを示すことができる。複製中、データは、列APPLICATION、OBJNAME、およびOBJTYPEを使用してDDREPLICREF内に書き込まれたデータであってよい。外部キーの保存のためのプロセスは、列FIELDNAMEに問題のフィールドの名前を提供する工程と、列KIND内の検査テーブルに関する値CHECKTABおよび参照テーブルに関するREFTABを選択する工程と、KIND列がCHECKTABである場合、CHECKTABLEを提供する工程と、KIND列がREFTABである場合、REFTABLEおよびREFFIELDを追加する工程と、を含むことができる。
【００３３】
制御テーブルDDREPLICNVDATA508は、既存のテーブル列の型を変更するために使用されてよい。既存のテーブル列の型を変更するために、列APPLICATION、OBJNAME、およびOBJTYPEに関する情報が提供されてよく、以下の操作、すなわち、再定義される必要があるデータ型を示すFIELDNAMEを挿入する、変更の型を示すKIND=TYPECHGを提供する、辞書のデータ型を示すDATATYPEを提供する、辞書の長さを示すLENGTH、および、新しい列がdecimal型のものであるべき場合、小数点以下の桁数を示すDECIMALSを提供する、が実行されてよい。複製システム内のターゲットテーブルは、新しいデータ型を使用して辞書内並びにデータベース内に作成されてよい。いくつかの実装では、オリジナルテーブルおよび複製されたテーブルのデータ型は、テーブルコンテンツの転送を保証するために、互換性があってよい。
【００３４】
本主題のいくつかの実装によれば、(図4に示す404での)複製投影ビューは、テーブルDDREPLICATORVIを使用して定義されてよい。このために、列APPLICATION、OBJTYPE、およびOBJNAME内のアプリケーションの名前、並びにオブジェクトの型および名前が提供されてよい。型は、VIEWであってよく、名前は、任意の数の文字(例えば、30文字)を含むことができ、正確さについて検査されてよい。VIEWCLASSは、複製投影ビューに対応することができるRであってよく、ベーステーブルの名前は、フィールドBASETABLEで提供されてよい。新しいテーブルの名前は、DDREPLICATORNEWNAMEで選択されてよい。加えて、フィールドCOLUMNS内で定義されたベーステーブルの列のサブセットであってよいフィールドDEVCLASSおよびビュー列定義が、提供されてよい。追加のフィールドは、ビューが処理されていることを示すDONE、並びに、様々なアクションおよびリターンコードに関する情報を提供することができる、結果として生じるリターンコードに対応するRCを含むことができる。複製投影ビューが定義されると、それらは、辞書に転送されてよい。
【００３５】
(図4に示す406での)OpenSQL実行のためにテーブルを複製し投影ビューを開くことは、以下の操作、すなわち、テーブルおよび投影ビューの複製を選択する工程と、接続情報を提供する工程と、任意の入力フィールドに入力する工程と、を含むことができる。情報は、複製のためのテーブルを含むソースシステムについての情報、並びに、ソースシステムとターゲットシステムとの間の接続についての情報(例えば、図3に示すNGAPシステムのIMDB内のターゲットスキーマの名前TS1)を含むことができる。複製は、データ辞書内、並びに、IMDB内のスキーマTS1内のデータベース内に存在する現在のアプリケーションのテーブルを表すことができるローカルな一時オブジェクトを作成する工程と、複製投影ビューを使用して、これらのテーブル上でOpenSQLを実行する工程と、を含むことができる。ビューは、デフォルトスキーマ内のデータベースビューとして存在することができ、複製スキーマTS1内のテーブル上で選択することができる。これに続いて、テーブルのコンテンツは、ソースシステムからターゲットシステムに複製されてよい。
【００３６】
テーブルがIMDBスキーマTS1で利用可能であるここで、外部ビューに関するメタデータが(図4に示す408で)維持されてよく、メタデータは、計算、解析、および属性ビューを有する計算および解析モデルが、ここで、IMDBを使用してデータベース上で直接定義され得ることを示す。これは、図3に示すスキーマTS2を使用して行われてよい。
【００３７】
外部ビューは、次に、(図4に示す410で)データ辞書に提供されてよい。ある種の計算、解析、および属性ビューが、スキーマTS2内のデータベース内に存在していると仮定すると、ビューは、データ辞書に引き継がれてよい。制御テーブルDDREPLICATORVIが使用されてよい。加えて、DBVIEWNAMEが維持されてよく、IMDBビューの名前が入力されてよい。アプリケーションに関するレポートRADDDREPLICATORが呼ばれてよく、データ辞書内の外部ビューの作成、および、スキーマ名(例えば、TS2)の提供が開始されてよい。ビューが作成されると、ビューは、OpenSQLで使用されてよい。
【００３８】
複製されたテーブル、複製投影ビュー、および、データ辞書内の外部ビューが決定されると、(図4に示す412での)転送操作が進行することができる。転送は、データ辞書内のテーブル複製メタデータを転送する工程を含むことができる。テーブル複製メタデータは、特定のアプリケーション名に関するテーブルDDRREPLICATOR、DDREPLINDATA、DDREPLICREF、およびDDREPLICNVDATAのエントリを含むことができる。ビューは、複製辞書メタデータに対して活性化され、検証されてよい。
【００３９】
いくつかの実装では、任意のログが、(図4に示す414での)複製中に実行されたすべての操作に対して用意されてよい。
【００４０】
テーブルが、ソースシステムからターゲットシステムに複製されると、ユーザは、複製されたテーブル上で作業することができる。図6は、本主題のいくつかの実装による、複製されたテーブル上で作業するための例示的なプロセス600を示す。プロセス600は、602で複製テーブルにアクセスする工程と、高性能アプリケーション(HPA)を構築する工程604と、606でHANAアーティファクトに関するOpenSQLを実現する工程と、608で高性能アプリケーション(HPA)を実行する工程と、を含むことができる。
【００４１】
複製テーブルにアクセスする工程602は、複製するためにテーブルに関するDDREPLICATORを維持する工程と、すべての複製投影ビューに関するDDREPLICATORVIを維持する工程と、辞書複製器を起動する工程と、を含むことができる。高性能アプリケーション(HPA)を構築する工程604は、複製されたテーブルに基づいて、ABAPアーティファクト内の複製投影ビューでOpenSQLを使用し、それらをクラス、インタフェース、および/またはレポートとして指名することによって行われてよい。HPAは、HANAモデラを使用して定義され、作成されてよいデータベースオブジェクトを使用することができる。データベースオブジェクトは、属性、解析、および/または計算ビューであってよい。HANAアーティファクトに関するOpenSQLを実現する工程606は、複製NGAPシステムのABAP実行時のデータベースビューの列記述情報を提供する工程と、提供された列記述を(NGAPデフォルトスキーマと異なってよい)ビューデータベーススキーマにリダイレクトする工程と、を含むことができる。列記述情報を提供する工程は、データベース自身のメタデータからビューメタデータを読み出す工程と、列情報を引き継ぐ工程と、それを辞書型にしたがってマッピングする工程と、を含むことができる。提供された列ビューのリダイレクトは、データベース内のビューの名前の同意語で作業する工程を含むことができる。したがって、辞書内の外部ビューは、どのデータベースビューがアクセスされるべきかを決定するために使用されてよい。この情報は、DDREPLICATORVI制御テーブルに維持されてよく、
・ビューが属する現在のアプリケーションに対応するAPPLICATION、
・データ辞書内のビューの名前に対応するOBJECTNAME、
・VIEWに対応するOBJECTTYPE、
・VIEWCLASS X、
・OBJECTNAMEと同じであってよいBASETABLE、
・IMDBビューの名前であってよいDBVIEWNAME、および、
・構成された外部ビューに関するパッケージに対応するDEVCLASS、
を含むことができる。
【００４２】
HPAを実行する工程608は、テーブルおよび投影ビュー複製操作を使用して、辞書複製器を起動する工程を含むことができる。このように、実行操作608は、テーブルの複製、および、データベース上の複製投影ビューの作成を含むことができる。辞書複製器が呼ばれてよく、アプリケーションの名前が提供されてよく、テーブルおよび投影ビュー複製操作が開始されてよい。複製スキーマに沿った適切な情報が提供されると、テーブルの複製が、複製されたテーブルおよびデータベース上の投影ビューを作成するために実行されてよい。
【００４３】
いくつかの実装では、本主題は、ドイツ、ヴァルドルフのSAP AGによって開発された高性能分析アプライアンス(「HANA」)システムなど、様々なインメモリデータベースシステムで実装されてよい。企業資源計画(「ERP」)システム、サプライチェーンマネジメントシステム(「SCM」)システム、サプライヤリレーションシップマネージメント(「SRM」)システム、カスタマリレーションシップマネージメント(「CRM」)システム、および/または、他のものなど、様々なシステムは、例えば、データにアクセスする目的のためのインメモリシステムとインタラクションすることができる。他のシステムおよび/またはシステムの組み合わせが、本主題の実装のために使用されてよい。以下は、例示的なインメモリシステムの考察である。
【００４４】
図7は、本主題のいくつかの実装による例示的なシステム700を示し、システム700では、1つまたは複数のネットワーク、などを介してリンクされた、併置されてよい1つまたは複数のプログラマブルプロセッサを含むことができるコンピューティングシステム702が、データ記憶アプリケーション704の1つまたは複数のモジュール、ソフトウェア構成要素、などを実行する。データ記憶アプリケーション704は、1つまたは複数のデータベース、企業資源プログラム、分散記憶システム(例えば、カリフォルニア州サニーベールのNetAppから入手可能なNetAppファイラ)、などを含むことができる。
【００４５】
1つまたは複数のモジュール、ソフトウェア構成要素、などは、コンピューティングシステム702のローカルユーザに、並びに、ネットワーク接続710を介して1つまたは複数のクライアントマシン706からコンピューティングシステム702にアクセスするリモートユーザにアクセス可能であってよい。1つまたは複数の第1のモジュールによって生成される1つまたは複数のユーザインタフェース画面が、ローカルディスプレイを介して、または、クライアントマシン706の1つに関連付けられたディスプレイを介してユーザに表示されてよい。データ記憶アプリケーション704のデータユニットは、永続化層712(例えば、ページバッファまたは他の形式の一時的な永続化層)に過渡的に格納されてよく、永続化層712は、データを、記憶ページの形態で、例えば、入力/出力構成要素716を介して、1つまたは複数の記憶装置714に書き込むことができる。1つまたは複数の記憶装置714は、より長期の記憶のためにデータを書き込むために構成された1つまたは複数の物理的記憶媒体または装置(例えば、ハードディスクドライブ、永続的なフラッシュメモリ、ランダムアクセスメモリ、光媒体、磁気媒体、など)を含むことができる。記憶装置714および入力/出力構成要素716は、それらが図7中のコンピューティングシステム702の外部にあるものとして示されているにもかかわらず、コンピューティングシステム702に含められてよいことに留意すべきである。
【００４６】
より長期の記憶装置714に保持されたデータは、ページに編成されてよく、ページの各々は、データを記憶空間の定義された量に割り当てている。いくつかの実装では、各ページに割り当てられた記憶空間の量は、一定でよく、固定されてよい。しかしながら、各ページに割り当てられた記憶空間の量が変化し得る他の実装も、本主題の範囲内である。
【００４７】
図8は、本主題のいくつかの実装による、例示的なソフトウェアアーキテクチャ800を示す。1つまたは複数のハードウェアおよびソフトウェアで実装されてよいデータ記憶アプリケーション704は、1つまたは複数のデータベースアプリケーション、ネットワーク接続記憶システム、などを含むことができる。本主題の少なくともいくつかの実装によれば、このようなデータ記憶アプリケーション704は、永続化層712または他の形式のメモリバッファを含むことができ、あるいは、例えば、永続性インタフェース802を介してこれらとインタフェースすることができる。永続化層712内のページバッファ804は、1つまたは複数の論理ページ806を記憶することができ、任意に、シャドウページ、アクティブページ、などを含むことができる。永続化層712に保持された論理ページ806は、入力/出力構成要素716を介して記憶装置(例えば、より長期の記憶装置、など)714に書き込まれてよく、入力/出力構成要素716は、ソフトウェアモジュール、1つまたは複数のソフトウェアおよびハードウェアに実装されたサブシステム、などであってよい。記憶装置714は、1つまたは複数のデータボリューム810を含むことができ、1つまたは複数のデータボリューム810では、記憶されたページ812が物理的メモリブロックに割り当てられる。
【００４８】
いくつかの実装では、データ記憶アプリケーション704は、ページマネージャ814および/またはセーブポイントマネージャ816を含むことができ、あるいは、これらと通信することができる。ページマネージャ814は、永続化層712において、ページ管理モジュール820と通信することができ、ページ管理モジュール820は、空きブロックマネージャ822を含むことができ、空きブロックマネージャ822は、ページステータス情報824、例えば、記憶装置714内の物理ページおよび永続化層712内(および、任意に、ページバッファ804内)の論理ページのステータスを監視することができる。セーブポイントマネージャ816は、セーブポイントを処理するために、永続化層712において、セーブポイントコーディネータ826と通信することができ、セーブポイントは、起こり得るクラッシュの後、再起動するためのデータベースの一貫した永続的な状態を作成するために使用される。
【００４９】
データ記憶アプリケーション704のいくつかの実装では、永続化層712のページ管理モジュールは、シャドウページを実装することができる。ページ管理モジュール820内の空きブロックマネージャ822は、物理ページのステータスを維持することができる。ページバッファ804は、本明細書で説明されるように動作する固定ページステータスバッファを含むことができる。ページ管理モジュール820の一部であってよい、またはページ管理モジュール820と通信することができる変換器構成要素840は、記憶装置714に書き込まれた論理ページと物理ページとの間のマッピングに関与することができる。変換器840は、変換器テーブル842内の対応する物理ページへの論理ページの現在のマッピングを維持することができる。変換器840は、1つまたは複数の変換器テーブル842内の対応する物理ページへの論理ページ806の現在のマッピングを維持することができる。論理ページ806が記憶装置714から読み出されると、ロードされるべき記憶ページは、変換器840を使用して1つまたは複数の変換器テーブル842から検索され得る。セーブポイント後、第1回目に論理ページが記憶装置714に書き込まれると、新しい空き物理ページが、論理ページに割り当てられる。空きブロックマネージャ822は、新しい物理ページを、「使用されている」とマークし、新しいマッピングが、1つまたは複数の変換器テーブル842に格納される。
【００５０】
永続化層712は、データ記憶アプリケーション704で行われた変更が永続的であること、および、データ記憶アプリケーション704が、再起動後に最新のコミットされた状態に復元され得ることを保証することができる。記憶装置714へのデータの書き込みは、書き込みトランザクションの終了と同期される必要はない。そのため、書き込みトランザクションが終了したとき、コミットされていない変更は、ディスクに書き込まれている可能性があり、コミットされた変更は、ディスクにまだ書き込まれていない可能性がある。システムクラッシュ後、終了されていないトランザクションによって行われた変更は、ロールバックされてよい。すでにコミットされたトランザクションによって生じる変更は、このプロセスで失われるべきではない。データ記憶アプリケーションのデータに行われた変更を線形ログに格納するために、ロガー構成要素844が含まれてもよい。すべての操作がデータに適用されること、および、復旧プロセスの終了時に依然としてオープンなトランザクションにロールバックする前に、記録された「コミット」記録によるトランザクションがコミットされることを保証するために、ロガー構成要素844は、復旧中、最後のセーブポイント以降の操作を再生するために使用されてよい。
【００５１】
いくつかのデータ記憶アプリケーションについて、ディスクへのデータの書き込みは、必ずしも書き込みトランザクションの終了と同期しない。書き込みトランザクションが終了したとき、コミットされていない変更が、ディスクに書き込まれ、同時に、コミットされた変更が、ディスクにまだ書き込まれていない状況が生じる可能性がある。システムクラッシュ後、終了されなかったトランザクションによって行われた変更は、ロールバックされなければならず、コミットされたトランザクションによる変更は、失われてはならない。
【００５２】
コミットされた変更が失われないことを保証するために、変更が行われるたびに、ロガー構成要素844によって、再実行ログ情報が書き込まれてよい。この情報は、遅くとも、トランザクションが終了すると、ディスクに書き込まれてよい。正常なデータがデータボリュームに書き込まれている間、ログエントリは、別個のログボリュームに保持されてよい。再実行ログにより、コミットされた変更は、対応するデータページがディスクに書き込まれなかった場合でも、復元され得る。コミットされなかった変更を取り消すために、永続化層712は、(1つまたは複数のログからの)取消しログエントリおよびシャドウページングの組み合わせを使用することができる。
【００５３】
永続性インタフェース802は、記憶装置(例えば、インメモリ記憶装置、など)の読み出しおよび書き込み要求を処理することができる。永続性インタフェース802は、ログありおよびログなしの両方でデータを書き込むための書き込み方法を提供することもできる。ログありの書き込み操作が使用される場合、永続性インタフェース802は、ロガー844を呼び出す。加えて、ロガー844は、記憶装置(例えば、インメモリ記憶装置、など)がログエントリをログキューに直接追加することを可能にするインタフェースを提供する。ロガーインタフェースは、インメモリログキュー内のログエントリがディスクにフラッシュされることを要求するための方法も提供する。
【００５４】
ログエントリは、ログシーケンス番号、ログエントリの型、および、トランザクションの識別子を含む。操作の種類に応じて、追加情報が、ロガー844によって記録される。型「更新」を入力するために、例えば、これは、影響された記録の識別、および、変更されたデータの変更後イメージになる。
【００５５】
データアプリケーション704が再起動されると、ログエントリは、処理される必要がある。このプロセスをスピードアップするために、再実行ログは、常に最初からは処理されない。代わりに、前述のように、セーブポイントが、周期的に実行されてよく、セーブポイントは、最後のセーブポイント以降に(例えば、メモリ内、などで)行われたすべての変更をディスクに書き込む。システムを起動するとき、最後のセーブポイント後に作成されたログのみが、処理される必要がある。次のバックアップ操作後、セーブポイント前の位置の古いログエントリは、削除されてよい。
【００５６】
ロガー844が、ログエントリを書き込むために呼び出されるとき、すぐにはディスクに書き込まれない。代わりに、ログエントリをメモリ内のログキュー内に置くことができる。ログキュー内のエントリは、遅くとも、対応するトランザクションが終了した(コミットされたまたはアボートされた)とき、ディスクに書き込まれてよい。コミットされた変更が失われないことを保証するために、対応するログエントリがディスクにフラッシュされる前に、コミット操作は、正常に終了されない。ディスクへのログキューエントリの書き込みは、他のイベントによって、例えば、ログキューページがいっぱいな場合に、または、セーブポイントが実行された場合に、トリガされてもよい。
【００５７】
本主題により、ロガー844は、データベースログ(または、本明細書では単に「ログ」と呼ばれる)を、メモリバッファに自然順に(例えば、順番に、など)順次に書き込むことができる。いくつかの物理的ハードディスク/記憶装置が、ログデータを格納するために使用される場合、いくつかのログパーティションが定義されてよい。その後、(前述のように、ログデータを生成し、編成するように作用する)ロガー844は、ログバッファへの書き込みを、すべての利用可能なログパーティションに負荷分散することができる。いくつかの場合では、負荷分散化は、ラウンドロビン分散スキームに従い、ラウンドロビン分散スキームでは、様々な書き込み操作が、順次かつ連続的な方法でログバッファに向けられる。この構成では、マルチパーティションログの特定のパーティションの単一のログセグメントに書き込まれたログバッファは、連続的でない。しかしながら、ログバッファは、復旧中、すべてのパーティションのログセグメントから適切な順序に並べ替えられてよい。
【００５８】
前述のように、データ記憶アプリケーション704は、セーブポイントマネージャ816が、トランザクション的に一貫したセーブポイントを書き込むことができるように、シャドウページングを使用することができる。このような構成によれば、データバックアップは、データバックアッププロセスの第1の工程として行われた特定のセーブポイントに含まれるすべてのデータページのコピーを含む。本主題は、他の形式のデータページ記憶装置に適用されてもよい。
【００５９】
いくつかの実装では、本主題は、図9に示すように、システム900内に実装されるように構成されてよい。システム900は、プロセッサ910、メモリ920、記憶装置930、および、入力/出力装置940を含むことができる。構成要素910、920、930、および940の各々は、システムバス950を使用して相互接続されてよい。プロセッサ910は、システム900内での実行のための命令を処理するように構成されてよい。いくつかの実装では、プロセッサ910は、シングルスレッドプロセッサであってよい。代わりの実装では、プロセッサ910は、マルチスレッドプロセッサであってよい。プロセッサ910は、さらに、入力/出力装置940を介する情報の受信または送信を含む、メモリ920内または記憶装置930上に格納された命令を処理するように構成されてよい。メモリ920は、システム900内の情報を格納することができる。いくつかの実装では、メモリ920は、コンピュータ可読媒体であってよい。代わりの実装では、メモリ920は、揮発性メモリユニットであってよい。さらにいくつかの実装では、メモリ920は、不揮発性メモリユニットであってよい。記憶装置930は、システム900のための大容量記憶装置を提供することが可能であってよい。いくつかの実装では、記憶装置930は、コンピュータ可読媒体であってよい。代わりの実装では、記憶装置930は、フロッピー(登録商標)ディスク装置、ハードディスク装置、光ディスク装置、テープ装置、不揮発性固体メモリ、または任意の他の形式の記憶装置であってよい。入力/出力装置940は、システム900のための入力/出力操作を提供するように構成されてよい。いくつかの実装では、入力/出力装置940は、キーボードおよび/またはポインティングデバイスを含むことができる。代わりの実装では、入力/出力装置940は、グラフィカルユーザインタフェースを表示するための表示ユニットを含むことができる。
【００６０】
図10は、本主題のいくつかの実装による、例示的な方法1000を示す。1002では、ビジネスオブジェクトが、第1のシステムで生成されてよい。1004では、生成されたビジネスオブジェクトは、第1のシステムから第2のシステムに複製されてよい。1006では、複製されたビジネスオブジェクトを実装する高性能アプリケーションが、少なくとも1つのシステム固有のビューに基づいて実行されてよい。生成する工程、複製する工程、および実行する工程の少なくとも1つは、少なくとも1つのプロセッサ上で実行されてよい。
【００６１】
いくつかの実装では、本主題は、以下の任意の特徴の1つまたは複数を含むことができる。第1のシステムは、企業資源計画システムであってよい。第2のシステムは、高性能分析アプライアンス(「HANA」)インメモリデータベースシステムであってよい。
【００６２】
実行する工程は、ビジネスオブジェクトに関するメタデータを第1のシステムから取得する工程と、取得されたメタデータを第2のシステムに提供する工程と、提供されたメタデータを使用して、第2のシステム内の少なくとも1つのビジネスオブジェクトへのアクセスを提供する工程と、少なくとも1つのシステム固有のビューに基づいて、第1のシステムおよび第2のシステムの少なくとも一方の少なくとも1つのアーティファクトを生成する工程と、を含むことができる。
【００６３】
複製する工程は、第2のシステムに格納された少なくとも1つの複製スキーマに基づいて実行されてよい。ビジネスオブジェクトは、少なくとも1つの列および少なくとも1つの行を含むテーブルを含むことができる。データ複製器モジュールは、テーブル内の少なくとも1つの列を引き継ぐ、第1のシステムのテーブルに加えられたメタデータを引き継ぐ、第2のシステムのテーブルを再命名する、引き継ぐテーブルに関連付けられた少なくとも1つの外部キーを任意に指定する、引き継ぐテーブルに関連付けられた少なくとも1つのインデックスを任意に指定する、第2のシステムにテーブルを格納するための行ストアまたは列ストアの少なくとも1つを指定する、列を追加する、列を削除する、および、少なくとも1つのデータ型マッピングを提供する、の少なくとも1つを実行することによって、複製する工程を実行することができる。データ複製器モジュールは、第2のシステムの複製されたテーブルへのアクセスを提供するための複製投影ビュー、および、第2のシステムへのOpenSQLアクセスを提供するための外部ビューの少なくとも1つを作成することができる。
【００６４】
本明細書に開示されるシステムおよび方法は、例えば、データベースも含むコンピュータなどデータプロセッサ、デジタル電子回路網、ファームウェア、ソフトウェア、またはそれらの組み合わせを含む、様々な形態で具体化されてよい。さらに、ここに開示された実装の上記の特徴並びに他の態様および原理は、様々な環境で実装されてよい。このような環境、および関連するアプリケーションは、開示された実装による様々なプロセスおよび操作を実行するために特別に構成されてよく、または、それらは、必要な機能を提供するためにコードによって選択的に活性化もしくは再構成された汎用コンピュータもしくはコンピューティングプラットフォームを含むことができる。本明細書に開示されたプロセスは、どのような特定のコンピュータ、ネットワーク、アーキテクチャ、環境、または他の装置にも本質的に関係せず、ハードウェア、ソフトウェア、および/またはファームウェアの適切な組み合わせによって実装されてよい。例えば、様々な汎用機が、開示された実装の教示にしたがって書かれたプログラムと共に使用されてよく、または、必要な方法および技術を実行するために専用の装置もしくはシステムを構成することがより便利である可能性がある。
【００６５】
本明細書に開示されるシステムおよび方法は、コンピュータプログラム製品として、すなわち、データ処理装置、例えば、プログラマブルプロセッサ、コンピュータ、もしくは複数のコンピュータによって実行するため、または、これらの動作を制御するための、情報担体、例えば、機械可読記憶装置、または、伝播される信号内で実体的に具体化されたコンピュータプログラムとして実装されてよい。コンピュータプログラムは、コンパイルまたはインタプリタ言語を含む任意の形式のプログラム言語で書かれてよく、独立型プログラムとして、または、モジュール、構成要素、サブルーチン、もしくは、コンピューティング環境で使用するのに適した他のユニットとして、を含む、任意の形式で配置されてよい。コンピュータプログラムは、1つのコンピュータ上で、または、1つのサイトで、もしくは、複数のサイトにわたって分散され、通信ネットワークによって相互接続された複数のコンピュータ上で実行されるように配置されてよい。
【００６６】
本明細書で使用される「ユーザ」という用語は、人間またはコンピュータを含む任意の実体を指すことができる。
【００６７】
第1、第2、などの序数は、いくつかの状況では、順序に関係する場合があるが、本文書で使用される序数は、必ずしも順序を意味しない。例えば、序数は、単にある項目を別の項目から区別するために使用される場合がある。例えば、第1のイベントを第2のイベントから区別することは、しかし、(記述のある段落での第1のイベントが、記述の別の段落での第1のイベントと異なることができるように)どのような時間的順序または固定された基準システムも意味する必要はない。
【００６８】
前述の説明は、添付の特許請求の範囲によって定義される本発明の範囲を示すが、限定しないように意図される。他の実装は、以下の特許請求の範囲内である。
【００６９】
プログラム、ソフトウェア、ソフトウェアアプリケーション、アプリケーション、構成要素、またはコードとも呼ばれる場合がある、これらのコンピュータプログラムは、プログラマブルプロセッサのための機械語命令を含み、高級手続き型および/もしくはオブジェクト指向プログラミング言語、並びに/または、アセンブリ/機械語で実装されてよい。本明細書で使用される「機械可読媒体」という用語は、機械語命令を機械可読信号として受信する機械可読媒体を含むプログラマブルプロセッサに機械語命令および/またはデータを提供するために使用される任意のコンピュータプログラム製品、装置および/またはデバイス、例えば、磁気ディスク、光ディスク、メモリ、およびプログラマブル論理デバイス(PLD)などを指す。「機械可読信号」という用語は、機械語命令および/またはデータをプログラマブルプロセッサに提供するために使用される任意の信号を指す。機械可読媒体は、例えば、非一時的固体メモリもしくは磁気ハードドライブ、または、任意の同等の記憶媒体のように、このような機械語命令を非一時的に格納することができる。機械可読媒体は、代わりにまたは加えて、例えば、プロセッサキャッシュ、または、1つもしくは複数の物理的プロセッサコアに関連付けられた他のランダムアクセスメモリのように、このような機械語命令を一時的な方法で格納することができる。
【００７０】
ユーザとのインタラクションを提供するために、本明細書に記載の主題は、例えば、ユーザに情報を表示するための陰極線管(CRT)または液晶ディスプレイ(LCD)モニタなど表示装置、並びに、キーボード、および、例えば、マウスまたはトラックボールなどポインティングデバイスを有するコンピュータ上で実装されてよく、キーボードおよびポインティングデバイスによって、ユーザは、コンピュータに入力を提供することができる。同様に、ユーザとのインタラクションを提供するために、他の種類の装置が使用されてよい。例えば、ユーザに提供されるフィードバックは、例えば、視覚フィードバック、聴覚フィードバック、または触覚フィードバックなど、任意の形式の感覚フィードバックであってよく、ユーザからの入力は、音響、音声、または触覚入力を含むが、これらに限定されない任意の形式で受信されてよい。
【００７１】
本明細書に記載の主題は、例えば、1つもしくは複数のデータサーバなどバックエンド構成要素を含む、または、例えば、1つもしくは複数のアプリケーションサーバなどミドルウェア構成要素を含む、または、例えば、グラフィカルユーザインタフェースもしくはウェブブラウザを有する1つもしくは複数のクライアントコンピュータなどフロントエンド構成要素を含むコンピューティングシステムで実装されてよく、グラフィカルユーザインタフェースもしくはウェブブラウザを介して、ユーザは、本明細書に記載の主題の実装と、または、このようなバックエンド、ミドルウェア、もしくはフロントエンド構成要素の任意の組み合わせとインタラクションすることができる。システムの構成要素は、例えば、通信ネットワークなど、デジタルデータ通信の任意の形式または媒体によって相互接続されてよい。通信ネットワークの例は、ローカルエリアネットワーク(「LAN」)、ワイドエリアネットワーク(「WAN」)、およびインターネットを含むが、これらに限定されない。
【００７２】
コンピューティングシステムは、クライアントおよびサーバを含むことができる。クライアントおよびサーバは、一般的に、しかし排他的ではなく、互いに離れ、典型的には、通信ネットワークを介してインタラクションする。クライアントおよびサーバの関係は、個々のコンピュータ上で動作し、互いにクライアント-サーバ関係を有するコンピュータプログラムによって生じる。
【００７３】
上記の説明に記載された実装は、本明細書に記載の主題と一致するすべての実装を表さない。代わりに、それらは、単に、記載された主題に関連する態様に一致するいくつかの例である。いくつかの変形が、上記で詳細に説明されているが、他の修正または追加が可能である。具体的には、さらなる特徴および/または変形が、本明細書に記載のものに加えて提供されてよい。例えば、上記の実装は、開示された特徴の様々な組み合わせおよび部分的組み合わせ、並びに/または、上記で開示されたいくつかの他の特徴の組み合わせおよび部分的組み合わせに向けられてよい。加えて、添付図面に示されたおよび/または本明細書に記載された論理の流れは、所望の結果を達成するために、示された特定の順序、または一連の順序を、必ずしも必要としない。他の実装が、以下の特許請求の範囲内であってよい。
【符号の説明】
【００７４】
100  メタデータ複製システム
102  ERPシステム
104  ミドルウェアシステム
106  IMDBシステム
110  データベース
112  データベース
114  辞書
116  辞書複製器モジュール
118  辞書
120  複製制御モジュール
200  システム
202  NGAPシステム
204  辞書複製器モジュール
206  辞書
208  ABAPプログラミングおよびOpenSQLモジュール
210  IMDB
212  ABAPスキーマ
214  複製スキーマ
216  実行時オブジェクト
218  複製制御モジュール
【図１】
2014120174.tif 000003
【図２】
2014120174.tif 000004
【図３】
2014120174.tif 000005
【図４】
2014120174.tif 000006
【図５】
2014120174.tif 000007
【図６】
2014120174.tif 000008
【図７】
2014120174.tif 000009
【図８】
2014120174.tif 000010
【図９】
2014120174.tif 000011
【図１０】
2014120174.tif 000012
【外国語明細書】
2014120174000001.pdf