Portal架构相关技术汇总

一、什么是Portal?

Portal技术强调以用户为中心,简而言之就是整合现有企业中遗留的各种系统,使之有统一的入口,实现信息的集中访问。

二、Portal中主要应用的功能

1)SSO—Single Sign-On

主要开源SSO协议有

①Jasig CAS

CAS 就是 Central Authentication Service(中央认证服务)的意思,CAS 实际上这是一种 SSO 协议。

②OpenID

OpenID 的创建基于这样一个概念:我们可以通过 URI (又叫 URL 或网站地址)来认证一个网站的唯一身份,同理,我们也可以通过这种方式来作为用户的身份认证。由于URI 是整个网络世界的核心,它为基于URI的用户身份认证提供了广泛的、坚实的基础。

OpenID 系统的第一部分是身份验证,即如何通过 URI 来认证用户身份。目前的网站都是依靠用户名和密码来登录认证,这就意味着大家在每个网站都需要注册用户名和密码,即便你使用的是同样的密码。如果使用 OpenID ,你的网站地址(URI)就是你的用户名,而你的密码安全的存储在一个 OpenID 服务网站上(你可以自己建立一个
OpenID 服务网站,也可以选择一个可信任的 OpenID 服务网站来完成注册)。

与OpenID同属性的身份识别服务商还有ⅥeID,ClaimID,CardSpace,Rapleaf,Trufina ID Card等,其中ⅥeID通用账户的应用最为广泛。

③OAuth

OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。oAuth是Open Authorization的简写

④SAML

SAML(Security Assertion Markup Language)是一个XML框架,也就是一组协议和规范,可以用来传输企业用户身份证明, 主要是企业外的身份跨域传递。比如,公司(idp)的用户要访问SAAS 应用(sp),为了保证身份安全,我们可以采用除了加密签名等措施,还要采用SAML规范来传输,传输的数据以XML形式,内容符合SAML的推荐标准,这样我们就可以不要求idp和sp采用什么样的系统,只要求能理解SAML规范即可,显然比传统的方式更好。SAML
规范是一组Schema 定义。

可以这么说,在Web Service 领域,schema就是规范。

⑤Kerberos

(Kerberos: Network Authentication Protocol)网络认证协议

Kerberos 是一种网络认证协议,其设计目标是通过密钥系统为客户机 / 服务器应用程序提供强大的认证服务。该认证过程的实现不依赖于主机操作系统的认证,无需基于主机地址的信任,不要求网络上所有主机的物理安全,并假定网络上传送的数据包可以被任意地读取、修改和插入数据。在以上情况下,
Kerberos 作为一种可信任的第三方认证服务,是通过传统的密码技术(如:共享密钥)执行认证服务的。

认证过程具体如下:客户机向认证服务器(AS)发送请求,要求得到某服务器的证书,然后 AS 的响应包含这些用客户端密钥加密的证书。证书的构成为: 1) 服务器 “ticket” ; 2) 一个临时加密密钥(又称为会话密钥 “session key”) 。客户机将 ticket (包括用服务器密钥加密的客户机身份和一份会话密钥的拷贝)传送到服务器上。会话密钥可以(现已经由客户机和服务器共享)用来认证客户机或认证服务器,也可用来为通信双方以后的通讯提供加密服务,或通过交换独立子会话密钥为通信双方提供进一步的通信加密服务。

上述认证交换过程需要只读方式访问 Kerberos 数据库。但有时,数据库中的记录必须进行修改,如添加新的规则或改变规则密钥时。修改过程通过客户机和第三方 Kerberos 服务器(Kerberos 管理器 KADM)间的协议完成。有关管理协议在此不作介绍。另外也有一种协议用于维护多份 Kerberos 数据库的拷贝,这可以认为是执行过程中的细节问题,并且会不断改变以适应各种不同数据库技术。

Kerberos又指麻省理工学院为这个协议开发的一套计算机网络安全系统。系统设计上采用客户端/服务器结构与DES加密技术,并且能够进行相互认证,即客户端和服务器端均可对对方进行身份认证。可以用于防止窃听、防止replay攻击、保护数据完整性等场合,是一种应用对称密钥体制进行密钥管理的系统。Kerberos的扩展产品也使用公开密钥加密方法进行认证。

2)资源整合

①iFrame Portlet

iFrame的方式有很多弊端,不建议使用

