此后又出现了另外一种2级结构,在这种结构中,不只是用户接口(UI),连业务逻辑也被放到了客户端一级。这种应用的典型运行方式是直接连接数据库服务器进行各种数据库查询。这种客户端被称作“胖客户端”,因为这种结构将可执行代码的相当大一部分都放到了客户端一级(参见图2)。
图2. 2级结构(Business Logic Layer——业务逻辑层;Optional——可选;User Interface Layer——用户接口层;Thick Client——胖客户端;Data Access Layer——数据访问层; Mainframe Server——服务器主机)
3级结构
尽管2级“胖客户端”应用的开发很简单,但是任何用户接口或者业务逻辑的改变所导致的软件升级都需要在所有客户端上进行。幸运的是,在上世纪90年代中期,硬件成本已经变得越来越低,而CPU的运算能力却得到了巨大提升。与此同时,互联网的发展非常迅速,互联网应用的发展趋势已经逐渐显现,两者的结合最终导致了3级结构的产生。
在3级结构模型中,PC客户端只需要安装“瘦客户端”软件——比如浏览器——来显示服务器提供的展示内容,服务器负责准备展示内容、业务逻辑以及数据访问逻辑,应用程序的数据来自企业信息系统,例如关系数据库。在这样的系统中,业务逻辑可以通过远程访问,因此通过Java控制台应用程序支持一个独立的客户端就成为课程。业务层主要通过数据访问层与信息系统实现交互。因为整个应用都位于服务器之上,因此这样的服务器也被称作“应用程序服务器”或者“中间件”(参见图3)。
图3. 3级结构(图中文字:Presentation Layer——表现层;Business Logic Layer——业务逻辑层;Data Access Layer——数据访问层;Thin Client——瘦客户端;Application Server——应用程序服务器;Enterprise Data——企业数据;Database Server——数据库服务器)
N级结构
随着互联网带宽的不断提高,全世界的各大企业都相继启动了他们的网络服务。这种变化导致应用服务器无法继续承担表现层的巨大负荷。这项任务现在已经由专门负责产生展示内容的专门网页服务器所承担。展示内容之后被传送到客户端级的浏览器上,浏览器会负责将用户接口表现出来。N级结构中的应用服务器负责提供可远程访问的业务逻辑组件,而表现层网页服务器则使用本网协议通过网络访问这些组件。图4展示了n级结构。
以上是Java企业级应用架构设计中的分布式结构,在不同的需求和应用场景中,我们会用到不同的分布式结构,设计不同的Java企业级应用架构。