适配器的利记博彩app

文档序号:7598999阅读:284来源:国知局
专利名称:适配器的利记博彩app
技术领域
本发明属于应用中间件平台范畴,特别涉及一种适配器。
背景技术
适配器主要是利用中间件技术,在遗留系统的功能组件与支撑平台之间增加一个适配器中间层,通过适配器层对遗留系统的数据、功能和协议进行统一描述,向管理平台提供统一的访问接口,从而屏蔽遗留系统之间相互访问的差异,达到不同系统之间进行互操作的目的。
随着电信网络和技术的蓬勃发展,我国电信行业已经从高速发展的网络建设阶段逐渐转入追求网络质量保证和能够提供多种业务的良好的运营管理阶段。电信运营商们目前是采用多种电信运营管理应用软件为用户提供各种不同的服务。因此,建立能够集成多个异构的电信管理软件系统功能的电信运营管理支撑平台是十分必要的。

发明内容
本发明的目的在于,为了解决了电信运营管理支撑平台在集成现有遗留的电信应用软件系统中相互访问和数据共享的异构性问题,从而提供一种适配器,以整合和集成现有的电信遗留系统。
本发明的技术方案所提供的适配器,用于实现遗留系统和新开发平台之间的交互,所述适配器,包括服务发布模块、注册模块、消息处理模块和服务调用模块;
所述服务发布模块,用于解析遗留系统业务组件生成相应的XML(Extensible Marked Language)格式的服务描述文件,该描述文件描述遗留系统所能提供的服务以及与该服务相关位置信息和接口参数;所述注册模块,用于读取并解析适配器的描述文件和遗留系统的服务描述文件,并将解析得到的适配器的注册信息和遗留系统的服务信息注册到新开发平台的消息总线上;所述消息处理模块,用于根据传输协议处理消息,解析消息总线上以JMS(Java Messaging Service)协议或HTTP(HyperText TransferProtocol)协议传输的消息得到调用SOAP(Simple Object Access Protocol)消息体,和封装服务调用模块返回的调用结果的SOAP消息体;所述服务调用模块,用于解析调用SOAP消息体,根据服务发布模块生成的服务描述文件,定位所要调用的服务并将调用结果以SOAP消息体的形式返回给消息处理模块。
所述服务发布模块通过解析遗留系统业务组件的程序代码,生成服务描述文件。
所述服务描述文件以XML格式描述功能组件所提供的服务的名称、服务调用类型、服务所对应的类的名称和相对位置、服务传入参数的类型和名称、返回参数的类型和名称。
所述服务注册模块包括适配器的注册模块和遗留系统的服务注册模块。
所述适配器的注册信息包括适配器名称(adapterName)、适配器IP地址(addr)、适配器类型(type)、适配器编号(adapterId)、服务配置文件(Server_Config_file)。
所述遗留系统的服务注册信息包括服务的名称、服务的WSDL(Web Service Description Language)文件所在位置、服务的附加说明、服务所属的适配器的名称。
所述消息处理模块用于侦听来自总线上JMS协议或HTTP协议传输的消息并返回调用结果,其包括消息解析单元和消息封装单元;所述消息解析单元,根据消息总线的传输协议格式,选择相应的处理方式对消息进行解析获得调用SOAP消息体,并同时记录消息来源;所述消息封装单元,根据消息总线的传输协议格式,将服务调用模块返回的调用结果的SOAP消息体封装生成消息,根据上述所记录的消息来源,通过消息总线将该消息发送到发起调用的相应业务组件或平台的相关部件相应地点。
所述接口参数包括所要调用的服务的类名称、服务中的方法的名称、方法中输入参数的名称和类型。
如图1和图2所示,遗留系统或新开发组件(在此,统称为业务组件)通过适配器连接到平台的消息总线,并通过消息总线与平台的其它功能部件交互。这里,适配器的工作包含两个方面,一方面工作是将各业务组件的功能注册到消息总线以供其他组件查询;另一方面是处理消息总线对遗留系统业务组件的调用信息,并向遗留系统返回调用结果。
其中,服务发布模块解析遗留系统业务组件的功能,生成相应的具有XML格式的服务描述文件。注册模块读取适配器配置文件并解析服务描述文件,将适配器信息以及其连接的业务组件的服务信息注册到消息总线上,然后等待接收总线上传来的调用信息。这样,平台上的其他业务组件可通过注册信息发现适配器连接的业务组件提供的服务。一旦总线上有SOAP信息传给适配器时,消息处理模块解析消息的内容,获取调用服务所必须的接口参数,并将这些信息传送给服务调用模块。服务调用模块按照传来的接口参数解析服务描述文件,对服务在遗留系统业务组件中的位置进行定位并调用之。最后,消息处理模块将服务调用模块返回的结果包装成总线所能传输和可识别的SOAP消息,返回给消息总线。
由于平台的消息总线通常采用多种传输协议进行消息传输,如JMS或HTTP协议等,因此适配器需具备对这些传输协议进行自行配置的功能,以便使总线能够适应不同传输协议的需要。另外,由于各个遗留系统可能使用不同语言开发,为了屏蔽各遗留系统在传输消息格式上的异构性,消息总线上传输的消息多采用SOAP消息格式,如此,适配器需通过对遗留系统进行发布和解析等操作,以便实现对遗留系统的异构数据的不同处理方法和处理协议的统一描述,最终实现对遗留系统的集成。
本发明的优点在于,本发明采用适配器技术来屏蔽异构系统在数据、方法和协议上的差异,对遗留系统进行集成和整合,实现了异构系统之间的相互访问和协作,异构信息的共享以及支持新开发业务组件的即插即用以及动态发现,实现遗留系统与运行平台之间的互通。本发明也可应用于需要系统集成及异构系统相互访问的其他行业中。


