JP3848085B2 - トランザクションデータの高速記憶常駐処理方法および処理システム - Google Patents

トランザクションデータの高速記憶常駐処理方法および処理システム Download PDF

Info

Publication number
JP3848085B2
JP3848085B2 JP2000556318A JP2000556318A JP3848085B2 JP 3848085 B2 JP3848085 B2 JP 3848085B2 JP 2000556318 A JP2000556318 A JP 2000556318A JP 2000556318 A JP2000556318 A JP 2000556318A JP 3848085 B2 JP3848085 B2 JP 3848085B2
Authority
JP
Japan
Prior art keywords
data
data object
stored procedure
stored
management system
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2000556318A
Other languages
English (en)
Other versions
JP2002519765A (ja
Inventor
プリムシュ ユルゲン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
SAP SE
Original Assignee
SAP SE
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by SAP SE filed Critical SAP SE
Publication of JP2002519765A publication Critical patent/JP2002519765A/ja
Application granted granted Critical
Publication of JP3848085B2 publication Critical patent/JP3848085B2/ja
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/289Object oriented databases
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99931Database or file accessing
    • Y10S707/99933Query processing, i.e. searching
    • Y10S707/99934Query formulation, input preparation, or translation
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99951File or database maintenance
    • Y10S707/99952Coherency, e.g. same view to multiple users
    • Y10S707/99953Recoverability

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Communication Control (AREA)

Description

【0001】
技術分野
本発明は一般的に、トランザクションシステムにおけるデータの記憶、呼び出し、および処理方法に関する。とりわけ本発明は、記憶されたデータでの機能をリアルタイムベースで実行するためのリレーショナルかつオブジェクト指向の機能性を統合する方法に関する。
【0002】
従来の技術
コンピュータ技術分野では、データを商用データベースシステムに記憶し、このデータをデータベースマネージャシステムにより呼び出すことが普通である。2つの一般的形式のデータベースマネージャシステムがある。すなわちリレーショナルとオブジェクト指向である。リレーショナルなデータベースシステムは、大容量のデータを管理するのに適し、一方オブジェクト指向のデータベースはオブジェクト間の複雑な関係を表現するのに適する。リレーショナルなデータベースシステムは、データを呼び出すのには適するが、データ操作はわずかしか和ポートしないか、まったくサポートしない。一方、オブジェクト指向のシステムはデータ操作に非常に適するが、データの問い合わせおよび呼び出しをわずかしかサポートしないか、またはまったくサポートしない。所与のタスクに応じて、所定のタスクに適する種々のシステムを使用することができる。単純なデータを問い合わせなしで管理するためには、伝統的なデータベースシステムさえも必要ない。単純なファイルシステムで十分である。単純なデータを問い合わせにより管理するためには、リレーショナルなデータベースシステムが理想的であろう。該当するデータが複雑であり、しかも問い合わせが必要でなければ、オブジェクト指向のデータベースシステムが使用されるであろう。さらに該当するデータが複雑で、かつ問い合わせ能力が要求される場合には、オブジェクト・リレーショナルなデータベースマネージメントシステムの使用が所望されるであろう。
【0003】
内部の機能性を結合することが試みられた。しかし2つのモデルは基本的に異なっているので、両者の統合は非常に困難である。リレーショナルなデータベースシステムは2次元テーブルに基づくものであり、このテーブルでは各アイテムが各行に現れる。データ間の関係は、このテーブルに記憶された値の比較により表現される。オブジェクトモデルは、コードおよびデータの密な統合、フレキシブルなデータ形式、および引用に基づく。オブジェクト指向のデータベースはその起源をオブジェクト指向プログラミングパラダイムに有する。このパラダイムでは、ユーザはオブジェクトと、このオブジェクトでの演算に関心を持つ。「DEPT組」+相応の「EMP組」の集合(これは「DEPT組」で「一次キー値」を参照する「外部キー値」を含む)を考えなければならない代わりに、ユーザはエンプロイーオブジェクトの相応の集合に相当するデパートメントオブジェクトを直接考えなければならない。
【0004】
00アプローチの基本原理は、全てが1つのオブジェクトであることである。いくつかのオブジェクトはプリミティブであり、不変である(整数、ストリングス等)。他のオブジェクトは−典型的にはユーザが形成したオブジェクト−はより複雑であり、可変である。これらより複雑なオブジェクトは任意の内部複雑性の変数に相応する。各オブジェクトはタイプを有する(00表現はクラスである)。個々のオブジェクトはしばしばオブジェクトインスタンスと称される。各所与のタイプの内部アスペクトは、オペレータまたは機能の集合からなり(00表現は「方法」である)、この集合はこのタイプのオブジェクトに適用することができる。さらに全てのオブジェクトがカプセル化される。これは、所定のオブジェクトの表現または内部構造が、このオブジェクトのユーザには見えないことを意味する。その代わりにユーザは、オブジェクトが所定の機能を実行可能であることを知るだけである。カプセル化の利点は、オブジェクトの内部表現を変更できることであり、その際にこれらオブジェクトを書き換えて使用しなければならないアプリケーションが必要ないことである。言い替えればこのカプセル化によりデータ独立性が得られる。各オブジェクトは、OID(オブジェクトID)と称される一義的な識別子を有し、この識別子はデータベースの他の部分からのポインタに対するアドレスとして使用することができる。
【0005】
リレーショナルなデータベースシステムは小さく、固定されたデータタイプ(例えば整数、データ、およびストリングス)の集合をサポートする。これらは伝統的な適用領域、例えば管理データ処理に適することが証明されている。しかし多くの適用領域でより複雑な形式のデータを取り扱わなければならない。通常のこの複雑なデータはDBMSではなく、オペレーティングシステムのファイルシステムまたは専用のデータ構造に記憶される。複雑なデータを有する領域は例えばコンピュータ支援開発およびモデリング(CAD/CAM)、マルチメディアソース、および文書管理である。データ量が増大すると共に、データ管理のためにDBMSにより提供される多数のフューチャ、例えばアプリケーション開発時間の短縮、同時制御およびリカバリー、インデクスサポートおよび問い合わせ能力がますます所望されるようになり、必要になる。このようなアプリケーションを支援するために、DBMSは複雑なデータタイプをサポートしなければならない。オブジェクト指向の概念は、複雑なデータに対するデータベース支援を改善する努力に大きな影響を与えた。すでに述べたように、従来技術に属するリレーショナルなデータベースマネージメントシステムは、この機能を単純なデータに基づいてサポートする。リレーショナルなDBMSが複雑なデータ形式を記憶できるとも考えられよう。例えば画像、ビデオ等はblobs(basic large objects、単純で大きなオブジェクト)として現在のリレーショナルなシステムに記憶することができるであろう。blobは単に長いバイト流であり、DBMSのサポートは、blobを記憶し、呼び出すことである。この記憶および呼び出しは、ユーザがbloの大きさを意識する必要なしに、1つのblobが複数のページに伸張できるよう行われる。以降のblobの全ての処理は、ユーザのアプリケーションプログラムによりホスト言語で行わなければならない。このホスト言語にはSQL言語が埋め込まれている。この解決手段は効率的でない。なぜなら、全てのblobを集合から呼び出さなければならず、これらの多くをDBMS内でユーザ定義された機能を適用することにより応答からふるい落とすことができるにしても、全てを呼び出さなければならない。従来技術におけるオブジェクト指向のデータベースも複雑なデータの記憶をサポートするが、これらはこのような複雑なデータを管理するための問い合わせ機能およびインデクシング機能を提供しない。
【0006】
伝統的なリレーショナルなデータベースマネージメントシステムのフューチャおよび機能性を提供することのでき、しかも複雑なデータ形式により使用できるデータベースマネージメントシステムが必要である。この必要性の結果、オブジェクト−リレーショナルなデータベースマネージメントシステムを開発する機運が高まった。
【0007】
オブジェクト−リレーショナルなデータベースは、リレーショナルなデータベースシステムを、アプリケーションの広範囲なクラスをサポートするために必要な機能性により拡張する試みと見なすことができ、多くの点でリレーショナルな領域とオブジェクト指向の領域との橋渡しをする。現在市場には複数のオブジェクト−リレーショナルなデータベースマネージメントシステム(ORDBMS)が存在する。これには、Informix Universal Server, UniSQLおよびO2が属する。現在の開発で行われた、オブジェクト−リレーショナル技術でのアプローチは、既存のDBMSの機能性を新たなデータ形式を追加することにより拡張することである。伝統的システムは使用可能なデータタイプにおいて制限されたフレキシビリティしか提供しない。データはテーブルに記憶され、各フィールド値のタイプは単純なアトミックタイプに制限される。この制限されたタイプシステムは3つの3つのタイプに拡張された:ユーザ定義されたアブストラクトタイプ、構造化タイプ、および参照タイプである。これらはまとめてコンプレクスタイプと称される。例としてJPEG画像を挙げておく。このタイプは、典型的なDBMSのビルトインタイプの1つではないが、ユーザによりORDBMSに定義することができ、JPEG規格により圧縮された画像データを記憶することができる。ORDBMSのキーフューチャは、ユーザが任意に新たなデータタイプを定義できることである。ORDBMSによりユーザは、タイプjpeg_imageのオブジェクト、並びに整数のような任意の別のタイプを記憶し、呼び出すことができる。新しいデータタイプでは通常、タイプ固有の演算を、これを形成したユーザにより定義しなければならない。例えば画像データタイプでの演算を、圧縮、回転、収縮、およびクロップと定義できるであろう。データタイプとそれに配属された方法の組合せはアブストラクトデータタイプ(ADT)と称される。ラベル「アブストラクト」はこのデータタイプに適用される。なぜなら、データベースシステムは、ADTのデータがどのように記憶されるか、またはADTの方法がどのように動作するかを知る必要がないからである。使用可能な方法、およびこの方法に対する入力および出力タイプを知ればよいだけである。内部ADT構成部分の秘匿はカプセル化と称される。オブジェクトがとりわけ大きい場合、オブジェクト識別子が有利である。大きな値のコピーを構造化タイプの多重オブジェクトに記憶することは、この値を一度記憶し、基準タイプのオブジェクトによりこれを他の個所で参照する場合よりも格段に多くの空間を必要とする。この付加的なメモリ要求は、ディスク使用およびバッファ管理に大きな影響を与える。
【0008】
大きなADTオブジェクトはディスク状でのデータのレイアウトを複雑化する。この問題は良く理解され、実質的に全てのORDBMSおよびOODBMSで解決されている。ユーザ定義されたADTは非常に大きくても良い。とりわけこのADTは個々のディスクページよりも大きくて良い。大きなADTはblobのように特別の記憶を必要とし、通常はこのADTを含む組とは別のディスク個所に記憶される。ディスクベースのポインタは組から、これを含むオブジェクトに維持される。
【0009】
従来技術のORDBMでの別の問題は効率である。複雑なオブジェクトが純粋にリレーショナルなデータベースマネージメントシステムにblobとして記憶される場合、オブジェクト全体をメモリから呼び出し、クライアントに伝送しなければならない。オブジェクトの各処理および全ての処理はクライアント自身により実行しなければならない。しかしORDBMではこの能力が改善されている。なぜなら方法がクライアントによってではなく、サーバによって実行されるからである。ありきたりな例として、問い合わせ「20章以上ある全ての本を検索せよ」を考えてみる。伝統的なリレーショナルDBMSでは本をblobとして表すことができ、クライアントは各本を呼び出し、走査し、それが基準を満たしているか否かを決定しなければならない。これに対してサーバは、適切な00サポートにより方法「章の数」を呼び出し、それらの本だけがクライアントに伝送される。
【0010】
これが、必要なデータだけが呼び出され、クライアントに伝送されるという意味で能力の一側面である。効率の別の側面はアドレス空間に係るものである。記憶システムがユーザプログラムとは別のアドレス空間で実行されるなら、この命令を処理するためにアドレス空間を切り替えなければならない。このアドレス空間切り替えのために、命令は2から3のオーダーで非持続的な場合よりも緩慢になる。このような性能の低下はユーザには受け入れられないものである。この理由から持続的メモリシステムは、これがユーザプログラムと同じアドレス空間で実行されるように構成された。アドレス空間切り替えを回避することにより、格段に高い性能が提供される。持続的言語を使用することの利点は、持続的言語の世界ではアップデートが非常に「軽い」ことである。すなわち、アップデートはわずかな時間しか必要としない。結果として、例えばC++のようなローレベル言語でのアップデート作成は例えばSQLのような高級プログラミング言語でのアップデート作成とは基本的に異なる。C++または第3世代属する他の任意のプログラミング言語では、アップデートが格段に軽い。すなわちこれらの言語はただ1つの記憶個所を変形するだけである。
【0011】
性能の最後の側面は、DBMSと、機能が実行されるアドレス空間との間のデータ伝送である。従来技術では、ハードディスクまたは所定の類似の装置に記憶されたDBMSからデータがアプリケーションに伝送される。この形式ので0多伝送はネットワークリソースを極端に負荷し、許容できない遅延の原因となる。ディスクの入出力は従来技術では、処理スピードにおける遅延の主要な原因である。大容量のトランザクションデータが伝統的リレーショナルDBMSに存在するような状況では、複雑な計算をこのデータにおいて実行することが所望される。このようなデータ操作の制限要因は速度と性能である。従来技術では、大容量のデータがDBMSにより呼び出され、入力として機能に供給され、この機能がデータにより実行され、出力値がフィードバックされる。しかし、データをディスクからメモリに伝送しなければならないときに、I/Oボトルネックが発生する。例えば大容量のトランザクションデータを、リアルタイムのデータ分析またはほぼリアルタイムのデータ分析のために処理しなければならない場合、実際のトランザクションデータをDBMSから伝送し、計算処理の実行されるクライアントに送出しなければならない。このことは伝統的に重大な遅延の原因となる。
【0012】
本発明はこの欠陥を修正し、データベースからリアルタイムベースで呼び出されるデータの効率的で高速の処理を可能としようとするものである。
【0013】
上記の議論は有利に、企業リソースプランニングシステム(ERPシステム)の関連で適用することができる。このトランザクションシステムは企業により使用され、企業の商業的プロセスを日ごとに自動的に管理する。このオンライントランザクション処理システムは、全ての商業的ルーチンとトランザクションを統合的に処理するよう構成されている。これには、企業ワイド、統合的ソリューション、並びに個別の部門機能に対する専用アプリケーションが含まれる。これらは企業の商業的に重要な全ての処理、すなわち金融、製造、販売および人事を反映する。
【0014】
このようなシステムにより形成されたトランザクションを分析できると有利である。従来技術では、企業がコンピュータを使用して、商業プロセスデータを分析し、判断データを得ている。伝統的にはトランザクションシステムからのデータはデータ倉庫にバッチ処理でアップロードされた。分析は、データ倉庫からのデータで実行された。この分析はリアルタイムベースでは実行されない。本発明は、この欠陥を修正しようとするものである。
【0015】
本発明の課題は、大容量のトランザクションデータでの複雑な操作をリアルタイムで実行できるシステムおよび方法を提供することである。
【0016】
本発明の別の課題は、I/Oボトルネックを除去することである。このボトルネックは伝統的には、大容量のトランザクションデータを処理のためにクライアントに伝送するときに発生する。
【0017】
本発明の別の課題は、トランザクションデータの記憶が最適化されたデータ構造で可能であるようなシステムおよび方法を提供することである。ここでは複雑なデータ構造、例えばネットワーク構造またはツリー構造をオブジェクト参照に基づいて適切に表現できるようにする。
【0018】
本発明の別の課題は、トランザクションシステムで更新されるトランザクションデータと関連して、最適のデータ構造に記憶されたトランザクションデータを維持することである。
【0019】
本発明の別の課題は、複雑なオブジェクトをオブジェクト指向環境で記憶することのできるシステムおよび方法を提供することである。
【0020】
本発明の別の課題は、前記の複雑なオブジェクトを、伝統的なリレーショナルデータベース技術およびSQL言語を使用して問い合わせることのできるシステムを提供することである。
【0021】
本発明の別の課題は、複雑なオブジェクトが、リレーショナルな環境と同じように高度に複雑化されたトランザクションマネージメントシステムに支配されるシステムを提供することである。
【0022】
本発明の要約
本発明は、複雑なデータ処理をリアルタイムベースで実行するためのシステムおよび方法を提供する。有利な実施形態でこのシステムは、1つまたは複数のクライアント(例えば端末機またはPC)を有し、クライアントはネットワークを介してアプリケーションサーバと接続されている。アプリケーションサーバは非常に大きなメインメモリを含み、このメモリでハイブリッド・オブジェクト−リレーショナル・データベースシステムが実行される。データベースシステムは伝統的なリレーショナル・データベースマネージメントシステムを含み、その機能性は複雑なデータタイプ、すなわち持続的C++クラスおよび記憶された手続きの導入を可能にすることによって拡張されている。この複雑なデータタイプへは、SQLを用い、ユーザ定義されたタイプおよびユーザ定義された機能によってアクセスすることができる。トランザクションデータは最適化されたデータ構造に、複雑なオブジェクトとして同じ大きさのメインメモリに記憶される。この複雑なオブジェクトを記憶するために、別個のメモリコンテナが設けられる。各複雑なオブジェクト自体は、持続的C++クラスの例である。オブジェクトが形成されるときに、このオブジェクトに対して一義的なオブジェクト識別子(OID)が形成される。このOIDは、別個のメモリコンテナに記憶された複雑なオブジェクトへのポインタとして用いられる。本発明はさらに、持続的C++オブジェクトを、オブジェクトマネージメントのC++方法と伝統的リレーショナル・データベーストランザクションマネージメントを使用して、定義、操作、および呼び出すためのオブジェクトマネージメントシステム(OMS)を含む。
【0023】
各持続的C++クラス毎に、記憶された関連の手続きが存在する。記憶された手続きは、C++に実現されたCOMオブジェクトの方法として実行される。この方法はライブラリーに登録され、データベース処理が実行されるアドレス空間にダイナミックにリンクされる。この方法はC++で記述されており、持続的C++クラスの例である複雑なオブジェクトとして記憶されたデータで動作するよう構成されている。
【0024】
一般的動作では、1つまたは複数のクライアントが、データ処理演算を複雑なオブジェクトとして記憶されたデータセットで実行するよう要求する。ORDBMSとデータ自体は、全て大きなメインメモリに記憶されている。このようにしてI/Oボトルネックが除去される。なぜなら重たいデータ伝送が必要ないからであり、性能のアドバンテージが達成される。記憶された手続きはさらに同じメインメモリアドレスで使用可能とされる。記憶された手続きはこの複雑なオブジェクトへオブジェクト識別子によって、介在するGET方法を介してアクセスすることができる。オブジェクト識別子は、前記のオブジェクトが記憶されているメインメモリアドレスに変換される。こうして持続的オブジェクト、例えばC++オブジェクトのコピーが、記憶された手続きと同じメインメモリアドレス空間で使用可能とされる。その結果、記憶させた手続きは、DBMSが実行されるのと同じアドレス空間で実行される。このことにより、大容量のデータメモリの複雑な分析が行われる演算に対して付加的な性能アドバンテージが得られる。本発明以前では、複雑な問い合わせは多量のリソースを消費し、そのためトランザクションマネージメントシステムからの実際の演算データを格段の遅延なしに使用するのは非効率的であった。本発明によれば、トランザクションデータが提案されたORDBMSに収集され、登録された機能がORDBMSプロセスが実行されるのと同じアドレス空間で実行され、複雑な分析が実行される。これにより従来技術に対して改善された性能が得られる。
【0025】
図面の簡単な説明
図1は、本発明を提供するのに適した環境の概略図である。
【0026】
図2は、従来技術の概略図である。
【0027】
図3は、本発明を実現することのできるコンピュータシステムの概略図である。
【0028】
図4は、図3のコンピュータシステムの動作を制御するためのソフトウエアサブシステムを示すブロック回路図である。
【0029】
図5は、本発明が有利に実現されるクライアント/サーバシステムのブロック回路図である。
【0030】
図6は、本発明の有利な実現例を概略図である。
【0031】
図7は、本発明の有利な実施例で開始される例としてのトランザクションの概略図である。
【0032】
図8は、本発明の有利な実施例の構造概略図である。
【0033】
図9は、本発明でUDTと定義することのできる例として最適データ構造の構造概略図である。
【0034】
図10は、オブジェクト指向モデルへの関係からデータをマッピングする概略図である。
【0035】
図11は、図9の再提起データ構造により構成されたプラニングモデルの例を示す概略図である。
【0036】
図12は、オブジェクト指向のデータモデル化に適する分散ネットワークの概略図である。
【0037】
図13は、オブジェクトマネージメントシステムの構造の概略図である。
【0038】
図14は、OMSバンクでのオブジェクトデータ記憶の構造の概略図である。
【0039】
図15は、データオブジェクトが記憶されたページメモリレイアウトの概略図である。
【0040】
図16は、有利な実施例でのオブジェクト識別子の構造の概略図である。
【0041】
図17は、本発明によるメインメモリのページメモリレイアウトのオブジェクト記憶を示す概略図である。
【0042】
図18は、本発明によるページメモリレイアウトでのページシーケンスを示す概略図である。
【0043】
図19は、本発明で使用するのに適する最適データモデルのOIDを示す概略図である。
【0044】
図20は、アプリケーションオブジェクトとライブキャッシュサーバとの間のインターフェースを示す概略図である。
【0045】
図21は、機能およびオブジェクトデータを呼び出すためのライブキャッシュサーバでのSQL問い合わせの発行方法を示す。
【0046】
図22は、本発明のトランザクションマネージメントシステムの概略図である。
【0047】
図23は、本発明のトランザクションマネージメントシステムに対するログを示す。
【0048】
図24は、本発明のデータ同期手段のステップ1を示す。
【0049】
図25は、本発明のデータ同期手段のステップ2を示す。
【0050】
図26は、本発明のデータ同期手段のステップ3を示す。
【0051】
有利な実施例の詳細な説明
以下の説明は、本発明の現在の有利な実施例を中心にするものであり、この実施例はクライアント/サーバアプリケーションを実行するネットワーク環境で動作する。しかし本発明は、所定のアプリケーションまたは環境に制限されるものではない。本発明は有利には、大容量のトランザクションデータをリアルタイムで処理することが所望されるいずれのアプリケーションまたは環境でも使用することができる。有利な実施例の以下の説明は説明のためのものであり、限定ではない。
【0052】
図1は、本発明の提供に適する供給チェーン環境を示す。供給者100から消費者108への商品の流れは、製造者102,ディストリビュータ104および販売操作106の中間ノードを有し、この流れを最適の販売コストソリューションを達成するため最大にすべきである。本発明はこの最適計算をリアルタイムで達成する。図2は従来技術の処理方法を示す。伝統的にトランザクションデータは、ハードディスク200またはデータベース・サーババッファからアプリケーションサーバ204に伝送される。図からわかるように、このような伝送206に対する時間が非常に重要である。本発明は、この伝送時間を格段に低減する。
【0053】
本発明は、例えば図3のシステムのようなコンピュータシステムで実現することができる。このシステムは、中央プロセッサ、メインメモリ304,入/出力制御ユニット306,キーボード308,ポインティングデバイス310,スクリーンディスプレイ312および大容量メモリ(例えばハードディスク、リムーバルディスク、光学的ディスク、磁気光学的ディスク、またはフラッシュメモリ)を有する。
【0054】
図4に示すように、コンピュータソフトウエアシステムがコンピュータシステムの演算を制御するために設けられている。システムメモリ400と、大容量メモリ、例えばハードディスクに記憶されたソフトウエアシステムはカーネル、ないしオペレーティングシステム402を有し、これらは特別な実施例ではWindows NTおよびシェル404である。1つまたは複数のアプリケーションプログラム、例えばアプリケーションソフトウエアが(ディスクからメインメモリに)ロードされ、システムによって実行される。システムはまたユーザインタフェース406を、ユーザ命令およびデータを入力として受信するために有し、結果データを出力として表示する。本実施例では、下に説明するように、本発明によるライブキャッシュアプリケーションソフトウエアがハイブリッドオブジェクト−リレーショナルデータベースシステム408を有する。
【0055】
クライアントは、任意の数のデータベースフロントエンドであって良い。これには、パワービルダー、dベース、パラドックス、マイクロソフトアクセス等が含まれる。例としての実施例では、フロントエンドがSQLアクセスドライバを、SQLデータベースサーバテーブルをクライアント/サーバ環境でアクセスするために有する。
【0056】
本発明はただ1つのコンピュータで機能することができるが(図3の例のように)、本発明は有利には、例えばクライアント/サーバシステムのようなマルチユーザコンピュータシステムで実現することができる。図5は、有利な実施例のクライアント/サーバシステム500の一般的構造を示す。図示のようにシステム500は、1つまたは複数のクライアント502を有し、これらはライブキャッシュサーバ504にネットワーク506を介して接続されている。とりわけクライアント502は1つまたは複数のスタンドアローン端末機508を有し、この端末機は従来のネットワーク500を使用して、サーバに存在するシステムに接続される。
【0057】
ライブキャッシュサーバ504は一般的に独立のプロセスとして動作し、このプロセスは、サーバ上のサーバオペレーティングシステム、例えばマイクロソフトNT(Microsoft Corp.)下で実行される。ネットワーク506は、任意の数の従来のネットワークシステム、例えばローカルエリアネットワーク(LAN)またはワイドエリアネットワーク(WAN)、並びに他の公知技術(例えばイーサネット、IBMトークンリング等を使用する)であって良い。ネットワーク506は、クライアントコールを公知の言語SQL(構造化問い合わせ言語)でいずれかのパラメータ情報と共にパッケージ化し、ケーブルまたはデータ線路を介した伝送に適したフォーマットでライブキャッシュサーバ504に伝送する機能性を有している。
【0058】
図6は、ライブキャッシュサーバが有利な実施形態で実現されるフレームのブロック回路図である。ERPシステム600がデータリンク604を介してメインERPデータベースサーバ602と接続されている。ERPシステム600は、企業の毎日のオペレーションに対してトランザクションマネージメントを提供する。前記のトランザクションはメインERPデータベースサーバ602に書き込まれる。ERPシステム600はまたアプリケーションサーバ606と接続されている。ERPシステム602とアプリケーションサーバ606との間にはデータリンク607が存在する。ライブキャッシュサーバ608上には大容量のメインメモリ610があり、このメモリにはライブキャッシュアプリケーション612およびこれに含まれるデータベースシステム614が常駐する。演算データはERPデータベース602の従来のリレーショナル構造に記憶される。
【0059】
図7は例として情報の流れのシーケンスを示す。ユーザは注文をERPシステム700に入力し、この注文はライブキャッシュサーバ704に伝送され702る。ここでルールベースのATP機能706(格納されている可能な手続きの例)が、その製品が搬送可能であるか否かをチェックする。可能でなければ708、製品プランニング機能部710(格納されていて可能な手続きの別の例)がプランニング注文712を作成し、これをERPシステム700に戻し送信し、ここでそれが実行される。
【0060】
図8は、本発明によるライブキャッシュアプリケーションの詳細な図である。メインメモリ800はライブキャッシュアプリケーションを含む。ライブキャッシュアプリケーションはOMS802,SQLクラス804,OMSベース806,SQLベース、そしてデータログ810からなる。ここでSQLベースはB*ツリー808を含み、データログはOMS並びにSQLベースのトランザクションマネージメント機能を記録する。メモリはまたリレーショナルデータ記憶機構812並びにオブジェクトデータ記憶機構814を含む。COMオブジェクトはレジスタ816に登録され、COMメモリコンテナ818に記憶される。タイプ・ライブラリー820は、COMオブジェクトが入力パラメータに対して提供したインタフェースについての情報を維持する。インタフェース822は、記憶された手続きを呼び出し、入力パラメータを供給する手段である。
【0061】
記憶された手続きは、COMメモリコンテナ818に記憶されたCOMオブジェクトの方法として実現される。本発明によりユーザは、プログラミング言語の持続的クラス、例えばC++クラスを形成することができる。このクラスはオブジェクトクラスであり、OMS802に記憶することができる。オブジェクトクラスは、リレーショナルデータを記憶するため、オブジェクト指向の最適化されたデータ構造であり、このリレーショナルデータはメインERPデータベースからインポートされる。最適化されたデータ構造は言い替えれば、メインERPデータベースからインポートされたデータである。このデータ構造に従いオブジェクトとして記憶されたデータは、オブジェクトクラスの例である。図9は、最適化されたデータ構造の例を示す。有利な実施例では、最適化されたデータ構造は、3/3/98出願のUS特許願09/33840に参照されており、本発明と共に使用するのに適する。図9は、製品注文900を示し、これはオブジェクトとしてオブジェクトデータメモリ814に記憶され、アクティビティのネットワークからなる。このネットワークは第1のアクティビティ902と、中間のアクティビティ906を備える最後のアクティビティ904を有する。第1_入力インタフェース_ノード908があり、このノードで入力パラメータが作成される。さらに第1_出力インターフェース_ノード910があり、このノードは製品注文900の結果を送出する。それらの間のアクティビティおよびリンクはERPデータベースサーバ602に、伝統的なリレーショナルフォーマットでテーブルに記憶される。この伝統的リレーショナルデータ1000はライブキャッシュサーバに伝送され、最適化されたデータ構造1002にマッピングされる。それらの例が図10に示されている。ここの個々の製品注文は相互にリンクされており、図11で説明する注文ネットを形成する。図12は、図9,10に示されたモデルにマッピングすることのできるシナリオの例を示す。ネットワーク1200は3つの層からなる。すなわち、マシーン1202,分配センタ1204および顧客要求1206である。これらオブジェクト指向のデータモデルはメインメモリ800(図8参照)のオブジェクトメモリコンテナ814に記憶される。これらのデータモデルは、データアクセスを促進し、これらのおける機能の高速実行を可能にする。複数のクラスがこのネットワーク内に存在することができる。1つのクラスのオブジェクトから別のクラスのオブジェクトへの参照も存在することができる。各記憶された手続きは所定のオブジェクトクラスに配属され、これらオブジェクトクラスの例でだけ動作する。しかし各オブジェクトクラスは2つ以上の記憶された手続きを有することができる。記憶された手続きは例えばC++で記述され、下に説明するようにCOMオブジェクト上の方法として実現される。
【0062】
ライブキャッシュを実現するために選択された方法は、既存のORDBMSで使用されるアプローチとは異なる。これら従来の方法では、扁平なデータ構造(テーブル)が複雑なデータタイプによって改善されていた。このシステムでのデータへのアクセスは専らSQLによって行われるから、ローカルSQL実現が、複雑なデータへのアクセスを可能にする言語構造によって拡張された。したがって、ネット状の構造1200を図12に示すように、リレーショナルなパターン(テーブル)にシフトしなければならない。本発明では、リレーショナル環境とオブジェクト指向環境のデータモデル化は別個のままである。SQLをモデル化と、リレーショナル環境での動作に使用することができる。一方、ライブキャッシュクラス(例えばC++クラスのフォーマット)がモデル化と、オブジェクト指向環境での動作のために存在する。複雑なオブジェクトは別個のメモリコンテナ814に記憶され、これはリレーショナルなデータベース記憶構造816とは区別される。
【0063】
ユーザは前記のオブジェクトクラスを、上に持続的C++クラスとして説明したように定義する。このような定義は、OMS802のC++でのオブジェクトマネージメント機能により行われる。これは例えば、機能CREATEまたはSTOREである。OMS802によりサポートされたオペレーションには以下のものがある:記憶されたオブジェクトの呼び出し、記憶されたオブジェクトの置換、記憶されたオブジェクトの追加、記憶されたオブジェクトの除去、新たなタイプの形成、そして存在するタイプおよびそのタイプの全ての例の破壊である。オブジェクト指向データの形成および操作に使用される全ての機能を含むOMSクラスがある。オブジェクトクラスが定義された後、このオブジェクトクラスを基礎としてモデル化された全てのリレーショナルデータが、永続的C++クラスの例としてオブジェクトメモリコンテナ814に記憶される。OMSベース816はこれらオブジェクトの記憶を管理する。
【0064】
図13は、OMSアーキテクチュアの概略図である。OMS1300はOMSベース1302と接続されており、このOMSベースはデータキャッシュ1304と接続されている。これは802として示されたOMSと同じである。プライベートなOMSキャッシュ1306は、処理が実行されるメモリアドレスである。各プライベートOMSキャッシュ1306には固定的に所定のユーザセッションに割り当てられる。複数のユーザがライブキャッシュシステムにアクセスするとき、彼らには固有のプライベートOMSキャッシュ1306が割り当てられ、その要求を処理することができる。さらに複数のユーザは、各ユーザセッションに対して実行される記憶された手続きのうち固有の別個の例を有する。記憶された手続きには、OMSのオブジェクトマネージメント方法に対する呼び出しが含まれる。C++方法1308は、OMS130ともプライベートOMSキャッシュ1306とも接続されている。オブジェクトマネージメント方法は、オブジェクトデータをプライベートOMSキャッシュへ呼び出す。データがすでにプライベートOMSキャッシュに存在する場合にはこのステップはバイパスされる。
【0065】
OMSベース1302の機能性を以下に説明する。このOMSベースは公知の記憶技術を使用し、これを以下簡単に説明する。図14に示すように、OMSベース806は各オブジェクトクラスに対するページチェーンからなる。これは、データキャッシュ1304とプライベートOMSキャッシュ1302との間の全ての入/出力オペレーションを行うコンポーネントであり、その物理的メモリアドレスを管理する。オブジェクトデータはオブジェクトメモリコンテナ814のページに記憶される。例えばOMS1300が所定の特別データオブジェクトを所定のページpで呼び出すよう要求すると(図15参照)、OMSベースはこのページpがメインメモリのどこにあるかを正確に知らなければならない。しかしOMSベース1302のユーザ、OMS1300はこの情報を知る必要はない。その代わりにOMSはメモリを単に、それぞれが固定の大きさのページ集合からなるページセットの論理的集合であるとみなす。各ページチェーンは、オブジェクトクラスにしたがって記憶されたオブジェクトの所定のセットに相応する。図14は、OMSベースの記憶アーキテクチュアを示す。クラスa1400は、オブジェクトクラスにより定義される所定の最適データ構造に相応する。クラスa1400はさらにコンテナa1、1402とa2、1404とに分割され、これらはさらに個々のページチェーンa1.1、1406,a1.2、1408,a1.3、1410およびa1.4、1412、並びにa2.1、1414,a2.2、1416,a2.3、1418およびa2.4、1420からそれぞれなる。各ページはさらに、メモリ内で一義的なページ番号により識別される。種々のページセットは結合されてない(すなわち共通のページはない)。ページ番号と物理的メモリアドレスとのマッピングはOMSベース1302により理解され、維持される。
【0066】
OMSはOMSベース1302を次のように使用する。すなわち、ユーザがメモリを記憶されたオブジェクトの集合と見なすように使用する。各ページは、記憶されたオブジェクト1504の1つまたは複数を含む。各記憶されたオブジェクト1504はオブジェクト識別子(OID)により識別される。OIDはページ番号1502およびこのページに対して一義的な所定値からなり、これはこの実施例ではページオフセット1504である。持続的オブジェクト、例えばC++オブジェクトのOIDは、相応するデータエレメント(全体長8バイト:ページ番号4バイト:スロット番号2バイト:クラスID1バイト:そしてバージョン1バイト)に対するページアドレスを含む。内部ページオフセットは、スロット位置および固定のデータエレメント長から計算することができる。OIDは物理的オブジェクトアドレスを含まず、論理的オブジェクトアドレスを含む。有利な実施例のOID1600が図16に示されている。このOIDは、データページ番号1602,データページオフセット1604,クラスID1606,およびバージョン1608からなる。データページ番号1602は、ハッシュ法でデータキャッシュアドレスに参照されるオブジェクトのデータページに関連する。データページオフセット1604は、データページでのオブジェクトのオフセットである。クラスIDは、どの所定のクラスにオブジェクトが所属するかを識別する。アプリケーションは常に、OIDをオブジェクトへの有効なアクセスを得るために使用する。
【0067】
以下、図17に示されたライブキャッシュ記憶機構の簡単な実施例を説明する。まず、データベースにはデータが何もないと仮定する。1つのページセット、すなわち4ページ1702〜1708を全てディスク上に含む空き空間ページセットが存在するだけである。これらのページには1つずつシーケンシャルに通し番号が付され、5つのオブジェクトが1つのページに適合するとする。有利な実施例では、各ページが複数のオブジェクトを導く。例えば10の供給者オブジェクト1710〜1730を記憶したいとする。OMSはクラスを登録し、これによりオブジェクトコンテナ1716を形成する。まず最初に、OMSは「供給者オブジェクトページ番号」1714を供給者オブジェクトに対して形成することを要求する。これはハッシュキーを備えたクラスを登録する。クラスの新たな例が相応のOIDと共に形成される。OMSベースは、最初の2ページ1702,1704を空き空間ページセットから除去し、これらを「供給者オブジェクトページセット」としてラベリングする。10の供給者オブジェクト1710〜1730が2つのページに記憶される。この状況でOMSが新たな供給者オブジェクトを挿入すると、OMSベースは第1の空きページを空き空間ページセットから見出し、これを「供給者オブジェクトページセット」に追加する。OMSが記憶されたオブジェクトを消去すれば、OMSベースはこの空間を使用可としてマークする(ページのフラグ消去)。そしてこの空間は使用可能な空間のチェーンで使用可能と記録される。ページ上の全てのオブジェクトが消去されたなら、このページをページマネージメントにさらに供給することができる。
【0068】
挿入は第1の空きオブジェクトフレームで行われる。空きのオブジェクトフレームを含むページのチェーンが存在する。空きオブジェクトフレームを有するページはいずれもがこのチェーンの一部である。アップデートは付加的なメモリを必要とせず、したがってメモリ内部からの過負荷を引き起こさない。新たな挿入はまず、消去されたデータエレメントの位置を使用し、次にコンテナ端部の空間を要求し、そして最後に新たなページを要求する。オプションとしてタイプに対し、新たな登録は端部にだけ挿入できると定義することができる。この場合、消去された登録からの空間は再使用されない。完全に空きのページはチェーンから除去され、空き空間ページ集合に戻される。
【0069】
所定のページ集合におけるページの論理的シーケンスは、物理的隣接性によってではなく、図18に示すポインタにより指示しなければならない。この図にはページのシーケンスが示されている。各ページはページヘッダ1800、すなわち制御情報の集合を含む。これら制御情報には、論理シーケンスでこのページに直接続くページのメモリアドレスが含まれる。ページヘッダ1800を備えるページは、ページヘッダ1802を備える論理的に次のページに物理的に隣接してはならない。ページヘッダはOMSベースにより管理され、これによりOMS自体にとっては不可視である。オブジェクトだけがOMSにとって可視である。
【0070】
要約すると、OMSベースはページマネージメントを永続的オブジェクトコンテナに対して提供する。これは固定サイズのデータページのダブルリンクチェーンからなる。シングルクラスも複数のコンテナからなることもできる。このシングルクラスはクラス属性によってパーティションすることができる。クラス1606はまたコンテナidを含み、これはOMSにどのコンテナにオブジェクトが存在するかを通知する。オブジェクトは固定長のオブジェクトフレーム(データエレメント)に記憶される。なぜならクラスの全ての例、例えばC++クラスの例は全て同じ大きさを有するからである。これは一定のオブジェクト状態へのアクセスをログを介して提供する。オブジェクトフレームは再使用される。空きのオブジェクトフレームは別個の空きチェーンに保持される。最大のオブジェクト長はデータページの大きさにより制限される。
【0071】
上に述べた最適データ構造を使用する有利な実施例では、各オブジェクト例に対するOIDが伝統的なリレーショナルフォーマットで記憶される。図19は、OIDを記憶するためのリレーショナルテーブル構造を示す。注文番号1900からなるキー値列がある。別の列1904〜1910にはオブジェクト属性を記憶することができる。OID1902は注文オブジェクト1904を指示し、この注文オブジェクトはオブジェクトメモリコンテナ814(図8参照)に記憶されている。ユーザが注文オブジェクト1912内のアクティビティにアクセスしたい場合、付加的テーブル914を設けることができる。この付加的テーブルは、OIDを備える第1の列1916,オペレーション番号を備える第2の列1918,別の注文番号を備える第3の列1920,そしてアクティビティ1922へのポインタからなる。いったんリレーショナルデータが最適データ構造にマッピングされ、オブジェクトとしてOMS802を介してオブジェクトメモリコンテナ804に記憶され、そして記憶された手続きをCOMオブジェクトコンテナに記憶し、レジスタデータベースに登録したなら、ユーザはライブキャッシュシステムをデータ処理のために問い合わせることができる。データの問い合わせは記憶された手続きにより行われ、これによりオブジェクトマネージメント方法を呼び出すことができる。
【0072】
図20は本発明の別の概観を示す。アプリケーション2000,2002,2004がライブキャッシュを、その相応のプライベートセッション2006,2008,2010により記憶された手続きを通して問い合わせる。この問い合わせは、SQL層2012で解釈され、COMオブジェクト2014の相応する方法、並びにデータ2016をデータ層2018からOMS層2020を介して呼び出す。記憶された手続きは、プライベートOMSキャッシュの一部であるデータにアクセスし、したがってOMSではデータをデータキャシュからプライベートOMSキャッシュに呼び出す。アプリケーションは、ライブキャッシュ機能性をSQLにより、記憶された手続きの呼び出しによって呼び出す。例えばプログラミング言語C++で記述されたCOMオブジェクトはOMS層により相応のプライベートOMSキャッシュへ次のようにリンクされる。すなわちデータ伝送がアドレス空間間で行われないようにリンクされる。図21に示すように、アプリケーションプログラム2102がアプリケーションサーバ2100内でSQL問い合わせ2104を発行し、このSQL問い合わせは機能をCOMオブジェクトメモリから呼び出す。このCOMオブジェクトメモリで機能は、この所定のアプリケーションプログラム2102に割り当てられたプライベートOMSキャッシュにダイナミックにリンクされている。このSQL問い合わせは記憶された手続きに対する呼び出しを含む。この記憶された手続きはCOMオブジェクトの方法として記憶されている。オブジェクトデータは記憶された手続きから呼び出される。SQL問い合わせは、有利な実施例では2つの部分からなる。記憶された手続きは呼び出され、ダイナミックにライブキャッシュカーネルにリンクされる。ダイナミックリンクにより、データでのオペレーションがコストの掛かるアドレス空間切り換えなしで可能である。プライベートOMSキャッシュは、COMオブジェクトの例の一部である。COMオブジェクトは、プライベートOMSキャッシュが存在する環境である。問い合わせは、処理に必要なオブジェクトの所定セットを含む。問い合わせはデータオブジェクトを所定の参照、例えば製品注文番号900により呼び出す。この番号が発見され、相応のOIDがテーブル2104に見出される。OIDは次に物理的メモリアドレスにマッピングされる。この時点で、オブジェクトのコピーは、その所属の記憶された手続きが使用可能であるのと同じアドレス空間で使用可能となる。機能に入力すべきパラメータデータタイプは例えばスカラーC++データタイプ(int, float, char, arrays 等)フラット構造または内部ABAPテーブルである。
【0073】
ライブキャシュサーバが所定のオブジェクトを記憶、呼び出し、または表示する速度を上昇させるため、サーバは1つまたは複数のデータベースインデクスをテーブルに保存する。通常はBツリー構造として保存されるデータベースインデクスにより、データエレメントを多種多様に、とりわけユーザの必要性に依存して編成することができる。インデクスは、インデクスキー値を一義的なデータエレメント番号と共に記憶するファイルとして構成することができる。後者は、データエレメントの1つまたは複数のフィールドからなるデータ量である。この値は、データバンクファイル−データエレメントを所定の所望の順序(インデクス表現)により(論理的に)配列するため使用される。後者は、データベースファイルにおける各データエレメントの実際の記憶場所に対する一義的なポインタまたは識別子である。両者を参照することにより、内部システムによってデータベースファイルにあるデータエレメントが見出され、表示される。これらのツリーは、図8に示されたSQLベース808に記憶される。別の手段では、持続的クラス、例えばC++クラスにハッシュキーを割り当てる。このようにしてOMSは、キーの変換に対するハッシュインデクスをOIDに提供することができる。このようにしてキーまたはOIDを介して自分のオブジェクトを参照することができる。
【0074】
OMSキャッシュは、プライベートキャッシュをセッション固有の持続的オブジェクトに対して提供する。OIDは、オブジェクトの存在するキャッシュアドレスにマッピングされる。オブジェクトへの第1のアクセスはOMSベースを介して行われる。この時点でオブジェクトコピーがプライベートキャッシュに配置される。後続のアクセスはプライベートキャッシュ内のオブジェクトコピーを使用する。この使用は、プライベートキャッシュにあるメモリアドレスへのOIDをハッシュ法により参照することにより行われる。
【0075】
オブジェクトデータをメモリからOMSおよびOMSベースにより上に説明した機構を介して呼び出す場合、有利な実施例はさらにトランザクションマネージメントを提供する。このトランザクションマネージメントは、例えばリレーショナルモデルでオブジェクトマネージメントシステム(OMS)により使用されたものと同じである。このようなマネージメントは従来技術から公知であるが、以下に有利な実施例で簡単に説明する。
【0076】
トランザクションとは論理的処理ユニットである。トランザクションが2つのアップデートからなる場合、一方のアップデートを実行し、他方を実行しないことは許されない。なぜならこのことは、データベースに不一致状態を引き起こすからである。この最小単位を提供するシステムコンポーネントはオブジェクトマネージメントシステムであり、伝統的システムにおけるトランザクションマネージャと同価である。OMSは2つの整数演算、COMMITとROLLBACKを有する。
【0077】
トランザクションCOMMITは成功したトランザクション終了を通知する。このCOMMITはOMSに、論理的処理ユニットが成功裏に終了し、データベースに再び一致状態が存在し、この処理ユニットにより実行された全てのアップデートを引き渡すことができるか、または永続的なものにできることを通知する。トランザクションROLLBACKは失敗したトランザクション終了を通知する。このROLLBACKはトランザクションマネージャに、エラーが発生し、データベースに不一致状態の存在する可能性があり、論理処理ユニットによりこれまで実行された全てのアップデートをロールバックしなければならないか、または取り消さなければならないことを通知する。両者のアップデートの一方にエラーが発生すれば、ROLLBACKが出力され、これまでの変更全てが取り消される。OMSは、上に図8で示したようにログ810を記憶媒体、例えばメモリディスクに保存する。メモリディスクには、全てのアップデートオペレーションの詳細、とりわけ更新されたオブジェクトの前の値と後の値が記録される。したがって所定のアップデートを取り消すことが必要な場合には、OMSは相応のログエントリーを用いて、更新されたオブジェクトをその前の値に戻すことができる。
【0078】
トランザクションは、指示「トランザクション開始」の実行により開始され、COMMIT指示またはROLLBACK指示の実行により終了する。COMMITは引き渡しを確定する。引き渡し時点は論理的処理ユニットの終了時に相当する。これに対してROLLBACKはデータベースを、BEGINの時点の状態に戻す。引き渡し時点が確定したなら、先行の引き渡し時点からの全ての変更が永続的なものにされる。トランザクションが成功したなら、OMSはアップデートをやはり永続的なものとしてデータベースに格納することを、システムが直ちにクラッシュした場合であっても保証する。OMSシステムの再スタート手続きはこのアップデートをデータベースにインストールする。再スタート手続きは、書き込むべき値をログでの該当する登録の検査により発見することができる。
【0079】
有利な実施例のOMSは複数のアクセス法を有する。“Deref Object”はオブジェクトをOMSキャッシュ点に参照する。“Deref Object by key”はオブジェクトをハッシュインデクスについての参照と共にOMSキャッシュにコピーする。“Scan object”は次のオブジェクトをオブジェクトコンテナから戻す。“Lock object”はオブジェクトを施錠する。“Refresh object”は場合によりオブジェクトの最新の状態をOMSキャッシュにコピーする。“Release object”はオブジェクトをOMSキャッシュから消去する。
【0080】
セッションマネージメントのオペレーションは例えばC++クラスの方法として実現される。有利な実施例ではトランザクションモードに3つの形式がある。暗黙動作モードでは、施錠が暗黙的に要求され、OMSはプライベートキャッシュへのオブジェクトコピーをロックする。楽観的動作モードでは、“Deref object”は一定の見解を使用する。さらにオペレーション、ロックと格納がプライベートキャッシュレベルで制限され、ライブキャッシュデータの変更が行われない。悲観的動作モードでは、“Deref Object”は相変わらず一定の見解を使用する。しかしオペレーション、ロックと格納は共通に使用されるオブジェクトに直接作用しない。一定の見解では、完全なオブジェクトデータが“仮想的に”トランザクションの開始時に凍結される(primsh、17)。
【0081】
図22は上に説明したトランザクションマネージメントの例である。トランザクションT1,2200がオブジェクトA2202を要求すると、これがロックされる2204。処理の終了後にオブジェクトA2202は再び記憶される2206。記憶機能が終了すると、トランザクションは引き渡される2208。トランザクションT2,2210はオブジェクトB2212とオブジェクトC2214の処理を要求する。両者は処理中、ロックされる2216,2218。前記の処理後に両者は記憶される2220,2222。そしてトランザクションが引き渡される2224。
【0082】
トランザクションT3,2226はオブジェクトA2202、オブジェクトB2212およびオブジェクトC2214の処理を要求する。しかしこれはトランザクションT2が引き渡される前に開始するから、この処理はBとCの古いイメージにより行わなければならない2228。この処理はA2230の最後のイメージにより実行することができる。ログ810が図23に示されている。従来技術で公知であるトランザクションマネージメントテーブル2300が示されている。ログファイル2303は、古いオブジェクトイメージ2304も、新しいオブジェクトイメージ2206もトランザクションが引き渡されるまで記憶する。
【0083】
システムはさらに、ライブキャッシュシステムの初期母集団にしたがってデータ同期することができる。データをメインERPデータベース702からライブキャッシュサーバ706へ、ライブキャッシュのアクティブ化に基づき初期伝送した後、データはライブキャッシュに更新されて保持される。これはメインERPデータベースのデータを反映するためである。トランザクションがERPシステム700に発生する間、このトランザクションはERPデータベース702に書き込まれ、在庫レベルの変更およびリソース使用可能性の変更を各トランザクション後に反映するようにする。これらのデータ変更は同時にライブキャッシュサーバのメインメモリに保存されたデータでも例えばOMSのC++機能を介して行われる。
【0084】
最初に、図24のステップ1,2400に示すようにデータがDBサーバ2402からERPソフトウエア2404によりユーザサーバ2406を通ってライブキャッシュサーバ2408に伝送され、そこで最適データ構造2411へ伝送される。図25に示されたステップ2,2500は、ライブキャッシュサーバ2502からERPソフトウエア2504への、そしてDBサーバ2506への2つのデータ流を示す。このデータ流は、ライブキャッシュシステムがアプリケーションサーバの要求の応じて実行すべきプランを形成するときに発生する。最後に図26に示されたステップ3,2600はどのようにデータをライブキャッシュサーバ2602で、トランザクションがERPソフトウエア2604により処理される間に更新し続けるかを示す。上に述べたように、ライブキャッシュのデータは上書きされ、これにより必要メモリが最小になる。
【図面の簡単な説明】
【図1】 図1は、本発明を提供するのに適した環境の概略図である。
【図2】 図2は、従来技術の概略図である。
【図3】 図3は、本発明を実現することのできるコンピュータシステムの概略図である。
【図4】 図4は、図3のコンピュータシステムの動作を制御するためのソフトウエアサブシステムを示すブロック回路図である。
【図5】 図5は、本発明が有利に実現されるクライアント/サーバシステムのブロック回路図である。
【図6】 図6は、本発明の有利な実現例を概略図である。
【図7】 図7は、本発明の有利な実施例で開始される例としてのトランザクションの概略図である。
【図8】 図8は、本発明の有利な実施例の構造概略図である。
【図9】 図9は、本発明でUDTと定義することのできる例として最適データ構造の構造概略図である。
【図10】 図10は、オブジェクト指向モデルへの関係からデータをマッピングする概略図である。
【図11】 図11は、図9の再提起データ構造により構成されたプラニングモデルの例を示す概略図である。
【図12】 図12は、オブジェクト指向のデータモデル化に適する分散ネットワークの概略図である。
【図13】 図13は、オブジェクトマネージメントシステムの構造の概略図である。
【図14】 図14は、OMSバンクでのオブジェクトデータ記憶の構造の概略図である。
【図15】 図15は、データオブジェクトが記憶されたページメモリレイアウトの概略図である。
【図16】 図16は、有利な実施例でのオブジェクト識別子の構造の概略図である。
【図17】 図17は、本発明によるメインメモリのページメモリレイアウトのオブジェクト記憶を示す概略図である。
【図18】 図18は、本発明によるページメモリレイアウトでのページシーケンスを示す概略図である。
【図19】 図19は、本発明で使用するのに適する最適データモデルのOIDを示す概略図である。
【図20】 図20は、アプリケーションオブジェクトとライブキャッシュサーバとの間のインターフェースを示す概略図である。
【図21】 図21は、機能およびオブジェクトデータを呼び出すためのライブキャッシュサーバでのSQL問い合わせの発行方法を示す。
【図22】 図22は、本発明のトランザクションマネージメントシステムの概略図である。
【図23】 図23は、本発明のトランザクションマネージメントシステムに対するログを示す。
【図24】 図24は、本発明のデータ同期手段のステップ1を示す。
【図25】 図25は、本発明のデータ同期手段のステップ2を示す。
【図26】 図26は、本発明のデータ同期手段のステップ3を示す。
【符号の説明】
200 ハードディスク
202 DBサーババッファ
204 アプリケーションサーババッファを有するアプリケーションサーバ、データベースサーバ
302 中央プロセッサ
304 メインメモリ
306 入/出力制御部
308 キーボード
310 ポインティングデバイス
312 スクリーンディスプレイ
314 大容量記憶装置
402 オペレーティングシステム
404 シェル
406 ユーザインタフェース、ユーザ
408 RDBMSクライアント、アプリケーションプログラム
502 クライアント
504 ライブキャッシュサーバ
506 ネットワーク
508 PCまたは端末機
600,606 アプリケーションサーバ
602 DBサーバ
702 ATP要求
704 ライブキャッシュサーバ
712 計画された注文
800 命令分析器
804 SQLクラス、方法埋め込みのためのフレーム
806 OMSベース、ページチェーン
808 SQLベース
810 ログ
812 SQLデータ
814 オブジェクトデータ
816 レジストリ
818 COMオブジェクト(DLL)
820 タイプライブラリ
822 R/3コアのライブキャッシュインタフェース
900 製品注文、レジェンド、アクティビティ製品材料、アクティビティ消費材料、アクティビティ消費および製品材料、アクティビティ消費または製造されない材料
902 第1のアクティビティ
908 第1の入力、インタフェースノード
1000 BOM、ルーティング、リレーショナルモデル、調整可能
1002 オブジェクトモデル
1202 マシーン、搬送注文、製品注文
1204 分配センタ
1206 顧客要求
1302 OMSベース(ページチェーン)
1304 データキャッシュ
1306 プライベートOMSキャッシュ
1400 クラスa
1402 クラスa1
1404 クラスa2
1500 ページp
1502 ページ番号
1504 ページ終了部からのオフセット
1504 オブジェクト
1602 データページ番号(データキャシュアドレスへのハッシュ参照によるオブジェクトのデータページへの参照)
1604 データページオフセット(データページ上でのオブジェクトのオフセットと共に)
1606 クラスID(オブジェクトが所属するクラス)
1608 バージョン(オブジェクトフレームの再使用を可能にする)
1702 5つのオブジェクト
1912 注文
2000 アプリケーション1(プログラミング言語ABAP/4)
2002 アプリケーション2(プログラミング言語:C)
2004 アプリケーション3(プログラミング言語:C++)
2006 セッション1
2008 セッション2,セッション3
2010 セッション4
2014 COMオブジェクト
2018 データ
2020 ライブキャッシュマネージメントシステム
2100 アプリケーションサーバ
2102 ABAPアプリケーションプログラム
2104 最適化された方法コーディングにより実行される手続き“Schedule_order”、Schedule_order
2202 オブジェクトA
2204 Aのロック
2206 Aの格納
2208 Aの引き渡し
2212 オブジェクトB、トランザクション実行
2214 オブジェクトC
2216 Bのロック
2218 Cのロック
2220 B、Cの格納
2222 Cの格納
2224 トランザクション実行
2228 Bの古いイメージ、Cの古いイメージ
2230 Aの新しいイメージ
2300 トランザクションマネージメント
2304 古いオブジェクトイメージ
2306 新しいオブジェクトイメージ、T1−一定の読み出し、s ロックされた、オブジェクト本体
2400 APO母集団
2402 DBサーバ
2404 アプリケーションサーバ
2406 アプリケーションサーバ
2410 データ構成、最適化された
2504,2508 アプリケーションサーバ
2506 DBサーバ
2600 オペレーション変更
2604 アプリケーションサーバ
2506 DBサーバ

Claims (28)

  1. データベースマネージメントシステムのデータオブジェクトで少なくとも1つの、記憶された手続きを記憶および実行するための方法において、
    a)オブジェクト指向で最適化された少なくとも1つのデータ構造を、オブジェクト指向のプログラミング言語の永続的クラスとして前記のデータベースマネージメントシステムで定義し、
    b)リレーショナルなデータを前記のオブジェクト指向で最適化された少なくとも1つのデータ構造にマッピングし、
    c)前記のリレーショナルなデータを、前記永続的クラスに所属する前記データオブジェクトとして記憶し、
    d)前記データオブジェクトを物理的メモリに記憶し、
    e)前記データオブジェクトに対して一義的であるオブジェクト識別子を形成し、
    f)前記オブジェクト識別子をSQLテーブルに記憶し、
    g)前記少なくとも1つの記憶された手続きを、COMオブジェクトコンテナに記憶されたCOMオブジェクト定義し、
    h)前記少なくとも1つの記憶された手続きを、アプリケーションプログラムにより提供されるSQL問い合わせにより呼び出し、
    i)複数の入力パラメータを前記少なくとも1つの記憶された手続きに対して提供し、
    j)前記データベースマネージメントシステムをアドレス空間で実行し、
    k)前記少なくとも1つの記憶された手続きを、前記データベースマネージメントシステムが実行されるアドレス空間にダイナミックにリンクし、
    l)前記データオブジェクトのコピーを前記アドレス空間で作成し、
    m)前記少なくとも1つの記憶された手続きを前記データオブジェクトで実行する、
    ことを特徴とする方法。
  2. 前記データベースマネージメントシステムも前記データオブジェクトも共にコンピュータシステムのメインメモリに記憶する、請求項1記載の方法。
  3. データベースマネージメントシステムのデータオブジェクトで、少なくとも1つの記憶された手続きを記憶および実行するためのシステムにおいて、
    a)オブジェクト指向で最適化されたデータ構造を、オブジェクト指向のプログラムイング言語の永続的クラスとして前記データベースマネージメントシステムに定義するための手段と、
    b)リレーショナルなデータを前記オブジェクト指向で最適化された少なくとも1つのデータ構造にマッピングするための手段と、
    c)前記のリレーショナルなデータを、前記永続的クラスに所属する前記データオブジェクトとして記憶するための手段と、
    d)前記データオブジェクトを物理的メモリに記憶するための手段と、
    e)前記データオブジェクトに対して一義的であるオブジェクト識別子を形成するための手段と、
    f)前記オブジェクト識別子をSQLテーブルに記憶するための手段と、
    g)前記少なくとも1つの記憶された手続きを、COMオブジェクトコンテナに記憶されたCOMオブジェクト定義するための手段と、
    h)前記少なくとも1つの記憶された手続きを、アプリケーションプログラムにより提供されるSQL問い合わせにより呼び出すための手段と、
    i)複数の入力パラメータを前記少なくとも1つの記憶された手続きに対して提供するための手段と、
    j)前記データベースマネージメントシステムをアドレス空間で実行するための手段と、
    k)前記少なくとも1つの記憶された手続きを、前記データベースマネージメントシステムが実行されるアドレス空間にダイナミックにリンクするための手段と、
    l)前記データオブジェクトのコピーを前記アドレス空間で作成するための手段と、
    m)前記少なくとも1つの記憶された手続きを前記データオブジェクトで実行するための手段と
    を有することを特徴とするシステム。
  4. 前記データベースマネージメントシステムも前記データオブジェクトも共にコンピュータシステムのメインメモリに記憶されている、請求項3記載のシステム。
  5. 前記オブジェクト指向のプログラミング言語はC++である、請求項2記載の方法。
  6. a)前記リレーショナルなデータをデータキャッシュに記憶し、
    b)オブジェクトマネージメントシステムを、C++機能の実行のために提供し、
    c)前記データオブジェクトの記憶を、オブジェクトマネージメントシステムベースにより管理し、
    d)プライベートオブジェクトマネージメントキャッシュを、前記少なくとも1つの記憶された手続きを実行するために提供する、請求項5記載の方法。
  7. a)前記プライベートオブジェクトマネージメントキャッシュを、複数のユーザのそれぞれに割り当て、
    b)前記少なくとも1つの記憶された手続きの別の例を、前記プライベートオブジェクトマネージメントキャッシュにおいて前記複数のユーザのそれぞれに対して提供し、
    c)前記データオブジェクトの別の例を、前記複数のユーザのそれぞれに対して前記プライベートオブジェクトマネージメントキャッシュに提供し、
    d)前記少なくとも1つの記憶された手続きの前記別の例を、前記データオブジェクトの前記別の例で実行する、請求項6記載の方法。
  8. 前記データオブジェクトの記憶を管理する際にさらに:
    a)前記永続的なクラスに相応する複数のページを含むページチェーンを作成し、
    b)前記データオブジェクトを前記複数のページに記憶し、
    c)ページ番号と、該ページ番号に対して一義的な値とを有するテーブルを作成し、ここで前記ページ番号は前記データオブジェクトに対して一義的である前記オブジェクト識別子に相当し、
    d)前記データオブジェクトの要求をユーザインタフェースから受信し、
    e)前記オブジェクト識別子を、前記データオブジェクトが記憶されている前記物理的メモリにマッピングし、
    f)前記データオブジェクトを呼び出す、請求項6記載の方法。
  9. 前記データオブジェクトの前記呼び出しを容易にするため、データベースインデクスを作成する、請求項8記載の方法。
  10. データベースインデクスはBツリーデータ構造である、請求項9記載の方法。
  11. a)前記少なくとも1つの記憶された手続きの実行を管理し、
    b)前記少なくとも1つの記憶された手続きの実行が終了した後、トランザクションの引き渡しを実行し、
    c)前記少なくとも1つの記憶された手続きの実行が終了しないままである場合、ロールバック・トランザクションを実行し、
    d)前記トランザクションの引き渡しと、ロールバック・トランザクションとを前記データベースマネージメントシステムのログに記録し、
    e)前記データオブジェクトの状態を、前記少なくとも1つの記憶された手続きの実行前に記録し、
    f)前記データオブジェクトの前記状態を、前記少なくとも1つの記憶された手続きの実行前であって、前記ロールバック・トランザクションの記録後に呼び出す、請求項5記載の方法。
  12. 前記オブジェクト指向のプログラミング言語はC++である請求項4記載のシステム。
  13. a)C++機能を実行するための手段と、
    b)前記データオブジェクトの記憶を管理するための手段と、
    c)プライベートオブジェクトマネージメントキャッシュを、前記少なくとも1つの記憶された手続きを実行するために提供する手段と
    を有する請求項12記載のシステム。
  14. a)前記プライベートなオブジェクトマネージメントキャッシュを複数のユーザのそれぞれに割り当てるための手段と、
    b)前記少なくとも1つの記憶された手続きの別の例を、前記プライベートオブジェクトマネージメントキャッシュにおいて前記複数のユーザのそれぞれに対して提供するための手段と、
    c)前記データオブジェクトの別の例を、前記プライベートオブジェクトマネージメントキャッシュにおいて前記複数のユーザのそれぞれに対して提供するための手段と、
    d)前記少なくとも1つの記憶された手続きの前記別の例を、前記データオブジェクトの前記別の例で実行するための手段と
    を有する請求項13記載のシステム。
  15. 前記データオブジェクトの記憶を管理するための前記手段はさらに、
    a)前記永続的なクラスに相応する複数のページを含むページチェーンを作成するための手段と、
    b)前記データオブジェクトを前記複数のページに記憶するための手段と、
    c)ページ番号と、該ページ番号に対して一義的な値とを有するテーブルを作成するための手段と、ここで前記ページ番号は前記データオブジェクトに対して一義的である前記オブジェクト識別子に相当し、
    d)前記データオブジェクトの要求をユーザインタフェースから受信するための手段と、
    e)前記オブジェクト識別子を、前記データオブジェクトが記憶されている前記物理的メモリにマッピングするための手段と、
    f)前記データオブジェクトを呼び出すための手段と
    を有する請求項13記載のシステム。
  16. 前記データオブジェクトの呼び出しを容易にするため、データベースにインデクス作成するための手段を有する、請求項15記載のシステム。
  17. 前記データベースにインデクス作成するための手段は、Bツリーデータ構造である、請求項16記載のシステム。
  18. a)前記少なくとも1つの記憶された手続きの実行を管理するための手段と、
    b)前記少なくとも1つの記憶された手続きの実行が終了した後、トランザクションの引き渡しを実行するための手段と、
    c)前記少なくとも1つの記憶された手続きの実行が終了しないままである場合、ロールバック・トランザクションを実行するための手段と、
    d)前記トランザクションの引き渡しと、ロールバック・トランザクションとを前記データベースマネージメントシステムのログに記録するための手段と、
    e)前記データオブジェクトの状態を、前記少なくとも1つの記憶された手続きの実行前に記録するための手段と、
    f)前記データオブジェクトの前記状態を、前記少なくとも1つの記憶された手続きの実行前であって、前記ロールバック・トランザクションの記録後に呼び出すための手段と
    を有する請求項12記載のシステム。
  19. 少なくとも1つの記憶された手続きを、R/3システムのデータオブジェクトで記憶および実行するための方法において、
    a)オブジェクト指向で最適化された少なくとも1つのデータ構造を、オブジェクト指向のプログラミング言語のクラスとして前記R/3システムに定義し、
    b)前記R/3システムからのトランザクションデータを、オブジェクト指向で最適化された前記少なくとも1つのデータ構造にマッピングし、
    c)前記R/3システムからのトランザクションデータを、前記永続的クラスに所属するデータオブジェクトとして記憶し、
    d)前記データオブジェクトを物理的メモリに記憶し、
    e)前記データオブジェクトに対して一義的であるオブジェクト識別子を形成し、
    f)前記オブジェクト識別子をSQLテーブルに記憶し、
    g)前記少なくとも1つの記憶された手続きを、COMオブジェクトコンテナに記憶されているCOMオブジェクト定義し、
    h)前記少なくとも1つの記憶された手続きを、R/3システムにユーザインタフェースにより提供されるSQL問い合わせによって呼び出し、
    i)複数の入力パラメータを前記少なくとも1つの記憶された手続きに対して提供し、
    j)前記データベースマネージメントシステムをアドレス空間で実行し、
    k)前記少なくとも1つの記憶された手続きを、前記R/3システムのデータベースマネージメントシステムモジュールが実行されるアドレス空間へダイナミックにリンクし、
    l)前記データオブジェクトのコピーを前記アドレス空間に作成し、
    m)前記少なくとも1つの記憶された手続きを前記データオブジェクトで実行する、
    ことを特徴とするシステム。
  20. 複数の指示が記憶されたコンピュータ読み出し可能媒体であって、
    前記複数の指示は、プロセッサによる実行の際にプロセッサが以下のステップを実行するような指示を含む:
    a)オブジェクト指向で最適化されたデータ構造を、オブジェクト指向のプログラミング言語の永続的クラスとして前記データベースマネージメントシステムに定義するステップ;
    b)リレーショナルなデータを前記オブジェクト指向で最適化された少なくとも1つのデータ構造にマッピングするステップ;
    c)前記のリレーショナルなデータを、前記永続的クラスに所属する前記データオブジェクトとして記憶するステップ;
    d)前記データオブジェクトを物理的メモリに記憶するステップ;、
    e)前記データオブジェクトに対して一義的であるオブジェクト識別子を形成するステップ;
    f)前記オブジェクト識別子をSQLテーブルに記憶するステップ;
    g)前記少なくとも1つの記憶された手続きを、COMオブジェクトコンテナに記憶されたCOMオブジェクト定義するステップ;
    h)前記少なくとも1つの記憶された手続きを、アプリケーションプログラムにより提供されるSQL問い合わせにより呼び出すステップ;
    i)複数の入力パラメータを前記少なくとも1つの記憶された手続きに対して提供するステップ;
    j)前記データベースマネージメントシステムをアドレス空間で実行するステップ;
    k)前記少なくとも1つの記憶された手続きを、前記データベースマネージメントシステムが実行されるアドレス空間にダイナミックにリンクするステップ;
    l)前記データオブジェクトのコピーを前記アドレス空間で作成するステップ;
    m)前記少なくとも1つの記憶された手続きを前記データオブジェクトで実行するステップ;
    ことを特徴とするコンピュータ読み出し可能媒体。
  21. 前記複数の指示は、プロセッサによる実行の際に、プロセッサが前記データベースマネージメントシステムと前記データオブジェクトの記憶をコンピュータシステムのメインメモリで実行するような指示を含む、請求項20記載のコンピュータ読み出し可能媒体。
  22. 前記複数の指示は、プロセッサによる実行の際、プロセッサがC++を前記オブジェクト指向のプログラミング言語として提供するステップを実行するような指示を含む、請求項21記載のコンピュータ読み出し可能媒体。
  23. 前記複数の指示はさらに、プロセッサによる実行の際にプロセッサが以下のステップを実行するような指示を含む:
    a)前記リレーショナルなデータをデータキャッシュに記憶するステップ;
    b)オブジェクトマネージメントシステムをC++機能の実行のために提供するステップ;
    c)前記データオブジェクトの記憶をオブジェクトマネージメントシステムベースにより管理するステップ;
    d)プライベートオブジェクトマネージメントキャッシュを前記少なくとも1つの記憶された手続きの実行のために提供するステップ;
    請求項22記載のコンピュータ読み出し可能媒体。
  24. 前記複数の指示は、コンピュータによる実行の際に、プロセッサが以下のステップを実行するような指示を含む:
    a)前記プライベートオブジェクトマネージメントキャッシュを複数のユーザのそれぞれに割り当てるステップ;
    b)前記少なくとも1つの記憶された手続きの別の例を、前記プライベートオブジェクトマネージメントキャッシュにおいて前記複数のユーザのそれぞれに対して提供するステップ;
    c)前記データオブジェクトの別の例を、前記プライベートオブジェクトマネージメントキャッシュにおいて前記複数のユーザのそれぞれに対して提供するステップ;
    d)前記少なくとも1つの記憶された手続きの前記別の例を、前記データオブジェクトの前記別の例で実行するステップ;
    請求項23記載のコンピュータ読み出し可能媒体。
  25. 前記複数の指示は、コンピュータによる実行の際に、プロセッサが以下のステップを実行するような指示を含む:
    a)前記永続的なクラスに相応する複数のページを含むページチェーンを作成するステップ;
    b)前記データオブジェクトを前記複数のページに記憶するステップ;
    c)ページ番号と、該ページ番号に対して一義的な値とを有するテーブルを作成するステップ;
    ここで前記ページ番号は前記データオブジェクトに対して一義的である前記オブジェクト識別子に相当し、
    d)前記データオブジェクトの要求をユーザインタフェースから受信するステップ;
    e)前記オブジェクト識別子を、前記データオブジェクトが記憶されている前記物理的メモリにマッピングするステップ;
    f)前記データオブジェクトを呼び出すステップ;
    請求項23記載のコンピュータ読み出し可能媒体。
  26. 前記複数の指示は、コンピュータによる実行の際に、プロセッサが、前記データオブジェクトの呼び出しを容易にするため、データベースインデクスの作成を実行するような指示を含む、請求項23記載のコンピュータ読み出し可能媒体。
  27. 前記複数の指示は、コンピュータによる実行の際に、プロセッサが、前記データベースインデクスをBツリーデータ構造の形態で作成するステップを実行するような指示を含む、請求項26記載のコンピュータ読み出し可能媒体。
  28. 前記複数の指示は、コンピュータによる実行の際に、プロセッサが以下のステップを実行するような指示を含む:
    a)前記少なくとも1つの記憶された手続きの実行を管理するステップ;
    b)前記少なくとも1つの記憶された手続きの実行が終了した後、トランザクションの引き渡しを実行するステップ;
    c)前記少なくとも1つの記憶された手続きの実行が終了しないままである場合、ロールバック・トランザクションを実行するステップ;
    d)前記トランザクションの引き渡しと、ロールバック・トランザクションとを前記データベースマネージメントシステムのログに記録するステップ;
    e)前記データオブジェクトの状態を、前記少なくとも1つの記憶された手続きの実行前に記録するステップ;
    f)前記データオブジェクトの前記状態を、前記少なくとも1つの記憶された手続きの実行前であって、前記ロールバック・トランザクションの記録後に呼び出すステップ;
    請求項23記載のコンピュータ読み出し可能媒体。
JP2000556318A 1998-06-19 1999-06-18 トランザクションデータの高速記憶常駐処理方法および処理システム Expired - Fee Related JP3848085B2 (ja)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US09/100,581 1998-06-19
US09/100,581 US6192370B1 (en) 1998-06-19 1998-06-19 Method and system for rapid memory-resident processing of transactional data
PCT/EP1999/004227 WO1999067725A1 (de) 1998-06-19 1999-06-18 Verfahren und system zur schnellen speicherresidenten verarbeitung von transaktionsdaten

Publications (2)

Publication Number Publication Date
JP2002519765A JP2002519765A (ja) 2002-07-02
JP3848085B2 true JP3848085B2 (ja) 2006-11-22

Family

ID=22280485

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2000556318A Expired - Fee Related JP3848085B2 (ja) 1998-06-19 1999-06-18 トランザクションデータの高速記憶常駐処理方法および処理システム

Country Status (9)

Country Link
US (1) US6192370B1 (ja)
EP (1) EP1088280B1 (ja)
JP (1) JP3848085B2 (ja)
AT (1) ATE434224T1 (ja)
AU (1) AU764720B2 (ja)
CA (1) CA2333083C (ja)
DE (1) DE59915040D1 (ja)
IL (2) IL139201A0 (ja)
WO (1) WO1999067725A1 (ja)

Families Citing this family (58)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6405202B1 (en) * 1998-04-27 2002-06-11 Trident Systems, Inc. System and method for adding property level security to an object oriented database
JP3863291B2 (ja) * 1998-05-28 2006-12-27 株式会社日立製作所 データベース処理方法、データベース処理システム及び媒体
JP3763982B2 (ja) * 1998-11-25 2006-04-05 株式会社日立製作所 データベース処理方法及びその実施装置並びにその処理プログラムを記録した媒体
US6356895B1 (en) * 1999-01-08 2002-03-12 International Business Machines Corporation Method and computer program product for processing system files using a trigger program
US6772409B1 (en) * 1999-03-02 2004-08-03 Acta Technologies, Inc. Specification to ABAP code converter
US7197741B1 (en) * 1999-04-14 2007-03-27 Adc Telecommunications, Inc. Interface for an enterprise resource planning program
US7146354B1 (en) * 1999-06-18 2006-12-05 F5 Networks, Inc. Method and system for network load balancing with a compound data structure
US6453313B1 (en) * 1999-07-06 2002-09-17 Compaq Information Technologies Group, L.P. Database management system and method for dequeuing rows published to a database table
JP4132441B2 (ja) * 1999-07-19 2008-08-13 富士通株式会社 管理対象オブジェクトのデータ管理装置
US6353819B1 (en) * 1999-09-29 2002-03-05 Bull Hn Information Systems Inc. Method and system for using dynamically generated code to perform record management layer functions in a relational database manager
US6353820B1 (en) * 1999-09-29 2002-03-05 Bull Hn Information Systems Inc. Method and system for using dynamically generated code to perform index record retrieval in certain circumstances in a relational database manager
US6618822B1 (en) * 2000-01-03 2003-09-09 Oracle International Corporation Method and mechanism for relational access of recovery logs in a database system
US6810429B1 (en) * 2000-02-03 2004-10-26 Mitsubishi Electric Research Laboratories, Inc. Enterprise integration system
US6567822B1 (en) * 2000-03-21 2003-05-20 Accenture Llp Generating a data request graphical user interface for use in an electronic supply chain value assessment
EP1299832A2 (en) * 2000-03-31 2003-04-09 Sap Ag Matrix methods and systems for supply chain management
US6697797B1 (en) * 2000-04-28 2004-02-24 Micro Data Base Systems, Inc. Method and apparatus for tracking data in a database, employing last-known location registers
CA2307155A1 (en) * 2000-04-28 2001-10-28 Ibm Canada Limited-Ibm Canada Limitee Execution of database queries including filtering
EP1287426A4 (en) * 2000-05-01 2007-03-21 Sun Microsystems Inc METHOD AND DEVICE FOR STORING AND ACCESSING DATA IN COMPUTER SYSTEMS
US20020069096A1 (en) * 2000-06-22 2002-06-06 Paul Lindoerfer Method and system for supplier relationship management
US6631374B1 (en) * 2000-09-29 2003-10-07 Oracle Corp. System and method for providing fine-grained temporal database access
US20020082899A1 (en) * 2000-09-29 2002-06-27 Aley Fredrick J. Methods and systems for integrating marketing, production, and finance
US8650169B1 (en) * 2000-09-29 2014-02-11 Oracle International Corporation Method and mechanism for identifying transaction on a row of data
US8332502B1 (en) 2001-08-15 2012-12-11 Metavante Corporation Business to business network management event detection and response system and method
JP2003141173A (ja) * 2001-08-22 2003-05-16 Komatsu Ltd データベース管理システム及びデータベース
US8103619B1 (en) * 2001-11-15 2012-01-24 Teradata Us, Inc. Compressing data stored in a database system
US20030126159A1 (en) * 2001-12-28 2003-07-03 Nwafor John I. Method and system for rollback of software system upgrade
US6877014B1 (en) * 2002-01-30 2005-04-05 Oracle International Corporation Method and apparatus to facilitate transactional consistency for references in object-relational databases
US7320035B2 (en) * 2002-03-01 2008-01-15 Sun Microsystems, Inc. Object mutation determination for incremental state saves
US7707145B2 (en) * 2002-07-09 2010-04-27 Gerald Mischke Method for control, analysis and simulation of research, development, manufacturing and distribution processes
US7213020B1 (en) 2002-07-30 2007-05-01 Unisys Corporation Methods and system for facilitating updating of data in a database by a data access system
US7302678B2 (en) * 2003-09-10 2007-11-27 Sap Aktiengesellschaft Symmetric transformation processing system
EP1668495A2 (en) * 2003-09-15 2006-06-14 Sap Ag Query objects
EP1577794A1 (en) * 2004-03-16 2005-09-21 Sap Ag Method of updating and returning database objects
US7499953B2 (en) * 2004-04-23 2009-03-03 Oracle International Corporation Online recovery of user tables using flashback table
US7448047B2 (en) * 2004-04-29 2008-11-04 Sybase, Inc. Database system with methodology for providing stored procedures as web services
US20060129745A1 (en) * 2004-12-11 2006-06-15 Gunther Thiel Process and appliance for data processing and computer program product
US7509359B1 (en) * 2004-12-15 2009-03-24 Unisys Corporation Memory bypass in accessing large data objects in a relational database management system
US7467413B2 (en) * 2004-12-20 2008-12-16 Sap Ag Method and apparatus for accessing session data
US7899834B2 (en) * 2004-12-23 2011-03-01 Sap Ag Method and apparatus for storing and maintaining structured documents
US8024355B2 (en) * 2004-12-29 2011-09-20 Sap Ag Dynamic capacity demand profile construction with a persisted capacity demand profile and a collision buffer
EP1693765B1 (en) * 2005-02-16 2014-07-09 Sap Ag A data processing system and method
EP1770954A1 (en) * 2005-10-03 2007-04-04 Amadeus S.A.S. System and method to maintain coherence of cache contents in a multi-tier software system aimed at interfacing large databases
US20070143352A1 (en) * 2005-12-21 2007-06-21 International Business Machines Corporation Method and system for implementing database migration using a staged approach
US7958501B2 (en) * 2006-03-31 2011-06-07 Sap Ag System to disclose the internal structure of persistent database objects
US9747349B2 (en) * 2006-10-30 2017-08-29 Execue, Inc. System and method for distributing queries to a group of databases and expediting data access
US7822792B2 (en) * 2006-12-15 2010-10-26 Sap Ag Administration of planning file entries in planning systems with concurrent transactions
US7769789B2 (en) * 2007-05-11 2010-08-03 Oracle International Corporation High performant row-level data manipulation using a data layer interface
US20080319878A1 (en) * 2007-06-22 2008-12-25 Thorsten Glebe Dynamic Time Series Update Method
US8032548B2 (en) * 2007-07-31 2011-10-04 Oracle International Corporation Efficient network data transfer
JP5217966B2 (ja) * 2008-11-28 2013-06-19 富士通株式会社 ストレージシステムのアップデート処理プログラム、アップデート処理方法及びストレージシステム
ES2362837B1 (es) * 2009-04-13 2012-02-14 Universidad De Sevilla Sistema gestor de datos en tiempo real basado en el conocimiento.
US9020985B2 (en) 2009-08-25 2015-04-28 International Business Machines Corporation System and method for managing directories for a database system having an in-memory database
US9367397B1 (en) * 2011-12-20 2016-06-14 Emc Corporation Recovering data lost in data de-duplication system
US9449032B2 (en) * 2013-04-22 2016-09-20 Sap Se Multi-buffering system supporting read/write access to different data source type
US10169373B2 (en) * 2014-08-26 2019-01-01 Sugarcrm Inc. Retroreflective object tagging
US20160164884A1 (en) * 2014-12-05 2016-06-09 Skuchain, Inc. Cryptographic verification of provenance in a supply chain
US9436923B1 (en) 2015-02-26 2016-09-06 Skuchain, Inc. Tracking unitization occurring in a supply chain
US9641338B2 (en) 2015-03-12 2017-05-02 Skuchain, Inc. Method and apparatus for providing a universal deterministically reproducible cryptographic key-pair representation for all SKUs, shipping cartons, and items

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2253500A (en) 1990-08-23 1992-09-09 Data General Corp Object oriented-data bases
US5694598A (en) * 1994-10-12 1997-12-02 U S West Technologies, Inc. Method for mapping data between a relational format and an object-oriented format
WO1996034350A1 (en) 1995-04-24 1996-10-31 Aspect Development, Inc. Modeling of object-oriented database structures, translation to relational database structures, and dynamic searches thereon
US5734885A (en) * 1995-08-24 1998-03-31 International Business Machines Corporation System and method for tightly coupling application programs with relational databases
US5734887A (en) * 1995-09-29 1998-03-31 International Business Machines Corporation Method and apparatus for logical data access to a physical relational database
US5689698A (en) * 1995-10-20 1997-11-18 Ncr Corporation Method and apparatus for managing shared data using a data surrogate and obtaining cost parameters from a data dictionary by evaluating a parse tree object

