在前幾年的軟件開發中,兩層結構占據了非常重要的位置。兩層體系結構至今仍廣泛存在,但它有很多缺點,如客戶端維護成本高,難以實現分布式處理。隨著在兩層結構的最終用戶和後端服務之間增加更多的層,多層結構出現了。
經典的三層理論將應用分為三個層次,如圖2-63所示。
表示層用於處理人機交互。目前最主流的兩種表示層是Windows格式和WebBrowser格式。它的主要職責是處理用戶請求,如鼠標點擊、輸入、HTTP請求等。
領域邏輯層模擬企業中的實際活動,也可以認為是企業活動的模型。
數據源層,處理數據庫、消息系統和事務系統。
在實際應用中,三層結構有壹些變化。例如,在Windows中。NET系統中,應用程序分為三個層次:表示層、業務層和數據訪問層,與經典的三層理論中的三個層次相對應。值得壹提的是。NET系統可以直接訪問的數據訪問層,也就是記錄集技術。在ADO.NET,這項技術已經非常成熟,通過表示層的壹些數據感知組件實現了非常友好的功能。這種跨層訪問技術通常被認為是不允許的,因為它可能會破壞層之間的依賴關系。在Windows平臺中,嚴格遵循準則意味著大量額外的工作。因此,我們可以看到,標準不是壹成不變的。
在這個系統中,數據訪問層應該進壹步分為基礎數據訪問層和業務數據訪問層。前者主要完成數據庫訪問和事務處理,後者繼承數據庫中表的基本數據訪問對象,實現自己的數據訪問需求。由於本系統涉及圖形配置和界面數據交互,表示層采用桌面模式和IE模式相結合,業務操作主要在IE中進行,工作流配置和與P3(或MS Project)的數據接口主要在桌面模式下完成。
圖6-63分層開發示意圖
2.面向服務的架構
SOA(service-oriented architecture,也稱面向服務架構或面向服務架構)是指在互聯網環境下,為了滿足業務集成的需要,通過連接能夠完成特定任務的獨立功能實體而實現的軟件系統架構。SOA是壹個組件模型,它通過這些服務之間定義良好的接口和契約來連接應用程序的不同功能單元(稱為服務)。接口是以中立的方式定義的,它應該獨立於實現服務的硬件平臺、操作系統和編程語言。這使得在各種這樣的系統中構建的服務能夠以統壹和通用的方式進行交互。
本系統采用面向服務的架構,內部高內聚,組件間低耦合,提高了系統的可維護性、可擴展性和可移植性。
3.采用面向對象的設計方法。
本系統采用面向對象的編程方法。面向對象軟件開發的主要目的是:利用可復用軟件技術加快問題求解,縮短開發時間,降低軟件開發成本;當軟件功能發生變化時,只需要修改壹個或多個類的實現方法,就可以將軟件功能變化的影響本地化,從而降低軟件維護的成本。面向對象軟件設計的主要挑戰是將軟件系統分解成基本數據類型或類和子類,並定義每個基本類和子類的特征。在具體實現中,我們將設計中帶有* * *的部分標準化,編譯為父類。公共數據和處理在父類中定義,其他子類從父類繼承,並根據特殊要求適當擴展。
在具體實施過程中,我們采用了以下方法:
(1)使用對象的封裝:我們對基礎類庫的代碼進行了嚴格的封裝,類庫的改動和升級不會影響到使用該類庫的程序,從而提高了程序的可維護性。
(2)使用多重繼承:我們會用到常用的函數,比如插入、刪除、修改、保存數據、排序、過濾、搜索、替換數據、打印表格等。
(3)利用多態性:多態性給編程帶來很大的靈活性。我們使用多態性為不同環境下的類似功能提供統壹的訪問接口,增強程序的可讀性。
4.分布式計算技術
分布式技術有很多種,比如CORBAR和COM+。在。NET平臺,還有WEB服務和Net Remoting技術。Web服務是壹種新的分布式計算技術,它可以跨越應用系統組件模型和操作系統編程語言的界限,被客戶端或其他服務器調用。
Web服務是壹種使用SOAP在HTTP上執行遠程方法調用的新方法。過去這個問題壹直很難,因為過去使用DCOM (Distributed COM)在實例化遠程服務器的對象、使用方法和獲取結果方面非常麻煩,在進行必要的配置時需要很高的技巧。
系統采用Web服務實現分布式結構,分布式事務通過。Net企業服務。
隱式分布式事務實現:
隱式分布式事務最大的優點是不需要手動控制事務,通過代碼塊聲明壹個事務範圍,在這個範圍內的操作會自動進入事務。這種事務模式是通過。Net企業服務。
顯示分布式事務實現:
顯示分布式事務。手動從DTC獲取事務,將事務與需要進入事務的連接相關聯,並手動提交或回滾事務。這種事務模式是通過。Net企業服務。
5.與工作流引擎集成
該系統采用的工作流系統集成了計算機通信技術、組件技術和圖形技術,其實用性、先進性和可靠性均達到國內領先水平。
6.利用VML技術在瀏覽器中繪制進度計劃。
對於許多軟件公司來說,在瀏覽器上繪圖壹直是壹個困難的步驟。系統采用VML技術的目的是
圖6-64工作流系統示意圖
用戶提供在瀏覽器中直接繪制進度計劃的功能,並可以跟蹤進度計劃,如圖6-64所示。
系統中的進度圖有單碼和雙碼兩種形式,並且可以相互轉換。
7.與Microsoft 0ffice軟件的完美結合和緊密集成。
微軟Office是常用的辦公軟件。項目管理過程中的很多文檔,如工作聯系單、設計變更單等,大多是Word格式,而有些報表是Excel格式,所以要求系統與微軟Office套件無縫對接。強調與微軟Office的集成,不僅方便用戶使用,還能最大程度保護用戶對微軟Office的投資。
8.與電子簽名和手寫技術集成
隨著項目管理中對文檔的安全性和真實性要求越來越高,尤其是手寫簽名和電子印章,要求對Word/Excel文檔進行簽名和蓋章,需要實現多人會簽、簽名驗證、認證和不可否認等功能。東方思維根據實際情況,采用第三方軟件iSignature(已通過公安部安全檢查)管理手寫簽名電子印章軟件。該方案采用信息加密和數據壓縮處理技術,可靠性好,擴展性強,廣泛應用於政府和企業。
ISignature手寫簽名電子印章軟件由簽名密匙盤和軟件組成。簽名密鑰盤自帶CPU、快速內存和加密處理機制,用於存儲公司或個人的數字證書、印章信息或簽名信息。簽名密鑰盤通過USB接口與計算機連接。軟件自動嵌入Word/Excel實現蓋章或簽名。
9.與SMS貓集成
與第三方產品GSM-SMModem短消息貓集成,實現短消息收發功能,及時提醒待處理任務或發送通知。
10.OWC科技
OWC,即Office Web Components,是壹個組件對象模型(COM)控件的集合,可用於向網站發布電子表格、圖表和數據庫。它們也可以用來查看這些已發布的項目和數據訪問頁。利用“表格模板標簽”技術實現了表格與數據庫之間的數據交換和存儲,解決了不同高速公路項目(壹般每個項目400張左右)由於表格不同,程序需要在每個表格上反復修改的問題。
系統采用微軟OWC技術,界面直觀,操作簡單。系統中操作的各類表格與Excel表格中操作的壹致,符合用戶習慣。提高了填寫表單數據的效率。可以方便地定制和輸出報告格式。
11.它可以很容易地與Biztalk Server集成。
Biztalk是基於XML的數據交換標準,Biztalk Server是微軟的企業應用集成服務器,兩者之間的數據交換標準是Biztalk。
該系統可以通過Biztalk Server方便地與OA和其他系統集成,包括流程。
12.單點登錄技術
單點登錄采用基於數字證書的加密和數字簽名技術,對用戶實施集中統壹管理和身份認證,作為本系統和其他應用系統的統壹登錄入口,同時為通過身份認證的合法用戶發放各應用系統的登錄票,實現“單點登錄、多點漫遊”。
13.PDA的移動操作
圖6-65手持設備的移動操作
系統采用SmartClient技術,提供手持設備(PDA)的移動操作功能。比如質量檢測評估,現場檢測數據可以直接通過PDA采集,然後通過同步機制與服務器數據同步。
14.多線程技術
默認情況下,壹個應用程序進程中只有壹個線程在執行任務,但系統經常會執行文件壓縮和數據傳輸等消耗CPU的任務。如果使用單線程,系統的整體性能會下降。
該系統采用多線程技術,復雜任務啟用新線程執行,保證了系統的性能。
15.企業圖書館2.0的應用
企業庫是微軟為企業開發提供的壹套基礎組件,全面實現了XML的配置和使用,包括數據訪問、安全、日誌、異常、加密/解密等服務。企業庫2.0相比1.0有了很大的改變,功能更加完善,使用更加簡單。系統采用了企業庫2.0,並進行了二次開發,使其更加符合本系統的應用。
16.Ajax技術
Ajax使用了壹系列技術,這些技術使瀏覽器能夠為用戶提供更自然的瀏覽體驗。在Ajax出現之前,網站強迫用戶進入提交/等待/重新顯示範式,用戶的動作總是與服務器的“思考時間”同步。Ajax提供了與服務器異步通信的能力,從而將用戶從請求/響應的循環中解放出來。在Ajax的幫助下,可以使用JavaScript和DHTML在用戶點擊按鈕時立即更新UI,並向服務器發送異步請求來更新或查詢數據庫。當請求返回時,您可以使用JavaScript和CSS相應地更新UI,而不是刷新整個頁面。最重要的是,用戶甚至不知道瀏覽器正在與服務器通信:網站似乎立即做出了響應。
Ajax技術在系統中得到了廣泛的應用,提高了系統的效率,增強了用戶體驗。