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

基于SOA架構的企業遺留系統復用研究

2008-12-31 00:00:00
電腦知識與技術 2008年35期

摘要:企業遺留系統的復用是企業信息化階段必須解決的問題,本文提出了一種基于SOA的企業遺留系統復用框架,通過Web Services將遺留系統的功能模塊包裝成服務來實現復用并結合實例予以證實,較好地解決了企業遺留系統的復用問題。

關鍵詞:遺留系統;SOA;復用;web services

中圖分類號:TP311文獻標識碼:A文章編號:1009-3044(2008)35-2072-02

Research on Reuse of Enterprise Legacy Systems Based on SOA

XU Peng

(College of Computer Information, Hefei University of Technology, Hefei 230009, China)

Abstract: The reuse of enterprise legacy system is a problem that must be solved in the phase of enterprise informationization. The paper proposes a enterprise reuse framework based on SOA, realize reuse by encapsulating functional modulates of enterprise legacy system to services by Web Services and give a example to illustrate it. which solve problem of reuse of enterprise legacy system well.

Key words: legacy system; SOA; reuse; web services

1 引言

隨著信息技術快速發展,企業信息化的進程也日益加快,企業經過多年的信息化建設已經為不同的部門以及應用構建了多個應用系統,諸如ERP、CRM、SCM、MIS等系統。而不同技術階段構建的軟件系統的異構度和復雜度也不斷增加。將彼此孤立的系統整合在一起協調工作至關重要。上世紀90年代興起的EAI(企業應用集成)技術通過定義私有的數據結構、通訊協議和適配器接口來整合企業的異構系統、應用和數據。但實踐證明EAI技術缺乏必要的靈活性和適應性,擴展性較差。近年來面向服務架構(SOA)的概念走入人們的視野并被廣泛接受。SOA的本質是將業務應用的功能以服務的形式提供給最終的用戶。SOA使軟件系統向“柔性化”邁進了一大步。本文主要研究基于SOA架構的Web Services實現的遺留系統的復用。

2 相關技術

2.1 SOA軟件架構

回顧軟件復用技術發展的歷程,從代碼復用、對象復用、組件復用發展到服務級別的復用,SOA是一個系統架構層次的概念,其中所有的功能或服務都使用描述語言加以定義,并且各自的接口都可以通過網絡發現。這個接口采用獨立方式定義,不受服務實現的硬件平臺、操作系統和編程語言的影響。SOA定義了一個體系架構,利用開放的標準將軟件資產轉化為服務,提供標準的方法來表示軟件資產及其交互,把單獨的軟件資產變成構造單元,被重復使用來開發其他應用,把關注點從實現細節轉移到應用組裝,在外部使用來整合企業外部的應用。

2.2 Web Services

Web Services是一種部署在Web上的對象,它們具有對象技術所承諾的所有優點,同時Web Services是以XML為主的、開放的Web規范技術基礎上,因此具有比現在任何對象技術更好的開放性,是建立可操作的分布式應用程序的新平臺。具有以下特征:良好的封裝性、松散耦合、使用標準的協議和規范、高度的可集成能力。目前Web Services是目前最好的實現SOA的技術。

2.3 與傳統的軟件復用方法的比較

面向服務技術(SOA)與面向對象技術和面向組件技術密切相關。對象、組件和服務都是對現實世界的抽象描述,從軟件復用角度來看,面向對象技術實現了類級復用,它以類為封裝單位。組件技術將復用提高到一個更高層次上,它是對一組類的組合進行封裝并代表完成一個或多個功能的特定服務,也為用戶提供了多個接口。但在組件的使用上,由于存在語言環境的差異,在異構系統中調用困難,難以跨越防火墻。而服務是通過流程的編排來實現粗粒度的復用,粗粒度的服務組件越來越成為復用的目標。在SOA體系結構中。服務是被精確定義、封裝完善、獨立于其他服務所處環境和狀態并應用于業務流程的可重用的業務組件。因此SOA架構給軟件開發人員提供了一個更行之有效的、復用粒度更大的方法,它將傳統的技術層面的復用提升到商業邏輯層面的復用,將企業的需求劃分成服務,然后按照商業規則重組這些服務,以滿足不同使用者的需求。

