名词解释 <?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />

  1 p13n

p13n personalizationpn之间是13个字母,所以简记为p13n,类似的简记还有i18n

WLP 是由早期的几个server合并而来,其中就有Personalization Server,所有p13n.jar都是用于Personalization Server

 

2 Web Service for Remote Portal(WSRP)

Web Service for Remote Portal(WSRP) OASIS定义的一个标准,从技术角度上讲,WSPR使用了 WSDL 对应用程序的接口进行了定义,远程Portlet在远程服务器上作为Web服务运行,服务在UDDI目录中发布,以方便查找和绑定。一般来说,Portlet代理将调用WSRP服务,代理是通过SOAP协议绑定到该服务的。WSRP Web Service 的一种新的商业应用,一种新的标准,主要用来简化 Portal 对于各种资源或者程序整合的复杂度,可以避免编程带来的整合麻烦和问题。而且 Portal 管理员可以从海量的 WSRP 服务中选择需要的功能用以整合到目前所用的 Portal 中。它有三种角色:

①、生产者 à 提供Portlet

②、消费者 à 使用Portlet

  ③、终端用户 à 最终用户

它的特点在于生产者将消费者所需要的信息通过WSRP返回给消费者,这些信息是相对标记片断,例如HTMLXHTML等,可以直接嵌入用户的页面中,而不用像Web Service一样开发用户端接口。

实现这个规范,Portal可以跟各式各样的数据源打交道,彻底终结信息孤岛的窘境。

 

3 portal

    Portal 是基于Web的,以“应用整合”和“消除信息孤岛”为最终目的,提供单点登录、内容聚合、个性化门户定制等功能的综合信息系统。完整的Portal通常由Portal服务器、Portlet容器、Portlet构成。

 

4 Portal服务器

   Portal 服务器是容纳Portlet容器,支持Portlet呈现的普通或者特殊Web服务器。Portal服务器通常会提供个性化设置、单点登录、内容聚合、信息发布、权限管理等功能,支持各种信息数据来源,并将这些数据信息放在网页中组合而成,提供个性化的内容定制,不同权限的浏览者能够浏览不同的信息内容。通常,Portal提供以下功能:

单点登录:Portal通常采用ACLSSLLDAP等业界标准的安全技术,提供对所有现有应用系统的安全集成,只需在Portal的唯一入口上登录一次,就可以访问所有应用系统和数据。对于安全性要求较高的应用系统,如电子商务平台、交易系统等,通过扩展接口传递用户身份信息,如数字证书信息、数字签名信息等,进行二次身份认证,保证单点登陆的安全性。

权限控制:系统采用LDAP对用户资源进行统一的管理,同时提供二次开发接口,可以与其他应用系统的用户管理模块对接,并能随相关业务系统实时更新访问权限。通过完善的授权机制及存取控制,用户访问权限控制到字段级别,确保用户只能访问具有权限的应用系统及相关信息。

内容管理: 实现应用系统之间实时交换信息。采用多种缓存机制,保证内容交换的性能和准确性。采用基于XMLRich Site Summary (RSS)标准,迅速在各应用系统之间传播最新变化。

信息发布: 实现信息门户内容的动态维护。动态网站系统可与OA协同办公系统、知识管理系统等集成,网站信息须经OA系统的审批流程流转通过后或知识管理平台设置具有外部共享权限后才可正式发布,真正实现内外信息发布的同步。

文件管理: 系统实现无缝集成多种数据源,包括:数据库、文档(Office文档、PDFAutoCAD、甚至ZIP文档)、Web网页、FTP站点等,并对数据按业务要求和职务特点加以分析整理,通过统一Web界面主动推送(Push)至用户的门户桌面,帮助用户做出及时、正确的决策。

 

5 Portlet

JSR-168 Portlet Specifications Portlet的定义如下:Portlet是基于webJava组件。它由portlet容器管理,能够处理请求,产生动态内容。portletPortal用作为可插拔的用户接口组件,为信息系统提供展现。PortletPortal中最重要的组件,负责在Portal中呈现信息内容,有相应的生命周期。通过自定义Portlet,用户很容易定义个性化的Portal页面。PortletPortlet容器负责管理、处理请求并返回动态页面,可以作为Portal的可即插即用的界面组件。由portlet动态产生的内容也被叫做fragmentfragment是遵循某种规则的标记(例如:HTMLXHTMLWML),可与其他的fragment一起建立一个完整的文档。一般一个portlet产生的内容和其他的portlet产生的内容聚集在一起形成Portal网页。

