这两天找了一些portal相关的资料,也从中学到了很多东西。据说我们学校还有个portal,不过现在不知为什么down掉了。一个学校拥有譬如网上注册、网上评价、新闻发布、咨询公告、网上选课、天气预报……怎么给用户集中展现?怎
么让用户定制自己想看到的界面?怎么实现单点登录?这是portal要解决的问题。各个的应用提供业务能力,portal提供一个统一的look and
feel。所以portlet和servlet绝对不是竞争的关系,portlet的功能是“聚集+展现”,应该尽量回避具体于业务的逻辑。
Portlet可以使软件厂商产品或室内定制应用软件咬接进门户框架。Portlets可以用各种方式来编写,最简单的Portlets采用了静态HTML或WML标记语言或者JSP语法。中间级Portlets可以采用JavaBeans或Java servlets,或者XML和XSL转换。更复杂的Portlets涉及到编写客户Java码。一个 Portlet 是以 Java 技术为技术的 Web 组件,由 Portlet Container 所管理,专门处理客户的
request 以及产生各种动态的信息内容。Portlets 为可插式 ( pluggable )
的客户界面组件,提供呈现层成为一个信息系统。这些由 portlet 产生的内容也被称为片段
(fragment),而片段是具有一些规则的Markup( HTML、XHTML、WML ),而且可以和其他的片段组合而成一个复杂的文件。而
Portlet 中的内容正常来说是与其他 Portlet 的内容聚合而成为一个 Portal 网页。而 Portlet 的生命周期是被
Portlet Container 所管理控制的。客户端和 portlets 的互动是由 portal 通过典型的
request/response 方式实现,正常来说,客户会和 portlets
所产生的内容互动,举例来说,根据下一步的连接或者是确认送出的表单,结果 portal 将会接收到 portlet
的动作,将这个处理状况转向到目标 portlet。这些 portlet 内容的产生可能会因为不同的使用者而有不同的变化,完全是根据客户对于这个
portlet 的设置。Portal主要是解决企业信息和应用的前端集成问题,它负责连结企业后台EAI,集成企业的结构和非结构化信息,并提供统一的访问企业信息和应用的入口。
1) Portlet 和 Servlet 的相似之处
@ portlets 也是 Java 技术的 web 组件
@ portlets 也是有特定的 container 在管理
@ portlets 可以动态产生各种内容
@ portlets 的生命周期由 container 所管理
@ portlets 和客户端的互动是通过 request/response 的机制
2) Portlet 和 Servlet 也有一些不同
@ portlets 只产生 markup 信息片段,不是完整的网页文件。而 Portal 会将所有的 Portlet markup 信息片 段放到一个完整的 Portal 网页。
@ portlets 不会和 URL 有直接的关系
@ 客户端必须通过 portal 系统才能和portlets互动
@ portlets 有一些定义好的request处理,action request以及render request。
@ portlets 默认定义 portlet modes 及窗口状态可以指出在网页中该 portlet 的哪个功能正在执行及现在的 状态。
@ portlets 可以在同一个 portal 网页之中存在多个。
3) Portlet 有一些附加的功能是 Servlet 所没有的
@ Portlets 能够存取及储存永久配置文件及定制资料。
@ portlets 可以存取使用者数据
@ portlets 具有URL的重写功能在文件中去动态建立连结,允许 portal server 不用去知道如何在网页的片 段之中建立连结及动作。
@ portlets 可以储存临时性的数据在 portlet session 之中,拥有两个不同的范围:
application-wide scope 及 portlet private scope 。
4) Portlet 不具有一些功能,但是 Servlet 却有提供
@ servlet 具有设置輸出的文字编码方式
@ servlet 可以设置 HTTP 输出的 header
@ servlet 才能夠接收客户对于portal发出的URL请求
基于Portal开发项目的优势
1、可以与以后新开发的或已集成到Portal中的企业应用实现无缝集成。
2、可以分享Portal服务器和Portlet容器提供的种种功能。这要视Portal服务器提供商而定。
3、由于Portlet已规范化(JSR168),所以应用中开发的Portlet可以部署在不同的Portal服务器上。
Java 中开源的portal门户
代
表了完整的J2EE应用,使用了Web、EJB以及JMS等技术,特别是其前台界面部分使用Struts
框架技术,基于XML的portlet配置文件可以自由地动态扩展,使用了Web Services来支持一些远程信息的获取,使用 Apahce
Lucene实现全文检索功能。
主要特点:
1、提供单一登陆接口,多认证模式(LDAP或SQL);
2、管理员能通过用户界面轻松管理用户,组,角色;
3、用户能可以根据需要定制个性化的portal layout;
4、能够在主流的J2EE应用服务器上运行,如JBoss+Jetty/Tomcat,JOnAS;
5、支持主流的数据库,如PostgreSQL,MySQL;
6、使用了第三放的开源项目,如Hibernate, Lucene, Struts;
7、支持包括中文在内的多种语言;
8、采用最先进的技术 Java, EJB, JMS, SOAP, XML;
Jetspeed
是一个开放源代码的企业信息门户(EIP)的实现, 使用的技术是Java和XML. 用户可以使用浏览器,
支持WAP协议的手机或者其它的设备访问Jetspeed架设的信息门户获取信息. Jetspeed扮演着信息集中器的角色,
它能够把信息集中起来并且很容易地提供给用户.
Jetspeed具有如下的特征:
* 即将成为标准化的Java Portlet API
* 基于模板的布局, 包括JSP和Velocity
* 通过开放的内容同步技术支持远程XML内容交换
* 定制默认的主页
* 使用数据库进行用户认证
* 内存缓存技术, 加快页面的响应
* 通过Rich Site Summary技术, 支持同步内容
* 和Cocoon, WebMacro, Velocity集成.
* Wireless Markup Language (WML) 支持
* 使用XML格式的配置文件注册portlet.
* 完整的Web Application Archive (WAR) 支持
* Web应用程序开发的基础设施
* 可以在本地缓存远程内容
* 与Avantgo同步
* 可移植到所有支持JDK1.2和Servlet 2.2的平台
* 与Turbine模块和服务集成
* 可以根据用户, 安装媒体类型和语言的不同设定, 产生不同的个性化服务
* 持续化服务使得所由的portlet能够容易的存储每个用户的状态, 页面和portlet
* 使用皮肤技术使得用户可以选择portlet的颜色和显示属性
* 自定义功能是的管理员可以选择portlet以及定义个人页面的布局
* 在数据库中存储PSML
* 通过Jetspeed的安全portlets管理用户, 组,角色和权限
* 基于角色对访问portlet进行控制
Pluto
是一个满足Portlet
API规范的Portlet容器的实现,它为开发者提供了一个运行portlets的工作平台。然而,如果没有一个驱动器(driver),也就是
Portal,的支持的话,运行和测试Portlet容器将非常之麻烦。Pluto本身也提供了一个简单的Portal模块,该模块仅仅是为了满足
Portlet容器和JSR 168的需要而写的。
oPortal是一个用java写的开源门户项目,它的目标是成为一个安全的web应用程序。基于Struts 框架技术。
J2EE
Portal Engine是一个建造于Jeenius Framework
(http://jeenius.sourceforge.net)框架基础上的完整功能的门户引擎。它可以和任意兼容2.3版本的servlet
引擎工作,提供了许多有用的小部件。
jCharon
目标是创造一个具有国际化与商业化的 Portal 及 Portlets。发起该项目的原因大致是现有的开源 portal 太简单,
portlets 也不具有国际化, 所以建立了以冥王星 (pluto)的卫星 Charon 为名的开源项目。该项目的 License 是
Apache Foundation License
eXo
Platform 是一个开源企业门户解决方案,它基于 Java(tm) Server Faces (JSF) web
层框架,遵循portlet API (JSR 168) 。此开源项目还用到的开源技术有Pico Container, JbossMX
与AspectJ。
Portlet API规范(JSR 168)的Portlet容器的实现,它为开发者提供了一个运行portlets的工作平台。
JPortal
是目前最为符合JSR-168 Spec的Portal实现。他使用了拦截器技术和 Dynamic
Proxy来实现Portlet的可插入设计。他目前只是一个原型的实现并且之关注于实现 Portal Container,并没有过多的
Portlet实现和设计。
优点在于其的架构清晰,易于扩展,但在Portal的工业强度上需求的差距是比较大的,没有分布式的概念是他目前架构的一个致命的地方。
由(JA
-SIG)开发的uPortal基于的Java, XML, and XSL项目,
发行版包括WEB服务频道,权限,用户组管理等等。UPortal让你可以自己增加你的机构需要的新特性。它着眼于高等教育机构,一些商业组织也用它来作
为构建协同社区的框架。这种框架包括插入式的被成为频道的组件,它提供用户感兴趣的信息。用户可以根据其在机构中角色选择关心的频道,同时还可以定制自己
站点喜欢的样式。
jPortlet是portlet容器的一个开源实现,Portlet是运行在portle服务器中的portlet容器之内的组件。jPortlet具有以下特性:
1,可以用不同的方式浏览portlet:观察、修改、配置或者提供帮助。2,它的API可以让你把portlet部署在web浏览器内、PDA上、蜂窝电话上等许多地方。3,portlet容器可以缓存portlet的内容,用来加速porlet的表现。
OpenPortal是一个Web门户框架,可以让用户个性化运行这一软件的站点的Web页面。用户通过选择一套可用的门户组件属性来构造其页面。一个门户组件可以是servlet 或JSP页面。
一个遵循Portlet Specification(JSR-168) 规范的portlet 容器。
Stringbeans是一个兼容JSR 168 portlets部署的平台。2.4版增加了portlet应用部署者工具,支持部分保护(semi-protected)的门户应用、跟踪和访问门户应用。
提供一个基于 portlet 的高级开放源代码门户。GridSphere 是在欧盟提供基金的 GridLab 项目
下开发的,提供了一个非常复杂的门户,该门户为各种终端用户提供高度定制的环境。portlet
模型向用户提供了一个灵活易用的接口,并向门户开发人员提供了一个模型,用于创建可插入的和动态的应用程序支持。
下面简要列出核心的 GridSphere 特性:
1,Portlet API 的实现与 IBM WebSphere Portal Server 4.2 或更高版本紧密兼容。
2,易于开发并易于与插入到 GridSphere portlet 容器中的“第三方 portlet”集成。
3,级别更高的模型,用于使用可视的 bean 和 GridSphere User Interface (UI) 标签库构建复杂的 portlet。 灵活的基于 XML 的门户表示描述,可以轻松对其进行修改来创建自定义的门户布局。
4,对基于角色的访问控制(Role Based Access Control,RBAC)提供内置的支持,RBAC 将用户分为 guest、user、admin 和 super user。
5,复杂的服务模型,允许创建“用户服务”,可以按照用户权限限制服务方法。
6,通过 Hibernate for RDBMS 数据库支持提供数据的持久性。
7,为 portlet 服务的服务端测试集成了 Junit/Cactus 单位测试,包括生成测试报告。
8,GridSphere
核心 portlet 提供基本功能,包括登录、注销、用户和访问控制管理。 由于 GridSphere portlet API 几乎与
WebSphere portlet API 完全相同,所以您应该多看看 developerWorks 文章,这些文章在 参考资料 和 IBM
WebSphere Portal Zone 中列出。在理论上,使用 IBM WebSphere Portal Server 开发本文中的示例
portlet 应该不难。GridSphere API 与 JSR Portlet API 1.0 最后的规范非常类似,gridSphere
的将来版本是符合 JSR 168 的。当前的 GridSphere 版本提供了一个门户、一个 portlet 容器和一组有用的核心
portlet,包括用户和组管理以及布局定制和 portlet 订阅。
一个服从Portlet规范(JSR-168)的Portlet容器。
basicPortal CMS (TM)是一个企业信息门户(EIP)。它完全基于能够让用户开发标准,廉价,跨平台,动态,灵活和非常快web应用程序的开源软件技术。
MyPersonalizer是一个基于J2EE框架的“我的”门户(类似于my.yahoo.com)的开源项目。
NVPortal是一个基于开源BSD协议的Java企业门户解决方案.这个开源方案可满足用户的高需求因为:
* 符合JSR 168规范与WSRP标准,
* 通SOAP实现商业处理引擎与搜索引擎,
* 可随意地的自定义布局,
* 非常友好的用户界面,
* 多语言支持,
* 单一登录(SSO),
* 图形管理界面等...
WWPortlet
一个MVC JSR168
Portlet框架基于WebWork,Velocity,Spring,Hibernate.使用WWPortlet框架开发门户(Portal)系统
时,可以不需要知道Portlet和JSR168的API与概念.你可以像开发传统WebWork/Velocity应用程序一样来开发门户
(Portal)系统,
Lutece
是一个Web门户引擎,它能够让你快速创建基于HTML,XML或数据库内容的internet或intranet门户网站.Lutece可很好的运行在
Linux与Windows平台上,采用MySQL作为默认的数据库.Lutece提供一个非常简单的管理界面能够让最终用户直接使用而不需要任何专门的
技术.这个工具由巴黎城市数据处理部门所开发主要用于区域Web站点项目,它已被运用在超过18个城市的Web网站上(具体可查看此处列表).
SIPF(Siemens Intranet Portal Framework)提供一个个性化的,结构化的信息访问和应用程序的无缝集成.一个基于web的并且结构分明的可视化桌面工作环境.
Portlet
Bridge Portlet是一个web clipping proxy
portlet,它能够把web应用程序"裁剪"成portlets。Portlet Bridge
Portlet使用XSLT和CyberNeko进行web clipping。
Kosmos是一组监测软件项目开发portlet。符合JSR-168规范可用于跟踪项目各方面的进展包括:版本控制,缺陷跟踪,持续构建,和项目依赖等。
Light是一个基于Ajax与Java的开源Portal框架,它能够被无缝地集成到任何Java Web应用程序中或作为一个独立的Portal系统。它的特点就是当用户以管理方式访问portal时打开它,当用户需要把它作为规则商业处理时关闭它。
支持JSR168 Portlet API设计规范.
支持多主题,也支持自定主题。
每个Portlet都可以配置成单独刷新的模式,自动独立刷新与在同一个tab页面刷新其它portlet。
posted on 2007-04-27 20:48
wqwqwqwqwq 阅读(2775)
评论(6) 编辑 收藏 所属分类:
No Category