Login
升级VIP 登录 注册 安全退出
当前位置: 首页 > word文档 > 合同模板 > SOAP协议分析,soap分析处方

SOAP协议分析,soap分析处方

收藏

本作品内容为SOAP协议分析,格式为 doc ,大小 648704 KB ,页数为 9页

SOAP协议分析


('SOAP协议分析西安邮电大学Web服务课内实验报告书院系名称:计算机学院实验题目:SOAP协议分析学生姓名:周从军专业名称:网络工程班级:网络1101班学号:04112016时间:2014年12月20日1SOAP协议分析Web服务实验报告SOAP协议分析一、实验目的1.理解Web服务,了解简单对象访问协议(SOAPSimpleObjectAccessProtocol)的内容进行分析;2.掌握简单对象访问协议(SOAP)的格式。二、实验内容1.了解SOAP协议内容和技术架构2.分析协议的原理及SOAP消息的格式、编码原则3.掌握SOAP消息的组成三、设计与设计过程1.SOAP协议的简介SOAP(SimpleObjectAccessProtocal,简单对象访问协议)技术有助于实现大量异构程序和平台之间的互操作性,从而使存在的应用能够被广泛的用户所访问。SOAP是把成熟的基于HTTP的WEB技术与xml的灵活性和可扩展性组合在了一起。2.SOAP的应用范围SOAP的一个主要目标是使存在的应用能被更广泛的用户所使用。为了实现这个目的,没有任何SOAPAPI或SOAP对象请求代理(SOAPORB),SOAP是假设你将使用尽可能多的存在的技术。几个主要的CORBA厂商已经承诺在他们的ORB产品中支持SOAP协议。微软也承诺在将来的COM版本中支持SOAP。DevelopMentor已经开发了参考实现,它使得在任何平台上的任何java或Perl程序员都可以使用SOAP。而且IBM和Sun也陆续支持了SOAP协议,和MS合作共同开发SOAP规范和应用。目前SOAP已经成为了W3C和IETF的参考标准之一。3.SOAP与XML的关系SOAP的指导理念是“它是第一个没有发明任何新技术的技术”。它采用了已经广泛使用的两个协议:HTTP和XML。HTTP用于实现SOAP的RPC风格的传输而XML是它的编码模式。采用几行代码和一个XML解析器,HTTP服务器(如MS的IIS或Apache)马上成为了SOAP的ORBs。因为目前超过一半的Web服务器采用IIS或Apache,SOAP将会从这两个产品的广泛而可靠的使用中获取利益。这并不意味着所有的SOAP请求必须通过Web服务器来路由,传统的Web服务器只2SOAP协议分析是分派SOAP请求的一种方式。因此Web服务如IIS或Apache对建立SOAP性能的应用是充分的,但决不是必要的。4.SOAP的结构SOAP消息是一个XML文档,它最多包含三个组成部分:Envelope:(必选)Envelope元素必须作为文档的第一个元素(根元素)出现在文档中,Envelope元素可以包含名称空间声明和附加属性。如果包含附加属性,这些属性必须限定名称空间。Envelope元素也可以包含附加子元素,子元素也必须限定名称空间且跟在SOAPBody元素之后。Header:(可选)Header元素是可选的,如出现则必须作为Envelope元素的第一个直接子元素出现,Header元素也可以包含一些子元素(headerentries),这些子元素也必须限定名称空间。Body:(可选)Body元素是必选的,如有Header元素则Body直接跟在Header元素之后,否则Body元素将作为Envelope的第一个直接子元素出现。Body元素也一个包含一些子元素(bodyentries)。SOAP定义了Fault元素,用于指明错误信息。SOAP消息的例子:...//Optional...//MandatorySOAP封装(Envelope)SOAP封装是一个SOAP消息顶层的元素,可以把它看成一个通过邮政服务寄信时的信封。它包括可选择的SOAP标题和一个强制性的SOAP主体。在SOAP消息中的SOAP封装用Envlop元素表示。所有的元素都用SOAP-ENV命名空间标识符作为前缀,该标识符与http://schemas.xmlsaop.org/soap/envelope相关联的。所有的SOAP元素都与SOAP-ENV前缀相关联,以保证SOAP元素不会与定义的其他元素相互冲突。SOAP的全局EncodingStyle属性被用于指明在SOAP消息中的编码方式。SOAP规范鼓励的值是http://schemas.xmlsoap.org/soap/encoding.它是与SOAP定义的编码规则相关的命名空间。SOAP标题(Header)SOAP提供了一种灵活的机制,可以以分散但标准的方式扩展消息,而不是需要通讯的双方事前协商达到一致,这就是利用SOAPHeader在SOAP消息中增加特性。如:Actor属性用于指明该消息应由谁进行处理;mustUnderstand属性则指明该处理是否是必须的。一个headerentry必须有名称空间限制:包括名称空间的URI和局部名称,并可以包含encodingStyle、Aetor、mustUnderstand等属性。3SOAP协议分析SOAP主体(Body)SOAP主体中包含有消息的接收者必须受到的有效载荷(消息)。消息的SOAP主体用元素来定义。实际上,典型的载荷是由一个RPC调用、一个RPC响应或者错误报告组成。Body的所有直接子元素称为Bodyentry,每一个Bodyentry都是包含在Body元素中独立元素。Bodyentry项可以包含一个可选的encodingBthle属性,用于定义该主体项的编码规则。如果定义了,那它将覆盖在SOAP元素中定义的编码规则。SOAPHeader和SOAPBody的语义关系Header和Body在定义上是独立的,但在事实上是相关系的。一个Body条目和一个Header条目的关系是:一个Body条目在语义上与这样一个Header条目等价;一个Bodyentry与一个Actor味缺省值(即不出现Actor属性)、mustUnderstand=”!”的Headerentry在语义上是相等的。SOAP错误(Fault)SOAPFault元素是用于在SOAP消息中传输错误及状态信息。如果SOAP消息需要包含SOAPFatult元素的话,它必须作为一个Body条目出现,而且在Body元素内只能出现一次。SOAPFault元素定义了一下四个子元素:Faultcode:SOAP定义了一个很小的SOAP错误代码集合,以用于覆盖基本的SOAP错误。Faultstring:falutstring元素为那些错误代码提供了可以读懂的错误解释。Faultactor:faultactor元素描述在消息路径中是谁引起了该错误发生的信息。Detail:detail元素是用于传输与Body元素相关应用程序提别的错误信息。5.SOAP的编码规则当以电子方式交换数据时,进行交换的断电需要预先在两方面达成一致;校核模式和类型系统。前者与通信通道的体系结合(例如:点对点和多对弈,或分块或异步)有关。而另一方面,后者是要在对消息进行变和解码的过程中使用一致的数据格式。SOAP定义了一个简单的有限协议来传输应用程序级的数据。因为有丰富而又可扩展的类型体系,这个协议可以很容易地将任意应用程序的数据类型作为序列化的XML进行传送。这里我们一ApacheSOAP类型映射为例,说明怎样将任意的JAVA类型作为序列化的XML进行传送。首先让我们来定义一些术语。序列化(Serialization)是将java对象转换为XML实例的过程,而反序列化(Deserialization)是从XML重新构造java对象的过程。用于SOAP编码的模式可以在http://schemas.xmlsoap.org/soap/endoding上找到。要想自定义用于数据的具体编码规则,大家可以引用一个外部模式,也可以使用xsi:type机制。使用xsi:type机制的邮电是,SOAP文档在提结构和数据类型的值方面都是自描述的。缺点是没有描述SOAP消息的格式。下面给出序列化的规则:所有的值以元素内容的形式表示一个简单之以字符数据表示一个简单之不可以含有元素。每个简单之都不虚使用一个合法的XML大纲数据类型或者使用一4SOAP协议分析个从该数据类型集合里推导出来的数据类型。一个复合值被编码为一个元素序列复合元素的每个字段都使用一个角色:”访问器(accessor)“来加以区分,元素的名字与访问器的名称是一致的。一个多次引用的简单值或复合值被编码成一个独立的元素这个元素包含一个局部的无需校验的属性,属性名为”id“,类型为”ID”(依照XML规范)。值的每一个accessor对应一个空元素,该元素有一个局部的,无需校验的数学,属性名为”href“,类型为”urireferene“,href属性的值音乐了相对应的独立元素的URI标示符。数组是SOAP:Array型的复合值我们一个例子来说明一个java对象的SOAP表示:CodeList1.FooJavaBean:ClassFoo(Inti;Strings;PublicFoo(){).../Foo函数的实现/}CodeList2.Foo对象的SOAP表示:1000HelloWorldCodelist2中的SOAPXML实例表示一个RPC调用,该调用将方法地阿姨eatFoo调度到由URI”urn:myservice“标出的Web服务。元素fooParam、i和s被称为访问器(accessor);它们是值的容器。Codelist2中的xsi:type属性提供访问器的子类型。通常,Web服务提供者和请求者已经预先就每个RPC调用的参数数据类型达成了一致。要对SOAPXML实例进行正确的反序列化,有了这个预先达成的一致就够了,技术没有xsi:type属性也可以。带有显式的xsi:type属性的访问器被称为多态访问器(polymorphicaccessor).6.1SOAP在HTTP上的应用将SOAP绑定到HTTP,将使我们能够利用HTTP的丰富特性来实现SOAP灵活的分布式特性。SOAP可以自然地遵循HTTP请求/应答的消息模型,通过5SOAP协议分析HTTP请求发送SOAP请求参数,再通过HTTP应答来返回SOAP应答参数。给予HTTP的SOAP应用程序必须把传输中的数据指定为“text/xml”SOAP的HTTP请求我们可以通过在HTTP的“Header”域里增加一个新的名为“SOAPAction”的项目来表示SOAP请求的目的地。这个数据项的值是一个URI,但它不必是某种特定的格式,而且它也不必是可解析的。这个出现在SOAP请求中新的数据域表明一下三种情况:如果这个域出现并天上了值,它的值将告诉我们SOAP信息的目的。例如“SOAPAction”:“http://www.mmyservice.com/val#msg””.如果这个域出现了但没有填上值,则此信息的目的将由表示HTTP请求的URI给出,例如“SOAPAction:“””。如果这个域没有出现意味着不指明该信息的目的地。7.SOAP的HTTP应答SOAPHTTP遵循HTTP状态码的语义信息,例如:一个“2xx”的状态码表示客户端发出的一个包含SOAP实体的HTTP请求已被成功的接受、理解和处理。若SOAPHTTP服务器在处理SOAP请求时发出了一个SOAP错误,则服务器则会返回HTTP的“500服务器内部错误”状态信息以及一个包含SOAPFault元素的SOAP消息。SOAP在RPC中的应用。SOAP是一种信息化协议,而RPC是利用SOAP传递的另外一种信息。HTTP会把RPC调用映射到HTTP请求和响应方式的数据交换模型上去。在进行一次函数方法调用的时候,你需要下面这些信息:目标对象的URI能够对那个对象进行处理的有效函数方法的名字该方法的签名(可选)该函数方法的参数信息头数据(可选)SOAP一般要通过协议绑定来把信息映射到URI去,在HTTP里,请求的URI会把执行RPC调用时需要永达的对象的名字告诉给SOAP应用程序。SOAP信息体将承载函数方法调用内容和响应内容。8.SOAP的优势与其他分布式计算协议(例如CORBA/RMI/DCOM)相比,SOAP具有跨操作系统、编程语言和网络赢家平台的高度互操作性。SOAP的主要特色源自该协议的本质:一组开放的标准和控制这些标准使用的简单规则。SOAP从HTTP和XML那里继承了开放性、稳定性、可缩放性以及安全的Internet支持。9.SOAP的缺点缺乏SOAP工具之间的互操作性,虽然SOAP得到广泛的支持,但是在不同的工具之间仍然存在着不兼容的问题。安全机制不成熟,SOAP没有规定对信息鉴别的机制,也没有定义一种对SOAP内容加密的机制。没有发送保证信息,在消息传输的过程中,如果系统出现故障,SOAP系统不知道怎样重新发送该消息。没有服务发布和定制,SOAP的客户端如果不把请求发送给所有服务器,就不能发送给多个服务器。SOAP虽然具有上述这些缺点,但是这些缺点将会逐步得到改进,是SOAP协6SOAP协议分析议更加的成熟、完善,而SOAP得应用领域也将会更加的广泛。查看SOAP消息:新建一个名为TCPMonitor的java工程,导入axis用户库,新建一个TCPMonitor.java:运行:点击add:修改StubClient.java,:7SOAP协议分析通知客户端监听端口号,点击run,java应用程序下选择DIIClient,在Argument标签下VMArgument框中输入-Dhttp.proxyHost=localhost-Dhttp.proxyPort=”端口号”,运行即可查看TCPMonitor中SOAP消息:8SOAP协议分析在抓到的SOAP的过程中TOMCAT作为中介:四、设计技巧及体会本次试验使我对简单对象访问协议(SOAPSimpleObjectAccessProtocol)的内容更加了解,对SOAP协议和web服务有了更好的理解。SOAP(SimpleObjectAccessProtocol)简单对象访问协议是在分散或分布式的环境中交换信息的简单的协议,是一个基于XML的协议,它包括四个部分:SOAP封装(envelop),封装定义了一个描述消息中的内容是什么,是谁发送的,谁应当接受并处理它以及如何处理它们的框架;SOAP编码规则(encodingrules),用于表示应用程序需要使用的数据类型的实例;SOAPRPC表示(RPCrepresentation),表示远程过程调用和应答的协定;SOAP绑定(binding),使用底层协议交换信息。SOAP是把成熟的基于HTTP的WEB技术与xml的灵活性和可扩展性组合在了一起。SOAP协议有助于实现大量异构程序和平台之间的互操作性,从而使存在的应用能够被广泛的用户所访问。由于去公司实习,本次实验我没有做出来,但是实验原理我是理解了,截图参考黎海燕(很多人参考她的)同学的。9',)


  • 编号:1700673187
  • 分类:合同模板
  • 软件: wps,office word
  • 大小:9页
  • 格式:docx
  • 风格:商务
  • PPT页数:648704 KB
  • 标签:

广告位推荐

相关合同模板更多>