服务处理系统和服务处理方法

文档序号:7803622阅读:249来源:国知局
专利名称:服务处理系统和服务处理方法
技术领域
本发明涉及计算机技术领域,具体而言,涉及一种服务处理系统和一种服务处理方法。
背景技术
随着企业业务的不断发展,企业规模不断扩大,即便是信息化程度很高的企业,内部也开始出现越来越多彼此独立的软件应用,比如根据特定业务定制开发的应用程序,从第三方软件供应商购买的软件产品,部署在网络上的在线应用,遗留的旧系统及资源(历史文件及数据库)。有些企业内各分支机构往往还根据自身需要而采用满足本组织业务需要的软件应用解决方案。有些企业虽然有统一的IT规划,但由于经营业务不同,地理位置限制,即是采用同一厂商的产品,往往也会采用异地独立部署的方案。日积月累,企业内就会形成原来越多的信息孤岛,大量的应用系统彼此隔离,数据无法被有效共享,无法从集团全局范围内挖掘有效信息,业务功能重复建设,业务流程不通畅,无法根据经营需要快速变更业务流程。如何快速、灵活的实现各种异构系统互联互通, 有效整合现有软件资产,构建随需应变的跨系统业务流程是企业面临的巨大挑战。企业内的各种软件系统由于应用场景不同,提供商不同,设计开发团队不同,往往会采用各式各样的软件平台、设计思路及开发技术,给集成工作带来很大的挑战。以往的解决方案包括点对点socket编程,构建中间表,基于消息中间件集成等,这些方案在实现系统连通时往往将协议传输和业务实现的代码混杂在一起,而且本质上只是一种数据集成, 只是解决了数据上的连通和共享,且开发效率低,后期维护和扩展困难,对集成开发人员能力要求较高。而面向服务的架构提出以一种松散耦合的方式去整合各异构系统,通过定义良好的服务实现系统间业务功能共享而不只是数据共享,各异构系统通过服务相互连接。根据具体应用系统的不同,系统间进行服务调用时需要采用不同的协议通信,传输特定格式的数据,这里称之为服务绑定,比如通过Web Service发布服务本质上就是在服务上绑定 HTTP协议(或其他协议)和传输SOAP消息,服务绑定并发布后就可以通过HTTP发送SOAP 消息实现服务调用。服务绑定可有效分离传输协议和具体业务代码,服务提供方在实现服务功能时无需考虑异构系统间通信协议及数据格式等复杂技术问题,使得业务开发人员依然可以专注于业务逻辑的实现,而无需了解各种协议传输的技术细节,这种分离还将大大提高集成系统的扩展性,大大降低系统的维护成本。在目前主流的面向服务的实现技术中,Web Service是最具代表性的一种服务绑定技术,Web Service基于现有成熟的传输协议如HTTP/HTTPS/SMTP,引用并定义了包括 XML、XSD、SOAP、WSDL、UDDI及WS-*等一系列规范,有效解决了异构系统间服务定义、服务发布、服务定位及服务调用等问题。Web Service底层传输可以通过不同通信协议实现, 比如HTTP/HTTPS、SMTP或者消息队列MQ,但无论采取何种传输方式,传输的数据必须采用满足SOAP规范的XML格式。在集成应用中,这会对服务消费方和服务提供方形成限制,因为不是每一个应用都可以很容易发送或者接收SOAP格式的消息,比如数据库,遗留文件系统,以及早期开发的VB、C/C++甚至一些在Mainframe上开发的应用。有些场景下字节流、 文本、EXCEL表格或者特定的数据格式(如卫生信息交换格式HL7)更适合在应用间作为传输的中间格式,比如同样是基于java开发的系统间进行服务调用时,序列化的java对象是最优的选择,不仅技术上实现简单,可有效降低系统开发成本,还能改善系统间服务调用的性能。相比之下,由于XML是自描述格式,消息包含较多冗余信息,大量XML格式数据的处理会对系统性能带来一定的影响。SOAP消息还有一个限制,就是SOAP消息的结构较为固定,即SOAP Header和SOAP Body,服务调用时具体操作名作为SOAP Body的第一个元素,操作名元素下包含具体参数元素。一个操作请求数据必须全部放在SOAP Body元素下,如果某个服务操作有多个参数,且每个参数希望从不同的位置取数,SOAP绑定是无法支持的。另外一些远程服务调用实现技术如JAVA RMI、EJB消息驱动Bean (MDB),也可以看作是特定的服务绑定实现,但由于语言和平台相关性,在适用范围上存在较大局限性,而 COBRA虽然实现了跨平台,但开发和使用复杂度较高,一般用于服务端分布式应用。如前所述,系统整合是企业信息化发展到一定阶段必然面临的问题和挑战,面向服务的集成可有效降低异构系统间的耦合,提高系统重用性,而服务绑定是解决异构系统间调用的有效手段。因此,需要提供一个统一的服务绑定方法,但可灵活选择协议和数据格式,且可以兼容已有的各种服务绑定技术。