》使用 Iframe 框架,可能会改变原有应用的 HTML 结构,导致某些脚本无法运行。

》在一个页面中过多的潜入 IFrame,由于不同 IE 版本对于 IFrame 的处理能力各异,可能会出现不可预料的异常效果。

②Web 应用聚合器 (Web Application Integrator)

传统的门户集成方式一般是把业务系统的局部或整体界面嵌入到门户页面中,而 Web 应用聚合器是指在业务系统的页面中嵌入门户的主题导航、显示风格等元素,以让业务系统的操作界面保持与门户系统一致。

②业务模块化集成展现(基于应用接口、业务功能模块的整合)

业务模块化集成,是比较深入的整合方式,可实现很好的集成效果,在此模式中,业务应用与门户之间,业务应用与业务应用之间,利用应用中的接口和函数提供接近实时的集成。在企业门户中,实现业务模块化集成,可以作为企业 ESB 建设的前期尝试和技术积累。一些已经实施了 ESB 项目的企业,利用门户产品可以更大的发挥 ESB 的价值。模块化集成可通过以下技术实现:

》对于纯展现类的信息模块(信息整合),可以利用业务系统中默认提供的底层接口,如 HTML 接口(可以容易通过 HTML Parser 解析的)、XML 接口、Json 接口、Rest 接口等,使用 RAD、Portlet Factory 等开发工具开发实现。此类场景中,门户项目经理及开发工程师主要是需要理清业务系统究竟可以提供哪些现成的接口,利用哪些接口可以更快速的实现开发、部署。

》对于一些标准化产品的模块化集成,比如需要集成 Domino 邮件、SAP 财务模块。一般这些产品会提供多个层面的标准接口,Domino 提供 JAVA/CORBA、JDBC、EJB、Web Service 等方式,SAP 可以提供 BAPI、Web Service 等接口。同时,选择合适的运行、开发平台来加速开发也很重要,例如可以使用 WebSphere Portlet Factory 中开箱即用的构建器(Builder)来来快速生成表单,加速整合进度。

》对于一些交互性模块的集成或者一些非标准化的业务整合需求 ( 应用整合 ),例如需要在门户的内容发布模块直接选择 OA 系统中的公文进行发布,例如需要在门户中实现统一待办等,均需调用这些应用系统的接口,并进行二次开发实现。

增加协作功能,模块化集成方式中,均需基于某些接口进行二次开发,故为了更好的实现集成的价值,尽量在业务模块的实现协作能力,如实现在线感知、实现个人名片等功能,促进人员之间的协作。

》保持松耦合,从企业 IT 运作的角度来说,先前的应用之间彼此独立,每当有新的业务需求产生时,企业的 IT 部门都要做大量的改进工作,耗费大量的人力、物力和财力。使用门户进行应用整合时,需要建立不同应用系统间的松耦合机制,从而为将来开发面向新的业务的应用奠定基础,以最终节省成本。

②数据集成展现(基于业务数据集成整合)

数据集成的另外一层含义包括数据和数据库的集成,包括数据的标识化和编目,包括主数据管理,还包括元数据建模,包括数据在数据库系统中的分布和共享等。在这里,主要是指已经处理好的数据,如何通过门户进行展现的问题。

将业务系统相关的业务数据通过 portlet 技术实现与门户站点内容聚集,在实际集成中会经常遇到。通常业务系统并没有提供相关的业务数据整合功能,门户需要将不同业务功能的业务数据在一个 portlet 做集中展现,或者将某一个业务功能统计的数据部分展现。数据集成展现的主要技术实现如下:

》通过 JDBC、Web Service 等方式,直接访问后台业务系统的数据源,并在 RAD 或 Portlet Factory 中进行 Portlet 开发。

》通过 WebSphere Dashboard Framework 进行 Portlet 开发,利用内置的开箱即用的构建器(Builder)加速对 BI 系统的开发实施,利用内置的图形化引擎 (iLog Jview),实现丰富的展现效果。

》直接利用 iLog Jview 图形化引擎进行 Portlet 开发。

》某些特殊效果,比如动画效果,还可利用 Flex 开发 Flash 格式的 Portlet,然后嵌入到门户中。

3)CMS

门户系统自然少不了内容发布,目前最受欢迎的10个java CMS系统是:

①Walrus CMS  采用的是Spring的框架

②OpenCMS OpenCms基于JAVA和XML语言技术,因此它适合完全融入到现有的系统内部。

