JSR#168 portlet f明

03-10-29 jakarta99
ch1 序言

S多大型企I的W站
uu裼昧 portal server 作殚_l的基A
至於什N是 portal 呢, 中文翻g是 "入口W站"
有人可能想..
天⒌.. 入口W站不是就是像 yahoo, pchome, yam 等等
不^, 我F在的 portal server
不是那N地,
基本上 yahoo, pchome, yam 那些只能Q樗ひ娴娜肟诰W站

如果你]有用^ portal server
或是似懂非懂..
大家可以BY到
MyNetscape ( http://www.mynetscape.com/ )
MyYahoo ( http://my.yahoo.com/ )
去]砸
因 MyNetscape 的邮奖容^好看
所以我接下砭鸵 MyNetscape 榻榻B的例

如果你第一次接|到 portal
你@的lF...
哇.. 楹我W站e面
充M了@N多小窗
我Q@些小窗叫做 "portlet"
而且每小窗都存在著立的息c热
可以放到最大化, s小, 原, P]等等
你登入之後
可以x窦罢{整自己 portlet 的配置
也可以O定自己喜好的L格c邮
更可以O定每 portlet 的Y料O定
@N以客樽鸬南到y,
就是我⒁榻B的 portal

jakarta99
2003-10-29 03:57
ch2 Portal 的M成

Portal 的M成可以分槿糠
(1) Portal Server
(2) Portlet Container
(3) Portlet

1) Portal Server 的定x是

一Portal(入口W站)就是指一 Web-based 的系y,
通常都峁人化O定、我坏侨搿
以及由各N不同碓椿虿煌W站取得各式各拥馁Y,
K且⑦@些Y放在W之中M合而成的呈F平台,
入口W站芯傻人化O定去提供客制化的W,
不同等的使用者g[面@得不同的Y热荨


2) Portlet Container 的定x是

portlet container 是提供 portlets 绦械沫h境,
包含了S多 portlets K且管理他的生命L期,
他也览m保存著 portlets 的喜好O定,
一 portlet container 接收到碜 portal 的求後,
接著⑦@求鬟fo存在 container 的 portlet 绦小
portlet container ]有x
去M合 portlets a生的Y热荩
@工作必由 portal 硖怼
portal 和 portlet container 可以
放在一起橥系y的元件,
或著分_成立的元件。


3) Portlet 的定x是

一 Portlet 是以 Java 技g榛A的 Web 元件,
由 Portlet Container 所管理,
iT砜舻 request 以及a生各NB的Y热荨
Portlets 榭刹迨 ( pluggable ) 的客艚槊嬖
提供呈F映橐Y系y。
@些由 portlet a生的热菀脖环Q槎温 (fragment),
而段落是具有一些t的Markup( HTML、XHTML、WML ),
而且可以和其他的段落M合而成一}s的文件。
而 Portlet 中的热菡碚f是
c其他 Portlet 的热菥酆隙橐 Portal W。
而 Portlet 的生命L期是被Portlet Container所管理控制的。
客舳撕 portlets 的互邮怯
portal 作透^典型的 request/response 方式,
正常碚f,客 portlets 所a生的热莼樱
e例碚f,根乱徊降倪BY或者是_J送出的表危
Y果 portal 邮盏 portlet 的幼鳎
⑦@rD向到目 portlet。
@些 portlet 热莸漠a生可能
因椴煌氖褂谜叨胁煌淖化,
完全是根哆@ portlet 的O定值。

jakarta99
2003-10-29 03:57
ch3 portlet c servlet 的PS

Portlet 和 Servlet 算是兄弟
有那N一cc相似 s又有那N一cc不同
因 Servlet 和 Portlet 不M然相同,
所以研究小MQ定 portlets 成橐新的元件,
因此定x了 portlets 一新的K且明_的介面c行椤
榱吮M可能cF有的 servlet Y合_到重}使用的目的,
portlet 的窭昧 servlet 的瘢
S多^念都U相似的,
Y合 portlets、servlets 及 jsp 在同一W站系y中,
我Q portlet application 。
在同一 portlet application 中,
他⒎窒硗 classloader,context 及 session。

1) Portlet 和 Servlet 的相似之
@ portlets 也是 Java 技g的 web 元件
@ portlets 也是有特定的 container 在管理
@ portlets 可以Ba生各N热
@ portlets 的生命L期由 container 所管理
@ portlets 和客舳说幕邮峭高^ request/response 的C制

2) Portlet 和 Servlet 也有一些不同
@ portlets 只有a生 markup Y段落,不是完整的W文件。而 Portal ⑺械 Portlet markup Y段落放到一完整的 Portal W。
@ portlets 不 URL ]有直接的PS
@ 客舳吮仨透^ portal 系y才能和 portlets 互
@ portlets 有一些定x好的 request 恚action request 以及 render request。
@ portlets A先定x portlet modes 及窗B可以指出在W中 portlet 的哪功能正在绦屑艾F在的B。
@ portlets 可以在同一 portal W之中存在多。

3) Portlet 有一些附加的功能是 Servlet 所]有的
@ Portlets 能虼嫒〖Υ嬗谰迷O定n及客制化Y料。
@ portlets 可以存取使用者Y料
@ portlets 具有 URL 的重功能在文件中去B建立BY,允S portal server 不用去知道如何在W的段落之中建立BY及幼鳌
@ portlets 可以Υr性的Y料在 portlet session 之中,碛不同的 :
application-wide scope 及 portlet private scope 。

4) Portlet 不具有一些功能, 但是 Servlet s有提供
@ servlet 具有O定出的文字a( character set encoding)方式
@ servlet 可以O定 HTTP 出的 header
@ servlet 才能蚪邮湛 portal l出的 URL 求

jakarta99
2003-10-29 03:58
ch4 RI - pluto 冥王星

JSR 是由 JCP ( www.jcp.org )
@ Java M所定x出淼囊
乎每 JSR 都a出 TCK* 及 RI**

*TCK ( Technology Compatibility Kit ) 相容性y元件
*RI ( Reference Implementation ) 作⒖

2003/10/27 JSR#168 Portlet Spec 1.0 已正式公
未, 大家就可以_始根@_l相容性的a品
而@室 RI
就是裼 Apache Jakarta Pluto 冥王星
( http://jakarta.apache.org/pluto/ )
至於楹谓凶鲒ね跣,
我猜是 Sun 想要把光芒射到冥王星都l光吧 :P

目前 pluto 尚未有正式的版本出
未碛信d趣的人可以 jakarta W站下d
不^目前我由 CVS 取得版本
已可以正常\作了
安b的方法十分..
只需要绦 %pluto%/bin/install 就可以安b了
安b^程你 tomcat 的目
假O你 tomcat 根目是 c:\tomcat4.1.27
你就打 c:\tomcat4.1.27 就可以了

接著 http://localhost:8080/pluto/portal
就可以看到很春的 portal 介面
至於操作模式c方法非常
多加操控就可以慢慢了解 portlet 的控制方法了

在 portlet spec 中定x的控制有分
1) 基本的 Portlet Modes
VIEW - 你]有做任何幼HH做热蒿@示
EDIT - 相P的O定
HELP - で助

2) 基本的 Window States
NORMAL - 原 portlet 窗
MAXIMIZED - 最大化 portlet 窗
MINMIZED - 最小化 portlet 窗

其, @些幼鞫家呀由 portal 所作
portlet container ⒔邮张c回嚓P的幼
真正在程式_l上
K不]到@些
除非你要做一 portlet container
而_l上要考]的是
什N人能蜃鍪颤N事情

例如f 尚未登入的人
只能 doView / doHelp
s不能 doEdit @N嘞薰芸C制的_l

jakarta99
2003-10-29 03:58
ch5 RI - pluto 冥王星

每通^JC的使用者
就可以使用相P的 portlet 外^ ( Look&Feel )O定
而@些O定就是透^ css 砭
在]有 portlet spec 之前
各家S商都自行蛴 ISV 各自完成
造成了S多 portlet o法共用同一份 CSS 作
移植上性S多}l生

因此 css 的定x毒哂
客制化功能的 portal 是相重要的

0) Anchor
<a ...> @K]有定x :P

1) Fonts ( font )
portlet-font
portlet-font-dim

2) Message ( paragraph .. )
portlet-msg-status
portlet-msg-info
portlet-msg-error
portlet-msg-alert
portlet-msg-success

3) Sections ( table, div, span ... )
portlet-section-header
portlet-section-body
portlet-section-alternate
portlet-section-selected
portlet-section-subheader
portlet-section-footer
portlet-section-text

4) Forms ( form )
portlet-form-label
portlet-form-input-field
portlet-form-button
portlet-icon-label
portlet-dlg-icon-label
portlet-form-field-label
portlet-form-field

基本上, 你要了解什N地方用什N css
@些 css 名Q套用在你_l的 portlet 之中
你就可以移植到其他支援 jsr#168 的系y
不需要在花rg去更改成樗的 Look&Feel

jakarta99
2003-10-29 03:59
ch6 Y段落 ( fragment markup ) 的限制

每 portlet 出都是一Y段落
之前有提到, @些 markup 有些限制

如果你是a出 HTML 格式的Y段落
就*不可以*碛幸韵逻@些 tag
base, body, iframe, frame, frameset, head, html, 及 title

如果a出是 XHTML 或 XHTML-basic 格式的Y段落
就*不可以*碛幸韵逻@些 tag
base, body, iframe, head, html 及 title

ch7 其他
最後, portlet 需要考]的有
security, caching, taglib 等等..

Portal 是BY後端 EAI 淼馁Y整合平台
提供了企I完整的解Q方案
u作了我坏侨氲C制
N心的人化WO定
更可以提供各式各悠教ㄈ pda, 手C等等的y一窗口
因此, 政府c大企I都 ** 裼眠@N解Q方案
透^ Webservice _成Y流/金流/物流 的效果....


-----
以上全文 (1)-(7) 由 jini (99% jakarta) 所撰
版w凫 (c)softleader taiwan ( http://www.softleader.com.tw )
如需Dd硇鸥嬷 jini@bbs.openfind.com.tw

wolfw
2003-10-29 08:54
看过jsr168一半左右,看了jakarta的pluto和另一个uPortal,感觉不错

weihello
2003-10-31 00:36
很不错很不错的入门教材

artillerist
2003-11-28 19:13
不久前ibm发布它最新版本的lotus workplace.其中包含了新版本的websphere portel。这里主要是做类似的开发吗?

kitta
2004-01-23 05:12
最近一直在看Pluto,不过还是没有理清楚,不知道在座的各位可否指点一二。

Thanks & Regards

banq
2004-01-25 11:49
to kitta
Pluto不复杂,也没有什么,其实我感觉很单薄,exo是一个很不错的Portal,规划很全面但是复杂,Pluto是IBM那一派的,exo则不是,架构设计比较清晰,目前我在这方面研究。

JSR#168标准很重要,今年会有各种Portlet产品出台,到时大家建立网站就方便多了。

netsoldier
2004-06-09 13:51
eXo 是否稳定呢,如果不加改造是否能直接使用呀
我想用jetspeed,但是eXo却支持JSR168。我使用了一下eXo他的那个编辑器也很不错,而且初步印象是比jetspeed快一些。

可就是不知道用的人多不多?

snowmaple
2004-07-19 14:01
最近正在学习portal,这篇文章对我帮助很大.多谢了~!

猜你喜欢