Web Services的起源 Web應(yīng)用的巨大成功和不斷發(fā)展,使其滲透到商業(yè)領(lǐng)域和個人生活的各個方面。人們只要使用瀏覽器,就可以享受到各種各樣的Web服務(wù),例如網(wǎng)上購物,網(wǎng)上交易,網(wǎng)絡(luò)游戲,預(yù)定車票,網(wǎng)上聊天和交友等等。與此同時(shí),由于Web技術(shù)所帶來的優(yōu)勢(統(tǒng)一的客戶端和較好的維護(hù)性),使一些傳統(tǒng)的應(yīng)用紛紛轉(zhuǎn)型到BS結(jié)構(gòu)上。
Web Services的缺點(diǎn) 由于是基于XML的應(yīng)用,Web Services與生俱來地在擁有XML帶來的一切優(yōu)勢的同時(shí),不可避免地繼續(xù)了XML所帶來的一些限制。
Web Services通常需要大量的CPU資源。因?yàn)閄ML數(shù)據(jù)要經(jīng)過多步處理才能被系統(tǒng)使用。首先是效驗(yàn)(validate),檢查它的格式是否符合XML的規(guī)范,以及根據(jù)應(yīng)用程序定義(DTD或Schema)檢查是否符合語義上的規(guī)范;然后還要進(jìn)行解析(parse),從XML文檔分解出單個的元素;最后還要轉(zhuǎn)換成應(yīng)用程序所需要的二進(jìn)制表達(dá)(例如,把“12” 轉(zhuǎn)換成整型12的二進(jìn)制表示)。
Web Services還意味著占用較多的內(nèi)存資源。在進(jìn)行XML解析的時(shí)候,會產(chǎn)生大量的臨時(shí)內(nèi)存對象。非凡是在處理DOM對象的時(shí)候。這些大量的臨時(shí)對象對于象java這類自動回收內(nèi)存的語言和系統(tǒng)其實(shí)是一種負(fù)擔(dān),大量的臨時(shí)對象將會使系統(tǒng)每隔一段時(shí)間就會進(jìn)行內(nèi)存回收,從而降低系統(tǒng)的性能。當(dāng)然,現(xiàn)在有的Web Services的產(chǎn)品(如axis)采用了SAX技術(shù),大大減少了內(nèi)存的占用量。具體信息請參考:(http://xml.apache.org/axis/index.Html)。