本发明专利技术涉及一种采用WEBSERVICE作统一接口实现ESB的方法,其步骤包括:1)建立标准的MVC系统框架并添加SOA架构,把WEBSERVICE的开源框架AXIS2整合到标准的MVC框架中。2)更改AXIS2的核心架构实现,添加服务级消息接收器并作为所有操作的相同的消息接收器,由AXIS2自动给操作选择正确的消息接收器;3)对外发布空的服务,用消息接收器拦截所有的通信,并把报文体包装成SOAP报文返回给服务请求者,实现服务消息的统一处理。本发明专利技术提供的统一的访问、处理服务的方法,能够应对枢纽级别的大型应用,保证了通信报文的灵活性。
【技术实现步骤摘要】
本专利技术涉及的是信息系统中的B/S架构中SOA领域的实现模型,具体地说是利用WEBSERVICE的AXIS2技术实现ESB总线,在其基础上发布空的服务,实现统一接口、服务编排,达到企业级总线服务的目的。
技术介绍
SOA (Service Oriented Architecture)面向服务的架构,是一种将信息系统模块化为服务的架构风格。拥有服务之后,可以通过编配服务给业务流程带来生命力。通过S0A,软件可以灵活的为服务提供者和消费者选择实现技术和部署位置,通过稳定的服务接口,隔离服务消费者和服务提供者之间的耦合,大大缩小接口双方由于业务或者技术的改变而对另外一方造成的影响。由于系统共享平台面对多个外部系统,外部系统的业务、技术升级是不可避免的。采用SOA架构来设计共享平台的安全体系,可以使得共享平台应对灵活多变的外部系统,搭建可高、稳定的安全平台,本专利技术就是应对多变的项目架构技术实现的一种方式。目前,现有的SOA架构存在的问题是:J2EE系统采用三层的MVC架构之后,多个视图能共享一个模型,模型是自包含的,与控制器和视图保持相对独立,所以可以方便地改变应用程序的数据层和业务规则,控制器提高了应用程序的灵活性和可配置性。其解决的主要问题有下几部分:.将Web页面中的输入元素封装为一个(请求)数据对象。.根据请求的不同,调度相应的逻辑处理单元,并将(请求)数据对象作为参数传入。.逻辑处理单元完成运算后,返回一个结果数据对象。?将结果数据对象中的数据与预先设计的表现层相融合并展现给用户或将其持久化。上述内容涉及的都是分层的问题,而不能解决分布问题。在大型企业中分布式系统的架构就显得特别重要,但是显然用先前的MVC并不能实现庞大的平台开发。大部分J2EE应用程序,特别是WEB应用程序,并不能从分布式体系架构中受益。甚至相反,由于前期的过渡设计,在根本无需分布式的应用中大量使用分布式技术,不但没有享受到分布式的优点,而且还带来了不同应用层之间昂贵的远程调用,引入了复杂的远程访问期间基础架构和分布式编程。同时,逻辑层的分层远比物理层的分隔重要。选择分布式也就是选择ESB (Enterprise Service Bus,企业服务总线),选择ESB也就是选择了重量级组件。选择了重量级的组件,就很难面对频繁的统一服务管理,如何让诸多的服务都集中在一起,通过同一个通道去通信,这也正是SOA中的ESB的关键路径,是需要解决的重要问题。
技术实现思路
本专利技术的目的是针对上述问题,提供一种统一的注册、访问、处理服务的方法,无论是新服务,还是旧服务,都只需要调用一个接口,无论注册了多少个服务,在ESB对外的接口中,核心内部调用永远是一个,添加了新服务接口,通信报文实际上还是利用一个接口,对外注册的服务都是空的服务。本专利技术利用标准的WEBSERVICE架构进行改进,形成ESB级别的SOA构架。实现ESB包括以下步骤:首先建立标准的MVC系统框架,然后整合AXIS2技术点,更改标准的MVC框架和AXIS2技术使它可以实现ESB理念,然后对外发布空服务,以拦截器的形式去统一接口及接口的实现。具体来说,本专利技术采用的技术方案是:一种采用WEBSERVICE作统一接口实现ESB的方法,其步骤包括:I)建立标准的MVC系统框架并添加SOA架构,把WEBSERVICE的开源框架AXIS2整合到标准的MVC框架中。2)更改AXIS2的核心架构实现,添加服务级消息接收器并作为所有操作的相同的消息接收器,由AXIS2自动给操作选择正确的消息接收器;3)对外发布空的服务,用消息接收器拦截所有的通信,并把报文体包装成SOAP报文返回给服务请求者,实现服务消息的统一处理。步骤I)中标准的MVC系统框架包括结构化数据库、NYBATIS数据库访问层、SPRING配置管理层和STRUTS2控制访问层等。上面方法的实现首先需要对服务进行编排。由于WEBSERVICE的每一个服务都得至少有一个操作对象,而每一个服务都不止一个操作方法,所以就要对服务和操作建立对应关系,然后把操作进行编排,服务的使用者也要和提供者定制一套服务标准。这些标准中包含原子服务与非原子服务,若干个原子服务组合在一起就会变成一个非原子服务,当一个请求如果是一个非原子服务时,那么就要对原子服务进行编排,每一个原子服务都有一个服务号码,根据不同的服务号码,调用不同级别的服务。调用服务引擎可以用java直接读取.java文件,然后自动编译,但这样性能不是很好,本专利技术采用脚本代码去编排,如shell、ruby脚本语言都是优选的方案。然后,就是解决统一报文的问题,在WS中的报文是SOAP格式,远远不能满足架构要求,这是就得对SOAP报文进行格转,格转的步骤有下面几步: I)消息接收器接收到非SOAP标准报文;2)调用消息统一处理器格转成标准的SOAP报文;3)根据报文头中的信息确定服用类型;4)调用业务实现;5)添加业务报文后格转成标准的SOAP报文,回传给服用请求者。本专利技术提供的统一的访问、处理服务的方法,无论是新服务还是旧服务,都能调用一个接口,进行无数个服务的注册查询与操作。具体来说,与现有技术相比,本专利技术的优点是:1.在服务管理方面能够统一处理报文处理机制。2.在服务注册者与服务提供者定制完成报文及服务的标准后,即完成了开发,因为本专利技术是提供的一种消息通道标准与架构。3.由于服务的注册、添加、更改会很频繁,对于枢纽级别的项目架构而言,枢纽一定是一对多(多的一方是服务消费者),本专利技术能够以不变应万变(发布一个空服务,服务的标准就是步骤I)中定制的标准),能够应对枢纽级别的大型应用。4.在标准的SOAP上再次自定义报文,保证了通信报文的灵活性。5.扩容性能强大,因为本专利技术是采用市场上已经存在的WEBSERVICE标准,WEBSERVICE本身就具有很多自动发布、WSDL标准、SOAP协议等。【附图说明】图1是标准MVC架构的实现图。图2是添加AXIS2后的项目结构图。图3是AXIS2服务发布标准图。图4是AXIS2的服务应用流程图。图5是AXIS2机制更改后添加ESB理念的配置图。图6是服务调用的运行状态图。图7是应用本专利技术方法的业务用例图。图8是利用工具SOAPH进行理论验证的抽象图。图9和图10是用工具SOAPH进行测试的结果图,其中图9表示已发布的AccSer服务被成功调用,图10表示此服务做性能压力后的表现情况。【具体实施方式】下面通过具体实施例和附图,对本专利技术做进一步说明。本专利技术利用标准的WEBSERVICE架构进行改进,形成ESB级别的SOA构架。首先建立标准的MVC系统框架,然后整合AXIS2技术点,更改标准的MVC框架和AXIS2技术使它可以实现ESB理念,下面进行具体说明。1.建立标准的MVC项目架构首先,根据MVC思想的指导,建立一个标准的Struts2+Spring3+Mybatis的小型项目框架,使项目可以正常启动,并且可以登录。Java2企业版为中间件领域思想的统一发挥了很大的作用。比如,J2EE为分布式事务管理、目录服务和消息服务提供了一套标准的编程接口。J2EE的基础——Java2标准版(J2SE),成功地为Java提供了一套访问关系数据库的标准。本文档来自技高网...
【技术保护点】
一种采用WEBSERVICE作统一接口实现ESB的方法,其步骤包括:1)建立标准的MVC系统框架并添加SOA架构,将WEBSERVICE的开源框架AXIS2整合到标准的MVC系统框架中;2)更改AXIS2的核心架构实现,添加服务级消息接收器并作为所有操作的相同的消息接收器,由AXIS2自动给操作选择正确的消息接收器;3)对外发布空的服务,用消息接收器拦截所有的通信,并把报文体包装成SOAP报文返回给服务请求者,实现服务消息的统一处理。
【技术特征摘要】
【专利技术属性】
技术研发人员:武金剑,
申请(专利权)人:北京锐安科技有限公司,
类型:发明
国别省市:北京;11
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。