如何在SharePoint Server中整合其他应用系统?

说到在SharePoint Server中整合其他应用系统,其实是一个挺复杂的问题,需要考量多方面的问题,并在各种选项中做出最佳的选择。在这篇blog中,将SharePoint Server在整合这方面的方法比较系统的描述一下,希望对大家有帮助。这篇blog里面说的SharePoint Server是泛指,并不针对特定的SharePoint Portal Server 2003或Office SharePoint Server 2007。

看到这里,可能会有朋友问了,整合应用系统?这不是BizTalk Server应该干的活吗?是的,EAI(企业应用集成)正是BizTalk Server的强项。但是首先,BizTalk Server更擅长的在应用层对各个应用和系统进行整合,也就是说,BizTalk Server和各个系统打交道的方式大多数是通过这些系统的各种API,而在很多场合我们除了在应用层需要对各个系统进行整合之外,我们还希望在界面上对各个应用也能有整合,也即展现层的整合,展现层的整合能够让用户在一个统一的界面上访问和操作多个应用系统,看到各个系统中的信息。对于展现层的整合,我们同样需要有一个基于Web的平台来干这个,而这就是SharePoint Server的强项了。

其次,很多时候我们可能不一定需要BizTalk Server这样的“重型武器”,在文章的后面我们会看到,只有在某些复杂的场合,更确切的说,是客户已经有了较多的应用,而且各个应用间的确有互联、整合、集成的需求,才有BizTalk Server的用武之地。

一般,我们将SharePoint Server的应用整合方式分为下面的四种(下面的图片摘自PPT,所以非常抱歉比较大):



第一种:基于Web界面的整合

这种方式简单来说,就是直接把其他系统的Web界面直接拿过来,放到SharePoint Server的页面上去,让用户可以在SharePoint这一个界面里面能够访问到其他系统。

这种方式是几种整合方式中最简单的一种,但是简单并不意味着不实用,有的时候,基于Web界面的整合可能就是最好,也是最省事的方法。使用这个方法有一个先决条件,就是要整合的应用必须有Web展现,否则就无从谈起了,幸好现在是一个Web大行其道的年代,几乎大部分企业应用系统都是通过Web方式展现给客户的。

SharePoint Portal Server 2003中已经提供了两个现成的Web Part,来帮助我们完成基于Web界面的整合。第一个是网页查看器Web Part,给它一个URL,它能把指定的页面以IFrame的方式直接嵌到SharePoint页面中。另外一个是网页截取器Web Part,它能让我们指定一个网页中的一个部分,然后它会自动把这个部分截取下来,显示在SharePoint页面中,而且我们还能指定一个更新周期,这个Web Part会隔一段时间就检测指定的网页是否发生的变化,然后更新要显示的网页部分块。

当然,除了使用SharePoint自带的Web Part之外,我们还可以用自己的方式,来进行这种进行Web界面的整合。只要你的方法基本原理是将另外一个应用系统的Web界面弄到SharePoint里面,那么就应该属于这第一种方法。

使用基于Web界面的整合可能遇到的一大挑战就是单点登录(SSO),因为要整合的那个Web应用很可能是需要登录后才能访问的,而用户显然不希望在SharePoint里面查看另外一个应用系统的信息时,还需要再登录一次,所以我们需要帮助用户来自动完成这个登录过程。

第二种:基于数据源的整合

由于某种原因,比如要整合的系统根本就没有Web展现,或者SSO不好做,难以整合,同时用户也只需要能够在SharePoint里面看到那个系统里面的数据而已,并不需要做什么交互操作(比如,客户只需要看到上个月的销售数据报表,或者客户信息表),而且我们也可以直接访问到要整合的系统的数据库,那么用这第二种方法也许是一个不错的主意。

基于数据源的整合,就是直接去连接要整合系统的数据库,然后利用某些Web Part将一个表、或者多个表的数据直接展现出来。SharePoint提供了现成了Web Part,允许我们使用ODBC方式去连接任何数据库,然后把数据展现在SharePoint页面上。当然,自己做一个定制的展现数据库数据的Web Part也并不是一件难事。

这种方法的一个重要好处是,你根本不需要考虑那个应用系统是怎么做的、如何做的、接口是什么,只要你能访问到它的数据库,就能搞定。

基于数据源的整合有一个重要的前提条件,就是你知道要整合的系统数据库在哪、如何访问,以及了解它的数据库结构(数据字典),就是说,你要清楚的知道,应该将哪个Database的哪个Table的哪些Field的数据展现出来,才是客户想看到的数据。

第三种:点对点的整合

点对点的整合是指,让开发人员开发出定制的Web Part,在Web Part的代码里面,访问要整合的系统的特定的API(可能是各种类型的,比如Web Service,或者对象模型),以在Web Part里面来完成某件任务。由于可能需要针对每一个应用系统,甚至应用系统中的每一项功能,来开发出一个对应的Web Part,所以这种方法被成为点对点的方法。

点对点整合可以带来最大的灵活性和最大的功能性,因为只要其他的应用系统带有相应的接口,我们就可以在Web Part里面完成任意的功能:从其他应用系统中获取数据、与其他应用系统进行交互操作,等等。

但这种方法也有自己的前提。首先,要整合的应用系统必须有相应的接口,如果面对一个根本就没有考虑过被第三方访问,根本没有设计任何API的应用,那就没法子了(这种类型的应用系统并不少见!)。其次,如果有API,Web Part开发人员还需要了解这些API,知道怎么调用,调用哪个才是自己需要的,有很多应用系统是非常复杂的,提供了庞大繁杂的API,如果不熟悉这些应用系统的接口,学习成本还是不小的。

点对点整合的一个典型例子就是专门访问SAP系统的SAP iView Web Part Toolkit,另外,对于如何将SAP整合到SharePoint里面,这个网站是非常有价值的:www.microsoft-sap.com/interop.aspx

第四种:应用集成方式的整合

终于,在面对最复杂的场景,我们要用上BizTalk Server这样的EAI服务器了。如果我们需要整合多个系统,比如在一个Web Part里面能够操作多个系统按照某个流程完成某项任务,那么使用这种整合方式应该是最合适的了。

在这种方式里面,我们需要有一台专门的应用集成与整合服务器,通过它与各个应用系统打交道,在它上面完成业务流程的编制和创建,然后通过在Web Part中调用这个应用集成与整合服务器的接口,来完成整合功能。

OK,现在,我就将最常见的四种整合方式介绍完了,最后,我想让大家了解一下Office SharePoint Server 2007中提供的一个新的,用于进行应用整合的组件:Business Data Catalog。



上面的图片(同样摘自某张PPT,所以再次抱歉图片较大)展示了BDC的整体架构和作用。BDC提供了一种中间层,在这个中间层里面,我们可以定义出数据的Metadata,然后BDC会根据Metadata,从后台的应用系统中将相应的数据抽取上来,以供SharePoint Server使用。

在BDC中,我们首先可以定义Application,Application基本对应于应用系统,然后,我们可以在一个Application中定义多个Entity(实体,比如“客户”、“员工”),基于Entity,我们可以再定义它的属性、方法、动作。将这些Metadata定义好了之后,BDC就能够透过两种方式根据Metadata从后端应用系统中得到这些Entity的数据:一种是使用ADO.NET直接去访问数据库,一种是去访问后端应用系统的Web Service接口。

BDC从后端应用系统中将定义好的数据抽取上来之后,SharePoint Server 2007中有自带的Web Part能够直接显示这些数据,而且可以对这些数据进行过滤查询等等,另外,SharePoint Server 2007的搜索引擎可以将BDC数据作为内容源进行检索,这样,SharePoint Server 2007无形中就实现了对业务系统的数据搜索功能了。当然,BDC也提供了完善的API,让我们能够在自己的应用或者Web Part里面访问BDC中抽取出来的数据,或者将更新的数据写回到后端应用系统中。

BDC的出现,大大扩展了SharePoint Server对第三方应用系统的整合能力,通过BDC,大大简化了对后端业务系统中的数据访问、操作、搜索。关于BDC的更详细信息,请参考SharePoint Server 2007 SDK里面的相关内容

原文地址:https://www.cnblogs.com/kaneboy/p/2436909.html