思诚科技 seecen LOGO
咨询热线:0791-87557233
  首页 |   Java EE  
关于思诚
关注官方微信

使用 Web 服务器的 Listener 架构建议书

来源:网络    更新时间:2014/12/16


简介

目标
本文的目标是分析和设计可处理多种协议的 Listener 组件的高级视图。文中提供了一种构建 listener 组件的初始方法,并对比了使用 Servlet 与使用独立 Java 应用程序构建 listener 的设计。

使用 Servlet 与使用独立 Java 程序的 Listener 应用程序的对比
来自 Customer 的请求可能使用多种协议,像 FTP、TCP/IP、HTTP、SNA、SOAP、HTTPS 和 MQ。Customer Handler 负责处理请求并将控制传送到 Controller 以便进一步处理。

Listener 构成了 Customer (FTP/API/Web Customer) 和 Front controller 之间的接口。

Listener 组件处理来自 Customer 的请求,控制则被传送到 Customer Handler 以便进一步处理。

 

选项

选项 A 通用 Servlet 架构



可以配置 Listener 组件为特殊的协议工作。Configurator 接受配置文件并根据配置参数来配置 Listener 组件。

“Generic Servlet”具有多种抽象服务方法,可以实现它们以处理多种协议。要处理 FTP、TCP/IP、HTTP 等协议,我们可以实现可扩展 Generic Servlets 的 Servlets。FTP、TCP/IP、HTTP Servlets 可实现多种服务方法以接受来自客户的采用了不同协议的请求。

优势

· 无需单独的 GUI 来启动和停止 listener。可将 listeners作为一个 web 应用程序来部署,使其易于使用。通过 web 服务器管理控制台可以部署、撤销部署和重新部署 web 应用程序。

· 各个组件将作为 WAR(Web 档案文件)来创建和打包。这些 listeners 将在 web 容器内作为 web 应用程序来部署。

· 因为 Generic Servlet 能够处理多种协议,所以新的协议设计和实现将是基于标准的架构。


劣势

· 代码的实现要花费很多时间。

· 即使我们实现了使用 java 类和从 Servlet/JSP 调用 java 类,被调用的 java 程序也将无法参与到群集环境中,并且也无法将对象保留在会话中,这就意味着如果我们需要类似于HTTPServlet而设计,开发会变得更加复杂,并且为了使其能在群集环境中运行还需要大量的测试工作。

注意:任何 web 服务器都没有这样的实现。

选项 B Servlet Init 架构

在 web 服务器启动和 web 服务器shutdown期间的关机时将调用所有的 Servlets。每种协议的实现逻辑将被写入 Servlet 的 init 方法中。

优势

· web 服务器启动期间会调用 init 方法,并且在 web 服务器shutdown时会触发 destroy方法。

  • 上一篇文章:

  • 下一篇文章:
  •  

    0791-87557233

    重视每个来电 珍惜您的时间
    思诚者开发沙龙
    江西思诚科技有限公司  赣ICP备17006097号  CopyRight©2014 - 2018