周文平(上海海事大學,上海 201306)
我國現代物流整體規模擴大,發展速度加快,運行效率提高,對經濟發展的支撐和促進作用更加明顯[1]。同時,據統計,國際航運業承擔著國際貨物貿易90%以上的運輸量[2],隨著經濟全球化的快速發展,航運在全球化的貿易運輸中的地位就顯得尤為突出,航運物流信息的管理更顯重要[3]。
信息技術和信息系統蓬勃發展,給物流企業業務流程、管理模式、組織機構的重組乃至整體的發展帶來新的機會,促使傳統的經營方式和思想觀念發生深刻的變革,也對物流企業的經營理念和管理模式提出了挑戰。我國的航運物流企業如果要實現適應未來日益激烈的市場競爭,最有效的方法就是通過開發管理信息系統來加強企業各個部門之間的相互協作,以提高企業的整體運作水平[4]。由此可見,航運物流企業構建管理信息平臺已是大勢所趨。
現有航運物流管理信息系統的開發模式下,IT組織很難對不同的功能和系統進行集成,很難對變化的商務需求和競爭需求及時做出反應。只要不是由單獨的一個開發商來提供所有的功能,就一定存在著不嚴格的應用程序。本文提出了一種經改進后適應于.NET平臺的J2EE平臺的成熟、穩定、易維護的五層架構開發模式,同時考慮到系統將來的重用和擴展問題,將面向接口編程思想運用于此架構對系統進行開發和實現。這些接口在開發之初就已經考慮到重用問題,提供了標準的接口,可以被各種應用和其它服務所調用。
定義:在系統分析和架構中,分清層次和依賴關系,每個層次不是直接向其上層提供服務(即不是直接實例化在上層中),而是通過定義一組接口,僅向上層暴露其接口功能,上層對于下層僅僅是接口依賴,而不依賴具體類。
(1)接口編程和面向對象編程是什么關系
面向接口編程和面向對象編程并不是平級的,它并不是比面向對象編程更先進的一種獨立的編程思想,而是附屬面向對象思想體系,屬于其一部分。
(2)面向接口編程優勢
這樣做的好處是顯而易見的,首先對系統靈活性大有好處。當下層需要改變時,只要接口及接口功能不變,則上層不用做任何修改。使用接口的另一個好處就是不同部件或層次的開發人員可以并行開工,就像造硬盤的不用等造CPU的,也不用等造顯示器的,只要接口一致,設計合理,完全可以并行進行開發,從而提高效率。
在.NET平臺上,比較經典的分層架構是三層架構,從下到上依次是:數據訪問層、業務邏輯層、表示層。各層職責如下:
數據訪問層:負責與數據源交互,完成數據訪問等一系列操作。
業務邏輯層:完成與系統業務有關的邏輯操作。
表示層:負責與用戶交互、呈現數據等一起與系統表示有關的操作。
在這個架構中,每一層都不是一個類,而是一個類族。所以,在本文中,為數據訪問層和業務邏輯層分別定義一族接口,業務邏輯層不依賴具體的數據訪問層,而是僅依賴數據訪問層的接口族,表示層也一樣,依賴業務邏輯層的接口族。如此一來,當要更換數據庫時,就不必改寫整個業務邏輯層,因為業務邏輯層里根本沒有任何數據訪問層中的具體類,而全是通過接口實現的。
目前,在典型的三層架構中,對層次各自的職責劃分并沒有一個統一的規范,綜合現有的成功實踐和.NET平臺的特殊性,在本文中將三層架構的職責劃分如下:
數據訪問層——負責與數據源的交互,即數據的插入、刪除、修改以及從數據庫中讀出數據等操作。
業務邏輯層——負責系統領域業務的處理,負責邏輯性數據的生成、處理及轉換。
表示層——負責接收用戶的輸入、將輸出呈現給用戶以及訪問安全性驗證。
面向接口編程的多層架構開發模式下的航運物流管理信息系統模塊見圖1,在宏觀上將整個系統分為以下幾個模塊:
實體類模塊(POJO)——一組實體類的集合,負責整個系統中數據的封裝及傳遞。
數據訪問層接口族(IDAO)——一組接口的集合,表示數據訪問層的接口。
業務邏輯層接口族(IApp,IServer)——一組接口的集合,表示業務邏輯層的接口。
數據訪問層模塊(持久層)——一組類的集合,完成數據訪問層的具體功能,實現數據訪問層接口族。
業務邏輯層模塊(App層,Server層)——一組類的集合,完成業務邏輯層的具體功能,實現業務邏輯層接口族。
表示層模塊(UI層)——程序及可視元素的集合,負責完成表示層的具體功能。
IOC容器模塊(類工廠)——負責依賴注入的實現。
輔助類模塊(Common層)——完成全局輔助性功能。
依照上面各模塊間交互關系此航運物流管理信息系統框架圖如圖2。
Client(客戶端):包括UI,App,IApp三個項目。
·UI,使用App接口變量和類工廠(本地模式)。
·IApp,定義函數接口。

·App,使用Server接口和類工廠(Remoting服務端singleCall模式),領域的數據模型。
Server(服務器端):Server,IServer,持久層,持久層接口。
·IServer,定義函數接口。
·Server,使用持久層接口和類工廠(本地模式),企業數據模型,Cache池。
·持久層接口,定義連接數據庫函數的接口。
·持久層,使用強類型數據模型,屏蔽底層數據庫實現,統一數據操作唯一入口。
·數據庫。
基于.NET面向接口編程的架構模式已成功地部署在航運物流管理信息系統中,到目前為止,運行情況良好。其優點具體包括:
(1)使用面向接口的編程,接口的實現既可以是基于部門級數據,也可以是基于企業級數據;數據層不同的實現策略與業務邏輯實現無關;數據庫修改引起的程序修改是可以被預期的。
(2)程序具有一致的結構,便于理解和維護,且數據的維護只有一個入口。
(3)系統允許遞增迭代開發。用戶界面、業務組件與Web服務可并行開發,單元調試與集成調試的效率都很高。
(4)通過加入Server層,向客戶端屏蔽的數據庫連接,數據庫不需要向外公布IP地址以提高安全性,連接可以被共享,提高性能。
(5)此開發模式,做到需求與設計獨立,設計與實現獨立,業務邏輯實現與數據庫獨立;強調用戶參與,強調流程的作用,降低個人作用;測試自動化。
[1]張錫平,林亨,徐超,等.2005中國物流總成本研究[J].中國物流與采購網,2006(4):24-30.
[2]汪傳旭.世界經濟知識化對國際航運業的影響[J].珠江水運,1999(6):8-9.
[3]王沛仕.加入WTO后我國航運業的對策性研究[J].珠江水運,2003(4):7-11.
[4]方照琪.信息技術對航海的影響[J].中國水運,2005(6):50-51.
[5]Cao J D,Li P,Wang W W..Global synchronization in arrays of delayed neural networks with constant and delayed coupling[J].Physics Letters.A,2006,353(4):318-325.
[6]吳煒,張洪偉.微軟.NEI技術在開發企業資產管理系統中的應用[J].計算機應用研究,2003(2):13-16.
[7]羅鴻,王忠民.ERP原理·設計·實施[M].北京:電子工業出版社,2003.
[8]金燦,陳緒君,朱紹文,等..NET框架中三種數據訪問技術及效率比較[J].計算機應用研究,2007,20(4):155-157.
[9]胡迎松,彭利文,池楚兵.基于.NET的Web應用三層結構設計技術[J].計算機工程,2003,29(8):173-175.