首页 > 代码库 > 《网站的架构C/S和中间件》

《网站的架构C/S和中间件》

一、C/S结构介绍

C/S 结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server 应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向

优点:C/S结构的优点是能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器。对应的优点就是客户端响应速度快。

缺点:客户端需要安装专用的客户端软件。首先涉及到安装的工作量,其次任何一台电脑出问题,如病毒、硬件损坏,都需要进行安装或维护。C/S架构的劣势还有高昂的维护成本且投资大。其次,传统的C/S结构的软件需要针对不同的操作系统系统开发不同版本的软件,由于产品的更新换代十分快,代价高和低效率已经不适应工作需要。在JAVA这样的跨平台语言出现之后,B/S架构更是猛烈冲击C/S,并对其形成威胁和挑战。

详见:

http://baike.baidu.com/link?url=pAeRKjIxPtqpqw9jQn56YomOl_0CLaGVQ72A8bapSzWj4dWS0btKaLP4-NdCphBRDsXXEZ7fFi0iWRpuY4MGre0S2cRd5gmIid-QL28sqgakGZfWr_aJBiaC10sEz7rSP77C3K99iIqWwXKJZNHqvK

C端软件:百度浏览器、谷歌浏览器、IE浏览器、UC浏览器等...

详见;

http://xiazai.zol.com.cn/download_order/sub_69.html

S端软件:

Apache,IIS,GFEGoogle的web服务器,Nginx,Lighttpd,Zeus,Sun,Resin,Jetty,BEA WebLogic,Tomcat

详见http://zhidao.baidu.com/link?url=uZsils6cEBcvAJczzGKpQuxnHz4Jb9P8ZU5Gr3MhW3-KwbmiXAxrlicWSKGP6Y9hn949SFLDuhw1bplN6gTbm_

市场占有率图鉴:

技术分享

图示:2015年8月全球不同浏览器市场占有率统计(数据来自Net Market Share)

技术分享

图示:2015年8月全球不同浏览器版本市场占有率统计(数据来自Net Market Share)

技术分享

图示:2015年8月全球不同浏览器市场占有率统计(数据来自StatCounte)

技术分享

图示:2015年8月不同浏览器版本使用率统计数据(数据来自StatCounte)

技术分享
图示:2015年8月国内不同浏览器市场占有率统计(数据来自百度统计)

详见:http://tools.yesky.com/420/93749420.shtml

扩展:

B/S应用程序

B/S应用程序的全称为Browser/Server,即浏览器/服务器结构。Browser指的是Web浏览器,极少数事务逻辑在前端实现,但主要事务逻辑在服务器端实现,Browser客户端,WebApp服务器端和DB端构成所谓的三层架构。B/S应用程序的系统无须特别安装,只有Web浏览器即可。
        B/S
应用程序中,显示逻辑交给了Web浏览器,事务处理逻辑在放在了WebApp上,这样就避免了庞大的胖客户端,减少了客户端的压力。因为客户端包含的逻辑很少,因此也被称为瘦客户端。

两者对比

 

C/S应用程序

B/S应用程序

客户端

需要安装才可使用。

无需安装,有Web浏览器即可

客户群

不适合面向一些不可知的用户,用户群固定。

可以直接放在广域网上,通过一定的权限控制实现多客户访问的目的,交互性较强。

升级

维护成本高,发生一次升级,则所有客户端的程序都需要改变。

BS架构无需升级多个客户端,升级服务器即可

响应速度

由于只有一层交互,因此响应速度较快

客户端服务器端的交互是请求-响应模式,通常需要刷新页面。(在Ajax风行后此问题得到了一定程度的缓解)

安全性

安全性能可以很容易保证,实现多层认证也不难

在速度和安全性上需要花费巨大的设计成本,

这是BS架构的最大问题。

界面显示

界面和操作可以很丰富。

在跨浏览器上,浏览器兼容问题BS架构不尽如人意。

链接方式

永久连接

断开式连接

小结

其实无论是哪种架构程序,都没有绝对的优劣之分,都是各有所长的,不然它们也就不能共生了。选择开发哪种应用程序,关键在于所使用的环境,在于什么样的软件能更好的为用户服务。

二、中间件:

中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机/ 服务器的操作系统之上,管理计算机资源和网络通讯。是连接两个独立应用程序或独立系统的软件。相连接的系统,即使它们具有不同的接口,但通过中间件相互之间仍能交换信息。执行中间件的一个关键途径是信息传递。通过中间件,应用程序可以工作于多平台或OS环境。

技术分享

中间件详解(推荐真的很详细):http://kb.cnblogs.com/page/196448/

《网站的架构C/S和中间件》