用于连接不同对象类型的服务器和客户机的方法和网桥的制作方法

文档序号:7725260阅读:210来源:国知局
专利名称:用于连接不同对象类型的服务器和客户机的方法和网桥的制作方法
技术领域
本发明涉及用于将客户机与服务器计算机连接的网桥以及对应的方法、计算机系统和计算机程序。
从美国专利US H0001895中已知一种用于通信的应用提供者和方法。提供了一种供应用提供者在公共节点的第一子系统与第二子系统之间通信的方法。
例如,应用提供者可以是个移动应用提供者,第一和第二子系统可以是家庭位置寄存器和访问者位置寄存器,公共节点可以是个无线电信系统。该系统是通过一个诸如由对象管理组(OMG)定义的公共请求中介体系结构(CORBA)的对象请求中介(ORB)实现的。资源管理器应用起着在呼叫处理器和资源组合之间的“网桥”或“管道”的作用。
美国专利6,094,688公开了一种模块化应用协作系统,包括在源的过滤和为保留服务器资源的补偿事务处理的代理执行。该系统提供在包括多个用于与类似的多个应用和交换服务器通信的连接器的应用之间的互操作性。
交换服务器包括应用协作模块和服务模块。服务模块在连接器和应用协作模块之间传递消息。应用协作定义两个或多个应用之间的互操作性。交换服务器服务模块包括事务处理服务和错误服务。事务处理是在应用协作模块中执行的。
美国专利6,085,220公开了一种用于管理企业网络系统的企业互动网络中心(hub)。企业互动网络中心包括许多为管理企业网络系统而互动的层。
一个互动层接收对企业网络系统的请求并返回响应网页。一个表示(presentation)层与互动层相连以生成响应网页。一个业务(business)层与表示层相连以提供业务逻辑供表示层在生成响应网页时使用。
一个集成(integration)层与业务层相连并与现有的遗留数据接合以便把遗留数据提供到业务层。一个趋势收集(trendcollection)层从互动层、表示层、业务层和集成层监视和积累历史信息。趋势收集层还在趋势数据库中存储历史数据。
一个能被表示层和业务层访问的概要(profile)数据库存储着包括从趋势数据库中采集的数据的概要数据,概要数据描述对企业网络系统的个别用户访问的特征。概要数据被表示层和业务层用来在生成的网页中提供定制的动态内容。
美国专利6,085,030公开了一种网络部件服务器。部件服务器体系结构使计算机网络的消费者节点既能与网络设备和数据、又能与分布在网络上的异类的软件部件和服务互动。
消费者和异类软件之间的分布式互动部分地是通过注册和定位部件和服务而实现的。体系结构的一个具有访问控制的对象中性全局部件注册表与部件管理服务进行交互操作,以便透明地确保对响应于来自在消费者节点上执行的应用程序的请求而提供的部件进行适当管理、指示和运行时间约束访问(binding access)。
该体系结构可在网络的部件服务器节点上实现,部件服务器节点被设置成与在客户机-服务器安排中的消费者节点-即客户机、节点通信。就是说,部件服务器节点的部件注册表通过为消费者定位一个异类的部件而响应消费者应用请求。注册表通过提供一个在软件部件的对象模块之间的适当接口而提供这个部件给消费者。这个注册表被组织成多个协作的存储实体,包括描述存储库(repository)、提供(offer)存储库、接口适配器存储库和对象工厂存储库。
提供一个部件服务器体系结构以便与分布在整个网络上的异类软件部件和服务以及网络设备和数据交互作用。消费者与异类软件之间的分布式交互作用部分地是通过注册和定位部件和服务而实现的。
具有体系结构的访问控制的对象中性全局部件注册表与部件管理服务(CMS)相互操作,以便透明地确保对响应于来自在消费者节点上执行的应用程序的请求而提供的部件的适当管理、验证和运行时间约束访问。该体系结构在网络的部件服务器节点上实现,该部件服务器节点被设置成与在客户机-服务器安排中的消费者节点一即客户机、节点通信。就是说,部件服务器节点的部件注册表通过为消费者定位一个异类的部件而响应消费者应用请求。注册表通过提供一个在消费者的对象模块与软件部件的对象模块之间的适当接口而提供这个部件给消费者。
这个注册表最好被组织成多个协作的存储实体,包括描述存储库、提供存储库、接口适配器存储库和对象工厂存储库。
美国专利5,913,061公开了一种模块化应用协作器,用于提供应用程序之间的交互操作性,包括多个用于与同样多的应用程序通信的连接器和一个交换服务器。交换服务器包括一个应用协作模块和一个服务模块。
服务模块在连接器与应用协作模块之间传输消息。应用协作模块定义两个或多个应用程序之间的交互操作性并且包括一个触发器和一个响应触发器的事务处理。触发器在从一个或多个连接器收到数据时被启动,导致该事物处理把数据递送到一个或多个连接器,用于传输到相关联的应用程序。
美国专利6,115,646公开了一种动态和通用过程自动化系统。它包括一个在异类分布式计算环境中提供工作流管理服务的通用的面向对象的过程自动化引擎。该系统由三个主要部分组成用于捕获和存储过程定义以及请求制订某个过程的建立时间部分;用于调度、执行、和监测被请求过程的运行时间部分;用于为执行过程以及允许系统部件之间的交互作用所需要的CORBA到软件插件(plug-in-software)应用程序。该系统是事件驱动的,提供进度计划和资源分配方案。
该系统能设立提供对象的“黄页”的商业服务;它允许对象宣传它们的服务并允许客户根据客户需要的服务来寻找它们。例如,资源分配器能用该服务来寻找满足某代理约束条件集合的资源。
以上引述的现有技术的系统和方法多数依赖于面向对象的软件技术,诸如CORBA。SORBA是一种独立于卖者(vendor)的、供计算机应用程序用来在网络上共同工作的体系结构和基础设施。在CORBA中,每一个对象实例都有自己独有的对象引用(reference),即标识电子记号(identifying electronic token)。
客户机使用该对象引用来指导它们的调用,从而向对象请求中介标识它们想要调用的准确的实例。客户机看起来像在调用一个对对象实例的操作,但它实际上在调用起代理作用的IDL短线(stub)。经过客户机端的短线,该调用经过对象请求中介和实现端上的骨架(skeleton)继续下去,以便获得它在服务器上被执行所在的对象。
对象请求中介提供一种用于透明地把客户机请求传送给目标对象实现的机制。对象请求中介通过使客户机与方法调用的细节脱离而简化分布式程序设计。这使得客户机请求看起来是本地过程调用。当客户机调用一个操作时,对象请求中介负责寻找对象实现,在必要时透明地启动它,把请求传递给对象并把任何响应返回给调用者。
IDL短线和骨架起着在客户机和服务器应用程序分别与对象请求中介之间的“胶水”的作用。在IDL定义与目标程序设计语言之间的转换由IDL编译器自动进行。编译器的使用,减少了客户机短线与服务器骨架之间潜在的不一致性,并增加了自动化编译器优化的机会。
另一个重要的面向对象的技术是企业Java豆(Beans)。企业Java豆为能被“插入”到服务器的部件提供一种架构从而扩展服务器的功能。客户机程序通过企业Java豆对象执行远程企业Java豆上的方法。企业Java豆对象实现服务器上的EJB部件的“远程接口”。
CORBA和企业Java豆对象技术的一个共同缺点是在公司内部网上可得到的对应的应用不能从因特网通过防火墙访问。
由于这个原因和其它原因,各公司已经开始用简单对象访问协议(SOAP)作为所选择的面向对象的技术,因为(SOAP)是防火墙兼容的。SOAP是一个用于在分散的分布式环境中交换信息的协议。这是一个基于XML的协议,包含三个部分一个定义用于描述消息中是什么以及如何处理它的架构的包封(envelop);一个用于表达应用的实例-定义的数据类型一的编码规则集合;和一个用于表示远程过程调用和响应的规约。SOAP能被组合在HTTP扩展架构内使用。
图1表示一个现有技术的网络的例子。该网络包括由防火墙3隔开的因特网1和内部网2。SOAP客户机4通过因特网1连接到SOAP服务器5。
在公司的内部网2内,CORBA客户机6和EJB客户机7分别与CORBA服务器8和EJB服务器9相连。
因为CORBA和EJB客户机6、7与它们各自的服务器8、9之间的紧密连接,服务器8和9的应用程序不能从因特网1通过防火墙3被访问。因此SOAP客户机4只能在因特网1上访问SOAP服务器5-或者图1中没有示出的其它服务器,但是不能访问在公司内部网2中的服务器8或9上提供的应用程序。对于向顾客提供各种应用来说,这是一个严重的缺点,在现有的CORBA和/或EJB系统可用时尤其如此。
本发明的目的是为上述现有技术问题提供一种解决方案,并提供一种用于连接不同类型的客户机和服务器对象的方法,以及对应的计算机系统、方法和计算机程序产品,它们如各独立权利要求所述。从属权利要求中给出了最佳实施例。
本发明允许将例如SOAP客户机的第一对象类型的客户机与例如CORBA或EJB服务器的第二对象类型的服务器相连。可以通过因特网、内部网或防火墙上实现这种连接。
在最佳实施例中,这是通过提供一个网桥来实现的,该网桥用于连接服务器与不同对象类型的客户机部件,以便提供一个在相应的客户机与服务器之间通过该网桥的通信路径。该网桥含有一个映射部件,用于将第一类型的对象映射到第二类型的对象,例如将SOAP对象映射到CORBA或EJB对象,反之亦然。
本发明的优点在于,它通过再使用已经存在的CORBA和/或EJB服务器的客户机短线以及通过创建一个通用元程序(meta program)从而通过访问预先设置的信息以便定位初始环境和家庭,从而允许取消为SOAP生成的对象使用短线/骨架的要求。基于SOAP的客户机必须规定对象名、方法名和参数。
此外,网桥的统一资源定位器是与CORBA和/或EJB应用功能一起向web目录公开的,因此web服务请求者(在确定只能通过CORBA和/或EJB协议访问他们“真正的”服务提供者后)可以访问网桥,网桥然后将“代理中的”请求转送到实际的CORBA和/或EJB服务。一个应用是在黄页类型的服务器中存储网桥的统一资源定位器。
这样,本发明就能在各个应用部分分布在被防火墙隔离的因特网和内部网的情况下实现分布式应用服务。这对在这种环境中不能通过防火墙的现有应用的使用尤其重要。


