999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

面向服務的網構軟件中間件研究

2008-12-31 00:00:00周相兵楊小平謝成錦
計算機應用研究 2008年10期

收稿日期:2007-11-27;修回日期:2008-03-10

基金項目:四川省考試學院“十一五”科研規劃科研課題(SCZKY11528II001);四川省教育廳自然科研課題(07ZS002);四川省科技廳應用基礎資助項目(2006J13-051);阿壩師專校級重點基金資助項目(ABA07-08)

作者簡介:周相兵(1980-),男,四川儀隴人,講師,主要研究方向為分布式系統集成、語義 (3dsmaxmaya@163.com);楊小平(1973-),男,副教授,博士,主要研究方向為人工智能、語義;謝成錦(1984-),男,軟件工程師,主要研究方向為分布系統.*

(1.阿壩師范高等??茖W校 計算機科學系,四川 郫縣 611471;2. 四川省軟件重點實驗室, 成都 610068;3.四川銀海軟件有限責任公司 研發部,成都 610021)

摘 要:網構軟件是近年來提出的一種具有自底向上的自主性、協同性、反應性、演化性、多態性等特征的軟件狀態,主要用來解決Internet下分散的構件體的共享、集成和復用,但網構軟件還處于發展初始階段。結合SCA簡化SOA所構建的業務應用程序的設計和集成,以及SDO和DAS的數據訪問模式來構建一種網構軟件中間件框架,并用UML對各個階段建模;最后結合Apache下SCA系統的Tuscany開源包的一個遠程教育集成系統來應用該網構軟件中間件。

關鍵詞:網構軟件中間件;面向服務體系結構;服務組件體系結構;服務數據對象;遠程教育集成系統

中圖分類號:TP313

文獻標志碼:A

文章編號:1001-3695(2008)10-3006-04

Research of service-oriented internetware middleware

ZHOU Xiang-bing1,2, YANG Xiao-ping2, XIE Cheng-jin3

(1. Dept. of Computer Science, Aba Teachers College, Pixian Sichuan 611471, China;2. Software Key Laborotary of Sichuan, Chengdu 610068, China;3. Dept. of Research Development, Yinhai Software Limited Liability Co., Chengdu 610021,China)

Abstract:Internetware was a kind of software’s state which was brought out these years, it was architected as bottom-up, and also with the symptom: independently, cooperatively, reactively, fast-evolvement and multi-polymorphism, it was mainly used in dealing with the sharing, integrating and reusing of the dispersive components. But from the present seeing , it was still in the initial phase of the developing ,the involved theory, technique and also the methods were still in discovering and application phases. This paper combined the SCA and simplified the SOA’s architecture of the business application programs’ design and integrity ,and the data’s access model of SDO and DAS architect a internetware’s middleware framework ,and it was using the UML to model in every phase, at last it combined the Apache’s SCA system’s open source packet which was named Tuscany, to function inthe distance learning integrating system ,that’s just the application of the internetware.

Key words:internetware middleware;SOA;SCA;SDO;REIS

0引言

網構軟件(internetware)是直接由Internet催生而得[1,2],是適應日益增長的信息量、大量不可再用信息、眾多信息單一功能和分散等缺陷而誕生的。目前國內外都沿這個方向從理論、技術和方法角度進行研究。國外主要的機構如IBM、微軟的Web服務工廠等;國內以北大青鳥研發團隊、南京大學呂建團隊、上海普元公司等,他們都提出了與網構軟件相關概論、基礎理論,以及發展方向等[3,4]。但因網構軟件是具有自底向上的自主性、協同性、反應性和演化性等特征的軟件形態,與傳統的自上而下的方法正好相反,這就對軟件體系結構的形成、軟件開發的方法和使用什么樣的技術帶來了巨大的挑戰;雖然基于構件的軟件開發技術已經成為當今軟件開發的一種有效方法,但對網構軟件的開發還是顯得力不從心。由于網構軟件強調從最初的服務狀態通過自動動態配置、組合、組裝成一種按需求和策略的軟件系統,本文就從網構軟件的體系結構出發提出一種面向服務的網構軟件中間件,采用SCA簡化SOA的設計和集成[5],并結合SDO和DAS數據方法[6]建立一種層次結構的網構軟件結構,并用UML逐一分析其中所涉及的組件和相關服務,同時用ESB聯結各組件實現集成;最后結合一個遠程教育集成系統進行實踐應用。

1 網構軟件中間件的理論和技術基礎

1)SOA(service oriented architectrue)參考模型 實行基礎是組合服務提供者和服務消費者各個業務功能和流程,實現復雜的業務應用程序和流程,其相對于粗粒度的業務組件被作為服務公開,也將IT資產構造為一系列可復用的服務,而且這些服務是松散耦合且與平臺和實現無關;但SOA解決方案設計為服務組合的編排和排列,并為基于構件的組裝提供良好的接口和契約進行連接。在2006年10月由OASIS組織制定和發布了SOA參考模型1.0版本中[7],使用了概念、關系和語義來描述服務,并使用了capabilities這一方式進行描述SOA,如圖1所示是SOA參考模型整合圖。

定義1 服務組合,α。稱滿足下面條件的一個十四元組SC=〈Sp,Ss,Uddi,Wsdl,Pr,Su,Cm,On, In,Ar,Pe, T, Out〉為一個服務組合:

a)Sp={sp1,sp2,…,spm}是一個有限服務提供者集合,Sp(Wsdl)Uddi,且它們可能存在如下關系:

繼承關系:spi-1∝spi→spi+1;

并集關系:spi-1∪spi→spi+1;

交集關系:spi-1∩spi→spi+1;

互斥關系:spi-1∩spi=。

b)Ss={ss1,ss2, …,ssn}是一個有限服務消費者集合,且同樣可能存在a)中的關系,則此時可定義一個服務是一個二元組:S=〈Sp,Ss〉。

c)Pr、Su分別代表服務直接前驅和后繼,且S(Pr)S(Su)表示一個前驅與后繼的依賴關系:

事件依賴:En→S(Pr)ΘS(Su);

信息依賴:Inf→S(Pr)·S(Su);

任務依賴:Task→S(Pr)S(Su);

語義依賴:Se→S(Pr)S(Su);

接口依賴:Int→S(Pr)·S(Su),則服務依賴集合為DeO={〈En,Inf,Task,Se,Int〉,context}。

d)Cm={Cm1,Cm2,Cm3,Cm4}是服務組合流程:

順序流程:

Cm1={S1n→S2n→…→Smn}∪{ Sm1→Sm2→…→Smn };

并行流程:

Cm2={ S1n∪S2n∪…∪Smn }∪{ Sm1∪Sm2∪…∪Smn };

串聯流程:

Cm3={ S1n∞S2n∞…∞Smn }∪{ Sm1∞Sm2∞…∞Smn };

選擇流程:

Cm4={ S1nS2n…Smn }∪{ Sm1Sm2…Smn }。

e)On是基于本體的語義:On=〈C,R,HC,rel,AO〉。

其中:概念層次HCC×C是一個有關向關系,HC(C1,C2)表示C1是C2的子概念;關系函數rel:R→C×C;公理集AO是本體中的概念C和R必須滿足的約束。

f)接口In∈S,f(In)是一個服務組合流程映射f:f(In,On)→Cm。

g)Ar、Pe表示服務組合流程采用的編排和排列的方式:

Ar:Cm(f)1∑Cm(f)2∑…∑Cm(f)m;

Pe:Cm(f)1∏Cm(f)2∏…∏ Cm(f)n。

h)T是變遷集表示基本服務。

In∩T=,In∪T≠;Cm(In×T)∪(T×In)←Ar∪Pe是流程關系。

i)輸出Out:Ar∪Pe→S′。

