什么時(shí)候在EJB系統(tǒng)中使用XML
XML是一個(gè)非常流行的詞,我們現(xiàn)在來(lái)討論在EJB系統(tǒng)中使用XML開(kāi)發(fā)中的適用性。
XML適用于以下幾種情況:
1.作為對(duì)legacy系統(tǒng)的接口。如果你有數(shù)目巨大的legacy系統(tǒng),或者你有一個(gè)很大的恐怖的的legacy系統(tǒng),然后你將需要查看你從legacy系統(tǒng)收發(fā)的數(shù)據(jù),這時(shí)候XML可以幫助你。不是去收發(fā)那個(gè)legacy系統(tǒng)能夠懂的合適結(jié)構(gòu)的數(shù)據(jù),而是你能夠?yàn)槟莻€(gè)legacy系統(tǒng)發(fā)明一種XML facade。那個(gè)facade從EJB組件得到XML輸入,然后把XML映射成那個(gè)legacy系統(tǒng)支持的合適結(jié)構(gòu)。當(dāng)那個(gè)legacy系統(tǒng)對(duì)你的EJB應(yīng)用系統(tǒng)返回?cái)?shù)據(jù)時(shí),那個(gè)XML facade轉(zhuǎn)換legacy數(shù)據(jù)成能被你的EJB應(yīng)用程序懂得的XML數(shù)據(jù)。這對(duì)處理J2EE應(yīng)用的商業(yè)分析員也很有用。他們能用XML來(lái)幫助操作數(shù)據(jù)映射,而XML是一種很容易懂的技術(shù)。
2.作為一種文檔持久性機(jī)制。當(dāng)你將大量的文檔(如新聞報(bào)道,文章,書(shū)本,等等)持久化,把他們用XML表示是合適的。
3.作為一種web service的接口。EJB組件能被封裝成一種web service。XML成為在web服務(wù)之間傳輸?shù)脑诰€數(shù)據(jù)格式。我們有一個(gè)怎么去構(gòu)建基于web service的J2EE的白皮書(shū),也有怎么從另外一個(gè)J2EE系統(tǒng)調(diào)用web service的資料。
有一個(gè)重要情況XML不是很有用,那就是EJB組件之間通信的在線格式。這個(gè)想法不僅僅是應(yīng)用程序組件互相發(fā)送合適的數(shù)據(jù)而是組件之間能通過(guò)把XML作為參數(shù)互相傳遞來(lái)互操作。因?yàn)閿?shù)據(jù)使用XML格式,每個(gè)組件能檢查XML文檔來(lái)決定什么數(shù)據(jù)被收到。雖然有些基于J2EE的流程解決方案使用這個(gè)方法,XML并不適用于EJB組件之間的通信,原因是性能問(wèn)題。解析XML文檔需要時(shí)間,通過(guò)在線傳輸XML文檔需要更長(zhǎng)的時(shí)間。為了高性能的企業(yè)級(jí)應(yīng)用,在運(yùn)行時(shí)或常規(guī)操作中使用XML代價(jià)太高。當(dāng)XML解析器變得更高效,當(dāng)人們開(kāi)始使用文本壓縮去在線傳送XML文檔時(shí),性能負(fù)擔(dān)慢慢的變得不那么重要。然而這仍然是許多系統(tǒng)的瓶頸。
另一個(gè)重要的不去使用XML的原因是因?yàn)樗ǔ2恍枰粦?yīng)用。假設(shè)一個(gè) 單獨(dú)的機(jī)構(gòu)寫(xiě)出了所有你的EJB組件,XML可能不會(huì)被怎么使用,因?yàn)楹苌傩枰诓煌到y(tǒng)之間進(jìn)行數(shù)據(jù)映射,既然你控制對(duì)象模型。
【編輯推薦】