陳洪鈞
(廣州南洋理工職業學院,廣東 廣州 510925)
多層體系結構的汽車管理信息系統設計
陳洪鈞
(廣州南洋理工職業學院,廣東 廣州 510925)
汽車行業管理信息系統使用多層體系結構進行設計可以降低軟件模塊的耦合度,提高軟件的開發效率,降低軟件的維護成本。本文分析了多層體系結構中各層之間的關系,并根據不同的客戶群體提出了不同的解決方案。
多層體系結構;汽車管理信息系統
隨著信息化技術的快速發展,汽車管理信息系統在汽車行業得到了越來越廣泛的應用。在汽車管理信息系統領域,主要包括客戶關系管理系統;汽車4S店的整車銷售管理系統;汽配批發商的配件銷售管理系統;車輛保險行業的保險代理管理系統;等等。另外由于生產各子系統的軟件開發廠商不同,其子系統之間的數據共享困難,子系統與其他管理系統(如財務軟件管理系統)之間的數據共享也比較麻煩。隨著WEB開發技術、移動應用開發技術及兩者結合的開發技術的日益成熟,應用范圍日益廣泛,汽車管理信息系統體系結構也正在發生著一定程度的演變。其演變的主要特點為支持多種開發語言,多種操作數據,多種操作系統,多種體系結構同時存在,并相伴發展。
當前汽車行業管理系統的開發存在的主要問題集中于:小系統很難與大系統配合使用,小系統難以移植,大系統開發成本太高,基于Web的開發發展較慢。在實際開發中,考慮到該行業領域中所使用的功能變化不大,但使用這些功能的方式已悄然改變,從當今應用系統使用方式的改變入手,全面審視數據的存儲及傳遞方式的改變、軟件開發技術的改變、軟件體系結構的改變,形成相對完整的異構的多層分布式應用系統設計概念,在此之上,構建異構的多層分布設計的具體模型。可以根據具體的情況設計多層:表示層、表現邏輯層、應用邏輯層、數據處理層、數據層。
在表示層,HTML5標準規范于2014年10月制定完成;意味著原來很多以插件的形式存在于瀏覽器的表示層技術將內嵌入瀏覽器當中;Web UI技術快速發展使得表現邏輯層的開發更加快捷方便;業務邏輯層(這里面包含元知識庫和應用層[2],本文只討論應用層)開發主要表現在向表示邏輯層提供數據,編寫簡單的業務邏輯;數據邏輯層則只需實現與業務邏輯層相關的對象,并使對象有與數據層形成映射的能力;數據層負責數據的存儲。軟件的復用提高到一個非常重要的地位,為了使軟件構件更好地復用,NATO(北大西洋公約組織)制定了一整套軟件構件復用的指導性標準,以幫助NATO及其參與國和承包商的項目管理部門進行有效的軟件復用[3]。采用分層技術開發可以大大降低軟件開發的難度,使軟件的可維護性、可擴展性得到了增強,對用戶需求變化能快速作出反應。
汽車行業管理系統的使用對象是多元的,不應設計一種體系結構覆蓋所有的客戶群。以下的各種體系結構是汽車行業管理系統中常用的幾種,在分析這些體系結構時還給出了各體系結構之間的演變關系。
2.1 二層結構
二層結構一般情況指的是C/S體系結構。C/S體系結構就是客戶機/服務器體系結構,其中客戶機指的是在客戶端必須有應用程序來訪問服務器端,而服務器一般指的是后臺數據庫。在這種結構中客戶端完成大部分功能,服務器主要功能在于數據的存儲及少量核心業務的邏輯處理。
2.2 三層結構
三層結構包括三層C/S結構和三層B/S結構。三層C/S結構分為表示層、功能層和數據層。表示層用于與用戶進行交互,并通過功能層向數據層獲取及更新數據,數據層完成數據的存儲及核心業務邏輯處理。B/S三層架構是開發Web應用程序時經常使用的一種成熟的軟件架構,它在邏輯上將功能劃分為三層:表示層、業務邏輯層和數據訪問層[6]。第一層為表示層,客戶端表示邏輯的用戶界面完全通過標準的瀏覽器實現,可供用戶錄入數據并顯示執行結果,但不存在任何事務處理程序[7];第二層為Web業務邏輯層,用來處理業務邏輯,并提供對數據庫的訪問。第三層是數據訪問層,完成數據的增、刪、改、查操作。三層結構與我們通常所說MVC設計模式有一定的關系,但也有著相當大的區別。MVC的英文全稱是Model-View-Controller,中文意思是“模型-視圖-控制”。它是一種軟件設計模式。MVC體系結構使用面向對象的設計原理將應用程序模塊化,使其成為數據組件、表現組件和輸入處理組件[8]。在MVC模式的設計思想中,它的結構由模型(Model)、視圖(View)、控制器(Controller)三部分組成:模型(Model)指業務邏輯的處理和數據的存儲,它接收視圖請求的數據,并返回最終的處理結果,可以用Java-Bean實現;視圖(View)主要用來展現用戶所需要的數據,它是用戶和系統進行交互的界面,可以用HTML、JSP實現;控制(Controller)就是一個分發器,它根據用戶實際請求選擇合適的模型、視圖匹配以完成用戶請求,可以用Servlet實現。通過將模型、視圖與控制器分離,使得一個模型可以對應多個視圖,一個視圖也可以對應多個模型。MVC模式使得整個系統責任明確、接口清晰,有利于加快設計開發過程。MVC的提出,正好將軟件界面的構成獨立于它的計算模型[9]。通過以上描述,可以看到三層B/S結構和MVC設計模式均不包括數據層,也就是說沒有討論該層。三層B/S結構中的表示層可以理解與視圖基本相當,而業務邏輯層和數據訪問層應當屬于模型。控制層一般包含在業務邏輯層中。所以三層B/S結構和MVC設計模塊各層之間可能存在相當包含,并不是完全一致。
2.3 多層B/S結構
多層B/S結構源于三層B/S結構。在客戶端,視圖層不但需要體現與客戶的交互界面,還有獨立的與客戶端交互的數據,這些數據是臨時的,放在客戶端的內存中,所以在客戶端就又可分為兩層,表現層及表現邏輯層。客戶端這樣劃分,就將原來三層B/S結構中的業務邏輯層劃分出了一部分,即表現邏輯層,而另一部分放在應用服務器端為應用邏輯層。多層中的數據處理層與三層中的數據訪問層功能相當,在一般情況下,應用邏輯層會調用數據處理層,在一些簡單的Web應用開發中可以將兩層合并為一層,當系統較復雜時建議將兩者分開,例如用戶注冊在應用邏輯層為一個方法,但要調用數據處理層的兩個方法,一個方法為判斷用戶是否存在,另一個方法是將用戶信息存儲到數據庫中。而多層中的數據層在三層中只是沒有討論,當然也是必須使用的一層。在實際的開發過程中服務器端的數據處理層也需要將從客戶端接收的數據,發自數據層的數據,從數據層獲取的數據及發往客戶端的數據進行封裝為實體層。至于MVC架構中的控制器層在多層中也是必須要考慮的,有了控制層,整個系統的業務層更加清晰,系統安全也更加有保證。綜上所述,在多層結構的設計過程中,一般會包括到表現層,表現邏輯層,控制層,實體層,應用邏輯層,數據處理層,數據層。設計人員有時會將以上的多層中某兩層或多層進行合并,從體系結構來講,各層之間的界線應用是很明確的。
汽車行業管理系統的目標客戶可以是汽配店、汽修廠、汽車4S店甚至是原廠。不同客戶使用軟件對于功能和性能的要求是不一樣的。所以多層體系結構的汽車管理信息系統的設計一定根據具體情況具體分析。
汽配店和汽修廠,可能使用單機系統,基于局域網的多機系統或基于互聯網的多店系統。汽配店的每日業務量少則幾十條,多則成百上千條。汽修店的每日業務量是幾條或幾十條,相對較小,但整個流程較復雜。兩者的共同特點是系統的使用者一般為同一單位內部員工,數據與外界交流很少,但可能存在與單位內部的其他管理信息系統之間的數據通訊。這類用戶使用三層C/S體系結構可以保證有高效的響應時間和安全的應用環境。
汽車4S店的主營業務為某品牌的汽車銷售,其他還包括該品牌汽車配件的銷售、汽車維修,汽車保險等業務。同原廠之間可能還存在著訂單之間數據通訊。這樣用戶使用三層的B/S架構基本可以解決數據通訊問題,當然也可考慮使用多層的B/S架構。
汽車原廠的業務最為復雜,其系統可以包含ERP、CRM和OA系統,內部多系統之間存在數據通訊,外部也存在與4S店之間的數據通訊。一般都會使用多層的B/S架構。
體系結構的設計不僅要考慮現在,還要考慮未來;不僅要考慮到系統本身,還要考慮到與其他系統的集成。因此在設計體系結構必須要考慮到系統集成問題。面向Web的數據集成是解決多種異構體系結構的一種良好方案。它是一項復雜的技術,考慮到XML在數據表示和Web service在跨系統跨平臺方面的能力,可以考慮利用Web Service來解決Web上異構數據集成問題[10]。而SOA就是面向服務的體系結構,必須有服務的提供方,而服務的使用方必須按照提供方的規則使用相應的服務。
汽車行業管理信息系統使用多層體系結構進行設計可以降低軟件模塊的耦合度,提高軟件的開發效率,降低軟件的維護成本。由于不同的結構有不同的處理能力及相應的優勢和弱點,一個系統的體系結構應該根據實際需要進行選擇,以解決實際問題。本文分析了多層體系結構中各層之間的關系,并根據不同的客戶群體提出了不同的解決方案。
[1]Brett J.L.Landry.Using the Private-Internet-Enterprise(PIE) Model to Examine IT Risks and Threats Due to Porous Perimeters[J].Information security Journal,2009,4:21-26.
[2]Ahn.JeongYong,Itan.Kngn.Seok.Onthedesi,CRM industrial Management and Data Systems[J].2003,103(5):324-331.
[3]朱治國.基于XML的異構構件庫群協同檢索中間層模型[D].哈爾濱:哈爾濱工業大學,2007.
[4]Nikos Papadakis,Dimitris Plexousakis,Yannis Christodolou.The ramification problem intemporal databases:a solution implemented in SQL[J]. Applied Intelligence,2011,4(30):105-109.
[5]Martin Kalin.Java Web Services:Up and Running,Java Web服務構建與運行[M].盧濤,李穎譯.北京:電子工業出版社,2014.
[6]解紅,劉建,周潔,等.基于三層架構與Web服務的“異構數據同步”研究與實現[J].2010 International Conference on Circuit and Signal Processing,2010,2(33):596-599.
[7]Andreas Pilz,Joachim Swoboda.Network Management Information Models[J].International Journal of Electronics and Communictions,2004.6(58):165-171.
[8]Harvey M.Deitel,Paul J.Deitel,Sean E.Santry,錢方,梅皓,周璐、吳志英等譯.JAVA大學教程[M].北京:電子工業出片社,2004.
[9]王映輝.基于MVC的軟件界面體系結構研究與實現[J].計算機應用研究,2014,3(9):188-193.
[10]巫丹丹,李冠宇,于水明.面向服務的Web異構數據集成體系結構研究[J].計算機與數字工程,2007,35(8):35-38.
Design ofAutomobile Management Information System Based on Multi-layerArchitecture
Chen Hongjun
(Guangzhou Nanyang College,Guangzhou 510925,Guangdong)
The application of multi-layer architecture in the management information system of automobile industry can reduce the coupling degree of software modules,improve the development efficiency and reduce the maintenance cost.This paper analyses the relationship between layers in the multi-layer architecture,and puts forward different solutions according to different customer groups.
multilayer architecture;automobile management information system
TP311
A
1008-6609(2017)07-0056-03
陳洪鈞(1974-),男,湖北隨州人,碩士,軟件設計師,研究方向為Java EE應用開發、Android應用開發。