what is a portal?
一般而言,portal(特别是指web portal)是一个基于web的应用程序。
它聚合(Aggregation)不同来源的内容,并负责多源信息的展示,以及实现用户个性化、用户认证。
Aggregation指集成不同来源的内容到一个web页面的行为。
一个portal应该为用户提供成熟的用户个性化功能,使其可定制页面内容。
Portal页面对于不同的用户也许有一组不同的portlets内容。
what is a portlets?
实际上,portlets被protal用来作为可插入的UI组件。
portlet生成的内容可以称为片段(fregment)。
片段是遵循特定规则的标记代码(例如html,xhtml,wml等等),并能够同其他片段一起被聚合,形成完整的文件。
portlet的生命周期是由portlet容器管理的。
很明显,web客户端与protlets交互是靠portal通过request-response方式实现的。
通常,用户与portlets生成的内容进行交互,给protlets的请求将被protal接收,
protal再把请求转送到真正与实现用户交互的protlets目的地。
client --> protal --> protlets targets
what is portlet container?
让portlets在portal页面中后,我们需要portlet容器来管理protlets.
protlet容器运行portlets,为他们提供必需的运行时环境,管理他们的生命周期。它也为protlet首选项提供持久化存储。porltet容器从portal来接受请求,并在它所包含的protlets上执行请求。
一般而言,一个protlet容器不负责聚合portlets生成的内容。portal来处理聚合。
protal和portlet容器能够作为一个单独的应用套件被组合在一起。或者作为两个单独的protal应用组件。
下面是一个典型的事件序列,当访问一个页面时进行初始化:
A client (for example, the administrator), after being authenticated, makes an
HTTP request to the portal
The request is received by the portal (for example, Liferay portal)
The portal determines if the request contains an action (for example, process
action, render) targeted at the portlets (for example, Language associated
with the portal page Home Welcome Page)
If there is an action targeted at a portlet, for example, Language, the portal
requests the portlet container to invoke the portlet to process the action
A portal invokes portlets (for example, Language, Reports) and so on,
through the portlet container
The portal aggregates the output of the portlets in the portal page to the
client (for example, the administrator)