定義
C/S又稱Client/Server或客戶/伺服器模式。伺服器通常採用高性能的PC、工作站或小型機,並採用大型資料庫系統,如ORACLE、SYBASE、InfORMix或 SQL Server。客戶端需要安裝專用的客戶端軟體。
傳統的C/S體系結構雖然採用的是開放模式,但這只是系統開發一級的開放性,在特定的套用中無論是Client端還是Server端都還需要特定的軟體支持。由於沒能提供用戶真正期望的開放環境,C/S結構的軟體需要針對不同的作業系統系統開發不同版本的軟體, 加之產品的更新換代十分快,已經很難適應百台電腦以上區域網路用戶同時使用。而且代價高, 效率低。
Client/Server結構是20世紀80年代末提出的。這種結構的系統把較複雜的計算和管理任務交給網路上的高檔機器——伺服器,而把一些頻繁與用戶打交道的任務交給前端較簡單的計算機—客戶機。通過這種方式,將任務合理分配到客戶端和伺服器端,既充分利用了兩端硬體環境的優勢,又實現了網路上信息資源的共享。由於這種結構比較適於區域網路運行環境,因此逐漸得到了廣泛的套用。
在Client/Server結構的系統中,應用程式分為客戶端和伺服器端兩大部分。客戶端部分為每個用戶所專有,而伺服器端部分則由多個用戶共享其信息與功能。客戶端部分通常負責執行前台功能,如管理用戶接口、數據處理和報告請求等;而伺服器端部分執行後台服務,如管理共享外設、控制對共享資料庫的操作等。這種體系結構由多台計算機構成,它們有機地結合在一起,協同完成整個系統的套用,從而達到系統中軟、硬體資源最大限度的利用。
任何一個套用系統,不管是簡單的單機系統還是複雜的網路系統,都由3個部分組成:顯示邏輯部分(表示層)、事務處理邏輯部分(功能層)和數據處理邏輯部分(數據層)。顯示邏輯部分的功能是與用戶進行互動;事務處理邏輯部分的功能是進行具體的運算和數據的處理;數據處理邏輯部分的功能是對資料庫中的數據進行查詢、修改和更新等。在兩層模式的Client/Server結構中,顯示邏輯部分和事務處理邏輯部分均被放在客戶端,數據處理邏輯部分和資料庫被放在伺服器端。這樣就使得客戶端變得很“胖”,成為胖客戶機,而伺服器端的任務相對較輕,成為瘦伺服器。
這種傳統的Client/Server結構比較適合於在小規模、用戶數較少(≤100)、單一資料庫且有安全性和快速性保障的區域網路環境下運行,所以得到了廣泛的套用。但隨著套用系統的大型化,以及用戶對系統性能要求的不斷提高,兩層模式(2-Tier)的Client/Server結構越來越滿足不了用戶需求。這主要體現在程式開發量大、系統維護困難、客戶機負擔過重、成本增加及系統的安全性難以保障等方面。
優缺點
C/S結構的優點是能充分發揮客戶端PC的處理能力,很多工作可以在客戶端處理後再提交給伺服器。對應的優點就是客戶端回響速度快。缺點主要有以下幾個:
只適用於區域網路。而隨著網際網路的飛速發展,移動辦公和分散式辦公越來越普及,這需要我們的系統具有擴展性。這種方式遠程訪問需要專門的技術,同時要對系統進行專門的設計來處理分散式的數據。
客戶端需要安裝專用的客戶端軟體。首先涉及到安裝的工作量,其次任何一台電腦出問題,如病毒、硬體損壞,都需要進行安裝或維護。特別是有很多分部或專賣店的情況,不是工作量的問題,而是路程的問題。還有,系統軟體升級時,每一台客戶機需要重新安裝,其維護和升級成本非常高。
對客戶端的作業系統一般也會有限制。可能適應於Win98, 但不能用於win2000或Windows XP。或者不適用於微軟新的作業系統等等,更不用說Linux、Unix等。
優勢劣勢
(1)套用伺服器運行數據負荷較輕。最簡單的C/S體系結構的資料庫套用由兩部分組成,即客戶應用程式和資料庫伺服器程式。二者可分別稱為前台程式與後台程式。運行資料庫伺服器程式的機器,也稱為套用伺服器。一旦伺服器程式被啟動,就隨時等待回響客戶程式發來的請求;客戶應用程式運行在用戶自己的電腦上,對應於資料庫伺服器,可稱為客戶電腦,當需要對資料庫中的數據進行任何操作時,客戶程式就自動地尋找伺服器程式,並向其發出請求,伺服器程式根據預定的規則作出應答,送回結果,套用伺服器運行數據負荷較輕。
(2)數據的儲存管理功能較為透明。在資料庫套用中,數據的儲存管理功能,是由伺服器程式和客戶應用程式分別獨立進行的,前台套用可以違反的規則,並且通常把那些不同的(不管是已知還是未知的)運行數據,在伺服器程式中不集中實現,例如訪問者的許可權,編號可以重複、必須有客戶才能建立定單這樣的規則。所有這些,對於工作在前台程式上的最終用戶,是“透明”的,他們無須過問(通常也無法干涉)背後的過程,就可以完成自己的一切工作。在客戶伺服器架構的套用中,前台程式不是非常“瘦小”,麻煩的事情都交給了伺服器和網路。在C/S體系的下,資料庫不能真正成為公共、專業化的倉庫,它受到獨立的專門管理。
(3)C/S架構的劣勢是高昂的維護成本且投資大。首先,採用C/S架構,要選擇適當的資料庫平台來實現資料庫數據的真正“統一”,使分布於兩地的數據同步完全交由資料庫系統去管理,但邏輯上兩地的操作者要直接訪問同一個資料庫才能有效實現,有這樣一些問題,如果需要建立“實時”的數據同步,就必須在兩地間建立實時的通訊連線,保持兩地的資料庫伺服器線上運行,網路管理工作人員既要對伺服器維護管理,又要對客戶端維護和管理,這需要高昂的投資和複雜的技術支持,維護成本很高,維護任務量大。
其次,傳統的C/S結構的軟體需要針對不同的作業系統系統開發不同版本的軟體,由於產品的更新換代十分快,代價高和低效率已經不適應工作需要。在JAVA這樣的跨平台語言出現之後,B/S架構更是猛烈衝擊C/S,並對其形成威脅和挑戰。
技術比較
C/S結構軟體(即客戶機/伺服器模式)分為客戶機和伺服器兩層,客戶機不是毫無運算能力的輸入、輸出設備,而是具有了一定的數據處理和數據存儲能力,通過把套用軟體的計算和數據合理地分配在客戶機和伺服器兩端,可以有效地降低網路通信量和伺服器運算量。由於伺服器連線個數和數據通信量的限制,這種結構的軟體適於在用戶數目不多的區域網路內使用。國內的大部分ERP(財務)軟體產品即屬於此類結構。
B/S(瀏覽器/伺服器模式)是隨著Internet技術的興起,對C/S結構的一種改進。在這種結構下,軟體套用的業務邏輯完全在套用伺服器端實現,用戶表現完全在Web伺服器實現,客戶端只需要瀏覽器即可進行業務處理,是一種全新的軟體系統構造技術。這種結構更成為當今套用軟體的首選體系結構。e通管理系列產品即屬於此類結構。
安全性
由於C/S結構軟體的數據分布特性,客戶端所發生的火災、盜搶、地震、病毒、黑客等都成了可怕的數據殺手。另外,對於集團級的異地軟體套用,C/S結構的軟體必須在各地安裝多個伺服器,並在多個伺服器之間進行數據同步。如此一來,每個數據點上的數據安全都影響了整個套用的數據安全。所以,對於集團級的大型套用來講,C/S結構軟體的安全性是令人無法接受的。對於B/S結構的軟體來講,由於其數據集中存放於總部的資料庫伺服器,客戶端不保存任何業務數據和資料庫連線信息,也無需進行什麼數據同步,所以這些安全問題也就自然不存在了。
一致性
在C/S結構軟體的解決方案里,對於異地經營的大型集團都採用各地安裝區域級伺服器,然後再進行數據同步的模式。這些伺服器每天必須同步完畢之後,總部才可得到最終的數據。由於局部網路故障造成個別資料庫不能同步不說,即使同步上來,各伺服器也不是一個時點上的數據,數據永遠無法一致,不能用於決策。對於B/S結構的軟體來講,其數據是集中存放的,客戶端發生的每一筆業務單據都直接進入到中央資料庫,不存在數據一致性的問題。
實時性
在集團級套用里,C/S結構不可能隨時隨地看到當前業務的發生情況,看到的都是事後數據;而B/S結構則不同,它可以實時看到當前發生的所有業務,方便了快速決策,有效地避免了企業損失。
溯源性
由於B/S結構的數據是集中存放的,所以總公司可以直接追溯到各級分支機構(分公司、門店)的原始業務單據,也就是說看到的結果可溯源。大部分C/S結構的軟體則不同,為了減少數據通信量,僅僅上傳中間報表數據,在總部不可能查到各分支機構(分公司、門店)的原始單據。
回響及時
企業的業務流程、業務模式不是一成不變的,隨著企業不斷發展,必然會不斷調整。軟體供應商提供的軟體也不是完美無缺的,所以,對已經部署的軟體產品進行維護、升級是正常的。C/S結構軟體,由於其套用是分布的,需要對每一個使用節點進行程式安裝,所以,即使非常小的程式缺陷都需要很長的重新部署時間,重新部署時,為了保證各程式版本的一致性,必須暫停一切業務進行更新(即“休克更新”),其服務回響時間基本不可忍受。而B/S結構的軟體不同,其套用都集中於總部伺服器上,各套用結點並沒有任何程式,一個地方更新則全部應用程式更新,可以做到快速服務回響。
套用限制
C/S結構軟體僅適用於區域網路內部用戶或寬頻用戶(1兆以上);而我們的B/S結構軟體可以適用於任何網路結構(包括33.6K撥號入網方式),特別適於寬頻不能到達的地方(例如迪信通集團的某些分公司,僅靠電話上網即可正常使用軟體系統)。
運用比較
管理軟體是為企業服務的,企業選用管理軟體不僅要從技術上考慮,還要從商業運用方面來考慮,下文將從商業運用的角度對兩種結構的軟體進行比較。
投入成本
B/S結構軟體一般只有初期一次性投入成本。對於集團來講,有利於軟體項目控制和避免IT黑洞,而C/S結構的軟體則不同,隨著套用範圍的擴大,投資會連綿不絕。
硬體保護
在對已有硬體投資的保護方面,兩種結構也是完全不同的。當套用範圍擴大,系統負載上升時,C/S結構軟體的一般解決方案是購買更高級的中央伺服器,原伺服器放棄不用,這是由於C/S軟體的兩層結構造成的,這類軟體的伺服器程式必須部署在一台計算機上;而B/S結構(如e通管理系列)則不同,隨著伺服器負載的增加,可以平滑地增加伺服器的個數並建立集群伺服器系統,然後在各個伺服器之間做負載均衡。有效地保護了原有硬體投資。
企業擴張
對於成長中的企業,快速擴張是它的顯著特點。例如迪信通公司,每年都有新的配送中心成立,每月都有新的門店開張。套用軟體的快速部署,是企業快速擴張的必要保障。對於C/S結構的軟體來講,由於必須同時安裝伺服器和客戶端、建設機房、招聘專業管理人員等,所以無法適應企業快速擴張的特點。而B/S結構軟體,只需一次安裝,以後只需設立賬號、培訓即可。
其次,隨著軟體套用的擴張,對系統維護人才的需求有可能成為企業快速擴張的制約瓶頸。如果企業開店上百家,對計算機專業人才的需求就將是企業面臨的巨大挑戰之一。
拋開人力成本不說,一個企業要招到這么多的專業人才並且留住他們也是不可能的。所以,採用C/S結構軟體必然會制約企業未來的發展。另外,大多數C/S結構的軟體都是通過ODBC直接連到資料庫的,安全性差不說,其用戶數也是受限的。每個連到資料庫的用戶都會保持一個ODBC連線,都會一直占用中央伺服器的資源,對中央伺服器的要求非常高,使得用戶擴充受到極大的限制。而B/S結構軟體則不同,所有的用戶都是通過一個JDBC連線緩衝池連線到資料庫的,用戶並不保持對資料庫的連線,用戶數基本上是無限的。
從以上的分析可以看出,B/S結構的管理軟體有著C/S結構軟體無法比擬的優勢。而從國外的發展趨勢來看,也驗證了這一點。國外大型企業管理軟體要么已經是B/S結構的,要么正在經歷從C/S到B/S結構的轉變。從國內諸多軟體廠商積極投入開發B/S結構軟體的趨勢來看,B/S結構的大型管理軟體勢必在將來的幾年內占據管理軟體領域的主導地位。