JP2006504194A - Transparent EJB support and horizontal data partitioning - Google Patents

Transparent EJB support and horizontal data partitioning Download PDF

Info

Publication number
JP2006504194A
JP2006504194A JP2004548300A JP2004548300A JP2006504194A JP 2006504194 A JP2006504194 A JP 2006504194A JP 2004548300 A JP2004548300 A JP 2004548300A JP 2004548300 A JP2004548300 A JP 2004548300A JP 2006504194 A JP2006504194 A JP 2006504194A
Authority
JP
Japan
Prior art keywords
transaction
database
objects
ejb
databases
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.)
Pending
Application number
JP2004548300A
Other languages
Japanese (ja)
Inventor
マニッシュ モドー
マジード アーニー
ジェイムズ ザビアー
サンディープ マーサー
プラサッド バンドレッディー
シャオシォン ヤン
Original Assignee
ジェイジーアール アクイジション インコーポレイテッド
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 ジェイジーアール アクイジション インコーポレイテッド filed Critical ジェイジーアール アクイジション インコーポレイテッド
Publication of JP2006504194A publication Critical patent/JP2006504194A/en
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof
    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/541Interprogram communication via adapters, e.g. between incompatible applications

Abstract

本発明は、共通オブジェクトフレームワーク(COF)を使用したアプリケーション開発に係る。より詳細には、本発明の態様は、COFを、規格ベースサーバー側コンポーネントモデル及びリモードメソッド呼び出しプロトコルに実質的に適合させることに係る。本発明の付加的な態様は、データベースティアー上の中間のビジネスアプリケーションティアーにおけるデータベースの水平パーティショニングに係る。ステージング、変更経歴、及びオブジェクト内のフィールドの国際化を含む組合せは、本発明の更に別の態様である。本発明の特定の態様は、特許請求の範囲、明細書本文及び添付図面に示す。The present invention relates to application development using a common object framework (COF). More particularly, aspects of the present invention relate to substantially adapting COF to a standards-based server-side component model and a remote method invocation protocol. An additional aspect of the present invention relates to horizontal partitioning of a database in an intermediate business application tier on the database tier. Combinations that include staging, change history, and internationalization of fields within objects are yet another aspect of the present invention. Particular aspects of the present invention are set out in the claims, text and accompanying drawings.

Description

本発明は、共通オブジェクトフレームワーク(COF)を使用するアプリケーション開発に係る。より詳細には、本発明の態様は、COFを、規格ベースのサーバー側コンポーネントモデル及びリモートメソッド呼び出しプロトコルに実質的に適合させることに係る。本発明の付加的な態様は、データベースティアー(tier:層)上の中間のビジネスアプリケーションティアーにおけるデータベースの水平パーティショニングに係る。ステージング、変更経歴、及びオブジェクト内のフィールドの国際化を含む組合せは、本発明の更に別の態様である。本発明の特定の態様は、特許請求の範囲、以下の説明及び添付図面に示す。   The present invention relates to application development using a common object framework (COF). More particularly, aspects of the invention relate to substantially adapting COF to a standards-based server-side component model and remote method invocation protocol. An additional aspect of the present invention relates to horizontal partitioning of a database in an intermediate business application tier on the database tier. Combinations that include staging, change history, and internationalization of fields within objects are yet another aspect of the present invention. Particular aspects of the present invention are set out in the claims, the following description and the accompanying drawings.

(著作権について)
本特許文書の開示の一部分は、著作権保護を受ける資料を含んでいる。本著作権所有者は、任意の者が特許文書又は特許の開示を特許商標庁の特許ファイル又は記録に現われるように複写再現することに異議を唱えないが、その他の全ての著作権権利を留保するものとする。
(About copyright)
A portion of the disclosure of this patent document contains material that is subject to copyright protection. The copyright owner does not challenge any person to reproduce the patent document or patent disclosure as it appears in the Patent and Trademark Office patent file or record, but reserves all other copyright rights. It shall be.

マルチティアード(multi-tiered)アプリケーションは、ビジネスロジックを、分散型の信頼性及び拡張性のあるやり方で配備するための一般的な解決策となってきている。マルチティアードシステムでは、システムサービスティアーがデータベース、トランザクション及び他のインフラストラクチャーを与える。中間ティアーは、ビジネスロジックへのアクセスを与える。クライアントティアーは、ビジネスロジックにアクセスする。クライアントティアーは、貧弱な又は精巧なクライアントをもつユーザでもよいし、或いはウェブサービスクライアントのようなプログラムでもよい。マルチティアードアプリケーションは、単一アプリケーションプラットフォームから多数のカスタマーをサポートするのに特に有用である。マルチティアードアプリケーションは、コードの再使用及び拡張を含む利点を伴い、多数のカスタマーに対して同様にフォーマットされたデータを取り扱うように適応させることができる。   Multi-tiered applications have become a common solution for deploying business logic in a distributed, reliable and scalable manner. In a multi-tiered system, the system service tier provides a database, transactions, and other infrastructure. Intermediate tiers give access to business logic. The client tier has access to business logic. The client tier may be a user with a poor or sophisticated client, or may be a program such as a web service client. Multi-tiered applications are particularly useful for supporting a large number of customers from a single application platform. Multi-tiered applications can be adapted to handle similarly formatted data for a large number of customers, with advantages including code reuse and expansion.

J2EE及びEnterprise Java(登録商標)Beans(EJB)は、マルチティアード環境においてデータ管理メカニズムと一体化して、ビジネスロジックをカプセル化しそしてサービスするためのアーキテクチャーとして出現した。アプリケーションサーバーは、システムサービス及びインフラストラクチャーへのアクセスを与える。アプリケーションサーバーは、ビジネスロジック及びデータの両方をカプセル化するオブジェクトの記憶及び持続性を管理する。一般に、Sun、Simplified Guide to the JavaTM 2 Platform、Enterprise Edition(1999)を参照されたい。マイクロソフトの競合アーキテクチャーは、「.NET Framework and DCOM.」、Monson−Haefel、Richard、Enterprise JavaBeans 3d Ed、p17、O’Reilly(2001)として知られている。幾つかの同様の特性を有する古いフレームワークは、CORBAとして知られている。 J2EE and Enterprise Java (R) Beans (EJB) have emerged as an architecture for encapsulating and servicing business logic, integrated with data management mechanisms in a multi-tiered environment. Application servers provide access to system services and infrastructure. The application server manages the storage and persistence of objects that encapsulate both business logic and data. See generally Sun, Simply Guided to the Java 2 Platform, Enterprise Edition (1999). Microsoft's competitive architecture is known as “.NET Framework and DCOM.”, Monson-Haefel, Richard, Enterprise JavaBeans 3d Ed, p17, O'Reilly (2001). An older framework with some similar characteristics is known as CORBA.

マルチティアードカプセル化ビジネスアプリケーションのライフサイクルは、初期の開発及びその後の保守の両方を含む。(この点について、ビジネスアプリケーションは、いわゆるビジネスロジックが存在する1つ以上の中間ティアーを含む商業的及び非商業的アプリケーションを含むように使用される。)マルチティアードカプセル化ビジネスアプリケーションの初期の開発は、視覚的オブジェクト指向の分析及びモデリングツールで始まり、オブジェクト対関係データベースマッピングプロセスを経て進行し、そしてマルチティアードカプセル化ビジネスアプリケーションとして配備される。保守は、更新されたビジネスアプリケーションコンポーネントのステージング及び配備を含んでもよい。配備は、製品名及び記述のような動的データの国際化(I18N:「i」及び「n」とそれらの間の18文字、として省略される)を必要とする。   The life cycle of a multi-tiered encapsulated business application includes both initial development and subsequent maintenance. (In this regard, business applications are used to include commercial and non-commercial applications that include one or more intermediate tiers where so-called business logic exists.) The initial development of multi-tiered encapsulated business applications is Beginning with a visual object-oriented analysis and modeling tool, progressing through an object-to-relational database mapping process, and deployed as a multi-tiered encapsulated business application. Maintenance may include staging and deployment of updated business application components. Deployment requires internationalization of dynamic data such as product names and descriptions (I18N: abbreviated as “i” and “n” and 18 characters between them).

初期の開発に使用されるツールは、ユニファイドモデリング言語(UML)に適合し、そしてそれが使用するアプリケーション及びデータのオブジェクト指向のモデルを発生する視覚的分析及びモデリングツールを含む。レーショナル・ローズ(Rational Rose)は、リーディング視覚的分析及びモデリングツールである。他の製品は、IBMのVisualAge、ボーランドのEnterpriseStudio及びNeuVisのNeuArchitectを含む。視覚的分析及びモデリングには、Visio又はFlowcharterのようなドラフティングツールが使用されてもよい。   Tools used for early development include visual analysis and modeling tools that are compatible with the Unified Modeling Language (UML) and generate object-oriented models of applications and data that they use. Rational Rose is a leading visual analysis and modeling tool. Other products include IBM's VisualAge, Borland's EnterpriseStudio and NeuVis' NeuArchitect. For visual analysis and modeling, drafting tools such as Visio or Flowcharter may be used.

また、ORツールを開発に使用して、オブジェクト指向のモデルを関係データベースにマッピングすることもできる。TopLinkは、オブジェクト指向のモデルを関係データベースにマッピングするためのリーディングツールであった。競合ツールが、サンマイクロシステムズ、IBM、ボーランド、オラクル、マイクロソフト、ソート・インク、及びチブコにより製造されている。あるORマッピング能力を含むモデリングツールは、一般に非常に制約があり、ある範囲の使用可能なデータベースをサポートするように良好に適応されない。   An OR tool can also be used for development to map an object-oriented model to a relational database. TopLink was a leading tool for mapping object-oriented models to relational databases. Competing tools are manufactured by Sun Microsystems, IBM, Borland, Oracle, Microsoft, Sort Inc., and Chibuco. Modeling tools that include certain OR mapping capabilities are generally very constrained and are not well adapted to support a range of available databases.

マルチティアードカプセル化ビジネスアプリケーションのためのアプリケーションサーバーは、J2EE規格又は同様の規格に適合し得る。J2EE及びEJB2.0のためのアプリケーションサーバーは、サン、JBoss.org、ボーランド、IBM、BEAシステムズ、ワープソルーションズ、マイクロメディア、オラクル、及びその他多数により提供されている。アプリケーションサーバーは、オラクル、マイクロソフト、IBM、シーベル、サイベース、その他により提供されるデータベースを含む種々の持続性のためのデータベースに依存し得る。   Application servers for multi-tiered encapsulated business applications may conform to the J2EE standard or similar standards. Application servers for J2EE and EJB 2.0 are Sun, JBoss. org, Borland, IBM, BEA Systems, Warp Solutions, Micromedia, Oracle, and many others. The application server may rely on various persistence databases, including those provided by Oracle, Microsoft, IBM, Sebel, Sybase, etc.

入手可能なツールの2つの欠点とは、保守及び配備に有用な特徴に対しその一体化に制約があることと、そしてそのサポート性に欠けることである。一体化に制約があるとは、視覚的分析及びモデリングツールで開発されてORツールでマッピングされたアプリケーションが、マルチティアードカプセル化ビジネスアプリケーション配備のための競合規格の1つに適合するように、ユーザがデータを再入力するか又は詳細なプログラミングガイドラインに従う必要があることを意味する。開発者が既存のツールを使用して手動で行う必要がないようにサポートすることが有用な特徴には、ステージング、配備の経歴、及び動的データの国際化を含む。ステージングとは、新たなモジュールをライブデータに対してテストし、そしてそのテストされたモジュールを配備することを含む。経歴とは、配備を記録すると共に、任意であるが、新たなモジュールのステージング及び/又はテスティングを記録することを指す。動的データの国際化とは、付加的なフィールド及びテーブルの追加をサポートし、1つ以上のベース言語又は国々に追加されるべき言語又は国々を指定することで動的データの外国言語変換をサポートするものである。   Two disadvantages of available tools are the limited integration of features useful for maintenance and deployment, and the lack of support. Constrained integration means that an application developed with a visual analysis and modeling tool and mapped with an OR tool can be used by the user to meet one of the competing standards for multi-tiered encapsulated business application deployment. Means that you need to re-enter data or follow detailed programming guidelines. Features useful to help developers avoid having to do it manually using existing tools include staging, deployment history, and internationalization of dynamic data. Staging involves testing a new module against live data and deploying the tested module. Background refers to recording the deployment and optionally recording the staging and / or testing of a new module. Dynamic data internationalization supports the addition of additional fields and tables, and allows foreign language conversion of dynamic data by specifying the language or countries to be added to one or more base languages or countries. It is something to support.

現在のシステムで明らかでない望ましい特徴は、互いに独立した多数の物理的データベース、及びオラクルデータベースやSQLサーバー2000のような異なる売主のプラットホームに構築されたデータベース内でデータを探索できるように、中間ティアーにおいてデータを水平にパーティショニングすることである。以下、バージョン「2000」を参照として使用するが、本発明の態様を実施するのに使用できるソフトウェアのバージョンに対して制約を示唆するものではない。データベースの売主により供給される既存の水平パーティショニング機構は、単一の厳密に管理されたシステム内の多数の物理的ボリュームを、全て売主のデータベースマネージャーの制御のもとで使用する。   A desirable feature that is not apparent in the current system is that in the intermediate tier, data can be explored in a number of independent physical databases and databases built on different vendor platforms such as the Oracle database and SQL Server 2000. Partitioning the data horizontally. In the following, version “2000” is used as a reference, but does not imply any constraints on the version of software that can be used to implement aspects of the present invention. Existing horizontal partitioning mechanisms supplied by database vendors use multiple physical volumes within a single tightly managed system, all under the control of the vendor's database manager.

水平パーティショニング技術の例については、クレイン氏の米国特許第6,453,313号、「Database Management System and Method for Dequeuing Rows Published to a Database Table」(1992年);ローマン氏等の米国特許第6,112,198号、「Optimization of Data Repartitioning During Parallel Query Optimization」(2000年);バルー氏等の米国特許第5,970,495号、「Method and Apparatus for Achieving Uniform Data Distribution in a Parallel Database System」(1999年)を参照されたい。クレイン氏が説明するように、クラスターにおけるノード及び装置を横切って計算負荷をスケーリングしそして分配するのに、大きなデータベーステーブルの透過的(トランスペアレントな)水平パーティショニングが使用される。水平パーティショニングとは、テーブルを2つ以上のファイルに分割即ちパーティショニングし、各パーティションが、対応する範囲のキー値を有する記録(タプル)を記憶することを意味する。例えば、カスタマーテーブルの2つ以上のパーティションの各々は、対応する範囲の文字A−Lで始まるカスタマー名に対応する記録に対して使用されてもよい。又、テーブルは、ハッシュ値に基づいてパーティショニングすることもできる。例えば、記録インデックスのハッシュ値を使用すると、N(例えば、4)個の値のいずれかをもつことができ、テーブルをN個のパーティションに分割することができ、ハッシュ関数を使用して、各テーブル行が記憶されるパーティションが決定される。更に、各パーティションは、システムにおける計算付加の分配を容易にするためにシステムの異なるノード又は物理的装置に記憶されてもよい。   For examples of horizontal partitioning techniques, see Crane's US Pat. No. 6,453,313, “Database Management System and Method for Dequeuing Rows Published to a Database Table” (1992); 112, 198, “Optimization of Data Repartitioning During Parallel Query Optimization” (2000); US Pat. No. 5,970,495 by Baru et al., “Method and Apparatus for Achieving Uniform Data Distribution in a Parallel Database System” (1999). As Klein explains, transparent (transparent) horizontal partitioning of large database tables is used to scale and distribute the computational load across nodes and devices in the cluster. Horizontal partitioning means that the table is divided or partitioned into two or more files, and each partition stores a record (tuple) with a corresponding range of key values. For example, each of the two or more partitions of the customer table may be used for records corresponding to customer names beginning with a corresponding range of letters A-L. The table can also be partitioned based on the hash value. For example, using the hash value of a recording index, it can have any of N (eg, 4) values, and the table can be divided into N partitions, using a hash function to The partition where the table row is stored is determined. Further, each partition may be stored on a different node or physical device of the system to facilitate the distribution of computational load in the system.

水平パーティショニングを、データベースマネージャーではなく、中間ティアーへ一体化することは、同じアプリケーションで多数のカスタマーをサポートするのに有用である。透過的(トランスペアレントな)水平パーティショニングサポートは、より多くのカスタマーが追加されるか又はデータベースが再パーティショニングされるときに、開発者がそれらのビジネスロジックに再びアクセスする(revisit)ことを解放する。   Integrating horizontal partitioning into an intermediate tier rather than a database manager is useful for supporting multiple customers in the same application. Transparent (transparent) horizontal partitioning support frees developers from revisiting their business logic when more customers are added or the database is repartitioned .

そこで、マルチティアードカプセル化ビジネスアプリケーションの配備及び保守により視覚的分析及びモデリングから種々のステージにおいて開発を良好にサポートしそして一体化するための機会が生じることになる。   Thus, the deployment and maintenance of multi-tiered encapsulated business applications creates an opportunity to better support and integrate development at various stages from visual analysis and modeling.

本発明は、共通オブジェクトフレームワーク(COF)を使用するアプリケーション開発に係る。より詳細には、本発明の態様は、COFを、規格ベースのサーバー側コンポーネントモデル及びリモートメソッド呼び出しプロトコルに実質的に適合させることに係る。本発明の付加的な態様は、データベースティアー上の中間のビジネスアプリケーションティアーにおけるデータベースの水平パーティショニングに係る。ステージング、変更経歴、及びオブジェクト内のフィールドの国際化を含む組合せは、本発明の更に別の態様である。本発明の特定の態様は、特許請求の範囲、以下の説明及び添付図面に示す。   The present invention relates to application development using a common object framework (COF). More particularly, aspects of the invention relate to substantially adapting COF to a standards-based server-side component model and remote method invocation protocol. An additional aspect of the present invention relates to horizontal partitioning of a database in an intermediate business application tier on the database tier. Combinations that include staging, change history, and internationalization of fields within objects are yet another aspect of the present invention. Particular aspects of the present invention are set out in the claims, the following description and the accompanying drawings.

以下、添付図面を参照して、本発明を詳細に説明する。好ましい実施形態は、本発明を例示するものであって、特許請求の範囲に規定されたその範囲を限定するものではない。当業者であれば、以下の説明から、種々の同等の変更が理解されよう。   Hereinafter, the present invention will be described in detail with reference to the accompanying drawings. The preferred embodiments are illustrative of the invention and are not intended to limit its scope as defined in the claims. Those skilled in the art will appreciate various equivalent modifications from the following description.

図1は、本発明の一実施形態において使用することのできる、サン(Sun)をスポンサーとするJ2EE及びEJB規格を示している。ボドフ氏等の「The J2EE Tutorial」、第10ページ、アディソン・ウェズリー(2002年)を参照されたい。サンは、図1のブロックを次のように説明している。J2EEサーバー120は、J2EE製品を実現したものである。J2EEサーバーは、EJB125及びWeb121コンテナを与え、そしてバックエンドデータベースレイヤー130へのアクセスを管理する。Enterprise JavaBeans(EJB)コンテナ125は、J2EEアプリケーションのためのエンタープライズビーンズの実行を管理する。エンタープライズビーンズ126、127及びそれらのコンテナ125は、J2EEサーバー120において実行される。ウェブコンテナ121は、J2EEアプリケーションのためのJSPページ123及びサーブレット122コンポーネントの実行を管理する。ウェブコンポーネント122、123及びそれらのコンテナ121は、J2EEサーバー120において実行される。アプリケーションクライアントコンテナ113は、アプリケーションクライアント112コンポーネントの実行を管理する。アプリケーションクライアント112及びそれらのコンテナ113は、クライアント110において実行される。アプレットコンテナは、アプレットの実行を管理する。これは、クライアント110において実行されるウェブブラウザ111及び1つ以上のJavaプラグインを含む。   FIG. 1 illustrates the Sun sponsored J2EE and EJB standards that can be used in one embodiment of the present invention. See Bodoff et al., “The J2EE Tutorial”, page 10, Addison Wesley (2002). Sun describes the block of FIG. 1 as follows. The J2EE server 120 implements a J2EE product. The J2EE server provides the EJB 125 and Web 121 containers and manages access to the backend database layer 130. An Enterprise JavaBeans (EJB) container 125 manages the execution of enterprise beans for J2EE applications. The enterprise beans 126, 127 and their containers 125 are executed on the J2EE server 120. The web container 121 manages the execution of JSP page 123 and servlet 122 components for J2EE applications. Web components 122, 123 and their containers 121 are executed on the J2EE server 120. The application client container 113 manages the execution of the application client 112 component. Application clients 112 and their containers 113 are executed on the client 110. The applet container manages the execution of applets. This includes a web browser 111 running on the client 110 and one or more Java plug-ins.

より一般的には、図1は、規格ベースのサーバー側コンポーネントモデル及びリモートメソッド呼び出しプロトコルを示す。マイクロソフト「.NET Framework」及びCORBAは、同様のコンポーネントを含む。Monson−Haefel、Enterprise JavaBeans、第5−18ページ。本発明の態様は、ここに示すバージョン又はその後の時点或いは本出願の提出時点における規格のバージョン又はその派生したものに適合する際に、規格に適合するとみなす。完全な適合を必要とせず、実質的な適合であっても有用である。規格との完全な適合は、規格の特徴の実施を要求することが時としてあるが、これは、不必要であり、高価過ぎて流動的とみなされる。加えて、ある実施は、製品を改善するときに導入され得る私有的特徴であって、規格が発展しそしてカスタマーが旧型の支持を主張するときに非標準的となり得る私有的特徴を含むことになると考えられる。規格とは、EJBのような委員会が管理する仕様、及び「.NET Framework」のような売主が管理する仕様の両方を網羅することを意味する。   More generally, FIG. 1 illustrates a standards-based server-side component model and remote method invocation protocol. Microsoft “.NET Framework” and CORBA include similar components. Monson-Haefel, Enterprise JavaBeans, pp. 5-18. Aspects of the present invention are deemed to conform to the standard when conforming to the version indicated herein or at a later time or version of the standard as of the filing of this application or a derivative thereof. Even a substantial fit is useful without requiring a perfect fit. Although full conformance with the standard sometimes requires implementation of the features of the standard, this is unnecessary and is considered too expensive and fluid. In addition, certain implementations may include private features that may be introduced when improving the product and that may become non-standard when the standard evolves and the customer claims legacy support. It is considered to be. A standard means to cover both specifications managed by a committee such as EJB and specifications managed by a seller such as “.NET Framework”.

図2は、EJBオンJ2EEサーバーを使用して共通オブジェクトフレームワークをいかに実施して中間ティアーを与えるかを示す。図のコンポーネントの多くは、図1のコンポーネントに一致し、適宜に番号が付けられている。図2において、ウェブコンテナのコンテンツ及びエンタープライズビーンズの1つを説明する。ウェブコンテナ121において、アプリケーションは、共通オブジェクトフレームワーク(COF)240Aと、ロールアプリケーション241と、ウェブサービスエンジン242と、コラボレーティブプロセスマネージャー243とを備えている。COFは、持続するオブジェクトをサポートし且つそこへのアクセスを与え、ロールアプリケーション241の開発者が持続、トランザクション管理、及び関連タスクを取り扱う必要性を低減する。COFは、任意であるが、本出願及び参考として取り上げる出願に記述された方法を適用して、ステージング、変更経歴、国際化及び水平パーティショニングをサポートしてもよい。ウェブサービスエンジン242及びコラボレーティブプロセスマネージャーは、ウェブサービスを提供するためにコマース・ワン(Commerce One)により使用されるコンポーネントであり、ウェブコンテナ内のこれらアプリケーションの詳細は、本発明とって重要ではない。しかしながら、コラボレーティブプロセスマネージャー243をCOF240Aに接続する実線矢印と、CPM243をCOF240B及びEJB127へ接続する点線は、EJBコンテナ124により提供されるサービス及びデータサポートを、ウェブコンテナ121内のCOF240Aから利用できるサービスに置き換えるオプションを示す。ウェブコンテナ121及びエンタープライズビーン126内のCOFコードを240A、240Bとして同様に表示することは、COFコードをほとんど又は全く再書き込みせずに、COFコードを、EJB処理のために、EJB適合インターフェイスでラップできることを指示する。図示されたように、COFは、ウェブコンテナ又はEJBコンテナの各々で利用することができる。アプリケーションは、両コンテナにおいてCOFコンポーネントにアクセスすることができる。アプリケーションは、COFコンポーネントの両セットと同時にアクティブなセッションをもつことができる。図2は、EJB環境に関してこの実施を示しているが、当業者であれば、DCOMのような別の規格ベースのサーバー側コンポーネントモデル及びリモートメソッド呼び出しプロトコルに同じ解決策を適用できることが明らかであろう。   FIG. 2 shows how the common object framework is implemented using the EJB on J2EE server to provide an intermediate tier. Many of the components in the figure correspond to those in FIG. 1 and are numbered accordingly. In FIG. 2, one of web container content and enterprise beans is described. In the web container 121, the application includes a common object framework (COF) 240 </ b> A, a role application 241, a web service engine 242, and a collaborative process manager 243. COF supports and provides access to persistent objects, reducing the need for role application 241 developers to handle persistence, transaction management, and related tasks. The COF may optionally support the staging, change history, internationalization and horizontal partitioning by applying the methods described in this application and the application taken as a reference. The web service engine 242 and collaborative process manager are components used by Commerce One to provide web services, and the details of these applications in the web container are not important to the present invention. However, the solid arrow connecting the collaborative process manager 243 to the COF 240A and the dotted line connecting the CPM 243 to the COF 240B and EJB 127 make the service and data support provided by the EJB container 124 available to the COF 240A in the web container 121. Indicates a replacement option. Displaying the COF code in the web container 121 and enterprise bean 126 as 240A, 240B in the same way wraps the COF code with an EJB conforming interface for EJB processing with little or no rewriting of the COF code. Tell what you can do. As shown, the COF can be utilized in either a web container or an EJB container. Applications can access COF components in both containers. An application can have an active session simultaneously with both sets of COF components. Although FIG. 2 illustrates this implementation for an EJB environment, it will be apparent to those skilled in the art that the same solution can be applied to other standard-based server-side component models such as DCOM and remote method invocation protocols. Let's go.

