當(dāng)前位置:首頁 > 嵌入式 > 嵌入式教程
[導(dǎo)讀]基于DSL語言的MES系統(tǒng)建模平臺(tái)的實(shí)現(xiàn)

 O 引言

  以往MES系統(tǒng)項(xiàng)目的開發(fā)都是各個(gè)項(xiàng)目獨(dú)立地進(jìn)行設(shè)計(jì)和開發(fā),而這些項(xiàng)目中有一部分需求和功能有相同的地方,這樣,就會(huì)在一定程度上造成重復(fù)勞動(dòng)和資源浪費(fèi)。為此,筆者將業(yè)務(wù)需求轉(zhuǎn)化為模型,開發(fā)了一套基于模型驅(qū)動(dòng)的系統(tǒng)平臺(tái),同時(shí)搭載多種行業(yè)模型包。這樣,當(dāng)項(xiàng)目應(yīng)用時(shí),就可以根據(jù)需要對(duì)模型進(jìn)行簡(jiǎn)單修改,然后直接滿足項(xiàng)目需求。另外,此平臺(tái)依舊保留有快速的二次開發(fā)接口,這樣不但可以縮短整個(gè)系統(tǒng)的開發(fā)周期,而且可以大量節(jié)約人力物力資源。該系統(tǒng)平臺(tái)主要包括系統(tǒng)管理、建模平臺(tái)、工作流、業(yè)務(wù)系統(tǒng)等。本文主要講述建模平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)方法。

  1 DSL概述

  Visual St udio DSL(Domain-Specific Language,特定領(lǐng)域語言)工具是微軟公司針對(duì)特定領(lǐng)域開發(fā)而專門設(shè)計(jì)的。特定領(lǐng)域開發(fā)是一種用于解決重復(fù)發(fā)生的問題的方法,是可以使用DSL工具作為自動(dòng)生成相同或相似代碼的一種方式。DSL是指軟件開發(fā)中出于某特定考慮而設(shè)計(jì)的比較小的、目標(biāo)明確的語言。它們的作用是使用某特定領(lǐng)域里慣用的符號(hào)或者表示法對(duì)該領(lǐng)域的實(shí)體或者流程進(jìn)行建模。

  DSL工具提供有一種圖形化的操作方式。開始創(chuàng)建領(lǐng)域特定語言(DSL)是圍繞DSL設(shè)計(jì)器進(jìn)行的,設(shè)計(jì)器的功能是設(shè)計(jì)和產(chǎn)生DSL,或者設(shè)

  計(jì)依附于可生成代碼DSL的模型。

  域模型(domain model)是DSL定義的核心部分。域模型就像DSL的語法,它定義了域類(domain class)和域關(guān)系(domain relationship),即定義了組成模型的要素,并給出了將這些要素互相聯(lián)系在一起的規(guī)則。域模型和表示是分離的,它僅定義了DSL所要處理的概念層上的內(nèi)容,而并沒有給出如何在圖中表示這些概念。在DSL設(shè)計(jì)器中,圖形和域類的對(duì)應(yīng)關(guān)系是非常直觀的,有多種基本的圖形和連接線類型可供選擇,在定義了一組圖形之后,還要定義一組圖形的映射關(guān)系,也就是定義用哪個(gè)圖形或者連接線來顯示某個(gè)域類或者域關(guān)系。表示層和底層模型相分離的設(shè)計(jì),可以在不改動(dòng)模型的情況下,合理改變域模型的表示方式。

  在用DSL設(shè)計(jì)器完成DSL的定義后,將從這個(gè)DSL定義生成編輯和處理DSL實(shí)例工具的代碼,然后就可通過寫一些附加的代碼,來增強(qiáng)所產(chǎn)生的設(shè)計(jì)器的功能。

  2 模型驅(qū)動(dòng)的建模平臺(tái)設(shè)計(jì)

  模型驅(qū)動(dòng)就是對(duì)企業(yè)的業(yè)務(wù)需求進(jìn)行分析后,通過友好的圖形化用戶交互界面將企業(yè)的業(yè)務(wù)需求轉(zhuǎn)化為模型,圖1為其建模平臺(tái)示意圖。這樣,通過實(shí)現(xiàn)各種業(yè)務(wù)模塊(例如:設(shè)備管理)系統(tǒng)功能(例如:設(shè)備停用)的建模配置,系統(tǒng)就可將其自動(dòng)轉(zhuǎn)化為機(jī)器可讀和高度抽象的平臺(tái)無關(guān)模型,這些模型獨(dú)立于實(shí)現(xiàn)技術(shù)和語言,并以標(biāo)準(zhǔn)化的XML方式儲(chǔ)存。系統(tǒng)可根據(jù)模型生成基于SOA的運(yùn)行代碼,并可通過發(fā)布解決方案的方式來將建立好的業(yè)務(wù)模型集成到系統(tǒng)運(yùn)行平臺(tái)之中,最后在系統(tǒng)運(yùn)行平臺(tái)上運(yùn)行。建模平臺(tái)可支持使用過程中動(dòng)態(tài)調(diào)整流程、動(dòng)態(tài)配置業(yè)務(wù)和展示信息,可實(shí)現(xiàn)軟件的配置與信息管理的一體化應(yīng)用。當(dāng)業(yè)務(wù)發(fā)生變化后,也可以在系統(tǒng)中修改原有的業(yè)務(wù)模型并重新發(fā)布。其方便地改變特點(diǎn),可以真正實(shí)現(xiàn)快速滿足客戶業(yè)務(wù)變化的需要。

  

