隨著Web service日新月異的發(fā)展,現(xiàn)基于服務(wù)軟件架構(gòu)的SOA也成為炙手可熱的話題。信息化的浪潮也帶了SOA的迅速發(fā)展,本文以此為契機(jī),研究SOA出現(xiàn)的背景,引入SOA。接著對SOA展開介紹,提出了基于MDA和AM的SOA元模型,以期實(shí)現(xiàn)企業(yè)IT資產(chǎn)的最大化作用。
【關(guān)鍵詞】SOA MDA AM 支撐技術(shù)
從信息化變遷來看,軟件的本質(zhì)決定了其復(fù)雜性。為了應(yīng)對這個(gè)難題,科學(xué)家設(shè)計(jì)了許多程序和方法來解決這一難題。比如模塊化設(shè)計(jì)等方法,但見效甚微,只是一定程度上減小了復(fù)雜性,并未徹底解決這一難題?,F(xiàn)SOA如雪中的木炭,為這一難題的解決帶來了黎明的曙光。
1 面向服務(wù)的架構(gòu)
從傳統(tǒng)的服務(wù)的分布式計(jì)算方式來看,CORBA和DCOM并不是新奇的技術(shù),其具有一定弊端。
(1)各方是緊湊耦合的,并非松散結(jié)合。換而言之,分布計(jì)算連接的兩端都必須遵循同樣API。
(2)各個(gè)軟件架構(gòu)是專屬的,其具有唯一性。
而面向服務(wù)的軟件架構(gòu)SOA則避免了以上不足,各個(gè)軟件架構(gòu)是基于標(biāo)準(zhǔn)的,在此也是松散耦合的。SOA為企業(yè)帶來了巨大的靈活性,還包括三個(gè)參與者之間的關(guān)系:
(1)服務(wù)提供者,其從通常意義上看有定義良好的接口,覆蓋對內(nèi)的和對外的。其服務(wù)之間通過簡單、精確定義接口進(jìn)行通訊,不涉及底層編程接口和通訊模型。而且此接口的定義是平臺和語言中立的,帶來的好處是,通過服務(wù)提供者可以注冊服務(wù)。
(2)服務(wù)消費(fèi)者,在我們需要某項(xiàng)服務(wù)之時(shí),我們可以提前通過查詢服務(wù)目錄的方式得到與服務(wù)有關(guān)的描述信息,從而可以動(dòng)態(tài)綁定到這一服務(wù)。從而帶來了與服務(wù)消費(fèi)者相投明的方式調(diào)用了相關(guān)服務(wù)。
(3)服務(wù)目錄,作為服務(wù)消費(fèi)者與服務(wù)提供者二者之間連接的橋梁。一方面,服務(wù)提供者通過它來完成注冊服務(wù),另一方面服務(wù)消費(fèi)者通過他查詢相關(guān)服務(wù)信息,能更加方便、快捷、透明地調(diào)用服務(wù)。
2 SOA的原則
SOA區(qū)別之前的架構(gòu),本質(zhì)上是其業(yè)務(wù)敏捷性的體現(xiàn)。為了實(shí)現(xiàn)這種敏捷性,SOA需要體現(xiàn)以下原則:
(1)業(yè)務(wù)驅(qū)動(dòng)服務(wù),服務(wù)驅(qū)動(dòng)技術(shù);
(2)業(yè)務(wù)敏捷性是基本的業(yè)務(wù)需求;
(3)良好的SOA處于不斷地變遷下。
3 基于SOA的解決方案的特性
拋開以往的安全性和加密小等日常服務(wù)架構(gòu)性能,基于SOA的解決方案的特性加入了很多其他的元素:
(1)從對象上看,服務(wù)的客戶不應(yīng)該知道服務(wù)具體實(shí)現(xiàn)的細(xì)節(jié);
(2)從位置上看,服務(wù)的位置應(yīng)該對客戶保持透明,然而并非一直如此,只有在運(yùn)行時(shí)客戶才需要知道服務(wù)的位置;
(3)從協(xié)調(diào)性上看,軟件應(yīng)該保持和其它平臺上的其它軟件互操作;
(4)從時(shí)序性上看,多版本的服務(wù)軟件應(yīng)該能實(shí)現(xiàn)被同時(shí)訪問。
4 SOA的基礎(chǔ):MDA和敏捷方法
SOA整個(gè)架構(gòu)都必須滿足業(yè)務(wù)敏捷需求,因?yàn)?,其中任何的瓶頸都會影響到整個(gè)系統(tǒng)的靈活性。從軟件工程領(lǐng)域的發(fā)展前景來看,現(xiàn)有架構(gòu)上的和方法學(xué)上的兩大趨勢生生不息。盡管二者實(shí)現(xiàn)方法和路徑迥異,但是它們對SOA的實(shí)現(xiàn)都是大有好處。
從外部看來,似乎MDA和AM是相反的。從需求端來看,因?yàn)镸DA假定存在固定的需求,而與其不同的是AM并無固定需求,采用迭代方法,其面對的是千變?nèi)f化的需求。從模型的選定來看,MDA以正式模型為中心,而AM恰恰相反,它是從各種方法中,選出相應(yīng)元素從而結(jié)合成相應(yīng)的架構(gòu)。
5 SOA的4+1視圖方法
圖1展示了SOA的視圖場景,圖中的外圍展現(xiàn)了架構(gòu)的不同方式,而最中心的是用例視圖,相交于其他的四個(gè)試圖。最為關(guān)鍵的是,它在架構(gòu)中扮演了一個(gè)特殊的角色。一方面從系統(tǒng)專家角度觀察,部署視圖通過映射的方法,傳到底層平臺和相關(guān)的硬件。另一方面,從程序員角度觀察,實(shí)現(xiàn)視圖則詳細(xì)闡述了軟件代碼的組織。而至于過程試圖大多是用于業(yè)務(wù)分析,既能很好地解決了軟件的運(yùn)行問題,也能提高工作的效率。而邏輯視圖則展示出用戶的功能需求??v觀SOA的系統(tǒng)實(shí)踐,架構(gòu)是通過用例圖試圖建立用戶與用戶提供者的聯(lián)系,從而架起了二者溝通的橋梁。
從圖1視圖的研究來看,雖然當(dāng)前存在支持的中間平臺,研究者對于軟件開發(fā)和維護(hù)也做了不少的研究工作,但開發(fā)依然缺少方法學(xué)基礎(chǔ)理論,更加缺乏完備的模型驅(qū)動(dòng)理論。本文在此同時(shí)提出基于的模型驅(qū)動(dòng)快速開發(fā)架構(gòu)SMRDA,既能彌補(bǔ)現(xiàn)有方法的不足,也能為異構(gòu)系統(tǒng)的交互提供比較滿意的解決之道。通過SMRDA,企業(yè)不但可以發(fā)布自己的信息供其他服務(wù)需求者查詢,同時(shí)也可以查詢到特定的描述信息并且綁定到該服務(wù)上,真正實(shí)現(xiàn)解決自己所需。
參考文獻(xiàn)
[1]宋旭東,王雪萍,劉曉冰.基于與MDA與web服務(wù)的企業(yè)應(yīng)用集成研究[J].計(jì)算機(jī)應(yīng)用研究,2009,31(08).
[2]于笑豐,胡軍,李宣東等.面向的模型驅(qū)動(dòng)開發(fā)方法[J].計(jì)算機(jī)科學(xué),2006,33(04).
[3]王昆昆,鄒書蓉.利用改進(jìn)的研究[M].信息工程學(xué)院學(xué)報(bào),2007,2(02).
[4]葉宇風(fēng).基于以的企業(yè)應(yīng)用集成研究[J].微電子學(xué)與計(jì)算機(jī),2006,23(03).
[5]陳漲婕.一種面向服務(wù)的體系結(jié)構(gòu)參考模型[J].計(jì)算機(jī)學(xué)報(bào),2016,2(03).
作者簡介
李肖克(1987-),男,初級工程師,大學(xué)本科學(xué)歷。研究方向?yàn)檐浖邪l(fā)。
覃旺(1990-),男,壯族,初級工程師,大學(xué)本科學(xué)歷。
作者單位
中國電子科技集團(tuán)公司第三十四研究所 廣西壯族自治區(qū)桂林市 541000