网络编程之网络架构及其趋势

随笔2个月前发布 坚持
7 0 0

合集 – 网络编程炒饭(8)

1.网络编程之网络架构及其趋势01-162.网络编程之网络通信01-163.网络编程之TCP协议的三次握手和四次挥手01-164.网络编程之Socket抽象层01-165.网络编程之基于TCP协议的socket套接字编程01-166.网络编程之基于UDP协议的socket套接字编程01-167.网络编程之粘包问题01-168.网络通信补充03-25

收起

一、网络结构模型

C/S和B/S都是互联网中常见的网络结构模型。

引言

刚开始的时候用户去取数据,直接就去主机拿,从这里开始就分出了客户端和服务端。

客户端:用户安装的软件;
服务端:统一管理数据库的主机中的软件就叫做服务端,再后来服务端不只是管理数据,外加处理业务逻辑。

1.1 什么是C/S模型

C/S结构,即Client/Server(客户机/服务器)结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,可以充分利用两端硬件环境的优势。早期的软件系统多以此作为首选设计标准。

网络编程之网络架构及其趋势

网络编程之网络架构及其趋势

1.2 什么是B/S模型

B/S结构,即Browser/Server(浏览器/服务器)结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现,一部分事务逻辑在前端实现,但是主要事务逻辑在服务器端实现,形成所谓3-tier结构。
B/S结构,主要是利用了不断成熟的WWW浏览器技术,结合浏览器的多种scrīpt语言(VBscrīpt、Javascrīpt…)和ActiveX技术,用通用浏览器就实现了原来需要复杂专用软件才能实现的强大功能,并节约了开发成本,是一种全新的软件系统构造技术。随着 98/Windows 2000将浏览器技术植入内部,这种结构更成为当今应用软件的首选体系结构。

网络编程之网络架构及其趋势

网络编程之网络架构及其趋势

1. 3 C/S架构与B/S架构特点

C/S:(Client/Server,客户端/服务器模式),桌面级应用 响应速度快,安全性强,个性化能力强,响应数据较快
B/S:(Browser/Server,浏览器/服务器模式),web应用 可以实现跨平台,客户端零维护,但是个性化能力低,响应速度较慢。

1.4 C/S与B/S的比较

对象 硬件环境 客户端要求 软件安装 升级与维护 安全性
C/S 用户固定,并且处于相同区域,要求拥有相同的操作系统。 客户端的计算机电脑配置要求较高 每一个客户端都必须安装和配置软件。 C/S每一个客户端都要升级程序。可以采用自动升级。 一般面向相对固定的用户群,程序更加注重流程,它可以对权限进行多层次校验,提供了更安全的存取模式,对信息安全的控制能力很强。一般高度机密的信息系统采用C/S结构适宜。
B/S 要有操作系统和浏览器,与操作系统平台无关。 客户端的计算机电脑配置要求较低。 可以在任何地方进行操作而不用安装任何专门的软件。 不必安装及维护

1.5 C/S 与 B/S 区别:

Client/Server是建立在局域网的基础上的.Browser/Server是建立在广域网的基础上的.

(1)硬件环境不同:
C/S 一般建立在专用的网络上, 小范围里的网络环境, 局域网之间再通过专门服务器提供连接和数据交换服务.
B/S 建立在广域网之上的, 不必是专门的网络硬件环境,例如电话上网,租用设备, 信息管理. 有比C/S更强的适应范围,一般只要有操作系统和浏览器就行

