關(guān)于通信服務(wù)平臺的論文
作為信息技術(shù)公司中的一名技術(shù)骨干,我有幸參加了該系統的分析與設計工作,承擔了相當多的Java應用開(kāi)發(fā)任務(wù)。此系統中的軟件部分大多由Java來(lái)實(shí)現,在全系統中我們是這樣來(lái)用Java構架系統的:
。1)本系統可分為4層,分別是Browser、表示層、中間件層和數據層。
。2)表示層用Java中的JavaScript來(lái)實(shí)現頁(yè)面輸出。
。3)中間件層用Java來(lái)實(shí)現CORBA,即實(shí)現Component(構件),主要實(shí)現業(yè)務(wù)邏輯的封裝與復用。
。4)數據層主要是數據庫和存儲過(guò)程的實(shí)現。
我們在應用Java技術(shù)時(shí),所采用的技術(shù)和策略可大致上歸納為以下5個(gè)方面:
。1)使JavaScript盡量簡(jiǎn)單,因為JavaScript在我們系統中是放在服務(wù)器端執行的,該語(yǔ)言是通過(guò)一個(gè)解釋器解釋執行的,相對速度很慢,我們采用了兩臺HP前置機來(lái)運行JavaScript,但是其運行速度還是不理想,所以我們在設計中把JavaScript僅用來(lái)顯示從中間件層所得到的數據,生成動(dòng)態(tài)頁(yè)面。在最初的設計中表示層(JavaScript)曾承擔了一些業(yè)務(wù)邏輯處理操作,導致效率不理想,因此,我們不得不盡量地減少JavaScript的程序量。
。2)用Java實(shí)現CORBA時(shí),應盡量考慮共享和復用。在本系統中,最初的設計是讓Java在實(shí)現Component時(shí),只是執行一些數據庫表的操作,導致表示層的負載較大。后來(lái),我們重新設計時(shí),總結歸納了所有的UseCase,找出了其中可供共享和復用的接口,把相同的業(yè)務(wù)邏輯操作封裝到一個(gè)接口中去。因為Java的執行效率比JavaScript要高,因此提高了系統效率。
。3)在別的項目中,我們曾大量地使用過(guò)Java中的JSP技術(shù)和Servlet技術(shù),一般人可能不能區分這兩種Java技術(shù)的區別。為了得到系統的一些執行速率的數據,我們采用了一個(gè)著(zhù)名的壓力測試軟件——LoadRunner來(lái)測試這兩種技術(shù)的差別。測試表明:用JSP和Servlet完成同樣的一個(gè)操作,并且保證是在相同的測試環(huán)境中(相同服務(wù)器、壓力測試工作站與數據庫環(huán)境),得到的測試數據卻有著(zhù)很大差別,JSP完成一個(gè)操作的`平均執行時(shí)間大致會(huì )是Servlet程序的兩倍。在一個(gè)企業(yè)級應用項目中,這可能是一個(gè)很關(guān)鍵的瓶頸。因此,我們得出的結論是:在可能的條件下,盡量地多使用Servlet。當然,與Servlet相比,JSP編程快速,修改方便,在訪(fǎng)問(wèn)量不是很大的應用場(chǎng)合下也是可以接受的。
。4)使用Java作為整體解決方案時(shí),應盡量使用相同版本的JDK。在用Java作為編程語(yǔ)言的項目中,幾乎大多要遇到“漢字”問(wèn)題,即Java在沒(méi)有經(jīng)過(guò)轉換的情況下,在輸出漢字時(shí),很可能會(huì )出現亂碼。采用不同版本的JDK,解決的方案是不一樣的,比如V1.2.2版本的JDK和V1.3版本的JDK解決方法就會(huì )有一些不一樣,把V1.2.2的Java程序放在V1.3的JDK中,就不能順利輸出漢字了。其根本原因在于Java使用了Unicode編碼,和我們中國的國標編碼不一樣。所以在這個(gè)意義上一些人竭力鼓吹的“一次編寫(xiě),到處運行”似乎不一定能在所有的場(chǎng)合都行得通。
。5)使用Java時(shí),應盡量遵從軟件規范。在Java中有一個(gè)JVM的概念,即在Java虛擬機中使用了一個(gè)垃圾收集器,專(zhuān)門(mén)用來(lái)回收內存。但是該垃圾收集器在給編程人員帶來(lái)方便的同時(shí),也隱埋下了隱患。在程序設計中,并不能強制執行垃圾收集器,所以,開(kāi)發(fā)人員不能確定某對象是否已釋放,常常讓編程人員養成依賴(lài)自動(dòng)收集的壞習慣,因此我們要求:在Try,Catch之后必須明確要求回收內存(當然,也只能是通知垃圾收集器來(lái)回收垃圾),這樣可以有效地提高系統穩定性。
以上這些實(shí)用性的技術(shù)與策略,是我們在實(shí)踐中的一些實(shí)際體會(huì ),僅供各位開(kāi)發(fā)人員根據實(shí)際情況參考。
當然,在使用Java作為解決方案時(shí),也會(huì )遇到很多讓我們頭疼的問(wèn)題,這些問(wèn)題導致同時(shí)執行的并發(fā)性比較差,系統速度慢等等。歸納起來(lái)看,我們曾遇到過(guò)的主要具體的問(wèn)題有:
。1)用Java來(lái)實(shí)現CORBA中的Component,有時(shí)效率會(huì )比較低。
。2)用Java來(lái)建立數據庫連接往往會(huì )比較慢。
。3)用JSP編程時(shí)容易導致系統信息的擴散。比如,如果有黑客攻擊一臺運行JSP程序的服務(wù)器,他可以故意地輸入一些非法字符或異常信息給JSP程序,于是程序執行將出現異常。這時(shí),就會(huì )在頁(yè)面上打印出相應的錯誤信息。很不幸的是,這些信息極有可能暴露出這臺服務(wù)器的JDK的版本號與路徑信息等內容。這往往容易讓黑客們有機可乘,有可能去抓住系統的漏洞。
在發(fā)現了這些問(wèn)題后,我們經(jīng)過(guò)仔細研究,找出了一些解決辦法。比如:
。1)既然用Java實(shí)現Component比較慢,我們就盡量減少Component所執行的業(yè)務(wù)邏輯量。爭取把能夠放在存儲過(guò)程中實(shí)現的操作,盡可能在存儲過(guò)程中加以實(shí)現。眾所周知,數據庫的存儲過(guò)程操作,比起在Java程序中執行數據庫操作要快得多。
。2)既然用Java建立數據庫連接比較慢,我們就可以把數據庫連接封裝成連接池(ConnectPool),從而能非常有效地提高系統效率。我們也曾經(jīng)用“LoadRunner”作過(guò)壓力測試,使用連接池比不使用連接池的速度要快上3~5倍。
。3)為了對付JSP程序與Servlet程序會(huì )打印出異常系統信息的問(wèn)題。我們曾查閱了很多JSP或Servlet的資料,最終是毫無(wú)頭緒。但是我們可以換另一種思路,即是不從程序下手,而從WebServer著(zhù)手,我們可以把Apache配置成為使這類(lèi)異常信息不再打印出來(lái),而是使之僅出現一個(gè)通用的異常說(shuō)明的頁(yè)面,這樣,就能十分有效地解決這個(gè)問(wèn)題。
在我們使用Java作為編程語(yǔ)言的這么多項目中,絕大多數是比較成功的。Java語(yǔ)言作為一種快捷、穩定的計算機語(yǔ)言,開(kāi)發(fā)基于因特網(wǎng)應用的項目大多是相當穩定和比較適用的。
在我個(gè)人看來(lái),Java的應用前景十分光明,大體上可以著(zhù)眼于以下方面:
。1)在因特網(wǎng)上將會(huì )有更加廣泛的應用。
。2)在嵌入式設備中,Java也大有用武之地。比如,在最新推出的Java技術(shù)中,Java已經(jīng)進(jìn)入了手機領(lǐng)域。
。3)Java程序大多以線(xiàn)程運行,占用資源少,會(huì )逐步代替ASP與CGI程序。根據第三方測試表明:JSP程序比ASP程序要快2倍以上。用JSP代替ASP應是大勢所趨。
。4)Java在無(wú)線(xiàn)互聯(lián)網(wǎng)中的應用將會(huì )更加廣泛。Java支持WAP,可以方便地用Java開(kāi)發(fā)WAP程序,實(shí)現WAP應用。
。5)Java與XML的無(wú)縫連接使Java在數據傳輸和異構網(wǎng)絡(luò )通信方面有著(zhù)很大的優(yōu)勢。
就我個(gè)人而言,我將會(huì )在相當長(cháng)一段時(shí)期內致力于Java在無(wú)線(xiàn)互聯(lián)中的應用,為我國的移動(dòng)通信事業(yè)開(kāi)發(fā)出更多的優(yōu)秀實(shí)用的項目。
評注;參與了一個(gè)較大的項目后有實(shí)踐體會(huì )。全文都采用1、2、3、4方式,文章的風(fēng)格顯得單調,不大吸引人。但是本文的優(yōu)點(diǎn)是;(1)寫(xiě)得很有條理。(2)內容的選擇合適。(3)所列舉的策略、注意事項與發(fā)現的問(wèn)題都很現實(shí)可信。(本文主要參考了廣州王海波等人論文)
【通信服務(wù)平臺的論文】相關(guān)文章:
淺述通信實(shí)訓平臺的通信專(zhuān)業(yè)教學(xué)改革與實(shí)踐論文06-14
基于用戶(hù)體驗的科技論文服務(wù)平臺評價(jià)體系構建論文06-25
關(guān)于邯鋼基于WEB的客戶(hù)服務(wù)平臺設計論文04-21
基于海事衛星網(wǎng)上服務(wù)平臺的功能和設計論文04-21
對營(yíng)銷(xiāo)服務(wù)調度平臺的建設進(jìn)行分析優(yōu)秀論文06-26