发明内容
本发明所要解决的技术问题在于,提供一个统一的服务绑定方法,但可灵活选择协议和数据格式,且可以兼容已有的各种服务绑定技术。有鉴于此,本发明提供一种服务处理系统,包括服务发布装置,为服务绑定第一传输协议,并发布所述服务;协议数据处理装置,根据调用所述服务的原始请求数据的第二传输协议,从所述原始请求数据中提取调用的服务操作和所述服务操作的参数数据,并根据所述第一传输协议、所述服务操作和所述参数数据,生成新请求数据,来调用所述服务。 在该技术方案中,可以接收以不同传输协议发送的服务调用请求,并将原有传输协议转换为被调用服务的较适合的传输协议,对服务进行调用。在上述技术方案中,优选地,所述服务发布装置还配置所述服务的发布粒度;所述协议数据处理装置根据所述服务的发布粒度,确定所述服务操作在所述请求数据中的位置,以提取所述服务操作,以及根据所述服务的服务发布粒度,确定所述服务操作在所述新请求数据中的位置,并将所述服务操作设置在所述新请求数据中。在该技术方案中,保证能够准确定位请求的服务操作,从原请求数据中获取并加入到新请求数据中,以实现对该服务操作对应的服务的调用。在上述技术方案中,优选地,所述服务发布装置还配置所述第一传输协议下的参数传输方式和/或参数数据格式;所述协议数据处理装置根据预设的所述第二传输协议下的参数传输方式和/或参数数据格式,提取所述服务操作和所述参数数据,以及根据所述第一传输协议下的参数传输方式和/或参数数据格式,通过数据转换装置将所述参数数据进行转换,再生成所述新请求数据;所述服务处理系统还包括所述数据转换装置,用于进行不同参数传输方式和/或参数数据格式格式的转换。在该技术方案中,由于不同传输协议中的对参数的传输方式和数据格式的要求都不同,本方案可实现对参数的传输方式和数据格式的转换,保证参数符合不同的传输协议。在上述技术方案中,优选地,所述服务发布装置还配置所述服务中的每个服务操作的参数传输模式,其中所述参数传输模式包括合并传输模式和独立传输模式,所述服务发布装置为合并传输模式的服务操作统一配置其中所有参数数据的参数传输方式和/或参数数据格式,为独立传输模式的服务操作逐个配置其中每个参数数据的参数传输方式和 /或参数数据格式。在该技术方案中,由于服务操作中参数可能是合并传输也可能是独立传输,所以有必要根据其传输模式,统一或逐个配置每个服务操作中的参数的传输方式和数据格式。在上述技术方案中,优选地,还包括服务调用装置,为外部服务设置代理对象, 并获取所述外部服务绑定的传输协议,以通过所述代理对象和所述外部服务绑定的传输协议,来调用所述外部服务。在该技术方案中,可以实现对外部服务的调用。本发明还提供一种服务处理方法,包括步骤202,为服务绑定第一传输协议,并发布所述服务;步骤204,根据调用所述服务的原始请求数据的第二传输协议,从所述原始请求数据中提取调用的服务操作和所述服务操作的参数数据;步骤206,根据所述第一传输协议、所述服务操作和所述参数数据,生成新请求数据,来调用所述服务。在该技术方案中,可以接收以不同传输协议发送的服务调用请求,并将原有传输协议转换为被调用服务的较适合的传输协议,对服务进行调用。在上述技术方案中,优选地,所述步骤202还包括配置所述服务的发布粒度;所述步骤204具体包括根据所述服务的发布粒度,确定所述服务操作在所述请求数据中的位置,以提取所述服务操作;所述步骤206具体包括根据所述服务的服务发布粒度,确定所述服务操作在所述新请求数据中的位置,并将所述服务操作设置在所述新请求数据中。 在该技术方案中,保证能够准确定位请求的服务操作,从原请求数据中获取并加入到新请求数据中,以实现对该服务操作对应的服务的调用。在上述技术方案中,优选地,所述步骤202还包括配置所述第一传输协议下的参数传输方式和/或参数数据格式;所述步骤204具体包括根据预设的所述第二传输协议下的参数传输方式和/或参数数据格式,提取所述服务操作和所述参数数据;所述步骤206 具体包括根据所述第一传输协议下的参数传输方式和/或参数数据格式,将所述参数数据进行转换,再生成所述新请求数据。在该技术方案中,由于不同传输协议中的对参数的传输方式和数据格式的要求都不同,本方案可实现对参数的传输方式和数据格式的转换,保证参数符合不同的传输协议。在上述技术方案中,优选地,所述步骤202具体包括配置所述服务中的每个服务操作的参数传输模式,其中所述参数传输模式包括合并传输模式和独立传输模式,为合并传输模式的服务操作统一配置其中所有参数数据的参数传输方式和/或参数数据格式,为独立传输模式的服务操作逐个配置其中每个参数数据的参数传输方式和/或参数数据格式。在该技术方案中,由于服务操作中参数可能是合并传输也可能是独立传输,所以有必要根据其传输模式,统一或逐个配置每个服务操作中的参数的传输方式和数据格式。
在上述技术方案中,优选地,还包括为外部服务设置代理对象,并获取所述外部服务绑定的传输协议,以通过所述代理对象和所述外部服务绑定的传输协议,来调用所述外部服务。在该技术方案中,可以实现对外部服务的调用。通过以上技术方案,本发明实现一种服务处理系统和一种服务处理方法,可灵活地选择协议和数据格式,且可以兼容已有的各种服务绑定技术。