Also Published As

Publication number Publication date
CA2333083A1 (en) 1999-12-29
DE59915040D1 (de) 2009-07-30
IL139201A (en) 2006-04-10
ATE434224T1 (de) 2009-07-15
EP1088280B1 (de) 2009-06-17
AU4613199A (en) 2000-01-10
IL139201A0 (en) 2001-11-25
US6192370B1 (en) 2001-02-20
EP1088280A1 (de) 2001-04-04
WO1999067725A1 (de) 1999-12-29
AU764720B2 (en) 2003-08-28
CA2333083C (en) 2004-11-16
JP2002519765A (ja) 2002-07-02

Similar Documents

Publication Publication Date Title
JP3848085B2 (ja) トランザクションデータの高速記憶常駐処理方法および処理システム
US20200167370A1 (en) Maintaining a relationship between two different items of data
US20200081879A1 (en) Persistent data storage techniques
JP4552242B2 (ja) 仮想表インタフェースと該インタフェースを用いた問合せ処理システム及び方法
US6502088B1 (en) Method and system for improved access to non-relational databases
US6523036B1 (en) Internet database system
US6662188B1 (en) Metadata model
US7346628B2 (en) Time in databases and applications of databases
US5504886A (en) System and method for applying user supplied relation definitions to application files for a relational database
US6014674A (en) Method for maintaining log compatibility in database systems
US7464073B2 (en) Application of queries against incomplete schemas
US7702649B1 (en) Object-relational mapping system and method for generic relationships
US20040260715A1 (en) Object mapping across multiple different data stores
US20110238703A1 (en) Time in databases and applications of databases
CA2302303A1 (en) System for accessing database tables mapped into memory for high performance
WO2005057365A2 (en) System to automatically regenerate software code
JPH09146817A (ja) 排他制御方法
KR100529661B1 (ko) 오브젝트 통합 관리 시스템
JPH09244896A (ja) 永続性オブジェクトのオブジェクトベース構築方法、コンピュータ読み取り可能媒体、および情報操作システム
EP1197876A2 (en) Persistent data storage techniques
US8180745B2 (en) Persistent object references to parallel database containers
Heytens et al. GESTALT: An expressive database programming system
Wade Single logical view over enterprise-wide distributed databases
CA2317166C (en) Metadata model
Saad et al. The ALEX Object Manager

Legal Events

Date Code Title Description
A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20050930

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20051227

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20060110

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20060329

TRDD Decision of grant or rejection written
A01 Written decision to grant a patent or to grant a registration (utility model)

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20060802

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20060824

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20090901

Year of fee payment: 3

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20100901

Year of fee payment: 4

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110901

Year of fee payment: 5

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20110901

Year of fee payment: 5

RD02 Notification of acceptance of power of attorney

Free format text: JAPANESE INTERMEDIATE CODE: R3D02

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20120901

Year of fee payment: 6

FPAY Renewal fee payment (event date is renewal date of database)

Free format text: PAYMENT UNTIL: 20130901

Year of fee payment: 7

R250 Receipt of annual fees

Free format text: JAPANESE INTERMEDIATE CODE: R250

LAPS Cancellation because of no payment of annual fees