用Axis2进行SOA开发:了解Axis2基础(四)

日期: 2007-12-14 作者:Deepal Jayasinghe 来源:TechTarget中国

  热部署:在系统启动并运行时部署服务的功能。系统可用性在实时系统或业务环境中非常重要。如果系统停机(即使很短的时间),损失会很大,可能会影响业务的生存期。不过,会同时需要向系统添加新服务,如果可以在不关闭服务器的情况下完成,则是一个极大的进步。因此 Axis2 对此问题进行了处理,提供了 Web 服务热部署功能,可以在不必关闭系统的情况下部署新 Web 服务。所需要进行的工作就是,将所需的 Web 服务存档放入到存储库的 services 目录中。然后,部署模型将自动部署服务,并进行提供。

  热更新:在不必关闭系统的情况下对现有 Web 服务进行更改的能力。这是一个重要的特性,是测试环境中需要的一个功能。不过,在实时系统中使用热更新并不明智,因为热更新可能导致系统进入未知状态。此外,还可能丢失该服务的现有服务数据。为了防止发生这种情况,Axis2 的热更新参数缺省设置为 false。

  模块体系结构

  正如上面提到的,Axis2 也具有处理程序的概念,但与 Axis 1.x 相比,指定和部署处理程序的方式有一些变化。在 Axis 1.x 中,要添加处理程序,需要首先更改全局配置文件,然后需要重新启动系统,并没有在运行时更改处理程序链的动态方法。

  为了克服这个问题和增加新特性,Axis2 引入了 Web 服务扩展或模块的概念;其中模块的主要工作是对核心功能进行扩展。在 Axis 1.x 中,可以通过向处理程序链添加处理程序来实现此目标。与 Axis 1.x 处理程序链相比,使用模块的优势在于,您可以在根本不改变全局配置文件的情况下添加新模块。同时,模块是一个自容器,其中可以包含处理程序、第三方库、模块相关资源和模块配置文件。

  可以将模块作为存档文件部署,Axis2 为模块采用了一个新扩展文件名 .mar。模块存档文件中最重要的文件是模块配置文件或 module.xml。除非具有 module.xml 文件,否则该模块就是一个错误模块。模块配置文件主要用于指定处理程序及其阶段规则,因此让模块参与系统后,根据阶段规则不同,处理程序将被放置在不同的流上——inflow 或 outflow。

  这个思路非常简单。或许您需要支持 WS-Addressing 或 WS-Security。然后您必须下载对应的模块,并将其放置到 Axis2 存储库的 modules 目录中。您可以在部署时通过向 axis2.xml(Axis2 全局配置文件)添加以下条目使模块参与系统,或在运行时通过使用各种方法(如使用 Axis2 Web 管理控制台或 handlerfor exsample)使模块参与到系统中:

  新客户机 API

  异步或非阻塞 Web 服务调用是目前 Web 服务中的一个主要需求。同时,还存在一些以非阻塞方式调用 Web 服务的方法。第一个是客户机编程模型,在此模型中,客户机能在不阻塞其应用程序的情况下以非阻塞方式调用服务。第二个方法是传输级非阻塞调用,其中的调用是在两个传输协议之间发生的。可以是 SMTP 之类的两个单向传输协议,也可以为两个 HTTP 之类的双向传输协议。Axis2 客户机 API 同时支持上述两个非阻塞调用方案。

  Axis2 引入了用于调用服务的非常方便的客户机 API,此 API 包含两个类,分别名为 ServiceClient 和 OperationClient。ServiceClient API 专门用于只需要发送和接收 XML 的普通用户,而 OperationClient 旨在供希望处理 SOAP Header 和其他一些高级任务的高级用户使用。通过使用 ServiceClient,您只能访问 SOAP 主体或有效负载。当然,可以添加 SOAP Header,但无法从服务客户机检索 SOAP Header。为了实现此操作,您将需要使用 OperationClient。

 

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

相关推荐

  • SAP收购CallidusCloud 与Salesforce竞争

    一直被称为后台办公巨头的SAP现在似乎也想在前台办公大展拳脚。 最新的迹象是SAP收购CallidusClou […]

  • 事件驱动框架和SOA在空军的应用

    空军正在利用SOA来改善数据共享,并实时跟踪战机,美国空军机动司令部的Michael Marek解释了企业可从中学习的经验。

  • 揭秘New Relic APM技术细节

    New Relic应性能管理(APM)套件主要用于Web软件开发。它允许用户在面向服务的架构(SOA)上跟踪关键事务性能,并且支持代码级别的可见性来评估特定代码段和SQL语句对性能的影响

  • 仅凭SOA和云无法解决业务数据管理风险问题

    SOA和云可以是某些恼人问题高效的解决方案;这一点我们已经知道了。但是也要记住它们并不是所有事情的直接答案,特别是当你的问题是业务数据管理风险,而不是技术问题时。