原文鏈接:
http://www.shnenglu.com/zhangji198543/archive/2006/04/17/5684.html認真的閱讀了這篇文章,總結(jié)了一下:
首先,必須理解 Web 服務(wù)并不等同于面向服務(wù)的體系結(jié)構(gòu)(SOA)。
Web 服務(wù)是包括 XML,SOAP,WSDL 和 UDDI 在內(nèi)的技術(shù)的集合,它使人們能夠針對特定的消息傳遞和應(yīng)用程序集成問題構(gòu)建編程解決方案。隨著時間的推移,人們有理由相信這些技術(shù)將逐漸成熟并最終為更好、更有效、更健壯的技術(shù)所取代,但是,就目前的情況而言,它們可以發(fā)揮作用。至少,它們是 SOA 能夠最終實現(xiàn)這種觀念的證明。
SOA 只不過是一種體系結(jié)構(gòu)。它不是任何諸如 Web 服務(wù)這樣的特定技術(shù)的集合;而是超越它們的,在理想的情況下,是完全獨立于它們的。在業(yè)務(wù)環(huán)境中,SOA 的純粹的體系結(jié)構(gòu)定義可能會是這樣的“
一種應(yīng)用程序體系結(jié)構(gòu),在這種體系結(jié)構(gòu)中,所有功能都定義為獨立的服務(wù),這些服務(wù)帶有定義明確的可調(diào)用接口,可以以定義好的順序調(diào)用這些服務(wù)來形成業(yè)務(wù)流程”。看以下對該定義的解釋:
1.所有功能都定義為服務(wù)。這僅僅包括業(yè)務(wù)功能、由底層功能組成的業(yè)務(wù)事務(wù)和系統(tǒng)服務(wù)功能。
2.所有的服務(wù)都是獨立的。它們就像“黑匣子”一樣運行:外部組件既不知道也不關(guān)心它們?nèi)绾螆?zhí)行它們的功能,而僅僅關(guān)心它們是否返回期望的結(jié)果。
3.在其最一般的意義上來說,接口是可調(diào)用的;也就是說,在體系結(jié)構(gòu)的層面上,它們究竟是本地的(在本系統(tǒng)內(nèi))還是遠程的(在直接系統(tǒng)外)、是用什么互連 Scheme 或協(xié)議來調(diào)用或需要什么樣的基礎(chǔ)架構(gòu)組件來連接,都是無關(guān)緊要的。服務(wù)可能是在相同的應(yīng)用程序中,也可能是在公司內(nèi)部網(wǎng)內(nèi)完全不同的系統(tǒng)上的不對稱多處理器的不同地址空間中,還有可能是在用于 B2B 配置的合作伙伴的系統(tǒng)上的應(yīng)用程序中。
其次,要明白應(yīng)用SOA的原因。SOA可以解決企業(yè)面臨的重大問題-----成本。SOA可以利用現(xiàn)有的資產(chǎn)?,F(xiàn)有系統(tǒng)很少可以拋棄,它們通常都包含對于企業(yè)很有價值的東西。從戰(zhàn)略上講,目標(biāo)是構(gòu)造一個新的體系結(jié)構(gòu)來創(chuàng)造所有想要的價值,但是,從戰(zhàn)術(shù)上講,必須集成現(xiàn)有系統(tǒng),以便隨著時間的推移,可以在可管理、漸進式項目中分化或取代它們。