JP5162094B2 - メタデータ駆動型ビジネス・ロジック(metadatadrivenbusinesslogic)処理のための方法および装置 - Google Patents

メタデータ駆動型ビジネス・ロジック(metadatadrivenbusinesslogic)処理のための方法および装置 Download PDF

Info

Publication number
JP5162094B2
JP5162094B2 JP2005368840A JP2005368840A JP5162094B2 JP 5162094 B2 JP5162094 B2 JP 5162094B2 JP 2005368840 A JP2005368840 A JP 2005368840A JP 2005368840 A JP2005368840 A JP 2005368840A JP 5162094 B2 JP5162094 B2 JP 5162094B2
Authority
JP
Japan
Prior art keywords
entity
metadata module
module
metadata
memory
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Expired - Fee Related
Application number
JP2005368840A
Other languages
English (en)
Other versions
JP2006190279A (ja
Inventor
エー.ザイツェフ アンドレイ
エム.ペリ ジェーガン
エス.グレーワル ジャスジット
ビー.タッカー ジガー
ミラー マイケルジョン
アイ サダニ ナビン
ルー ヨン
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Corp
Original Assignee
Microsoft Corp
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 Microsoft Corp filed Critical Microsoft Corp
Publication of JP2006190279A publication Critical patent/JP2006190279A/ja
Application granted granted Critical
Publication of JP5162094B2 publication Critical patent/JP5162094B2/ja
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q10/00Administration; Management
    • G06Q10/10Office automation; Time management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10TECHNICAL SUBJECTS COVERED BY FORMER USPC
    • Y10STECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y10S707/00Data processing: database and file management or data structures
    • Y10S707/99941Database schema or data structure
    • Y10S707/99944Object-oriented database structure

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Physics & Mathematics (AREA)
  • Entrepreneurship & Innovation (AREA)
  • Human Resources & Organizations (AREA)
  • Strategic Management (AREA)
  • General Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Operations Research (AREA)
  • Tourism & Hospitality (AREA)
  • Quality & Reliability (AREA)
  • General Business, Economics & Management (AREA)
  • Marketing (AREA)
  • Economics (AREA)
  • Data Mining & Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
  • Stored Programmes (AREA)

Description

本発明は、一般にコンピュータ・ソフトウェアに関し、より詳細にはインターネットを使用するビジネス・アプリケーションに関する。
現代のビジネスは、最新の技術を使用しないと効率的に機能することができない。具体的には、コンピュータおよびソフトウェアが、発達した経済的な組織におけるビジネスの大部分で、ほとんど主要な部分になっている。通常、ビジネスでは、エクセル(登録商標)などのいくつかの市販ビジネス・アプリケーション、ならびにビジネスの特定分野向けに特に設計されたいくつかのカスタム・アプリケーションなどを使用する。金融サービスや医療サービスなど、特定のタイプのビジネスで使用するためにソフトウェア会社によって開発された、いくつかの業界特有のソフトウェア・アプリケーションが存在する。
こうした業界特有のソフトウェア・アプリケーションは、一般に、特定のビジネス・タイプの特定の特徴を考慮して設計されているが、それらは、さらにエンド・ユーザの使用により適するように修正する必要がある。顧客(との)関係性管理(CRM:Customer relationship management)ソフトウェアは、エンド・ユーザ、あるいはこの特定のタイプのソフトウェアを専門に扱う独立ソフトウェア・ベンダのいずれかによってしばしば修正される、ビジネス・アプリケーションの一例である。
インターネットの発展以来、ビジネスでは、通常、インターネット上で分散型のビジネス・ソリューションを提供するウェブ・ベースのアプリケーションを使用する。典型的なウェブ・ベースのアプリケーションでは、3階層のプラットフォームビジネス・アプリケーションを実装するのに使用され、このプラットフォームでは、ウェブ・ブラウザがクライアント階層(client tier)になり、アプリケーションが使用する様々なビジネス・データを収容するデータベースがバックエンド階層(back-end tier)になり、ウェブ・サーバおよびその拡張部分が中間階層(middle tier)になる。中間階層は、しばしばミドルウェアとしても知られており、限定されないけれども、データの読み取り、データの書き込み、データ・アクセスの許可、関係性の妥当性検査などを含むいくつかの機能性を担当する。
ビジネス・アプリケーション向けに使用されるミドルウェアは、ビジネス・データを管理するための高度にカスタマイズ可能なソリューションを要求する。こうしたアプリケーションでの典型的なプロセスには、許可(authorization)、データ完全性の維持(maintaining data integrity)、ビジネスルールの適用などのための様々なプロセスが含まれる。ビジネス・アプリケーションは、セキュリティ、ビジネス区分の再構成、異種オブジェクト階層の更新/削除などのための様々なカスケーディング・(cascading)オペレーション中に、複数のビジネス・エンティティ(entity)間に様々な関係性の制約(relationship constraints)を課すことも必要とする。本明細書に述べるように、エンティティとは、顧客や製品など実世界の概念をメタデータで記述したものである。エンティティという用語およびクラス(class)という用語は、こうした実世界の概念の、こうした定義または記述を意味するために区別なく使用することができる。エンティティ・インスタンス、または単にインスタンスは、こうしたエンティティのセットの具体的な構成要素を記述する物理的なデータである。同様に、関係性制約条件は、ビジネス・ロジックを実行中に2つのエンティティ間の特定の関係性がどのようにトラバースされるかを管理する1組のルールである。一方で、カスケーディング・オペレーションとは、様々なエンティティの関係性制約条件を自動的にトラバースするビジネス・ロジックに関係するオペレーションである。
すべてのカスケーディング・オペレーションは、接続されたクライアントおよび切り離されたクライアントのいずれにおいても起こりうる。しかし、データを変更するカスケーディング・オペレーションのサブセットは、中央アプリケーション・サーバ上でそれが発生するときにのみ信頼される。したがって、ビジネス・プロセスおよびエンティティ・スキーマ(schema)のカスタマイズを可能にするは、カスケーディング・オペレーションに関していくつかの課題を提起する。
したがって、ビジネス・データを管理するためのカスタマイズ可能なビジネス・ソリューションを提供するために、より良い中間階層のプラットフォームを提供することが必要になる。
一連のビジネス・アプリケーションにおける中間階層で必要とされるビジネス・アプリケーション・ソフトウェアをサポートするためのメタデータ駆動型システムは、プロセスをメタデータ・フォーマットで格納するように適合されたプロセス・メタデータ・モジュールを含む。このシステムにおいて、このプロセスのオブジェクトは、アプリケーション・ソフトウェアのエンティティに関係するロジックを収容する。このシステムは、アカウント、インシデント(incident)などの様々なエンティティの持続性(persistence)を可能とし、ビジネス・アプリケーション・ソフトウェアのエンド・ユーザが新しいタイプのエンティティを作成することを可能にする。このシステムは、エンド・ユーザが、ビジネス・アプリケーションの配備後に、エンド・ユーザによって定義される新しいエンティティに関しても、このビジネス・アプリケーション・ソフトウェアを再コンパイルすることを必要とせずに、重要なビジネス・ロジック・オペレーションを実行することもできるようになる。メタデータ駆動型手法は、ビジネス・アプリケーションに容易に変更を加えることを可能にし、このビジネス・アプリケーション上に構築されたオブジェクトの品質保証を自動化することを可能にする。
メタデータ駆動型システムの一実装形態は、ビジネス・エンティティを定義するデータベース・スキーマを有する、ビジネス・アカウントや取引相手などのビジネス・エンティティを、メタデータ・フォーマットで表すことを可能にする。このシステムは、ビジネス・エンティティの複数のプロパティをエンティティ・メタデータ・モジュールとしてメタデータ・フォーマットで定義するように、エンティティ・メタデータ・モジュールをアプリケーション・プラットフォームに直列化するように、直列化されたエンティティ・メタデータ・モジュールを直列化解除するように、直列化解除されたエンティティ・メタデータ・モジュールをアプリケーション・プラットフォーム上に格納するように、適合させることができる。このシステムは、プロセス・オブジェクトを、プロセス・メタデータ・モジュールとしてメタデータ・フォーマットで定義するようにさらに適合させることができ、このプロセス・オブジェクトはビジネス・エンティティのためのロジックを収容する。このシステムには、プロセス・メタデータ・モジュールをアプリケーション・プラットフォームに直列化するための直列化モジュール、直列化されたメタデータ・モジュールを直列化解除するための直列化解除モジュール、および直列化解除されたプロセス・メタデータ・モジュールをアプリケーション・プラットフォーム上に格納するための格納モジュールも含むことができる。
システムの代替実装形態は、エンティティ上で実行されるオペレーションを、オペレーション・メタデータ・モジュールとしてメタデータ・フォーマットで定義するように、プロセス・メタデータ・モジュールをアプリケーション・プラットフォームに直列化するように、直列化されたプロセス・メタデータ・モジュールを直列化解除するように、直列化解除されたプロセス・メタデータ・モジュールをアプリケーション・プラットフォーム上に格納するように、適合させることもできる。
以下の本文に数多くの異なる実施形態を詳細に説明するが、記述の法的な範囲は、特許請求の範囲の語句によって定義されることを理解されたい。詳細な記述は、単に例示的なものに過ぎないと解釈すべきであり、考え得るあらゆる実施形態を記述することは、不可能ではないにしても非現実的であるため、考え得るあらゆる実施形態を記述していない。現在の技術または本発明の出願日の後に開発される技術を使用することによって、数多くの代替実施形態を実装することが可能であり、これらは、依然として本発明を定義する特許請求の範囲内に入ることになる。
「本明細書では、用語「_」は、ここに...を意味するように定義される」あるいは同様な文を使用して、ある用語が本発明において明確に定義されない限り、その用語の意味を、その明白なまたは普通の意味を越えて、明確にまたは暗に限定する意図はなく、こうした用語は、(特許請求の範囲での用語以外の)本発明のどんなセクションで述べられる記述に基づく範囲内においても、限定するように解釈すべきでないことも理解されたい。特許請求の範囲に明記されるどんな用語も、本発明において単一の意味に一致する形で言及される場合、それは、ただ読者を混乱させないよう明確にするためであって、こうしたクレームの用語を、暗にまたはその他の方法で、その単一の意味に限定することを意図するものではない。最後に、特許請求の範囲中の構成要素が、任意の構造についての詳述することなく、「手段(means)」という用語、および機能、を列挙することによって定義されない限り、どんな特許請求の範囲中の構成要素の範囲も、米国法典第35巻第112条第6段落の適用に基づいて解釈されることを意図してはいない。
ネットワーク
図1には、本明細書に記載のXML版数管理システム(XML versioning system)を実装するために使用することができるネットワーク10が示してある。ネットワーク10は、インターネット、仮想専用線網(VPN:virtual private network)でもよく、1つまたは複数のコンピュータ、通信装置、データベースなどを、通信ができるように互いに接続することができるようにする他のどんなネットワークでもよい。ネットワーク10は、イーサネット(登録商標)16およびルータ18、ならびに地上の通信線20を介して、パーソナル・コンピュータ12およびコンピュータ端末14に接続することができる。一方、ネットワーク10は、無線通信局26および無線リンク28を介して、ラップトップ・コンピュータ22および携帯型情報端末24に無線接続することができる。同様に、サーバ30は、通信リンク32を使用してネットワーク10に接続することができ、メインフレーム34は、別の通信リンク36を使用してネットワーク10に接続することができる。さらに詳しく後述するように、動的ソフトウェア・プロビジョニング・システム(dynamic software provisioning system)の1つまたは複数の構成要素は、ネットワーク10に接続された任意の様々な装置上に、格納し、稼働させることができる。
図2には、ネットワーク10に接続され、動的ソフトウェア・プロビジョニング・システムの1つまたは複数の構成要素を実装するために使用することができるコンピュータ110の形で、コンピューティング装置が示してある。コンピュータ110の構成要素には、それだけには限定されないが、処理ユニット120、システム・メモリ130、およびシステム・メモリを含めた様々なシステム構成要素を処理ユニット120に結合するシステム・バス121が含まれ得る。システム・バス121は、メモリ・バスまたはメモリ・コントローラ、周辺バス、および任意の様々なバス・アーキテクチャを使用するローカル・バスを含めて、いくつかのタイプのバス構造のうちのどれでもよい。例として、それだけには限定されないが、こうしたアーキテクチャには、ISA(Industry Standard Architecture)バス、マイクロ・チャネル・アーキテクチャ(MCA:Micro Channel Architecture)バス、EISA(Enhanced ISA)バス、ビデオ電子装置規格化協会(VESA:Video Electronics Standards Association)ローカル・バス、およびメザニン・バス(Mezzanine bus)としても知られている周辺構成要素相互接続(PCI:Peripheral Component Interconnect)バスが含まれる。
コンピュータ110は、通常、様々なコンピュータ読み取り可能な媒体を備える。コンピュータ読み取り可能な媒体は、コンピュータ110からアクセスすることができる、入手可能などんな媒体とすることもでき、揮発性および不揮発性の媒体、取り外し可能および取り外し不可能な媒体のどちらも含まれる。例として、それだけには限定されないが、コンピュータ読み取り可能な媒体は、コンピュータの記憶媒体および通信媒体を含むことができる。コンピュータの記憶媒体には、コンピュータ読み取り可能な命令、データ構造、プログラム・モジュール、他のデータなどの情報を格納するためのどんな方法および技術で実装される、揮発性および不揮発性の媒体、取り外し可能および取り外し不可能な媒体も含まれる。コンピュータ記憶媒体には、それだけには限定されないが、RAM、ROM、EEPROM、フラッシュ・メモリまたは他のメモリ技術、CD−ROM、デジタル多用途ディスク(DVD:digital versatile disk)または他の光学ディスク記憶装置、磁気カセット、磁気テープ、磁気ディスク記憶装置または他の磁気記憶装置、あるいは所望の情報を格納するために使用することができ、コンピュータ110からアクセスすることができる他のどんな媒体も含まれる。通信媒体は、通常、コンピュータ読み取り可能な命令、データ構造、プログラム・モジュールまたは他のデータを、搬送波や他の伝送機構など変調されたデータ信号の中に含み、どんな情報送達媒体をも含む。「変調されたデータ信号」という用語は、情報を信号の中に符号化するような方法で設定または変更された信号特性のうちの1つまたは複数を有する信号を意味する。例として、それだけには限定されないが、通信媒体には、有線ネットワークや直接配線接続などの有線媒体、および、音声、無線周波数、赤外線、他の無線媒体などの無線媒体が含まれる。前述のどんな媒体の組合せも、コンピュータ読み取り可能な媒体の範囲内に含まれるべきである。
システム・メモリ130には、読出し専用メモリ(ROM)131やランダム・アクセス・メモリ(RAM)132など、揮発性および/または不揮発性メモリの形のコンピュータ記憶媒体が含まれる。基本入出力システム133(BIOS)は、起動時などにコンピュータ110内の諸要素間で情報を伝送する助けとなる基本的なルーチンを収容し、通常ROM131に格納されている。RAM132は、通常、処理ユニット120からただちにアクセス可能で、かつ/または現在処理ユニット120によって動作させられている、データおよび/またはプログラム・モジュールを収容する。例として、それだけには限定されないが、図2には、オペレーティング・システム134、アプリケーション・プログラム135、他のプログラム・モジュール136、およびプログラム・データ137が示してある。
コンピュータ110には、他の取り外し可能/取り外し不可能な、揮発性/不揮発性のコンピュータ記憶媒体も含めることができる。例として、図2には、取り外し不可能で不揮発性の磁気媒体との間で読み書きを行うハードディスク・ドライブ140、取り外し可能で不揮発性の磁気ディスク152との間で読み書きを行う磁気ディスク・ドライブ151、およびCD ROMや他の光学媒体など取り外し可能で不揮発性の光学ディスク156との間で読み書きを行う光学ディスク・ドライブ155が示してある。例示的な動作環境(operating environment)で使用することができる、他の取り外し可能/取り外し不可能な、揮発性/不揮発性のコンピュータ記憶媒体には、それだけには限定されないが、磁気テープ・カセット、フラッシュ・メモリ・カード、デジタル多用途ディスク、デジタル・ビデオ・テープ、半導体RAM、半導体ROMなどが含まれる。ハードディスク・ドライブ141は、通常、インターフェース140など取り外し不可能なメモリ・インターフェースを介してシステム・バス121に接続され、磁気ディスク・ドライブ151および光学ディスク・ドライブ155は、通常、インターフェース150など取り外し可能なメモリ・インターフェースによってシステム・バス121に接続される。
前述の図2に示した各ドライブおよびそれらに関連するコンピュータ記憶媒体は、コンピュータ110のために、コンピュータ読み取り可能な命令、データ構造、プログラム・モジュール、および他のデータについての記憶装置を提供する。図2には、たとえば、ハードディスク141は、オペレーティング・システム144、アプリケーション・プログラム145、他のプログラム・モジュール146、およびプログラム・データ147を格納するように示してある。これらの構成要素は、オペレーティング・システム134、アプリケーション・プログラム135、他のプログラム・モジュール136、およびプログラム・データ137と同じものとすることもでき、異なるものとすることもできることに留意されたい。オペレーティング・システム144、アプリケーション・プログラム145、他のプログラム・モジュール146、およびプログラム・データ147は、少なくともそれらが別のコピーであることを示すために、図2では別の番号が付与されている。ユーザは、キーボード162や、普通はマウス、トラックボール、またはタッチパッドと呼ばれるポインティング装置161などの入力装置を介して、コマンドおよび情報をコンピュータ20に入力することができる。他の入力装置(図示せず)には、マイクロフォン、ジョイスティック、ゲームパッド、衛星用パラボラ・アンテナ、スキャナなどが含まれ得る。これらおよび他の入力装置は、システム・バスに結合されているユーザ入力インターフェース160を介して、しばしば処理ユニット120に結合されるが、パラレル・ポート、ゲーム・ポート、ユニバーサル・シリアル・バス(USB)など他のインターフェースおよびバス構造によって結合することもできる。モニタ191または他のタイプの表示装置も、ビデオ・インターフェース190などのインターフェースを介してシステム・バス121に接続されている。モニタに加えて、コンピュータには、スピーカ197やプリンタ196など、出力周辺インターフェース190を介して接続することができる他の周辺出力装置も含めることができる。
コンピュータ110は、リモート・コンピュータ180など1つまたは複数のリモート・コンピュータへの論理的な接続を使用して、ネットワーク化された環境で動作することができる。リモート・コンピュータ180は、パーソナル・コンピュータ、サーバ、ルータ、ネットワークPC、ピア装置(peer device)でもよく、他の一般的なネットワーク・ノードでもよい。リモート・コンピュータ180は、通常、コンピュータ110に関係する前述の各要素の多くまたはすべてを含むが、図2にはメモリ記憶装置181だけが示してある。図2に示した論理的な接続には、ローカル・エリア・ネットワーク(LAN)171およびワイド・エリア・ネットワーク(WAN)173が含まれるが、他のネットワークも含まれ得る。こうしたネットワーキング環境は、オフィス、企業全体のコンピュータ・ネットワーク、イントラネット、およびインターネットでは普通である。
LANネットワーキング環境で使用されるときは、コンピュータ110は、ネットワークのインターフェースまたはアダプタ170を介してLAN 171に接続される。WANネットワーキング環境で使用されるときは、コンピュータ110は、通常、インターネットなどのWAN 173を介して通信を確立するためのモデム172または他の手段を備える。モデム172は、内部モデムでも外部モデムでもよく、ユーザ入力インターフェース160または他の適切な機構を介してシステム・バス121に接続することができる。ネットワーク化された環境では、コンピュータ110に関係して示されたプログラム・モジュール、またはその一部分は、リモート・メモリ記憶装置に格納することができる。例として、それだけには限定されないが、図2には、リモート・アプリケーション・プログラム185がメモリ装置181に常駐するものとして示してある。示されたネットワーク接続は例示的なものであり、各コンピュータ間の通信リンクを確立する他の手段を使用することもできることが理解されよう。
メタデータ駆動型ビジネス論理処理
図3には、図1のネットワーク10上で様々なアプリケーションを管理するために使用することができるメタデータ駆動型システム200のブロック図が示してある。システム200には、エンティティ・メタデータ・モジュール202、プロセス・メタデータ・モジュール204、基本プロセス・メタデータ・モジュール206、直列化モジュール208、および直列化解除モジュール210が含まれ得る。システム200は、サーバ・データベース212、リモート・データベース214、グラフィカル・ユーザ・インターフェース(GUI)216およびブラウザ218と通信することができる。システム200の様々なモジュールは、ネットワーク10のサーバ30、デスクトップ・コンピュータ12など、任意の様々なコンピューティング装置上に実装することができる。システム200は、コンピュータ110上に実装される場合、ROM131、RAM132、または他の同様などんな記憶場所にも格納することもできる。
システム200を使用して、サーバ・データベース212およびリモート・データベース214上の様々なデータにアクセスする顧客(との)関係性管理(CRM)アプリケーションなどのアプリケーション用のミドルウェアを実装することができる。本明細書には、システム200はCRMアプリケーションを実装するものとして説明してあるが、システム200を使用して、代替アプリケーションをいくつでも実装することができる。たとえば、一代替実装形態では、システム200を使用して、ネットワーク10などのネットワーク上に人的資源管理(human resource management)アプリケーションを実装することができる。システム200を使用して実装することができるアプリケーションの他の例には、企業資源計画(ERP:enterprise resource planning)システム、分散会計システム(distributed accounting system)、資材所要量計画(MRP:material requirement planning)システム、プロジェクト管理システムなどの様々なビジネス・アプリケーションが含まれる。
システム200は、GUI216およびブラウザ218を使用して、システム200のユーザと通信することができる。さらに、コンピュータ110上に格納されているアプリケーション・プログラム135など、1つまたは複数のアプリケーション・プログラムもシステム200と対話することができる。システム200は、システム・バス121または当業者によく知られた他のどんな方法をも使用して、コンピュータ110上の様々な装置と通信することができる。同様に、システム200は、ローカル・エリア・ネットワーク171、ワイド・エリア・ネットワーク173などを使用するネットワーク上の様々な装置と通信することができる。
次に、システム200の具体的な構成要素を参照すると、エンティティ・メタデータ・モジュール202は、アプリケーションが使用するエンティティの様々なプロパティを定義することができる。こうしたエンティティは、たとえば、CRMアプリケーションの顧客アカウント・データ用のアカウント・テーブル、在庫管理アプリケーションでの売上げデータ用の売上げテーブルなどでよい。当業者にはよく知られているが、メタデータは、一般に、エンティティおよびそれらの関係性についての情報を表す。エンティティ・メタデータ・モジュール202には、エンド・ユーザまたは独立ソフトウェア・ベンダ(ISV)によって作成される様々なエンティティについてのプロパティを含めて、様々なエンティティのプロパティを含めることができる。エンティティ・メタデータ・モジュール202によって表すことができる各プロパティのうちのいくつかの例としては、エンティティのデータ・タイプ、エンティティのサイズ、エンティティに関するセキュリティ情報、そのエンティティと他のエンティティとの関係性などでもよい。図3のブロック図には、エンティティ・メタデータ・モジュール202についてひとつのブロックしか示していないが、システム200の一実装形態では、エンティティ・メタデータ・モジュール202の構造は非常に複雑で、様々なエンティティについての様々なエンティティ・メタデータ・モジュールを含み、こうした複数のエンティティ・メタデータ・モジュールのうちの1つまたは複数を、相互に関係づけることができることを理解されたい。
プロセス・メタデータ・モジュール204は、エンティティに関係する様々なプロセスを表すことができる。たとえば、エンティティが契約を表し、それが売買契約に関する情報を提供するとき、この契約エンティティに関係するプロセスは、契約更新プロセスである可能性があり、それは、ビジネス・ロジックに関連する可能性があり、ContractProceeObject.Revie()法によって実装される可能性がある。この場合、プロセス・メタデータ・モジュール204は、ContractProceeObject.Revie()法を表すことができる。プロセス・メタデータ・モジュール204によって表されるプロセスが、1つまたは複数のサブプロセスを必要とする場合、こうしたサブプロセスも、プロセス・メタデータ・モジュール204内で提供することができる。
プロセス・メタデータ・モジュール204には、アプリケーションの最初の開発者によってエンティティを使用して開発され、そのアプリケーションの最初の実装形態を与えられている様々なプロセスが含まれ得る。しかし、ユーザ、独立ソフトウェア・ベンダなども、プロセス・メタデータ・モジュール204に追加することができる追加プロセスを開発し提供することができる。こうした状況では、プロセス・メタデータ・モジュール204には、追加プロセスに関する情報、およびこうした追加ビジネス・プロセスのインスタンスの作成および/または呼出しに必要となることがある他の情報を表すメタデータを含めることができる。
サード・パーティのベンダが、プロセス・メタデータ・モジュール204を使用して1つまたは複数のプロセスを開発あるいは提供することができるようにすることによって、アプリケーションに追加されたこうした機能性(functionalities)をコンパイルおよび展開することを必要とせずに、様々な機能性をアプリケーションに追加することができるようになる。さらに、独立ソフトウェア・ベンダがエンティティをアプリケーションに追加する場合、こうした追加されたエンティティの各プロパティはエンティティ・メタデータ・モジュール202に格納されるが、こうした追加されたエンティティ上で実行される様々なプロセスは、プロセス・メタデータ・モジュール204に格納することができる。
基本プロセス・メタデータ・モジュール206は、プロセス・メタデータ・モジュール204に格納される各プロセスを含めて、アプリケーションの様々なプロセスによって使用することができる様々な基本プロセスを格納する。たとえば、図3に示すように、基本プロセス・メタデータ・モジュール206は、作成プロセス、読み取りプロセス、更新プロセス、および削除プロセスを含むものとして示してある。しかし、セキュリティ、データ持続性(data persistence)、などに関係した多くのさらなる基本プロセスも、基本プロセス・メタデータ・モジュール206に格納することができる。したがって、たとえば、プロセス・メタデータ・モジュール204に格納されたContractProceeObject.Revie()法は、基本プロセス・メタデータ・モジュール206から更新プロセスを呼び出して、契約エンティティを更新することができ、こうした契約エンティティの各プロパティおよび関係性をエンティティ・メタデータ・モジュール202に格納することができる。
直列化モジュール208には、エンティティのメモリ内オブジェクト表現を、ネットワークを介しての送信、あるいはディスクまたは他の記憶媒体への保管が可能なフォーマットに変換するためのプロセスを含めることができる。同様に、直列化解除モジュール210には、メモリからのデータまたはネットワークから受け取ったデータをメモリ内オブジェクト表現に変換するための直列化解除プロセスを含めることができ、このオブジェクト表現は、プロセス・メタデータ・モジュール204および基本プロセス・メタデータ・モジュール206のいずれかに格納された1つまたは複数のプロセスによって使用することができる。
図4には、図3のエンティティ・メタデータ・モジュール202に格納することができる様々な構成要素の詳細なブロック図を示している。前述のように、エンティティ・メタデータ・モジュールは、アプリケーションの最初の設計時に作成される様々なエンティティに関する情報、ならびに、アプリケーションの独立ソフトウェア・ベンダまたはユーザによって追加することができる様々なエンティティに関する情報を格納するのに使用することができる。図4には、様々なブロックとしてエンティティ・メタデータ・モジュールに格納される様々な情報が示してあるが、これらのブロックの1つまたは複数は、組み合わせて1つにすることもでき、あるいはこれらのブロックの1つまたは複数は、様々なサブブロックにさらに分割することもできることが当業者には理解されよう。さらに、これらのブロックの各々は、コンピュータ110のシステム・バス121など一般の通信バスを使用することによって、その他のブロックから情報にアクセスすることができる。
より具体的には、エンティティ・メタデータ・モジュール202には、物理形状ブロック(physical shape block)232、様々なエンティティの様々な属性を含む属性ブロック(attribute block)234、様々なエンティティに結合された様々なプロセスを含む結合プロセス・ブロック(bound processes block)236、様々なエンティティの、また様々なエンティティ間の様々な関係を含む関係性(relationships)ブロック238、様々なエンティティについてのエンティティ・マップを含むマップ・ブロック(maps block)240、様々なエンティティとともに使用される様々なユーザ・インターフェースを含むユーザ・インターフェース・ブロック242、および様々なエンティティのうちの1つまたは複数に関する様々なルールを含むルール・ブロック(rules block)244、を含めることができる。
物理形状ブロック232は、テーブル定義、ビュー定義など、様々なエンティティの物理データベース形状の定義を、メタデータのフォーマットで格納することができる。たとえば、CRMアプリケーションに関係する顧客エンティティの場合は、物理形状ブロック232は、顧客テーブルでの列(columns)の数、顧客テーブルについてのメモリ・アドレスなどに関する情報を格納することができる。
属性(attributes)ブロック234は、各エンティティの属性に関係する様々な情報を、メタデータ・フォーマットで格納することができる。たとえば、エンティティのセキュリティ属性は、そのエンティティに関する情報を閲覧または変更するセキュリティ特権(security privilege)を、ユーザが有するのかプロセスが有するのかを指定することができる。エンティティの1つまたは複数の属性は、アプリケーションの最初の設計者および/または独立ソフトウェア・ベンダによって指定することができる。さらに、あるエンティティは、こうした属性はユーザによって変更することができ、他のエンティティは、こうした属性はユーザによって変更することができない。
結合(bound)プロセス・ブロック236は、様々なエンティティに結合されたプロセスをメタデータ・フォーマットで指定することができ、こうしたプロセスは、プロセス・メタデータ・モジュール204に、基本プロセス・メタデータ・モジュール206に、または何かしら他のフォーマットで格納することができる。顧客エンティティに結合しているプロセスの例としては、固定周期毎にアプリケーションに電子メールを生成させる「電子メール生成」プロセスでもよい。販売員エンティティに結合されたプロセスの別の例としては、販売員に関係した旅行情報をアプリケーションが受信するたびに、販売員の市内電話番号を更新する「場所更新」プロセスでもよい。
関係性(relationship)ブロック238は、アプリケーションに関係する様々なエンティティ間の様々な関係性を、メタデータ・フォーマットで指定することができる。たとえば、システム200によって実装される人的資源アプリケーションにおいて、関係性ブロック238は、管理者と従業員の関係は1対多数であるが、管理者と秘書の関係性は1対1である、と指定することができる。関係性ブロック238は、独立ソフトウェア・ベンダまたはユーザによって追加されるエンティティについての関係を指定することもできる。
マップ・ブロック240は、アプリケーション中の様々な既存のエンティティに基づいて他のエンティティを構築するための様々なルールを、メタデータ・フォーマットで指定することができる。たとえば、会計システムのマップ・ブロック240は、顧客エンティティ、製品エンティティ、売上税エンティティなどに基づいてインボイス・エンティティを作成するためのルールを指定することができる。
ユーザ・インターフェース・ブロック242は、アプリケーションに関係するエンティティについての様々なレイアウト、ビュー、ピック・リスト(pick-list)などを、メタデータ・フォーマットで指定することができる。たとえば、資材所要量計画(MRP)アプリケーションでの具体的な原材料エンティティに関係するユーザ・インターフェース・ブロック242は、その具体的な原材料についてのピック・リストが、「もっとも一般的に使用されている材料をピック・リストの最上部にリストすべきである」、または「その材料についてのもっとも費用対効果の大きい出荷代替案をピック・リストの最上部にリストすべきである」、などと指定することができる。
ルール・ブロック244は、妥当性検査ルールや基数ルール(cardinality rule)など、アプリケーションでの1つまたは複数のエンティティに関係する様々なルールをメタデータ・フォーマットで指定することができる。たとえば、CRMアプリケーションのルール・ブロック244は、最初の金額より大きな顧客返金エンティティへのどんな更新も管理者エンティティによって妥当性検査されなければならないと指定することができる。別の例として、人的資源アプリケーションについてルール・ブロック244にメタデータ・フォーマットで格納される妥当性検査ルールは、従業員ボーナス・エンティティへのどんな更新も2つの管理者エンティティによって妥当性検査されなければならないと指定することができる。
さらに、エンティティ・メタデータ・モジュール202には、目的のアプリケーションのエンティティに関係する様々なオペレーションを記述するオペレーション(operation)ブロック246も含めることができる。たとえば、オペレーション・ブロック246は、オフライン・プレイバック支援、オフライン取引支援などへの要求事項を含む作成(create)オペレーションを格納することができる。同様に、オペレーション・ブロック246は、取り出し(retrieve)オペレーションがオフライン・プレイバック支援やオフライン取引支援などを必要としない、という情報を含む取り出しオペレーションを格納することもできる。
次に図5を参照すると、プログラム250は、図3のメタデータ駆動型システムが使用する様々なメタデータ・モジュールを生成する方法を示している。具体的には、プログラム250には、既存のアプリケーションに新しいエンティティを追加し、この新しく追加されたエンティティに関係するプロセスを追加するステップが示してある。プログラム250は、アプリケーションに追加する必要があるエンティティを、ブロック252で受け取ることができる。たとえば、既存アプリケーションがCRMアプリケーションである場合、独立ソフトウェア・ベンダは、顧客の住居情報、すなわち、その顧客が所有者か、または賃貸者かなどを表す住居状況エンティティを追加することに関心を示すことがある。
プログラム250は、新しく受け取ったオブジェクト/エンティティを、次にメモリ上に格納することができるように、ブロック254で直列化(シリアライズ)する。プログラム250は、新しく受け取ったエンティティを、ブロック256でエンティティ・メタデータ・モジュール204に格納する。プログラム250は、この新しく作成された住居状況エンティティを定義する様々なプロパティおよび関係を、エンティティ・メタデータ・モジュール204に格納することもできることに留意されたい。たとえば、こうしたプロパティの1つは、住居状況が4つの異なる状況(所有、賃貸、扶養、その他など)のうちの1つだけをとることができることでもよい。同様に、この新しく追加されたエンティティの別のプロパティは、この新しく作成されたエンティティの関係鍵(relational key)でもよい。
続いてブロック258で、プログラム250は、新しく作成された住居状況エンティティに関係する様々なプロセスを受け取り、直列化する。たとえば、ひとつのこうしたプロセスは、住居状況を更新することでもよい。しかし、住居状況を賃貸から所有に変更する際の、信用状況の見直しの開始や、最初のマーケティング資料一式の生成など、いくつかの異なるルールに基づいて、状況を更新することを他のいくつかのプロセスに結合させることができることもある。エンティティ・メタデータ・モジュール202は、こうしたプロセスの影響を受けた他のエンティティの関係性およびプロパティに関する情報をすでに有していることがあるため、アプリケーション全体をコンパイルする必要なしに、こうした新しいプロセスを実装することは容易である。さらに、新しく追加された住居状況エンティティの各プロパティはエンティティ・メタデータ・モジュール202に追加されるため、この新しく追加されたエンティティも、その他のプロセスからアクセス可能である。
続いてブロック260で、プログラム250は、新しく作成されたエンティティに関係するプロセスのいずれかが、作成(create)、読み取り(read)、更新(update)、削除(delete)などの基本プロセスのいずれかを必要とするかどうかを決定する。1つまたは複数のこうした基本プロセスが必要であると決定された場合、ブロック260において、プログラム250は、こうしたすべての基本プロセスが基本プロセス・メタデータ・モジュール206で確実に使用可能になるようにする。1つまたは複数の基本プロセスが基本プロセス・メタデータ・モジュール206で使用不可能であると決定された場合、ブロック262において、このプログラムは、こうした基本プロセスを要求し、受け取り、基本プロセス・メタデータ・モジュール206に格納する。
次に図6を参照すると、プログラム300は、メタデータ駆動型システム200を使用する方法を示している。図では、プログラム300は、挿入要求(insert request)を実行するためにメタデータ駆動型システム200を使用するステップを示しているだけであるが、他の要求または複雑なプロセスも、メタデータ駆動型システム200を使用して実装することができる。こうした要求は、プロセス・メタデータ・モジュール204を使用して定義されたビジネス・プロセスによって実行することができ、このビジネス・プロセスは、エンティティ・メタデータ・モジュール202に格納されているビジネス・エンティティ上で実行すべき作成オペレーションに、ビジネス・エンティティ上の問い合わせを作成するよう要求する。プログラム300は、基本プロセス・メタデータ・モジュール206に格納されている様々な基本プロセスを使用して、ビジネス・プロセスを実行する。プログラム300は、挿入要求を実行すべきエンティティの様々な拡張部を使用することができ、こうした拡張部も、そのエンティティに関係するエンティティ・メタデータ・モジュール202に格納することができる。一般に、エンティティの拡張部は、アプリケーションの設計中に、あるいは、そのアプリケーションの独立ソフトウェア・ベンダまたはユーザによって実装することができる。
ブロック302で、プログラム300は、PreCreate要求を、基本プロセス・メタデータ・モジュール206に格納されているValidate基本プロセスに送って、作成プロセスが実行されるエンティティ・インスタンスの様々な属性を妥当性検査することができる。
次に、ブロック304で、プログラム300は、別のPreCreate要求を、基本プロセス・メタデータ・モジュール206に記憶されているInjectDefaults基本プロセスに送って、エンティティ・インスタンスの様々な属性についての顧客定義値をセットすることができる。たとえば、住宅状況の既定値は「賃貸」でよく、エンティティ・インスタンスに値が何も割り当てられていない場合、InjectDefaults基本プロセスはこうした既定値をエンティティ・インスタンスに追加することができる。
続いて、ブロック306で、プログラム300は、PreCreate要求を、基本プロセス・メタデータ・モジュール206に記憶されているSecurity基本プロセスに送って、作成プロセスが実行されるエンティティについてのセキュリティ許可を得ることができる。プログラム300は、エンティティのセキュリティ拡張機能を使用して、ユーザが作成プロセスを実行するための適切な許可を有していることを妥当性検査することができる。
作成プロセスについてのこのケースでは、プログラム300は単一レベルのセキュリティ検査だけを実行するが、代替ケースでは、2つのレベルのセキュリティ検査を実行することができ、プログラム300はまず、要求されたプロセスを実行する許可をユーザが有していることを、エンティティによって定義されたインスタンスのクラスと突き合わせて検査し、続いて、エンティティ・インスタンスの特定の検査を実行して、エンティティの特定のインスタンス上で要求されたプロセスを実行する許可をユーザが有しているかどうかを保証することができる。作成プロセスの場合には、エンティティの既存インスタンスはなく、したがって、1つのレベルのセキュリティ検査だけで十分であることに留意されたい。
ブロック308で、プログラム300は、BuildCreate要求を、プロセス・メタデータ・モジュール204に格納されているQueryBuilderプロセスに送って、エンティティのインスタンスを作成することができる。
続いて、ブロック310で、プログラム300は、PostCreate要求を、基本プロセス・メタデータ・モジュール206に格納されたSecurity基本プロセスに送って、作成プロセスが実行されるエンティティについてのセキュリティ許可を格納することができる。
ブロック312で、プログラム300は、PostCreate要求を、基本プロセス・メタデータ・モジュール206に格納されたWorkflow基本プロセスに送って、様々な顧客定義ビジネス・プロセスが現行オペレーションの範囲外で稼働することができるようにすることができる。Workflow基本プロセスは、アプリケーションの独立ソフトウェア・ベンダまたはユーザが、エンティティを含むシステムに関係するある事象に応答してとるべきビジネスのルール/行動を開発することができるようにする、プロセスの一例である。たとえば、販売員管理システム(sales force management system)のユーザは、新しい販売機会(sales opportunity)または販売要約情報(sales lead)が販売員管理システムに入力されるたびに、電子メールの送信をトリガするワーク・フロー・プロセスを作成することができる。
続いて、ブロック314で、プログラム300は、PostCreate要求を、基本プロセス・メタデータ・モジュール206に格納されたCallout基本プロセスに送って、既存のまたは新しいどんなビジネス・ロジックをも実行することができるようにするCreateプロセス実行を予約している他のシステムに通知する。
ブロック316で、プログラム300は、PostCreate要求を、システムの現行接続状況によって必要とされる場合に信頼できる接続が復旧された際に中央サーバにその後のプレイバックのために、基本プロセス・メタデータ・モジュール206に格納されたOffline基本プロセスに送って、この要求を格納することができる。ステップ316は、中央アプリケーション・サーバへの接続が確立した際にその後にプレイバックするために、接続されていないクライアント上で作成オペレーションが実行されるときに、この要求を格納することを可能にすることに留意されたい。こうした格納オペレーションは、中央アプリケーション・サーバでオペレーションが実行されている場合は必要でないこともある。
頻繁な更新および顧客開拓(custom development)の能力を必要とすることがあるビジネス・アプリケーションのための、前述のメタデータ駆動型システム200の利点が、当業者には理解されよう。ビジネス・アプリケーションをメタデータ駆動型にすることによって、各顧客対応の後にビジネス・アプリケーションのコンパイルを実行する必要なしに、顧客対応および顧客対応のためのサポートを可能にすることに関して、途方もない価値がもたらされる。具体的には、妥当性検査、許可、持続性などの様々なプロセスをメタデータ駆動型にすることによって、本明細書に記載のメタデータ駆動型システム200は、ビジネス・アプリケーションの顧客対応を非常に容易にし、したがってビジネス・アプリケーションの開発および保守のコストを低減する。
メタデータ駆動型システム200は、ビジネス・ロジックを用いる新しいエンティティの内部開発も、より容易にする。いくつかのツールを用いてメタデータを更新することは、ビジネス・アプリケーション用のコードを更新およびコンパイルすること、ならびに更新されたコードを一群のサーバとクライアント上に配置すること、よりもはるかに容易であるため、メタデータ駆動型システム200によって、ビジネス・アプリケーションへの設計変更をより容易にすることができる。同様に、メタデータを使用してテストを自動化し、テストの結果を所望の結果と比較することは、より容易であるため、ビジネス・アプリケーションの品質保証のための自動化されたテスト・プロセスを、プロセス・メタデータ・モジュール204に容易に追加することができる。
先に、本発明の数多くの異なる実施形態を詳細に説明しているが、本発明の範囲は特許請求の範囲の語句によって定義されることを理解されたい。詳細な記述は、単に例示的なものに過ぎないと解釈すべきであり、考え得るあらゆる実施形態を記述することは、不可能ではないにしても非現実的であるため、本発明の考え得るあらゆる実施形態を記述していない。現在の技術または本発明の出願日の後に開発される技術を使用することによって、数多くの代替実施形態を実装することも可能であり、これらは、依然として本発明を定義する特許請求の範囲内に入ることになる。
したがって、本発明の趣旨および範囲を逸脱することなく、本明細書で説明し図示している各技法および各構造において多くの変更形態および変形形態を作ることができる。したがって、本明細書に記載の各方法および各装置は、単に例示的なものに過ぎず、本発明の範囲を限定するものではないことを理解されたい。
複数のコンピューティング資源を相互接続するネットワークのブロック図である。 図1のネットワークに接続することができるコンピュータのブロック図である。 図1のネットワーク上のアプリケーションを管理するために使用することができるメタデータ駆動型システムのブロック図である。 図3のメタデータ駆動型システムによって使用することができるエンティティ・メタデータ・モジュールのブロック図である。 図3のメタデータ駆動型システムによって使用されるメタデータ・モジュールを生成するフローチャートである。 図3のメタデータ駆動型システムを使用するフローチャートである。
符号の説明
10 ネットワーク
12 パーソナル・コンピュータ
14 コンピュータ端末
16 イーサネット(登録商標)
18 ルータ
20 地上の通信線
22 ラップトップ・コンピュータ
24 携帯型情報端末
26 無線通信局
28 無線リンク
30 サーバ
32 通信リンク
34 メインフレーム
36 別の通信リンク
110 コンピュータ
120 処理ユニット
121 システム・バス
130 システム・メモリ
131 (ROM)
132 (RAM)
133 BIOS
134 オペレーティング・システム
135 アプリケーション・プログラム
136 他のプログラム・モジュール
137 プログラム・データ
140 取り外し不能不揮発性メモリ・インターフェース
141 ハードディスク・ドライブ
142 オペレーティング・システム
145 アプリケーション・プログラム
146 他のプログラム・モジュール
147 プログラム・データ
150 取り外し可能不揮発性メモリ・インターフェース
151 磁気ディスク・ドライブ
152 不揮発性磁気ディスク
155 光ディスク・ドライブ
156 不揮発性光ディスク
160 ユーザ入力インターフェース
161 マウス
162 キーボード
170 ネットワーク・インターフェース
171 ローカル・エリア・ネットワーク
172 モデム
173 広域ネットワーク
180 リモート・コンピュータ
181 メモリ記憶デバイス
185 リモート・アプリケーション・プログラム
190 ビデオ・インターフェース
191 モニタ
195 出力周辺インターフェース
196 プリンタ
197 スピーカ
200 メタデータ駆動型システム
202 エンティティ・メタデータ・モジュール
204 プロセス・メタデータ・モジュール
206 基本プロセス・メタデータ・モジュール
208 直列化モジュール
210 直列化解除モジュール
212 サーバ・データベース
214 リモート・データベース
216 グラフィカル・ユーザ・インターフェース(GUI)
218 ブラウザ

Claims (12)

  1. プログラムをカスタマイズするための方法であって、メモリを有するコンピュータが、
    第1のエンティティをメタデータによって定義する第1のエンティティ・メタデータ・モジュールを前記メモリに格納するステップであって、前記第1のエンティティ・メタデータ・モジュールは、前記第1のエンティティを定義する複数のプロパティ、前記第1のエンティティに関係するプロセスを指定する結合情報、前記第1のエンティティと第2のエンティティとの関係を定義する関係性情報、および前記第2のエンティティに関して前記第1のエンティティを修正するための、または前記第1のエンティティとの関係で第3のエンティティを構築するためのルールを含む、ステップと、
    前記第1のエンティティのインスタンスを呼び出す第1のプロセスをメタデータによって定義する第1のプロセス・メタデータ・モジュールを前記メモリに格納するステップであって、前記第1のプロセス・メタデータ・モジュールは、前記第1のエンティティのインスタンスに関係するロジックを含む、ステップと、
    前記第2のエンティティのインスタンスを呼び出す第2のプロセスをメタデータによって定義する第2のプロセス・メタデータ・モジュールを前記メモリに格納するステップであって、前記第2のプロセス・メタデータ・モジュールは、前記第2のエンティティのインスタンスに関係するロジックを含む、ステップと、
    前記第1のエンティティ・メタデータ・モジュールの前記結合情報により、前記第1のプロセス・メタデータ・モジュールを指定するステップと、
    前記第2のエンティティ・メタデータ・モジュールの前記結合情報により、前記第2のプロセス・メタデータ・モジュールを指定するステップと、
    前記第1のプロセス・メタデータ・モジュールおよび前記第2のプロセス・メタデータ・モジュールを前記プログラムに追加するステップであって、前記プログラムは、前記第1のエンティティのインスタンスについて前記第1のプロセス・メタデータ・モジュールを実行し、前記第2のエンティティのシンスタンスについて前記第2のプロセス・メタデータ・モジュールを実行し、当該実行には、前記第1のプロセス・メタデータ・モジュールおよび第2のプロセス・メタデータ・モジュールのコンパイルを必要としない、ステップと、
    前記実行したプロセスの結果を前記メモリに格納するステップと
    を含むことを特徴とする方法。
  2. 前記メモリは、エンティティに関係する基本的なプロセスを定義する基本プロセス・メタデータ・モジュールをさらに備え、
    前記第1のプロセス・メタデータ・モジュールの前記第1のプロセスは、前記基本プロセス・メタデータ・モジュールのプロセスを呼び出すことを特徴とする請求項1に記載の方法。
  3. (a)(1)前記プロセス・メタデータ・モジュール、(2)前記エンティティ・メタデータ・モジュール、および(3)前記基本プロセス・メタデータ・モジュールのうちの少なくとも1つを直列化すること、
    (b)(1)前記直列化されたプロセス・メタデータ・モジュール、(2)前記直列化されたエンティティ・メタデータ・モジュール、および(3)前記直列化された基本プロセス・メタデータ・モジュールのうちの少なくとも1つを、前記コンピュータが受け取ること、
    (c)(1)前記直列化されたプロセス・メタデータ・モジュール、(2)前記直列化されたエンティティ・メタデータ・モジュール、および(3)前記直列化された基本プロセス・メタデータ・モジュールのうちの少なくとも1つを、前記コンピュータが直列化解除すること、ならびに
    (d)(1)前記直列化解除されたプロセス・メタデータ・モジュール、(2)前記直列化解除されたエンティティ・メタデータ・モジュール、および(3)前記直列化解除された基本プロセス・メタデータ・モジュールのうちの少なくとも1つを、前記メモリに格納すること
    をさらに備えることを特徴とする請求項2に記載の方法。
  4. 前記基本的なプロセスは、(1)作成、(2)更新、および(3)削除のうちのひとつであることを特徴とする請求項2に記載の方法。
  5. 前記第1のエンティティについて実行されるロジックは、前記プログラムを実行するために用いられるプラットフォームから切り離された・リモート・コンピューティング装置で実行されることを特徴とする請求項1に記載の方法。
  6. 前記第1のエンティティについての複数のメタデータ駆動型拡張機能であって、(1)妥当性検査拡張機能、(2)既定値注入拡張機能(inject defaults extension)、(3)セキュリティ拡張機能、(4)ワークフロー拡張機能、(5)呼出し拡張機能(callout extension)、および(6)オフライン拡張機能、のうちの少なくとも1つを含む拡張機能を作成することをさらに備えることを特徴とする請求項1に記載の方法。
  7. 前記プロセス・メタデータ・モジュールは、前記複数のメタデータ駆動型拡張機能のうちの少なくとも1つと通信するように、さらに適合されることを特徴とする請求項に記載の方法。
  8. プログラムをカスタマイズするためのコンピュータであって、メモリおよび処理ユニットを備え、前記処理ユニットは、
    第1のエンティティをメタデータによって定義する第1のエンティティ・メタデータ・モジュールを前記メモリに格納し、前記第1のエンティティ・メタデータ・モジュールは、前記第1のエンティティを定義する複数のプロパティ、前記第1のエンティティに関係するプロセスを指定する結合情報、前記第1のエンティティと第2のエンティティとの関係を定義する関係性情報、および前記第2のエンティティに関して前記第1のエンティティを修正するための、または前記第1のエンティティとの関係で第3のエンティティを構築するためのルールを含み、
    前記第1のエンティティのインスタンスを呼び出す第1のプロセスをメタデータによって定義する第1のプロセス・メタデータ・モジュールを前記メモリに格納し、前記第1のプロセス・メタデータ・モジュールは、前記第1のエンティティのインスタンスに関係するロジックを含み、
    前記第2のエンティティのインスタンスを呼び出す第2のプロセスをメタデータによって定義する第2のプロセス・メタデータ・モジュールを前記メモリに格納し、前記第2のプロセス・メタデータ・モジュールは、前記第2のエンティティのインスタンスに関係するロジックを含み、
    前記第1のエンティティ・メタデータ・モジュールの前記結合情報により、前記第1のプロセス・メタデータ・モジュールを指定し、
    前記第2のエンティティ・メタデータ・モジュールの前記結合情報により、前記第2のプロセス・メタデータ・モジュールを指定し、
    前記第1のプロセス・メタデータ・モジュールおよび前記第2のプロセス・メタデータ・モジュールを前記プログラムに追加し、前記プログラムは、前記第1のエンティティのインスタンスについて前記第1のプロセス・メタデータ・モジュールを実行し、前記第2のエンティティのシンスタンスについて前記第2のプロセス・メタデータ・モジュールを実行し、当該実行には、前記第1のプロセス・メタデータ・モジュールおよび第2のプロセス・メタデータ・モジュールのコンパイルを必要とせず、
    前記実行したプロセスの結果を前記メモリに格納する
    よう動作することを特徴とするコンピュータ。
  9. 前記メモリは、エンティティに関係する基本的なプロセスを定義する基本プロセス・メタデータ・モジュールをさらに備え、
    前記第1のプロセス・メタデータ・モジュールの前記第1のプロセスは、前記基本プロセス・メタデータ・モジュールのプロセスを呼び出すことを特徴とする請求項に記載のコンピュータ。
  10. 前記処理ユニットは、
    前記エンティティ・メタデータ・モジュール、前記プロセス・メタデータ・モジュールおよび前記基本プロセス・メタデータ・モジュールを直列化する直列化モジュールと、
    前記エンティティ・メタデータ・モジュール、前記プロセス・メタデータ・モジュールおよび前記基本プロセス・メタデータ・モジュールを直列化解除する直列化解除モジュールと
    をさらに実行するよう動作することを特徴とする請求項に記載のコンピュータ。
  11. 前記基本的なプロセスは、(1)作成プロセス、(2)更新プロセス、および(3)削除プロセス、のうちの少なくとも1つを含むことを特徴とする請求項に記載のコンピュータ。
  12. 前記直列化モジュールは、(a)エンティティ・データベースおよびグラフィカル・ユーザ・インターフェースと通信するように、および(b)前記エンティティ・メタデータおよび前記プロセス・メタデータ・モジュールをXMLストリングに直列化するようにさらに適合され、
    前記直列化解除モジュールは、グラフィカル・ユーザ・インターフェースをホスティングするリモート・クライアントと、およびエンティティ・データベースを有するサーバと通信するようにさらに適合される
    ことを特徴とする請求項11に記載のコンピュータ。
JP2005368840A 2004-12-29 2005-12-21 メタデータ駆動型ビジネス・ロジック(metadatadrivenbusinesslogic)処理のための方法および装置 Expired - Fee Related JP5162094B2 (ja)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US11/025,323 US7433887B2 (en) 2004-12-29 2004-12-29 Method and apparatus for metadata driven business logic processing
US11/025,323 2004-12-29

Publications (2)

Publication Number Publication Date
JP2006190279A JP2006190279A (ja) 2006-07-20
JP5162094B2 true JP5162094B2 (ja) 2013-03-13

Family

ID=36337583

Family Applications (1)

Application Number Title Priority Date Filing Date
JP2005368840A Expired - Fee Related JP5162094B2 (ja) 2004-12-29 2005-12-21 メタデータ駆動型ビジネス・ロジック(metadatadrivenbusinesslogic)処理のための方法および装置

Country Status (7)

Country Link
US (1) US7433887B2 (ja)
EP (1) EP1677243A1 (ja)
JP (1) JP5162094B2 (ja)
KR (1) KR101219875B1 (ja)
CN (1) CN1797449B (ja)
AU (1) AU2005229697B2 (ja)
CA (1) CA2527803A1 (ja)

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8170901B2 (en) * 2004-10-01 2012-05-01 Microsoft Corporation Extensible framework for designing workflows
US20060074704A1 (en) * 2004-10-01 2006-04-06 Microsoft Corporation Framework to model cross-cutting behavioral concerns in the workflow domain
US7805324B2 (en) * 2004-10-01 2010-09-28 Microsoft Corporation Unified model for authoring and executing flow-based and constraint-based workflows
US7565640B2 (en) * 2004-10-01 2009-07-21 Microsoft Corporation Framework for seamlessly authoring and editing workflows at design and runtime
US7464366B2 (en) * 2004-10-01 2008-12-09 Microsoft Corporation Programming interface for a componentized and extensible workflow model
US20060074735A1 (en) * 2004-10-01 2006-04-06 Microsoft Corporation Ink-enabled workflow authoring
US7451432B2 (en) * 2004-10-01 2008-11-11 Microsoft Corporation Transformation of componentized and extensible workflow to a declarative format
US20060074714A1 (en) * 2004-10-01 2006-04-06 Microsoft Corporation Workflow tracking based on profiles
US7631291B2 (en) * 2004-10-01 2009-12-08 Microsoft Corporation Declarative representation for an extensible workflow model
US7693861B2 (en) * 2005-06-28 2010-04-06 Microsoft Corporation Schematization of establishing relationships between applications
US8069439B2 (en) * 2006-03-30 2011-11-29 Microsoft Corporation Framework for modeling continuations in workflows
US7739135B2 (en) 2006-03-30 2010-06-15 Microsoft Corporation Asynchronous fault handling in process-centric programs
US20070244910A1 (en) * 2006-04-12 2007-10-18 Microsoft Corporation Business process meta-model
US7945891B2 (en) * 2006-04-12 2011-05-17 Microsoft Corporation Time business process validations within data context
KR100922526B1 (ko) * 2006-12-04 2009-10-20 한국전자통신연구원 비즈니스 프로세스 수행시 메타데이터 규정을 통한 데이터품질관리 방법 및 시스템
US20080172400A1 (en) * 2007-01-11 2008-07-17 Microsoft Corporation Techniques to manage an entity model
US9792563B1 (en) * 2007-03-22 2017-10-17 Workday, Inc. Human resources system development
US7739690B2 (en) * 2007-04-26 2010-06-15 Microsoft Corporation Meta-container for model-based distributed applications
US8020144B2 (en) 2007-06-29 2011-09-13 Microsoft Corporation Metadata-based application deployment
US8200604B2 (en) 2007-06-29 2012-06-12 Microsoft Corporation Multi-platform business calculation rule language and execution environment
US7908610B2 (en) * 2007-07-31 2011-03-15 Microsoft Corporation Multi-threaded business programming library
WO2009143557A1 (en) * 2008-05-29 2009-12-03 Honeywell International Inc. Systems and methods for managing business objects
US9037546B2 (en) * 2010-03-25 2015-05-19 Salesforce.Com, Inc. System, method and computer program product for automatic code generation for database object deletion
EP2616999A1 (en) * 2010-09-17 2013-07-24 Oracle International Corporation Recursive navigation in mobile customer relations management
WO2012037564A1 (en) * 2010-09-17 2012-03-22 Oracle International Corporation Method and apparatus for binding mobile device functionality to an application definition
US9275165B2 (en) 2010-09-17 2016-03-01 Oracle International Corporation Method and apparatus for defining an application to allow polymorphic serialization
US8539006B2 (en) 2010-11-01 2013-09-17 Microsoft Corporation Logical chart of accounts with hashing
CN102662773B (zh) * 2012-03-13 2014-05-07 中冶南方工程技术有限公司 多进程间结构化文档通信系统
US9679264B2 (en) * 2012-11-06 2017-06-13 Oracle International Corporation Role discovery using privilege cluster analysis
WO2014124243A2 (en) * 2013-02-08 2014-08-14 Automatic Data Capture Technologies Group, Inc. Systems and methods for metadata-driven command processor and structured program transfer protocol
US11940999B2 (en) 2013-02-08 2024-03-26 Douglas T. Migliori Metadata-driven computing system
US9336013B2 (en) 2013-02-08 2016-05-10 Automatic Data Capture Technologies Group, Inc. Systems and methods for metadata-driven command processor and structured program transfer protocol
US9514244B2 (en) 2013-04-29 2016-12-06 International Business Machines Corporation Dynamic assignment of business logic based on schema mapping metadata
US20150051957A1 (en) * 2013-08-15 2015-02-19 Oracle International Corporation Measuring customer experience value
US8930274B1 (en) 2013-10-30 2015-01-06 Google Inc. Securing payment transactions with rotating application transaction counters
US11416459B2 (en) 2014-04-11 2022-08-16 Douglas T. Migliori No-code, event-driven edge computing platform
CN104461621B (zh) * 2014-11-28 2018-01-02 青岛海信宽带多媒体技术有限公司 一种更新属性信息的方法及装置
CN112559867B (zh) * 2020-12-16 2023-11-03 北京百度网讯科技有限公司 业务内容输出方法、装置、设备、存储介质和程序产品

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6621505B1 (en) * 1997-09-30 2003-09-16 Journee Software Corp. Dynamic process-based enterprise computing system and method
US6085198A (en) * 1998-06-05 2000-07-04 Sun Microsystems, Inc. Integrated three-tier application framework with automated class and table generation
JP2001027947A (ja) * 1999-07-15 2001-01-30 Sumitomo Metal Ind Ltd ソフトウェア設計支援装置及び記録媒体
BR0210863A (pt) * 2001-07-05 2004-08-24 Computer Ass Think Inc Sistema para transformar um primeiro dado em um primeiro formato em um segundo dado em um segundo formato, meio legìvel por computador, método implementado por computador para adaptar dados de diretriz de processo comercial, e, sistema para facilitar interações entre diretrizes de processo comercial incorporadas em componentes de computador
AU2002354789B2 (en) * 2001-07-06 2007-09-20 Computer Associates Think, Inc. Business process policy object
US7080089B2 (en) * 2003-03-12 2006-07-18 Microsoft Corporation Customization of process logic in a software system
US7730446B2 (en) * 2003-03-12 2010-06-01 Microsoft Corporation Software business process model

Also Published As

Publication number Publication date
CN1797449A (zh) 2006-07-05
KR20060076184A (ko) 2006-07-04
JP2006190279A (ja) 2006-07-20
CA2527803A1 (en) 2006-06-29
KR101219875B1 (ko) 2013-01-08
EP1677243A1 (en) 2006-07-05
AU2005229697B2 (en) 2010-09-30
US20060143193A1 (en) 2006-06-29
US7433887B2 (en) 2008-10-07
AU2005229697A1 (en) 2006-07-13
CN1797449B (zh) 2011-03-23

Similar Documents

Publication Publication Date Title
JP5162094B2 (ja) メタデータ駆動型ビジネス・ロジック(metadatadrivenbusinesslogic)処理のための方法および装置
US7321894B2 (en) Method and apparatus for building metadata driven software development kit
RU2586866C2 (ru) Дифференцирование набора признаков участником арендуемой среды и пользователем
US8234308B2 (en) Deliver application services through business object views
US7730446B2 (en) Software business process model
US7577934B2 (en) Framework for modeling and providing runtime behavior for business software applications
JP5238138B2 (ja) ワークアイテムトラッキングシステム用のワークアイテムルール
US20220337594A1 (en) Hierarchical permissions model for case management
US8621493B2 (en) Multi-threaded business programming library
US10454786B2 (en) Multi-party updates to distributed systems
US9584949B2 (en) Cloud based master data management architecture
US20070100857A1 (en) Computer-implemented method, tool, and program product for storing a business document in an enterprise software application environment
US9128768B2 (en) Cloud based master data management
US8396846B2 (en) Database trigger modification system and method
US20240176825A1 (en) Case leaf nodes pointing to business objects or document types
US7877417B2 (en) Method and apparatus for exchanging data with a database
CN116450107B (zh) 低代码平台二次开发软件的方法、装置、电子设备
US20230222421A1 (en) System and method for dynamic objects and uses for same, including dynamic case model instances in a case management system
US10067749B2 (en) Generating consumer-oriented APIs from a UI model

Legal Events

Date Code Title Description
A621 Written request for application examination

Free format text: JAPANESE INTERMEDIATE CODE: A621

Effective date: 20081118

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20111118

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20120217

A131 Notification of reasons for refusal

Free format text: JAPANESE INTERMEDIATE CODE: A131

Effective date: 20120803

A521 Request for written amendment filed

Free format text: JAPANESE INTERMEDIATE CODE: A523

Effective date: 20121101

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

Free format text: JAPANESE INTERMEDIATE CODE: A01

Effective date: 20121130

A61 First payment of annual fees (during grant procedure)

Free format text: JAPANESE INTERMEDIATE CODE: A61

Effective date: 20121217

R150 Certificate of patent or registration of utility model

Free format text: JAPANESE INTERMEDIATE CODE: R150

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

Free format text: PAYMENT UNTIL: 20151221

Year of fee payment: 3

S111 Request for change of ownership or part of ownership

Free format text: JAPANESE INTERMEDIATE CODE: R313113

R350 Written notification of registration of transfer

Free format text: JAPANESE INTERMEDIATE CODE: R350

LAPS Cancellation because of no payment of annual fees