いわゆる共通オブジェクトフレームワークは、ビジネスオブジェクトの全ソフトウェアライフサイクルを管理するための基本的実施及びツールを与え、これは、ここに取り上げる出願に詳細に説明されている。これは、透過的(トランスペアレントな)国際化、ステージング、変更経歴、及びカスタム属性を含む設計、UMLモデル、完全コード及びデータベース世代を備えている。コード、データ、及びデータベース独立のスキーマを継続維持するためのツールが設けられる。共通オブジェクトフレームワークコンポーネントは、ユーティリティライブラリー、ビジネスオブジェクトフレームワーク及びシステム管理ツールを含むカテゴリーに入る。ユーティリティライブラリーコンポーネントは、エクセプション(国際化された)、ロギング、暗号化及びコンフィギュレーションアクセスのような共通コードレベルユーティリティを含む。又、これは、リソースマネージャー、日付、数字及びテキストのような国際化機能も含む。ビジネスオブジェクトフレームワークは、ビジネスオブジェクトの設計、持続性のためのコードの発生、国際化、データステージング、バージョン経歴、動的カスタム属性、及び全形成/読み取り/更新/削除(CRUD)機能のために使用される。フレームワークに含まれるのは、ビジネスオブジェクトの拡張性、多数のサービスにわたるキャッシュ同期、及びスケジューラーのサポートである。   The so-called common object framework provides basic implementations and tools for managing the entire software life cycle of business objects, which are described in detail in the applications discussed herein. It features design including transparent (transparent) internationalization, staging, change history, and custom attributes, UML model, full code and database generation. Tools are provided to continue to maintain code, data, and database independent schemas. Common object framework components fall into categories that include utility libraries, business object frameworks, and system management tools. Utility library components include common code level utilities such as exceptions (internationalized), logging, encryption and configuration access. This also includes internationalization features such as resource managers, dates, numbers and text. Business Object Framework for business object design, code generation for persistence, internationalization, data staging, version history, dynamic custom attributes, and full build / read / update / delete (CRUD) functionality used. Included in the framework is business object extensibility, cache synchronization across multiple services, and scheduler support.

システム管理ツールは、ビジネスオブジェクトフレームワークをベースとする。これらは、データベースを生成し、データをロードし、データベーススキーマをアップグレードし、そしてデータの解除変更をアップグレードするためのデータ管理ツールを含む。又、国際化及び局所化キットのためのエクストラクター及びインストーラーもある。   System management tools are based on the business object framework. These include data management tools for creating databases, loading data, upgrading database schemas, and upgrading data breaking changes. There are also extractors and installers for internationalization and localization kits.

EJB適合COF又は規格適合COFは、種々のソフトウェアコンポーネントにより実施されそしてそれと相互作用することができる。オブジェクトモデルの設計及びコード又はメタデータ(マシン読み取り可能なデータ)の発生は、「レーショナル・ローズ(Rational Rose)2001a」以上のもので実施することができる。これ以降、バージョン「2001a」も参考として使用するだけで、本発明の態様を実施するのに使用できるソフトウェアのバージョンをこれに限定するものではない。「レーショナル・ローズ」を使用するときには、図4及び5に示して以下に説明する機能を与えるためにアドイン(add-in)がインストールされる。データベースは、TopLink3.6.1、SQLサーバー2000、Oracle8.1.7、又はDB2、及び適当なJDBCドライバ、例えば、I−net OPTA4.15、Seropt又はIDS JDBC Lite3.5.4を使用して、マップし、形成し、そしてアクセスすることができる。WebSphere及びWebLogic7.0のようなEJBを使用してもよい。   The EJB-compliant or standards-compliant COF can be implemented and interacted with by various software components. Object model design and generation of code or metadata (machine readable data) can be implemented with more than "Rational Rose 2001a". Thereafter, the version “2001a” is also used as a reference only, and does not limit the version of software that can be used to implement aspects of the present invention. When using "rational rose", an add-in is installed to provide the functions shown in FIGS. 4 and 5 and described below. The database uses TopLink 3.6.1, SQL Server 2000, Oracle 8.1.7, or DB2, and a suitable JDBC driver, eg, I-net OPTA 4.15, Seropt or IDS JDBC DC Lite 3.5.4. , Map, shape, and access. EJBs such as WebSphere and WebLogic 7.0 may be used.

EJB適合COFの新規なそして改善されたモデルを多数の有用なやり方で組み合わせることができる。これらのモデルは、COFオブジェクトにアクセスしてEJBとして使用できるように、リモート及びローカルEJBインターフェイスを発生する。それらは、TopLink4.0をORマッピングツールとして使用してオブジェクトを見出すために問合せ言語としてEJB−QLへのアクセスを与える。それらは、多数のデータベースへの同時アクセス及びデータの水平パーティショニングをサポートすることを含むデータベースサーバーセッションを管理する。データベースにわたる関係は、サポートすることができない。それらは、オブジェクトへのアプリケーションアクセスに対してクライアントセッションを与える。それらは、失われたデータベース接続に対する構成可能な再試みメカニズムを与える。それらは、EJB JTAベースのトランザクション、及びデータベースサーバーにわたって独特である独自の連結オブジェクトIDとの一体化をサポートし、データベース移動にわたりオブジェクトIDを保存すると共に、水平パーティショニングを実施する。   New and improved models of EJB-compliant COF can be combined in a number of useful ways. These models generate remote and local EJB interfaces so that COF objects can be accessed and used as EJBs. They give access to EJB-QL as a query language to find objects using TopLink 4.0 as an OR mapping tool. They manage database server sessions, including supporting simultaneous access to multiple databases and horizontal partitioning of data. Relationships across databases cannot be supported. They provide a client session for application access to the object. They provide a configurable retry mechanism for lost database connections. They support EJB JTA-based transactions and integration with unique linked object IDs that are unique across database servers, store object IDs across database moves, and implement horizontal partitioning.

オブジェクト変更事象通知は、オブジェクト形成、更新及び削除のために構成可能な事象として発生される。後オブジェクト形成、前オブジェクト更新、後オブジェクトリフレッシュ、及び前オブジェクト削除のために、実施されたオブジェクトに対してコールバックが与えられる。レーショナル・ローズに対して設計及びコード発生ツールが設けられる。データベース形成ツールは、視覚的にモデリングされた設計に基づいてデータベース又はDDLスクリプトを発生する。ツールは、発生されたEJBに対するアプリケーションサーバー配備記述子を発生する。WebLogic6.1sp2及びWebSphere5.0(EJB2.0仕様のサポートを必要とする)に対するサポート。   Object change event notifications are generated as configurable events for object creation, update and deletion. Callbacks are provided for implemented objects for post-object creation, pre-object update, post-object refresh, and pre-object deletion. Design and code generation tools are provided for Rational Rose. A database creation tool generates a database or DDL script based on a visually modeled design. The tool generates an application server deployment descriptor for the generated EJB. Support for WebLogic 6.1sp2 and WebSphere 5.0 (requires support for the EJB 2.0 specification).

図3は、視覚的にモデリングされた単純なショッピングカートアプリケーションのためのオブジェクト及び関係を示す。この図のモデルは、クラス図に対して独特のモデリング言語(UML)表示を使用して形成されたものである。この例では、CmsCartオブジェクト301を使用して、多数の露呈されたメソッドが与えられる。CmoCartオブジェクトに代わってCmsCartを使用することは、オブジェクトがあるセッション中存在するが、その後のセッション中には、持続するカスタマー及びオーダーとは対照的に、持続しないことを意味する。カート301は、オーダー311により、CmoOrderオブジェクト303に関連付けられる。この例では、1つのオーダーオブジェクトがショッピングカートに関連付けられる。CmoOrderオブジェクト303は、完了時に、CmoCustomerオブジェクト302を経てカスタマー313に関連しなければならない。関係の逆方向に沿って、持続カスタマー302は、2つ以上のオーダー303に関連してもよい(312)。オーダー303は、1つ以上のCmoProductLineItemオブジェクト305を含む。関係アイテム314は、オーダー303をそのラインアイテム305に接続する。ラインアイテム305には製品304が充填され、これら製品は、製品315関係によりラインアイテムに接続される。   FIG. 3 shows objects and relationships for a visually modeled simple shopping cart application. The model in this figure is formed using a unique modeling language (UML) representation for class diagrams. In this example, CmsCart object 301 is used to provide a number of exposed methods. Using CmsCart instead of a CmoCart object means that the object exists for a session but does not persist during subsequent sessions, as opposed to persistent customers and orders. The cart 301 is associated with the CmoOrder object 303 by the order 311. In this example, one order object is associated with the shopping cart. The CmoOrder object 303 must be associated with the customer 313 via the CmoCustomer object 302 upon completion. Along the reverse direction of the relationship, persistent customer 302 may be associated with more than one order 303 (312). Order 303 includes one or more CmoProductLineItem objects 305. Related item 314 connects order 303 to its line item 305. Line items 305 are filled with products 304, which are connected to the line items by a product 315 relationship.

UMLでは、ショッピングカートのようなオブジェクトは、クラスとしてモデリングされてもよい。デフォールトにより、本発明の一実施形態における全てのトップレベル(即ち、非親クラス)持続オブジェクトは、図5について以下に述べるように、CmoBaseと称されるベースオブジェクトから継承する。或いは又、CmsBaseと称されるオブジェクトから、過渡的(transient)オブジェクトが継承されてもよい。ベースオブジェクトは、CAT(又はユニット)ファイルに設けられてもよく、このファイルは、オブジェクトモデリングプログラムにロードされて、他のクラスで参照することができる。ベースクラスの目的は、共通のインターフェイス及び実施を介して全てのオブジェクトに対する基本的機能を与えることである。   In UML, objects such as shopping carts may be modeled as classes. By default, all top level (ie non-parent class) persistent objects in one embodiment of the present invention inherit from a base object called CmoBase, as described below with respect to FIG. Alternatively, a transient object may be inherited from an object called CmsBase. The base object may be provided in a CAT (or unit) file, which can be loaded into an object modeling program and referenced by other classes. The purpose of the base class is to provide basic functionality for all objects through a common interface and implementation.

オブジェクトモデリングプログラムでUMLフォーマットにおいてクラスをモデリングすることは、次のステップを含む。先ず、クラスがどこに存在すべきか及びそれがどこで発生されるかのディレクトリ構造を指定するためにパッケージハイアラーキーが形成される。次いで、クラス名、クラスドキュメンテーション、及びクラスプロパティを指定することができる。サポートされるクラスプロパティは、次のものを含む。即ち、持続、過渡、抽象、発生コード、データベーステーブル名、イズ・ステージアブル(Is Stageable)、最大バージョン数(Max Num of Versions)、テーブルレベルデータベース制約(複合固有制約のような)、イズ・ディスプレイド・インGUI(Is Displayed in GUI)、ディスプレイ名、ディスプレイ記述、発生(Generate)、及びGenerateEJB。これらは、図4に示して以下に説明するツールを使用する。   Modeling a class in UML format with an object modeling program includes the following steps. First, a package hierarchy is formed to specify the directory structure where the class should exist and where it is generated. The class name, class documentation, and class properties can then be specified. Supported class properties include: That is, persistence, transient, abstraction, generated code, database table name, Is Stageable, Max Num of Versions, table level database constraints (such as compound unique constraints), is display Is Displayed in GUI (GUI), display name, display description, generation, and GenerateEJB. These use the tools shown in FIG. 4 and described below.

次いで、クラスの属性を指定することができる。属性名、形式、ドキュメンテーション、データベースカラム名、データベースカラム長さ、許容null値、及び属性が固有であるかどうかを指定することができる。更に、属性は、静的、最終的及び/又は過渡的である。属性は、サブクラス及び反射コードでそれらにアクセスできるように保護されて定義されてもよい。しかしながら、他のクラス及びアプリケーションは、ゲッター及びセッターメソッドによらなければ、それらにアクセスできない。次の属性形式がサポートされる。int、boolean、float、long、short、double、char、String、Date、Time、Timestamp、Integer、Boolean、Float、Long、Short、Double、BigInteger、BigDecimal、Character、Object、byte、Byte、char、character、EncryptedString、HashedString、及びTranslatableString。   The class attributes can then be specified. You can specify the attribute name, format, documentation, database column name, database column length, allowed null values, and whether the attribute is unique. Further, the attributes are static, final and / or transient. Attributes may be defined protected so that they can be accessed by subclasses and reflection codes. However, other classes and applications cannot access them without relying on getter and setter methods. The following attribute formats are supported: int, Boolean, float, long, short, double, char, String, Date, Time, Timestamp, Integrer, Boolean, Float, Long, Short, Double, BigIntegr, BigDecimal, BigDecimal EncryptedString, HashedString, and TranslatableString.

これらの形式は、Javaベース形式に適切にマップされ、これらは、データベース特有の形式にマップされてもよい。Object、byte及びByteは、バイトのストリームを記憶するために、データベースにおいてBLOB形式へとマップされてもよい。char及びcharacterは、大きなキャラクタストリームを記憶するためにデータベースにおいてCLOB形式へとマッピングされてもよい。EncryptedString及びHashedString形式は、特殊な形式で、単にストリングであるが、発生されるコードは、属性を設定する前に値を暗号化/ハッシュし、そしてゲッター及びセッターメソッドにより属性を返送するときに値を暗号解読するものである。TranslatableString属性も、単なるストリングであるが、発生されるコードは、その属性の変換値を表わすためのカラムをもつ付加的なテーブルも発生する。これは、データベースに記憶されるオブジェクト値の局所化をサポートするためにその属性の多数の変換値が存在できることを示すように、あるクラスの特定の属性を指定できるようにする。   These formats are appropriately mapped to Java-based formats, which may be mapped to database specific formats. Object, byte, and byte may be mapped to BLOB format in the database to store a stream of bytes. char and character may be mapped to CLOB format in the database to store large character streams. The EncryptedString and HashedString formats are special formats, just strings, but the generated code encrypts / hashes the value before setting the attribute and returns the value when the attribute is returned by the getter and setter methods Is decrypted. The TranslatableString attribute is also just a string, but the generated code also generates an additional table with a column to represent the converted value of that attribute. This allows a particular attribute of a class to be specified to indicate that there can be multiple transformation values for that attribute to support the localization of object values stored in the database.

次いで、あるクラスの関係を指定することができる。UMLにおいて、あるオブジェクトから他のオブジェクトへの矢印をもつ線を使用して、関係(relationship)又は関連性(association)を指定する。この関連性の各側をロールと称する。ロール名は、関連性の「から(from)」側のクラスにおいて属性名と等価である。ロールは、保護された制御のものでなければならない(属性と同様に)。各ロールは、多数のものを指定できる。「0..1」、「1」及び「0..*」がサポートされる。「0..1」は、そのロール側におけるオブジェクトの0又は1のインスタンスがその関係になり得ることを指定する。同様に、「1」は、そのロール側におけるオブジェクトの厳密に1のインスタンスがその関係になければならないことを指定する(通常、その関係の「から」側におけるクラスの関連性を表わすカラムに対するnull以外の制約を意味する)。又、「0..*」は、オブジェクトの0以上のインスタンスがその関係になり得ることを指定する。これは、関連付けられたオブジェクトの集合を含む関係と同等である。   A class relationship can then be specified. In UML, a line with an arrow from one object to another is used to specify a relationship or association. Each side of this relationship is called a roll. The role name is equivalent to the attribute name in the class from the “from” side of the relationship. Roles must be of protected control (similar to attributes). Each role can specify many. “0..1”, “1” and “0 .. *” are supported. “0..1” specifies that 0 or 1 instances of the object on the roll side can be the relationship. Similarly, "1" specifies that exactly one instance of the object on the role side must be in the relationship (usually null for the column representing the class association on the "from" side of the relationship) Meaning other constraints). Also, “0 .. *” specifies that zero or more instances of the object can be related. This is equivalent to a relationship including a set of associated objects.

関係は、両方向性でもよい。これは、関連性の各側が他の側に対して可視性をもつことを意味する。上述した多数のものの順列は、両方向関係で存在し得る。更に、関係の片側を総計(関係の「から」側にオープンダイアモンドを使用して表わした)として示すことができる。総計関係は、「から」クラスが「へ(to)」クラスのインスタンス(1つ又は複数)をプライベートに所有することを指定する。従って、「へ」クラスのインスタンスを形成及び削除するのは、「から」クラスの責任である。   The relationship may be bi-directional. This means that each side of the relationship is visible to the other side. Many permutations of the above may exist in a bi-directional relationship. Furthermore, one side of the relationship can be shown as a grand total (represented using open diamonds on the “from” side of the relationship). The aggregate relationship specifies that the “from” class privately owns the instance (s) of the “to” class. Therefore, it is the responsibility of the “from” class to create and delete instances of the “to” class.

オブジェクトモデリングプログラムは、各個々のパッケージ、クラス、属性、関係及び関係ロールに対して設定することのできる付加的なプロパティを定義するのを許す。「CBOF」タブは、図3に示すように、オブジェクトモデリングプログラムと共に各形式のオブジェクトに対するプロパティに追加されてもよい。このタブは、各形式のオブジェクトに対して設定できる特定のプロパティをリストする。視覚的モデルに対応するメタデータ又はマシン読み取り可能なデータを発生するモデルは、いかなるオブジェクトのいかなるプロパティにもアクセスできる。それ故、プロパティを追加することにより、クラスの付加的なプロパティを、そのクラスに対するコード及び他のサポートのその後の発生をカスタマイズするように、設定することができる。   The object modeling program allows you to define additional properties that can be set for each individual package, class, attribute, relationship, and relationship role. A “CBOF” tab may be added to the properties for each type of object along with the object modeling program, as shown in FIG. This tab lists the specific properties that can be set for each type of object. A model that generates metadata corresponding to a visual model or machine-readable data can access any property of any object. Thus, by adding properties, additional properties of a class can be set to customize the subsequent generation of code and other support for that class.

特に、「レーショナル・ローズ」オブジェクトモデリングプログラムは、種々のオブジェクトに対する付加的なプロパティ値を含む拡張を追加できるようにする。オブジェクトモデルが形成されるときには(クラス、属性、関連性等の特徴をもつ)これらオブジェクトモデルにおいてプロパティの集合を指定し及び/又は設定することができる。プロパティの集合は、カスタマイズの目的で拡張及び追加することができる。図4は、クラスプロパティを指定するためのポップアップウインドウに追加されたCBOFタブ401を示す。プロパティのセット又はサブセットを操作のために選択することができる(402)。モデルプロパティとして、プロパティ名411、値412及びソース413(デフォールト又はオーバーライドと表示された)は、全て、ユーザがプロパティを操作するのを制御する。非デフォールト値を有するプロパティは、太字、ハイライト又はその他で強調することができる。   In particular, the “rational rose” object modeling program allows the addition of extensions that include additional property values for various objects. When object models are formed, a set of properties can be specified and / or set in these object models (with features such as classes, attributes, associations, etc.). A collection of properties can be extended and added for customization purposes. FIG. 4 shows a CBOF tab 401 added to a pop-up window for specifying class properties. A set or subset of properties may be selected for manipulation (402). As model properties, property name 411, value 412 and source 413 (labeled as default or override) all control the user's manipulation of the property. Properties with non-default values can be highlighted in bold, highlight or otherwise.

以下の説明は、各形式のオブジェクトに対して追加できるプロパティと、クラスに対するコード及び他のサポートの発生を制御するのに使用できる1つ以上のやり方とをリストしたものである。   The following description lists the properties that can be added to each type of object and one or more ways that can be used to control the generation of code and other support for the class.

1.プロジェクトプロパティ:単一オブジェクトモデルは、「プロジェクト」と考えられる。それ故、全体的に対応するプロジェクトオブジェクトに対してグローバルな幾つかのプロパティを設定することができる。
CopyrightNotice−発生されたコードにおいて出力されるべき著作権通告をオーバーライドする。
ProjectName−発生されるであろうORマッピングプロジェクトクラスのクラス名をオーバーライドする。
ProjectDescription−発生されるORマッピングオブジェクトクラスに静的変数として記憶されるであろう記述を設定する。
1. Project properties: A single object model is considered a “project”. It is therefore possible to set some global properties for the overall corresponding project object.
CopyrightNotice—Overrides the copyright notice to be output in the generated code.
ProjectName—Overrides the class name of the OR mapping project class that will be generated.
ProjectDescription—Sets a description that will be stored as a static variable in the generated OR mapping object class.

2.クラスプロパティ:クラスは、クラス図に基づいて形成される単一UMLクラスオブジェクトを含む。標準プロパティのセットをクリックすることにより、「Cmo」と称される新たなタブに、次のものを含むプロパティを追加することができる。
Generate−ドキュメンテーションの目的でのみ存在するあるクラスに対してコードの発生を回避するために「ノー」にセットされる。
GenerateEJB−クラスへの1つ以上のEJBインターフェイスを発生するために「イエス」にセットされる。
TableName−クラスに対してデフォールトテーブル名をオーバーライドする。デフォールトにより、大文字のクラス名の最初の27キャラクタがテーブル名となる。
IsStageable−以下に更に述べるように、この特定のクラスに対しステージング能力の発生を回避するために「偽」にセットされる。
MaxNumVersion−過去の変更の数をセットして特定クラスインスタンスを持続するために0より大きくセットする。
ReplaceClass−このクラス実施が取って代わる既存のクラスの全経路クラス名を指定する。
WrapperPackageName−ラッパー(ImplC)クラスが発生されるパッケージ名を指定する。
2. Class property: A class contains a single UML class object that is formed based on a class diagram. By clicking on a set of standard properties, you can add properties to a new tab called “Cmo” that includes:
Generate—set to “no” to avoid generating code for certain classes that exist only for documentation purposes.
GenerateEJB—set to “yes” to generate one or more EJB interfaces to the class.
Override the default table name for the TableName class. By default, the first 27 characters of the uppercase class name become the table name.
IsStageable—set to “false” to avoid generating staging capabilities for this particular class, as further described below.
MaxNumVersion—Sets the number of past changes and sets it greater than 0 to persist a particular class instance.
ReplaceClass--specifies the full path class name of an existing class that this class implementation replaces.
WrapperPackageName-specifies the package name in which the wrapper (ImplC) class is generated.

ImplPackageName−持続実施及びその一次ラッパー(Impl及びImplW)クラスが発生されるパッケージ名を指定する。
StageablePackageName−持続ステージング可能な実施(ImplS)が発生されるパッケージ名を指定する。
Constraint1ないしConstraint7−クラスに対するテーブルレベル制約を指定する。例えば、「UNIQUE(name、OwingMember)」
IsDisplayed−所与のユーザインターフェイスにおいてクラス名をユーザに表示すべきかどうか指定する。
DisplayName−クラスのデフォールト表示名をオーバーライドする。デフォールトにより、クラス名は、「Cmo」プレフィックスを除去し、次いで、大文字の直後に小文字が続くところにスペースを追加することによりクラス名が発生される。
DisplayDescription−このクラスに対して表示すべき記述を設定する。
ImplPackageName-specifies the package name in which the persistent implementation and its primary wrapper (Impl and ImplW) classes are generated.
StageablePackageName-Specifies the name of the package in which the implementation (ImplS) capable of persistent staging is generated.
Constraint 1 to Constraint 7—specify table level constraints for the class. For example, “UNIQUE (name, OwingMember)”
IsDisplayed—Specifies whether the class name should be displayed to the user in a given user interface.
DisplayName—Overrides the default display name of the class. By default, the class name is generated by removing the “Cmo” prefix and then adding a space where the lowercase letter immediately follows the uppercase letter.
DisplayDescription—Sets the description to be displayed for this class.

3.属性プロパティ:属性は、上述したベース形式属性に対し特定のクラスに追加することができる。属性は、「Cmo」と称される新たなタブを、次のプロパティと共にもつことができる。
ColumnName−この属性のクラスに対しテーブルにおけるこの属性のデフォールトカラム名をオーバーライドする。デフォールトにより、大文字の属性名の最初の30キャラクタと、ワード境界を分離するための「−」とが、カラム名となる。
I18NConstraintName−(属性が唯一に設定される場合に)このカラムに対して追加される_INテーブルに対しデフォールト制約名をオーバーライドする。
3. Attribute properties: Attributes can be added to a specific class for the base format attributes described above. The attribute can have a new tab called “Cmo” with the following properties:
ColumnName-Overrides this attribute's default column name in the table for this attribute's class. By default, the first 30 characters of the uppercase attribute name and "-" for separating word boundaries are column names.
I18NConstraintName--overrides the default constraint name for the _IN table that is added for this column (if the attribute is set uniquely).

4.関連性プロパティ:2つの特定のクラス間に関連性を追加することができる。関連性は、ロールと称される2つの側を含むことができる。関連性それ自体は、「CBOF」と称される新たなタブを次のプロパティと共にもつことができる。
RelationTableName−関連性が多数対多数又は単一方向のもの対多数の関係を表わす場合には、中間即ち「関係」テーブルを追加してもよい。関係テーブル名を指定するようにこのプロパティを設定する。デフォールトにより、関係テーブル名は、関係の両側のクラス名をとって、それらの間に「へ(TO)」を使用するよう試みる。この名前が大き過ぎる(27キャラクタより大きい)場合には、クラス名のイニシャル(ワード境界の最初の文字)の後にクラス名のストリングハッシュコードを続けたものが使用される。
4). Association property: An association can be added between two specific classes. An association can include two sides called rolls. The association itself can have a new tab called “CBOF” with the following properties:
RelationTableName—If the relationship represents a many-to-many or unidirectional one-to-many relationship, an intermediate or “relationship” table may be added. Set this property to specify the relationship table name. By default, the relationship table name takes the class name on both sides of the relationship and attempts to use “TO” between them. If this name is too large (greater than 27 characters), the class name initial (the first character of the word boundary) followed by the class name string hash code is used.

5.ロールプロパティ:ロールは、関連性の片側を表わす。関連性は、ロール側A及びロール側Bを有する。それ故、プロパティがロールオブジェクトに追加される場合には、2つの付加的なテーブルを、次のプロパティと共に、関連性プロパティ即ち「CBOF A」及び「CBOF B」に追加することができる。
ColumnName−この関連性のクラスに対するテーブルにおいてこの関連性のデフォールトカラム名をオーバーライドする。デフォールトにより、大文字のロール名の最初の30キャラクタと、ワード境界を分離する「−」とが、カラム名となる。
GenerateForeignKeyConstraint−関連性のこの側で外来キー制約を発生すべきでない場合に、「偽」にセットされる。
ForeignKeyConstraintName−関連性のこの側でデフォールト外来キー制約名をオーバーライドする。
5. Role property: A role represents one side of an association. The relevance has a roll side A and a roll side B. Thus, if a property is added to the role object, two additional tables can be added to the association properties, “CBOF A” and “CBOF B”, with the following properties:
ColumnName—Overrides this association default column name in the table for this association class. By default, the first 30 characters of the uppercase roll name and "-" separating the word boundaries are the column names.
GenerateForeignKeyConstraint—Set to “false” if a foreign key constraint should not be generated on this side of the association.
ForeKeyKeyConstraintName—Overrides the default foreign key constraint name on this side of the association.

以下に述べるように、水平パーティショニングは、オブジェクトのグループを含むようにプロジェクトプロパティとして、又は関係オブジェクトを含むようにクラスプロパティとして割り当てることができる。全てのクラス、属性及び関係がモデリングされると、コードを発生することができる。   As described below, horizontal partitioning can be assigned as a project property to include a group of objects or as a class property to include related objects. Once all classes, attributes and relationships are modeled, code can be generated.

また図5に示すように、オペレーションを指定すると共に、オペレーションのプロパティを割り当てることができる。CBOFアドインタブ501が示されている。EJBローカルインターフェイス及び/又はEJBリモートインターフェイスを発生すべきかどうか指示する少なくとも2つのプロパティ521にアクセスすることができる。各々のプロパティに対して、名前511、値512及びソース513が指示される。より一般的には、ローカルインターフェイスは、同じウェブコンテナ121又は同じパッケージに存在する発呼及び被呼オブジェクトに適応された比較的オーバーヘッドの少ない第1プロトコルに従う。リモートインターフェイスは、リモートメソッド呼び出しに適応されたオーバーヘッドの大きい第2プロトコルに従う。リモートメソッド呼び出しプロトコルは、CORBA、Java RMI、マイクロソフトトランザクションサーバー、マイクロソフトCOM/DCOM、マイクロソフト.NET Framework及びEnterprise JavaBeans(EJB)のような仕様及び製品に対して設けられる。ローカル及びリモートインターフェイスを発生する選択は、発呼オーバーヘッド及び/又はインターフェイスの露呈を制御する。   Further, as shown in FIG. 5, an operation can be designated and an operation property can be assigned. A CBOF add-in tab 501 is shown. At least two properties 521 can be accessed that indicate whether an EJB local interface and / or an EJB remote interface should be generated. For each property, a name 511, a value 512, and a source 513 are indicated. More generally, the local interface follows a first protocol with relatively low overhead adapted to calling and called objects residing in the same web container 121 or the same package. The remote interface follows a high overhead second protocol adapted for remote method calls. Remote method invocation protocols are CORBA, Java RMI, Microsoft Transaction Server, Microsoft COM / DCOM, Microsoft. Provided for specifications and products such as NET Framework and Enterprise JavaBeans (EJB). The choice of generating local and remote interfaces controls call overhead and / or interface exposure.

図6は、EJBラッピングに適応させることのできるCBOFモデルを示す。図6を参照すれば、本発明の一実施形態によるオブジェクトフレームワーク610のブロック図が示されている。別の実施形態では、オブジェクトフレームワーク610は、図6の実施形態に関連して説明するコンポーネントに加えて又はそれに代わって種々の他のコンポーネント又はコンフィギュレーションを容易に含むことができる。   FIG. 6 shows a CBOF model that can be adapted for EJB wrapping. Referring to FIG. 6, a block diagram of an object framework 610 according to one embodiment of the present invention is shown. In another embodiment, the object framework 610 can readily include various other components or configurations in addition to or instead of the components described in connection with the embodiment of FIG.

COF/CBOF実施の有用な態様は、次の組合せを含むことができる。即ち、オブジェクトモデル設計に制約を伴うことなくオブジェクトをモデリングするためのレーショナル・ローズの使用。カスタムビジネスロジックメソッドに対するプレースホルダ又はスタブでのコード発生。レーショナル・ローズ逆転エンジニアリングを必要とせずにオブジェクトのランタイム形成、読み取り、更新及び削除(CRUD)をサポートするコードの発生。マッピングパラメータのユーザ宣言を越えるユーザの相互作用をほとんど又は全く伴わないオブジェクト対レーショナル(OR)マッピング。関係データベースへのビジネスオブジェクトを持続させる持続マッピング情報の発生。情報を使用してデータベースを形成及び/又は移動させるデータベーススキーマ及びツールを形成するのに必要な情報を含む関係データベース及び制約の定義及び形成。フレームワークにおいてビジネスオブジェクトを容易に形成、読み取り、更新及び削除するために標準APIのセットを経てアクセスできるランタイム形成、読み取り、更新及び削除(CRUD)の単純なメソッド。データベースにおいて原子トランザクションを使用してオブジェクトのセットを形成、更新、及び削除するためのトランザクションパラダイムの使用。コミット時間及び楽観的ロックが使用されるまでデータベースが影響を受けないのでトランザクションを長く続けることができる。変更がテストされ、承認されそして配備されるまでオブジェクトのライブ生産バージョンに影響せずにビジネスオブジェクトへの変更をサポートするデータステージング。オブジェクトの基本的属性変更のオーデットトレイルを含むデータ変更経歴サポート。ビジネスオブジェクトの変換可能なストリング属性の透過的記憶及び検索に使用できるデータベーススキーマを形成するためのコード及び情報の発生。データベーススキーマに影響せずにランタイムにオブジェクトに動的に新たな属性を追加することをサポートする。オブジェクトの形成、更新又は削除の際に発生された事象をもつようにビジネスオブジェクトを構成するオプションを含むオブジェクト変更通知のサポートである。   Useful aspects of COF / CBOF implementation may include the following combinations: That is, the use of rational roses to model objects without any constraints on object model design. Code generation in placeholders or stubs for custom business logic methods. Generation of code that supports runtime creation, read, update, and delete (CRUD) of objects without the need for rational rose reversal engineering. Object-to-relational (OR) mapping with little or no user interaction beyond the user declaration of the mapping parameter. Generation of persistent mapping information that persists business objects to a relational database. Definition and formation of relational databases and constraints that contain the information necessary to form database schemas and tools that use information to create and / or move databases. A simple method of runtime creation, reading, updating and deleting (CRUD) that can be accessed via a set of standard APIs to easily create, read, update and delete business objects in the framework. Use of a transaction paradigm to create, update, and delete a set of objects using atomic transactions in the database. Transactions can last longer because the database is not affected until commit time and optimistic locking are used. Data staging that supports changes to business objects without affecting the live production version of the object until the change is tested, approved, and deployed. Data change history support, including an audit trail of basic object attribute changes. Generation of code and information to form a database schema that can be used for transparent storage and retrieval of translatable string attributes of business objects. Supports adding new attributes to objects dynamically at runtime without affecting the database schema. Support for object change notification, including options to configure business objects to have events that occur when objects are created, updated or deleted.

これらの事象は、データベースに対して持続され、そして事象通知サーバーにより管理することができる。又、ビジネスオブジェクトそれ自体は、メモリに最初に構成された後(init())、データベースに挿入された後(postInsert())、更新のためのトランザクションに追加された後(postAddForUpdate())、データベースへのトランザクションにおいて更新される前(preCommit())、データベースからロード/リフレッシュされた後(postRefresh())、及び最後に、データベースから削除される前に(preDelete())、あるアクションを実行するためのメソッドを実施することができる。   These events are persisted to the database and can be managed by an event notification server. Also, the business object itself is first configured in memory (init ()), inserted into the database (postInsert ()), and added to the transaction for update (postAddForUpdate ()). Perform an action before being updated in a transaction to the database (preCommit ()), after being loaded / refreshed from the database (postRefresh ()), and finally before being deleted from the database (preDelete ()) You can implement a method to

図6の実施形態において、5つのベースクラスのグループが水平軸614の上に示されており、好ましくは、ベースライブオブジェクトクラスCmoBaseImpl630と、ベースインターフェイスクラスCmoBase634と、ベースステージングクラスCmoBaseImplS638と、ベース国際化クラスCmoBaseI18N642と、ベースラッパークラスCmoBaseImplW644とを含むことができる。これらベースクラスの機能及び使用は、参考としてここに取り上げる特許出願に一般的に説明されている。   In the embodiment of FIG. 6, a group of five base classes is shown on the horizontal axis 614, preferably a base live object class CmoBaseImpl 630, a base interface class CmoBase 634, a base staging class CmoBaseImplS638, and a base internationalization. A class CmoBaseI18N642 and a base wrapper class CmoBaseImplW644 can be included. The functions and uses of these base classes are generally described in the patent applications cited herein for reference.

図6の実施形態において、ルートクラスのグループが水平軸614と水平軸618との間に示されており、好ましくは、前記の対応するベースクラスから継承する各ルートクラスを含むことができる。図6の実施形態において、ルートクラスは、好ましくは、ルートライブオブジェクトクラスAbstractXImpl646と、ルートインターフェイスクラスAbstractX650と、ルートステージングクラスAbstractXImplS654と、ルート国際化クラスAbstractXI18N658と、ルートラッパークラスAbstractXImplW662と、ルートカスタムクラスAbstractXImplC666とを含むことができる。   In the embodiment of FIG. 6, a group of root classes is shown between the horizontal axis 614 and the horizontal axis 618, and may preferably include each root class inherited from the corresponding base class. In the embodiment of FIG. 6, the root classes are preferably the root live object class AbstractXImpl 646, the root interface class AbstractX650, the root staging class AbstractXImplS654, the root internationalization class AbstractXI18N658, the root wrapper class AbstractXImplC66 Can be included.

図6の実施形態において、サブクラスのグループが水平軸618の下に示されており、好ましくは、前記の対応するベースクラス及びルートクラスから継承する各サブクラスを含むことができる。図6の実施形態において、これらサブクラスは、好ましくは、サブライブオブジェクトクラスXImpl670と、サブインターフェイスクラスX674と、サブステージングクラスXImplS678と、サブ国際化クラスXI18N682と、サブラッパークラスXImplW686と、サブカスタムクラスXImplC690とを含む。   In the embodiment of FIG. 6, a group of subclasses is shown below the horizontal axis 618 and may preferably include each subclass inherited from the corresponding base class and root class. In the embodiment of FIG. 6, these subclasses are preferably sublive object class XImpl670, subinterface class X674, substaging class XImplS678, subinternationalization class XI18N682, subwrapper class XImplW686, and subcustom class XImplC690. Including.

更に、図6において、上述した一連のインターフェイスクラスが垂直軸622の左に示されている。一連のラッパークラスが垂直軸622と垂直軸626との間に示されている。更に、データベース120に持続的に記憶されるクラスのグループが垂直軸626の右に示されている。インターフェイスは、システムのユーザに露呈されるパブリックJavaインターフェイスである。これらのインターフェイスは、取得、設定、追加、除去及びカスタムビジネスロジックメソッドを定義する。また、インターフェイスは、APIのjavadocを参照として含む。これらのインターフェイスが発生されると、手動で変更してはならない。というのは、手動で変更すると、その後のコード再生に生き残れないからである。   Further, in FIG. 6, the series of interface classes described above is shown to the left of the vertical axis 622. A series of wrapper classes are shown between the vertical axis 622 and the vertical axis 626. Further, groups of classes that are persistently stored in the database 120 are shown to the right of the vertical axis 626. The interface is a public Java interface that is exposed to system users. These interfaces define get, set, add, remove and custom business logic methods. The interface also includes an API javadoc as a reference. Once these interfaces are generated, they must not be changed manually. This is because if you change it manually, you won't survive subsequent chord playback.

一実施形態では、これらクラスは、ソフトウェアコンポーネントとしてTopLinkと相互作用する。以下の説明のあるものは、TopLinkに特有であるが、当業者であれば、同じ解決策を他のデータベースマッピング及び管理モジュールと共に適用できることが明らかであろう。持続クラスは、持続属性及び関係データベースへのマッピングを含むクラスとしてTOPLinkに対して述べた実施クラスである。3つの形式の持続クラスは、Impl、ImplS及びI18Nを含む。Implクラスは、データベースにおけるオブジェクトの厳密なライブバージョンを表わす。ImplSクラスは、データベースにおけるライブオブジェクトのシャドー又はステージングバージョンを表わす。インターフェイスクラスにおいて宣言された全ての取得/設定/追加/除去メソッドは、これらのクラスにおいて実施される。全てのビジネスロジックAPIは、UnsupportedOperationExceptionを投入する。I18Nクラスは、変換可能なストリング属性及び変換の位置を含む。Impl及びImplSクラスは、I18Nクラスに対して1対多の関係を有する。変換可能なストリング属性の取得/設定メソッドがコールされたときには、I18Nクラスの適当なインスタンスが、スレッドに設定された現在位置に基づいてアクセスされる。これらのクラスが発生されると、手動で変更してはならない。   In one embodiment, these classes interact with TopLink as a software component. Some of the description below is specific to TopLink, but it will be apparent to those skilled in the art that the same solution can be applied with other database mapping and management modules. A persistent class is an implementation class described to TOPLink as a class that includes a persistent attribute and mapping to a relational database. The three types of persistence classes include Impl, ImplS, and I18N. The Impl class represents an exact live version of an object in the database. The ImplS class represents a shadow or staging version of a live object in the database. All get / set / add / remove methods declared in the interface classes are implemented in these classes. Every business logic API throws in UnsupportedOperationException. The I18N class includes convertible string attributes and the location of the conversion. The Impl and ImplS classes have a one-to-many relationship with the I18N class. When the convertible string attribute get / set method is called, the appropriate instance of the I18N class is accessed based on the current position set for the thread. Once these classes are generated, they must not be changed manually.

ラッパークラスは、トランザクションサポート、ステージング、変更経歴、及びカスタムビジネスロジック機能を実施する。2つの形式のラッパークラス、ImplW及びImplCがある。ImplWクラスは、インターフェイスクラスから取得/設定/追加/除去メソッドだけを実施する抽象クラスである。これらのメソッドは、Implオブジェクト、ImplSオブジェクト、又はそれらの適当なTOPLinkトランザクションクローンにおいて値を検索又は設定すべきかどうか適切にチェックする。設定/追加/除去メソッドは、トランザクションにおける更新に対してインスタンスが追加されなかった場合にCeNotInTransactionExceptionを投入する。取得メソッドは、トランザクションの外部のクローンラッパーにアクセスする試みがなされた場合に「アクセスしたラッパー無効」のメッセージと共にCeRuntimeExceptionを投入する。   The wrapper class implements transaction support, staging, change history, and custom business logic functions. There are two types of wrapper classes, ImplW and ImplC. The ImplW class is an abstract class that implements only get / set / add / remove methods from the interface class. These methods appropriately check whether the value should be retrieved or set in the Impl object, the ImplS object, or their appropriate TOPLink transaction clone. The set / add / remove method throws CeNotInTransactionException when no instance is added for an update in a transaction. The get method throws CeRuntimeException with an “accessed wrapper invalid” message when an attempt is made to access a clone wrapper outside the transaction.

ImplCクラスは、持続オブジェクトがアクセスされるか又は形成されたときにインスタンス生成された具体的クラスである。このクラスは、それに対応するImplWクラスから継承される。ImplCクラスは、カスタムビジネスロジックメソッドの実施を含むように手で変更することができる。ImplWクラスは、各再生で完全に発生される。ImplCクラスは、通常、いったん発生されると、維持できる個々のファイルとしてソース制御に対してチェックされる。ImplW及びImplCクラスの継承構造に注意されたい。ImplWクラスは、そのスーパークラスのImplCから継承される。ImplCは、それに対応するImplWクラスから継承される。又、ImplWは、インターフェイスクラスにおいて宣言されたビジネスロジックAPIを実施しないことにも注意されたい。これらは、ImplCクラスにより実施される。あるクラスをモデルにおいて抽象と宣言することができ、これは、ImplCクラスを抽象とする。   The ImplC class is a concrete class that is instantiated when a persistent object is accessed or created. This class is inherited from the corresponding ImplW class. The ImplC class can be modified manually to include the implementation of custom business logic methods. The ImplW class is completely generated with each playback. The ImplC class is usually checked against source control as individual files that can be maintained once generated. Note the inheritance structure of the ImplW and ImplC classes. The ImplW class is inherited from its superclass ImplC. ImplC is inherited from the corresponding ImplW class. Note also that ImplW does not implement the business logic API declared in the interface class. These are implemented by the ImplC class. A class can be declared abstract in the model, which makes the ImplC class abstract.

又、持続クラス及びそれに関連したTOPLinkトランザクションクローンは、それに対応するラッパーへの参照を有することにも注意されたい。TOPLinkのキャッシュにおける持続インスタンスは、それらのラッパーのリードオンリーバージョンを指す。クローンは、それらラッパーの書き込み可能なバージョンを指す。クローンがコミットされて、TOPLinkのキャッシュされたインスタンスへ合流されて戻されるときには、それに対応するラッパーが無効になる。クローンのラッパーは、それに対応するリードオンリーラッパーへの参照を有し、これは、ラッパーにおけるgetReadOnlyObject()メソッドをコールすることにより得ることができる。   Note also that persistent classes and their associated TOPLink transaction clones have references to their corresponding wrappers. Persistent instances in the TOPLink cache point to read-only versions of those wrappers. A clone refers to a writable version of those wrappers. When the clone is committed and merged back into the TOPLink cached instance, the corresponding wrapper becomes invalid. The clone wrapper has a reference to its corresponding read-only wrapper, which can be obtained by calling the getReadOnlyObject () method in the wrapper.

このファイルセットを説明するには、ベースクラスハイアラーキーが必要となる。図6は、このベースクラスハイアラーキーの一実施形態を示す。この図の最上部には、5つのベースクラス、CmoBaseImpl630、CmoBase634、CmoBaseImplW644、CmoBaseImplS638、及びCmoBaseI18N642がある。   To describe this fileset, you need a base class hierarchy. FIG. 6 shows one embodiment of this base class hierarchy. At the top of the figure are five base classes, CmoBaseImpl 630, CmoBase 634, CmoBaseImplW644, CmoBaseImplS638, and CmoBaseI18N642.

CmoBase634は、全てのオブジェクト332が継承されて実施されるところのインターフェイスクラスである。このインターフェイスは、全てのオブジェクト332が実施しなければならない全てのベース属性及びオペレーションの宣言を含む。このオブジェクトフレームワーク610の種々の特徴は、全てのオブジェクトにわたって適用できるようにこのインターフェイスに追加される属性及びメソッドを含む。又、CmoBase634は、このフレームワークに設けられたメカニズムにより発生されるオブジェクト332をマークする方法としても働く。図7に示すように、別のCmsBaseクラス702が、持続を必要としない過渡的オブジェクトとして設けられてもよい。   CmoBase 634 is an interface class in which all objects 332 are inherited and implemented. This interface contains a declaration of all base attributes and operations that all objects 332 must implement. Various features of the object framework 610 include attributes and methods that are added to the interface so that they can be applied across all objects. CmoBase 634 also serves as a method for marking objects 332 generated by the mechanisms provided in this framework. As shown in FIG. 7, another CmsBase class 702 may be provided as a transient object that does not require persistence.

CmoBaseImplW644は、他の実施オブジェクト(CmoBaseImpl、CmoBaseImplS、及びCmoBaseI18N)へのアクセスをラップするための実施を含むラッパーオブジェクトを表わす。CmoBaseImplWクラスは、CmoBaseインターフェイスを実施する。CmoBaseImplWクラスの目的は、オペレーションを実行するためにImpl(ライブオブジェクトに対する)又はImplS(ステージングされたオブジェクトに対する)のいずれのインスタンスをコールすべきか決定することである。このクラスは、4つの重要な関係を有する。liveObjectは、データベースにおける一次ライブビジネスオブジェクトを表わすCmoBaseImplオブジェクトのインスタンスを保持する。shadowObjectは、データベースにおけるライブビジネスオブジェクトのシャドー又はステージングされたバージョンを表わすCmoBaseImplSオブジェクトのインスタンスを保持する。clonedObjectは、オブジェクトが形成又は更新トランザクションに入れられたときにliveObject又はshadowObjectのクローンコピーを保持する。liveClonedObjectは、clonedObjectがshadowObjectのクローンコピーを含むときにliveObjectのクローンコピーを保持する(これは、オブジェクトがトランザクションにおいて更新又は形成に対してステージングされたときに生じる)。   CmoBaseImplW644 represents a wrapper object that contains implementations for wrapping access to other enforcement objects (CmoBaseImpl, CmoBaseImplS, and CmoBaseI18N). The CmoBaseImplW class implements the CmoBase interface. The purpose of the CmoBaseImplW class is to determine which instance of Impl (for live objects) or ImplS (for staged objects) should be called to perform the operation. This class has four important relationships. liveObject holds an instance of a CmoBaseImpl object that represents the primary live business object in the database. The shadowObject holds an instance of a CmoBaseImplS object that represents a shadowed or staged version of the live business object in the database. The clonedObject holds a clone copy of the liveObject or shadowObject when the object is put into a create or update transaction. A liveClonedObject holds a clone copy of the liveObject when the clonedObject contains a clone copy of the shadowObject (this happens when the object is staged for update or formation in a transaction).

liveObjectには、リードオンリーラッパーが与えられる。ラッパーは、リードオンリーラッパーをトランザクションに追加し、これが、liveObjectにアクセスしている他のユーザに影響せずに変更できるliveObjectのクローンを含む新たなラッパーを返送することにより、書き込み可能とされる。トランザクションがコミットされたときには、クローンを使用して、更新をデータベースへ送信すると共に、変更をliveObjectへ合流させる。書き込み可能なラッパーがコミットされると、それはもはや有用ではなく、リードオンリーラッパーにアクセスしなければならない(これは、書き込み可能なラッパーがメモリを節約するためにごみ収集できるようにする)。このクラスのインスタンスは、アクション(形成、読み取り、アクセス関係及び更新)がとられたときにユーザに返送されるものである。   LiveObject is given a read-only wrapper. The wrapper is made writable by adding a read-only wrapper to the transaction, which returns a new wrapper containing a clone of the liveObject that can be changed without affecting other users accessing the liveObject. When a transaction is committed, the clone is used to send updates to the database and to merge changes into the liveObject. Once the writable wrapper is committed, it is no longer useful and must access the read-only wrapper (this allows the writable wrapper to collect garbage to save memory). Instances of this class are those that are returned to the user when actions (create, read, access relationship and update) are taken.

