從智能手機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的雙重好處。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM