锁定老帖子 主题:对所谓“下一代B/S技术”的思考,欢迎讨论
该帖已经被评为精华帖
|
|
---|---|
作者 | 正文 |
发表时间:2004-04-16
C/S核心定义在于业务逻辑在客户端处理,B/S核心定义在于业务逻辑在服务器端处理,不在于用不用HTML。像XMLHTTP这种在服务器端进行数据处理,在客户端进行数据展示,应该算做B/S。
|
|
返回顶楼 | |
发表时间:2004-04-16
robbin 写道 C/S核心定义在于业务逻辑在客户端处理,B/S核心定义在于业务逻辑在服务器端处理,不在于用不用HTML。像XMLHTTP这种在服务器端进行数据处理,在客户端进行数据展示,应该算做B/S。
好象不对吧,应该说C/S是界面逻辑(如窗口的切换、对话框等)在客户端处理,业务逻辑同样可以拿出来做一个APP SERVER层啊,而B/S是把界面逻辑放在WEB服务器处理,浏览器仅仅显示而已。 |
|
返回顶楼 | |
发表时间:2006-10-10
其实b/s和c/s是不具备可比性的,因为cs只有两层,即client和db server,而bs有3个层,即browse/app server/dbserver。或者说b/s更确定的叫法应该是b/s/s。
如果要比较,应该比较b/s/s和c/s/s。 在企业应用领域,browse作为client的能力是远远不够的,操作方式(对2000条在客户端排序;树状显示;复杂的D&D)、响应速度(瞧瞧银行营业员的输入速度)、对窗口的控制、打印(当我按下打印按钮的时候希望看到纸从打印机中出来)、稳定性,有很多方面都有不足之处的。 使用一个application作为client,除了可以比较方便的解决上述问题,还可以不用考虑客户端的兼容性。但是要解决发布的问题。(注意,我比较的是b/s/s和c/s/s). application client的发布可以使用文件服务器和web start的方式发布。 如果用户不多,建一个文件服务器,每个用户的桌面上建一个快捷方式,指向服务器上的一个bat文件,bat中执行java -jar MainClass。 较好的做法是采用java web start,每个用户的机器上都要安装jre,建一个发布网站,当用户点击该网站上的一个链接时就会自动更新运行程序了。在企业中,操作系统和应用程序一般都是由IT部门安装的,附带把jre装上应该没什么问题。 |
|
返回顶楼 | |
发表时间:2006-10-11
robbin 写道 C/S核心定义在于业务逻辑在客户端处理,B/S核心定义在于业务逻辑在服务器端处理,不在于用不用HTML。像XMLHTTP这种在服务器端进行数据处理,在客户端进行数据展示,应该算做B/S。
CS BS就是Http和Tcp/ip的区别把,你说的CS大概是Client/Db Server方式,可CS把核心逻辑放在Server上的很多见啊,比如一些远端控制程序。 Ajax的出现就逐渐模糊CS BS的界限,当我们认识不到或者不需要认识到是基于Http还是Tcp/ip编程的时候,CS,BS就已经融为一体了。 |
|
返回顶楼 | |
发表时间:2006-10-30
kingkii 写道 OK,看来我还表述不够清楚,大家没有明白我真正想讨论的问题,我并不想说B/S与C/S谁好谁坏的问题,我想说明的是“浏览器内嵌Rich client + 某种远程调用”这种应用模式并不是什么新的模式,如果大家认为B/S就是跨平台和无需安装客户端的话,那JAVA APPLICATION早就可以跨平台了,而APPLET也早就跨平台并无需安装客户端了,我真正想和大家讨论的是为什么这种模式在早期没有得到认可,而现在有被别的技术推崇起来?仅仅是因为APPLET本身的问题呢还是因为这种模式有问题?
我们没有必要执着于B/S与C/S的定义,我只想从开发角度来看“浏览器内嵌Rich client + 某种远程调用”的模式与C/S是等同的,这一点总不可否认吧?那我关心的是为什么早期人们对这种应用视而不见,纷纷投向HTML模式的B/S怀抱,然后现在又拿着另一个雷同的东西当作一个新的宝贝?到底是仅仅因为某些具体技术细节的发展呢还是对这种开发模式的认同回归,如果是后者的话那我们就必须比较两种开发模式(即HTML模式和Rich client模式(不管是否嵌入浏览器))的内涵差异,那就会引出我前面发的话题来,请大家替我解惑! xml标准的简单实用远远超过html. html时代的applet activex flash .... 和现在的ajax可以说完全是两回事. ajax是一个新的起点 web正从html过渡到xml. |
|
返回顶楼 | |
发表时间:2006-10-30
kenken0y 写道 其实b/s和c/s是不具备可比性的,因为cs只有两层,即client和db server,而bs有3个层,即browse/app server/dbserver。或者说b/s更确定的叫法应该是b/s/s。
如果要比较,应该比较b/s/s和c/s/s。 在企业应用领域,browse作为client的能力是远远不够的,操作方式(对2000条在客户端排序;树状显示;复杂的D&D)、响应速度(瞧瞧银行营业员的输入速度)、对窗口的控制、打印(当我按下打印按钮的时候希望看到纸从打印机中出来)、稳定性,有很多方面都有不足之处的。 使用一个application作为client,除了可以比较方便的解决上述问题,还可以不用考虑客户端的兼容性。但是要解决发布的问题。(注意,我比较的是b/s/s和c/s/s). application client的发布可以使用文件服务器和web start的方式发布。 如果用户不多,建一个文件服务器,每个用户的桌面上建一个快捷方式,指向服务器上的一个bat文件,bat中执行java -jar MainClass。 较好的做法是采用java web start,每个用户的机器上都要安装jre,建一个发布网站,当用户点击该网站上的一个链接时就会自动更新运行程序了。在企业中,操作系统和应用程序一般都是由IT部门安装的,附带把jre装上应该没什么问题。 有几层和是B/S还是C/S有必然联系么? C/S我依然可以(而且大型应用也是这么设计的)设计出来三层,只不过这个表示层是delphi VC Swing开发的罢了,依然有application layer依然有db layer。 SAP R/3是最具代表的三层C/S架构了。 |
|
返回顶楼 | |
发表时间:2006-10-30
我觉得 C/S 跟B/S得区别除了客户端的差别,还有连接方式的差别。
以前的C/S主要是tcp或udp直连,当通讯数据结构发生变化,修改就会很麻烦。tcp 持续连接对服务器的负担也很重。对连接异常等情况处理也很麻烦。 现在的网络性能比以前有很大的提高,从而B/S所需要的较大数据量的传输也可以实现。 而B/S结构使用html/XML 的传输形式,使得连接复杂度降低。 程序员可以将更多精力放到业务逻辑上。 |
|
返回顶楼 | |
发表时间:2006-10-31
有关Applet体积的问题,我觉得可能是思维误区导致的.因为我在做项目时就经常采用Applet方式(支持Applet或者JavaWebStart,根据用户的喜好选择).和普通的Applet应用的区别是我们实现的Applet只是一个shell,负责加载和解析每个页面的view,action和event.而view,action,和event是根据项目对显示层的要求的复杂程度来裁剪的,每一页面采用xml来描述,类似于一个轻量级的XUL实现.这样做的好处是很容易满足用户对复杂的显示层方面的需求,而且配置型的xml页面定义文件也比HTML方式的开发更有效率.
|
|
返回顶楼 | |