个人对portal和portlet开发的认识

简介:

虽然是以前的一篇文章,不过,知识不是过时的,特别是最近html5的火热发展,还是拿出来给大家分享一下,希望对于正在研究Portal和做Web开发的朋友能有所帮助。

通过这一段时间的学习,自己从对portal和portlet一无所知,变得对其逐渐有所认识。特总结如下,供大家参考。

一.关于Portal

     什么是portal?Portal 一词是在 Internet 的发展中提出来的,原意为“门户网站”即是人们上网后想要访问的第一个网站,例如雅虎、搜狐这类网站。在这个阶段, Portal 还是作为一个面向广泛群体的信息平台,把人们所需要的各种信息(或者访问这类信息的途径)聚合在一起,是一个信息集中平台。很快企业应用中也开始采用 Portal 这个概念,根据 Portal 在企业应用中的不同作用,业界对 Portal 有着不同的定义如企业信息门户、知识门户、专业门户、应用门户等等。随着时间的推移,业界对 Portal 的定义趋向一致,也就是在 JSR168 对 Portal 的定义

    Portal作为web一种应用,通常用来提供个性化、单次登录、聚集各个信息源的内容,并作为信息系统表现层的宿主。聚集是指将来自各个信息源的内容集成到一个web页面里的活动

1. Portal的功能可以分为三个主要方面:

A. Portlet容器:Portlet容器与servlet容器非常类似,所有的portlet都部署在portlet容器里,portlet容器控制portlet的生命周期并为其提供必要的资源和环境信息。Portlet容器负责初始化和销毁portlets,向portlets传送用户请求并合成响应。

B. 内容聚集:Portlet规范中规定portal的主要工作之一是聚集由各种portlet应用生成的内容,我们将在“如何创建Portal页面”部分对此做进一步讨论。

C. 公共服务:portlet服务器的一个强项是它所提供的一套公共服务。这些服务并不是portlet规范所要求的,但portal的商业实现版本提供了丰富的公共服务以有别于它们的竞争者

2. 在大部分实现中都有望找到的几个公共服务有:

A. 单次登录:只需登录portal服务器一次就可以访问所有其它的应用,这意味着你无需再分别登录每一个应用。例如一旦我登录了我的intranet网站,我就能访问mail应用、IM消息应用和其它的intranet应用,不必再分别登录这些应用。 

B. Portal服务器会为你分配一个通行证库。你只需要在mail应用里设定一次用户名和密码,这些信息将以加密的方式存储在通行证库中。在你已登录到intranet网站并要访问mail应用的时候,portal服务器会从通行证库中读取你的通行证替你登录到mail服务器上。你对其它应用的访问也将照此处理。

C. 个性化:个性化服务的基本实现使用户能从两方面个性化她的页面:第一,用户可以根据她的自身喜好决定标题条的颜色和控制图标。第二,用户可以决定在她的页面上有哪些portlets。例如,如果我是个体育迷,我可能会用一个能提供我钟爱球队最新信息的portlet来取代股票和新闻portlets。

3. Portal的三个特点

A. Personalization (个性化):用户自己定制自己所需页面        

B. Single sign on(单点登陆):一处登陆,处处通行        

C. Content aggregation(内容聚合):不同来源的信息整合到一个页面   

         如图,是一个一般portal门户的应用。                                           

    

 

          而我们的门户(指我当时所在的项目)的最主要功能是实现集成。主要是把十个子系统和五个应用系统集成到XX项目的门户主页中。在门户中,通过点击不同的系统菜单(如下图),

 

进入不同的子系统中。具体是实现可以基于LADP。我们采用Portal系统独立存在的LDAP,由这个LDAP验证Portal系统用户的合法性,一旦验证通过,用户就登录进Portal系统。然后用户在给定权限的各个业务系统Portlet中存储在各个业务系统中的用户信息,Portal系统会统一管理这些信息,然后自动到各个业务系统的用户信息库中校验,一旦通过校验,该portlet就能显示业务系统的授权信息。

二.关于portlet

           什么是portlet?通俗来说,Portlet就是一个Portal门户上面的一个一个子窗口。从用户的角度来看,Portlet 是门户网站站点中提供特定服务或信息(例如,提供日历和新闻)的窗口,而从应用程序开发者的角度来看,Portlet 是可插入的模块,它们被设计成在门户网站服务器的Portlet 容器中运行。

    如下,就是一个简单的portlet:

 

            

             

在我们这个项目中,主要是把几个子系统及其相关应用封装成一个个的portlet,然后添加到portal中,进行统一的布局管理。现在的主要问题就是,怎样把不同的子系统封装成portlet,这需要首先给不同的子系统定义一定的接口规范,然后才有利用以后的改造封装。

