3.1 系统的体系架构
一个好的系统架构不仅有助于软件开发进度的合理安排,而且能够使已开发的系统保持很强的生命力,因此,在开发起重机司机无纸化考试系统之前,必须首先确定系统的架构。
目前,应用于软件系统开发的体系架构主要有单机运行、C/S和B/S(Browser/Server)三种模式。而单机运行模式是将整个软件系统安装在每一台PC(Personal Computer)机中,有多少台PC机就需要安装多少次软件,并且由于安全性差、保密性差和数据回收工作量大等原因,基本上被淘汰。当前系统的开发主流架构技术是C/S架构和B/S架构。
3.1.1 C/S架构
(1)C/S架构概述
C/S架构是客户端/服务器端架构,即C/S模式,是软件系统体系结构的一种,主要由客户机和服务器两部分组成,成长于20世纪80年代末。该模式是根据客户机和服务器两端的硬件环境合理分配功能的实现,以提高系统的运行效率。
(2)C/S架构工作过程
C/S架构的工作过程:首先是用户通过操作应用程序界面发出请求。然后,客户机端运行Client端程序,接收用户发送的请求,并且将请求发送给Server。最后,Server端接收并处理客户端发送的请求,处理后的结果以特定的形式返回给客户端以显示给用户。
目前,C/S架构有两种工作模式:两层结构的C/S架构模式和三层结构的C/S架构模式,其相应的工作过程略有不同。对于两层C/S架构模式,其层次结构如图3.1所示。在两层C/S架构模式中,第一层是在Client端上安装应用程序,第二层是在Server端安装服务器管理应用程序。其工作过程是Client端的应用程序请求Server端,Server端管理应用程序接收并且处理Client端应用程序提出的请求,处理请求并将结果返回。
图3.1 两层C/S架构模式层次结构
三层C/S架构模式是在两层C/S架构模式的基础上演化而来的,其层次结构如图3.2所示。
图3.2 三层C/S架构模式层次结构
由图3.2可知,在该结构中,第一层是客户机端,第二层是应用服务器端,第三层是数据库服务器端。其工作过程是:用户首先操作Client端应用程序界面,使其运行应用程序,发出请求;然后应用服务器接受、处理并将Client端的请求递交给数据库服务器端;最后,数据库服务器端接收请求,处理数据库中的数据,并将处理后的结果返回应用服务器端,应用服务器端继续将处理的结果传送至客户机端,以实现用户的操作。
将两层C/S架构模式和三层C/S架构模式进行对比可知,采用三层C/S架构模式开发的软件可维护性较好。尽管目前三层C/S架构模式运用于实际开发的案例很少,但是它将是未来的一个发展趋势。
(3)C/S架构特点
C/S架构一般应用于基于局域网环境开发的软件中,使用户操作界面美观友好,交互性较强,且能够很好地实现用户要求,同时可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端,降低了系统的通信开销。该架构的特点优势如下:
①能充分发挥客户端PC的处理能力。很多工作可以在客户端处理后再提交给服务器,对应的优点就是客户端响应速度快,适用于局域网。
②运行速度快,工作效率高。原因在于Client和Server可以直接通信,能够充分体现Client端处理请求的能力。
③数据的储存管理功能较为透明。在数据库应用中,数据的储存管理功能,是由服务器程序和客户应用程序分别独立进行的,前台应用程序可以违反某些安全性、数据完整性规则,例如访问者的权限,编号不可以重复、必须有客户才能建立订单这样一些规则在前台程序中不考虑,而由服务器程序集中实现。所有这些,对于工作在前台程序上的最终用户,是“透明”的,他们无需过问(通常也无法干涉)背后的过程,就可以完成自己的一切工作。在客户服务器架构的应用中,前台程序不是非常“瘦小”,麻烦的事情都交给了服务器和网络。在C/S架构中,数据库还不能真正成为公共、专业化的仓库,它受到独立的专门管理,需要提供多方面关于约束的控制。
④适合分布式计算环境。由于联网的计算机以客户端/服务器模式为基础,并且使用消息传递方式进行通信,因此,本地服务器可以很方便地把消息发送给远程客户。而对客户来说,是从远程得到的服务还是从本地得到的服务并不重要。
⑤系统支持面向对象的模块化开发,具有较强的交互性,可以实现复杂的业务流程。
⑥安全性和稳定性高。由于在C/S架构模式中,采用统一管理的方式进行管理数据资源,尤其是对重要的数据可以设置访问权限,因此能够保证系统的安全性和稳定性。
3.1.2 B/S架构
(1)B/S架构概述及工作过程
B/S架构即B/S模式,是继Web兴起后的一种应用于网络系统开发的架构模式。该架构由浏览器、Web服务器和数据库服务器三个层次组成,前端只是实现极少数的事务逻辑,大多数事务逻辑在服务器端实现,其层次结构如图3.3所示。其工作过程是:首先,用户通过操作浏览器将请求传递给Web服务器;其次,Web服务器将用户的请求发送给数据库服务器;最后,Web服务器接收数据库服务器的处理结果(即用户请求),并将用户请求返回浏览器。
图3.3 B/S架构层次结构
(2)B/S架构特点
B/S架构的主要特点有:
①具有很强的开放性和可扩展性。
②采用点(或者多点)对多点的架构模式,便于系统的开发、维护和升级。
③由于B/S架构只安装一个服务器,并且系统的核心功能实现部分集中于服务器上,因此在该架构中的服务器处理大量的数据,负荷较大,从而有可能导致服务器发生崩溃,如果发生崩溃,那么系统也就瘫痪了。
④由于B/S架构应用于基于广域网环境开发的软件系统中,因此系统安全性不容易保证。
3.1.3 用于起重机司机无纸化考试系统的架构
在实际开发中,系统开发应根据所开发系统的特点和自身硬件的要求确定选择什么样的体系架构。通过对比上述描述的C/S架构和B/S架构的工作过程及特点,结合起重机司机无纸化考试系统的需求分析,考虑到考点的多设置问题、系统登录的安全性以及数据库中数据的安全性等,因此,本系统选择交互性较强,且操作处理数据能力较强的两层C/S架构作为系统开发架构。起重机司机无纸化考试系统架构如图3.4所示。
图3.4 起重机司机无纸化考试系统架构
由图3.4可以看出,客户机端主要是提供应用程序的界面,实现和用户交互的功能,为用户提供登录接口。服务器端则主要是通过应用程序以实现功能。首先服务器端接收用户请求;然后运行的应用程序通过ADO技术实现数据库连接,且操作数据库,例如:查询、修改和删除数据库中的数据等功能;最后将运行结果返回给客户机端。