CN106415539B - 域间业务相关联的方法和装置 - Google Patents
域间业务相关联的方法和装置 Download PDFInfo
- Publication number
- CN106415539B CN106415539B CN201580028079.1A CN201580028079A CN106415539B CN 106415539 B CN106415539 B CN 106415539B CN 201580028079 A CN201580028079 A CN 201580028079A CN 106415539 B CN106415539 B CN 106415539B
- Authority
- CN
- China
- Prior art keywords
- versioned
- domain
- attribute
- business
- definition
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/23—Updating
- G06F16/2308—Concurrency control
- G06F16/2315—Optimistic concurrency control
- G06F16/2329—Optimistic concurrency control using versioning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Stored Programmes (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
一种用于将版本化域和非版本化域之间的业务相互关联的计算机实现的方法的说明性实施例,针对一组业务中的业务生成具有版本化域和非版本化域两者的属性的元数据;使用版本化业务定义的具体版本来创建实例,其中,所述实例包含直接根据版本化业务定义创建的第一部分和根据非版本化业务定义创建的第二部分;指定版本化域和非版本化域中业务的相应表示之间的链路;提供一组构想,通过该组构想使用版本化域或者非版本化域来执行业务的规划、执行和更新实例中选择的一个;以及将该业务定义的所有版本相关联到单个非版本化定义。
Description
技术领域
总体上讲,本公开涉及数据处理系统中的经营过程管理和案例管理,更具体地,本公开涉及在数据处理系统中将版本化域中所定义和实例化的业务相关联到非版本化域。
背景技术
组织机构会产生内容或信息,并且经常通过某一类型的业务流程来产生这些内容或信息,其中该业务流程被形式上地定义并且由系统执行,或者隐含于雇员之间以及与客户和/或合作伙伴的人工交互。内容和业务流程是组织机构的经营的关键,因此,使用软件系统来形式化这些业务流程,以及使能对组织机构的运作至关重要的信息的编目(catalog)与收集。
因此,需要对业务流程和数据定义进行设计,来使得能够在构建组织机构成功地进行经营所需的内部和外部的应用的过程中使用。这不仅适用于文档和业务流程,而且适用于任何类型的业务、或者定义了构成组织机构的核心概念的元数据。对于如何在软件系统中捕获元数据存在着两种选择:版本化的和非版本化的。
版本化的途径捕获特定业务的关系、时序、或者演变。当每一个特定版本对于系统的操作至关重要而且必须可以独立于同一元数据的其它变型(即,版本)而访问时,这一途径是有用的。业务流程是一个示例。这些业务流程通常定义了结构良好的流、或者活动之间的关系。业务流程也通常是短期的,并且可以并行地执行同一业务流程的多个实例。其结果是,相应的定义可以受益于版本化的途径,该版本化的方案使得多个实例能够继续执行,而不会有因不可预料的或者不兼容的改变导致失败的风险。与此同时,新的版本可以改进业务流程,并且允许新实例立即受益于这一改进,而不会有影响已在使用的实例的风险。例如,处理保险索赔的业务流程可以随时间演变。当定义了新的版本时,可以在旧版本继续运行直至完成的同时,推出新的版本。版本化的方案允许这样的灵活性。
非版本化的途径基本上表述的是仅存在元数据的一个版本,而且元数据的这一版本随时间演变。内容或信息可以较好地适合于这一途径。文档一旦创建将通常将是长期的。例如,当第一次定义时,保险策略定义可能仅包括几个属性,但随着保险公司的经营的增长,需要对该策略捕获的信息加以改进,与此同时,较旧的策略必须仍然可以由与旧的策略协同运作的较新的系统加以访问和处理。与业务流程定义不同,文档定义通常受益于持续随着经营演变的单个版本。这对于信息挖掘尤其适用。当文档定义具有多个版本时,文档变得难以搜索,并且难以对与实质上为单个文档定义相关联的实例加以联合。因此,仅使一个文档定义成为系统中所有文档之间的一个公共链路,是一个重要的属性。
取决于概念的性质,每个途径也将存在针对所定义的某些方面的限制。考虑到业务流程所生成的数据。由于业务流程演变的速度和为维持多个实例并行运行的相关要求,通常,仅可以利用版本化的途径来实现预期将迅速演变的业务流程本身。然而,与业务流程相关联的信息、或者特性通常较好地适合于非版本化途径的使用。以保险索赔业务流程为例,可能产生必须在该业务流程完成(以及已经部署了该业务流程的多个新的版本)之后长期存在的文档和数据,但是该信息还必须是可搜索并且可关联到创建该信息的单个索赔业务流程。笼统地讲,可以将其视为同一硬币的两面。在某一实例中,组织机构的元数据可能需要版本化地运作或者加以访问(解决索赔的业务流程),并且在其它情况下,组织机构的元数据可能需要非版本化地运作或者加以访问(与进行中的或者已解决的索赔相关联的数据)。
发明内容
根据一个实施例,一种用于将版本化域和非版本化域之间的业务相互关联的计算机实现的方法,针对一组业务中的业务生成具有版本化域和非版本化域两者的属性的元数据,其中所述元数据与版本化域和非版本化域中所使用的该组业务相关联;使用版本化业务定义的具体版本来创建实例,其中,所述实例包含直接根据版本化业务定义创建的第一部分和根据非版本化业务定义创建的第二部分;指定版本化域和非版本化域中业务的相应表示之间的链路,其中,所指定的链路定义了版本化域中一个业务的多个版本与非版本化域中同一业务的单个非版本化表示之间的关系;响应于从版本化域或者非版本化域提供用于执行业务的规划、执行和更新实例中选择的一个的一组构想,从版本化域或者非版本化域接收业务的规划、执行和更新实例中所选择的那一个,其中,使用一组预定的验证规则执行业务的规划、执行和更新实例中所选择的那一个;以及将该业务定义的所有版本相关联到单个非版本化定义,其中,也将该单个非版本化定义的业务定义相关联到该业务定义的所有版本。
从第一方面看,本发明提供了一种用于将版本化域和非版本化域之间的业务相互关联的计算机实现的方法,包括:针对一组业务中的业务生成具有版本化域和非版本化域两者的属性的元数据,其中所述元数据与版本化域和非版本化域中所使用的该组业务相关联;使用版本化业务定义的具体版本来创建实例,其中,所述实例包含直接根据版本化业务定义创建的第一部分和根据非版本化业务定义创建的第二部分;指定版本化域和非版本化域中业务的相应表示之间的链路,其中,所指定的链路定义了版本化域中一个业务的多个版本与非版本化域中同一业务的单个非版本化表示之间的关系;响应于从版本化域或者非版本化域提供用于执行业务的规划、执行和更新实例中选择的一个的一组构想,从版本化域或者非版本化域接收业务的规划、执行和更新实例中所选择的那一个,其中,使用一组预定的验证规则执行业务的规划、执行和更新实例中所选择的那一个;以及将该业务定义的所有版本相关联到单个非版本化定义,其中,也将该单个非版本化定义的业务定义相关联到该业务定义的所有版本。
优选地,本发明提供了一种方法,其中,生成元数据还包括:向包含由版本化定义的所有版本以及非版本化定义共享的不变的分量的业务分配唯一标识符(UID),其中,以第一形式将UID表示为版本化的:<公共UID>_<版本ID>以及以第二形式将UID表示为非版本化的:<公共UID>,其中,系统使用<公共UID>片段识别同一业务的所有版本以及相关联的单个非版本化定义,并且其中,在相关联的业务的整个生命期中UID是不可变的;以及根据各方面生成属性,当该属性改变时,使与该属性相关联的实例数据与非版本化域中的现存实例不兼容,其中,具体的方面被视为在定义的生命期中是不可变的,并且当在版本化域中改变这些具体的方面时,所述改变导致系统将该属性识别为对父级定义的全新的添加,其中,由版本化属性和非版本化属性两者共享整个UID,并且以<UID>_<不可变方面1值>_<...>_<不可变方面n值>的形式表示。
优选地,本发明提供了一种方法,其中,响应于提供用于执行业务的规划、执行和更新实例中选择的一个的一组构想还包括:接收版本化构想和非版本化构想的选择之一,以更新实例数据;响应于接收对版本化构想的选择,仅访问在版本化定义的具体版本上所定义的那些属性以及针对版本化定义的该具体版本的属性的一组预定的验证规则;验证该构想上直接针对版本化定义的具体版本的更新;响应于更新的有效,查找非版本化构想的相应的属性,然后将其保存在同一交易中,以维持该定义的版本化实例和非版本化实例之间的同步;响应于接收对非版本化构想的选择,揭示出在版本化定义的所有版本中所定义的属性,所述版本化定义的所有版本中所定义的属性被映射于非版本化定义中相应的属性;响应于通过非版本化构想进行的改变,在相应的版本化构想中进行查找,其中,将所述改变映射于该相应的版本化构想,并且检查该组预定的验证规则中由具体版本化定义所定义的相应的验证规则;响应于更新的成功,将对版本化实例以及非版本化实例的改变保存在单个交易中;以及响应于更新的失败,回滚所述改变。
优选地,本发明提供了一种方法,还包括:更新版本化域中的业务定义,其中,对业务定义的最新版本n的用户改变创建包含该用户改变的新的版本n+1,其中,该用户改变为添加、移除以及修改之一,并且对于每一个用户改变,进行相应的到非版本化业务定义的映射,以同步非版本化业务定义,其中:响应于与业务定义的属性相关联的该组预定的验证规则中的一个验证规则的改变,不对非版本化业务定义进行更新;响应于可以以兼容的方式应用于非版本化业务定义的一个方面改变,对非版本化定义中的该属性改变;以及响应于不可以以兼容的方式应用于非版本化业务定义的一个方面改变,使用与版本化业务定义的属性相关联的该组预定的验证规则向非版本化定义添加新的属性。
优选地,本发明提供了一种方法,其中,该组预定的验证规则包含一个或多个与业务定义的属性相关联的预定的验证规则,并且其中,该组预定义的验证规则中的所述一个或多个规则使用版本化定义中的所述一个或多个预定义的验证规则验证所接收的针对版本化定义的特定版本的改变,无论所更新的实例是非版本化实例还是版本化实例。
优选地,本发明提供了一种方法,其中,所述相关联还包括业务层面的第一关联层面和属性层面的第二关联层面,其中,所述相关联使用适用于定义和实例的唯一标识符将业务相关联。
优选地,本发明提供了一种方法,其中,第一部分或者第二部分之一的查找可以使用第一部分或者第二部分中的剩余的一个进行,所述第一部分或者第二部分中的剩余的一个也共享由版本化定义的所有版本以及非版本化定义共享的不变的分量。
有利的是,本发明提供了这样一种机制,其中,对同一业务的两个版本进行链接,所述同一业务的两个版本在两个域中予以表示并且要求以两种形式对其访问。
有利的是,所述方法定义了业务的多个版本与同一业务的单个非版本化表示之间的关系,并且利用这些关系使双方作为一个运作。有利的是,本发明:
·将业务定义的所有版本相关联到其单个非版本化的表示,反之亦然。
·将特定业务定义版本的属性、或特性、定义相关联到非版本化表示中相同的属性、或特性、定义,反之亦然。
·定义诸如针对版本化业务定义的添加、更新以及删除的编辑语义以及对应用于相应非版本化业务定义的编辑语义的转换。
·取决于在版本化构想或非版本化构想上执行操作,而定义如何对业务的实例进行读取和更新操作。
·定义如何在作为一个的版本化和非版本化业务的实例之间同步化数据更新,或者如何在另一方进行更新。
·当通过版本化或者非版本化构想更新业务实例时,定义如何定义和评估属性、或特性、验证规则。
从第二方面看,本发明提供了一种用于将版本化域和非版本化域之间的业务相互关联的计算机程序产品,所述计算机程序产品包含其上载有程序指令的计算机可读存储介质,所述程序指令可由处理器单元执行,从而使得处理器单元:针对一组业务中的业务生成具有版本化域和非版本化域两者的属性的元数据,其中所述元数据与版本化域和非版本化域中所使用的该组业务相关联;使用版本化业务定义的具体版本来创建实例,其中,所述实例包含直接根据版本化业务定义创建的第一部分和根据非版本化业务定义创建的第二部分;指定版本化域和非版本化域中业务的相应表示之间的链路,其中,所指定的链路定义了版本化域中一个业务的多个版本与非版本化域中同一业务的单个非版本化表示之间的关系;响应于从版本化域或者非版本化域提供用于执行业务的规划、执行和更新实例中选择的一个的一组构想,从版本化域或者非版本化域接收业务的规划、执行和更新实例中所选择的那一个,其中,使用一组预定的验证规则执行业务的规划、执行和更新实例中所选择的那一个;以及将该业务定义的所有版本相关联到单个非版本化定义,其中,也将该单个非版本化定义的业务定义相关联到该业务定义的所有版本。
优选地,本发明提供了一种计算机程序产品,其中,可由处理器单元执行的使得该处理器单元生成元数据的程序指令还包括可由处理器单元执行的使得该处理器单元进行如下操作的程序指令:向包含由版本化定义的所有版本以及非版本化定义共享的不变的分量的业务分配唯一标识符(UID),其中,以第一形式将UID表示为版本化的:<公共UID>_<版本ID>以及以第二形式将UID表示为非版本化的:<公共UID>,其中,系统使用<公共UID>片段识别同一业务的所有版本以及相关联的单个非版本化定义,并且其中,在相关联的业务的整个生命期中UID是不可变的;以及根据各方面生成属性,当该属性改变时,使与该属性相关联的实例数据与非版本化域中的现存实例不兼容,其中,具体的方面被视为在定义的生命期中是不可变的,并且当在版本化域中改变这些具体的方面时,所述改变导致系统将该属性识别为对父级定义的全新的添加,其中,由版本化属性和非版本化属性两者共享整个UID,并且以<UID>_<不可变方面1值>_<...>_<不可变方面n值>的形式表示。
优选地,本发明提供了一种计算机程序产品,其中,可由处理器单元执行的使得该处理器单元响应于提供用于执行业务的规划、执行和更新实例中选择的一个的一组构想的程序指令还包括可由处理器单元执行的使得该处理器单元进行如下操作的程序指令:接收版本化构想和非版本化构想的选择之一,以更新实例数据;响应于接收对版本化构想的选择,仅访问在版本化定义的具体版本上所定义的那些属性以及针对版本化定义的该具体版本的属性的一组预定的验证规则;验证该构想上直接针对版本化定义的具体版本的更新;响应于更新的有效,查找非版本化构想的相应的属性,然后将其保存在同一交易中,以维持该定义的版本化实例和非版本化实例之间的同步;响应于接收对非版本化构想的选择,揭示出在版本化定义的所有版本中所定义的属性,所述版本化定义的所有版本中所定义的属性被映射于非版本化定义中相应的属性;响应于通过非版本化构想进行的改变,在相应的版本化构想中进行查找,其中,将所述改变映射于该相应的版本化构想,并且检查该组预定的验证规则中由具体版本化定义所定义的相应的验证规则;响应于更新的成功,将对版本化实例以及非版本化实例的改变保存在单个交易中;以及响应于更新的失败,回滚所述改变。
优选地,本发明提供了一种计算机程序产品,还包括可由处理器单元执行的使得该处理器单元进行如下操作的程序指令:更新版本化域中的业务定义,其中,对业务定义的最新版本n的用户改变创建包含该用户改变的新的版本n+1,其中,该用户改变为添加、移除以及修改之一,并且对于每一个用户改变,进行相应的到非版本化业务定义的映射,以同步非版本化业务定义,其中:响应于与业务定义的属性相关联的该组预定的验证规则中的一个验证规则的改变,不对非版本化业务定义进行更新;响应于可以以兼容的方式应用于非版本化业务定义的一个方面改变,对非版本化定义中的该属性改变;以及响应于不可以以兼容的方式应用于非版本化业务定义的一个方面改变,使用与版本化业务定义的属性相关联的该组预定的验证规则向非版本化定义添加新的属性。
优选地,本发明提供了一种计算机程序产品,其中,该组预定的验证规则包含一个或多个与业务定义的属性相关联的预定的验证规则,并且其中,该组预定义的验证规则中的所述一个或多个规则使用版本化定义中的所述一个或多个预定义的验证规则验证所接收的针对版本化定义的特定版本的改变,无论所更新的实例是非版本化实例还是版本化实例。
优选地,本发明提供了一种计算机程序产品,其中,可由处理器单元执行的使得该处理器单元进行相关联的程序指令还包括可由处理器单元执行的使得该处理器单元以业务层面的第一关联层面和以属性层面的第二关联层面进行相关联的程序指令,其中,所述相关联使用适用于定义和实例的唯一标识符将业务相关联。
优选地,本发明提供了一种计算机程序产品,还包括可由处理器单元执行的使得该处理器单元使用第一部分或者第二部分中的剩余的一个查找第一部分或者第二部分之一,所述第一部分或者第二部分中的剩余的一个也共享由版本化定义的所有版本以及非版本化定义共享的不变的分量。
从第三方面看,本发明提供了用于将版本化域和非版本化域之间的业务相互关联的装置,所述装置包括总线、连接到总线的其上载有程序指令内存;处理器单元,其中,处理器单元执行所述程序指令,从而使得所述装置执行以下操作:针对一组业务中的业务生成具有版本化域和非版本化域两者的属性的元数据,其中所述元数据与版本化域和非版本化域中所使用的该组业务相关联;使用版本化业务定义的具体版本来创建实例,其中,所述实例包含直接根据版本化业务定义创建的第一部分和根据非版本化业务定义创建的第二部分;指定版本化域和非版本化域中业务的相应表示之间的链路,其中,所指定的链路定义了版本化域中一个业务的多个版本与非版本化域中同一业务的单个非版本化表示之间的关系;响应于从版本化域或者非版本化域提供用于执行业务的规划、执行和更新实例中选择的一个的一组构想,从版本化域或者非版本化域接收业务的规划、执行和更新实例中所选择的那一个,其中,使用一组预定的验证规则执行业务的规划、执行和更新实例中所选择的那一个;以及将该业务定义的所有版本相关联到单个非版本化定义,其中,也将该单个非版本化定义的业务定义相关联到该业务定义的所有版本。
优选地,本发明提供了一种装置,其中,处理器单元执行使得所述装置生成元数据的程序指令还使得所述装置:向包含由版本化定义的所有版本以及非版本化定义共享的不变的分量的业务分配唯一标识符(UID),其中,以第一形式将UID表示为版本化的:<公共UID>_<版本ID>以及以第二形式将UID表示为非版本化的:<公共UID>,其中,系统使用<公共UID>片段识别同一业务的所有版本以及相关联的单个非版本化定义,并且其中,在相关联的业务的整个生命期中UID是不可变的;以及根据各方面生成属性,当该属性改变时,使与该属性相关联的实例数据与非版本化域中的现存实例不兼容,其中,具体的方面被视为在定义的生命期中是不可变的,并且当在版本化域中改变这些具体的方面时,所述改变导致系统将该属性识别为对父级定义的全新的添加,其中,由版本化属性和非版本化属性两者共享整个UID,并且以<UID>_<不可变方面1值>_<...>_<不可变方面n值>的形式表示。
优选地,本发明提供了一种装置,其中,处理器单元执行使得该装置响应于提供用于执行业务的规划、执行和更新实例中选择的一个的一组构想的程序指令还使得所述装置进行如下操作:接收版本化构想和非版本化构想的选择之一,以更新实例数据;响应于接收对版本化构想的选择,仅访问在版本化定义的具体版本上所定义的那些属性以及针对版本化定义的该具体版本的属性的一组预定的验证规则;验证该构想上直接针对版本化定义的具体版本的更新;响应于更新的有效,查找非版本化构想的相应的属性,然后将其保存在同一交易中,以维持该定义的版本化实例和非版本化实例之间的同步;响应于接收对非版本化构想的选择,揭示出在版本化定义的所有版本中所定义的属性,所述版本化定义的所有版本中所定义的属性被映射于非版本化定义中相应的属性;响应于通过非版本化构想进行的改变,在相应的版本化构想中进行查找,其中,将所述改变映射于该相应的版本化构想,并且检查该组预定的验证规则中由具体版本化定义所定义的相应的验证规则;响应于更新的成功,将对版本化实例以及非版本化实例的改变保存在单个交易中;以及响应于更新的失败,回滚所述改变。
优选地,本发明提供了一种装置,其中,处理器单元执行程序指令使得所述装置:更新版本化域中的业务定义,其中,对业务定义的最新版本n的用户改变创建包含该用户改变的新的版本n+1,其中,该用户改变为添加、移除以及修改之一,并且对于每一个用户改变,进行相应的到非版本化业务定义的映射,以同步非版本化业务定义,其中:响应于与业务定义的属性相关联的该组预定的验证规则中的一个验证规则的改变,不对非版本化业务定义进行更新;响应于可以以兼容的方式应用于非版本化业务定义的一个方面改变,对非版本化定义中的该属性改变;以及响应于不可以以兼容的方式应用于非版本化业务定义的一个方面改变,使用与版本化业务定义的属性相关联的该组预定的验证规则向非版本化定义添加新的属性。
优选地,本发明提供了一种装置,其中,该组预定的验证规则包含一个或多个与业务定义的属性相关联的预定的验证规则,并且其中,该组预定义的验证规则中的所述一个或多个规则使用版本化定义中的所述一个或多个预定义的验证规则验证所接收的针对版本化定义的特定版本的改变,无论所更新的实例是非版本化实例还是版本化实例。
优选地,本发明提供了一种装置,其中,处理器单元执行使得所述装置进行相关联的程序指令还使得所述装置以业务层面的第一关联层面和以属性层面的第二关联层面进行相关联,其中,所述相关联使用适用于定义和实例的唯一标识符将业务相关联。
附图说明
现在,将参照以下附图、仅通过举例描述本发明的优选实施例,其中:
图1为可用于本公开不同实施例的示例性网络数据处理系统的结构图;
图2为可用于本公开不同实施例的一个示例性数据处理系统的结构图;
图3为可用于本公开不同实施例的版本化系统的结构图;
图4为在可用于本公开不同实施例的版本化系统中创建一个新版本的过程的流程图;
图5为根据本公开一个实施例的可用于本公开不同实施例的非版本化系统的结构图;
图6为在可用于本公开不同实施例的非版本化系统中改变一个定义的过程的流程图;
图7为可用于本公开不同实施例的一个混合系统的结构图;
图8为可用于本公开不同实施例的一个混合系统的结构图;
图9为在可用于本公开不同实施例的一个混合系统的非版本化系统部分中创建一个新定义版本的流程图;
图10为在可用于本公开不同实施例的一个混合系统中改变根据版本化定义所创建的实例部分的特性的流程图;
图11为在可用于本公开不同实施例的一个混合系统中改变根据非版本化域所创建的实例部分的特性的流程图;
图12描述了在可用于本公开不同实施例的一个混合系统中将版本化域和非版本化域之间的业务加以关联的过程的流程图;
具体实施方式
尽管以下提供了一个或多个实施例的说明性的实现,但是所公开的系统和/或方法也可以使用任何数目的技术来实现。这一公开并不局限于以下示出的说明性的实现、附图和以及技术,包括此处所示出和所描述的示例性的设计和实现,但在所附权利要求的范围以及其全部等同要求的范围内可以对其进行修改。
如本领域技术人员所知,本发明可以是系统、方法和/或计算机程序产品。计算机程序产品可以包括计算机可读存储介质,其上载有用于使处理器实现本发明的各个方面的计算机可读程序指令。
计算机可读存储介质可以是可以保持和存储由指令执行设备使用的指令的有形设备。计算机可读存储介质例如可以是――但不限于――电存储设备、磁存储设备、光存储设备、电磁存储设备、半导体存储设备或者上述的任意合适的组合。计算机可读存储介质的更具体的例子(非穷举的列表)包括:便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、静态随机存取存储器(SRAM)、便携式压缩盘只读存储器(CD-ROM)、数字多功能盘(DVD)、记忆棒、软盘、机械编码设备、例如其上存储有指令的打孔卡或凹槽内凸起结构、以及上述的任意合适的组合。这里所使用的计算机可读存储介质不被解释为瞬时信号本身,诸如无线电波或者其他自由传播的电磁波、通过波导或其他传输媒介传播的电磁波(例如,通过光纤电缆的光脉冲)、或者通过电线传输的电信号。
这里所描述的计算机可读程序指令可以从计算机可读存储介质下载到各个计算/处理设备,或者通过网络、例如因特网、局域网、广域网和/或无线网下载到外部计算机或外部存储设备。网络可以包括铜传输电缆、光纤传输、无线传输、路由器、防火墙、交换机、网关计算机和/或边缘服务器。每个计算/处理设备中的网络适配卡或者网络接口从网络接收计算机可读程序指令,并转发该计算机可读程序指令,以供存储在各个计算/处理设备中的计算机可读存储介质中。
用于执行本发明操作的计算机程序指令可以是汇编指令、指令集架构(ISA)指令、机器指令、机器相关指令、微代码、固件指令、状态设置数据、或者以一种或多种编程语言的任意组合编写的源代码或目标代码,所述编程语言包括面向对象的编程语言—诸如Smalltalk、C++等,以及常规的过程式编程语言—诸如“C”语言或类似的编程语言。计算机可读程序指令可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络—包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。在一些实施例中,通过利用计算机可读程序指令的状态信息来个性化定制电子电路,例如可编程逻辑电路、现场可编程门阵列(FPGA)或可编程逻辑阵列(PLA),该电子电路可以执行计算机可读程序指令,从而实现本发明的各个方面。
这里参照根据本发明实施例的方法、装置(系统)和计算机程序产品的流程图和/或框图描述了本发明的各个方面。应当理解,流程图和/或框图的每个方框以及流程图和/或框图中各方框的组合,都可以由计算机可读程序指令实现。
这些计算机可读程序指令可以提供给通用计算机、专用计算机或其它可编程数据处理装置的处理器,从而生产出一种机器,使得这些指令在通过计算机或其它可编程数据处理装置的处理器执行时,产生了实现流程图和/或框图中的一个或多个方框中规定的功能/动作的装置。也可以把这些计算机可读程序指令存储在计算机可读存储介质中,这些指令使得计算机、可编程数据处理装置和/或其他设备以特定方式工作,从而,存储有指令的计算机可读介质则包括一个制造品,其包括实现流程图和/或框图中的一个或多个方框中规定的功能/动作的各个方面的指令。
也可以把计算机可读程序指令加载到计算机、其它可编程数据处理装置、或其它设备上,使得在计算机、其它可编程数据处理装置或其它设备上执行一系列操作步骤,以产生计算机实现的过程,从而使得在计算机、其它可编程数据处理装置、或其它设备上执行的指令实现流程图和/或框图中的一个或多个方框中规定的功能/动作。
附图中的流程图和框图显示了根据本发明的多个实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段或指令的一部分,所述模块、程序段或指令的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个连续的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或动作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现
现在参照附图,具体地参照图1-2,其给出了其中可以实现说明性实施例的数据处理环境的示例图。应该理解的是,图1-2仅为示例性的,并不旨在表明或者暗含对其中可以实现不同实施例的环境的任何限制。可以对所描述的环境进行诸多修改。
图1描述了其中可以实现说明性实施例的数据处理系统的网络的图形表示。网络数据处理系统100为其中可以实现说明性实施例的计算机网络。网络数据处理系统100包含网络102,网络102为用于提供网络数据处理系统100内连接在一起的各种设备和计算机之间的通信链路的介质。网络102可以包括诸如有线、无线通信链路、或者光纤电缆的连接。
在所描述的示例中,服务器104和服务器106随存储单元108一起连接到网络102。另外,客户机110、112、以及114也连接到网络102。例如,客户机110、112、以及114可以为个人计算机或者网络计算机。在所描述的示例中,服务器104向客户机110、112、以及114提供诸如引导文件、操作系映射、以及应用的数据。客户机110、112、以及114为服务器104的客户机,并且可以通过网络102访问混合系统116,混合系统116包含适用于使用这一示例进一步加以描述的版本化域和非版本化域的数据结构、规则和定义。网络数据处理系统100可以包括未示出的额外的服务器、客户机、以及其它设备。
在所描述的示例中,网络数据处理系统100为具有表示使用传输控制协议/因特网协议(TCP/IP)协议组来互相进行通信的世界范围的网络和网关的集合的网络102的因特网。因特网的核心处是主节点或者主计算机之间的高速数据通信线的中枢,其由成千上万的对数据和消息进行路由的商业、政府、教育以及其它计算机系统组成。当然,也可以将网络数据处理系统100作为多个不同类型的网络加以实现,例如,该多个不同类型的网络诸如内联网(intranet)、局域网(LAN)、或者广域网(WAN)等。图1旨在作为一个示例,不构成对不同说明性实施例的体系架构上的限制。
参照图2,图2呈现了可操作用于本公开各种实施例的示例性数据处理系统的框图。在这一说明性示例中,数据处理系统200包括通信结构202,其提供了处理器单元204、内存206、永久存储器208、通信单元210、输入/输出(I/O)单元212、以及显示器214之间的通信。
处理器单元204用作执行可以被加载于内存206内的软件的指令。处理器单元204可以为一个或多个处理器的一组处理器,或者可以为一个多处理器内核,这取决于特定的实现。另外,也可以使用一个或多个异构处理器系统实现处理器单元204,其中在单个芯片上存在主处理器和若干次处理器。作为另一个说明性示例,处理器单元204可以为包含多个同种类型处理器的对称多处理器系统。
内存206和永久存储器208是存储设备216的示例。存储设备为任何一种能够临时地和/或永久地存储信息的硬件,例如该信息包括但不局限于数据、功能化形式程序代码、和/或其它适合的信息。例如,在这些示例中,内存206可以是随机存取存储器或者任何其它适合的易失或者非易失存储设备。永久存储器208可以取决于特定的实现呈各种形式。例如,永久存储器208可以包含一个或多个组件或者设备。例如,永久存储器208可以为硬驱动器、闪存、可重写光盘、可重写磁带、或者上述设备的某一组合。永久存储器208所使用的介质也可以是可拆卸的。例如,可以将可拆卸硬驱动器用于永久存储器208。
在这些示例中,通信单元210提供了与其它数据处理系统或者设备的通信。在这些示例中,通信单元210为网络接口卡。通信单元210可以通过使用物理和无线通信链路之一或者两者来提供通信。
输入/输出单元212允许与可以连接到数据处理系统200的其它设备进行数据的输入与输出。例如,输入/输出单元212可以提供用于通过键盘、鼠标、和/或某些其它合适的输入设备的用户输入的连接。另外,输入/输出单元212还可以向打印机发送输出。显示器214向用户提供了显示信息的机构。
可以将操作系统、应用和/或程序的计算机可执行形式或者计算机可读形式的指令设置在存储设备216中,存储设备216通过通信结构202与处理器单元204进行通信。在这些说明性示例中,指令以功能化形式存在于永久存储器208上。可以将这些指令加载于内存206,以由处理器单元204加以执行。处理器单元204可以使用计算机实现的指令执行不同实施例的过程,其中,可以将所述指令设置在诸如内存206的内存中。
将这些指令称为可以由处理器单元204中的处理器加以读取和执行的程序代码、计算机可用程序代码、或者计算机可读程序代码。可以将不同实施例中的程序代码装载在诸如内存206或者永久存储器208的不同的物理的或者有形的计算机可读存储介质中。
将程序代码218以功能化的形式设置在可以选择性可拆卸的计算机可读存储介质220中,并且可以将其加载于或者传送于数据处理系统200,以由处理器单元204加以执行。在这些示例中,程序代码218和计算机可读存储介质220形成计算机程序产品222。在一个示例中,计算机可读存储介质220可以呈有形的形式,例如,可插入或者放置在作为永久存储器208的一部分的驱动器或者其它设备中的光盘或者磁盘的形式,以转移到诸如作为永久存储器208的一部分的硬驱动器的存储设备上。就有形的形式而言,计算机可读存储介质220还可以呈永久存储器的形式,诸如呈连接到数据处理系统200的硬驱动器、拇指驱动器、或者闪存的形式。也将计算机可读存储介质220的有形的形式称为计算机可读存储介质或者计算机可读数据存储设备。在某些示例中,计算机可读存储介质220不可拆除。使用当前示例,程序代码218包含在图1的混合系统116的实现中的计算机实现的指令。
此外,可以通过至通信单元210的通信链路和/或通过至输入/输出单元212的连接将程序代码218从计算机可读存储介质220传送于数据处理系统200。在说明性的示例中,所述通信链路和/或连接可以为物理的或者无线的。
在某些说明性的示例中,可以通过网络从另一个设备或者数据处理系统将程序代码218下载于永久存储器208用于在数据处理系统200中使用。例如,可以通过网络将存储在服务器数据处理系统中计算机可读数据存储设备中的程序代码从服务器下载于数据处理系统200。提供程序代码218的数据处理系统可以为服务器计算机、客户机计算机、或者某些能够存储和传输程序代码218的其它设备。
使用图2的数据处理系统200作为一个示例,呈现了用于将版本化域和非版本化域之间的业务相互关联的计算机实现的过程。处理器单元204针对一组业务中的业务生成具有版本化域和非版本化域两者的属性的元数据,其中所述元数据与版本化域和非版本化域中所使用的该组业务相关联;处理器单元204使用版本化业务定义的具体版本来创建实例,其中,所述实例包含直接根据版本化业务定义创建的第一部分和根据非版本化业务定义创建的第二部分。
处理器单元204指定版本化域和非版本化域中业务的相应表示之间的链路,其中,所指定的链路定义了版本化域中一个业务的多个版本与非版本化域中同一业务的单个非版本化表示之间的关系;处理器单元204还响应于从版本化域或者非版本化域提供用于执行业务的规划、执行和更新实例中选择的一个的一组构想,从版本化域或者非版本化域接收业务的规划、执行和更新实例中所选择的那一个,其中,使用一组规则执行业务的规划、执行和更新实例中所选择的那一个;处理器单元204还将该业务定义的所有版本相关联到单个非版本化定义,其中,也将该单个非版本化定义的业务定义相关联到该业务定义的所有版本。
参照图3,图3呈现了可操作用于本公开各种实施例的版本化系统的框图。作为一个示例,图3以包含两个不同业务的定义版本和相关联的实例的版本化系统300的形式示出了图1的混合系统116的一部分。
美国专利申请公布US2012/0254828描述了提议的处理版本化和非版本化使用的组合的系统的示例,其中一种实现依赖于一个维持用于可能被部署于系统的每一个版本的所有数据模型的合集的单个聚合模型的创建。基于所服务的设备版本,该单个聚合模型进而被用于部署和运行时间期间来调整系统的行为。在运行时间,系统使用该聚合模型在数据的单个版本上操作但知道如何与数据的单个版本协作。然而,所公开的系统不维持与相同数据的非版本化实例的关系。因此,该聚合模型仅仅是与被部署于系统的所有版本一般性协作的一种方式。
与这一引用的专利申请公布相比,本公开的实施例定义了一种使用唯一标识符将模型/实例数据的版本相关联到一个非版本化模型/实例数据的方式。本公开的实施例未使用第三模型维持这一关系。在非版本化域和版本化域之间定义隐含的关系,每一个由业务定义(表示设计或者开发时间)和实例数据(表示运行时间)两者组成。由系统并行地维持这些域。本公开的实施例还定义了适用于在每一个域上在设计时间修改定义以及在运行时间操纵实例数据的规则。
在设计(开发)时间,对模型定义(版本化的和非版本化的)进行关联操作,以确保有关版本化域的所有定义与非版本化域中的相应定义兼容。换句话说,确保能够按同样的方式表示相应于每一个域的实例数据。本公开的实施例基于对版本化定义的相应的改变定义了用于将改变应用于非版本化定义的规则。
在运行时间,本公开的实施例定义了一种将版本化和非版本化实例数据关联的方法,其由相应的版本化和非版本化定义加以支持,两者并列共存,用于读取和写入版本化和非版本化实例数据。即,本公开的实施例定义了用于读取和写入版本化实例数据的构想以及另一个用于读取和写入非版本化实例数据的构想。另外,本公开的实施例还定义了如何将应用于版本化数据的更新传递到非版本化数据的规则,反之亦然。最后,本公开的实施例定义了如何定义约束以及当版本化或者非版本化实例数据更新时如何应用约束。
把案例定义为信息与活动的集合。将相应的活动捕获到业务流程定义中,并且将信息以及它们的特性作为文档捕获到案例文件夹中。
鉴于以上陈述的原因,对各业务流程版本化。业务流程需要快速演变,而且不应破坏现存实例。因此,通过版本进行隔离可使得应用易于运行。另一方面,涉及案例的信息是长期的。按文件夹或者文档类的形式将这一信息的所有实例与其结构的单个定义相关联。
本公开的实施例实现了具有版本化和非版本化两者属性的联合模型。版本化系统能够捕获业务的定义随着时间的演变。通常,版本化系统捕获这些版本的时间(chronological)次序。因此,作为演变定义的机制,但更重要的是,作为将与某一特定的先前定义相关联的实例迁移到另一个后来定义的结构中的方式,版本化系统固有地提供了比较和合并从一个版本到另一个版本的改变的必要元件。尽管版本化系统通常捕获版本的时间次序,但也可以在不考虑版本的时间次序的情况下进行属性的合并,因为比较和合并从一个版本到另一个版本的改变并不依赖于时间次序。
除了元数据之外,如以上所描述的,版本化系统还为业务的定义的实例提供了隔离。即,系统可以对业务的某一特定的版本进行实例化,并且使所实例化的业务的该特定的版本与同一业务的其它版本的实例共存。例如,这一隔离能够使同一索赔业务流程的两个版本在同一系统中运行,而不会互相干扰。可以再次规划和执行新的版本,因通过隔离功能所提供的独立性而不会对系统中现存的实例造成风险。
在图3的缩写中,DID代表定义标识符,V代表版本标识符,而IID代表实例标识符。示出了包含版本化定义302和版本化实例304的存储设备(例如,图1的存储单元108)作为独立的单元,然而,可以容易地将定义版本和相关联的实例存储在同一存储设备中,例如存储在关系数据库中。
包括版本1-3的与第一定义标识符相关联的版本化定义被示为标识符DID 1 V1306、DID 1 V2 308以及DID 1 V3 310。以类似的方式,与第二定义标识符相关联的、也包括多个版本1-3的定义被示为标识符DID 2 V1 312、DID 2 V2 314以及DID 2 V3 316。
示例中的实例被定义为实例标识符IID 1 318、IID 2 320、IID 3 322、以及IID 4324定义。实例是根据某一具体定义版本创建的。在当前示例中,分别使用与标识符DID 1V2 308、DID 1 V3 310以及DID 1 V2 308相关联的具体定义版本创建与标识符IID 1 318、IID 2 320、IID 3 322相关联的实例,同时使用与标识符DID 2 V3 316相关联的具体定义版本创建与标识符IID 4 324相关联的实例。在图中使用虚线描述特定定义版本和使用相应定义版本所创建的实例之间的关联。
参照图4,图4呈现了在可操作用于本公开各种实施例的在版本化系统中创建一个新的版本的过程的流程图。图4以高层次地示出了以图3的版本化系统300的形式使用图1的混合系统116的一部分的过程。
当创建一个新的版本时,需要过程400中所描述的以下操作来创建业务的定义的新的版本。具有创建新的版本的能力意味着系统也具有维持版本之间的关系的能力。
过程400开始(步骤402),使用版本化系统的最新版本n,例如图3的版本化系统300(步骤404)。接收对版本化定义的版本n的改变(步骤406)。将所接收的改变应用于版本化系统的最新版本n,以创建版本化定义的版本n+1(步骤408)。所产生的输出呈版本化定义的版本n+1的形式(步骤410),此后过程终止(步骤412)。
最终,版本化系统起动实例迁移。实例迁移要求两个版本的比较,即诸如版本n的源版本和诸如版本n+1的目标版本的比较,以确定如何对数据变形(morph)以将源版本的实例适配用于使用新(目标)的定义版本的执行。取决于版本之间改变的类型,实例迁移通常是困难的,有时是不可能的。
参照图5,图5呈现了可操作用于本公开各种实施例的非版本化系统的框图。在一个示例中,图5以包含两个不同业务的非版本化定义和相关联的实例的非版本化系统500的形式示出了图1的混合系统116的一部分。
因此,尽管版本化可以使能频繁的部署和演变而不影响执行,但版本化所缺乏的是,维持由产自于各种版本的实例集合所捕获的数据的联合视图所需要的。相对比,非版本化系统简单得多。在非版本化系统中,仅存在业务的一个定义。由于对定义引入了改变,所以该定义随时间演变。然而,也不存在检查点或者版本的概念,其中检查点或者版本将允许用户看到业务随时间的不断进展。在非版本化系统中,业务的所有实例与单个定义相关联。非版本化系统500示出了非版本化系统的结构。
在图5的缩写中,DID代表定义标识符,而IID代表实例标识符。示出了包含非版本化定义502和实例504的存储设备(例如,图1的存储单元108)作为独立的单元,然而,可以容易地把定义版本和相关联的实例存储在同一存储设备中,例如存储在关系数据库中。
与图3中所示的命名约定相类似,与非版本化定义502的第一定义和第二定义相关联的非版本化定义被示为DID 1 506和DID 2 508。然而,在这一情况下,定义标识符中不包括版本。
非版本化实例504的实例被定义为实例标识符IID 1 510、IID 2 512、IID 3 514、以及IID 4 516。实例是根据某一具体定义创建的。在当前示例中,使用与标识符DID 1 506相关联的具体定义创建与非版本化系统500的标识符IID 1 510、IID 2 512、IID 3 514相关联的实例,而使用与标识符DID 2 508相关联的具体定义创建与标识符IID 4 516相关联的实例。在图中使用虚线描述了特定定义版本和使用相应定义版本所创建的实例之间的关联。
参照图6,图6呈现了在可操作用于本公开各种实施例的非版本化系统中改变一个定义的过程的流程图。图6以高层次地示出了以图5的非版本化系统500的形式使用图1的混合系统116的一部分的非版本化业务定义的演变过程。
当改变业务定义时,需要过程600中所描述的以下操作来创建业务的改变的定义。具有改变非版本化定义的能力意味着系统也具有维持更新的定义中的改变的能力。
过程600开始(步骤602),使用非版本化系统中的业务的非版本化定义,诸如图5的非版本化系统500(步骤604)。接收对非版本化业务定义的改变(步骤606)。将所接收的改变应用于非版本化系统的非版本化业务定义,并将其保存至与原始非版本化业务定义相同的记录(步骤608)。所产生的输出呈原始非版本化业务定义的更新的业务定义的形式(步骤610),此后过程600终止(步骤612)。
其简单性在于非版本化系统不需要管理业务版本之间的关系。简单性还在于所有实例由相同的定义支持,因此不需要各种各样的显式(explicit)的实例迁移。然而,这种简单性是有代价的。
非版本化系统向可以对业务定义进行的更新的类型施加限制。之所以需要限制是因为所有现存的实例必须与相应的更新兼容。可以将限制视为其中迁移必须总是成功、且其结果是限制进行可能的更新的所有实例的隐式(implicit)的强迫型实例迁移。与其中可以容易地改变定义的版本化系统不同,非版本化系统对于所准许的定义改变具有严格的规则。然而,当不遵循这些规则时,需要用户干预以修复被破坏的或者不兼容的实例。
本公开的实施例实现了一种使用了版本化和非版本化两种途径来定义混合系统的方法,例如,图7中所述的混合系统700,其展示了两种特性的优点。这可以通过建立版本化和非版本化定义之间的关系、以及对如何使用这些关系和如何随业务成熟而演变加以制约的规则来实现。
参照图7,图7呈现了可操作用于本公开各种实施例的混合系统的框图。作为一个示例,图7以包含呈版本化和非版本化形式的业务定义和相关联的两个不同的业务的相应的实例的混合系统700的形式示出了图1的混合系统116。
示出了版本化定义302和实例304作为独立的单元,然而,可以容易地把定义版本和相关联的实例存储在与非版本化定义502和实例504相同的存储设备中,例如存储在关系数据库中。
与图3的版本化系统300中一样,包括版本1-3的与第一版本化定义标识符相关联的业务定义被示为标识符DID 1 V1 306、DID 1 V2 308以及DID 1 V3 310。以类似的方式,也包括多个版本1-3的与第二版本化定义标识符相关联的业务定义被示为标识符DID 2 V1312、DID 2 V2 314以及DID 2 V3 316
如先前所陈述的,实例是根据某一具体定义版本创建的。在这一示例中,将实例定义为实例标识符IID 1 318、IID 2 320、IID 3 322、以及IID 4 324。分别使用与标识符DID1 V2 308、DID 1 V3 310以及DID 1 V2 308相关联的具体定义版本创建该示例的与标识符IID 1 318、IID 2 320、IID 3 322相关联的实例,而使用与标识符DID 2 V3 316相关联的具体定义版本创建与标识符IID 4 324相关联的实例。
与图3中所示的命名约定相类似,与非版本化定义502的第一定义和第二定义相关联的非版本化定义被示为标识符DID 1 506和DID 2 508。然而,在非版本化系统500的情况下,定义标识符中不包括版本。
与系统的版本化的部分相类似,实例是根据某一具体定义而不是根据特定版本创建的。在本示例中,将实例,即非版本化实例504定义为与标识符IID 1 510、IID 2 512、IID3 514、以及IID 4 516相关联的实例。使用与标识符DID 1 506相关联的具体定义创建与非版本化系统500的标识符IID 1 510、IID 2 512、IID 3 514相关联的实例,而使用与标识符DID 2 508相关联的具体定义创建与标识符IID 4 516相关联的实例。
与版本化定义302的标识符DID 1 V1 306、DID 1 V2 308以及DID 1 V3 310相关联的业务定义具有与非版本化定义DID 1 506确定的关系并且与非版本化定义DID 1 506相互关联。类似地,与标识符DID 2 V1 312、DID 2 V2 314以及DID 2 V3 316相关联的业务定义具有与非版本化定义DID 2 508标识的关系并且与非版本化定义DID 2 508相互关联。
与和标识符IID 1 318、IID 2 320、IID 3 322、以及IID 4 324相关联的版本化业务定义302相关联的实例304的实例标识符也具有与非版本化实例确定的关系并且与非版本化实例相互关联。在当前示例中,混合系统700的版本化部分的实例标识符IID 1 318、IID 2 320、IID 3 322、以及IID 4 324与实例504相互关联,其中实例504与和混合系统700的相应非版本化部分的标识符IID 1 510、IID 2 512、IID 3 514、以及IID 4 516相关联的非版本化业务定义502相关联。
显然,在当前示例中,在两个关联层面上维持版本化和非版本化域之间的相互关联,第一层面处于业务层面(定义),第二层面处于属性层面(实例)。这种相互关联通过使用唯一标识符由业务的相关联加以捕获,并且适用于定义和实例。
使用简单的唯一标识符(UID)实现业务对业务关系以及两个域中的相关业务的相互关联,该简单唯一标识符包括由特定定义的所有版本以及相应的非版本化定义共享的不变的分量或者片段(fragment)。当用于版本化域中时,按以下形式将UID表示为:<公共UID>_<版本ID>,并且当用于版本化域中时,将其表示为:<公共UID>。
系统可以使用<公共UID>片段容易地识别同一业务的所有版本以及相关联的单个非版本化定义。在业务的整个生命期UID是不可变的,并且当第一次创建该业务时被分配而且永不改变。如这一示例中所示,DID用于识别版本化定义的业务定义以及相应的非版本化定义。
参照图8,图8呈现了可操作用于本公开各种实施例的混合系统的框图。作为一个示例,图8以包含呈版本化和非版本化形式的业务定义和相关联的包括属性对属性关系的业务的两个不同版本的相应实例的混合系统800的形式说明了图1的混合系统116。在混合系统800的示例中,示出了从业务的各种版本到单个非版本化定义的产生的关系。在图8的缩写中,DID表示定义标识符;V表示版本标识符;而AID表示属性标识符以及值A、B、C表示不可变方面值。
混合系统800示出了图7的混合系统700的定义部分,其包含具有与非版本化定义502确定的关系并且与非版本化定义502相互关联的版本化定义302。
一旦已经建立了版本化和非版本化业务之间的关系,则通过将与对业务关系所使用的相同的原理应用于目标的属性,来实现属性对属性的关系和相互关联。与先前在业务对业务的关系和相互关联中的识别一样,现在由UID识别属性。在这一情况下,UID现在包括根据属性的各方面产生的片段,当该属性改变时,使得与该属性相关联的实例数据与非版本化域中现存实例不兼容。因此,在定义的生命期中,这些方面视为不可变的。当在版本化域中改变这些方面时,该改变导致系统将属性识别为向相应父级(parent)定义的一个新的添加(与现存定义的更新相反)。由版本化属性和非版本化属性共享整个UID。将UID的形式表示为<UID>_<不可变方面1值>_<...>_<不可变方面n值>。<UID>片段可以由系统赋值,或者可以是不可变方面的值。
例如,属性1具有由A、B、C以及D构成的4个方面。在这4个方面中,改变2个(B和C)导致与该属性相关联的现存数据不兼容。其结果是,可以将针对属性1的UID表示为<UID>_<B的值>_<C的值>。这一表达式确保:当在业务的新的版本中改变方面B或者方面C时,相应的非版本化业务接收由<UID>_<B'的值>_<C'的值>所识别的新的属性。
根据进一步的示例,案例特性包括多个方面,其中的某些可以是:名称、类型、显示名称、基数以及描述。由于先前所陈述的原因,可以在版本化域中更新这些方面中的每一个方面而不会有破坏现存实例的风险。然而,必须也将同样的改变应用于非版本化定义。因此,该改变不会将该特性定义变形成现存实例数据不再兼容的程度。例如,使用以下方面值定义特性1:名称:特性1、显示名称:特性1、类型:字符串、基数:多值、描述:这是特性1。改变显示名称或者描述不会给数据带来负担。无论这些属性如何,均可以通过特性定义继续描述字符串值的列表。
然而,在这一示例中,改变特性的类型或者基数的方面值将引起非版本化定义中的不兼容性。例如,当将类型的方面值从字符串改变为整数时,系统不再能够保证将所有现存字符串实例数据能够表示为整数。同样,当改变基数的方面值时,不能够在没有数据损失或者非自然变形的情况下将列表转换为单个值。其结果是,类型和基数视为不可变的,并且必须在生成特性UID的过程中使用。
对于该示例,可以将产生的UID定义如下,假设<UID>分量为特性名称,在改变之前的第一情况下为:特性1_字符串_多个,且在改变之后的第二情况下为:特性1_整数_多个、或者特性1_字符串_单个、或者特性1_整数_单个,其中改变了类型、基数或者两者。
在混合系统800的示例中,示出了从被识别为DID 1 V1 306和DID 1 V2 308的业务定义的各种版本到单个非版本化定义DID 1 506之间的产生的关系。版本化和非版本化业务定义之间的相互关联还包含属性关系。
对于定义DID 1 V1 306,如使用虚线所示的,将属性标识符AID1_A_B 802与DID 1V2 308中指示的改变的值和属性标识符AID1_A’_B 806关联。之所以属性标识符AID1_A_B802和属性标识符AID1_A’_B 806产生关系,是由于因改变了不可变特性A的值(改变为A’)导致从版本至版本的演变,这导致了在非版本化定义DID 1 506中创建新特性AID1_A’_B806。当版本演变时,使用这种识别来维持数据的兼容性。
另外,将AID1_A_B 802、AID2_B_C 804与非版本化定义DID 1 502的DID 1 506中的ID1_A_B 802、AID2_B_C 804关联。
对于定义DID 1 V2 308,将属性标识符AID2_B_C 804和属性标识符AID1_A’_B806中所指示的改变的值分别与非版本化定义502的DID 1 506中的AID2_B_C 804和属性标识符AID1_A’_B 806中所指示的改变的值关联。
对于实例创建,总是根据版本化业务定义的具体版本创建实例,但形成具有两个部分的实例:一个根据版本化业务定义直接创建的部分以及另一个根据非版本化业务定义创建的部分。因为两个部分共享公共的ID属性,因此能够使用所述另一个部分查找一个部分。
可以将一个实例从一个版本化定义迁移到另一个版本。在这一情况下,仅需要以与如先前针对版本化系统所描述的同样的方式迁移根据版本化定义所创建的实例部分。
业务定义发生演变,并且要求实施某些规则以确保所有非版本化实例的兼容性。使用当更新数据时应用于实例的验证规则的定义来提供实施的基础。当创建定义的新的版本时,通过系统传递业务定义的更新,并且也更新相应的非版本化定义。
业务定义的属性可以具有所定义的验证规则,例如,一个规则可以表示为某一数值属性不准许负值。仅针对版本化业务定义来定义验证规则,因为它们随时间演变。下一部分中描述了实例的实施。
参照图9,图9呈现了在可操作用于本公开各种实施例的混合系统的非版本化系统部分中创建新的定义版本的流程图。作为一个示例,图9以包括其中创建了定义的非版本化系统的图8的混合系统800的一部分的形式示出了图1的混合系统116中所使用的一个过程。
过程900开始(步骤902),接收版本化定义的最新版本n(步骤904)以及针对版本化定义的版本1到n所映射的非版本化定义(步骤906)。还接收对版本化定义的版本n的改变(步骤908)。
过程900创建了版本化定义的版本n+1(步骤910)。
对业务定义的更新仅在版本化域中进行。当用户改变定义的最新版本n时,利用该改变创建新的版本n+1。增量(deltas)可以是添加、移除以及改变。对于每一个增量,必须进行向非版本化业务定义的相应的映射。
属性的移除不会导致对非版本化定义的改变,因为版本化定义的先前版本仍在使用该属性,因此仍然需要该属性。属性的添加导致属性也被添加于具有相同方面的非版本化定义。一个例外是一种少见的情况:其中具有相同方面的特性先前存在于低于版本n的版本化定义上。因此,属性的再次引入不会导致非版本化业务定义的改变。
取决于改变了什么,可以将属性的改变同步于非版本化定义:当仅改变属性的验证规则时,不对非版本化业务定义进行更新,因为属性改变仅保存在版本化业务定义中;当改变一个方面并且可以以兼容的方式向非版本化业务定义应用该改变时,则改变非版本化定义中的属性。这主要适用于与数据非相关的改变,例如,显示名称或者描述的改变是可接受的,其中非版本化业务定义仅知道最新定义;以及改变一个方面并且不可以以兼容的方式向非版本化业务定义应用该改变时,则遵循相关联的验证规则中所定义的规则将新的属性添加于非版本化定义。这主要适用于与数据相关的改变,例如,属性的类型从数字到日期的、不能够被转换的改变。
过程900将版本化定义的改变映射于非版本化定义(步骤912)。过程900创建了版本化定义的版本n+1(步骤914),并且还创建了针对版本化定义的版本1到n+1所映射的非版本化定义(步骤916),此后过程900终止(步骤918)。
参照图10,图10呈现了在可操作用于本公开各种实施例的混合系统中改变根据版本化定义所创建的实例部分的特性的流程图。作为一个示例,过程1000以包含其中在版本化定义的实例部分中改变特性的版本化系统的图8的混合系统800的一部分的形式示出了图1的混合系统116中所使用的过程。
过程1000开始(步骤1002),接收根据版本化定义的版本n所创建的实例(步骤1004),以及接收根据非版本化定义所创建的实例(步骤1006)。过程1000还接收对根据版本化定义所创建的实例的特性的改变(步骤1008)。
过程1000对针对版本化定义的版本n的改变进行验证(步骤1010)。响应于验证的失败,过程1000回滚(roll back)该改变(步骤1022),此后终止(步骤1024)。响应于验证的成功,过程1000保存根据版本化定义所创建的实例部分(步骤1012)。过程1000查找根据非版本化定义所创建的实例部分(步骤1024)。过程1000将改变映射于根据非版本化定义所创建的实例部分(步骤1016)。
过程1000根据版本化定义的版本n创建更新的实例(步骤1018)。过程1000还根据非版本化定义创建更新的实例(步骤1020)。此后过程1000终止(步骤1024)。
使用以下两个构想之一执行实例数据更新:一个针对版本化域的构想和一个针对相应非版本化域的构想。取决于客户机正在其上进行操作的域,客户机可以尝试利用相应的版本化或者非版本化定义的角度与业务的实例进行交互。
版本化构想仅对定义在版本化定义的具体版本上的那些属性具有访问权。另外,版本化构想直接知晓针对具体定义版本的属性所定义的验证规则。可以针对该定义版本直接验证对版本化构想的更新。当确定更新有效时,对非版本化构想的相应的属性进行定位并将其保存在同一交易中,以保持定义的版本化以及非版本化实例的同步化。
版本化构想主要用于与定义的快速演变的分量进行交互。例如,短期的活动仅看到具有针对相应的定义版本所定义的验证规则的属性,而同步地维持关于长期内容的数据。
参照图11,图11呈现了在可操作用于本公开各种实施例的混合系统中改变根据非版本化定义所创建的实例部分的特性的流程图。作为一个示例,过程1100以包含其中在非版本化定义的实例部分中改变特性的非版本化系统的图8的混合系统800的一部分的形式示出了图1的混合系统116中所使用的过程。
过程1100开始(步骤1102),接收根据版本化定义的版本n所创建的实例(步骤1104),以及接收根据非版本化定义所创建的实例(步骤1106)。过程1100还接收对根据非版本化定义所创建的实例的特性的改变(步骤1108)。过程1100查找根据版本化定义所创建的实例部分(步骤1110)。过程1000将改变映射于根据版本化定义所创建的实例部分(步骤1112)。
过程1100对针对版本化定义的版本n的改变进行验证(步骤1114)。响应于验证的失败,过程1100回滚该改变(步骤1122),此后终止(步骤1124)。响应于验证的成功,过程1100保存根据非版本化定义所创建的实例部分(步骤1116)。
过程1100根据版本化定义的版本n创建更新的实例(步骤1118)。过程1100还根据非版本化定义创建更新的实例(步骤1120)。此后过程1100终止(步骤1124)。
使用非版本化构想有效地揭示出版本化定义的所有版本中所定义的属性,因为在版本化定义的所有版本中所定义的属性全部被映射于非版本化定义中相应的属性。然而,非版本化定义并不知道验证规则。当通过非版本化构想进行改变时,查找相应的版本化构想。通过将通过非版本化构想进行的改变映射于相应的版本化构想,可以检查相应的由具体版本化定义所定义的验证规则。当失败时,回滚整个更新,否则将对版本化实例以及非版本化实例两者的更新保存在一个交易中。
非版本化构想主要由定义的较长期的部分加以使用,该部分包括内容。因此,主要关注内容的用户可以使用非版本化构想看到使得用户能够看到仅针对版本化定义的几个版本所定义的属性的所有属性。在实例更新时,同步回至版本化实例部分,包括对针对版本化定义的改变的验证,仅将有效的改变应用于由相应定义的版本所定义的实例。
参照图12,图12呈现了在可操作用于本公开各种实施例的混合系统中将版本化域和非版本化域之间的业务相互关联的过程的流程图。作为一个示例,过程1200以图8的混合系统800的一部分的形式示出了图1的混合系统116中所使用的一个过程。
过程1200开始(步骤1202),针对一组业务中的业务生成具有版本化域和非版本化域两者的属性的元数据,其中所述元数据与版本化域和非版本化域中所使用的该组业务相关联(步骤1204)。过程1200使用版本化业务定义的具体版本来创建实例,其中,所述实例包含直接根据版本化业务定义创建的第一部分和根据非版本化业务定义创建的第二部分(步骤1206)。过程1200指定版本化域和非版本化域中业务的相应表示之间的链路,其中,所指定的链路定义了版本化域中一个业务的多个版本与非版本化域中同一业务的单个非版本化表示之间的关系(步骤1208)。过程1200响应于从版本化域或者非版本化域提供用于执行业务的规划、执行和更新实例中选择的一个的一组构想,从版本化域或者非版本化域接收业务的规划、执行和更新实例中所选择的那一个,其中,使用一组规则执行业务的规划、执行和更新实例中所选择的那一个(步骤1210)。过程1200将该业务定义的所有版本相关联到单个非版本化定义,其中,也将该单个非版本化定义的业务定义相关联到该业务定义的所有版本(步骤1212),此后过程1200终止(步骤1214)。
因此,在说明性的实施例中呈现了一种用于将版本化域和非版本化域之间的业务相互关联的计算机实现的方法。所述计算机实现的方法针对一组业务中的业务生成具有版本化域和非版本化域两者的属性的元数据,其中所述元数据与版本化域和非版本化域中所使用的该组业务相关联,并且使用版本化业务定义的具体版本来创建实例,其中,所述实例包含直接根据版本化业务定义创建的第一部分和根据非版本化业务定义创建的第二部分;
所述方法还指定版本化域和非版本化域中业务的相应表示之间的链路,其中,所指定的链路定义了版本化域中一个业务的多个版本与非版本化域中同一业务的单个非版本化表示之间的关系。
从版本化域或者非版本化域提供用于执行对业务的规划、执行和更新实例中选择的一个的一组构想,其中使用一组规则执行对业务的规划、执行和更新实例中所选择的那一个。将该业务定义的所有版本相关联到单个非版本化定义,其中,也将该单个非版本化定义的业务定义相关联到该业务定义的所有版本。
说明性的实施例未定义如何捕获业务的版本,或者如何定义另一个的单一的版本。这些概念很好理解,并且目前常常在软件系统中使用。更确切地讲,如果在两个域中表示同一业务,而且需要按两种形式加以访问时,该说明性实施例建议了如何链路两者的方法。
说明性实施例定义了业务的多个版本与同一业务的单个非版本化表示之间的关系,并且利用这些关系,以使双方作为一个运作。假设两个系统捕获业务定义本身(版本化的和非版本化的),该说明性实施例描述了一种方法:将业务定义的所有版本相关联到其单个非版本化的表示,反之亦然;将特定业务定义版本的属性、或特性、定义相关联到非版本化表示中相同的属性、或特性、定义,反之亦然;定义诸如针对版本化业务定义的添加、更新以及删除的编辑语义(semantic)以及对应用于相应非版本化业务定义的编辑语义的转换;取决于在所定义的版本化构想或非版本化构想上执行操作,而定义如何对业务的实例进行读取和更新操作;定义如何在作为一个的版本化和非版本化业务的实例之间同步化数据更新,或者如何在另一方进行更新;当通过版本化或者非版本化构想更新业务实例时,定义如何定义和评估属性、或特性、验证规则。
说明性实施例通常地采用版本化和非版本化域的最佳属性,并且提供了一种当需要时在此处被称为混合系统的单个方案中利用两者之一的机制。对于使用了版本化途径的系统,由于需要将所有版本统一成公共的概念,因此联合信息困难的多。对于使用了非版本化途径的系统,由于业务必须总是向后兼容并且对于元数据中的更新必须确保现存实例依然有效,因此演变是困难的。
使用该说明性实施例所建议的混合途径,使得系统的定义能够可以通常以版本化(业务流程的演变)和非版本化(历史业务流数据的统一)运作,而无需过多额外的努力。
在另一个说明性实施例中,一种用于将版本化域中定义和实例化的业务相关联到非版本化域方法,使用唯一标识符(UID)创建版本化域和非版本化域中的相关业务之间的相互关联,该UID包括由定义的所有版本以及非版本化定义共享的不变的分量,其中,以第一形式将UID表示为版本化的:<公共UID>_<版本ID>以及以第二形式将UID表示为非版本化的:<公共UID>,其中,系统使用<公共UID>片段识别同一业务的所有版本以及相关联的单个非版本化定义,并且其中,在相关联的业务的整个生命期中UID是不可变的;根据各方面生成属性,当该属性改变时,使与该属性相关联的实例数据与非版本化域中的现存实例不兼容,其中,具体的方面被视为在定义的生命期中是不可变的,并且当在版本化域中改变这些具体的方面时,所述改变导致系统将该属性识别为对父级定义的全新的添加,其中,由版本化属性和非版本化属性两者共享整个UID,并且以<UID>_<不可变方面1值>_<...>_<不可变方面n值>的形式表示;使用版本化业务定义的具体版本创建一个实例,其中,所述实例包含直接根据版本化业务定义创建的第一部分和根据非版本化业务定义创建的第二部分;更新版本化域中的业务定义,其中,对业务定义的最新版本n的用户改变创建包含该用户改变的新的版本n+1,其中,该用户改变为添加、移除以及修改之一,并且对于每一个用户改变,进行相应的到非版本化业务定义的映射,以同步非版本化业务定义,其中:响应于与业务定义的属性相关联的该组验证规则中的一个验证规则的改变,不对非版本化业务定义进行更新;响应于可以以兼容的方式应用于非版本化业务定义的一个方面改变,对非版本化定义中的该属性改变;以及响应于不可以以兼容的方式应用于非版本化业务定义的一个方面改变,使用与版本化业务定义的属性相关联的该组预定的验证规则向非版本化定义添加新的属性;选择版本化构想和非版本化构想之一,以更新实例数据;响应于对版本化构想的选择,仅访问在版本化定义的具体版本上所定义的那些属性以及针对版本化定义的该具体版本的属性所定义的该组验证规则;验证该构想上直接针对版本化定义的具体版本的更新;响应于更新的有效,查找非版本化构想的相应的属性,然后将其保存在同一交易中,以维持该定义的版本化实例和非版本化实例之间的同步;响应于对非版本化构想的选择,揭示出在版本化定义的所有版本中所定义的属性,所述版本化定义的所有版本中所定义的属性被映射于非版本化定义中相应的属性;响应于通过非版本化构想进行的改变,在相应的版本化构想中进行查找,其中,将所述改变映射于该相应的版本化构想,并且检查该组预定的验证规则中由具体版本化定义所定义的相应的验证规则;响应于更新的成功,将对版本化实例以及非版本化实例的改变保存在单个交易中;以及响应于更新的失败,回滚所述更新。
各图中的流程图与框图说明了根据本发明各种实施例的系统、方法、以及计算机程序产品的可能的实现的架构、功能、以及操作。就此而言,所述流程图与框图中的每一个框可以代表包含用于实现指定的逻辑功能的一个或多个可执行指令的模块、程序段、或者代码部分。应该加以注意的是,在某些可选的实现中,框中所提及的功能可以不按图中所提及的次序发生。例如,实际上,取决于所涉及的功能,可以基本并行地执行相继描述的两个框,或者有时可以反序执行这些框。还应该加以注意的是,可以通过执行指定功能或者动作的专用的基于硬件的系统或者专用硬件与计算机指令的组合,来实现框图和/或流程图说明的每一个框、以及框图和/或流程图说明中框的组合。
以下权利要求中的所有机制或者步骤以及功能元件的相应的结构、材料、动作、以及等价物旨在包括用于与如具体请求保护的其它请求保护的元件相结合地执行功能的任何结构、材料或者动作。已经出于说明和描述的目的呈现了本发明的描述,但其不旨在以所公开的形式对本发明进行穷举或者限制。在不脱离本发明的范围和精神的情况下,对本领域普通技术人员来说诸多的修改与变型是明显的。实施例的选择与描述旨在最好地解释本发明的原理和实际的应用,并且使本领域的其他普通技术人员能够针对具有适合于所预期的特定应用的各种修改的各种实施例来理解本发明。
本发明可以以全部硬件实施例、全部软件实施例或者包含硬件与软件元素的实施例的形式。在一个优选实施例中,以软件实现本发明,其包括但不局限于固件、驻留软件、微代码、以及本领域技术人员公认的其它软件介质。
特别需要加以注意的是,尽管已经在全功能数据处理系统的上下文中描述了本发明,然而本领域普通技术人员将理解的是,本发明的各个过程能够以计算机可读数据存储设备的形式加以分配,所述计算机可读数据存储设备具有以各种形式存储在其上的计算机可执行指令。计算机可读数据存储设备的实例包括诸如软盘、硬盘驱动器、RAM、CD-ROM、DVD-ROM的可记录型介质。计算机可执行指令可以呈在特定的数据处理系统中针对实际使用对其译码的编码格式的形式。
适合于存储和/或执行包含程序代码的计算机可执行指令的数据处理系统将包括直接或者通过系统总线间接耦接于内存元件的一个或多个处理器。内存元件可以包括程序代码的实际执行期间所使用的本地内存、大容量存储器、以及高速缓冲存储器,其至少为某些程序代码提供了临时存储以减少执行期间必须从大容量存储器检索代码的次数。
可以直接或者通过介入I/O控制器将输入/输出、或I/O设备(包括,但不局限于键盘、显示器、定位设备等)耦合于系统。
也可以将网络适配器耦合于系统,以使数据处理系统能够通过介入私有或者公共网络耦合于其它数据处理系统或者远程打印机或者存储设备。调制解调器、电缆调制解调器、以及Ethernet卡仅为当前可用类型的网络适配器中的几个。
Claims (17)
1.一种用于将版本化域和非版本化域之间的业务相互关联的计算机实现的方法,包括:
针对一组业务中的业务生成具有版本化域和非版本化域两者的属性的元数据,其中所述元数据与版本化域和非版本化域中所使用的该组业务相关联;
使用版本化业务定义的具体版本来创建实例,其中,所述实例包含直接根据版本化业务定义创建的第一部分和根据非版本化业务定义创建的第二部分;
指定版本化域和非版本化域中业务的相应表示之间的链路,其中,所指定的链路定义了版本化域中一个业务的多个版本与非版本化域中同一业务的单个非版本化表示之间的关系;
响应于从版本化域或者非版本化域提供用于执行业务的规划、执行和更新实例中选择的一个的一组构想,从版本化域或者非版本化域接收业务的规划、执行和更新实例中所选择的那一个,其中,使用一组预定的验证规则执行业务的规划、执行和更新实例中所选择的那一个;以及
将该业务定义的所有版本相关联到单个非版本化定义,其中,也将该单个非版本化定义的业务定义相关联到该业务定义的所有版本;
其中,响应于提供用于执行业务的规划、执行和更新实例中选择的一个的一组构想还包括:
接收版本化构想和非版本化构想的选择之一,以更新实例数据;
响应于接收对版本化构想的选择,仅访问在版本化定义的具体版本上所定义的那些属性以及针对版本化定义的该具体版本的属性的一组预定的验证规则;
验证该构想上直接针对版本化定义的具体版本的更新;
响应于更新的有效,查找非版本化构想的相应的属性,然后将其保存在同一交易中,以维持该定义的版本化实例和非版本化实例之间的同步;
响应于接收对非版本化构想的选择,揭示出在版本化定义的所有版本中所定义的属性,所述版本化定义的所有版本中所定义的属性被映射于非版本化定义中相应的属性;
响应于通过非版本化构想进行的改变,在相应的版本化构想中进行查找,其中,将所述改变映射于该相应的版本化构想,并且检查该组预定的验证规则中由具体版本化定义所定义的相应的验证规则;
响应于更新的成功,将对版本化实例以及非版本化实例的改变保存在单个交易中;以及
响应于更新的失败,回滚所述改变。
2.根据权利要求1所述的方法,其中,生成元数据还包括:
向包含由版本化定义的所有版本以及非版本化定义共享的不变的分量的业务分配唯一标识符(UID),其中,以第一形式将UID表示为版本化的:<公共UID>_<版本ID>以及以第二形式将UID表示为非版本化的:<公共UID>,其中,系统使用<公共UID>片段识别同一业务的所有版本以及相关联的单个非版本化定义,并且其中,在相关联的业务的整个生命期中UID是不可变的;以及
根据各方面生成属性,当该属性改变时,使与该属性相关联的实例数据与非版本化域中的现存实例不兼容,其中,具体的方面被视为在定义的生命期中是不可变的,并且当在版本化域中改变这些具体的方面时,所述改变导致系统将该属性识别为对父级定义的全新的添加,其中,由版本化属性和非版本化属性两者共享整个UID,并且以<UID>_<不可变方面1值>_<...>_<不可变方面n值>的形式表示。
3.根据权利要求1所述的方法,还包括:
更新版本化域中的业务定义,其中,对业务定义的最新版本n的用户改变创建包含该用户改变的新的版本n+1,其中,该用户改变为添加、移除以及修改之一,并且对于每一个用户改变,进行相应的到非版本化业务定义的映射,以同步非版本化业务定义,其中:
响应于与业务定义的属性相关联的该组预定的验证规则中的一个验证规则的改变,不对非版本化业务定义进行更新;
响应于可以以兼容的方式应用于非版本化业务定义的一个方面改变,对非版本化定义中的该属性改变;以及
响应于不可以以兼容的方式应用于非版本化业务定义的一个方面改变,使用与版本化业务定义的属性相关联的该组预定的验证规则向非版本化定义添加新的属性。
4.根据权利要求1所述的方法,其中,该组预定的验证规则包含一个或多个与业务定义的属性相关联的预定的验证规则,并且其中,该组预定义的验证规则中的所述一个或多个规则使用版本化定义中的所述一个或多个预定义的验证规则验证所接收的针对版本化定义的特定版本的改变,无论所更新的实例是非版本化实例还是版本化实例。
5.根据权利要求1所述的方法,其中,所述相关联还包括业务层面的第一关联层面和属性层面的第二关联层面,其中,所述相关联使用适用于定义和实例的唯一标识符将业务相关联。
6.根据权利要求1所述的方法,其中,第一部分或者第二部分之一的查找可以使用第一部分或者第二部分中的剩余的一个进行,所述第一部分或者第二部分中的剩余的一个也共享由版本化定义的所有版本以及非版本化定义共享的不变的分量。
7.一种用于将版本化域和非版本化域之间的业务相互关联的计算机可读存储介质,其上载有程序指令,所述程序指令可由处理器单元执行,从而使得处理器单元:
针对一组业务中的业务生成具有版本化域和非版本化域两者的属性的元数据,其中所述元数据与版本化域和非版本化域中所使用的该组业务相关联;
使用版本化业务定义的具体版本来创建实例,其中,所述实例包含直接根据版本化业务定义创建的第一部分和根据非版本化业务定义创建的第二部分;
指定版本化域和非版本化域中业务的相应表示之间的链路,其中,所指定的链路定义了版本化域中一个业务的多个版本与非版本化域中同一业务的单个非版本化表示之间的关系;
响应于从版本化域或者非版本化域提供用于执行业务的规划、执行和更新实例中选择的一个的一组构想,从版本化域或者非版本化域接收业务的规划、执行和更新实例中所选择的那一个,其中,使用一组预定的验证规则执行业务的规划、执行和更新实例中所选择的那一个;以及
将该业务定义的所有版本相关联到单个非版本化定义,其中,也将该单个非版本化定义的业务定义相关联到该业务定义的所有版本;
其中,可由处理器单元执行的使得该处理器单元响应于提供用于执行业务的规划、执行和更新实例中选择的一个的一组构想的程序指令还包括可由处理器单元执行的使得该处理器单元进行如下操作的程序指令:
接收版本化构想和非版本化构想的选择之一,以更新实例数据;
响应于接收对版本化构想的选择,仅访问在版本化定义的具体版本上所定义的那些属性以及针对版本化定义的该具体版本的属性的一组预定的验证规则;
验证该构想上直接针对版本化定义的具体版本的更新;
响应于更新的有效,查找非版本化构想的相应的属性,然后将其保存在同一交易中,以维持该定义的版本化实例和非版本化实例之间的同步;
响应于接收对非版本化构想的选择,揭示出在版本化定义的所有版本中所定义的属性,所述版本化定义的所有版本中所定义的属性被映射于非版本化定义中相应的属性;
响应于通过非版本化构想进行的改变,在相应的版本化构想中进行查找,其中,将所述改变映射于该相应的版本化构想,并且检查该组预定的验证规则中由具体版本化定义所定义的相应的验证规则;
响应于更新的成功,将对版本化实例以及非版本化实例的改变保存在单个交易中;以及
响应于更新的失败,回滚所述改变。
8.根据权利要求7所述的计算机可读存储介质,其中,可由处理器单元执行的使得该处理器单元生成元数据的程序指令还包括可由处理器单元执行的使得该处理器单元进行如下操作的程序指令:
向包含由版本化定义的所有版本以及非版本化定义共享的不变的分量的业务分配唯一标识符(UID),其中,以第一形式将UID表示为版本化的:<公共UID>_<版本ID>以及以第二形式将UID表示为非版本化的:<公共UID>,其中,系统使用<公共UID>片段识别同一业务的所有版本以及相关联的单个非版本化定义,并且其中,在相关联的业务的整个生命期中UID是不可变的;以及
根据各方面生成属性,当该属性改变时,使与该属性相关联的实例数据与非版本化域中的现存实例不兼容,其中,具体的方面被视为在定义的生命期中是不可变的,并且当在版本化域中改变这些具体的方面时,所述改变导致系统将该属性识别为对父级定义的全新的添加,其中,由版本化属性和非版本化属性两者共享整个UID,并且以<UID>_<不可变方面1值>_<...>_<不可变方面n值>的形式表示。
9.根据权利要求7所述的计算机可读存储介质,还包括可由处理器单元执行的使得该处理器单元进行如下操作的程序指令:
更新版本化域中的业务定义,其中,对业务定义的最新版本n的用户改变创建包含该用户改变的新的版本n+1,其中,该用户改变为添加、移除以及修改之一,并且对于每一个用户改变,进行相应的到非版本化业务定义的映射,以同步非版本化业务定义,其中:
响应于与业务定义的属性相关联的该组预定的验证规则中的一个验证规则的改变,不对非版本化业务定义进行更新;
响应于可以以兼容的方式应用于非版本化业务定义的一个方面改变,对非版本化定义中的该属性改变;以及
响应于不可以以兼容的方式应用于非版本化业务定义的一个方面改变,使用与版本化业务定义的属性相关联的该组预定的验证规则向非版本化定义添加新的属性。
10.根据权利要求7所述的计算机可读存储介质,其中,该组预定的验证规则包含一个或多个与业务定义的属性相关联的预定的验证规则,并且其中,该组预定义的验证规则中的所述一个或多个规则使用版本化定义中的所述一个或多个预定义的验证规则验证所接收的针对版本化定义的特定版本的改变,无论所更新的实例是非版本化实例还是版本化实例。
11.根据权利要求7所述的计算机可读存储介质,其中,可由处理器单元执行的使得该处理器单元进行相关联的程序指令还包括可由处理器单元执行的使得该处理器单元以业务层面的第一关联层面和以属性层面的第二关联层面进行相关联的程序指令,其中,所述相关联使用适用于定义和实例的唯一标识符将业务相关联。
12.根据权利要求7所述的计算机可读存储介质,还包括可由处理器单元执行的使得该处理器单元使用第一部分或者第二部分中的剩余的一个查找第一部分或者第二部分之一,所述第一部分或者第二部分中的剩余的一个也共享由版本化定义的所有版本以及非版本化定义共享的不变的分量。
13.一种用于将版本化域和非版本化域之间的业务相互关联的装置,所述装置包括:
总线;
连接到总线的内存,其上载有程序指令;
处理器单元,其中,处理器单元执行所述程序指令,从而使得所述装置执行以下操作:
针对一组业务中的业务生成具有版本化域和非版本化域两者的属性的元数据,其中所述元数据与版本化域和非版本化域中所使用的该组业务相关联;
使用版本化业务定义的具体版本来创建实例,其中,所述实例包含直接根据版本化业务定义创建的第一部分和根据非版本化业务定义创建的第二部分;
指定版本化域和非版本化域中业务的相应表示之间的链路,其中,所指定的链路定义了版本化域中一个业务的多个版本与非版本化域中同一业务的单个非版本化表示之间的关系;
响应于从版本化域或者非版本化域提供用于执行业务的规划、执行和更新实例中选择的一个的一组构想,从版本化域或者非版本化域接收业务的规划、执行和更新实例中所选择的那一个,其中,使用一组预定的验证规则执行业务的规划、执行和更新实例中所选择的那一个;以及
将该业务定义的所有版本相关联到单个非版本化定义,其中,也将该单个非版本化定义的业务定义相关联到该业务定义的所有版本;
其中,处理器单元执行使得该装置响应于提供用于执行业务的规划、执行和更新实例中选择的一个的一组构想的程序指令还使得所述装置进行如下操作:
接收版本化构想和非版本化构想的选择之一,以更新实例数据;
响应于接收对版本化构想的选择,仅访问在版本化定义的具体版本上所定义的那些属性以及针对版本化定义的该具体版本的属性的一组预定的验证规则;
验证该构想上直接针对版本化定义的具体版本的更新;
响应于更新的有效,查找非版本化构想的相应的属性,然后将其保存在同一交易中,以维持该定义的版本化实例和非版本化实例之间的同步;
响应于接收对非版本化构想的选择,揭示出在版本化定义的所有版本中所定义的属性,所述版本化定义的所有版本中所定义的属性被映射于非版本化定义中相应的属性;
响应于通过非版本化构想进行的改变,在相应的版本化构想中进行查找,其中,将所述改变映射于该相应的版本化构想,并且检查该组预定的验证规则中由具体版本化定义所定义的相应的验证规则;
响应于更新的成功,将对版本化实例以及非版本化实例的改变保存在单个交易中;以及
响应于更新的失败,回滚所述改变。
14.根据权利要求13所述的装置,其中,处理器单元执行使得所述装置生成元数据的程序指令还使得所述装置:
向包含由版本化定义的所有版本以及非版本化定义共享的不变的分量的业务分配唯一标识符(UID),其中,以第一形式将UID表示为版本化的:<公共UID>_<版本ID>以及以第二形式将UID表示为非版本化的:<公共UID>,其中,系统使用<公共UID>片段识别同一业务的所有版本以及相关联的单个非版本化定义,并且其中,在相关联的业务的整个生命期中UID是不可变的;以及
根据各方面生成属性,当该属性改变时,使与该属性相关联的实例数据与非版本化域中的现存实例不兼容,其中,具体的方面被视为在定义的生命期中是不可变的,并且当在版本化域中改变这些具体的方面时,所述改变导致系统将该属性识别为对父级定义的全新的添加,其中,由版本化属性和非版本化属性两者共享整个UID,并且以<UID>_<不可变方面1值>_<...>_<不可变方面n值>的形式表示。
15.根据权利要求13所述的装置,其中,处理器单元执行程序指令使得所述装置:
更新版本化域中的业务定义,其中,对业务定义的最新版本n的用户改变创建包含该用户改变的新的版本n+1,其中,该用户改变为添加、移除以及修改之一,并且对于每一个用户改变,进行相应的到非版本化业务定义的映射,以同步非版本化业务定义,其中:
响应于与业务定义的属性相关联的该组预定的验证规则中的一个验证规则的改变,不对非版本化业务定义进行更新;
响应于可以以兼容的方式应用于非版本化业务定义的一个方面改变,对非版本化定义中的该属性改变;以及
响应于不可以以兼容的方式应用于非版本化业务定义的一个方面改变,使用与版本化业务定义的属性相关联的该组预定的验证规则向非版本化定义添加新的属性。
16.根据权利要求13所述的装置,其中,该组预定的验证规则包含一个或多个与业务定义的属性相关联的预定的验证规则,并且其中,该组预定义的验证规则中的所述一个或多个规则使用版本化定义中的所述一个或多个预定义的验证规则验证所接收的针对版本化定义的特定版本的改变,无论所更新的实例是非版本化实例还是版本化实例。
17.根据权利要求13所述的装置,其中,处理器单元执行使得所述装置进行相关联的程序指令还使得所述装置以业务层面的第一关联层面和以属性层面的第二关联层面进行相关联,其中,所述相关联使用适用于定义和实例的唯一标识符将业务相关联。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CA2854022A CA2854022C (en) | 2014-06-11 | 2014-06-11 | Artifact correlation between domains |
CA2854022 | 2014-06-11 | ||
PCT/IB2015/054380 WO2015189780A1 (en) | 2014-06-11 | 2015-06-10 | Artifact correlation between domains |
Publications (2)
Publication Number | Publication Date |
---|---|
CN106415539A CN106415539A (zh) | 2017-02-15 |
CN106415539B true CN106415539B (zh) | 2019-08-23 |
Family
ID=54784090
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201580028079.1A Active CN106415539B (zh) | 2014-06-11 | 2015-06-10 | 域间业务相关联的方法和装置 |
Country Status (5)
Country | Link |
---|---|
US (2) | US10037351B2 (zh) |
JP (1) | JP6505135B2 (zh) |
CN (1) | CN106415539B (zh) |
CA (1) | CA2854022C (zh) |
WO (1) | WO2015189780A1 (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CA2854022C (en) | 2014-06-11 | 2023-05-23 | Ibm Canada Limited - Ibm Canada Limitee | Artifact correlation between domains |
US10628437B1 (en) * | 2016-03-28 | 2020-04-21 | United Services Automobile Association (Usaa) | Systems and methods for traceability and impact analysis across data islands |
US11838221B2 (en) * | 2022-01-13 | 2023-12-05 | Verizon Patent And Licensing Inc. | Systems and methods for multi-cloud virtualized instance deployment and execution |
EP4418106A1 (en) * | 2023-02-15 | 2024-08-21 | Snowflake Inc. | Versioned schema |
US11755311B1 (en) | 2023-02-15 | 2023-09-12 | Snowflake Inc. | Versioned schema |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8392464B2 (en) * | 2007-02-16 | 2013-03-05 | Microsoft Corporation | Easily queriable software repositories |
Family Cites Families (28)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH10187560A (ja) | 1996-12-20 | 1998-07-21 | Mitsubishi Electric Corp | 文書配送システム及び配送情報管理プログラムを記録した媒体 |
US7120646B2 (en) * | 2001-04-09 | 2006-10-10 | Health Language, Inc. | Method and system for interfacing with a multi-level data structure |
US7774831B2 (en) * | 2002-12-24 | 2010-08-10 | International Business Machines Corporation | Methods and apparatus for processing markup language messages in a network |
JP2005092544A (ja) | 2003-09-18 | 2005-04-07 | Nippon Telegr & Teleph Corp <Ntt> | ワークフロー世代管理処理方法,ワークフロー処理システムおよびワークフロー制御プログラム |
US7266565B2 (en) * | 2003-09-24 | 2007-09-04 | Tablecode Software Corporation | Table-oriented application development environment |
US20060236319A1 (en) * | 2005-04-15 | 2006-10-19 | Microsoft Corporation | Version control system |
US8429610B2 (en) * | 2005-12-20 | 2013-04-23 | International Business Machines Corporation | Computer method and apparatus for providing version-aware impact analysis |
US7840936B2 (en) * | 2005-12-29 | 2010-11-23 | Sap Ag | Support of a platform-independent model including descriptions of modeling language entities |
US8171466B2 (en) * | 2006-05-16 | 2012-05-01 | Oracle International Corporation | Hitless application upgrade for SIP server architecture |
US8453052B1 (en) * | 2006-08-16 | 2013-05-28 | Google Inc. | Real-time document sharing and editing |
GB0619147D0 (en) * | 2006-09-28 | 2006-11-08 | Ibm | A method, apparatus or software for managing software component version identifications in a componentised software system |
US7870276B1 (en) * | 2006-12-18 | 2011-01-11 | Emc Corporation | Interface plugin |
JP4776706B2 (ja) | 2009-03-30 | 2011-09-21 | 三菱電機インフォメーションシステムズ株式会社 | 文書管理装置及び文書管理プログラム |
US20110209159A1 (en) | 2010-02-22 | 2011-08-25 | Avaya Inc. | Contextual correlation engine |
US20110239209A1 (en) * | 2010-03-23 | 2011-09-29 | Fujitsu Limted | System and methods for remote maintenance in an electronic network with multiple clients |
US9754242B2 (en) * | 2010-11-23 | 2017-09-05 | Sap Se | Deployment mechanism for non-versioning business process artifacts |
US20120254828A1 (en) | 2011-04-04 | 2012-10-04 | Model Based Management Technologies, Llc | Flexible Modeling Architecture For Management Systems |
US9141378B2 (en) * | 2011-09-15 | 2015-09-22 | Sonatype, Inc. | Method and system for evaluating a software artifact based on issue tracking and source control information |
US8863299B2 (en) * | 2012-01-06 | 2014-10-14 | Mobile Iron, Inc. | Secure virtual file management system |
US9461876B2 (en) * | 2012-08-29 | 2016-10-04 | Loci | System and method for fuzzy concept mapping, voting ontology crowd sourcing, and technology prediction |
US10229170B2 (en) * | 2013-03-13 | 2019-03-12 | Dreamworks Animation L.L.C. | File system manager for customized resource allocation |
US9275095B2 (en) * | 2013-07-31 | 2016-03-01 | International Business Machines Corporation | Compressing a multi-version database |
US9128972B2 (en) * | 2013-09-21 | 2015-09-08 | Oracle International Corporation | Multi-version concurrency control on in-memory snapshot store of oracle in-memory database |
US9251469B2 (en) | 2013-10-30 | 2016-02-02 | International Business Machines Corporation | Dynamic load balancing based on question difficulty |
US10720071B2 (en) | 2013-12-23 | 2020-07-21 | International Business Machines Corporation | Dynamic identification and validation of test questions from a corpus |
WO2015143416A1 (en) * | 2014-03-21 | 2015-09-24 | Ptc Inc. | Systems and methods for developing and using real-time data applications |
CA2854022C (en) | 2014-06-11 | 2023-05-23 | Ibm Canada Limited - Ibm Canada Limitee | Artifact correlation between domains |
US10394773B2 (en) * | 2015-01-02 | 2019-08-27 | International Business Machines Corporation | Determining when a change set was delivered to a workspace or stream and by whom |
-
2014
- 2014-06-11 CA CA2854022A patent/CA2854022C/en active Active
-
2015
- 2015-05-13 US US14/711,141 patent/US10037351B2/en not_active Expired - Fee Related
- 2015-06-10 CN CN201580028079.1A patent/CN106415539B/zh active Active
- 2015-06-10 WO PCT/IB2015/054380 patent/WO2015189780A1/en active Application Filing
- 2015-06-10 JP JP2016570114A patent/JP6505135B2/ja active Active
-
2018
- 2018-06-21 US US16/013,992 patent/US11204910B2/en active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8392464B2 (en) * | 2007-02-16 | 2013-03-05 | Microsoft Corporation | Easily queriable software repositories |
Also Published As
Publication number | Publication date |
---|---|
US10037351B2 (en) | 2018-07-31 |
US20180300366A1 (en) | 2018-10-18 |
US11204910B2 (en) | 2021-12-21 |
CA2854022A1 (en) | 2015-12-11 |
JP6505135B2 (ja) | 2019-04-24 |
CN106415539A (zh) | 2017-02-15 |
WO2015189780A1 (en) | 2015-12-17 |
CA2854022C (en) | 2023-05-23 |
US20150363453A1 (en) | 2015-12-17 |
JP2017521759A (ja) | 2017-08-03 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106415539B (zh) | 域间业务相关联的方法和装置 | |
US10558642B2 (en) | Mechanism for deprecating object oriented data | |
US7761786B2 (en) | Reusable XPath validation expressions | |
CN102656557B (zh) | 自动化企业软件开发 | |
CN104111966B (zh) | 用于动态地同步技术环境中的元素的方法和系统 | |
CN110147369A (zh) | 多重租赁数据库系统中的数据分离和写入重新定向 | |
EP2587448A1 (en) | Selective change propagation techniques for supporting partial roundtrips in model-to-model transformations | |
CN102693127B (zh) | 用于描述并执行图形用户界面中的管理任务的数据驱动模式 | |
JP5689361B2 (ja) | グラフデータの一部を準同型写像の像であるデータ構造に変換する方法、プログラム、および、システム | |
US8676627B2 (en) | Vertical process merging by reconstruction of equivalent models and hierarchical process merging | |
CN100392651C (zh) | 一种实时内存数据库通用约束的实现方法 | |
CN109726038A (zh) | 用于管理虚拟机的方法和设备 | |
JP2021508389A (ja) | データ処理システムにおけるジョブ管理 | |
US20090013305A1 (en) | Generating a subset model from a model | |
US8627277B2 (en) | Machine driven process for user interface driven data modeling collaboration | |
CN106933559A (zh) | 表单页面数据处理方法和装置 | |
Ali et al. | Perspectives to promote modularity, reusability, and consistency in multi-language systems | |
CN113626062B (zh) | 可信的应用集成 | |
CN108614714A (zh) | 一种动态库更新方法、装置及存储介质 | |
CN105302586A (zh) | 软件升级处理方法、装置、终端及服务器 | |
US11068468B2 (en) | Extensible validation framework | |
CN106990978A (zh) | 从产品生命周期管理(plm)系统向源代码管理(scm)系统导出分层数据 | |
US20170192945A1 (en) | High-performance editing of large remote files in client-server architecture | |
CN110134687A (zh) | 一种通过表字段的动态增改控制清单要素的方法及系统 | |
CN107765655A (zh) | 以消息路由系统扩展mes功能的方法、系统及程序 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |