SOA、SmartClient....,现在又有人提出了D/S架构。究竟谁才是第三种将得到广泛应用的软件架构?
看了这篇文章,尽管作者并没有提出D/S架构的细节,有的只是一种实现效果,但感觉作者所说的D/S架构其实和微软提倡的SmartClient应用比较接近。也许正因此,可以感到,也许是不约而同的,用户和开发人员一样都已经不再满足/满意于C/S或B/S的架构。
新的第三种架构需要满足人们对硬件和网络资源的充分利用、对信息处理的高速、协同任务,能够从个人的桌面/终端控制器(比如手机)方便的控制和连接世界这些要求,而这些一直也是软件架构师长久的梦想。目前来看,发现和实现这种架构,则是架构师和程序员的共同挑战。
---------------------------------------------------------------------------------------------------------------------------------------
下面是转载自BlogChina的作者原文:
D/S,开创软件架构新时代
IT 行业是一个充满智慧的行业,开发理念的一小步突破,有时候会带来软件应用的一大步繁荣。而这种开发理念的突破,往往来源于日常生活的细节。 —— 尽管, “ 计算机 ” 与 “ 日常生活 ” 有时候看起来是相距甚远的, “ 数据库 ” 和 “ 电影票 ” 、 “ 麦辣鸡翅 ” 似乎永远不兼容。
比如说,最近,我在很多大学跟人讲述D/S(Desktop/Server)架构,就引起了很多人的兴趣和共鸣。这些人里面有些是学计算机专业的,也有很多是非计算机专业的,他们理解起来,似乎都没有太大的困难。我跟他们说,D/S架构就是一种“桌面/服务器”架构,他的理念来源于日常生活中的“中央空调”、“整体厨房”。
D/S架构整合了C/S架构和B/S架构的优点,同时很好地规避了他们的缺点,是目前最领先的软件架构。
各擅所长的C/S和B/S架构
在计算机程序开发中,现今存有C/S和B/S两种架构,其中C/S架构源远流长,而B/S架构属于后起之秀。
C/S结构,即Client/Server(客户机/服务器)结构。此结构把数据库内容放在远程的服务器上,而在客户机上安装相应软件。C/S软件一般采用两层结构。它由两部分构成:前端是客户机,即用户界面(Client)结合了表示与业务逻辑,接受用户的请求,并向数据库服务提出请求,通常是一个PC机;后端是服务器,即数据管理(Server)将数据提交给客户端,客户端将数据进行计算并将结果呈现给用户。还要提供完善的安全保护及对数据的完整性处理等操作,并允许多个客户同时访问同一个数据库。在这种结构中,服务器的硬件必须具有足够的处理能力,这样才能满足各客户的要求。
B/S是Brower/Server的缩写,这种机构的客户机上往往只要求安装一个浏览器(Browser),如Netscape Navigator或Internet Explorer,服务器通常安装数据库。
C/S的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。缺点主要有以下几个:
客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。还有,系统软件升级时,每一台客户机需要重新安装,其维护和升级成本非常高。
C/S架构是一种主从式结构,非常不适合处理流程类活动,当应用的复杂程度趋高时,它的不足就体现的更加明显。这时候,就催生了B/S架构。
B/S最大的优点就是可以在任何地方进行操作而不用安装任何专门的软件。只要有一台能上网的电脑就能使用,客户端零维护。系统的扩展非常容易,只要能上网,再由系统管理员分配一个用户名和密码,就可以使用了。甚至可以在线申请,通过公司内部的安全认证(如CA证书)后,不需要人的参与,系统可以自动分配给用户一个账号进入系统。
B/S架构最大的缺点是造成客户端资源的浪费。当服务器的负担过重,有繁复的算法时,客户端一点忙也帮不上,只能增加中间层(应用服务器)。
B/S是一种“民主集中式”的架构,相对C/S架构的“主从式”而言,已经有了巨大的突破。
博采众长的D/S架构
尽管C/S架构和B/S架构各有优缺点,是否存在一个更先进的架构,综合C/S和B/S的优势,使得C/S和B/S各擅所长,这样客户端就可以复杂一点,不再是一个纯粹的浏览器,而服务器端相对来说任务轻一点,不再有繁复的要求,这样,让客户段端处理非流程类的活动,服务器处理流程类的活动,整体上实现效果最优。
这种架构是存在的,我把它命名为D/S架构,即桌面/服务器架构,它是B/S架构的一种延续和提升。在D/S架构里客户端是一个“桌面”,数据存放在服务器端,能够使用本地的资源,能够很好地解决现在的windows应用的问题(数据,安全,部署),并且可以脱机工作,安全方面得到了一定的保证,容易部署和维护。
下面我们通过Ework这样一个实例来看D/S架构的部署和意义。Ework是集通讯交流工具、工作平台、工作管理于一体的即时工作平台。
客户端产品界面如下:
从这个界面我们可以看出,这是一个桌面而非简单的“浏览器”。Ework作为一个网络桌面,提供了网站溜览、信息收索、企业管理系统等基于网络的其它应用,从而将门户搬到了用户桌面,用户可以直接从桌面到网络上的任何地方,可以直接进行任何的网络应用。
在Ework里,服务器端主要记录各种日志,主要管理流程类活动。而更多的本地功能,则通过P2P技术,在客户端之间完成。客户端本身承担了适度的计算任务,使得服务器的压力减少,从而带来资源的优化和效率的提升。
从SUN公司提出“网络就是计算机”到微软的“.net”平台到现在的网格计算,计算机开发的理念在一步步刷新。架构师将来碰到的问题也许不是采用什么架构的问题,而是应该为多远的未来作出规划。如果一个架构师专注于太远的未来,架构可能在完成是超前于它的时代。同样地如果架构师太短视,也会造成落后挨打的局面。D/S适逢其时,我们期待它有大的发展。(智文广/文)