企業軟件系統平臺,應確保軟件系統具有良好的可靠性、擴展性、穩定性,還要關注效率和成本。
系統的可靠性目前大都使用支持雙機熱備的系統硬件,通過雙機熱備保證系統的高可用性;也有部分系統使用集群技術,使用一組計算機設備并發工作保證系統的高可用性。但從實際運行的經驗看,計算機系統雙機熱備技術并不是非常的成熟,偶爾還會導致更大的麻煩,因此我個人還是頃向使用集群技術。
擴展性考慮主要是確保系統運行正常的情況下升級或更換系統軟件模塊、增加或刪除功能模塊,對新的業務需求提高更快的響應,避免對系統進行較大的改造。顯然必須使用模塊化或組件化的系統設計思想才能滿足此目標。而SOA設計思路則是組件化設計思想的繼承與發展。我個人的觀點是全面使用SOA可能存在相當的難度,但至少我們可以實現粗粒度、面向業務或報文服務的SOA。
由于本人多年的C++編程背景,因此對C++設計的系統的穩定性和處理效率還是比較認同的。如果主要業務邏輯換用解釋型的JAVA實現,沒有經過壓力測試,我是不敢輕率做出這個決定的,因此我個人還是堅持核心業務處理系統,應使用C++編寫,確保系統具有較高的效率與穩定性。
每個系統都離不開人機界面。從C/S結構到目前流行的B/S結構,人機界面設計要求發生了很大的變化。C/S結構的用戶體驗、響應速度、開發速度是B/S結構無法比擬的,但在多用戶環境下,其可維護性、并發能力難以滿足大量用戶并發的要求,這正好是B/S結構發揮威力的地方。而瘦客戶端技術則是平衡C/S與B/S技術的優缺點的人機界面技術。結合目前各種流行的B/S技術,我認為大量用戶少量界面的簡單系統人機界面應使用WEB技術(建議JSF),而少量用戶大量界面的復雜系統人機界面使用瘦客戶端技術更合適。目前WebService技術更是為瘦客戶端技術增添了雙翼。因此人機界面,我會選擇JSF+WEB和瘦客戶端+WebService技術實現,建議Delphi+WebService。
綜上,我們的軟件平臺應具有下列特征:
(1)使用集群技術的一組計算機作為業務處理后端服務器;
(2)核心業務邏輯使用交易中間件控制下的C++應用完成,核心業務邏輯沒有任何人機界面;
(3)所有業務系統的人機界面部署在JAVA EE Application Server中,由一個或多個WEB應用組成;
(4)核心業務應用間、核心業務應用與Web應用間通過消息中間件交換數據(消息、報文);
(5)人機界面使用WEB技術或瘦客戶端技術。
其典型的技術包括:
(1)服務器集群技術及負載均衡技術;
(2)數據庫技術;
(3)C++編程技術;
(4)JAVA EE Application Server及其集群、負載均衡技術;
(5)JAVA、JSF、JSP、JAX-WS技術;
(6)Delphi編程技術。
最后繪制一張簡單的示意圖說明我心中的系統軟件平臺架構。