昨天剛分析完分布式服務(wù)框架,今天便看到Spring Integration 1.0 M1發(fā)布的消息,這也為Spring進(jìn)軍SOA領(lǐng)域拉開了序幕。
Spring的動(dòng)作一直就頗多,其實(shí)它自己就是個(gè)非官方的標(biāo)準(zhǔn),不過(guò)它顯然更聰明,因?yàn)樗谝粋€(gè)強(qiáng)大的pojo container結(jié)合pojo enhanced機(jī)制使得它可以很容易的集成在其他領(lǐng)域極為專業(yè)的東西,而不是自己去競(jìng)爭(zhēng),更加好的是它提供的是選擇,這也就使得Spring很容易的成為了最為流行的框架,而Spring和OSGi的結(jié)合更是進(jìn)一步的提升了它的應(yīng)用面,因?yàn)楣烙?jì)有很多人忌諱spring的巨大而不使用它了,至少我以前就這么選擇過(guò),選用OSGi這樣的模塊化框架固然是缺少了很多企業(yè)應(yīng)用需求的東西的支持,但對(duì)于有些應(yīng)用來(lái)講完全可以自己去實(shí)現(xiàn),但對(duì)于大而復(fù)雜的應(yīng)用來(lái)說(shuō)直接選用OSGi幾乎是不可能的,因?yàn)橐约喝?shí)現(xiàn)太多的東西,還好Spring和OSGi結(jié)合在一起了。
說(shuō)了這么多和標(biāo)題無(wú)關(guān)的話,只是想表明Spring其實(shí)已經(jīng)具備了分布式服務(wù)框架中很重要的一些因素:可插拔(這樣的話完全可以根據(jù)應(yīng)用的需求來(lái)搭建微小還是巨大的東西)、強(qiáng)大的集成能力,而且Spring本身之前就已經(jīng)提供了一些分布式交互的支持,如JNDIObjectFactoryBean、HessianServiceExporter等等,回到正題,由于Spring本身就具備了這些特征,因此其實(shí)以它來(lái)實(shí)現(xiàn)分布式服務(wù)框架確實(shí)是個(gè)很好的選擇,Spring自己果然也沒浪費(fèi)這樣的機(jī)會(huì),順理成章的推出了Spring Integration。
Spring Integration是基于Message機(jī)制來(lái)達(dá)到Bean交互的,這個(gè)在上篇分析分布式服務(wù)框架的blog里已經(jīng)有所提及,在服務(wù)的交互上是有多種協(xié)議可去選擇的,Spring Integration選擇了JMS機(jī)制,從它目前公布的例子也能看出,使用起來(lái)有點(diǎn)的晦澀,但是功能方面確實(shí)還不錯(cuò),已經(jīng)具備了分布式服務(wù)框架的整個(gè)的架子:
1、服務(wù)模型
在Spring Integration里準(zhǔn)確的說(shuō)應(yīng)該是一個(gè)供bean使用的Message Queue或Channel就是服務(wù)了。
2、服務(wù)的注冊(cè)中心
由于在Spring Integration里交互其實(shí)是通過(guò)message來(lái)完成的,因此服務(wù)的注冊(cè)中心中其實(shí)只需要能提供message的地址和queue名或Topic名就可以了,這個(gè)在現(xiàn)在的IBMMQ Broker這樣的東西是直接支持的。
不過(guò)在目前的Spring Integration還沒看到這塊。
3、發(fā)布服務(wù)的方式
源于上面服務(wù)的注冊(cè)中心,其實(shí)就是發(fā)布mq server地址和queue名了。
4、查找服務(wù)和調(diào)用服務(wù)的方式
目前由于無(wú)服務(wù)中心,沒有查找這回事。
調(diào)用服務(wù)目前是通過(guò)直接往目的地發(fā)消息來(lái)實(shí)現(xiàn),當(dāng)然Spring Integration已經(jīng)屏蔽了調(diào)用JMS的細(xì)節(jié)。
5、服務(wù)的組裝
組裝這塊目前Spring Integration也沒有清晰的提供。
6、穩(wěn)定性和性能
由于是基于message機(jī)制的,穩(wěn)定性和性能主要就取決于MQ了。
根據(jù)這個(gè)可以看出,目前雖然是有架子了,但還是有一定的距離,不過(guò)畢竟是1.0 M1,希望等1.0 release的時(shí)候能讓大家眼前一亮吧。
由于和自己想象中的分布式服務(wù)框架還是有很多的不同,因此還是繼續(xù)去實(shí)現(xiàn)自己的分布式服務(wù)框架。