余姚市电子监察系统建设方案
浏览器 客户机 JSP、Servlet WebService Fa?ade 业务逻辑层 DAOFactory 数据访问层 关系数据库 如:SQL Server XML数据文件 JCA、JMS等 J2EE实现思路
客户端 应用控制 请求处理 请求执行 业务定位 业务展现 SOAP/HTTP SOAP/HTTP Web服务 DAO App功能组件 JCA Data 其它系统
13
余姚市电子监察系统建设方案
客户端:用户通过WEB浏览器与不同应用程序交互,浏览器作为应用程序的客户可以使用JSP页面和XHTML来呈现客户页面。
应用程序控制器:应用程序控制器是主控制器Servlet,负责初始化委派请求和响应请求处理程序。
请求处理程序:JAVA类,通过调用相应的请求执行程序完成要求的处理,并对请求进行预处理,这种调用采用命令模式。
请求执行程序:完成具体的请求活动,例如与服务交互。请求执行程序依靠业务定位程序发现相应的服务,然后通过这些服务访问需要的资源信息。
业务定位程序:这些程序负责隐藏查找服务的复杂性,并提供缓存逻辑。 业务展现接口:通过聚合来自多个系统或服务的方法,简化复杂对象的视图。 WEB服务:提供WEB服务端点的业务逻辑。
DAO(数据访问接口):封装数据库异构的复杂性,使得在应用服务层面独立于数据层面。
J2EE是一个基于组件-容器模型的系统平台,其核心概念是容器。容器是指为特定组件提供服务的一个标准化的运行时环境,Java虚拟机就是一个典型的容器。组件是一个可以部署的程序单元,它以某种方式运行在容器中,容器封装了J2EE底层的API,为组件提供事务处理、数据访问、安全性、持久性等服务。在J2EE中组件和组件之间并不直接访问,而是通过容器提供的协议和方法来相互调用。组件和容器间的关系通过“协议”来定义。容器的底层是J2EE服务器,它为容器提供J2EE中定义的各种服务和API。一个J2EE服务器(也叫J2EE应用服务器)可以支持一种或多种容器。每个容器的服务包括两部分:J2SE(Java 2 Platform Standard Edition)和一组扩展的服务。这是因为J2EE是以Java标准版为基础的,各容器在J2SE之上再根据需要提供一些扩展的服务,如目录服务、事务管理、数据访问、消息机制、安全性等。
EJB是J2EE平台的核心,也是J2EE得到业界广泛关注和支持的主要原因。我们知道,J2EE的一个主要目的就是简化企业应用系统的开发,使程序员将主要精力放在商业逻辑的开发上。EJB正是基于这种思想的服务器端技术,它本身也是一种规范,
14
余姚市电子监察系统建设方案
该规范定义了一个可重用的组件框架来实现分布式的、面向对象的商业逻辑。EJB的核心思想是将商业逻辑与底层的系统逻辑分开,使开发者只需关心商业逻辑,而由EJB容器实现目录服务、事务处理、持久性、安全性等底层系统逻辑。
企业级Java(Java 2 Enterprise Edition)的示意图。
J2EE构架划分为表示层、业务层和数据层三个层次。
在表示层,支持Java应用、在浏览器中的小应用程序、Corba客户端、以及Web客户端;在业务层,通过EJB Beans来实现业务逻辑,并运行在支持EJB的应用服务器中;数据层同样支持各种数据库管理系统。表示层和业务层之间主要通过RMI-IIOP进行通讯;业务层和数据层则通过JDBC和SQL/J进行连结。
J2EE使用的是业界的标准,而不是一个厂商的标准。特别是对OMG的Corba标准有很好的支持。它能够在各种不同的硬件平台和操作系统上运行。
J2EE规范里包含了多种技术,并形成一个有机的整体:
●EJB:企业级Java组件,能够封装复杂的业务逻辑,并在整个系统范围内重用,支持远程调用和集群;
15
余姚市电子监察系统建设方案
●RMI-IIOP:远程方法调用协议,支持Java程序象调用本地对象一样调用远程对象,该协议既支持Java本身的RMI调用,也支持CORBA的IIOP协议,因而能够与CORBA服务进行互访问;
●JDBC:提供Java程序访问数据库的标准接口;
●Servlet:支持动态地生成html页面,用于基于浏览器的应用开发; ●JSP:能够通过混合编写java和html脚本,动态地生成html页面,比编写Servlet的开发效率更高;
●JTA:Java事务接口提供对事务的支持,包括分布式事务; ●JavaIDL:允许Java对象访问外部CORBA对象;
●JMS:Java消息服务,支持可靠的点对点、发布/订阅方式的消息传输; ●JNDI:Java命名和目录服务,支持按照名称来查找资源; ●JavaMail:提供在Java里面发送和接收电子邮件的支持; ●JAF:被JavaMail用来处理MIME数据;
●JAXP:Java处理XML文件的标准接口,支持SAX和DOM API;
●JCA:允许遗留的信息系统提供出适配器接口,与J2EE应用程序进行整合; ●JAAS:支持基于用户的认证和授权模型; J2EE的特点在于:
支持所有的硬件和操作系统平台,使用户在操作系统和硬件的选择上具有更大的自由度;
技术规范更全面,对企业级应用的支持更强大; 具有“编写一次,到处运行”的优点; 系统的可扩展性更强,后期维护费用较低; 适合大型的系统和关键的业务;
现有标准,后有实现,标准的设计很完善; 只需要用Java一种语言,开发效率高。
16
余姚市电子监察系统建设方案
4.1.4 MVC处理模式
MVC是Model/View/Control的缩写。Model/View/Control是软件设计的典型结构。在这种设计结构下,一个应用被分为三个部分:Model、View和Controller,每个部分负责不同的功能。Model是指对业务数据/信息的处理模块,包括对业务数据的存取、加工、综合等。;View是指用户界面,也就是面向用户的数据表示,Web的视图可以是HTML页面,也可以是图片或者其他媒体;Controller则负责View和Model之间的流程控制,也就是完成两个方向的动作:1.将用户界面(View)的操作映射到具体的Model,以完成具体的业务逻辑;2. 将通过Model处理完的业务数据及时反应到用户界面(View)上。具体地说,视图可以用JSP或者HTML来定义,模型可以用Java对象来定义(通常称为Java Bean),控制器可以通过Java对象的动作类来定义。以下是MVC架构的处理流程:
(Controller)1 requestServlet3 fwd2 instantiateDATABrowser5 response(Model)JavaBean4 retrieve(View)JSP MVC架构使得应用程序的结构更加清晰,通过将代码按照层次划分为业务逻辑/数据、用户界面和应用流程控制这三个层次,增强代码稳定性。我们知道,对于Model、View、Controller这三部分功能来讲,View的实现一般是由界面设计人员和界面程序员来完成,Model则是由业务逻辑程序员来完成,Controller则一般由负责整体控制的程序员来完成。Controller部分的代码比较稳定,一般会实现一个通用的架构;而Model则跟随商务流程的变化而变化;View的更改则是随着用户需求的更改而更改。这种模块功能的划分有利于在代码修改过程中进行模块的隔离,而不需要把具有不同功能的代码混杂在一起造成混乱。对于项目开发而言,有利于在项目小组内
17