




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
基于J2ME平台的SOAP协议研究与应用摘要:本文对于在J2E平台下,利用XL解析器开发SAP协议的根本方法进展了研究,介绍了J2E平台和SAP协议,其中重点讨论了XL的开发,提出了一种利用XL解析器在J2E平台上实现SAP协议的方法,具有一定的推广价值。关键词:J2ESAPXL嵌入式系统1引言J2E作为嵌入式系统应用平台得到了迅速的开展,JAVA语言固有的平台无关性使得基于J2E平台的嵌入式应用系统具有广阔的前景。受限于嵌入式设备及消费类电器硬件条件的限制,J2E平台提供的功能有限,如何可以在有限的资源下拓展J2E的功能,使得J2E平台可以处理SAP协议是本文研究的重点。目前企业应用正在向面向EB效劳的SA架构转变,嵌入式系统与企业应用系统的连接目前还处于TP/IP协议、HTTP协议等比拟初级的阶段。随着企业应用系统提供的EB效劳日益广泛和成熟,需要J2E平台提供处理SAP协议的需求也越来越多。SA架构是目前企业应用系统广泛部署的架构,实现SA的关键问题之一就是对SAP协议的支持。本文分析了在J2E平台中实现SAP协议处理遇到的问题,提出了相应的解决方案。2j2E介绍[1][2][3]J2E〔Java2PlatfrirEditin〕是为无线电子市场所设计的JAVA平台,包括JV标准和API标准。J2E定义了一套类库和虚拟机技术,这些技术可以使用户、效劳提供商和设备制造商通过物理〔有线〕连接或无线连接,按照需要随时使用丰富的应用程序。J2E同时提供了Java语言一贯的跨平台性和平安性。为了支持用户和嵌入式市场提出的灵敏性和可定制性要求,J2E被设计得更加模块化和可缩放化。J2E在设备原有的操作系统上建造了3层软件来实现这种要求:1.JV层:这层基于宿主操作系统,按照某一种J2E的配置实现了JV。2.配置层:这层对于用户可见度要低一些,但对简表层非常重要。它针对不同市场的需求,定义了Java虚拟机的最小功能集合和Java类库的最小集合。在J2E设备中,JV与配置层严密相连,它们表达了每一类设备的根本功能。3.简表层:这层对于用户和应用程序提供者来说是最常见的。它针对特定市场的需求,定义了Java虚拟机的最小功能集合和Java类库的最小集合。J2E组件都围绕一个中心,这些中心被称为nfiguratin〔配置〕,它们中间的每一个都是用于消费电子和嵌入设备的特别的类。目前配置分为LD和D两种。nnetedliiteddevienfiguratin(有限连接设备配置,简称LD)定义支持“deviesthatyuhldinyurhand〔握在手中的设备〕〞的应用程序接口和技术,这类设备的代表是PDA。nneteddevienfiguratin(连接设备配置D)定义支持“deviesthatyuplugintpluginttheall〔插入墙的设备〕〞的应用程序接口和技术,这类设备的代表是机顶盒。这两种配置不同的地方就在于它们应用于的装置的才能,LD设备的处理器才能有限(与台式机系统比拟),并且存储器大小一般也只在128KB到512KB之间。D系统不同,它可能有32位或64位处理器,以及有限的存储容量,不过它的下限也得超过512K。上图解释配置和简表的体系构造。J2E的体系构造被横向地分成三层,纵向分成两部分。配置包括一个控制配置核心类的虚拟机,详细的简表位于每个配置之上。简表为一样消费电子设备的不同的消费商提供了标准化的Java类库,如今五个简表已经有了标准:bileinfratindeviesprfile(IDP)挪动和呼叫器LDPersnaldigitalassistantprfilePal和Handspring的PDA设备LDFundatinprfile用于所有不需要GUI的D设备的标准简表DPersnalprfile替代PersnalJava的Fundatin完善的简表DRIprfile提供RI的Fundatin完善的简表D3SAP协议介绍[4]SAP〔简单对象访问协议〕是一种利用XL编码数据的数据传输协议。它是同类协议中要求最低的一个标准,只定义了协议所要求的最关键的部分,有意地忽略了垃圾搜集、对象激活等方面的细节。像TP/IP协议一样,SAP协议也包括客户端和效劳器两个部分。SAP客户端是一种创立XL文档的程序,该XL文档包含在分布式系统远程调用方法所需的信息。SAP客户端不是传统意义上的程序,它除了用作普通的桌面应用程序外,还可以是一种eb效劳器或基于效劳器的应用程序。来自SAP客户端的消息和恳求一般是通过HTTP发送的。因此,SAP文档可以穿过几乎所有的防火墙,从而能跨越不同的平台交换信息。SAP效劳器只是用于监听SAP消息的特殊代码,它可用作SAP文档的分配器和解释器。外部eb效劳可以与基于J2EE技术的应用程序效劳器交互,这种应用程序效劳器可以处理多种客户端的SAP恳求。SAP定义了数据编码规那么,称为基准编码或“Setin5〔第5节〕〞编码,它是出自SAP标准中描绘数据编码规那么的内容。SAP编码可以简短地描绘成简单值或复合值的集合。简单值可以是简单类型,如整型、浮点型和字符型,或者是XL架构标准第2部中定义的内置类型,包括各种数据类型,如字节型数组和枚举。复合值包括构造、数组和XL架构制定组定义的复杂类型。SAP在标准化消息格式环境中,可以做所有它能完成的工作。消息的主体部分是“text/xl〞形式的IE类型,并且包含一个SAP封套。该封套是一个XL文档。封套包含了报头〔可选的〕和报文〔必须有的〕。封套的报文部分总是用于最终接收的消息,而报头工程可以确定执行中间处理的目的节点。附件、二进制数字及其他工程可以附加到报文上。SAP提供了一种让客户端指定哪个中间处理节点必须处理报头工程的方法。由于报头与SAP消息的主体内容是互不相关的,所以可用它们给消息添加信息,而不会影响对消息报文的处理。4SAP协议在J2E平台中的实现如何真正地将挪动设备融入到ebServies中去呢?这就需要使得PDA、等成为ebServies的客户端,因此这些设备至少应该具有处理XL信息的才能。在J2E平台中实现SAP客户端的功能,使得嵌入式设备可以连接企业的EB效劳是企业应用中比拟常见的需求。J2E的根本类库中没有提供SAP的支持,所以需要在J2E平台中开发实现SAP的处理功能。实现SAP协议客户端的关键问题分为两个方面:J2E不同配置的数据类型不一样,导致与SAP协议封装的数据类型不匹配;J2E平台没有提供对XL文件进展处理的功能。针对第一个问题,需要注意只能使用根本类型,对不匹配的数据类型采用使用根本类型复合的方式进展处理。针对第二个问题需要在J2E中扩展对XL文件处理的功能。目前有有两种方法对XL文件进展解析。一种是采用D的方式,另外一种是采用SAX的方式。操作D是一个与XL互相作用的简单方法,通常这个XL是一棵完好的XL树,被解析成一个存放在存储器中的节点构造,你可以遍历这棵树。它非常简单易用,但是因为整棵树存在于存储器中造成存储器的负担,而对于嵌入式系统来说存储器的资源是有限的,因此这种方法的使用具有一定局限性。第二种方法在捕捉语法分析事件中,每当语法分析程序遇到数据中的特定构造,它就会遍历XL数据,然后把结果发回前面注册的一个事件监听器中。比方说,当语法分析程序遇到一个起始标记,如<htl>,那么事件监听器将接收一个事件,通知它这个情况,并且向它传递任何所需的信息。相对D方式的处理,SAX方法对存储器的要求比拟低,但是效率要比D方式低。Enhydra的KXL是一个只占很小存储空间的XL语法分析程序,对于J2E应用程序非常合适。KXL支持D语法分析和操作,但是不支持SAX语法分析。取而代之,它使用一种略微不同的称为“Pull〞的分析方法。下面是KXL采用D的方式处理XL数据的例子:1.Duentd=neDuent();2....3.parser=neXlParser(ab);第一行创立了一个文档对象,保存XL树。第三行从一个名为ab的InputStreaReader中创立一个KXL语法分析程序。第四行传送这个语法分析程序到文档,然后让文档开场分析。XL被递归分析,直到到达文档的结尾。当分析调用退出时,整个文档被装入内存,这时就可以对XL进展操作了。1.Eleentrt=d.getRtEleent();2.inthild_unt=rt.gethildunt();3....4.fr(inti=0;i<hild_unt;i++){5....6.Eleentkid=rt.getEleent(i);7.8.if(!kid.getNae().equals("ab")){9.ntinue;10.}<ab>元素是根元素的直接子元素,可以遍历根元素的子元素,寻找ab标记,假如子元素不是一个ab标记,那么返回。1.intaddress_ite_unt=kid.gethildunt();2.3.fr(intj=0;j<ab_ite_unt;j++){4....假如找到了ab子元素,开场遍历它的子元素,并把这些子元素的内容打印出来。通过KXL对XL的处理,可以进一步实现对SAP数据的处理,实现J2E平台对SAP协议的支持。J2EebServies标准〔JSR172〕的制订给J2E平台增加两大功能:一是使其可以远程访问基于SAP/XL的ebServies;二是使其具有解析XL数据的才能。目前JSR172的标准已经制定完成,为了实现这两大功能,JSR172新定义了提供相应功能的两个可选包。这两个包占用内存非常少,XL-RP部分大概需要25-30KB的空间,而XL解析器那么需要35KB左右。标准只对JAX-RP的模型提供支持,也就是说仅支持同步的访问方式,使用J2E客户端可以向效劳器发送RP恳求和获得RP响应。在JSR172中实现的是SAX形式的解析器。可以解析XL之前首先需要创立SAXParser的实例,SAXParserFatryfatry=SAXParserFatry.neInstane();SAXParsersaxParser=fatry.neSAXParser();接下来要获得XL文件的输入流,并把它作为其中一个参数传递给saxParser的parse方法,InputStreais=this.getlass().getResureAsStrea("phne.xl");SaxParser.parse(is,neBasiHandler(this));DefaultHandler是SAX2默认的事件处理器基类,用于处理XL解析事件的方法如下:startDuent()haraters(har[]h,intstart,intlength)endDuent()默认情况下,DefaultHandler的上述方法什么也不做,因此必须自己扩展DefaultHandler并且覆盖上述的方法。程序中提供了一个BasiHandler用来处理xl文件。lassBasiHandlerextendsDefaultHandler在BasiHandler类中有两个成员变量privateVetrphnes=neVetr();privateStaktagStak=neStak();phnes用来存储我们已经解析出来的Phne对象,tagStak那么用来存放我们解析到的元素名称,比方snyerissn,phne,nae,lur等。在文档解释完毕后,也就是在endDuent()方法内我们把解析的结果显示在屏幕上,BasiHandler的几个重要方法如下:publividstartDuent()thrsSAXExeptin{}publividstartEleent(Stringuri,StringlalNae,StringqNae,Attributesattributes)thrsSAXExeptin{if(qNae.equals("phne")){Phnephne=nePhne();phnes.addEleent(phne);}tagStak.push(qNae);}publividendEleent(Stringuri,String
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 借款租赁合同范例
- 临时摆春联场地合同范例
- 大型活动物业服务人员的职责与角色
- 兄弟宅基地买卖合同范例
- 九年级音乐社团活动计划
- 供货解约合同范例
- 小学数学教师课程实施总结与反思
- 中介委托售房合同范例
- 新湘教版小学科学亲子活动计划
- 体育行业软件管理规范范文
- 任务4.2 自动售检票系统传统终端设备-半自动售票机课件讲解
- 我国现阶段领导权力腐败的特点、发展趋势及其整治腐败的具体举措
- 部编版八年级语文下册期中复习《古诗词默写》专项训练(含答案)
- 华侨城文旅项目商业计划书
- 老年人误吸的预防团体标准试题
- 17小猴子下山 第一课时 公开课一等奖创新教学设计
- 厨房人员消防安全知识培训
- 2024年广东省中山市教学共进联盟中考一模数学试题(含答案)
- 聚合工艺作业安全培训课件
- 2024年山东省公共卫生临床中心招聘笔试冲刺题含答案解析
- 电厂凝结水系统.课件
评论
0/150
提交评论