gembin

          OSGi, Eclipse Equinox, ECF, Virgo, Gemini, Apache Felix, Karaf, Aires, Camel, Eclipse RCP

          HBase, Hadoop, ZooKeeper, Cassandra

          Flex4, AS3, Swiz framework, GraniteDS, BlazeDS etc.

          There is nothing that software can't fix. Unfortunately, there is also nothing that software can't completely fuck up. That gap is called talent.

          About Me

           

          SOA和Web Service的關(guān)系

          在很多場合的交流中,常常遇到把SOA和Web Service混用的情況,所以想在這次的Blog里,結(jié)合網(wǎng)上的各種觀

          點(diǎn),談?wù)剛€(gè)人對(duì)兩個(gè)概念的理解。用一句話來概括基本的觀點(diǎn)就是“SOA不是Web Service,Web Service是目前最適合實(shí)現(xiàn)SOA的技術(shù)”。 之所以SOA和Web Service被混為一談,最可能的原因了也就在于此吧。

            早在1996年Gartner就前瞻性地提出了面向服務(wù)架構(gòu)的思想(SOA),該年赫赫有名的Netscape 才發(fā)布了Navigator 2.0,整個(gè)互聯(lián)網(wǎng)剛剛慶祝超過500,000網(wǎng)站的誕生,網(wǎng)絡(luò)上的商業(yè)應(yīng)用還是鳳毛麟角,Web Service不知為何物,SOA還只是束之高閣的理論概念。直到2000年以后,W3C才成立了相關(guān)的委員會(huì),開始討論Web Service的相關(guān)標(biāo)準(zhǔn);各大廠商一邊積極參與標(biāo)準(zhǔn)制定,一邊推出了一系列實(shí)實(shí)在在的產(chǎn)品。新的技術(shù)和新的產(chǎn)品出現(xiàn),SOA找到了可以依托的憑借。隨著 Web Service技術(shù)的推出和應(yīng)用,SOA的思想被一個(gè)個(gè)效益顯著的信息系統(tǒng)建設(shè)項(xiàng)目不斷的示范,才逐漸成為現(xiàn)今的熱門話題。類似的情況讓人聯(lián)想到愛因斯坦提出來的理論,著名的質(zhì)量能量轉(zhuǎn)化等式E=mc2,直到人們掌握了核子裂變技術(shù),才成功生產(chǎn)出了原子彈,向世人展示了這個(gè)理論等式的巨大威力。

            因?yàn)楝F(xiàn)在幾乎所有的SOA應(yīng)用場合都是和Web Service綁定的,所以不免有時(shí)候這兩個(gè)概念混用。不可否認(rèn)Web Service是現(xiàn)在最適合實(shí)現(xiàn)SOA的技術(shù),SOA的走紅在很大程度上歸功于Web Service標(biāo)準(zhǔn)的成熟和應(yīng)用普及。因?yàn)楝F(xiàn)在大家基本上認(rèn)同Web Service技術(shù)在幾方面體現(xiàn)了SOA的需要:

            首先是基于標(biāo)準(zhǔn)訪問的獨(dú)立功能實(shí)體滿足了松耦合要求:在Web Service中所有的訪問都通過SOAP訪問進(jìn)行,用WSDL定義的接口封裝,通過UDDI進(jìn)行目錄查找,可以動(dòng)態(tài)改變一個(gè)服務(wù)的提供方而無需影響客戶端的配置,外界客戶端是根本不關(guān)心訪問服務(wù)器端的實(shí)現(xiàn)。

            其次,適合大數(shù)據(jù)量低頻率訪問符合服務(wù)大顆粒度功能:基于性能和效率平衡的要求,SOA的服務(wù)提供的是大顆粒度的應(yīng)用功能,而且跨系統(tǒng)邊界的訪問頻率也不會(huì)象程序間函數(shù)調(diào)用那么頻繁。通過使用WSDL和基于文本(Literal)的SOAP請(qǐng)求,可以實(shí)現(xiàn)能一次性接收處理大量數(shù)據(jù)。

            最后,基于標(biāo)準(zhǔn)的文本消息傳遞為異構(gòu)系統(tǒng)提供通訊機(jī)制:Web Service所有的通訊是通過SOAP進(jìn)行的,而SOAP是基于XML的,XML是結(jié)構(gòu)化的文本消息。從最早的EDI開始,文本消息也許是異構(gòu)系統(tǒng)間通訊最好的消息格式,適用于SOA強(qiáng)調(diào)的服務(wù)對(duì)異構(gòu)后天宿主系統(tǒng)的透明性。

          綜合上述觀點(diǎn),Web Service不愧為當(dāng)前SOA的最好選擇。然而,就SOA思想本身而言,并不一定要局限于Web Service方式的實(shí)現(xiàn)。更應(yīng)該看到的是SOA本身強(qiáng)調(diào)的是實(shí)現(xiàn)業(yè)務(wù)邏輯的敏捷性要求,是從業(yè)務(wù)應(yīng)用角度對(duì)信息系統(tǒng)實(shí)現(xiàn)和應(yīng)用的抽象。隨著人們認(rèn)識(shí)的提 高,還會(huì)有新技術(shù)不斷的發(fā)明出來,更好的來滿足這個(gè)要求。就好像在核子裂變之后,人們又發(fā)現(xiàn)了威力更加強(qiáng)大的核子聚變。為了要有一個(gè)更高的角度來看待問 題,SOA和Web Service還是不應(yīng)該混為一談

          Web Service是就現(xiàn)在而言最適合實(shí)現(xiàn)SOA的一些技術(shù)的集合,事實(shí)上最近SOA的火爆在很大程度上歸功于Web Service標(biāo)準(zhǔn)的成熟和應(yīng)用的普及為廣泛的實(shí)現(xiàn)SOA架構(gòu)提供了基礎(chǔ)。下面讓我們看看Web Service中的各種協(xié)議是如何互相工作來滿足SOA所需的特點(diǎn)的:

          獨(dú)立的功能實(shí)體:通過UDDI的目錄查找,我們可以動(dòng)態(tài)改變一個(gè)服務(wù)的提供方而無需影響客戶端的應(yīng)用程序配置。所有的訪問都通過SOAP訪問進(jìn)行,只要WSDL接口封裝良好,外界客戶端是根本沒有辦法直接訪問服務(wù)器端的數(shù)據(jù)的。

          大數(shù)據(jù)量低頻率訪問:通過使用WSDL和基于文本(Literal)的SOAP請(qǐng)求,我們可以實(shí)現(xiàn)能一次性接收大量數(shù)據(jù)的接口。這里需要著重指出的是 SOAP請(qǐng)求分文本方式和遠(yuǎn)程調(diào)用(RPC)兩種方式,正如上文已經(jīng)提到的,采用遠(yuǎn)程調(diào)用方式的SOAP請(qǐng)求并不符合這點(diǎn)要求。但是令人遺憾的是現(xiàn)有的大 多數(shù)SOAP請(qǐng)求采用的仍然是遠(yuǎn)程調(diào)用(RPC)方式,在某些平臺(tái)上,例如IBM WebSphere的早期版本,甚至沒有提供文本方式的SOAP支持。

          基于文本的消息傳遞:Web Service所有的通訊是通過SOAP進(jìn)行的,而SOAP是基于XML的,不同版本之間可以使用不同的DTD或者XML Schema加以辨別和區(qū)分。因此只需要我們?yōu)椴煌陌姹咎峁┎煌奶幚砭涂梢暂p松實(shí)現(xiàn)版本控制的目標(biāo)。
          screen.width-500)this.width=screen.width-500" border="0">

          posted on 2008-05-06 00:41 gembin 閱讀(1759) 評(píng)論(0)  編輯  收藏 所屬分類: SOA 、Web Service

          導(dǎo)航

          統(tǒng)計(jì)

          常用鏈接

          留言簿(6)

          隨筆分類(440)

          隨筆檔案(378)

          文章檔案(6)

          新聞檔案(1)

          相冊(cè)

          收藏夾(9)

          Adobe

          Android

          AS3

          Blog-Links

          Build

          Design Pattern

          Eclipse

          Favorite Links

          Flickr

          Game Dev

          HBase

          Identity Management

          IT resources

          JEE

          Language

          OpenID

          OSGi

          SOA

          Version Control

          最新隨筆

          搜索

          積分與排名

          最新評(píng)論

          閱讀排行榜

          評(píng)論排行榜

          free counters
          主站蜘蛛池模板: 邵阳市| 深州市| 苏州市| 鹤壁市| 龙里县| 贺兰县| 阿克苏市| 湖口县| 桐柏县| 克东县| 宜都市| 泰兴市| 阿克苏市| 扶风县| 舒城县| 甘德县| 双柏县| 仙居县| 江津市| 盘锦市| 桐柏县| 同心县| 和林格尔县| 涟源市| 沁源县| 安化县| 微博| 镶黄旗| 阜阳市| 泰宁县| 鹤山市| 上蔡县| 肥城市| 宁津县| 富阳市| 翁牛特旗| 出国| 敖汉旗| 波密县| 固始县| 密山市|