尚東方 畢金強(qiáng) 辛全波 王瑞璽
【摘要】 通過信息化手段來(lái)推動(dòng)港口設(shè)施維護(hù)管理工作科學(xué)、高效的開展有著深刻的重要性,本文通過采用B/S架構(gòu),使用ASP. NET MVC及Entity Framework技術(shù)設(shè)計(jì)實(shí)現(xiàn)了港口設(shè)施維護(hù)管理平臺(tái),探討了系統(tǒng)的架構(gòu)設(shè)計(jì)及AOP技術(shù)在系統(tǒng)中的應(yīng)用。
【關(guān)鍵字】 ASP.NET MVC Entity Framework AOP 港口設(shè)施維護(hù) 信息化
一、引言
近幾十年來(lái),我國(guó)港口經(jīng)歷了5次較大的建設(shè)高潮。在這幾次港口建設(shè)高潮中建成的許多港口設(shè)施的使用年限已超過40年,這些碼頭、堆場(chǎng)、倉(cāng)庫(kù)等的技術(shù)狀況不容樂觀,其中很多都是帶病工作。通過信息化手段對(duì)港口設(shè)施進(jìn)行高效、精細(xì)、智能化的管理對(duì)保障港口安全生產(chǎn)運(yùn)行有重要意義。
本文通過信息化技術(shù)手段,在.NET平臺(tái)下設(shè)計(jì)與實(shí)現(xiàn)了港口設(shè)施維護(hù)管理平臺(tái),對(duì)港口設(shè)施的技術(shù)臺(tái)賬、設(shè)施維護(hù)情況進(jìn)行信息化管理,提高了港口管理部門、港口企業(yè)在港口設(shè)施維護(hù)管理工作中的信息化水平。
二、相關(guān)技術(shù)
2.1 Web開發(fā)架構(gòu)
隨著Web開發(fā)技術(shù)發(fā)展日趨成熟,目前信息管理系統(tǒng)的開發(fā)越來(lái)越多地從單機(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ā)出的請(qǐng)求,并進(jìn)行處理,并把處理結(jié)果返回給UI層,在處理業(yè)務(wù)邏輯的過程中將要持久化的信息通過DAL層對(duì)數(shù)據(jù)庫(kù)進(jìn)行操作,將數(shù)據(jù)保存至數(shù)據(jù)庫(kù)。三層架構(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ù)用戶請(qǐng)求控制輸出,另一方面負(fù)責(zé)與后臺(tái)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)行單元測(cè)試的問題。
ASP.NET MVC中MVC模式在.NET平臺(tái)下的具體實(shí)現(xiàn),它是由Microsoft推出的可重用功能組件,目前最高版本為5.0,其在功能、性能、安全性上有了較大保障。
2.3 Entity Framework
Enity Framework(簡(jiǎn)稱EF)是由Microsoft開發(fā)的,目前已托管到開源社區(qū)的.NET ORM(Object Relational Mapping)中間件框架。ORM將業(yè)務(wù)對(duì)象與數(shù)據(jù)庫(kù)中數(shù)據(jù)進(jìn)行映射,實(shí)現(xiàn)數(shù)據(jù)庫(kù)物理層次之上的抽象的同時(shí),還提供的相應(yīng)的API,使用戶不用關(guān)于如何操作數(shù)據(jù)庫(kù),操作什么類型的數(shù)據(jù)庫(kù),通過EF,無(wú)需創(chuàng)造大的數(shù)據(jù)訪問層,減少代碼量,提高開發(fā)效率; EF中分為三個(gè)層級(jí):概念模型層(Conceptual Models)、存儲(chǔ)模型層(Storage Models)、映射層(Mappings),概念層對(duì)應(yīng)系統(tǒng)中的業(yè)務(wù)模型,存儲(chǔ)模型層對(duì)應(yīng)數(shù)據(jù)庫(kù)的具體表、視圖、存儲(chǔ)過程,映射層負(fù)責(zé)概念層與存儲(chǔ)層的關(guān)系映射,清晰的層次劃分與映射標(biāo)準(zhǔn)保證了EF對(duì)異構(gòu)數(shù)據(jù)庫(kù)的支持能力,目前EF原生集成對(duì)Ms SQL Server的支持,Oracle官網(wǎng)也提供ODT工具來(lái)實(shí)現(xiàn)EF對(duì)Oracle數(shù)據(jù)庫(kù)的支持,另開源數(shù)據(jù)庫(kù)MySql,文件型數(shù)據(jù)Sqlite等也都能與EF無(wú)縫集成,只需使用不同的組件來(lái)搭建相應(yīng)的存儲(chǔ)模型層與映射層,便能使EF支持不同的數(shù)據(jù)庫(kù),而無(wú)需更改業(yè)務(wù)邏輯代碼,從而降低應(yīng)用系統(tǒng)與數(shù)據(jù)庫(kù)系統(tǒng)的耦合。
2.4 AOP
AOP(Aspect Oriented-Programming),指面向切面的編程。其主要思想是將業(yè)務(wù)邏輯中的通用功能部分從整個(gè)系統(tǒng)中剝離出來(lái),形成單獨(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ù)邏輯無(wú)關(guān)。通過AOP能很好的將這些通用功能與領(lǐng)域業(yè)務(wù)邏輯很好的解耦,而且能通過配置的方式動(dòng)態(tài)給應(yīng)用系統(tǒng)添加或改變特定功能。
ASP.NET MVC中有相應(yīng)的技術(shù)接口來(lái)支持AOP,因此在本文中的港口設(shè)施維護(hù)管理平臺(tái)便采用了AOP技術(shù)來(lái)對(duì)應(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ù)庫(kù)、Web運(yùn)行時(shí),MVC運(yùn)行庫(kù)。其中數(shù)據(jù)庫(kù)采用Ms SQL Server 2008,將數(shù)據(jù)庫(kù)表分為臺(tái)賬數(shù)據(jù)庫(kù)、維護(hù)數(shù)據(jù)庫(kù)、系統(tǒng)數(shù)據(jù)庫(kù)等幾個(gè)邏輯庫(kù)。整個(gè)Web系統(tǒng)運(yùn)行在.NET Framework 4.5運(yùn)行時(shí)之上,通過將ADO.NET與Entity Framework相結(jié)合來(lái)實(shí)現(xiàn)數(shù)據(jù)庫(kù)的增刪改查,通過對(duì)ASP. NET MVC的IFilter接口進(jìn)行擴(kuò)展來(lái)將AOP技術(shù)進(jìn)行有效融合,來(lái)實(shí)現(xiàn)系統(tǒng)的認(rèn)證、授權(quán)、日志記錄、異常處理等的功能,
四、結(jié)語(yǔ)
本文從港口設(shè)施維護(hù)管理信息化的需求出發(fā),通過.NET平臺(tái)的MVC技術(shù)實(shí)現(xiàn)了B/S架構(gòu)的港口設(shè)施維護(hù)管理平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn),實(shí)踐證明,通過ASP.NET MVC + Entity Framework技術(shù)相結(jié)合,能很好的滿足港口設(shè)施維護(hù)管理平臺(tái)的技術(shù)架構(gòu)需求,MVC架構(gòu)的應(yīng)用能很好的保證系統(tǒng)的可擴(kuò)展性與可測(cè)試性,通過Entity Framework來(lái)實(shí)現(xiàn)數(shù)據(jù)操作層的開發(fā),能有較好的開發(fā)效率。目前該平臺(tái)已上線運(yùn)行,且運(yùn)行狀態(tài)良好。
參 考 文 獻(xiàn)
[1] 趙立鵬,張建國(guó)等. 對(duì)港口設(shè)施維護(hù)與管理對(duì)策的思考[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ù)庫(kù)應(yīng)用安全控制的設(shè)計(jì)與實(shí)現(xiàn)[J]. 計(jì)算機(jī)系統(tǒng)應(yīng)用. 2015(12).