3 SOA架構的軟件復用框架

SOA和傳統的系統構建方法不同,它不是完全以應用為中心,而是以服務為中心構建。服務是粗粒度、松耦合的。WSDL的設計理念完全繼承了以XML為基礎的當代Web技術標準的一貫設計理念:開放。WSDL允許通過擴展使用其他的類型定義語言(不光是XML Schema),允許使用多種網絡傳輸協議和消息格式(不僅包括SOAP/HTTP,HTTP-GET/POST和MIME等)。同時WSDL也應用了當代軟件工程中的復用理念,分離了抽象定義層和具體部署層,使得抽象定義層的復用性大大增加。比如可以先使用抽象定義層為一類Web Services進行抽象定義(比如UDDI Registry,抽象定義肯定是完全一致的遵循了UDDI規范),而不同的運營公司可以采用不同的具體部署層的描述結合抽象定義完成其自身的Web Services的描述。因此用WSDL來描述Web Services封裝的服務接口是企業遺留系統復用的基礎。圖1是基于SOA架構的企業遺留系統復用框架。

層1:遺留系統,包含現有的CRM、SCM和ERP打包應用程序以及一些較舊的基于對象的系統實現、業務智能應用程序和遺留系統的數據。

層2:服務組件層, 重用是SOA思想的重要原則。因此在SOA架構的體系結構中必須充分重用現有的應用系統。為了使這些現有的應用系統以一種松散耦合的方式集成。可以將現有的信息系統封裝成Web服務,使它們以統一的方式WSDL暴露接口。將它們原來以各種API形式暴露的接口用WSDL重新描述,然后使用http或soap的消息傳輸方式作為與外界交互的橋梁。用Web Services封裝的接口可以屏蔽原有系統的實現細節,消除不同技術之間集成的困難。Web Services封裝使外部應用程序以統一的松散耦合的方式使用系統服務,當系統的業務邏輯需要更改時,只要WSDL描述的接口不變,無論系統的業務邏輯、實現技術甚至是更換全新的應用系統,客戶程序都不需要發生任何改變。因此服務組件層將遺留系統按照適當的粒度進行分解然后使用Web Services加以封裝成服務組件。

層3:連接層,ESB是過去消息中間件的發展,采用總線這種模式來管理和簡化應用之間的集成拓撲結構,以廣為接受的開放標準為基礎來支持應用之間在消息、事件和服務級別上動態的互聯互通。ESB將應用程序組件抽象為一個服務集,這些是可重用的、接口定義清晰良好的服務通過總線進行交互(而不是直接的點到點通信交互)。ESB著重解決SOA中的兩個重要問題,也即服務的聲明和發現。

層4:服務層,服務發現中被確定的公開服務處在這一層。它們可以被發現或者直接靜態綁定,接下來被調用,或者被編排到合成服務服務。這一層的接口公開為一個描述,在這一層中它們被公開以提供使用。它們可以獨立存在或者作為合成服務。

層5:業務層,服務層中公開的服務合成和編排在這一層中被定義。通過配合、編排,服務被綁定成一個流程,通常情況下使用基于XML的WS-BPEL語言進行業務流程描述。SOA中企業的業務流應該是對粗粒度的服務的組裝和排序,服務的不同組合方式代表了企業的不同的業務過程,從而實現動態業務模型。當企業的業務流程發生變化時,只要調整服務之間的組裝方式就能響應業務的變化,使企業以最快的速度滿足市場需求,真正意義上實現了遺留系統的復用。

層6:訪問或表示層,是企業業務流程的入口,在表示層中通過輸入消息到業務層中的業務流引擎中去執行某一業務過程。

當然在遺留系統重用的過程中也需要考慮服務質量,安全性等問題,在此不再闡述。總之,通過復用框架可以看到SOA架構在遺留系統的復用過程中具有獨特的優勢。

