天天看點

軟體系統的架構設計 ZT

   每個企業都在運作着各種各樣的應用軟體,處理着林林種種的資料。這些軟體彼此獨立,使用各自獨立的資料庫,形成一個個資訊的孤島。如何整合現有的系統,進而形成一個互聯互通、資訊共享的軟體平台,是各企業夢寐以求的事情。如果你作為一個系統架構設計師,會如何考慮呢?以下就是本人的一些考慮。

    企業軟體系統平台,應確定軟體系統具有良好的可靠性、擴充性、穩定性,還要關注效率和成本。

    系統的可靠性目前大都使用支援雙機熱備的系統硬體,通過雙機熱備保證系統的高可用性;也有部分系統使用叢集技術,使用一組計算機裝置并發工作保證系統的高可用性。但從實際運作的經驗看,計算機系統雙機熱備技術并不是非常的成熟,偶爾還會導緻更大的麻煩,是以我個人還是頃向使用叢集技術。

    擴充性考慮主要是確定系統運作正常的情況下更新或更換系統軟體子產品、增加或删除功能子產品,對新的業務需求提高更快的響應,避免對系統進行較大的改造。顯然必須使用子產品化或元件化的系統設計思想才能滿足此目标。而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技術或瘦用戶端技術。

繼續閱讀