C/S架构,玩的是“寂寞”
——C/S架构的新认识
房产HIS开发部 王蔷
C/S(Client/Server)架构是客户端和服务器架构,通过充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现。B/S(Browser/Server)架构是浏览器和服务器架构,用户工作界面是通过浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现。
C/S和B/S架构是当今世界开发模式技术架构的两大主流技术。C/S是美国Borland公司最早研发的,B/S是美国微软公司研发。关于两种架构的优劣势争论一直都存在,也没有一个定论,所以本文不探讨两种架构的优劣势,只是根据作者多年的C/S架构系统开发经验谈谈不同于传统C/S架构系统的一些新认识。
在房产行业管理软件中登记管理子系统是最核心的系统,该系统两种架构的软件都有,如何选择一个合适自身的软件架构对于我们房产行业信息化的从业人员来说是一个很头疼的问题。如果你做为房管部门的系统管理员还在为C/S架构系统的安装升级维护麻烦而苦恼的话,那本篇文章会给你带来另一种认识。
一、三层架构:
传统的C/S架构一般采用两层架构,客户端接受用户的请求,客户端向数据库服务提出请求,数据库服务将数据提交给客户端,客户端将数据进行计算(可能涉及到运算、汇总、统计等等)并将结果呈现给用户。而在三层架构中,客户端接受用户的请求,客户端向应用服务提出请求,应用服务从数据库服务中获得数据,应用服务将数据进行计算并将结果提交给客户端,客户端将结果呈现给用户。
两层架构中客户端参与计算,而三层架构中客户端并不参与计算,只是简单地接收用户的请求,显示最后的结果。由于三层架构中的客户端并不需要参与计算,所以对客户端计算机的配置要求是比较低的。由于应用服务到客户端只是传递最终的结果,数据量较少,所以对网络的要求不高,需要的只是提高服务器的配置。由于数据计算(业务逻辑)处理都放在应用服务层,客户端只是一个显示的载体,所以当业务逻辑发生变化时,只需更新应用服务即可,而不用更新每个客户端。
在三层体系结构中,客户端和应用服务层的通讯可采用WebServices或Remoting技术来实现。如果在局域网内运行的系统,采用Remoting技术,性能和速度会显得更优。
房产管理软件C/S架构三层架构图
二、客户端无盘一键安装:
B/S系统客户端只需要安装了浏览器,用户输入URL地址就可以打开系统,而传统的C/S系统需要通过光盘或拷贝安装文件点击setup来进行安装,比如我们使用的QQ、迅雷、Office工具都需要有相应的安装文件才能进行安装。微软为了解决C/S系统安装麻烦的问题,提出了ClickOnce部署技术,使用该技术可创建自行更新的基于Windows的应用程序,这些应用程序可以通过最低程序的用户交互来安装和运行。ClickOnce部署自动提供更新,只有更改过的应用程序部分才会被下载。
使用ClickOnce技术发布的C/S应用程序,用户只需要在客户端通过浏览器输入系统发布地址,就可以点击安装进行在线安装,而无需插入安装光盘或拷贝安装文件来进行安装。当系统更新重新发布后,用户再次进入系统时会自动更新,而无需去手工去下载或拷贝系统更新包。
在传统的C/S系统安装过程中,需要人工去干预选择需要安装的组件、安装文件的路径、是否创建快捷方式等,这些对普通用户来说都是必须的操作,不过用户操作的都是点击下一步到最后的完成,没有真正意义上的交互过程,只是机械地告诉计算机要进行下一步操作,而事实上每个安装程序都为我们提供了一种静默安装模式,也就是无用户交互安装,使用这种模式,用户只需操作一次鼠标或键盘就可以完成安装。将静默安装和ClickOnce部署技术结合在一起可以实现客户端无盘一键安装,用户只需要打开浏览器输入URL地址点击一次鼠标就可以完成整个安装过程。
三、服务器一键安装:
无论是在C/S系统还是B/S系统中,服务器的安装是让所有系统管理员很头疼的事,服务器的第一次安装和服务器崩溃后无备份的恢复都会花费大量的时间和精力,除开操作系统的安装外,服务器的平台软件安装很繁琐很耗时,比如大型数据库(Oracle/SQL Server)的安装、数据恢复、GIS空间数据引擎(ArcSDE)的安装等等都需要很多的用户交互才能安装好,如果操作不慎,安装可能会失败,最坏的情况可能还需要重装操作系统,这些都会让系统管理员郁闷很久。借鉴客户端的静默安装技术,我们可以通过编写程序让系统来模拟人工操作完成服务器所有平台的安装,有点类似我们在安装操作系统时的无人值守安装,在安装完操作系统后会自动安装一些常用的工具软件。
正所谓“尺有所长,寸有所短”,任何事物都具有两面性,B/S与C/S也有各自的优缺点,希望通过本文的描述可以改变您对C/S架构传统的一些认识,也同时感慨先进技术带给我们的一些优越性,能够让我们从容地选择适合自身的架构。