摘 要:隨著軟件技術(shù)的不斷發(fā)展和Web技術(shù)的應(yīng)用,面向服務(wù)的軟件系統(tǒng)開發(fā)的方法也得到了迅速的發(fā)展。文章提出了SOA框架設(shè)計(jì)的方案,對(duì)基于SOA的軟件開發(fā)的關(guān)鍵性技術(shù)、功能實(shí)現(xiàn)進(jìn)行了分析和研究,具有一定的應(yīng)用價(jià)值。
關(guān)鍵詞:面向服務(wù)體系結(jié)構(gòu);軟件開發(fā);軟件系統(tǒng)
1 面向服務(wù)體系結(jié)構(gòu)分析和研究
1.1 面向服務(wù)體系結(jié)構(gòu)分析
面向服務(wù)體系結(jié)構(gòu)(Service-Oriented Architecture,SOA)是一種組件模型,在面向服務(wù)體系結(jié)構(gòu)中,面向服務(wù)是指體系結(jié)構(gòu)應(yīng)用程序中的功能,并且各個(gè)功能之間的互通是通過定義好的接口來進(jìn)行連接的,通過中立的方式對(duì)接口進(jìn)行定義,接口與硬件平臺(tái)和操作系統(tǒng)之間是相互獨(dú)立的。面向服務(wù)體系結(jié)構(gòu)對(duì)接口進(jìn)行中立的定義,稱之為服務(wù)間的松耦合,松耦合的系統(tǒng)中體系結(jié)構(gòu)比較靈活,系統(tǒng)中應(yīng)用程序服務(wù)中的內(nèi)部結(jié)構(gòu)發(fā)生變化時(shí)候,松耦合系統(tǒng)還是可以獨(dú)立存在的。松耦合與緊耦合正好相反,緊耦合的系統(tǒng)中接口和系統(tǒng)之間關(guān)聯(lián)比較緊密,如果系統(tǒng)中應(yīng)用程序發(fā)生改動(dòng),那么整個(gè)系統(tǒng)會(huì)發(fā)生變化,緊耦合系統(tǒng)比松耦合系統(tǒng)脆弱。在SOA系統(tǒng)應(yīng)用中業(yè)務(wù)的靈活性需要引進(jìn)松耦合系統(tǒng),在應(yīng)用系統(tǒng)中業(yè)務(wù)的需求是不斷變化的,松耦合系統(tǒng)可以適應(yīng)不同環(huán)境變化的需要?;赟OA體系結(jié)構(gòu)軟件開發(fā)的整體設(shè)計(jì)是面向服務(wù)的,SOA應(yīng)用的基礎(chǔ)技術(shù)是XML可擴(kuò)展標(biāo)記語(yǔ)言,通過XML可擴(kuò)展標(biāo)記語(yǔ)言對(duì)接口進(jìn)行描述?;赟OA軟件開發(fā)的安全可靠是最終目的。
1.2 面向服務(wù)體系結(jié)構(gòu)的研究意義
SOA與傳統(tǒng)的體系結(jié)構(gòu)相比,具有松散耦合和共享服務(wù)等特點(diǎn),松散耦合的應(yīng)用可以幫助服務(wù)的提供者和使用者在接口上更好地進(jìn)行獨(dú)立的開發(fā),在系統(tǒng)中服務(wù)的使用者在對(duì)服務(wù)接口和數(shù)據(jù)進(jìn)行更改的時(shí)候,系統(tǒng)中服務(wù)的使用者不會(huì)受到任何影響。松散耦合可以幫助系統(tǒng)根據(jù)高可用性的需要來實(shí)現(xiàn)對(duì)系統(tǒng)應(yīng)用程序獨(dú)立的管理,SOA中松散耦合為系統(tǒng)提供了重要的獨(dú)立性。通過基于行業(yè)標(biāo)準(zhǔn)的技術(shù)就可以實(shí)現(xiàn)SOA,把系統(tǒng)中特定的標(biāo)準(zhǔn)消除,使系統(tǒng)不再受平臺(tái)技術(shù)和行業(yè)技術(shù)壟斷的束縛,對(duì)所有服務(wù)進(jìn)行優(yōu)化?;诿嫦蚍?wù)體系機(jī)構(gòu)的應(yīng)用程序采用共享的基礎(chǔ)框架服務(wù),可以進(jìn)行單點(diǎn)管理。
1.3 面向服務(wù)體系結(jié)構(gòu)相關(guān)技術(shù)應(yīng)用
SOA中服務(wù)的使用者通過接口來訪問應(yīng)用服務(wù),服務(wù)應(yīng)用的接口是通過網(wǎng)絡(luò)來進(jìn)行調(diào)用的,這和Web服務(wù)的設(shè)計(jì)理念和應(yīng)用技術(shù)比較類似,所以在SOA中可以通過Web技術(shù)來實(shí)現(xiàn)。在SOA中沒有具體技術(shù),采用的技術(shù)集合有Web技術(shù)和SOAP技術(shù)等。SOAP技術(shù)是基于可擴(kuò)展標(biāo)記語(yǔ)言XML的一種通信協(xié)議,對(duì)XML消息在網(wǎng)絡(luò)中進(jìn)行傳輸?shù)母袷竭M(jìn)行了定義,在SOA中請(qǐng)求者和提供者之間通過SOAP對(duì)通信協(xié)議進(jìn)行定義。SOAP結(jié)構(gòu)包括4個(gè)部分,如圖1所示。
在SOAP結(jié)構(gòu)中SOAP信封功能是對(duì)整體的表示框架進(jìn)行了定義,對(duì)消息的內(nèi)容和處理者進(jìn)行表示;SOAP編碼規(guī)則功能是對(duì)編序機(jī)制進(jìn)行定義;SOAP PRC表示功能是對(duì)遠(yuǎn)端過程調(diào)用進(jìn)行定義;SOAP綁定功能是對(duì)完成結(jié)點(diǎn)間SOAP信封的交換所使用的底層傳輸協(xié)議進(jìn)行定義。
2 面向服務(wù)軟件體系結(jié)構(gòu)框架設(shè)計(jì)及功能實(shí)現(xiàn)
2.1 面向服務(wù)軟件體系結(jié)構(gòu)框架設(shè)計(jì)
SOA是應(yīng)用程序體系結(jié)構(gòu),所有相關(guān)的服務(wù)都被定義成了獨(dú)立的服務(wù),通過可調(diào)用的定義好的接口對(duì)服務(wù)進(jìn)行調(diào)用來實(shí)現(xiàn)業(yè)務(wù)的流程。SOA設(shè)計(jì)要以結(jié)構(gòu)層次清晰、功能和服務(wù)可隨意擴(kuò)展、服務(wù)功能復(fù)用度高為設(shè)計(jì)理念,采用分層設(shè)計(jì)的原則,按照不同應(yīng)用服務(wù)的需要對(duì)結(jié)構(gòu)進(jìn)行邏輯劃分。系統(tǒng)在設(shè)計(jì)的時(shí)候采用Web服務(wù)功能豐富的J2EE 1.5作為系統(tǒng)平臺(tái),J2EE對(duì)系統(tǒng)服務(wù)的應(yīng)用進(jìn)行邏輯劃分,并且可以加強(qiáng)計(jì)算機(jī)的計(jì)算能力,J2EE是一種完全分布式計(jì)算模式的代表。基于SOA的軟件開發(fā)系統(tǒng)的層次結(jié)構(gòu)劃分如圖2所示。
在基于SOA的軟件開發(fā)系統(tǒng)的層次結(jié)構(gòu)設(shè)計(jì)中,表現(xiàn)層的設(shè)計(jì)目標(biāo),對(duì)多個(gè)客戶端請(qǐng)求進(jìn)行集中處理,提高請(qǐng)求處理的擴(kuò)展性,可以在系統(tǒng)中加入新的功能。表現(xiàn)層通過前端控制器來處理所有的請(qǐng)求,通過后端控制器把請(qǐng)求處理的命令或者視圖都調(diào)用起來。表現(xiàn)層的設(shè)計(jì)使系統(tǒng)模塊化的程度得到了提高,對(duì)模塊化的組件進(jìn)行了重用,系統(tǒng)模塊的可擴(kuò)展性也得到了提高。業(yè)務(wù)層的設(shè)計(jì)目標(biāo)是防止業(yè)務(wù)層與客戶端之間發(fā)生緊耦合的情況,為業(yè)務(wù)對(duì)象提供遠(yuǎn)程訪問的功能。業(yè)務(wù)層的設(shè)計(jì)為遠(yuǎn)程客戶端訪問服務(wù)提供一個(gè)專門的層,降低系統(tǒng)中各個(gè)層次之間的耦合,簡(jiǎn)化應(yīng)用服務(wù)的復(fù)雜度。服務(wù)層設(shè)計(jì)目標(biāo)是把現(xiàn)有的服務(wù)都提供給客戶端,并監(jiān)視客戶端對(duì)服務(wù)的使用情況,根據(jù)服務(wù)的需求對(duì)服務(wù)的使用進(jìn)行限制等?;赟OA的軟件開發(fā)結(jié)構(gòu)體系的設(shè)計(jì),首先按照分層思想對(duì)系統(tǒng)的體系結(jié)構(gòu)進(jìn)行邏輯區(qū)間的劃分,使SOA層次結(jié)構(gòu)清晰,功能模塊可以根據(jù)需要進(jìn)行擴(kuò)展。
2.2 面向服務(wù)軟件體系結(jié)構(gòu)功能分析
在基于SOA的軟件開發(fā)系統(tǒng)的層次結(jié)構(gòu)中,客戶端層包括應(yīng)用系統(tǒng)的所有客戶端的設(shè)備,Web瀏覽器和系統(tǒng)擴(kuò)展連接的WAP收集都可以作為客戶端。表現(xiàn)層把系統(tǒng)訪問的客戶端和服務(wù)的表現(xiàn)邏輯都進(jìn)行了封裝,表現(xiàn)層功能是對(duì)客戶端的請(qǐng)求進(jìn)行統(tǒng)一管理,為客戶端提供了單一的登錄入口,建立會(huì)話管理,把對(duì)業(yè)務(wù)訪問的請(qǐng)求響應(yīng)返回給客戶端。業(yè)務(wù)層為客戶端提供各種應(yīng)用的業(yè)務(wù)服務(wù),業(yè)務(wù)數(shù)據(jù)存放在業(yè)務(wù)層中,系統(tǒng)相關(guān)的業(yè)務(wù)處理都是在業(yè)務(wù)層完成的。服務(wù)層負(fù)責(zé)與外部系統(tǒng)進(jìn)行通信,服務(wù)層與資源層之間通過Web服務(wù)等進(jìn)行協(xié)作,服務(wù)層中可以設(shè)置Web服務(wù)代理,負(fù)責(zé)一個(gè)或者多個(gè)服務(wù)組件之間的交互,通過聚合方式對(duì)響應(yīng)的信息進(jìn)行管理。資源層在功能設(shè)計(jì)上主要是存放業(yè)務(wù)數(shù)據(jù)和外部數(shù)據(jù)信息資源。
3 結(jié)語(yǔ)
隨著分布式計(jì)算方式的研究和應(yīng)用,在軟件的應(yīng)用集成和軟件的重用方面,SOA得到了具體的應(yīng)用。通過對(duì)基于SOA的軟件開發(fā)的分析和研究,可以讓SOA在軟件的開發(fā)應(yīng)用中發(fā)揮巨大的作用,基于SOA的軟件開發(fā)的研究與實(shí)現(xiàn)具有一定的研究和應(yīng)用價(jià)值。
作者簡(jiǎn)介:王桂華(1978— ),女,遼寧營(yíng)口,本科,講師;研究方向:計(jì)算機(jī)應(yīng)用技術(shù)。
[參考文獻(xiàn)]
[1]郭晉偉.SOA架構(gòu)的管理信息系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)[D].沈陽(yáng):中國(guó)科學(xué)院研究生院(沈陽(yáng)計(jì)算技術(shù)研究所),2006.
[2]章曉勤,李心科,夏克付.基于SOA的軟件開發(fā)方法研究以及在高校學(xué)生管理系統(tǒng)的應(yīng)用[J].福建電腦,2008(4):127-128.
[3]鄭旭飛,張為群.一種基于面向方面的統(tǒng)一過程軟件開發(fā)方法[J].西南師范大學(xué)學(xué)報(bào)(自然科學(xué)版),2004(1):45-48.
Abstract: With the continuous development of software technology and the application of Web technology, service-oriented software system development method has also been developed rapidly. This paper puts forward the scheme of SOA framework design, analyzes and studies the key technology and function realization of SOA based software development, which has a certain application value.
Key words: service-oriented system architecture; software development; software system