(2)对安全要求不同:
C/S 一般面向相对固定的用户群,对信息安全的控制能力很强,一般高度机密的信息系统采用C/S 结构适宜,可以通过B/S发布部分可公开信息.
B/S 建立在广域网之上, 对安全的控制能力相对弱,面向是不可知的用户群.
(3)对程序架构不同:
C/S 程序可以更加注重流程, 可以对权限多层次校验, 对系统运行速度可以较少考虑.
B/S 对安全以及访问速度的多重的考虑, 建立在需要更加优化的基础之上. 比C/S有更高的要求。B/S结构的程序架构是发展的趋势,从MS的.Net系列的BizTalk 2000 Exchange 2000等,全面支持网络的构件搭建的系统. SUN 和推的JavaBean 构件技术等,使 B/S更加成熟.
(4)软件重用不同:
C/S 程序可以不可避免的整体性考虑,构件的重用性不如在B/S要求下的构件的重用性好.
B/S 对的多重结构,要求构件相对独立的功能. 能够相对较好的重用.
(5)系统维护不同:
系统维护在是软件生存周期中,开销大。——-重要
C/S 程序由于整体性, 必须整体考察, 处理出现的问题以及系统升级. 升级难. 可能是再做一个全新的系统
B/S 构件组成,方面构件个别的更换,实现系统的无缝升级. 系统维护开销减到最小.用户从网上自己下载安装就可以实现升级.
(6)处理问题不同:
C/S 程序可以处理用户面固定, 并且在相同区域, 安全要求高需求, 与操作系统相关. 应该都是相同的系统
B/S 建立在广域网上, 面向不同的用户群, 分散地域, 这是C/S无法作到的. 与操作系统平台关系最小.
(7)用户接口不同:
C/S 多是建立的Window平台上,表现方法有限,对程序员普遍要求较高
B/S 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流. 并且大部分难度减低,减低开发成本.
(8)信息流不同:
C/S 程序一般是典型的中央集权的机械式处理, 交互性相对低
B/S 信息流向可变化, B-B B-C B-G等信息、流向的变化, 更象交易中心

面试题目:

数据放在服务端和客户端的利与弊?

答:服务端统一处理有更好的安全性和稳定性而且升级比较容易,不过服务器负担就增加了。

客户端将负担分配到每个用户,从而可以节约服务器紫云啊,安全性和稳定性可能会有一定的问题,升级也比较麻烦,每个安装的客户端程序都需要升级,另外为了节省网络资源,通过网络传输的数据应该尽量减少!

现状与趋势(转自知乎)

1、用来编制CS管理软件的编程语言,早已江河日下

