<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

EEPW首頁(yè) > 消費電子 > 設計應用 > 基于DSL的MES系統建模平臺的設計方案

基于DSL的MES系統建模平臺的設計方案

作者: 時(shí)間:2017-06-08 來(lái)源:網(wǎng)絡(luò ) 收藏

0 引言

本文引用地址:http://dyxdggzs.com/article/201706/351252.htm

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

1 概述

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

DSL工具提供有一種圖形化的操作方式。開(kāi)始創(chuàng )建領(lǐng)域特定語(yǔ)言(DSL)是圍繞DSL設計器進(jìn)行的,設計器的功能是設計和產(chǎn)生DSL,或者設計依附于可生成代碼DSL的模型。

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

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

2 模型驅動(dòng)的建模平臺設計

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

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

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

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

前臺頁(yè)面是業(yè)務(wù)系統的展現層,具體體現為與最終用戶(hù)交互的界面。創(chuàng )建前臺功能頁(yè)面,可通過(guò)向導的方式完成對頁(yè)面信息的配置。前臺頁(yè)面部分有三種預制頁(yè)面布局模板,分別為單表結構、上下主從結構和左樹(shù)右表主從結構。用戶(hù)操作時(shí),系統將調用后臺服務(wù)來(lái)完成業(yè)務(wù)功能。

3 建模平臺的實(shí)現

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

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

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

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

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

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

頁(yè)面布局模板類(lèi)型目前可支持如下三種:

(1)單表結構

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

(2)上下主從結構

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

(3)左樹(shù)右表主從結構

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

4 結束語(yǔ)

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



關(guān)鍵詞: DSL MES系統 數據庫 SQL

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>