无论是商业化的还是开源的Portal产品,符合国际标准规范是必不可少的要求。有的Portal可能不支持WSRP(Web Services for Remote Portlets),但必须符合JSR-168标准。比较突出的开源Portal主要有JBoss Portal、Apache Jetspeet-2,Liferay Portal,还有两个属于欧洲的非美产品eXo Platform和GridSphere也有好的评价。
作为JBoss JEMS(JBoss Enterprise Middleware System)应用开发架构中的一员,JBoss Portal完全支持JSR-168,它还包含了内容管理功能,并支持JavaServer Faces, MyFaces和Spring等Java开发技术。
开源组织Apache早在JSR-168 标准之前就有一个Jetspeed-1 Portal软件,当JSR-168出来之后,又推出符合该标准的Pluto容器,并以此建立了Jetspeed-2 Portal服务软件。
以Struts架构技术开发的Liferay Portal完全支持JSR-168和WSRP两个规范。Liferay Portal能够在多种应用服务器上运行,支持多种数据库系统,还提供基于CAS的单点登录(SSO)功能。
eXo platform建立在JSF架构下,提供了符合JSR-168和WSRP规范的Portlet容器,具有连接池和缓冲功能。eXo 提供的技术文档不够齐全,开发应用有一定难度。
GridSphere把网格计算技术应用到Portal产品中,以添加模块的方式建立了Portal架构。GridSphere 100%兼容JSR-168标准,内置了基于角色的访问控制(RBAC)功能,采用Hibernate技术连接任何数据库,支持包括中文在内的多种外国语。
(一)JBoss Portal
产品网址:http://www.jboss.com/products/platforms/portals
http://labs.jboss.com/jbossportal
技术资料:http://labs.jboss.com/jbossportal/docs/index.html
JBoss Portal是著名的红帽子(Redhat)公司所支助的JBoss开源产品系列中的一员。JBoss Portal支持多实例和群集功能,动态部署是其一大特性。但JBoss Portal提供的组件比较少,功能不够强,需要自己开发来扩展功能,其最大的局限是只能在JBoss应用服务器下使用。
1 技术架构
l JEMS:适应JBoss企业中间件服务功能(JBoss Application Server, JBoss Cache, JGroups, and Hibernate)。
l DB无关性:适用于所有Hibernate支持的关系数据库。
l SSO/LDAP:适应Tomcat和JBoss 单点登录(SSO)方案。身份认证架构适应于企业级LDAP。
l JAAS认证:通过JAAS模块来配置认证。
l 缓冲技术:利用渲染显示缓冲技术改善性能。
l 群集能力:支持群集功能。
l 热部署:适应JBoss自动动态部署特性。
l SAR安装器:浏览器方式的安装器提供快速安装和初始配置。
2 支持的标准
l Portlet技术规范和API 1.0 (JSR-168)
l Java内容存储API(JSR-170)
l Java Server Faces(JSF)1.2(JSR-252)
l Java Management Extension(JMX) 1.2
l 远程Portlet的Web服务(WSRP) 1.0
3 Portal和Portal容器
l 能够在一个Portal容器上同时运行多个Portal实例。
l Portlet内部通信接口能够使Portlet连接到其它对象如页面,Portal或窗口。
l 管理员和用户能够在运行时建立和撤销对象如Portlet,页面,主题和外观等。
l 每个Portlet可以使用国际化资源文件。
l 由Servlet容器和JAAS执行的身份认证能够切换认证方式。
l 允许Portlet分组按类展现在Portal页面上。
l Portlet支持Struts, Spring MVC, Sun JSF-RI, AJAX和MyFace架构。
4 主题和外观
l 易于切换的主题和外观:包含图片的新主题和外观可以WAR包形式部署。
l 灵活的开发接口:主题和外观接口API能够把业务层和展示层分离。
l 按页面定义外观:不同的页面可以使用不同的外观样式。
5 用户和群组功能
l 用户注册和验证:可配置的注册参数允许使用电子邮件地址验证用户。
l 用户登录:可以使用Servlet容器进行身份认证。
l 建立和编辑用户样式:管理员能够建立和编辑用户的样式。
l 建立和编辑角色:管理员能够建立和编辑角色。
l 角色分配:管理员能够给用户分配角色。
6 权限管理
l 可扩展的访问许可接口:允许根据角色定义配置Portlet的访问许可。
l 管理接口:允许在任何时候把部署的Portlet、Portal页面或Portal实例的访问许可分配给角色。
7 内容管理
l 兼容JCR规范:使用Apache Jackrabbit内容管理器。
l 支持数据库或文件系统存储能力:可配置使用文件系统或关系数据库来存储Portal内容。
l 支持外部搏客功能:External Blob Support: 可以配置使用文件系统存储大量搏客内容,而搏客节点、引用和属性则保存在关系数据库中。
8 最小系统要求
l JDK 1.4以上
l 内存512 MB
l 硬盘100 MB空间
l CPU 400 MHz主频
9支持的操作系统
JBoss Portal支持所有能够使用Java虚拟机(JVM)的操作系统,包括Linux, Windows, UNIX, MacOS X。
10支持的Java应用服务器
JBoss Portal目前只支持JBoss应用服务器JBoss AS 4.0.5.GA和JBoss AS 4.2.0.GA。
11支持的数据库系统
JBoss Portal通过Hibernate来连接关系数据库,因此Hibernete所支持的数据它都能使用:
l MySQL 4.x.x (使用Java连接器3.0.16)
l MySQL 5
l PostgreSQL 8.x
l HypersonicSQL
l Derby
l ORACLE 9 和10g
l Microsoft SQL Server
l MaxDB
(二)Apache Jetspeed-2
产品网址:http://portals.apache.org/jetspeed-2/
技术资料:http://portals.apache.org/jetspeed-2/guides/index.html
Jetspeed-2是著名的Apache开源项目的一个企业级Portal产品,它建立在一系列Jetspeed版本的基础之上,完全符合JSR-168规范,安全性采取了基于JAAS标准的J2EE安全架构,支持分布群集功能。Jetspeed-2使用Apache Pluto作为Portlet容器,但摒弃了Jetspeed-1的Apache Turbine基础架构,采用了全新的Spring框架技术建立可伸缩的Portal系统。Jetspeed-2提供了比较完整的开发和使用文档,适用这可以借助常用的开发工具如Eclipse来开发可建立自己的Portal。遗憾的是Jetspeed-2 没有内置常用的Portlet组件,其次Portal页面定制功能不够强,没有“所见及所得”功能。因此,Jetspeed-2比较适合于有较强开发能力者进行二次开发来扩展应用。
1 标准化
l 完全符合Java Portlet API Standard 1.0 (JSR 168)
l 通过了JSR-168 TCK 兼容测试
l 建立在JAAS标准之上的J2EE安全特性支持LDAP验证用户身份。
2 Portal引擎特性
l 服务器端支持并行的JSR-168标准Portlet渲染
l Jetspeed桌面支持Web 2.0客户端的JSR-168标准Portlet渲染
l 完全支持JSR-168标准Portlet缓冲和对每个Portlet缓冲的配置
l Portlet定时追踪功能限制渲染时间
l Portlet服务管理器能够自动移除慢速的Portlet或僵死Portlet
3 定制特性
l 可定制Portal页面
l 可定制Portal桌面
l 可定制循环片段
l 拖拉式移动Portlet
l 可设定Portlet窗口大小
l 按类选择Portlet,可全文检索Portlet
l 可定制主题(外观)
4 安全性
l 建立在安全一致性或安全许可上的Portlet级安全性检查
l 声明式安全一致性和JAAS数据库安全策略
l 支持完全可切换式安全一致性或安全许可
l Jetspeed的单点登录(SSO)
l 安全代理功能
5 支持分布式集群
l Portal分布式部署在多个应用服务器平台上
l Portal部件的分布式缓冲
l Portlet缓冲的分布式失效
6 基础架构
l 建立在Spring上的部件和可扩展架构
l 可配置的管道请求处理器
l Portlet应用自动部署
l Jetspeed部件提供Java API接口
l 提供AJAX的XML API接口
l 扩展的Portlet现场标记语言(PSML)
l 支持数据库持久化
l 内容管理功能
l 安全一致性
l 完全支持LDAP的安全验证
7 Portal内核特性
l 提供运行时Portlet接口标准基于角色的安全特性
l Portal内容管理和导航支持页面、菜单、目录和连接
l 提供基于规则的页面和资源定位配置
l 基于角色的可视页面聚合功能
l 支持大多数流行数据库系统如Derby, MySQL, MS SQL, Postgres, ORACLE, DB2
l Portal资源提供12种本地化语言
l 具有统计功能的日志机制
l 使用Lucene实现Portlet资源的全文检索
l 用户注册管理和密码找回功能
l 丰富的登录和密码配置管理
l 可定制的Portlet模式和窗口状态,支持Portlet打印模式和窗口的solo状态
l 提供对用户、角色、群组、密码和用户配置文件管理
l Portal场景管理器
l 远程Portal应用部署器(RPAD)可以热部署远程web上的Portlet应用
l JSR-168外观和用户属性编辑器
l 单点登录管理器
l 权限许可管理(JAAS安全性)
l 安全一致性管理
l Portlet应用和生命周期管理
l 用户配置文件管理
l 统计报告
8 支持Web架构提供样板Portlet
l 支持Web架构JSF,Struts,PHP,Perl和Velocity
l 提供样板Portlet:RSS,IFrame,Calendar XSLT,Struts Petstore,Bookmark,Database Browser
l 集成了显示标记和Spring MVC架构
9 数据转换特性
l 提供转换所有Jetspeed数据库数据的XML导入/导出工具
l Portal的全部初始数据是XML格式
l 提供全部XML内容的XML样板文件
10 Portal设计特性
l 使用CSS部件部署Jetspeed的Portlet和页面样式
l 可配置的CSS页面外观
l 样式和外观部件定义使用Velocity宏语言
11 开发工具
l 使用自动化的Maven-1和Maven-2软件来建立
l 提供客户开发Jetspeed-2的Maven插件
l 自动部署Portlet应用和Portal资源
12 部署工具
l 插件集成了自动部署功能
l 提供PSML、jetspeed-Portlet.xml和Jetspeed XML的模板
13 支持的数据库系统
缺省配置使用Derby数据库,支持任何符合JDBC2.0驱动器规范的数据库:
l Derby
l HSQLDB - Hypersonic SQL
l MySQL
l ORACLE
l POstgres
l DB2
l Sybase
l SQL Server
14 支持的应用服务器
要求Servlet 2.4版本以上的应用服务器:
l Tomcat 5.5.x
l Jetty
l Websphere 6.0
l Geronimo
l JBoss
l Weblogic
15 运行要求
使用者需要熟悉Apache Maven项目管理工具和Apache Ant脚本工具。要求使用以下软件:
l Ant 1.5以上版本
l Maven 1.0.2
l Java 1.4.2_02以上版本
l Servlet 2.4版本以上的应用服务器
(三)Liferay Portal 4.3
产品网站:http://www.liferay.com/
技术资料:http://wiki.liferay.com/
Liferay Portal自称是全球领先的开源企业级门户软件,应用了最新的Java、J2EE和Web 2.0等技术,其前台界面部分利用Struts 框架技术,基于XML的Portlet配置文件可以自由地动态扩展功能,使用Web服务支持远程信息的获取,利用Apahce Lucene实现全文检索功能。
Liferay Portal安装简单,技术文档相对齐全。对于简单的应用通过使用系统内置的工具进行配置和管理,就可以直接投入实际使用而无需编码。Liferay Portal的未来发展把ESB和SOA集成进来,因此更适合于企业级使用。
Liferay Portal的主要特性:
l 运行在大多数主流应用服务器和Servlet容器,数据库和操作系统之上
l 符合JSR-168标准
l 内置60多个适用的Portlet
l 内置了内容管理器(CMS)
l 带有协同套件
l 为所有用户提供个性化页面
l 提供单一登录接口,多认证模式(LDAP或SQL)
l 管理员能通过用户界面轻松管理用户,组,角色
l 支持包括中文在内的多种语言
l 经过严格的安全测试
1、技术指标
(1)应用服务器:
l Apache Geronimo 1.1
l Sun GlassFish 2.0
l JBoss 4.x
l ORACLEAS 10.1.3
l SUN JSAS 8.01
l WebLogic 8.1 SP4, 9.2
l WebSphere 5.1, 6.0.x
(2)Servlet容器:
l Tomcat 5.0.x/5.5.x
l Resin 3.0.14
l Jetty 5.1.4
(3)数据库:
l IBM DB2
l Informix
l InterBase
l MySQL
l ORACLE
l SAP
l SQL Server
l Sybase
(4)操作系统:
l AIX
l LINUX
l SOLARIS
l WINDOWS
l MAC OS
(5)支持的语言:
l 22种主要语言包括简体中文和繁体中文
2、技术架构
(1)用到的技术:
l Apache ServiceMix
l ehcache
l Hibernate
l ICEfaces
l Java J2EE/JEE
l jBPM
l JGroups
l jQuery JavaScript Framework
l Lucene
l MuleSource ESB
l PHP
l Ruby
l Seam
l Spring & AOP
l Struts & Tiles
l Tapestry
l Velocity
(2)支持的标准:
l AJAX
l iCalendar & Microformat
l JSR-168
l JSR-127
l JSR-170
l OpenSearch
l JSON
l Hessian
l Burlap
l REST
l RMI
l WSRP
l WebDAV
3、体系架构
4、应用架构
l 面向服务(SOA)—— Liferay应用了SOA 设计理念为企业应用提供了扩展SOA的工具和框架。
l 提供可插入ServiceMix ESB,也支持Mule ESB。
l 支持Web服务,简化不同应用之间的通信联系。
l 支持AJAX技术
l 安全性——Liferay使用了工业标准的政府级加密技术如DES、MD5和RSA。
l 单点登录(SSO)——支持使用耶鲁大学的CAS、SUN的JAAS、LDAP、Netegrity、微软Exchange进行用户验证。缺省集成了CAS。
l 支持群集和高可靠性应用。
l 支持对静态内容的页面缓冲提高了Web性能。
5、内置Portlets
(1)门户管理类:
l Admin Portlet :显示Liferay Portal版本、企业信息(组织机构名称、地址等)、有效的Portlets、当前活动Session、认证属性、LDAP配置、新用户属性等。
l Enterprise Admin Portlet :允许授权用户管理用户、组织机构、场所、群组、角色、权限等。
l Page Settings : 管理页面、修改页面外观、设置用户URL等。
(2)内容管理类:
l Alfresco Content :集成了Alfresco 内容管理器,内置对HTML内容的浏览和发布、在线编辑内容、管理图像和内容、预览未发布内容等。
l Document Library :提供了符合JSR-170标准的Jackrabit Java内容存储管理器管理文档资料。
l Journal :Liferay集成Web发布系统的主接口,允许用户建立、编辑和发布文章。
l Journal Articles :显示社区所有动态文章列表。
l Journal Content :在页面上发布任何CMS中的文章。
l Journal Content Search :检索CMS中的内容。
l Recent Documents :显示最新文档库中的文章。
l Breadcrumb :显示当前页面的父页面,作导航用途。
l Navigation :提供门户页面结构的连接目录。
l Site Map :显示门户所有页面的结构目录。
(3)协同类:
l Blogs :提供博客服务,具有分类和所见即所得编辑功能。
l Calendar :显示日历信息,用户可以建立、管理和检索事件。
l Enterprise Instant Messaging :提供用户即时通信(聊天)的客户端。
l Mail :Web电邮客户端,适用于任何电邮服务器。
l Message Boards :提供论坛功能。
l Wiki : 提供威客功能。
(4)社区类:
l Announcements :提供公告功能。
l Bookmarks :提供收藏夹功能。
l Communities :用来建立和管理新的门户社区和社区的用户群。
l Directory :所有注册用户信息列表。
l Polls :提供投票功能。
(5)个人工具类:
l Financial Tools :金融财务计算器。
l Google Portlets :提供Google检索功能。
l News and RSS :动态获取互联网新闻。
l Weather :通过互联网获取并显示城市的天气情况。
l Other Tools :包括模拟钟表、美国区号查询、词典、语言选择、密码生成器、信息检索、单位换算等。
(6)开发工具类:
l Prototype Portlets :提供了几个样板Portlet 实例,包括Flash、JSP、Struts等。
l WSRP :提供访问其他门户的Portlet。
l Workflow :用于管理工作流。
6、许可协议
Liferay采用的是麻省理工学院的软件许可协议。
转自:http://neujingxiao.blog.163.com/blog/static/51394720087735039741/