ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 用Axis2进行SOA开发:了解Axis2基础(四)

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

原创 Linux操作系统 作者:isoa 时间:2009-01-08 09:07:11 0 删除 编辑

  热部署:在系统启动并运行时部署服务的功能。系统可用性在实时系统或业务环境中非常重要。如果系统停机(即使很短的时间),损失会很大,可能会影响业务的生存期。不过,会同时需要向系统添加新服务,如果可以在不关闭服务器的情况下完成,则是一个极大的进步。因此 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。(来自search soa)

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/14780828/viewspace-531770/,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2008-07-07

  • 博文量
    251
  • 访问量
    298419