已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
服务计算基础 主讲 李伟刚liweigang 西北工业大学软件与微电子学院 第八章Web服务实现技术 主要内容 Web服务开发方法Web服务运行环境AXIS基于AXIS的Web服务开发 第一节Web服务开发方法 TwoApproaches e g EJB JavaClasstoWSDL e g WSDLcontractastheinterface messagedescription BottomUp TopDown Web服务开发生命周期 开发开发和测试Web服务实现 定义服务接口描述和定义服务实现描述 通过创建新的Web服务 把现有的应用程序变成Web服务由其它Web服务和应用程序组成新的Web服务提供Web服务的实现 部署向服务请求者或服务注册中心发布服务接口和服务实现的定义Web服务的可执行文件部署到执行环境运行调用Web服务Web服务完全部署 可操作并且服务提供者可以通过网络访问服务管理持续的管理和经营Web服务应用程序 安全性 可用性 性能 服务质量和业务流程 构建WebService 1 编写代码2 打包以便布署3 布署到应用服务器4 创建WSDL描述5 发布描述6 发现 通过UDDI7 绑定 调用 访问WebService 1 开发新应用2 查询UDDI3 定位Web服务 下载其描述4 根据描述创建Javaclientproxy5 在应用中编写调用Javaclientproxymethods代码6 测试应用7 Javaclientproxy通过SOAP调用Webservicemethods 第二节Web服务运行环境 WebServiceRuntime 1 提交请求 参数 给应用服务器 服务器调用Javaservlet 2 Servlet调用本地Javaproxy方法 proxy调用SOAP客户端运行3 SOAP客户端发送HTTP请求 方法 参数 给提供者 4 SOAPservlet准备方法和参数 instantiates服务bean 调用服务方法5 访问legacy资源6 SOAPservlet返回结果给请求者SOAPclient 7 SOAPclient返回结果给Javaproxy 8 servlet把结果放在一个databean中 dispatch查询结果的JSP9 JSP发送HTML给用户 页面中包含有服务返回的结果 第三节AXIS AxisIntroduction Axis是Apache组织推出的Web服务引擎Axis本质上就是一个Web服务引擎 提供创建服务器端 客户端和网关SOAP操作的基本框架 但Axis还包括 一个独立的WebService服务器 一个嵌入Servlet引擎 Tomcat 的服务器 支持WSDL 提供转化WSDL为Java类的工具 提供例子程序 提供TCP IP数据包监视工具 Axis2体系结构 AXIS对象模型 AXIsObjectModel AXIOM 是ApacheAxis2的XML对象模型内核层包含引擎 模块和部署框架所有其他组件都在内核之上的层中各种传输协议 如HTTP和SMTP 和数据绑定 在XML和Java代码之间进行转换 并不在核心中 因为它们是可插入的 因此提供了很大的灵活性所有其他相关技术 如JavaAPIforXMLWebServices JAX WS 都在Axis2之上的层次中 AXIOM AXIOM是一个XML对象模型 设计用于提高XML处理期间的内存使用率和性能 基于Pull解析通过使用StreamingAPIforXML StAX Pull解析器 AXIOM可以控制解析过程 以提供延迟构建支持StAX通过提供一种基于事件迭代器 Iterator 的API让程序员去控制xml文档解析过程程序遍历这个事件迭代器去处理每一个解析事件 解析事件可以看做是程序拉出来的 也就是程序促使解析器产生一个解析事件然后处理该事件 之后又促使解析器产生下一个解析事件 如此循环直到碰到文档结束符SAX也是基于事件处理xml文档 但却是用推模式解析 解析器解析完整个xml文档后 才产生解析事件 然后推给程序去处理这些事件DOM采用的方式是将整个xml文档映射到一颗内存树 这样就可以很容易地得到父节点和子结点以及兄弟节点的数据 但如果文档很大 将会严重影响性能延迟构建是指AXIOM不完全构建XML对象模型 而是基于用户的需求构建 AXIOM 续 例子 从XML输入流中获得第一个人的元素值XML文档 DihiniHimahansiFemaleColombo SriLankaThushariDamayanthiFemaleElpitiya SriLanka AXIOM 续 优势尽可能仅使用能满足用户的需求的内存如果用户希望访问较大的文档中前面的数个字节或数千字节 则延迟构建功能将改善该应用程序的内存需求情况可以从任何元素获得StAX事件 而不管是否完整构建了对象模型应用案例 当Axis2作为中介传递时 如果需要仅读取SOAP消息的Header AXIOM将防止其读取整个SOAP消息 使其具有很高的内存效率当Web服务实现能够直接使用StAX事件时 由于采用了AXIOM Web服务所需的内存非常小 AXIOM 续 AXIOM内置了消息传输优化机制 MessageTransferOptimizationMechanism MTOM 支持对于AXIOM体系结构 可以通过实现AXIOM接口并将其插入到Axis2中来执行自己的对象模型AXIOM提供了构建于基础AXIOMAPI之上的SOAP接口可以使用envelope getHeaders和envelope getBody之类的便利方法查看SOAP 可扩展消息传递引擎 Axis2是一个纯SOAP处理器 并不依赖于任何Java特定的规范引擎通过传输协议接收到消息后 将调用之前注册的一系列拦截器 称为处理程序 处理程序通常处理SOAPHeader内的信息 也可以同时对消息的其他部分进行处理随后会将消息传递给消息接收者 一般将此消息传递给服务实现类进行处理 可扩展消息传递引擎 续 Axis2的管道模型Axis2引擎的传入消息会通过 In 管道 所有传出消息都会通过 Out 管道通过组合使用不同数量的In和Out管道 Axis2可以处理任何MEP MessageExchangePattern 阶段每个Axis2管道内部被逻辑划分为名为阶段 Phase 的区域按特定的方式对这些阶段进行命名 以表示在该阶段对消息的处理方式这些阶段都会有用处 特别是尝试部署新处理程序时 因为我们可以指定处理程序需要在哪个阶段中执行 可扩展消息传递引擎 续 上下文层次结构Axis2环境需要在不同的级别保存信息例如 整个引擎公用的信息应该在系统级别进行维护 而消息级别的信息应该保存在消息级别 有些信息是动态的 而有些信息是静态的为了处理这些不同的需求 Axis2提供了上下文层次结构来在不同级别维护信息 可扩展消息传递引擎 续 调度传入Axis2引擎的每条消息都以特定服务和操作为目标 标识此服务 操作组合的过程称为调度 Axis2引擎提供了进行此工作的四种基本方法 基于请求URI进行调度传输信息 可以将SOAPActionHTTPHeader用于确定服务和操作WS AddressingHeader 如果传入消息包含WS AddressingHeader 也可以将其用于进行调度如果SOAP主体的第一个子项的QName是使用RPC规则定义的 则也可以使用此名称 可插入模块体系结构 模块为服务器提供了一个扩展机制Axis2中的每个模块都包含一组相关的处理程序 可插入模块体系结构 续 模块的类型Sandesha2模块 提供WS ReliableMessaging支持WS Addressing模块 为Axis2提供WS Addressing支持Rampart和Rahas模块 提供WS SX 安全相关规范 支持Kandula模块 提供WS AT 原子事务性 支持Savan模块 提供WS Eventing支持 可插入模块体系结构 续 模块的级别系统级别 模块将影响整个系统 此模块中的处理程序将应用于传入系统的所有消息服务级别 此模块中的处理程序将应用于以特定服务为目标的消息 这些处理程序应该始终部署在调度阶段后操作级别 此模块中的处理程序将应用于以特定操作为目标的消息 这些处理程序应该始终部署在调度阶段后 改进的部署模型 Axis2现在支持将服务热部署到Axis2引擎中 热部署服务应该存档为ZIP文件 且在文件名中使用 aar Axis2存档 Axis2archive 作为扩展名服务存档包含以下信息 服务实现类Services xml文件描述其使用的消息接收者 所需的任何模块和可用的操作可选依赖库打包在lib文件夹内 其他特性 新客户机API可插入数据绑定REST支持 REpresentationalStateTransfer REST WSDL2 0支持 Axis2现在支持WSDL2 0 我们在最近进行的互操作性研讨会中成功地进行了初始互操作性测试 工具支持 Axis2随附了WSDL2Java和Java2WSDL工具 同时提供了与Axis2协同工作的Eclipse插件各种传输协议支持 Axis2支持HTTP SMTP TCP和JMSSpring支持 Axis2内置了Spring服务支持 您可以编写SpringBean 然后方便地使用Axis2将其作为Web服务公开WS Policy集成 Axis2完全支持WS Policy 该规范已集成到了引擎的核心中 第四节基于AXIS的Web服务开发 PublishingandConsumingWebServiceswithAxis Tomcat jws wsdl ClientSide JavaClass jws jws wsdl wsdl wsdl JavaClass java wsdl InvokingaSOAPServicewithAxis Tomcat SOAPRequest SOAPRequest SOAPReply SOAPReply ClientSide WebService Reply RPC Invoke Reply ServerSide WebService Axis服务器端部署的三种方式 Java源程序直接发布 jws通过编写wsdd文件部署 通过生成的Skelton类在服务器上部署 Axis客户端调用Web服务的三种方式 动态调用接口模型动态代理模型静态存根模型 动态调用接口模型 利用RPC中的Call类对象来实现对远程服务的调用和访问的一种模型 其核心在于Call对象的实现 对每个Web服务的每一个远程方法调用 DII模型都要生成一个新的Call对象 并可以根据该服务的WSDL文档描述对Call对象进行配置 最终利用Call对象实现该远程方法的调用 动态代理模型 利用java反射 reflection 机制中Proxy类对象来实现对远程服务的调用和访问的一种模型 其核心在于与Proxy对象相关联的InvocationHandler的实现 对于每个不同的Web服务 客户端应用程序都需要在运行时访问服务的WSDL文档 生成一个服务的本地对象 Service 然后由该对象根据WSDL文档相应描述 PortName 取得接口的对应动态代理对象 利用生成的动态代理对象来访问远程接口的所有操作 动态代理模型 动态代理的类结构 静态存根模型 利用Stub类对象来实现对远程服务的调用和访问的一种模型 其核心在于Stub对象的实现 要实现远程服务的访问 客户端必须取得存根 stub 生成存根的一个实例对象 对该对象进行必要的配置及类型转换 最后利用配置好的静态存根对象实例调用远程操作取得Web服务结果 静态存根模型 静态存根的类结构 静态存根模型 创建存根对象 客户端应用程序可以直接创建静态存根实现类的实例对象 或者通过Service getPort方法创建静态存根实现类的实例对象
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年毛皮产业智能化创新应用报告
- 2026年汽车滤清器行业分析报告及创新报告
- 2026年房地产投资市场分析报告及风险预警
- 2026年人工智能产业报告:智能驾驶行业创新发展分析
- 2026年环保产业绿色发展报告及技术创新研究
- 2026年物流行业供应链数字化与智能化报告
- 2026年防静电帘新材料研发趋势分析报告
- 2026年人工智能在智慧城市建设中的应用报告及未来三年行业创新趋势报告
- 2026年医疗健康行业报告:技术革新下的品牌竞争与渠道拓展策略
- 2026年洗车行业环保材料创新趋势报告
- 《细胞生物学》全套教学课件
- GB/T 20004-2026团体标准化良好行为规范
- 长征胜利 90 周年 读懂长征征途 培育持之以恒奋斗品质课件
- 部编版五年级上册语文第五单元第16课《金字塔》教学课件(新教材)
- 2026供应链管理师职业能力等级认证考试(助理级)历年参考题库含答案详解
- 《管道施工现场安全》课件
- 古建筑周边环境整治专项施工方案
- 标准居间合同书范本
- HG∕T 4791-2014 工业用酒石酸钾钠
- CJT 526-2018 软土固化剂 标准
- 2024版人教版英语初一上单词默写单
评论
0/150
提交评论