Portal架构相关技术汇总
Posted 尔安
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Portal架构相关技术汇总相关的知识,希望对你有一定的参考价值。
一、什么是Portal?
Portal技术强调以用户为中心,简而言之就是整合现有企业中遗留的各种系统,使之有统一的入口,实现信息的集中访问。
二、Portal中主要应用的功能
1)SSO—Single Sign-On
主要开源SSO协议有
①Jasig CAS
CAS 就是 Central Authentication Service(中央认证服务)的意思,CAS 实际上这是一种 SSO 协议。
②OpenID
OpenID 的创建基于这样一个概念:我们可以通过 URI (又叫 URL 或网站地址)来认证一个网站的唯一身份,同理,我们也可以通过这种方式来作为用户的身份认证。由于URI 是整个网络世界的核心,它为基于URI的用户身份认证提供了广泛的、坚实的基础。
③OAuth
OAUTH协议为用户资源的授权提供了一个安全的、开放而又简易的标准。与以往的授权方式不同之处是OAUTH的授权不会使第三方触及到用户的帐号信息(如用户名与密码),即第三方无需使用用户的用户名与密码就可以申请获得该用户资源的授权,因此OAUTH是安全的。oAuth是Open Authorization的简写
④SAML
⑤Kerberos
(Kerberos: Network Authentication Protocol)网络认证协议
①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.
以上是关于Portal架构相关技术汇总的主要内容,如果未能解决你的问题,请参考以下文章