用于在事务中间件机器环境中支持隐式版本控制的系统和方法

文档序号:6533769阅读:155来源:国知局
用于在事务中间件机器环境中支持隐式版本控制的系统和方法
【专利摘要】本发明涉及一种可以在事务中间件机器环境中支持应用版本控制的系统和方法。事务服务提供者可以调遣与多个服务版本相关联的至少一项服务。所述线系统可以将一项或多项应用划分成一个或多个应用区块,其中每一个所述应用区块与所述至少一项服务的特定请求版本相关联。随后,事务服务提供者允许所述应用区块中的服务请求者访问具有与所述应用区块相关联的服务版本的所述至少一项服务。
【专利说明】用于在事务中间件机器环境中支持隐式版本控制的系统和 方法
[0001] 版权声明
[0002] 本专利申请的公开的一部分包含受到版权保护的材料。因为其出现在专利商标局 的专利文献或记录中,版权所有者不反对任何人对该专利申请或专利公开的复制,但在其 它方面保留所有的版权。

【技术领域】
[0003] 本发明总体上涉及计算机系统和软件,并且特别涉及支持事务中间件机器环境。

【背景技术】
[0004] 利用企业IT架构提供各种服务的业务系统可能涉及许多复杂的阶段。这些业务 系统可能需要应对多种情形,比如为末端用户改变服务合约,为新顾客提供新的服务合约, 在不间断(non-stop)模式下将早前服务升级到新服务,以及对于一些现有顾客保持更早 前的服务。此外,IT服务提供者可能希望并行地提供几个版本的服务,并且为特定顾客提 供特定变型。此外,一些服务请求者可能希望按照统一的方式访问不同版本的服务,或者甚 至在运行时间在不同版本的服务之间进行切换,而其他人则可能不希望显式地应对不同服 务版本。这正是本发明的实施例所意图解决的一般领域。


【发明内容】

[0005] 这里描述了用于在事务中间件机器环境中支持应用版本控制的系统和方法。事务 服务提供者可以调遣与多个服务版本相关联的至少一项服务。所述系统可以将一项或多项 应用划分成一个或多个应用区块,其中每一个所述应用区块与所述至少一项服务的特定请 求版本相关联。随后,事务服务提供者允许所述请求区块中的服务请求者访问具有与所述 应用区块相关联的服务版本的所述至少一项服务。
[0006] 在本发明的一个示例性实施例中,一种用于在事务中间件机器环境中支持应用版 本控制的系统包括事务服务提供者。所述事务服务提供者包括:用以调遣与多个服务版本 相关联的至少一项服务的调遣单元;用以将一项或多项应用划分成一个或多个应用区块的 划分器,其中每一个所述应用区块与所述至少一项服务的特定请求版本相关联;以及允许 所述应用区块中的服务请求者访问具有与所述应用区块相关联的服务版本的所述至少一 项服务的访问单元。
[0007] 在另一个实施例中,事务服务提供者还可以包括基于事务服务应用配置确定对应 于服务请求的服务版本的确定单元。
[0008] 在另一个实施例中,事务服务提供者还可以包括适于从远程服务接收针对所述至 少一项服务的服务请求的接收单元。

【专利附图】

【附图说明】
[0009] 图1示出了根据本发明的一个实施例的在事务中间件机器环境中支持应用服务 版本控制的图示。
[0010] 图2示出了根据本发明的一个实施例的在事务中间件机器环境中支持隐式版本 控制的图示。
[0011] 图3示出了根据本发明的一个实施例的用于在事务中间件机器环境中支持隐式 版本控制的示例性流程图。
[0012] 图4示出了根据本发明的一个实施例的在事务中间件机器环境中支持版本情境 的图示。
[0013] 图5示出了根据本发明的一个实施例的支持布置在多进程(MP)环境中的Tuxedo 应用的图示。
[0014] 图6示出了根据本发明的一个实施例的在事务中间件机器环境中支持基于版本 的路由(VBR)的图示。
[0015] 图7示出了根据本发明的一个实施例的对应于在分布式事务中间件机器环境中 支持基于版本的路由(VBR)的示例性序列图。
[0016] 图8示出了根据本发明的一个实施例的对应于在事务中间件机器环境中支持基 于版本的路由(VBR)的示例性流程图。
[0017] 图9示出了根据一些实施例的事务服务提供者的功能方框图。
[0018] 图10示出了根据本发明的一个实施例的事务服务提供者的示例性方框图。

【具体实施方式】
[0019] 在附图中作为举例而非限制示出了本发明,其中相同的附图标记表示类似的元 件。应当提到的是,在本公开内容提到"一个"或"一些"实施例时不一定是指相同的实施 例,而是意味着至少一个。
[0020] 在这里描述了一种用于提供中间件机器或类似的平台的系统和方法。根据本发明 的一个实施例,所述系统包括高性能平台(例如64位处理器技术)、高性能大存储器以及冗 余InfiniBand和以太网联网连同应用服务器或中间件环境(比如WebLogic套装)的组合, 以便提供包括大规模并行内存中网格的完整的Jave EE应用服务器综合体,其可以被快速 准备并且可以按需伸缩。根据一个实施例,所述系统可以被布置成全机架、半机架或四分之 一机架或者其他配置,其提供应用服务器网格、存储区域网络以及InfiniBand(IB)网络。中 间件机器软件可以提供应用服务器、中间件和其他功能,比如WebLogic服务器、JRockit或 Hotspot JVM、Oracle Linux或Solaris以及Oracle VM。根据一个实施例,所述系统可以 包括经由IB网络与彼此通信的多个计算机节点、IB交换机网关以及存储节点或单元。当 被实施为机架配置时,所述机架的未被使用的部分可以被留空或者由填充件占据。
[0021] 根据本发明的一个实施例,在这里被称作"Sun Oracle Exalogic"或"Exalogic" 的系统是一种用于托管中间件或应用服务器软件(比如Oracle中间件SW套装或 WebLogic)的易于布置的解决方案。正如这里所描述的那样,根据一个实施例,所述系统 是一个"箱中网格(grid in a box)",其包括一个或多个服务器、存储单元、用于存储联网 的IB结构以及托管中间件应用所需的所有其他组件。通过利用例如真实应用集群(Real Application Clusters)和Exalogic开放存储的大规模并行网格架构,可以对于所有类型 的中间件应用给出卓越的性能。所述系统利用线性I/O可伸缩性给出改进的性能,其易于 使用和管理,并且给出关键任务可用性和可靠性。
[0022] 根据本发明的一个实施例,Tuxedo是用于C、C++和COBOL的事务处理系统或者面 向事务的中间件或企业应用服务器。其是允许构造、执行和管理高性能、分布式业务应用的 软件模块集合,并且已被多种多层应用布置工具用作事务中间件。此外,一种事务中间件系 统(比如Tuxedo系统)可以利用具有多个处理器的快速机器(比如Exalogic中间件机 器)和高性能网络连接(比如InfiniBand(IB)网络)。
[0023] 后面对于本发明的描述将Tuxedo系统用作事务处理系统的一个实例。本领域技 术人员将认识到,在不做限制的情况下可以使用其他类型的事务处理系统。
[0024] 应用服务版本控制
[0025] 根据本发明的一个实施例,事务中间件机器环境可以支持服务版本控制,以便减 少客户端和服务器开发努力。事务服务提供者(例如Tuxedo)可以根据服务名称和服务所 支持的版本调遣不同的服务。此外,服务请求者(例如请求事务服务的客户端或服务器/ 服务)只能访问支持相应版本的服务入口(service entry)。
[0026] 图1示出了根据本发明的一个实施例的在事务中间件机器环境中支持应用服务 版本控制的图示。如图1中所示,事务中间件机器环境100中的事务服务提供者119可以 提供多种服务,比如事务服务A-B 111-112。事务服务A 111可以包括多个服务入口,例如 版本I-III 121-123,事务服务B 112也可以包括多个服务入口,例如版本I-II 131-132。
[0027] 此外,事务中间件机器环境100中的服务版本控制可以涉及不同的人,比如客户 端应用的开发者(例如客户端A-B 101-102),运营或管理团队,布置团队103,以及服务的 开发者104。所述这些各方当中的每一方都具有其自身不同的服务版本要求。
[0028] 如图1中所示,客户端A 101可以访问事务服务A 111的版本I 121,客户端B 102 可以访问事务服务A 111的版本II 122和事务服务B 112的版本II 132。因此,客户端应 用A-B 101-102的开发者可以将客户端请求划分到具有相同服务名称的不同事务应用服 务版本中。此外,客户端应用A-B 101-102的开发者可以切换当前请求情境,以便根据客户 端的输入将不同的业务逻辑应用于相同的事务应用。
[0029] 此外,在运行时间,布置团队103可以在不间断模式下升级事务服务A 111的版本 III 123中的事务应用逻辑,并且同时继续应对版本I-II 121-122中的早前服务逻辑。此 夕卜,服务开发者104可以在运行时间升级事务服务B 112的版本I 131中的服务逻辑,而不 干扰具有相同服务名称的版本II 132的当前活跃服务。
[0030] 隐式版本控制
[0031] 根据本发明的一个实施例,事务中间件机器环境可以支持隐式版本控制,其可以 是配置驱动的并且可以提供使得用户支持应用版本控制的一种灵活方式。
[0032] 图2示出了根据本发明的一个实施例的在事务中间件机器环境中支持隐式版本 控制的图示。如图2中所示,事务中间件机器环境200中的事务服务器201可以在不同版 本(例如版本Ι-ΠΙ 211-213)中提供事务服务A 210。
[0033] 根据本发明的一个实施例,可以使用一个或多个配置文件209来支持隐式版本控 制。举例来说,配置文件209可以定义管理分层结构中的不同层级之间的分层结构关系。
[0034] 如图2中所示,用户可以基于版本范围把各项应用划分成不同的虚拟区块,例如 应用区块A-B 203-204。每一个应用区块A-B 203-204可以被配置成应对具有特定版本编 号的服务请求。举例来说,应用区块A 203可以应对具有请求版本A 223(例如版本I)的 服务请求,应用区块B 204则可以应对具有请求版本B 224(例如版本II)的服务请求。
[0035] 此外,用户可以在运行时间改变客户端请求版本和服务版本范围。这样的改变可 以经由管理接口单元(例如Tuxedo中的MIB接口 /API接口)做出,并且可以在运行时间 立即生效。
[0036] 此外,用户可以通过配置文件209启用/禁用应用版本控制特征。如果应用版本 控制被禁用,则可以对现有系统没有影响。如果应用版本控制被启用,则系统可以提供使得 用户设定客户端/服务的版本并且在不同层级(例如在应用和/或分组层级)配置服务支 持版本范围的一种方式。
[0037] 举例来说,在Tuxedo中,UBB配置文件和DMC0NFIG配置文件都可以被用于支持隐 式应用版本控制。顾客可以通过在UBB配置文件的OPTIONS(选项)节段中规定新的应用 选项APPVER来启用应用版本控制特征。此外,UBB配置文件和DMC0NFIG配置文件可以包括 例如 REQUEST_VERSION (请求版本)、VERSI0N_P0LICY (版本策略)和 VERSI0N_RANGE (版本 范围)之类的属性,以用于在所配置的Tuxedo管理实体中规定版本和可允许的版本范围。
[0038] 如果应用版本控制特征被启用,则用户可以在UBB配置文件和域配置文件中配置 与应用版本有关的信息。另一方面,如果应用版本控制特征未被启用,则用户无法在UBB配 置文件中或者通过MIB接口来配置与应用版本特征有关的配置。此外,如果顾客在UBB配 置文件中禁用应用版本控制特征,则域配置中的应用版本信息可以不具有影响。
[0039] 如图2中所示,客户端应用A-B 206-207可以针对提供在事务服务器201上的事 务服务A 210发出请求。用户可以经由配置文件209控制客户端请求版本和服务范围。举 例来说,在Tuxedo中,用户可以在UBB配置文件中在域层级和分组层级配置与应用版本有 关的彳目息。
[0040] UBB配置文件中的REQUEST_VERSI0N可以被用来确定发送请求的客户端的版本。 REQUEST_VERSI0N的值可以是用数字表示的,其在大于等于0并且小于等于65535(USHRT_ MAX)时是有效的。此外,对应于REQUEST_VERSI0N的默认值可以是"*",其表明请求版本可 以被任何版本范围接受并且可以调用任何版本的服务。
[0041] UBB配置文件中的VERSI0N_RANGE可以被用来确定对应于服务的可允许版本请求 的范围。举例来说,Tuxedo 用户可以利用" low_version_number_high_version_number (低 版本编号-高版本编号)"的格式在对应于服务选择的分组层级在Tuxedo应用上设定版 本范围以简化 UBB 配置,所述格式表明 low_version_number〈 = VERSI0N_RANGE〈 = high_ version_number (低版本编号〈=版本范围〈=高版本编号)。
[0042] UBB配置文件中的VERSI0N_P0LICY可以被用来确定版本控制策略。举例来说,一 个值可以是"PROPAGATE(传播)",其表明所述服务在启动新的请求时应当传播传入请求版 本而不是使用其自身的请求版本。
[0043] 在服务调遣期间VERSI0N_P0LICY可以优先于REQUEST_VERSI0N,也就是说如果对 于一项服务配置了 REQUEST_VERSI0N和VERSI0N_P0LICY属性全部二者,则所述服务在启动 新的请求时可以传播传入请求版本。
[0044] 下面的列表1包括用于在Tuxedo配置文件中规定应用版本的各个实例。
[0045]