③ASbru Asbru 网站内容管理系统是一个全功能易用的、基于数据库的网站内容管理系统(CMS)。内置社区、数据库、电子商务和统计模块。支持多种操作系统以及大多数的数据库系统;支持 .NET、PHP、Java等开发语言。

④Pulse 用Java 开发的 Web 应用框架以及一个Portal解决方案

⑤Magnolia 是一个开源基于Java的Web内容管理系统(CMS) ,构建在Java内容知识库标准(JSR-170).

⑥MeshCMS MeshCMS是一个由java写成的在线编辑系统,.并拥有 cms所包含的一系列特点.但它采用的是非常的传统方法来实现的:如页面是以html文档形式存储的,一些附加的特点均是基于文挡的,且还无须数据库.

⑦Infoglue 是一个高级的、可扩展的、健壮的内容管理系统

⑧Jadasit 一个用Java开发的开源易用的内容管理系统和电子商务系统

⑨Enonic CMS是一个完整的软件平台,包括门户网站,介绍通过各种数字频道和内容管理系统专为中型到大型组织定义的网络战略。

10Apache Lenya 是java的开源内容管理系统。它基于一些标准的技术比如XML 与 XSLT。它其中的代码核心来自于另外一个开源项目Cocoon

4)搜索

门户系统避免不了全站搜索的功能,这个功能需要涵盖所有的子系统中的内容,一下列举用java开发的搜索引擎:

①Lucene

Lucene的开发语言是Java,也是Java家族中最为出名的一个开源搜索引擎,在Java世界中已经是标准的全文检索程序,它提供了完整的查询引擎和索引引擎,没有中文分词引擎,需要自己去实现,因此用Lucene去做一个搜素引擎需要自己去架构.另外它不支持实时搜索

②Nutch

Nutch是一个用java实现的开源的web搜索引擎,包括爬虫crawler,索引引擎,查询引擎. 其中Nutch是基于Lucene的,Lucene为Nutch提供了文本索引和搜索的API.

对于应该使用Lucene还是使用Nutch,应该是如果你不需要抓取数据的话,应该使用Lucene,最常见的应用是:你有数据源,需要为这些数据提供一个搜索页面,在这种情况下,最好的方式是直接从数据库中取出数据,并用Lucene API建立索引.

③Terrier

Terrier是由School of Computing Science,Universityof Glasgow用java开发的一个全文检索系统.

④Galago

是一个用java语言写的关于文本搜索的工具集. 其中包括索引引擎和查询引擎,还包括一个叫TupleFlow的分布式计算框架(和google的MapReduce很像).这个检索系统支持很多Indri查询语言.

⑤Solr

是一个用java开发的独立的企业级搜索应用服务器,它提供了类似于Web-service的API接口,它是基于Lucene的全文检索服务器,也算是Lucene的一个变种,很多一线互联网公司都在使用Solr,也算是一种成熟的解决方案.

⑥Elasticsearch

是一个采用java语言开发的,基于Lucene构造的开源,分布式的搜索引擎. 设计用于云计算中,能够达到实时搜索,稳定可靠. Elasticsearch的数据模型是JSON.

时间: 2024-10-16 01:48:32

Portal架构相关技术汇总的相关文章

【JAVA】基于MVC架构Java技术荟萃案例演练

基于JAVA-MVC技术的顾客管理项目案例总结 作者 白宁超 2016年6月9日22:47:08 阅读前瞻:本文源于对javaweb相关技术和资料汇总,涉及大量javaweb基础技术诸如:Servlet运行原理.Get/Post请求的区别.jsp的基本原理和运行框架.jsp的9大隐含对象的使用.MVC开发模式的使用.构建封装自己dao代码库.以及基于MVC的增删改查操作等:小结最后还有面向接口编程的多数据源配置与存储,以及工厂模式的使用.除此之外,后续文章会对cookie.session.Jav

文档型信息交互设计及相关技术实现

本文信息交互是指办公和经营管理活动中所产生的公众或定向业务信息,以及在信息共享过程中,以业务规则形式衍生出的评论.评价.回复.转发等业务信息延续. 信息交互设计目标 共享业务信息,并支持限定范围 共享的业务信息,可以通过评论.评价.回复.转发等方式进行业务信息延续和推广 把发布信息.延续信息功能设计为通用功能 以信息实例为基本文档单元,衍生信息为其子文档,存储在文档型数据库中(MongoDB) 信息展现形式灵活多样,以模板形式为用提供应用选择 发布信息支持带格式文档,统一采用MarkDown编辑

