基于J2ME平台下SOAP协议的应用 - 编程入门网
它是同 类协议中要求最低的一个规范,只定义了协议所要求的最关键的部分,有意地忽 略了垃圾收集、对象激活等方面的细节。像TCP/IP协议一样,SOAP协议也包括客 户端和服务器两个部分。
SOAP客户端是一种创建XML文档的程序,该XML文档包含在分布式系统远程调 用方法所需的信息。SOAP客户端不是传统意义上的程序,它除了用作普通的桌面 应用程序外,还可以是一种Web服务器或基于服务器的应用程序。来自SOAP客户 端的消息和请求一般是通过HTTP发送的。因而,SOAP文档可以穿过几乎所有的防 火墙,从而能跨越不同的平台交换信息。 SOAP服务器只是用于监听SOAP消息的特殊代码,它可用作SOAP文档的分配器 和解释器。外部Web服务可以与基于J2EE技术的应用程序服务器交互,这种应用 程序服务器可以处理多种客户端的SOAP请求。 SOAP定义了数据编码规则,称为基准编码或“Section 5”编码,它是出自 SOAP规范中描述数据编码规则的内容。SOAP编码可以简短地描述成简单值或复合 值的集合。简单值可以是简单类型,如整型、浮点型和字符型,或者是XML架构 规范第2部中定义的内置类型,包括各种数据类型,如字节型数组和枚举。复合 值包括结构、数组和XML架构制定组定义的复杂类型。 SOAP在标准化消息格式环境中,可以做所有它能完成的工作。消息的主体部 分是“text/xml”形式的MIME类型,并且包含一个SOAP封套。该封套是一个XML 文档。封套包含了报头(可选的)和报文(必须有的)。封套的报文部分总是用 于最终接收的消息,而报头项目可以确定执行中间处理的目标节点。附件、二进 制数字及其他项目可以附加到报文上。 SOAP提供了一种让客户端指定哪个中间处理节点必须处理报头项目的方法。 由于报头与SOAP消息的主体内容是互不相关的,所以可用它们给消息添加信息, 而不会影响对消息报文的处理。 三、SOAP协议在J2ME平台中的实现 如何真正地将移动设备融入到Web Services中去呢?这就需要使得PDA、手机 等成为Web Services的客户端,因此这些设备至少应该具有处理XML信息的能力 。在J2ME平台中实现SOAP客户端的功能,使得嵌入式设备能够连接企业的WEB服 务是企业应用中比较常见的需求。J2ME的基本类库中没有提供SOAP的支持,所以 需要在J2ME平台中开发实现SOAP的处理功能。 实现SOAP协议客户端的关键问题分为两个方面:J2ME不同配置的数据类型不 一样,导致与SOAP协议封装的数据类型不匹配;J2ME平台没有提供对XML文件进 行处理的功能。 针对第一个问题,需要注意只能使用基本类型,对不匹配的数据类型采用使 用基本类型复合的方式进行处理。针对第二个问题需要在J2ME中扩展对XML文件 处理的功能。目前有有两种方法对XML文件进行解析。一种是采用DOM的方式,另 外一种是采用SAX的方式。操作DOM是一个与XML相互作用的简单方法,通常这个 XML是一棵完整的XML树,被解析成一个存放在存储器中的节点结构,你可以遍历 这棵树。它非常简单易用,但是因为整棵树存在于存储器中造成存储器的负担, 而对于嵌入式系统来说存储器的资源是有限的,因此这种方法的使用具有一定局 限性。第二种方法在捕捉语法分析事件中,每当语法分析程序遇到数据中的特定 结构,它就会遍历XML数据,然后把结果发回前面注册的一个事件******中。比 如说,当语法分析程序遇到一个起始标记,如<html>,那么事件******将接收 一个事件,通知它这个情况,并且向它传递任何所需的信息。相对DOM方式的处 理,SAX方法对存储器的要求比较低,但是效率要比DOM方式低。 Enhydra的KXML是一个只占很小存储空间的XML语法分析程序,对于J2ME应用 程序非常适合。KXML支持DOM语法分析和操作,但是不支持SAX语法分析。取而代 之,它使用一种稍微不同的称为&ldqu |
凌众科技专业提供服务器租用、服务器托管、企业邮局、虚拟主机等服务,公司网站:http://www.lingzhong.cn 为了给广大客户了解更多的技术信息,本技术文章收集来源于网络,凌众科技尊重文章作者的版权,如果有涉及你的版权有必要删除你的文章,请和我们联系。以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢! |