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