用于执行动态软件版本选择的方法和系统技术方案

技术编号:7515452 阅读:148 留言:0更新日期:2012-07-11 21:45
动态软件版本选择是通过将绑定库与软件组件关联来执行的。所述绑定库包括加载器组件和绑定组件,其中所述加载器组件充当软件组件和绑定组件之间的中介,所述绑定组件包括软件组件端逻辑。动态软件版本选择进一步包括加载器组件中判定将库从绑定组件加载到处理设备的存储器的逻辑,以及由加载器组件选择所需的被请求库版本,其中所需库版本是从与绑定库的绑定组件关联的至少两个库版本中选择的。仍进一步地,动态软件版本选择包括在不需要重新启动关联的软件组件的情况下,将所需库版本加载到计算机处理系统的存储器。

【技术实现步骤摘要】

本专利技术的各方面一般地涉及软件版本选择,更具体地说,涉及在版本更改期间,以对支持的过程或服务干扰最小或无干扰的方式动态地选择软件版本。
技术介绍
中间件可使一台或多台机器上运行的多个进程进行交互。因此,中间件在支持诸如事务处理系统与消息传递和排队系统之类的复杂分布式应用方面非常有用。作为一个实例,形式为联机事务处理(OLTP)系统的中间件经常用于支持关键业务过程和服务。例如, 联机事务处理系统可用于便利和管理在订单录入系统中捕获新数据,更新现有数据,处理数据录入和检索等的面向事务的应用。作为另一示例,形式为消息排队系统的中间件可用于通过将应用特定的消息写入队列以及从队列检索这些消息来便利程序间通信,而不需要通信程序之间具有专门的逻辑连接。包括现代OLTP系统、消息和排队系统等的中间件一般支持跨网络的事务并且可以跨由不同实体控制的一个或多个域。因此,诸如OLTP应用与消息和排队应用之类的中间件应用通常使用允许事务在网络内的不同计算机平台上运行的客户机/服务器处理和代理操作(brokering)来实现。因此,对此类中间件系统的软件升级通常需要关闭应用,从而使关联的应用脱机以允许进行软件安装和必要时的配置。
技术实现思路
根据本专利技术的方面,动态软件版本选择通过将绑定库与软件组件进行关联来执行。所述绑定库包括加载器组件和绑定组件,其中所述加载器组件充当软件组件和绑定组件之间的中介(intermediary),且所述绑定组件包括软件组件端逻辑。动态软件版本选择进一步包括由加载器组件识别触发器,以将库从绑定组件加载到处理设备的存储器,以及由加载器组件选择所需库版本,其中所需库版本是从与绑定库的绑定组件关联的至少两个库版本中选择的。仍进一步地,动态软件版本选择包括在不需要重新启动关联的软件组件的情况下,将所需库版本加载到计算机处理系统的存储器。例如,加载器组件所作的加载所需库版本的判定可以由控制过程所填充的库版本表或其他源控制。附图说明图1是根据本专利技术的方面用于实现动态软件版本选择的系统的示意图。图2是示出根据本专利技术的方面用于实现动态软件版本选择的示例性方法的流程图。图3是根据本专利技术的方面用于在消息传递系统环境的示例性上下文中实现动态软件版本选择的系统的示意图。图4是根据本专利技术的方面使用共享库版本表的用于实现动态软件版本选择的系统的示意图。图5是根据本专利技术的方面使用共享库版本表和共享程序版本表的用于实现动态软件版本选择的系统的示意图。图6是具有用于实现如本文详细描述的根据本专利技术的方面的功能的计算机可读存储介质的计算机系统的方块图。具体实施例方式本专利技术的各方面提供了能够在不关闭软件系统或不以其他方式中断服务的情况下通过新软件修改软件系统的技术。软件修改包括,例如,实现软件升级,恢复到早期软件版本,重新加载软件版本,修复或修补软件版本等。因此,提供了能够在不发生中断的情况下通过新软件升级的软件系统,所述新软件例如包含对已知问题的修复和/或新功能,并且其部件可使用诸如服务等级之类的不同软件版本等。软件系统还可以回退到早期版本。 此外,还可以通过新软件修改客户端系统和服务器端系统两者。进一步地,此处描述的本专利技术的各方面提供了在持续运行的进程内的应用编程接口(API)边界上管理版本化实现,从而不需要针对关联的软件代码进行任何进程重新启动。在不重新启动进程的情况下实施更新的能力甚至可以在进程为不受用于执行软件修改的更新机制控制的第三方应用(例如,客户应用)的情况下实现。因此,很容易实现本机代码库的运行时更新和修改。而且,更新机制可以实现动态内部状态处理以允许在运行进程之下的函数库版本转换,例如,在使用动态链接库的系统中的这种函数库版本转换。更进一步地,本专利技术的方面提供了更新机制,此机制便利了做出和控制迁移判定 (例如,如何以及何时升级、降级或以其他方式替换可能存储在库中的软件代码)的能力。 因此,此更新机制可以表现出动态行为,从而提供了软件版本修改过程和判定的灵活性。而且,此更新机制可以例如逐程序地或基于其他选择标准实现选择性软件版本控制。根据本专利技术的更进一步的方面,此更新机制可以包括与软件组件(调用组件)关联的绑定库。通过这种方式,调用组件不时地调用绑定库以实现应用编程接口(API)调用。 绑定库实现为加载器组件和绑定组件。加载器组件充当中介以从软件组件接收调用并将等效的API调用发送到绑定组件。绑定组件包括软件组件端逻辑,所述逻辑包括至少两个库版本。每个库版本都包括用于对来自调用组件的应用编程接口调用做出响应的逻辑。加载器组件识别或以其他方式检测到触发器,并且作为对此的响应,实现判定逻辑。所述判定逻辑可以检查是否存在新的库版本,检测应该加载的所需库版本,引导加载器组件从绑定组件选择所需的库版本并将所述库版本加载到处理设备的存储器等。如果要替换加载到存储器的库版本,则在不需要重新启动关联的软件组件的情况下卸载旧的库版本并加载新的库版本。例如,在第一说明性示例中,仅仅选择的API调用(例如,连接/断开连接(或类似操作)API)具有导致库版本重新加载的判定逻辑。因此,可以响应于从关联的软件组件接收到一个或多个特定命令(例如,连接和断开连接API调用),触发加载器组件以检查加载到存储器的库版本,以及在必要时更新版本。如将在此更详细地描述那样,在该说明示例中,不需要状态迁移来实现库版本重新加载。作为另一说明性示例,所有对加载器组件的API调用都具有判定逻辑。因此,响应于从关联的软件组件接收任何API调用,触发加载器组件以检查加载到存储器的库版本,以及在必要时更新版本。如将在此更详细地描述那样,在该说明性示例中,应该支持状态迁移。仍进一步地,无论是仅选择的API调用具有触发库版本检查的判定逻辑,还是所有API 调用都具有触发库版本检查的判定逻辑,加载器组件都可支持程序级控制或程序特定的控制,以允许响应于接收的API调用,控制哪些程序将迁移库版本,哪些不迁移库版本。动杰软件版本诜择现在参考附图,具体为参考图1,其示出了适合于根据本专利技术的方面实现动态软件版本选择的系统100的示意图。系统100可以在单个物理处理设备上实施。替代地,系统 100可以跨诸如通过网络以通信的方式连接在一起的多个物理处理设备分布。在此方面,每个处理设备都可以包括用于实现此处更详细地描述的本专利技术的方面的硬件和/或软件处理组件。如图所示,系统100包括至少一个软件组件102和关联的绑定库104。软件组件 102可以包括例如调用另一组件(例如,关联的绑定库104)的服务的任何软件。软件组件 102可以例如实现为软件应用、程序、对象、服务、代理(agent)、操作系统等。在此方面,软件组件102在此还可以被称为调用组件102。绑定库104实现为两个组件,包括加载器组件106和绑定组件108。加载器组件 106与软件组件102和绑定组件108进行交互以将绑定组件的关联库的正确版本加载到存储器110。加载器组件106还可以可选地与一个或多个可选的信息源112进行交互,所述信息源可被提供以帮助进行版本管理。例如,如将在此更详细地描述那样,信息源112可以实现为指示绑定组件108所维护的关联库的当前版本的表,该表可以存储在存储器110中,也可以作为单独文件。绑定组件10本文档来自技高网...

【技术保护点】

【技术特征摘要】
...

【专利技术属性】
技术研发人员:D·G·沃德S·J·韦勃
申请(专利权)人:国际商业机器公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1
相关领域技术