基於三層結構的CRM系統(Agent X)的設計和開發

 現代計算機應用技術不斷髮展的同時,CRM也得到了前所未有的發展。最初的CRM系統基本上都是基於兩層結構-C/S模式(客戶機/服務器)。自從C/S模式提出後,對CRM的發展起到了巨大的推動作用。

    但隨着對數據庫操作複雜性的提高,傳統的C/S模式已經不能滿足應用需求,由於數據庫產品層出不窮,即使是關係數據庫,在性能指標上也存在許多差異,比如數據格式、數據精度、數據模型和語義差異等等。因此,爲了解決不同數據庫產品的互聯及其他問題。三層Client\Server結構體系也應運而生。所謂三層結構,就是在原有的”兩層結構”〔客戶端和服務器端)之間增加了一層組件,這層組件包括事務處理邏輯應用服務、數據庫查詢代理等。隨着這層組件的增加,兩層結構向三層結構轉變後,客戶端和服務器端的負載就相應減輕了.跨平臺、傳輸不可靠等問題也得到了解決。增加的這層組件就是我們所說的”中間件“。中間件在三層結構中主要充當中間層,實現數據安全、完整傳輸,通過負載均衡來調節系統的工作效率,從而彌補兩層結構的不足。
    與此同時,電子商務的飛速發展,使用CRM軟件的客戶的業務越來越複雜,而且業務種類可能會隨時變更,這就使得企業迫切的要求自己能夠進行系統的二次開發。如果有了這項功能,即使企業的業務發生變更,企業也可以應付自如。如今一般比較流行的CRM系統都不具備這樣的功能。我們的開發組對這項功能進行了詳細研究,並最終給子實現。作者參與了基於三層結構的CRM系統(Agent X)的設計和開發。
    爲此,本文詳細介紹了三層結構的基本原理,並且詳細介紹了基於三層結構的Agent X系統。
一、兩層Client\Server結構
    整個兩層結構的核心是擁有一個功能強大的客戶應用開發語言和一個多用途的用於傳送客戶請求到服務器的機構。在一個數據庫存取事件中,數據由服務器實施存儲和訪向,數據庫引擎負貴處理從客戶機發來的請求。現在這種請求所使用的語言大多數類似於sQL語言。要把sQL語言從客戶機傳送到服務器上,必須能識別服務的標誌符或者由一個應用程序接口來完成,還必須知道服務器的位置,數據組織形式以及數據如何定義。
    在服務器中,請求還將得到存儲邏輯和處理上的進一步優化,例如使用權限、數據完整性和保密性等。數據返回後在客戶機上得到進一步處理,以適應查詢、商業應用、預測分析和數據報表等各種要求。
二、三層Client\Server結構
1三層結構的基本原理
    X/Open DTP標準(l991)分佈式處理、參考模型和分佈式事務處理中描述了三層口Client\Server模型。應用程序定義操作來完成特定的任務。它定義事務的範圍並且把服務要求提交給事務管理器,通信管理器和一個或者多個資源管理器。
    資源管理器提供應用程序要求的事務間的服務。一般情況下,資源管理器是一個數據庫,但並不總是這樣。爲了維護事務的完整性而修改的資源必須由資源管理器來管理,例如管理在線的隊列等等。資源管理器必須對它們涉及的資源提供兩階段確認服務。
    事務管理器提供管理事務的服務,包括資源管理的兩階段確認服務和通信管理器的服務。如果事務跨越多個平臺,那麼其中的一個關於這個事務的管理器將被自動命名爲這個事務的控制事務管理器。
    通信管理器提供通信服務的接口以及管理應用層協議。在大部分客戶/服務器棋式情況下,提供的服務僅僅是數據傳輸機制的接口。大部分的三層C/S系統都提供某些對話服務。
    應用的客戶通過Miiddle Server要求應用服務器提供服務。每一個客戶提交Begin要求給Miiddle Server,它表明客戶想開始處理一個事務,然後客戶提交一個或者多個服務請求。Miiddle Server使用服務的名字來把要求路由送到合適的服務器。圖例表明一個服務可能由多個服務器提供服務具體的路由選項都可以由系統管理員在任何時候修改而不影響應用和服務程序。如果一個邏輯數據庫(例如客戶庫)各部分存放在不同類型的數據庫中,那麼大多數兩層結構要維持異型數據庫的性能並提供數據完整性的功能是很困難的。而使用依賴數據的路由,就可以對每個數據庫提供同樣的服務,且對系統的所有客戶是透明的。
    通過對兩層和三層C/S的描述,可以看到,三層結構在網絡流量和系統反應速度方面優於兩層結構,這是由於三層結構中數據在發送到網絡之前首先由功能性服務器加以過濾,網絡通信量會因此下降;其次由於三層結構中Client端並不是直接同數據庫打交道,而是通過三層結構中的中間層統一調用來實施,這樣在靈活性和獨立性方面較好,而且還適合於不同數據庫之間的互聯。
2三層結構體系架構
    在傳統的C/S模式的中間加人應用服務器就形成了如下的三層結構架構。
