




已阅读5页,还剩36页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2008-2010 by Li Weigang. All rights reserved. Web服务实用技术 主讲:李伟刚 西北工业大学软件与微电子学院 2008-2010 by Li Weigang. All rights reserved. 第八章 Web服务实现技术 2008-2010 by Li Weigang. All rights reserved. 主要内容 lWeb服务开发方法 lWeb服务运行环境 lAXIS l基于AXIS的Web服务开发 2008-2010 by Li Weigang. All rights reserved. 第一节 Web服务开发方法 2008-2010 by Li Weigang. All rights reserved. Two Approaches Server Implementation Service Interface WSDL e.g. EJB/Java Class to WSDL e.g. WSDL contract as the interface & message description Server Interface Service Implementation WSDL Bottom UpTop Down 2008-2010 by Li Weigang. All rights reserved. Web 服务开发生命周期 l 开发 开发和测试 Web 服务实现、定义服务接口描述和定义服务实现描 述。 通过创建新的 Web 服务、把现有的应用程序变成 Web 服务 由其它 Web 服务和应用程序组成新的 Web 服务提供 Web 服务 的实现。 l 部署 向服务请求者或服务注册中心发布服务接口和服务实现的定义 Web 服务的可执行文件部署到执行环境 l 运行 调用 Web 服务 Web 服务完全部署、可操作并且服务提供者可以通过网络访问服 务 l 管理 持续的管理和经营 Web 服务应用程序。安全性、可用性、性能、 服务质量和业务流程 2008-2010 by Li Weigang. All rights reserved. 构建Web Service l1.编写代码 l2.打包以便布署 l3.布署到应用服务器 l4.创建WSDL描述 l5. 发布描述 l6. 发现-通过UDDI l7. 绑定、调用 2008-2010 by Li Weigang. All rights reserved. 2008-2010 by Li Weigang. All rights reserved. 访问Web Service l1. 开发新应用 l2. 查询UDDI l3. 定位Web服务、下载其描述 l4. 根据描述创建Java client proxy l5. 在应用中编写调用Java client proxy methods 代码 l6. 测试应用 l7. Java client proxy通过SOAP调用Web service methods 2008-2010 by Li Weigang. All rights reserved. 2008-2010 by Li Weigang. All rights reserved. 第二节 Web服务运行环境 2008-2010 by Li Weigang. All rights reserved. Web Service Runtime l 1. 提交请求(参数)给应用服务器, 服务器调用Java servlet. l 2. Servlet调用本地Java proxy方法,proxy调用SOAP客 户端运行 l 3. SOAP客户端发送HTTP请求(方法、参数)给提供者. l 4. SOAP servlet准备方法和参数,instantiates服务bean,调 用服务方法 l 5.访问legacy资源 l 6. SOAP servlet返回结果给请求者SOAP client. l 7. SOAP client返回结果给Java proxy. l 8.servlet把结果放在一个data bean中,dispatch查询结果 的JSP l 9. JSP发送HTML给用户,页面中包含有服务返回的结果 2008-2010 by Li Weigang. All rights reserved. 2008-2010 by Li Weigang. All rights reserved. 第三节 AXIS 2008-2010 by Li Weigang. All rights reserved. Axis Introduction lAxis是Apache组织推出的Web服务引擎 lAxis本质上就是一个Web服务引擎,提供创 建服务器端、客户端和网关SOAP操作的基 本框架。 l但Axis还包括: 一个独立的Web Service服务器。 一个嵌入Servlet引擎(Tomcat)的服务器。 支持WSDL。 提供转化WSDL为Java类的工具。 提供例子程序。 提供TCP/IP数据包监视工具。 2008-2010 by Li Weigang. All rights reserved. Axis2体系结构 l AXIS 对象模型(AXIs Object Model,AXIOM)是 Apache Axis2 的 XML 对象模型 l 内核层包含引擎、模块和部署框架 l 所有其他组件都在内核之上的层中 各种传输协议(如 HTTP 和 SMTP)和数据绑定(在 XML 和 Java 代码之间进行转换)并不在核心中,因为它们是可插入的, 因此提供了很大的灵活性 所有其他相关技术(如 Java API for XML Web Services (JAX- WS))都在 Axis2 之上的层次中 2008-2010 by Li Weigang. All rights reserved. AXIOM l AXIOM是一个 XML 对象模型,设计用于提高 XML 处理 期间的内存使用率和性能,基于 Pull 解析 l 通过使用 Streaming API for XML (StAX) Pull 解析器, AXIOM可以控制解析过程,以提供延迟构建支持 StAX通过提供一种基于事件迭代器(Iterator)的API让程序员去控制 xml文档解析过程 程序遍历这个事件迭代器去处理每一个解析事件,解析事件可以 看做是程序拉出来的,也就是程序促使解析器产生一个解析事件 然后处理该事件,之后又促使解析器产生下一个解析事件,如此 循环直到碰到文档结束符 SAX也是基于事件处理xml文档,但却是用推模式解析,解析器解 析完整个xml文档后,才产生解析事件,然后推给程序去处理这些 事件 DOM采用的方式是将整个xml文档映射到一颗内存树,这样就可 以很容易地得到父节点和子结点以及兄弟节点的数据,但如果文 档很大,将会严重影响性能 l 延迟构建是指 AXIOM 不完全构建XML对象模型,而是基 于用户的需求构建 2008-2010 by Li Weigang. All rights reserved. AXIOM(续) l 例子: 从 XML 输入流中获得第一个人的 元素值 XML文档 Dihini Himahansi Female Colombo, Sri Lanka Thushari Damayanthi Female Elpitiya, Sri Lanka 2008-2010 by Li Weigang. All rights reserved. AXIOM(续) 优势 l尽可能仅使用能满足用户的需求的内存 l如果用户希望访问较大的文档中前面的数个字节或数 千字节,则延迟构建功能将改善该应用程序的内存需 求情况 l可以从任何元素获得 StAX 事件,而不管是否完整构 建了对象模型 l应用案例: 当 Axis2 作为中介传递时,如果需要仅读取 SOAP 消息的 Header,AXIOM 将防止其读取整个 SOAP 消息,使其具 有很高的内存效率 当 Web 服务实现能够直接使用 StAX 事件时,由于采用 了 AXIOM,Web 服务所需的内存非常小 2008-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 之类的便利方法查看 SOAP 2008-2010 by Li Weigang. All rights reserved. 可扩展消息传递引擎 l Axis2 是一个纯 SOAP 处理器,并不依赖于任何 Java 特定的规范 l 引擎通过传输协议接收到消息后,将调用之前注 册的一系列拦截器(称为处理程序) l 处理程序通常处理 SOAP Header 内的信息,也 可以同时对消息的其他部分进行处理 l 随后会将消息传递给消息接收者一般将此消 息传递给服务实现类进行处理 2008-2010 by Li Weigang. All rights reserved. 可扩展消息传递引擎 (续) l Axis2 的管道模型 Axis2 引擎的传入消息会通过“In”管道。所有传出消息都 会通过“Out”管道 通过组合使用不同数量的 In 和 Out 管道,Axis2 可以处 理任何 MEP(Message Exchange Pattern) l 阶段 每个 Axis2 管道内部被逻辑划分为名为阶段 (Phase) 的 区域 按特定的方式对这些阶段进行命名,以表示在该阶段对消 息的处理方式 这些阶段都会有用处,特别是尝试部署新处理程序时,因 为我们可以指定处理程序需要在哪个阶段中执行 2008-2010 by Li Weigang. All rights reserved. 可扩展消息传递引擎 (续) l上下文层次结构 Axis2 环境需要在不同的级别保存信息 l例如,整个引擎公用的信息应该在系统级别进行维护 ,而消息级别的信息应该保存在消息级别。有些信息 是动态的,而有些信息是静态的 为了处理这些不同的需求,Axis2 提供了上下文 层次结构来在不同级别维护信息 2008-2010 by Li Weigang. All rights reserved. 可扩展消息传递引擎 (续) l调度 传入 Axis2 引擎的每条消息都以特定服务和操作 为目标。标识此服务/操作组合的过程称为调度, Axis2 引擎提供了进行此工作的四种基本方法: l基于请求 URI 进行调度 l传输信息:可以将 SOAPAction HTTP Header 用于确 定服务和操作 lWS-Addressing Header:如果传入消息包含 WS- Addressing Header,也可以将其用于进行调度 l如果 SOAP 主体的第一个子项的 QName 是使用 RPC 规则定义的,则也可以使用此名称 2008-2010 by Li Weigang. All rights reserved. 可插入模块体系结构 l模块为服务器提供了一个扩展机制 lAxis2 中的每个模块都包含一组相关的处理 程序 2008-2010 by Li Weigang. All rights reserved. 可插入模块体系结构(续) l模块的类型 Sandesha2 模块:提供 WS-Reliable Messaging 支持 WS-Addressing 模块:为 Axis2 提供 WS- Addressing 支持 Rampart 和 Rahas 模块:提供 WS-SX(安全 相关规范)支持 Kandula 模块:提供 WS-AT (原子事务性)支 持 Savan 模块:提供 WS-Eventing 支持 2008-2010 by Li Weigang. All rights reserved. 可插入模块体系结构(续) l模块的级别 系统级别:模块将影响整个系统,此模块中的处 理程序将应用于传入系统的所有消息 服务级别:此模块中的处理程序将应用于以特定 服务为目标的消息。这些处理程序应该始终部署 在调度阶段后 操作级别:此模块中的处理程序将应用于以特定 操作为目标的消息。这些处理程序应该始终部署 在调度阶段后 2008-2010 by Li Weigang. All rights reserved. 改进的部署模型 lAxis2 现在支持将服务热部署到 Axis2 引擎 中热部署 l服务应该存档为 ZIP 文件,且在文件名中 使用 .aar(Axis2 存档,Axis2 archive)作 为扩展名 l服务存档包含以下信息: 服务实现类 Services.xml 文件描述其使用的消息接收者、所 需的任何模块和可用的操作 可选依赖库打包在 lib 文件夹内 2008-2010 by Li Weigang. All rights reserved. 其他特性 l 新客户机 API l 可插入数据绑定 l REST 支持 (REpresentational State Transfer,REST) l WSDL 2.0 支持:Axis2 现在支持 WSDL 2.0。我们在最 近进行的互操作性研讨会中成功地进行了初始互操作性测 试。 l 工具支持:Axis2 随附了 WSDL2Java 和 Java2WSDL 工 具,同时提供了与 Axis2 协同工作的 Eclipse 插件 l 各种传输协议支持: Axis2 支持 HTTP、SMTP、TCP 和 JMS l Spring 支持:Axis2 内置了 Spring 服务支持。您可以编 写 Spring Bean,然后方便地使用 Axis2 将其作为 Web 服务公开 l WS-Policy 集成:Axis2 完全支持 WS-Policy,该规范已 集成到了引擎的核心中 2008-2010 by Li Weigang. All rights reserved. 第四节 基于AXIS的Web服务开发 2008-2010 by Li Weigang. All rights reserved. Publishing and Consuming Web Services with Axis Tomcat AXIS *.jws?wsdl Client Side Java Class *.jws *.jws?wsdl wsdl Java2WSDL wsdl AXIS Java Class *.java wsdl WSDL2Java 2008-2010 by Li Weigang. All rights reserved. Invoking a SOAP Service with Axis Tomcat AXIS SOAP Request SOAP Request SOAP Reply Xerces SOAP Reply AXIS Xerces Client Side Web Service Reply RPC Invoke Reply Server Side Web Service 2008-2010 by Li Weigang. All rights reserved. Axis服务器端部署的三种方式 lJava源程序直接发布*.jws l通过编写wsdd文件部署。 l通过生成的Skelton类在服务器上部署 2008-2010 by Li Weigang. All rights reserved. Axis客户端调用Web服务的三种方式 l动态调用接口模型 l动态代理模型 l静态存根模型 2008-2010 by Li Weigang. All rights reserved. 动态调用接口模型 l利用RPC中的Call类对象来实现对远程服务 的调用和访问的一种模型,其核心在于Call 对象的实现。 l对每个Web服务的每一个远程方法调用, DII模型都要生成一个新的Call对象,并可 以根据该服务的WSDL文档描述对Call对象 进行配置,最终利用Call对象实现该远程方 法的调用。 2008-2010 by Li Weigang. All rights reserved. 动态代理模型 l利用java反射(reflection)机制中Proxy类 对象来实现对远程服务的调用和访问的一 种模型,其核心在于与Proxy对象相关联的 InvocationHandler的实现。 l对于每个不同的Web服务,客户端应用程 序都需要在运行时访问服务的WSDL文档, 生成一个服务的本地对象(Service),然 后由该对象根据WSDL文档相应描述( PortName)取得接口的对应动态代理对象 ,利用生成的动态代理对象来访问远程接 口
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 铜陵职业技术学院《文化投资学》2023-2024学年第二学期期末试卷
- 2025年钢筋买卖合同范本
- 天津市职业大学《民航专业英语》2023-2024学年第二学期期末试卷
- 2025至2031年中国微波黄粉虫干燥设备行业投资前景及策略咨询研究报告
- 2025至2031年中国单绳矿井提升机塑料衬板行业投资前景及策略咨询研究报告
- 赶集摊位投标方案范本
- 2025至2031年中国PP-R冷热给水管件行业投资前景及策略咨询研究报告
- 2025至2030年中国高强聚氨酯管托数据监测研究报告
- 2025至2030年中国石油和合成液抗乳化性能测定仪数据监测研究报告
- 2025至2030年中国着色复合母粒数据监测研究报告
- 施工组织设计中期答辩
- 汽车卸煤沟土方开挖工程施工设计方案
- 重点监管的危险化工工艺与危险化学品
- 小学语文绘本阅读《神奇飞书》课件-
- GB/T 41664-2022低NOx燃油燃气燃烧器评价方法与试验规则
- 马工程《刑法学(下册)》教学课件 第20章 侵犯公民人身权利、民主权利罪
- 2023年水法律法规学习考试题库10月
- 街道优生优育进万家活动实施方案
- 《音乐疗法》教学课件
- ERP生产系统课件
- 小区室外雨、污水排水管道施工方案
评论
0/150
提交评论