图1为本发明应用于电信运营管理平台的体系结构图2为本发明的适配器的结构示意3为本发明的适配器的服务发布模块的工作流程4为本发明的适配器的注册模块的工作流程5为本发明的适配器的消息解析模块的工作流程6为本发明的适配器的消息转发的工作流程7为本发明的适配器的调用SOAP消息解析的工作流程8为本发明的适配器的返回消息的SOAP封装的工作流程图具体实施方式
下面以电信运营管理支撑平台为例描述本发明的适配器。
该适配器主要是利用中间件技术,在遗留系统或功能组件与支撑平台之间增加一个适配器中间层,通过适配器层对遗留系统的数据、功能和协议进行统一描述,向管理平台提供统一的访问接口,从而屏蔽遗留系统之间相互访问的差异,达到不同系统之间进行互操作的目的。
如图2所示,适配器主要由服务发布模块、服务调用模块、消息处理模块、注册模块四个部分组成,各部分的功能及工作机制可描述如下1、服务发布模块服务发布模块通过解析遗留系统业务组件的程序代码,生成其服务配置文件。服务配置文件被描述成XML格式的文件。文件可描述功能组件所提供的服务的名称、服务调用类型、服务所对应的类的名称和相对位置、服务传入参数的类型和名称、返回参数的类型和名称等。一个服务配置文件描述片断如下<?xml version=″1.0″encoding=″UTF-8″?>
<deployment xmlns=http//xml.apache.org/axis/wsdd/xmlnsjava=″http//xml.apache.org/axis/wsdd/providers/java″>
<servicename=″FaultdispatchSessionFacadeTestClient4″provider=″javaRPC″>
<parameter name=″allowedMethods″value=″faultsDispatch″/>
<parameter name=″scope″value=″Request″/>
<parameter name=″className″value=″pjt_dispatch_fault.FaultdispatchSessionFacadeTestClient4″/>
<typeMappingdeserializer=″org.apache.axis.encoding.ser.BeanDeserializerFactory″encodingStyle=http//schemas.xmlsoap.org/soap/encoding/qname=″ns1Status″serializer=″org.apache.axis.encoding.ser.BeanSerializerFactory″type=″javapjt_dispatch_fault.Status″xmlnsns1=″http//pjt_dispatch_fault″/>
</service>
</deployment>
其中,servicename表示服务的名称,allowedMethods表示服务中的具体方法,scope表示调用类型,className表示服务所对应的具体程序所在的位置,typeMapping表示服务方法中传入参数和返回值的类型。
如图3所示,适配器首先通过输入的遗留系统位置参数确定遗留系统所在的位置,然后解析指定位置的遗留系统。解析过程中,如果解析通过则根据解析的内容生成服务描述文件;如果由于位置信息出错或遗留系统本身的原因造成解析失败,则适配器会报出相应的错误并提示重新解析。
2、注册模块注册模块主要用于对适配器和遗留系统业务组件提供的服务进行注册。注册模块将适配器信息以及其下挂的功能组件的服务信息注册到消息总线上,以便其它业务组件可通过查询总线上这些信息,获得所需服务的位置信息和接口信息,从而对相关服务进行调用。
2.1适配器注册适配器注册模块将适配器信息注册给消息总线。注册信息主要包括适配器名称(adapterName)、适配器IP地址(addr)、适配器类型(type)、适配器编号(adapterId)、服务配置文件(Server_Config_file)。适配器的名称可依照相关规定自由命名;适配器IP地址是指适配器所运行的机器的IP地址;适配器的类型用来描述是哪种类型的适配器,例如,是CORBA/SOAP适配器还是EJB/SOAP适配器等;适配器类型主要取决于遗留系统的实现语言与实现方式;适配器编号主要用来唯一标识一个适配器,以便供平台或其他功能组件查询;服务配置文件位置属性用于描述服务配置文件的位置。上述的适配器信息都是从适配器配置文件中读取的,适配器配置文件如下所示adapterName=yujiguangaddr=192.168.6.188
type=EJB/soapadapterId=00001Server_Config_file=server-config-locate.wsdd适配器注册主要通过调用注册模块中的注册适配器(registerAdapter)方法实现,该方法包括三个参数,分别为适配器名称、适配器IP地址、适配器类型,这三个参数均为字符型。该方法的返回值是适配器信息(AdapterInfo)类型,该类型主要包括通过注册适配器而获得的连接工厂(connectionFactory)、命名和目录服务工厂(jndiFactory)、JMS地址(jmsUrl)、请求队列(requestQueue)、适配器编号(adapterId)以及注册时传入的适配器名称(adapterName)参数。通过获取这些参数,平台的消息总线可以与适配器建立消息通道,可通过该通道传输具体的消息内容。通道的成功建立表明适配器已经被挂接到平台上。
2.2服务注册服务注册模块将适配器接入的遗留系统业务组件的服务信息向消息总线注册,以便使平台或其他业务组件能够发现并调用这些服务,同时平台可对这些服务进行统一管理。服务注册信息主要通过解析服务的服务配置文件记录。服务配置文件是在服务发布模块生成的。服务注册信息包括服务的名称、服务的WSDL(Web Service DescriptionLanguage)文件所在位置、服务的附加说明、服务所属的适配器的名称。总线通过这些信息对适配器接入功能组件的服务进行管理和控制。
实现服务注册模块主要通过调用注册模块中的服务注册(registerService(SvcIf))方法。该方法向消息总线传入一个服务信息(ServiceInfo)类型的参数,该结构体主要包括服务名称(serviceName)、备注(comment)、wsdl文件位置(wsdl)、所属适配器名称(adapterName)这几个项目,其中serviceName是服务的名称,comment指对该服务的相关说明,wsdl是指服务的WSDL文件所处的位置,adapterName是指该服务所属的适配器的名称。该接口的返回值为布尔型,以判断服务注册是否成功。
如图4所示,首先进行适配器注册,先从适配器配置文件中读取适配器信息,接着调用适配器注册接口适配器注册(registerAdapter)方法,将从配置文件中读取的适配器信息作为调用参数。如果调用失败,则报出相应错误并转回读取配置文件步骤重新开始,如果调用成功,则进行服务注册。进行服务注册时,首先要读取服务描述文件,从中读取服务描述信息,接着调用服务注册接口服务注册(registerService(SvcIf))方法,将服务描述信息作为调用参数。如果调用失败,则报出相应错误并转回读取服务描述文件步骤重新开始。如果调用成功,则服务注册流程结束。以上注册流程完成后,适配器便开始时刻侦听总线,一但有SOAP调用消息传来便可以进行服务的调用。
3、消息处理模块适配器的消息处理模块主要提供适配器与消息总线之间进行交互的接口,同时侦听来自总线的消息,并返回调用结果。消息处理模块主要有消息解析和消息封装两大功能;可以接受并识别总线上JMS协议或HTTP协议传输的消息。
3.1消息解析消息解析模块根据消息的传输协议的不同,选择相应的处理方式对消息进行解析,以获得SOAP消息体,同时还记录消息的来源,以便能在调用结束后向消息源返回调用结果。
如图5所示,消息处理模块首先获得总线传输来的服务调用消息,然后对消息进行分析,判断消息的传输协议的类型,同时记录消息的来源。如果分析对象是用JMS协议传递的消息,则调用JMS消息解析程序,获得JMS消息中的SOAP消息体。如果是HTTP协议传输的消息,则调用HTTP解析程序获得HTTP消息中的SOAP消息体。消息处理模块将所获得的SOAP消息体传送给服务调用模块以备调用。
3.2消息转发当服务调用结束后,服务调用模块返回的结果被送至消息处理模块,消息处理模块依据总线的传输协议格式对返回结果进行封装,并根据前面消息来源的记录,通过消息总线将消息发送到相应地点。如此,服务调用的发起方可方便地获得返回结果。
如图6所示,消息处理模块首先获得服务调用模块返回的带有调用结果的SOAP消息,并读取以前记录的消息来源,然后根据总线的传输协议格式将带有返回结果的SOAP消息封装到相应的传输协议中,最后将封装好的消息发送到消息总线上。消息总线再根据消息来源将返回结果发送到发起调用的相应业务组件或平台的相关部件。
4、服务调用模块服务调用模块主要对消息处理模块获得的服务调用SOAP消息进行解析,并将解析结果传至服务调用模块,通过服务调用模块完成最终的服务调用;同时获得返回结果后,将结果值包装成SOAP消息返回给消息处理模块。服务调用模块主要完成对调用服务的SOAP消息的解析以及对返回结果的SOAP封装两个功能。
4.1调用SOAP消息的解析服务调用模块对消息处理模块获得的服务调用SOAP消息进行解析,获取以下的服务调用参数1.所要调用的服务的类名称;2.服务中的方法的名称;3.方法中输入参数的名称和类型。在解析过程中,如果调用参数是复合类型,则须对复合类型进行反序列化,如果是简单类型,则可直接解析。模块将解析获得的上述信息传给服务调用模块,服务调用模块便可以根据这些信息,对所要调用的服务的具体方法进行定位,完成最终的服务调用。调用SOAP消息示例如下所示<soapenvEnvelopexmlnssoapenv=″http//schemas.xmlsoap.org/soap/envelope/″xmlnsxsd=″http//www.w3.org/2001/XMLSchema″xmlnsxsi=″http//www.w3.org/2001/XMLSchema-instance″>
<soapenvBody>
<ns1startRequestsoapenvencodingStyle=″http//schemas.xmlsoap.org/soap/encoding/″xmlnsns1=″DPRequestEJB″/>
</soapenvBody>
</soapenvEnvelope>
如图7所示,服务调用模块首先获得消息处理模块传来的SOAP调用消息,接下来对消息进行解析获得传入参数,如果参数中含有复类型则对复合类型进行反序列化,在传递给调用模块,如果是简单类型则直节传递给调用模块,通过调用模块调用服务,并返回调用结果。
4.2返回消息的SOAP封装当调用结束后,服务调用模块将调用返回结果以SOAP消息的形式返回给消息总线,为此,需要对返回的结果要进行SOAP封装,封装通过服务调用模块完成的。
返回结果可能存在两种情况,一种是返回结果为简单类型的数据,如字符型或整型,这时,SOAP封装的类型比较简单,只需在SOAP消息中指明返回值名称,返回值类型及具体的值。如果返回结果是复合类型,如结构体或数组,在此情况下,服务调用模块需要指明返回值中结构体的名称,结构体中各个简单类型的名称、类型、值,并将这些类型和值进行序列化。具体的编码规则遵循标准的SOAP编码规则,复合类型SOAP消息的编码示例如下<?xml version=”1.0”encoding=”UTF-8″?>
<soapenvEnvelopexmlnssoapenv=″http//schemas.xmlsoap.org/soap/envelope/″ xmlnsxsd=″http//www.w3.org/2001/XMLSchema″xmlnsxsi=″http//www.w3.org/2001/XMLSchema-instance″>
<soapenvBody>
<ns1queryFaultsResponsesoapenvencodingStyle=″http//schemas.xmlsoap.org/soap/encoding/″xmlnsns1=″FaultquerySessionFacadeTestClient2″>
<ns1queryFaultsReturn href=″#id0″/>
</ns1queryFaultsResponse>
<multiRefid=″id0″soapencroot=″0″soapenvencodingStyle=″http//schemas.xmlsoap.org/soap/encoding/″xsitype=″ns2FaultsList″xmlnssoapenc=″http//schemas.xmlsoap.org/soap/encoding/″xmlnsns2=″http//pjt_query_fault″>
<DeviceFaultList xsitype=″xsdstring″>2004-3-27 0:00:00::大运村::TRH::大运村基站设备::shenzw::</DeviceFaultList>
<TransportationFaultListxsitype=″xsdstring″>2004-3-230:0 大运村::</TransportationFaultList>
</multiRef>
</soapenvBody>
</soapenvEnvelope>
服务调用模块将封装好的SOAP消息体作为语义描述协议发送给消息处理模块,消息处理模块按照总线既定的传输协议将SOAP消息体封装后便可发送到总线上。
如图8所示,服务调用模块获得返回结果后,首先判断返回值得类型,如果结果是复合类型,则调用对复合类型进行序列化,然后,调用模块对返回值进行封装成SOAP消息体,最后传递给消息处理模块进行传输协议的封装,如果结果是简单类型,则调用服务调用模块直接进行解析封装并生成SOPA消息体,并最终传递给消息处理模块进行传输协议的封装。
本发明的异构系统集成适配器技术,是一种通用的适配技术,其实现和运行与具体的应用并无直接关系,上面所举的仅是其在电信领域的一个应用实例,实际上其不仅可以用于电信领域也可以用于其它需要系统集成及异构系统相互访问的行业应用当中。
权利要求
1.一种适配器,该适配器用于实现遗留系统和新开发平台之间的交互,其特征在于,所述适配器包括服务发布模块、注册模块、消息处理模块和服务调用模块;所述服务发布模块,用于解析遗留系统业务组件生成相应的XML(Extensible Marked Language)格式的服务描述文件,该描述文件描述遗留系统所能提供的服务以及与该服务相关的位置信息和接口参数;所述注册模块,用于读取并解析适配器的描述文件和遗留系统的服务描述文件,并将解析得到的适配器的注册信息和遗留系统的服务信息注册到新开发平台的消息总线上;所述消息处理模块,用于根据传输协议处理消息,解析消息总线上以JMS协议或HTTP协议传输的消息,得到调用SOAP消息体,和封装服务调用模块返回的调用结果的SOAP消息体,生成消息并发送到消息总线上;所述服务调用模块,用于解析调用SOAP消息体,根据服务发布模块生成的服务描述文件,定位所要调用的服务并将调用结果以SOAP消息体的形式返回给消息处理模块。
2.按照权利要求1所述的适配器,其特征在于,所述服务发布模块通过解析遗留系统业务组件的程序代码,生成服务描述文件。
3.按照权利要求1所述的适配器,其特征在于,所述服务描述文件以XML格式描述功能组件所提供的服务的名称、服务调用类型、服务所对应的类的名称和相对位置、服务传入参数的类型和名称、返回参数的类型和名称。
4.按照权利要求1所述的适配器,其特征在于,所述服务注册模块包括适配器的注册模块和遗留系统的服务注册模块。
5.按照权利要求1或4所述的适配器,其特征在于,所述适配器的注册信息包括适配器名称(adapterName)、适配器IP地址(addr)、适配器类型(type)、适配器编号(adapterId)、服务配置文件(Server_Config_file)。
6.按照权利要求1或4所述的适配器,其特征在于,所述遗留系统的服务注册信息包括服务的名称、服务的WSDL(Web ServiceDescription Language)文件所在位置、服务的附加说明、服务所属的适配器的名称。
7.按照权利要求1所述的适配器,其特征在于,所述消息处理模块用于侦听来自总线上JMS协议或HTTP协议传输的消息并返回调用结果,其包括消息解析单元和消息封装单元;所述消息解析单元,根据消息总线的传输协议格式,选择相应的处理方式对消息进行解析获得调用SOAP消息体,并同时记录消息来源;所述消息封装单元,根据消息总线的传输协议格式,将服务调用模块返回的调用结果的SOAP消息体封装生成消息,根据上述所记录的消息来源,所述消息通过消息总线发送到发起调用的相应业务组件或平台的相关部件相应地点。
8.按照权利要求1所述的适配器,其特征在于,所述接口参数包括所要调用的服务的类名称、服务中的方法的名称、方法中输入参数的名称和类型。
全文摘要
本发明涉及适配器,该适配器用于实现遗留系统和新开发平台之间的交互,包括服务发布模块,用于解析遗留系统业务组件生成相应的XML格式的服务描述文件,该描述文件描述遗留系统所能提供的服务以及与该服务相关位置信息和接口参数;注册模块,用于读取并解析适配器的描述文件和遗留系统的服务描述文件,并将解析得到的适配器的注册信息和遗留系统的服务信息注册到新开发平台的消息总线上;消息处理模块,用于根据传输协议处理消息;服务调用模块,用于解析调用SOAP消息体,根据服务发布模块生成的服务描述文件,定位所要调用的服务并将调用结果以SOAP消息体的形式返回给消息处理模块。本发明了实现遗留系统与运行平台之间的互通。
文档编号H04L29/10GK1767530SQ20041008840
公开日2006年5月3日 申请日期2004年10月29日 优先权日2004年10月29日
发明者侯丞, 康建初, 吕卫锋, 罗真, 李宁 申请人:北京航空航天大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1