Portal相关技术及架构
Portal以用户为中心,提供统一的用户登录,实现信息的集中访问,集成了办公商务一体的工作流环境。利用Portal技术,可以方便地将员工所需要的,来源于各种渠道的信息资料集成在一个统一的桌面视窗之内。根据Portal提供的定制功能,部门主管可以为本部门人员量身定制一套特有的信息门户,将部门共同所需信息有效地组织在统一的Web浏览器之中,并可根据人员级别和职能来设定相应的访问操作权限。
一.Portal主要功能
1、单点登录(SSO—Single Sign-On):Portal提供对各种应用系统和数据的安全集成,用户只需从Portal服务器登录一次就可以访问其它应用系统和数据库。对于安全性要求较高的业务系统,如电子银行、电子交易系统等,通过传递用户身份信息,如数字证书信息、数字签名信息等进行二次身份认证,保证单点登录的安全性。单点登录既减少了用户在多个应用系统反复登录多次认证的麻烦,更是简化了各种应用系统对用户及其权限的一致性维护管理。
2、资源整合:能够把各种不同应用的内容聚合到一个统一的页面呈现给用户,实现同应用系统实时交换信息。能够从各种数据源如数据库、多种格式的文件档案、Web页面、电子邮件等集成用户所需的动态内容。
3、定制与个性化:能够为不同角色的用户制定不同功能权限的Portal页面。同时,用户自己也能够按照喜好在规定的权限下定制自己风格的页面和内容,如可以定制Portal页面,取舍不同功能和内容的Portlet窗口,自行布置Portlet窗口的摆放位置,可以对Portlet窗口外观,如标题,图标,颜色等进行个性化设置。
4、协作功能:为用户提供即时讨论,聊天,论坛,电子邮件以及语音或视频会议等功能。
5、工作流:支持根据业务处理规则建立起来的工作流任务处理,比如审批流程等待办事宜。
6、信息检索:从多种数据源检索动态信息资料。
7、客户端:除了Web浏览器外,可以为PDA和手机提供接口,实现移动接入服务。
二、Portal标准
建立一个以标准为依托的Portal才能很好地保护自己的投资,既便于同现有应用系统连接,也使得同第三方的相关产品更容易接口。在2003年先后发布的JSR-168和WSRP两大标准为Portal的发展奠定了基础,结束了战国纷争的局面,Portal的发展和应用将会更加广阔长远。
下面介绍几个与Portal紧密相关的技术标准:
1、WSDL——Web Service Description Language
Web服务描述语言。WSDL是用来描述Web服务和说明如何与Web服务通信的XML语言。WSDL语言使用XML格式来描述信息的接口、访问格式和处理形式。
WSDL描述信息内容。
2、SOAP——Simple Object Access Protocol
简单对象访问协议。SOAP是一种在无中心的分布式环境下,应用系统之间交换结构化信息和特定类型的信息所使用的基于XML的轻量级协议。SOAP允许任何信息对象在任何语言、任何平台上使用多种传输协议实现传输处理。
SOAP定义信息的传输处理。
在Web应用环境中,通常把SOAP同WSDL结合起来,利用HTTP协议实现应用系统之间交换各种类型的信息对象。
3、JSR -168——Java Specification Request - Portlet Specification
Java Portlet规范。JSR-168为业界明确了Portal的定义,制定了Portlet规范标准,从而解决了基于Java的Portal之间,以及同其他Web应用系统之间的互操作性。遵循JSR-168的Portlet将具有适用于所有Portal服务器和Web应用系统,支持多种类型的客户端,支持本地化和国际化,具备确定的安全性,允许Portal应用程序热部署和重新部署。
4、WSRP——Web Services for Remote Portlets
远程Portlet Web服务协议。WSRP定义了Portal和Portlet容器服务之间标准化接口的一个Web服务标准。WSRP允许在Portal之间或其他Web应用上即插即用,具有互操作性,提供可视化的、面向用户的远程Web服务。
远程Portlet在远程服务器上作为Web服务运行,其服务可以发布到公共的或单位自己的UDDI服务器上。Portal或其他支持WSRP的应用系统通过UDDI服务来查找并使用远程系统提供的WSRP服务内容。
WSRP的典型应用是把天气预报、即时新闻、股市行情等嵌入到自己的Portal中(在国外有专门的WSRP内容提供商提供这种服务)。
WSRP使用了WSDL定义应用程序的接口,并以SOAP作为通讯标准。
5、其他规范标准
此外还有一些与Portal有一定关联的技术标准,在开发建立Portal应用中将会使用到:
UDDI:Universal Description,Discovery and Integration
JSR-170/283:Java Specification Request - Content Repository for Java Technology API
JAAS:Java Authentication and Authorization Service
LDAP:Lightweight Directory Access Protocol
SAML:Security Assertion Markup Language
BPEL:Business Process Execution Language for Web Services
三、Portal应用实现
Portal可以从本地或远端获得数据资源:数据资源可以来自于本地或异地的数据库,应用系统,公共信息内容供应商(RSS,提供新闻、财经信息、天气预报等),Web站点或其他Portal。此外,Portal还可以提供日历、工作流、电子邮件、论坛、博客、Wiki、即时交谈、电子会议等等协同工作的应用功能。可见,Portal是一个有别于传统桌面应用和Web网站的全新应用系统,是各种信息处理的集中展现平台,是用户日常工作的综合台面。
显然,建立一个良好的Portal应用需要充分考虑各种应用系统和数据资源的整合问题:
1、现有应用系统和数据资源的利用 对能够改造利用的,要开发相应的Portlet组件来重新实现;对不能改造的可以通过链接的方式跳转到这些系统,其中的数据库资源可以采取单纯读取的方式获得;还有些封闭的专业应用系统可能完全无法接入Portal,可以采取定期卸载的方式获得它的数据库资源。
2、新建应用系统的考虑 需要以Portal理念进行设计,按照相关标准来开发实现应用功能的Portlet组件,然后集成到Portal系统使用。
3、单点登录与权限管理 对于新建应用系统或能够改造的现有应用系统,通过Portlet组件比较容易实现单点登录,进行统一用户认证和用户权限的控制。当然,对那些安全性要求较高的应用系统还可以在这些系统内部进行二次认证和授权处理。对那些不能改造的应用系统显然也无法实现单点登录,用户需要重新登录到这类系统,用户管理和权限控制还依赖于这些系统自己处理。
(一)单点登录和权限控制
单点登录是为了方便用户进入多个应用系统,减少用户多次登录,免除用户记忆多套用户名和密码的麻烦。
单点登录涉及到两个问题,一是身份认证,二是权限控制。
身份认证是Portal系统提供访问控制的第一步,即确认用户是谁,能否进入系统。通常要求用户提供用户名和口令,必要时要求提供用户的数字证书,也可以配合使用IC卡、指纹等验证手段。
权限控制或授权确定一个用户的角色和级别,从而控制用户的访问许可,即决定用户能查阅哪些资料,能进行哪些操作等等。Java EE架构采用了基于角色的访问控制策略(RBAC)。RBAC的基本思想是把对用户的授权划分成两个分配关系,即“用户—角色”和“角色—权限”。RBAC的好处是便于应用系统的开发,使得程序设计相对独立和透明化,只是在应用系统部署使用时才通过“角色”把“用户”和“权限”关联起来,而且对用户和权限的调整配置容易实施。
用户与角色之间是多对多的关系,即一个用户可以被分配给多个角色,多个用户也可以分配给同一个角色。
角色与权限之间也是多对多的关系,即一个权限可以与多个角色相关,一个角色也可以包含多重权限。
Sun公司建立了具有可堆叠和可插接功能的JAAS框架,为Java应用系统提供安全而灵活的身份认证和授权机制。如在JBossAS应用服务器环境下,利用JAAS技术,JBossAS提供了几种身份认证模块(使用者也可以自己编写新的身份认证模块),并且可以实现多级认证(堆叠)。对Web应用和EJB等则通过配置文件定义访问角色和访问方式以实现安全控制。对没有提供JAAS支持或支持不足的Web服务器或Java应用服务器,使用者需要在自己的应用程序中编写相关代码或模块来支持JAAS实现身份认证和权限管理。
此外还需要考虑不同领域内不同应用之间的信任关系,解决跨越应用系统的身份认证和访问控制问题。这一点需要用到SAML,Federation或Liberty等技术规范,通过传递用户认证资料取得应用系统之间的认证互信。
专业的Web服务软件公司能够提供比较全面的解决方案,其产品为Web环境下的各种应用提供可靠的身份认证和访问权限管理。比如Sun公司的Access Manager 7.1,Oracle公司的Oracle Access Manager 10g,IBM公司有Tivoli Access Manager(提供用户单点登录)和Tivoli Identity Manager(解决访问控制问题),还有BEA公司的BEA AquaLogic Enterprise Security等。
相比之下,开源软件在这方面比较瘦弱,基本上没有专门的软件产品,只能提供一定的支持方案。例如通过对JBossAS和Tomcat做一些配置,可以支持使用耶鲁大学的CAS实现单点登录功能,也能够实现JAAS来获得用户身份认证和对应用资源的访问控制。这样,建立在JBossAS和Tomcat之上的应用如JBoss Portal,Liferay Portal和Apache JetSpeed当然也就具备了这些功能了。
在用户管理、身份认证和权限控制方面,无论是商业的或开源的Portal产品多数喜欢采用LDAP,当然也有的支持使用数据库。LDAP的好处一是它可以方便的按类别存储任何类型的数据信息;其二,它的树形存储结构类似于一个企事业单位的组织架构,容易对应;三是它同应用系统接口容易,各个LDAP产品的接口都一致无需特别配置;四是它对数据信息的访问安全控制方便;五是它偏向于相对固定数据信息的查询使用,效率较高,维护也方便。
Portal作用 |
---|
消除信息孤岛,提高工作效率和企业宏观决策的准确性和及时性
Portal提供了为企业员工提供了各应用系统的统一内容聚集和展现,员工不必再到分散的应用系统中浏览、查找、分析相关的信息,而是能通过统一的Portal入口,迅速地找到自己关心的信息和情报。对于企业普通员工而言,这样将提高了工作效率,减少了反复查找信息而进行的重复劳动和由此引起的信息失真和缺漏; 对于企业的管理者和决策者而言,统一的应用系统内容聚集和展现,将企业各个环节和不同维度的信息切片综合地、有机地、即时地展现在使用者面前,方便进行日常管理和宏观决策。
简化工作环节,快速适应新业务和新战略的需求
Portal框架下通过提供统一认证和单次登录的功能,改变了用户必需使用不同的登录方法,不同的用户和密码反复登入不同的系统而带来的操作复杂性和安全隐患,通过提供单次登录的功能,简化了用户访问各种应用系统的环节,提高了效率。
Portal还提供了可高度定制的个性化内容展示框架,以一种统一的架构和模式,适应企业内部不同组织层次,不同业务部门对各自工作界面的特殊要求。在这个具备高度扩展性和灵活性的展示聚集框架的支撑下,企业才有可能随时根据业务发展的变化,即时调整相关部门和人员关注的焦点和内容,使底层的IT支撑能够赶上业务的变化和员工的要求。
减轻企业管理负担,适应未来IT基础支撑体系的发展
Portal采用基于浏览器方式的、统一的访问和展示界面,提供单次登录功能,并配合远程桌面管理系统,对于普通用户而言,无需安装另外的客户端即可访问众多的后台应用系统和企业的内部信息共享平台,基本无需额外的培训,即可适应新的系统的基本操作,个人用户可以将精力集中在业务和工作本身上,而不是反复适应系统上; 对于系统管理人员而言,集中授权式的企业安全管控模式、瘦客户端的发布方式,基于桌面管理系统的远程部署、诊断模式,都大大减轻了管理人员的工作负担和复杂度; 对于企业而言,Portal是基于开放的J2EE架构的,高度灵活、可定制的展示框架系统,其采用的企业集中LDAP目录服务和统一管理、统一认证机制,为企业的后续IT建设和应用集成,奠定良好的构架和基础。
Portal架构 |
---|
Portal采用三到N层次的应用架构,逻辑三层次架构具有展现层 (Presentation Tier-View), 应用逻辑层 (Application Tier- Control), 及数据层 (Enterprise Tier-Data Model)。展现层负责输入及输出和展现客户所要看的数据信息,应用逻辑层 (Application Tier- Control) 是专门用来处理应用逻辑及访问和查询后台的企业业务应用与数据。
系统接入层
客户端是最终用户,他们处于非安全区域,可以采用多种接入方式,一般以浏览器为主,可是也可以通过常用的移动终端设备如PDA,WAP手机等接入。
业务展示层
Portal主要处理用户访问统一信息平台的访问安全控制管理(后台认证功能由认证子系统和目录服务数据库共同完成)、策略管理及内容、应用聚集的功能。另外,Portal将支撑用户使用不同访问设备的内容格式提交,通过门户的渠道功能将企业内部的信息资源呈现给用户。
业务汇聚层
业务逻辑层汇集了Portal的具体业务应用逻辑,主要包括: 协同工作(工作流)、搜索引擎、文档管理、网上教育、统计查询、身份认证、个性化服务等。对系统数据层的数据进行操作访问,实现各种系统服务功能,是Portal框架下应用资源的有机载体。
核心数据层
核心数据层就是Portal的数据采集与交互平台,包括: 目录服务数据库、群件数据库、多媒体课件服务器、访问控制数据库、包括BOSS、网管等核心业务系统在内的核心数据源等。
Portal设计方案 |
---|
门户构建
我们采选用IBM Portal Server作为门户的统一访问入口,并基于IBM Portal Server实现门户的多态化及多级化构建。
门户的多级化
基于Portal Server的门户构建目的是将企业内部的各类信息进行立体的展现。我们通过虚拟门户的方法实现多级门户的概念,实现方式是通过对位置、页面、用户及用户组的授权,并且通过不同的主题和外观来实现形式上的门户分离。
根据各单位的不同的工作性质和业务范围可将门户规划成多级化门户: 主门户、分公司门户、部门门户、主题门户等。
内容展示
Portal的展示功能将提供给企业用户一个统一入口的展示界面,并通过内容聚集将企业内部的应用资源聚集显示在这个展示界面上,企业用户只需要知道这个统一入口的地址,凭借自己用户身份,即可实现对己所可控的应用资源的统一组织,也就是说,用户即可在这样一个统一化的展示界面上,可以对自己所有可以使用的企业资源进行集中访问。
个性化服务
1、根据用户的角色、部门等信息,根据权限设置得到该用户能够看到的页面、标签、Portlet、信息等,且用户可以根据自己的喜好对设置门户内各页面、Portlet的显示、布局等。
2、根据IBM Portal Server提供的个性化引擎实现对各用户、组、部门、角色的个性化功能。个性化引擎包括两种,一种是规则引擎,也就是我们通过设定的规则来计算符合条件的用户能够看到和如何看到他需要的信息。另一种是推荐引擎,根据WPS内嵌的智能引擎,并根据用户的相关属性,例如角色、个性、爱好、工作性质等,推送该用户可能感兴趣的信息到该用户的终端。
内容管理
Portal Server 提供门户网站内容组织器,内置内容管理应用程序,门户网站内容组织器是封装为 Portal Server 内的门户网站应用程序的轻量级内容管理应用程序。它添加内容抽象层到门户网站,现有内容管理系统(如,WebSphere Portal content publishing(WPCP)),可以将内容发布到门户网站。
协作交流
IBM Porta Server提供了专为提高生产力而构建的协作工作空间,可根据地区、部门、项目等建立协作交流空间,实现安全的Web协作。
无线拓展
在无线扩展方面,由于系统采用软件VPN的方式集成,因此理论上支持任何协议,同时在客户端我们支持下列操作系统:
Microsoft Windows XP/Windows 2000/PocketPC 2002/Windows ME/Windows 95(8)/Windows NT 4.0*/WinCE 2.1* or higher/Palm OS*.
目录服务
我们在门户框架下采用IBM Directory Server作为Portal的目录系统,存储门户系统框架下的所有用户,同时采用BM Tivoli Access Manager for e-Business用于实现访问安全控制和单点登录,共享IBM Directory Server中的目录信息。
在此基础上,我们使用IBM Directory Integrator同步Portal和其他应用系统之间的用户。IDI提供了一个能使数据在企业级实现同步并允许各个部门使用现有工具管理其特定数据的自动化解决方案,使工作效率最大限度地得到提高。
统一用户管理
统一用户身份管理的主要目的就是让用户更方便和更高效地建立用户在企业IT环境中的身份,使得用户可以尽早地使用企业的IT资源,为企业创造价值。身份管理包括了管理每个用户的整个生命周期以及围绕用户管理的各种自动化的业务流程。我们使用 Tivoli Identity Manager(简称: TIM)来进行统一的用户管理,可以帮助系统和应用快速上线并发挥作用、降低运行成本、最大限度地实现投资回报。
用户帐号的集中控制
通过集中化的用户定义、企业级用户服务的主动化、指导这些管理流程的公司策略来满足这个挑战,同时减少通过多个管理窗口和界面来进行管理而造成的不一致性和人为错误。基于任务的管理界面可以从一个控制点来设置用户访问权限。这些身份管理服务可以帮助在整个环境中获得控制能力,而不需要将关键的应用、系统和流程延伸到外部网上。
用户自助服务
用户自助服务功能允许用户查看或者编辑直接应用到他们的信息,任何有权查看自己的信息的用户都可以使用自助服务功能来管理自己的个人信息和操作项目。
策略应用
策略可以用来实现账号分配和废除、账号创建和口令长度检查等操作的自动化,可提供的策略包括:
·分配策略 - 表明分配给用户的账号。
·身份策略 -对账号名称/用户ID生成进行定义。
·口令策略 -对口令长度检查进行定义。
·服务选择策略 - 解决分配政策中出现的冲突。
同步后台帐号
同步功能会对存储在被管理系统上的用户信息和存储在TIM数据库上的对等数据进行比较。同步功能将从被管理系统处收集所有的账号信息并将其同存储在TIM服务器上的现有数据进行比较,具体方法是先在TIM系统内查找账号归谁所有,接下来查找所有账号的现用别名,如果用户登录ID同某个别名相匹配,则来自服务的数据就会对TIM服务器进行更新。TIM服务器将根据预定的条件验证该账号是否满足预定策略的要求。
集中认证
目录服务(LDAP)的建设,使企业内部用户对企业应用资源访问实现统一认证成为了可能。在目录服务中集中存储着全体企业用户的身份资料、应用资源的登记资料、以及用户对各类应用资源的访问许可(及安全策略)。在这种情况下,用户应只需通过一次性身份认证即可实现对其权限许可下的所有应用资源进行访问和使用,用户若成功通过认证,则由依照用户个人所定义的个性化服务规则,通过Portal向用户推送符合用户个性化需要的应用频道、布局、主题、式样等信息,并用户的桌面上构建出符合用户所需的个性化工作氛围。我们基于IBM Tivoli Access Manager for e-Business (TAM) 提供门户框架中对单次登录和访问安全控制的建设实现。
建立集中的安全策略管理
建立整体的安全管理策略,使得所有安全策略的定制、修改和删除等操作都通过一个统一的平台来完成,从而达到统一管理企业内部安全策略的目标。
灵活多样的用户身份认证方式
1、基于表格的登录
2、HTTP 基本认证
3、数字证书 (X.509v3) - IBM Tivoli Access Manager可与大量流行的公钥基础架构(PKI)解决方案集成,其中包括Tivoli SecureWay Public Key Infrastructure和Entrust PKI,支持证书签名和撤销检查,能够支持将公钥证书映射为访问许可。
4、RSA SecurID Token
5、WAP身份认证机置
6、资源敏感的认证 -- 对于特殊的资源需要额外的用户认证机制
7、其它客户化的方法
集中授权管理
授权服务维护中央资料库中的授权政策,该资料库中列出了受到保护的内部网中所有的资源以及与每一资源相关的策略模板(访问控制列表)。政策模板规定用户访问和操纵资源时必须满足的条件。每次当用户试图访问一个资源时,将根据该资源的授权政策对用户的证书进行检查。
Portal相关技术及架构的更多相关文章
- 关于全站https必要性http流量劫持、dns劫持等相关技术
关于全站https必要性http流量劫持.dns劫持等相关技术 微信已经要求微信支付,申请退款功能必须12月7号之前必须使用https证书了(其他目前为建议使用https),IOS也是2017年1月1 ...
- SAAS相关技术要点
这篇文章本来是我们开发组内部用的一个小文档.因为我们公司以前没有做SAAS的经验,就成立了一个小组做一做这方面的技术前探,我是成员之一.这篇文档想从宏观的层面把开发一个SAAS应用所要用到的技术点稍微 ...
- 2017值得一瞥的JavaScript相关技术趋势
2017值得一瞥的JavaScript相关技术趋势从属于笔者的Web 前端入门与工程实践,推荐阅读2016-我的前端之路:工具化与工程化获得更多关于2016年前端总结.本文主要内容翻译自,笔者对于每个 ...
- selenium相关技术研究(从1.0-3.0)
注: 以下内容引自http://www.cnblogs.com/hhudaqiang/p/6550135.html Selenium相关技术研究(从1.0-3.0) 好吧,最近看wxpython有点多 ...
- SLAM+语音机器人DIY系列:(七)语音交互与自然语言处理——1.语音交互相关技术
摘要 这一章将进入机器人语音交互的学习,让机器人能跟人进行语音对话交流.这是一件很酷的事情,本章将涉及到语音识别.语音合成.自然语言处理方面的知识.本章内容: 1.语音交互相关技术 2.机器人语音交互 ...
- Asp.Net WebAPI及相关技术介绍(含PPT下载)
此PPT讲述了Asp.Net WebAPI及相关Web服务技术发展历史. 共80多页,Asp.Net WebAPI在讲到第36页的时候才会出现,因为这个技术不是凭空产生的,它有着自己的演变进化的历史. ...
- 雷林鹏分享:XML 相关技术
XML 相关技术 下面是一个 XML 技术的列表. XHTML (可扩展 HTML) 更严格更纯净的基于 XML 的 HTML 版本. XML DOM (XML 文档对象模型) 访问和操作 XML 的 ...
- 【翻译】Tusdotnet中文文档(3)自定义功能和相关技术
自定义功能和相关技术 本篇按照如下结构翻译 自定义功能 自定义数据仓库 相关技术 架构和总体概念 自定义数据仓库 tusdotnet附带一个存储库TusDiskStore,它将文件保存在磁盘上的一个目 ...
- [转帖]我最近研究了hive的相关技术,有点心得,这里和大家分享下。
我最近研究了hive的相关技术,有点心得,这里和大家分享下. https://www.cnblogs.com/sharpxiajun/archive/2013/06/02/3114180.html 首 ...
随机推荐
- spring+ibatis环境搭建
简单的spring+ibatis入门实例:ibatis是一种半自动化的持久层框架,它介于JDBC和hibernate之间,使用比较灵活. 一:目录结构 二:需要导入的jar包: 所有的第三方jar包都 ...
- MongoDB基本操作
转:http://zhidao.baidu.com/link?url=D5s4tNnP6hH0XPZkFooV-o4MQH3pNZh7C3rtLX_HtVWaIyBRhLIUyoZYfVv15l2eS ...
- Android M Developer Preview - API Preview(一)
API Overview The M Developer Preview gives you an advance look at the upcoming release for the Andro ...
- 关于sql row_number,rank,dense_rank,ntile函数
row_number排序最好用它,它依次排名,不出现相同名次,如:1,2,3,4,5 rank出现相同排名,且跳过相同的排名号排下一名,如:1,1,3,4,5, dense_rank出现相同排名,不跳 ...
- 40个Java集合面试问题和答案【中】【转载】
接上文:http://www.cnblogs.com/xujianbo/p/5148075.html 16.UnsupportedOperationException是什么? Unsupporte ...
- ###Linux基础 - 1
点击查看Evernote原文. #@author: gr #@date: 2014-10-11 #@email: forgerui@gmail.com 前言 为什么学习Linux?:-) 酷Cool ...
- this 关键字
导读 本文将列举C#中this关键字的用途 1.this 含义 2.用this 关键字避免参数与字段的混淆 3.用this关键字串联构造器 4.索引器 6.Visitor 模式 this 含义 C# ...
- IO流05_OutputStream和Writer输出流
[输出流中的字节流和字符流] [OutPutStream和Writer] [ OutputStream和Writer中包含的方法 ] void write(int c) 将指定的字节/字符 ...
- enum 与 #define
enum 与 #define 一.为什么既要有enum,又要define enum is derived from enumerate, from ex- + number,字面意思就是用数字排列,报 ...
- [leetcode] 403. Frog Jump
https://leetcode.com/contest/5/problems/frog-jump/ 这个题目,还是有套路的,之前做过一道题,好像是贪心性质,就是每次可以跳多远,最后问能不能跳到最右边 ...