CRM(Customer Relationship Management)客戶關系管理系統是企業為增加客戶滿意度,提高忠誠度、拓展市場,增強其核心競爭力的重要手段。基于Internet的CRM系統,將市場拓展、維系客戶與企業的品牌創建有機結合,實現企業與客戶聯系的信息化與網絡化。
現代企業信息系統多數以ERP(Enterprise resource plan)為核心構建綜合平臺,銷售與客戶支持服務大多是通過內部網服務企業職能部門,而面向社會開放式服務則很少。資源信息化、信息共享化及系統平臺化已成為企業信息化建設的基本條件。新環境下的CRM系統開發必須滿足企業信息化的這些要求,這樣系統在功能規模建設、開發效率與質量、系統組織管理、復雜性控制等方面就面臨著新的挑戰。
雖然一些國外軟件開發商在面對上述挑戰時,提出了一些針對性的解決方法,如RUP、XP,Catalysis方法,UML構件方法,Kobra方法及業務構件工廠方法等,不過,在處理遺留系統、控制復雜性、提高復用和解決變化的需求等問題上,缺乏一致的解決方法。對此,本文在對已有解決方案分析消化的基礎上,給出一種基于業務構件化設計的面向CRM系統的開發方法,解決在系統開發中存在的一系列問題。
1 基于信息整合的構件化系統開發思想
實現企業營銷過程、銷售過程和客戶業務流程中的信息整合與集成問題是應用CRM的關鍵。在現有信息系統中,大量的業務數據還是散列在企業不同位置的服務器上,共用的客戶信息和需求信息分散在部門級的應用數據庫中,難以實現企業整體數據共享與業務的一體化。其原因主要是由于不同渠道的信息匯集與調用缺乏統一的集成標準和應用服務接口。
構件化軟件設計思想是解決信息整合和接口服務的理想選擇。企業業務處理可以通過信息收集處理并封裝為構件化的模塊,建立可供各種業務復用的功能構件模塊庫,按照業務層次和粒度的不同要求,完成軟件復用與系統功能的重構,實現統一的業務信息輸入和輸出接口規范,達到整合來自企業不同渠道信息融合與共享的能力,以提高整個企業信息系統的應用能力。
所以,在開發集成的CRM系統時,可把系統業務處理與客戶數據的收集、存儲、加工及傳遞等事務性活動抽象為對企業不同業務功能單元的執行過程,不同事務的處理單元經過集成后,對應不同業務的功能模塊,它由低層向模塊拼裝組合應用,實現業務處理的功能化與業務流程重構的模塊化和便利化,從而實現CRM系統開發過程在業務、功能、事務上的高效率,也很好地解決了系統集成與信息集成問題。層次劃分如圖1所示。
2 面向業務的構件化設計
面向業務的構件化設計核心思想是以事務層構件為基礎,構建完成不同事務的功能,通過組裝功能層構件,再封裝為業務層構件,形成業務構件庫,再動態組合復用這些構件,整個構件體系結構是一個層次型迭代遞進的關系架構。在這個框架中,通過組裝自治功能的各個業務構件,實現構件的大粒度復用,使不同粒度的構件,在應用管理與控制上更加安全可靠。
如何實現“關注點”分離是上面構件化設計的關鍵,主要包括三點:一是產品和過程相分離,也就是生產什么和如何生產分開處理,以此簡化開發過程;二是業務與細節相分離。業務概念和實現業務細節處理相分離,盡量抽象出系統需求。三是設計與實現相分離。高層抽象設計與具體實例化相分離,按責任分解問題域,依賴問題的抽象分析共性和可變性,了解所有對象后再考慮對象的實例化問題。
開發集成的CRM系統,對企業業務流程和事務處理的整體支持是極其重要的功能。該功能的實現,取決于對“關注點”的分離,以形成獨立的自治構件,包括縱向分離和橫向分離這兩大類,形成面向技術的功能構件。在系統集成時,構件化設計是通過構件封裝標準信息,依據過程組織大粒度業務構件應用,依據實際需要組裝和運行對應的構件模塊來實現系統集成和信息集成。分割矩陣如圖2所示,圖2中X軸為面向服務業務的橫向分離,即業務構件系統;y軸為面向技術功能的橫向分離,也就是功能構件;C為分割出的業務構件。
(1) 業務構件和構件類型
所謂業務構件指的是實現自治業務概念或業務過程的軟件載體。業務功能模塊具有在問題空間內相對自治且不分離的特點。在CRM系統問題空間內的業務構件并不是獨立存在的,需要與其他自治的業務構件保持關聯和互操作,只有這樣,才能完成每個具體的業務處理。
業務構件是由功能構件組合而成的,功能構件實現業務構件中相對自治的具體事務,功能構件處理業務邏輯中劃分更細的事務邏輯。不同的功能構件可被拼裝成為完成不同業務邏輯的業務構件,并可封裝到業務構件庫,被系統復用。
而功能構件則能進一步分解細化為多個完成某項具體操作的事務構件, 具有關聯業務的不同業務構件可 組成實現具體服務業務的構件系統,業務構件系統之問聯合組成系統級構件聯邦,以滿足不同的用戶對系統的信息需求。
基于業務構件化的系統開發根據構件的類型,將設計好的構件封裝在對應粒度層次的標準構件庫中,再按照業務和系統重構的需求,從構件庫中挑選合適的構件,在構件虛擬機上進行組裝和運行,完成整個構件系統的開發應用。
(2) 關鍵問題的解決
第一是遺留系統接口。通過尋找分離點、封裝和重構系統等工作,實現對構件的應用和管理,以解決老系統遺留的接口問題。
第二是復雜性控制。對于開發者和用戶而言,只需要關注自己負責的部分,將“關注點”分離好,理清各自的處理邏輯和控制目標。對于系統維護和管理來說,當某個構件出現問題的時候,只需替換或者修復對應的構件,就可以輕松實現控制。而通過對標準構件庫中不同粒度構件的統一管理與應用,開發人員和客戶則可以非常方便地通過構件虛擬機所提供的開發功能和管理機制,完成對構件的組合、拼裝、運行、管理和應用。
第三是應變適應能力。通過對需要改造的構件適當的替換、重構,能夠實現系統的快速更新與升級,以適應新業務、新需求對系統的應變要求。
(3)系統構建開發過程模型
面向業務的構件化開發過程模型吸取了軟件工程的設計思想的優點,為重新安排整個軟件生命周期的活動內容的建模提供了便利,具體表現在:①交流。識別業務構件,業務構件系統,系統級構件聯邦。②計劃和設計。識別功能構件并歸納功能構件。③分析和構件選擇。選擇事務構件,功能構件和業務構件組建業務構件系統。④工程和測試。開發,測試,提交功能和業務構件。⑤應用管理和維護。對運行的構件進行管理和替換。