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)上的各種觀

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

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

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

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

            其次,適合大數(shù)據(jù)量低頻率訪問符合服務(wù)大顆粒度功能:基于性能和效率平衡的要求,SOA的服務(wù)提供的是大顆粒度的應(yīng)用功能,而且跨系統(tǒng)邊界的訪問頻率也不會象程序間函數(shù)調(diào)用那么頻繁。通過使用WSDL和基于文本(Literal)的SOAP請求,可以實現(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ù)對異構(gòu)后天宿主系統(tǒng)的透明性。

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

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

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

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

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

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

          導(dǎo)航

          統(tǒng)計

          常用鏈接

          留言簿(6)

          隨筆分類(440)

          隨筆檔案(378)

          文章檔案(6)

          新聞檔案(1)

          相冊

          收藏夾(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

          最新隨筆

          搜索

          積分與排名

          最新評論

          閱讀排行榜

          評論排行榜

          free counters
          主站蜘蛛池模板: 阜新| 大洼县| 成武县| 华坪县| 民和| 桃园市| 通辽市| 金山区| 遂川县| 潮州市| 梧州市| 宕昌县| 沁源县| 曲水县| 承德县| 石河子市| 昌图县| 怀来县| 竹北市| 昌江| 疏附县| 疏勒县| 湘乡市| 高安市| 扎兰屯市| 朔州市| 邛崃市| 义乌市| 叶城县| 嘉禾县| 廊坊市| 绥阳县| 大丰市| 青神县| 定陶县| 林芝县| 东乌珠穆沁旗| 武夷山市| 阿坝县| 武功县| 温宿县|