Linux中国 Linux中国门户站!
设为主页 设为主页
收藏本站 收藏本站
 
当前位置 :首页 ->Linux技术 ->Linux安全 ->正文

Apache 门户项目组介绍

来源:IBW DW中国 作者:廖 健  时间:2007-04-22 点击: [收藏] [投稿]
是Jetspeed默认的本地 Portlet Container实现,它是一个完全符合JSR-168规范的Portlet容器实现,其前身为IBM捐赠的源代码,因此我们至今还能够在 WebSphere Portal 5.1.1中看到它的身影。这里要注意本地的意思是指运行在该Portlet容器里的Portlet应用程序在物理上与Portal在同一个JVM进程中。

WSRP-4j是WSRP规范的JAVA实现,目前该项目还处在孵育状态,尚未吸引到足够多的开发者的兴趣。其实,我个人认为这是一个很有前途的技术发展方向,它可以提供类似Html IFrame这样速成的内容抓取能力。Jetspeed已经为WSRP-4j预留了远程Portlet Container的配置选项。

Graffito是用于构建内容管理应用程序的框架,从它自身的架构设计上来看应该是一个独立平台,但事实上该项目复用了大量Jetspeed的模块,并且其表现层为发布到Jetspeed上的几个Portlet应用程序,因此,我在上面的架构图中,将它放在了Jetspeed之上。该项目目前也处在孵育状态下,由于其该项目目前不太活跃,那几个Portlet应用程序都有些小问题。

企业级的门户实现--Jetspeed

产品特性

标准

  • 完整兼容Java Portlet API标准1.0(JSR-168)
  • 通过JSR-168规范兼容性测试
  • 基于JAAS标准的认证和授权服务(默认支持数据库的实现)
  • 基于LDAP的用户认证

体系架构

  • 基于Spring Framework的组件架构
  • 灵活可配置的请求通道(通过Spring Bean XML配置)
  • Portlet应用发布单元热部署
  • Jetspeed AJAX XML API(基于著名的开源AJAX Framework - DOJO)
  • 扩展的Portlet页面结构语言(支持持久化到文件或数据库)

门户核心特性

  • 声明风格的安全约束
  • 基于角色的Portlet安全方面的API
  • 门户内容管理和导航,包括页面、菜单、文件夹和超链接
  • 单线程或多线程的内容聚合引擎(通过Spring Bean可以轻易切换)
  • 高度可扩展的Jetspeed 单点登陆服务框架
  • 基于权限和规则的门户页面和资源定位配置
  • 支持所有主流的数据库,包括:Derby、MySQL、MS SQL、Postgres、Oracle、DB2、 Hypersonic
  • 不依赖客户端类型的capability engine (html, xhtml, wml,vml)
  • 多语言支持(12国语言,包括简体中文和繁体中文),而且完全可扩展
  • 完整的性能统计日志引擎
  • 利用著名开源搜索引擎Lucene提供对所有门户资源的全文本检索和元数据搜索服务
  • 用户注册服务和忘记密码的邮件通知服务
  • 丰富的登陆密码配置策略

门户管理

  • 用户,角色,用户组,密码和Profile管理
  • JSR 168协议规范定义的用户属性编辑器
  • 门户页面管理
  • 单点登陆服务管理
  • Portlet应用程序管理
  • Profiler管理
  • 门户性能统计报告

对Web框架的支持和例子Portlets

  • 通过Bridges项目支持几乎所有的主流Web Framework与Jetspeed门户的整合,包括:JSF(Sun的标准JSF实现和Apache MyFaces)、Apache Struts、PHP、Perl、Velocity
  • 例子Portlet包括:RSS、IFrame(通过Jetspeed SSO API还可以支持SSO效果)、日历、书签。
  • 支持Spring MVC

用户个性化

  • 门户页面管理
  • 页面用户定制(包括增删查改门户页面,页面的风格,Portlet框体风格,Portlet的位置,Portlet的布局等等)
  • 支持两种门户定制风格,包括传统的基于页面刷新的风格和基于AJAX技术的风格

门户设计

  • 支持Portlet和Portal页面皮肤的打包发布
  • 基于CSS技术的可配置布局
  • 支持Velocity模版引擎

门户开发工具

  • 支持Maven 1.x和Maven2.0.x,部分功能支持Ant脚本
  • 支持通过Maven插件生成自定义门户基础框架
  • 热部署Portlet应用发布单元和门户资源
  • 支持通过API调用的方式部署Portlet应用发布单元
  • 支持Eclipse3.2.x开发环境

应用服务器

  • Apache Tomcat 5.0.x
  • Apache Tomcat 5.5.x
  • IBM WebSphere Application Server 5.1/6.0
  • JBoss
  • Geronimo 1.0(非官方支持,详见:JS2-444)

架构体系

本节将从Jetspeed和Spring的关系,运行时架构以及Jetspeed service架构这三方面详细介绍Jetspeed的架构体系。

Jetspeed和Spring

Jetspeed架构体系最大特点,也是其高度可订制的根基就是,它选用著名开源POJO框架Spring作为其底层实现。在项目之初, Jetspeed的开发者们也面临着Spring和PicoContainer的抉择,但事实证明当初的选择是正确的,因为随着Spring不断成长完善,Jetspeed的组件架构也跟着收益良多。从另一个角度来看,Jetspeed也可以作为利用Spring构建自己产品架构的经典范例,值得我们考察和学习。

下图简单描述了目前Jetspeed对Spring的依赖关系:


图二 Jetspeed使用到的Spring组件
图二 Jetspeed使用到的Spring组件

Beans BeanFactory and the ApplicationContext

Jetspeed主要使用了Spring最核心的IoC引擎BeanFactory和ApplicationContext,管理所有 Jetspeed Components的生命周期和依赖关系,所有这些组件的Spring声明全部定义在名为assembly的文件夹中的XML文件里。如果第三方开发者认为默认的Jetspeed组件不足以满足要求,只要按照自己需求编写Jetspeed Component的Interface的实现类,然后修改Spring Bean XML定义,就可以轻易替换掉默认的实现。例如:

 如果您对本文有任何疑问或者建议,请到讨论区发表您的意见: >> 论坛入口 <<



上一篇:LVM 五分钟教程   下一篇:深入Linux PAM 体系结构

文章评论】 【收藏本文】 【推荐好友】 【打印本文】 【我要投稿】 【论坛讨论
更多相关文章
Power by linux-cn.com 粤ICP备05006655号