【权利要求】
1. 一种用于在事务中间件机器环境中支持应用版本控制的方法,包括: 通过事务服务提供者调遣与多个服务版本相关联的至少一项服务; 将一项或多项应用划分成一个或多个应用区块,其中每一个所述应用区块与所述至少 一项服务的特定请求版本相关联;以及 允许所述应用区块中的服务请求者访问具有与所述应用区块相关联的服务版本的所 述至少一项服务。
2. 根据权利要求1的方法,还包括: 通过事务服务提供者基于事务服务应用配置确定对应于服务请求的服务版本。
3. 根据权利要求2的方法,还包括: 利用至少一个配置文件来提供事务服务应用配置。
4. 根据权利要求3的方法,还包括: 在所述至少一个配置文件中规定: 请求版本; 服务版本范围;以及 版本策略。
5. 根据权利要求2到4中的任一条的方法,还包括: 在运行时间利用管理接口改变事务服务应用配置。
6. 根据权利要求2到5中的任一条的方法,还包括: 在事务服务应用配置中规定具有不同管理层级的分层结构关系,其中较低层级配置能 够覆写较高层级配置。
7. 根据任一在前权利要求的方法,还包括: 通过事务服务提供者从远程服务接收针对所述至少一项服务的服务请求。
8. 根据任一在前权利要求的方法,还包括: 利用至少一个配置文件配置来自远程域的导入服务或客户端请求。
9. 根据任一在前权利要求的方法,还包括: 当服务请求者加入受到版本控制的应用时,将版本情境与服务请求者相关联。
10. 根据任一在前权利要求的方法,还包括: 在服务请求中仅包括所述至少一项服务的名称。
11. 一种包括程序代码指令的计算机程序,所述程序代码指令在由计算机系统执行时 使得所述计算机系统实施任一在前权利要求的方法。
12. -种包括存储在机器可读介质上的权利要求11的计算机程序的计算机程序产品。
13. -种用于在事务中间件机器环境中支持应用版本控制的系统,包括 一个或多个微处理器; 运行在所述一个或多个微处理器上的事务服务提供者,其中所述事务服务提供者操作 为: 调遣与多个服务版本相关联的至少一项服务; 允许将一项或多项应用划分成一个或多个应用区块,其中每一个所述应用区块与所述 至少一项服务的特定请求版本相关联;以及 允许所述应用区块中的服务请求者访问具有与所述应用区块相关联的服务版本的所 述至少一项服务。
14. 根据权利要求13的系统,其中: 事务服务提供者操作为基于事务服务应用配置确定对应于服务请求的服务版本。
15. 根据权利要求14的系统,其中: 利用至少一个配置文件来提供事务服务应用配置。
16. 根据权利要求15的系统,其中: 所述至少一个配置文件规定以下各项的至少其中之一: 请求版本; 服务版本范围;以及 版本策略。
17. 根据权利要求14到16中的任一条的系统,其中: 在运行时间能够利用管理接口改变事务服务应用配置。
18. 根据权利要求14到17中的任一条的系统,其中: 事务服务应用配置规定具有不同管理层级的分层结构关系,其中较低层级配置能够覆 写较高层级配置。
19. 根据权利要求13到18中的任一条的系统,其中: 事务服务提供者操作为从远程服务接收针对所述至少一项服务的服务请求。
20. 根据权利要求13到19中的任一条的系统,其中: 利用至少一个配置文件配置来自远程域的导入服务或客户端请求。
21. 根据权利要求13到20中的任一条的系统,其中: 当服务请求者加入受到版本控制的应用时,服务请求者隐式地创建服务情境。
22. -种其上存储有指令的非瞬时性机器可读存储介质,所述指令在被执行时使得系 统实施以下步骤: 通过事务服务提供者调遣与多个服务版本相关联的至少一项服务; 将一项或多项应用划分成一个或多个应用区块,其中每一个所述应用区块与所述至少 一项服务的特定请求版本相关联;以及 允许所述应用区块中的服务请求者访问具有与所述应用区块相关联的服务版本的所 述至少一项服务。
23. -种用于使得计算机实施如权利要求1到10中的任一条所述的方法的程序。
【文档编号】G06F9/445GK104272258SQ201380024077
【公开日】2015年1月7日 申请日期:2013年6月13日 优先权日:2012年6月13日
【发明者】傅华胜, 朱盛, 李震宇 申请人:甲骨文国际公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1