亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        500 Internal Server Error


        nginx
        500 Internal Server Error

        500 Internal Server Error


        nginx
        500 Internal Server Error

        500 Internal Server Error


        nginx
        500 Internal Server Error

        500 Internal Server Error


        nginx

        面向服務(wù)架構(gòu)的演化和應(yīng)用

        2011-04-07 05:50:28戴建國趙慶展
        關(guān)鍵詞:服務(wù)系統(tǒng)

        戴建國,梁 斌,趙慶展,郭 理,趙 欣

        (石河子大學(xué)信息科學(xué)與技術(shù)學(xué)院,新疆石河子832000)

        0 前言

        面向服務(wù)的體系架構(gòu)是一種異構(gòu)系統(tǒng)間共享信息的軟件設(shè)計(jì)方式[1],其目的是為了解決異構(gòu)平臺軟件系統(tǒng)之間的集成問題。在國外很多大的軟件廠商如IBM、BEA等提供SOA的解決方案和中間件產(chǎn)品。國內(nèi)的SOA應(yīng)用還處在概念宣傳和試用階段[2],但很多應(yīng)用SOA的需求都已出現(xiàn)。

        SOA的首要目標(biāo)是業(yè)務(wù)敏捷性,通過建設(shè)靈活的IT幫助業(yè)務(wù)快速應(yīng)變[3]。其實(shí)施從軟件到企業(yè)的管理方式都會(huì)發(fā)生相應(yīng)的變化。所以SOA實(shí)質(zhì)是一種業(yè)務(wù)架構(gòu),是企業(yè)為了適應(yīng)市場的快速變化而采用的戰(zhàn)略性業(yè)務(wù)架構(gòu)[4],而不是能夠買來的技術(shù),而且沒有現(xiàn)成的工具能夠立即生成SOA的解決方案[5]。

        由于SOA的本質(zhì)是抽象于具體架構(gòu)之上的一種思想,而不是一種具體的架構(gòu)實(shí)現(xiàn),所以只有圍繞著松散耦合、粗粒度、服務(wù)位置和傳輸協(xié)議透明這些SOA的核心思想去思考和構(gòu)建軟件系統(tǒng),并能夠真正實(shí)現(xiàn),才是實(shí)現(xiàn)了SOA[6]。同時(shí),SOA一般也不是從頭構(gòu)建的系統(tǒng),而是通過對現(xiàn)有系統(tǒng)資源不斷整合得到。本文從一個(gè)簡單的Web系統(tǒng)開始,隨著需求的變化不斷重構(gòu)系統(tǒng)的架構(gòu),并給出各個(gè)階段系統(tǒng)的架構(gòu)方案,從而最終自然演化成為面向服務(wù)架構(gòu),并使用開源的ESB總線實(shí)現(xiàn)了設(shè)計(jì)方案。

        1 三層架構(gòu)設(shè)計(jì)

        1.1 普通三層架構(gòu)

        兵團(tuán)社會(huì)經(jīng)濟(jì)信息系統(tǒng)最初需求是開發(fā)一個(gè)簡單的B/S結(jié)構(gòu)系統(tǒng),可以方便用戶查詢,十幾個(gè)表,需求較為簡單,系統(tǒng)總體結(jié)構(gòu)如圖1所示,普通用戶客戶端和系統(tǒng)管理客戶端通過瀏覽器進(jìn)行。系統(tǒng)采用了簡單的三層架構(gòu),采用jsp作為顯示層,應(yīng)用層采用servlet,訪問數(shù)據(jù)庫的數(shù)據(jù)層采用jdbc連接,數(shù)據(jù)操作使用sql語句,由于sql語句與具體數(shù)據(jù)庫產(chǎn)品相關(guān),所以系統(tǒng)與具體的數(shù)據(jù)庫產(chǎn)品是緊耦合的,系統(tǒng)架構(gòu)圖如圖2所示。當(dāng)前系統(tǒng)是一個(gè)非常普通的Web應(yīng)用。

        1.2 基于Spring+Struts+Hibernate的三層架構(gòu)

        隨著開發(fā)的進(jìn)行,各個(gè)子課題對于社會(huì)經(jīng)濟(jì)數(shù)據(jù)庫的要求發(fā)生了變化,增加了很多數(shù)據(jù),而且數(shù)據(jù)還有可能持續(xù)發(fā)生變化,數(shù)據(jù)訪問層頻繁發(fā)生修改,很容易出錯(cuò),需要降低各層之間緊耦合狀態(tài),分離出服務(wù)層。系統(tǒng)改為采用常見的SSH(Struts+Spring+Hibernate)搭配,系統(tǒng)訪問模式和整體架構(gòu)不發(fā)生變化,各層采用相應(yīng)的開發(fā)框架,界面層采用Struts2框架,數(shù)據(jù)訪問層采用Hibernate框架,Spring作為應(yīng)用框架,主要提供對象工廠和事務(wù)管理功能,以最大程度的使各層解耦,并簡化事務(wù)管理。此時(shí)系統(tǒng)的架構(gòu)沒有變化,只是三層架構(gòu)采用了相應(yīng)的開發(fā)框架,增加了系統(tǒng)的靈活性和健壯性,具體如圖3所示。

        圖3 SSH開發(fā)框架圖

        2 混合架構(gòu)

        2.1 普通混合架構(gòu)模式

        在開發(fā)過程中,數(shù)據(jù)的管理方式被考慮進(jìn)來,調(diào)查發(fā)現(xiàn)數(shù)據(jù)來源比較復(fù)雜,需要從其他地方獲取數(shù)據(jù)并進(jìn)行人工核實(shí)和篩選,數(shù)據(jù)量比較大,單靠通過管理員以后臺方式管理數(shù)據(jù)很麻煩,建立數(shù)據(jù)管理客戶端軟件非常有必要,這樣系統(tǒng)就采用了兩種管理模式:一種是C/S客戶端管理;一種是使用瀏覽器進(jìn)行后臺管理,系統(tǒng)演變成了B/S和C/S的混合架構(gòu)模式。如圖4所示是混合模式的架構(gòu)圖,其中新增了C/S結(jié)構(gòu)。兩種管理模式對數(shù)據(jù)庫的訪問方式如圖5所示。

        2.2 采用遠(yuǎn)程方法調(diào)用的混合架構(gòu)模式

        當(dāng)前系統(tǒng)已經(jīng)可以滿足訪問和維護(hù)的要求,但是存在一個(gè)問題:服務(wù)器端和客戶端軟件除了界面層和應(yīng)用層不一樣,實(shí)體層(實(shí)體類、Hibernate配置文件、Hibernate映射文件)必須保持一模一樣,數(shù)據(jù)訪問層代碼也基本相同,這樣不但出現(xiàn)大量的代碼冗余,系統(tǒng)升級和維護(hù)時(shí)必須同時(shí)維護(hù)兩處相同的代碼,很不方便而且容易出錯(cuò)。系統(tǒng)改變?yōu)閷?shù)據(jù)訪問邏輯置于服務(wù)器端,客戶端以遠(yuǎn)程方法調(diào)用的方式進(jìn)行訪問,這樣客戶端和服務(wù)器端只需要保持相同的數(shù)據(jù)訪問接口。由于客戶端和服務(wù)端都使用java開發(fā),所以可以采用rmi技術(shù)實(shí)現(xiàn)[7]。系統(tǒng)演化成如圖6的方式。

        服務(wù)器端生成服務(wù)代理,客戶端通過遠(yuǎn)程方法調(diào)用(Rmi)服務(wù)器端的方法,這樣數(shù)據(jù)訪問邏輯只需要在服務(wù)器端生成一次,客戶端不需要相應(yīng)的實(shí)體類和Hibernate配置文件,系統(tǒng)維護(hù)和升級都很方便。

        3 點(diǎn)對點(diǎn)Web服務(wù)集成

        3.1 服務(wù)發(fā)布與調(diào)用模式

        兵團(tuán)社會(huì)經(jīng)濟(jì)信息系統(tǒng)需要為其余各個(gè)子課題提供數(shù)據(jù)服務(wù),如農(nóng)情系統(tǒng),水資源監(jiān)測等,而各子課題是平臺異構(gòu)的,有的使用.net,有的使用vb。為了讓各子系統(tǒng)使用社會(huì)經(jīng)濟(jì)數(shù)據(jù),系統(tǒng)結(jié)構(gòu)進(jìn)一步發(fā)生變化,將數(shù)據(jù)的獲取以Web服務(wù)的方式發(fā)布,其余子課題獲取服務(wù)。系統(tǒng)演化成為如圖7所示結(jié)構(gòu)。

        圖6 改進(jìn)后的混合架構(gòu)開發(fā)架構(gòu)圖

        3.2 點(diǎn)對點(diǎn)Web服務(wù)集成

        由于各個(gè)子系統(tǒng)之間有相關(guān)性,比如農(nóng)情信息系統(tǒng)會(huì)需要水資源與水災(zāi)害的數(shù)據(jù)和分析結(jié)果。這樣發(fā)生了子系統(tǒng)之間的相互調(diào)用,由于平臺異構(gòu),各子系統(tǒng)如果要調(diào)用對方的操作,只能以服務(wù)的方式進(jìn)行,所以最終各個(gè)子課題都會(huì)發(fā)布與調(diào)用服務(wù),既是服務(wù)的消費(fèi)者也是服務(wù)的提供者。這就是點(diǎn)對點(diǎn)的Web服務(wù)集成,具體如圖8所示。

        點(diǎn)對點(diǎn)的Web服務(wù)集成相當(dāng)于一種“私下交易”,這種“私下交易”的缺點(diǎn)是服務(wù)的消費(fèi)者必須知道服務(wù)提供者的位置,這樣就使得消費(fèi)者與提供者之間緊耦合,服務(wù)提供者發(fā)布一項(xiàng)服務(wù)就需要通知所有的消費(fèi)者,如果服務(wù)提供者的地點(diǎn)或者服務(wù)接口發(fā)生了更改,所有消費(fèi)者必須改動(dòng)并且重新編譯。并且,如果服務(wù)發(fā)生故障不能使用,也沒有失效備援機(jī)制和安全管理機(jī)制,整個(gè)系統(tǒng)缺乏對服務(wù)的統(tǒng)一管理。

        圖7 提供Web服務(wù)的開發(fā)架構(gòu)圖

        圖8 點(diǎn)對點(diǎn)web服務(wù)集成

        為了改變服務(wù)提供者和服務(wù)消費(fèi)者的緊耦合現(xiàn)象,方便各子系統(tǒng)發(fā)布、發(fā)現(xiàn)和調(diào)用服務(wù),需要一個(gè)基礎(chǔ)設(shè)施的支持,即企業(yè)服務(wù)總線(ESB)。ESB相當(dāng)于服務(wù)中介,其職責(zé)是使消費(fèi)者能夠調(diào)用供應(yīng)者提供的服務(wù)[8],能夠?qū)Ψ?wù)進(jìn)行管理,使得服務(wù)提供者對于服務(wù)消費(fèi)者透明,消費(fèi)者無需知道是誰為它提供服務(wù),當(dāng)然也可以明確選擇某幾個(gè)提供者,服務(wù)提供者發(fā)生了更改無需通知消費(fèi)者,消費(fèi)者可以處于“幸福的無知狀態(tài)”,這樣使得服務(wù)提供者和消費(fèi)者之間完全解耦。這就是面向服務(wù)架構(gòu),采用ESB后的系統(tǒng)架構(gòu)如圖9所示。

        采用ESB的好處不僅僅是提供了松耦合的架構(gòu),而且還可以提供如下功能[9]:

        (1)負(fù)載均衡,如果有多個(gè)服務(wù)提供者可以對同一個(gè)服務(wù)請求提供服務(wù),則可以根據(jù)負(fù)載均衡的原則選擇服務(wù)提供者。

        (2)安全管理,提供統(tǒng)一的安全標(biāo)準(zhǔn)和規(guī)則。

        (3)服務(wù)聚合,可以對小的服務(wù)進(jìn)行聚合而成大的服務(wù),也就是服務(wù)的編排??梢赃x擇聚合方式和粒度,靈活的根據(jù)適應(yīng)外界的規(guī)則變化對信息系統(tǒng)提出的新要求。

        (4)監(jiān)控功能,主動(dòng)觀察總線的服務(wù)性能、分析某項(xiàng)服務(wù)調(diào)用的高峰期、服務(wù)調(diào)用是否完整等。

        圖9 面向服務(wù)的系統(tǒng)架構(gòu)圖

        4 面向服務(wù)架構(gòu)

        4.1 基于Webservice的服務(wù)設(shè)計(jì)

        SOA思想本身并沒有規(guī)定在以面向服務(wù)思想為指導(dǎo)的應(yīng)用程序的構(gòu)造過程中必須使用的實(shí)現(xiàn)技術(shù)。而在現(xiàn)實(shí)當(dāng)中,使用最多的用于實(shí)現(xiàn)SOA的技術(shù),莫過于Web服務(wù)。Web服務(wù)是一套開放標(biāo)準(zhǔn),它可以指導(dǎo)建立分布式應(yīng)用平臺,使得運(yùn)行在不同操作系統(tǒng)和不同程序語言實(shí)現(xiàn)的功能模塊,能夠通過它提供的中立的接口描述,有效地進(jìn)行分工協(xié)作[10]。Web服務(wù)技術(shù)和以前的分布式計(jì)算技術(shù)比較,具有更好的可靠性、可擴(kuò)展性、易用性和協(xié)議開放性[11]。

        系統(tǒng)服務(wù)的發(fā)布采用了Spring+XFire的框架創(chuàng)建和描述服務(wù),以登錄操作為例,下面是描述服務(wù)的service-servlet.xml文件部分內(nèi)容。

        4.2 基于Synapse的企業(yè)服務(wù)總線

        服務(wù)總線很多,開源和商業(yè)的都有很多應(yīng)用,在實(shí)際項(xiàng)目中采用了開源的總線系統(tǒng),Apache的Synapse作為項(xiàng)目的服務(wù)總線,Synapse采用輕量級的XML和Web服務(wù)為中心的消息模型。它本身并不創(chuàng)建服務(wù),只是提供服務(wù)的注冊和路由等管理。下面是登錄服務(wù)發(fā)布的部分內(nèi)容。

        4.3 服務(wù)調(diào)用

        服務(wù)發(fā)布完畢后,在客戶端就可以編寫程序進(jìn)行服務(wù)的調(diào)用??蛻舳耸紫葎?chuàng)建RPCServiceClient類型的對象,并初始化其擁有的Option對象類型的屬性,最后調(diào)用RPCServiceClient的invokeBlocking方法,該方法會(huì)調(diào)用服務(wù)提供者的相應(yīng)方法,最終將調(diào)用結(jié)果返回。

        4.4 效果

        為了不斷適應(yīng)需求的變化,為異構(gòu)的軟件系統(tǒng)提供互操作,兵團(tuán)社會(huì)經(jīng)濟(jì)信息系統(tǒng)的軟件架構(gòu)最終演化為面向服務(wù)的架構(gòu)。企業(yè)服務(wù)總線的建立,使得該架構(gòu)為集成更多的軟件系統(tǒng)提供了基礎(chǔ)設(shè)施上的支持。各異構(gòu)的子系統(tǒng)都可以在總線上發(fā)布或查找服務(wù),從而實(shí)現(xiàn)系統(tǒng)集成的目標(biāo)。

        5 結(jié)束語

        采用基于SOA企業(yè)應(yīng)用集成方式能有效解決系統(tǒng)集成的問題,克服傳統(tǒng)集成方式耦合度高、安全性和靈活性差、集成成本過高等缺點(diǎn)[12],甚至完成傳統(tǒng)集成方式無法完成的集成問題。但SOA并不能一蹴而就,是為了集成異構(gòu)系統(tǒng)而不斷演化的結(jié)果。通過兵團(tuán)社會(huì)經(jīng)濟(jì)信息系統(tǒng)的不斷演化從而最終實(shí)現(xiàn)面向服務(wù)架構(gòu),展現(xiàn)了SOA的實(shí)現(xiàn)過程,并在該過程中表現(xiàn)了SOA如何通過不斷降低系統(tǒng)之間的耦合和依賴,實(shí)現(xiàn)異構(gòu)系統(tǒng)的快速集成,從而達(dá)到業(yè)務(wù)的敏捷性。

        [1] 陳朋,李光耀.基于面向服務(wù)體系結(jié)構(gòu)SOA的軟件開發(fā)[J].河南科技大學(xué)學(xué)報(bào):自然科學(xué)版,2006,27(5):29-31.

        [2] 常政.SOA中國企業(yè)應(yīng)用現(xiàn)狀調(diào)查[J].程序員,2007(6):68-69.

        [3] 毛新生.此SOA非彼SOA[J].程序員,2007(6):48-51.

        [4] 尹紅麗,王永明.面向服務(wù)的體系結(jié)構(gòu)主要實(shí)現(xiàn)技術(shù)比較研究[J].計(jì)算機(jī)科學(xué),2009,36(1):282-285.

        [5] David C,Tyler J.JavaWeb Services[M].New York:O’Reilly Press,2002.

        [6] 王滿紅,陳榮華.SOA概念、技術(shù)與設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2007.

        [7] 葉乃文.Java2基礎(chǔ)知識[M].北京:機(jī)械工業(yè)出版社,2005.

        [8] 梁愛虎.SOA應(yīng)用詳解[M].北京:電子工業(yè)出版社,2007.

        [9] 楊彩,劉曉霞,賈松浩.基于SOAP的異構(gòu)系統(tǒng)集成的研究與應(yīng)用[J].計(jì)算機(jī)應(yīng)用與軟件,2008,25(4):79-81.

        [10] 倪志剛,王銘孜,黃兆勤.SOA權(quán)威指南:通過BEA Aqualogic Service Bus實(shí)現(xiàn)[M].北京:電子工業(yè)出版社,2008.

        [11] NicolaiM J.SOA實(shí)踐指南[M].程樺,譯.北京:電子工業(yè)出版社,2008.

        [12] 張海軍,史維峰,劉偉.基于SOA企業(yè)應(yīng)用集成框架研究與實(shí)現(xiàn)[J].計(jì)算機(jī)工程與設(shè)計(jì),2008,29(8):2085-2088.

        猜你喜歡
        服務(wù)系統(tǒng)
        Smartflower POP 一體式光伏系統(tǒng)
        WJ-700無人機(jī)系統(tǒng)
        ZC系列無人機(jī)遙感系統(tǒng)
        北京測繪(2020年12期)2020-12-29 01:33:58
        基于PowerPC+FPGA顯示系統(tǒng)
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        半沸制皂系統(tǒng)(下)
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        服務(wù)在身邊 健康每一天
        500 Internal Server Error

        500 Internal Server Error


        nginx
        500 Internal Server Error

        500 Internal Server Error


        nginx
        500 Internal Server Error

        500 Internal Server Error


        nginx
        500 Internal Server Error

        500 Internal Server Error


        nginx
        500 Internal Server Error

        500 Internal Server Error


        nginx
        一本一道久久精品综合| 99re国产电影精品| 激情视频在线观看免费播放| 在线播放草猛免费视频| 人人妻人人狠人人爽| 好男人视频在线视频| AV中文字幕在线视| 精品一区二区三区亚洲综合| 奶头又大又白喷奶水av| 亚洲av无码专区国产乱码不卡| 亚洲地区一区二区三区| 蜜桃传媒免费观看视频| 国产成人精品优优av| 午夜精品久久久久成人| 日本女优中文字幕看片| 午夜视频一区二区在线观看| 亚洲国产精品无码av| 久久精品无码中文字幕| 亚洲人成网站18男男| 国产成人精品久久二区二区91| 97se亚洲国产综合自在线观看 | 日本高清www午色夜高清视频| 黑人巨大精品欧美一区二区| 国产啪精品视频网站丝袜| 杨幂二区三区免费视频| 中文字幕亚洲综合久久天堂av| 手机看片福利一区二区三区| 51精品视频一区二区三区| 人妻少妇被猛烈进入中文| 成品人视频ww入口| 亚洲熟女少妇一区二区| 国产免费人成视频在线观看播放| 国产一区二区三区不卡在线观看 | 国产自拍精品视频免费观看| 国产精品国产三级国产av品爱 | 亚洲人在线观看| 亚洲av精品一区二区| 国产成人精品免费视频大全软件| 亚洲av片不卡无码久久| 亚洲精品天堂在线观看| 亚洲男人av天堂久久资源|