CmoBaseImpl630は、データベースにおけるライブ持続オブジェクトを表わす。このクラスは、オブジェクト対関係マッピングを制御するプロパティを含む。このような情報は、テーブル、カラム及び制約を含むスキーマの形成を許す。このクラスは、関係(そのオブジェクト形式との単一の関係又は収集形式を使用する多数の関係)を表わす属性を含むオブジェクトモデルで定義された属性を含む。このクラスは、CmoBaseインターフェイス634も実施する。属性及び関係に対するゲッター及びセッターは、関連属性又は関係にアクセスするために実施される。他のビジネスロジックメソッド(モデルにおいて宣言された)は、メソッドへの偶発的なアクセスを防止するためにUnsupportedOperationExceptionを投入する。ImplWクラスだけがこのクラスにアクセスしなければならず、そしてImplクラスにおいていかなるビジネスロジックメソッドもコールしてはならない。   CmoBaseImpl 630 represents a live persistent object in the database. This class includes properties that control object-to-relationship mapping. Such information allows the formation of a schema that includes tables, columns, and constraints. This class includes attributes defined in the object model, including attributes that represent relationships (single relationships with that object type or multiple relationships that use a collection format). This class also implements the CmoBase interface 634. Getters and setters for attributes and relationships are implemented to access related attributes or relationships. Other business logic methods (declared in the model) throw in UnsupportedOperationException to prevent accidental access to the method. Only the ImplW class must access this class, and no business logic methods must be called in the Impl class.

CmoBaseImplS638は、本質的に、CmoBaseImpleクラスの厳密なコピーであるが、Implインスタンスのシャドー又は「ステージングされた」値を表わす。これらのステージングされた値は、個別のテーブルに記憶され、そして個別のインスタンスであり、従って、ステージングされたことを表わす個別のクラスが設けられて、個別のテーブルへマップされる。CmoBaseImplS638の利用については、参考として取り上げた特許出願に更に説明されている。   CmoBaseImplS 638 is essentially an exact copy of the CmoBaseImpl class, but represents the shadow or “staged” value of the Impl instance. These staged values are stored in a separate table and are separate instances, and thus a separate class representing what has been staged is provided and mapped to a separate table. The use of CmoBaseImplS638 is further explained in the patent application taken up as a reference.

CmoBaseI18N642は、国際化のサポートに使用されるベースクラスである。このクラスは、変換可能なストリング値を保持する全てのテーブルに必要とされるベース属性を保持する。オブジェクトのImplクラスが発生されると、CmoBaseI18N642から継承される内部クラスも、そのクラスが変換可能なストリング属性を有する場合に発生される。CmoBaseI18N642のインスタンスは、Implクラスの変換可能なストリング属性の言語変換に対応する。変換のステージングされた値について付加的なインスタンスが与えられる。変換のリストは、クラスハイアラーキーの各レベルに保持される。これは、CmoBaseI18Nクラス及びテーブルのハイアラーキーを必要とせずに変換可能なストリング属性をいつでも追加/除去するのを許す。これらの特徴は、参考として取り上げた特許出願に詳細に説明されている。   CmoBaseI18N642 is a base class used for internationalization support. This class holds the base attributes required for all tables that hold translatable string values. When an Impl class of an object is generated, an inner class inherited from CmoBaseI18N642 is also generated if the class has a convertible string attribute. An instance of CmoBaseI18N642 corresponds to language conversion of convertible string attributes of the Impl class. Additional instances are given for the staged values of the transformation. A list of transformations is maintained at each level of the class hierarchy. This allows to add / remove translatable string attributes at any time without the need for CmoBaseI18N class and table hierarchy. These features are explained in detail in the patent application taken up as a reference.

オブジェクトが発生されると(例えば、AbstractX646)、発生されたクラスが適当なベースクラスを拡張する。図6に示すように、AbstractX646は、CmoBaseベースインターフェイスから継承されるインターフェイスである。AbstractXImplW662は、CmoBaseImplW664から継承される。AbstractXImpl646は、CmoBaseImpl630から継承される。AbstractXImplS654は、CmoBaseImplS638から継承される。更に、AbstractXの変換可能なストリング属性があるので、AbstractXI18N658は、CmoBaseI18N642から継承される。   When an object is generated (eg, AbstractX646), the generated class extends the appropriate base class. As shown in FIG. 6, AbstractX646 is an interface inherited from the CmoBase base interface. AbstractXImplW662 is inherited from CmoBaseImplW664. AbstractXImpl 646 is inherited from CmoBaseImpl 630. AbstractXImplS654 is inherited from CmoBaseImplS638. Furthermore, since there is a string attribute that can be converted in AbstractX, AbstractXI18N658 is inherited from CmoBaseI18N642.

又、AbstractXImplW662から継承されたAbstractXImplC666と称される別のカスタムクラスもある。ImplCクラスは、モデルにおけるインターフェイスに追加されたビジネスロジックメソッドのためのユーザ特有のビジネスロジックコードを含む。ImplCクラスは、コード発生される他のインターフェイス又は実施を含まない。これは、ImplCを一度だけ発生するのを許し、次いで、ビジネスロジックコードを追加、変更又は除去する必要があるときだけ更新される。他のクラス形式(インターフェイス、ImplW、Impl、ImplS、I18N)は、モデルに変更が生じるたびに、オブジェクトモデル320から常に再生される。これは、発生されたコードが、モデルへの逆転エンジニアリングを必要とする手動でのカスタム変更を要求するという問題を解消し、しかも、時間と共に変化し得るビジネスロジック実施の書き込みを許す。発生されたコードは、ImplCに書き込まれるべきコードを必要とせずに使用できる。ImplCは、実施されるべきユーザ特有のビジネスロジックメソッドの場所を与える。   There is also another custom class called AbstractXImplC666 inherited from AbstractXImplW662. The ImplC class contains user-specific business logic code for business logic methods added to the interface in the model. The ImplC class does not include other interfaces or implementations that are code generated. This allows ImplC to be generated only once and is then updated only when business logic code needs to be added, changed or removed. Other class types (interface, ImplW, Impl, ImplS, I18N) are always played back from the object model 320 whenever the model changes. This eliminates the problem that the generated code requires manual custom changes that require reverse engineering to the model, yet allows writing business logic implementations that can change over time. The generated code can be used without requiring code to be written to ImplC. ImplC provides the location of user specific business logic methods to be implemented.

更に、図6は、Xと称される別のクラスがいかにAbstractXクラスを更に拡張できるか示す。各発生されたクラス形式Xは、AbstractXの適当なクラス形式から継承される。しかしながら、XImplW686は、AbstractXImplC666から継承され、従って、XImplC686の実施は、AbstractXクラスのビジネスロジックメソッドを、それが直接的サブクラスであったかのようにオーバーライドすることができる。本発明の1つの態様は、継承構造及びコードの複雑さを自動的に取り扱い、これらクラス間の関係を管理することである。直観的に、ユーザは、ImplCにおける視覚的にモデリングされたオブジェクト及びビジネスロジックコードの実施について取り組むだけでよい。   In addition, FIG. 6 shows how another class called X can further extend the AbstractX class. Each generated class format X is inherited from the appropriate class format in AbstractX. However, XImplW686 is inherited from AbstractXImplC666, so an implementation of XImplC686 can override the business logic method of the AbstractX class as if it were a direct subclass. One aspect of the present invention is to automatically handle inheritance structures and code complexity and manage the relationships between these classes. Intuitively, the user only needs to work on the implementation of visually modeled objects and business logic code in ImplC.

図7は、EJB及びJ2EEをサポートするように適応されるクラスCmoBase701、CmsBase702及びCmoAttribute703の態様を示すクラス図である。持続的なユーザ変更可能なオブジェクトは、CmoBase701から継承される。しかしながら、多数の属性は、過渡的で、ユーザ変更可能でなく、従って、メモリに形成されたオブジェクトの作用コピーにそれらの静的な値を割り当てることができる。これらの過渡的な属性は、過渡状態に適応されたプロパティ及び属性を有するCmsBase702から継承されてもよい。属性レベルにおける持続的なユーザ変更可能なオブジェクトは、例えば、名前、記述、最大バージョン数、notifyActionを含む。CmoBaseクラス701は、自動的に発生される一次キー「id」を含む。IDは、DB内の行及び形式にとって独特である。従って、完全に且つ普遍的に独特のIDは、データベース識別子、形式及びIDフィールドを連結する。この連結された独特の識別子は、独特なIDの現在のEJB2.0要求を満足する。又、連結された独特の識別子は、以下に述べる水平パーティショニングにも有用である。というのは、CmoBase701におけるIDが、データベース及び形式内で独特であることだけを保証するからである。CmoBase701の付加的な属性は、図示された状態、バージョニング及びステージング属性を含む。以下の図10に示すように、クラスCmoBaseLocal及びCmoBaseRemoteは、CmoBaseから継承され又はそれに対応するように構成される。CmoAttribute703は、参考として取り上げる特許出願に更に説明されたように、オブジェクトに対するカスタム属性をサポートする。   FIG. 7 is a class diagram illustrating aspects of classes CmoBase 701, CmsBase 702, and CmoAttribute 703 adapted to support EJB and J2EE. Persistent user-modifiable objects are inherited from CmoBase 701. However, many attributes are transient and not user-modifiable, so they can be assigned their static values to working copies of objects formed in memory. These transient attributes may be inherited from CmsBase 702 with properties and attributes adapted to the transient state. Persistent user-modifiable objects at the attribute level include, for example, name, description, maximum version number, and notifyAction. The CmoBase class 701 includes a primary key “id” that is automatically generated. The ID is unique to the row and format in the DB. Thus, a fully and universally unique ID concatenates database identifier, type and ID fields. This concatenated unique identifier satisfies the current EJB 2.0 requirement for a unique ID. The concatenated unique identifier is also useful for horizontal partitioning as described below. This is because the ID in CmoBase 701 is only guaranteed to be unique within the database and format. Additional attributes of CmoBase 701 include the illustrated state, versioning and staging attributes. As shown in FIG. 10 below, the classes CmoBaseLocal and CmoBaseRemote are configured to be inherited from or correspond to CmoBase. CmoAttribute 703 supports custom attributes for objects, as further described in the patent application we take as a reference.

COFツール及びモデルの、EJB及びJ2EEサポートへの適応が図8から10に示されている。好ましくは、システムにおけるビジネスオブジェクトインターフェイスは、図10におけるjavax.ejb.EJBLocalObject1013から拡張されねばならない。この拡張パターンは、リモートアクセスに関連したオーバーヘッドをこうむることなく、同じJava仮想マシン(JVM)で実行されるEJBオブジェクトにおける呼び出しメソッドコールへのアクセスを与える。リモートアクセスされる必要のある各ビジネスオブジェクトは、ローカルインターフェイスと同じ名前をもち且つ「ejb」パッケージのもとに配置された個別のインターフェイスを必要とする。リモートインターフェイスは、javax.ejb.EJBObject1012を拡張し、そしてリモートアクセスできるメソッドのみを含む。ローカル及びリモートインターフェイスに加えて、ejb仕様は、図9に示すように、ejbオブジェクトを形成して見出すためのホームインターフェイスを必要とする。各ビジネスオブジェクトは、javax.ejb.EJBLocalHome911を拡張するローカルホームインターフェイス912と、javax.ejb.EJBHome901を拡張するリモートホームインターフェイス902とを有する。   The adaptation of COF tools and models to EJB and J2EE support is shown in FIGS. Preferably, the business object interface in the system is Javax. ejb. It must be extended from EJBLocalObject 1013. This extended pattern provides access to invocation method calls on EJB objects running on the same Java Virtual Machine (JVM) without incurring the overhead associated with remote access. Each business object that needs to be accessed remotely requires a separate interface that has the same name as the local interface and is located under the “ejb” package. The remote interface is Javax. ejb. It extends EJObject 1012 and includes only methods that can be accessed remotely. In addition to the local and remote interfaces, the ejb specification requires a home interface for creating and finding ejb objects, as shown in FIG. Each business object is a Javax. ejb. A local home interface 912 extending EJBLocalHome 911; ejb. A remote home interface 902 that extends the EJB Home 901.

ビジネスロジックを実施するコードを含むビーンクラスは、通常、インターフェイス名にサフィックス「ImplC」を設けることで命名される。例えば、図8では、PersonImplC842及びEmployeeImplC862は、Person(個人)及びEmployee(従業員)インターフェイス821及び841に対応するビジネスロジックを含むように意図されたオブジェクトである。「ImplC」における全てのビジネスメソッドにリモートアクセスできるのではない。ローカルメソッドのパラメータと、EJBに適合するために必要に応じて「シリアライザブル(Serializable)」に設定された復帰値とを有するリモートメソッドを実施することができる。これをイネーブルするために、フレームワークは、付加的なリモートビジネスメソッドを実施できる充分な「ビーン(Bean)」(例えば、PersonBean)をもつクラスを発生する。ビジネスロジック実施を与えるのに加えて、多数のEJB特有のコールバックが実施される。これらコールバックは、CmoBaseImplWクラス(図6の644)においてjavax.ejb.EntityBeanインターフェイス1011を実施することにより持続的オブジェクトに対して与えられる。   A bean class containing code that implements business logic is usually named by providing the interface name with the suffix “ImplC”. For example, in FIG. 8, PersonImplC842 and EmployeeImplC862 are objects intended to include business logic corresponding to Person and Employee interfaces 821 and 841. Not all business methods in “ImplC” can be accessed remotely. A remote method with local method parameters and a return value set to “Serializable” can be implemented as needed to conform to EJB. To enable this, the framework generates a class with enough “beans” (eg, PersonBean) that can implement additional remote business methods. In addition to providing business logic enforcement, a number of EJB specific callbacks are implemented. These callbacks are called javax.xml in the CmoBaseImplW class (644 in FIG. 6). ejb. Provided for persistent objects by implementing the EntityBean interface 1011.

EJB機能を与えるために実施されるコールバックは、ejbCreate()、ejbPostCreate()、ejbFindByPrimaryKey(PrimaryKeykey)、ejbLoad()、ejbStore()、ejbRemove()、ejbActivate()、ejbPassivate()、setEntityContext(EntityContext ctx)及びunsetEntityContext()を含む。これらのコールバックの中で、クライアントがホームインターフェイスにおけるcreate()メソッドをコールしたときに、ejbCreate()メソッドがコールされる。ejbコンテナは、ビーン(ImplCクラス)のインスタンスを形成し、そしてビーンにおけるejbCreate()メソッドをコールする。実施は、CmoTransactionを取得又は形成し、このビーンをトランザクションに追加し、ラッパーオブジェクトpreAllocateobjectIdを初期化し、トランザクションをコミットし、そしてPrimaryKeyObjectを返送するメソッドを与えねばならない。このメソッドは、オブジェクトを初期化するのに必要な非ナルデータベース制約パラメータを通過させるために多数のケースにおいてオーバーロードされる必要がある。   Callbacks implemented to provide the EJB function are: ejbCreate (), ejbPostCreate (), ejbFindByPrimaryKey (PrimaryKeykey), ejbLoad (), ejbStore (), ejbStore (), ejbStore (), ejbStore (), ejbStore (), ejbStore () ) And unsetEntityContext (). Among these callbacks, the ejbCreate () method is called when the client calls the create () method in the home interface. The ejb container creates an instance of the bean (ImplC class) and calls the ejbCreate () method on the bean. An implementation must provide methods to get or form a CmoTransaction, add this bean to the transaction, initialize the wrapper object preAllocateObjectId, commit the transaction, and return the PrimaryKeyObject. This method needs to be overloaded in many cases to pass the non-null database constraint parameters needed to initialize the object.

ejbPostCreate()メソッドは、ejbCreate()メソッドコールの直後にコンテナによりコールされる。このメソッドは、ejbCreate()と同じ数のアーギュメントを有すると共に、付加的な初期化を与え且つそのライフスパン中に必要とされるリソースを割り当てねばならない。   The ejbPostCreate () method is called by the container immediately after the ejbCreate () method call. This method must have the same number of arguments as ejbCreate (), provide additional initialization, and allocate the resources needed during its lifespan.

ejbFindByPrimaryKey(PrimaryKeykey)メソッドは、クライアントがホームインターフェイスにおけるfindByPrimaryKey()を呼び出したときにコールされる。実施は、トランザクションが必要とされないことを指示し、オブジェクトidに基づいてデータベースのオブジェクトを見出し(CmoClientSession.findById()メソッドを使用)、そしてPrimaryKeyオブジェクトを返送するメソッドを与えねばならない。このメソッドは、カスタム問合せに対してオーバーロードされる必要がある。   The ejbFindByPrimaryKey (PrimaryKeykey) method is called when the client calls findByPrimaryKey () in the home interface. The implementation must indicate that no transaction is required, find a database object based on the object id (using the CmoClientSession.findById () method), and provide a method that returns a PrimaryKey object. This method needs to be overloaded for custom queries.

ejbLoad()コールバックメソッドは、エンティティビーンの「読み取り」機能にほぼ対応する。本発明の態様を実施する1つの実施形態では、ビーンは、通常、create()又はfind()メソッド中にTOPLinkORマッピングを使用して初期化され、従って、このメソッドは、ある後処理オペレーションに対して使用できる。   The ejbLoad () callback method roughly corresponds to the “read” function of the entity bean. In one embodiment that implements aspects of the invention, the bean is typically initialized using a TOPLinkOR mapping during the create () or find () method, so that this method is used for certain post-processing operations. Can be used.

ejbStore()コールバックメソッドは、エンティティビーンの「更新」機能にほぼ対応する。この機能は、CmoTransactionをスタートする必要があり且つ更新のためにトランザクションにオブジェクトが追加される以外は、本発明のCmoTransactionに既にカプセル化されている。   The ejbStore () callback method roughly corresponds to the “update” function of the entity bean. This function is already encapsulated in the CmoTransaction of the present invention, except that the CmoTransaction needs to be started and an object is added to the transaction for update.

ejbRemove()コールバックメソッドは、データストアからオブジェクトを除去する。CmoTransactionがスタートされ、削除のためのオブジェクトを追加する。   The ejbRemove () callback method removes an object from the data store. CmoTransaction is started and an object for deletion is added.

アクチベーションプロセス中に、ビーンインスタンスにおけるejbActivate()メソッドがコールされた後に、ejbLoad()メソッドがコールされる。ビーンがアクチベートされ、そしてその状態がその基礎となるデータベース記録に適切に同期されると、ビジネスメソッドが進められる。ビジネスメソッドへのその後のコールは、ビーンインスタンスへ直接デリゲートされる。   During the activation process, the ejbLoad () method is called after the ejbActivate () method on the bean instance is called. Once the bean is activated and its state is properly synchronized to its underlying database record, the business method proceeds. Subsequent calls to the business method are delegated directly to the bean instance.

ejbPassivate()は、パッシベーション中に使用される。パッシベーションプロセス中に、コンテナは、ビーンインスタンスにおけるejbStore()メソッドを呼び出す。ビーンインスタンスは、データベースを更新する役割を果たす。データベースの更新後に、コンテナは、ビーンインスタンスにおけるejbPassivate()メソッドを呼び出し、ビーンがパッシベーションされる前に以前に割り当てられていたリソースを解放する機会をそれ自身与える。   ejbPassivate () is used during passivation. During the passivation process, the container calls the ejbStore () method on the bean instance. The bean instance serves to update the database. After updating the database, the container calls itself the ejbPassivate () method on the bean instance, giving itself an opportunity to release resources that were previously allocated before the bean was passivated.

setEntityContext(EntityContext ctx)メソッドは、ビーン初期化中にビーンのコンテクストでコールされる。コンテクストは、将来の使用のためにセーブされる。unsetEntityContext()は、コンテクスト設定を実行する。コンテナは、ビーンにより使用されたリソースを解放することが判断された場合に、プールされたビーンのごみ収集を行うことができ、この場合に、存在しない状態へ戻る移行が実行される。この移行時間中に、コンテナはこのメソッドをコールする。このメソッドは、このビーンにより使用されるリソースを割当て解除する。   The setEntityContext (EntityContext ctx) method is called in the bean context during bean initialization. The context is saved for future use. unsetEntityContext () executes the context setting. If the container is determined to release the resources used by the bean, it can perform a pooled bean garbage collection, in which case a transition back to a non-existent state is performed. During this transition time, the container calls this method. This method deallocates resources used by this bean.

図8は、EJB適合CBOFオブジェクトモデルを、ローカル及びリモートの両アクセス及びインターフェイスと共に、個人(1人及び複数)及び従業員(1人及び複数)のための簡単なオブジェクトに適用するところを示す。個人821、824及び従業員841、834のオブジェクトは、EJBLocalObject811及びEJBObject814から実施される。ローカルオブジェクトの実施は、ローカルの減少オーバーヘッドアクセスをサポートする。EJBObjectの実施は、リモートオブジェクトアクセスをサポートする。ローカルオブジェクトの標準プロパティは、上述したように、CmoBase812から継承される。図8全体にわたり、サフィックスImplW及びImplCが、ラッパー及び具体的実施のために使用される。EntityBean813は、CmoBaseImplW822により実施される。個人821及び従業員841のオブジェクトの実施は、CmoBaseImplW822から継承される。これらの実施は、PersonImplW832、PersonImplC842、EmployeeImplW852及びEmployeeImplC862を含む。図9について説明するように、2つのホームオブジェクトEJBLocalHome853及びEJBHome833がローカル及びリモートインターフェイスに対して設けられている。これらホームオブジェクトの実施は、PersonLocalHome863、PersonHome843、EmployeeLocalHome864、及びEmployeeHome844を含む。   FIG. 8 illustrates applying the EJB-compliant CBOF object model to simple objects for individuals (one and multiple) and employees (one and multiple), with both local and remote access and interfaces. The objects of individuals 821, 824 and employees 841, 834 are implemented from EJBLocalObject 811 and EJBOObject 814. Local object implementation supports local reduced overhead access. The EJBOObject implementation supports remote object access. Standard properties of local objects are inherited from CmoBase 812 as described above. Throughout FIG. 8, the suffixes ImplW and ImplC are used for wrappers and specific implementations. EntityBean 813 is implemented by CmoBaseImplW822. Object implementations for person 821 and employee 841 are inherited from CmoBaseImplW822. These implementations include PersonImplW832, PersonImplC842, EmployeeImplW852, and EmployeeImplC862. As described with reference to FIG. 9, two home objects EJBLLocalHome 853 and EJBHome 833 are provided for the local and remote interfaces. These home object implementations include PersonLocalHome 863, PersonHome 843, EmployeeLocalHome 864, and EmployeeHome 844.

図9は、図8の一部分を一般化したもので、オブジェクトに対してホームを必要とするEJB規定に適合するものを示す。ホームは、両リモート及びローカルオブジェクト並びにインターフェイス901及び911に対して各々設けられる。各ビジネスオブジェクトは、javax.ejb.EJBHome901を拡張するリモートホームインターフェイス902と、javax.ejb.EJBLocalHome911を拡張するローカルホームインターフェイス912とを有する。リモート及びローカルホームインターフェイス902、912は、更に、CmoApplicationConfigRemoteHome903及びCmoApplicationConfigLocalHome913により拡張される。   FIG. 9 is a generalization of a portion of FIG. 8 and shows what conforms to the EJB specification that requires a home for an object. Homes are provided for both remote and local objects and interfaces 901 and 911, respectively. Each business object is a Javax. ejb. A remote home interface 902 that extends the EJB Home 901; ejb. And a local home interface 912 that extends EJBLocalHome 911. The remote and local home interfaces 902, 912 are further extended by CmoApplicationConfigRemoteHome 903 and CmoApplicationConfigLocalHome 913.

図10も図8の一部分を一般化したもので、EJBをサポートするための付加的なメカニズムを示す。オブジェクトjavax.ejb.EJBObject1012及びjavax.ejb.EJBLocalObject1013がCmoBaseRemote1022及びCmoBaseLocal1023へ拡張される。   FIG. 10 is also a generalization of a portion of FIG. 8 and shows an additional mechanism for supporting EJB. Object javax. ejb. EJBOObject 1012 and javax. ejb. EJBLocalObject 1013 is expanded to CmoBaseRemote 1022 and CmoBaseLocal 1023.

EJB2.0仕様は、EJBエンティティ間の関係をサポートする。3つの基本的関係主要素(1対1、1対多数、及び多数対多数)が全てサポートされる。更に、これらの関係は、EJB2.0仕様の新たな問合せ言語を使用してナビゲーションすることができる。関係は、抽象アクセッサーメソッドを介して管理される。関連付けられたオブジェクトの多様性が多数である関係の場合には、抽象アクセッサーのパラメータ又は返送値形式が、その関係を表わす収集クラスである。この収集クラスは、java.util.Collection又はjava.util.Setインターフェイスを実施する。任意であるが、仕様は、java.util.Map及びjava.util.Listを返送形式として追加してもよい。収集クラスの多様性が1である関係の場合には、抽象アクセッサーのパラメータ又は返送値形式が、その関連オブジェクトの単一インスタンスである。   The EJB 2.0 specification supports relationships between EJB entities. All three basic relationship main elements (one-to-one, one-to-many, and many-to-many) are supported. Furthermore, these relationships can be navigated using a new query language of the EJB 2.0 specification. Relationships are managed through abstract accessor methods. In the case of a relationship with a large variety of associated objects, the abstract accessor parameter or return value format is a collection class that represents the relationship. This collection class is Java. util. Collection or Java. util. Implement the Set interface. Optionally, the specification is Java. util. Map and Java. util. List may be added as a return format. For a relationship where the diversity of the collection class is 1, the abstract accessor parameter or return value format is a single instance of the associated object.

