uPortal介紹

本文介紹了uPortal,一種開放源碼的Java,XML,XSL 門戶架構的優點和使用。本文假定讀者沒有uPortal的經驗,涉及了兩種版本快速開始和源碼版。作者Brad Rippe介紹了快速版隨帶的java數據庫HypersonicSQL,以及如何遷移到大型數據庫如Microsoft SQL Server。最後,文章詳細介紹了框架內嵌的權限驗證機制。
Java in Administration Special Interest Group (JA-SIG)的一組java開發者構建了uPortal,歡迎所有的java愛好者加入這個項目。

隨着組織的成長,我們常常會發現我們不斷在尋找新的途徑來將新的變化,過程和政策告訴員工。我們希望僱員和行政機構能夠在公司的目標,計劃,事務下有機的組織起來。更進一步,我們想將儘可能豐富而不侷限於某一方面的信息呈現給僱員。用Internet來展示信息看起來是個好的開始,但我們的受衆能夠從網上浩瀚的信息過濾出想要的部分麼?
在教育領域,我們也面臨同樣的挑戰。怎樣使很好地使管理層,分佈,員工,學生能夠對機構政策,過程很好的理解?怎樣保證使學生羣體接收到清晰,最新的信息來幫助他們實現各自的學習和職業目標。另外,我們希望建立學生,教師,行政,分部和職員協同交流的"社區"爲學生很好實現目標提供保證。我們也希望增進信息共享時用戶能分享羣體的經驗。同時,我們想實現新舊應用的無縫集成。
一種解決方案是提供一種支持工具能夠根據用戶的個人資料,興趣和專業來提供有價值的信息。但是,開發這種工具並不簡單,尤其是你得考慮耗費和資源。
一種好的方法是尋找已有的portals,不過如果客戶化又是很麻煩的事情,也許你可以看看Java in Administration Special Interest Group (JA-SIG)開發的uPortal,uPortal是開放源碼,基於的Java, XML, and XSL項目。目前的發行版包括WEB服務頻道,權限,用戶組管理等等。UPortal讓你可以自己增加你的機構需要的新特性。它着眼於高等教育機構,一些商業組織也用它來作爲構建協同社區的框架。這種框架包括插入式的被成爲頻道的組件,它提供用戶感興趣的信息。用戶可以根據其在機構中角色選擇關心的頻道,同時還可以定製自己站點喜歡的樣式。
Uportal是免費的,但是開發組學習java,XML,XSL和門戶框架是需要投入的。本文試圖通過幫助你將uPortal運行起來以減少這種投入。而且,本文還介紹瞭如何將uPortal培植成產品數據庫和她的基本認證方法。
快速版
爲了運行uPortal,首先你得去JA-SIG Website下載一個版本。你可以選擇快速版和源碼版。注意你需要有jdk13或以上的java版本
快速版面向沒有部署門戶產品環境的用戶。這個版本讓用戶下載一個包括java數據庫(HypersonicSQL),servlet容器(Apache Tomcat),構造工具(Apache Ant),uPortal源碼和配置文件。快速版讓你很快把uPortal運行起來。
要運行這個版本,你只須解開壓縮文件到指定目錄。爲便於說明,我使用我的安裝目錄c:\uportal_2-1\.,我們可以看到Ant,HypersonicSQL,Tomcat,uPortal的子目錄
Ant:Apache組織的基於的構建工具。Ant工具由一系列的Ant任務組成,任務可以是調用java編譯器生成class文件,也可以是修改配置文件用於測試或產品環境,還可以是調用javadoc生成文檔,運行單元測試等等。UPortal使用Ant來啓動和終止WEB容器,生成文檔,創建庫表,增加用戶和樣式單。

HypersonicSQL:一種開放源碼的java數據庫,uPortal用來創建表存數據。儘管HypersonicSQL是免費的,但更多的產品開發環境使用Oracle, MySQL, 或 Microsoft SQL Server數據庫產品。當然,HypersonicSQL非常的簡單,用來做內部的uPortal演示仍然時候不錯的選擇。
Tomcat:容納所有uPortal's servlets 和 JSP頁面。Apache Tomcat是Sun Microsystems的WEB應用規範的參考實現,Tomcat支持Servlet 2.3 specification 和 JSP 1.2.
現在讓這個站點運行起來,首先我們需要用ant從命令行啓動數據庫,進入uPortal的安裝目錄敲下ant hsql.,
C:\uPortal_2-1>ant hsql
C:\uPortal_2-1\Ant_1-5
Buildfile: build.xml

hsql:
[echo] Starting HSQL
[java] Server 1.6 is running
[java] Press [Ctrl]+[C] to abort


數據庫可用後,你使用以下命令,來啓動Tomcat訪問你的uPortal
C:\uPortal_2-1>ant tomcatstart
現在數據庫和應用服務器都運行起來了,你可通過url:http://localhost:8080/uPortal/ 訪問,默認情況下你可使用這些帳號登錄進uPortal訪問不同的界面和頻道。
Portal默認的帳號
Default portal usersUsername Password

demo demo
student student
faculty faculty
staff staff
developer developer


