`

关于B/S和C/S的想法,兼谈web service

阅读更多
最近做的这个项目,是一个外线管理系统。

外线人员使用android应用与服务端进行交互,内线人员使用浏览器访问系统。服务端既提供了给浏览器访问的页面,也暴露了一些接口给智能手机调用。

我原本觉得,这理所当然是一个C/S架构的应用,Server是服务端,Client是我们开发的android应用。不过今天看了一些关于B/S和C/S比较的帖子,回头又想了想,发现我原来的理解貌似不对。因此把一些想法记录在这里,以后再回顾一下。如果有朋友知道答案,也希望能指教一下,谢谢。

首先,我突然有点疑惑什么是所谓的web service。像我们服务端提供了一个地址,比如说http://localhost:8080/service/accept.action。然后我们的终端应用访问这个地址,并且传递一些参数进来,系统后台就做了一些逻辑处理,数据库操作什么的,然后返回一个响应回到android终端。

这种形式和我以前做过的web service就不太一样。以前系统A发布了一个web service,然后系统B是根据系统A的WSDL,直接调用系统A发布的一些方法。我理解这样才像一个web service。

但是现在这种形式,我感觉效果和上面的例子也是一样的,服务端就是发布web service的系统A,终端应用就是系统B,虽然它没有看到什么WSDL,但是它只要知道http://localhost:8080/service/accept.action这个地址,和这个地址需要的参数,照样可以访问到,并且也能让系统A作逻辑处理,也能得到系统A返回的结果。虽然这种形式上不是web service,但是实际的效果和web service又有什么区别呢?如果是这样的话,那么什么又才是真正的web service呢?

关于这个问题,我感到很疑惑,希望知道的朋友能给我讲解一下。

扯完题外话,再说回B/S和C/S。我原本认为我们这个系统肯定是C/S结构的,现在想想也不对劲。

终端应用和服务端的交互有2种方式,一种是走http协议,也是发起请求、获得响应、断开连接;另一种是通过走短信网关的方式,发送短信、解析短信。这2种方式,终端应用和服务端都没有保持长连接。如果服务端想推送什么消息到终端的话,是要通过向目标手机号发送特殊格式短信的方式来实现的。但是真正的C/S架构,却是可以通过Socket之类的长连接来即时推送消息的。


不过除了这点以外,我们又确实需要:
1、同时维护服务端系统和终端应用
2、负责终端应用的分发和升级
3、保证终端数据和服务端数据的同步
4、可以在终端应用上进行比较多的业务逻辑

上面这些特征又类似于传统的C/S架构,所以我现在也有点迷糊,究竟如何区分所谓的B/S和C/S呢?至少我认为我们这个系统不是纯粹的C/S,但是又不能说是B/S。。。

其实想想,也不用这么拘泥这个划分。除非一个系统和外部系统一点关系没有(比如安装一个单机的连连看),就一定涉及到如下问题:
1、系统职责划分(业务逻辑分配的比重)
2、系统间通信(HTTP、Socket……)
3、系统间数据同步
4、系统一致性(服务端升级,客户端需要相应升级)
5、部署和维护的成本
6、……

或许所谓的B/S、C/S,之间不存在也没必要某种绝对的划分,只要能处理好上述这些问题就行了。比如我们这次的系统,就可以算是一个B/S和C/S混搭的系统
分享到:
评论
2 楼 kyfxbl 2013-02-02  
好吧,回头看自己一年半以前写的博客,感觉当时真是幼稚

不管是调一个web service,还是一个servlet,或者RMI,都没有本质区别,相对于本地调用,都是远程调用而已(RPC)

只是web service是一种标准,各平台都有对应的实现。所以无论是部署,还是调用,都更加简单

至于B/S还是C/S,就更没啥好说的

可以认为只要是存在一方发起请求,另一方提供服务给回响应的,都是C/S。B/S中的B指的是浏览器Browser,还不也是一种client

现在有一种设计的方式,在server外部专门有一个mid-tier的中间件,既能给browser提供html内容,也能发布web service endpoint,还可以给终端提供http服务。怎么能简单地说这是B/S,还是C/S呢,分那么清楚也没意义

我这个人就是爱纠结,有点强迫症。我现在又在纠结另一个设计问题,希望再过一段时间回头看,又会觉得很幼稚,说明我进步了
1 楼 streeturst 2011-11-18  
我认为应该是C/S(Client/Server)结构,中间的通信方式可以多种方式组合

参考:http://baike.baidu.com/view/456.htm#3
3 C/S(Client/Server)结构

  软件开发可以分为C/S和B/S构架,具体为:
  C/S结构,即Client/Server(客户机/服务器) 结构,是大家熟知的软件系统体系结构,通过将任务合理分配到Client端和Server端,降低了系统的通讯开销,需要安装客户端才可进行管理操作。
  B/S结构,即Browser/Server (浏览器/服务器) 结构,是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户界面完全通过WWW浏览器实现。
  在网络连接模式中,除对等网外,还有另一种形式的网络,即服务器/客户机网,Client/Server。在客户机/服务器网络中,服务器是网络的核心,而客户机是网络的基础,客户机依靠服务器获得所需要的网络资源,而服务器为客户机提供网络必须的资源。
  它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。
  什么是C/S结构。C/S(Client/Server)结构,即大家熟知的客户机和服务器结构。它是软件系统体系结构,通过它可以充分利用两端硬件环境的优势,将任务合理分配到Client端和Server端来实现,降低了系统的通讯开销。目前大多数应用软件系统都是Client/Server形式的两层结构,由于现在的软件应用系统正在向分布式的Web应用发展,Web和Client/Server应用都可以进行同样的业务处理,应用不同的模块共享逻辑组件;因此,内部的和外部的用户都可以访问新的和现有的应用系统,通过现有应用系统中的逻辑可以扩展出新的应用系统。这也就是目前应用系统的发展方向。

相关推荐

    C/S、B/S、分层、多层架构参考

    总结起来,C/S和B/S架构分别代表了本地应用和Web应用的两种典型模型,而分层和多层架构则提供了系统设计的组织原则,帮助我们构建灵活、可维护的大型软件系统。理解并熟练运用这些知识点,对于任何IT从业者来说都是...

    B/S结构和C/S结构

    ### B/S结构与C/S结构详解 #### 一、B/S结构概述 **B/S结构**(Browser/Server,浏览器/服务器模式)是一种随着Web技术发展而兴起的网络结构模式。在此模式下,客户端的主要应用软件为Web浏览器,例如Netscape ...

    C/S结构与B/S结构的区别

    C/S(Client/Server)结构和B/S(Browser/Server)结构是两种常见的软件系统架构,它们在多个方面有着显著的差异。 首先,C/S结构是基于局域网的,通常用于内部网络环境,其中客户端(Client)负责用户界面和部分...

    Delphi开发B_S数据库应用系统教程_delphi_DelPhi开发B/S_delphiBS_Delphi开发BS

    教程可能涵盖如何使用Delphi构建一个简单的B/S系统,包括用户登录、数据查询、添加编辑删除记录等功能,以及如何处理错误和异常。 通过本教程的学习,开发者将能够掌握利用Delphi开发B/S数据库应用系统的技能,从而...

    B/S架构和C/S架构的区别和优缺点

    **C/S架构**,即Client/Server架构,是一种传统的计算机应用模式。在C/S架构中,客户端需要安装专门设计的软件来与服务器进行通信。服务器通常配置为高...总的来说,C/S和B/S架构的选择取决于具体的应用需求和环境。

    C/S架构和B/S架构的概念和区别

    总的来说,C/S架构适合于对界面和响应速度要求高,用户群稳定且对安全性有特殊要求的场景,而B/S架构则更适用于大规模的互联网应用,可以快速部署,易于维护,但可能在用户体验和性能上有所牺牲。在实际应用中,可以...

    c/s与b/s的异同点

    在信息技术的迅猛发展中,C/S(客户端/服务器)和B/S(浏览器/服务器)架构作为两种主流的软件设计模式,各自承载着独特的价值和应用场景。本文旨在深入探讨这两种架构的特点、优缺点以及它们在当前信息化社会中的...

    C/S和B/S结构相结合的嵌入式Web服务器设计

    为将Internet通信和嵌入式系统结合起来,设计了一款基于C/S和B/S结构相结合的嵌入式Web服务器。选用DS80C400作为主控芯片完成硬件设计,采用Java技术完成应用软件设计,并以西门子PLC作为现场设备通过以太网完成了对...

    web报表B/S

    Web报表B/S系统是一种基于浏览器/服务器架构的报表解决方案,主要应用于数据分析、数据展示和决策支持。这种系统允许用户通过Web界面访问和交互各种报表,无需安装任何客户端软件,极大地提高了报表的分发效率和使用...

    B/S与C/S相结合的在线测试系统

    本系统结合了B/S(浏览器/服务器)与C/S(客户端/服务器)架构,旨在提供一个既灵活又功能丰富的测试环境。下面将详细介绍这两种架构以及它们在在线测试系统中的应用。 **B/S架构** B/S架构,即浏览器/服务器架构,...

    B/S和C/S的比较

    【B/S和C/S的比较】是IT领域中关于软件架构设计的重要话题。这两种架构各自具有独特的特性和适用场景,理解它们的区别有助于我们选择合适的软件开发模式。 C/S(Client/Server)架构,又称为客户端-服务器架构,是...

    C/S和B/S的区别

    ### C/S与B/S的区别 ...综上所述,C/S架构和B/S架构各有优势,在选择时需根据具体的应用场景和需求来决定最适合的架构方式。随着技术的发展,两种架构也在不断地融合和发展,以适应更多样化的业务需求。

    b/s架构系统通用客户端

    【标题】:“B/S架构系统通用客户端” 【描述】中提到的“B/S架构系统通用客户端”是一个专为运行在Windows操作系统上的应用设计的工具,它的主要功能是为用户提供一个无需安装、不依赖任何插件的便捷方式来连接...

    基于B/S模式的在线考试系统的实现

    在实现方面,***是Microsoft公司推出的一个用于构建Web应用程序的.NET框架,它包含了一系列开发工具和库,非常适合于开发B/S模式的Web应用程序。数据库方面,SQL Server是微软公司提供的关系数据库管理系统,它能与*...

    C/S 与B/S区别

    C/S (客户端/服务器) 和 B/S (浏览器/服务器) 是两种不同的软件体系结构,主要应用于构建分布式系统,特别是Web应用程序。理解这两种架构的关键在于它们的分层结构、客户端的功能以及与服务器的交互方式。 C/S 结构...

    B/S结构调用客户端默认打印机直接打印

    在IT行业中,B/S(Browser/Server,浏览器/服务器)架构是一种常见的软件系统设计模式,主要应用于Web应用程序。在这种架构中,用户通过浏览器与服务器进行交互,而无需安装任何特定客户端软件。标题提到的"B/S结构...

    B/S和C/S详解

    ### B/S和C/S详解:理解两种架构的精髓 #### B/S架构:互联网时代的产物 B/S架构,即Browser/Server架构,是伴随着Internet技术的兴起而发展起来的一种新型架构模式,它改变了传统的C/S(Client/Server)架构中...

    WebXone : 快捷强劲的C/S向B/S转换工具

    总结来说,WebXone是一个面向开发者的强大工具,它帮助C/S应用开发者轻松转型到B/S领域,利用熟悉的开发环境和语言,实现Web化的应用开发,提高开发效率,降低维护成本,同时增强了应用程序的可访问性和扩展性。

Global site tag (gtag.js) - Google Analytics