三、三層結構應用實例--Agent X
1系統介紹
    Agent X CRM系統採用三層的體系結構,前端爲Agent座席應用軟件,中間爲應用服務器,後端爲數據庫或其他後臺系統。本系統可以應用到銀行、保險、電力和信息諮詢等領域。
    所有關於數據庫的操作都是由座席應用程序將請求發送到應用服務器。對應用服務器的請求是以XML電文的格式發送出去。服務器接到請求後。用XML解析器轉換成本身能夠理解的電文。應用服務器根據前端請求進行數據庫操作,並將操作結果返回到客戶端。客戶端接到電文之後用XML解析器再次解析成相應的協議電文。在應用服務器上運行着許多對數據庫操作的服務,由這些服務去和數據庫打交道。因此Agent座席端無需安裝數據庫驅動程序,編程時無需考慮使用的數據庫類型,另外通過結合自動更新工具,可以將系統的維護量減少到最低。
    應用服務器支持分佈式的系統結構,在一臺機器上可以運行多個不同的環境,同一環境可以運行在不同的機器上,因此係統可以同時訪問多個數據庫服務器,井且這些數據庫服務器可以是不同的數據庫類型,例如:可以同時是SQL Server數據庫,或者Oracle數據庫。這就解決了傳統上的CRM系統只能訪問單一類型數據庫的瓶頸。
    除此之外,該系統還採用了當前比較流行的插件技術,軟件提供商提供給用戶插件製作模板。提供這些模板使軟件提供商對企業技術人員只需進行短期培訓,用戶就可以自己獨立進行系統的二次開發。從而使二次開發更加簡單、便捷,可以更好的滿足企業自身需要。
2應用服務器基本架構
3應用服務器的特點
    Agent X CRM系統中的應用服務器由衆多的服務(services)所組成,每個單獨的服務均可以響應客戶段的請求,並將獲得的結果返回給客戶端。應用服務器具有如下特點:
A 服務的模塊化
    應用服務器以各種可執行程序爲模塊,採用堆砌式的方法進行構築,以各種服務爲基本的服務單位,同一個程序可以提供一種或多種服務。同時系統提供功能豐富、強大的編程控件和編程模板,這樣可以使編程者專注於業務本身的邏輯,而無需對各種底層複雜的編程技術進行了解,另外,由於系統採用了模塊式的方法,因此,對單個服務程序的追加、刪除、修改甚至其bug,均不會對系統本身的運行造成影響。
B服務的分佈式
    應用服務器支持分佈式的系統結構,在一臺機器上可以運行多個不同的環境伺一環境可以運行在不同的機器上,以使整個系統運行在分佈式的結構中,提高系統的工作效率。對於客戶請求數量較多的服務,系統支持將該服務同時啓動多個,以便該服務能夠同時處理多個服務請求。
C 操作的簡易性
    應用服務器能支持在不影響正常業務的情況下,在系統運行中,停止或啓動單個應用程序,以方便系統的維護與更新。
D 以HTTP爲傳輸協議
    應用服務器可以通過各種方式(如發送電文、API調用等)與外部系統交互。
E 數據庫屏蔽
    Agent座席軟件與系統實際使用的數據庫產品類型無關,當客戶需要將數據庫軟件更換時(如由SQL Server轉換到Oracle時),只需對應用服務器進行配置即可,Agent座席無需進行任何修改。
4服務請求的具體實現步驟
    客戶端如何得到服務器的服務,可以分爲如下幾個步驟:客戶端嚮應用服務器發送具體的請求給相應的服務(Service);調用函數CreaieRequest(服務名稱,要傳輸的數據);服務器相應的服務接收到數據,進行分析,如果符合標準,那麼訪問數據庫得到相關數據,然後打包發送給客戶端;調用函數AnalyXML(XML格式的請求電文)。
    客戶端接收到服務器返回的電文進行分析,如果符合內部協議,表明請求成功,否則失敗。調用函數AnalyxML(xML格式的請求電文)無論是客戶端發給服務器,還是服務器發給客戶端的電文,均進行XML協議分析。
5二次開發的實現
    AgentX系統比較突出的特點就是實現了二次開發。但隨着企業業務的變更,企業迫切需要能夠自己獨立進行二次開發。基於這樣的需求,AgentX系統在三層結構的基礎上採用了插件技術。
    除了基本模塊以外.其他的業務模塊均設定爲插件。插件是以DLL文件的格式存在的。提供插件模板,客戶可以根據插件模板製作出與自身業務相關的插件模塊。然後將這個插件放到系統固定的Plugins目錄下面。
    當主模塊運行的時候,會將這個目錄下面的所有插件模塊均裝載進來。插件模板提供了系統內部所有的消息機制。當主程序發生某個事件的時候,主程序會對各個插件進行廣播,通知各個插件。相應的插件可以對這個事件作出反應完成必要的操作。
5.結論和今後的工作
    自從引入了這三層結構的概念後,使應用對數據庫的操作變得越來越簡便、而且系統還可以通過三層結構的中間層一應用服務器,訪問其他的服務器,例如:Web服務器,GIS,GPS等等。軟件提供商可以把大量的資源投人到應用服務器的開發,使得前臺系統的開發變得異常的簡單,快捷。在AgentX系統中,我們還引人了DCOM、插件、XML等關鍵技術,使得系統的可操作性、穩定性得到了大副的提高。
    由於電子商務的飛速發展,使得在有些方面三層結構依然滿足不了企業的需要。所以還需要在三層結構中引入多層結構。接下來的工作就是考慮多層結構的設計,使CRM系統能夠真正滿足客戶的需求。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章