COFにおける関係アクセッサーは、それに対応するオブジェクトの配列としてパラメータ又は返送値形式を有する。それらを、リモートインターフェイスを経てejbアクセス可能にするために、それらの関係に対する付加的なメソッドをリモートインターフェイスにおいて与えて、ImplWにおいて実施しなければならない。例えば、「従業員とアドレスの関係」は、非常に多数で且つ両方向のものである。例えば、「従業員とアドレスの関係」のような関係を横断するローカル及びリモートメソッドを実施することができる。   Relational accessors in COF have a parameter or return value format as an array of corresponding objects. In order to make them ejb accessible via the remote interface, additional methods for their relationship must be provided at the remote interface and implemented in ImplW. For example, the “employee-address relationship” is very numerous and bi-directional. For example, local and remote methods can be implemented that traverse relationships such as “employee-address relationship”.

例えば、ローカルメソッドは、public Address[]getAddress();public void setAddress(Address[]address);public void addAddressElement(Address address);及びpublic boolean removeAddressElement(Address address)を含むことができる。リモートメソッドは、public Collection getAddressRemote();public void setAddressRemote(Collection address);public void addAddressElementRemote(Address address);及びpublic boolean removeAddressElementRemote(Address address)を含むことができる。   For example, a local method can include public Address [] getAddress (); public void setAddress (Address [] address); public voice addAddressElement (address), address (address), address (address), address (address) Remote method, public Collection getAddressRemote (); public void setAddressRemote (Collection address); public void addAddressElementRemote (Address address); and may include public boolean removeAddressElementRemote (Address address).

getAddressRemote()メソッドは、従業員オブジェクトに関連した全てのアドレスオブジェクトに対してobjectIdのリストの取得をサポートする。いずれのアドレスオブジェクトもキャッシュする必要がないので、これに対してCmoQueryCursorメカニズムを使用することができる。従って、CmoQueryCursorから拡張するCmoObjectCursorと称される新たなクラスを形成して、EJBインスタンスのリモートカーソル作用をサポートする。このメソッドは、リモートホームインターフェイスを使用して対応ejbオブジェクトを見出すか又は形成し、そしてそれらをコレクションに記憶することをサポートする。これは、ejbオブジェクトのコレクションを返送する。setAddressRemote(Collection address)メソッドは、ローカルホームインターフェイスを使用して対応ejbオブジェクトを形成し又は見出すのをサポートする。これは、オブジェクトを配列体に記憶する。これは、更新すべき対応ローカルメソッドをコールする。   The getAddressRemote () method supports obtaining a list of objectIds for all address objects associated with the employee object. Since no address objects need to be cached, the CmoQueryCursor mechanism can be used for this. Therefore, a new class called CmoObjectCursor extending from CmoQueryCursor is formed to support the remote cursor action of EJB instances. This method supports finding or creating corresponding ejb objects using a remote home interface and storing them in a collection. This returns a collection of ejb objects. The setAddressRemote (Collection address) method supports creating or finding a corresponding ejb object using the local home interface. This stores the object in an array. This calls the corresponding local method to be updated.

トランザクションサポートは、J2EEプラットホームによりオファーされる重要なインフラストラクチャーサービスである。仕様は、JavaトランザクションAPI(JTA)について規定する。JTAは、基礎となるトランザクションマネージャーへのアクセスを与えるインターフェイスである。主要インターフェイスの幾つかは、javax.transaction.UserTransaction及びjavax.transaction.TransactionManagerを含む。UserTransactionは、アプリケーションコンポーネントに露出され、一方、J2EEサーバーとJTA TransactionManagerとの間の基礎的相互作用は、アプリケーションコンポーネントに対して透過的である。TransactionManager実施は、(コンテナ−画定された)トランザクション境界のサーバー制御をサポートする。JTA UserTransaction及びJDBCのトランザクションサポートは、両方とも、J2EEアプリケーションコンポーネントに使用できる。J2EEプラットホームは、2つのトランザクション管理パラダイン、即ち宣言的トランザクション画定及びプログラム的トランザクション確定をサポートする。   Transaction support is an important infrastructure service offered by the J2EE platform. The specification defines the Java transaction API (JTA). JTA is an interface that gives access to the underlying transaction manager. Some of the major interfaces are Javax. transaction. UserTransaction and javax. transaction. Contains TransactionManager. The UserTransaction is exposed to the application component, while the basic interaction between the J2EE server and the JTA TransactionManager is transparent to the application component. The TransactionManager implementation supports (container-defined) transaction boundary server control. Both JTA UserTransaction and JDBC support are available for J2EE application components. The J2EE platform supports two transaction management paradynes: declarative transaction demarcation and programmatic transaction commit.

宣言的画定においては、コンテナは、トランザクションをスタートし、コミットしそしてロールバックする役割を果たす。コンテナは、クライアントによるビーン上の各オペレーションに対してトランザクションをスタートする。クライアントは、JTAトランザクションを取得して多数のオペレーションを1つのトランザクションにおいて実行する能力を有する。これは、オペレーションとオペレーションとの間に依存性を有するあるビジネスロジックを実施する融通性を与える。トランザクション属性は、宣言的トランザクション画定をサポートし、そしてそれに関連するEJBコンポーネントのメソッドの意図されたトランザクション振舞いをコンテナへ渡される。   In declarative definition, the container is responsible for starting, committing, and rolling back transactions. The container starts a transaction for each operation on the bean by the client. The client has the ability to obtain JTA transactions and perform multiple operations in one transaction. This gives the flexibility to implement some business logic that has dependencies between operations. The transaction attribute supports declarative transaction demarcation and is passed to the container the intended transaction behavior of the associated EJB component method.

コンテナ管理トランザクション画定に対して、Required、RequiresNew、NotSupported、Supports、Mandatory及びNeverの6つのトランザクション属性がサポートされる。Requiredトランザクション属性を伴うメソッドが、JTAトランザクション内で実行され、即ち環境に基づいて、新たなトランザクションコンテクストが形成されたり、されなかったりする。発呼コンポーネントがJTAトランザクションに既に関連している場合には、コンテナは、前記トランザクションのコンテクストにおいてメソッドを呼び出す。トランザクションが発呼コンポーネントに関連していない場合には、コンテナは、新たなトランザクションコンテクストを自動的に形成し、そしてメソッドが完了したときにトランザクションをコミットするように試みる。   For container-managed transaction demarcation, six transaction attributes are supported: Required, RequestsNew, NotSupported, Supports, Mandatory, and Never. Methods with Required transaction attributes are executed within a JTA transaction, ie, a new transaction context is created or not based on the environment. If the calling component is already associated with a JTA transaction, the container invokes the method in the context of the transaction. If the transaction is not associated with the calling component, the container automatically creates a new transaction context and attempts to commit the transaction when the method is complete.

RequiresNewトランザクション属性をもつメソッドが新たなトランザクションのコンテクストにおいて実行される。発呼コンポーネントがトランザクションコンテクストに既に関連している場合には、そのトランザクションが保留され、新たなトランザクションコンテクストが形成され、そしてその新たなトランザクションのコンテクストにおいてメソッドが実行され、その完了後に、発呼コンポーネントのトランザクションが再開される。NotSupportedトランザクション属性をもつメソッドは、トランザクションの一部であると意図されない。発呼コンポーネントがトランザクションコンテクストに既に関連している場合には、コンテナがそのトランザクションを保留し、トランザクションに関連していないメソッドを呼び出し、そしてそのメソッドが完了すると、発呼コンポーネントのトランザクションを再開する。   A method with the RequestsNew transaction attribute is executed in the context of a new transaction. If the calling component is already associated with a transaction context, the transaction is put on hold, a new transaction context is formed, and the method is executed in the new transaction's context, after which the calling component Transaction resumes. A method with a NotSupported transaction attribute is not intended to be part of a transaction. If the calling component is already associated with a transaction context, the container holds the transaction, calls a method not associated with the transaction, and resumes the calling component's transaction when the method completes.

Supportsトランザクション属性をもつメソッドは、発呼コンポーネントのトランザクション状態をサポートする。発呼コンポーネントがいかなるトランザクションコンポーネントももたない場合には、コンテナは、そのトランザクション属性がNotSupportedであったかのように、メソッドを実行する。発呼コンポーネントがトランザクションコンテクストに既に関連している場合には、コンテナは、そのトランザクション属性がRequiredであったかのように、メソッドを実行する。Mandatoryトランザクション属性をもつメソッドは、発呼コンポーネントのトランザクションコンテクストからコールされる。さもなければ、コンテナは、javax.transaction.TransactionRequiredExceptionを投入する。Neverトランザクション属性をもつメソッドは、発呼コンポーネントのトランザクションコンテクストからコールされてはならない。   Methods with the Supports transaction attribute support the calling component's transaction state. If the calling component does not have any transaction component, the container executes the method as if its transaction attribute was NotSupported. If the calling component is already associated with a transaction context, the container executes the method as if its transaction attribute was Required. A method having the Mandatory transaction attribute is called from the transaction context of the calling component. Otherwise, the container is Javax. transaction. Input TransactionRequiredException. Methods with the Never transaction attribute must not be called from the calling component's transaction context.

プログラム的トランザクション画定は、アプリケーションコード内のトランザクション管理のハードコード化である。プログラム的トランザクション画定は、セッションEJB、サーブレット、及びJSPコンポーネントに対する重要なオプションである。プログラム的トランザクションは、JDBC又はJTAのいずれかのトランザクションでよい。コンテナ管理セッションEJBについては、全く勧められないが、JDBC及びJTAトランザクションを混合することもできる。   Programmatic transaction demarcation is the hard coding of transaction management within application code. Programmatic transaction demarcation is an important option for session EJBs, servlets, and JSP components. A programmatic transaction may be either a JDBC or JTA transaction. For the container management session EJB, it is not recommended at all, but it is also possible to mix JDBC and JTA transactions.

本発明の1つの態様は、生産データをステージングする能力である。データベースにわたって複写しない問題を解決するために、1つの実施形態は、データのステージングされた値を、ライブ生産値と同じデータベースに記憶する。しかしながら、このようなステージングされた値は、ライブ生産値と同じテーブルに存在してはならない。ステージングされたデータが同じテーブルに存在する場合には、テーブルの性能及びサイズが影響を受ける。それ故、ステージング能力を必要とする各オブジェクトに対して、データベースに2つのテーブルが存在してもよい。付加的なテーブルが必要とされるので、ORマッピングツールは、別のJavaクラスがそのテーブルを表わすことを必要とする。ステージング可能なImplクラスについては、それに対応するImplSクラスがある。クラス構造及びORマッピングは、テーブルスキーマ形成と共に自動的に取り扱われるので、付加的なテーブル及び/又はクラスを追加するのに必要な努力が実質的に低減される。   One aspect of the present invention is the ability to stage production data. To solve the problem of not replicating across databases, one embodiment stores the staged value of the data in the same database as the live production value. However, such staged values should not be in the same table as live production values. If the staged data is in the same table, the table performance and size are affected. Therefore, there may be two tables in the database for each object that requires staging capabilities. Since an additional table is required, the OR mapping tool requires another Java class to represent that table. There is an ImplS class corresponding to the Impl class that can be staged. Since class structure and OR mapping are handled automatically with table schema formation, the effort required to add additional tables and / or classes is substantially reduced.

既存のオブジェクトの属性を新たなオブジェクトにコピーすることは、一般的に簡単である。しかしながら、ステージングは、オブジェクト間の関係の変化をサポートしてもよい。全ての種々のステージング特徴をサポートするために、多数のルールを定義することができる。   Copying the attributes of an existing object to a new object is generally easy. However, staging may support changing relationships between objects. A number of rules can be defined to support all the different staging features.

1.ライブ生産オブジェクトインスタンスは、そのステージングされたインスタンスへの参照を有する。オブジェクトは、一度に一回しかステージングすることができない(換言すれば、そのステージングされたインスタンスに対して1対1の両方向性のプライベート所有関係を有する)。   1. A live production object instance has a reference to its staged instance. An object can only be staged once at a time (in other words, it has a one-to-one bidirectional private ownership relationship with its staged instance).

2.オブジェクトがステージングされると、そのライブインスタンスを変更することができない。ライブインスタンスを変更できる場合には、ステージングされた値においてなされた変更とライブ値との合体を行なうことが必要になる。これは、不必要に複雑になる。典型的に、変更は、ライブオブジェクトにおいて直接的にステージング又は変更することが必要であるが、その両方が必要となることはない。   2. Once an object is staged, its live instance cannot be changed. If the live instance can be changed, it will be necessary to merge the changes made in the staged value with the live value. This is unnecessarily complicated. Typically, changes need to be staged or changed directly in the live object, but not both.

3.関係は、ステージングされたインスタンスではなく、ライブインスタンスでなければならない。さもなければ、多数の関係マッピングを管理しなければならない(ライブ対ステージング、ライブ対ライブ、ステージング対ライブ、及びステージング対ステージング)。更に、オブジェクトがステージングからライブへ又はそれとは逆に変化するときには、それを指す関係がその変化を管理することが必要となる。このルールは、これらの問題を簡単化する。更に、参照されているライブインスタンスは、ステージングすることができると共に、そのステージングされたインスタンスへの参照を有し、従って、本質的に、種々の関係を、直接的ではないが、依然サポートすることができる。   3. The relationship must be a live instance, not a staged instance. Otherwise, multiple relationship mappings must be managed (live vs. staging, live vs. live, staging vs. live, and staging vs. staging). Furthermore, when an object changes from staging to live or vice versa, the relationship pointing to it needs to manage the change. This rule simplifies these problems. In addition, the referenced live instance can be staged and has a reference to the staged instance, thus essentially supporting various relationships, though not directly. Can do.

4.ステージング変化は、ステージング可能なオブジェクトの一部分でなければならない。ステージング変化のセットを管理する1つの方法は、それらをあるコンテナに結合することである。ステージング可能なオブジェクトは、ステージングされた全てのオブジェクトを追跡する。このオブジェクトは、次いで、配備することができ、テストのために配備することができ、又はキャンセルすることができる。   4). Staging changes must be part of the staging object. One way to manage a set of staging changes is to combine them into a container. Stageable objects keep track of all staged objects. This object can then be deployed, deployed for testing, or canceled.

5.オブジェクトは、一度に一回しかステージングできず、一度に単一のステージング可能なオブジェクトの一部分であるに過ぎない。この場合も、管理の合体は、一般的に必要とされない。   5). An object can only be staged once at a time and is only part of a single stageable object at a time. Again, management coalescence is generally not required.

1対1の関係をサポートすることは、ステージングされたテーブルでは、前記ルール#3により容易である。全ての関係は、ライブインスタンスを指し、従って、別のオブジェクトを指すステージングされたテーブルのカラムは、該他のテーブルのライブインスタンスを指すだけでよい。1対多数の関係は、たとえその関係が両方向性であっても、中間関係テーブルを使用しなければならない。これは、ライブオブジェクトテーブルが、ステージングされたインスタンスに対する関係を知らねばならないことを防止する。   Supporting a one-to-one relationship is easier with rule # 3 in a staged table. All relationships refer to a live instance, so a column in a staged table that points to another object need only point to a live instance of that other table. One-to-many relationships must use an intermediate relationship table, even if the relationship is bidirectional. This prevents the live object table from having to know the relationship to the staged instance.

多数対多数の関係も、ステージングされたインスタンスをライブインスタンスにリンクする中間関係テーブルを有する。これらの中間関係テーブルは、既存のライブオブジェクト関係テーブルとは異なるものでなければならない。多数対多数の関係が両方向性である場合には、各方向に1つづつ、2つの中間関係テーブルを形成することが必要である。というのは、関係は、その関係の各側からステージングすることができ、そして異なる値をもつことができるからである。付加的な関係テーブルが自動的に且つ効果的に発生される。   Many-to-many relationships also have an intermediate relationship table that links staged instances to live instances. These intermediate relationship tables must be different from existing live object relationship tables. If the many-to-many relationship is bidirectional, it is necessary to form two intermediate relationship tables, one in each direction. This is because a relationship can be staged from each side of the relationship and can have different values. Additional relationship tables are generated automatically and effectively.

本発明の更に別の態様は、いわゆるバックオフィスデータベースティアーではなく、中間ティアーにおける水平パーティショニングである。図11は、水平パーティショニングを一般に示す。この例では、オブジェクトモデルは、コンポーネント1(1101)からn(1102)と、アカウント1103と、BI1104とを含む。コンポーネント1は、単一データベースであるメイン1111データベースへマップされる。コンポーネントnは、メイン1111及びメイン1112データベースの両方にマップされ、データベースにわたって水平にパーティショニングされる。コンポーネントnは、単一オブジェクトでもよいし、オブジェクトのグループでもよい。水平にパーティショニングされるオブジェクトのグループをグループ編成して指定するファシリティが有用となる。プロジェクトプロパティを設定するこのようなファシリティは、上述したが、レーショナル・ローズのユーザに馴染み易いものとなろう。或いは又、1つのグループ又は複数のグループにオブジェクトを割り当て、次いで、オーバーライドされることのないグループデフォールトプロパティ又はグループ巾のプロパティを設定するためのファシリティを設けることができる。いずれの実施形態でも、単一設定の結果として水平パーティショニングを受ける(又は受けない)オブジェクトのグループをもつことが有用である。この例では、コンポーネント1..nのマッピングは、データベースの宣言により構成されてもよい。ユーザ完成テーブル又はユーザ読み取り可能な(例えば、XML)構成ファイルのような宣言解決策を使用して、データベースの論理的な前を指定し、及び/又はデータベースの論理的名前をオブジェクト及びオブジェクトのグループに接続することができる。この例では、アカウント及びBIは、各々、セキュア1113及びBI1114データベースにマップされている。   Yet another aspect of the present invention is horizontal partitioning at an intermediate tier rather than a so-called back office database tier. FIG. 11 generally illustrates horizontal partitioning. In this example, the object model includes components 1 (1101) to n (1102), an account 1103, and a BI 1104. Component 1 is mapped to the main 1111 database, which is a single database. Component n is mapped to both main 1111 and main 1112 databases and is horizontally partitioned across the databases. The component n may be a single object or a group of objects. A facility that specifies a group of horizontally partitioned objects as a group is useful. Such a facility for setting project properties, as described above, will be familiar to users of Rational Rose. Alternatively, facilities can be provided for assigning objects to a group or groups and then setting group default properties or group width properties that are not overridden. In either embodiment, it is useful to have a group of objects that will (or will not) receive horizontal partitioning as a result of a single setting. In this example, components 1. . The mapping of n may be configured by a database declaration. Declarative solutions such as user completion tables or user readable (eg XML) configuration files are used to specify the logical front of the database and / or the logical name of the database to objects and groups of objects Can be connected to. In this example, the account and BI are mapped to the secure 1113 and BI 1114 databases, respectively.

中間ティアーにおける水平パーティショニングをサポートするクラスは、データベース又はデータベースインフラストラクチャーへのインターフェイス、このインスタンスではTopLink、に適応される。図12は、中間ティアーにおける水平パーティショニングを実施するのに使用できるクラスを示す。この図は、CmoServerSession1221をもつ左上から始めて最も容易に理解される。このオブジェクトは、インフラストラクチャーにより必要とされるデータベース接続及び情報を保持する。データベースの論理的識別は静的であるから、このオブジェクトは、静的データ及び静的メソッドをもつことができると共に、多数のユーザにより分担することができる。   Classes that support horizontal partitioning in the middle tier are adapted to the interface to the database or database infrastructure, in this instance TopLink. FIG. 12 shows classes that can be used to implement horizontal partitioning in the middle tier. This figure is most easily understood starting from the upper left with CmoServerSession 1221. This object holds the database connection and information needed by the infrastructure. Since the logical identification of the database is static, this object can have static data and static methods and can be shared by many users.

CmoSystemSession1231は、サーバーセッション1221から得ることができる。サーバーに対して単一のシステムセッションオブジェクトを形成するだけでよい。CmoClientSessionオブジェクト1241は、サーバーの各ユーザに対してコンテクスト及び状態情報を保持する。これは、ユーザの位置及びログインのようなユーザ特有の情報を保持する。HTTPセッションに対して維持される状態情報と同様の状態情報が維持される。コンテクスト情報を設定するためにメソッドgetDb及びsetDbが使用される。クライアントセッションは、多数のデータベースを含んでもよい。クライアントセッション1241と、アクティブなデータベースセッション1242との間の関係#dbClientSessionは、0..*関係である。クライアントセッションが得られたときに、アクティブなデータベースクライアントセッションはない。クライアントセッションの寿命中に、多数のデータベースクライアントセッションがアクティブになり得る。   CmoSystemSession 1231 can be obtained from server session 1221. It is only necessary to create a single system session object for the server. The CmoClientSession object 1241 holds context and status information for each user of the server. This holds user specific information such as the user's location and login. State information similar to the state information maintained for the HTTP session is maintained. Methods getDb and setDb are used to set context information. A client session may include multiple databases. The relationship #dbClientSession between the client session 1241 and the active database session 1242 is 0. . * It is a relationship. When a client session is obtained, there is no active database client session. During the lifetime of a client session, many database client sessions can be active.

この図におけるオブジェクトCmoTransaction1251は、水平にパーティショニングされるべきデータをバッファする。このCmoTransactionのロールは、トランザクションが読み取られてコミットされるまで、長寿命のトランザクションを含むトランザクションの状態を維持することである。トランザクションがアッセンブルされるときに、新たな又は変更されたオブジェクトが属するデータベースの分析を許す情報が収集される。トランザクションをコミットする準備ができると、CmoDatabaseTransaction1252の1つ以上のインスタンスにより1つ以上のデータベースにおいてそれをコミットすることができる。   The object CmoTransaction 1251 in this figure buffers the data to be partitioned horizontally. The role of this CmoTransaction is to maintain the state of a transaction including a long-lived transaction until the transaction is read and committed. When a transaction is assembled, information is collected that allows analysis of the database to which the new or changed object belongs. When a transaction is ready to commit, it can be committed in one or more databases by one or more instances of CmoDatabaseTransaction 1252.

中間カラムオブジェクト1212、1222、1232、1242及び1252を含む水平パーティショニングサポートを、インフラストラクチャーインターフェイス1223、1243及び1253と、露呈されたセッション1221、1241及び1251との既存の構成に追加することができ、しかも、セッションが露呈されるやり方や、それらが露呈される動作ビジネスロジックを変更することはない。例えば、水平パーティショニングを使用して、2つの自動車製造者F及びGが同じコード及びソフトウェアを使用するのをサポートすることができる。Fに対する全てのデータが、例えば、オラクルデータベースへとパーティショニングされ、そしてGに対する全てのデータが、SQLデータベースへとパーティショニングされる。コンテクストF又はGが、例えば、ユーザのログインにおいて設定されると、データのパーティショニングがシステムに透過的となる。Fのデータに対する全てのコールは、オラクルデータベースに対して実行され、そしてGのデータに対する全てのコールは、SQLデータベースに対して実行される。データサービスがFに与えられたかGに与えられたかに関わらず、同じロジックを適用することができる。   Horizontal partitioning support including intermediate column objects 1212, 1222, 1232, 1242, and 1252 can be added to the existing configuration of infrastructure interfaces 1223, 1243, and 1253 and exposed sessions 1221, 1241, and 1251 Moreover, it does not change the way sessions are exposed or the operational business logic in which they are exposed. For example, horizontal partitioning can be used to support two car manufacturers F and G using the same code and software. All data for F is, for example, partitioned into an Oracle database, and all data for G is partitioned into an SQL database. If the context F or G is set, for example, at a user login, data partitioning becomes transparent to the system. All calls to F data are made to the Oracle database, and all calls to G data are made to the SQL database. The same logic can be applied regardless of whether the data service is given to F or G.

ビジネスロジックを実施するコードは、分担することもできる。というのは、コンテクストの設定だけがF及びGのデータを識別又は区別するからである。このレベルでのパーティショニングは、カスタマーのデータを分離する。小さいデータベースほど、より効率的に取り扱われる。Fによるサーチは、バックオフィスデータベースサーバーレベルにおいても、Gのデータを見つけることがない。SQL、QL又は他のデータベース問合せコードにおける混合は、2つ以上のデータベースからのデータを返信することができず、これは、1人のカスタマーが別のカスタマーのデータに再びアクセスできる機会を減少する。これは、原告及び被告の弁護士がデータベースのあるコンポーネントを共有するがそれらの仕事の成果を厳密に分離して保持することを希望するとき、又は競合者が同じ付加価値サービスを利用し且つサービス売主が両カスタマー(競合者)にそれらのデータが安全であることを保証するときのような、競合する状態において特に有用である。カスタマーのデータが他のカスタマーから安全に保持される間に、多数のカスタマーコンテクストにわたって繰り返すシステム管理者により定期的な保守機能を達成することができる。   Code that implements business logic can also be shared. This is because only the context setting identifies or distinguishes F and G data. Partitioning at this level separates customer data. Smaller databases are handled more efficiently. The search by F does not find G data even at the back office database server level. Mixing in SQL, QL, or other database query codes cannot return data from more than one database, which reduces the chance that one customer can access another customer's data again. . This may be the case when plaintiffs and defendants' attorneys share certain components of the database but wish to keep their work outcomes strictly separated, or when competitors use the same value-added service and the service seller Is particularly useful in competing situations, such as ensuring both customers (competitors) have their data secure. Periodic maintenance functions can be achieved by a system administrator that repeats across multiple customer contexts while customer data is kept securely from other customers.