一个Portlet是以Java技术为技术的Web组件,由Portlet容器所管理,专门处理客户的信息请求以及产生各种动态的信息内容。Portlet 为可插式的客户界面组件,提供呈现层成为一个信息系统。这些由Portlet产生的内容也被称为片段,而片段是具有一些规则的标记( HTMLXHTMLWML ),而且可以和其他的片段组合而成一个复杂的文件。一个或多个 Portlet 的内容聚合而成为一个 Portal 网页。而 Portlet 的生命周期是被 Portlet 容器所管理控制的。

客户端和Portlet的互动是由Portal通过典型的请求/响应方式实现,正常来说,客户会和Portlet所产生的内容互动,举例来说,根据下一步的连接或者是确认送出的表单,结果 Portal将会接收到Portlet的动作,将这个处理状况转向到目标Portlet。这些Portlet 内容的产生可能会因为不同的使用者而有不同的变化,完全是根据客户对于这个Portlet的设置。

 

6 Portlet 容器

portlet portlet容器中运行,portlet容器为portlet提供必需的运行环境。portlet容器包含portlet(组件)并且管理它们的生命周期,它也为portlet的参数设置提供持久化的存储。portlet 容器不是一个类似于 servlet 容器的独立容器。它是在 servlet 容器上通过扩展方式实现的,并重用 servlet容器提供的功能。Portlet容器提供Portlet执行的环境,包含很多Portlet并管理它们的生命周期,保存Portlet的定制信息。

一个Portal容器接收到来自Portal的请求后,接着将这个请求传递给存在Portal容器的Portlet 执行。Portlet容器没有义务去组合Portlet 产生的信息內容,这个工作必须由Portal来处理。Portal Portal容器可以放在一起视为同一个系统的组件,或者分开成为两个独立的组件。

Portlet 容器是普通Web Servlet容器的扩展,所以一个Portlet容器可以构建于一个已经存在的Servlet容器或者可能实现全部Web Servlet容器的全部功能。无论Portlet容器怎么实现,它的运行环境总是假定它支持Servlet2.3规范。

通常,Portlet容器扩展自普通的Servlet容器。

 

7 PortletServlet的关系  

 Portlet 被定义成为一个新的组件,具有新的明确的界面与行为。为了尽可能与现有的 Servlet 结合达到重复使用的目的,Portlet 的规范利用了 Servlet 的规范,许多观念都很相似的,结合 PortletServlet Jsp 在同一个网站系统中,我们称为Portlet 应用 。在同一个 Portlet 应用 中,他们将分享同一个类加载器(ClassLoader),上下文(Context) Session

①、Portlet Servlet 的相似之处

@ Portlet 也是 Java 技术的 web 组件
@ Portlet
也是有特定的 container 在管理
@ Portlet
可以动态产生各种内容
@ Portlet
的生命周期由 container 所管理
@ Portlet
和客户端的互动是通过 request/response 的机制

②、Portlet Servlet 也有一些不同

@ Portlet 只产生 markup 信息片段,不是完整的网页文件。而 Portal 会将所有的 Portlet markup 信息片段放到一个完整的 Portal 网页。
@ Portlet
不会和 URL 有直接的关系
@
客户端必须通过 portal 系统才能和 Portlet 互动
@ Portlet
有一些定义好的 request 处理,action request 以及 render request
@ Portlet
默认定义 Portlet modes 及窗口状态可以指出在网页中该 Portlet 的哪个功能正在执行及现在的 状态。
@ Portlet
可以在同一个 portal 网页之中存在多个。

③、Portlet 有一些附加的功能是 Servlet 所没有的

@ Portlet 能够存取及储存永久配置文件及定制资料。
@ Portlet
可以存取使用者数据
@ Portlet
具有 URL 的重写功能在文件中去动态建立连结,允许 portal server 不用去知道如何在网页的片 段之中建立连结及动作。
@ Portlet
可以储存临时性的数据在 Portlet session 之中,拥有两个不同的范围:
application-wide scope
Portlet private scope

④、Portlet 不具有一些功能, 但是 Servlet 却有提供

@ Servlet 具有设置输出的文字编码( character set encoding)方式
@ Servlet
可以设置 HTTP 输出的 header
@ Servlet
才能够接收客户对于 portal 发出的 URL 请求

 

8 Portlet的生命周期

一个Portlet有着良好的生命周期管理,定义了怎样装载,实例化和初始化,怎样响应来自客户端的请求及怎样送出服务。这个Portlet生命周期由Portlet接口的initprocessActionrenderdestroy方法来表达。

载入和实例化:Portlet容器负责载入和实例化Portlet。当Portlet容器运行Portlet应用或者延迟到Portlet需要服务使用者的请求时,Portlet就会被载入并实例化。载入Portlet类后,Portlet类随即被实例化。

初始化:Portlet类实例化后,Portlet容器还需要初始化Portlet。以调用Portlet去响应客户端的请求。Portlet容器呼叫Portlet接口中的init方法初始化Portlet。扩展自PortletConfig的类可以取出定义在部署描述文件中的初始化参数,以及Resource Bundle

