[原创]分布式系统开发学习之CS模式(一) --- 简介
2005-05-15 02:45
501 查看
分布式系统开发学习之CS模式(一)
常建昭 2005-5-13
CS[/b]模式简介[/b][/b]
分布式结构至今已经有了30年的历史了,特别自电脑网络的时代开始,分布式结构变的非常的受欢迎。CS模式(Client-Server Architecture)可能是应用软件开发所使用的最成功的一种模式。它首先是出现在主机系统中,在局域网环境下,其性能显的格外的突出。而现在,CS模式已经成为一种基本的开发设计模式。虽然CS应用软件包含了Client和Server部件并且在网络中相互交互。但这并不代表说所有的CS应用软件均需要按照这样来设计(即网络不是必须的),它是允许在单机上运行的。
在CS模式中,工作原理可以简单的理解为:
Client向Server提交一个请求; Server则使用一些方法处理这个请求,并将效果返回给Client. 如下图所示:
在处理Client的请求时,Server本身可以成为另一个CS模式中的Client.
如下图所示:
大部份的朋友认为在Client-Server应用软件中,Server做了几乎所有的工作。但实际上并不是这样。在实际应用中,Client执行了大部份的软件逻辑并完成了大部份的工作。Server当然也做了些工作。但它主要的工作是接受client的请求并返回结果。
有许多人说CS结构是分布式结构中最常用的一个例子。的确,它确实是一个常用的架构模式,而且它也在确是通过网络进行Client和Server之间的交互,但是,严格来说,CS模式有可能不是真正意义上的分布式结构。为什么这么说呢?我们首先应该从分布式结构的定义及特性去考虑。分布式系统简单来说是指通过网络,进行多于一台电脑之间的数据交互。而它最大的特性在于二点,性能(performance)和可量测性(Scalability). 而CS模式由于含有一系列的限制,以至于很难达到这二点分布式系统的特性。(在稍后会讨论有关这一系列的限制)。 另一方面,一个单独的应用软件的透明度通常也是一个分布式结构的特性,但CS模式并没有提供这方向的特性。举全例子,一个网页浏览器,可以看成是一个Client.而用户必须输入网站的网址去连接包含所要求网页的Server,在这里,它就缺乏了透明性。因此我也可以将这个网页浏览器和服务器看成是在这个系统中的二个独立的组件。
由于CS模式一系列的局限,以至于它不能被看成一个完全的分布式结构,我们可以更多的将之考虑为一种网络应用程序结构。在下一篇文章中,我将会总结有关CS模式的局限方面的知识。谢谢。
注:
这是我在学习分布式系统开发时所接触的知识,内容一部份为摘录笔记(英文)的翻译,一部份为自己的理解。所以难免有错误之处,还请大家多多指教。谢谢。
首帖于博客园,未经许可,不得进行任何形式的转发。
常建昭 2005-5-13
CS[/b]模式简介[/b][/b]
分布式结构至今已经有了30年的历史了,特别自电脑网络的时代开始,分布式结构变的非常的受欢迎。CS模式(Client-Server Architecture)可能是应用软件开发所使用的最成功的一种模式。它首先是出现在主机系统中,在局域网环境下,其性能显的格外的突出。而现在,CS模式已经成为一种基本的开发设计模式。虽然CS应用软件包含了Client和Server部件并且在网络中相互交互。但这并不代表说所有的CS应用软件均需要按照这样来设计(即网络不是必须的),它是允许在单机上运行的。
在CS模式中,工作原理可以简单的理解为:
Client向Server提交一个请求; Server则使用一些方法处理这个请求,并将效果返回给Client. 如下图所示:
在处理Client的请求时,Server本身可以成为另一个CS模式中的Client.
如下图所示:
大部份的朋友认为在Client-Server应用软件中,Server做了几乎所有的工作。但实际上并不是这样。在实际应用中,Client执行了大部份的软件逻辑并完成了大部份的工作。Server当然也做了些工作。但它主要的工作是接受client的请求并返回结果。
有许多人说CS结构是分布式结构中最常用的一个例子。的确,它确实是一个常用的架构模式,而且它也在确是通过网络进行Client和Server之间的交互,但是,严格来说,CS模式有可能不是真正意义上的分布式结构。为什么这么说呢?我们首先应该从分布式结构的定义及特性去考虑。分布式系统简单来说是指通过网络,进行多于一台电脑之间的数据交互。而它最大的特性在于二点,性能(performance)和可量测性(Scalability). 而CS模式由于含有一系列的限制,以至于很难达到这二点分布式系统的特性。(在稍后会讨论有关这一系列的限制)。 另一方面,一个单独的应用软件的透明度通常也是一个分布式结构的特性,但CS模式并没有提供这方向的特性。举全例子,一个网页浏览器,可以看成是一个Client.而用户必须输入网站的网址去连接包含所要求网页的Server,在这里,它就缺乏了透明性。因此我也可以将这个网页浏览器和服务器看成是在这个系统中的二个独立的组件。
由于CS模式一系列的局限,以至于它不能被看成一个完全的分布式结构,我们可以更多的将之考虑为一种网络应用程序结构。在下一篇文章中,我将会总结有关CS模式的局限方面的知识。谢谢。
注:
这是我在学习分布式系统开发时所接触的知识,内容一部份为摘录笔记(英文)的翻译,一部份为自己的理解。所以难免有错误之处,还请大家多多指教。谢谢。
首帖于博客园,未经许可,不得进行任何形式的转发。
相关文章推荐
- [原创]分布式系统开发学习之CS模式(二) - CS模式的限制与应用及Scalability的补充讨论
- 分布式系统开发学习之CS模式(二)
- NVIDIA Jetson TK1学习与开发——简介(针对嵌入式系统应用释放 GPU 的潜能)
- 对于接下来自己的规划,想学习一下分布式系统和Android手机开发。
- 学习总结十五:分布式实时计算系统storm简介
- NVIDIA Jetson TK1学习与开发——简介(针对嵌入式系统应用释放 GPU 的潜能)
- spss C# 二次开发 学习笔记(五)——Spss系统集成模式
- 简介Intel MIC上的分布式开发以及Offload模式下的各种限制
- 学习嵌入式Linux系统开发基础 第一课(Linux系统简介)
- 分布式系统开发学习之CS模式(一)(转)
- J2EE初级学习项目——JSP+Servlet+JavaBean开发模式+Filter+(Listener)+Jdbc的用户登录注册系统
- 最近要读NET Distributed Applications这本书,并做学习笔记.系统地学习一遍分布式应用程序开发和设计
- 分布式应用系统服务器上下线动态感知程序开发学习笔记
- 小白学分布式程序开发2-分布式架构下系统间交互的5种通信模式
- 分布式系统的工程化开发方法,学习笔记
- 基于CS模式的考试系统的研究与开发
- JSP系统开发学习之二用户登录系统改进的model1模式(jsp+java class版)
- 一脸懵逼学习Hadoop分布式集群HA模式部署(七台机器跑集群)
- 【学习笔记javascript设计模式与开发实践(中介者模式)----14】
- 分布式缓存系统Memcached简介与实践