组件适配器的实现方法

文档序号:6370152阅读:322来源:国知局
专利名称:组件适配器的实现方法
技术领域
本发明涉及一种在分布式对象环境下解决各种组件服务适配问题的组件适配器的实现方法,利用该方法实现的组件服务器可以屏蔽分布式部署的组件如COM、CORBA、EJB等的形态差异和个体差异。该技术属于计算机技术中的中间件技术领域。
背景技术
在电信业务网、金融业务网及电子政务网等大型网络系统中,分布式对象技术得到了越来越广泛的使用。现有的分布式对象技术主要有三大流派——OMG的COBRA、微软的COM/DCOM和SUN的EJB。这些分布式对象技术在使用中都存在跨系统与跨边界两个基本问题。所谓跨系统,是指多个操作服务引擎会在不同的系统平台上提供服务;所谓跨边界,是指操作服务引擎会在不同的业务自治域内提供服务。
由于上述原因,支持操作服务引擎的组件服务部署情形非常复杂。这些服务可能以COM、CORBA、EJB、Servlet、Web Service等多种形式存在,它们可以是同一个自治域内跨系统部署的,也可以是跨边界部署的,因为多引擎协作平台需要尽可能多的组件服务以扩展其功能。操作服务引擎在完成源到目标的映射动作后需要即刻触发组件的服务,从设计规范化角度考虑,操作服务引擎需要以一种统一的方式触发组件的服务。这种方式就由我们所说的组件适配器来提供。
目前市场上适配器类产品的主流供应商有TIBCO和IBM等公司。适配器产品形态可以分为两类,一类是信息总线的适配器(Information BusAdapter),一类是业务集成代理适配器(Business Integration BrokerAdapter)。
TIBCO公司的适配器是基于信息总线的适配器,它的主要功能是支持分布式系统间的信息交换,共享TIBCO作为专利技术提供的信息总线。TIBCO提供的适配器已达到60种,包括应用适配器、网络技术适配器、数据库适配器、以及定制应用适配器等多种类型。它们支持应用数据交互、网络分布式系统信息交互、数据库数据同步交互、以及定制应用系统的信息交互、集成、共享信息总线平台等多种功能。
IBM公司的WebSphere业务整合适配器是业务集成代理适配器的典型代表。这类适配器支持网络分布式应用系统、数据库系统、网管系统等在实际运行过程中的业务过程集成,通过提供模版和适配器,支持跨不同厂商的应用产品的业务集成。它支持的技术包括JMS、电子邮件、XML、Jtext、JDBC和SWIFT 1.0。
但是,上述适配器仍然存在许多不足之处。它们在本质上还是一个信息总线平台或者业务集成代理,主要解决的是分布式部署的组件服务如COM、CORBA、EJB等的形态差异。在具体的组件服务访问中,上述组件个体的差异仍然会有所体现。另外,上述适配器也不能实现统一的用户开发界面。

发明内容
本发明的目的在于提供一种新的组件适配器的实现方法。通过该方法实现的组件适配器可以使上层的操作服务引擎在需要完成某种操作的时候,既不需要知道所要使用的组件属于何种组件,又不需要知道使用的组件具体需要何种参数、使用何种接口。所有这些必须的信息,都由组件适配器通过协作信息总线获得,使该组件适配器自身就可以完成对业务和数据的整合。
为实现上述的发明目的,本发明采用下述的技术方案一种组件适配器的实现方法,用于实现可以屏蔽分布式部署组件的形态差异和个体差异的组件适配器,该组件适配器具有上层的组件接口一致性适配器和至少一个下层的具体组件服务接口,其中组件接口一致性适配器与紧耦合的操作服务引擎和调度引擎进行数据交换,该方法包括如下步骤所述操作服务引擎触发组件服务之后,传递给所述组件接口一致性适配器操作指令,所述调度引擎在操作服务知识库中检出操作服务引擎所要使用的组件的信息,所述组件接口一致性适配器对所述操作服务引擎的指令进行分析,确定需要适配何种组件之后,从调度引擎中获取组件服务的参数信息,再把参数信息传递给下层的至少一个具体组件服务接口,由它们调用所述操作服务引擎需要的组件服务。
与现有的适配器产品相比,本发明方法实现的组件适配器具有如下特点1.本组件适配器汇集分布存在的组件,支持在同一系统内构建业务应用。它支持一致的用户开发界面,屏蔽了分布式部署的组件的形态差异。
2.本组件适配器把多个组件的属性群集成一个业务单元数据集合,从而屏蔽了组件服务访问中个体的差异。