2)SCA(service component architecture) 它將業務流程從業務邏輯中分離出來,從而實現簡化SOA構建的業務應用程序的創建和集成,且提供了構建由細粒度到粗粒度組裝的組件機制,如圖2所示,主要表現在:

a)簡化業務組件開發;

b)簡化作為服務網絡構件的業務解決方案的組裝部署;

c)提高可移植性、可復用性和靈活性;

d)通過屏蔽底層技術變更來保護業務邏輯資產;

e)滿足SDO數據訪問;

f)提高可測試性。

SCA在構建面向服務的實體時,以實現提供服務和其他服務的組件和組裝組件。在具體實施時,服務實現是業務邏輯的具體實現。

定義2 SCA系統組件組裝,β。稱滿足如下條件的一個十一元組CSACA=〈Ser,Qu,At,Ent, Out,Co,ScaIn,Scam, Subs,Scas,Conf〉為一種SCA系統組件組裝成應用實體。

a)Ser={S,AS,QS},AS={MAS,SAS}。Ser由基本服務、外部服務(模塊級外部服務和系統級外部服務)和引用服務組成,且QS→〈ASi-1〈ASi〉,QSS,AS→key(AS)。

AS與QS合成:AS QS={〈x,y〉|z(xASz∧zQSy)}。

QS在S上的限制:QS S={〈x,y〉|xQSy∧x∈S}。

b)引用QuOb→Binding(QS,AS),通過外部服務的惟一性連接機制的目標。

c)屬性At→Set(Qu,Value)。

d)入口點Ent={Moet,Syent},且Moet→Key1(Ent),Syent→Key2(Ent),表示模塊級和系統級入口點,均保持入口點的惟一性,Declare:AS→AS(Ent)。

e)組件Co={Out,〈QS,At〉,AS,CoIn,Sp}∪{〈componet1(xml),…, componentn(xml)〉};組件接口CoIn={CoIn1, CoIn2,…, CoInm},組裝CoA:Co(As)→〈Co,<〉,<表示組裝執行偏序。

f)模塊接口ScaIn={ScaIn1, ScaIn2,…, ScaInn}。

g)SCA模塊Scam={Co,AS,Ent,Sp,ScaIn,m},模塊組裝方法m={m1,m2,m3,m4}指銜接各部分的機制:

消息銜接:m1→〈Scam,α〉;

任務銜接:m2→〈Scam,β〉;

語義銜接:m3→〈Scam,γ〉;

事件銜接:m4→〈Scam,λ〉。

h)子系統Subs={Subs(Scam,Moet),Subs(component,Moet),Subs(co,CoIn),Subs(sp,In)},

Subs(Value)→〈Case,As〉。

i)SCA系統Scas={{〈Subs,Syent〉}∪{〈Scam,Moet〉},M},M是連接機制。

j)各階段配置方式:Conf={Conf1(CoA,f1),Conf2(Scam,f2),Conf3(Subs,f3),Conf4(Scas,f4)},配置是一組XML文件,f為映射關系。

3)SDO(service data objects)與DAS(data access service) SDO是一種數據編程體系結構和API,可對異類數據源的統一數據訪問,且提供多種不同種類數據的公共方法。目前的SDO2.1規范描述了靜態和動態API創建SDO的兩種方法,如圖3所示,主要表現在:

a)簡化J2EE數據編輯模型;

b)抽象SOA中的數據;

c)統一數據應用程序的開發;

d)支持和集成XML;

e)提供統一的數據訪問框架。

SDO由SDO編程模型和API、data中介服務、數據源、數據對象、數據圖、變更摘要、屬性、類型和序列組成。

DAS可以采用任何持久化機制實現,允許采用標準方式將 SDO 保存到各種后端系統,從而提升企業應用程序內的互操作性和標準,如圖4所示。

定義3 數據訪問,γ。稱滿足下列條件的一個十一元組

DA=〈Sdom,Api,Ds,Dms, Das,Do,Dg,Ca,Att,Sdot,Dd 〉是一個網構軟件數據訪問的實現。

