09服务计算基础Web服务实现技术

上传人:痛*** 文档编号:201471546 上传时间:2023-04-19 格式:PPT 页数:41 大小:417KB
收藏 版权申诉 举报 下载
09服务计算基础Web服务实现技术_第1页
第1页 / 共41页
09服务计算基础Web服务实现技术_第2页
第2页 / 共41页
09服务计算基础Web服务实现技术_第3页
第3页 / 共41页
资源描述:

《09服务计算基础Web服务实现技术》由会员分享,可在线阅读,更多相关《09服务计算基础Web服务实现技术(41页珍藏版)》请在装配图网上搜索。

1、2008-2010 by Li Weigang.All rights reserved.服务计算基础服务计算基础12008-2010 by Li Weigang.All rights reserved.第八章第八章 Web服务实现技术服务实现技术22008-2010 by Li Weigang.All rights reserved.主要内容主要内容lWeb服务开发方法lWeb服务运行环境lAXISl基于AXIS的Web服务开发32008-2010 by Li Weigang.All rights reserved.第一节第一节 Web服务开发方法服务开发方法42008-2010 by Li

2、Weigang.All rights reserved.Two ApproachesServer ImplementationService InterfaceWSDLe.g.EJB/Java Class to WSDLe.g.WSDL contract as the interface&message descriptionServer InterfaceService ImplementationWSDLBottom UpTop Down52008-2010 by Li Weigang.All rights reserved.Web 服务开发生命周期服务开发生命周期l开发开发和测试 Web

3、 服务实现、定义服务接口描述和定义服务实现描述。通过创建新的 Web 服务、把现有的应用程序变成 Web 服务由其它 Web 服务和应用程序组成新的 Web 服务提供 Web 服务的实现。l部署向服务请求者或服务注册中心发布服务接口和服务实现的定义Web 服务的可执行文件部署到执行环境l运行调用 Web 服务Web 服务完全部署、可操作并且服务提供者可以通过网络访问服务l管理持续的管理和经营 Web 服务应用程序。安全性、可用性、性能、服务质量和业务流程62008-2010 by Li Weigang.All rights reserved.构建构建Web Servicel1.编写代码l2.打

4、包以便布署l3.布署到应用服务器l4.创建WSDL描述 l5.发布描述l6.发现-通过UDDIl7.绑定、调用72008-2010 by Li Weigang.All rights reserved.82008-2010 by Li Weigang.All rights reserved.访问访问Web Servicel1.开发新应用l2.查询UDDIl3.定位Web服务、下载其描述l4.根据描述创建Java client proxy l5.在应用中编写调用Java client proxy methods 代码l6.测试应用l7.Java client proxy通过SOAP调用Web se

5、rvice methods92008-2010 by Li Weigang.All rights reserved.102008-2010 by Li Weigang.All rights reserved.第二节第二节 Web服务运行环境服务运行环境112008-2010 by Li Weigang.All rights reserved.Web Service Runtimel1.提交请求(参数)给应用服务器,服务器调用Java servlet.l2.Servlet调用本地Java proxy方法,proxy调用SOAP客户端运行l3.SOAP客户端发送HTTP请求(方法、参数)给提供者.

6、l4.SOAP servlet准备方法和参数,instantiates服务bean,调用服务方法l5.访问legacy资源l6.SOAP servlet返回结果给请求者SOAP client.l7.SOAP client返回结果给Java proxy.l8.servlet把结果放在一个data bean中,dispatch查询结果的JSPl9.JSP发送HTML给用户,页面中包含有服务返回的结果122008-2010 by Li Weigang.All rights reserved.132008-2010 by Li Weigang.All rights reserved.第三节第三节 AX

7、IS142008-2010 by Li Weigang.All rights reserved.Axis IntroductionlAxis是Apache组织推出的Web服务引擎lAxis本质上就是一个Web服务引擎,提供创建服务器端、客户端和网关SOAP操作的基本框架。l但Axis还包括:一个独立的Web Service服务器。一个嵌入Servlet引擎(Tomcat)的服务器。支持WSDL。提供转化WSDL为Java类的工具。提供例子程序。提供TCP/IP数据包监视工具。152008-2010 by Li Weigang.All rights reserved.Axis2体系结构体系结构l

