C/S和B/S应用程序的本质区别

在Windows系统中,除驱动程序外,应用程序大概有如下几类:
  •     单机程序(只考虑主体功能,程序更新和注册等,也含网络通讯):WinForm,如:office、金山词霸、杀毒软件等;控制台程序;Windows服务等
  •     网络通讯服务器:可以是控制台、Windows服务、WinForm等多种形式;也可以是WinForm单机服务管理程序加上多个Windows服务的形式(如SqlServer等数据库服务端)
  •     网络通讯客户端:一般为WinForm形式,也有控制台的,或者网络游戏类的动画形式
  •     点对点网络通讯程序,其实就是一个程序既有服务端又有客户端功能,或者采用UDP协议通讯

    以上几类应用程序绝大多数都有可单独执行的exe,运行后产生一个或多个单独的进程,也有依托于rundll32.exe等进程启动的“可执行dll”程序(很多病毒木马和监控客户端属于此类)。

    显然,C/S程序中的服务端S和客户端C分别属于网络通讯服务器和网络通讯客户端类。而B/S呢?不是单机程序,只能属于网络通讯程序,但服务端和客户端都没有单独的exe,也就是说B/S并不是完整的程序,其客户端(browser)是IE等浏览器,服务端是IIS(Internet Information Services 网络信息服务平台,java采用tomcat等平台,本文只以IIS讲述,下同)。浏览器就是一个完整的网络通讯客户端了,一般都有单独的exe,IIS是一个WinForm的服务和配置管理程序加上多个Windows服务的组合(可能有操作系统的“亲密”支持),是一套完善的网络通讯服务器。

    我们用Asp.net等语言写的代码,编译后会生成一个或多个dll,以及aspx、js、css、图片等文件,其中脚本作为网络通讯客户端的一部分,由浏览器解释执行;dll在设置了虚拟目录后动态加载到IIS,作为网络通讯服务器的一部分,负责特定的业务处理。而浏览器和IIS间采用http头+html体(或其它变种)的协议进行通讯,当浏览器向IIS发一个字符串请求后,IIS根据aspx文件中对字符串的定义,提取控件值等信息,分发给特定的dll,由我们编写的dll进行业务处理,dll处理完后将新的控件值等信息以函数返回值之类的形式返回给IIS,IIS再根据aspx中的定义处理成协议字符串,回复给浏览器。

    所以B/S实质上是C/S的,只不过我们通常只做了服务端的业务处理部分,编译成dll交给IIS,客户端基本没做什么。单独的IIS也没有意义,必须有dll作为插件进行业务处理。

    B/S只能采用标准的http头+html体(或其它变种)的通讯协议,而C/S更加灵活,可以采用任何标准协议和自定义协议,甚至可以是基于UDP的应用层协议。当我们自定义的协议形成一个体系时,服务端可以做一个通讯框架,甚至是通用的exe平台,客户端界面由服务器取得,以后二次开发只需要做一个dll插入通用的服务器平台中即可。这样就把C/S程序做成了B/S的形式。Wap就是和Web一样的B/S类应用程序。

    写了这么多,发现C/S和B/S本质上是一样的,可以相互转化。

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/12639172/viewspace-464469/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/12639172/viewspace-464469/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
三层C/S结构编程指南<br> -- 使用IBM中间件实例<br><br>概 述<br><br> 计算机体系结构经历了从主机集中的终端方式、C/S结构,以及现在越来越普遍的三层客户机服务器结构。在当今中国,从银行、电信,到保险、证券的各个行业,还有不容忽视的电子商务、普遍运算,都越来越多地使用三层结构作为核心系统的标准体系结构。但是,由于三层结构提高了开发的起点,加上具体介绍三层次应用开发的书籍并不象介绍C/S的书脊那样普遍,对于大多数开发人员来说,三层结构依然是一种理想,而不是一个能够立即在现实中使用的方法。甚至,由于缺乏对于工具的了解,有不少开发人员自行开发了简易的中间件来满足其对三层结构的需求。正因为此,给三层结构开发的普及带来了很大的障碍。<br> 本书详细介绍了三层客户机服务器结构的系统结构,从计算机体系结构的变迁,三层结构的优点,一些常见概念,如数据的一致性、两阶段提交、分布式事务处理、事务处理器以及XA规范的系统说明,到CICS是如何构造以成为一个优秀的三层结构中间件,在第一章中都有详细阐述。<br> 如果您对于三层结构的理论已经有所了解,可以在第二章中学习如何使用CICS编制应用,并且使用VB、Delphi、C++ Builder、PowerBuilder、Java和C进行前台界面的开发。如果要进一步使用CICS的底层功能,第四章的内容是非常有用的。<br> 在CICS应用服务器端,采用嵌入式SQL(E-SQL)编程和各种数据库进行连接。第六章同时详细介绍了DB2、SYBASE、ORACLE、INFORMIX等数据库的嵌入式SQL编程,即使您不使用CICS,这也是一个很好的参考。<br> 第五章中,介绍了对CICS进行性能调优的方法以及一些参考数据,您可以根据您的系统需求来选择合适的硬件环境,满足对性能的需求。<br> 特别的,本书所附光盘包含使用CICS在Windows NT平台上搭建三层结构的所有软件,以及本书提及的所有示例程序。根据第四章的步骤,您可以自己建立一个实验环境,亲自体验开发三层结构应用的感觉。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值