您的位置:首页 > 其它

在 Web 服务领域引入 MVC 模式的功能(3)

2006-05-08 14:16 351 查看
Struts 控制器
  MVC 体系结构的控制器部分主要集中于接收客户端的请求(一般为运行 Web 浏览器的用户),决定执行哪一种业务逻辑功能来响应请求,然后负责生成下一个用户界面连接到合适的视图组件上去。在 Structs 中,控制器的主要组件就是 ActionServlet 类的一个小服务程序。

  ActionServlet 负责通过 XML 文档将 URI 请求映射到特定的行为。这个文档包含了 URI 请求列表而且还告知 ActionServlet 它应该如何分配每个请求。这种方法有几个好处:

  应用程序的整个逻辑流程在分级文本文件中。

  这种格式的列表更容易查看与理解,尤其是对于一个很大的应用程序而言。

  ActionServlet 决定了应用程序的流程。许多 Action 类都继承了 ActionServlet 。每个 Action 类:

  都映射到各自独立的进程
  通过 Struts 的 ActionController 与 Structs JSPs 相结合

  作为继承 Struts中 Action 类的一个 Java 类来实现。

  Struts中 Action 类调用 WSManager 类中的相关方法来使用 Web 服务。 WSManager 获取所要求的响应(或者如果有一个被解除了就会出现异常)将它回传给 Structs 控制器。

  WSManager

  WSManager 接收 JAX-RPC 端点的请求。将 WSManager 类中的方法调用映射到新来的客户端请求。这些新来的客户端请求是 SOAP 信息的格式。WSManager 必须实现安全确定性,转变参数,在指定请求到模型服务之前,要对这些请求进行参数预处理。请求所包含的参数形式有 Java 对象,Java原始参数,XML 文档,或者甚至是 SOAP 文档分片(例如,SOAP Element 对象)。这些类型必须要转化成内部所支持的 schema(例如,预定义的 Java 数据访问对象)。

  虽然 WSManager 可以很直接地处理与 Java 对象结合的参数,但它还需要采取一些附加步骤来处理 XML 文档。建议以下步骤:

  WSManager 类必须能够确定新来的 XML 文档而不是它的 schema.
  WSManager 类接着要把 XML 文档转化成内部支持的 schema.
  最后 WSManager 应该分解文档并且尽可能地将它映射到域对象中去。

  WSManager 实现以下任务是非常重要的:

  身份验证和授权使用
  错误处理

缓存

  WSManager 也可以生成响应;这个过程由方法调用返回值的简单构造所组成。WSManager 中保留这样的功能,您可以通过缓存数据从而避免重复访问模型服务层。您还可以集中管理响应聚集以及 XML 文档转换,如果您要返回给调度者的文档必须遵守与内部 schema 不同的 schema 时,这一点就显得尤其重要。

  WSManager 处理所有新来的 SOAP 请求并授权它们连接到出现在模型服务中的业务逻辑。如果模型服务是作为一个 EJB 层来实现,那您一样可以在 EJB 层中通过 Session Façade 设计模式来实现。如果您采用这种模式执行 WSManager ,您将获得很多好处,因为 WSManager 会:

  作为初始联系点来管理请求与服务
  调用安全服务,包括身份验证与授权使用,从而避免任何重复的层访问。
  授权业务处理(采用由 Structs 应用程序所使用的模型服务)
  在 WSManager 层缓存数据避免任何不必要的数据库访问。

  发布者:展示 Web 服务

  在 WSManager 类中执行的每一个公共方法都将作为一种 Web 服务发布出来。换句话说,您要为这些类发布一种 Web 服务描述 。Web 服务描述是由服务的 Web 服务描述语言(Web Services Description Language,WSDL)描述与由它所引用的任何 XML schema 所组成。(WSDL 是描述服务的标准语言。)

  您可以在公共注册表或在企业内的公司注册表上发布 Web 服务描述。您还可以发布 XML schema,这些是由相同公司或公共存储器上的 Web 服务所定义的。 Java Web 服务客户端采用 JAXR 应用编程接口来查询公司或公共注册表上的服务描述。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: