RSS

Monthly Archives: 十月 2006

《SharePoint Portal Server 2003 深入指南》开放了两个章节在线阅读

感谢电子工业出版社与博文视点,《SharePoint Portal Server 2003 深入指南》现在已经在CSDN站点上开放了两个章节的免费在线阅读:《第8章 SharePoint的备份及恢复》与《第9章 Windows SharePoint Services对象模型》。您可以在这里直接阅读。

 

Posted by on 2006/10/31 in 未分类

4 Comments

Tags:

如何在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里面的相关内容

 

Posted by on 2006/10/30 in 未分类

5 Comments

Tags:

Visual Studio Extensions for SharePoint Services, Really Cool !

什么是Visual Studio Extensions for SharePoint Services?不妨Google一下。从下面的几张PPT截图,你也可以略为了解一二:



 

Posted by on 2006/10/27 in 未分类

5 Comments

Tags:

SharePoint中文信息搜索中心

受到Lawrence Liu的启发,我在live.com上创建了一个专门的SharePoint中文信息搜索中心,把一些SharePoint技术相关的中文站点和blog都放在了里面,这样大家找SharePoint的中文资料应该会更方便一点。

访问SharePoint中文信息搜索中心:search.live.com/macros/kaneboy/sharepoint

 

Posted by on 2006/10/25 in 未分类

2 Comments

Tags:

SharePoint Portal Server 2003数据库迁移指南

SPS2003的数据库迁移应该是一个常见的维护操作。比如,在我们安装SPS2003时,很可能将其使用的SQL Server也一起安装在同一台服务器上,但是随着时间的流逝,SPS2003门户网站里面的内容越来越多,访问量越来越大,SQL Server的负荷也会越来越重。这个时候,SPS管理员就可能需要认真考虑一下是否将SQL Server服务器迁移到另一台性能更好的服务器上。这样,就带来了SPS2003数据库迁移的问题。

微软对于如何将正在运行的SPS2003的数据库进行迁移,有标准的解决方案。简单来说,就是首先使用SPS2003备份和恢复工具将SPS2003门户网站完整的备份下来,然后在SPS2003上删除全部原有门户,然后更新配置数据库到新的SQL Server服务器上,然后使用SPS2003备份和恢复工具来恢复门户网站,这样,门户网站的内容数据库就也迁移到新的SQL Server服务器上了。

微软标准解决方案的具体步骤,请参看微软站点上的《How to move the databases that are used by SharePoint Portal Server 2003 to a computer that is running SQL Server》一文。

除了这个官方解决方案之外,我在这里还看到过一个非官方的方案,很有意思,而且要比官方方案要更简捷一些。我将这个方案整理了出来,您可以直接参考:

1、将SPS使用的三个数据库全部完整备份下来(这三个数据库的名字分别以_Prof, _Serv和_Site结尾)。这个步骤非常非常重要,保存好备份后的文件!!
2、在新的服务器上安装好SQL Server,然后以同样的名字创建那三个数据库,使用SQL Server的恢复数据库功能将备份好的数据库恢复到这台服务器上。注意,备份/恢复数据库的操作,可能并不会将原有的安全权限信息完整复制到新的服务器上,请手工操作,确保新的SQL Server服务器上的安全设置与原有的保持一致。
3、备份好SPS门户网站对应磁盘根目录下的web.config文件。
(以下的步骤会使SPS门户站点暂时不可用,建议干脆暂时停止用户对SPS门户站点的访问)
4、打开SharePoint Portal Server管理中心。
5、进入“指定组件设置数据库服务器”,勾掉“使用与配置数据库相同的服务器”复选框,在下面的“服务器名称”文本框中填入新SQL Server服务器名称,确定。
6、进入“指定内容数据库服务器”,勾掉“使用与配置数据库相同的服务器”复选框,在下面的“服务器名称”文本框中填入新SQL Server服务器名称,确定。
7、进入“列表和管理门户网站”,选择相应的门户网站,删除它,在删除确认页面,勾选“删除所有数据库”。
8、点击管理中心左侧的“Windows SharePoint Services”,进入到WSS管理中心。
9、进入“设置服务器配置数据库”,在“数据库服务器”文本框中填入新的SQL Server服务器的名称,确定。
10、点击左侧的“SharePoint Portal Server”,回到SPS管理中心。
11、进入“配置服务器拓扑结构”,确认在“数据库服务器设置”区域下面的所有数据库服务器设置都使用了新的SQL Server服务器名称,确认在“组件分配”区域下面,Web、搜索、索引、作业这几个服务器角色仍然是使用的当前的Web服务器。点击“关闭”按钮。
12、进入“列表和管理门户网站”,点击“恢复门户网站”,在恢复门户网站页面填入新的SQL Server服务器的名称和其他相关信息,确定。
13、将第3步备份的web.config拷贝回SPS门户网站对应的磁盘根目录下。如果web.config里面有对原来SQL Server服务器的引用,那么将这些引用更新到指向新的SQL Server服务器。
14、打开SPS门户网站,确认数据库迁移已经成功了。在门户网站的新闻区域,可能会增加一条新的新闻列表,把它删除即可。