4 SOA架構的企業遺留系統復用實現

要想實現對企業遺留系統的復用首先要了解遺留系統,對遺留系統的功能粒度進行劃分,設計出封裝的粒度,然后將其封裝成Web服務。但需要注意的是并非企業遺留系統的所有功能模塊都可以進行Web Services封裝,如果遺留系統中功能模塊的剝離成本要高于重新開發的成本則無需封裝直接編寫新的Web服務模塊。下面在.NET框架中利用Web Services從數據、事務、應用程序三個層次來對B/S模式下的企業新聞管理系統進行封裝。

4.1 數據層上封裝

數據層上封裝是指直接使用遺留系統的數據,利用Web Services對遺留系統的數據層進行封裝,將數據的接口用WSDL來描述通過SOAP傳送給服務使用者;同理Web Services也可以接受服務使用者通過SOAP傳回的數據,經過業務邏輯處理更新遺留系統的數據庫。典型代碼如下:

[WebMethod]

Public DataSet GetNewsInfo()

{

String sqlstr=”select * from news”;

SqlConnecton con=new SqlConnection(“server=local;database=news;uid=sa;pwd=super”);

DataSet ds=new DataSet();

SqlDataAdapter sda=new SqlDataAdapter(sqlstr,con);

Sda.Fill(ds,”news”);

Return ds;

}

在.NET框架中生成包含該Web方法的解決方案,一個封裝新聞管理系統的數據庫中的原始數據的Web Service就生成了。

4.2 事務層次上封裝

如果遺留系統的功能模塊是以DLL形式存在的,且對外提供運行時可訪問的接口,同時被其他程序調用,因此對Web Service來說,只需要簡單地包裝遺留系統功能模塊DLL,然后增加一些面向新應用的業務邏輯處理就可以返回給服務的使用者了。在新聞管理系統中有這樣的事務處理功能,當用戶向news表中發布一條新聞后,相應的新聞的數目加1而且關聯的表(新聞類別表)的nums字段也應加1。該事務由兩個功能模塊組成,一個是托管的DLL-insNews.dll,用于向news表中插入數據;二是在新聞管理系統中還存在一個私有的功能模塊UpdNewsClassN用戶給對應的newsclass表中的nums字段加1。典型代碼如下:

[WebMethod(Description=”添加新聞并修改新聞類別表中響應新聞的數量”)]

Public void ins_upd_opt(int newsid){

insNews.InsNews ins=new insNews.InsNews();//實例化DLL

ins.InsertNews(newsid);//調用DLL中的InsertNews方法向news表中插入一條記錄

UpdNewsClassN(newsid)//調用私有方法,執行事務的第二個操作,修改newsclass表中的nums字段的值

}

執行解決方案,相應的Web Service就生成了。

4.3 應用程序層的封裝

與前面的兩個層次的封裝相比較,應用程序層的封裝可以做得比較單一,直接激活可執行文件程序的進程,不需要從應用程序返回數據。下例的Web Service包含一個帶兩個參數的Web方法“webuseExe”,用來調用一個應用程序。其中第一個參數確定應用程序的文件名,第二個參數為輸入參數。Web Services代碼如下:

[WebMethod]

public void invokeExe(string filename,string argumentsName){

process pro=new Process();

pro.StartInfo.UseShellExecute=1;

pro.StartInfo.FileName=filename;

pro.StartInfo.Arguments=argumentsName;

pro.StartInfo.CreateNoWindow=true;

pro.Start();

}

當調用該Web Service輸入響應參數就可以在Web上使用封裝后的應用程序。

通過前面描述的復用框架圖封裝后Web Services可以隨著企業業務流程的變化而重新編排組合供企業內部或外部用戶使用,實現了企業遺留系統的復用。當然在重用遺留系統的過程中,可能需要對遺留系統的功能、服務質量進行擴展和補充。

5 結語

本文對SOA和Web Services進行簡要分析,提出了SOA架構的復用框架,在此框架的基礎上利用Web Services對遺留系統的部分模塊進行封裝實現了復用。實踐證明,基于SOA架構Web Services實現的企業遺留系統的復用前景廣闊, SOA架構以其獨特的優勢在企業信息化進程中扮演重要的角色。解決了在Internet環境下企業資源共享問題,解決了在web上實現了對C/S和B/S遺留系統的復用問題。

參考文獻:

[1] 肖毅,王永俊.對遺留系統的Web服務封裝[J].電腦知識與技術,2007(23):773-775.

[2] 毛新生.SOA原理?方法?實踐[M].北京:電子工業出版社,2007.

[3] 顧寧,劉家茂,柴曉路.Web Services原理與研發實踐[M].北京:機械工業出版社,2007.

[4] 卞永剛,徐浩,王茜.基于Web Services的遺留系統包裝平臺的研究和實現[J].計算機時代,2004(12):26-29.

[5] 岳永軍.遺產系統向基于SOA的企業應用系統遷移的研究與實現[D].西安:西安電子科技大學,2007.

[6] 謝剛,張為群.C/S遺留系統到SOA系統移植框架研究[J].計算機科學,2007,34(11):301-303.

[7] 童鑫,李軍義.面向SOA的企業服務總線研究與實現[J].計算機應用,2008,28(3):819-822.

[8] Li Jian-zhi,Zhang Zhuo-peng,Qiao Bing.Component Mining Approach to Incubate Grid Services in Object-Oriented Legacy Systems[J].International Journal of Automation and Computing,2006(1):47-55.

主站蜘蛛池模板: 亚洲日韩AV无码精品| 福利在线一区| 国产精品私拍在线爆乳| 国产白丝av| 国产福利观看| 99久久精品国产麻豆婷婷| 思思热在线视频精品| 四虎永久免费在线| 国内老司机精品视频在线播出| 国产成人精品视频一区二区电影| 91最新精品视频发布页| 久久久久亚洲精品成人网 | 欧美中文字幕一区| 久久人搡人人玩人妻精品一| 国产精品无码久久久久AV| 中文字幕在线不卡视频| 欧美一区国产| 黑色丝袜高跟国产在线91| 中文字幕免费视频| 青青青视频免费一区二区| 精品视频在线一区| 午夜a级毛片| 欧美另类视频一区二区三区| 国产91无码福利在线| 天堂网亚洲系列亚洲系列| 国产一区二区影院| 午夜激情婷婷| 97免费在线观看视频| 国产成人精品三级| 欧美一级在线| 9丨情侣偷在线精品国产| av无码一区二区三区在线| 四虎影视8848永久精品| 青青草原偷拍视频| 国产91全国探花系列在线播放| 人妻中文久热无码丝袜| jizz在线观看| 女人18毛片一级毛片在线| 精品国产电影久久九九| 亚洲色欲色欲www网| www.91在线播放| 免费大黄网站在线观看| 午夜啪啪福利| 国产视频自拍一区| 亚洲中字无码AV电影在线观看| 国产成人91精品免费网址在线| 尤物精品国产福利网站| 中国特黄美女一级视频| 中国黄色一级视频| 国产在线精彩视频二区| 亚洲欧美成人在线视频| 网久久综合| 精品国产网| 国产亚洲欧美在线专区| 亚洲成人精品久久| 亚洲美女一区二区三区| 日韩福利在线视频| 国产成人一二三| 天天躁夜夜躁狠狠躁图片| 日韩精品一区二区三区大桥未久 | 第一页亚洲| 92精品国产自产在线观看| 国产日韩欧美一区二区三区在线| 亚洲国产成人超福利久久精品| 免费无码一区二区| 东京热高清无码精品| 2021国产在线视频| 性视频久久| 色噜噜狠狠狠综合曰曰曰| 国产H片无码不卡在线视频 | 伊人丁香五月天久久综合| jizz在线免费播放| 99这里精品| 久青草国产高清在线视频| 欧美高清三区| 国产美女免费| 色网站免费在线观看| 久久99热66这里只有精品一| 亚洲第一黄片大全| 天堂亚洲网| 97se综合| 免费一级无码在线网站|