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

基于SOA的流程與數據關聯模型研究

2008-01-01 00:00:00傅向華彭小剛
計算機應用研究 2008年1期

摘要:針對企業應用系統數據密集的特點,通過深入分析面向服務的體系結構下的流程模型、數據訪問構件與數據模型之間的關聯關系,提出一個用于集成流程模型與數據模型的關聯模型。該模型由流程數據映射關系、數據訪問流兩部分組成。不僅可以用于數據訪問構件的自動生成和數據模型的優化,而且可用于維護流程模型與數據模型之間的一致性。

關鍵詞:流程模型;數據模型;面向服務的體系結構

中圖分類號:TP311.13文獻標志碼:A

文章編號:1001-3695(2008)01-0134-04

隨著企業實施的IT支持系統不斷增多、業務變更日益頻繁,要求能夠按照企業業務流程的要求迅速構建企業應用系統。Web 服務技術的興起,為建立一個適合Web環境、高度分散化、高度自治分布的應用提供了一整套標準和基礎設施[1]。而基于Web services提出的面向服務的體系結構(service oriented architecture,SOA) 是設計和構建松耦合軟件解決方案的方法。它以軟件服務的形式公開業務功能,使得其他應用程序可以通過已發布和可發現的接口來使用這些服務。通過應用SOA,一個企業可以使用一組分布式服務來構成并組織應用程序,利用服務組合語言來描述自己的業務流程,從而實現業務流程與IT系統的分離。這樣,就能通過重用他們自己的資產及其伙伴的業務功能來構造新的應用程序[2,3]。

SOA 鼓勵代碼共享和重用的方式被越來越多的人接受,與此同時,也導致了軟件系統開發方法的改變。軟件系統的開發方法正由面向功能的開發方法轉向面向服務的、面向流程的開發方法;由基于模塊的構造方法轉向基于構件的構造方法[4]。當前,流程建模、數據建模和構件開發已成為企業應用系統設計和開發的三大主要側面。然而由于歷史原因,流程建模、數據建模與構件開發之間仍然相互獨立,首先分別由不同的人員來完成,然后再由開發人員利用手工方式在多個層面上進行集成。這通常要求開發人員深入了解流程模型、軟件構件與數據模型之間的復雜關系,精通業務流程建模和數據建模兩個領域的專業知識,從而嚴重影響了系統開發的效率,增加了系統開發的復雜性。

為提高系統開發與集成的自動化和效率,已有一些研究從不同的層次探討集成問題,如B. Orrins等人[5]提出一種業務規則驅動的服務組合框架,開發出一套業務規則驅動機制來指導按需和動態的服務組合過程;D. J. Mandell等人[6]考慮采用語義Web技術更精確地描述服務,從而實現自頂向下的服務自動集成;構件的自動化組裝也是面向構件的軟件開發方法中的研究熱點[7];在數據集成方面,有支持不同數據庫的ODBC、JDBC編程接口,采用對象方式訪問關系型數據庫的對象關系映射(ORM)技術[8]以及支持統一數據訪問的服務數據對象(service data object,SDO)[9]。但是卻很少有人考慮業務流程、軟件構件和數據模型之間的集成問題,企業應用系統開發人員面臨的關鍵問題是缺乏同時支持各種開發方法,能夠統一進行應用系統開發、集成和重用的集成開發環境和體系結構[10]。當前急需可將流程建模、軟件構件開發和數據建模進行統一集成的方法,自動實現業務流程與數據模型之間的集成。

1流程模型與數據模型之間的關聯關系分析

業務流程模型和數據模型的設計是企業應用系統實施過程中的兩個重要部分。其中數據模型描述企業的靜態數據、數據聯系、數據語義以及一致性約束;業務流程模型描述為完成某一業務目標所需要進行的一系列活動。由于企業應用系統是數據密集型應用,在企業業務流程中存在大量的數據訪問操作,可以提取流程模型與數據模型中的關鍵屬性,構建流程模型與數據模型之間的關聯模型。對于reservation業務場景,利用現有的開發工具進行開發時,必須首先由構件開發人員分別編寫訪問數據庫的數據訪問構件,并用WSDL規范為每個構件定義提供服務的接口,然后再由流程開發人員在流程中的數據訪問活動與對應的數據訪問構件之間建立partnerlink,完成對數據源的訪問。利用本文提出的流程與數據集成的方法和筆者提供的工具箱,開發人員只需指定業務流程中活動的數據訪問操作類型、操作條件、性能要求,建立業務流程中的業務項與數據模型中表之間的對應關系,就可以自動生成所有的數據訪問構件,并且可以根據用戶的要求,對數據模型和生成的數據訪問構件進行優化。因此本文方法可以大大提供軟件開發的效率,改善軟件構件的質量,提高所構建的應用系統的性能。

1.1實例分析

BPEL4WS是由IBM、Microsoft等公司提出的開放的業務流程組合語言規范,越來越多的企業開始采用BPEL4WS對業務流程進行建模,基于SOA和企業服務總線實現對已有的遺產系統、軟件構件進行集成[11,12]。其定義了基本活動和結構化活動。基本活動包括empty、wait、assign、receive、invoke、reply、throw、terminate,結構化活動在基本活動之上定義因果順序,包括sequence、 flow、while、switch、pick,分別對應到順序、并行、選擇和重復四種控制結構。利用這些活動,BPEL4WS可以描述企業的業務流程。

筆者利用一個典型的旅行社預訂業務reservation應用場景來說明流程與數據集成的可行性以及為企業信息系統開發所帶來的便利。Reservation為旅行社對旅客提供旅館、航班等預訂業務的典型場景。業務流程如下:a)旅行社雇員錄入全國各地的旅館與城市之間的航班信息;b)客戶輸入用戶名登錄,系統查詢客戶名,若有該客戶信息,則登錄成功,否則,提示客戶注冊;c)客戶輸入個人信息和記賬卡信息,系統提示注冊成功,登錄;d)客戶查詢個人信息,并進行修改;e)客戶輸入查詢條件,查詢航班和旅館信息,系統顯示查詢結果;f)客戶選擇航班和旅館,進行預訂;g)客戶查詢預訂信息,系統顯示該客戶預訂信息,客戶確認;h)客戶刪除不滿意的預訂信息,重新進行預訂。

Reservation業務流程在IBM WebSphere application deve loper integrated edition(WSAD IE)中進行編排,并用BPEL4WS表示。流程中很多活動需要訪問數據模型表中的數據,如GetFlightInfo活動會對flight表進行查詢操作,LoadHotelInfo活動會對hotel表進行查詢操作等。如果在流程編排過程中,直接指定業務流程中活動的變量與數據庫中的表之間的映射關系,再指定該數據訪問的一些性能要求,就可以自動生成所有的數據訪問代碼,則可以大大簡化流程與數據之間的集成過程,提高企業信息系統的開發效率。

1.2流程數據關聯關系分析

由于BPEL4WS是一種弱數據描述語言,它使用消息屬性這個概念來識別嵌入在消息中的有關協議的數據,不能提供顯式的數據訪問操作[10]。流程并不直接進行數據訪問,當流程中包含數據訪問操作時,流程中對應的活動與提供服務的數據訪問構件建立伙伴鏈接,通過WSDL接口調用數據訪問構件來實現,其所需訪問的數據和所需進行的數據訪問操作由porttype確定,分別對應porttype中的message和operation。實際開發過程中,對于業務流程中具有數據訪問操作的活動,需要首先手工實現訪問特定數據的數據訪問構件;然后手工將其發布為服務;最后再以手工的方式在業務流程中通過服務接口調用該數據訪問構件實現對數據的訪問。這一過程非常復雜繁瑣。通過對整個集成過程分析,可以發現業務流程、服務接口描述、數據訪問構件以及數據模型之間的關系如圖1所示。

可以發現:a)業務流程中的業務項、WSDL中的消息與數據模型中的數據之間存在對應關系; b)業務流程中的活動具有數據訪問語義。

2流程數據關聯模型

數據訪問流的根節點為dataAccessFlow。ProcessName屬性指定流程的名字,processWeight指定該流程在整個全局業務流程中的權值,該值用于數據訪問構件和數據模型的優化。數據訪問流中的控制節點借鑒了BPEL4WS中結構化節點的語義[11],用sequence節點中數據訪問操作之間具有順序關系,switch節點包含case子節點,根據條件選擇符合條件的數據訪問操作。While節點表示循環,flow節點表示數據訪問操作可以并發執行,link節點表示兩個數據訪問操作之間的先后順序關系。每個數據訪問節點dataOperation指定了一個數據訪問操作。其中inputVariable指定該操作輸入變量的名稱;outputVariable指定輸出變量的名稱;dataOperationType指定數據訪問操作的類型,responseTime、onTime、activityEstimate、volumeEstimate等屬性為該數據訪問操作的性能要求,用于數據訪問構件的優化和數據模型的優化;componentType為生成數據訪問構件的類型,當前支持JavaBean和EJB兩種方式;frequency為該數據訪問操作的頻度,用于優化。InputPart和outputPart子節點用于指定數據訪問操作中輸入變量與數據庫中表的關系。該關系通過type屬性引用上面的流程數據關聯映射來實現。例如在modifyInfo數據訪問操作中,inputPart的type為edu.xjtu.ctec.bar.CustomerInfoType。通過這一信息,可以在以上實例中找到對應的businessItem節點customerInfo,該節點描述了業務項屬性與數據庫表中字段的對應關系,從而可以對該表進行操作。

4流程數據關聯模型生成器的實現

為幫助開發人員進行流程與數據的集成,本文基于Eclipse3.0集成開發環境和JSDK1.5實現了一個用于支持流程與數據集成的工具箱。其中包括流程數據關聯分析器、數據訪問構件生成器和數據模型優化器。這些工具可以獨立運行,也可以作為Eclipse的插件,與其他建模工具配合使用。其中關聯模型生成器的系統結構如圖3所示,可以用于構建流程數據關聯映射和數據訪問流。它以WBI modeler生成的流程模型文件和描述數據模型的XSD文件作為輸入,可以實現按名稱自動匹配、根據規則生成視圖、修改字段的類型及默認值、指定流程模型中活動的數據訪問操作類型和非功能性要求、根據規則計算活動的頻繁度等功能,最后輸出采用XML schema描述的流程數據關聯模型文件。

流程數據關聯模型文件可以用于后續的數據訪問構件生成、數據訪問性能優化。數據訪問構件生成器分析輸入的流程數據關聯文件,自動整合數據訪問流中定義的數據訪問操作類型、數據訪問要求以及訪問業務項與數據庫表之間的映射關系等相關信息,利用定制的模板庫,自動生成合適粒度的數據訪問構件。數據訪問優化器分析流程數據關聯模型中的數據訪問操作類型、頻繁度、數據表和數據訪問的條件列等相關信息,對數據表中的列進行加權和歸一化處理,得出每個條件列相應的分值,最后對該分值應用規則來創建索引,優化數據訪問性能。

5結束語

業務流程建模、數據建模和構件開發已經成為企業應用系統開發的三大側面,然而當前依然沒有統一的開發環境和工具能同時支持多種開發方式。針對企業應用系統具有數據密集的特點,本文通過分析流程模型與數據模型之間的關聯關系,提出一個用于構建流程模型與數據模型關聯關系的元模型。該模型由流程數據映射關系、數據訪問流組成,不僅可以用于數據訪問構件的自動生成和數據訪問性能的優化,而且可以用于維護企業IT系統中業務流程模型與數據模型之間的一致性,從而減少軟件開發的時間,降低軟件開發的復雜性。

參考文獻:

[1]KREGER H.Fulfilling the Web services promise[J].Communications of the ACM,2003, 46(6):29-34.

[2]TSALGATIDOU A,PILIOURA T.An overview of standards and rela ted technology in Web services[J].Distributed and Parallel Databases,2002,12(2~3): 135.

[3]ALBERTO S,TULLIO V,GIANCARLO S.Service oriented programming:a new paradigm of software reuse [C]//Proc of Lecture Notes in Computer Science 2319. London, UK:Springer Verlag, 2002:269-280.

[4]徐罡,黃濤,劉紹華,等.分布應用集成核心技術研究綜述[J].計算機學報,2005,28(4): 433-444.

[5]ORRINS B,YANG Jian,PAPAZOGLOU M P.A framework for business rule driven Web service composition[C]//JEUSFELD M A,PASTOR .ER 2003 Workshops, Lecture Notes in Computer Science 2814.2003:52-64.[6]MANDELL D J,McILRAITH S A.Adapting BPEL4WS for the semantic Web:the bottom up approach to Web Service Interoperation [C]//FENSEL D,et al.ISWC 2003, Lecture Notes in Computer Science 2870.2003: 227-241.

[7]任洪敏,錢樂秋.構件組裝及其形式化推導研究[J].軟件學報,2003,14(6):1066 1074.

[8]AMBLER S W.Mapping objects to relational databases[EB/OL]. Senior Consultant, Ambysoft Inc. http://www.ambysoft.com/essays/ mappingObjects.html.

[9]CASTRO P,GIRAUD F,KONURU R,et al.A programming framework for mobilizing enterprise applications [C]//Proc of the 6th IEEE Workshop on Mobile Computing Systems and Applications (WMCSA 2004). 2004:196-205.

[10]CRAWFORD C H,BATE G P,CERBAKOV L,et al.Toward an on demand service oriented architecture [J].IBM System Journal,2005,44(1):81 107.

[11]CURBERA F,GOLAND Y,KLEIN J,et al.Business process execution language for Web services[EB/OL].(2003).http://www.ibm.com/developerworks/library/ws bpel/.

[12]PASLEY J.How BPEL and SOA are changing Web services development[J].Internet Computing,2005,9(3):60-67.

[13]Extensible markup language (XML) 1.0[EB/OL]. 3rd ed.http://www.w3.org/TR/REC xml.

“本文中所涉及到的圖表、注解、公式等內容請以PDF格式閱讀原文”

主站蜘蛛池模板: 夜精品a一区二区三区| 欧美性精品| 免费一极毛片| 色香蕉网站| 国产成人免费观看在线视频| 91久久偷偷做嫩草影院电| 日韩区欧美区| 91无码人妻精品一区| 极品尤物av美乳在线观看| 国产在线观看第二页| 日本a∨在线观看| 欧美三级不卡在线观看视频| 国产在线观看91精品亚瑟| 亚洲男人在线天堂| 美女被躁出白浆视频播放| 草草线在成年免费视频2| 丰满人妻中出白浆| 又黄又湿又爽的视频| 欧美一级高清片久久99| 无码精品一区二区久久久| 日韩欧美91| 国产99精品视频| 天天综合天天综合| 久久99精品久久久久纯品| 自拍亚洲欧美精品| 午夜福利在线观看成人| 欧美人在线一区二区三区| 国产91视频观看| 欧美在线三级| 久久亚洲天堂| 无码人中文字幕| 国产激情在线视频| 亚洲成a人片7777| av在线无码浏览| 天天干伊人| 亚洲侵犯无码网址在线观看| 九一九色国产| 国产亚洲美日韩AV中文字幕无码成人| 久久窝窝国产精品午夜看片| 九九热视频精品在线| 波多野结衣第一页| 国产福利在线观看精品| 国产精品亚洲欧美日韩久久| 国产99精品视频| 黄色片中文字幕| 青青草91视频| 在线看片中文字幕| 人妻无码一区二区视频| 国产草草影院18成年视频| 青草娱乐极品免费视频| 国产十八禁在线观看免费| 亚洲AV人人澡人人双人| 亚洲第一色网站| 精品视频在线一区| 亚卅精品无码久久毛片乌克兰| 成人a免费α片在线视频网站| 啊嗯不日本网站| AV无码国产在线看岛国岛| 国产欧美日韩va另类在线播放| 华人在线亚洲欧美精品| 亚洲不卡影院| 久久大香香蕉国产免费网站| 日韩精品无码免费专网站| 91久久偷偷做嫩草影院电| 中文字幕调教一区二区视频| 国产啪在线| 成人毛片免费观看| 在线观看91香蕉国产免费| 欧美在线精品怡红院 | 色屁屁一区二区三区视频国产| 久久久久久久久久国产精品| 婷婷综合缴情亚洲五月伊| 草草线在成年免费视频2| 欧美在线黄| 免费毛片网站在线观看| 666精品国产精品亚洲| 综1合AV在线播放| 欧美一级在线播放| a级毛片毛片免费观看久潮| 色欲色欲久久综合网| 欧美成一级| 日韩欧美国产精品|