图1是根据本发明的一个实施例的服务处理系统的框图;图2是根据本发明的一个实施例的服务处理方法的流程图;图3是根据本发明的一个实施例的服务处理系统的示意图;图4是根据本发明的一个实施例的服务处理系统的工作流程图;图5是根据本发明的一个实施例的服务处理系统的工作流程图;图6是根据本发明的一个实施例的服务处理系统的示意图;图7是根据本发明的一个实施例的服务处理系统的示意图;图8是根据本发明的一个实施例的服务处理系统的示意图。
具体实施例方式为了能够更清楚地理解本发明的上述目的、特征和优点,下面结合附图和具体实施方式
对本发明进行进一步的详细描述。在下面的描述中阐述了很多具体细节以便于充分理解本发明,但是,本发明还可以采用其他不同于在此描述的其他方式来实施,因此,本发明并不限于下面公开的具体实施例的限制。图1是根据本发明的一个实施例的服务处理系统的框图。如图1所示,本发明提供一种服务处理系统100,包括服务发布装置102,为服务绑定第一传输协议,并发布所述服务;协议数据处理装置104,根据调用所述服务的原始请求数据的第二传输协议,从所述原始请求数据中提取调用的服务操作和所述服务操作的参数数据,并根据所述第一传输协议、所述服务操作和所述参数数据,生成新请求数据,来调用所述服务。在该技术方案中,可以接收以不同传输协议发送的服务调用请求,并将原有传输协议转换为被调用服务的较适合的传输协议,对服务进行调用。在上述技术方案中,所述服务发布装置102还配置所述服务的发布粒度;所述协议数据处理装置104根据所述服务的发布粒度,确定所述服务操作在所述请求数据中的位置,以提取所述服务操作,以及根据所述服务的服务发布粒度,确定所述服务操作在所述新请求数据中的位置,并将所述服务操作设置在所述新请求数据中。在该技术方案中,保证能够准确定位请求的服务操作,从原请求数据中获取并加入到新请求数据中,以实现对该服务操作对应的服务的调用。在上述技术方案中,所述服务发布装置102还配置所述第一传输协议下的参数传输方式和/或参数数据格式;所述协议数据处理装置104根据预设的所述第二传输协议下的参数传输方式和/或参数数据格式,提取所述服务操作和所述参数数据,以及根据所述第一传输协议下的参数传输方式和/或参数数据格式,通过数据转换装置106将所述参数数据进行转换,再生成所述新请求数据;所述服务处理系统100还包括所述数据转换装置 106,用于进行不同参数传输方式和/或参数数据格式格式的转换。在该技术方案中,由于不同传输协议中的对参数的传输方式和数据格式的要求都不同,本方案可实现对参数的传输方式和数据格式的转换,保证参数符合不同的传输协议。在上述技术方案中,所述服务发布装置102还配置所述服务中的每个服务操作的参数传输模式,其中所述参数传输模式包括合并传输模式和独立传输模式,所述服务发布装置102为合并传输模式的服务操作统一配置其中所有参数数据的参数传输方式和/或参数数据格式,为独立传输模式的服务操作逐个配置其中每个参数数据的参数传输方式和/ 或参数数据格式。在该技术方案中,由于服务操作中参数可能是合并传输也可能是独立传输,所以有必要根据其传输模式,统一或逐个配置每个服务操作中的参数的传输方式和数据格式。在上述技术方案中,还包括服务调用装置108,为外部服务设置代理对象,并获取所述外部服务绑定的传输协议,以通过所述代理对象和所述外部服务绑定的传输协议, 来调用所述外部服务。在该技术方案中,可以实现对外部服务的调用。图2是根据本发明的一个实施例的服务处理方法的流程图。如图2所示,本发明还提供一种服务处理方法,包括步骤202,为服务绑定第一传输协议,并发布所述服务;步骤204,根据调用所述服务的原始请求数据的第二传输协议, 从所述原始请求数据中提取调用的服务操作和所述服务操作的参数数据;步骤206,根据所述第一传输协议、所述服务操作和所述参数数据,生成新请求数据,来调用所述服务。在该技术方案中,可以接收以不同传输协议发送的服务调用请求,并将原有传输协议转换为被调用服务的较适合的传输协议,对服务进行调用。在上述技术方案中,所述步骤202还包括配置所述服务的发布粒度;所述步骤 204具体包括根据所述服务的发布粒度,确定所述服务操作在所述请求数据中的位置,以提取所述服务操作;所述步骤206具体包括根据所述服务的服务发布粒度,确定所述服务操作在所述新请求数据中的位置,并将所述服务操作设置在所述新请求数据中。在该技术方案中,保证能够准确定位请求的服务操作,从原请求数据中获取并加入到新请求数据中, 以实现对该服务操作对应的服务的调用。在上述技术方案中,所述步骤202还包括配置所述第一传输协议下的参数传输方式和/或参数数据格式;所述步骤204具体包括根据预设的所述第二传输协议下的参数传输方式和/或参数数据格式,提取所述服务操作和所述参数数据;所述步骤206具体包括根据所述第一传输协议下的参数传输方式和/或参数数据格式,将所述参数数据进行转换,再生成所述新请求数据。在该技术方案中,由于不同传输协议中的对参数的传输方式和数据格式的要求都不同,本方案可实现对参数的传输方式和数据格式的转换,保证参数符合不同的传输协议。在上述技术方案中,所述步骤202具体包括配置所述服务中的每个服务操作的参数传输模式,其中所述参数传输模式包括合并传输模式和独立传输模式,为合并传输模式的服务操作统一配置其中所有参数数据的参数传输方式和/或参数数据格式,为独立传输模式的服务操作逐个配置其中每个参数数据的参数传输方式和/或参数数据格式。在该技术方案中,由于服务操作中参数可能是合并传输也可能是独立传输,所以有必要根据其传输模式,统一或逐个配置每个服务操作中的参数的传输方式和数据格式。在上述技术方案中,还包括为外部服务设置代理对象,并获取所述外部服务绑定的传输协议,以通过所述代理对象和所述外部服务绑定的传输协议,来调用所述外部服务。 在该技术方案中,可以实现对外部服务的调用。在以下的实施例中,为了更加清晰的描述本发明所提出的服务绑定方法,首先解释本发明的技术方案中涉及到的一些基本概念。服务属通用概念,用于描述一个系统(或应用)向另一个系统(或应用)提供的一个或者多个特定功能,通过对服务的调用实现系统间(或应用间)功能共享,实现更高层面的业务流程。服务代表了低耦合,高复用。服务可通过WSDL、JAVA接口或者IDL进行描述。比如某个下订单服务通过java接口描述如下public interface IBookingService{public String book (Order order);}操作通用概念,一个服务里可以有多个操作,每个操作提供一个特定的功能,比如上面下订单服务里含有一个book的操作。事件型操作和消息队列里的发布订阅模型对应,用于绑定支持事件(广播机制) 的协议。调用事件型操作时,会有1个或多个服务提供方同时响应。参数通用概念,一个操作可能有O个或者多个参数,用于传递完成特定操作所需要的数据,比如book操作里的参数order。返回值通用概念,操作的返回结果,操作也可以声明为无返回值。异常通用概念,异常也是一种返回值,有些编程语言支持异常,可直接声明在具体的方法上。发布服务服务提供方以特定的协议对外部发布服务,以便服务调用方可以按照服务描述、绑定信息发起服务调用。调用服务通过特定的协议,按特定的数据格式调用服务。服务实现服务提供方提供的服务实现,比如可以通过java类实现某个服务,也可以通过BPEL流程或者groovy脚本来实现某个具体的服务。传输方式指不同的传输协议可以定制不同的数据传输方式,即数据通过何种方式传输,比如基于邮件进行服务调用时可以按主题、正文或附件等方式传输数据,而HTTP 则具备表单、输入流及附件等传输方式。数据格式指用于描述数据在传输时的具体格式,大部分协议在网络上传输数据都采用字节流,但这些字节流都是什么样的数据生成的则需要用数据格式来描述,如文本、 Object、XML、EXCEL、HL7、PNG图片等均可以通过不同协议在网络上传输。数据转换器负责将一个格式的数据转换为另一种格式的数据。比如将EXCEL表格数据转换为java对象,或者将字节流转换为SOAP格式等等。相比目前主流的ffeb Service服务绑定技术,在以下的实施例中提出一种新的支持多协议多数据格式的服务绑定方法,可灵活的绑定到各种协议如HTTP/HTTPS、消息中间件 MQ、RMI、CORBA, FILE/FTP、SMTP/P0P3 及 Web Service 等等,采用 Web Service 时,可兼容现有ffeb Service系列标准。本发明提出的服务绑定方法不仅仅限于SOAP格式的消息,而是可以支持按照多种数据格式进行服务绑定。另外本发明提出的服务绑定方法还支持灵活配置服务操作中的参数映射,服务操作的各个参数可根据实际需要灵活映射到不同的数据来源。基于以上服务绑定定义描述,本发明中的服务绑定实现如图3所示,主要包含以下几个部分1)服务发布装置302 负责根据协议绑定信息发布特定的服务,比如发布基于 http的下订单服务。服务成功发布后,服务请求方就可以按照服务具体的绑定信息对服务发起调用。2)协议数据处理装置304 当发布的服务有新的请求数据时,负责将和参数对应的数据从各种不同的传输协议中提取出来;调用服务时,负责将参数数据通过按要求放到协议的各个位置进行传输。3)数据转换装置306 负责将数据从原始协议里的格式转换为服务操作具体参数的格式,或者将服务操作具体参数的数据转换为协议传输所要求的格式。4)服务调用装置308 负责根据协议绑定信息,获取外部服务代理对象,进而调用特定的外部服务。1.服务发布装置302 服务发布装置302负责根据协议绑定信息发布特定的服务。主要包括以下步骤1)选择待绑定的服务,比如下订单服务。在不同的平台实现时,服务有不同的描述方式,比如JAVA接口、WSDL或者IDL,还可以将服务发布到数据库或者其他形式的存储库 (如No-SQL数据库、云存储等)。2)选择和服务绑定的传输协议。根据需要配置的信息不同,分为请求-响应型协议、异步调度型协议及异步监听型协议。a)如果服务绑定的是支持请求-响应型协议,比如HTTP、TCP/UDP,一旦外部发来新的服务调用请求,被绑定的服务会直接被触发。这类协议直接配置协议对外发布的地址信息即可,比如HTTP配置发布的URL,TCP配置可访问的主机地址和端口。b)如果服务绑定的是异步调度型协议,比如P0P3收邮件协议、文件传输协议,这类服务绑定协议的特点是需要按照一定的时间调度规则去扫描服务请求数据,一旦外部发来新的服务调用请求,则数据扫描器会触发被绑定的服务。这类协议绑定需要配置时间调度规则,简单规则如每1分钟扫描一次,略复杂规则如在每星期一到星期五每到5:00AM扫描一次等;这类协议绑定一般还需配置服务请求扫描位置,比如绑定P0P3时需要配置邮件服务器、用户名及密码,绑定文件时,则需配置文件扫描路径。c)如果服务绑定的是异步监听型协议,比如MQ消息传输协议,或者XMPP即时通信协议,这类服务绑定协议的特点是需要和特定服务器建立连接,并注册监听器,一旦外部发来新的服务调用请求,则监听器会被触发,进而调用被绑定的服务。这类协议绑定需要配置服务器信息,比如绑定MQ时,需要配置消息服务器连接信息。3)配置传输协议的具体参数,流程如图4所示步骤402,选择按服务粒度还是按操作粒度发布绑定的服务。如果按服务粒度发布,则在服务调用时,所有的操作服务绑定信息是一样的,必须在请求数据里包含方法信息才可以明确知道服务请求方需要调用哪个操作;如果按操作粒度发布,则每一个操作有独立的绑定信息,调用时则无需包含具体的操作信息。Web Service的SOAP绑定属于按服务发布的,每次请求的SOAP消息里都通过SOAP BODY子元素标识调用的操作名。步骤404,选择特定的操作,配置参数合并传输还是各自独立传输。合并传输表示特定操作的所有参数来自协议的同一个位置,比如Web Serivce的SOAP绑定就是典型的合并参数传输方式。本发明提出的绑定方法除了兼容SOAP绑定这种合并参数传输方式,还支持每个参数可以单独定义数据来源,取自协议的不同数据段,以适应更广泛的集成和互操作需求。比如某服务A有如下操作定义public String book (Order order, byte [] image);配置参数为独立传输模式时,如果绑定http协议,则可以通过表单传输第一个参数order,而通过附件方式传输第二个参数image。步骤406,判断是否为合并传输。步骤408,如果是合并传输参数,根据绑定的协议不同选择参数传输方式,同时参数传输格式,如果为自定义数据格式,还可配置自定义数据转换器。步骤410,如果配置为每个参数独立传输,则需要按参数配置传输方式及传输格式,如果为自定义数据格式,还可配置自定义数据转换器。步骤412,和协议相关的参数配置不同传输协议的参数各不相同,比如通过HTTP 发布下订单服务,则至少需要配置发布URL参数;而通过MQ消息传输发布服务时则至少需要配置接受消息队列名。4)根据上述配置,启动发布服务。本发明的技术方案中不包括服务启动过程是如何被触发的,很多现有技术可用于触发服务的启动和发布流程,比如主程序启动时,直接调用服务的启动方法;在JAVA EE环境下,可在服务被部署时启动绑定的服务;而在OSGI环境下,则可以利用Bundle安装事件或者OSGI服务注册事件触发服务启动和发布流程。服务发布装置主要解决如何在服务的启动流程中根据服务绑定的配置,发布支持多协议多数据格式的服务。主要流程如图5所示步骤502,首先取得服务绑定的协议。步骤504,判断服务绑定的是否为请求响应型协议。步骤506,如果绑定的是请求响应协议,则直接根据具体协议,启动绑定服务并注入协议数据处理装置即可,比如对于HTTP,在java平台实现时直接根据绑定配置注册 Servlet0步骤508,判断服务绑定的是否为异步调度型协议。步骤510,如果绑定的是异步调度型协议,则根据绑定配置里的定时规则创建定时任务,定时任务里注入协议数据处理装置,一旦扫描到新的请求数据,便会交给协议数据处
理装置。步骤512,判断服务绑定的是否为异步监听型协议。如果514,如果绑定的是异步监听型协议,则根据绑定配置,创建和服务器的连接, 创建监听器,并将协议数据处理装置注入到监听器,一旦有新的服务请求,监听器就会得到通知,进而调用协议数据处理装置。步骤516,判断是否按服务粒度发布服务。步骤518,如果按服务粒度发布,则根据绑定配置,基于绑定的协议发布服务。
步骤520,如果按操作粒度发布,则根据绑定配置,基于所绑定的协议发布服务。2.协议数据处理装置304 协议数据处理装置核心部件为数据提取器和数据发送器。当发布的服务有新的请求数据时,协议数据处理装置304负责将和参数对应的数据从各种不同的传输协议中提取出来,原理图如图6所示协议数据处理装置304主要包括以下处理步骤1)通过服务发布装置302接受服务请求数据;2)如果是按服务粒度发布的服务,则从请求数据里提取服务操作信息,明确服务需要调用的具体操作。如果是按操作粒度发布的服务,则调用的操作直接对应当前操作;3)根据当前操作对应的协议绑定配置,得到具体协议的数据提取器3042。每个协议由于数据传输方式各不相同,所以对应不同的数据提取器3042,数据提取器3042用于根据配置从协议相关请求中提取数据,并返回较为通用的数据格式,比如输入流,字节数组, 字符串等;4)如果当前操作对应的协议绑定配置为按合并参数传输,则根据配置的合并参数传输方式,通过数据提取器3042从服务请求里提取参数对应的数据,根据配置的数据格式,调用数据转换装置306将原始数据转换为参数声明的类型;5)如果当前操作对应的协议绑定配置为按参数独立传输,则根据当前操作的协议绑定配置,逐个处理操作的参数,根据配置的参数传输方式,通过数据提取器3042从服务请求里提取参数对应的数据,根据配置的数据格式,调用数据转换装置306将原始数据转换为参数声明的类型。调用服务时,协议数据处理装置304负责将参数数据通过按要求放到协议的各个位置进行传输。原理图如图7所示1)从服务调用装置308里得到当前调用的服务操作;2)从服务调用装置308得到所调用操作里的参数数据;3)根据所调用服务操作对应的协议绑定配置,得到具体协议的数据发送器。每个协议由于数据传输方式各不相同,所以对应不同的数据发送器。数据发送器3044用于根据参数配置的传输方式将转换后的服务请求数据放到协议的指定位置进行传输;4)如果所调用操作对应的协议绑定配置为按合并参数传输,则通过数据发送器 3044将各参数数据合并为一个数据包,根据配置的数据格式,调用数据转换装置306将参数数据转换为协议传输所要求的较通用的格式,同时根据配置的传输方式,将转换后的数据放到协议的指定位置进行传输;5)如果所调用操作对应的协议绑定配置为按参数独立传输,则逐个处理操作的参数,根据配置的数据格式,调用数据转换装置306将参数数据转换为协议传输所要求的较通用的格式,同时根据配置的传输方式,将每个参数转换后的数据放到协议的指定位置进行传输。3.数据转换装置306:数据转换装置306负责不同数据格式之间的转换,在本发明中主要负责将数据从原始协议里的格式转换为服务操作具体参数的格式,或者将服务操作具体参数的数据转换为协议传输所要求的格式,图8为数据转换装置306的基本原理图
根据来源数据格式和目标数据格式,数据转换装置304会到数据转换器工厂3042 里匹配最终用于转换的数据转换器3044,数据转换器工厂3044里可以预置大量基本数据转换器3042,通过装饰器模式可以根据不同的格式转换需求创建出满足要求的数据转换器 3042。比如如果希望将一个通过HTTP传递来的JAVA对象序列化二进制转换为SOAP消息,则通过组合“字节流一Java对象转换器”,"Java对象转换器一SOAP消息转换器”即可完成。4.服务调用装置308:服务调用装置308负责根据协议绑定信息,获取外部服务在系统中的代理对象, 进而调用特定的外部服务。服务调用装置308使得一个应用/系统可以通过服务的方式去调用另外一个系统基于特定协议、要求特定数据格式的非标准服务。对于外部客户端自行编程或者基于特定工具调用前述服务发布装置302所发布的服务的场景,则不属于本发明所描述的范围。服务调用装置308的实现主要包括如下步骤1)如果外部存在标准服务,则导入外部的标准服务,并读取外部服务的绑定配置;2)如果外部不存在标准服务,则新建标准服务,描述外部接口所提供的功能,并补充外部非标准服务的绑定配置;3)进行服务调用时,在调用方创建服务动态代理对象,不同的平台可采用不同的实现技术,比如java平台可通过java语言的动态代理特性实现;4)调用上述生成的动态代理对象,通过数据转换装置306和协议数据处理装置 304,将参数数据转换为协议传输所要求的数据。通过将本发明应用到SOA组件服务框架的实现,有效解决了 SOA组件服务的绑定, 具体包括三个方面的应用1)组件对外发布服务时的绑定;幻组件对外调用服务时的绑定;3)组件间可自由配置和自动创建的动态绑定服务。本发明介绍的服务绑定的实现,由于支持多种协议灵活配置,支持绑定数据格式的配置,同时兼容业界标准协议绑定方式,如Webservice、MDB等,所以本发明具备广泛的适用性。本发明有效分离了集成技术和业务,可大大简化分布式、异构系统间的服务交互和集成,提高集成的可配置性,开发人员只需关注集成业务的实现,而不需要关注协议传输、 底层数据转换等技术问题,有效的降低了开发难度,提高了系统的扩展性和可维护性。以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种服务处理系统,其特征在于,包括服务发布装置,为服务绑定第一传输协议,并发布所述服务;协议数据处理装置,根据调用所述服务的原始请求数据的第二传输协议,从所述原始请求数据中提取调用的服务操作和所述服务操作的参数数据,并根据所述第一传输协议、 所述服务操作和所述参数数据,生成新请求数据,来调用所述服务。
2.根据权利要求1所述的服务处理系统,其特征在于,所述服务发布装置还配置所述服务的发布粒度;所述协议数据处理装置根据所述服务的发布粒度,确定所述服务操作在所述请求数据中的位置,以提取所述服务操作,以及根据所述服务的服务发布粒度,确定所述服务操作在所述新请求数据中的位置,并将所述服务操作设置在所述新请求数据中。
3.根据权利要求1所述的服务处理系统,其特征在于,所述服务发布装置还配置所述第一传输协议下的参数传输方式和/或参数数据格式;所述协议数据处理装置根据预设的所述第二传输协议下的参数传输方式和/或参数数据格式,提取所述服务操作和所述参数数据,以及根据所述第一传输协议下的参数传输方式和/或参数数据格式,通过数据转换装置将所述参数数据进行转换,再生成所述新请求数据;所述服务处理系统还包括所述数据转换装置,用于进行不同参数传输方式和/或参数数据格式格式的转换。
4.根据权利要求3所述的服务处理系统,其特征在于,所述服务发布装置还配置所述服务中的每个服务操作的参数传输模式,其中所述参数传输模式包括合并传输模式和独立传输模式,所述服务发布装置为合并传输模式的服务操作统一配置其中所有参数数据的参数传输方式和/或参数数据格式,为独立传输模式的服务操作逐个配置其中每个参数数据的参数传输方式和/或参数数据格式。
5.根据权利要求1至4中任一项所述的服务处理系统,其特征在于,还包括服务调用装置,为外部服务设置代理对象,并获取所述外部服务绑定的传输协议,以通过所述代理对象和所述外部服务绑定的传输协议,来调用所述外部服务。
6.一种服务处理方法,其特征在于,包括步骤202,为服务绑定第一传输协议,并发布所述服务;步骤204,根据调用所述服务的原始请求数据的第二传输协议,从所述原始请求数据中提取调用的服务操作和所述服务操作的参数数据;步骤206,根据所述第一传输协议、所述服务操作和所述参数数据,生成新请求数据,来调用所述服务。
7.根据权利要求6所述的服务处理方法,其特征在于,所述步骤202还包括配置所述服务的发布粒度;所述步骤204具体包括根据所述服务的发布粒度,确定所述服务操作在所述请求数据中的位置,以提取所述服务操作;所述步骤206具体包括根据所述服务的服务发布粒度,确定所述服务操作在所述新请求数据中的位置,并将所述服务操作设置在所述新请求数据中。
8.根据权利要求6所述的服务处理方法,其特征在于,所述步骤202还包括配置所述第一传输协议下的参数传输方式和/或参数数据格式;所述步骤204具体包括根据预设的所述第二传输协议下的参数传输方式和/或参数数据格式,提取所述服务操作和所述参数数据;所述步骤206具体包括根据所述第一传输协议下的参数传输方式和/或参数数据格式,将所述参数数据进行转换,再生成所述新请求数据。
9.根据权利要求8所述的服务处理方法,其特征在于,所述步骤202具体包括配置所述服务中的每个服务操作的参数传输模式,其中所述参数传输模式包括合并传输模式和独立传输模式,为合并传输模式的服务操作统一配置其中所有参数数据的参数传输方式和/ 或参数数据格式,为独立传输模式的服务操作逐个配置其中每个参数数据的参数传输方式和/或参数数据格式。
10.根据权利要求6至9中任一项所述的服务处理方法,其特征在于,还包括 为外部服务设置代理对象,并获取所述外部服务绑定的传输协议,以通过所述代理对象和所述外部服务绑定的传输协议,来调用所述外部服务。
全文摘要
本发明提供一种服务处理系统和一种服务处理方法,其中,服务处理系统包括服务发布装置,为服务绑定第一传输协议,并发布所述服务;协议数据处理装置,根据调用所述服务的原始请求数据的第二传输协议,从所述原始请求数据中提取调用的服务操作和所述服务操作的参数数据,并根据所述第一传输协议、所述服务操作和所述参数数据,生成新请求数据,来调用所述服务。在该技术方案中,可以接收以不同传输协议发送的服务调用请求,并将原有传输协议转换为被调用服务的较适合的传输协议,对服务进行调用。
文档编号H04L29/08GK102497451SQ20111044797
公开日2012年6月13日 申请日期2011年12月28日 优先权日2011年12月28日
发明者程操红 申请人:用友软件股份有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1