随着网络技术的高速发展,网络应用编程模型也在不断地发展变化。本文简单介绍相关的基本概念,为后续章节的学习的打下基础。

1.互联网与企业内部网

作为网络应用编程的基础知识,本文主要介绍 C/S 应用编程和 B/S 应用编程的基本用法。

互联网

互联网(Intemmet)是一种覆盖全世界的全球性互联的网络。互联网的最大特点是这些相互连接的网络都使用同一组通用的协议(TCP/P 协议簇),从而形成逻辑上的单一巨大国际网络。具体来说,互联网的特点有:支持资源共享、采用分布式控制技术、采用分组交换技术、使用通信控制处理机采用分层的网络通信协议。
互联网并不等同万维网(World Wide Web)。万维网是一种使用超文本传输协议相互链接而成的全球性系统,它只是互联网所提供的服务的其中一部分。

内部网

企业内部网(Intranet)是互联网的另一种体现形式。这种网络采用的仍然是Imtemmet 标准,主要区别是它将企业内部的网络和企业外部的网络通过防火墙有效隔离。这样一来,每个 ntanet 都变成了-个相对独立的网络环境。例如某家公司的多个分公司分布在不同的国家,总公司与分公司之间以及分公司与分公司之间建立 Intranet后,公司内部的应用程序仍然通过Intemet 快速交互。但是,由于防火墙的作用,公司外部的用户则无法访问它,外部用户只能访问公司对外公开的内容。

2.C/S模式

简单来说,部署在“云”中的应用程序就像一团乱麻,它包含千头万绪而且相互缠绕,而 C/SB/S就像是从这团乱麻中分别抽取出来的一个或多个线头。当我们将这些线头分别整理清楚并赋予某种用途后,再将其融合在一起,就是一个完整的应用程序。客户端/服务端,C/S(Client/Server)也叫 C/S 模式、C/S 架构或 C/S 模型,它是一种基于“客户端/服务端”的编程模型。例如,由数千台甚至上万台计算机组成的“云”环境会同时存在多个相对而言的服务端和客户端,此时每个客户端和服务端之间的通信都可以看作是一种 C/S 编程模型。
C/S 模式及其特点
C/S 是一种“胖”客户端应用程序编程架构,其主要工作都在客户端运行,这样可以充分利用本地计算机的性能优势。
C/S将一个网络事务处理分为两部分:客户端和服务端。客户端(Client,也叫客户机)用于为用户提供操作,同时向网络提供请求服务的接口;服务端(Server,也叫服务器)负责接收并处理客户端发出的服务请求,并将服务处理结果返回给客户端。例如,用某个计算机作为服务器,其他多台计算机相对于该服务器来说都是客户机,此时C/S的架构可以下图来描述。


C/S 的优点是它既适用于实际的应用程序,又适用于真正的计算机部署从程序实现的角度来说,客户端和服务端打交道,实际是计算机上的两个进程在进行交互,即服务端进程等待客户端进程与其联系。当服务端进程处理完一个客户进程请求的信息之后,又接着等待其他客户端的请求。

C/S网络应用编程建议的做法

Winforms应用程序是.NET实现跨平台C/S客户端应用程序编程模型的理想选择。经过多个版本的变迁,WinForms应用程序已经高度成熟,用它编写可以在Windows、Linux、MAC操作系统上运行的C/S应用程序非常方便。

2.B/S模式

浏览器/服务器(Browser/Server, B/S)也叫BS模式或 BS模型,它是在分布式系统的基础上进一步抽象出来的网络通信模型,这是一种以超文本传送协议(HypertextTansfer Potcol,HTTP)为基本传册设的体系结构编程模式。在BS编程模型中,开发人员需要编写部署在Wb服务器上的应用和助可,而不需要编写专用的客户端程序。或者说,客户端程序是一种通过HTTP实现数据传输的通应用程序,即我们平常所说的浏览器。BS 模式一般采用三层架构,由用户界面、逻辑处理和数据支持构成。参考如下图:

开发 B/S 模式的应用程序也称为开发 Web 应用程序。B/S模式的优点是单台计算机可以访问任何Web服务器。或者说,客户端应用程序是一种通用的浏览器。用户只需要知道服务器的网址(P地址或域名),即可通过客户端浏览器来访问,而不需要对不同的 Web 服务器分别使用不同的客户端软件。但是,由于B/模式具有沙盒限制(对客户端本地计算机的资源访问权限有一定限制),因此这模式最适用于通过 Web服务器向用户提供服务。但是,由于它无法获取客户端本地所有资源,所以大型数据处理上会受到一定制约,比如明显不如将数据保存在客户端本地计算机上直接进行处理速快等。
总之,BS 模式也像 CS模式一样,都不是万能的灵丹妙药,对于某个具体应用来说,到底用B实现好还是用 CS实现好,要根据业务需求和效率需求而定。例如大量工作都在服务端来做就能清应用需求,此时BS是较好的选择(部署简单)。而如果服务端响应的速度无法满足客户端快速得到处理结果的性能要求,这种情况下将大量工作房子客户端本地计算机上来做效率更高。