SUN设计J2EE的初衷正是为了解决两层模式(Client/Server)的弊端,在传统模式中,客户端担当了过多的角色而显得臃肿。在两层模式中,第一次部署的时候比较容易,但难于升级或改进,可伸展性也不理想,而且经常基于某种专有的协议,它使得重用业务逻辑和界面逻辑非常困难。现在J2EE的多层企业级应用模型将两层化模型中的不同层面切分成许多层,一个多层化应用能够为不同的每种服务提供一个独立的层。
J2EE典型的四层结构如图6-1所示,下面为各个功能层面作一个比较详细的说明。
图6-1 J2EE的四层结构
1.客户层
在基于Web的J2EE应用中,用户的浏览器在客户层中运行,并从一个Web服务器上下载Web层中的静态HTML页面或由JSP或Servlets生成的动态HTML页面。在不基于Web的J2EE应用程序中,一个独立的客户程序,可以不运行在一个HTML页面中,而是运行在其他一些基于网络系统(比如手持设备)中的Applet程序,或者JAVA语言直接编写的客户端程序。这些应用在客户层中运行,并在不经过Web层的情况下访问Enterprise Beans。不基于Web的客户层也可能像采用基于Web方式那样使用一个JavaBeans类来管理用户输入,并将该输入发送到在企业层中运行的Enterprise Beans类来处理。
2.Web层(www.xing528.com)
J2EE Web层组件可以由JSP页面、基于Web的Applets以及显示HTML页面的Servlets组成。调用Servlets或者JSP页面的HTML页面在应用程序组装时与Web组件打包在一起。
就像客户层一样,Web层可能包括一个JavaBeans类来管理用户输入,并将输入发送到在业务层中运行的Enterprise Beans类来处理。运行在客户层的Web组件依赖容器来支持诸如客户请求和响应以及Enterprise Beans查询等。这里的关于Web层的描述和客户层非常的相似,可以理解为客户层完全是表现的功能,一般不包括业务逻辑方法,Web层则和Enterprise Beans交互,自身比如JSP和Servlets中会包含一些业务逻辑。
3.业务层
作为解决或满足某个特定业务领域,如银行、零售、物流或金融业等需要的逻辑的业务代码由运行在业务层的Enterprise Beans来执行。一个Enterprise Beans从客户程序处接收数据,对数据进行处理,再将数据发送到企业信息系统层存储。一个Enterprise Beans还从存储中检索数据,并将数据送回客户程序。运行在业务层的Enterprise Beans依赖于容器来为诸如事务、生命期、状态管理、多线程及资源存储池等提供通常都是非常复杂的系统级代码。业务层经常被称作Enterprise JavaBeans层。业务层和Web层一起构成了多层J2EE应用的中间层。
4.专业市场信息系统层
专业市场信息系统层运行专业市场信息系统软件,这层包括专业市场基础设施系统,例如专业市场办公自动系统(OA)、物流管理系统(LGS)、数据库系统及其他遗留信息系统(LIS)。J2EE应用组件因为某种原因(例如访问数据库)需要访问专业市场信息系统[24]。
免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。