<center>


 

  建模平臺(tái)的設(shè)計(jì)主要分為三部分:數(shù)據(jù)模型、后臺(tái)服務(wù)和前臺(tái)頁面,圖2所示為建模平臺(tái)的模型圖。

  

[!--empirenews.page--]
 數(shù)據(jù)模型的元素包括表模型和視圖模型,是對(duì)業(yè)務(wù)功能單元的底層功能的封裝,它針對(duì)數(shù)據(jù)庫(kù)表和視圖映射對(duì)象,包括常用的增刪改查等基本操作和屬性。元素的建立可以通過圖形化的方式配置數(shù)據(jù)庫(kù)表和視圖,并調(diào)用數(shù)據(jù)庫(kù)生成模板生成到數(shù)據(jù)庫(kù),也可以從數(shù)據(jù)庫(kù)中添加已存在的表和視圖。數(shù)據(jù)模型文件的存儲(chǔ)格式為XML文件格式。數(shù)據(jù)模型配置完成后,即可根據(jù)當(dāng)前生成引擎創(chuàng)建數(shù)據(jù)模型對(duì)應(yīng)運(yùn)行代碼文件,即讀取表或視圖模型對(duì)應(yīng)的模板,并根據(jù)數(shù)據(jù)模型配置文件中的配置信息替換模板相應(yīng)信息,等生成的代碼準(zhǔn)備好后,可對(duì)其進(jìn)行編譯,編譯成功,則可在指定位置生成相應(yīng)的動(dòng)態(tài)鏈接庫(kù)。

  后臺(tái)服務(wù)包括服務(wù)方法及方法內(nèi)容的配置,是對(duì)業(yè)務(wù)功能所要執(zhí)行的一系列活動(dòng)的封裝,就是根據(jù)業(yè)務(wù)邏輯來組合數(shù)據(jù)模型元素的操作,即配置各相關(guān)數(shù)據(jù)模型元素操作的執(zhí)行順序及關(guān)聯(lián)關(guān)系,創(chuàng)建業(yè)務(wù)功能服務(wù)及方法。由于通過模型驅(qū)動(dòng)可提供業(yè)務(wù)敏捷性,故能靈活地適應(yīng)不斷變化的業(yè)務(wù),一旦需要,就可以對(duì)現(xiàn)有服務(wù)進(jìn)行必要的更改,從而達(dá)到業(yè)務(wù)驅(qū)動(dòng)服務(wù)的目的。后臺(tái)服務(wù)文件的存儲(chǔ)格式為XML文件格式。后臺(tái)服務(wù)配置完成后,即可根據(jù)當(dāng)前生成引擎創(chuàng)建服務(wù)所對(duì)應(yīng)的運(yùn)行代碼文件。

  前臺(tái)頁面是業(yè)務(wù)系統(tǒng)的展現(xiàn)層,具體體現(xiàn)為與最終用戶交互的界面。創(chuàng)建前臺(tái)功能頁面,可通過向?qū)У姆绞酵瓿蓪?duì)頁面信息的配置。前臺(tái)頁面部分有三種預(yù)制頁面布局模板,分別為單表結(jié)構(gòu)、上下主從結(jié)構(gòu)和左樹右表主從結(jié)構(gòu)。用戶操作時(shí),系統(tǒng)將調(diào)用后臺(tái)服務(wù)來完成業(yè)務(wù)功能。

  3 建模平臺(tái)的實(shí)現(xiàn)

  數(shù)據(jù)模型、后臺(tái)服務(wù)這兩部分都是通過微軟提供的DSL來定義、生成和定制圖形語言,從而實(shí)現(xiàn)真正的用模型來完成驅(qū)動(dòng)軟件開發(fā)的目的。完整的數(shù)據(jù)模型和后臺(tái)服務(wù)DSL設(shè)計(jì)過程一般包含兩個(gè)階段:

  其一是為數(shù)據(jù)模型和后臺(tái)服務(wù)的DSL文法設(shè)計(jì)域類、域關(guān)系及其相應(yīng)的圖形表示。簡(jiǎn)單地說,就是為數(shù)據(jù)模型和后臺(tái)服務(wù)語言設(shè)計(jì)圖形、連接器和底層的元模型(包括文字性屬性)。

  其二是寫代碼模板,即使用存儲(chǔ)在DSL中的實(shí)例信息來產(chǎn)生對(duì)應(yīng)的代碼。它主要包括編譯生成動(dòng)態(tài)鏈接庫(kù)dll文件和表視圖模型生成到數(shù)據(jù)庫(kù)兩部分。代碼生成通常是基于TextTemplate (.tt)文件的。

  創(chuàng)建數(shù)據(jù)模型DSL(DataModel)需要?jiǎng)?chuàng)建一個(gè)Minimal Language模板解決方案,它是包括一個(gè)矩形方框類型和一個(gè)連線類型的語言模型。后臺(tái)服務(wù)DSL(Service)需要?jiǎng)?chuàng)建一個(gè)Task Flow模板解決方案,類似于UML活動(dòng)圖的語言模型,其方框可以被放置在泳道內(nèi)。DataModel和Set-vice被稱為DSL的根。通常情況下,當(dāng)DSL在設(shè)計(jì)器中顯示時(shí),根由整個(gè)圖表示。同時(shí),它也是圖保存后生成文件的XML樹的根。DSL設(shè)計(jì)器主窗口中也包含兩個(gè)泳道(列):在左側(cè)的是域模型,包括域類和域關(guān)系;右側(cè)定義的是將顯示給用戶看的圖形和連接器。設(shè)計(jì)域類和域關(guān)系時(shí),數(shù)據(jù)模型包括表、普通視圖(配置方式形成視圖)、自定義視圖(手工書寫SQL語句形成視圖)域類及其一些屬性,后臺(tái)服務(wù)包括開始、結(jié)束、增加、刪除、修改、查詢等操作域類及域關(guān)系,并與圖形(定義的建模語言的圖形標(biāo)識(shí))映射好,然后在DSL資源管理器中添加到工具箱。數(shù)據(jù)模型實(shí)例文件以XML文件格式存儲(chǔ),元素的表示采用DSL定義中的名稱小寫格式,而連接則采用元素名稱的語法路徑方式。

  數(shù)據(jù)模型和后臺(tái)服務(wù)DSL設(shè)計(jì)器的代碼是根據(jù)DSL的定義文件產(chǎn)生的。點(diǎn)擊Visual Studio主窗口解決方案資源管理器工具欄上的Transfo-rm AllTemplate按鈕,可啟動(dòng)代碼的自動(dòng)生成,DataModel和Serice解決方案下的GenerateCode文件夾下有很多擴(kuò)展名為.tt的文件模板文件,每個(gè).tt文件都有一個(gè)自動(dòng)產(chǎn)生的附屬文件,這些附屬文件中的所有代碼都會(huì)被重新生成。此外,還可通過對(duì)生成代碼添加自定義代碼來實(shí)現(xiàn)驗(yàn)證約束或者擴(kuò)展生成設(shè)計(jì)器的功能。

  前臺(tái)頁面的核心是頁面信息配置。在信息配置頁面中,首先應(yīng)輸入頁面編碼等信息,然后選擇頁面所屬布局模板類型,再單擊“下一步”,進(jìn)入頁面面板配置頁面。增加頁面時(shí),后臺(tái)程序首先讀取頁面配置文件的模式文件,然后根據(jù)所選模板類型讀取相應(yīng)的模板標(biāo)準(zhǔn)配置文件(如單表模板),同時(shí)生成頁面的GUID標(biāo)識(shí)號(hào);如需修改頁面配置,后臺(tái)程序首先要讀取頁面配置文件的模式文件,然后讀取頁面對(duì)應(yīng)的配置文件。不管是增加或修改,此時(shí)都會(huì)生成一個(gè)全局?jǐn)?shù)據(jù)集gConfigFileDs。此后,單擊完成按鈕,后臺(tái)程序會(huì)將修改后的gConfigFileDs寫回到頁面配置文件(該文件的名稱為CUID),并調(diào)用Lib目錄下的解析器生成主JS文件。

  頁面布局模板類型目前可支持如下三種:

  (1)單表結(jié)構(gòu)

  頁面上只放置一個(gè)普通的網(wǎng)格面板,可提供對(duì)單表的增刪改查功能。

  (2)上下主從結(jié)構(gòu)

  頁面上下各放置一個(gè)網(wǎng)格面板,其中上方為主表網(wǎng)格面板,下方為從表網(wǎng)格面板。主表網(wǎng)格面板有增刪改查功能,從表網(wǎng)格面板有增刪改功能。當(dāng)單擊選擇主表網(wǎng)格面板的某一記錄行時(shí),從表網(wǎng)格面板就會(huì)顯示與主表記錄相關(guān)的所有從表記錄。

  (3)左樹右表主從結(jié)構(gòu)

  該結(jié)構(gòu)頁面左方放置一個(gè)樹面板,右方一個(gè)網(wǎng)格面板,其中左方面板用于主表顯示,右方面板用于從表顯示。單點(diǎn)擊選中樹面板上的某一結(jié)點(diǎn),右方網(wǎng)格面板就會(huì)顯示與此樹結(jié)點(diǎn)相關(guān)的所有從表記錄。

  4 結(jié)束語

  本文利用DSL特定領(lǐng)域語言實(shí)現(xiàn)基于模型驅(qū)動(dòng)的MES系統(tǒng)建模平臺(tái),該方法可以快速的將業(yè)務(wù)需求轉(zhuǎn)化為模型,縮短整個(gè)系統(tǒng)的開發(fā)周期,大量節(jié)約人力物力資源。但該建模平臺(tái)還存在一定的缺陷和不足,就是對(duì)一些特別復(fù)雜的業(yè)務(wù)需求不能直接采取配置的方式來實(shí)現(xiàn),而必須通過自己手寫代碼或者存儲(chǔ)過程等才能實(shí)現(xiàn)。下一步工作的重點(diǎn)就是解決掉這些缺陷和不足。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車。 SODA V工具的開發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開幕式在貴陽舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱,數(shù)字世界的話語權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