当前位置: 首页 > 专利查询>BEA系统公司专利>正文

软件构件插件程序结构的系统和方法技术方案

技术编号:2869891 阅读:273 留言:0更新日期:2012-04-11 18:40
本发明专利技术提供软件组件插件程序框架(200)。所描述的系统支持动态加载、例示和卸载接口具体实现(插件程序模块)(204,205)以及封装这些接口具体实现(204、205)。由本发明专利技术提供的许多好处包括软件再用、互用性和快速产品开发周期。(*该技术在2022年保护过期,可自由使用*)

【技术实现步骤摘要】

本专利技术通常涉及对象组件模型,以及更具体地说,涉及用于允许框架体系结构中的插件应用程序的系统和方法。
技术介绍
当今的企业环境已经变得越来越依赖于电子商务或“电子商务”应用,用于他们的每天操作。电子商务应用通常将这些企业广义的功能定义为购买、销售、金融、制造、企业资源计划和数据处理的供应链管理。电子商务应用通常设计成在通称为电子商务或事务处理器的专用计算机服务器或一组服务器上操作或运行。这些服务器产品包括来自from BEA Systems,Inc.,SanJose,California的TUXEDOTM产品;同样来自BEA Systems的WeblogicServerTM;来自Microsoft Corporationin Redmond,Washington的CommerceServerTM;以及来自IBM Corporation,Armonk,New York的AvilaTM和CRMTM。用于这些服务器的密钥要求是它们能被证明、可靠和可升级以便满足成长组织的需要。一些产品在设计方面也很注意灵活性。特别地,TUXEDO适合提供能用来连接和授权所有用户,同时合并所有公司全体数据的强大和灵活的端对端电子商务解决方案。这种电子商务或事务服务器的一个主要的缺点在于他们本身倾向于非常大的应用。典型的电子商务服务器充当必须编译以便形成引擎或核心的服务器应用,然后,客户应用可以通过引擎或核心通信。只要编译过,很少能增加或修改服务器应用,因此,对系统来说,不必要求重构该核心。图1表示当将其应用到电子商务应用上时的传统的核心编译过程。如在此所示,典型的电子商务服务器最初具有或不具有“个性化(personality)”。如在此所使用的,术语“个性化”用来指用户(客户)应用将与其交互作用的特殊应用前端,并包括诸如AMS、Jolt和TUZEDO的个性化。个性化经下文称为“姿态(attitude)”的各种编程原理与外部世界(即,客户应用)通信。姿态包括例如,Java、C、C++、Cobol和OLE(对象链接和嵌入)。类似地,电子商务服务器可以装有由电子商务服务器使用但不是直接编程为客户应用的很少或没有扩展应用、附加应用,以及在一些情况下,甚至可以不与外部世界交互作用。扩展应用能被视为能用来增加服务器的标准特征的有用的实用功能。传统上,为增加个性化或扩展,在每一步骤,必须重构和重新编译服务器核心。这使得服务器停工期成为必要并且大大地增加在重新编译过程期间或在最短的可能时间中再次运行服务器的尝试期间,将引入错误的风险。如图1所示,切换到TUXEDO个性化、增加连接模块扩展,然后增加安全性模块扩展可以采用三个一样多的服务器停工期和核心重新编译。当增加例程服务器应用更新和软件修补时,也会遇到这些编译问题。当替换服务器核心本身时,传统的服务器体系结构同样不适合于再使用模块代码。花费许多的时间和成本来重写用于大多数与代码的最后一个版本相同的服务器产品的新版本。开发顾客代码以便与他们的服务器产品一起运行或在它们的服务器产品内运行的顾客找出不能与服务器产品的服务器版本一起使用的他们的代码。全部结果是冗余编码、费用和浪费时间的一个。
技术实现思路
为解决这一问题,专利技术人已经断定将现有的应用事务服务器或电子商务服务器分成一组更可管理的部分是很有利的。这也解决了下述目的 允许商务和事务服务器顾客以便用更新或未来的服务器产品再用它们的客户应用。由于当前提供的服务器体系结构的改变,消除了端口和换发其他、相关的基于服务器的产品的另外的步骤。因为他们的基于服务器的产品包括在服务器系统的最新版本中校正过的故障,解决了顾客遇到的电子商务服务器的需要。通过“组件化”降低复制/改变过的产品的代码量,并促使再用软件代码以便最小化冗余编码。因此,为解决这些目的,专利技术人提出了一种电子商务服务器体系结构,其中在此称为“引擎”的服务器引擎组件在提供一些基本服务以及允许用户化引擎的插件机制中起主要作用。这一用户化可以包括引擎的良好定义的接口,以及来自引擎的调出指令。通过插件模块提供用户化,包括扩展的引擎集的任何用户化。在服务器引擎中,插件模块(在此称为接口具体实现)的动态链接和加载以及那个接口具体实现的封装以下述方式发生,即、全部由接口用户隐藏所述接口具体实现(即,充当客户或客户应用的组件)。如在此所述,专利技术人提供可以插入或作为应用服务器引擎一部分以便根据通过插件模块扩展它们从而允许引擎接口的动态用户化的插件构架。反过来通过个性化和引擎扩展提供这些插件模块。可以与本专利技术一起使用的应用服务器引擎包括电子商务事务和应用引擎。引擎插件构架的一个实施例提供下述特征形式插件程序模块综合模型;用于动态加载、链接和卸载插件程序模块的公用基础设施;用于插件程序模块的公用登记机制;以及充当提供接口的引擎的扩展的插件程序应用编程接口(APIs)。通过框架体系结构的各个实施例,可以支持用于插件程序模块的DLL(动态链接库)和非DLL类型的容器。包括这一新的体系结构的系统能通过客户-服务器关系,被虚拟化为彼此交互作用的软件组件库。如在此所使用的,软件组件当其请求由另一组件提供的服务时被视为“客户”,以及当其提供由另一组件请求的服务时,被视为“服务器”。组件能通过相应的接口提供多组互联或非互联(即,彼此独立)服务。到客户来说,组件因而似乎是一组接口。客户不关心这些接口如何由组件来真正实现。由此,在本申请的该上下文中使用的组件是与给定它们所支持的一组接口相关的具体实现提供者。只要新组件能够提供用于与旧组件所做相同的接口的具体实现,组件就能从应用中去除或用另一组件代替,当实现这种接口体系结构时,涉及组件使用的一个早期设计决定是决定在媒介或容器上制造运行时间期间可用的组件。应当有用于由每个用户调用的接口的后备具体实现。如果该需求是用于将客户机与接口具体实现分开,这一具体实现库能是可动态链接的,如果该需求是直到真正需要时才加载该组件的话,可以动态加载。在相同(例如,本地)节点或远程节点上,该库可以是另一处理。附图说明图1是现有技术服务器结构过程的示例说明;图2是根据本专利技术的实施例,示例说明引擎的替换的构架系统结构体系的示意图;图3是根据本专利技术的实施例的组件的示意图;图4是根据本专利技术的实施例的组件接口的示意图;图5是根据本专利技术的实施例的接口具体实现的流程图;图6是根据本专利技术的实施例的插件程序具体实现的示意图;图7是根据本专利技术的实施例的导出的插件程序或具体实现继承的示意图;图8是根据本专利技术的实施例的扇出(fanout)类型拦截(interception)的示意图;图9是根据本专利技术的实施例的堆栈类型拦截的示意图;图10是根据本专利技术的实施例,具有扇出具体实现的接口的具体实现的示意图;图11是根据本专利技术的实施例,具有堆栈具体实现的接口的具体实现的示意图;图12是根据本专利技术的实施例,实现过程的流程图;图13是根据本专利技术的实施例,接口规格过程的流程图。具体实施例方式以下包括术语、首字母缩写词和缩写的简单词汇,将有助于理解下面的个性化-编程模型支持(包括对引擎和环境的映象),例如,API映象和个性化特定的功能。姿态-用于编程模型的程序接口。扩展-用于连接第三方产品/与第三方产品一起使用的专用服务。接口-有关本文档来自技高网
...

【技术保护点】
一种用于允许客户应用程序与服务器组件应用程序通信的框架体系结构系统,包括:服务器引擎,用于向服务器提供客户访问,所述服务器引擎进一步包括:用于提供服务的服务器组件;用于提供所述服务的功能的所述服务器组件内的具体实现; 以及用于允许客户应用程序访问所述具体实现的接口机制。

【技术特征摘要】
...

【专利技术属性】
技术研发人员:梅萨特冈达克朱安安德雷德杰夫米肖保罗帕特里克
申请(专利权)人:BEA系统公司
类型:发明
国别省市:US[美国]

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

1
相关领域技术
  • 暂无相关专利