摘 要:本文以Tivoli Provisioning Manager for OS Deployment for Rational Testing項目的設(shè)計和開發(fā)為實例,詳細闡述了以上內(nèi)容,并對基于Java EE平臺的新型Web應(yīng)用程序的開發(fā)模式和架構(gòu)特點進行了初步探討和研究。
關(guān)鍵詞:Web應(yīng)用程序開發(fā);Struts 2;Spring;Ajax
中圖分類號:TP311.52
1 項目介紹
該項目是基于Tivoli Provisioning Manager for OS Deployment軟件的Web應(yīng)用程序。作為t軟件的Web接口,它通過Web方式提供了Tivoli Provisioning Manager for OS Deployment軟件的大部分功能。此項目旨在為Rational測試工具提供簡單易用的、操作系統(tǒng)自動化部署的解決方案。同時,也不排除作為商業(yè)軟件一部分的可能。項目基于先進的開發(fā)框架和技術(shù),具有優(yōu)秀的架構(gòu)并為用戶提供良好的體驗。
2 需求分析
總體上,項目的需求十分明確:即提供基于Web的對Tivoli Provisioning Manager for OS Deployment進行操作的功能。其中最主要的功能就是完成操作系統(tǒng)的遠程部署,這是系統(tǒng)的核心功能,其中包括了很多部分和流程模塊。其它的功能模塊還包括:部署任務(wù)管理、從機器和映像文件的克隆(拷貝)、Tivoli Provisioning Manager for OS Deployment Server信息和日志管理。
項目具體功能模塊中,權(quán)限認證、操作系統(tǒng)部署、部署任務(wù)管理是系統(tǒng)的重點實現(xiàn)模塊。雖然這些模塊的總體需求非常地明確,但是在具體細節(jié)上卻沒有很明確的需求,很多細節(jié)上的需求都是相關(guān)人員在討論的基礎(chǔ)上確定。這種需求比較難把握,而且可能經(jīng)常發(fā)生變化。在這種情況下,一要優(yōu)化項目的結(jié)構(gòu),使項目可以更好地面對變更、更具可維護性;二要爭取一切可以和用戶交流的機會,盡快確定細節(jié)的需要。
在權(quán)限認證方面,采用的是通過IBM Intranet ID進行認證的方式,需要通過LDAP服務(wù)器直接獲取信息并進行認證。這種認證方式只能支持LDAP方式,沒有對普通數(shù)據(jù)庫方式認證的支持。今后如果需要提供數(shù)據(jù)庫方式認證的支持,則要增加相應(yīng)代碼。
3 總體設(shè)計
項目在設(shè)計過程中,遵循了Web應(yīng)用程序設(shè)計的實用性原則、可靠性原則、安全性原則。系統(tǒng)的底層是基于Tivoli Provisioning Manager for OS Deployment服務(wù)器對裸機進行操作,它基于PXE工業(yè)標準通過網(wǎng)絡(luò)引導裸機,并通過其自定義的協(xié)議與裸機進行通訊,完成信息的收集、操作系統(tǒng)的部署以及其它操作。因此,所有的業(yè)務(wù)邏輯都需要通過調(diào)用Tivoli Provisioning Manager for OS Deployment軟件提供的API來完成。這套API是Tivoli Provisioning Manager for OS Deployment軟件提供的基于Java的、RPC機制的遠程調(diào)用接口。在使用的過程中,需要注意性能的問題,因為每次RPC的調(diào)用都會有較大的開銷,應(yīng)該盡量減少對其的調(diào)用,而且對于API中的對象,應(yīng)該盡量不從其中獲取另一個對象的引用。
在Servlet容器之上,是Spring框架提供的輕量級容器以及Spring框架本身提供的各種服務(wù)。Spring輕量級容器接管了所有的Bean的生命周期的管理,包括Struts Action,并為它們提供依賴注入、聲明式事務(wù)管理等服務(wù)。同時,Spring框架還提供了強大的AOP支持和Java EE企業(yè)級服務(wù)支持。在具體應(yīng)用方面,Spring推薦使用基于XML配置形式來驅(qū)動應(yīng)用,并提倡“基于POJO編程”、“針對接口編程,而不是實現(xiàn)”。而這也正是面向?qū)ο箝_發(fā)人員普遍達成的共識。在項目實現(xiàn)中,遵循了以上的原則,發(fā)揮了輕量級容器及輕量級開發(fā)模式的優(yōu)勢。
在項目實現(xiàn)中,很多功能模塊中都使用了基于JavaScript/Ajax的富客戶端,可以說是貫穿了整個項目的始終。
4 主要功能模塊(權(quán)限認證模塊)設(shè)計與實現(xiàn)
在權(quán)限認證模塊,模型中主要設(shè)計了Authenticator接口作為權(quán)限認證的通用接口;設(shè)計了LdapAuthenticator類實現(xiàn)了Authenticator接口提供了基于LDAP服務(wù)器進行權(quán)限認證的方式;設(shè)計了Authentication Result類封裝權(quán)限認證結(jié)果信息,作為通用的權(quán)限認證結(jié)果類。LdapAuthenticator類是通過Spring框架提供的依賴注入功能來獲取所有的靜態(tài)配置信息的,可以在不重新編譯的情況下移植到任何的基于LDAP服務(wù)器進行權(quán)限認證的系統(tǒng)中。
在控制器中,提供三個與權(quán)限認證相關(guān)的方法:登錄、注銷和獲取登錄用戶信息。這些方法存在同一個Action中,視圖均指向了同一個XML數(shù)據(jù)文件。這三個方法只是為Ajax的調(diào)用設(shè)計的。它們指向的XML數(shù)據(jù)文件包含了足夠的信息,供前臺的JavaScript來使用。這個XML數(shù)據(jù)文件實際上是一個JSPX文件,這個JSPX文件被渲染后成為一個XML文件。這里需要注意的是,由于這類供Ajax使用的XML數(shù)據(jù)文件要保證其數(shù)據(jù)的實時性,所以要設(shè)置相應(yīng)的HTTP Header使瀏覽器不要緩存這類文件。
部署任務(wù)管理模塊是對用戶的提交的部署任務(wù)進行查看和管理的功能部分。它可以顯示所有的沒有失效的部署任務(wù),通過Ajax技術(shù)實時加載每個任務(wù)的狀態(tài)、進度信息,并提供多種過濾功能,包括支持通配符的搜索功能。
5 基于Java EE平臺的新型Web應(yīng)用的開發(fā)模式和架構(gòu)特點
近幾年來,基于B/S結(jié)構(gòu)的Web應(yīng)用程序得到了迅速發(fā)展。在很多領(lǐng)域里,逐漸表現(xiàn)出了替代C/S結(jié)構(gòu)的桌面應(yīng)用程序的趨勢。而隨著相關(guān)技術(shù)的發(fā)展,Web應(yīng)用的開發(fā)方式和Web應(yīng)用本身都有了相當?shù)淖兏?。在以Ajax技術(shù)為代表的所謂的“Web 2.0”時代,新型的Web應(yīng)用對Web應(yīng)用的開發(fā)模式提出了新的要求。對于Web應(yīng)用本身,用戶體驗是重中之重。隨著Ajax技術(shù)的迅速發(fā)展,不難看出,用戶對體驗的要求是日趨增長的。良好的用戶體驗不僅展示了開發(fā)人員優(yōu)秀的技術(shù),也體現(xiàn)了設(shè)計人員人性化的設(shè)計理念。以人為本是開發(fā)UI相關(guān)軟件的關(guān)鍵原則之一。
在當今的Web應(yīng)用中,基于MVC模式的開發(fā)模式無疑是最為成熟、穩(wěn)定,同時也具有較高效率的開發(fā)模式。新的MVC Web開發(fā)框架在Java社區(qū)中層出不窮?;谡埱篁?qū)動的Struts 2和基于事件驅(qū)動的JSF是其中杰出的代表。Struts 2是Apache軟件基金會的主要項目,JSF則是Sun公司支持開發(fā)的。二者都是不僅技術(shù)領(lǐng)先,而且都有強大的后盾支持。個人認為,基于請求驅(qū)動的MVC Web開發(fā)框架對于一般的程序員可能比較容易接受,因為一直以來Web應(yīng)用程序都是請求驅(qū)動的,而桌面應(yīng)用程序是基于事件驅(qū)動的。再者,Struts項目有著較長的歷史,在眾多的大型項目中被廣泛的應(yīng)用,擁有大量的用戶和成熟的社區(qū)。
實際上,在企業(yè)級應(yīng)用開發(fā)領(lǐng)域,自2002年Spring出現(xiàn)以來,就一直上演著EJB與Spring之爭。從目前的形勢開來,雖然EJB 3.0有了前所未有的革新,但是在輕量級開發(fā)方面,Spring還是具有一定的優(yōu)勢。
6 結(jié)束語
本文主要介紹了Tivoli Provisioning Manager for OS Deployment for Rational Testing項目基本情況,包括對需求、總體設(shè)計、各功能模塊設(shè)計的詳細說明。在分析和說明中,結(jié)合使用到的開發(fā)框架和技術(shù),探討了設(shè)計的初衷和實現(xiàn)的方法,對某些具體問題展開了研究,并嘗試對開發(fā)應(yīng)用模式進行總結(jié)。本章最后探討了基于Java EE的新型Web應(yīng)用的開發(fā)模式和架構(gòu)特點,通過對多種技術(shù)的比較,總結(jié)了當前Web應(yīng)用程序開發(fā)中較好的開發(fā)方式和架構(gòu)。
參考文獻:
[1]IBM公司.IBM Tivoli操作系統(tǒng)部署解決方案[DB/OL].http://www-900.ibm.com/cn/software/tivoli/products/tpmosd/index.shtml,2007.
[2]IBM公司.IBM Tivoli映像管理解決方案白皮書——加速部署Microsoft Windows Vista[DB/OL].http://www-306.ibm.com/software/cn/tivoli/download/whitepapers/qdv.pdf,2007,03. 作者簡介:王靜(1984.02-),女,河北人,教師,助理講師,理學學士,研究方向:信息技術(shù)。
作者單位:新疆鐵道職業(yè)技術(shù)學院,烏魯木齊 830011