系分論文5
論Java技術在因特網平臺上的應用——論文1:ERP開發(fā)的應用
【摘要】
根據某類企業(yè)的迫切需要,我所在的信息技術公司組織了一個企業(yè)資源計劃(ERP)項目的開發(fā),希望推進我國ERP應用的發(fā)展,也希望更深入有效地運用Java技術。該項目的內容涉及到某類行業(yè)的企業(yè)生產經營的全過程,其基本目標是為了提高企業(yè)的勞動生產率,增加企業(yè)的利潤,優(yōu)化配置企業(yè)的資源,使企業(yè)的整體運營水平能上一個臺階。這是一個基于Java技術的Intranet典型應用項目。
在該項目中,我承擔項目負責人的重要職責,比如在項目的準備階段,我曾組織了對項目組的成員進行該類企業(yè)業(yè)務流程方面的培訓;在項目需求分析和設計階段,我著重考慮了架構好系統(tǒng)的框架和原型,為項目組及其他分析員進行下一步的細化分析奠定了堅實的基礎。同時我還組織好項目總體組,把握住各模塊之間的接日分析,保持各個分析員之間實現(xiàn)密切的溝通。在系統(tǒng)的開發(fā)階段,做好開發(fā)、測試方面的協(xié)調和同步工作,保證系統(tǒng)的可靠性,在系統(tǒng)的實施階段能夠順利地推進項目,此項目開發(fā)后的應用已得到了用戶們的一致好評。
【正文】
與國際上ERP項目的廣泛應用相比,我國的ERP應用水平尚有相當大的差距。根據某類企業(yè)的實際迫切需求,我公司組織了對一類ERP產品的開發(fā),我有幸參與了該項目的分析與設計,開發(fā)的成果是一個典型的Java技術應用于Intranet的實際項目。
在選擇具體的技術方案時,我們曾經進行了認真的思考和研究。對于選擇普遍采用的微軟模式的平臺方案,還是跨平臺式的Java方案,我們曾舉棋未定,這是因為微軟的VB+ASP已成為大家在較長時間工作后認可而熟悉了的方案。而Java由于其環(huán)境要求高與執(zhí)行效率低的老大難問題,成為我們擔心害怕的重要因素。但是Java的跨平臺特性越來越成為人們的關注點,尤其是許多大中型的企業(yè),他們現(xiàn)有的網絡系統(tǒng)都是基于多種平臺的,對跨平臺的要求和呼聲極為強烈,而對軟件公司來說,軟件的跨平臺特性有可能會節(jié)約開發(fā)成本,降低維護量,也能獲得更多客戶的認可。綜合考慮了諸多市場行情與行業(yè)發(fā)展因素,最終決定一定要用Java。所幸的是現(xiàn)在Java用于因特網的開發(fā)也已經越來越便利了。
目前Java在因特網上的開發(fā)技術已呈白花齊放之勢態(tài),有最初的Java Servlet,有與數(shù)據庫聯(lián)系在一起的SQL-J,還有可與ASP和PHP相媲美的JSP。尤其是JSP技術的迅速發(fā)展,使得Java的網絡應用不再是少數(shù)人的專利,JSP以其執(zhí)行的高效性和使用的方便性,已成為近年來大家首選的因特網開發(fā)技術,JSP是一種頁面開發(fā)技術,它以Java為其服務器端語言,結合Java Script作為其客戶端語言,能方便地實現(xiàn)頁面的表示。
選擇好了后端的Java和前端的JSP,還有一項重要的任務,那就是前后的聯(lián)接。由于JSP主要用于頁面表現(xiàn),需要表現(xiàn)的內容要封裝起來,這樣,為了保證主要商務邏輯的安全性,我們采用了Java Bean作為橋梁,即客戶端JSP通過其中Java Bean的使用,完成主要的商務邏輯功能。在后臺,將Bean構造好,形成一個強大的Bean庫,再由前臺JSP進行使用。
在進行Java Bean的規(guī)劃時,我們下決心作出很大的投入,因為這些不僅是我們當前項目中所需急用的,而且還應成為公司長期積累使用的一個強大的資源庫,能實現(xiàn)一定程度的資源共享和軟件復用,為其他項目開發(fā)打好基礎。因此,此次規(guī)劃的目標是形成公司Java技術的Java Bean的平臺庫。
我們根據Java Bean所體現(xiàn)的類的用途,將這些類分成幾個層次。最底部的一層就是參數(shù)化類的構造,這一層的類所實現(xiàn)的主要功能包括通用訪問機制,對數(shù)據庫等其他層次的訪問接口和公共處理系統(tǒng)等。中間一層是實體類的構造,這些實體類包括與數(shù)據信息相關的結構及其處理方法,其中的重點是包含了一些重要的商務邏輯的處理。這一層類與系統(tǒng)各部分相關,并且其安全性要求很高,直接影響到系統(tǒng)主要功能的體現(xiàn),因為系統(tǒng)的主體是對一些邏輯進行處理,這就要求這層實體類的規(guī)劃需要十分認真,做到細節(jié)準確。最上面的一層可以稱為接口類,這一層類主要用于實現(xiàn)底層的類與前臺之間的關系。也只有這層類才能由前臺JSP進行Java Bean調用而加以使用,只有這層具有開放性,這一層類除了上述的接口功能外,還應當有一項重要的實用內容,即包括用于實現(xiàn)前臺JSP的頁面自動構造程序。
這里所說的頁面自動構造程序可以認為是本系統(tǒng)的一個重要特點,目的是為了讓用戶可以方便地自定義界面,而不需要由程序員修改程序,這樣能夠極大地滿足了用戶的要求。頁面自動構成程序的主要內容包括對界面元素的定制與修改、位置的修改、動作的觸發(fā)、行為的控制以及報表設計和計算匯總等功能。頁面自動構成程序的設計主要采用上述的接口類與JSP相結合的方式,用類實現(xiàn)元素的定制、控制及關聯(lián),并將重要信息加以保存,以利于用戶的多次反復修改。該自動構造程序提供了強大功能,已成為我們的一個獨立產品。能應用于各個項目的界面制作,實現(xiàn)了我們原先制定的共享資源的目標。
在前臺JSP的應用中,做到了盡可能最簡化的程度,這樣可以提高系統(tǒng)的安全性。當然在我們的系統(tǒng)中,還存在一些客戶端控制比較復雜的情況,為保護這段比較復雜的控制腳本,我們采取了用Servlet的方法,保護這段腳本,從而保證了一定程度的安全性。
在系統(tǒng)的登錄過程中,我們采取了相當嚴格的登錄鍵檢查操作,用戶沒有供應商提供的相應的鍵,就無法通過驗證而進入系統(tǒng)。對于試用版的用戶則提供了一種有效期限約束。這些加密或安全措施,通過在Java Bean中封裝了嚴格而有強大功能的加密算法,在客戶端申請驗證后才能準予通過。
在使用這套技術方案的過程中,我們曾經遇到過許多的困難。比如;前面曾提到過要求JSP中代碼能夠盡量簡化,以提高安全性。由于JSP中仍有一些容易讓人可能猜測到處理方法的語句及處理的過程,為進一步提高安全性,我們通過查閱大量的網上資料,才形成了一套較好的措施,比如制作JSP的標記庫,將有可能被猜測的處理進一步加以規(guī)劃,對應地生成一套行之有效的實用標記庫,這樣就又增加了一道很有效的防護墻,大幅度地提高了安全保密性,并且使頁面結構的分離達到了一定的水準。又如:在對數(shù)據的處理上,剛開始時也總是遇到系統(tǒng)運行會變得越來越慢的情況,最后追查其原因,發(fā)現(xiàn)原來是數(shù)據的連接過多,我們及時地采用了數(shù)據連接池等技術解決了此類問題。
該系統(tǒng)采用Java平臺,提供了深入地使用Java Bean和JSP的方案,其效果是相當顯著的,在用戶真實使用環(huán)境中受到了一致好評,運行也較為穩(wěn)定。由于采用了統(tǒng)一而方便的頁面自動構造程序,用戶的界面非常友善,并且可以按用戶需求進行定制,滿足了用戶的適應性需求。而在我們公司的內部,也開始建立了一套基于此平臺的資源庫,成為公司的今后開發(fā)使用的寶貴財富。
必須指出的是,在此系統(tǒng)中,還存在著很多的不足,比如實體類的組裝程度尚不盡如人意,根據多種商務邏輯的一些共同點,可以進一步加以抽象封裝,使這部分內容能滿足多種系統(tǒng)對類似邏輯的處理過程。我將會在今后的工作中進一步加強各方面的分析能力,帶領團隊不斷地超越現(xiàn)在的層次與水準,加強我們的隊伍建設,希望有更多優(yōu)秀的軟件產品上寫著Made In China。(本文主要參考了上海陳莉莉等人的論文)
系分論文6
論Java技術在因特網平臺上的應用——論文2:通信服務平臺的應用
【正文】
數(shù)據通訊是當前十分活躍與熱門的計算機與信息技術的應用領域。某大型通信公司開發(fā)了其業(yè)務的主要支撐平臺,在這里,我們簡稱之為“通信信息服務平臺”,用于在全國與全球開展數(shù)據業(yè)務的需要。該平臺是一個典型的Java技術應用于Internet的項目。
作為信息技術公司中的一名技術骨干,我有幸參加了該系統(tǒng)的分析與設計工作,承擔了相當多的Java應用開發(fā)任務。此系統(tǒng)中的軟件部分大多由Java來實現(xiàn),在全系統(tǒng)中我們是這樣來用Java構架系統(tǒng)的:
(1)本系統(tǒng)可分為4層,分別是Browser、表示層、中間件層和數(shù)據層。
(2)表示層用Java中的Java Script來實現(xiàn)頁面輸出。
(3)中間件層用Java來實現(xiàn)CORBA,即實現(xiàn)Component(構件),主要實現(xiàn)業(yè)務邏輯的封裝與復用。
(4)數(shù)據層主要是數(shù)據庫和存儲過程的實現(xiàn)。
我們在應用Java技術時,所采用的技術和策略可大致上歸納為以下5個方面:
(1)使Java Script盡量簡單,因為Java Script在我們系統(tǒng)中是放在服務器端執(zhí)行的,該語言是通過一個解釋器解釋執(zhí)行的,相對速度很慢,我們采用了兩臺HP前置機來運行Java Script,但是其運行速度還是不理想,所以我們在設計中把Java Script僅用來顯示從中間件層所得到的數(shù)據,生成動態(tài)頁面。在最初的設計中表示層(Java Script)曾承擔了一些業(yè)務邏輯處理操作,導致效率不理想,因此,我們不得不盡量地減少Java Script的程序量。
(2)用Java實現(xiàn)CORBA時,應盡量考慮共享和復用。在本系統(tǒng)中,最初的設計是讓Java在實現(xiàn)Component時,只是執(zhí)行一些數(shù)據庫表的操作,導致表示層的負載較大。后來,我們重新設計時,總結歸納了所有的Use Case,找出了其中可供共享和復用的接口,把相同的業(yè)務邏輯操作封裝到一個接口中去。因為 Java的執(zhí)行效率比Java Script要高,因此提高了系統(tǒng)效率。
(3)在別的項目中,我們曾大量地使用過Java中的JSP技術和Servlet技術,一般人可能不能區(qū)分這兩種Java技術的區(qū)別。為了得到系統(tǒng)的一些執(zhí)行速率的數(shù)據,我們采用了一個著名的壓力測試軟件——Load Runner來測試這兩種技術的差別。測試表明:用JSP和Servlet完成同樣的一個操作,并且保證是在相同的測試環(huán)境中(相同服務器、壓力測試工作站與數(shù)據庫環(huán)境),得到的測試數(shù)據卻有著很大差別,JSP完成一個操作的平均執(zhí)行時間大致會是Servlet程序的兩倍。在一個企業(yè)級應用項目中,這可能是一個很關鍵的瓶頸。因此,我們得出的結論是:在可能的條件下,盡量地多使用Servlet。當然,與Servlet相比,JSP編程快速,修改方便,在訪問量不是很大的應用場合下也是可以接受的。
(4)使用Java作為整體解決方案時,應盡量使用相同版本的JDK。在用Java作為編程語言的項目中,幾乎大多要遇到“漢字”問題,即Java在沒有經過轉換的情況下,在輸出漢字時,很可能會出現(xiàn)亂碼。采用不同版本的JDK,解決的方案是不一樣的,比如V1.2.2版本的JDK和V1.3版本的JDK解決方法就會有一些不一樣,把V1.2.2的Java程序放在V1.3的JDK中,就不能順利輸出漢字了。其根本原因在于Java使用了Unicode編碼,和我們中國的國標編碼不一樣。所以在這個意義上一些人竭力鼓吹的“一次編寫,到處運行”似乎不一定能在所有的場合都行得通。
(5)使用Java時,應盡量遵從軟件規(guī)范。在Java中有一個JVM的概念,即在Java虛擬機中使用了一個垃圾收集器,專門用來回收內存。但是該垃圾收集器在給編程人員帶來方便的同時,也隱埋下了隱患。在程序設計中,并不能強制執(zhí)行垃圾收集器,所以,開發(fā)人員不能確定某對象是否已釋放,常常讓編程人員養(yǎng)成依賴自動收集的壞習慣,因此我們要求:在Try,Catch之后必須明確要求回收內存(當然,也只能是通知垃圾收集器來回收垃圾),這樣可以有效地提高系統(tǒng)穩(wěn)定性。
以上這些實用性的技術與策略,是我們在實踐中的一些實際體會,僅供各位開發(fā)人員根據實際情況參考。
當然,在使用Java作為解決方案時,也會遇到很多讓我們頭疼的問題,這些問題導致同時執(zhí)行的并發(fā)性比較差,系統(tǒng)速度慢等等。歸納起來看,我們曾遇到過的主要具體的問題有:
(1)用Java來實現(xiàn)CORBA中的Component,有時效率會比較低。
(2)用Java來建立數(shù)據庫連接往往會比較慢。
(3)用JSP編程時容易導致系統(tǒng)信息的擴散。比如,如果有黑客攻擊一臺運行JSP程序的服務器,他可以故意地輸入一些非法字符或異常信息給JSP程序,于是程序執(zhí)行將出現(xiàn)異常。這時,就會在頁面上打印出相應的錯誤信息。很不幸的是,這些信息極有可能暴露出這臺服務器的JDK的版本號與路徑信息等內容。這往往容易讓黑客們有機可乘,有可能去抓住系統(tǒng)的漏洞。
在發(fā)現(xiàn)了這些問題后,我們經過仔細研究,找出了一些解決辦法。比如:
(1)既然用Java實現(xiàn)Component比較慢,我們就盡量減少Component所執(zhí)行的業(yè)務邏輯量。爭取把能夠放在存儲過程中實現(xiàn)的操作,盡可能在存儲過程中加以實現(xiàn)。眾所周知,數(shù)據庫的存儲過程操作,比起在Java程序中執(zhí)行數(shù)據庫操作要快得多。
(2)既然用Java建立數(shù)據庫連接比較慢,我們就可以把數(shù)據庫連接封裝成連接池(Connect Pool),從而能非常有效地提高系統(tǒng)效率。我們也曾經用“Load Runner”作過壓力測試,使用連接池比不使用連接池的速度要快上3~5倍。
(3)為了對付JSP程序與Servlet程序會打印出異常系統(tǒng)信息的問題。我們曾查閱了很多JSP或Servlet的資料,最終是毫無頭緒。但是我們可以換另一種思路,即是不從程序下手,而從Web Server著手,我們可以把Apache配置成為使這類異常信息不再打印出來,而是使之僅出現(xiàn)一個通用的異常說明的頁面,這樣,就能十分有效地解決這個問題。
在我們使用Java作為編程語言的這么多項目中,絕大多數(shù)是比較成功的。Java語言作為一種快捷、穩(wěn)定的計算機語言,開發(fā)基于因特網應用的項目大多是相當穩(wěn)定和比較適用的。
在我個人看來,Java的應用前景十分光明,大體上可以著眼于以下方面:
(1)在因特網上將會有更加廣泛的應用。
(2)在嵌入式設備中,Java也大有用武之地。比如,在最新推出的Java技術中,Java已經進入了手機領
域。
(3)Java程序大多以線程運行,占用資源少,會逐步代替ASP與CGI程序。根據第三方測試表明:JSP程序比ASP程序要快2倍以上。用JSP代替ASP應是大勢所趨。
(4)Java在無線互聯(lián)網中的應用將會更加廣泛。Java支持WAP,可以方便地用Java開發(fā)WAP程序,實現(xiàn)WAP應用。
(5)Java與XML的無縫連接使Java在數(shù)據傳輸和異構網絡通信方面有著很大的優(yōu)勢。
就我個人而言,我將會在相當長一段時期內致力于Java在無線互聯(lián)中的應用,為我國的移動通信事業(yè)開發(fā)出更多的優(yōu)秀實用的項目。
評注;參與了一個較大的項目后有實踐體會。全文都采用1、2、3、4方式,文章的風格顯得單調,不大吸引人。但是本文的優(yōu)點是;(1)寫得很有條理。(2)內容的選擇合適。(3)所列舉的策略、注意事項與發(fā)現(xiàn)的問題都很現(xiàn)實可信。(本文主要參考了廣州王海波等人論文)
上一頁 [1] [2] [3] [4] [5] [6] 下一頁
轉帖于:軟件水平考試_考試吧- 推薦給朋友
- 收藏此頁
·網絡工程師資料:網絡體系結構-軟考網絡類題解 (2008-4-25 14:33:38)
·計算機網絡基礎網絡拓撲結構及優(yōu)缺點分析 (2008-2-22 14:04:32)
·網絡工程師必知:靜態(tài)路由協(xié)議配置方法 (2008-2-22 14:03:39)
·計算機網絡尼奎斯特 香農公式例題解析 (2008-2-22 14:02:35)
·軟考復習:因特網IP的分類、尋址規(guī)則及子網掩碼 (2008-2-22 13:57:21)