基于Web Service的远程Portlet应用
1.无需注册登录,支付后按照提示操作即可获取该资料.
2.资料以网页介绍的为准,下载后不会有水印.资料仅供学习参考之用.
密 惠 保
摘 要 think58好,好think58 [资料来源:http://think58.com]
Web Service的出现创建了可互操作的分布式应用程序的平台,标准的 Web Service在大多数情况下都适用,但对于动态集成业务应用程序却不太适合。例如,如果要在商业门户中集成订单状态Web Service,则需要编写代码以在门户中显示订单状态服务的结果。在这种状况之下,OASIS创建了WSRP (Web Services for Remote Portlets),即远程 Portlet Web Service标准。它允许在门户或其他中间Web应用程序中提供可视化的、即插即用的、面向用户的Web服务。
本课题设计基于中国电信一站式企业信息中心项目(EIAC)建设中的试点项目:上海电信市场部个性化建设,完成了一个完整的信息发布平台,并且将一些即时信息用WSRP部署,通过提供一组面向表示的服务,动态完成应用程序和服务的聚合,总部用户在总部门户上可以看到集成的市场部的动态信息。此系统已应用于上海电信市场部的日常管理运营中,目前反馈的运行情况良好。
本文将介绍课题背景、研究意义和目前情况,概述系统需求,从系统体系架构、功能逻辑、权限控制、数据库设计来详细阐述系统整体设计和开发过程,然后针对WSRP进行进一步的详细说明,包括开发环境、设计及一些关键的代码实现。 本文来自think58 [资料来源:THINK58.com]
关键字:WSRP ,Remote Portlet,门户改造,体系结构
3.1.1 设计约束
(1) 本项目为标准Web应用,能在各种中间键中运行(比如Tomcat、WebSphere、Weblogic等等)。
(2) 连接数据库采用数据库连接池的方式,建议用JTA DataSource,连接数据库为Oracle 9.2版本(理论上支持各种主流数据库)。
(3) 禁止本地IO操作,如果有IO操作,比如上传文件上传到远程FTP服务器上;本应用最后运行在集群和门户上,要求能适应集群和门户环境的要求。
(4) 本应用要求要有较高的稳定性,要求能够全天候运行;本应用要有较高的安全性,没有经过认证的用户无法访问本系统。
(5) 本应用权限配置要灵活,没有权限的用户无法访问系统内没有授权的模块,并且左边的菜单能根据权限的不同而发生变化;本应用要求连接用数据库连接池,最好使用WAS的数据源;后台连接的FTP服务器能够配置;
(6) 本系统面向电信的所有员工开发,因此,要求易用性强,人机交互界面友好,界面采用JSF开发。
(7) 本应用要求有较高的效率,要求绝大多数响应速度在200ms以内。
(8) 系统权限要做到灵活,最好能够配置化,能方便的加入管理人员并授予角色,角色与菜单/模块的访问权(权限)能无缝连接起来,比如菜单能根据用户的权限的不同而不同。 think58.com
(9) 要求所有的持久层能够业务逻辑层能够复用,各个层次指职责分清楚,严格避免层次结构不清的现象,比如在Action或者View对数据库操作。
3.3 系统权限控制设计
本系统的难点在于权限,我们需要设计出一套适用于绝大多数Java应用的权限模块,因此我们设计出的权限模块必须是与绝大多数应用具有无关性,可以通过配置与应用进行无缝集成,因此我们采用AOP的设计思想对UI,业务逻辑层进行了权限控制。
3.3.1 界面权限控制
每个用户能够进行的操作权限不同,因此必须对界面权限加以控制,如在本系统中,只有有发布权限的人才能发布新的内容,所以我们必须在UI上就进行控制,让不具有该权限的人无法看到新增和删除的按钮。对于此权限的控制我们自己定义了一组标签,在页面上将控件放到此标签中,在解析Jsp页面时会调用系统权限判断类来决定此控件是否在页面上显示。
3.3.2 业务逻辑控制
在UI上进行权限控制的基础上,对于资源的操作权限针对不同的角色开放,在角色登陆时生成角色和资源操作权限的资源配置,用户进行操作的时候首先得验证用户的角色是否能够进行对此资源的此项操作。
4.1 关于Remote Portlet的详细设计、实现及部署
4.1.1 WSRP简介
许多大型企业的网站,渐渐采用了 portal server 作为开发的基础。至于什么是 portal 呢,中文翻译为“门户网站”,其实它的组成可以分为三部份:Portal Server, Portlet Container, Portlet。
内容来自think58 [资料来源:http://think58.com]
(1) Portal Server:一个 Portal(门户网站)就是指一个 Web-based 的系统,通常都会提供个人化设置、单一登陆、以及由各种不同来源或不同网站取得各式各样的信息,并且将这些信息放在网页之中组合而成的呈现平台,门户网站会有精巧的个性化设置去提供定制的网页,当不同等级的使用者来浏览该页面将获得不同的信息内容。
(2) Portlet Container:portlet container 是提供 portlets 执行的环境,包含了许多 portlets 并且管理他们的生命周期,他也会永远保存着 portlets 的喜好设置,一个 portlet container 接收到来自 portal 的请求后,接着将这个请求传递给存在 container 的 portlet 执行。portlet container 没有义务去组合 portlets 产生的信息內容,这个工作必须由 portal 来处理。portal 和 portlet container 可以放在一起视为同一个系统的组件,或者分开成为两个独立的组件。
(3) 一个 Portlet 是以 Java 技术为技术的 Web 组件,由 Portlet Container 所管理,专门处理客户的 request 以及产生各种动态的信息内容。Portlets 为可插式 ( pluggable ) 的客户界面组件,提供呈现层成为一个信息系统。这些由 portlet 产生的内容也被称为片段 (fragment),而片段是具有一些规则的Markup( HTML、XHTML、WML ),而且可以和其他的片段组合而成一个复杂的文件。而 Portlet 中的内容正常来说是与其他 Portlet 的内容聚合而成为一个 Portal 网页。而 Portlet 的生命周期是被 Portlet Container 所管理控制的。客户端和 portlets 的互动是由 portal 通过典型的 request/response 方式实现,正常来说,客户会和 portlets 所产生的内容互动,举例来说,根据下一步的连接或者是确认送出的表单,结果 portal 将会接收到 portlet 的动作,将这个处理状况转向到目标 portlet。这些 portlet 内容的产生可能会因为不同的使用者而有不同的变化,完全是根据客户对于这个 portlet 的设置。 think58 [版权所有:http://think58.com]
OASIS在2003年八月份就定稿了WSRP ( Web Services for Remote Portlets ),即远程 Portlet WebService标准的1.0版本,同时WSRP在业内有着强大的支持,如BEA、IBM、Orale、SAP和SUN,有着其巨大的商业价值和强大的生命力。对于远程Portlets的Web服务协议允许将远程内容或者远程Web应用集成到一个客户终端的Portal上,将远程数据获取后可以直接显示在客户端而不需要客户端再去编码实现这些数据的展示。在WSRP中我们常用到的一些术语:
(1) 供应商:首先它是一个Portal,它提供了能像Web服务一样被远程调用的一个或多个Portlets,并且让这些Portlets对于客户是可用的。
(2) 消费者:它也是一个Portal,它调用了来自于Portlets供应商那的WSRP服务,并把这些服务集成以供它的用户使用。
(3) 用户:在他们的客户端集成远程Portlets来使用。
(4) 远程Portlets:是被供应商当作WSRP服务来发布的标准的Portlets。
内容来自think58