源碼發行版
uPortal的第二個發行版是面向那些有J2 EE和產品數據庫環境的。這個版本只包括uPortal代碼和編譯代碼,創建數據庫表,生成文檔的配置文件。建議用戶要有java應用服務器和關係數據庫的經驗。這個版本需要用戶自己配置運行環境。

UPortal隨帶一個僅有100KB的java數據庫叫HypersonicSQL。這個關係數據庫系統易於使用並且是免費的。HypersonicSQL支持索引,事務,連接,參照約束,java存儲過程和函數,以及用戶安全。數據庫還包括一個類似Microsoft's SQL Analyzer的數據庫管理器,但是HypersonicSQL是正在開發中的數據庫,建議基於uPortal的方案用產品數據庫後臺部署,由於絕大多數的機構都有可用的數據庫,uPortal也提供對其它數據庫的簡單接口。

遷移到產品數據庫

現在你已經使用了uPortal並且瞭解一些特性,你也許希望將數據轉移到更穩定的數據庫中去,uPortal的 org.jasig.portal.RDBMServices 類提供了數據庫服務,最初版本的使用一種開放源碼對象池PoolMan,現在的版本使用RDBMServices,提供的連接池是驅動器實現的,可以通過配置使用你自己的產品數據庫
Listing 1


jdbcDriver=org.hsqldb.jdbcDriver
jdbcUrl=jdbc:hsqldb:hsql://localhost:8887
jdbcUser=sa
jdbcPassword=


My configuration resembles:
我的配置是:
Listing 2


jdbcDriver=com.inet.tds.TdsDriver
jdbcUrl=jdbc:inetdae7:localhost:1433
jdbcUser=PortalUser
jdbcPassword=


我的配置包括兩個數據庫。分別存放uPortal主表和uPortal頻道表。所有的頻道連接uportal_channels庫,uPortal框架連到uportal的存取顯示,權限信息和其他相關信息
除了在rdbm.properties增加屬性外,因爲我們使用第三方JDBC驅動程序,所以需要將jar文件放到uPortal's 庫目錄並修改uPortal_rel-2-1-1 目錄下build.properties文件。
jdbcDriver.jar=./lib/[yourJDBCDriver].jar

用以下命令使配置生效

c:\uportal_2-1\ uPortal_rel-2-1-1\ant deploy

用以下命令測試:
C:\uPortal_2-1-1\uPortal_rel-2-1-1>ant dbtest

連接定義好後,你可通過以下命令創建表結構:

c:\uportal_2-1\uPortal_rel-2-1-1\ant db

該命令啓動uPortal數據庫載入器,它將創建uPortal運行需要的所有表,數據庫載入器使用以下xml中的定義創建表結構:

data.xml:包括需要插入表中的數據一旦表創建好後,包括所有的頻道,擁護和界面樣式信息
dbloader.xml:dbloader的配置信息。是否刪除所有表,創建新表,或修改數據庫數據

tables.xml:存放數據庫結構
到這裏,你應該可以得到跟你用快速版一樣的uPortal效果了。但是,現在uPortal應該連接你的數據庫後端而不是用它自帶的HypersonicSQL。

內嵌認證機制
uPortal數據庫提供了基本認證方法。用戶名和密碼在UP_PERSON_DIR表存取。密碼使用MD5加密。儘管很多環境使用其他如LDAP或NT ACLs來做用戶驗證,uPortal提供了用戶和權限的基本結構。在uPortal中創建用戶,你必須使用另一個叫md5passwd 的Ant任務。在命令行下敲入

ant md5passwd -Dusername=brippe


你將看到提示輸入密碼。任務加密密碼並將用戶信息放入UP_PERSON_DIR,這時,用戶可以登陸進uPortal,uPortal使用UP_PERSON_DIR驗證用戶。我手上版本的uPortal使用md5passwd加密ANT任務時有點問題。相關的class路徑包括xercesImp.jar 和 xml-apis.jar,我通過如下修改糾正了錯誤。

<classpath>
<pathelement path="${build.home}"/>
<pathelement path="${build.home}/WEB-INF/classes"/>
<pathelement path="${jdbcDriver.jar}"/>
<pathelement path="${log4j.jar}"/>
<pathelement path="${xercesImpl.jar}"/>
<pathelement path="${xml-apis.jar}"/>
</classpath>


Xerces jar包含着Xerces XML解釋器,xml-apis.jar是的XML的javaAPIs,裏邊包括java1。4的SAX,DOM和其他XMLAPI。
順便說明,一旦用戶登錄進uPortal,顯示信息被放在UP_USER表中。這個表存放用戶看到哪一種界面。

開始你的uPortal開發
Uportal提供了擴展基礎使你的開發不會從很細節的地方開始。整個框架還集成了其它沒有在這裏討論的功能:uPortal支持審計,WEB服務,用戶管理等等。UPortal最好特性是它的開發架構允許快速創建新的頻道和分佈世界的頻道開發協作關係。可用的頻道包括聊天,論壇,教學,天氣,記事本,通告,問答,分類廣告等等。雖然軟件是教育機構的協同努力開發的,但用於構建其它門戶環境也是非常可行的。

 

轉載於:http://tb.blog.csdn.net/TrackBack.aspx?PostId=46067

 

發佈了18 篇原創文章 · 獲贊 4 · 訪問量 5萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章