首先先說一些閑話:這次bea的dev2dev techDays依然是在講現(xiàn)在bea公司的主攻領(lǐng)域soa,估計(jì)這也是oracle之所以收購bea的一個(gè)原因吧。
會議的地點(diǎn)依然是每次雷打不動(dòng)的圣庭苑酒店,會議的主辦方也組織的很好,為了能讓參與者對bea的相關(guān)技術(shù)和產(chǎn)品感興趣,bea也是準(zhǔn)備了豐富的獎(jiǎng)品,有筆,有T恤,還有5個(gè)workshop的licence,最引人注目就是最后抽獎(jiǎng)的一個(gè)iphone,做為一個(gè)免費(fèi)會議來說,這些東西卻是很豐富了,但是要是考慮到bea主要是為了推它的SOA產(chǎn)品Workshop 10.2這個(gè)售價(jià)高達(dá)1000多美元的怪物來說,也就不覺得貴了:)。
1、SOA起源
這些年為了提高辦公效率,企業(yè)和政府都在努力追求著一個(gè)看似很甜的棒棒糖:信息化。但是由于信息化的方式多種多樣,這樣就造成了在一個(gè)企業(yè)內(nèi)部有多套信息化的系統(tǒng)。財(cái)務(wù)是買來的財(cái)務(wù)軟件,行政使用免費(fèi)的行政軟件,銷售是請人來研發(fā)的銷售系統(tǒng)。然后各個(gè)部門發(fā)現(xiàn),原來自己雖然信息化了,但是實(shí)際上只是一個(gè)信息孤井,自己的信息系統(tǒng)沒有辦法接受別的部門的信息,而自己的信息也沒有辦法傳遞到其他部門去。這樣公司的領(lǐng)導(dǎo)就不高興了,你們都要信息化,無紙辦公,結(jié)果現(xiàn)在信息化的比優(yōu)質(zhì)辦公還麻煩,都給我統(tǒng)統(tǒng)統(tǒng)一起來。開始的時(shí)候有人想到重做一套整體的信息系統(tǒng),把所有部門都包含進(jìn)去不就可以了,但是這方案代價(jià)太高了。于是呢就有人提出了這樣的想法,其實(shí)每個(gè)系統(tǒng)都是為每個(gè)部門或者其他部門提供服務(wù)的,那么我們就把這些服務(wù)給抽象出來進(jìn)行統(tǒng)一管理吧,然后讓所有的部門都只面對這些抽取的服務(wù),而不是單一的系統(tǒng),這樣soa的概念就漸漸浮出水面了。
2、服務(wù)的概念,以及SOA基本架構(gòu)
SOA中最核心的就是服務(wù)了,所以我們首先應(yīng)該明確一下服務(wù)這個(gè)概念。用毛主席最經(jīng)典的一句話:為人民服務(wù)。這里我們可以看出,抽象的服務(wù)概念有兩個(gè)基本的要素:1是服務(wù)對象,2是可以提供什么。超市收銀員的服務(wù)對象是顧客,可以提供的是算錢收錢;公安局的服務(wù)對象是市民,可以提供的是解決你解決不了的難題。;你的心臟的服務(wù)對象是血液,可以提供的是給血液加養(yǎng)分;等等。所以來說任何一個(gè)對象都是一個(gè)服務(wù)提供者(當(dāng)然任何一個(gè)對象也將是一個(gè)服務(wù)接受者,對于服務(wù)接受這里不再詳細(xì)討論)。
根據(jù)一個(gè)信息系統(tǒng)本身固有的幾個(gè)層次為了讓各個(gè)層次的職責(zé)更加清晰,而且也是為了在調(diào)用服務(wù)的時(shí)候更加統(tǒng)一SOA的一個(gè)基本架構(gòu)是這樣的:
原有系統(tǒng)架構(gòu) SOA系統(tǒng)架構(gòu)
企業(yè)原有業(yè)務(wù)系統(tǒng)的存儲層 --〉 [把這層封裝成SOA的連通服務(wù)層]
企業(yè)原有業(yè)務(wù)系統(tǒng)的業(yè)務(wù)層 --〉 [把這層封裝成SOA的業(yè)務(wù)流程服務(wù)層]
企業(yè)原有業(yè)務(wù)系統(tǒng)的應(yīng)用層 --〉 [根據(jù)上層抽象出來的統(tǒng)一服務(wù)進(jìn)行調(diào)用并在各種應(yīng)用前臺]
然后專門隔離出來一個(gè)服務(wù)中介層,也就是一條服務(wù)總線來把所有的服務(wù)進(jìn)行統(tǒng)一管理