閱讀以下關(guān)于數(shù)據(jù)通信方面的敘述,回答問(wèn)題1和問(wèn)題2。
數(shù)據(jù)通迅是當(dāng)前十分活躍與熱門(mén)的計(jì)算機(jī)與信息技術(shù)的應(yīng)用領(lǐng)域。某大型通信公司開(kāi)發(fā)了其業(yè)務(wù)的主要支撐平臺(tái)(也叫做“通信信息服務(wù)平臺(tái)”)用于在全國(guó)與全球開(kāi)展數(shù)據(jù)業(yè)務(wù)的需要。該平臺(tái)是一個(gè)典型的Java技術(shù)應(yīng)用于Internet的項(xiàng)目。馬工程師提出在全系統(tǒng)中強(qiáng)以這樣來(lái)用的Java構(gòu)架系統(tǒng):
(1)該系統(tǒng)可分為4層,分別是Browser、表示層、中間件層和數(shù)據(jù)層。
(2)表示層用Java中的JavaScript來(lái)實(shí)現(xiàn)頁(yè)面輸出。
(3)中間件層用Java來(lái)實(shí)現(xiàn)CORBA,即實(shí)現(xiàn)Component(構(gòu)件),主要實(shí)現(xiàn)業(yè)務(wù)邏輯的封裝與復(fù)用。
(4)數(shù)據(jù)層主要是數(shù)據(jù)庫(kù)和存儲(chǔ)過(guò)程的實(shí)現(xiàn)。
在應(yīng)用Java技術(shù)時(shí),馬工程師所采用的技術(shù)和策略可大致上歸納為以下5個(gè)方面:
(1)使JavaScript盡量簡(jiǎn)單,因?yàn)镴avaScript在系統(tǒng)中是放在服務(wù)器端執(zhí)行的,該語(yǔ)言是通過(guò)一個(gè)解釋執(zhí)行的,相對(duì)速度很慢,采用了兩臺(tái)HP前置機(jī)來(lái)運(yùn)行JavaScript,但是其運(yùn)行速度還是不理想,所以在設(shè)計(jì)中把JavaScript僅用來(lái)顯示從中間件層所得到的數(shù)據(jù),生成動(dòng)態(tài)頁(yè)面。在最初的設(shè)計(jì)中表示層(JavaScript)曾承擔(dān)了一些業(yè)務(wù)邏輯處理操作,導(dǎo)致效率不理想,因此,不得不盡量地減少JavaScript的程序量。
(2)用Java實(shí)現(xiàn)CORBA時(shí),應(yīng)盡量考慮共享和復(fù)用。在本系統(tǒng)中,最初的設(shè)計(jì)是讓Java在實(shí)現(xiàn)Component時(shí),只是執(zhí)行一些數(shù)據(jù)庫(kù)表的操作,導(dǎo)致表示層的負(fù)載較大。后來(lái)重新設(shè)計(jì)時(shí),總結(jié)歸納了所有的UseCase,找出了其中可供共享和復(fù)用的接口,把相同的業(yè)務(wù)邏輯操作封裝到一個(gè)接口中去。因?yàn)镴ava的執(zhí)行效率比JavaScript要高,因此提高了系統(tǒng)效率。
(3)由于在別的項(xiàng)目中,該公司曾大量地使用過(guò)Java中的JSP技術(shù)和Servlet技術(shù),為了得到系統(tǒng)的一些執(zhí)行速率的數(shù)據(jù),采用了一個(gè)的壓力測(cè)試軟件—LoadRunner來(lái)測(cè)試這兩種技術(shù)的差別。測(cè)試表明:用JSP和Servlet完成同樣的一個(gè)操作,并且保證是在相同的測(cè)試環(huán)境中(相同服務(wù)器、壓力測(cè)試工作站與數(shù)據(jù)庫(kù)環(huán)境),得到的測(cè)試數(shù)據(jù)卻有著很大差別,JSP完成一個(gè)操作的平均執(zhí)行時(shí)間在致會(huì)是Servlet程序的兩倍,在一個(gè)企業(yè)級(jí)應(yīng)用項(xiàng)目中,這可能是一個(gè)很關(guān)鍵的瓶頸。因此,我們得出的結(jié)論是:在可能的條件下,盡量地多使用Servlet。當(dāng)然,與Servlet相比,JSP編程快速,修改方便,在訪(fǎng)問(wèn)量不是很大的應(yīng)用場(chǎng)合下也是可以接受的。
(4)使用Java作為整體解決方案時(shí),應(yīng)盡量使用相同版本的JDK。在用Java作為編程語(yǔ)言的項(xiàng)目中,幾乎大多要遇到“漢字”問(wèn)題,即Java在沒(méi)有經(jīng)過(guò)轉(zhuǎn)換的情況下,在輸出漢字時(shí),很可能會(huì)出現(xiàn)亂碼。采用不同版本的JDK,解決的方案是不一樣的,比如V1.2.2版本的JDK和V1.3版本的JDK解決方法就會(huì)有一些不一樣,把V1.2.2的Java程序放在V1.3的JDK中,就不能順利輸出漢字了.其根本原因在于Java使用了Unicode編碼,和中國(guó)的國(guó)標(biāo)編碼不一樣.所以在這個(gè)意義上一些人竭力鼓吹的”一次編寫(xiě),到處運(yùn)行”似乎不一定能在所有的場(chǎng)合都行得通.
(5)使用Java時(shí),應(yīng)盡量遵從軟件規(guī)范.在Java中有一個(gè)JVM的概念,即在Java虛擬機(jī)中使用了一個(gè)垃圾收集器,專(zhuān)門(mén)用來(lái)回收內(nèi)存。但是該垃圾收集器在給編程人員帶來(lái)方便的同時(shí),也隱埋下了隱患。在程序設(shè)計(jì)中,并不能強(qiáng)制執(zhí)行垃圾收集器,因此我們要求:在Try,Catch之后必須明確要求回收內(nèi)存(當(dāng)然,也只能是通知垃圾收集器來(lái)回收垃圾),這樣可以有效地提高系統(tǒng)穩(wěn)定性。
但是在使用Java作為解決方案時(shí),也遇到很多頭疼的問(wèn)題,這些問(wèn)題導(dǎo)致同時(shí)執(zhí)行的并發(fā)性比較差,系統(tǒng)速度慢等等。歸納起來(lái)看,曾遇到過(guò)的主要具體的問(wèn)題有:
(1)用Java來(lái)實(shí)現(xiàn)CORBA中的Component,有時(shí)效率會(huì)比較低。
(2)用Java來(lái)建立數(shù)據(jù)庫(kù)連接往往會(huì)比較慢。
(3)用JSP編程時(shí)容易導(dǎo)致系統(tǒng)信息的擴(kuò)散。比如,如果有黑客攻擊一臺(tái)運(yùn)行JSP程序的服務(wù)器,他可以故意地輸入一些非法字符或異常信息給JSP程序,于是程序執(zhí)行將出現(xiàn)異常。這時(shí),就會(huì)在頁(yè)面上打印出相應(yīng)的錯(cuò)誤信息。很不幸的是,這些信息極有可能暴露出這臺(tái)服務(wù)器的JDK的版本號(hào)與路徑信息等內(nèi)容。這往往容易讓黑客們有機(jī)可乘,在可能去抓住系統(tǒng)的漏洞。
【問(wèn)題1】
試提出馬工程師遇見(jiàn)的3個(gè)問(wèn)題的解決方案,并各用80字以?xún)?nèi)文字說(shuō)明理由。
【問(wèn)題2】
Java語(yǔ)言作為一種快捷、穩(wěn)定的計(jì)算機(jī)語(yǔ)言,開(kāi)發(fā)基于因特網(wǎng)應(yīng)用的項(xiàng)目大多是相當(dāng)穩(wěn)定和比較適用的。試用200字描述Java的應(yīng)用前景。
參考答案:
【問(wèn)題1】
(1)盡量減少Component所執(zhí)行的業(yè)務(wù)邏輯量。爭(zhēng)取把能夠放在存儲(chǔ)過(guò)程中實(shí)現(xiàn)的操作,盡可能在存儲(chǔ)過(guò)程中加以實(shí)現(xiàn)。數(shù)據(jù)庫(kù)的存儲(chǔ)過(guò)程操作比起在Java程序中執(zhí)行數(shù)據(jù)庫(kù)操作要快得多。
(2)既然用Java建立數(shù)據(jù)庫(kù)連接比較慢,就可以把數(shù)據(jù)庫(kù)連接封裝成連接池(Connnect Pool),從而能非常有效地提高系統(tǒng)效率。
(3)可以不從程序入手,而從Web Server著手,把Apache配置成為使這類(lèi)異常信息不再打印出來(lái),而是使之僅出現(xiàn)一個(gè)通用的異常說(shuō)明的頁(yè)面。
【問(wèn)題2】
(1)在因特網(wǎng)上將會(huì)有更加廣泛的應(yīng)用。
(2)在嵌入式設(shè)備中,Java也大有用武之地。比如,在最新推出的Java技術(shù)中,Java已經(jīng)進(jìn)入了手機(jī)領(lǐng)域。
(3)Java程序大多以線(xiàn)程運(yùn)行,占用資源少,會(huì)逐步代替ASP與CGI程序。根據(jù)第三方測(cè)試表明,JSP程序比ASP程序要快2倍以上。用JSP代替ASP應(yīng)是大勢(shì)所趨。
(4)Java在無(wú)線(xiàn)互聯(lián)網(wǎng)中的應(yīng)用將會(huì)更加廣泛。Java支持WAP,可以方便地用Java開(kāi)發(fā)WAP程序,實(shí)現(xiàn)WAP應(yīng)用。
(5)Java與XML的無(wú)縫連接使Java在數(shù)據(jù)傳輸和異構(gòu)網(wǎng)絡(luò)通信方面有著很大的優(yōu)勢(shì)。
- 2024下半年新疆兵團(tuán)軟考考試時(shí)間及科目?jī)?nèi)容:11月9日-12日
- 2024下半年新疆兵團(tuán)軟考準(zhǔn)考證打印時(shí)間:考試前一周內(nèi)
- 2024下半年新疆兵團(tuán)軟考報(bào)名費(fèi)用及繳費(fèi)時(shí)間:8月21日-9月17日
- 2024下半年新疆兵團(tuán)軟考報(bào)名時(shí)間及報(bào)名入口:8月21日-9月14日
- 2024下半年新疆軟考考試時(shí)間及科目?jī)?nèi)容:11月9日-12日
- 2024下半年新疆軟考報(bào)名時(shí)間及報(bào)名入口:8月21日-9月15日
- 查看計(jì)算機(jī)軟件水平考試全部文檔 >>
- 2024下半年陜西計(jì)算機(jī)技術(shù)與軟件專(zhuān)業(yè)技術(shù)資格(水
- 2024下半年湖北軟考考試時(shí)間及科目安排:11月9
- 2024下半年新疆兵團(tuán)軟考報(bào)名費(fèi)用及繳費(fèi)時(shí)間:8月
- 2024下半年重慶軟考考試時(shí)間及科目?jī)?nèi)容:11月9
- 2024下半年湖北軟考報(bào)名時(shí)間及報(bào)名入口:9月1日
- 2024下半年河南軟考報(bào)名費(fèi)用及繳費(fèi)時(shí)間:8月21
- 2024下半年河南軟考考試時(shí)間及科目?jī)?nèi)容:11月9
- 2024下半年新疆兵團(tuán)軟考報(bào)名時(shí)間及報(bào)名入口:8月