Jetspeed2 Portal架构及运行机制分析.docx
《Jetspeed2 Portal架构及运行机制分析.docx》由会员分享,可在线阅读,更多相关《Jetspeed2 Portal架构及运行机制分析.docx(15页珍藏版)》请在三一办公上搜索。
1、项目产品标示及版本_类型标示_文档简称密级JETSPEED2 Portal架构及运行机制分析版本All Rights Reserved yyyy-mm-dd修订历史记录及确认表日期版本阶段说明作者批准人目录一、APACHE门户项目组整体架构1二、JETSPEED 和 SPRING2三、JETSPEED-2工作流程4四、PIPELINE6五、CONTAINER8六、JETSPEED PORTLET 扩展服务9、Apache门户项目组整体架构在分析JETSPEED内核之前,我们有必要了解清楚整个Apache门户项目组的组成项目。其中包 括:Jetspeed-1/2,Bridges,Pluto,WS
2、RP-4J 和 Graffito0Jetspeed-1和Jetspeed-2角色相同,我们接下来所有Jetspeed都是指Jetspeed-2。JEE Web Contaitier(S up ported Servlet 2、3 and above)图1-1 apache门户项目架构图上图中粉红色包围部分为Apache门户项目,其它由土黄色包围部分为它们的依赖项目。通过上图 可以很清楚看到,全部项目都构建在JEE Web Tier上,理论上只要支持Servlet 2.3或以上版本规 范的Web容器,都可以作为Apache门户项目的基础平台,但Jetspeed官方其实仅仅声明Tomcat 是其唯
3、一支持的Web容器。另一块必要的依赖,是构建在O/R mapping项目Apache OJB之上的 数据仓库,用于存放Portal系统信息和用户个性化配置(Profile)oPortals Bridges项目其本质就是由一组类库构成的轻量级框架,通过该桥接器框架可以在门户上支 持众多流行的Web框架,如上图括号中所列举。用户通过它可以很容易的将已有的基于这些流行 Web框架的Web应用程序,通过少量的修改和配置,作为Portlet应用程序发布单元发布到Portal 上。这个项目不但在Jetspeed上取得的成功,还被众多开源的,甚至商用的门户实现所使用,如 JBoss Portal,GridS
4、phere Portal,Stringbeans Portal,Vignette Application Portal,ApacheCocoon Portal 和 Jetspeed PortaloJetspeed项目是整个Apache Portal项目组的核心,它是一个功能完备的,易于扩展的企业级 Portal 实现。Pluto是Jetspeed默认的本地Portlet Container实现,它是一个完全符合JSR-168规范的Portlet 容器实现,其前身为旧M捐赠的源代码,因此我们至今还能够在WebSphere Portal 5.1.1中看到它 的身影。这里要注意本地的意思是指运行在该
5、Portlet容器里的Portlet应用程序在物理上与Portal 在同一个JVM进程中。WSRP-4j是WSRP规范的JAVA实现,它可以提供类似Html IFrame这样速成的内容抓取能力。Graffito是用于构建内容管理应用程序的框架,从它自身的架构设计上来看应该是一个独立平台,但 事实上该项目复用了大量Jetspeed的模块,并且其表现层为发布到Jetspeed上的几个Portlet应用 程序。二、Jetspeed 和 SpringJetspeed架构体系最大特点,也是其高度可订制的根基就是,它选用著名开源POJO框架Spring 作为其底层实现。下图简单描述了目前Jetspeed对
6、Spring的依赖关系:Jetspeed使用到的Spring组件Apache OJB O/R Mappersand the ApplicationContextApache OJB O/R MappersBeans, BeanFactory and the ApplicationContext图2-1Spring FrameworkDeclarative transaction managementBeans BeanFactory and the ApplicationContextJetspeed 主要使用了 Spring 最核心的 IoC 引擎 BeanFactory 和 Applica
7、tionContext,管理所有 Jetspeed Components的生命周期和依赖关系,所有这些组件的Spring声明全部定义在名为assembly的文件夹中的XML文件里。如果第三方开发者认为默认的Jetspeed组件不足以满足要 求,只要按照自己需求编写Jetspeed Component的Interface的实现类,然后修改Spring Bean XML定义,就可以轻易替换掉默认的实现。例如:Jetspeed SearchEngine Component Definition$applicationRoot/WEB-INF/search_indextrue Jetspeed在实现过
8、程中遵循着面向接口编程的最佳实践,上面中的Bean id为 org.apache.jetspeed.search.SearchEngine,事实上这是一个 SearchEngine 定义在核心 jetspeed- api 组件中的接口,org.apache.jetspeed.search.lucene.SearchEnginelmpl 为该接口的实现类,这 个类定义在components/search组件中,后面的内容就是SearchEngineImpl的构造函数的输入参 数,注意最后一个参数 org.apache.jetspeed.search.HandlerFactory 也是一个 Jav
9、a Interface 的接 口。Spring在实例化SearchEngine的时候,会首先分析它的构造函数参数是否已经全部满足条件 (实例化),Spring会根据搜索bean id 为 org.apache.jetspeed.search.HandlerFactory 的 bean,如 果已经实例化就直接注入到SearchEngineImpl的构造函数调用里;如果没有就实例化这个bean之 后,再注入。Apache OJB O/R Mappers由于Spring对Apache OJB提供良好的支持,因此Jetspeed中与数据库相关的功能基本上都用过 Spring 的 Persistence
10、BrokerDaoSupport 实现。这些组件包括:Capablity、 DatabasePageManager、Pipeline、Preferences Profiler、Registry、Security、SSO 等。O/R Mapping的信息定义在上面这些组件jar包中的JETSPEED-INF/ojb/%component name%_repository.xml文件中,其中%component name%需要用组建名称替代。Declarative transaction management在 Jetspeed 中,它采用 了 Spring 的 declarative trans
11、action 机制,下面一段 XML 定义 了 SSOProvider的事物管理:Declarative TransactionJETSPEED-INF/ojb/sso_repository.xml org.apache.jetspeed.sso.SSOProvider PROPAGATION_REQUIREDPROPAGATION_REQUIREDPROPAGATION_REQUIREDPROPAGATION_REQUIREDPROPAGATION_REQUIREDPROPAGATION_REQUIREDPROPAGATION_REQUIREDPROPAGATION_SUPPORTS由上图可
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Jetspeed2 Portal架构及运行机制分析 Portal 架构 运行机制 分析
链接地址:https://www.31ppt.com/p-4885689.html