1. B/S与C/S的定义
1.1 C/S结构
C/S (Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。
传统的C/S体系结构虽然采用的是开放模式,但这只是系统开发一级的开放性,在特定的应用中无论是Client端还是Server端都还需要特定的软件支持。由于没能提供用户真正期望的开放环境,C/S结构的软件需要针对不同的操作系统开发不同版本的软件, 加之产品的更新换代十分快,已经很难适应百台电脑以上局域网用户同时使用,而且代价高,效率低。
1.2 B/S结构
B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层3-tier结构。这样就大大简化了客户端电脑载荷,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。以目前的技术看,局域网建立B/S结构的网络应用,并通过Internet/Intranet模式下数据库应用,相对易于把握、成本也是较低的。它是一次性到位的开发,能实现不同的人员,从不同的地点,以不同的接入方式(比如LAN, WAN, Internet/Intranet等)访问和操作共同的数据库;它能有效地保护数据平台和管理访问权限,服务器数据库也很安全。
1.3 管理软件主流技术
管理软件技术的主流技术与管理思想一样,也经历了三个发展时期。首先,界面技术从上世纪DOS字符界面到Windows图形界面(或图形用户界面GUI),直至Browser浏览器界面三个不同的发展时期。其次,今天所有电脑的浏览器界面,不仅直观和易于使用,更主要的是基于浏览器平台的任何应用软件其风格都是一样的,使用人对操作培训的要求不高,而且软件可操作性强,易于识别;再者,平台体系结构也从过去单用户发展到今天的文件/服务器(F/S)体系、客户机/服务器(C/S)体系和浏览器/服务器(B/S)体系。
2. C/S、B/S软件技术上的比较
2.1 数据安全性比较
由于C/S结构软件的数据分布特性,客户端所发生的火灾、盗抢、地震、病毒、黑客等都成了可怕的数据杀手。另外,对于集团级的异地软件应用,C/S结构的软件必须在各地安装多个服务器,并在多个服务器之间进行数据同步。如此一来,每个数据点上的数据安全都影响了整个应用的数据安全。所以,对于集团级的大型应用来讲,C/S结构软件的安全性是令人无法接受的。对于B/S结构的软件来讲,由于其数据集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也无需进行什么数据同步,所以这些安全问题也就自然不存在了。
2.2 数据一致性比较
在C/S结构软件的解决方案里,对于异地经营的大型集团都采用各地安装区域级服务器,然后再进行数据同步的模式。这些服务器每天必须同步完毕之后,总部才可得到最终的数据。由于局部网络故障造成个别数据库不能同步不说,即使同步上来,各服务器也不是一个时点上的数据,数据永远无法一致,不能用于决策。对于B/S结构的软件来讲,其数据是集中存放的,客户端发生的每一笔业务单据都直接进入到中央数据库,不存在数据一致性的问题。
2.3 数据实时性比较
在集团级应用里,C/S结构不可能随时随地看到当前业务的发生情况,看到的都是事后数据;而B/S结构则不同,它可以实时看到当前发生的所有业务,方便了快速决策,有效地避免了企业损失。
2.4 数据溯源性比较
由于B/S结构的数据是集中存放的,所以总公司可以直接追溯到各级分支机构(分公司、门店)的原始业务单据,也就是说看到的结果可溯源。大部分C/S结构的软件则不同,为了减少数据通信量,仅仅上传中间报表数据,在总部不可能查到各分支机构(分公司、门店)的原始单据。
2.5 服务响应及时性比较
企业的业务流程、业务模式不是一成不变的,随着企业不断发展,必然会不断调整。软件供应商提供的软件也不是完美无缺的,所以,对已经部署的软件产品进行维护、升级是正常的。C/S结构软件,由于其应用是分布的,需要对每一个使用节点进行程序安装,所以,即使非常小的程序缺陷都需要很长的重新部署时间,重新部署时,为了保证各程序版本的一致性,必须暂停一切业务进行更新(即“休克更新”),其服务响应时间基本不可忍受。而B/S结构的软件不同,其应用都集中于总部服务器上,各应用结点并没有任何程序,一个地方更新则全部应用程序更新,可以做到快速服务响应。
2.6 网络应用限制比较
C/S结构软件仅适用于局域网内部用户或宽带用户(1兆以上);而B/S结构软件可以适用于任何网络结构(包括28.8K拨号入网方式),特别适于宽带不能到达的地方。
3. C/S、B/S软件商业运用上的比较
管理软件是为企业服务的,企业选用管理软件不仅要从技术上考虑,还要从商业运用方面来考虑,下文将从商业运用的角度对两种结构的软件进行比较。
3.1 投入成本比较
B/S结构软件单从软件成本上来看,一般只有初期一次性投入成本。对于集团来讲,有利于软件项目控制和避免IT黑洞,而C/S结构的软件则不同,随着应用范围的扩大,投资会连绵不绝。
3.2 硬件投资保护比较
在对已有硬件投资的保护方面,两种结构也是完全不同的。当应用范围扩大,系统负载上升时,C/S结构软件的一般解决方案是购买更高级的中央服务器,原服务器放弃不用,这是由于C/S软件的两层结构造成的,这类软件的服务器程序必须部署在一台计算机上;而B/S结构则不同,随着服务器负载的增加,可以平滑地增加服务器的个数,然后在各个服务器之间做负载均衡。有效地保护了原有硬件投资。
3.3 企业快速扩张支持上的比较
对于成长中的企业,快速扩张是它的显著特点。例如有些商业公司,每年都有新的配送中心成立,每月都有新的门店开张。应用软件的快速部署,是企业快速扩张的必要保障。对于C/S结构的软件来讲,由于必须同时安装服务器和客户端、建设机房、招聘专业管理人员等,所以无法适应企业快速扩张的特点。而B/S结构软件,只需一次安装,以后只需设立账号、培训即可。
其次,随着软件应用的扩张,对系统维护人才的需求有可能成为企业快速扩张的制约瓶颈。如果企业开店上百家,对计算机专业人才的需求就将是企业面临的巨大挑战之一。
抛开人力成本不说,一个企业要招到这么多的专业人才并且留住他们也是不可能的。所以,采用C/S结构软件必然会制约企业未来的发展。另外,大多数C/S结构的软件都是通过ODBC直接连到数据库的,安全性差不说,其用户数也是受限的。每个连到数据库的用户都会保持一个ODBC连接,都会一直占用中央服务器的资源,对中央服务器的要求非常高,使得用户扩充受到极大的限制。而B/S结构软件则不同,所有的用户都是通过一个JDBC连接缓冲池连接到数据库的,用户并不保持对数据库的连接,用户数基本上是无限的。
4. 从C/S到B/S,软件开发模式的变迁
上个世纪后期,C/S结构是最为流行的软件系统体系结构。但是,自从Internet诞生之后,更多的软件应用系统体系结构开始向B/S结构转变。
在C/S结构下,大多数的企业管理软件,采用的均是传统开发工具Visual Basic(VB)和Delphi代码,或者是Power Builder(PB)代码,即第四代语言代码。
随着Internet时代的到来,大多数的管理软件开始转向B/S结构。如何从C/S平稳过渡到B/S,之前并没有更好的解决方案,大多数的企业开始彻底放弃VB、PB开发的代码,转而采用C/S结构下的Java语言重新来写。虽然不会出现问题,但是需要重新投入资本、人力,甚至需要增加更多的培训机会。
4.1 代码移植的演变
在20世纪70和80年代,代码移植最主要的目的是将程序移植到不同的系统环境下运行?D主要是处理器和操作系统。由于市场上的硬件和操作系统呈现多样化和均衡化的状态,因此,一个重要的程序往往需要考虑两个甚至更多的系统环境。
1990年,Windows 3.0发布。基于窗口、按钮、图标和鼠标的图形界面(GUI),迅速征服了全世界个人计算机用户。将原有DOS字符模式下的应用程序移植到GUI环境,成为众多用户和软件开发商的迫切需求。可视化编程逐渐成为GUI下,软件开发的主流。
在4GL(第四代语言)开始大行其道之后,新一轮代码移植的潮流再度兴起。此时的重点是将结构化逻辑在GUI下实现,把过去结构化代码中的制作界面部分剥离,并把逻辑部分附着在各个对象事件之中,通过操纵对象行为,完成整个应用的代码移植。
4.2 可视化编程在Web时代的瓶颈
但是,Internet的飞速发展给4GL编写的GUI程序提出了新的挑战。这些程序大都基于C/S结构下,这种模式在局域网里将应用一分为二,服务器负责数据管理,客户机完成与用户的交互任务。C/S结构下软件具有强壮的数据操纵和事务处理能力,以及数据的安全性和完整性约束。但随着企业规模的日益扩大,应用程序的复杂程度不断提高,C/S结构逐渐暴露出了缺点。比如开发成本较高,用户界面风格不一、使用繁杂、不利于推广使用,维护复杂、升级麻烦等。
为了解决C/S结构的不足,基于Internet的B/S技术应运而生,它是有计算技术以来最稳定的技术平台。本质上B/S也是一种客户机技术,用户只需通过浏览器这个统一界面,就可享受到无限丰富的、永远在不断变化和发展着的信息服务。而通过这种结构,原则上取消了管理员所有在客户机端的维护工作。
在C/S向B/S转移的过程中,开发者遇到了极大的困难。因为代码的移植已经不再是过去的简单语法转换,而牵涉到各种对象的映射。
在结构化编码时代里,无论是对一种语言不同方言之间的移植,如从Turbo C到GNU C,还是对不同的高级语言之间的移植,如Turbo Pascal到Turbo C,源语言和目标语言均遵循着相同的结构。源代码的转换,更多的是基于一个标识符对照表来完成。
使用4GL开发的C/S程序是对象的集合,代码从属于对象。在相同或者类似的界面下,不同开发工具使用的对象,提供给开发者的接口可能完全不同。如果使用Java或者.NET重写原有C/S程序,意味着开发者必须将界面上所有元素逐个将其属性、参数表、事件用新的开发工具重新编写。
4.3 难越的自动化迁移之路
不管网络泡沫如何演变,Internet始终是难掩的潮流。在国外软件市场,大多数大型企业管理软件已经是B/S结构,或者正处于C/S结构向B/S结构的过渡时期。国内的大多数软件企业也已经开始向B/S结构转变。B/S结构下的大型管理软件,势必是未来几年内,管理软件市场的主流软件。
要解决现有C/S应用低成本、快速移植到B/S结构下的应用的困境,则必须要解决自动且精确的GUI移植、自动的语法逻辑移植、方便的服务器端调试和发布。
5. 海心的B/S之路
从以上的分析可以看出,B/S结构的大型管理软件有着C/S结构软件无法比拟的优势。而从国外的发展趋势来看,也验证了这一点。目前,国外大型企业管理软件要么已经是B/S结构的,要么正在经历从C/S到B/S结构的转变。从国内诸多软件厂商积极投入开发B/S结构软件的趋势来看,B/S结构的大型管理软件势必在将来的几年内占据管理软件领域的主导地位。
同国内外的众多软件供应商一样,海心计算机的软件产品也经历了一个从C/S到B/S的过渡。从软件的开发模式来看,海心计算机的软件开发大致经历了四个时期,分别是C/S结构、B/S+C/S结构、B/S结构、WEB2.0。
5.1 C/S结构
海心计算机的早期软件产品都是C/S结构的,这个时期大约是在2002年以前。公司成立的初期,正是第四代语言大行其道的时期,那个时期的系统开发以Visual Basic(VB)、Delphi和Power Builder(PB)等工具为主流,奉行GUI下的可视化编程。
比如我们开发的物业管理软件,从1.0版本到4.0版本都是以Delphi作为开发工具的,开发结构自然是C/S的。这样的开发模式,造成的后果就是维护量大,我们专门成立了售后队伍,每天奔走在客户的使用现场,解决用户使用过程中产生的各种问题。并不是我们开发的软件可维护性差,也不是程序不稳定和经常出问题,其最直接的原因,就是软件的结构是C/S的。用户总是有各种各样的问题出现,等着我们去解决。
在商业上的推广,也由于这个原因,导致我们的系统只能在近距离内销售,很难推广到更广阔的地区,因为差旅费用比较高。对于一个刚刚成立不久的公司来讲,负担是比较重的,也成为企业成长的一个瓶颈。
5.2 B/S+C/S结构
但是,在2004年以前,整个社会的网络环境还不是那么好,不是所有的用户都能够登录互联网。用户对于系统在互联网上应用,也存在一个认识的问题,达不到这么高的理解程度。将所有的软件系统发布在互联网上应用,还不是很现实的问题。针对这个情况,我们推出了B/S+C/S结构的模式。
对于一套系统,开发B/S和C/S两套程序。B/S的程序,发布在互联网上,供有条件连通互联网的用户使用。而没有条件连通互联网的用户,使用C/S机构的客户端程序。两套程序的数据交互,使用自行开发的基于SOCKET的数据传输工具。客户端连接数据库服务器,使用电话拨号等方式。
这样的一种方式,表面上看解决了用户的现场使用的实际状况,但是从其他方面分析,还是存在一定的问题。一方面,从上面的讲解中我们也可以了解到,客户端的数据很难做到实时传输,只能等待某个时间进行传输。并且,为了解决数据传输量的问题,尽量减少数据的传输量,所传输的数据基本上都是一些中间的报表数据,并不能解决企业应用中对数据量的真正需求。另一方面,对客户端程序的维护工作依然存在,系统维护人员还是需要到用户的现场去解决问题。
5.3 B/S结构
从2005开始,整个国内的互联网环境越来越好,大部分的用户都能够实现对互联网的连接。同时,用户对系统在互联网上应用的认识程度也达到了一定的高度,基本认同这种使用方式。基于这种现状,开发完全的B/S结构的程序,已经具备了现实的条件。
这个时期,我们开发的系统,主要是B/S结构的。例如,我们在2005年开发的办公自动化系统,就是纯B/S结构。这种开发的模式,系统的使用效果非常好。减少了系统的维护工作量,用户需要解决的问题,只要发布一次就能够得到解决,解决问题能够做到及时快速。
这个时期,也是公司发展比较快的一个阶段,这也得益于互联网的发展。
5.4 WEB2.0
2007年之前,虽然我们做到了B/S系统的开发,但是,在技术上还是国内众多厂商中普通的一员,技术上没有领先的地方。针对这个情况,从2006年下半年,我们开始着手研究自己的基础平台架构。
这个平台的研发,由公司的技术总监孙博士带队。主要的技术方向在业界领先的WEB2.0方面,侧重于Ajax、xml等的应用,主要解决工作流引擎、报表引擎、表单引擎、消息服务、大数据量处理等的技术问题。到2007年初,基础平台的研发工作取得了很大的成果,形成了自己的基础平台架构。公司在技术方面的优势得到了很大的提升,在国内的众多软件厂商中,技术水平可以说是一流的。
目前,我们正在实施的哈尔滨物业供热集团的营销收费管理信息系统就是采用了我们自主研发的基础平台架构。从目前的情况来看,实施的效果非常好,基础平台架构的作用在其中占非常重要的地位。
注:本文部分内容源自:【IT168软件评论】2006-6-5。
大连海心计算机有限公司
|