初始化异常: Portlet初始化期间,Portlet可能会丟出 UnavailableException PortletException 异常。此时,Portlet容器不能把 Portlet置入已启动的服务,并且 Portlet容器必需释放这个 Portlet destory方法不能被呼叫,因为初始化被认为执行失败。发生 失败后,Portlet容器会尝试着重新实例化及初始化 Portlet。这个异常处理的规则是:由一个UnavailableException 指定一个不能执行的最小时间,当此异常发生时,Portlet容器必需等到指定时间过去后才产生并且初始化一个新的 Portlet

在初始化过程中所丟出的 Runtime Exception异常,被当作 PortletException 来处理。

 

9 RSS

RSS 是英文Really Simple Syndication(简易信息聚合)的缩写。RSS是基于XML技术的互联网内容发布和集成技术。90年代末就由Netscape (网景公司) 提出,并做进了他们当时红极一时的互联网浏览器Navigator里。当时称为技术。但当时在商业应用上并不成功。主要原因是当时互联网上的内容少得可怜。但随着Blog文化的推广,以及Blog广泛采用RSS作为信息交流技术,从而RSS的内容源一下子大为丰富。于是,Blog文化在RSS技术的支持下得到普及,而RSS技术随着Blog文化的普及又得到不断地普及。

 

10 JSR168

由于越来越多的公司开发了各自的Portal组件和基于其的Portal产品(Bea, IBM, Oracle, Sun, Sybase, Novell, SAP, Jetspeed, Vignette .这种互不兼容的接口实现不断带给程序提供商各种问题和麻烦, 为了解决这种问题, JCP发布了JSR168 (Java Specification Request), Portlet Specification, 用以提供不同PortalPortlets之间a的互用性

 

11 portion

portion 文件就是没有桌面、页眉、脚注的portal可以作为组件使用。例如生成shell时作为一部分。制作方法:先制作一个portal,然后用记事本打开此文件,删除其它部分只留book部分(只能有一个book).最后另存为*.portion文件。在项目中导入此文件?可以看到效果。例如:制作一个shell 文件如下

<? xml version ="1.0" encoding ="UTF-8" ?>

< netuix:markupDefinition xmlns:netuix ="http://www.bea.com/servers/netuix/xsd/controls/netuix/1.0.0"   xmlns:xsi ="http://www.w3.org/2001/XMLSchema-instance"   xsi:schemaLocation ="http://www.bea.com/servers/netuix/xsd/controls/netuix/1.0.0 markup-netuix-1_0_0.xsd" >

     < netuix:locale language ="en" />

     < netuix:markup >

         < netuix:shell

             title ="xx Shell" description ="xx.portion is included in this shell." markupType ="Shell" markupName ="xx" >

             < netuix:head />

             < netuix:body >

                 < netuix:header >

                     < netuix:jspContent contentUri ="/framework/shells/xx/header.jsp" />

                     < netuix:portionContent contentUri ="/framework/shells/xx/xx.portion" />                    

               </ netuix:header >                                    

                     < netuix:break />

               < netuix:footer >

                     < netuix:jspContent contentUri ="/framework/shells/xx/footer.jsp" />

               </ netuix:footer >

             </ netuix:body >

         </ netuix:shell >

     </ netuix:markup >

</ netuix:markupDefinition >

其中xx.portion 中可以添加portlet

 

12 、工作原理

portlet 的生命周期由portlet容器管理。web端通过由Portal执行的请求/应答机制与portlet进行交互。通常,用户与由portlet产生的内容进行交互,比如通过单击按钮或链接,Portal接收到portlet窗口的动作,随后将portlet产生的内容送至用户操作的portlet窗口。对不同的用户,一个portlet产生的内容可能会大不一样,这与用户对portlet的设置有关。portlet容器接收来自Portal的请求并运行它管理的portlet执行请求。portlet容器并不负责聚集portlet产生的内容,处理内容聚集是Portal的职责。PortalPortlet容器能够被作为单一的应用组件组合在一起,也可以作为一个Portal应用的2个分离的组件。Portal服务器是建立在Http服务器的基础上的。

 

13 Portal的产品定位

Portal

解决企业的数个应用系统各自孤立,缺乏统一管理机制的问题。使人们在获取特定的信息服务时不用再进入众多的IT系统,而是经由门户就可以获取这些信息。用户进入Portal后,可以获得与他身份相称的各类信息服务。Portal提供了集成的内容和应用,以及统一的协作工作环境。

Integration

着眼于业务流程。为流程建模、流程自动化和业务流程分析,提供了通用环境,以便整合各种企业应用,并使业务用户能够有效协作。将完全不同的应用集成和应用开发汇聚为统一的业务集成解决方案。