侯永杰
(山西農(nóng)業(yè)大學(xué)軟件工程2016屆,晉中 030800)
伴隨當(dāng)今互聯(lián)網(wǎng)技術(shù)的不斷發(fā)展,以及以HTTP協(xié)議為基礎(chǔ)的Web技術(shù)在多領(lǐng)域中的應(yīng)用,使傳統(tǒng)的生產(chǎn)方式與工作模式發(fā)生了非常大的改變,使得協(xié)同工作與資源共享成為現(xiàn)實(shí)。在因特網(wǎng)中,借助于Web技術(shù),能夠構(gòu)建一個(gè)統(tǒng)一且簡(jiǎn)單,且無關(guān)于用戶平臺(tái)的交流方式,將安全設(shè)施、數(shù)據(jù)庫(kù)及多媒體等技術(shù),均劃歸至圍繞Web的瀏覽器/服務(wù)器(B/S)模式當(dāng)中,便于人們?yōu)g覽、使用。本文就基于Web應(yīng)用系統(tǒng)開發(fā)的純Java實(shí)現(xiàn)技術(shù)作一探討。
當(dāng)前,比較常用且具有典型性的以Web應(yīng)用系統(tǒng)為基礎(chǔ)的計(jì)算模式,即瀏覽器/服務(wù)器(B/S),其選用的是三層結(jié)構(gòu),其一為數(shù)據(jù)服務(wù)層,其二是應(yīng)用服務(wù)層,其三為用戶服務(wù)層。與之前經(jīng)常使用的兩層結(jié)構(gòu)相比較,最大的不同在于前者額外增加了一個(gè)新層,即應(yīng)用服務(wù)層,主要用作無關(guān)于用戶界面與數(shù)據(jù)存儲(chǔ)的工作,比如數(shù)據(jù)分析、數(shù)值計(jì)算及復(fù)雜的應(yīng)用邏輯處理。針對(duì)三層結(jié)構(gòu)而言,許多與應(yīng)用由緊密關(guān)聯(lián)的工作,抽取于客戶端,且均將其單獨(dú)置入應(yīng)用服務(wù)器當(dāng)中。所以,可將其劃分為3部分,即數(shù)據(jù)庫(kù)管理、應(yīng)用處理與用戶界面,各部門均有與之配套的功能。如此一來,針對(duì)網(wǎng)絡(luò)數(shù)據(jù)流通量來講,不僅能使其出現(xiàn)大幅度的減少,而且還能還能根據(jù)實(shí)際求你概況及需要,降低其原先的負(fù)載,這樣便能夠較好的減輕客戶機(jī)的運(yùn)作負(fù)擔(dān)。而從安全性層面來進(jìn)行系統(tǒng)化分析,針對(duì)那些密切關(guān)聯(lián)于相關(guān)應(yīng)用的算法,需要根據(jù)實(shí)際需要,將具體的保密工作給做好;對(duì)于那些比較核心或較為關(guān)鍵的算法,如果其均囊括在整個(gè)Applet當(dāng)中,若把它下載下來,并且置于他人的機(jī)器當(dāng)中,那么受此影響,其非常容易被外部人員解密,而選擇三層結(jié)構(gòu),并且在應(yīng)用服務(wù)層儲(chǔ)存關(guān)鍵算法,能夠?qū)⒋藛栴}較好的規(guī)避掉。此外,還需要指出的是,針對(duì)數(shù)據(jù)應(yīng)用來講,如果能夠根據(jù)實(shí)際需要,把數(shù)據(jù)庫(kù)的具體查詢工作,以一種合理、高效的方式連接于服務(wù)器端,使其都劃歸到單一的一臺(tái)機(jī)器當(dāng)中,并且在具體具體的數(shù)據(jù)庫(kù)用戶許可方面,僅安裝安裝1個(gè)就可以,如此一來,便可以消除客戶端的沖擊,減少其訪問數(shù)據(jù)庫(kù)。
針對(duì)此層來講,其實(shí)現(xiàn)主要運(yùn)用的是當(dāng)前比較先進(jìn)的Java Applet技術(shù)。而針對(duì)Java Applet程序來分析,從根本層面來考量,其實(shí)為一種比較實(shí)用且效能突出的Java技術(shù),其可以根據(jù)實(shí)際需要,利用配套的標(biāo)簽,以嵌入的方式,劃歸至特定的HTML文件當(dāng)中;針對(duì)網(wǎng)頁文件來講,在對(duì)其進(jìn)行調(diào)用時(shí),可以與特定的HTML文件一道,下載到指定的客戶端中,這樣一來,便能夠與用戶之間,實(shí)現(xiàn)緊密且實(shí)時(shí)的交互。還需要指出的是,當(dāng)將Web以一種合理方式與Java相結(jié)合時(shí),便可以將Web的上述缺陷給克服掉;對(duì)于用戶來講,僅需將一個(gè)引用Java應(yīng)用程序的標(biāo)簽加入到支持Java的瀏覽器中,此時(shí)處于連接狀態(tài)的Java程序,便能夠以一種自動(dòng)下載的方式,將相關(guān)內(nèi)容下載至計(jì)算機(jī)上來執(zhí)行。如此一來,便能夠較好的改變以往Web只能進(jìn)行靜態(tài)信息傳送的情況,能夠在網(wǎng)絡(luò)環(huán)境當(dāng)中,使可執(zhí)行內(nèi)容的自動(dòng)執(zhí)行與傳送成為可能,因而可以實(shí)現(xiàn)Web在具體的處理復(fù)雜事物方面的能力得到提升。
Servlet技術(shù)由Sun公司所開展,是一種運(yùn)用于服務(wù)層Java實(shí)現(xiàn)的技術(shù)根基。在具體的服務(wù)器端,針對(duì)Java Servlet程序來講,其借助Web服務(wù)器軟件,來進(jìn)行解釋,并做好具體的管理工作。要想對(duì)Java Serlet程序進(jìn)行開發(fā),一般需獲得JSDK軟件包的支持。
(1)Swevlet技術(shù)淺析。此技術(shù)實(shí)為一種典型的功能擴(kuò)展,其主要為請(qǐng)求/應(yīng)答方式提供各種服務(wù),針對(duì)單獨(dú)1個(gè)Swevlet程序來講,能夠根據(jù)實(shí)際需要,以客戶端為對(duì)象,對(duì)由此發(fā)出的請(qǐng)求予以實(shí)時(shí)或有選擇性的接收;而接受完畢并完成處理后,再把最終所得到的結(jié)果,及時(shí)輸送至客戶端。對(duì)于Swevlet接口來講,其乃是JSDK開發(fā)軟件包的核心部分,全部Swevlet程序均需經(jīng)過它來實(shí)現(xiàn)連接。如果Swevlet程序所接收到的一個(gè)請(qǐng)求來自客戶端,那么會(huì)將受到的對(duì)象類封成從客戶端至服務(wù)器端的請(qǐng)求。(2)Swevlet的生存期分析。如果1個(gè)Swevlet程序被裝載,此時(shí),首先被調(diào)用的便是init,且此方法僅被用于Swevlet程序被首次裝載時(shí)。如果安靜琪卸載,那么被調(diào)動(dòng)的將是方法destioy。一個(gè)已經(jīng)被載入的Servlet程序,則無法被再次裝載。當(dāng)處于相同的生存期時(shí),方法destroy與init均僅能被調(diào)用1次。但完成初始化后,Swevlet便能對(duì)用戶的請(qǐng)求進(jìn)行處理,此時(shí),借助方法Swevlet來開展。由于Swevlet能夠提供多線程支持,各個(gè)來自客戶的請(qǐng)求,均會(huì)打開1個(gè)獨(dú)立的Servlet線程,來完成Swevlet方法的執(zhí)行。還需指出的是,對(duì)于Swevlet來分析,其具有多線程的特點(diǎn),所以,針對(duì)1個(gè)Swevlet程序而言,從其總體生存期層面來分析,其重點(diǎn)環(huán)節(jié)就是代碼線程的安全性,之所以要這樣做的目的就是對(duì)各個(gè)線程實(shí)現(xiàn)同步化操作。如果在一些特殊情況下,難以多線程服務(wù),為了保障不出現(xiàn)2個(gè)線程運(yùn)行的情況,可借助SingleThreaModel來實(shí)現(xiàn)。
綜上,在基于Web應(yīng)用系統(tǒng)架構(gòu)下的開發(fā)技術(shù)而言,Java技術(shù)有著其專屬特點(diǎn),不僅有著網(wǎng)絡(luò)分布性,而且還有平臺(tái)無關(guān)性,因此,在實(shí)際使用中,不僅能夠跨越許多的軟件環(huán)境,而且一些硬件環(huán)境也能夠跨越,因而此技術(shù)在整個(gè)互聯(lián)網(wǎng)應(yīng)用系統(tǒng)當(dāng)中,乃是一個(gè)最具實(shí)用性且效能最佳的開發(fā)平臺(tái)。