仇 雷
中國人民解放軍第八十二醫(yī)院信息科,江蘇 淮安 223001
在信息技術(shù)為關(guān)鍵要素的當(dāng)今社會,用最快的速度開發(fā)、部署一套穩(wěn)定、高效、安全的信息系統(tǒng)成了關(guān)鍵,而Java EE技術(shù)以其各種優(yōu)越的條件成為了首選。Java EE建立在J2SE基礎(chǔ)上,增加了一些新的類庫。Java EE如何能夠承擔(dān)這一重任?它有何優(yōu)越之處?在此就通過對企業(yè)信息發(fā)布與管理平臺的高層構(gòu)建對相關(guān)技術(shù)進(jìn)行簡要的探討。
Java EE,其目的就在于為開發(fā)者提供一整套強(qiáng)大而易用的API,以減少開發(fā)時(shí)間,降低應(yīng)用復(fù)雜度并提升應(yīng)用的各項(xiàng)表現(xiàn)。
回到企業(yè)信息發(fā)布與管理平臺這套系統(tǒng)上來,該系統(tǒng)根本的業(yè)務(wù)目標(biāo)和流程并不復(fù)雜:其旨在為廣大中小企業(yè)以及個(gè)人提供一個(gè)可以進(jìn)行網(wǎng)上交易、展示企業(yè)相關(guān)產(chǎn)品的信息平臺。通過該系統(tǒng)能更好地展示企業(yè)形象,以及為企業(yè)的最新產(chǎn)品、供求信息等提供一個(gè)方便的發(fā)布場所,為企業(yè)帶來實(shí)際效益。從系統(tǒng)最終使用者的角度來看,無非有兩類用戶:個(gè)人用戶和企業(yè)用戶。企業(yè)用戶可以發(fā)布自己的信息,個(gè)人用戶則主要是瀏覽信息,參與企業(yè)的活動,與企業(yè)之間形成買賣關(guān)系,也可以根據(jù)企業(yè)的崗位需求投遞職位請求。企業(yè)用戶之間當(dāng)然也可以形成商業(yè)關(guān)系,構(gòu)建自己的供應(yīng)鏈,進(jìn)行商品和信息服務(wù)的交易活動??傊?,這是一個(gè)典型的電子商務(wù)系統(tǒng)。
基于上述業(yè)務(wù)需求,衍生出系統(tǒng)需求。該系統(tǒng)須至少具備如下模塊:用戶管理模塊,將每個(gè)注冊用戶作為實(shí)單個(gè)體,進(jìn)行信息的管理,簡明一點(diǎn),就是每個(gè)用戶都需要進(jìn)行身份驗(yàn)證,登錄并使用本系統(tǒng);業(yè)務(wù)管理模塊,主要業(yè)務(wù)邏輯的實(shí)現(xiàn)部分,提供交易平臺,可供用戶之間進(jìn)行商品的網(wǎng)上交易。
鑒于此,BS總體架構(gòu)成為該網(wǎng)絡(luò)應(yīng)用的最佳選擇。由于用戶范圍廣,分類構(gòu)成復(fù)雜,充分簡化客戶端成為必然。相比于CS,BS只要求客戶端裝有瀏覽器就可以了。于是,所有的系統(tǒng)部件都需要部署在服務(wù)器端。而在服務(wù)器端,經(jīng)典的MVC架構(gòu)也成為首選。各種實(shí)體,包括用戶、企業(yè)、各種信息,成為Model;用戶能夠看到的界面成為View;Controller連接M和V,控制M的變化和V的顯示方式以及M和V的信息交互。由于系統(tǒng)可能擁有龐大的潛在用戶群體和市場,意味著巨大的信息訪問量,因此部署高效的數(shù)據(jù)庫系統(tǒng)勝于其他的信息存儲訪問方式。
客戶端的顯示邏輯并不復(fù)雜,使用HTML構(gòu)建Web頁面。不過需要使用動態(tài)網(wǎng)頁進(jìn)行與用戶的交互。單純的HTML僅能描述界面,不包含程序邏輯,這就需要服務(wù)器首先生成靜態(tài)頁面,捕捉到用戶輸入,然后進(jìn)行后臺處理,再返回到客戶端瀏覽器生成新的靜態(tài)頁面。服務(wù)器端的控制部分則要銜接用戶界面和后臺數(shù)據(jù)庫,并進(jìn)行各種邏輯處理,還包括對安全性和效率的技術(shù)實(shí)現(xiàn)。
經(jīng)過簡單的分析,從開發(fā)人員的角度來看,系統(tǒng)主要邏輯便不再復(fù)雜:服務(wù)器端的控制器從用戶頁面上捕獲用戶的輸入,進(jìn)行邏輯判斷和處理,與數(shù)據(jù)庫進(jìn)行數(shù)據(jù)交互,再把處理結(jié)果生成新的頁面返回給用戶。所有的細(xì)節(jié)無非就是這個(gè)過程的迭代和重復(fù)。這一步分析將確保開發(fā)人員選擇合適的工具和架構(gòu)進(jìn)行系統(tǒng)實(shí)現(xiàn)。至于細(xì)節(jié)的設(shè)計(jì),則是在這個(gè)框架的基礎(chǔ)上進(jìn)行的創(chuàng)造性勞動了。J2EE已經(jīng)為我們提供了全套的解決方案:
Java Server Pages(JSP),可以非常方便地幫助我們構(gòu)建靜態(tài)和動態(tài)的Web頁面。它可以和Servlet技術(shù)結(jié)合起來以充分發(fā)揮動態(tài)頁面的優(yōu)勢,更可以快速地構(gòu)建普通靜態(tài)頁面。一個(gè)JSP頁面由兩部分內(nèi)容構(gòu)成:靜態(tài)數(shù)據(jù),可以是HTML,SVG,WML或XML;JSP元素,用以構(gòu)建動態(tài)內(nèi)容。它可以被粗略地理解為靜態(tài)Web頁面嵌入Java代碼,內(nèi)部邏輯由Java代碼控制。
Servlets是Java的一類,可以動態(tài)處理請求并生成回應(yīng)結(jié)果。它通常和JSP結(jié)合起來使用,JSP在前臺捕獲用戶動作,交給后臺Servlets處理,然后Servlets將處理結(jié)果再返回給JSP呈現(xiàn)給用戶。
JDBC技術(shù),用于Java的數(shù)據(jù)庫連接,使用針對于數(shù)據(jù)庫的驅(qū)動程序,提供一組用于訪問任何數(shù)據(jù)庫的API。訪問特定類型的數(shù)據(jù)庫:必須使用該數(shù)據(jù)庫特定的JDBC驅(qū)動程序,其由數(shù)據(jù)庫方提供。這里有一個(gè)重要概念,即Java持久化API。
Java EE之所以把商務(wù)數(shù)據(jù)當(dāng)作對象來處理,而不是處理數(shù)據(jù)庫中的原始數(shù)據(jù),是因?yàn)镴ava本身對于對象概念的理解:對象可以被更方便地操作和管理;可以把相關(guān)的數(shù)據(jù)聚合成為一個(gè)統(tǒng)一的對象;可以把一些簡單的對數(shù)據(jù)的處理方法和數(shù)據(jù)聯(lián)系在一起;可以將數(shù)據(jù)放到緩存中,提高效率;還可以從一個(gè)應(yīng)用服務(wù)器上得到隱含的中間件服務(wù)?;谏鲜鰪那芭_到后臺的應(yīng)用,更有諸多的開發(fā)框架的支持,比如Spring,Struts,Hibernate等等,這些內(nèi)容可以展開若干本書籍,對于它們的充分利用將大大簡化開發(fā)過程。
提到商務(wù)應(yīng)用的開發(fā),一個(gè)至關(guān)重要的內(nèi)容就是安全。對此,Java EE當(dāng)然為我們準(zhǔn)備了周密的安全機(jī)制實(shí)現(xiàn),限于篇幅,這里不再展開。
總之,信息技術(shù)并不是無端產(chǎn)生的一個(gè)異類,它和我們的生活息息相關(guān),它的運(yùn)行方式也從我們的生活中借鑒而來。假如我們要做一件事情,首先要明確我們要做什么,然后選擇合適的工具和方法,然后是規(guī)劃細(xì)節(jié)的實(shí)施方案,最后是按照我們的想法將事情完成好。信息系統(tǒng)架構(gòu)也一樣,信息技術(shù)就是為了更好地解決現(xiàn)實(shí)中的問題而發(fā)展的,而一套完整的解決方案的誕生也為我們提供了良好的模板,讓我們在遇到類似問題的時(shí)候可以借用前人的智慧更高效地解決而不是一切從頭開始。
[1]夏天.J2EE應(yīng)用服務(wù)器兼容研究[J].計(jì)算機(jī)工程,2006(2):65-67.
[2]陳國雄.J2EE應(yīng)用服務(wù)器系統(tǒng)設(shè)計(jì)[J].軟件導(dǎo)刊,2007(11):29-31.
[3]李晨陽,焦海星.創(chuàng)建高性能的J2EE應(yīng)用系統(tǒng)[J].計(jì)算機(jī)系統(tǒng)應(yīng)用,2005(2):10-13.