国产一级a片免费看高清,亚洲熟女中文字幕在线视频,黄三级高清在线播放,免费黄色视频在线看

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
架構(gòu)設(shè)計(jì)師與SOA
架構(gòu)設(shè)計(jì)師與SOA

   Service-Oriented Architecture),即面向服務(wù)的架構(gòu),這是最近一兩年出現(xiàn)在各種技術(shù)期刊上最多的詞匯了?,F(xiàn)在有很多架構(gòu)設(shè)計(jì)師和設(shè)計(jì)開發(fā)人員簡(jiǎn)單的把SOA和Web Services技術(shù)等同起來,認(rèn)為SOA就是Web Service的一種實(shí)現(xiàn)。本質(zhì)上來說,SOA體現(xiàn)的是一種新的系統(tǒng)架構(gòu),SOA的出現(xiàn),將為整個(gè)企業(yè)級(jí)軟件架構(gòu)設(shè)計(jì)帶來巨大的影響。

  1. 什么是架構(gòu)?什么是基于SOA的架構(gòu)?

  1.1 什么是架構(gòu)

  從架構(gòu)設(shè)計(jì)師的角度來看,架構(gòu)就是一套構(gòu)建系統(tǒng)的準(zhǔn)則。通過這套準(zhǔn)則,我們可以把一個(gè)復(fù)雜的系統(tǒng)劃分為一套更簡(jiǎn)單的子系統(tǒng)的集合,這些子系統(tǒng)之間應(yīng)該保持相互獨(dú)立,并與整個(gè)系統(tǒng)保持一致。而且每一個(gè)子系統(tǒng)還可以繼續(xù)細(xì)分下去,從而構(gòu)成一個(gè)復(fù)雜的企業(yè)級(jí)架構(gòu)。

  當(dāng)一名架構(gòu)設(shè)計(jì)師在構(gòu)建某個(gè)企業(yè)級(jí)的軟件系統(tǒng)時(shí),除了要考慮這個(gè)系統(tǒng)的架構(gòu)以及其應(yīng)具有的功能行為以外,還要關(guān)注整個(gè)架構(gòu)的可用性,性能問題,容錯(cuò)能力,可重用性,安全性,擴(kuò)展性,可管理維護(hù)性,可靠性等各個(gè)相關(guān)方面。有的時(shí)候一名好的架構(gòu)設(shè)計(jì)師甚至還需要考慮所構(gòu)建的系統(tǒng)架構(gòu)是否合乎美學(xué)要求。由此我們可以看到,我們衡量一個(gè)好的架構(gòu)設(shè)計(jì)并不能只從功能角度出發(fā),還要考慮很多其他的因素,對(duì)任何一個(gè)方面的欠缺考慮都有可能為整個(gè)系統(tǒng)的構(gòu)建埋下隱患。

  1.2 什么是基于SOA的架構(gòu)

  SOA本身就是一種面向企業(yè)級(jí)服務(wù)的系統(tǒng)架構(gòu),簡(jiǎn)單來說,SOA就是一種進(jìn)行系統(tǒng)開發(fā)的新的體系架構(gòu),在基于SOA架構(gòu)的系統(tǒng)中,具體應(yīng)用程序的功能是由一些松耦合并且具有統(tǒng)一接口定義方式的組件(也就是service)組合構(gòu)建起來的。因此,基于SOA的架構(gòu)也一定是從企業(yè)的具體需求開始構(gòu)建的。但是,SOA和其它企業(yè)架構(gòu)的不同之處就在于SOA提供的業(yè)務(wù)靈活性。業(yè)務(wù)靈活性是指企業(yè)能對(duì)業(yè)務(wù)變更快速和有效地進(jìn)行響應(yīng)、并且利用業(yè)務(wù)變更來得到競(jìng)爭(zhēng)優(yōu)勢(shì)的能力。對(duì)企業(yè)級(jí)架構(gòu)設(shè)計(jì)師來說,創(chuàng)建一個(gè)業(yè)務(wù)靈活的架構(gòu)意味著創(chuàng)建一個(gè)可以滿足當(dāng)前還未知的業(yè)務(wù)需求的IT架構(gòu)。

  利用基于SOA的系統(tǒng)構(gòu)建方法,如圖1中所示的一樣,一個(gè)基于SOA架構(gòu)的系統(tǒng)中的所有的程序功能都被封裝在一些功能模塊中,我們就是利用這些已經(jīng)封裝好的功能模塊組裝構(gòu)建我們所需要的程序或者系統(tǒng),而這些功能模塊就是SOA架構(gòu)中的不同的服務(wù)(services)。

  圖1

  因此,SOA架構(gòu)本質(zhì)上來說體現(xiàn)了一種復(fù)合的概念:它不僅為一個(gè)企業(yè)中商業(yè)流程的組織和實(shí)現(xiàn)提供了一種指導(dǎo)模式,同時(shí)也為具體的底層service開發(fā)提供了指導(dǎo)。

  2. SOA架構(gòu)設(shè)計(jì)師的角色

  2.1 SOA架構(gòu)設(shè)計(jì)師應(yīng)該具備什么?

  談到SOA架構(gòu)設(shè)計(jì)師的角色,我們首先要了解架構(gòu)設(shè)計(jì)師應(yīng)具有的能力??傮w上來說,一個(gè)好的架構(gòu)設(shè)計(jì)師不僅應(yīng)該是一個(gè)成熟的,具有實(shí)際經(jīng)驗(yàn)的并具有快速學(xué)習(xí)能力的人,而且他還應(yīng)該具有良好的管理能力和溝通能力。只有具備了必需的能力,架構(gòu)設(shè)計(jì)師才能在關(guān)鍵的時(shí)刻作出困難的決定,這就是一名架構(gòu)設(shè)計(jì)師應(yīng)該承擔(dān)的責(zé)任。從角色上來看,SOA 架構(gòu)師不僅會(huì)負(fù)責(zé)端到端的服務(wù)請(qǐng)求者和提供者的設(shè)計(jì),并且會(huì)負(fù)責(zé)對(duì)系統(tǒng)中非功能服務(wù)請(qǐng)求的調(diào)研和表述。

  對(duì)于任何一名經(jīng)驗(yàn)豐富的架構(gòu)設(shè)計(jì)師來說,不論他是采用基于傳統(tǒng)的架構(gòu)設(shè)計(jì)方法(基于J2EE架構(gòu)或者.NET架構(gòu))還是采用基于SOA的架構(gòu)設(shè)計(jì)方法來構(gòu)建一個(gè)企業(yè)級(jí)的系統(tǒng)架構(gòu),具有相關(guān)商業(yè)領(lǐng)域的知識(shí)對(duì)于架構(gòu)設(shè)計(jì)師來說都是必不可少的,架構(gòu)設(shè)計(jì)師往往可以通過實(shí)際的工作經(jīng)驗(yàn)積累以及接受相關(guān)的專項(xiàng)培訓(xùn)來獲得這些商業(yè)領(lǐng)域的知識(shí)。除了具有相關(guān)商業(yè)領(lǐng)域的知識(shí)以外,一名合格的架構(gòu)設(shè)計(jì)師必須具有較廣泛的技術(shù)背景,這可能包括軟硬件,通信,安全等各個(gè)方面的知識(shí)。但這并不是意味著要成為一名架構(gòu)設(shè)計(jì)師就必須熟悉每一門具體技術(shù)的細(xì)節(jié),架構(gòu)設(shè)計(jì)師必須至少能對(duì)各種技術(shù)有一個(gè)整體上的了解,能夠熟知每種技術(shù)的特點(diǎn)以及優(yōu)缺點(diǎn),只有這樣架構(gòu)設(shè)計(jì)師才能在特定的應(yīng)用場(chǎng)景下正確地選擇各種技術(shù)來設(shè)計(jì)企業(yè)整體架構(gòu)。

  2.2 什么是SOA架構(gòu)設(shè)計(jì)師的職責(zé)?

  那什么是企業(yè)級(jí)SOA架構(gòu)設(shè)計(jì)師的具體角色呢?什么是SOA架構(gòu)設(shè)計(jì)師與設(shè)計(jì)和開發(fā)人員之間的差別呢?相信這些都是使大家最容易產(chǎn)生迷惑的問題。舉個(gè)實(shí)際的例子來說,當(dāng)構(gòu)建一個(gè)基于SOA架構(gòu)的系統(tǒng)的時(shí)候,針對(duì)一個(gè)具體的 service,系統(tǒng)設(shè)計(jì)人員主要應(yīng)該關(guān)注的是這個(gè)service能夠?yàn)橥獠坑脩籼峁┦裁礃拥姆?wù),也就是說系統(tǒng)設(shè)計(jì)人員關(guān)注的是這個(gè)service所提供的功能。而對(duì)于SOA架構(gòu)設(shè)計(jì)師來說,他們更關(guān)心的可能是當(dāng)有一千個(gè)用戶同時(shí)調(diào)用這個(gè) service的時(shí)候,什么會(huì)發(fā)生?也就是說架構(gòu)設(shè)計(jì)師關(guān)注的應(yīng)該是一些商業(yè)需求和服務(wù)級(jí)別(service-level)需求。所有的架構(gòu)設(shè)計(jì)師的角色都包含了在構(gòu)建一個(gè)系統(tǒng)的一開始就應(yīng)該盡量減少可能存在的技術(shù)風(fēng)險(xiǎn)。而技術(shù)風(fēng)險(xiǎn)一般指的是一切未知的、未經(jīng)證明的或未經(jīng)測(cè)試所帶來的風(fēng)險(xiǎn)。這些風(fēng)險(xiǎn)通常與服務(wù)級(jí)別(service-level)需求相關(guān),偶爾也會(huì)與企業(yè)具體的業(yè)務(wù)需求相關(guān)。無論是哪種類型的風(fēng)險(xiǎn),在項(xiàng)目初期設(shè)計(jì)整體系統(tǒng)架構(gòu)的過程中更易于發(fā)掘這些風(fēng)險(xiǎn),如果等到架構(gòu)實(shí)施時(shí)再發(fā)覺這些風(fēng)險(xiǎn),那么很可能會(huì)致使大量的開發(fā)人員等在那里,直到這些風(fēng)險(xiǎn)被妥善解決。如果進(jìn)一步的細(xì)化,我們可以看到SOA架構(gòu)設(shè)計(jì)師的主要任務(wù)包括對(duì)整個(gè)系統(tǒng)解決方案輪廓的構(gòu)建,需求分析,對(duì)體系結(jié)構(gòu)的整體決策,相關(guān)組件建模,相關(guān)操作建模,系統(tǒng)組件的邏輯和物理布局設(shè)計(jì)。

  作為SOA架構(gòu)設(shè)計(jì)師必須要能夠領(lǐng)導(dǎo)整個(gè)開發(fā)團(tuán)隊(duì),這樣才能保證設(shè)計(jì)和開發(fā)人員是按照構(gòu)建好的系統(tǒng)架構(gòu)來開發(fā)整個(gè)系統(tǒng)的,這一點(diǎn)十分的重要。這就要求一名架構(gòu)設(shè)計(jì)師不僅要有很好的技術(shù)洞察力,同時(shí)還要具有一定的項(xiàng)目管理和項(xiàng)目實(shí)施的能力。在系統(tǒng)開發(fā)的過程中,架構(gòu)設(shè)計(jì)師必須要有良好的溝通和表達(dá)能力,這就體現(xiàn)在由架構(gòu)設(shè)計(jì)師構(gòu)建的系統(tǒng)模型是否具有很好的可讀性和易理解性。如果由架構(gòu)設(shè)計(jì)師構(gòu)造出的系統(tǒng)模型不是很清晰的話,就可能會(huì)影響設(shè)計(jì)和開發(fā)人員對(duì)于整個(gè)系統(tǒng)架構(gòu)的理解。為了避免這種情況的出現(xiàn),定期由架構(gòu)設(shè)計(jì)師主持的開發(fā)團(tuán)隊(duì)內(nèi)部討論是十分重要的。

  3. 構(gòu)建SOA架構(gòu)時(shí)應(yīng)該注意的問題

  3.1 原有系統(tǒng)架構(gòu)中的集成需求

  當(dāng)架構(gòu)師基于SOA來構(gòu)建一個(gè)企業(yè)級(jí)的系統(tǒng)架構(gòu)的時(shí)候,一定要注意對(duì)原有系統(tǒng)架構(gòu)中的集成需求進(jìn)行細(xì)致的分析和整理。我們都知道,面向服務(wù)的體系結(jié)構(gòu)是當(dāng)前及未來應(yīng)用程序系統(tǒng)開發(fā)的重點(diǎn),面向服務(wù)的體系結(jié)構(gòu)本質(zhì)上來說是一種具有特殊性質(zhì)的體系結(jié)構(gòu),它由具有互操作性和位置透明的組件集成構(gòu)建并互連而成?;赟OA的企業(yè)系統(tǒng)架構(gòu)通常都是在現(xiàn)有系統(tǒng)架構(gòu)投資的基礎(chǔ)上發(fā)展起來的,我們并不需要徹底重新開發(fā)全部的子系統(tǒng);SOA可以通過利用當(dāng)前系統(tǒng)已有的資源(開發(fā)人員、軟件語言、硬件平臺(tái)、數(shù)據(jù)庫和應(yīng)用程序)來重復(fù)利用系統(tǒng)中現(xiàn)有的系統(tǒng)和資源。SOA是一種可適應(yīng)的、靈活的體系結(jié)構(gòu)類型,基于SOA構(gòu)建的系統(tǒng)架構(gòu)可以在系統(tǒng)的開發(fā)和維護(hù)中縮短產(chǎn)品上市時(shí)間,因而可以降低企業(yè)系統(tǒng)開發(fā)的成本和風(fēng)險(xiǎn)。因此,當(dāng)SOA架構(gòu)師遇到一個(gè)十分復(fù)雜的企業(yè)系統(tǒng)時(shí),首先考慮的應(yīng)該是如何重用已有的投資而不是替換遺留系統(tǒng),因?yàn)槿绻紤]到有限的預(yù)算,整體系統(tǒng)替換的成本是十分高昂的。

 

  當(dāng)SOA架構(gòu)師分析原有系統(tǒng)中的集成需求的時(shí)候,不應(yīng)該只限定為基于組件構(gòu)建的已有應(yīng)用程序的集成,真正的集成比這要寬泛得多。在分析和評(píng)估一個(gè)已有系統(tǒng)體系結(jié)構(gòu)的集成需求時(shí),我們必須考慮一些更加具體的集成的類型,這主要包括以下幾個(gè)方面:應(yīng)用程序集成的需求,終端用戶界面集成的需求,流程集成的需求以及已有系統(tǒng)信息集成的需求。當(dāng)SOA架構(gòu)師分析和評(píng)估現(xiàn)有系統(tǒng)中所有可能的集成需求的時(shí)候,我們可以發(fā)現(xiàn)實(shí)際上所有集成方式在任何種類的企業(yè)中都有一定程度的體現(xiàn)。針對(duì)不同的企業(yè)類型,這些集成方式可能是簡(jiǎn)化的,或者沒有明確地進(jìn)行定義的。因而,SOA架構(gòu)師在著手設(shè)計(jì)新的體系結(jié)構(gòu)框架時(shí),必須要全面的考慮所有可能的集成需求。例如,在一些類型的企業(yè)系統(tǒng)環(huán)境中可能只有很少的數(shù)據(jù)源類型,因此,系統(tǒng)中對(duì)消息集成的需求就可能會(huì)很簡(jiǎn)單,但在一些特定的系統(tǒng)中,例如航運(yùn)系統(tǒng)中的EDI(Electronic Data Interchange 電子數(shù)據(jù)交換)系統(tǒng),會(huì)有大量的電子數(shù)據(jù)交換處理的需求,因此也就會(huì)存在很多不同的數(shù)據(jù)源類型,在這種情況下整個(gè)系統(tǒng)對(duì)于消息數(shù)據(jù)的集成需求就會(huì)比較復(fù)雜。因此,如果SOA架構(gòu)師希望所構(gòu)建的系統(tǒng)架構(gòu)能夠隨著企業(yè)的成長(zhǎng)和變化成功地繼續(xù)得以保持,則整個(gè)系統(tǒng)構(gòu)架中的集成功能就應(yīng)該由服務(wù)提供,而不是由特定的應(yīng)用程序來完成。

  3.2 服務(wù)粒度的控制以及無狀態(tài)服務(wù)的設(shè)計(jì)

  當(dāng)SOA架構(gòu)師構(gòu)建一個(gè)企業(yè)級(jí)的SOA系統(tǒng)架構(gòu)的時(shí)候,關(guān)于系統(tǒng)中最重要的元素,也就是SOA系統(tǒng)中的服務(wù)的構(gòu)建有兩點(diǎn)需要特別注意的地方:首先是對(duì)于服務(wù)粒度的控制,另外就是對(duì)于無狀態(tài)服務(wù)的設(shè)計(jì)。

  服務(wù)粒度的控制

  SOA系統(tǒng)中的服務(wù)粒度的控制是一項(xiàng)十分重要的設(shè)計(jì)任務(wù)。通常來說,對(duì)于將暴露在整個(gè)系統(tǒng)外部的服務(wù)推薦使用粗粒度的接口,而相對(duì)較細(xì)粒度的服務(wù)接口通常用于企業(yè)系統(tǒng)架構(gòu)的內(nèi)部。從技術(shù)上講,粗粒度的服務(wù)接口可能是一個(gè)特定服務(wù)的完整執(zhí)行,而細(xì)粒度的服務(wù)接口可能是實(shí)現(xiàn)這個(gè)粗粒度服務(wù)接口的具體的內(nèi)部操作。 舉個(gè)例子來說,對(duì)于一個(gè)基于SOA架構(gòu)的網(wǎng)上商店來說,粗粒度的服務(wù)可能就是暴露給外部用戶使用的提交購(gòu)買表單的操作,而系統(tǒng)內(nèi)部的細(xì)粒度的服務(wù)可能就是實(shí)現(xiàn)這個(gè)提交購(gòu)買表單服務(wù)的一系列的內(nèi)部服務(wù),比如說創(chuàng)建購(gòu)買記錄,設(shè)置客戶地址,更新數(shù)據(jù)庫等一系列的操作。雖然細(xì)粒度的接口能為服務(wù)請(qǐng)求者提供了更加細(xì)化和更多的靈活性,但同時(shí)也意味著引入較難控制的交互模式易變性,也就是說服務(wù)的交互模式可能隨著不同的服務(wù)請(qǐng)求者而不同。如果我們暴露這些易于變化的服務(wù)接口給系統(tǒng)的外部用戶,就可能造成外部服務(wù)請(qǐng)求者難于支持不斷變化的服務(wù)提供者所暴露的細(xì)粒度服務(wù)接口。而粗粒度服務(wù)接口保證了服務(wù)請(qǐng)求者將以一致的方式使用系統(tǒng)中所暴露出的服務(wù)。雖然面向服務(wù)的體系結(jié)構(gòu)(SOA)并不強(qiáng)制要求一定要使用粗粒度的服務(wù)接口,但是建議使用它們作為外部集成的接口。通常架構(gòu)設(shè)計(jì)師可以使用BPEL來創(chuàng)建由細(xì)粒度操作組成的業(yè)務(wù)流程的粗粒度的服務(wù)接口。

  無狀態(tài)服務(wù)的設(shè)計(jì)

  SOA系統(tǒng)架構(gòu)中的具體服務(wù)應(yīng)該都是獨(dú)立的、自包含的請(qǐng)求,在實(shí)現(xiàn)這些服務(wù)的時(shí)候不需要前一個(gè)請(qǐng)求的狀態(tài),也就是說服務(wù)不應(yīng)該依賴于其他服務(wù)的上下文和狀態(tài),即SOA架構(gòu)中的服務(wù)應(yīng)該是無狀態(tài)的服務(wù)。當(dāng)某一個(gè)服務(wù)需要依賴時(shí),我們最好把它定義成具體的業(yè)務(wù)流程(BPEL)。在服務(wù)的具體實(shí)現(xiàn)機(jī)制上,我們可以通過使用 EJB 組件來實(shí)現(xiàn)粗粒度的服務(wù)。我們通常會(huì)利用無狀態(tài)的Session Bean來實(shí)現(xiàn)具體的服務(wù),如果基于Web Service技術(shù),我們就可以將無狀態(tài)的Session Bean暴露為外部用戶可以調(diào)用的到的Web服務(wù),也就是把傳統(tǒng)的Session Facade模型轉(zhuǎn)化為了 EJB 的Web服務(wù)端點(diǎn),這樣,我們就可以向 Web 服務(wù)客戶提供粗粒度的服務(wù)。

  如果我們要在 J2EE的環(huán)境下(基于WebSphere)構(gòu)建Web服務(wù),Web 服務(wù)客戶可以通過兩種方式訪問 J2EE 應(yīng)用程序??蛻艨梢栽L問用 JAX-RPC API 創(chuàng)建的 Web 服務(wù)(使用 Servlet 來實(shí)現(xiàn));Web 服務(wù)客戶也可以通過 EJB的服務(wù)端點(diǎn)接口訪問無狀態(tài)的Session Bean,但Web 服務(wù)客戶不能訪問其他類型的企業(yè)Bean,如有狀態(tài)的Session Bean,實(shí)體Bean和消息驅(qū)動(dòng)Bean。后一種選擇(公開無狀態(tài) EJB 組件作為 Web 服務(wù))有很多優(yōu)勢(shì),基于已有的EJB組件,我們可以利用現(xiàn)有的業(yè)務(wù)邏輯和流程。在許多企業(yè)中,現(xiàn)有的業(yè)務(wù)邏輯可能已經(jīng)使用 EJB 組件編寫,通過 Web 服務(wù)公開它可能是實(shí)現(xiàn)從外界訪問這些服務(wù)的最佳選擇。EJB 端點(diǎn)是一種很好的選擇,因?yàn)樗箻I(yè)務(wù)邏輯和端點(diǎn)位于同一層上。另外EJB容器會(huì)自動(dòng)提供對(duì)并發(fā)的支持,作為無狀態(tài)Session Bean實(shí)現(xiàn)的 EJB 服務(wù)端點(diǎn)不必?fù)?dān)心多線程訪問,因?yàn)?EJB 容器必須串行化對(duì)無狀態(tài)會(huì)話 bean 任何特定實(shí)例的請(qǐng)求。 由于EJB容器都會(huì)提供對(duì)于Security和Transaction的支持,因此Bean的開發(fā)人員可以不需要編寫安全代碼以及事務(wù)處理代碼。 性能問題對(duì)于Web服務(wù)來說一直都是一個(gè)問題,由于幾乎所有 EJB 容器都提供了對(duì)無狀態(tài)會(huì)話 Bean 群集的支持以及對(duì)無狀態(tài)Session Bean 池與資源管理的支持,因此當(dāng)負(fù)載增加時(shí),可以向群集中增加機(jī)器,Web 服務(wù)請(qǐng)求可以定向到這些不同的服務(wù)器,同時(shí)由于無狀態(tài)Session Bean 池改進(jìn)了資源利用和內(nèi)存管理,使 Web 服務(wù)能夠有效地響應(yīng)多個(gè)客戶請(qǐng)求。由此我們可以看到,通過把 Web 服務(wù)模型化為 EJB 端點(diǎn),可以使服務(wù)具有更強(qiáng)的可伸縮性,并增強(qiáng)了系統(tǒng)整體的可靠性。

本站僅提供存儲(chǔ)服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請(qǐng)點(diǎn)擊舉報(bào)
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
SOA -讓IT更彈性、更快捷、更實(shí)時(shí)- .net 頻道- Csdn
面向服務(wù)架構(gòu)(SOA)的汽車軟件分析和設(shè)計(jì)
基于SOA和ESB的供應(yīng)鏈快速響應(yīng)系統(tǒng)架構(gòu)
信息系統(tǒng)架構(gòu)設(shè)計(jì)理論基礎(chǔ)
架構(gòu)之道 :規(guī)劃、簡(jiǎn)化和演化
ERP與SOA相結(jié)合:基于SOA的ERP體系架構(gòu)的研究
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長(zhǎng)圖 關(guān)注 下載文章
綁定賬號(hào)成功
后續(xù)可登錄賬號(hào)暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服