首页 > 代码库 > 《网站的架构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和中间件》