Portlet的开发主要使用Rational Application Developer。在这个工具上使用开发出portlet以后可以发布到Webspher Portal Server 上。

 

三.关于Portal主题与皮肤开发

            Portal的主题与皮肤开发说穿了还是普通jsp的开发,只不过大量使用了ibm自带的标签库,开发起来显得比较麻烦。但是,如果您深刻洞悉了与主题、皮肤相关的这几个文件之间的调用关系,使用起来就能运用自如了。IBM WebSphere Portal 使用不同的 Java Server Page(JSP)、级联样式表(Cascading Style Sheet,CSS)和图像来显示门户页面。它使用位于X:\WebSphere\AppServer\installedApps\YourComputerName \wps.ear\wps.war 目录下 themes、skins 和 screens 目录中的 JSP 来构造门户页面。这些目录中的每一个都包含 html、wml 和 chtml 子目录,WebSphere Portal 将它们用于服务不同客户机,例如桌面浏览器和移动设备。

1、Default.jsp:

所有屏幕聚集都从 Default.jsp 开始。用于缺省主题的 Default.jsp 位于wp_root\app\wps.ear\wps.war\themes\html。这个 JSP 包含其它用于显示标题、公司徽标、工具栏的 JSP 以及用于往可用位置及页面植入内容的 JSP。在 Default.jsp 的末尾处,screenRender JSP 标记选择被请求的屏幕(例如 login 或 forgotpassword)。以下介绍的jsp是以这样的顺序先后调用的。

2、Head.jsp

Head.jsp 生成标题并嵌入指向样式表文件的链接。它还定义了支持 BIDI(双向)文本所需的变量。这个 JSP 的内容将在这里描述。您也可以通过<title></title>在这里定死portal网站的标题,这比IBM公布的以标签的方式写来的容易,也更易使用。如果您开发了多套主题,而且这几套主题的page title如果也一样的话(除了虚拟门户,一般是这样子),您可以把这几个文件放到themes/html的根目录下,其他主题的default.jsp都来调用这个文件就可以了。

3、AdminLinkBarInclude.jsp

        AdminLinkBarInclude.jsp主要用来显示了“新建页面”、“编辑页面”、“分配页面许可权”三个标签

4、ToolBarInclude.jsp

ToolBarInclude.jsp 显示欢迎消息以及为用户提供的链接工具栏。门户网站上显示什么样的链接工具栏取决于用户上下文。例如,登录的用户看到“我的门户网站”、“管理”(尽管理员可见)、“编辑我的‘概要文件’”、“注销”等之类的链接;而注销的用户看到 “忘记密码”、“登录”、“帮助” 之类的链接。

5、PlaceBarInclude.jsp

PlaceBarInclude.jsp用来显示一级菜单,即“首页”、“文档管理器”、“公司概况”、“业务简介”等,属于最高层的目录,您在任何一个一级菜单上都可以通过“新建页面”来创建二级菜单,你创建的内容将被存储到数据库(原始使用的是cloundscape),您也可以把它倒入到db2、oracle等任何一个portal所支持的数据库中,此内容将在我的下一篇文章中详细论述,这里不再一一提及。

6、PageBarInclude.jsp

用来显示二级菜单,当您点击一级菜单中的任一标签时,系统会调用该文件,并检索出该菜单的所有子菜单,默认显示在PlaceBar的下面。

        以上皮肤开发.基于Websphere Portal6 .0 版本,而对于现在IBM提供的Portal7.0 还在学习中。总体来说,Portal7的皮肤开发主要是在几个页面中进行配置部署实现,但是,有些具体模块的实现,如果能有专业人士的指导,可能会事半功倍。毕竟,在黑暗中摸索着前进,前进的脚步是很缓慢的。



本文转自 风泊海上 51CTO博客,原文链接:http://blog.51cto.com/fengbohaishang/989144


相关文章
How SAP Fiori application is embedded in web client ui
How SAP Fiori application is embedded in web client ui
103 0
How SAP Fiori application is embedded in web client ui
SAP Commerce Extension的Web应用启动问题
SAP Commerce Extension的Web应用启动问题
90 0
SAP Commerce Extension的Web应用启动问题
如何在SAP Cloud Application Studio里创建Web Service
如何在SAP Cloud Application Studio里创建Web Service
如何在SAP Cloud Application Studio里创建Web Service
SAP CRM WebClient UI运行时加载哪个configuration,到底是如何决定的
SAP CRM WebClient UI运行时加载哪个configuration,到底是如何决定的
SAP CRM WebClient UI运行时加载哪个configuration,到底是如何决定的