下面参考附图详细解释本发明,附图中图1是一个具有不同对象类型的服务器和客户机的现有技术的计算机系统;图2是一个具有本发明的网桥的实施例的计算机系统;图3是图2的计算机系统,具有用于定位因特网和/或内部网中的应用服务的黄页服务器;和图4是本发明的连接不同类型的对象的实施例的流程图。
发明详细说明图2表示一个计算机系统,图中的用相同编号表示与图1中相同的部件,该计算机系统具有由因特网1相连的SOAP客户机4和SOPAP服务器5。网桥10包含在内部网2中,内部网经防火墙18与因特网1连接。内部网2进一步包含CORBA客户机6和EJB客户机7,它们分别与CORBA服务器8和EJB服务器9相连。
网桥10含有SOAP服务器部件11和SOAP部件客户机12。SOAP服务器部件11用于通过因特网1在SOAP客户机4与网桥10之间建立通信路径,而SOAP客户机12用于通过因特网1在SOAP服务器5与网桥10之间建立通信路径,这与特定的应用有关。
网桥10进一步包含EJB客户机部件13和EJB服务器部件14。EJB客户机部件13用于在网桥10与EJB服务器9之间建立通信路径,而BJB服务器部件14用于通过内部网2在EJB客户机7与网桥10之间建立通信路径。同样,网桥10含有CORBA客户机部件15和CORBA服务器部件16。CORBA客户机部件15用于在网桥10与CORBA服务器8之间建立通信路径,而CORBA服务器部件16用于建立CORBA客户机6与网桥10之间的通信路径。
网桥10进一步包含映射部件17,用于第一类型的对象向第二类型的对象的映射和/或对应的方法请求和参数的映射。例如,映射部件17能在运行时把一个基于SOAP的方法请求映射到一个CORBA或EJB方法调用。同样,映射部件17能把CORBA和/或EJB方法调用映射到基于SOAP的方法请求。
网桥10有统一资源定位器以及其它服务器和客户机实体(entities),如图2中所示的那样。
SOAP客户机4的通常操作是通过因特网1用一个应用程序请求访问SOAP服务器。如果所需的应用程序不是一个SOAP应用程序,而是—如本例中的—在内部网2的服务器上运行的CORBA或EJB应用程序,则SOAP客户机4必须首先访问网桥10。
这是例如通过向SOAP客户机4提供网桥10的统一资源定位器而进行的。SOAP客户机4的这个访问请求也包括一个用于指示所需应用程序的对象类型的参数和/或用于输入到远程服务器上的应用程序的其它参数。
SOAP客户机4的基于网桥10的统一资源定位器的访问请求可以调用在SOAP客户机4看来是个普通SOAP服务器的SOAP服务器部件11。因此,SOAP客户机4的操作不需要在任何方面被修改。根据所需应用程序的对象类型,该对象类型的对应客户机部件由网桥10选择。
例如,SOAP客户机4希望访问服务器8上的CORBA类型的应用程序。这是由SOAP客户机4通过在其访问请求中规定应用程序的对象类型而向网桥10指示的。根据这个对象类型的指示,CORBA客户机部件15被网桥10选择并启动。
CORBA客户机部件15在CORBA服务器8看来是个普通CORBA客户机;因此,无需对CORBA服务器8的操作作任何方面的修改,就能集成到图2的计算机系统中。这样就在SOAP客户机4与SOAP服务器部件11之间以及CORBA客户机部件15与CORBA服务器8之间建立起通信路径。
SOAP客户机4的基于SOAP的方法请求可以被网桥10通过其SOAP服务器部件11接收。它被从这里输入到映射部件17。映射部件17提供一个具有与所输入的基于SOAP的方法请求相同的功能的CORBA方法调用。这个CORBA方法调用被输入到CORBA客户机部件15并从这里被传输到CORBA服务器8。
这就在CORBA服务器8上调用了所需的应用程序。SOAP客户机4所提供的参数数据被输入到CORBA服务器8的应用程序。例如,CORBA服务器8的应用程序可能是个金融服务应用程序,诸如投资组合管理或者财务计划编制。
在这种情况下,SOAP客户机4所提供的输入参数可能是该应用程序的分析所依据的股票市场数据等数据。该应用程序的这些输入参数被从SOAP客户机4传输到SOAP服务器部件11,并通过映射部件17和CORBA客户机部件15被传输到CORBA服务器8。
图3表示另一个具有额外的黄页类型的服务器19的最佳实施例。服务器19有一个数据库,该数据库含有许多可用的应用服务和对应的应用服务的对象类型以及应用服务的统一资源定位器。数据库可以通过关键词检索,例如通过布尔关键词检索。SOAP客户机5能通过因特网1连接到服务器19,以便查询服务器19,从而定位所需要的应用服务。
由SOAP客户机4输入到服务器19中的一个对应的查询产生一个命中列表,SOAP客户机4可以从该命中列表中选择一个特定的应用服务。通过选择这个命中列表上的应用服务,应用服务的对象类型以及其统一资源定位器被提供给SOAP客户机4。此外,数据库也含有网桥10的一个统一资源定位器,用于提供对一个希望的应用服务的通信路径。网桥10的这个统一资源定位器也由服务器19提供给SOAP客户机4。
例如,所希望的财务服务应用程序的是CORBA对象类型的。由于CORBA对象类型与SOAP对象类型不同,因此推断在SOAP客户机4中只能通过网桥10访问所希望的CORBA服务器8。因此,SOAP客户机4通过网桥10的统一资源定位器进行对网桥10的访问操作,把应用服务的对象类型和统一资源定位器提供给网桥10。另外的用于输入到应用服务程序的输入参数也可以由SOAP客户机4提供。
网桥根据该希望的应用服务的对象类型和统一资源定位器,在其CORBA客户机部件15(参看图2)与其CORBA服务器8之间建立一个通信链路。这样,SOAP客户机就能与CORBA服务器8通信,如结合图2所详细解释得那样。
图4表示本发明方法的一个最佳实施例。在步骤20中,SOAP客户机执行对黄页类型服务器的访问操作,以确定所希望的应用程序。在步骤21中,SOAP客户机查询黄页服务器,以寻找所希望的应用程序的统一资源定位其以及它的对象类型。此外,对访问该应用程序的查询还生成对应的网桥的URL。
在步骤22中,确定该应用的对象类型是否是“SOAP”类型。
如果是,SOAP客户机在步骤23中通过把应用服务的URL输入到其web浏览器程序而直接连接到该应用服务。
如果不是,SOAP客户机则在步骤24中从黄页服务器获得网桥的URL,以便在步骤25中通过这个URL访问网桥。
在步骤26中,网桥被提供以所希望的应用服务的URL以及另外的参数,诸如表示该应用程序的对象类型的数据以及应用程序的输入参数。
在步骤27中,网桥根据SOAP客户机请求所提供的URL建立一个通往含有所希望的应用服务的服务器的通信路径。建立该通信路径后,就可以在步骤28中开始通过网桥在SOAP客户机与应用服务器之间进行通信。
经过网桥的服务器部件和CORBA客户机部件的通信是通过网桥的中间映射部件建立和保持的。
同样可能通过使用网桥10的对应的客户机和服务器部件建立CORBA客户机和SOAP服务器之间或者EJB客户机和SOAP服务器之间的通信。这样,可以依赖被分布在由防火墙分开的不同种类的网络上的各种对象类型应用建立分布式应用服务。
权利要求
1.用于将第一对象类型的客户机(4)与第二对象类型的服务器(8,9)相连接的网桥,该网桥包含第一对象类型的服务器部件(11)、第二对象类型的客户机部件(13)和用于将第一对象类型的对象映射到对应的第二对象类型的对象的映射部件(17)。
2.权利要求1的网桥,其中第一对象类型是简单对象访问协议(SOAP)类型。
3.权利要求1或2的网桥,其中第二对象类型是企业Java豆(EJB)类型或公共对象请求中介体系结构(CORBA)类型。
4.权利要求1、2或3的网桥,具有用于通过因特网连接到第一对象类型的客户机的装置。
5.前述权利要求的任何一项的网桥,具有用于通过因特网连接到服务器的装置。
6.前述权利要求的任何一项的网桥,具有一个分配的、用于从客户机访问该网桥的统一资源定位器(URL)。
7.前述权利要求的任何一项的网桥,进一步包含一个接收部件,用于接收服务器的统一资源定位器和为选择第二对象类型客户机部件而指示第二对象类型的参数数据。
8.前述权利要求的任何一项的网桥,包含一个接收部件,用于接收应作为提供给服务器的输入数据的应用程序特定的参数。
9.一种计算机系统,具有一个第一对象类型的客户机计算机和一个按照前述权利要求1-9的任何一项用于在该客户机计算机与一个第二对象类型的服务器计算机之间建立通信路径的网桥。
10.权利要求9的计算机系统,具有在通信路径中的防火墙部件(18)。
11.权利要求9或10的计算机系统,其中,客户机计算机具有用于访问黄页类型的服务器的装置,该装置用于查询黄页类型的服务器,以便获得所需的服务器计算机的位置的统一资源定位器。
12.权利要求11的计算机系统,其中,黄页服务器提供应用程序的对象类型,并且在服务器对象类型和客户机对象类型不同时还提供网桥的统一资源定位器。
13.一种把客户机连接到服务器的方法,包含以下步骤将客户机连接到权利要求1-9的任何一项的网桥;向网桥提供服务器的统一资源定位器并向网桥提供指示服务器的对象类型的参数数据;通过具有与服务器相同的对象类型的网桥的客户机部件将网桥连接到服务器。
14.权利要求13的方法,进一步包含以下步骤由客户机查询黄页类型的服务器,以寻找所需的应用程序;向客户机提供应用程序的统一资源定位器和应用程序的对象类型;和从客户机向网桥提供应用程序的统一资源定位器。
15.一种用于自动地将第一对象类型的客户机连接到第二对象类型的服务器的系统,该系统包含适于执行按照权利要求13或14的任何一项的方法的步骤的装置。
16.一种用于在数据处理系统中执行的数据处理程序,当该程序在计算机上运行时,该程序包含的软件代码部分执行按照权利要求13或14的任何一项的方法。
17.一种存储在计算机可使用的介质上的计算机程序产品,包含计算机可读的程序装置,用于使计算机当该程序在计算机上运行时执行按照权利要求13或14的任何一项的方法。
全文摘要
计算机系统具有诸如SOAP、CORBA和/或EJB等不同的对象模型的客户机和服务器。为了将SOAP客户机连接到CORBA或EJB服务器,采用一个含有对应的服务器和客户机部件以及用于将一种类型的对象和方法请求映射到另一种的映射部件的网桥10。这样就能提供分布式应用服务。
文档编号H04L29/06GK1511283SQ02805761
公开日2004年7月7日 申请日期2002年2月5日 优先权日2001年3月1日
发明者T·加格雅, T 加格雅, 6, H·费希尔, W·塔霍恩, 舳 申请人:国际商业机器公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1