欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > PPTX文档下载  

    Axis2分析报告.pptx

    • 资源ID:354788       资源大小:320.44KB        全文页数:48页
    • 资源格式: PPTX        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    Axis2分析报告.pptx

    Axis2分析报告,第一部分:需求分析,背景,“网络服务”(Web Services),是指一些在网络上运行的、面向服务的、基于分布式程序的软件模块,网络服务采用HTTP和XML等互联网通用标准,使人们可以在不同的地方通过不同的终端设备访问WEB上的数据,如网上订票,查看订座情况。网络服务在电子商务、电子政务、公司业务流程电子化等应用领域有广泛的应用,被业内人士奉为互联网的下一个重点。随着互联网使用人群越来越多,互联网本身和其相关技术都发展的越来越快,网络服务已经成为现代互联网中信息交流和信息共享中不可缺少的一部分。,Axis2背景,Axis2是下一代 Apache Axis。Axis2 虽然由 Axis 1.x 处理程序模型提供支持,但它具有更强的灵活性并可扩展到新的体系结构。Axis2 基于新的体系结构进行了全新编写,而且没有采用 Axis 1.x 的常用代码。支持开发 Axis2 的动力是探寻模块化更强、灵活性更高和更有效的体系结构,这种体系结构可以很容易地插入到其他相关 Web 服务标准和协议(如 WS-Security、WS-ReliableMessaging 等)的实现中。Apache Axis2 是Axis的后续版本,是新一代的SOAP引擎。,目的,我们的编写目的是通过探索Axis2的设计架构和开发模式来更好地理解软件体系结构在系统设计中的重要性,尤其在互联网时代,信息交流大、数据通信频繁的特点下,对网络服务框架的研究将有助于我们更好地理解和体验现代互联网应用框架的意义和内部原理。,需求分析 网络服务支持,支持广泛使用的基于HTTP的SOAP协议,包括SOAP 1.1和SOAP 1.2。同时支持REST样式的网络服务模型。支持Spring框架,需求分析 传输协议支持,在SOAP发送方和接收方中支持多种协议比如SMTP、FTP和消息导向性中间件。支持WSDL 2.0中的MEP(消息交换模式),需求分析 客户端支持,引言:大多数网络服务框架都支持阻塞的网络服务调用,但是现在越来越多的网络服务框架开始支持非阻塞网络服务调用。其实不仅仅是网络服务,网络应用程序都开始倾向于非阻塞调用,比如AJAX。因此框架客户端调用需支持阻塞和非阻塞态调用。,需求分析 扩展性支持,不管是服务器端还是客户端,整个SOAP消息处理流程(也就是消息的接收与处理,和构建与发送)都必须支持可扩展性,所有流程可以改变,并且支持用户自定义的处理模块。,需求分析 性能要求,框架需提供专有的XML解析器来最大化得优化SOAP中XML的处理性能。对于客户端API提供XML构造器来快速创建XML数据并封装到SOAP中传输。整个网络服务调用流程,不管是阻塞还是非阻塞,都必须可适应高频率的并发调用,并始终保持系统的有效有序运行。扩展性支持不会对整个处理流程造成过多性能损耗。,第二部分:系统设计分析和管道过滤器模型,系统设计 Axis2的模块,系统设计-管道过滤器模式,管道过滤器模式:Pipeline and Filters pattern,从名称上可以看出来,它形象得描述了一种消息处理的模式,即以一种类似管道和过滤器的处理方式逐步对数据进行处理。管道:需要处理的数据。过滤器:处理的执行。,系统设计-管道过滤器模式,前一个过滤器的输出是后一个过滤器的输入。执行过程环环相扣,如果一个过滤器没有输出,后续过滤器就没有了输入,因此无法进行。每一个执行点都可以有反馈机制,这样整个执行过程是可控制的。例如一些脚本执行器就是采用类似管道过滤器模式,如下图:,系统设计 管道过滤器处理方式,为了满足需求分析中:分段、高效、支持扩展的处理方式。Axis2使用了管道过滤器模式的处理方式。,系统设计 第一层:逻辑处理流,Axis2会根据MEP(消息交换模式)的不同来决定最外层的逻辑处理流:,系统设计 第二层:引擎执行单元,Axis2的执行引擎是在第二层之上的,在第一层逻辑层之下,引擎处理层则把输入流和输出流的各个步骤具体刻画出来。,系统设计 第三层原子执行,到达第三层,执行的模块就不可再分了。Axis2会使用原子执行模块代表管道过滤器中的节点。,系统设计 多层管道过滤器的连接,多层管道过滤器采用类似面对对象编程中对象的继承和多态特性,一层管道过滤器看起来是线性的,但是一个过滤器类型的执行可能会诱发另一个子管道过滤器,这样这个过滤器的执行就是其包含的子管道过滤器先得执行。那么此时逻辑上这个管道过滤器执行就具有多层的意义了。如下图:,Axis执行引擎概括 第一层,Axis2执行引擎 第二层,第三层,下图中的Phase代表第二层单元,Handler代表第三层概念。具体代码实现在后面会详解。,第三部分:系统实现分析,Axis2最底层管道过滤器-Handler和Context,刚才讲过,Axis2中的最底层管道过滤器执行是原子的,不可再分的,因此管道过滤器直接对应Handler和MessageContext对象:,Axis2最底层管道过滤器-Handler和Context,Handler是一个接口。命名空间:org.apache.axis2.engineHandler是没有状态存储的:Stateless。因此可以理解成是一种静态的支持并发操作的对象,当然实际上它还是非静态的。管道过滤器的具体执行类型都是可扩展的:Handler和MessageContext都是可扩展类型,仅定义必要执行和操作接口。整个过程是可控制的:通过InvocationResponse类型。,Handler类型,Handler类型定义如下常用方法:,Handler类型,Handler定义一个Nested Class:InvocationResponse,后者定义三个静态字段:CONTINUE、SUSPEND、ABORT控制当一个过滤器完成后,是否继续或者暂停还是停止后续的操作。,AbstractContext类型,介绍完管道过滤器中的过滤器类型:Handler,我们来看管道对应的类型:AbstractContext。Axis2的AbstractContext类型在命名空间:org.apache.axis2.context内。该类型是用来存储任何过滤器操作中的抽象数据类型核心定义,AbstractContext类型,类型定义如下字段(全部是派生类可见的):定于如下函数:,自定义一个Handler类型,了解了上述信息我们可以自定义一个Handler类型:,Axis2第二层管道过滤器 Phase,这是系统设计中第二层:引擎执行单元的具体执行,在Axis2中,这层的类型名称是Phase类型。命名空间:org.apache.axis2.engine它具备如下特点:定义一系列有序的Handler。是Axis2中新加的概念。Phase类型执行Handler接口,因此Phase就是一种Handler,只不过是一个特殊的可以包含子Handler的Handler。,Axis2第二层管道过滤器 Phase,Phase类型的函数:,Axis2第二层管道过滤器 Phase,Axis引擎在运行时是以Phase为执行单位的,Axis2引擎只会调用Phase的Invoke函数,而Phase类型的Invoke函数会调用背后包含的Handler的所有Invoke函数。如下图:,Axis2第三层管道过滤器:Flow,Flow和Phase的关系就如同Phase和Handler的关系:Flow包含一个或多个Phase。区别:Flow在Axis2中比较偏向逻辑方面,具体没有直接的对应执行类型,而且Axis2引擎直接执行的元素是Phase。Axis2中包含下面4中Flow,Axis2执行模型,再次回顾一下Axis2执行模型:从最外层将,Axis2处理整个SOAP消息是在Phase层:,Axis2执行模型,在往下细分就是Phase和Handler的管道过滤器执行:,第四部分:非核心部分实现分析,信息处理模型,最下是StAX:Streaming API for XML(StAX),XML解析框架,来自Java,相比SAX模式的XML解析更具动态性,相比DOM形式XML解析更具性能优势,可以理解为介于SAX解析和DOM解析之间。之上是AXIOM:Apache AXIOM是XML信息集模型,可供用来动态创建信息对象数。然后在原始XML解析和XML信息模型的基础上,建立了整个核心框架,执行引擎,部署。因为Axis2使用SOAP传输,用到WSDL定义服务描述,而SOAP和WSDL都是基于XML的。核心框架定义好后,Axis还定义一些上层应用运行在核心框架之上。如数据传输模块和数据绑定模块。,信息处理模型,上述过程可以用这个图来表示:,客户端API分析,Axis2客户端API支持异步核同步的调用方式。对于同步的调用方式,应用程序的当前执行线程会阻塞,直到收到服务器回应,如下图:,客户端API分析,对于异步的调用方式,应用程序的当前执行线程不会阻塞,服务器回应会通过异步事件调用通知应用程序。如下图:RN代表服务器传来的回应通知。,代码测试实现,使用Java创建一个简单的网络服务执行。来模拟查询商品价格和添加商品价格:首先创建一个HashMap来存储string和double。首先判断HashMap中否包含指定字符串。如果有的话,返回字符串对应的double值。如果没有返回42。,代码测试实现,上述功能代码:,代码测试实现,使用W3C推荐的标准来定义这个网络服务,是网络服务规格化:定义XML根节点为service(代表一个网络服务),然后通过description、operation和parameter三个节点规格化定义网络服务的描述、操作和参数的数据。,代码测试实现,上述功能的代码(保存在XML文件中),代码测试实现,接下来需要重新改写网络服务类型的执行(按照Axis2的模式)。具体则需要使用AXIOM中的XML对象数解析的方法规范网络服务的执行。最后就是用ServiceClient客户端API来调用网络服务,仍然是采用AXIOM的方式,当然Axis2提供多种处理方式来读取SOAP协议,不仅限于AXIOM,同时也不仅限与ServiceClient类型。,测试代码实现,下面就是使用AXIOM的OMElement元素准备发送SOAP数据的部分代码:,测试代码实现,然后在主函数中用ServiceClient进行调用:,测试代码实现,最后运行成功后会输出:,

    注意事项

    本文(Axis2分析报告.pptx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开