• 从智能手机App来看C/S和B/S的区别在哪?(Web的技术本质)


    摘要:

     随着智能手机的发展,C/S和B/S互相结合越发重要,深入理解两者的开发思想、技术的不同很有必要。但 通过Googel/百度找不到满意的相关的说明,故有此文和大家探讨。

     注意本文是从技术角度,而不是商业角度来分析。

     从技术角度来看,C/S和B/S除了UI不同,BLL(1)层和DAL层使用相同的DLL;BLL(0)层可以根据C/S、B/S特点开发;

     即使用UI-->应用服务器(BLL0)-->BLL1-->DAL的架构方式。

     1. 首先看一下典型的使用场景

       用户下载网页A,此时服务器更新了A的提交逻辑,A再提交后新的逻辑立即起作用,并保证所有的客户端是一样的。

     在这一个场景中,有两类人:一类是客户,二类是程序开发者;客户访问了网站,程序开发者更新了网站程序。

    2.先说C/S

       Client:客户端,Server:服务器端,最大的问题就在Server这个词,多数的C/S应用是C/DatabaseServer,而不是C/ApplicationServer。

     2.1 C/DatabaseServer:即各个客户端直接访问了数据库,如果此时各个客户端的BLL层和DAL层是一样的,那没有什么问题;如果因为更新等因为BLL层和DAL层造成了不一致,就可能出现问题。
     2.2 C/ApplicationServer:即各个客户端访问了应用服务器,而不能直接访问数据库

     3.接着说B/S

     B/S=Browser +C/ApplicationServer,这里C是指Web服务器前端的请求分发的路由器,ApplicationServer即Web服务器。

      如果有一台Web服务器配置多个域名的经验,应该很清楚这个意思。

      从技术角度,B/S的本质是,不让Browser 直接读写数据库,而C/S开发则“不会舍近求远”来开发应用服务器层。

       B/S架构:商业逻辑总是通过Web服务器,才能到达数据库,从而有了保证。而C/S架构,各C均直接访问了数据库,这是最大的不同。

      以上说的是读写数据库的区别,而UI的区别,会明显一些。

       反问一个问题:如果自己开发一个客户端来解析XML(相当于自定义HTML),
    服务器上使用应用服务器来读写数据,是不是就可以获取B/S架构的好处,并克服B/S的非富客户端的缺点?(不考虑安全问题)

        也许未来的智能手机App,都会是某种意义上的Browser,再由开发者定义自己的HTML是什么来获得C/S和B/S的双重好处。

  • 相关阅读:
    scala入门-03基础知识->表达式
    scala入门-02基础知识->方法
    jetty命令行方式启动jetty-runner.jar 容器
    本地开发spark代码上传spark集群服务并运行(基于spark官网文档)
    Linux下查看进程和线程
    scala入门-01-IDEA安装scala插件
    spark-1.2.0 集群环境搭建
    ubuntu每次登陆都用root账号登陆
    hadoop2.6.0版本集群环境搭建
    spark ssh配置
  • 原文地址:https://www.cnblogs.com/fjwuyongzhi/p/2836357.html
Copyright © 2020-2023  润新知