【文章內(nèi)容簡介】
化系統(tǒng)的建設(shè)容易走兩個極端,一方面相當(dāng)數(shù)量的單位對信息化辦公自動化系統(tǒng)的重要性認(rèn)識不是很清楚,不主動去實(shí)施辦公自動化系統(tǒng),而且即使是少數(shù)的企業(yè)實(shí)施了辦公自動化系統(tǒng)也是迫于上級的壓力,軟件的應(yīng)用得不到推廣,使得辦公自動化系統(tǒng)的存在成為擺設(shè);另一方面,一些單位在建設(shè)辦公自動化系統(tǒng)時,急于求成,沒有從實(shí)際出發(fā)考慮自身的現(xiàn)狀,這種不切實(shí)際錯誤的想法導(dǎo)致了訊多設(shè)備的閑置,許多設(shè)備無法得到充分利用成為擺設(shè)。信息化的建設(shè)是一個長期的過程,建立起符合自身狀況的辦公自動化系統(tǒng)后,還需根據(jù)單位的實(shí)際運(yùn)作狀態(tài)不斷的進(jìn)行維護(hù)和更新。但是,我國許多的企事業(yè)單位在實(shí)施辦公自動化的過程中沒有認(rèn)識到這一點(diǎn),企圖建立起一個一勞永逸的辦公自動化系統(tǒng),不去維護(hù)和更新,這使得許多單位中的辦公自動化系統(tǒng)中存放著許多過時和無用的信息,辦公自動化系統(tǒng)基本無法實(shí)現(xiàn)原有的作用。 “重硬輕軟”的現(xiàn)象在我國的許多辦公自動化建設(shè)中還明顯的存在。人們往往重視硬件設(shè)備的投資而缺乏對運(yùn)行在硬件平臺上軟件系統(tǒng)的重視,從而出現(xiàn)了許多二流三流的信息管理軟件在一流的硬件設(shè)備上運(yùn)行的結(jié)果。而且,許多的單位將信息化建設(shè)誤解為僅僅是硬件設(shè)備的運(yùn)行和管理,而不重視信息的收集、整理和利用這一基礎(chǔ)性的工作,所以致使一流的硬件系統(tǒng)上沒有有效地信息資料、文檔資料等有效信息的存儲,致使系統(tǒng)發(fā)揮不了應(yīng)有的作用。在我國信息化發(fā)展的過程中,辦公自動化是一項(xiàng)重要的內(nèi)容,它的特點(diǎn)是基于網(wǎng)絡(luò)環(huán)境的辦公,具有超越地域和時空的特點(diǎn)。在辦公自動化系統(tǒng)建設(shè)的過程中,信息資源占著舉足輕重的地位,標(biāo)準(zhǔn)的體系架構(gòu)是辦公自動化的基礎(chǔ)。新一代辦公自動化系統(tǒng)的包括以下幾個方面的內(nèi)容:辦公自動化系統(tǒng)的開發(fā)、信息資源的建設(shè)、信息網(wǎng)絡(luò)的建設(shè)、信息產(chǎn)品的研制、信息處理技術(shù)和信息化人才的培養(yǎng),這些要素之間存在著緊密的聯(lián)系,相互制約又相互存進(jìn),缺一不可 [10]。要實(shí)現(xiàn)辦公自動化首先必須建立一個基于網(wǎng)絡(luò)的、支持協(xié)同工作的、由硬件環(huán)境和軟件環(huán)境組成的網(wǎng)絡(luò)虛擬辦公環(huán)境。硬件設(shè)備即網(wǎng)路通訊環(huán)境、計算機(jī)等;軟件環(huán)境包括操作系統(tǒng)、數(shù)據(jù)庫,軟件開發(fā)環(huán)境、辦公自動化信息平臺等。其次,辦公自動化系統(tǒng)需要一個完善的體系來支撐,這個體系中應(yīng)包括辦公課程設(shè)計自動化系統(tǒng)標(biāo)準(zhǔn)體系的建設(shè)、信息安全體系的建設(shè)、辦公自動化系統(tǒng)人才隊伍和組織保障體系的建設(shè)等。這其中考慮辦公自動化系統(tǒng)信息安全、文件保密等措施,因?yàn)檗k公自動化系統(tǒng)是基于網(wǎng)絡(luò)環(huán)境建設(shè)的,系統(tǒng)很容易遭到非法的入侵和破壞。然后是要保證系統(tǒng)中的資源共享,提供用戶應(yīng)有的訪問,還要建立一套有效的系管理制度。此外,培訓(xùn)一支既有信息化系統(tǒng)駕馭能力,又能信息管理背景的工作團(tuán)隊也是支撐辦公自動化系統(tǒng)的重要因素。最后,辦公自動化系統(tǒng)的建設(shè)必須嚴(yán)格按照信息工程的規(guī)范分步驟實(shí)施。這個過程可以分解為:辦公自動化系統(tǒng)的開發(fā)準(zhǔn)備階段;調(diào)查研究階段;系統(tǒng)分析階段,即邏輯設(shè)計階段;系統(tǒng)設(shè)計階段即物理設(shè)計階段;系統(tǒng)實(shí)施階段;系統(tǒng)維護(hù)評價階段。 本文的主要工作本文圍繞“基于軟 J2EE 的辦公自動化系統(tǒng)”的設(shè)計和開發(fā),以 J2EE 為系統(tǒng)架構(gòu),采用 MVC 模式,以目前流行的 Eclipse 為開發(fā)環(huán)境,主要完成以下幾個方面的工作:? ?對基于辦公自動化系統(tǒng)進(jìn)行了詳細(xì)的需求分析;? ?分析并設(shè)計了辦公自動化系統(tǒng)的體系結(jié)構(gòu)和功能模塊;? ?設(shè)計并實(shí)現(xiàn)了基于 J2EE 的辦公自動化系統(tǒng)統(tǒng)的主要功能;本文的具體結(jié)構(gòu)如下:第一章:介紹了辦公自動化系統(tǒng)的發(fā)展現(xiàn)狀,總結(jié)了相關(guān)的研究情況和本論文研究的背景和意義。第二章:介紹了 J2EE 技術(shù)背景,包括 J2EE 組件技術(shù)和其層次結(jié)構(gòu),并對EJB 進(jìn)行了簡單的說明。第三章:首先對系統(tǒng)需求進(jìn)行了分析,確定了系統(tǒng)的功能和性能等需求,然后設(shè)計了系統(tǒng)功能所對應(yīng)的用例圖。第四章:對基于 J2EE 的辦公自動化系統(tǒng)進(jìn)行了設(shè)計,給出了系統(tǒng)的設(shè)計目標(biāo)和設(shè)計原則,然后確定了系統(tǒng)的設(shè)計模式并對系統(tǒng)中要使用的數(shù)據(jù)表進(jìn)行了設(shè)計。第五章:在系統(tǒng)設(shè)計的基礎(chǔ)上,開發(fā)了基于 J2EE 的辦公自動化系統(tǒng),介紹了具有代表性的幾個模塊的實(shí)現(xiàn)代碼。第六章:對本文所設(shè)計的基于 J2EE 的辦公自動化系統(tǒng)的操作界面和功能進(jìn)第一章 緒論7行了簡要介紹,并對系統(tǒng)進(jìn)行了詳細(xì)的測試,從而驗(yàn)證了系統(tǒng)需求與設(shè)計的正確性。第七章:總結(jié)本文的工作,并對下一步工作提出展望。課程設(shè)計第二章 J2EE 技術(shù)簡介 J2EE 技術(shù)背景J2EE ( Java 2 Platform Enterprise Edition)是一套面向企業(yè)應(yīng)用的體系結(jié)構(gòu),它是由 Sun 公司和多家公司共同參與制定的一個企業(yè)級的分布式應(yīng)用規(guī)范。Java 不僅僅是一門編程語言,隨著其不斷的發(fā)展,Java 已經(jīng)成為一門非常龐大的技術(shù)體系。這個體系是以 Java 為核心的,它還包括 JavaApplet、RMIIIOP、JavaIDL/CORBA、 JavaBeans、servlet 、JSP 、JSTL、JDBC、JNDI、EJB 等等,而 J2EE 正是在 Java 的基礎(chǔ)上整合了這些關(guān)鍵的技術(shù)而形成的一個新平臺 [11]。Java2 是 Sun 公司推出的第二代 Java,為了將 Java2 推廣應(yīng)用到各個領(lǐng)域中,Sun 公司先后推出了多個版本的 Java2 應(yīng)用平臺,分別為:袖珍版(J2ME)、標(biāo)準(zhǔn)版(J2SE)和企業(yè)版(J2EE) 。Sun 公司就是通過這三個版本的 Java2 平臺,使 Java 的應(yīng)用得到了極大的擴(kuò)展 [12]。從家電設(shè)備中的嵌入式芯片、手機(jī)和掌上電腦,到各種應(yīng)用服務(wù)器現(xiàn)在都可以使用 Java 2 進(jìn)行開發(fā)。在 JaVa2 以前,Java 一直定位為一種語言,到 Java2時,Sun 公司實(shí)際上已經(jīng)將 Java 定位成一種平臺 [13]。由于包含了 Java 虛擬機(jī)(JVM)和 Java 運(yùn)行環(huán)境(JRE) ,Java 幾乎是不依賴于任何操作系統(tǒng)的。例如,如果在 Pentium 處理器中嵌入 JVM,那么 Java 語言就可以像匯編語言一樣直接運(yùn)行在處理器上了。Java 平臺使得用戶可以直接在平臺上進(jìn)行開發(fā),并在平臺上運(yùn)行。整個平臺可以很容易地從一臺機(jī)器移植到另一臺機(jī)器上,而不用做任何更改。J2EE 制定了一組規(guī)范,將 J2EE 的平臺責(zé)任劃分成七大部分以實(shí)現(xiàn)軟件開發(fā)的分工。每個部分都由獨(dú)立的供應(yīng)商或?qū)I(yè)人員來完成,從而大大提高了開發(fā)效率。這七部分是:? 平臺供應(yīng)商:主要提供 J2EE 平臺,包括組件容器、平臺 APIs 等;? 組件供應(yīng)商:負(fù)責(zé)提供應(yīng)用程序組件,包括 HTML 教程頁面設(shè)計人員、JSP 程序員、EJB 開發(fā)人員等等;? 組件裝配人員:組裝由組件供應(yīng)商提供的組件,最后形成EAR(EnterPrise Archive)文件;? 部署人員:將裝配好的組件部署到容器上;第二章 J2EE 技術(shù)簡介9? 系統(tǒng)管理員:管理和維護(hù)部署好的系統(tǒng);? 工具供應(yīng)商:提供開發(fā)組件所使用的工具;? 系統(tǒng)組件供應(yīng)商:提供系統(tǒng)組件。 J2EE 的層次J2EE 使用多層次的分布式應(yīng)用模型,應(yīng)用邏輯則按功能劃分為組件,再根據(jù)各個應(yīng)用組件所在的層次不同,把應(yīng)用組件分布在不同的機(jī)器上。Sun 公司設(shè)計J2EE 的最初目的就是為了解決兩層模式 C/S (client/server)的弊端 [14]?,F(xiàn)在 J2EE的多層企業(yè)級應(yīng)用模型將兩層模型中的不同層面切分成多個層,一個多層化應(yīng)用能夠?yàn)椴煌拿糠N服務(wù)提供一個獨(dú)立的層,下圖 21 是 J2EE 典型的四層結(jié)構(gòu)圖 [15]:數(shù)據(jù)庫數(shù)據(jù)庫E n t e r p r i s e b e a n sE n t e r p r i s e b e a n sJ S P 頁面應(yīng)用程序客戶端 動態(tài) H T M L 頁面客戶層業(yè)務(wù)層E I S 層W e b 層客戶端機(jī)器J 2 E E服務(wù)器數(shù)據(jù)庫服務(wù)器J 2 E E 應(yīng)用程序 1J 2 E E 應(yīng)用程序 2圖 21 J2EE 體系結(jié)構(gòu)圖客戶端層(Client Tier)客戶端層主要的作用是用來實(shí)現(xiàn)企業(yè)級應(yīng)用系統(tǒng)的操作界面和顯示層。在J2EE 中,客戶層的作用變得越來越簡單,它僅僅實(shí)現(xiàn)用戶請求的提交、顯示服務(wù)器處理的結(jié)果。在實(shí)際的開發(fā)中,由于現(xiàn)在某些瀏覽器軟件十分普及,如IntemExplorer、Firefox 等,客戶層使用往往就是一個瀏覽器軟件。而且,在因特課程設(shè)計網(wǎng)十分流行的今天瀏覽器幾乎被安裝在每一臺計算機(jī)上。所以,客戶層的軟件基本上已經(jīng)不用再進(jìn)行開發(fā)了。但是在不使用 ServleVJSP 的情況下,也是需要開發(fā)客戶端的軟件的。由于客戶端的軟件只是簡單的實(shí)現(xiàn)結(jié)果的顯示,所以就算要進(jìn)行開發(fā),它的實(shí)現(xiàn)和維護(hù)也是十分簡單的 [16]。某些客戶端程序也可實(shí)現(xiàn)業(yè)務(wù)邏輯的功能,客戶端分為基于 web 的客戶端和非基于 web 的客戶端?;?Web 的客戶端主要是作為企業(yè) Web 服務(wù)器的瀏覽器,而非基于 web 的客戶端層則是獨(dú)立的應(yīng)用程序,可以完成瘦客戶機(jī)無法實(shí)現(xiàn)的任務(wù)。Web層Web 層運(yùn)行在服務(wù)器上,它描述了將要發(fā)送到客戶端瀏覽器的內(nèi)容是如何顯示的,因此也稱為表述層。Web 層的組件根據(jù)客戶端發(fā)送過來的請求進(jìn)行處理,然后將結(jié)果以 HTML 文件的方式發(fā)送給客戶端??蛻舳说臑g覽器會根據(jù)發(fā)送回來的 HTM 文件,將結(jié)果顯示在瀏覽器窗口中 [17]。在 J2EE 中實(shí)現(xiàn) Web 層功能的組件是 Servle/JSP 組件,它們在 J2EE 中起著十分重要的作用,JSP 與 Servlet 在本質(zhì)上是一樣,因?yàn)樗鼈冏詈蠖家环g成一個 Servlet 文件后才能在服務(wù)器上運(yùn)行。JSP 目前的發(fā)展趨勢正在走向結(jié)構(gòu)化,也就是將它所包含的請求處理包裝在標(biāo)記文件或 Servlet 類中,而在 JSP 中只描述頁面是如何顯示的。業(yè)務(wù)層(Business Bier)業(yè)務(wù)層運(yùn)行在J2EE服務(wù)器上,也叫EJB層或應(yīng)用層。它是 J2EE體系結(jié)構(gòu)的核心部分,所有與應(yīng)用系統(tǒng)程序相關(guān)的業(yè)務(wù)邏輯都要在這一層實(shí)現(xiàn)。實(shí)現(xiàn)業(yè)務(wù)邏輯的組件稱為EJB,EJB 是按照功能進(jìn)行邏輯劃分的,在開發(fā)時可以不用關(guān)心系統(tǒng)底層的實(shí)現(xiàn)細(xì)節(jié)問題,只關(guān)注于具體的事務(wù)分析。當(dāng)EJB開發(fā)完成后,可以將其部署在EJB 容器中,以完成設(shè)定的事務(wù)功能。EJB支持分布式的計算,可以真正的實(shí)現(xiàn)企業(yè)級的應(yīng)用。數(shù)據(jù)層數(shù)據(jù)層也叫做EIS(Enterprise Information System Tier)即企業(yè)信息系統(tǒng)層,它運(yùn)行在EIS服務(wù)器上。EIS層是整個應(yīng)用系統(tǒng)將要處理的數(shù)據(jù)源。通常情況下,這一層就是一個關(guān)系數(shù)據(jù)庫,也可能是企業(yè)原有的一個信息系統(tǒng) [18]。例如,在基于J2EE的辦公自動化系統(tǒng)中,EIS層存儲了用戶信息、日程安排、論壇內(nèi)容、文件處理等大量的信息。系統(tǒng)在運(yùn)行的過程中需要查詢某一信息時,直接從EIS層讀取數(shù)據(jù)。第二章 J2EE 技術(shù)簡介11 J2EE 應(yīng)用程序組件 J2EE不是某種單一的技術(shù),它是一個體系結(jié)構(gòu),其中包含了十幾種技術(shù),如EJB, JDBC,JNDI,JMS,IDL,Servlets ,JSP,JTA ,Java Mail,JAF ,XML 等。其中JDBC ,JNDI,JSP,JMS,Servlets,EJB是常用技術(shù),而EJB則是J2EE 體系結(jié)構(gòu)的核心部分。J2EE組件是具有獨(dú)立功能的軟件單元, J2EE應(yīng)用程序就是由這些組件構(gòu)成的。不同的組件通過相關(guān)的類和文件組成J2EE應(yīng)用程序,并與其他組件進(jìn)行交互。下面簡要介紹各個組件??蛻舳私M件客戶層組件可以是應(yīng)用程序客戶端組件、Applets或者靜態(tài) HTML等,也可以是基于傳統(tǒng)客戶機(jī)方式的,如客戶端專用的客戶程序或軟件。Web層組件J2EE中Web 層組件主要是JSP頁面或Servlet。? Servlet組件Servlet是Java 的服務(wù)器小程序,可以實(shí)現(xiàn)網(wǎng)絡(luò)上遠(yuǎn)程動態(tài)加載,它被集成到了服務(wù)器中,是一個與協(xié)議無關(guān)的、跨平臺的服務(wù)方構(gòu)件 [19]。Servlet的實(shí)質(zhì)是一個運(yùn)行在請求/面向請求服務(wù)器上的模塊,利用Servlet可以很輕松的實(shí)現(xiàn)許多服務(wù)器的擴(kuò)展功能。此外,一個Servlet能并發(fā)處理多個請求,而且它們可以使用在諸如線性會議這樣的同步請求支持系統(tǒng) [20]。Servlet沒有普通應(yīng)用程序常見的main 方法,而只是有一些特定的方法用于啟動、執(zhí)行和退出。它既可以與運(yùn)行在客戶端的Applet程序進(jìn)行交互,也可以直接與客戶端的HTML網(wǎng)頁交互。在許多大型的應(yīng)用程序開發(fā)中,可以把Servlet看成是連接現(xiàn)代網(wǎng)絡(luò)技術(shù)和Java 技術(shù)的橋梁。? JSP組件JSP(Java Server Pages)是一種Web開發(fā)語言,它能快速地創(chuàng)建和顯示W(wǎng)eb頁面的動態(tài)內(nèi)容。此外,JSP也是一種基于Java 的腳本技術(shù),它能將HTML編碼從Web頁面的開發(fā)過程中有效地分離出來,可以訪問可重用的組件。和基于Java的Web應(yīng)用程序。JSP的另一個優(yōu)點(diǎn)就是支持在Web 頁面中直接嵌入 Java代碼 [21]。JSP的特點(diǎn)主要有包括應(yīng)用程序內(nèi)容與頁面顯示分離、一次編寫到處運(yùn)行、強(qiáng)調(diào)可重用組件和采用標(biāo)記簡化頁面的開發(fā)。JSP的這些技術(shù)特點(diǎn)和工作機(jī)制保證了它的跨平臺性 [22]。業(yè)務(wù)層組件課程設(shè)計業(yè)務(wù)層組件主要是EJB組件,EJB是企業(yè)級的JavaBean,用來實(shí)現(xiàn)業(yè)務(wù)邏輯。企業(yè)級的Javabean分為三種,分別如下:? Session bean:即會話bean ,用于表示業(yè)務(wù)層與客戶端程序的臨時交互。當(dāng)客戶端程序完成后,會話bean 和相關(guān)數(shù)據(jù)就會消失。? E