Sharepoin学习笔记—架构系列—Sharepoint服务(Services)与服务应用程序框架(Service Application Framework) 1
Sharepoint服务是Sharepoint的重要组成,可以说Sharepoint的许多网站功能都是基于这些服务构架起来的。这里把Sharepoint服务的相关要点总结一下。
1、什么是 SharePoint 服务?
SharePoint 服务是一项 IT 服务,它是运行在后台,为调用者提供所需的数据、运算或者功能的代码,当然,它的调用者也可能是其它服务,即一种服务调用另一种服务。
2、服务与应用程序的关系
一个应用程序可以看成是提供一系列服务的集合,它有比较统一和丰富的用户交互界面。如Excel应用程序,它提供的不仅仅是文字编辑和表格处理,还提供了围绕电子表格的一整套各式各样的服务功能。当然,应用程序的范畴远超过服务,在某种程度上它们更偏向于与用户打交道。
而服务则更偏向于专向性和公共性,它是应用程序的组成,你也可把它视为应用程序的插件或一个系统的中间层。比如定时服务,它可以在所有要用到它的应用程序中出现,它更像一个通用模块可以嵌入到所有要用到它的应用程序中去。所以与应用程序相比,它更趋向于后台,更底层一些。
但在Sharepoint中你又会遇到服务应用程序(Service Application)的概念,这可能会让你容易混淆。事实上,服务在Sharepoint中是抽象的东西,它需要被实例化为服务应用程序(Service Application)实例才能真正的提供相应的服务功能。这怎么理解呢?这就是说我们需要把一个服务实例化为一个或多个服务应用程序实例并配置到Sharepoint场中的服务器上具体运行才能真正的提供相应的服务。
为什么要这样做呢?这是因为Sharepoint的服务可能会针对不同的环境和要求提供相应层次的功能级别(如搜索服务,人事部门与销售部门在搜索相关信息时都有不同的限制,各有不同的保密信息),这种级别是通过配置信息来控制的。所以,Sharepoint可以创建一个服务的多个服务应用程序实例,每个服务应用程序实例可以有不同的设置,甚至可以有不同的数据库用于存放服务应用程序单独的数据。而每一个服务应用程序实例也就被称为服务的一个可配置服务器场实例(Configured Farm-Scoped Instantiation) 。
3、服务与Sharepoint场服务器的关系
Sharepoint中的服务与服务器的关系是一对一,一对多或多对多关系,一个服务既可以在一个服务器上运行,也可以在多个服务器上运行。反之,一个服务器可以跑一个服务也可以跑若干个服务。
4、什么是Sharepoint的服务应用程序框架(Service Application Framework )
服务应用程序框架是Sharepoint的一个开发平台,通过此平台,使得开发人员能够构建可伸缩中间层应用程序,这些应用程序可向其他 SharePoint 2010 Web 服务提供数据或处理资源。也就是说让开发人员开发在Sharepoint平台上运行的各种各样的"服务"。
5、是否Sharepoint的所有服务都是基于服务应用程序框架(Service Application Framework)创建的呢?
答案是否定的,并非所有SharePoint 2010服务都是基于服务应用程序架构来构建。例如,订阅设置, 沙盒代码服务服务等。
6、既然Sharepoint有些服务并非基于服务应用程序框架创建,那么Sharepoint场中的服务包括哪些类型呢?
Sharepoint场中的服务可以分成四个种:
第一种、Windows Services :
是指由操作系统承载、可供本地运行的应用程序使用的任何服务。这些服务将在服务器的"控制面板"中的"服务"列表中出现。由于 SharePoint Foundation 的用户界面上显示了这些服务的状态,并且此类服务使用了 SharePoint Foundation 的对象模型,因此管理员和开发人员无需使用"控制面板"即可启动、停止和管理这些服务。如:
管理 :在服务器场部署中,SharePoint Foundation 使用此特殊服务代表服务器场中的所有前端 Web 服务器和应用程序服务器上的管理员执行特权操作。(此服务由不是派生自 SPService 的内部类表示。它以名称"SharePoint 服务"出现在服务器场的每个前端 Web 服务器和应用程序服务器的"服务"列表中。)
搜索: 利用此服务,可在 SharePoint Foundation 部署中搜索内容。在包含多台服务器的服务器场中,此服务将在一台或多台应用程序服务器上运行。
用户代码: 此服务可为管理 SharePoint Foundation 中的用户代码基础结构提供集中设置。它将在所有前端 Web 服务器上运行。
定时服务:管理员能够利用此服务将作业设置为在指定时间运行。它将在所有前端 Web 服务器和应用程序服务器上运行。
数据库服务: 实际上是对已安装的 SQL Server Windows 服务进行的包装。它使 SharePoint Foundation 对象能够访问内容数据库和配置数据库。在多服务器 SharePoint Foundation 部署中,此服务通常只在承载数据库的服务器上运行
SharePoint Foundation 服务的名称以"SharePoint"开头,后跟此服务"所服务"的某类对象的名称。因此,就产生了"SharePoint 数据库"服务和"SharePoint Web 应用程序"服务。但请记住,"SharePoint 数据库"服务本身并不是一个数据库,而是一种提供数据库访问的服务。类似地,"SharePoint Web 应用程序"服务也不是一个 Web 应用程序,而是一种提供 Web 应用程序的内容发布的服务。
第二种、Web Services :
是在网络服务器上承载的一种服务(hosted on a network server),可供在远程客户端上运行的应用程序(如浏览器)访问。如
内容发布服务:使数据和网页可供浏览器访问。此服务在前端 Web 服务器上运行,它是 SharePoint Foundation 中最重要的服务
管理中心: 管理中心的内容是其自身的 Web 应用程序,因此它能够具有自己的进程以及自己的安全策略。 同样,此 Web 应用程序由其自身的 Web 服务提供支持。通常,此服务只在单服务器部署中才在前端 Web 服务器上运行。在其他部署中,此服务将在一台且仅在一台应用程序服务器上运行。
第三种、IIS Web Services
这些服务是在服务应用程序框架上实现的WCF服务,它们在 IIS UI 中显示为 SharePoint Web Services IIS 网站的子"应用程序。如:
业务数据目录: 该 Web 服务支持访问业务数据目录。
Application Discovery and Load Balancer: 该 Web 服务通过发现配置的服务器场范围内的服务实例化 (CFSI) 并使其负载平衡来支持服务应用程序框架。
第四种、Configuration Services
不同于上面三种服务,它主要用于保存配置设置。如:
诊断(也称作跟踪): 此服务支持跟踪统一日志记录服务 (ULS)。它在所有前端 Web 服务器和应用程序服务器上运行。
传入电子邮件: 此服务通常只在一台应用程序服务器上运行,它使 SharePoint Foundation 网站能够接收电子邮件。这样做可以使用户得以通过电子邮件向列表中添加项。
传出电子邮件: 此服务通常只在一台应用程序服务器上运行,它使 SharePoint Foundation 具有电子邮件功能,例如,在列表发生更改时发出电子邮件通知。
工作流计时器 :此服务使用定时工作流事件的配置设置对主要定时服务进行补充。
订阅设置: 此服务支持网站订阅。由于它是 WCF Web 服务,因此具有一些与 IIS Web 服务相同的特征,并且在运行时代表此服务的对象是从 SPIisWebService 派生的对象。但是,它不能实现服务应用程序框架。
上面的四种分类中的后面两种(IIS Web Services与Configuration Services)可基于Sharepoint的服务应用程序框架(Service Application Framework)来创建。Sharepoint Foundation与Sharepoint Server内置的许多服务都是遵循Sharepoint的服务应用程序框架(Service Application Framework)创建的。这些遵循框架创建的服务可以被实例化成多个场范围内的配置实例(CFSIs)。每个配置实例都提供服务功能,但每个又有各自的权限和配置设定。 每个在特定服务器上运行的服务实例,或者CFSI,都由一个SPServiceInstance对象代表。服务应用程序框架的这种工作模式也使得同一服务的不同版本的实例同时运行成为可能。
7、如何访问到基于服务应用程序框架(Service Application Framework)创建的服务呢?
前面我们说了某些服务可实现 SharePoint Foundation 的服务应用程序框架。这些服务可拆分为多个配置的服务器场范围内的实例 (CFSI)。其中每个实例都可提供此服务的功能,但各自有各自的单独权限和设置。
CFSI 不是特定服务器上实际运行的进程。同一 CFSI 可在多台服务器上运行,但它与完全抽象的服务又并不相同。运行 CFSI 的每台服务器都有自己的实际 CFSI 实例(运行进程)。此外,给定服务的多个 CFSI 可在相同的服务器上运行。因此,该框架提供了一种同时 提供同一基本服务的不同版本的方法。前端 Web 服务器上的消费型应用程序可以特定 CFSI 为目标。
想要使用某服务的特定 CFSI 的应用程序可借助代理(Service Application Proxy)来实现这一目的。承载该应用程序的前端 Web 服务器具有一个代表该服务本身的代理和一个代表目标 CFSI 的代理。
8、基于服务应用程序框架(Service Application Framework)创建服务能带来哪些好处呢?
第一、服务可以跨FARM共享
在 Service Application Framework 中,联合功能使服务应用程序能够跨越多台远程服务器。例如,一个服务器场(子服务器场)中的搜索服务应用程序可以从远程服务器场(父服务器场)使用搜索服务应用程序。您不必在子服务器场中安装搜索服务应用程序二进制文件。通过在其他服务器场中安装服务应用程序代理并将其指向在发布服务应用程序时由"管理中心"提供的特定 URI,可以将您的服务应用程序发布到其他服务器场中。这样,企业就可以拥有可为提供的服务(例如搜索和分析)专门配置的专用服务场。然后可以与其他 SharePoint 场共享这些服务。服务必须分别在 SPService 和 SPServiceApplication 派生类上实现 IServiceAdministration 和 ISharedServiceApplication 接口。 这些接口支持 Service Application Framework 服务管理功能,包括 SharePoint 技术服务,通过该服务可以从远程服务器场发现和使用服务。您还可以在管理中心的"服务应用程序管理"页上实现这些接口。
第二、服务更加灵活和可扩展
Service Application Framework 创建的服务需要实例化为服务应用程序。服务器场中可包含任意数目的服务应用程序。Web 应用程序与服务应用程序相关联。可在服务器场以外共享服务应用程序,并且可远程使用这些应用程序。作为开发中间层的平台,服务应用 程序框架(Service Application Framework )支持第三方开发各种各样相关服务并融入到Sharepoint大环境中来,它为服务功能的扩展提供了强大的支持。
第三、支持负载平衡
Service Application Framework 应用程序通常承载在多台计算机上,并可从在前端 Web 服务器上运行的服务客户端应用程序进行调用。必须使用负载平衡器将服务应用程序代理方法调用从前端 Web 服务器传送到适当的应用程序服务器。SharePoint 2010 在 SPRoundRobinServiceLoadBalancer 类中提供了简单的负载平衡器实现。服务应用程序代理可使用内置的负载平衡器将请求传送到适当的后端服务应用程序
第四、统一便捷的管理
Service Application Framework 服务模型提供了一个共享管理用户界面,从而使服务管理协调一致。它提供的共享基础结构使您能够重点关注业务逻辑。您不需要为基本任务或"维护管理"任务(例如创建 Internet Information Services (IIS) 网站、安装安全套接字层 (SSL) 证书、创建虚拟目录、管理应用程序池凭据、管理和缓存分布式设置、对端点进行跟踪和负载平衡或备份和还原数据库)编写代码。SharePoint Foundation 2010 提供了一个高度结构化的服务器端对象模型,以便轻松访问表示 网站的各个方面的对象。
Service Application Framework 可提供与 SharePoint Foundation 2010 管理体验的集成。服务将其管理用户界面插入向管理员提供常规体验的 SharePoint 服务管理页面中。常规 SharePoint 2010 管理工具(如升级、备份/还原和帐户管理)对服务很有帮助,从而提供一个常规用户界面,管理员可使用该界面来管理、启动、停止、分组、关联、联合和备份 SharePoint 2010 服务。服务可以定义它们自己的额外的专门管理角色。还可以将服务管理委派给不是服务器场管理员的用户。在此情况下,管理中心用户界面是经过安全修整的,以便仅显示服务应用程序管理员有权访问的页面。SharePoint 2010 提供一组用于在配置数据库中注册服务的界面。可通过 SharePoint 管理中心网站、Windows PowerShell 命令和 SharePoint 2010 API 管理注册服务
9、Sharepoint都有哪些现成的服务呢
下面列举了Sharepoint提供的一些开箱即用的服务.
a) Access Service :在浏览器中查看与编辑Microsoft Access 2010数据库
b) Application Discovery and Load Balancing Service :发现服务应用程序、提供场的拓扑信息和支持负载平衡
c) Application Registry Services:存储定义在SharePoint 中定义外部数据时如何连接到该外部数据的应用程序定义
d) Business Data Connectivity Services:访问和修改后端业务系统的数据
e) Excel Service Application:在浏览器中查看Excel文件。
f) PowerPoint Service Application:在浏览器中查看、编辑和广播PowerPoint幻灯片
g) Managed Meta Data Service:提供了对企业级托管元数据的存储和管理,同时可以在网站集之间共享内容类型。
h) Performance Point Service:提供了PerformancePoint Services所包含的BI报表功能。
i) Search Service Application :提供了SharePoint 2010的企业级搜索功能。
j) Secure Store Service:用来存储访问其他应用系统的用户凭证信息,这些凭证信息可用于SSO单点登录场景
k) State Service:暂时存储用户的会话(Session)数据
l) User Profile Service:为"我的网站"、配置文件页面、社会化标签和其他社会化功能提供支持
m) Web Analysis Service – 为Web Services提供界面
n) Word Automation Services –批量文档自动转换
o) Visio Graphics Service – 允许用户在浏览器中查看与更新Visio图表。
你可以进入Sharepoint的管理中心并看到这些服务