xmlHTTP與SOAP:
XML是web serivces的核心基礎(chǔ)技術(shù),是SOAP實(shí)現(xiàn)的關(guān)鍵所在;而xmlhttp就是根據(jù)XML來(lái)設(shè)計(jì)的。從實(shí)現(xiàn)的方式上講:XMLHTTP是基于瀏覽器的,只要有IE,就能實(shí)現(xiàn)向服務(wù)器傳遞XML字符串,具有很高的通用性。但是瀏覽器不是用來(lái)做XMLHTTP,它是面向大眾用戶(hù)瀏覽的,如果能用XML完成各種操作,必然會(huì)影響到用戶(hù)。比如以前版本的msxml的對(duì)應(yīng)瀏覽器,是可以訪(fǎng)問(wèn)客戶(hù)端XML文檔(初始時(shí)為XMLHTTP設(shè)計(jì)的),也就意味著可以通過(guò)XMLHTTP技術(shù)訪(fǎng)問(wèn)本地文件系統(tǒng)。后來(lái)microsoft把它定義為漏洞,現(xiàn)在就不行了。當(dāng)然也可以編寫(xiě)客戶(hù)端程序,只不過(guò)限于Visual 系列的程序,他們可以調(diào)用msxml中的API。但是服務(wù)端可以是asp,jsp/servlet都可以,都是把xml串變成xml文檔對(duì)象。
SOAP是XML格式的通信協(xié)議,包含:SOAP封套定義了描述消息內(nèi)容的約定,暗示了消息的處理方式;協(xié)議綁定提供了通過(guò)更底層協(xié)議傳輸SOAP 封套的一套通用機(jī)制;編碼規(guī)則是把各種應(yīng)用程序數(shù)據(jù)類(lèi)型映射為基于標(biāo)簽的XML表示方法的約定;RPC機(jī)制提供了一個(gè)表示遠(yuǎn)程過(guò)程調(diào)用及其返回值的方法。它與其他的協(xié)議之間沒(méi)有明確的關(guān)系,他本省就是一種協(xié)議。它可以與http.stmp,tcp等協(xié)議綁定。SOAP消息是XML文檔,還可以帶附件,它可以根據(jù)W3C定義的API,生成SOAP消息,當(dāng)然microsoft的.net平臺(tái)也支持SOAP。SOAP+HTTP和XMLHTTP相似,當(dāng)它提供更好和更強(qiáng)大的實(shí)現(xiàn)功能,可拓展性和分布協(xié)作通信中的通用性,更重要的是它已成為Web Services和線(xiàn)路通信的關(guān)鍵技術(shù)。
SOAP和RMI,CORBA,COM
RMI和COM都是分布式應(yīng)用的實(shí)現(xiàn)方式,它們定義組件之間的通信。由于它們只是一個(gè)體系(例如用java寫(xiě)的一系列程序)下程序之間的通信約定,而且通信需要特定的平臺(tái)支持,除了本體系之內(nèi)的通信是高效之外,不能與別的體系下的程序。
CORBA就是為了解決這種通信問(wèn)題,設(shè)計(jì)了代理請(qǐng)求模型(利用IDL語(yǔ)言),這樣能夠彼此之間的通信,但這樣好像是修補(bǔ),不能解決根本問(wèn)題,是系統(tǒng)變得越來(lái)越復(fù)雜,而且用CORBA僅僅在挽回舊系統(tǒng)的使用價(jià)值有效果。他們都不能透過(guò)防火墻的。SOAP+HTTP是防火墻的友好協(xié)議,能夠透過(guò)防火墻的。
SOAP是一種與具體實(shí)現(xiàn)無(wú)關(guān)的協(xié)議,基于XML格式,傳輸XML格式的數(shù)據(jù),使得系統(tǒng)變得松散。這樣在應(yīng)用中利用XML的可讀性,解析XML文檔,來(lái)實(shí)現(xiàn)應(yīng)用,大大的提高了系統(tǒng)的互操作性(與不同的系統(tǒng)之間的通信)。而且系統(tǒng)中各個(gè)單元業(yè)務(wù)邏輯清楚,這樣就具有很高的可移植性和可重用。
UDDI與JNDI
UDDI是服務(wù)的注冊(cè)管理協(xié)議,UDDI注冊(cè)中心是用來(lái)注冊(cè)服務(wù)的,用戶(hù)可以通過(guò)WSDL來(lái)進(jìn)行服務(wù)注冊(cè),客戶(hù)通過(guò)在UDDI注冊(cè)中心上查找服務(wù),獲得WSDL文檔,根據(jù)WSDL文檔,獲取訪(fǎng)問(wèn)服務(wù)的方法,從而用SOAP與服務(wù)進(jìn)行通信。它可以通過(guò)數(shù)據(jù)庫(kù)來(lái)實(shí)現(xiàn),也可以用開(kāi)源或公司(IBM等)的,使用XML來(lái)表現(xiàn)。當(dāng)用戶(hù)查詢(xún),其細(xì)節(jié)可以由XML格式的信息返回。其訪(fǎng)問(wèn)程序不過(guò)是一個(gè)層次向下的查找的過(guò)程。它注冊(cè)的服務(wù)是通用的,與平臺(tái)無(wú)關(guān),而且注冊(cè)的方式是通用的XML的格式。它可以面向Internet,或Interanet為各種用戶(hù),提供各種各樣的服務(wù)。
JNDI是Java服務(wù)命名目錄,它以樹(shù)的形式記錄了EJB,DataSource的訪(fǎng)問(wèn)目錄,程序可以通過(guò)JDNI和RMI來(lái)定位服務(wù)。具體的通過(guò)它們的部署文件,當(dāng)服務(wù)器啟動(dòng)后,它根據(jù)部署文件自動(dòng)建立JNDI,支持RMI和命名服務(wù)的查詢(xún)(由服務(wù)器自己實(shí)現(xiàn))。然后RNI就可以訪(fǎng)問(wèn)這些組件。它的思想和UDDI基本差不多,但它與具體的體系平臺(tái)綁定,而且是由服務(wù)(與程序相關(guān),嚴(yán)格不應(yīng)該叫服務(wù),應(yīng)該說(shuō)是組件)完全綁定,實(shí)現(xiàn)方式簡(jiǎn)單。因此 UDDI相對(duì)于JNDI,更動(dòng)態(tài),更易操作.
WSDD與EJB的配置文件
對(duì)于CMP型的實(shí)體bean,WSDD與其配置文件有相似之處,但是它描述數(shù)據(jù)與數(shù)據(jù)庫(kù)形成映射,不涉及方法,有服務(wù)器系統(tǒng)底層實(shí)現(xiàn)訪(fǎng)問(wèn)方法。而WSDD定義服務(wù)的訪(fǎng)問(wèn)接口,有支持web services的系統(tǒng)底層進(jìn)行識(shí)別接口,傳送數(shù)據(jù)等。
新聞熱點(diǎn)
疑難解答
圖片精選
網(wǎng)友關(guān)注