最后要提醒的是,不管你是使用哪种方案来做数据库迁移,之前一定要先做好备份的两个步骤:第一个步骤是使用SPS2003备份和恢复工具,对整个门户网站进行完整备份,第二个步骤是使用SQL Server的数据库备份来将SPS2003所使用的所有数据库进行完整备份。

 

Posted by on 2006/10/24 in 未分类

3 Comments

Tags:

一篇关于Content Type的文章

Sunmoonfire在他的blog上面增加了一篇关于SharePoint Server 2007里面Content Type特性的文章。另外,Sunmoonfire的blog也值得SharePoint爱好者订阅。

 

Posted by on 2006/10/20 in 未分类

3 Comments

今天在CSDN聊天室聊SharePoint的点点滴滴

非常感谢所有参与的朋友,当然还有陈曦。现在你可以在这里看到聊天记录。

 

Posted by on 2006/10/20 in 未分类

1 Comment

SharePoint Server 2007 深度培训

11月份,开发合作部的Ocean会在四个城市(北京、上海、广州、深圳)连开四场SharePoint Server 2007深度培训,这个培训基本上覆盖了SharePoint Server 2007的方方面面,内容非常全面。如果你想马上对SharePoint Server 2007进行一次深入的培训,强烈建议你参加。

 

Posted by on 2006/10/19 in 未分类

3 Comments

SharePoint列表计算栏的公式中,可是使用哪些函数?

今天有网友给我写邮件,说到他在阅读《SharePoint Portal Server 2003 深入指南》一书时,在讲到列表计算栏的公式时,书中只写了“计算值公式还支持很多函数,读者可参考SharePoint帮助文档做更深入的理解。”于是,这位网友问我在SharePoint列表计算栏中的公式里面,可以使用的函数到底有哪些。

说实话,我还真从来没有了解过到底有哪些函数可以用,于是在SharePoint的各个指南和帮助文件中找了一番,最终把这个问题的答案确认了。

我将所有可用的函数列表放在了这个页面(已可访问),如果要了解每个函数的确切用法,可以使用SharePoint帮助文档的搜索功能,直接搜索函数的名字即可。

 

Posted by on 2006/10/19 in 未分类

3 Comments

Tags:

SharePoint Server 2007 Web内容管理中的几个关键概念

Master Page:母版页,用来定义页面的主要结构、显示样式。

Content Type:内容类型,SharePoint Server中用内容类型来定义页面的类型,比如“新闻页面”、“纯文字内容页面”等。通过定义一组Column,它决定了在一个页面上可以显示哪些信息。

Page Layouts:页面布局,定义页面如何将信息显示出来。每个Page Layouts都使用一个Master Page,同时与一个Content Type关联,这样,每个Page Layouts就可以定义出如何在页面上将Content Type中定义的信息显示出来,即Content Type中每个Column中的信息显示在页面上的哪个地方。通常,我们会在Page Layouts上面放一些Field Control,每个Field Control对应到一个Column。

Page:页面,其实SharePoint Server里面的Page不是一个真正的页面文件。当我们创建新的Page时,会选择创建哪种Content Type的Page,然后,SharePoint会让我们从某个Page Layouts(当然这里可供选择的Page Layouts必需是和这个Content Type相关联的)中选择一个,最后,通过输入Content Type中定义的Column的值,一个Page就创建完成了。每个Page都只是一个保存在Pages列表里面的一个ListItem。

页面输出的步骤:
1、用户从客户端请求访问一个页面。
2、SharePoint从Pages列表中找到这个请求页面对应的ListItem。
3、根据ListItem的对应栏的值,SharePoint找到它相关联的Page Layouts,把Page Layouts上的信息取出来。
4、根据Page Layouts的定义,把其使用的Master Page的信息取出来。
5、运行页面。
6、页面上的Field Control会从页面对应的ListItem的相应栏里面把值取出来,显示在Field Control里面。

 

Posted by on 2006/10/17 in 未分类

4 Comments

Tags: