首页> 中国专利> 一种基于移动设备的简单对象访问协议引擎实现方法

一种基于移动设备的简单对象访问协议引擎实现方法

摘要

本发明涉及一种基于移动设备的简单对象访问协议引擎实现方法,它是通过对SOAP消息的编码、基于无线网络的压缩传递、本地解压缩、解码、向上和向下投递的方法,实现在移动设备上部署依赖SOAP消息的标准WEB服务和其它服务。本发明的有益效果:本发明使得移动设备可以作为服务器并对外提供标准WEB服务,使得移动设备变成了一个多用户的终端,并由原来的移动设备到静态服务器再到移动设备的交互变成了移动设备之间的交互,真正实现了现在所倡导的P2P模式,是移动领域内提供服务的新方式。

著录项

  • 公开/公告号CN101388905A

    专利类型发明专利

  • 公开/公告日2009-03-18

    原文格式PDF

  • 申请/专利权人 浙江大学;

    申请/专利号CN200810121369.2

  • 发明设计人 吴朝晖;卢宾;陈华钧;

    申请日2008-10-09

  • 分类号H04L29/08(20060101);H04L29/06(20060101);

  • 代理机构33101 杭州九洲专利事务所有限公司;

  • 代理人陈继亮

  • 地址 310027 浙江省杭州市西湖区浙大路38号浙江大学计算机学院曹光彪东楼505室

  • 入库时间 2023-12-17 21:36:28

法律信息

  • 法律状态公告日

    法律状态信息

    法律状态

  • 2011-09-07

    授权

    授权

  • 2009-05-13

    实质审查的生效

    实质审查的生效

  • 2009-03-18

    公开

    公开

说明书

技术领域

本发明涉及移动标准WEB服务领域,特别是涉及一种移动设备的简单对象访问协议引擎实现方法。

背景技术

由于使用了灵活的开放标准,WEB服务成为了现阶段服务提供的绝佳形式。在移动领域,WEB服务已开始与移动电子商务相结合,为用户提供信息咨询、网上购物等越来越丰富的服务。移动设备终端则通常是以服务请求者的角色,消费这些部署在静态服务器上的WEB服务。然而,这种单纯以服务消费为主的模式并不能算是真正意义上的移动领域内的WEB服务。一个完整的WEB服务领域不仅能以服务请求者的角色消费服务,还要能以服务提供者的角色向其它移动或非移动设备提供WEB服务。

随着移动设备性能的日益提高,无线网络技术的日益完善,可以让移动设备在有需要的时候也能作为一个微型服务器提供WEB服务,充当起服务端的角色,使得移动领域内能够具有完整的WEB服务。

简单对象访问协议SOAP是一种标准化的通讯规范,以XML的形式通过HTTP/HTTPS在不同的应用程序之间传递信息,与应用程序的编程语言、平台和硬件无关,是WEB服务的主要组成部分。要让移动设备能以服务提供者的角色提供服务,本质上是要实现一个能部署在移动设备上的高性能SOAP引擎。

目前,国内外对移动设备上的WEB服务的研究基本上是在移动设备作为服务请求端,如何更好的调用部署在静态服务器上的Web服务的层面,没有对移动设备上SOAP引擎的相关研究。

使用SOAP的一个最大缺点是它的跨平台等优点需要额外的信息来维持,这使得它比其它信息交换技术如JAVA-RMI或CORBA需要更多的带宽,这在带宽比较小的无线网络上更是不能容忍的,目前的SOAP压缩技术一般是将SOAP消息直接压缩成二进制码,在基于无线网络的SOAP压缩技术方面的研究比较少。

发明内容

本发明的目的在于克服上述技术的缺陷,而提供一种移动设备的简单对象访问协议引擎实现方法。

本发明的目的是通过以下技术方案来实现的。这种基于移动设备的简单对象访问协议引擎实现方法,包括以下步骤:

(1)在服务请求端,SOAP引擎的服务请求和处理模块将服务请求向下投递给编码模块;

(2)编码模块将接收到的服务请求编码成符合W3C规范的标准SOAP消息的主要节点,再根据标准头节点信息,并结合服务请求端本身的信息编码出SOAP消息的其它节点,最终形成完整的标准SOAP消息,并将其向上投递给服务请求和处理模块;

(3)服务请求和处理模块将接收到的SOAP消息向下投递给压缩模块;

(4)压缩模块将服务请求和处理模块传递来的标准SOAP消息与标准的描述WEB服务的WSDL文件进行比较,求出两者的差值XML,并按照现有压缩XML文件的方法将该差值XML压缩成二进制码,并将其向上投递给服务请求和处理模块;

(5)服务请求和处理模块将压缩SOAP消息形成的二进制码通过无线网络发送给服务提供端;

(6)在服务提供端,SOAP引擎的服务请求和处理模块接收服务请求端传来的二进制码形式的服务请求,并将其向下投递给解压缩模块;

(7)解压缩模块将接收到的二进制码按照与压缩模块相反的方式进行解压缩,还原出原来的差值XML,该差值XML再与标准WSDL文件做匹配,还原出标准的SOAP消息,并将其向上投递给服务请求和处理模块;

(8)服务请求和处理模块将接收到的SOAP消息向下投递给解码模块;

(9)解码模块将解压缩后还原成的标准SOAP消息进行解码,去除其它无关的节点,提取出服务请求端请求的具体WEB服务,然后将提取结果封装成依赖于服务端WEB服务应用程序具体编程语言的对象,并将其向上投递给服务请求与处理模块;

(10)服务请求和处理模块将该对象传递给具体的WEB服务去处理,然后接收服务提供端的响应也就是服务提供端对服务请求的处理结果,并将该结果向下投递给编码模块;

(11)编码模块执行与(2)相同的操作,将结果编码成标准的SOAP消息,并向上投递给服务请求与处理模块;

(12)服务请求与处理模块将接收到的SOAP消息向下投递给压缩模块;

(13)压缩模块执行与(4)相同的操作,将SOAP消息压缩,并向上投递给服务请求与处理模块;

(14)服务请求与处理模块将压缩SOAP消息形成的二进制码通过无线网络发送给服务请求端;

(15)在服务请求端,SOAP引擎执行与(6)到(8)相同的操作,并将解压缩后的SOAP消息向下投递给解码模块;

(16)解码模块将解压缩后还原成的标准SOAP消息进行解码,去除其它无关的节点,提取出服务提供端对它发出的服务请求的处理结果,并将结果向上投递给服务请求与处理模块;

(17)服务请求与处理模块将最终的结果向上投递给服务请求端的应用程序使用,最终完成一个完整的服务请求、服务调用与服务响应的标准过程。

本发明的有益效果:本发明主要是实现一个部署在移动设备上的SOAP引擎同时提供基于无线网络的SOAP消息压缩技术,让移动设备能够对其它终端以服务提供者的角色高效的提供WEB服务,而不仅仅是作为服务请求者去请求WEB服务。它使得移动设备变成了一个多用户的终端,并由原来的移动设备到静态服务器再到移动设备的交互变成了移动设备之间的交互,真正实现了现在所倡导的P2P模式,是移动领域内服务提供的新方式。

附图说明

图1本发明中为基于移动设备的SOAP引擎在服务请求端的处理框架示意图;

图2本发明中为基于移动设备的SOAP引擎在服务提供端的处理框架示意图;

图3本发明中为压缩模块的处理过程示意图;

图4本发明中为解压缩模块的处理过程示意图。

具体实施方式

为使本发明的目的、技术方案和优点更加清楚,下面结合附图及具体实施例对本发明作进一步地详细描述:

本发明按照图1所示的在服务请求端的处理框架和图2所示的在服务提供端的处理框架进行实施。

(1)服务请求和处理模块。

在服务请求端,如图1,对于向服务提供者发送请求,服务请求和处理模块的功能是接收来自上层服务请求的应用程序的服务请求,将其向下投递给编码模块进行编码,生成标准SOAP消息,然后服务请求和处理模块将该消息向下投递给压缩模块进行压缩,最后将压缩好的二进制码经由无线网络发送给服务提供端;对于。对于接收服务提供端的响应,服务请求和处理模块的功能是将响应向下投递给解压缩模块解压缩成标准的SOAP消息,经由解码模块提取出服务提供者的处理结果,并将处理结果向上投递给服务请求的应用程序。

在服务处理端,如图2,它和在服务请求端的功能类似,不同的是它接收的是来自服务请求端的压缩后的服务请求,经过解压缩和解码,向上投递给服务提供端的应用程序,并接收应用程序的处理结果,经过压缩和编码,将压缩好的二进制码经由无线网络发送给服务请求端。

(2)编码模块,该模块的功能是将服务请求端对部署在移动设备上的WEB服务提供端的服务请求或服务提供端对服务请求的处理结果编码成符合W3C规范的标准SOAP消息。首先,通过WSDL文件,生成SOAP消息必要的头节点。然后,对于服务请求,服务请求是一个或多个具体的WEB服务,通常是一个或多个方法和调用这些方法需要的参数。将这些方法封装成一个或多个SOAP节点,节点的名称是方法的名称。同时将参数进行类型映射,按照不同的类型如int类型,String类型,date类型等生成节点的不同属性,这样就生成了一个完整的SOAP节点,再结合头节点,就生成了一个完整的SOAP消息。对于服务响应,编码过程和对服务请求的编码过程类似,相同的是生成头节点和类型映射的过程,不同的是方法的节点名称是方法名称加上Response,例如服务请求的是getUserInfo方法,那么服务响应端的节点名称是<getUserInfoResponse>。

(3)解码模块,该模块是编码的逆过程。对于一个标准的SOAP消息,它首先是一个XML文件,通过建立XML文件的DOM模型,就可以对该SOAP消息进行解析。对于服务请求端,它要对服务提供端的处理结果进行解码,首先寻找名称中有Response的节点,提取节点的属性值,这些属性值是处理结果的类型,将该属性值进行类型映射,就得到基于具体编程语言的类型,例如属性值是string类型,并且服务请求端的应用程序是用Java编写的,那么通过类型映射得到的结果类型就是String类型,如果服务请求端的应用程序使用C++编写的,那么得到的结果类型就是string类型。这样就得到了结果的类型,同时节点值就是处理结果,通过这种解码方式就得到了处理结果的完整信息。

(4)压缩模块,该模块的功能是将SOAP消息压缩成二进制码以便于在带宽有限的无线网络上更快的传播。它的实施方式如图3所示,通常用于服务请求端和服务提供端的SOAP消息的大部分内容是相同的,因此没有必要在压缩的时候把相同的内容也进行压缩。同时WSDL文件提供了SOAP消息的基本框架,每一个SOAP消息可以看作是WSDL文件的一个实例。因此,在进行传统的压缩之前,先将SOAP消息和WSDL文件做一个差值,然后将差值XML文件进行压缩,这样就大大减小了压缩后的文件大小。

(5)解压缩模块,该模块是压缩的逆过程。它的实施方式如图4所示,首先将二进制文件通过传统的方法进行解压缩,得到差值文件,再将该文件与WSDL文件进行匹配,还原出在做差值过程中被减去的那一部分消息,最终得到完整的标准SOAP消息。

上述实施例用来解释说明本发明,而不是对本发明进行限制,在本发明的精神和权利要???求的保护范围内,对本发明作出的任何修改和改变,都落入本发明的保护范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号