模型驅動架構(modeldriven architecture, mda)的核心思想是抽象出與實現技術無關、完整描述業務功能的核心平台無關模型( pim , platform independent model ),然後針對不同實現技術制定多個轉換規則,通過這些轉換規則及輔助工具將 pim 轉換成與具體實現技術相關的平台相關模型( psm , platform specific model ),最後將經過充實的 psm 轉換成**[1]。
基於上述理由(以及本文未說明的其它原因),我認為mda的下一步發展方向應是:使pim模型能完整描述業務功能的全部業務語義,真正實現mda提出時的初衷。為與經典的mda實現方案相區別,我稱之為全模型驅動架構(full-model drivenarchitecture, f-mda),其基本思想是:針對特定領域設計描述業務模型的元資料模型,將描述業務功能所需的各類業務語義分別以相應型別的元資料予以描述,根據業務模型即可直接得到最終的執行系統,即:所有的業務開發工作在業務建模(pim)階段全部完成。下圖是乙個典型的企業應用類單據編輯功能的元資料模型分層及執行引擎處理流程示意圖。
全模型驅動架構可以達到一次開發可以適配多種技術平台和多種應用場景的目的,業務開發人員配置完乙個編輯功能的元資料模型後,由於模型中已包含了全部業務語義,執行引擎僅根據模型即可自動生成適合於pc、手機、平板的業務功能;如果需要得到與該功能相關的其他功能,如:列印成pdf文件、匯出為word文件、處理工作流任務、批量匯出業務資料、批量匯入業務資料、生成api文件、生成詳細設計文件等,則由相應應用場景的執行引擎從上述完整的元資料描述中按需抽取所需元資料自動完成。
以工作流任務處理為例,為在處理任務時檢視和編輯單據資訊,通常的辦法有兩種:其一是,將業務單據功能頁面嵌入在任務處理介面中,這種方式會大大增加許可權控制的複雜性(在實際應用中,常常導致安全漏洞或額外的效能開銷)、以及流程處理和單據狀態的不一致問題(單據儲存與任務處理不在乙個事務中);另一是,為工作流任務處理開發專門的單據檢視/編輯介面,這種方式則會大大增加重複的開發工作量。而在全模型驅動架構中,工作流任務處理時,在操作介面層,ui引擎可以從元資料模型中抽取出與ui相關的部分自動生成單據資料的檢視/編輯介面,與任務處理介面完美融合,當提交任務時,任務相關資料與單據資料一起提交,任務處理引擎從元資料模型中抽取出與資料校驗/儲存相關的部分自動完成單據資料的儲存,單據資料的儲存與流程控制的處理在乙個事務中完成。
以業務功能的元資料模型為基礎,還可以在系統框架層面提供自動提醒、自定義標籤、ui個性化配置、單據新增的預設值方案、ui互動過程跟蹤、系統效能優化提示、業務模型重構等通用工具,大大提高系統的易用性。
模型驅動架構(mda,model driven architecture)淺述
life平台設計原理
模型驅動架構
模型驅動架構 自從2002年被omg object management group 國際物件管理集團 提出以後,隨風潛入夜,潤物細無聲 未見轟轟烈烈宣傳,各大廠商卻驚人一致地爭相跟進,關於mda的話題轉眼之間在網路上也如火如荼地繁榮起來了。為了實現mda這一巨集大構想,omg制定了一系列的標準 u...
模型驅動架構 MDA
模型驅動架構 mda 是omg提出的一種新的軟體開發模式。該方法將軟體開發完全基於所謂的 元模型 我們可以接觸到的元模型包括uml,sysml,spem或cwm。通常公認的元建模包含四層體系結構 元元建模層 meta metamodling 構成了元建模 metamodeling 體系結構的基礎結構...
linux裝置驅動模型架構分析 一
lddm與驅動程式密切相關,而驅動程式處於linux系統中的什麼位置呢?我們自頂向下一步步來說,先看下圖 以下內容以中的內容為主體結合自己的認識和對於4.1核心的修改,這個系列文章非常好,推薦 linux由五個部分組成 也稱作程序管理 程序排程。負責管理 cpu資源,以便讓各個程序可以以盡量公平的方...