走进JavaWeb技术世界开篇:JavaWeb技术汇总

微信公众号[Java技术江湖]一位阿里 Java 工程师的技术小站.(关注公众号后回复”Java“即可领取 Java基础.进阶.项目和架构师等免费学习资料,更有数据库.分布式.微服务等热门技术学习视频,内容丰富,兼顾原理和实践,另外也将赠送作者原创的Java学习指南.Java程序员面试指南等干货资源) Java Web是众多技术汇总形成的代名词,展开来说,包括了非常多相关技术. Java发展了20年, 现在已经不仅仅是一个单纯的语言了, 而是一套完整的生态系统, 其中的术语像 HTML, XML

最热web前端技术汇总

Web前段技术发展很快,主流技术日新月异,想想自己刚毕业那会用的asp技术,现在已经很少有主流网站在使用了. 再到后来的J2EE框架,然后SpringMVC大行其道,但是最近各种js框架被广为传播,Html5的推出很是丰富了移动互联网的发展,此文对当前最新的几种web前端技术进行的汇总,让大家更多地了解,然后取其所长,避其所短,快速推出简约大方,维护方便,性能良好的个人网站. JavaScript MV*框架 在相当长的一段时间里,每个程序员都要学会如何利用JavaScript来编写弹出一个警告

关于Web开发里并发、同步、异步以及事件驱动编程的相关技术

一.开篇语 我的上篇文章<关于如何提供Web服务端并发效率的异步编程技术>又成为了博客园里“编辑推荐”的文章,这是对我写博客很大的鼓励,也许是被推荐的原因很多童鞋在这篇文章里发表了评论,有童鞋说我这篇文章理论化很严重,没有实际代码和具体项目做支撑,这个评论让我有种理论和实践脱节的味道,所以我想在这里谈谈我为什么要写这篇文章的原因,这篇文章是把我前不久学习多线程编程的一个总结. 当我从我书堆里找到所有与多线程开发相关的书籍简单阅读后,我发现了一个问题,在java里开发多线程最强有力的实践就是做服

Spark 1.x 爆内存相关问题汇总及解

Spark 1.x 爆内存相关问题汇总及解决 OOM java.lang.OutOfMemoryError # on yarn org.apache.hadoop.yarn.server.nodemanager.containermanager.monitor.ContainersMonitorImpl - Container [<edited>] is running beyond physical memory limits. Current usage: 18.0 GB of 18 GB

亿级商品详情页架构演进技术解密 | 高可用架构系列

亿级商品详情页架构演进技术解密 | 高可用架构系列 --http://mp.weixin.qq.com/s?__biz=MzAwMDU1MTE1OQ==&mid=210272034&idx=1&sn=3be9d2b53c7fec88716ee8affd2515f8&scene=1&srcid=UfXZNNOVZZyZjQmp0VOh&from=groupmessage&isappinstalled=0#rd 此文是开涛在[三体高可用架构群]之分享内容

XMPP协议实现即时通讯底层书写 (三) IOS XMPPFramework --IM底层架构设计+技术准备工作

最近发生了一些不是很愉快的事情,导致断更很长一段时间,很抱歉."不要炫技,理解原理,对自己的代码负责,才能对团队和项目负责"--郭前辈在群里说过的语录,让我很是欢喜和受教.鄙人写第一次写blog是在2011年,那时候写技术blog的初衷是为了写日记:今天我学到了什么知识,技术,记录自己程序猿的成长点滴.随着技术的积累,写blog为了分享:傻逼,如果你也碰到这种问题,这是我的解决方案,看了这些XXX处理好的,可以"抄"这份60分的答案来解决问题.到现在这阶段,写blo

Asp.Net WebAPI及相关技术介绍(含PPT下载)

此PPT讲述了Asp.Net WebAPI及相关Web服务技术发展历史. 共80多页,Asp.Net WebAPI在讲到第36页的时候才会出现,因为这个技术不是凭空产生的,它有着自己的演变进化的历史.我们要先弄清它从哪里来的?然后再说它能做什么事. 这个PPT涉及到的技术名词有: XML-RPC,SOAP,REST, SOA Asp.Net WebForm,WebService, WCF Asp.Net WebAPI, Asp.Net MVC,JSON Asp.Net Routing, MVVM