中間カラムオブジェクト1212、1222、1232、1242及び1252は、コンテクストに基づいて多数のデータベースへのサクセスをサポートする一方、多数のデータベースは、同じオブジェクトの水平にパーティショニングされたインスタンスを記憶する。CmoDatabaseServerSessionオブジェクト1222は、サーバーにおいてアクティブな各データベースに対して存在する。データベースは、オブジェクトのキー型属性dbNameとして維持することのできる論理的な名前により、CmoDatabaseServerSessionオブジェクト1222に対して論理的に識別される。   Intermediate column objects 1212, 1222, 1232, 1242, and 1252 support access to multiple databases based on context, while multiple databases store horizontally partitioned instances of the same object. A CmoDatabaseServerSession object 1222 exists for each database active on the server. The database is logically identified to the CmoDatabaseServerSession object 1222 by a logical name that can be maintained as the key attribute dbName of the object.

getAllVersionsメソッドは、バージョンの管理をサポートする。このメソッドは、データベースにおけるオブジェクトのバージョン又はスキーマのバージョンを返送することができる。データベースにアクセスするコード又はデータベースへのアクセスを許可するコードは、バージョンが非適合でないことをチェックしなければならない。ComClassConfigurationオブジェクト1212は、オブジェクトをデータベースに接続する。1つのComClassConfigurationオブジェクト1212は、データベースにおいてアクセス可能なオブジェクトを表わす。CuDatabaseCongig1232は、論理的データベース名に対応する物理的データベース構成情報を保持する。この情報を使用して、多数の物理的データベースを、コンテクストセットに基づいて単一の論理名に接続することができる。CmoDatabaseServerSession1222は、#serverSession関係によりインフラストラクチャーオブジェクトServerSession1223に接続される。ComDatabaseClientSession1242は、クライアントのコンテクスト(前記例におけるF又はG)を考慮して、インフラストラクチャーオブジェクトClientSession1243と共にクライアントセッションを管理する。   The getAllVersions method supports version management. This method can return an object version or schema version in the database. Code that accesses or allows access to the database must check that the version is not non-conforming. The ComClassConfiguration object 1212 connects the object to the database. One ComClassConfiguration object 1212 represents an object accessible in the database. The CuDatabaseConfig 1232 holds physical database configuration information corresponding to the logical database name. Using this information, multiple physical databases can be connected to a single logical name based on the context set. The CmoDatabaseServerSession 1222 is connected to the infrastructure object ServerSession 1223 by the #serverSession relationship. The ComDatabaseClientSession 1242 manages the client session together with the infrastructure object ClientSession 1243 in consideration of the client context (F or G in the above example).

CmoTransaction1251のオペレーションに戻ると、トランザクションをコミットする用意ができたときに、CmoTransactionは、適切なコンテクストセットを伴うCmoDatabaseTransaction1252を呼び出す。このCmoDatabaseTransaction1252は、オブジェクトの1段階又は2段階コミットを取り扱うために、インフラストラクチャーオブジェクト1253、例えば、TopLinkのUnitOfWorkに接続される。   Returning to the operation of CmoTransaction 1251, when CmoTransaction is ready to commit the transaction, CmoTransaction calls CmoDatabaseTransaction 1252 with the appropriate context set. This CmoDatabaseTransaction 1252 is connected to an infrastructure object 1253, eg, TopLink UnitOfWork, to handle the one-stage or two-stage commit of the object.

2段階コミットは、原子的形態で多数の物理的データベースにわたり変化をコミットするトランザクションプロトコルである。一実施形態において、2段階コミットをサポートするソフトウェアコンポーネントは、JTSベースのアプリケーションサーバー(いずれかのJ2EE 1.3適合AppServer)と、JDBCドライバにおける分散型トランザクションサポート(例えば、Opta2000及びSeropto)と、データベースにおける分散型トランザクションサポート(例えば、SQLサーバー及びオラクル)とを含む。COF及びCOF/EJBは、TopLinkを使用して、JTSベース(Javaトランザクションサービス)トランザクションマネージャー(通常、J2EEアプリケーションサーバーにより与えられる)とのトランザクション一体化をサポートする。2段階コミットの使用は、任意である。2段階コミットは、非常に高価であり、従って、必要なときしか使用されない。多数のオブジェクトに影響しそして多数の物理的データベースに及ぶユーザトランザクションは、通常、2段階コミットトランザクションを使用する。EJBオブジェクト及びCOFオブジェクトを単一のトランザクションにおいてコミットする必要があるときには、2段階コミットが適当である。このプロトコルは、COFオブジェクト、水平にパーティショニングされるオブジェクト、及びEJBオブジェクトの組合せで使用することができる。   Two-phase commit is a transaction protocol that commits changes across multiple physical databases in atomic form. In one embodiment, software components that support two-phase commit include a JTS-based application server (any J2EE 1.3 compliant AppServer), distributed transaction support in a JDBC driver (eg, Opta2000 and Seropto), a database Distributed transaction support (eg, SQL Server and Oracle). COF and COF / EJB use TopLink to support transaction integration with JTS-based (Java Transaction Service) transaction managers (usually provided by the J2EE application server). The use of two-phase commit is optional. Two-phase commit is very expensive and is therefore only used when needed. User transactions that affect multiple objects and span multiple physical databases typically use two-phase commit transactions. A two-phase commit is appropriate when the EJB object and the COF object need to be committed in a single transaction. This protocol can be used with combinations of COF objects, horizontally partitioned objects, and EJB objects.

水平パーティショニングは、COF又は別のプロトコルが直接使用されるか、或いはEJB又は別のリモートメソッド呼び出しカプセル化においてカプセル化されるかに依存しない。中間ティアーカプセル化は、データベースマネージャーに依存せずに、独立したデータベースにわたる水平パーティショニングを取り扱う。これは、独立したデータベースが、異なるデータベース売主からの非適合のデータベースでもよいので、緩く結合された水平パーティショニングとも称される。   Horizontal partitioning does not depend on whether COF or another protocol is used directly or encapsulated in EJB or another remote method call encapsulation. Intermediate tier encapsulation handles horizontal partitioning across independent databases without relying on the database manager. This is also referred to as loosely coupled horizontal partitioning because the independent database may be a non-conforming database from different database vendors.

この場合も、水平パーティショニングを使用するために変更する必要のあるビジネスロジック又はシステムコードは、比較的わずかである。幾つかの基本的なルールを以下に列挙する。   Again, relatively little business logic or system code needs to be changed to use horizontal partitioning. Some basic rules are listed below.

1.構成ファイルにおいて1つのデータベースしか使用されない場合には(これは、プロパティ「database.projects」の値が単一であることを意味する)、このデータベースが常に使用される。   1. If only one database is used in the configuration file (which means that the value of the property “database.projects” is single), this database is always used.

2.構成ファイルに2つ以上のデータベースが存在する場合には、オペレーションを実行するときにデータベース情報が明確に又は暗示的に分析される。明確な分析とは、CmoClientSessionオブジェクト及び/又はCmoTransactionオブジェクトにおいて「setDb(CuDatabaseConfig)」がコールされることを意味する。このCuDatabaseConfigオブジェクトは、通常、システム設定時間中に形成される。「CmoServerSession.getAvailableDbObjects()」は、全システムに対して使用できるデータベースオブジェクトのリストを得るために使用される。特定のクラスに対して、「CmoServerSession.getDbObjectsForClass(Class aClass)」及び「CmoServerSession.getDbObjectsForClass(String aClassName)」は、「クラス」が存在するCuDatabaseConfigオブジェクトのリストを返送する。暗示的分析とは、CmoClientSession及び/又はCmoTransactionオブジェクトが、以下に述べるように、特にアプリケーションコードにおいて「setDb(CuDatabaseConfig)」をコールせずに、どのデータベースが作用するかインテリジェントに見つけられることを意味する。   2. If more than one database exists in the configuration file, the database information is analyzed explicitly or implicitly when performing the operation. Clear analysis means that “setDb (CuDataBaseConfig)” is called in the CmoClientSession object and / or CmoTransaction object. This CuDatabaseConfig object is usually created during system setup time. “CmoServerSession.getAvailableDbObjects ()” is used to obtain a list of database objects that can be used for the entire system. For a particular class, “CmoServerSession.getDbObjectsForClass (Class aClass)” and “CmoServerSession.getDbObjectsForClass (String aClassName)” is a CuData that contains a “Catab” that contains a “class” return. Implicit analysis means that the CmoClientSession and / or CmoTransaction object can be intelligently found as to which database will work without calling “setDb (CuDatabaseConfig)”, especially in the application code, as described below. .

3.CmoClientSession及びCmoTransactionオブジェクトにおいてデータベース情報を明確に分析できないときには、セッションオブジェクトは、呼び出された全てのオブジェクトを使用することによりこれを分析するように試みる。呼び出されたいずれかのオブジェクトが、あるデータベース情報(nullではない)を有する場合には、この情報が、セッションオブジェクトに関連したデータベース情報と比較される。セッションオブジェクトに対するデータベース情報がnullである場合には、それが、オブジェクトからのデータベース情報にセットされ、又は、情報が同じでない場合には、例外が投入される。このロジックは、呼び出された全てのオブジェクトに対して続けられる。オペレーション及び/又はトランザクションに対してデータベース情報の識別を助けるために、COFは、新たなインターフェイス「CmoDbConflictResolver」を導入した。CmoDbConflictResolverオブジェクトは、1つのオブジェクトに対して構成される。これは、キーがdatabase.conflictresolver.{オブジェクトの全クラス名}={CmoDbConflictResolverインターフェイスを実施する全クラス名}であるような構成において行うことができる。   3. When the database information cannot be explicitly analyzed in the CmoClientSession and CmoTransaction objects, the session object attempts to analyze this by using all invoked objects. If any invoked object has some database information (not null), this information is compared with the database information associated with the session object. If the database information for the session object is null, it is set to the database information from the object, or an exception is thrown if the information is not the same. This logic continues for all called objects. To help identify database information for operations and / or transactions, COF has introduced a new interface “CmoDbConflictResolver”. The CmoDb ConflictResolver object is configured for one object. This is because the key is database. confresolver. {All object class names} = {All class names implementing the CmoDbConflictResolver interface}.

4.リゾルバー(分析体)は、考えられる最後の瞬間にコールされる。オブジェクトが形成されることを意味するときには、オブジェクトのコミットが試みられるまでコールされない。これは、リゾルバーが、オブジェクトの全属性が形成についてセットされたことを予想でき、そしてそれらを使用して、オブジェクトがどのデータベースに属するべきか決定できることを意味する。   4). The resolver (analyte) is called at the last possible moment. When it means that an object is created, it is not called until an object commit is attempted. This means that the resolver can expect that all attributes of an object have been set for formation and can use them to determine which database an object should belong to.

ここに見られるケースでは、問合わされている属性に基づいてどのデータベースに問合せるべきかリゾルバーが決定できるように、表現又は属性問合せ或いは属性マップ問合せがパスされる。単一の問い合わせにおいてデータベースを横切る問合せをサポートすることはできない。この場合も、これは、setDbがclientSessionにおいてまだコールされておらず且つ問合せされているオブジェクトが2つ以上のデータベースに存在するように構成された場合にしか必要とされない。   In the case seen here, an expression or attribute query or attribute map query is passed so that the resolver can determine which database to query based on the attribute being queried. It is not possible to support queries across databases in a single query. Again, this is only needed if setDb has not yet been called in the clientSession and the object being queried is configured to exist in more than one database.

CmoDbConflictResolverを実施できる方法は、ある構成情報を使用するか或いはおそらく他の何らかの動的なデータを使用して、特定の物理的データベースへのあるオブジェクト属性値のマッピングをそれに通知することである。これは、できるだけ簡単に保持されねばならない。例えば、オブジェクトの組織idを使用して、どのデータベースか決定し、そしておそらく、データベースがorgIdに基づいて命名され、簡単なマッピングとされる。これらのデータベース名は、データベースに名前を与え、ひいては、それがどこに位置するか等の構成情報を与えるために、構成/設置時間に決定される「論理的」名前である。従って、ここで使用する名前は、論理的な名前で、アクセスすべきデータベース構成の名前を表わし、データベースシステムにおける実際の物理的なデータベース名を表わすものではない。   A way that CmoDbConflictResolver can be implemented is to inform it of a mapping of an object attribute value to a particular physical database, using some configuration information, or perhaps some other dynamic data. This must be held as easily as possible. For example, the organization id of the object is used to determine which database, and possibly the database is named based on orgId and is a simple mapping. These database names are “logical” names that are determined at configuration / installation time to give the database a name and thus configuration information such as where it is located. Therefore, the name used here is a logical name that represents the name of the database configuration to be accessed, and does not represent the actual physical database name in the database system.

クライアントセッションでは、データベース情報を制御するために4つの機能を使用することができる。それらは、setDb(CuDatabaseConfig)、getDb()、overrideDb(CuDatabaseConfig)、及びrestDb()である。getDb()は、クライアントセッションオブジェクトにおいてセットされた現在データベースを単に返送し、overrideDb(CuDatabaseConfig aNewdb)及びresetDb()は、スタックメカニズムを使用して、クライアントセッションにおけるdb infoの変化を追跡する。overrideDb(CuDatabaseConfig aNewdb)は、現在dbをスタックへプッシュし、そして現在dbを、パスされた「aNewDb」にセットする。resetDb()は、現在dbを、スタックが空でない場合にスタックの最上位エレメントにセットし、さもなければ、ひっそりとして何も行なわない。setDb(CuDatabaseConfig aNewDb2)は、現在dbを「aNewDb2」にセットし、そしてスタックをクリアする。従って、スタックが何らかの情報をもつときにsetDb()がコールされた場合には、スタックが単にクリアされる。特殊なクライアントセッションであるシステムクライアントセッションオブジェクトは、これら4つの機能をスレッドベースで使用する。従って、1つのスレッドに対するデータベース情報は、別のスレッドとで行なうべきものを何ももたない。   In a client session, four functions can be used to control database information. They are setDb (CuDatabaseConfig), getDb (), overlapDb (CuDatabaseConfig), and restDb (). getDb () simply returns the current database set in the client session object, and overrideDb (CuDatabaseConfig aNewdb) and resetDb () use a stack mechanism to track changes in db info in the client session. OverrideDb (CuDatabaseConfig aNewdb) pushes the current db onto the stack and sets the current db to the passed “aNewDb”. resetDb () sets the current db to the top element of the stack if the stack is not empty, otherwise silently does nothing. setDb (CuDatabaseConfig aNewDb2) currently sets db to “aNewDb2” and clears the stack. Therefore, if setDb () is called when the stack has any information, the stack is simply cleared. The system client session object, which is a special client session, uses these four functions on a thread basis. Thus, the database information for one thread has nothing to do with another thread.

overrideDb(CuDatabaseConfig aDbConfig)及びresetDb()機能は、CmoTransactionにおいてコールすることができないが、CmoClientSessionのサブクラスである。   The overrideDb (CuDatabaseConfig aDbConfig) and resetDb () functions cannot be called in CmoTransaction, but are subclasses of CmoClientSession.

CmoDbConflictResolver APIは、public CuDatabaseConfigresovleCreate(CmoDbResolverInfo aDbResolverInfo)throwsCeDbNameConflictResolveException;public CuDatabaseConfigresovleFind(CmoDbResolverInfo aDbResolverInfo)throwsCeDbNameConflictResolveExceptionを含む。CmoDbResolverInfo APIは、public CmoClientSession getClientSession();public Class getMainClass();public HashMap getAttValuePairs();public CmoFindObject getFindObject();及びpublic CmoSase getNewlyCreatedObject()を含む。   CmoDbConflictResolver API is, public CuDatabaseConfigresovleCreate (CmoDbResolverInfo aDbResolverInfo) throwsCeDbNameConflictResolveException; including public CuDatabaseConfigresovleFind (CmoDbResolverInfo aDbResolverInfo) throwsCeDbNameConflictResolveException. CmoDbResolverInfo API is, public CmoClientSession getClientSession (); public Class getMainClass (); public HashMap getAttValuePairs (); including and public CmoSase getNewlyCreatedObject (); public CmoFindObject getFindObject ().

CmoDbConflictResolverインターフェイスを実施するクラスが開発されると、CmoDbResolverInfoにおけるgetNewlyCreatedObject()を使用して、resolverCreate(CmoDbResolverInfo)の実施を助けることができ、同様に、CmoDbResolverInfoにおけるgetAttValuePairs()及び/又はgetFindObject()は、resolveFind(CmoDbResolverInfo)の実施において有用である。   Once a class that implements the CmoDbConfirmResolver interface is developed, getNewCreateObject () in CmoDbResolverInfo can be used to help implement resolveCreate (CmoDbResolverInfo), and similarly, Useful in the implementation of resolveFind (CmoDbResolverInfo).

以上の説明から、当業者であれば、本発明の態様及び要素から種々様々なシステム及び方法を構成できることが明らかとなろう。本発明の一実施形態は、アプリケーション開発コードを発生する方法を含む。或いは又、この方法は、この方法のステップを実行するシステム又は装置として実施されてもよい。このシステム又は装置は、方法のステップ、態様、オプション及び別の実施例を含む多数の実施形態を包含してもよい。又、この方法は、この方法のステップを実行するプログラムが刻印された磁気媒体として実施されてもよい。このプログラムは、この方法のステップ、態様、オプション及び別の実施例を結合する多数の実施形態を包含してもよい。開発コードの発生は、マルチティアードカプセル化ビジネスアプリケーション環境に特に適用することができる。この方法は、オブジェクト指向のアプリケーション設計のオブジェクト、関係及びオペレーションのモデルをベースとする。これらオブジェクト、関係及びオペレーションのモデリングは、グラフィックツールを使用して、視覚的に実施されてもよい。オブジェクト、関係及び/又はオペレーションに割り当てられたプロパティは、モデリングされたオブジェクトへのインターフェイスを発生すべきかどうかを指示する第1プロパティを含んでもよい。これは、指定されたオペレーションへのローカル及び/又はリモートインターフェイスを発生すべきかどうか指示する第2プロパティを含んでもよい。このモデルから、モデル及びそのプロパティに対応するマシン読み取り可能なデータが発生される。このデータは、内部モデル又はエクスポートされたモデルにおいて実施されてもよい。このモデルは、マシンでしか読み取れないものでもよいし、又は人間が読み取れるものでもよい。マシン読み取り可能なデータは、モデルをデータベースにマップするのに使用される。   In view of the foregoing description it will be evident to a person skilled in the art that a wide variety of systems and methods may be constructed from the aspects and elements of the invention. One embodiment of the invention includes a method for generating application development code. Alternatively, the method may be implemented as a system or apparatus that performs the steps of the method. The system or apparatus may encompass numerous embodiments, including method steps, aspects, options, and alternative examples. The method may also be implemented as a magnetic medium imprinted with a program that performs the steps of the method. The program may include a number of embodiments that combine the method steps, aspects, options, and alternative examples. Development code generation is particularly applicable to multi-tiered encapsulated business application environments. This method is based on an object-oriented application design object, relationship and operation model. The modeling of these objects, relationships and operations may be performed visually using graphic tools. Properties assigned to objects, relationships and / or operations may include a first property that indicates whether an interface to the modeled object should be generated. This may include a second property that indicates whether to generate a local and / or remote interface to the specified operation. From this model, machine readable data corresponding to the model and its properties is generated. This data may be implemented in an internal model or an exported model. This model may be readable only by a machine, or it may be human readable. Machine readable data is used to map the model to a database.

一実施形態において、データベースは、関係データベースである。マッピング及びマシン読み取り可能なデータを使用してアプリケーション開発コードが発生される。発生されたアプリケーションコードは、データベースにおいてオブジェクトを持続させ且つそれにアクセスするためのコードを含むことができる。これは、更に、第1プロパティと一貫した、前記オブジェクトを持続させ且つそれにアクセスするためのコードへのインターフェイスを含むことができる。これは、更に、第2プロパティと一貫した、前記指定のオペレーションへのインターフェイスを含むことができる。コード及び指定のオペレーションへのインターフェイスは、規格ベースのサーバー側コンポーネントモデル及びリモートメソッド呼び出しプロトコルに実質的に適合し得る。或いは又、アプリケーション開発コードは、Enterprise JavaBean(EJB)規格2.0以降のものに実質的に適合してもよい。EJBオブジェクトを持続させ且つそれにアクセスするためのコードは、「ビーン・マネージド・パーシステンス(BMP)」プロトコルに実質的に適合してもよい。或いは又、アプリケーション開発コードは、マイクロソフトのDCOM仕様に実質的に適合してもよい。本発明の別の態様において、オブジェクト指向のアプリケーション設計は、「ユニファイドモデリング言語(UML)」規格に実質的に適合してもよい。   In one embodiment, the database is a relational database. Application development code is generated using the mapping and machine readable data. The generated application code can include code for persisting and accessing objects in the database. This can further include an interface to the code for persisting and accessing the object, consistent with the first property. This may further include an interface to the specified operation that is consistent with the second property. The interface to the code and specified operations can be substantially adapted to a standards-based server-side component model and remote method invocation protocol. Alternatively, the application development code may be substantially compatible with Enterprise JavaBean (EJB) standard 2.0 or later. The code for persisting and accessing the EJB object may be substantially compatible with the “Bean Managed Persistence (BMP)” protocol. Alternatively, the application development code may substantially conform to the Microsoft DCOM specification. In another aspect of the invention, object-oriented application design may substantially conform to the “Unified Modeling Language (UML)” standard.

アプリケーション開発コード方法の1つの態様は、カスタムビジネスロジックを追加すべきスタブの発生メソッドを含む。本発明のこの態様の実施において、システムのオブジェクト指向のモデルが変更されるときに再生されるコードは、カスタムビジネスロジックを含むコードから分離され、オブジェクト指向のモデルが変更されるときにオーバーライト又は再生されてはならない。   One aspect of the application development code method includes a stub generation method to which custom business logic is to be added. In the implementation of this aspect of the invention, the code that is played when the object-oriented model of the system is changed is separated from the code that includes custom business logic, and is overwritten or changed when the object-oriented model is changed. Must not be regenerated.

本発明の別の態様は、更に、オブジェクト及び関係の複数の第3プロパティを含み、これら第3プロパティは、マッピングステップを制御する。これらプロパティは、オブジェクト及び関係を、関係データベースのような基礎的なデータベースにマップするのに使用される。これら第3プロパティは、モデリングされたオブジェクトの配備のステージングをサポートすべきかどうかを含んでもよい。それらは、モデリングされたオブジェクトの配備の変更経歴を記録すべきかどうかを含んでもよい。更に、モデリングされたオブジェクト内に1つ以上のフィールドを動的に配列してこれらのフィールドを国際化すべきかどうかを含んでもよい。フィールドを動的に配列することを含む本発明の態様に関連して、モデリングされたオブジェクトを持続させ且つそれにアクセスするためのコードは、指定された言語に基づいて動的配列のどの要素を検索すべきか分析することができる。この言語は、取り扱われるオブジェクトに存在するデータにより暗示的に指定されてもよいし、又は言語により明確に指定されてもよい。   Another aspect of the present invention further includes a plurality of third properties of objects and relationships, which control the mapping step. These properties are used to map objects and relationships to a basic database such as a relational database. These third properties may include whether to support staging of deployment of modeled objects. They may include whether to record the change history of the deployment of the modeled object. In addition, one or more fields may be dynamically arranged within the modeled object to include whether these fields should be internationalized. In connection with aspects of the invention involving dynamically arranging fields, the code for persisting and accessing the modeled object retrieves which element of the dynamic array based on the specified language. You can analyze what to do. This language may be implicitly specified by data present in the object being handled, or may be explicitly specified by language.

本発明の更に別の態様は、どんなアプリケーションコードを発生するかユーザが指定できると共に、マシン読み取り可能なデータを発生し、マッピングしそして付加的に発生する方法ステップを、ユーザによる更なるアクションを必要とせずに進められることである。   Yet another aspect of the present invention is that the user can specify what application code is generated, and the method steps for generating, mapping and additionally generating machine readable data require further action by the user. It is to be advanced without.

本発明の更に別の実施形態は、トランザクション処理をサポートする少なくとも1つのデータベースマネージャーにより処理されるべきトランザクションをアッセンブルする方法にある。或いは又、この方法は、その方法のステップを実行するシステム又は装置として実施されてもよい。このシステム又は装置は、方法のステップ、態様、オプション及び別の実施例を含む多数の実施形態を包含してもよい。又、この方法は、この方法のステップを実行するプログラムが刻印された磁気媒体として実施されてもよい。この方法は、データベースマネージャーのトランザクション処理サポートにより、データにアクセスし且つそれを持続するメソッドのオブジェクト指向のフレームワークを設けることを含んでもよい。更に、規格ベースのサーバー側コンポーネントモデル及びリモート呼び出しプロトコルに実質的に適合するオブジェクト指向のフレームワークのバージョンを設けることも含む。規格ベースのサーバー側コンポーネントモデル及びリモート呼び出しプロトコルは、例えば、Enterprise JavaBeans(EJB)、分散型共通オブジェクトモデル(DCOM)、及びCOBRAを含む。   Yet another embodiment of the invention resides in a method for assembling a transaction to be processed by at least one database manager that supports transaction processing. Alternatively, the method may be implemented as a system or apparatus that performs the steps of the method. The system or apparatus may encompass numerous embodiments, including method steps, aspects, options, and alternative examples. The method may also be implemented as a magnetic medium imprinted with a program that performs the steps of the method. The method may include providing an object-oriented framework of methods to access and persist data with database manager transaction processing support. It also includes providing a version of the object-oriented framework that is substantially compatible with the standards-based server-side component model and remote invocation protocol. Standards-based server-side component models and remote invocation protocols include, for example, Enterprise JavaBeans (EJB), Distributed Common Object Model (DCOM), and COBRA.

トランザクションをアッセンブルする方法は、更に、1つ以上のデータベースに向けられるトランザクション関連アクティビティを受け入れ又はバッファすることを含んでもよい。この受け入れ又はバッファすることは、オブジェクト指向のフレームワーク、及びオブジェクト指向のフレームワークの規格適合バージョンにより同時に行うことができる。この実施形態の1つの態様は、受け入れステップが、オブジェクトをバッファすることを含み、そしてトランザクションをコミットする指令の際に、この方法は、更に、データベースマネージャーを呼び出してトランザクションを処理することを含む。この態様は、データベースマネージャー以外のメカニズムによりトランザクション関連アクティビティを受け入れることを含む。本発明のこの態様は、EJB、DCOM及びCOBRAを含む上述したいずれかの規格で実施されてもよい。   The method of assembling a transaction may further include accepting or buffering transaction related activities directed to one or more databases. This accepting or buffering can be done simultaneously by the object oriented framework and the conforming version of the object oriented framework. One aspect of this embodiment includes the accepting step buffering the object, and upon command to commit the transaction, the method further includes calling the database manager to process the transaction. This aspect includes accepting transaction related activities by mechanisms other than the database manager. This aspect of the invention may be implemented in any of the standards described above, including EJB, DCOM and COBRA.

本発明の付加的な実施形態は、トランザクション処理をサポートする少なくとも1つのデータベースマネージャーにより処理されるべきトランザクションをアッセンブルする方法にある。上述したように、この方法は、この方法を実施するプログラムを含むメソッド、装置又は磁気媒体として実施されてもよい。この実施形態の別の方法は、上述したアッセンブル方法における厳密な変形である。1つの変形は、データベースマネージャーのトランザクション処理サポートにより、データにアクセスし且つそれを持続させる方法のオブジェクト指向のフレームワークを与えることを含む。この方法は、更に、EJB規格適用取り扱い及び呼び出しに適応されたオブジェクト指向のフレームワークのバージョンを設けることを含む。更に、1つ以上のデータベースに向けられたトランザクション関連アクティビティを、オブジェクト指向のフレームワーク、及びオブジェクト指向のフレームワークのEJB規格適合バージョンにより同時に受け入れることも含む。この実施形態の他の2つの変形において、オブジェクト指向のフレームワークは、DCOM仕様又はCOBRAに適合するようにされる。これら変形のいずれにおいても、受け入れスタッフは、オブジェクトをバッファし、そしてトランザクションをコミットする指令の際に、データベースマネージャーを呼び出して、トランザクションを処理することを含んでもよい。   An additional embodiment of the invention resides in a method for assembling a transaction to be processed by at least one database manager that supports transaction processing. As described above, the method may be implemented as a method, apparatus, or magnetic medium that includes a program that implements the method. Another method of this embodiment is a strict variation on the assembly method described above. One variation involves providing an object-oriented framework of how to access and persist data with the database manager's transaction processing support. The method further includes providing a version of the object-oriented framework adapted for EJB standard application handling and invocation. It further includes simultaneously accepting transaction-related activities directed to one or more databases by an object oriented framework and an EJB standard compliant version of the object oriented framework. In the other two variants of this embodiment, the object-oriented framework is adapted to the DCOM specification or COBRA. In any of these variations, the accepting staff may include calling the database manager to process the transaction upon a command to buffer the object and commit the transaction.

別の実施形態は、少なくとも1つのデータベースマネージャーで処理されたデータを持続させる方法にある。上述したように、この方法も、これを実施するプログラムを含むメソッド、装置又は磁気媒体として実施されてもよい。データを持続させるこの方法は、データベースマネージャーによりデータにアクセスし且つそれを持続させるメソッドのオブジェクト指向のフレームワークを与えることを含む。更に、データベースマネージャーによりデータにアクセスし且つそれを持続させるメソッドへの規格適合インターフェイスを与えることも含む。これらの規格適合インターフェイスは、EJB、DCOM又はCOBRAに適合するものでよい。この方法は、更に、オブジェクト指向のフレームワーク及び規格適合インターフェイスを経て同時に1つ以上のデータベースに向けられたオブジェクトアクセス及び持続要求を受け入れることも含む。規格がEJBであるときには、オブジェクト要求は、オブジェクト指向のフレームワーク及びEJB規格適合インターフェイスの両方によりJavaトランザクションサービスエンジンへ提出されてもよい。   Another embodiment resides in a method for persisting data processed by at least one database manager. As described above, this method may also be implemented as a method, apparatus, or magnetic medium that includes a program that implements it. This method of persisting data includes providing an object oriented framework of methods for accessing and persisting data by a database manager. It also includes providing a conformant interface to methods that access and persist data by the database manager. These standard conforming interfaces may be conforming to EJB, DCOM or COBRA. The method further includes accepting object access and persistence requests directed to one or more databases simultaneously via an object-oriented framework and a standards-compliant interface. When the standard is EJB, object requests may be submitted to the Java transaction service engine by both an object-oriented framework and an EJB standard conforming interface.

以上の実施形態のいずれにも適用できる本発明の態様は、オブジェクト指向のフレームワークが、データベースへの微粒状オブジェクトを持続させるよう適応されることである。EJB規格適合インターフェイスを含む規格適合インターフェイスは、2つ以上のデータベースへのトランザクションにおいてオブジェクトを持続させるよう適応される。   An aspect of the invention that can be applied to any of the above embodiments is that an object-oriented framework is adapted to persist fine-grained objects to a database. Conformance interfaces, including EJB conformance interfaces, are adapted to persist objects in transactions to more than one database.

本発明の更に別の実施形態は、トランザクション処理をサポートする少なくとも1つのデータベースマネージャーにより処理されるべきトランザクションをアッセンブルする方法にある。上述したように、この方法も、これを実施するプログラムを含むメソッド、装置又は磁気媒体として実施されてもよい。この方法は、データマネージャーのトランザクション処理サポートによりデータにアクセスし且つそれを持続させると共に付加的な機能も実行するメソッドのオブジェクト指向のフレームワークを与えることを含む。この付加的な機能は、生産システムへの追加及びテストのためにオブジェクトをステージングすることでよい。又、生産システムにおけるオブジェクトの変更経歴を追跡してもよい。或いは、オブジェクト内にフィールドを動的に配列して、フィールドを国際化してもよい。これらの付加的な機能は、対として又は全体的に結合されてもよい。トランザクションをアッセンブルする方法は、更に、規格ベースのサーバー側コンポーネントモデル及びリモートメソッド呼び出しプロトコルに実質的に適合するオブジェクト指向のフレームワークのバージョンを付加的に与えることを含み、このバージョンは、上述した付加的な機能の1つ以上も含む。別の実施形態は、付加的な機能の各々を個々に含み、付加的な機能の対の組合せを含み、且つ3つ全部の付加的な機能を含む。トランザクションをアッセンブルするこの方法が適合する規格は、EJB、DCOM又はCOBRAでよい。   Yet another embodiment of the invention resides in a method for assembling a transaction to be processed by at least one database manager that supports transaction processing. As described above, this method may also be implemented as a method, apparatus, or magnetic medium that includes a program that implements it. The method includes providing an object-oriented framework of methods that access and persist data as well as perform additional functions with data manager transaction processing support. This additional functionality may be staging objects for addition and testing to production systems. Further, the change history of the object in the production system may be tracked. Alternatively, the fields may be internationalized by dynamically arranging the fields within the object. These additional functions may be combined as a pair or as a whole. The method of assembling a transaction further includes providing an additional version of an object-oriented framework that is substantially compatible with a standards-based server-side component model and a remote method invocation protocol, which version is Also includes one or more of the typical functions. Another embodiment includes each of the additional functions individually, includes a combination of additional function pairs, and includes all three additional functions. The standard to which this method of assembling a transaction conforms may be EJB, DCOM or COBRA.

本発明の異なる実施形態は、データベース及び水平にパーティショニングされるマルチティアービジネスアプリケーションを発生する方法にある。上述したように、この方法も、これを実施するプログラムを含むメソッド、装置又は磁気媒体として実施されてもよい。この方法は、オブジェクト及び関係をモデリングしそしてオブジェクト指向のアプリケーション設計のオペレーションを指定することを含み、ここで、オブジェクトのプロパティは、多数のデータベースにわたりオブジェクトを水平にパーティショニングすべきかどうかを含む。この解決策は、オブジェクト又はオブジェクトのグループのいずれに適用されてもよい。オブジェクトのグループは、単一の論理名で表わされてもよい。この方法は、更に、プロパティを含む、モデルに対応するマシン読み取り可能なデータを発生することを含む。このマシン読み取り可能なデータは、マシンでしか読み取れないものでもよいし、又はXML仕様の場合のように、人間が読み取れるものでもよい。この方法は、更に、マシン読み取り可能なデータを使用して複数のデータベースへモデルをマッピングし、そしてこのマッピング及びマシン読み取り可能なデータからアプリケーション開発コードを付加的に発生することを含む。アプリケーション開発コードは、複数のデータベースにわたりオブジェクトを持続させ且つそれにアクセスするためのコードを含む。オブジェクトを持続させ且つそれにアクセスするためのコードは、データベースティアーの上の中間のプログラムティアーの一部分である。本発明の更に別の態様は、オブジェクトを持続させ且つそれにアクセスするためのコードが複数の独立したデータベースを呼び出せることである。これらの独立したデータベースは、異なるデータベース売主により供給されてもよいし、或いは単一のデータベース売主により供給されて独立して動作してもよい。この実施形態の更に別の態様は、オブジェクトがパーティショニングされるところの複数のデータベースを宣言し、そしてオブジェクト又はオブジェクトのグループを特定のデータベースにパーティショニングするために使用される1つ以上のフィールドを宣言することを含んでもよい。   A different embodiment of the invention resides in a method of generating a database and a horizontally partitioned multi-tier business application. As described above, this method may also be implemented as a method, apparatus, or magnetic medium that includes a program that implements it. The method includes modeling objects and relationships and specifying object-oriented application design operations, where object properties include whether the object should be partitioned horizontally across multiple databases. This solution may be applied to either an object or a group of objects. A group of objects may be represented by a single logical name. The method further includes generating machine readable data corresponding to the model, including properties. This machine-readable data may be readable only by a machine, or may be readable by a human as in the case of the XML specification. The method further includes mapping the model to a plurality of databases using machine readable data and additionally generating application development code from the mapping and machine readable data. Application development code includes code for persisting and accessing objects across multiple databases. The code for persisting and accessing objects is part of an intermediate program tier above the database tier. Yet another aspect of the present invention is that code for persisting and accessing objects can call multiple independent databases. These independent databases may be supplied by different database sellers, or may be supplied by a single database seller and operate independently. Yet another aspect of this embodiment is that one or more fields are used to declare a plurality of databases where the object is partitioned and to partition the object or group of objects into a particular database. It may include declaring.

本発明の更に別の実施形態は、少なくともデータベースティアー及び中間のビジネスアプリケーションティアーを含むマルチティアービジネスアプリケーションにおいて、多数の独立したデータベースにわたりオブジェクトの水平パーティショニングを実施する方法にある。上述したように、この方法も、これを実施するプログラムを含むメソッド、装置又は磁気媒体として実施されてもよい。この実施形態は、特定のオブジェクトを特定のデータベースに割り当てるのに使用できる少なくとも1つの水平にパーティショニングされたオブジェクトにおいて1つ以上のフィールドを宣言することを含む。又、水平にパーティショニングされたオブジェクトが属する全てのデータベースとの接続を確立する必要はないが、水平にパーティショニングされたオブジェクトが属する複数のデータベースとの接続を確立することを含む。接続を確立する前又は後に、この方法は、水平にパーティショニングされたオブジェクトを含む1つ以上のオブジェクトを、探索、形成、或いは探索又は形成するためにバッファすることを含む。探索又は形成を進めるための指令の際に、オブジェクトが属する特定のデータベースを、宣言されたフィールドを使用して分析し、そしてデータベースティアーにおいて特定のデータベースを呼び出して、探索又は形成を実行することを含む。同様の実施形態は、多数の独立したデータベースにわたりオブジェクトの水平パーティショニングを実施する方法であって、少なくとも1つの水平にパーティショニングされたオブジェクトが属する複数のデータベースとの接続を確立することを含む方法にある。更に、水平にパーティショニングされたオブジェクトが属する特定のデータベースを設定し又は識別することも含む。この設定ステップの前又は後に、水平にパーティショニングされたオブジェクトを含む1つ以上のオブジェクトを、探索、形成、或いは探索又は形成するためにバッファすることを含む。探索又は形成を進めるための指令の際に、データベースティアーにおいて特定のデータベースを呼び出して、探索又は形成を実行することを含む。水平にパーティショニングされたオブジェクトが属する複数のデータベースを、単一の論理名で集合的に参照することができる。水平にパーティショニングされたオブジェクトの1つ以上の属性を使用して、複数のデータベースの中の特定のデータベースが論理的にマップされる。これらの属性は、水平パーティションオブジェクトのフィールドでよい。   Yet another embodiment of the invention resides in a method for implementing horizontal partitioning of objects across multiple independent databases in a multi-tier business application including at least a database tier and an intermediate business application tier. As described above, this method may also be implemented as a method, apparatus, or magnetic medium that includes a program that implements it. This embodiment includes declaring one or more fields in at least one horizontally partitioned object that can be used to assign a particular object to a particular database. Also, it is not necessary to establish connections with all databases to which the horizontally partitioned objects belong, but includes establishing connections with multiple databases to which the horizontally partitioned objects belong. Before or after establishing a connection, the method includes searching, forming, or buffering for searching or forming one or more objects, including horizontally partitioned objects. In order to proceed with the search or formation, analyze the specific database to which the object belongs using the declared fields and call the specific database at the database tier to perform the search or formation Including. A similar embodiment is a method for performing horizontal partitioning of objects across multiple independent databases, comprising establishing connections with multiple databases to which at least one horizontally partitioned object belongs. It is in. It also includes setting or identifying the particular database to which the horizontally partitioned objects belong. Before or after this setting step includes searching, forming, or buffering for searching or forming one or more objects, including horizontally partitioned objects. Invoking a specific database at the database tier and performing a search or formation upon command to proceed with the search or formation. Multiple databases to which horizontally partitioned objects belong can be collectively referred to by a single logical name. One or more attributes of horizontally partitioned objects are used to logically map a particular database among multiple databases. These attributes may be fields of the horizontal partition object.

本発明は、上述した好ましい実施形態及び実施例を参照して開示したが、これは、本発明を単に例示するもので、何ら限定するものではない。前記実施形態ではコンピュータ援助による処理が暗示された。したがって、本発明は、コンピュータ援助による処理のための方法、この方法を実施するロジックを含むシステム、この方法を実施するロジックが刻印された媒体、この方法を実施するロジックが刻印されたデータストリーム、或いはコンピュータアクセス可能な処理サービスにおいて実施されてもよい。又、当業者であれば、特許請求の範囲に規定する本発明の精神及び範囲から逸脱せずに多数の変更や組合せが明らかとなろう。   Although the present invention has been disclosed with reference to the preferred embodiments and examples described above, this is merely illustrative of the invention and is not limiting in any way. In the above embodiment, a computer-assisted process is implied. Accordingly, the present invention provides a method for computer-aided processing, a system including logic that implements the method, a medium that is imprinted with logic that implements the method, a data stream that is imprinted with logic that implements the method, Alternatively, it may be implemented in a computer accessible processing service. Numerous modifications and combinations will become apparent to those skilled in the art without departing from the spirit and scope of the invention as defined in the claims.

マルチティアードアプリケーションの高レベルブロック図である。FIG. 6 is a high level block diagram of a multi-tiered application. EJBオンJ2EEサーバーを使用して共通オブジェクトフレームワークをいかに実施して中間ティアーを与えるかを示す図である。FIG. 6 illustrates how a common object framework is implemented using an EJB on J2EE server to provide an intermediate tier. 視覚的にモデリングされた単純なショッピングカートアプリケーションのためのオブジェクト及び関係を示す図である。FIG. 3 illustrates objects and relationships for a visually modeled simple shopping cart application. クラスプロパティを指定するためのポップアップウインドウに追加されたCBOFタブ401を示す図である。It is a figure which shows the CBOF tab 401 added to the popup window for designating a class property. オペレーションプロパティを指定するためのポップアップウインドウに追加されたCBOFタブ401を示す図である。It is a figure which shows the CBOF tab 401 added to the popup window for designating an operation property. EJBラッピングに適応させることのできるCBOFモデルを示す図である。It is a figure which shows the CBOF model which can be adapted to EJB wrapping. EJB及びJ2EEをサポートするように適応されるクラスCmoBase701、CmsBase702及びCmoAttribute703の態様を示すクラス図である。FIG. 6 is a class diagram illustrating aspects of classes CmoBase 701, CmsBase 702, and CmoAttribute 703 adapted to support EJB and J2EE. EJB及びJ2EEサポートへのCOFツール及びモデルの適応を示す図である。FIG. 4 illustrates the adaptation of COF tools and models to EJB and J2EE support. EJB及びJ2EEサポートへのCOFツール及びモデルの適応を示す図である。FIG. 4 illustrates the adaptation of COF tools and models to EJB and J2EE support. EJB及びJ2EEサポートへのCOFツール及びモデルの適応を示す図である。FIG. 4 illustrates the adaptation of COF tools and models to EJB and J2EE support. 水平パーティショニングを一般的に示す図である。FIG. 3 is a diagram generally illustrating horizontal partitioning. TopLink環境において中間ティアーで水平パーティショニングを実施するように使用できるクラスを示す図である。FIG. 6 illustrates classes that can be used to implement horizontal partitioning at an intermediate tier in a TopLink environment.

Claims (46)