首先我们来了解一下各种语言的发展趋势和排行榜,可以看到排名前十的语言中,没有一种是用来开发CS管理软件的,其中8种语言(Java,C#,Python,PHP,Visual Basic .NET,JavaScript,Perl,Ruby)主要就是面向BS架构软件的语言,剩下的两种语言(C,C++)也不是应用于CS管理软件,而主要面向游戏、科学计算、网络通信软件、操作系统、设备驱动程序、嵌入式系统等。

在2015年编程语言排名中,我们可以看到CS软件的主打开发语言VB和Delphi Pascal已经排到了17名和20名,加起来才不到2%的市场占有率,而十多年前却是占据着10%以上,最让人看不到未来的是VB和Delphi的厂商已经不再提供正式支持了。

因此,若是选择CS管理软件,会导致未来的升级和维护都可能会是问题,一方面因为该编程语言和相关的组件已经不再往前发展和创新了,另一方面是国内学院和学生根本没有人去学了,大家都去学习互联网或移动端的开发语言了。

2、市面上CS的管理软件正越来越少

企业管理软件目前已经是BS在主导天下了。

十几年前所有管理软件都是基于CS架构开始的,包括用友用VB开发的财务软件,金蝶也是用VB开发的管理软件,当时还有和VB并驾齐驱的Delphi开发平台(Borland公司拥有)。那完全是因为那时还没有互联网,甚至局域网都没普及,所谓CS管理软件其实就是一个单机记账软件。

但随着互联网兴起和信息化管理的深入,一方面我们很容易看到所有新兴的企业管理软件,几乎就没有采用CS开发的,如比较流行的OA管理软件,CRM管理软件。另一方面也看到国内包括用友、金蝶等巨头都在从CS转向BS,或者说从VB转向JAVA、。NET,CS相关管理软件一方面越来越少,另一方面现存的CS管理软件也是出于旧版本维护中而已。

3、CS管理软件应用不如BS方便

相比于CS管理软件,BS在安装部署、升级维护、设备带宽、软件学习推广成本等方面都有无可比拟的优势。BS管理软件的用户在客户机上无需安装任何软件,使用浏览器即可访问系统。系统让企业扩张不再需要额外投入更多信息化的资金,让系统培训和后期推广都变得非常容易,管理模式变得可复制。

可用性:任何时间、任何地点、任何系统,只要可以使用浏览器上网,就可以使用BS系统的终端,更多的系统用户加入时只需设立账号、培训即可,并支持移动办公和分布式办公。CS是典型的集中式机械化处理,交互性相对低。

稳定性:J2EE的三层架构,采用中间件应用服务器。数据库、应用服务器、视图分层设计,几千几万用户同时在线系统也有优秀的表现。

易升级:CS系统往往是一个不可拆分的整体,各部分模块中有一部分改变,就要关联到其它模块的变动,使系统升级成本比较大。BS都是由构件组成,只需要改变页面就可以同步更新,其开发、维护等几乎所有工作也都集中在服务器端,当企业对网络应用进行升级时,只需更新服务器端的软件就可以。

低维护:CS需要专门的客户端安装程序,客户端的安装、升级、网络调试困难;而BS系统只需管理中心服务器。

兼容性:CS系统严重依赖于固定的开发工具、开发语言、操作系统、数据库,软件服务商提供的只能是一个整体性的固化软件,对异构操作系统、数据库很难兼容。BS借助JAVA这样的跨平台语言出现之后,可兼容于所有主流数据库和操作系统。

低带宽: CS典型应用是各个客户端直接连接服务器数据库,一般应用在专用的网络上,仅适用于局域网内部用户或宽带用户小范围里的网络环境,不适合作业点分布较广的大型应用。BS 建立在广域网之上的,带宽要求低,不必是专门的网络硬件环境,适用于低带宽、欠稳定的环境。

丰富展现:CS 多是建立在Window平台上,表现方法有限。BS 建立在浏览器上, 有更加丰富和生动的表现方式与用户交流。

4、CS管理软件不如BS更能应对未来挑战

BS软件在安全性、系统扩展、后续投资等方面都有无可比拟的优势。

安全性:CS对服务器端和客户端安全都需要考虑,而BS只注重服务端即可。CS 程序由于更需要对整体性的考虑,必须有非常专业水准的技术人员才能完成软件更改,特别是数据直接对各客户端开放,导致安全隐患。而BS系统只对外开放HTTP协议和端口,数据库只允许服务器一台机器访问,浏览器端U盾的使用使数据安全加密。

扩展性:系统扩展维护是软件生存周期中,开销大,相当重要 。CS 程序由于整体性,必须整体考察,处理出现的问题以及系统升级难,很可能是再做一个全新的系统。BS满足构件个别的更换,实现系统的无缝升级。因此BS一般只有初期一次性投入成本,而CS软件则不同,随着应用范围的扩大,投资会连绵不绝。

重用性:BS可基于J2EE平台架构,利用分布式组件技术来构造系统,减少系统维护和升级成本,有利于保护用户投资,二次开发快捷。业务扩展通过增加网页即可增加供热业务功能。而CS构件的重用性不如BS好。

大型应用:对于集团级的异地软件应用,CS结构的软件必须在各地安装多个服务器,并在多个服务器之间进行数据同步。如此一来,每个数据点上的数据安全都影响了整个应用的数据安全。所以,对于集团级的大型应用来讲,CS结构软件的安全性是令人无法接受的。对于BS结构的软件来讲,由于其数据集中存放于总部的数据库服务器,客户端不保存任何业务数据和数据库连接信息,也无需进行什么数据同步,所以这些安全问题也就自然不存在了。而且CS模式下数据的实时性、追溯性都不能保证,数据的分布性导致数据永远无法一致,决策不准。这也是由于CS对带宽要求很高,企业要是租用专线投入会很大,才会导致数据分开管理。

投资保护:在对已有硬件投资的保护方面,两种结构也是完全不同的。当应用范围扩大,系统负载上升时,CS结构软件的一般解决方案是购买更高级的中央服务器,原服务器放弃不用,这是由于CS软件的两层结构造成的,这类软件的服务器程序必须部署在一台计算机上;而BS结构则不同,随着服务器负载的增加,可以平滑地增加服务器的个数并建立集群服务器系统,然后在各个服务器之间做负载均衡。有效地保护了原有硬件投资。

高性能:大多数CS结构的软件都是通过ODBC直接连到数据库的,安全性差不说,其用户数也是受限的。每个连到数据库的用户都会保持一个ODBC连接,都会一直占用中央服务器的资源,对中央服务器的要求非常高,使得用户扩充受到极大的限制。而BS结构软件则不同,所有的用户都是通过一个JDBC连接缓冲池连接到数据库的,用户并不保持对数据库的连接,用户数基本上是无限的

© 版权声明

相关文章

暂无评论

您必须登录才能参与评论!
立即登录
暂无评论...