a)Sdom={sdom1,sdom2,…,sdomk}為一個有限編程模型個體集。

b)SDO數據Api={StaticApi,DynamicApi}且Api∈Sdom,Api:Sdom→π,π表示API在Sdom上的連接運算方式。

c)數據源Ds={Ds1,Ds2, …,Dsr},表示數據源有限個體,且Sdom不訪問Ds。

d)數據中介服務f:Dms→create(view),change(f)→Ds(Das)。

e)數據對象∏Do∈Sdom,Public:g:Do→create(view)f∧Dms(g,Λ),Λ表示一種反射方法。

f)數據圖dg:container(Dg)=〈V,E〉,V={v1,v2, …,vt}且v1∩v2∩…∩vt=,E={〈vi-1,vi〉},i∈t。

Make(MDS)→dg,Update(dg)ergodic(V)→Ds′。其中:表示遍歷修改樹,更新數據源,并定義如下映射關系:

函數映射u:Ds(Do)→dg;

XML直接交換v:Ds(Do)→dg[f(xml)]。

g)變更摘要initial(Ca)=,Ca∈dg,return:Ca(dg)→Dms↑Dms→Ds。

h)Do(Att,Sdot)→Dd,Att(Sdot)={int,float,char, …}∪{date, string, …}。其中:Dd是訪問序列;Att是屬性;Sdot是類型。

命題面向服務的網構件軟件中間件的實現的服務、組裝、數據訪問由一個三元組可完成描述:

IWMW=〈α,β,γ〉2 網構軟件中間件體系結構

網構軟件中的實體目前主要以構件形態存在、分布在Internet中,國內主要以北大青鳥的ABC方法,國外的OMG的CMM等方法加以簡單的聚合和推導,而因網構軟件固有的特征,這些方法很難滿足具體的需求。但在文獻[3]提出了一個網構軟件的基本層次結構,即控制層和目標層;并從體系結構的角度加以了研究。本文在此基本的層次結構上增加一個數據整合層,并結合SOA層次結構建立網構軟件中間件的體系結構,使用ESB和具有ESB的服務交互點(SIP)來實現網構軟件的具體的模式。圖5是網構中間件層次體系結構圖。

1)企業服務總線(ESB)

提供了請求與響應、數據轉換、基于內容的路由、各種優化、各種服務通用連接、虛擬化和監視等功能,同時還支持SCA簡化模型。具體的ESB使用服務注冊中心和存儲組件作為動態查找機制來提供服務端點信息,如圖6所示。

2)具有ESB的服務交互點(SIP)

1)交互服務 使用門戶(portlet)或WS-*和Web技術,提供服務內容和交互數據的能力和功能。

2)流程服務 根據業務流程和業務流,管理消息流和多個服務之間的交互的控制功能。

3)信息服務 聯合、整合、復制和轉換不同數據源的功能。

4)外部服務 將外部服務EDI和遺留系統集成到共同的企業體系結構中的功能。

5)本地服務 業務應用程序服務調用服務使用者的功能。

6)應用程序和數據訪問數據 將核心應用程序與外部數據存儲以及打包的應用程序進行集成的功能,如圖7所示。

3 基于Tuscany的網構軟件中間件應用

本文以一個遠程教育集成系統(REIS)為例來應用分析。目前,遠程教育已進入各個教育機構的各個層次,但在數據交換、資源共享、實時更新、按需要組裝變化、訪問效率等問題上一直面臨各種問題,如對遺留系統集成不完整、資源存在局部性強等;致使遠程迅速發展帶來極大的阻礙。首先將系統分為資源系統(resource systems)、業務系統(business systems)、門戶框架系統(protlet systems)、工作流系統(workflows systems)和智能計算系統(intelligence systems)五大基礎系統,接著使用本文的網構軟件中間件體系結構進行設計,使用SCA、SDO等軟件模型進行實踐,并結合Apache下SCA系統的Tuscany開源包作為基礎編程模型,采用J2SE(JDK1.5+)作為開發支持平臺,并且Tuscany[9]開源項目包含的組件實現類型有:Spring、Groovy、JavaScript等,綁定類型有Axis、CXF、 AMQP、 ActiveMQ、 JXTA等;數據綁定類型有JAXB、 SDO、XmlBeans等;接口綁定類型有WSDL、Java等。圖8是遠程教育集成系統關系圖。