下面结合附图和具体实施方式
对本发明作进一步的说明。
图1为组件适配器在一种多引擎协作平台实施例中的位置示意图。
图2为组件适配器的组成结构示意图。
图3为组件适配器的运行机制示意图。
图4为操作服务知识库中必要充分条件知识库的数据结构示意图。
图5为操作服务知识库中组件描述知识库的数据结构示意图。
图6为操作服务知识库中参数描述知识库的数据结构示意图。
图7为操作服务知识库中映射规则描述知识库的数据结构示意图。
图8为组件适配器的工作流程图。
具体实施例方式
本组件适配器的实现环境是这样的在硬件方面,只需要计算机的CPU为PIII以上,内存大于256兆即可;而在软件方面则需要支持Java虚拟机的操作系统,Java虚拟机应该为J2SDK 1.3.0或者以上版本,另外还要有支持Servlet2.2及以上版本的Servlet容器。
图1所示的是本组件适配器在一种多引擎协作平台实施例中的位置示意图。这一多引擎协作平台的结构是示例性的。在不同的具体应用环境中,它的具体组成可以有所变化,但其基本的结构是不变的,即它的最顶端为具体业务应用目标,最底端为信息存储支撑平台的知识库和作为公共服务平台的J2EE应用服务器,中间部分为调度引擎和各种操作服务引擎,它们之间的联系方式为分布式组件模式。协作信息总线和组件适配器一起在其中起着不同系统之间数据交互、调度的作用。这里所提到的协作信息总线在本发明人的另一项发明专利申请——协作信息总线的实现方法中有充分地揭示,在此就不详细说明了。在本实施例中,所用到的操作服务引擎包括业务过程操作服务引擎,文本型数据操作服务引擎,关系型数据操作服务引擎,流媒体数据操作服务引擎等,一个操作服务引擎对应有一个组件适配器,该组件适配器的功能就是屏蔽这个操作服务引擎下层组件的形态和个体差异,使得操作服务引擎只需传入简单的操作指令码,组件适配器就可以自动识别所需使用组件的形态,如EJB、COM、CORBA等等,查找使用该组件所需的参数,并根据操作服务引擎传入的操作指令调用组件完成相应的操作。这里的组件适配器并不是固定不变的,它作为一种组件接口的机制,在操作服务引擎投入实际工作环境的同时就会产生,为这个从事实际工作的操作服务引擎提供向下的接口;当操作服务引擎结束工作的时候,组件适配器不再被需要,它自然结束。
如图2和图3所示,本组件适配器分为上层的组件接口一致性适配器和下层的具体组件如EJB、COM、CORBA接口两层结构。其中组件接口一致性适配器负责接收操作服务引擎传递过来的操作指令,然后根据这个操作指令自动在协作信息总线中获取匹配该操作的组件相关信息。这些信息由调度引擎在操作服务知识库中的组件描述知识库中检出,并且放入协作信息总线中以供使用。调度引擎从组件描述知识库中检出信息的过程可以采用现有的数据库检索技术实现,在此就不赘述了。在组件接口一致性适配器接收操作服务引擎传递过来的操作指令并且获得了所要使用的组件的个体信息之后,再通过使用下一层所列的具体组件接口,调用具体的组件服务。
上述组件接口一致性适配器的作用包括接收、解析操作服务引擎传入的操作指令;从协作信息总线中获取组件的相关信息,准备组件调用所必须的参数;根据所获得的组件信息和操作指令,调用合适类型的组件接口等。而下层的各类组件接口负责根据传入的调用参数以及操作指令,调用各类组件服务,完成各种组件操作。由于各类组件接口的具体构成都是公知的技术,在此就不加详细说明了。
在本组件适配器中,操作服务知识库具有特殊重要的作用操作服务引擎的工作内容及多引擎调度平台的调度顺序都从知识库获取。操作服务引擎基于数据结构知识库工作,它的工作内容由必要充分条件知识库、参数描述知识库、组件描述知识库、映射规则描述知识库共同确定。调度引擎对操作作业及作业流的管理由作业知识库和作业流知识库提供支持。图4给出了必要充分条件知识库的数据结构图。图5为组件描述知识库的数据结构图,它包括组件标识、组件地址、组件型别、属性名、属性值等内容。参数描述知识库如图6所示,它包括属性代码、属性名、属性数据类型、属性数据值域、所属业务单证等内容。图7为映射规则描述知识库的数据结构图。
上述操作服务知识库的实例就是在上述多引擎协作平台中存放在DB2数据库中的相关数据。只不过它所存放的并非业务类数据,而是操作服务引擎触发作业或者作业流时的相关参数、校验条件、描述信息等内容。在多引擎协作平台中,协作信息总线和组件适配器都需要引用其中相关的数据,这一引用过程是现有的数据库技术所能支持的,在此就不赘述了。
因为一个操作服务引擎对应有一个组件适配器,而各个操作服务引擎所要完成的操作是各不相同的,为解决这一问题,我们通过定义操作指令码来传递操作服务引擎所要完成的操作的信息。这一操作指令码的设置是这样的首先,指令码开头大写字母,表明操作服务引擎的类别,比如文档服务引擎用D来表示;其次,指令码的紧接着的两位数字,指明了操作服务引擎所要完成的工作,比如文档服务引擎要新建一个文档可以用00表示。已知操作指令的数字,可以在操作服务知识库中查询获得具体的操作含义。这样,当组件接口一致性适配器接收到C00的操作码时,就可以通过操作服务知识库中的信息,知道要做新建文档的操作。
组件接口一致性适配器给操作服务引擎提供一个操作入口,操作服务引擎通过这个操作入口来传入操作指令码,操作指令码代表了操作服务引擎所要进行的工作。在工作过程中,如果组件接口一致性适配器发现操作指令码是错误的,则返回错误信息给操作服务引擎,操作服务引擎传入正确的操作指令码,重新进行调用。如果组件接口一致性适配器获取协作信息总线中的组件信息时出错,则返回错误信息给调度引擎;如果下层的组件接口服务部件参数错误,则返回错误信息给组件接口一致性适配器,由组件接口一致性适配器重新设置参数。
如图8所示,本组件适配器的具体工作流程包括如下步骤1.由调度引擎触发,组件接口一致性适配器从组件缓冲池中读取组件地址、识别标识和属性名。
上述步骤中所述的组件缓冲池是采用数据缓存技术实现的,它在程序中读入内存,从而在需要访问组件相关信息时无需再次读取数据库。数据缓存技术作为公知技术,在此不详细说明。
组件缓冲池与上述组件描述知识库相对应,存储包括组件标识、组件地址、组件型别、属性名、属性值在内的信息,这些信息可以从各个组件的技术资料中获得。
2.调度引擎根据组件地址、识别标识和属性名在操作服务知识库中进行匹配,找出操作服务引擎所要使用组件的相关信息。如果匹配失败则返回,成功则与指定地址的组件接口一致性适配器进行数据同步。
3.组件接口一致性适配器根据不同类型组件的型别和标识准备下层相应的组件接口,例如根据COM、CORBA、EJB的国际规范准备好相应接口。这里的COM国际规范由微软公司提供,CORBA国际规范由OMG组织提供,它们在各自的网站上对此有详细的说明,在此就不赘述了。
4.组件接口一致性适配器按照接口标准在下层相应的组件接口中写入属性名和属性值,并且进行写后读校验,校验无误则成功返回。
在整个多引擎协作平台中,组件适配器是这样发挥作用的当操作服务引擎在完成源到目标的映射动作之后,就会触发一次组件服务,这时组件适配器开始发挥作用。由于协作信息总线中操作服务引擎和调度引擎之间是紧耦合,调度引擎获知操作服务引擎的需求之后,在操作服务知识库中检出操作服务引擎所需的知识,其中也包括操作服务引擎所要使用的组件的相关信息。
操作服务引擎传递给组件接口一致性适配器操作指令,组件接口一致性适配器接收到该操作指令之后,首先对这个指令进行分析,要进行何种操作,并且通过协作信息总线从调度引擎中获取组件服务的相关信息,比如参数、接口、型别;根据不同的型别,比如EJB组件服务,Com组件服务,把必要的参数信息传递给下层特定的组件服务接口,由它们调用特定的组件服务。
通过上述步骤,上层的操作服务引擎在需要完成某种操作的时候,既不需要知道所要使用的组件属于何种组件,又不需要知道使用的组件具体需要何种参数、使用何种接口。所有这些必须的信息,都由组件接口一致性适配器通过协作信息总线获得。因此,组件适配器自身就可以完成对业务和数据的整合。
需要声明的是,本发明的具体实施方式
已经对本发明的内容做了详尽的说明。对本领域的一般技术人员而言,在不背离本发明精神的前提下对它所做的任何显而易见的改动,特别是对若干部件的等同替换,都构成对本发明专利权的侵犯,将承担相应的法律责任。
权利要求
1.一种组件适配器的实现方法,用于实现可以屏蔽分布式部署组件的形态差异和个体差异的组件适配器,该组件适配器具有上层的组件接口一致性适配器和至少一个下层的具体组件服务接口,其中组件接口一致性适配器与紧耦合的操作服务引擎和调度引擎进行数据交换,其特征在于该方法包括如下步骤所述操作服务引擎触发组件服务之后,传递给所述组件接口一致性适配器操作指令,所述调度引擎在操作服务知识库中找出操作服务引擎所要使用的组件的信息,所述组件接口一致性适配器对所述操作服务引擎的指令进行分析,确定需要适配何种组件之后,从调度引擎中获取组件服务的参数信息,再把参数信息传递给下层的至少一个具体组件服务接口,由它们调用所述操作服务引擎需要的组件服务。
2.如权利要求1所述的组件适配器的实现方法,其特征在于所述具体组件服务接口包括EJB、COM、CORBA、SERVLET组件接口中的至少一个。
3.如权利要求1所述的组件适配器的实现方法,其特征在于所述操作服务知识库具有包括数据结构知识库、必要充分条件知识库、参数描述知识库、组件描述知识库、映射规则描述知识库在内的内容。
4.如权利要求1所述的组件适配器的实现方法,其特征在于所述组件接口一致性适配器对所述操作服务引擎的指令进行分析的步骤包括(1)所述组件接口一致性适配器接收所述操作服务引擎发送的操作指令码;(2)所述组件接口一致性适配器读取所述操作指令码的头一位,头一位为大写字母,表明操作服务引擎的类别;(3)所述组件接口一致性适配器读取所述操作指令码的后两位,该两位数据表明所述操作服务引擎所要完成的工作内容。
5.如权利要求1所述的组件适配器的实现方法,其特征在于如果所述组件接口一致性适配器发现操作指令码是错误的,则返回错误信息给所述操作服务引擎,操作服务引擎再传入正确的操作指令码,重新进行调用。
6.如权利要求1所述的组件适配器的实现方法,其特征在于如果所述组件接口一致性适配器获取协作信息总线中的组件信息时出错,则返回错误信息给所述调度引擎。
7.如权利要求1所述的组件适配器的实现方法,其特征在于如果下层的具体组件服务接口参数错误,则返回错误信息给所述组件接口一致性适配器,由所述组件接口一致性适配器重新设置参数。
8.如权利要求1所述的组件适配器的实现方法,其特征在于所述组件接口一致性适配器从组件缓冲池中读取组件地址、识别标识和属性名;所述组件缓冲池中的内容与所述组件描述知识库中的内容相对应。
9.如权利要求1所述的组件适配器的实现方法,其特征在于所述调度引擎根据组件地址、识别标识和属性名在所述操作服务知识库中进行匹配,找出所述操作服务引擎所要使用组件的信息。
全文摘要
一种组件适配器的实现方法,用于实现可以屏蔽分布式部署组件的形态差异和个体差异的组件适配器。该组件适配器具有上层的组件接口一致性适配器和至少一个下层的具体组件服务接口,其中组件接口一致性适配器与紧耦合的操作服务引擎和调度引擎进行数据交换。操作服务引擎触发组件服务之后,传递给组件接口一致性适配器操作指令,调度引擎在操作服务知识库中找出操作服务引擎所要使用的组件的信息,组件接口一致性适配器对操作服务引擎的指令进行分析,确定需要适配何种组件之后,从调度引擎中获取组件服务的参数信息,再把参数信息传递给下层的至少一个具体组件服务接口,由它们调用操作服务引擎需要的组件服务。
文档编号G06F3/00GK1570812SQ03145980
公开日2005年1月26日 申请日期2003年7月18日 优先权日2003年7月18日
发明者怀进鹏, 张文燚, 刘旭东, 李扬, 杜宗霞, 付纪东 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1