マルチティアードカプセル化ビジネスアプリケーションのためのアプリケーション開発コードを発生する方法において、
(1)オブジェクト及び関係を視覚的にモデリングしそしてオブジェクト指向のアプリケーション設計のオペレーションを指定するステップであって、前記オブジェクト、関係及び/又はオペレーションのプロパティが、
(a)モデリングされたオブジェクトへのインターフェイスを発生すべきかどうか指示する第1プロパティ、及び
(b)指定されたオペレーションへのローカル及び/又はリモートインターフェイスを発生すべきかどうか指示する第2プロパティ、を含むようなステップと、
(2)前記プロパティを含む、視覚的モデルに対応するマシン読み取り可能なデータを発生するステップと、
(3)前記マシン読み取り可能なデータを使用して、前記視覚的モデルをデータベースへマッピングするステップと、
(4)前記マッピング及びマシン読み取り可能なデータからアプリケーション開発コードを付加的に発生するステップであって、該コードが、
(a)前記データベース内の前記モデリングされたオブジェクトを持続させ且つそれにアクセスするためのコード、
(b)前記第1プロパティと一貫した、前記オブジェクトを持続させ且つそれにアクセスするためのコードへのインターフェイス、及び
(c)前記第2プロパティと一貫した、前記指定のオペレーションへのインターフェイス、を含むようなステップと、
を備えた方法。
In a method of generating application development code for a multi-tiered encapsulated business application,
(1) visually modeling objects and relationships and specifying object-oriented application design operations, wherein the properties of the objects, relationships and / or operations are:
(a) a first property indicating whether an interface to the modeled object should be generated; and
(b) including a second property that indicates whether to generate a local and / or remote interface to the specified operation;
(2) generating machine-readable data corresponding to the visual model, including the properties;
(3) mapping the visual model to a database using the machine readable data;
(4) additionally generating application development code from the mapping and machine readable data, the code comprising:
(a) code for persisting and accessing the modeled object in the database;
(b) an interface to the code for persisting and accessing the object consistent with the first property; and
(c) including an interface to the specified operation that is consistent with the second property;
With a method.
前記アプリケーション開発コードは、Enterprise Java(登録商標)Beans(EJB)規格2.0以降のものに実質的に適合する、請求項1に記載の方法。   The method of claim 1, wherein the application development code substantially conforms to Enterprise Java (R) Beans (EJB) standard 2.0 or later. 前記オブジェクトを持続させ且つそれにアクセスするためのコードは、「ビーン・マネージド・パーシステンス(BMP)」プロトコルに実質的に適合する、請求項2に記載の方法。   The method of claim 2, wherein the code for persisting and accessing the object is substantially compatible with a “Bean Managed Persistence (BMP)” protocol. 前記アプリケーション開発コードは、「.NET Framework」仕様に実質的に適合する、請求項1に記載の方法。   The method of claim 1, wherein the application development code substantially conforms to a “.NET Framework” specification. 前記オブジェクト指向のアプリケーション設計は、「ユニファイドモデリング言語(UML)」規格に実質的に適合する、請求項1に記載の方法。   The method of claim 1, wherein the object-oriented application design substantially conforms to a “Unified Modeling Language (UML)” standard. 前記プロパティは、更に、前記マッピングステップを制御する前記オブジェクト及び関係の複数の第3プロパティを含む、請求項1に記載の方法。   The method of claim 1, wherein the properties further include a plurality of third properties of the objects and relationships that control the mapping step. 前記マッピングステップを制御する前記第3プロパティは、前記モデリングされたオブジェクトの配備のステージングをサポートすべきかどうかを含む、請求項6に記載の方法。   The method of claim 6, wherein the third property that controls the mapping step includes whether to support staging of deployment of the modeled object. 前記マッピングステップを制御する前記第3プロパティは、更に、前記モデリングされたオブジェクトの配備の変更経歴を記録すべきかどうかを含む、請求項7に記載の方法。   The method of claim 7, wherein the third property controlling the mapping step further includes whether to record a change history of the deployment of the modeled object. 前記オブジェクトのプロパティは、更に、フィールドを国際化するために前記モデリングされたオブジェクト内に1つ以上のフィールドを動的に配列すべきかどうか指示する1つ以上の第4プロパティを含む、請求項1に記載の方法。   The object properties further include one or more fourth properties that indicate whether one or more fields should be dynamically arranged within the modeled object to internationalize fields. The method described in 1. 前記オブジェクトを持続させ且つそれにアクセスするためのコードは、指定された言語に基づいて前記動的配列のどのエレメントを検索すべきか分析する、請求項9に記載の方法。   The method of claim 9, wherein the code for persisting and accessing the object analyzes which element of the dynamic array is to be searched based on a specified language. ユーザは、何を発生すべきか指定し、そして前記マシン読み取り可能なデータを発生し、マッピングしそして付加的に発生する前記ステップは、ユーザによる更なるアクションを必要とせずに行なわれる、請求項1に記載の方法。   The user specifies what to generate and the steps of generating, mapping and additionally generating the machine readable data are performed without requiring further action by the user. The method described in 1. 前記データベースは関係データベースである、請求項1に記載の方法。   The method of claim 1, wherein the database is a relational database. トランザクションの処理をサポートする少なくとも1つのデータベースマネージャーにより処理されるべきトランザクションをアッセンブルする方法において、
前記データベースマネージャーのトランザクション処理サポートによりデータにアクセスし且つそれを持続させるメソッドのオブジェクト指向のフレームワークを設けるステップと、
規格ベースのサーバー側コンポーネントモデル及びリモートメソッド呼び出しプロトコルに実質的に適合するオブジェクト指向のフレームワークのバージョンを付加的に設けるステップと、
前記オブジェクト指向のフレームワーク、及びそのオブジェクト指向のフレームワークの規格適合バージョンにより、1つ以上のデータベースに同時に向けられたトランザクション関連アクティビティを受け入れるステップと、
を備えた方法。
In a method of assembling a transaction to be processed by at least one database manager that supports transaction processing,
Providing an object-oriented framework of methods to access and persist data with transaction processing support of the database manager;
Additionally providing a version of an object-oriented framework that substantially conforms to a standards-based server-side component model and a remote method invocation protocol;
Accepting transaction-related activities directed simultaneously to one or more databases by the object-oriented framework and a conforming version of the object-oriented framework;
With a method.
前記規格は、Enterprise JavaBeans(EJB)である、請求項13に記載の方法。   The method of claim 13, wherein the standard is Enterprise JavaBeans (EJB). 前記規格は、「ディストリビューテッド・コモン・オブジェクト・モデル(DCOM)」である、請求項13に記載の方法。   The method of claim 13, wherein the standard is “Distributed Common Object Model (DCOM)”. 前記規格は、CORBAである、請求項13に記載の方法。   The method of claim 13, wherein the standard is CORBA. 前記受け入れステップは、オブジェクトをバッファすることを含み、更に、トランザクションをコミットする指令の際に、トランザクションを処理するためのデータベースマネージャーを呼び出すことを含む、請求項14に記載の方法。   The method of claim 14, wherein the accepting step includes buffering the object and further includes invoking a database manager to process the transaction upon a command to commit the transaction. 前記受け入れステップは、オブジェクトをバッファすることを含み、更に、トランザクションをコミットする指令の際に、トランザクションを処理するためのデータベースマネージャーを呼び出すことを含む、請求項15に記載の方法。   The method of claim 15, wherein the accepting step includes buffering the object, and further includes invoking a database manager for processing the transaction upon a command to commit the transaction. 前記受け入れステップは、オブジェクトをバッファすることを含み、更に、トランザクションをコミットする指令の際に、トランザクションを処理するためのデータベースマネージャーを呼び出すことを含む、請求項16に記載の方法。   The method of claim 16, wherein the accepting step includes buffering the object, and further includes invoking a database manager for processing the transaction upon a command to commit the transaction. トランザクションの処理をサポートする少なくとも1つのデータベースマネージャーにより処理されるべきトランザクションをアッセンブリング(assembling)する方法において、
前記データベースマネージャーのトランザクション処理サポートによりデータにアクセスし且つそれを持続させるメソッドのオブジェクト指向のフレームワークを設けるステップと、
EJB規格適合取り扱い及び呼び出しに適応されたオブジェクト指向のフレームワークのバージョンを付加的に設けるステップと、
前記オブジェクト指向のフレームワーク、及びそのオブジェクト指向のフレームワークのEJB規格適合バージョンにより、1つ以上のデータベースに同時に向けられたトランザクション関連アクティビティを受け入れるステップと、
を備えた方法。
In a method for assembling a transaction to be processed by at least one database manager that supports transaction processing,
Providing an object-oriented framework of methods to access and persist data with transaction processing support of the database manager;
Additionally providing a version of an object-oriented framework adapted to handling and invoking EJB standards;
Accepting transaction-related activities directed simultaneously to one or more databases by the object-oriented framework and an EJB-compliant version of the object-oriented framework;
With a method.
前記受け入れステップは、オブジェクトをバッファすることを含み、更に、トランザクションをコミットする指令の際に、トランザクションを処理するためのデータベースマネージャーを呼び出すことを含む、請求項20に記載の方法。   21. The method of claim 20, wherein the accepting step includes buffering the object, and further includes invoking a database manager for processing the transaction upon a command to commit the transaction. トランザクションの処理をサポートする少なくとも1つのデータベースマネージャーにより処理されるべきトランザクションをアッセンブルする方法において、
前記データベースマネージャーのトランザクション処理サポートによりデータにアクセスし且つそれを持続させるメソッドのオブジェクト指向のフレームワークを設けるステップと、
DCOM仕様適合取り扱い及び呼び出しに適応されたオブジェクト指向のフレームワークのバージョンを付加的に設けるステップと、
前記オブジェクト指向のフレームワーク、及びそのオブジェクト指向のフレームワークのDCOM仕様適合バージョンにより、1つ以上のデータベースに同時に向けられたトランザクション関連アクティビティを受け入れるステップと、
を備えた方法。
In a method of assembling a transaction to be processed by at least one database manager that supports transaction processing,
Providing an object-oriented framework of methods to access and persist data with transaction processing support of the database manager;
Additionally providing a version of an object-oriented framework adapted to DCOM specification conformance handling and invocation;
Accepting transaction-related activities directed simultaneously to one or more databases by the object-oriented framework and a DCOM-compliant version of the object-oriented framework;
With a method.
前記受け入れステップは、オブジェクトをバッファすることを含み、更に、トランザクションをコミットする指令の際に、トランザクションを処理するためのデータベースマネージャーを呼び出すことを含む、請求項22に記載の方法。   23. The method of claim 22, wherein the accepting step includes buffering the object and further includes invoking a database manager for processing the transaction upon a command to commit the transaction. トランザクションの処理をサポートする少なくとも1つのデータベースマネージャーにより処理されるべきトランザクションをアッセンブリング(assembling)する方法において、
前記データベースマネージャーのトランザクション処理サポートによりデータにアクセスし且つそれを持続させるメソッドのオブジェクト指向のフレームワークを設けるステップと、
CORBA適合取り扱い及び呼び出しに適応されたオブジェクト指向のフレームワークのバージョンを付加的に設けるステップと、
前記オブジェクト指向のフレームワーク、及びそのオブジェクト指向のフレームワークのCORBA適合バージョンにより、1つ以上のデータベースに同時に向けられたトランザクション関連アクティビティを受け入れるステップと、
を備えた方法。
In a method for assembling a transaction to be processed by at least one database manager that supports transaction processing,
Providing an object-oriented framework of methods to access and persist data with transaction processing support of the database manager;
Additionally providing an object-oriented framework version adapted for CORBA conformance handling and invocation;
Accepting transaction-related activities directed simultaneously to one or more databases by the object-oriented framework and a CORBA-compliant version of the object-oriented framework;
With a method.
前記受け入れステップは、オブジェクトをバッファすることを含み、更に、トランザクションをコミットする指令の際に、トランザクションを処理するためのデータベースマネージャーを呼び出すことを含む、請求項24に記載の方法。   25. The method of claim 24, wherein the accepting step includes buffering the object, and further includes invoking a database manager for processing the transaction upon a command to commit the transaction. 少なくとも1つのデータベースマネージャーにより処理されるデータを持続させる方法において、
前記データベースマネージャーによりデータにアクセスし且つそれを持続させるメソッドのオブジェクト指向のフレームワークを設けるステップと、
前記データベースマネージャーによりデータにアクセスし且つそれを持続させる前記メソッドへのEJB規格適合インターフェイスを設けるステップと、
前記オブジェクト指向のフレームワーク及び前記EJB規格適合インターフェイスにより、1つ以上のデータベースに同時に向けられたオブジェクトアクセス及び持続要求を受け入れるステップと、
を備えた方法。
In a method of persisting data processed by at least one database manager,
Providing an object-oriented framework of methods for accessing and persisting data by the database manager;
Providing an EJB standard compliant interface to the method for accessing and persisting data by the database manager;
Accepting object access and persistence requests directed simultaneously to one or more databases by the object oriented framework and the EJB standard compliant interface;
With a method.
前記オブジェクト要求は、それらがオブジェクト指向のフレームワークを経てなされたか又はEJB規格適合インターフェイスを経てなされたかに関わらず、Javaトランザクションサービスエンジンへ提出される、請求項26に記載の方法。   27. The method of claim 26, wherein the object requests are submitted to a Java transaction service engine regardless of whether they are made via an object-oriented framework or via an EJB standard compliant interface. 前記オブジェクト指向のフレームワークは、前記EJB規格適合インターフェイスを伴わずに、微粒状オブジェクトを持続させるように適応され、そして上記EJB規格適合インターフェイスは、微粒状オブジェクトを持続させるように適応され、更に、上記EJB規格適合インターフェイスは、2つ以上のデータベースへのトランザクションにおいてオブジェクトを持続させるように適応される、請求項26に記載の方法。   The object-oriented framework is adapted to persist fine-grained objects without the EJB-compliant interface, and the EJB-compliant interface is adapted to persist fine-grained objects; 27. The method of claim 26, wherein the EJB standard conforming interface is adapted to persist an object in a transaction to two or more databases. トランザクションの処理をサポートする少なくとも1つのデータベースマネージャーにより処理されるべきトランザクションをアッセンブリング(assembling)する方法において、
前記データベースマネージャーのトランザクション処理サポートによりデータにアクセスし且つそれを持続させると共に、テスト及び製造システムへの追加のためにオブジェクトをステージングもするメソッドのオブジェクト指向のフレームワークを設けるステップと、
規格ベースのサーバー側コンポーネントモデル及びリモートメソッド呼び出しプロトコルに実質的に適合するオブジェクト指向のフレームワークのバージョンであって、オブジェクトのステージングを含むバージョンを付加的に設けるステップと、
を備えた方法。
In a method for assembling a transaction to be processed by at least one database manager that supports transaction processing,
Providing an object-oriented framework of methods for accessing and persisting data with the database manager's transaction processing support and also staging objects for addition to a test and manufacturing system;
Providing an additional version of an object-oriented framework that substantially conforms to a standards-based server-side component model and a remote method invocation protocol, including staging of objects;
With a method.
前記規格は、Enterprise JavaBeans(EJB)である、請求項29に記載の方法。   30. The method of claim 29, wherein the standard is Enterprise JavaBeans (EJB). 前記規格は、「ディストリビューテッド・コモン・オブジェクト・モデル(DCOM)」である、請求項29に記載の方法。   30. The method of claim 29, wherein the standard is "Distributed Common Object Model (DCOM)". 前記規格は、CORBAである、請求項29に記載の方法。   30. The method of claim 29, wherein the standard is CORBA. トランザクションの処理をサポートする少なくとも1つのデータベースマネージャーにより処理されるべきトランザクションをアッセンブリング(assembling)する方法において、
前記データベースマネージャーのトランザクション処理サポートによりデータにアクセスし且つそれを持続させると共に、製造システムにおけるオブジェクトの変更経歴を追跡もするメソッドのオブジェクト指向のフレームワークを設けるステップと、
規格ベースのサーバー側コンポーネントモデル及びリモートメソッド呼び出しプロトコルに実質的に適合するオブジェクト指向のフレームワークのバージョンであって、前記変更経歴の追跡を含むバージョンを付加的に設けるステップと、
を備えた方法。
In a method for assembling a transaction to be processed by at least one database manager that supports transaction processing,
Providing an object-oriented framework of methods for accessing and persisting data with the database manager's transaction processing support and also tracking object modification history in the manufacturing system;
Providing an additional version of an object-oriented framework that substantially conforms to a standards-based server-side component model and a remote method invocation protocol, including tracking the change history;
With a method.
前記規格は、Enterprise JavaBeans(EJB)である、請求項33に記載の方法。   34. The method of claim 33, wherein the standard is Enterprise JavaBeans (EJB). 前記規格は、「ディストリビューテッド・コモン・オブジェクト・モデル(DCOM)」である、請求項33に記載の方法。   34. The method of claim 33, wherein the standard is "Distributed Common Object Model (DCOM)". 前記規格は、CORBAである、請求項33に記載の方法。   34. The method of claim 33, wherein the standard is CORBA. トランザクションの処理をサポートする少なくとも1つのデータベースマネージャーにより処理されるべきトランザクションをアッセンブリング(assembling)する方法において、
前記データベースマネージャーのトランザクション処理サポートによりデータにアクセスし且つそれを持続させると共に、フィールドを国際化するためにオブジェクト内にフィールドを動的に配列もするメソッドのオブジェクト指向のフレームワークを設けるステップと、
規格ベースのサーバー側コンポーネントモデル及びリモートメソッド呼び出しプロトコルに実質的に適合するオブジェクト指向のフレームワークのバージョンであって、フィールドを国際化するためにフィールドを動的に配列することを含むバージョンを付加的に設けるステップと、
を備えた方法。
In a method for assembling a transaction to be processed by at least one database manager that supports transaction processing,
Providing an object-oriented framework of methods for accessing and persisting data through the database manager's transaction processing support and also dynamically arranging the fields in the object to internationalize the fields;
A version of an object-oriented framework that substantially conforms to the standards-based server-side component model and remote method invocation protocol, including a version that dynamically arranges fields to internationalize them The steps provided in
With a method.
前記規格は、Enterprise JavaBeans(EJB)である、請求項33に記載の方法。   34. The method of claim 33, wherein the standard is Enterprise JavaBeans (EJB). 前記規格は、「ディストリビューテッド・コモン・オブジェクト・モデル(DCOM)」である、請求項33に記載の方法。   34. The method of claim 33, wherein the standard is "Distributed Common Object Model (DCOM)". 前記規格は、CORBAである、請求項33に記載の方法。   34. The method of claim 33, wherein the standard is CORBA. 水平にパーティショニングされるマルチティアードビジネスアプリケーション内でデータベースを発生する方法において、
オブジェクト及び関係をモデリングしそしてオブジェクト指向のアプリケーション設計のオペレーションを指定するステップであって、前記オブジェクトのプロパティが、多数のデータベースにわたりオブジェクトを水平にパーティショニングすべきかどうかを含むようなステップと、
前記プロパティを含む、モデルに対応するマシン読み取り可能なデータを発生するステップと、
前記マシン読み取り可能なデータを使用して、前記モデルを複数のデータベースへマッピングするステップと、
前記マッピング及びマシン読み取り可能なデータからアプリケーション開発コードを付加的に発生するステップであって、該コードは、前記複数のデータベースにわたり前記オブジェクトを持続させ且つそれにアクセスするためのコードを含み、更に、前記オブジェクトを持続させ且つそれにアクセスするための前記コードがデータベースティアーの上の中間プログラムティアーであるようなステップと、
を備えた方法。
In a method of generating a database within a multi-tiered business application that is horizontally partitioned,
Modeling objects and relationships and specifying object-oriented application design operations, wherein the object properties include whether the object should be partitioned horizontally across multiple databases;
Generating machine readable data corresponding to the model, including the properties;
Mapping the model to a plurality of databases using the machine-readable data;
Additionally generating application development code from the mapping and machine readable data, the code including code for persisting and accessing the object across the plurality of databases; The code for persisting and accessing the object is an intermediate program tier above the database tier;
With a method.
前記オブジェクトをパーティショニングするところの複数のデータベースを宣言すると共に、前記複数のデータベースの間で前記オブジェクトを特定のデータベースへとパーティショニングするのに使用される前記オブジェクトの1つ以上のフィールドを宣言するステップを更に備えた、請求項41に記載の方法。   Declares a plurality of databases that partition the object and declares one or more fields of the object used to partition the object into a particular database between the plurality of databases 42. The method of claim 41, further comprising a step. 少なくともデータベースティアー及び中間のビジネスアプリケーションティアーを含むマルチティアードビジネスアプリケーションにおいて多数の独立したデータベースにわたりオブジェクトの水平パーティショニングを実施する方法において、
特定のオブジェクトを特定のデータベースに指定するのに使用できる少なくとも1つの水平にパーティショニングされたオブジェクトにおいて1つ以上のフィールドを宣言するステップと、
前記水平にパーティショニングされたオブジェクトが属することのできる複数のデータベースとの接続を確立するステップと、
前記水平にパーティショニングされたオブジェクトを含む、探索又は形成すべき1つ以上のオブジェクトをバッファするステップと、
前記探索又は形成を進行させる指令の際に、前記オブジェクトが属する特定のデータベースを、前記宣言されたフィールドを使用して分析すると共に、前記データベースティアーにおいて前記特定のデータベースを呼び出して、前記探索又は形成を実行するステップと、
を備えた方法。
In a method for performing horizontal partitioning of objects across multiple independent databases in a multi-tiered business application including at least a database tier and an intermediate business application tier,
Declaring one or more fields in at least one horizontally partitioned object that can be used to designate a particular object to a particular database;
Establishing connections with a plurality of databases to which the horizontally partitioned objects can belong;
Buffering one or more objects to be explored or formed, including the horizontally partitioned objects;
Upon command to proceed with the search or formation, the specific database to which the object belongs is analyzed using the declared field and the specific database is called at the database tier to search for or form A step of performing
With a method.
少なくともデータベースティアー及び中間のビジネスアプリケーションティアーを含むマルチティアードビジネスアプリケーションにおいて多数の独立したデータベースにわたりオブジェクトの水平パーティショニングを実施する方法において、
少なくとも1つの前記水平にパーティショニングされたオブジェクトが属することのできる複数のデータベースとの接続を確立するステップと、
前記水平にパーティショニングされたオブジェクトが属する特定のデータベースを設定するステップと、
前記設定ステップの前又は後に、前記水平にパーティショニングされたオブジェクトを含む、探索又は形成すべき1つ以上のオブジェクトをバッファするステップと、
前記探索又は形成を進行させる指令の際に、前記データベースティアーにおいて前記特定のデータベースを呼び出して、前記探索又は形成を実行するステップと、
を備えた方法。
In a method for performing horizontal partitioning of objects across multiple independent databases in a multi-tiered business application including at least a database tier and an intermediate business application tier,
Establishing connections with a plurality of databases to which at least one of the horizontally partitioned objects can belong;
Setting a specific database to which the horizontally partitioned object belongs;
Buffering one or more objects to be explored or formed, including the horizontally partitioned objects, before or after the setting step;
Invoking the specific database at the database tier and instructing the search or formation to execute the search or formation;
With a method.
前記複数のデータベースは、単一の論理名で集合的に参照され、更に、前記複数のデータベース間の特定のデータベースが1つ以上の付加的な属性へと論理的にマップされる、請求項44に記載の方法。   45. The plurality of databases are collectively referenced by a single logical name, and further, a particular database between the plurality of databases is logically mapped to one or more additional attributes. The method described in 1. 前記付加的な属性は、前記水平にパーティショニングされたオブジェクトのフィールドである、請求項45に記載の方法。   46. The method of claim 45, wherein the additional attribute is a field of the horizontally partitioned object.
JP2004548300A 2002-10-28 2003-08-21 Transparent EJB support and horizontal data partitioning Pending JP2006504194A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US28191402A 2002-10-28 2002-10-28
PCT/US2003/026010 WO2004040399A2 (en) 2002-10-28 2003-08-21 Transparent ejb support and horizontal data partitioning

Publications (1)

Publication Number Publication Date
JP2006504194A true JP2006504194A (en) 2006-02-02

Family

ID=32228781

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2004548300A Pending JP2006504194A (en) 2002-10-28 2003-08-21 Transparent EJB support and horizontal data partitioning

Country Status (6)

Country Link
EP (1) EP1579297A4 (en)
JP (1) JP2006504194A (en)
KR (1) KR20050065638A (en)
CN (3) CN101630259B (en)
AU (2) AU2003263943B2 (en)
WO (1) WO2004040399A2 (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7676791B2 (en) * 2004-07-09 2010-03-09 Microsoft Corporation Implementation of concurrent programs in object-oriented languages
US7890926B2 (en) * 2005-01-04 2011-02-15 Vaakya Technologies Private Limited System and method for application development and deployment
US8141032B2 (en) 2007-02-02 2012-03-20 Microsoft Corporation N-tiered applications support via common interface
KR101470319B1 (en) * 2008-02-15 2014-12-08 삼성전자주식회사 Method and apparatus for generating virtual software platform based on component model and validating software platform architecture using thereof
KR100945181B1 (en) * 2008-03-26 2010-03-03 한양대학교 산학협력단 Storage system, middle storage and data management method for data protection using file name
US8396845B2 (en) * 2008-09-26 2013-03-12 Microsoft Corporation Data-tier application component
CN103186564A (en) * 2011-12-28 2013-07-03 深圳市金蝶中间件有限公司 Data object processing method and system
CN105827671A (en) * 2015-01-04 2016-08-03 深圳市领耀东方科技股份有限公司 System platform characterized by distributed use and centralized management and portal server
US9916373B2 (en) 2015-03-26 2018-03-13 Red Hat, Inc. Dynamic data partitioning extension
CN108287717B (en) * 2017-03-13 2021-03-09 平安科技(深圳)有限公司 Jar packet generation method and terminal
US11936739B2 (en) * 2019-09-12 2024-03-19 Oracle International Corporation Automated reset of session state
KR102258241B1 (en) * 2019-11-18 2021-06-01 주식회사 오픈드래프트 Server side data component for support of development and management and method for perform the data component
US11372675B2 (en) * 2020-06-15 2022-06-28 Bank Of America Corporation Jobs synchronize framework
WO2022010491A1 (en) * 2020-07-10 2022-01-13 Hewlett-Packard Development Company, L.P. Application version switching
WO2024039382A1 (en) * 2022-08-17 2024-02-22 Rakuten Mobile, Inc. Method and uniqueness constraint management server for managing uniqueness constraints associated with entities

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6263342B1 (en) * 1998-04-01 2001-07-17 International Business Machines Corp. Federated searching of heterogeneous datastores using a federated datastore object
US6067548A (en) * 1998-07-16 2000-05-23 E Guanxi, Inc. Dynamic organization model and management computing system and method therefor
US7152228B2 (en) * 1999-07-08 2006-12-19 Science Applications International Corporation Automatically generated objects within extensible object frameworks and links to enterprise resources
US6370541B1 (en) * 1999-09-21 2002-04-09 International Business Machines Corporation Design and implementation of a client/server framework for federated multi-search and update across heterogeneous datastores
US7404175B2 (en) * 2000-10-10 2008-07-22 Bea Systems, Inc. Smart generator
US7089583B2 (en) * 2000-01-14 2006-08-08 Saba Software, Inc. Method and apparatus for a business applications server
US6631519B1 (en) * 2000-03-30 2003-10-07 Microsoft Corporation Automated schema and interface generation
WO2001082071A1 (en) * 2000-04-21 2001-11-01 Togethersoft Corporation Methods and systems for supporting and deploying distributed computing components
WO2002019652A2 (en) * 2000-08-28 2002-03-07 Ramesh Venkataramaiah System and method for transmitting and retrieving data via a distributed persistence framework
US20030018694A1 (en) * 2000-09-01 2003-01-23 Shuang Chen System, method, uses, products, program products, and business methods for distributed internet and distributed network services over multi-tiered networks
US20020184401A1 (en) * 2000-10-20 2002-12-05 Kadel Richard William Extensible information system
US20030212987A1 (en) * 2001-02-28 2003-11-13 Demuth Steven J. Client container for building EJB-hosted java applications
US6847974B2 (en) * 2001-03-26 2005-01-25 Us Search.Com Inc Method and apparatus for intelligent data assimilation
US7149730B2 (en) * 2002-05-03 2006-12-12 Ward Mullins Dynamic class inheritance and distributed caching with object relational mapping and cartesian model support in a database manipulation and mapping system

Also Published As

Publication number Publication date
WO2004040399A3 (en) 2005-09-29
AU2003263943B2 (en) 2010-01-21
CN101630331B (en) 2011-04-06
WO2004040399A2 (en) 2004-05-13
KR20050065638A (en) 2005-06-29
CN101630259A (en) 2010-01-20
AU2003263943A1 (en) 2004-05-25
EP1579297A2 (en) 2005-09-28
CN1729448A (en) 2006-02-01
EP1579297A4 (en) 2008-07-02
CN101630331A (en) 2010-01-20
CN100552625C (en) 2009-10-21
AU2010201505A1 (en) 2010-05-06
CN101630259B (en) 2016-09-14

Similar Documents

Publication Publication Date Title
US7043481B2 (en) System, method and software for creating, maintaining, navigating or manipulating complex data objects and their data relationships
AU2010201505A1 (en) Transparent EJB support and horizontal data partitioning
US6243709B1 (en) Method and apparatus for loading stored procedures in a database corresponding to object-oriented data dependencies
US7103600B2 (en) Displayable presentation page and SQL searchable relational data source implementation of a system, method and software for creating or maintaining distributed transparent persistence of complex data objects and their data relationships
US6366921B1 (en) System and method for data manipulation in a dynamic object-based format
US7167862B2 (en) Session bean implementation of a system, method and software for creating or maintaining distributed transparent persistence of complex data objects and their data relationships
US6385618B1 (en) Integrating both modifications to an object model and modifications to a database into source code by an object-relational mapping tool
US7769747B2 (en) Method and apparatus for generating a service data object based service pattern for an enterprise Java beans model
US20030046266A1 (en) System, method and software for creating or maintaining distributed transparent persistence of complex data objects and their data relationships
EP1076863A1 (en) A system and method for accessing data stores as objects
US9513879B2 (en) Model augmentation in a model-driven application development environment
Schmoelzer et al. The entity container-an object-oriented and model-driven persistency cache
EP1040432B1 (en) Method and apparatus for loading stored procedures in a database corresponding to object-oriented data dependencies
Acharya Post Office Management System Project Report
Wetherbee et al. Entities and the Java Persistence API (JPA)
US20100023923A1 (en) Method for medeling objects in a hetrogenious computing environment
Deinum et al. Spring with NoSQL
Guide et al. v6. 0
Carnell et al. Architecting the Data Access Tier with Object Relational Bridge
Jordan The JDO object model
Hinrichsen Rolling your own Object Persistence Framework
US20040230606A1 (en) Mechanism for enabling persistence of abstract and versioned dependent value objects
WO2003077123A1 (en) Displayable presentation page
Guruzu et al. Starting with Hibernate
WO2003077113A1 (en) Session bean implementation for distributed transparent persistence of complex data objects

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20060821

A711 Notification of change in applicant

Free format text: JAPANESE INTERMEDIATE CODE: A711

Effective date: 20080208

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20090629

A601 Written request for extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A601

Effective date: 20090928

A602 Written permission of extension of time

Free format text: JAPANESE INTERMEDIATE CODE: A602

Effective date: 20091005

A521 Written amendment

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20100104

A02 Decision of refusal

Free format text: JAPANESE INTERMEDIATE CODE: A02

Effective date: 20100208