Display composite 提供所需的功能來將 REIT assembly composite 提供的 XML 轉換為可識別的格式,如可在 Web 瀏覽器中顯示的 HTML。組合包含以下組件:

a)HTML formatter 組件。從 REIT assembly composite 檢索配置 XML 和最新返回XML,然后基于此數據生成 HTML 表。可以從網頁通過對公開此組件的 REST 服務進行 Ajax 調用來檢索此HTML。

b)Text formatter 組件。也從 REIT assembly composite 檢索 XML 數據,并將其轉換為可供人閱讀的文本,供本地客戶機訪問。

c)REIT search組件?;赗EIT config組件提供的配置數據管理對各個基礎系統的組件調用。基礎系統組件所返回的 XML 數據聚合為單個 XML 文檔,并使用 REST 服務綁定向客戶機公開。

d)REIT config組件。管理應用程序的配置,并保留相關應用系統的信息。

e)Web service組件。調用指定的Web服務,并將返回的數據轉換為簡單的XML格式。

下面程序片段是SCA 定義了一種 XML 語言服務組件定義語言(service component definition language,SCDL)和SDO(DAS)請求配置方法。

〈composite xmlns=\"http://www.osoa.org/xmlns/sca/1.0\" name=\"REIT.reitsubbaseSystem\"〉

〈service name=\" reitsubbaseSystemService\"〉

〈binding.rest/〉

〈reference〉REITSearchComponent〈/reference〉

〈/service〉

〈component name=\"REITSearchComponent\"〉

〈implementation.python module=\"REITSearchImpl\" scope=\"composite\"/〉

〈reference name=\"REITConfigService\"〉REITConfigComponent〈/reference〉

〈reference name=\"resourceSystems Service\"〉ResourceSystemsComponent〈/reference〉

〈reference name=\"businessSystems\"〉BusinessSystemsComponent〈/reference〉

….

〈/component〉

〈component name=\"ResourceSystemsComponent\"〉

〈implementation.python module=\"ResourceSystemsImpl\" scope=\"composite\"/〉

〈/component〉

〈component name=\"BusinessSystemsComponent\"〉

〈implementation.python module=\"BusinessSystemsImpl\" scope=\"composite\"/〉

〈/component〉

…..

〈component name=\"REITConfigComponent\"〉

〈implementation.python module=\"REITConfigImpl\" scope=\"composite\"/〉

〈/component〉

〈/composite〉

〈Config〉

〈ConnectionInfo dataSource=\"java:comp/env/jdbc/bigbank\"/〉

〈Command name=\"getAllResource\" SQL=\"select * from ResourceList\" kind=\"Select\"/〉

〈Command name=\"getResourceType\" SQL=\"SELECT * FROM Resourceaccounts where ResourceDetail = ?\" kind=\"Select\" /〉

〈/Config〉

4 結束語

使用面向服務的方法建立了一種網構軟件中間件的具體實現過程,其首先分析了網構軟件中間件的理論和技術,主要研究了SOA中服務組合、SCA系統組裝、SDO(DAS)數據訪問的方法;接著建立了網構軟件的體系結構和內部實現機理;最后結合SCA系統的Tuscany開源件在一個遠程教育集成系統中進行應用,且詳細介紹了應用的具體過程。該中間件方法的順利應用將從很大程度上解決現階段資源共享、構件復用和系統集成。

參考文獻:

[1]楊芙清.軟件工程技術發展思索[J].軟件學報,2005,16(1):1-7.

[2]楊芙清,梅宏,呂建,等.淺論軟件技術發展[J].電子學報,2002,30(12A):1901-1906.

[3]呂建,馬曉星,陶先平,等.網構軟件的研究與進展[J].中國科學E輯:信息科學,2006,36(10):1037-1080.

[4]梅宏,黃罡,趙海燕,等.一種以軟件體系結構為中心的網構軟件開發方法[J].中國科學E輯:信息科學,2006, 36(10):1100-1126.

[5]SCA service component architecture-assembly model specification [EB/OL]. (2005-11).http://download.boulder.ibm.com/ibmdl/pub/software/dw/specs/ws-sca/SCA_AssemblyModel_V09.pdf.

[6]Service data objects for Java specification[EB/OL].[2006-11].http://www.ibm.com/developerworks/library/specification/ws-sdo.

[7]OASIS. Reference model for service oriented architecture 1.0 [S/OL]. [2006-12] http://docs.oasis-open.org/soa-rm/v1.0.

[8]曹寶香,劉陽.基于中間件的企業計算模型[J].計算機應用研究,2007,24(2):69-72.

[9]tuscany[EB/OL].(2003-2007). http://incubator.apache.org/tuscany.

主站蜘蛛池模板: 久久国产高清视频| 国产在线精品99一区不卡| 亚洲视频影院| 澳门av无码| 欧美日韩一区二区在线播放| 亚洲一区二区三区国产精华液| 毛片基地美国正在播放亚洲| 国产呦视频免费视频在线观看| 色首页AV在线| 中文字幕伦视频| 国产玖玖玖精品视频| 亚洲AⅤ综合在线欧美一区| 99久久精品免费看国产免费软件| 波多野结衣的av一区二区三区| 亚洲人成亚洲精品| 国产激情国语对白普通话| 真人高潮娇喘嗯啊在线观看| 亚洲精品卡2卡3卡4卡5卡区| 女人18毛片一级毛片在线 | 久久久精品国产SM调教网站| 国产91小视频在线观看| 国产尤物jk自慰制服喷水| 国产AV无码专区亚洲精品网站| 国产网站免费看| 最近最新中文字幕免费的一页| 国产一区二区丝袜高跟鞋| 久青草网站| 谁有在线观看日韩亚洲最新视频| a毛片在线播放| 色视频久久| 永久免费av网站可以直接看的| 午夜国产理论| 欧美日本一区二区三区免费| 国产人人射| 久久精品午夜视频| 色老头综合网| 国产精品偷伦视频免费观看国产| 欧美日韩激情在线| 免费人欧美成又黄又爽的视频| 日韩精品一区二区三区大桥未久| 亚洲AV一二三区无码AV蜜桃| 国产精品午夜福利麻豆| 久久国产精品波多野结衣| 91丝袜乱伦| 欧美激情伊人| 精品视频一区二区三区在线播| 97国产在线视频| 亚洲九九视频| 国产精品香蕉在线| 真人免费一级毛片一区二区| 免费在线色| 国产黑丝一区| 国产亚洲精品自在线| 国产成人高清亚洲一区久久| 国产精品美女网站| 波多野结衣一区二区三区四区| 97色婷婷成人综合在线观看| 久久99国产综合精品女同| 992Tv视频国产精品| 精品亚洲欧美中文字幕在线看| 91精品国产麻豆国产自产在线| 伊人丁香五月天久久综合 | 成人午夜精品一级毛片| 99久久精彩视频| 精品丝袜美腿国产一区| 欧美精品在线免费| 色综合久久无码网| 五月丁香伊人啪啪手机免费观看| 国产高清在线精品一区二区三区| 97精品伊人久久大香线蕉| 毛片大全免费观看| 凹凸国产分类在线观看| 丁香婷婷综合激情| 99视频精品全国免费品| 亚洲国产成人久久77| 亚洲青涩在线| 四虎AV麻豆| 欧美日本在线| 亚洲国产精品VA在线看黑人| 一区二区在线视频免费观看| 欧美爱爱网| 67194在线午夜亚洲 |