◆高立兵
(甘肅有色冶金職業(yè)技術(shù)學(xué)院 甘肅 737100)
基于.Net的機(jī)務(wù)管理信息系統(tǒng)框架的研究
◆高立兵
(甘肅有色冶金職業(yè)技術(shù)學(xué)院 甘肅 737100)
本文討論了現(xiàn)有鐵路機(jī)務(wù)行業(yè)信息系統(tǒng)的不足并指出了建立機(jī)務(wù)管理信息系統(tǒng)框架的必要性,進(jìn)而闡述了框架的概念,明確了研究框架所屬的框架類型。通過這些實際需要完成的任務(wù),對鐵路機(jī)務(wù)管理系統(tǒng)進(jìn)行了較高層次上的模型提取。通過AOP技術(shù),解決了在各個子系統(tǒng)中共同存在問題,減少了系統(tǒng)中代碼的數(shù)量。同時,用同一段代碼處理不同子系統(tǒng)中的相同問題(即橫切點),有利于提高系統(tǒng)的安全性和穩(wěn)定性。
鐵路機(jī)務(wù)管理;框架;設(shè)計模式;MVC;O/R Mapping;AOP
近年來,我國在鐵路管理維護(hù)上投入了大量的經(jīng)費,尤其是在機(jī)務(wù)段、車輛段等大修工廠投入尤為突出。為此,對目前的維修進(jìn)行科學(xué)規(guī)劃,科學(xué)管理就顯得尤為重要。其一,列車的安全運行離不開科學(xué)的管理與監(jiān)督,其二,科學(xué)的管理也可以減少投入,節(jié)省人力物力,甚至可減輕環(huán)境負(fù)擔(dān)。鑒于此,對鐵路原有管理信息系統(tǒng)開發(fā)是目前亟需解決的問題。
作為行業(yè)應(yīng)用框架,需要架構(gòu)在一定的基礎(chǔ)結(jié)構(gòu)之上,在本文的框架中,我們采用微軟的.Net作為基礎(chǔ)結(jié)構(gòu)。
1.1 什么是.Net框架
Microsoft.Net框架是基于標(biāo)準(zhǔn)協(xié)議的應(yīng)用程序平臺,它具有部署應(yīng)用程序和操作靈活的特點,在現(xiàn)有投資和應(yīng)用程序上得到了廣泛的應(yīng)用[3]。它是一種簡化了的,新的計算機(jī)平臺,尤其使開發(fā)變得更為容易。
1.2 Net框架用到的幾種重要技術(shù)
(1)用戶界面層實現(xiàn)技術(shù)
.NET Framework有兩種編程的模式供用戶使用,分別是Web Forms和Windows Forms。
(2)分布式處理技術(shù)
DCOM是在COM的基礎(chǔ)之上,以不可見的方式對其進(jìn)行了構(gòu)架的組建,其可實現(xiàn)完整的功能,可以不同計算機(jī)之間進(jìn)行通訊,包括局域網(wǎng),廣域網(wǎng)及Internet。近年來,隨著.NET框架的廣泛應(yīng)用,目前出現(xiàn)了不同的應(yīng)用方案,其中最為典型的兩種分別是XML Web Service和.NET Remoting。Web Service是目前較為理想的一種方案,其構(gòu)建包括了跨越語言,平臺及系統(tǒng)。.NET Remoting是基于DCOM建立起的一種新的平臺,其實質(zhì)是在CLR上進(jìn)行通信,具有容易實現(xiàn),容易配置,更安全,更可靠的優(yōu)點。
(3)數(shù)據(jù)訪問技術(shù)
.NET 數(shù)據(jù)提供對象種類較多,也是訪問數(shù)據(jù)庫的前提。從目前來看,Connection對象應(yīng)用較為廣泛,其數(shù)據(jù)實現(xiàn)由Connection執(zhí)行。DataSet對象作為另外一種類型,在現(xiàn)實中應(yīng)用也得到了廣泛的發(fā)展,其數(shù)據(jù)的實現(xiàn)由DataAdapter來完成。
2.1 機(jī)務(wù)管理信息系統(tǒng)
本文通過構(gòu)建多層分布的構(gòu)建,組建了一個具有很多優(yōu)點的多層分布式構(gòu)架,其具備效率高,可靠性高的特點,被廣泛應(yīng)用于綜合辦公系統(tǒng)、機(jī)車檢修計劃生成系統(tǒng)、小輔修檢修質(zhì)量管理系統(tǒng)、動檢中心網(wǎng)上提票系統(tǒng)為重點,綜合考慮到機(jī)車統(tǒng)計信息、燃油信息管理系統(tǒng)、乘務(wù)捆綁計件管理系統(tǒng)等環(huán)節(jié),充分體現(xiàn)了系統(tǒng)間相互配合,重點突出,有機(jī)聯(lián)系的特點。系統(tǒng)包括綜合辦公系統(tǒng)、小輔修檢修質(zhì)量管理系統(tǒng)、動檢中心網(wǎng)上提票系統(tǒng)、燃油信息管理系統(tǒng)、乘務(wù)捆綁計件管理系統(tǒng)。
2.2 模型的建立
機(jī)務(wù)信息管理系統(tǒng)是一個應(yīng)用系統(tǒng)龐大而復(fù)雜的系統(tǒng),主要特點是信息量大、種類繁多,信息來源渠道廣泛,遍及各工廠、各段級單位。信息收集、加工和處理的工作量十分繁重,為實現(xiàn)信息系統(tǒng)網(wǎng)絡(luò)信息交換和數(shù)據(jù)共享,提高信息傳遞的正確性、信息處理速度和網(wǎng)絡(luò)系統(tǒng)的使用效率,提高經(jīng)濟(jì)效益有著重要的意義。同時,機(jī)務(wù)信息管理系統(tǒng)又是一個相對典型的管理信息系統(tǒng),在開發(fā)中采用了典型的層模式,其中包括了用戶前端,中間層業(yè)務(wù)服務(wù)器以及數(shù)據(jù)庫等。
B/S體系結(jié)構(gòu)一般分為三層,即:數(shù)據(jù)層、邏輯層,表現(xiàn)層[7]。三層技術(shù)在實現(xiàn)數(shù)據(jù)層方面的技術(shù)己經(jīng)很成熟,如各種編程平臺上的數(shù)據(jù)訪問組件,java的JDO,.NET上的ADO.NET等,甚至不少的O/R-Mapping開源軟件使得構(gòu)架數(shù)據(jù)訪問層前所未有的簡單和高效[7]。正是由于B/S體系中零部署的這一優(yōu)點導(dǎo)致了其表現(xiàn)層的設(shè)計復(fù)雜性。客戶體驗遠(yuǎn)不如采用傳統(tǒng)的C/S設(shè)計的用戶界面的效果,對于表現(xiàn)層的編程人員來說,表現(xiàn)層的設(shè)計繁瑣不說,表示界面的需求變化比起業(yè)務(wù)邏輯,它是經(jīng)常變動,MVC(Model-View-Controller)模式為解決表現(xiàn)層與邏輯層的解耦問題給出了很好解決方案。
4.1 AOP概念的引入
AOP是Aspect Oriented Programming地簡寫,中文通常譯作面向方面編程,其核心內(nèi)容就是所謂的“橫切關(guān)注點”AOP為開發(fā)者提供了一種描述橫切關(guān)注點的機(jī)制,并能夠自動將橫切關(guān)注點植入到面向?qū)ο蟮能浖到y(tǒng)中,從而使橫切關(guān)注點得以實現(xiàn)。Aspect的劃分,使得橫切關(guān)注點變得容易實現(xiàn),尤其是開發(fā)者可以在任意時刻進(jìn)行編譯。更重要的是,AOP 可能對軟件開發(fā)的過程造成根本性的影響。
4.2 AOP實現(xiàn)的方法
實現(xiàn)AOP的關(guān)鍵,是攔截正常的方法調(diào)用,將需要額外附加的功能透明的織入這些方法中,以完成一些額外的要求。我們在框架中探討使用裝飾者模式和代理模式來實現(xiàn)方法的攔截。
(1)使用裝飾模式
所謂裝飾(Decorator)模式,是指在不改變對象的前提下,動態(tài)增加其功能,即不希望改變原有的類,或采用創(chuàng)建子類的方法增加功能。
(2)使用代理模式
在軟件系統(tǒng)中,由于存在跨網(wǎng)絡(luò)等障礙,使得某些對象不能夠直接被訪問,給程序帶來了一定的麻煩。為了克服這一困難,可以在客戶程序與目標(biāo)程度之間加一個中間層,其可實現(xiàn)某些對象的直接訪問。.Net中的RealProxy類是代理必須繼承的 abstract基類。
客戶端在跨任何類型的遠(yuǎn)程處理邊界使用對象時,對對象使用的實際上是透明代理。透明代理使人以為實際對象駐留在客戶端空間中。它實現(xiàn)這一點的方法是:使用遠(yuǎn)程處理基礎(chǔ)結(jié)構(gòu)將對其進(jìn)行的調(diào)用轉(zhuǎn)發(fā)給真實對象。
透明代理本身由RealProxy類型的托管運行時類的實例收容。RealProxy實現(xiàn)從透明代理轉(zhuǎn)發(fā)操作所需的部分功能。請注意,代理對象繼承與托管對象(如垃圾回收、字段和方法支持)關(guān)聯(lián)的語義,并且可以擴(kuò)展以形成新類。該代理具有雙重特性:它作為與遠(yuǎn)程對象(透明代理)相同的類的對象,同時其本身是托管對象。
當(dāng)前,我國在鐵路維護(hù)管理中投入了大量的資金,且其效率較低,管理效果不夠明顯。鑒于此,對原有鐵路構(gòu)建的開發(fā)是十分必要的。本文首先描述了相關(guān)的概念,如軟件復(fù)用,框架,模式等等,然后對現(xiàn)有的機(jī)務(wù)檢修管理信息系統(tǒng)進(jìn)行了模型建立,對其中需要解決的幾個高層的重要問題予以了分別的闡述和試著給出解決方案。
[1]Wolfgang Schult,Andreas Polze,Speed vs.Memory Usage - An Approach to Deal withContrary Aspects.The Second AOS D Workshop on Aspects,Components,a-nd Patternsfor Infrastructu re Software.International Conference onAspect-Oriented Software Development,Boston,Massachusetts,March 17 - 21,2005.
[2]邵維忠,楊芙清.面向?qū)ο蟮南到y(tǒng)分析[M].北京:清華大學(xué)出版社,1999.
[3]Michael Cherry.NET開發(fā)平臺研究[Z].微軟公司技術(shù)白皮書.
[4]艾迪明.NET框架體系結(jié)構(gòu)[J].計算機(jī)工程與應(yīng)用,2005.
甘肅省科技計劃資助(1304GKCC044);甘肅省高等學(xué)??蒲许椖浚?015B—198)。