王秀艷
(大同煤炭職業(yè)技術學院信息工程系,山西 大同 037003)
SOA是一種可以在不同系統(tǒng)間共享資源信息的軟件開發(fā)方式。對于軟件重用和集成問題,它可以用更高效的方法去解決,使用SOA進行軟件開發(fā),公司可以更快速的建立起模塊化、開放的軟件部分,Web服務技術是比較有代表特點的,在SOA體系結(jié)構(gòu)研究基礎上實現(xiàn)的技術。SOA對公司有很多益處,比如,縮短軟件開發(fā)的時間,快速的發(fā)掘新的業(yè)務,可以運用現(xiàn)有資產(chǎn),不需要從頭來過,節(jié)約了成本。有利于集中管控,Web服務比較以前的計算技術具有更良好的可靠性和簡易性。為了應對市場的走向變化,對企業(yè)的系統(tǒng)也提出了挑戰(zhàn)和要求,如快捷服務、重用資源、迅速建構(gòu)等特點,這都是企業(yè)系統(tǒng)需要所具備的優(yōu)點,而SOA軟件體系結(jié)構(gòu)就是滿足這些特點的結(jié)構(gòu),SOA的服務就是把程序的功能單獨拿出來也能良好運行。
(1)基本概念。SOA用漢語來講就是面向服務的體系結(jié)構(gòu)。服務是程序中不同的功能單位。SOA體系結(jié)構(gòu)就是多個服務聯(lián)系起來組成的。大多數(shù)接口定義采用的中立方式,它的主要特點是不同功能單元之間有松散耦合,而松散耦合具備靈活性高和服務結(jié)構(gòu)變化時能保持不變的特點,相異的兩個程序中相異的兩個組件借口與對應的功能,在松散耦合下能緊密聯(lián)合。
(2)SOA體系的優(yōu)勢。與傳統(tǒng)的軟件開發(fā)方式比較,SOA體系結(jié)構(gòu)有松散耦合服務等優(yōu)點,SOA軟件開發(fā)不同于傳統(tǒng)方式,要求系統(tǒng)兩端嚴密掌控,它使軟件開發(fā)更具獨立,再一點就是SOA結(jié)構(gòu)是在行業(yè)標準的基礎之上開發(fā)出來的,不拘泥于行業(yè)和平臺的限制,為開發(fā)最優(yōu)良的功能服務提供條件。因此,只要遵循對應的標準,開發(fā)出來的服務都能并入一個架構(gòu)完好的SOA系統(tǒng)當中??赡墁F(xiàn)存的基礎架構(gòu)當中有許多不同開發(fā)者設計出的組件??梢栽黾榆浖_發(fā)的效率,因為SOA可復用的特點。在新的軟件開發(fā)設計時,可以在現(xiàn)有基礎條件上,對軟件進行快速的設計和開發(fā)。另外,SOA體系結(jié)構(gòu)還具有服務調(diào)用、不需更改現(xiàn)有組件、訪問數(shù)據(jù)、組合服務等諸多優(yōu)點。
(1)系統(tǒng)結(jié)構(gòu)框架。根據(jù)觀察角度和側(cè)重點不同,對SOA體系結(jié)構(gòu)的說明也有所不同,SOA是一種松散耦合是的體系結(jié)構(gòu)。程序的功能是由各個獨立的服務合成的,并且這些服務可復用。SOA體系結(jié)構(gòu)其中的獨立服務,通過接口可以調(diào)用服務,構(gòu)建程序的基本流程。在SOA體系結(jié)構(gòu)的基礎條件上來對軟件進行開發(fā),服務可重,服務可及時調(diào)用等理念,結(jié)構(gòu)層次可根據(jù)不同的需求行劃分。主要分為客戶層、表面層、業(yè)務層、服務層和資源層??蛻舳藢邮翘幚砜蛻舻膯栴}。表現(xiàn)層主要是是重用部分,使系統(tǒng)模塊化和對請求進行處理。業(yè)務層是提供訪問服務給客戶層,以防耦合出現(xiàn)在客戶端層和業(yè)務層兩層之間。服務層是為客戶端層提供服務。客戶端層的功能是具備所有的設備,表現(xiàn)層是用來管理和處理客戶端的請求,并將其反饋到客戶端,業(yè)務層是為客戶端層提供服務給,服務層的主要功能是通信功能,資源層的主要功能是對數(shù)據(jù)進行處理和保存,以防數(shù)據(jù)丟失。
(2)功能分析。SOA體系可以使服務一起為多個程序提供條件,這很大程度上減少了運行成本。SOA主要包含三個方面,服務請求者就是服務消費者,他需要使用某些服務的功能,在進行查詢后,依照說明,執(zhí)行服務程序。服務注冊者主要負責就是收集信息,查找為服務提供者所請求的信息和服務。服務提供者又可以稱為服務的擁有者,主要是負責將服務信息傳遞到服務注冊者,并對請求者提出的請求進行處理。在SOA體系結(jié)構(gòu)中,有幾個重要的操作。發(fā)布是指當服務的描述信息發(fā)布后,被服務消費者進行訪問和調(diào)用。發(fā)現(xiàn)是指服務請求者去匹配合適的服務進行查詢。綁定和調(diào)用是指服務消費者在得到服務描述之后,由此去使用服務。
(1)Web服務。通過許多Web服務的推行,SOA的影響力迅速提升。交互中的細節(jié)和實現(xiàn)服務都是由Web服務來定義的,使SOA迅速投入使用。Web服務是基于SOA的消息使用。SOA消息調(diào)控允許交換方式,描述服務請求者與服務提供者之間連接時的細節(jié)是Web服務描述語言的功能,服務請求者對服務是由哪種程序和怎么編寫而成的,可能并不感興趣,只對是否能完成自己的請求關心。
(2)SOA與Web之間的聯(lián)系。Web服務與SOA并不是可以畫等號的,Web服務是對OAP在內(nèi)的幾種技術集中,它是解決消息傳遞和程序集成等問題的主要方式方法,而SOA是一種體系結(jié)構(gòu),是一種能進行構(gòu)建和設計的軟件開發(fā)的方法,是一種架構(gòu)。它不是技術的合成,它是在Web服務之上的。也可以說Web服務是SOA體系結(jié)構(gòu)中的一種,并且是當前效率較高,普遍采用的一種技術服務。Web服務的運行過程與SOA有相同之處,服務提供者將描述信息傳輸?shù)焦δ苤行?,服務使用者在功能中心進行查找,對相應的文檔進行獲取,文檔是與Web服務進行作用的細節(jié)信息。
(3)應用實例。網(wǎng)上選課系統(tǒng)當中有諸多的條件和要求。在不同的校區(qū)上課的課程,可以被全校所有學生選課,新增加的課程和減少的課程要能同步更新。對于學生進行選課的時候,能夠更方便更快捷。SOA體系具有松散耦合的特點,所以可以從不同的系統(tǒng)或來源中解析數(shù)據(jù),可以滿足不同校區(qū)的學生選課的需求,SOA的開放性和互操作性可以滿足課程增設信息的同步更新。SOA對于構(gòu)建一個新系統(tǒng),可以通過重用已有服務來進行。并且,在教務管理系統(tǒng)中,這種功能也是非常重要的,另外SOA可以將學生的信息收集功能制成服務,只需調(diào)用此服務,便可在不同的系統(tǒng)平臺之上使用。Web服務生成后,WSAD會生成許多文檔而文檔的根元素是客戶和Web服務間傳遞的變化值,測試時使用本地地址,而發(fā)布時改為可訪問的地址,客戶端可以在Web發(fā)布之后使用服務??蛻舳诵枰ㄎ籛eb服務,可無需服務名。這是一個在SOA的構(gòu)架模型基礎上的典型案例,它將獨立的部分組建構(gòu)成一個松散耦合的服務,解決了平臺和程序語言的問題。
(4)SOA中的復用。在SOA體系結(jié)構(gòu)的基礎上CMI系統(tǒng)進行研究和分析。在CMI系統(tǒng)中,經(jīng)常要對學生的信息進行搜集,另外在教務系統(tǒng)和其他相關系統(tǒng)當中,此功能也不可或缺,因此,相同的功能保存在三個不同的系統(tǒng)模塊中。而且在同一個系統(tǒng)中也有多個部分要求有這樣的功能,在用到服用是對軟件開發(fā)中面向?qū)ο蟮慕鉀Q之法。與SOA中的復用相比,此復用非比復用,前者是代碼進行的,而SOA當中是將搜集學生信息這個功能包裝成一個服務,之后在其他任何系統(tǒng)當中要運用到此功能時,只需調(diào)用便能實現(xiàn),前者雖然也算是一種解決問題的方法,但相比于運用SOA的重用服務就過于復雜。
SOA是一種不受具體技術方式限制的一種新的軟件開發(fā)方法,Web服務在SOA體系結(jié)構(gòu)走向成功的環(huán)節(jié)中起到了重要作用,從許多方面進行分析,Web服務是SOA體系結(jié)構(gòu)中綜合性較高的服務。文章對SOA的優(yōu)勢和基礎進行了分析和研究,也對Web服務進行了著重分析也結(jié)合實例進行說明。SOA體系結(jié)構(gòu)具有很大優(yōu)勢,對以后的軟件開發(fā)有著不可替代的作用。綜上所述,對軟件開發(fā)設計,SOA結(jié)構(gòu)比傳統(tǒng)體系結(jié)構(gòu)有巨大的優(yōu)勢,在SOA體系結(jié)構(gòu)基礎上開發(fā)軟件,能很好的滿足需求。