
什麼是MDA
MDA(Model Driven Architecture)是模型驅動架構,它是由OMG定義的一個軟體開發架構。它是一種基于UML以及其他工業标準的架構,支援軟體設計和模型的可視化、存儲和交換。和UML相比,MDA能夠建立出機器可讀和高度抽象的模型,這些模型獨立于實作技術,以标準化的方式儲存。MDA把模組化語言用作一種程式設計語言而不僅僅是設計語言。MDA的關鍵之處是模型在軟體開發中扮演了非常重要的角色。
MDA源自于衆所周知的把系統操作的規範從系統利用底層平台能力的方式細節中分離出來的思想,MDA提供了一種途徑(通過相關的工具)來規範化一個平台獨立的系統、規範化平台、為系統選擇一個特定的實作平台,并且把系統規範轉換到特定的實作平台。MDA的三個主要目标是:通過架構性的分離來實作輕便性、互操作性和可重用性。
在MDA中軟體開發過程是由軟體系統的模組化行為驅動的。下面是MDA的軟體開發周期:
MDA生命周期和傳統生命周期沒有大的不同,主要的差別在于開發過程建立的工件,包括PIM(Platform Independent Model,平台無關模型)、PSM(Platform specific Model,平台相關模型)和代碼。PIM是具有高抽象層次、獨立任何實作技術的模型。PIM被轉換為一個或多個PSM。PSM是為某種特定實作技術量身定做。例如,EJB PSM是用EJB結構表達的系統模型。開發的最後一步是把每個PSM變化為代碼, PSM同應用技術密切相關。傳統的開發過程從模型到模型的變換,或者從模型到代碼的變換是手工完成的。但是MDA的變換都是由工具自動完成的。從PIM到PSM,再從PSM到代碼都可以由工具實作。PIM, PSM,和Code 模型被作為軟體開發生命周期中的設計工件,在傳統的開發方式中是文檔和圖表。重要的是,它們代表了對系統不同層次的抽象,從不同的視角來看待我們的系統,将高層次的PIM 轉換到PSM 的能力提升了抽象的層次。能夠使得開發人員更加清晰地了解系統的整個架構,而不會被具體的實作技術所“污染”,同時對于複雜系統,也減少了開發人員的工作量。
MDA的出現,為提高軟體開發效率,增強軟體的可移植性、協同工作能力和可維護性,以及文檔編制的便利性指明了解決之道。MDA被面向對象技術界預言為未來兩年裡最重要的方法學。當今模組化的主要問題在于,對于很多企業來說它隻是紙面上的練習。這就造成了模型和代碼不同步的問題,代碼會被不斷修改,而模型不會被更新,這樣模型就失去了意義。彌補模組化和開發之間的鴻溝的關鍵就在于将模組化變為開發的一個必不可少的部分。MDA 是模型驅動開發的架構,MDA 的願景是定義一種描述和建立系統的新的途徑。MDA 使得UML 的用途走得更遠,而不僅僅是美麗的圖畫。很多專家預言MDA 有可能會帶領我們進入軟體開發的另一個黃金時代。
MDA架構
MDA 将軟體系統的模型分離為平台無關模型PIM 和特定平台模型PSM,同時又能通過轉換規則将它們統一起來,以這樣的方式試圖去擺脫需求變更所帶來的困境。平台無關模型PIM 是對系統高層次的抽象,其中不包括任何與實作技術相關的資訊;特定平台模型PSM是特定平台相關的模型。在MDA 架構中,首先使用平台無關的模組化語言來搭建平台無關的模型PIM,然後根據特定平台和實作語言的映射規則,将PIM 轉換以生成平台相關的模型PSM,最終生成應用程式代碼和測試架構。
MDA架構的“建築材料”包括:高層次模型;一種或多種标準、精确定義的語言,用來編寫高層次模型;如何把PIM變換到PSM的定義;編寫這些定義的語言,這種語言能夠被變換工具執行;能夠執行變換定義的工具;能夠執行PSM到代碼的變換工具。
上圖是MDA的架構,它的主要元素有模型、PIM、PSM、語言、變換、變換定義、以及變換工具。MDA 是一個開放的,中立于軟體供應商的架構,它廣闊地支援不同的應用領域和技術平台,能夠成為應用領域和具體技術平台之間的杠杆。在MDA 開發途徑中,PIM 代表對需求的模組化,PSM 代表應用具體技術後的模型,這使得MDA 成為需求和技術之間的杠杆;它們各自的改變都可以是互相獨立的,不會造成商業邏輯和實作技術的緊密藕合,同時MDA 又可以通過轉換來彌補它們之間的鴻溝,進而保護我們的投資。MDA 開發途徑使得我們的系統能夠靈活地被實作、內建、維護和測試,系統的輕便性、互操作性和可重用性都是可以長期保持的,能夠應對未來的變化。
MDA的現狀
MDA 還處在一個發展的過程中,MDA還在不斷的演進。雖然MDA正朝氣蓬勃地走來,但是人們也能看出它所存在的問題。MDA最大的好處就是業務模型的持久價值,但是付出的代價是增加了抽象層,而目前看來,層之間的轉換并不是我們所期待的那樣順暢,至少,從PIM到PSM,從PSM到代碼,這個實作的過程要遠比從3GL生成機器代碼來得困難。在模組化技術方面,UML正在暴露其固有的缺陷,它需要擴充更多的機制來支援精确模組化和分析模型,雖然目前OCL為精确模組化提供了一定的支援,但是這種支援距離可執行模型的理想還很遙遠。回顧MDA的曆史,我們可以看出UML的巨大成功為MDA的産生奠定了堅實的基礎,同時也感覺到:在由軟體工藝到軟體工程的漫漫長路中,MDA隻不過是向前邁進了一小步,但卻給整個軟體業掀起了一場波瀾,它在模型定義、開發過程等諸多方面都将對未來IT技術産生深遠的影響。
目前在MDA開發工具市場上的情形是:由于從PIM 到PSM轉換方法的标準化尚未完成,IBM、Borland等大型廠商大都持謹慎态度,雖然也紛紛在他們的開發工具中提供部分的MDA功能,但并沒有完全遵循OMG定義的MDA規範。雖然如此,IBM除了在Rational中增加MDA功能之外,在開源項目Eclipse中,也提出了EMF(Eclipse Modeling Framework)這一創新的MDA代碼生成系統項目,由此可見IBM對MDA這一發展中的技術的重視程度。Borland公司宣稱他們也在關注MDA技術,并且準備在Together中配置基于MDA的模型自動生成功能。相對于業界大廠的冷靜和矜持,一些中小廠商反而特别活躍,像Interactive Objects公司著名的ArcStyler、Compuware公司著名的OptimalJ,還有開放源碼的AndroMDA等遵循OMG标準規範的MDA工具已在一些項目中得到了廣泛的運用,并取得了顯著的成效。
MDA的相關标準
為了實作MDA這一宏大構想,OMG制定了一系列的标準:
UML:UML被MDA用來描述各種模型。它并不是為MDA而生,但是作為目前最為風行的模組化語言,UML已經占據了全球模組化語言領域90%的市場佔有率,成為了模組化語言事實上的标準,是以OMG将它作為MDA技術的基礎是自然而然的明智選擇。它是MDA的基礎,也是MDA最有力的武器。
MOF:MOF(Meta Object Facility 元對象機制)是比UML更高層次的抽象,它的目的是為了描述UML的擴充或者其它未來可能出現的類UML的模組化語言。雖然MOF也不是為MDA而生的,但是我們可以體味到OMG的工程師們良苦的用心和長遠的目光。
XMI:XMI(XML-based metadata Interchange)是基于XML的中繼資料交換。它通過标準化的XML文檔格式和DTDs(Document Type Definitions)為各種模型定義了一種基于XML的資料交換格式。這使得作為最終産品的模型可以在各種不同的工具中傳遞,這一點是非常重要的,它保證了MDA不會在打破了一種束縛之後再被加上一層新的束縛。
CWM:CWM(Common Warehouse Metamodel 公共倉庫元模型)提供了一種資料格式變換的手段,在任意級别的模型上都可以使用CWM來描述兩種資料模型之間的映射規則,比如将資料實體從關系資料庫變換為XML格式。在MOF的架構下,CWM使得通用的資料模型變換引擎成為可能。
在OMG的藍圖中,UML、MOF、XMI、CWM等一系列标準分别解決了MDA的模型建立、模型擴充、模型交換、模型變換這幾個方面的問題。OMG試圖通過标準化的定義,擴大MDA的應用範圍。同時通過這樣一個可擴充的模組化語言環境,IT廠商可以自由實作自己的模組化語言,以及語言到可執行代碼的映射,然而不管怎麼樣,都必須處于OMG的标準化架構之下。
低代碼技術發展時間線
低代碼産品能力定位圖将低代碼産品分為:普适發展型、領域服務型、産品研發型:
普适發展型:
提供業務解耦後的共性提取和封裝服務,結合代碼開發功能實作簡易定制化業務需求。用于通用型應用和系統的開發,靈活響應快速變化的業務需求。
以均衡性開發組合模式,大幅降低開發技術門檻,是引導全民開發的中堅力量,支撐不同階段的企業數字化戰略,助力業務場景轉型方案落地,加快數字化轉型。
領域服務型:
深度挖掘業務場景,提煉領域共性特征,提供高度完善的可視化業務設計、開發、運維服務,通過代碼開發完善領域業務開發能力。用于領域内應用和系統開發服務,結合領域生态能力,形成完備的領域業務開發體系。滿足各行業各領域的業務場景落地和業務需求靈活響應,帶動企業核心競争力,推動高品質發展。
産品研發型:
提供具備一定可視化輔助的研發能力或服務。用于開發複雜的業務邏輯,響應大型軟體或系統需求,實作統一管理、統一建設、統一運維等生态目标。以簡易可視化能力為輔助,減少重複性基礎搭建工作,降低時間和技術成本,大幅提升企業自主開發效率。
低開應用案例
中國聯通數字化研發平台低代碼
安徽移動“輕擎”低代碼業務場景開發平台
中國聯通廣東省分公司通信自助資料營運可視化設計工具
興業銀行低代碼開發平台興魔方
銀行綜合檢查資訊管理系統建設案例
制造業精益數字化解決方案
浪潮iGIX企業級PaaS平台築牢東方電氣數字化轉型底座
新萊集團數聚蜂巢API內建平台項目
金現代助力華能資訊建設統一技術開發平台
跨越溝通壁壘,解決應用開發效能瓶頸
以上隻是其中一部分,想要擷取完整版本從以下網盤位址擷取。
連結: https://pan.baidu.com/s/1q1q8raF5uxYYiHr9TDlTYg 提取碼: 關注公衆号回複 “低開” 擷取
關注公衆号 soft張三豐