jetspeed
综述
Apache开源组织的企业门户项目,现有两个版本:jetspeed1与jetspeed2。由于jetspeed1在设计上的“缺陷”,现在已经升级到jetspeed2。目前大陆还没有成功使用jetspeed2开发的案例。
1 Jetspeed介绍
Jetspeed是Apache组织开发的一个采用Java和XML的开放源代码的企业信息门户的实现。门户可以让终端用户可以很方便的访问网络资源(应用、数据库等)。用户可以通过Web浏览器、WAP手机、寻呼机以及其它一些智能设备来访问Portal。Jetspeed就像是中心的控制器,可以很方便地以各种形式展示那些来自不同数据源的数据。
通过Jetspeed展示的数据形式完全独立于内容的类型。这就意味着Jetspeed可以集成各种各样的数据源,如:XML、RSS、SMTP。然后通过XSL技术将数据组织成Jsp页面或Html页面传给客户端。Jetspeed还支持模板和内容的发布框架,比如:Cocoon, WebMacro 和 Velocity。
2 Jetspeed框架结构和核心技术
Jetspeed采用Turbine做主要的框架支持,Turbine为Jetspeed提供用户认证、页面布局管理和计划服务等。Portlet可以直接使用Turbine服务提供的RunData对象。
Jetspeed向用户展示的页面由Turbine控制产生,它的主要内容部分由一些标准的Portlet构成。
Portlet设计的目标是:
◇ 一个页面上可以提供很多小的WEB应用程序给用户;
◇ 这些WEB应用程序的背景色、标题栏颜色、图标都可以更换;
◇ 可以用缓冲子系统维持跨多个Portlet的应用;
◇ 可以对所有的WEB应用程序进行管理、维护,并提供给用户;
◇ 简单的选择就可以让用户定制页面,这些页面除了一个页面可以显示多个Portlet之外,和Turbine的显示页面很相识;
◇ 由于缓冲子系统的存在,使得系统可以快速运行。这使得即使要和数据库打交道得复杂Portlet也可以快速生成Html页面;
◇ 很容易开发整个系统,开发人员不必知道整个Jetspeed的运行机制。
◇ Portlet可以通过多种方式形成页面。可以通过JDBC从数据库记录产生页面;可以通过XML—>XSL—>HTML产生页面;可以通过其它途径如CoCoon形成页面;
◇ Portlet允许对它的显示风格进行定制,比如背景色、尺寸等。
◇ Portlet通过PortletController来管理。这个PortletController是标准接口的实现,开发者可以定制它们;
◇ Portlet交给PortletControl来处理,PortletControl给Portlet加上显示风格后返回Portlet的内容;
◇ Jetspeed内通过XML标记文件分类管理Portlet;
◇ Portlet接受一个PortletConfig参数,这个参数中包括Url地址和一些参数的哈希表;
◇ 大多数简单的Portlet可以通过继承AbstractPortlet来实现。
3 Jetspeed的安装与配置
Jetspeed实际上是一个采用了Portlet技术的WEB应用程序,我们可以象部署普通WEB应用程序一样来部署Jetspeed。
安装配置步骤:
a.下载并安装Tomcat;
b.下载Jetspeed war包,并拷贝到Tomcat的webapp目录;
c.启动Tomcat,在浏览器中输入http://localhost:8080/jetspeed/;
d.以上已经可以正确运行Jetspeed。
进入Jetspeed系统可以使用Login: turbine Password: turbine;Login: admin Password: jetspeed。
要注册新的用户必须安装邮件服务器James,邮件服务器设置在/webapps/jetspeed/WEB-INF/conf/TurbineResources.properties中修改。
e.数据库配置
Turbine目前可以通过JDBC连接以下数据库:
· Hypersonic SQL
· MySQL
· Postgres
· DB2
· Oracle
· Sybase
· SQL Server
数据库的配置信息在
/webapp/WEB-INF/conf./Torque.properties文件中修改。
具体配置的例子如下:
======MySQL:数据库配置如下======
· torque.database.default.adapter=mysql
· torque.dsfactory.default.connection.driver = org.gjt.mm.mysql.Driver
· torque.dsfactory.default.connection.url = jdbc:mysql://localhost:3306/jetspeed
· torque.dsfactory.default.connection.user = root
· torque.dsfactory.default.connection.password =
======Oracle:数据库配置如下======
· torque.database.default.adapter=oracle
· torque.dsfactory.default.connection.driver = oracle.jdbc.driver.OracleDriver
· torque.dsfactory.default.connection.url = jdbc:oracle:thin:@:1521:
· torque.dsfactory.default.connection.user =
· torque.dsfactory.default.connection.password =
4 Jetspeed的主要组成部分
4.1 注册机制
Jetspeed的注册登记部分存储了Jetspeed引擎中大多数的动态配置信息,其中包括所有可提供的Portlet的登记信息、布局信息登记、用户自定义信息等。
Jetspeed的注册机制采用可插入的Turbine服务体系。因此可以根据自己的需要采用不同的实现。现有两个已提供的默认实现:基于XML文件的实现;基于OJB 的SQL数据库的实现。
4.2 安全机制
Jetspeed安全服务基于以下一些组件接口:PortalAuthentication,PortalAccessController,UserManagement,RoleManagement,GroupManagement,PermissionManagement,CredentialsManagement。这些组件接口都是可插入的。Jetspeed提供了这些接口的一个或多个默认实现,大多数这些实现都是基于数据库的安全机制。安全服务和Portal Server中的一些标准的基础安全对象接口一起工作。这些安全对象包括:JetspeedUser、Role、Group、Permission。
4.3 内容整合
能够支持内容整合是Portal和普通WEB网站、普通WEB应用之间相比最大的优势。Jetspeed中的内容整合是通过OCS(Open Content Syndication)来支持的。Jetspeed同样也支持RSS(Rich Site Summary)。
OCS和RSS都是基于XML的应用程序,用来支持页面的部分共享、频道列表、公共标题栏等实现。
4.4 WAP
Jetspeed支持WAP(Wireless Application Protocol)。这项技术使得用户可以通过移动终端来访问Portal页面,可以进行多应用程序的简单集成和页面组织。Portlet可以将页面的形式以WML来表示。Jetspeed目前支持WML 1.1和1.2标准。
4.5 个性化定制
支持个性化定制是Portal的另一大优点。Jetspeed可以让用户很容易的进行个性化定制。用户可以很方便创建页面,为每一个页面选择具体的Portlet内容、页面布局、显示风格。
用户个性化必须在系统权限允许的范围内进行。
4.6 缓冲机制
为了让Jetspeed更好的支持远程内容的显示和内容的发布,必须采用缓冲机制。
4.7 PSML
PSML(Portal Structure Markup Language)使得在Jetspeed内允许内容组织和提取。PSML由两部分有关联的标记部分组成。
registry markup:描述Jetspeed引擎内可提供的资源;
site markup:描述在用户的页面中显示了哪些Portlet,是怎么组织的,需要那些显示属性。