8、AXIS 对象模型(AXIs Object Model,AXIOM)是 Apache Axis2 的 XML 对象模型l内核层包含引擎、模块和部署框架l所有其他组件都在内核之上的层中各种传输协议(如 HTTP 和 SMTP)和数据绑定(在 XML 和 Java 代码之间进行转换)并不在核心中,因为它们是可插入的,因此提供了很大的灵活性所有其他相关技术(如 Java API for XML Web Services(JAX-WS))都在 Axis2 之上的层次中 162008-2010 by Li Weigang.All rights reserved.AXIOMlAXIOM是一个 XML 对象

9、模型,设计用于提高 XML 处理期间的内存使用率和性能,基于 Pull 解析l通过使用 Streaming API for XML(StAX)Pull 解析器,AXIOM可以控制解析过程,以提供延迟构建支持StAX通过提供一种基于事件迭代器(Iterator)的API让程序员去控制xml文档解析过程程序遍历这个事件迭代器去处理每一个解析事件,解析事件可以看做是程序拉出来的,也就是程序促使解析器产生一个解析事件然后处理该事件,之后又促使解析器产生下一个解析事件,如此循环直到碰到文档结束符SAX也是基于事件处理xml文档,但却是用推模式解析,解析器解析完整个xml文档后,才产生解析事件,然后推给程

10、序去处理这些事件DOM采用的方式是将整个xml文档映射到一颗内存树,这样就可以很容易地得到父节点和子结点以及兄弟节点的数据,但如果文档很大,将会严重影响性能l延迟构建是指 AXIOM 不完全构建XML对象模型,而是基于用户的需求构建 172008-2010 by Li Weigang.All rights reserved.AXIOM(续)(续)l例子:从 XML 输入流中获得第一个人的 元素值 XML文档 Dihini Himahansi Female Colombo,Sri Lanka -Object model is being built only up to this point T

11、hushari Damayanthi Female Elpitiya,Sri Lanka 182008-2010 by Li Weigang.All rights reserved.AXIOM(续)(续)优势l尽可能仅使用能满足用户的需求的内存l如果用户希望访问较大的文档中前面的数个字节或数千字节,则延迟构建功能将改善该应用程序的内存需求情况l可以从任何元素获得 StAX 事件,而不管是否完整构建了对象模型 l应用案例:当 Axis2 作为中介传递时,如果需要仅读取 SOAP 消息的 Header,AXIOM 将防止其读取整个 SOAP 消息,使其具有很高的内存效率当 Web 服务实现能够直接

12、使用 StAX 事件时,由于采用了 AXIOM,Web 服务所需的内存非常小 192008-2010 by Li Weigang.All rights reserved.AXIOM(续)(续)lAXIOM 内置了消息传输优化机制(Message Transfer Optimization Mechanism,MTOM)支持l对于 AXIOM 体系结构,可以通过实现 AXIOM 接口并将其插入到 Axis2 中来执行自己的对象模型lAXIOM 提供了构建于基础 AXIOM API 之上的 SOAP 接口 可以使用 envelope.getHeaders 和 envelope.getBody 之类

13、的便利方法查看 SOAP 202008-2010 by Li Weigang.All rights reserved.可扩展消息传递引擎可扩展消息传递引擎lAxis2 是一个纯 SOAP 处理器,并不依赖于任何 Java 特定的规范 l引擎通过传输协议接收到消息后,将调用之前注册的一系列拦截器(称为处理程序)l处理程序通常处理 SOAP Header 内的信息,也可以同时对消息的其他部分进行处理 l随后会将消息传递给消息接收者一般将此消息传递给服务实现类进行处理 212008-2010 by Li Weigang.All rights reserved.可扩展消息传递引擎可扩展消息传递引擎(续

14、)(续)lAxis2 的管道模型 Axis2 引擎的传入消息会通过“In”管道。所有传出消息都会通过“Out”管道通过组合使用不同数量的 In 和 Out 管道,Axis2 可以处理任何 MEP(Message Exchange Pattern)l阶段每个 Axis2 管道内部被逻辑划分为名为阶段(Phase)的区域按特定的方式对这些阶段进行命名,以表示在该阶段对消息的处理方式这些阶段都会有用处,特别是尝试部署新处理程序时,因为我们可以指定处理程序需要在哪个阶段中执行 222008-2010 by Li Weigang.All rights reserved.可扩展消息传递引擎可扩展消息传递引

15、擎(续)(续)l上下文层次结构 Axis2 环境需要在不同的级别保存信息l例如,整个引擎公用的信息应该在系统级别进行维护,而消息级别的信息应该保存在消息级别。有些信息是动态的,而有些信息是静态的为了处理这些不同的需求,Axis2 提供了上下文层次结构来在不同级别维护信息 232008-2010 by Li Weigang.All rights reserved.可扩展消息传递引擎可扩展消息传递引擎(续)(续)l调度 传入 Axis2 引擎的每条消息都以特定服务和操作为目标。标识此服务/操作组合的过程称为调度,Axis2 引擎提供了进行此工作的四种基本方法:l基于请求基于请求 URI 进行调度进

16、行调度 l传输信息:传输信息:可以将 SOAPAction HTTP Header 用于确定服务和操作lWS-Addressing Header:如果传入消息包含 WS-Addressing Header,也可以将其用于进行调度 l如果 SOAP 主体的第一个子项的 QName 是使用 RPC 规则定义的,则也可以使用此名称 242008-2010 by Li Weigang.All rights reserved.可插入模块体系结构可插入模块体系结构l模块为服务器提供了一个扩展机制lAxis2 中的每个模块都包含一组相关的处理程序252008-2010 by Li Weigang.All r

17、ights reserved.可插入模块体系结构(续)可插入模块体系结构(续)l模块的类型Sandesha2 模块:模块:提供 WS-Reliable Messaging 支持 WS-Addressing 模块:模块:为 Axis2 提供 WS-Addressing 支持 Rampart 和和 Rahas 模块:模块:提供 WS-SX(安全相关规范)支持 Kandula 模块:模块:提供 WS-AT(原子事务性)支持 Savan 模块:模块:提供 WS-Eventing 支持 262008-2010 by Li Weigang.All rights reserved.可插入模块体系结构(续)可

18、插入模块体系结构(续)l模块的级别系统级别:系统级别:模块将影响整个系统,此模块中的处理程序将应用于传入系统的所有消息服务级别:服务级别:此模块中的处理程序将应用于以特定服务为目标的消息。这些处理程序应该始终部署在调度阶段后操作级别:操作级别:此模块中的处理程序将应用于以特定操作为目标的消息。这些处理程序应该始终部署在调度阶段后272008-2010 by Li Weigang.All rights reserved.改进的部署模型改进的部署模型lAxis2 现在支持将服务热部署到 Axis2 引擎中热部署l服务应该存档为 ZIP 文件,且在文件名中使用.aar(Axis2 存档,Axis2

19、archive)作为扩展名 l服务存档包含以下信息:服务实现类 Services.xml 文件描述其使用的消息接收者、所需的任何模块和可用的操作 可选依赖库打包在 lib 文件夹内 282008-2010 by Li Weigang.All rights reserved.其他特性其他特性l新客户机 API l可插入数据绑定 lREST 支持(REpresentational State Transfer,REST)lWSDL 2.0 支持:支持:Axis2 现在支持 WSDL 2.0。我们在最近进行的互操作性研讨会中成功地进行了初始互操作性测试。l工具支持:工具支持:Axis2 随附了 WS

