第2章 系统的分层结构 2.1.简述 我们在解决一个复杂的问题的时候,通常使用的一个技巧就是分解,把复杂的问题 分解成为若干个简单的问题,逐步地、分别地解决这几个小问题,最后就把整个问题解决掉
在设计一个复杂的软件系统的时候,同样的,为了简化问题,我们也通 常使用的一个技术就是分层,每个层完成自身的功能,最后,所有的层整合起来构成一个完整的系统
分层是计算机技术中的常用方法,一个典型的例子就是TCP/IP技术的OSI七层模型
在应用软件开发中,典型的就是N层应用软件模型
N层的应用软件系统,由于其众多的优点,已经成为典型的软件系统架构,也已经为广大开发人员所熟知
在一个典型的三层应用软件系统中,应用系统通常被划分成以下三个层次:数据库层、应用服务层和用户界面层
如下图(图2
1)所示: 图 2
1 其中,应用服务层集中了系统的业务逻辑的处理,因此,可以说是应用软件系统中的核心部分
软件系统的健壮性、灵活性、可重用性、可升级性和可维护性,在很大程度上取决于应用服务层的设计
因此,如何构建一个良好架构的应用服务层,是应用软件开发者需要着重解决的问题
为了使应用服务层的设计达到最好的效果,我们通常还需要对应用服务层作进一步 的职能分析和层次细分
很多开发者在构建应用服务层的时候,把数据库操纵、业务逻辑处理甚至界面显示夹杂在一起,或者,把业务逻辑处理等同于数据库操纵, 等等,这些,都是有缺陷的做法
我们将就在这个方面进行设计时可采用的方案进行一些探讨
在一个分布式应用系统中,整个系统会部署在不同的物理设备上,如上面所示的三层体系,用户界面和应用服务器可能在不同的设备上,这就涉及到不同机器之间的通信问题,也就是层间的通信和交互问题
我们已经有了很多可以用于分布式远程访问的技术,如 CORBA,在Java平台上,我们还有 Java RMI、EJB,在Windows平台上,从 D