尚東方 畢金強(qiáng) 辛全波 王瑞璽
【摘要】 通過信息化手段來推動(dòng)港口設(shè)施維護(hù)管理工作科學(xué)、高效的開展有著深刻的重要性,本文通過采用B/S架構(gòu),使用ASP. NET MVC及Entity Framework技術(shù)設(shè)計(jì)實(shí)現(xiàn)了港口設(shè)施維護(hù)管理平臺,探討了系統(tǒng)的架構(gòu)設(shè)計(jì)及AOP技術(shù)在系統(tǒng)中的應(yīng)用。
【關(guān)鍵字】 ASP.NET MVC Entity Framework AOP 港口設(shè)施維護(hù) 信息化
一、引言
近幾十年來,我國港口經(jīng)歷了5次較大的建設(shè)高潮。在這幾次港口建設(shè)高潮中建成的許多港口設(shè)施的使用年限已超過40年,這些碼頭、堆場、倉庫等的技術(shù)狀況不容樂觀,其中很多都是帶病工作。通過信息化手段對港口設(shè)施進(jìn)行高效、精細(xì)、智能化的管理對保障港口安全生產(chǎn)運(yùn)行有重要意義。
本文通過信息化技術(shù)手段,在.NET平臺下設(shè)計(jì)與實(shí)現(xiàn)了港口設(shè)施維護(hù)管理平臺,對港口設(shè)施的技術(shù)臺賬、設(shè)施維護(hù)情況進(jìn)行信息化管理,提高了港口管理部門、港口企業(yè)在港口設(shè)施維護(hù)管理工作中的信息化水平。
二、相關(guān)技術(shù)
2.1 Web開發(fā)架構(gòu)
隨著Web開發(fā)技術(shù)發(fā)展日趨成熟,目前信息管理系統(tǒng)的開發(fā)越來越多地從單機(jī)模式、客戶機(jī)/服務(wù)器模式發(fā)展到采用基于瀏覽器的 B/S架構(gòu)模式。而B/S架構(gòu)的應(yīng)用系統(tǒng)也不斷發(fā)展并細(xì)分,以表示層(UI)、業(yè)務(wù)邏輯層(BLL)、數(shù)據(jù)訪問層(DAL)組成的三層Web架構(gòu)被廣泛應(yīng)用。其中UI層負(fù)責(zé)用戶操作界面的顯示,與用戶交互;BLL層是應(yīng)用系統(tǒng)的關(guān)鍵,它負(fù)責(zé)接收用戶發(fā)出的請求,并進(jìn)行處理,并把處理結(jié)果返回給UI層,在處理業(yè)務(wù)邏輯的過程中將要持久化的信息通過DAL層對數(shù)據(jù)庫進(jìn)行操作,將數(shù)據(jù)保存至數(shù)據(jù)庫。三層架構(gòu)使得系統(tǒng)層次劃分更加清晰,也使得各層之間的耦合度降低,利于系統(tǒng)的組件的重用與功能的擴(kuò)展、維護(hù)。
2.2 MVC
MVC是二十世紀(jì)八十年代為Smalltalk-80發(fā)明的一種軟件設(shè)計(jì)模式,最早應(yīng)用于桌面應(yīng)用中。MVC中的三個(gè)重要組成部分分別是模型(Model)、視圖(View)、控制器(Controller)。其中View層負(fù)責(zé)界面顯示,其顯示的內(nèi)容是由Controller控制的,Controller做為整個(gè)架構(gòu)中的樞紐部分,一方面負(fù)責(zé)接收用戶的輸入,根據(jù)用戶請求控制輸出,另一方面負(fù)責(zé)與后臺Model進(jìn)行交互,Model是負(fù)責(zé)系統(tǒng)業(yè)務(wù)邏輯操作的核心組件,當(dāng)接收到Controller的命令后,執(zhí)行相關(guān)的業(yè)務(wù)邏輯操作。MVC在傳統(tǒng)Web架構(gòu)之上更加清晰的劃分出了各組件的功能職責(zé),加大了代碼的重用性與適用性,而且更好的解決了Web應(yīng)用程序難以進(jìn)行單元測試的問題。
ASP.NET MVC中MVC模式在.NET平臺下的具體實(shí)現(xiàn),它是由Microsoft推出的可重用功能組件,目前最高版本為5.0,其在功能、性能、安全性上有了較大保障。
2.3 Entity Framework
Enity Framework(簡稱EF)是由Microsoft開發(fā)的,目前已托管到開源社區(qū)的.NET ORM(Object Relational Mapping)中間件框架。ORM將業(yè)務(wù)對象與數(shù)據(jù)庫中數(shù)據(jù)進(jìn)行映射,實(shí)現(xiàn)數(shù)據(jù)庫物理層次之上的抽象的同時(shí),還提供的相應(yīng)的API,使用戶不用關(guān)于如何操作數(shù)據(jù)庫,操作什么類型的數(shù)據(jù)庫,通過EF,無需創(chuàng)造大的數(shù)據(jù)訪問層,減少代碼量,提高開發(fā)效率; EF中分為三個(gè)層級:概念模型層(Conceptual Models)、存儲模型層(Storage Models)、映射層(Mappings),概念層對應(yīng)系統(tǒng)中的業(yè)務(wù)模型,存儲模型層對應(yīng)數(shù)據(jù)庫的具體表、視圖、存儲過程,映射層負(fù)責(zé)概念層與存儲層的關(guān)系映射,清晰的層次劃分與映射標(biāo)準(zhǔn)保證了EF對異構(gòu)數(shù)據(jù)庫的支持能力,目前EF原生集成對Ms SQL Server的支持,Oracle官網(wǎng)也提供ODT工具來實(shí)現(xiàn)EF對Oracle數(shù)據(jù)庫的支持,另開源數(shù)據(jù)庫MySql,文件型數(shù)據(jù)Sqlite等也都能與EF無縫集成,只需使用不同的組件來搭建相應(yīng)的存儲模型層與映射層,便能使EF支持不同的數(shù)據(jù)庫,而無需更改業(yè)務(wù)邏輯代碼,從而降低應(yīng)用系統(tǒng)與數(shù)據(jù)庫系統(tǒng)的耦合。
2.4 AOP
AOP(Aspect Oriented-Programming),指面向切面的編程。其主要思想是將業(yè)務(wù)邏輯中的通用功能部分從整個(gè)系統(tǒng)中剝離出來,形成單獨(dú)的功能組件,并通過相應(yīng)的切入點(diǎn)與系統(tǒng)中的領(lǐng)域業(yè)務(wù)邏輯進(jìn)行關(guān)聯(lián),從而實(shí)現(xiàn)通用功能組件的重用。在現(xiàn)有的絕大多數(shù)應(yīng)用系統(tǒng)中,一些功能是通用且本質(zhì)上是相同的,如日志記錄、用戶認(rèn)證、用戶授權(quán)、異常處理、性能監(jiān)視與優(yōu)化等。這些功能被使用的方式是相同的,且與領(lǐng)域業(yè)務(wù)邏輯無關(guān)。通過AOP能很好的將這些通用功能與領(lǐng)域業(yè)務(wù)邏輯很好的解耦,而且能通過配置的方式動(dòng)態(tài)給應(yīng)用系統(tǒng)添加或改變特定功能。
ASP.NET MVC中有相應(yīng)的技術(shù)接口來支持AOP,因此在本文中的港口設(shè)施維護(hù)管理平臺便采用了AOP技術(shù)來對應(yīng)用系統(tǒng)中通用功能進(jìn)行了切片處理,從而達(dá)到了通用功能的重用,使用開發(fā)人員更加關(guān)注領(lǐng)域業(yè)務(wù)邏輯,從而進(jìn)一步提高開發(fā)效率。
三、系統(tǒng)功能設(shè)計(jì)與實(shí)現(xiàn)
系統(tǒng)的整個(gè)架構(gòu)圖如圖所示。架構(gòu)從下到上分別分為數(shù)據(jù)庫、Web運(yùn)行時(shí),MVC運(yùn)行庫。其中數(shù)據(jù)庫采用Ms SQL Server 2008,將數(shù)據(jù)庫表分為臺賬數(shù)據(jù)庫、維護(hù)數(shù)據(jù)庫、系統(tǒng)數(shù)據(jù)庫等幾個(gè)邏輯庫。整個(gè)Web系統(tǒng)運(yùn)行在.NET Framework 4.5運(yùn)行時(shí)之上,通過將ADO.NET與Entity Framework相結(jié)合來實(shí)現(xiàn)數(shù)據(jù)庫的增刪改查,通過對ASP. NET MVC的IFilter接口進(jìn)行擴(kuò)展來將AOP技術(shù)進(jìn)行有效融合,來實(shí)現(xiàn)系統(tǒng)的認(rèn)證、授權(quán)、日志記錄、異常處理等的功能,
四、結(jié)語
本文從港口設(shè)施維護(hù)管理信息化的需求出發(fā),通過.NET平臺的MVC技術(shù)實(shí)現(xiàn)了B/S架構(gòu)的港口設(shè)施維護(hù)管理平臺的設(shè)計(jì)與實(shí)現(xiàn),實(shí)踐證明,通過ASP.NET MVC + Entity Framework技術(shù)相結(jié)合,能很好的滿足港口設(shè)施維護(hù)管理平臺的技術(shù)架構(gòu)需求,MVC架構(gòu)的應(yīng)用能很好的保證系統(tǒng)的可擴(kuò)展性與可測試性,通過Entity Framework來實(shí)現(xiàn)數(shù)據(jù)操作層的開發(fā),能有較好的開發(fā)效率。目前該平臺已上線運(yùn)行,且運(yùn)行狀態(tài)良好。
參 考 文 獻(xiàn)
[1] 趙立鵬,張建國等. 對港口設(shè)施維護(hù)與管理對策的思考[J]. 港工技術(shù). 2014(2).
[2] 馬鵬烜. 基于Entity Framework數(shù)據(jù)持久化技術(shù)淺析. 電腦與信息技術(shù)[J]. 2011(8).
[3] 徐朝輝,樊銀亭. MVC設(shè)計(jì)模式在.NET三層結(jié)構(gòu)開發(fā)中的研究和實(shí)現(xiàn)[J]. 北京電子科技學(xué)院學(xué)報(bào). 2007(6).
[4] 董源,李培軍,許舒人. 基于AOP的數(shù)據(jù)庫應(yīng)用安全控制的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用. 2015(12).