CN1797449B - 用于元数据驱动的商业逻辑进程的方法和装置 - Google Patents

用于元数据驱动的商业逻辑进程的方法和装置 Download PDF

Info

Publication number
CN1797449B
CN1797449B CN2005101287298A CN200510128729A CN1797449B CN 1797449 B CN1797449 B CN 1797449B CN 2005101287298 A CN2005101287298 A CN 2005101287298A CN 200510128729 A CN200510128729 A CN 200510128729A CN 1797449 B CN1797449 B CN 1797449B
Authority
CN
China
Prior art keywords
entity
metadata
serialization
module
data block
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
CN2005101287298A
Other languages
English (en)
Other versions
CN1797449A (zh
Inventor
A·A·扎特瑟夫
J·M·佩里
J·S·格雷瓦尔
J·B·塔卡尔
M·米勒
N·I·塔达尼
陆勇
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 CN1797449A publication Critical patent/CN1797449A/zh
Application granted granted Critical
Publication of CN1797449B publication Critical patent/CN1797449B/zh
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

Abstract

用于支持在中间层为一系列商业应用请求的商业应用程序软件的元数据驱动系统包括适于以元数据格式存储进程的进程元数据模块,其中所述进程对象包括涉及所述应用程序软件的实体的逻辑。该系统允许留存诸如账户、事件之类的各种实体,并且允许该商业应用程序软件的终端用户创建新型实体。该系统甚至在部署所述商业应用程序之后允许所述终端用户在由该终端用户定义的新实体上执行关键商业逻辑操作,而不是重新编译该商业应用程序软件。所述元数据驱动方法允许对商业应用程序做出方便地改变并且自动完成对构筑在所述商业应用程序顶部的对象的质量保证。

Description

用于元数据驱动的商业逻辑进程的方法和装置
技术领域
本发明大致涉及计算机软件,并且尤其涉及使用因特网的商业应用软件。
背景技术
现今的商业必须使用最新的技术以实现有效的运作。特别是计算机和软件已经成为绝大多数发达经济实体中必不可少的部分。通常商业使用多种现有的诸如
Figure S051C8729820051215D000011
的商业软件,以及多种专为特定商业应用所设计的客户应用软件。软件公司开发业已多种工业专用软件应用,在诸如金融服务、医学服务等领域的特定类型商业中得到使用。
虽然这些工业专用应用软件通常注意带着特定的商业种类的专门特性设计,但是仍然需要对它们进行修改使其更适于终端用户的使用。客户关系管理(CRM)软件就是这样一个时常被终端用户或被专门从事此类软件的独立软件开发商修改的商业应用程序的实例。
因为因特网的发展,商业通常使用基于网络的应用程序以在因特网上提供分布式的商业解决方案。在某一典型的基于网络的应用程序中,使用三层平台来实现商业应用,其中网络浏览器是客户层包含各种由应用程序使用的商业数据的数据库是后端层,而网络服务器与其扩展变为中间层。该通常被称为中间件的中间层负责若干功能,包括但不限于:读取数据、写入数据、数据访问认证、关系验证等等。
用于商业应用的中间件为了管理商业数据就要求高度客户化的解决方案。在此类应用程序中的典型进程包括认证、保持数据完整性、应用商业规则等等的各种进程。商业应用还要求在用于安全、商业部门的再组织、对异种对象层次结构的更新/删除之类的各类级联操作期间,对商业实体强制执行各种关系约束。在此提到的实体是指对诸如某一客户或某种产品之类的真实概念的元数据描述。术语实体和术语类可以互换使用来意指这些真实概念的定义或描述。一个实体的实例,或只是一个实例是描述这些实体组的某一特定成员的物理数据。类似地,关系约束可以是在执行商业逻辑时支配两实体间的特定关系如何联系的一组规则。另一方面,级联操作是涉及自动联系各类实体关系约束的商业逻辑的操作。
所有的级联操作都可以在连接的或断开的客户机上出现。然而,改变数据的级联操作的子集只有出现在中央应用服务器时,才是可信任的。这样允许商业进程的客户化以及实体模式就对级联操作提出了许多难题。因此,就需要提供更佳的中间层平台用于为管理商业数据提供客户化商业解决方案。
发明内容
用于支持在中间层为一系列商业应用程序要求商业应用程序软件的元数据驱动系统包括适于以元数据格式存储进程的进程元数据模块,其中所述进程对象包括涉及所述应用程序软件的实体的逻辑。该系统允许保留诸如账户、事件之类的各种实体,并且允许该商业应用程序软件的终端用户创建新型实体。该系统允许终端用户甚至在部署所述商业应用程序之后,在由该终端用户定义的新实体上执行关键商业逻辑操作而不需要对该商业应用程序软件进行再编译。所述元数据驱动方法允许对商业应用程序方便地做出改变并且自动完成对构筑在所述商业应用程序顶部的对象的质量保证。
元数据驱动系统的实现允许表示诸如商业账户和联系人之类的商业实体,允许具有以元数据格式定义商业实体的数据库模式。该系统适于以元数据格式定义所述商业实体的多个属性作为实体元数据模块,串行化所述实体元数据模块送至应用程序平台、解串行化所述串行化实体元数据模块并且在应用程序平台上存储该解串行化的实体元数据模块。所述系统还适于以元数据格式定义进程对象成为进程元数据模块,其中所述进程对象包括用于该商业实体的逻辑。所述系统还包括用于串行化进程元数据模块送至应用程序平台的串行化模块、用于解串行化所述串行化进程元数据模块的解串行化模块以及用于在应用程序平台上存储该解串行化的进程元数据模块的存储模块。
该系统的另外实现也适于以元数据格式定义在所述实体上执行的操作成为操作元数据模块,串行化所述进程元数据模块送至应用程序平台、解串行化所述串行化进程元数据模块,并且在应用程序平台上存储该解串行化的进程元数据模块。
附图说明
图1是互连多个计算资源的网络的框图;
图2是可以连接到图1中网络的计算机的框图;
图3示出了可用于管理图1中网络上应用程序的元数据驱动系统的框图;
图4示出了可由图3中元数据驱动系统所使用的实体元数据模块的框图;
图5示出了用于生成元数据模块的流程图,所述模块由图3中元数据驱动系统所使用;以及
图6示出了用于图3中元数据驱动系统的流程图。
具体实施方式
虽然下文中将阐述多个不同实施例的详尽描述,但是应该理解本专利的范围由该专利末尾的权利要求所限定。仅应将这些详尽描述解释为说明性的,且不描述每个可能所需,因为描述所有可能实施例如果不是不可能也是不现实的。可以使用当前的技术或提交该专利申请后发展出的技术来实现本发明的各个可选实施例,它们也都落入权利要求所限制的范围内。
应该理解的是,除非在本专利申请中使用“在此使用的术语‘____’被定义为……”之类的句子对某一术语进行明确的定义,否则本发明并不试图明确地或暗示性地限制术语的意义是超过其原始或通常的含义,并且不应基于本发明任何部分(除了权利要求中的阐述)做出的描述将这些术语解释为在范围上受到限制。至于在本专利申请结尾所述的权利要求中任何术语的范围是以该专利申请中与单一意义一致的方式被涉及,这样做是出于说明性的目的使得读者不致混淆,并且不试图将所述权利要求的术语以暗示或其他方式限制到某一单一的意义上。最后,除非通过引用词语“意味着”以及未提及任何结构的功能来限定某一声明元素,否则本发明并非基于35U.S.C.§112,第六段的申请来解释权利要求的任何范围。
网络
图1示出了被用于实现在此描述的XML版本系统的网络10。网络10可以是因特网、虚拟专用网(VPN)或者允许一个或更多计算机、通信设备、数据库等等相互通信连接的其他任何网络。网络10可以经由以太网16、路由器18和陆线20连接到个人计算机12和计算机终端14。另一方面,网络10可经由无线通信站26和无线链路28无线地连接到膝上型计算机22和个人数据助理24。类似地,服务器30可以使用通信链路32连接到网络10,而大型机34可以使用另一条通信链路36连接到网络10。如下详述,动态软件供应系统的一个或更多组件可被存储在连接至网络10的各种设备的任一个,并且在其上运行。
计算机
图2示出了可连接至网络10并且用于实现动态软件供应系统的一个或更多组件的以计算机110形式出现的计算设备。计算机110的组件包括但不限于:处理单元120、系统存储器130以及把包括系统存储器在内的各种系统组件耦合至处理单元120的系统总线121。系统总线121可以是任何类型的总线结构,包括存储器总线或存储器控制器、外围总线和使用各种的总线体系结构的任何一种本地总线。作为实例而非限制,这些体系结构包括工业标准体系结构(ISA)总线、微通道结构(MCA)总线、增强型ISA(EISA)总线、视频电子标准协会(VESA)本地总线以及还被称为夹层(Mezzanine)总线的外围部件互连(PCI)总线。
计算机110通常包括多个计算机可读介质。计算机可读介质可以是任何能被计算机110访问的介质并且包括易失性的和非易失性的介质、可移动的和不可移动的介质。计算机存储介质包括以任何方法或技术实现的用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类信息的易失性的和非易失性的介质、可移动的和不可移动的介质。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪存或其他存储技术、CD-ROM、数字通用盘(DVD)或者其他光学存储器、磁盒、磁带、磁盘存储装置或者其他磁性存储设备或者能够存储期望信息并可由计算机110访问的任何其他介质。通信媒介通常具体表示为计算机可读指令、数据结构、程序模块或者在诸如载波或其他传送机制的被调制数据信号内的其他数据,并且还包括任何信息传输媒介。术语“已调制数据信号”指的是具有以在信号内对信息编码的方式设置或改变的一个或多个特征信号。作为例子而非限制,通信媒介包括诸如有线网络或者直接线连接的有线媒介,以及诸如声学、RF、红外线或其他无线媒介的无线媒介。上述的任意组合也位于计算机可读介质的范围内。
系统存储器130包括以易失性的和/或非易失性的存储器形式的计算机存储介质,诸如只读存储器(ROM)131和随机存取存储器(RAM)132。包含有助于诸如在启动期间在计算机110内各个元件间传递信息的基本例程的基本输入/输出系统(BIOS)133可以存储在ROM131中。RAM132通常包括可由处理单元120立即访问和/或当前操作的数据和/或程序模块。作为例子而非限制,图1示出了操作系统134、应用程序135、其他程序模块136以及程序数据137。
计算机110还可包括其他可移动/不可移动、易失性/非易失性的计算机存储介质。仅作为例子,图1示出了用于对不可移动、非易失性磁性介质进行读取和写入的硬盘驱动140,用于对可移动、非易失性磁盘152进行读取和写入的磁盘驱动151以及用于对诸如CD-ROM或其他光学介质的可移动、非易失性光盘156进行读取和写入的光盘驱动155。也可在此示例的操作环境中使用的其他可移动/不可移动、易失性/非易失性的计算机存储介质包括但不限于磁带盒、闪存卡、数字通用盘、数字视频带、固态RAM等等。硬盘驱动141通常通过诸如接口140的不可移动存储器接口与系统总线121相连,磁盘驱动151以及光盘驱动器155通常通过诸如接口150的可移动存储器接口与系统总线121。
以上讨论并在图1中示出的驱动以及相关的计算机存储介质为计算机110提供了计算机可读指令、数据结构、程序模块或其他数据的存储。例如在图1中示出的硬盘驱动141用于存储操作系统144、应用程序145、其他程序模块146以及程序数据147。注意到这些组件可与存储操作系统134、应用程序135、其他程序模块136以及程序数据137相同或不同。存储操作系统144、应用程序145、其他程序模块146以及程序数据147在此给予不同标号表明至少它们是不同的副本。用户可与通过诸如键盘162以及通常被称为鼠标、跟踪球或触摸板的定位设备161的输入设备将命令和信息输入到计算机20。其他输入设备(未示出)可包括麦克风、操纵杆、游戏垫、卫星电视天线、扫描仪等等。这些和其他的输入设备通常经由耦合至系统总线的用户输入接口160与处理单元120连接,但是也可以经由诸如并行接口、游戏接口或通用串行总线(USB)之类的其他接口和总线结构进行连接。监视器191或其他类型显示设备也可以经由诸如视频接口190的接口与系统总线121相连。除了监视器外,计算机还可包括经由输出外围接口190连接的诸如扬声器197和打印机196的其他外围输出设备。
计算机110可使用到诸如远程计算机180的一个或更多的远程计算机的逻辑连接在网络环境内的操作。远程计算机180可以是个人计算机、服务器、路由器、网络PC、对等设备或者其他的公共网络节点,并且通常包括上述计算机110涉及到的许多或全部元件,虽然图1中仅示出了存储器存储设备181。图1描述的逻辑连接包括作局域网(LAN)171和广域网(WAN)173,但是也可包括其他网络。那样的网络环境在办公室范围或公司范围计算机网络、内联网和因特网中是常见的。
在LAN网络环境中使用时,计算机110通过网络接口或适配器170与LAN171相连。在WAN网络环境中使用时,计算机110通常包括调制解调器172或其他用于以建立与诸如因特网的WAN173的通信的装置。可以内置或外置的调制解调器172经由用户输入接口160或其他合适的机制与系统总线121相连。在网络环境中,所述涉及计算机110或其部分的存储模块可以存储在远程存储器存储设备内。作为实例而非限制,图1示出的远程应用程序185位于存储器设备181上。可以理解示出的网络连接是示例性的并且也可以使用在计算机之间建立通信链路的其他方法。
元数据驱动的商业逻辑进程
图3示出了可用于管理图1中网络上各种应用程序的元数据驱动的系统200的框图。系统200包括实体元数据模块202、进程元数据模块204、基本进程元数据模块206、串行化模块208以及解串行化模块210。所述系统200可与服务器数据库212、远程数据库214、图形用户界面(GUI)216以及浏览器218进行通信。可在诸如网络10的服务器30、台式计算机12之类的各种计算设备的任一个上实现系统200的各种模块。当在计算机110上实现时,所述系统200可存储在ROM131、RAM132或任何其他类似的地方。
系统200可用于实现应用程序的中间件,所述应用程序包括诸如访问位于服务器数据库212和远程数据库214上各种数据的客户关系管理(CRM)应用程序。虽然在此示出的系统200用以实现CRM应用程序,但是也可使用系统200实现任何数量的另外应用程序。例如在一个另选实施例中,系统200可在诸如网络10的网络上用以实现人力资源管理应用程序。可由使用系统200实现的其他应用程序实例包括诸如企业资源计划(ERP)系统、分布式帐务系统、物料需求计划(MRP)系统、项目管理系统之类的商业应用程序。
系统200可使用GUI216和浏览器218与系统200的用户进行通信。此外,诸如应用程序135的存储在计算机110上的一个或更多的应用程序可与系统200交互。系统200可使用系统总线121或其他本领域普通技术人员熟知的方式与计算机110上的各个设备进行通信。类似地,系统200可使用局域网171、广域网173等等与网络上的各种设备进行通信。
现在讨论系统200的特定组件,实体元数据模块202可定义由应用程序使用的实体的各种特性。此实体可以是,例如用于CRM应用程序的客户账户数据的账户表格、在库存管理应用软件中用于销售数据的销售表格等等。正如本领域普通技术人员所熟知的,元数据通常代表关于实体和它们的关系的信息。实体元数据模块202可以包括各个实体的特性,包括由终极用户或由独立软件销售商(ISV)创建的各个实体的特性。可由实体元数据模块202代表的某些特性实例可包括实体的数据类型、实体的大小、实体的相关安全信息、该实体与其他实体间的关系等等。虽然在图3中的框图对实体元数据模块202仅示出了一个块,但是可以理解在系统200的一个实现中,实体元数据模块202的结构可以是非常复杂的,包括了用于不同实体的不同实体元数据模块,其中这些多个实体元数据模块的一个或更多可以相互关连。
进程元数据模块204可以代表涉及某实体的各个进程。例如,当某实体代表了提供关于销售合同的合同时,涉及合同实体的进程可以是涉及了商业逻辑并可由合同进程对象检查(ContractProceeObject.Review())方法实现的合同更新进程。在此情况下,进程元数据模块204可代表合同进程对象检查方法。如果由进程元数据模块204代表的进程需要一个或更多的子进程,那么这些子进程也可由进程元数据模块204内提供。
进程元数据模块204可包括由应用程序的原始开发人员使用该实体所开发以及用应用程序的原始实现所提供的多个进程。尽管如此,用户、ISV等等也可开发或提供能够添加到进程元数据模块204的附加进程。在此种情况下,进程元数据模块204可包括代表了关于所述附加进程的信息以及创建和/或调用所述附加商业进程的范例所必须的其他信息的元数据。
允许第三方销售商使用进程元数据模块204开发和提供一个或更多的进程,就可在无需将这些附加功能编译并配置进入所述应用程序的情况下,允许将附加的不同功能添加给该应用程序。此外,如果ISV添加一实体给一应用程序,同时此添加实体的特性存储在实体元数据模块202内的,则在这些附加实体上执行的各进程可以存储在进程元数据模块204内。
基本进程元数据模块206存储可由某一应用程序的各进程使用的各种基本进程,包括存储在进程元数据模块204内的进程。例如,图3中示出的基本进程元数据模块206包括创建进程、读取进程、更新进程和删除进程。然而涉及安全、数据保持等等的许多基本进程可存储在基本进程元数据模块206中。因此例如,存储在进程元数据模块204上的合同进程对象检查(ContractProceeObject.Review())方法可以从基本进程元数据模块206处调用更新进程用于更新合同实体,其中该合同实体的特性和关系可存储在实体元数据模块204上。
串行化模块208可包括用于将实体的存储器内对象表示转换成可在网络上发送或可由磁盘或其他存储介质所保存的格式的进程。类似地,解串行化模块210可以包括用于将来自存储器的数据或者从网络接收的数据转换成存储器内对象表示的解串行化进程,它可由存储在进程元数据模块204和基本进程元数据模块206上的一个或更多的进程使用。
图4示出了可存储在图3中实体元数据模块202内的各组件的详细框图。如上所述,实体元数据模块可用于存储关于在应用程序原始设计期间创建的各实体的信息以及关于可由该应用程序的ISV或用户添加的各实体的信息。虽然图4示出的各种信息存储在实体元数据模块的不同的块中,但是本领域普通技术人员应该认识到这些块的一个或更多可以合并或者这些块的一个或更多还可分成许多子块。此外,每个块都可使用诸如计算机110的系统总线121的公共通信总线访问来自其他块的信息。
更具体地,所述实体元数据模块202可包括物理形状块232、包含各实体的各种属性的属性块234、包括界定到各个实体上的各进程的界定进程块236、包括各个实体的(或实体间的)各种关系的关系块238、包括用于各个实体的实体映射的映射块240、包括供各个实体使用的各种用户接口的用户界面块242以及包括关于各个实体中一个或更多的各种规则的规则块244。
物理形状块232能够以元数据的格式存储诸如表格定义、视图定义等等的各种实体的物理数据库形状的定义。例如当一客户实体涉及CRM应用程序时,物理数据库形状块232可以存储关于某一客户表格中列数和用于给客户表格存储器地址等等的信息。
属性块234可包括以元数据格式存储关于实体的属性的各种信息。例如,某实体的安全属性可以指定,一个用户或进程是否具有安全特权来查看或改变关于该实体的信息。某实体的一个或更多的属性可由该应用程序的原始设计人员和/或由ISV来指定。此外,对于某些实体这些属性可由一个用户改变,而对于其他实体的这些属性不可由该用户改变。
界定进程块236可指定以元数据格式界定到各个实体上的进程,其中这些进程或者能以其他格式存储在进程元数据模块204、基本进程元数据模块206中。一个界定到一个客户实体上进程的实例是可使应用程序以固定的间隔时期生成电子邮件的“生成电子邮件”进程。另一个界定到销售员实体上的进程的实例可以是在每次应用程序收到涉及某销售员的出行信息就更新该销售员的本地电话号码的“更新位置”进程。
关系块238能够以元数据的格式指定涉及所述应用程序的各实体间的各种关系。例如,在由系统200实现的人力资源应用程序中,关系块238将经理和雇员之间的关系指定为一对多,而经理和秘书之间的关系是一对一。关系块238也可指定由ISV或由用户添加的用于实体的关系。
映射块240能够以元数据的格式指定用于基于某一应用程序中各个存在实体,建造其他实体的各种规则。例如,帐务系统的映射块240能够指定用于基于客户实体、产品实体或销售税务实体等等来创建发货单实体的规则。
用户界面块242能够以元数据的格式指定用于涉及某应用程序的实体的各种布局、视图和选择列表等等。例如在MRP应用程序中涉及特定原材料实体的用户界面块242可以指定,用于那些特定原材料实体的选择列表应该在选择列表的顶部列出最为常用的材料或者在选择列表的顶部列出那种材料的最经济购买选择等等。
规则块244能够以元数据的格式指定涉及某应用程序中一个或多个实体的各种规则,诸如确认规则、基数规则等等。例如,CRM应用程序的规则块244可指定,高于第一账户的对客户偿还实体的任何更新都必须由经理实体确认的。作为另一个实例,以元数据格式存储在规则块244内用于人力资源应用程序的确认规则可以指定对雇员奖金实体的任何更新必须经由两个经理实体确认。
此外,实体元数据模块202还可包括描述涉及目标应用程序实体的各项操作的操作块246。例如,所述操作块246可以存储包括了用于离线回放支持以及离线交易支持等请求的创建操作。类似地,所述操作块246还可以存储包括可检索操作不需要离线回放支持以及离线交易支持等信息的检索操作。
现参见图5,程序250示出了生成可由图3的元数据驱动系统使用的各种元数据模块的方法。具体地,程序250示出了添加新实体给现存应用程序以及添加涉及该新近被添加实体的过程。在框252处,程序250可接收需被添加至该应用程序的某一实体。例如,如果现存应用程序是CRM应用程序,那么ISV可能关注添加代表了客户房屋信息,即该客户是房产人还是租赁人的房屋状态实体。
在框254处,程序250串行化新近接收到的对象/实体使其能够存储在存储器上。在框256处,程序250把新近收到的实体存储在实体元数据模块204内。注意到程序250也可把定义了新建房屋状态实体的各类特性和关系存储到实体元数据模块204内。例如,所述特性中的一个可以是房屋状态仅可从四种不同状态(诸如:拥有、租赁、依赖或其他)中选择一种状态的规则。类似地,所述新近添加实体的另一个特性可以是新建实体的相关关键词。
随后在框258处,程序250接收并串行化涉及新建房屋状态实体的各种进程。例如,一个那样的进程可以是更新该房屋状态。然而对该状态的更新可能与基于多个不同规则的多个其他进程相联系,而这些规则诸如:在房屋状态从租赁变为所有后,发起对信用状态的检查,生成第一组营销报告等等。因为实体元数据模块202可能已经具有关于受此进程影响的其他实体的关系和特性信息,所以在无需编译所述全部应用程序的情况下就可以很容易地实现这些新的进程。此外,因为所述新近添加房屋状态实体的特性添加给了实体元数据模块202,所述新近添加的实体也可由其他进程访问。
随后在框260处程序250确定,涉及该新建实体的任何进程是否要求诸如创建、读取、更新和删除之类的任何基本进程。如果确定需要这些基本进程中的一个或多个,那么在框260处该程序250就保证在基本进程元数据模块206内的所有这些部件进程都可用。如果确定在基本进程元数据模块206内的一个或多个基本进程不可用,那么在框262处该程序请求、接收并存储这些基本程序至所述基本进程元数据模块206。
现参见图6,程序300示出了使用元数据驱动系统200的方法。出于说明的目的,程序300仅示出了为了执行插入请求使用元数据驱动系统200,但是也可使用元数据驱动系统200实现其他请求或复杂的进程。可由使用进程元数据模块204定义的商业进程执行该请求,其中存储在实体元数据模块202上的所述商业进程请求将在商业实体上执行的创建操作以创建对该商业实体的查询。程序300使用存储在基本进程元数据模块206中的各种基本进程以执行该商业进程。程序300可使用将执行插入请求用于该实体的各种扩展,其中这些扩展也可存储在涉及该实体的实体元数据模块202内。通常,可在应用程序的设计期间或者由应用程序的ISV或用户来实现某实体的扩展。
在框302处,程序300可发送预创建(PreCreate)请求给存储在基本进程元数据模块206的确认(Validate)基本进程用于确认其上执行创建进程的实体范例的各种属性。
随后在框304处,程序300可发送预创建请求给存储在基本进程元数据模块206的注入缺省(InjectDefaults)基本进程来为该实体范例的各类属性设置客户定义值。例如,房屋状态的缺省值可以是“租赁”,并且如果未给所述实体实例赋值,那么所述注入缺省基本进程可以添加该缺省值给所述实体范例。
随后在框306处,程序300可发送预创建请求给存储在基本进程元数据模块206的安全(Security)基本进程来获取对其上执行创建进程的所述实体的安全许可。程序300可使用所述实体的安全扩展以确认用户具有合适的许可来执行创建进程。
而在当前用于创建进程的情况下,程序300仅执行单级安全检查;而在另外情况下,可执行两级安全检查,其中程序300首先检查用户具有许可以执行针对由该实体定义的一类范例的被请求进程,随后程序300执行实体范例指定检查以确保该用户是否具有许可在该实体的特定范例上执行被请求的进程。注意,在创建进程的情况下是没有现存实体的范例的,因此仅是单级安全检查就足够了。
在框308处,程序300可发送构筑创建(BuildCreate)请求给存储在进程元数据模块204上的查询构筑者(QueryBuilder)进程以创建一个实体范例。
随后在框310处,程序300可发送后创建(PostCreate)请求给存储在基本进程元数据模块206上的安全基本进程,为在其上可以执行创建进程的所述实体存储安全许可。
在框312处,程序300可发送后创建请求给存储在基本进程元数据模块206上的工作流(Workflow)基本进程以允许各种客户定义商业进程在当前操作范围之外的运行。该工作流基本进程是允许应用程序的ISV或用户开发商业规则/动作的进程实例,这些规则/动作是在响应涉及包含实体的系统的某些事件而采取的。例如,销售力度(sales force)管理系统的用户可以创建一工作流进程,该进程每当一个新的销售机会或销售导向进入销售力度管理系统是触发发送一个电子邮件。
随后在框314处,程序300可发送后创建请求给存储在基本进程元数据模块206的呼出(Callout)基本进程以通知已经预定创建(Create)进程执行的其他系统,允许它们执行任何现存的或新的商业逻辑。
在框316处,如果是由该系统当前连接状态请求,为了在重新建立可靠连接时对中央服务器后续回放,那么程序300发送后创建请求给存储在基本进程元数据模块206的离线(Offline)基本进程用以存储该请求。注意,步骤316在断开的客户机上执行所述创建操作时允许存储该请求,用于随后在建立了与中央应用程序服务器的连接时回放,而某操作是在中央应用程序服务器执行的情况无需那样的存储。
本领域普通技术人员应理解上述用于需要频繁的更新以及定制开发能力的商业应用程序的元数据驱动系统200的优点。制作商业应用程序元数据驱动就因为在允许客户化和对客户化的支持方面是无需在每次客户化之后执行该商业应用程序的编译的,从而提供了巨大的利用价值。具体地,通过制作诸如确认、认证、保留之类各种进程的元数据驱动,在此描述的元数据驱动系统200使得商业软件的客户化变得十分便利,从而降低了研发和维护商业应用程序的成本。
元数据驱动系统200也使得具有商业逻辑的新实体的内部发展更为便利。因为通过某些工具更新元数据比起更新并编译用于商业应用程序的编码以及在服务器和客户机的簇上部署已更新编码要容易的多,所以元数据驱动系统200使得商业应用程序的改变更为便利。类似地,因为使用元数据对于进行自动测试以及将测试的输出与期望结果的比较将更为便利,所以用于商业应用程序质量保证的自动化测试进程可被轻易地添加到进程元数据模块204。
虽然前述阐明了本发明的多个不同实施例的详尽描述,但是应该理解本专利的范围由该专利末尾的权利要求所限定。这些详尽描述仅应解释为示例性的,并且不描述所有可能实施例是因为描述能够可能的实施例,若不是不可能也是不现实的。可以使用当前的技术或提交该专利申请后发展的技术来实现本发明的各个可选实施例,它们也都落入权利要求所限制的范围内。
这样,可以在此描绘和示出的技术及结构中在不背离本发明权利要求的精神和范围的情况下做出许多修改和变化。因此,可以理解在此描述的方法和装置仅用于说明,并且不限制权利要求的范围。

Claims (16)

1.一种表示用于应用程序平台的实体的方法,其中实体具有相关的数据结构,所述方法包括:
以元数据格式定义一进程为进程元数据模块,其中该进程包括涉及该实体的逻辑;
以元数据格式定义涉及该实体的多个属性为实体元数据模块;
以元数据格式定义可在该实体上执行的操作为操作元数据模块;
串行化(1)进程元数据模块、(2)实体元数据模块以及(3)操作元数据模块中的至少一个;
传送(1)串行化进程元数据模块、(2)串行化实体元数据模块以及(3)串行化操作元数据模块中的至少一个给所述应用程序平台;
在所述应用程序平台处解串行化(1)串行化进程元数据模块、(2)串行化实体元数据模块以及(3)串行化操作元数据模块中的至少一个;
存储(1)解串行化进程元数据模块、(2)解串行化实体元数据模块以及(3)解串行化操作元数据模块中的至少一个在应用程序平台上。
2.如权利要求1所述的方法,其特征在于,还包括在进程元数据模块内存储进程执行程序,其中该进程执行程序提供一个例程用于解释涉及该实体的逻辑。
3.如权利要求2所述的方法,其特征在于,在实体上执行的操作是:(1)创建、(2)更新以及(3)删除中的至少一种。
4.如权利要求3所述的方法,其特征在于,操作元数据包括关于在实体上所执行的操作的信息,所述信息包括:
(a)所述操作是否请求支持离线处理;
(b)所述操作是否需要在原子事务内执行;以及
(c)所述操作请求一步还是两步的安全许可。
5.如权利要求2所述的方法,其特征在于,在该实体上执行的所述操作是在与该应用程序平台断开的远程计算设备上执行的。
6.如权利要求2所述的方法,其特征在于,在该实体上执行的所述操作是级联操作。
7.如权利要求2所述的方法,其特征在于,所述进程包括(1)用于该实体的现有逻辑以及(2)用于新添加实体的新逻辑中的至少一种。
8.如权利要求2所述的方法,其特征在于,还包括为该实体创建多个元数据驱动扩展,这些扩展包括(1)确认扩展、(2)注入缺省扩展、(3)安全扩展、(4)工作流扩展、(5)呼出扩展以及(6)离线扩展中的至少一个。
9.如权利要求8所述的方法,其特征在于,所述进程元数据模块还适合与多个元数据驱动扩展中的至少一个通信。
10.一种用于管理实体的元数据驱动系统,该系统包括:
适于以元数据格式存储进程的进程元数据模块,其中所述进程包括涉及该实体的逻辑;
适于以元数据格式存储该实体的多个属性的实体元数据模块;
适于存储多个基本数据进程的基本进程元数据模块;
适于串行化实体元数据模块、进程元数据模块以及基本进程元数据模块的串行化模块;以及
适于解串行化实体元数据模块、进程元数据模块以及基本进程元数据模块的解串行化模块。
11.如权利要求10所述的系统,其特征在于,多个基本数据进程包括(1)创建进程、(2)更新进程以及(3)删除进程中的至少一种。
12.如权利要求11所述的系统,其特征在于,该进程包括(1)用于该实体的现有逻辑以及(2)用于新添加实体的新逻辑中的至少一种。
13.如权利要求11所述的系统,其特征在于,
串行化模块还适于(a)与实体数据库通信以及与图形用户界面通信,并且(b)将所述实体元数据模块以及所述进程元数据模块串行化为XML串;以及
解串行化模块还适于与具有图形用户界面的远程客户机通信并与具有实体数据库的服务器通信。
14.一种表示用于应用程序平台的实体的方法,其中所述实体具有相关的数据结构,所述方法包括:
(a)以元数据的格式定义该实体的多个属性为实体元数据模块;
(b)在所述应用程序平台上存储解串行化的实体元数据模块;
(c)以元数据的格式定义一进程作为进程元数据模块,其中该进程包括涉及所述实体的逻辑;
(d)在所述应用程序平台上存储解串行化的进程元数据模块;
(e)以元数据格式定义拟在该实体上执行的操作作为操作元数据模块;以及
(f)在所述应用程序平台上存储解串行化的操作元数据模块。
15.如权利要求14所述的方法,其特征在于,所述进程表示了由独立软件销售商添加的并且拟在由该独立软件销售商添加的实体上执行的进程。
16.如权利要求14所述的方法,其特征在于,所述方法还包括:
捕获在所述实体上执行的离线操作;
以元数据格式存储该离线操作;
串行化所述元数据格式的操作;
将所述串行化的操作传送到所述应用程序平台;
在所述应用程序平台解串行化所述元数据格式的操作;以及
在所述应用程序平台回放解串行化的元数据格式操作。
CN2005101287298A 2004-12-29 2005-11-29 用于元数据驱动的商业逻辑进程的方法和装置 Expired - Fee Related CN1797449B (zh)

Applications Claiming Priority (2)

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

Publications (2)

Publication Number Publication Date
CN1797449A CN1797449A (zh) 2006-07-05
CN1797449B true CN1797449B (zh) 2011-03-23

Family

ID=36337583

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2005101287298A Expired - Fee Related CN1797449B (zh) 2004-12-29 2005-11-29 用于元数据驱动的商业逻辑进程的方法和装置

Country Status (7)

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

Families Citing this family (38)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7565640B2 (en) * 2004-10-01 2009-07-21 Microsoft Corporation Framework for seamlessly authoring and editing workflows at design and runtime
US7631291B2 (en) * 2004-10-01 2009-12-08 Microsoft Corporation Declarative representation for an extensible workflow model
US20060074735A1 (en) * 2004-10-01 2006-04-06 Microsoft Corporation Ink-enabled workflow authoring
US20060074714A1 (en) * 2004-10-01 2006-04-06 Microsoft Corporation Workflow tracking based on profiles
US20060074704A1 (en) * 2004-10-01 2006-04-06 Microsoft Corporation Framework to model cross-cutting behavioral concerns in the workflow domain
US8170901B2 (en) * 2004-10-01 2012-05-01 Microsoft Corporation Extensible framework for designing workflows
US7805324B2 (en) * 2004-10-01 2010-09-28 Microsoft Corporation Unified model for authoring and executing flow-based and constraint-based workflows
US7464366B2 (en) * 2004-10-01 2008-12-09 Microsoft Corporation Programming interface for a componentized and extensible workflow model
US7451432B2 (en) * 2004-10-01 2008-11-11 Microsoft Corporation Transformation of componentized and extensible workflow to a declarative format
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
US9075863B2 (en) * 2008-05-29 2015-07-07 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
US9275165B2 (en) 2010-09-17 2016-03-01 Oracle International Corporation Method and apparatus for defining an application to allow polymorphic serialization
US9026583B2 (en) * 2010-09-17 2015-05-05 Oracle International Corporation Method and apparatus for polymorphic serialization
WO2012037572A1 (en) * 2010-09-17 2012-03-22 Oracle International Corporation Recursive navigation in mobile customer relations management
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
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
US11940999B2 (en) 2013-02-08 2024-03-26 Douglas T. Migliori Metadata-driven computing system
CA2900523A1 (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
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 北京百度网讯科技有限公司 业务内容输出方法、装置、设备、存储介质和程序产品

Citations (1)

* 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

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
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
KR20040035674A (ko) * 2001-07-06 2004-04-29 컴퓨터 어소시에이츠 싱크, 인코포레이티드 비즈니스 프로세스 정책 객체
US7730446B2 (en) * 2003-03-12 2010-06-01 Microsoft Corporation Software business process model
US7080089B2 (en) * 2003-03-12 2006-07-18 Microsoft Corporation Customization of process logic in a software system

Patent Citations (1)

* 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

Also Published As

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

Similar Documents

Publication Publication Date Title
CN1797449B (zh) 用于元数据驱动的商业逻辑进程的方法和装置
López‐Pintado et al. Caterpillar: a business process execution engine on the Ethereum blockchain
US7885793B2 (en) Method and system for developing a conceptual model to facilitate generating a business-aligned information technology solution
US8413107B2 (en) Architecture for service oriented architecture (SOA) software factories
JP5117754B2 (ja) ソフトウェアモデルのビジネスプロセス変形型
CN101772764B (zh) 多线程业务编程库
US9584949B2 (en) Cloud based master data management architecture
CN103593174A (zh) 可修改的业务对象
JP2006512695A (ja) モバイルデータとソフトウェアのアップデートシステムおよび方法
KR102402026B1 (ko) 가상공간 아카이브를 이용한 가상공간 임대차 서비스 제공 시스템
CN104395899A (zh) 基于云的主数据管理系统及其方法
US20190116036A1 (en) System and method for building a blockchain application
US20030126050A1 (en) Portal for implementation of multiple software components
US10572247B2 (en) Prototype management system
WO2008068187A1 (en) Software model normalization and mediation
US20240087000A1 (en) System and method for identifying and enabling data marketplace purchases and sales of integrated data
Castro et al. Integrating organizational requirements and object oriented modeling
US20220035864A1 (en) System and method of intelligent profiling a user of a cloud-native application development platform
CN104572601A (zh) 经由社交媒体的文档修订
Adebanjo E-crm Implementation—a comparison of three approaches
Castro et al. Closing the gap between organizational requirements and object oriented modeling
JP2009517780A (ja) ビジネストランザクションの表現
KR102498521B1 (ko) 메타버스 기반 가상 오피스 서비스 제공 시스템
Carruthers et al. Cloud Data Management Capabilities (CDMC)
Tkachuck et al. WEB DEVELOPMENT OF A SERVICE CENTER PLATFORM FOR WORKING WITH CLIENTS

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20110323

Termination date: 20141129

EXPY Termination of patent right or utility model