什么是 Portal (門戶) ?
Portal
的組成可以分為三部份
(1) Portal Server (2) Portlet Container (3) Portlet
1)????????
Portal Server
的定義
一個(gè)
Portal
(門戶網(wǎng)站)就是指一個(gè)
Web-based
的系統(tǒng),通常都會(huì)提供個(gè)人化設(shè)置、單一登陸、以及由各種不同來(lái)源或不同網(wǎng)站取得各式各樣的信息,并且將這些信息放在網(wǎng)頁(yè)之中組合而成的呈現(xiàn)平臺(tái),門戶網(wǎng)站會(huì)有精巧的個(gè)人化設(shè)置去提供定制的網(wǎng)頁(yè),當(dāng)不同等級(jí)的使用者來(lái)瀏覽該頁(yè)面將獲得不同的信息內(nèi)容。
2) Portlet Container
的定義
portlet container
是提供
portlets
執(zhí)行的環(huán)境,包含了許多
portlets
并且管理他們的生命周期,他也會(huì)永遠(yuǎn)保存著
portlets
的喜好設(shè)置,一個(gè)
portlet container
接收到來(lái)自
portal
的請(qǐng)求后,接著將這個(gè)請(qǐng)求傳遞給存在
container
的
portlet
執(zhí)行。
portlet container
沒(méi)有義務(wù)去組合
portlets
產(chǎn)生的信息內(nèi)容,這個(gè)工作必須由
portal
來(lái)處理。
portal
和
portlet container
可以放在一起視為同一個(gè)系統(tǒng)的組件,或者分開(kāi)成為兩個(gè)獨(dú)立的組件。
什么是 Portlet?
一個(gè)
Portlet
是以
Java
技術(shù)為技術(shù)的
Web
組件,由
Portlet Container
所管理,專門處理客戶的
request
以及產(chǎn)生各種動(dòng)態(tài)的信息內(nèi)容。
Portlets
為可插式
( pluggable )
的客戶界面組件,提供呈現(xiàn)層成為一個(gè)信息系統(tǒng)。
這些由
portlet
產(chǎn)生的內(nèi)容也被稱為片段
(fragment)
,而片段是具有一些規(guī)則的
Markup( HTML
、
XHTML
、
WML )
,而且可以和其他的片段組合而成一個(gè)復(fù)雜的文件。而
Portlet
中的內(nèi)容正常來(lái)說(shuō)是與其他
Portlet
的內(nèi)容聚合而成為一個(gè)
Portal
網(wǎng)頁(yè)。而
Portlet
的生命周期是被
Portlet Container
所管理控制的。
客戶端和
portlets
的互動(dòng)是由
portal
通過(guò)典型的
request/response
方式實(shí)現(xiàn),正常來(lái)說(shuō),客戶會(huì)和
portlets
所產(chǎn)生的內(nèi)容互動(dòng),舉例來(lái)說(shuō),根據(jù)下一步的連接或者是確認(rèn)送出的表單,結(jié)果
portal
將會(huì)接收到
portlet
的動(dòng)作,將這個(gè)處理狀況轉(zhuǎn)向到目標(biāo)
portlet
。這些
portlet
內(nèi)容的產(chǎn)生可能會(huì)因?yàn)椴煌氖褂谜叨胁煌淖兓耆歉鶕?jù)客戶對(duì)于這個(gè)
portlet
的設(shè)置。
門戶網(wǎng)站( PORTAL )的作用
單點(diǎn)登錄
?????????Portal的單點(diǎn)登錄是基于應(yīng)用集成系統(tǒng)的,統(tǒng)一身份認(rèn)證系統(tǒng)實(shí)現(xiàn)系統(tǒng)的單點(diǎn)登錄:用戶只需要進(jìn)行一次登錄,就可以訪問(wèn)到所有的授權(quán)服務(wù);所有的應(yīng)用系統(tǒng)可以提供統(tǒng)一的用戶管理。Portal的用戶權(quán)限管理能夠控制到頁(yè)面或Portlet
個(gè)性化定制
針對(duì)不同的用戶登錄,可以展示不同的內(nèi)容。可以根據(jù)用戶的關(guān)注點(diǎn)不同來(lái)為用戶提供定制桌面的功能。
資源整合
完成應(yīng)用整合,以及業(yè)務(wù)整合的功能。不同的
web
系統(tǒng),
web
業(yè)務(wù)平臺(tái)可以通過(guò)
portlet
的
web
剪切功能直接放入門戶里面來(lái)。
門戶網(wǎng)站可選方案分析
廠商的門戶平臺(tái):
1、???????????
IBM WebSphere Portal
2、??????????
BEA PORTAL
廠商的門戶平臺(tái),一半都有自己的開(kāi)發(fā)標(biāo)準(zhǔn),現(xiàn)在都要求用
JSR168
的標(biāo)準(zhǔn)進(jìn)行開(kāi)發(fā),廠商的門戶成本比較高,穩(wěn)定性好,服務(wù)好產(chǎn)品的后期維護(hù)以及開(kāi)發(fā)都有比較成功的案例;
開(kāi)源的門戶平臺(tái)
JetSpeed
JetSpeed
是
Apache
(
http:// jakarta.apache.org/jetspeed/
)組織的一個(gè)開(kāi)源項(xiàng)目,
IBM
的
WebSphere Portal Server
正是基于
JetSpeed
進(jìn)行二次開(kāi)發(fā)。
在滿足門戶可定制性的需求上,引入了門戶組件概念
Portlet
,
Portlet
是一個(gè)可插拔的組件,關(guān)于
Portlet
有各種定義,
JetSpeed
在提交的
JSR-168 portlet API specifications
對(duì)
Portlet
的定義如下:
Portlet
是一個(gè)
Web
組件,可以被容器管理,可以產(chǎn)生動(dòng)態(tài)內(nèi)容。
Portlet
可以很容易地被插入并且運(yùn)行于一個(gè)
Web
應(yīng)用中,
Portlet
是被設(shè)計(jì)成聚合大量?jī)?nèi)容的組合頁(yè)面,舉例:同樣一個(gè)
Portlet
,根據(jù)不同的用戶,可以產(chǎn)生不同的實(shí)例,這些實(shí)例中是根據(jù)用戶設(shè)置包含不同的內(nèi)容,也就是滿足用戶的可定制性。
為了實(shí)現(xiàn)門戶內(nèi)容的有效管理和監(jiān)控,
JetSpeed
的重要內(nèi)容組件
Slide
引入了
Domain
和
Namespace
方面的概念,對(duì)所有資源進(jìn)行樹(shù)形結(jié)構(gòu)的控制,在
Slide
中,
Domain
是一系列
Namespace
的聚合,它類似文件系統(tǒng)中的
“/”
根目錄,
domain
可以控制在其中登記的
Namespace
的訪問(wèn)權(quán)限以及執(zhí)行
Namespace
的初始化和連接等管理工作。
Namespace
是個(gè)自我獨(dú)立的有實(shí)體內(nèi)容的容器,它不能包含指向或連接到其它
namespace
,每個(gè)應(yīng)用系統(tǒng)可以是一個(gè)
NameSpace
,
Namespace
包含獨(dú)立的數(shù)據(jù)和這些數(shù)據(jù)的安全訪問(wèn)機(jī)制。
JetSpeed
雖然提供了豐富的
Portal
技術(shù)功能,但是其可定制性比較差,其重要的內(nèi)容組件
Slide
也比較難以讓人理解,它的安全控制框架與通用的
J2EE
使用
JAAS
不相融合,所有這些都造成了在其基礎(chǔ)上進(jìn)行二次開(kāi)發(fā)的難度。
?
Liferay
Liferay
(
http://www.liferay.com
)代表了完整的
J2EE
應(yīng)用,使用了
Web
、
EJB
以及
JMS
等技術(shù),特別是其前臺(tái)界面部分使用
Struts
框架技術(shù),基于
XML
的
portlet
配置文件可以自由地動(dòng)態(tài)擴(kuò)展,使用了
Web Services
來(lái)支持一些遠(yuǎn)程信息的獲取,使用
Apahce Lucene
實(shí)現(xiàn)全文檢索功能。
Liferay Portal
是一套相當(dāng)成熟的
Java/J2EE portal system
,遵循
Portlet API JSR168
的標(biāo)準(zhǔn)。
作為一個(gè)開(kāi)源
Portal
產(chǎn)品,
Liferay Portal
提供對(duì)多個(gè)獨(dú)立系統(tǒng)的內(nèi)容集成,幫助多個(gè)組織實(shí)現(xiàn)更有效的合作。與其他商業(yè)的
Portal
產(chǎn)品相比,
Liferay Portal
有著一系列的優(yōu)良特性,而且不需要付費(fèi)。
Liferay
的缺點(diǎn)是它缺乏一個(gè)簡(jiǎn)單清晰可拓展的架構(gòu)設(shè)計(jì),
portlet
設(shè)計(jì)顯得比較凌亂,進(jìn)行二次開(kāi)發(fā)有一定的難度
.
Pluto
Pluto
是一個(gè)滿足
Portlet API
規(guī)范的
Portlet
容器的實(shí)現(xiàn),它為開(kāi)發(fā)者提供了一個(gè)運(yùn)行
portlets
的工作平臺(tái)。然而,如果沒(méi)有一個(gè)驅(qū)動(dòng)器(
driver
),也就是
Portal
,的支持的話,運(yùn)行和測(cè)試
Portlet
容器將非常之麻煩。
Pluto
本身也提供了一個(gè)簡(jiǎn)單的
Portal
模塊,該模塊僅僅是為了滿足
Portlet
容器和
JSR 168
的需要而寫(xiě)的。
JBoss Portal ?
JBoss Portal
提供了一個(gè)開(kāi)源符合標(biāo)準(zhǔn)的門戶平臺(tái),可以用其搭建
/
布局一個(gè)門戶網(wǎng)站的
web
界面,發(fā)布和管理內(nèi)容以及定制它的用戶體驗(yàn)。
JBoss Portal
最新版本中在個(gè)性化設(shè)置,身份驗(yàn)證,工作流都進(jìn)行重大更進(jìn)。此外還集成了
Google Gadgets
,以提高用戶工作效率。
門戶網(wǎng)站發(fā)展規(guī)劃
總體規(guī)劃圖
外網(wǎng)的用戶通過(guò)門戶網(wǎng)站可以使用所有的業(yè)務(wù)系統(tǒng)以及短信、郵件、
OA
等原有的系統(tǒng),實(shí)現(xiàn)了應(yīng)用整合。
由此可見(jiàn)門戶的重要地位,公司初步的選定采用
LifeRay
作為公司門戶產(chǎn)品的研發(fā)基礎(chǔ)。
在
LifeRay
的基礎(chǔ)上研發(fā)出公司自己的門戶平臺(tái)。
實(shí)施步驟
平臺(tái)的學(xué)習(xí)使用
開(kāi)發(fā)一個(gè)平臺(tái),首先要能熟練的使用這個(gè)平臺(tái),分析這個(gè)平臺(tái)的不足與優(yōu)點(diǎn),在學(xué)習(xí)使用的過(guò)程中應(yīng)該能夠提出自己對(duì)將要研發(fā)平臺(tái)的建議和規(guī)劃以及平臺(tái)的組成要素,開(kāi)發(fā)的工具以及環(huán)境配置。
Portlet
的學(xué)習(xí)開(kāi)發(fā)部署
???
平臺(tái)會(huì)使用以后,下一步就要開(kāi)發(fā)自己的公用的插件了,依據(jù)
JSR168portlet
開(kāi)發(fā)的標(biāo)準(zhǔn),進(jìn)行
portlet
的開(kāi)發(fā),這一個(gè)階段首要的任務(wù)是開(kāi)發(fā)出自己的插件。然后開(kāi)始組織培訓(xùn),如何搭建開(kāi)發(fā)環(huán)境如何調(diào)試
Portlet
,以及平臺(tái)如何使用,還有就是如何部署自己開(kāi)發(fā)的
portlet
。這一步需要開(kāi)發(fā)人員有對(duì)新知識(shí)渴望學(xué)習(xí)的興趣。
產(chǎn)品的包裝命名
公司美工在開(kāi)發(fā)人員的指導(dǎo)下,一起對(duì)產(chǎn)品的插件以及平臺(tái)進(jìn)行界面美化,讓美工掌握如何對(duì)插件進(jìn)行美化,以及設(shè)計(jì)自己的產(chǎn)品的皮膚樣式。
產(chǎn)品的測(cè)試銷售
產(chǎn)品必須經(jīng)過(guò)嚴(yán)格的測(cè)試然后由銷售人員針對(duì)不同的用戶群銷售。
產(chǎn)品維護(hù)
作為平臺(tái)的維護(hù),主要是美工對(duì)皮膚的美化,還有就是開(kāi)發(fā)新的插件;這一塊可以有一個(gè)既懂美工又熟悉
portlet
編程的專人維護(hù)就可以了,因?yàn)榫S護(hù)的內(nèi)容很少,所以后期的維護(hù)成本得以控制。