張勇
(黃岡職業(yè)技術(shù)學(xué)院,湖北黃岡,438002)
NET是RAD開(kāi)發(fā)工具中的一個(gè)重要的產(chǎn)品,采用.NET框架開(kāi)發(fā)應(yīng)用程序能夠輕松的創(chuàng)建XML web Service以及應(yīng)用程序,并且能夠輕易的進(jìn)行集成,使用.NET框架應(yīng)用程序執(zhí)行環(huán)境能夠提高應(yīng)用程序的可開(kāi)性與安全性,對(duì)大多數(shù)現(xiàn)代化編程語(yǔ)言都能夠支持。能夠提供廣泛的WEB服務(wù)器,搭建.NET平臺(tái)。結(jié)構(gòu)如圖1所示。.NET Framework和公共語(yǔ)言是.NET框架中的兩個(gè)核心,.NET Framework是一種面向?qū)ο蟮念愋?,主要的功能是生成?NET環(huán)境下的應(yīng)用程序控制,用戶根據(jù)自己的習(xí)慣進(jìn)行自定義,能夠有效的提高工作的效率。而公共語(yǔ)言是一個(gè)搜索類的項(xiàng)目,主要的方式就是完成內(nèi)存的管理功能,減少代碼數(shù)量,提高系統(tǒng)的穩(wěn)定性。兩者擁有不同的特點(diǎn),支持多種軟件編程語(yǔ)言設(shè)計(jì)。
圖1 .NET結(jié)構(gòu)體系組成
(1)WebForm
.NET中的B/S在軟件開(kāi)發(fā)中經(jīng)常被使用,因?yàn)樵摷夹g(shù)能夠跨越系統(tǒng)之間的操作,進(jìn)行數(shù)據(jù)的捕捉,效率高,并且簡(jiǎn)單易操作,在B/S技術(shù)中的WebForm技術(shù),擁有完整的開(kāi)發(fā)技術(shù),結(jié)合用戶所需要的URL,找到與該技術(shù)匹配的aspx,將html標(biāo)簽放入控件中,讓服務(wù)器對(duì)其進(jìn)行全方位的檢測(cè),生成html進(jìn)行客戶端的緩存,生成內(nèi)容后回到客戶端。通過(guò)這樣的方式能夠讓開(kāi)發(fā)者進(jìn)行快速的頁(yè)面制作,并及時(shí)的與客戶進(jìn)行溝通,效率高,容易上手。
(2)MVC
MVC技術(shù)是微軟提供的一種開(kāi)發(fā)程序,在進(jìn)行軟件開(kāi)發(fā)時(shí)需要將Web程序劃分等級(jí),使項(xiàng)目容易維護(hù),減少耦合情況的發(fā)生,將html發(fā)送到服務(wù)端后,調(diào)用.NET中的路由,進(jìn)行數(shù)據(jù)的輸入與運(yùn)算功能,然后組成view發(fā)送到客戶端,MVC技術(shù)封層明確,有利于開(kāi)發(fā)者的維護(hù)與代碼的升級(jí)。
(3)Ajax
如圖2所示,將Web應(yīng)用在傳統(tǒng)模式下的流程中,用戶通過(guò)這種模式進(jìn)行頁(yè)面的訪問(wèn),并進(jìn)行數(shù)據(jù)的親情,請(qǐng)求的數(shù)據(jù)服務(wù)器都會(huì)進(jìn)行處理,從提交到結(jié)構(gòu)返回階段,用戶看到的瀏覽器是一種停工的狀態(tài),當(dāng)服務(wù)器端接收到請(qǐng)求的數(shù)據(jù)后,需要對(duì)數(shù)據(jù)進(jìn)行處理,處理完成后將結(jié)果返回,當(dāng)瀏覽器接收到信息后再將結(jié)果呈現(xiàn)給用戶。在Ajax模型下,瀏覽器不會(huì)直接發(fā)送數(shù)據(jù)請(qǐng)求,需要由XMLHpptRequest對(duì)象發(fā)送請(qǐng)求,雖然有發(fā)送數(shù)據(jù)請(qǐng)求,但是瀏覽器依然可以進(jìn)行工作,接收到客戶端的請(qǐng)求后才開(kāi)始對(duì)數(shù)據(jù)進(jìn)行處理。通過(guò)這樣的方式不會(huì)對(duì)整個(gè)頁(yè)面造成影響,只是讓局部的信息得到了更新。
圖2 傳統(tǒng)同步模型以及Ajax異步模型示意圖
MDA模型驅(qū)動(dòng)體系架構(gòu)是由OMG驅(qū)動(dòng),是一種模型驅(qū)動(dòng)開(kāi)發(fā)框架,雖然MDA完整的體系還沒(méi)有完善,但是模型驅(qū)動(dòng)的開(kāi)發(fā)已經(jīng)成為了現(xiàn)在的流行趨勢(shì),MDA作為OMG的一個(gè)分支,代表了該組織內(nèi)定義的互操作性規(guī)范的進(jìn)程,在MDA中,能夠解決互操作性的核心問(wèn)題,最重要的就是系統(tǒng)能夠使用與平臺(tái)不相關(guān)的語(yǔ)言進(jìn)行描述,將它與平臺(tái)相互分離,根據(jù)平臺(tái)的映射生成模型,比如Java、SOAP等。模型驅(qū)動(dòng)開(kāi)發(fā)是這個(gè)行業(yè)中的新的變化,逐步應(yīng)用在軟件開(kāi)發(fā)系統(tǒng)中,降低代碼的重要性,專注開(kāi)發(fā),根據(jù)用戶的需求進(jìn)行創(chuàng)建。MDA模型轉(zhuǎn)換貫穿在了程序開(kāi)發(fā)的整個(gè)過(guò)程中,在系統(tǒng)開(kāi)發(fā)的最初階段,為了保證系統(tǒng)的特征,會(huì)先創(chuàng)建一個(gè)系統(tǒng)的模型,最初的原型會(huì)比較粗糙,起到一個(gè)輔助的作用,但是隨著系統(tǒng)的特征系統(tǒng)的模型也會(huì)逐漸完善。設(shè)計(jì)模型的目的就是為了準(zhǔn)確的描述系統(tǒng),是實(shí)現(xiàn)系統(tǒng)運(yùn)行的基礎(chǔ),從設(shè)計(jì)的模型上進(jìn)行分析能夠很輕易的導(dǎo)出系統(tǒng)的模型,對(duì)代碼以及腳本進(jìn)行實(shí)現(xiàn),這是一個(gè)逐漸細(xì)化的過(guò)程,從最高層的抽象模型到轉(zhuǎn)換模型,完成系統(tǒng)的實(shí)現(xiàn)。
模型轉(zhuǎn)換為代碼:從觀察者的角度進(jìn)行分析是一個(gè)很普遍的方法,主要提供了觀察者的記者到模型的內(nèi)在聯(lián)系,并將代碼寫(xiě)成文本。模板中包含了源代碼從得到信息后組合的目標(biāo)文本,并且在執(zhí)行源代碼的過(guò)程中產(chǎn)生迭代,這種轉(zhuǎn)換方法模板結(jié)構(gòu)更接近與代碼的產(chǎn)生。
源模型轉(zhuǎn)換為目標(biāo)模型:模型到模型高的轉(zhuǎn)換和原模型相同,很多現(xiàn)有的MDA工具只提供了模型到代碼的轉(zhuǎn)換,僅僅是實(shí)現(xiàn)代碼之間的轉(zhuǎn)換,將PIM轉(zhuǎn)換成PSM,彌補(bǔ)兩者之間的差距,產(chǎn)生的模型比生成目標(biāo)PSM 更加的方便,因此這種方法是很有必要的。
(1)元模型轉(zhuǎn)換
手動(dòng)轉(zhuǎn)換就是開(kāi)發(fā)者使用能夠訪問(wèn)和操作的API對(duì)源模型進(jìn)行轉(zhuǎn)換,可以使用XML對(duì)元數(shù)據(jù)進(jìn)行建模和存儲(chǔ)。PIM模型使用與平臺(tái)無(wú)關(guān)的語(yǔ)言實(shí)際上就是使用MOF進(jìn)行描述,PSM模型使用的是與平臺(tái)相關(guān)的語(yǔ)言進(jìn)行說(shuō)明,這種使用平臺(tái)相關(guān)的元模型進(jìn)行描述時(shí)有一個(gè)變換的規(guī)則,需要將與平臺(tái)無(wú)關(guān)的元模型轉(zhuǎn)換為與平臺(tái)相關(guān)的元模型,實(shí)現(xiàn)PIM到PSM的轉(zhuǎn)換,如圖3所示,與平臺(tái)相關(guān)的原模型就是一個(gè)MOF模型,轉(zhuǎn)換的過(guò)程中需要用一個(gè)工具作為牽引完成,需要?jiǎng)?chuàng)建一個(gè)特定工具實(shí)現(xiàn)這種功能。
圖3 基于元模型的轉(zhuǎn)換
(2)結(jié)構(gòu)模型轉(zhuǎn)換
以結(jié)構(gòu)為驅(qū)動(dòng)的模型轉(zhuǎn)換主要是以目標(biāo)模型創(chuàng)建的多層體系結(jié)構(gòu),在目標(biāo)模型中設(shè)置相應(yīng)的屬性,在整個(gè)框架中確定需要應(yīng)用的方法,用戶只需要關(guān)注轉(zhuǎn)換的規(guī)則即可。OptimaIJ中的模型轉(zhuǎn)換框架是通過(guò)Java實(shí)現(xiàn)的,主要提供了一個(gè)增量復(fù)制器定義自己的轉(zhuǎn)換規(guī)則,這個(gè)復(fù)制器是從原模型中的復(fù)制模型到目標(biāo)模型的轉(zhuǎn)換,以達(dá)到理想的轉(zhuǎn)換效果。這個(gè)規(guī)則不允許有其他方面的用途,只能由框架進(jìn)行決定。
基于快速開(kāi)發(fā)平臺(tái)的,NET體系結(jié)構(gòu)作為本次研究的框架平臺(tái),采用MDA軟件開(kāi)發(fā)技術(shù),設(shè)計(jì)出一種能夠?qū)崿F(xiàn)關(guān)系型數(shù)據(jù)庫(kù)的快速開(kāi)發(fā)平臺(tái),使設(shè)計(jì)的平臺(tái)能夠滿足各大企業(yè)的需求。在快速開(kāi)發(fā)平臺(tái)的代碼自動(dòng)生成技術(shù)主要應(yīng)用在信息管理系統(tǒng)中,由信息來(lái)源、信息處理、用戶以及管理者組成,信息管理系統(tǒng)的核心就是信息,當(dāng)信息管理系統(tǒng)的需求軟換成軟件開(kāi)發(fā)設(shè)計(jì)時(shí),需要對(duì)數(shù)據(jù)進(jìn)行增加與刪除的操作,一個(gè)系統(tǒng)可能會(huì)有成千上萬(wàn)各種信息,開(kāi)發(fā)量非常龐大,需要通過(guò)代碼生成技術(shù)進(jìn)行自動(dòng)生成,針對(duì)大量的信息類型能夠準(zhǔn)確的生成代碼并運(yùn)行,能夠極大的減少工作量,使開(kāi)發(fā)的效率提高。
模型驅(qū)動(dòng)系統(tǒng)的開(kāi)發(fā)模式不需要業(yè)務(wù)人員編寫(xiě)代碼,只需要針對(duì)業(yè)務(wù)的實(shí)體、流程規(guī)則、用戶信息進(jìn)行建模后整合,系統(tǒng)會(huì)在運(yùn)行的過(guò)程中根據(jù)模型形成業(yè)務(wù)系統(tǒng),使開(kāi)發(fā)變得更加的方便,實(shí)現(xiàn)界面跨平臺(tái)跨語(yǔ)言的能力。該平臺(tái)采用的是面對(duì)服務(wù)的模式,將其列入在框架中,結(jié)構(gòu)簡(jiǎn)潔明了,拓展性強(qiáng),能夠支持多個(gè)客戶端進(jìn)行工作,并且將系統(tǒng)的功能進(jìn)行有效的幾何,面向服務(wù)的框架結(jié)構(gòu)是一種模型,將程序中的功能通過(guò)接口建立連接并進(jìn)行定義,實(shí)現(xiàn)服務(wù)平臺(tái)的使用,采用統(tǒng)一的方式進(jìn)行交互,使業(yè)務(wù)變得更加的靈活。
圖4 MDA軟件開(kāi)發(fā)流程
(1)模塊設(shè)計(jì)
對(duì)模塊進(jìn)行設(shè)計(jì)就是對(duì)身份進(jìn)行權(quán)限的驗(yàn)證,對(duì)用戶的權(quán)限進(jìn)行授權(quán),規(guī)定哪些功能可以訪問(wèn),哪些功能不能訪問(wèn),在整個(gè)系統(tǒng)中,根據(jù)系統(tǒng)的繁雜程度,設(shè)置多個(gè)子系統(tǒng),因此需要使用一個(gè)身份認(rèn)證方便用戶進(jìn)行系統(tǒng)的模塊訪問(wèn),使用LDAP作為身份驗(yàn)證的服務(wù)器,對(duì)用戶的權(quán)限進(jìn)行管理。通過(guò)統(tǒng)一的認(rèn)證方式進(jìn)行用戶的管理,改變了傳統(tǒng)的管理難的問(wèn)題,用戶一次性登陸就可以訪問(wèn)其他權(quán)限的業(yè)務(wù)。
(2)平臺(tái)運(yùn)行
基于MDA快速開(kāi)發(fā)平臺(tái)的整體運(yùn)行過(guò)程需要通過(guò)平臺(tái)提供的建模工具進(jìn)行數(shù)據(jù)的轉(zhuǎn)換,并在數(shù)據(jù)庫(kù)中創(chuàng)建相應(yīng)數(shù)據(jù)記錄,當(dāng)客戶端對(duì)系統(tǒng)的應(yīng)用模塊進(jìn)行訪問(wèn)時(shí)系統(tǒng)會(huì)根據(jù)相關(guān)的要求進(jìn)行數(shù)據(jù)的提取,使用.NET方式存儲(chǔ)系統(tǒng)的模塊以及相關(guān)的數(shù)據(jù),從數(shù)據(jù)庫(kù)中提取的數(shù)據(jù)采用XML進(jìn)行描述,用戶最終提取出的數(shù)據(jù)需要通過(guò)解析工具進(jìn)行解析,然后將解析的數(shù)據(jù)提供給客戶。