20、DL2Java 和 Java2WSDL 工具,同时提供了与 Axis2 协同工作的 Eclipse 插件l各种传输协议支持:各种传输协议支持:Axis2 支持 HTTP、SMTP、TCP 和 JMSlSpring 支持:支持:Axis2 内置了 Spring 服务支持。您可以编写 Spring Bean,然后方便地使用 Axis2 将其作为 Web 服务公开lWS-Policy 集成:集成:Axis2 完全支持 WS-Policy,该规范已集成到了引擎的核心中292008-2010 by Li Weigang.All rights reserved.第四节第四节 基于基于AXIS的的Web服务

21、开发服务开发302008-2010 by Li Weigang.All rights reserved.Publishing and Consuming Web Services with AxisTomcatAXIS*.jws?wsdlClient SideJava Class*.jws*.jws?wsdlwsdlJava2WSDLwsdlAXISJava Class*.javawsdlWSDL2Java312008-2010 by Li Weigang.All rights reserved.Invoking a SOAP Service with AxisTomcatAXISSOAP R

22、equestSOAP RequestSOAP ReplyXercesSOAP ReplyAXISXercesClient Side Web ServiceReplyRPCInvokeReplyServer Side Web Service322008-2010 by Li Weigang.All rights reserved.Axis服务器端部署的三种方式服务器端部署的三种方式lJava源程序直接发布*.jwsl通过编写wsdd文件部署。l通过生成的Skelton类在服务器上部署332008-2010 by Li Weigang.All rights reserved.Axis客户端调用客户

23、端调用Web服务的三种方式服务的三种方式l动态调用接口模型l动态代理模型l静态存根模型342008-2010 by Li Weigang.All rights reserved.动态调用接口模型动态调用接口模型l利用RPC中的Call类对象来实现对远程服务的调用和访问的一种模型,其核心在于Call对象的实现。l对每个Web服务的每一个远程方法调用,DII模型都要生成一个新的Call对象,并可以根据该服务的WSDL文档描述对Call对象进行配置,最终利用Call对象实现该远程方法的调用。352008-2010 by Li Weigang.All rights reserved.动态代理模型动态代

24、理模型l利用java反射(reflection)机制中Proxy类对象来实现对远程服务的调用和访问的一种模型,其核心在于与Proxy对象相关联的InvocationHandler的实现。l对于每个不同的Web服务,客户端应用程序都需要在运行时访问服务的WSDL文档,生成一个服务的本地对象(Service),然后由该对象根据WSDL文档相应描述(PortName)取得接口的对应动态代理对象,利用生成的动态代理对象来访问远程接口的所有操作;362008-2010 by Li Weigang.All rights reserved.动态代理模型动态代理模型l动态代理的类结构 l 372008-201

25、0 by Li Weigang.All rights reserved.静态存根模型静态存根模型l利用Stub类对象来实现对远程服务的调用和访问的一种模型,其核心在于Stub对象的实现。l要实现远程服务的访问,客户端必须取得存根(stub),生成存根的一个实例对象,对该对象进行必要的配置及类型转换,最后利用配置好的静态存根对象实例调用远程操作取得Web服务结果;382008-2010 by Li Weigang.All rights reserved.静态存根模型静态存根模型l静态存根的类结构l 392008-2010 by Li Weigang.All rights reserved.静态存

26、根模型静态存根模型l创建存根对象:客户端应用程序可以直接创建静态存根实现类的实例对象;或者通过Service.getPort方法创建静态存根实现类的实例对象,再换型成服务对象对应的业务接口;l配置存根对象:提供_setProperty()方法进行属性的设置,_getProperty()方法取得相应的属性值。这两个接口由存根的公共父类Stub类提供;l利用存根进行远程操作调用:该模型的存根对象对应着服务端的一个接口,这样的对应在客户端应用程序运行前进行绑定,客户端应用程序需要知道远程操作的方法名,通过存根对象利用该方法名进行远程操作的调用,调用的实现由存根对象来提供;402008-2010 by Li Weigang.All rights reserved.思考与讨论题思考与讨论题1.Web服务开发分成哪些阶段?2.Axis服务器端部署的方式有哪些?3.Axis客户端调用Web服务的方式有哪些?41

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!