服务对象模型

上次修改时间: 2010年4月20日

适用范围: SharePoint Foundation 2010

本文内容
SPFarm 对象
SPServer 对象
服务对象
客户端(前端)对象

Microsoft SharePoint Foundation 2010 提供了一个高度结构化的服务器端对象模型,您可以使用该模型访问表示 SharePoint 2010 网站各个方面的对象。您可以从级别较高的对象开始,逐步深入对象层次结构,以获取包含需要在代码中使用的成员的对象。

下图显示实现 SharePoint 2010 的 Service Application Framework 时主要类之间的关系。实心箭头从父类指向父对象的集合属性中保存的子类类型。虚线箭头指示 SPServiceInstance 类表示由 SPService 类表示的场范围服务的正在运行的进程(实例)。

图 1. 服务应用程序框架中的类关系

服务应用程序框架中的类关系

SPFarm 对象

SPFarm 对象表示服务器场。SPFarm 是配置存储层次结构的顶层。服务器场是物理服务器的负载平衡群集。负载平衡软件(负载平衡硬件)将来自客户端计算机的传入网络连接定向到场中当时最空闲的计算机上。因此,为客户端连接提供服务的工作负荷将分发到很多服务器、处理器、硬盘和其他外围设备上。

物理服务器由 SPServer 对象表示。除了从 SPFarm 继承的成员之外,SPServer 还具有 Address 属性和 Role 属性,前一属性保存服务器的 IP 地址,后一属性标识场中服务器的角色。ServiceInstances 属性保存对服务器上运行的所有 Windows 服务和 Web 服务实例的引用。

SPServer 对象

SPServer 对象是在服务器加入 SharePoint 服务器场时创建的;SPServer.Local 是配置对象。可以在"管理中心"查看场中的服务器列表。SPServer 继承自 SPPersistedObject 对象。实例化 SPPersistedObject 的对象保留在 SharePoint 2010 配置数据库中。

SharePoint 2010 场中的物理服务器由 SPServer 对象表示。它具有 Address 属性和 Role 属性,前一属性保存服务器的 IP 地址,后一属性标识场中服务器的角色。ServiceInstances 属性保存对服务器上运行的所有 Windows 服务和 Web 服务实例的引用。

服务对象

服务对象也称为后端系统对象,它们向客户端前端对象提供共享服务。这些对象包括:

SPService

SPService 类表示在服务器场中提供或安装的服务。

每个 SPService 对象都具有一个 Instances 属性,该属性保存在场中的各台服务器上运行的所有服务实例。任何一台服务器上只能运行每项服务的一个实例,但有些服务有多个实例,分别运行在不同的服务器上。每个实例由从 SPServiceInstance 派生的类的一个对象表示。

SPServiceInstance

SPServiceInstance 类表示场中的服务器上的服务实例。服务实例提供可伸缩性和容错。服务实例独立于同一类型的所有其他服务器实例,但是在功能方面相同。SPServiceInstance 对象是在场中的服务器上安装服务时创建的。服务实例需要正在运行的服务应用程序才能使用。运行服务的每台计算机都具有自己的服务实例,服务实例可以启动和停止。如果给定服务的一个服务实例正在运行,则该服务可以完全正常运行。服务实例为服务应用程序提供主机进程。开发人员可以通过编程方式启动或停止服务实例,服务器场管理员可以通过管理中心在"系统设置"的"管理服务器上的服务"部分启动或停止服务实例。

使用 Provision() 可以启动(设置)服务实例。在 Windows PowerShell 中,使用 get-SPServiceInstance 可以确定服务器上安装的服务集合。

SPServiceApplication

服务实例承载服务应用程序。如果没有服务实例,则服务应用程序无法使用。服务应用程序包含特定于应用程序的数据和设置,并且提供包含管理员设置的服务接口。服务应用程序可以控制用户数据。

每个服务应用程序都与所有其他服务应用程序隔离开来。例如,财务搜索服务应用程序与人力资源搜索服务应用程序隔离开来,即使这两个服务应用程序在同一服务器场中承载也是如此。

通常是创建服务应用程序的服务器场管理员使用 SPServiceApplication。服务器场管理员可以使用下列几项中的任何一项创建 SPServiceApplication 对象:

  • 场配置向导

  • 评估模式安装(独立安装)

  • 管理中心中的"新服务应用程序"页

  • Windows PowerShell

SPServiceApplicationCollection 是一项服务的服务应用程序集合,并在管理中心的"管理服务应用程序"中使用。

SPIisWebServiceApplication

SPIisWebServiceApplication 类可实现 ISharedServiceApplication 接口并且允许通过拓扑服务发布(公布)服务应用程序。

客户端(前端)对象

客户端应用程序与后端服务通信。客户端是启动通信的应用程序。服务是等待客户端与其通信并响应通信的应用程序。客户端服务对象包括:

SPServiceProxy

服务代理表示安装在服务器场中的服务客户端。

SPServiceProxy 对象是 SPServiceApplicationProxy 对象的父项。它是服务器端的 SPService 对象(SPServiceApplication 的父项)的等效项。还可以将这些父对象视为子对象的类工厂。

SPServiceApplicationProxy

SPServiceApplicationProxy 对象表示与服务应用程序的连接,并且提供服务应用程序的公共(前端)接口。SPServiceApplicationProxy 支持连接到远程服务器场,并且允许客户端代码使用远程服务应用程序。不能在本地安装服务应用程序,因此不能从客户端直接调用它们。

SPServiceApplicationProxy 随服务应用程序自动创建。至少,服务代理应该转发对远程服务应用程序的调用。还可以从 SPServiceApplicationProxy 位置实现有关与服务应用程序的连接的其他逻辑。

服务器场管理员可以在管理中心的"服务联合"部分明确创建 SPServiceApplicationProxy。

请参阅

引用

SPFarm

SPService

SPServiceInstance

SPServiceApplication

SPServiceApplicationProxy

SPServiceProxy

概念

服务器和网站体系结构:对象模型概述