Internet 環(huán)境下,實現(xiàn)系統(tǒng)是松散耦合的、跨平臺的,與語言無關(guān)的,與特定接口無關(guān)的,而且要提供對Web 應(yīng)用程序的可靠訪問。
隨著異種計算環(huán)境的不斷增加,各種系統(tǒng)間的互操作性就愈顯得必要,要求系統(tǒng)能夠無縫地進(jìn)行通信和共享數(shù)據(jù),從而在Internet環(huán)境下,消除巨大的信息孤島,實現(xiàn)信息共享、進(jìn)行數(shù)據(jù)交換,達(dá)到信息的一致性。Web services 希望實現(xiàn)不同的系統(tǒng)之間能夠用“軟件-軟件對話”的方式相互調(diào)用,打破了軟件應(yīng)用、網(wǎng)站和各種設(shè)備之間的格格不入的狀態(tài),實現(xiàn)“基于WEB無縫集成”的目標(biāo)。

SOAP(Simple Object Access Protocol )簡單對象訪問協(xié)議是在分散或分布式的環(huán)境中交換信息的簡單的協(xié)議,是一個基于XML的協(xié)議,它包括四個部分:SOAP封裝(envelop),封裝定義了一個描述消息中的內(nèi)容是什么,是誰發(fā)送的,誰應(yīng)當(dāng)接受并處理它以及如何處理它們的框架;SOAP編碼規(guī)則(encoding rules),用于表示應(yīng)用程序需要使用的數(shù)據(jù)類型的實例; SOAP RPC表示(RPC representation),表示遠(yuǎn)程過程調(diào)用和應(yīng)答的協(xié)定;SOAP綁定(binding),使用底層協(xié)議交換信息。
雖然這四個部分都作為SOAP的一部分,作為一個整體定義的,但他們在功能上是相交的、彼此獨立的。特別的,信封和編碼規(guī)則是被定義在不同的XML命名空間(namespace)中,這樣使得定義更加簡單。
http://www.pconline.com.cn/pcedu/empolder/wz/xml/0404/348921.html?
SOAP簡單的理解,就是這樣的一個開放協(xié)議SOAP=RPC+HTTP+XML:采用HTTP作為底層通訊協(xié)議;RPC作為一致性的調(diào)用途徑,XML作為數(shù)據(jù)傳送的格式,允許服務(wù)提供者和服務(wù)客戶經(jīng)過防火墻在INTERNET進(jìn)行通訊交互。RPC的描敘可能不大準(zhǔn)確,因為SOAP一開始構(gòu)思就是要實現(xiàn)平臺與環(huán)境的無關(guān)性和獨立性,每一個通過網(wǎng)絡(luò)的遠(yuǎn)程調(diào)用都可以通過SOAP封裝起來,包括DCE(Distributed Computing Environment ) RPC CALLS,COM/DCOM CALLS, CORBA CALLS, JAVA CALLS,etc。
SOAP 使用 HTTP 傳送 XML,盡管HTTP 不是有效率的通訊協(xié)議,而且 XML 還需要額外的文件解析(parse),兩者使得交易的速度大大低于其它方案。但是XML 是一個開放、健全、有語義的訊息機(jī)制,而 HTTP 是一個廣泛又能避免許多關(guān)于防火墻的問題,從而使SOAP得到了廣泛的應(yīng)用。但是如果效率對你來說很重要,那么你應(yīng)該多考慮其它的方式,而不要用 SOAP。