Объектная модель служб
Дата последнего изменения: 20 апреля 2010 г.
Применимо к: SharePoint Foundation 2010
В этой статье
Объект SPFarm
Объект SPServer
Объекты служб
Клиентские (интерфейсные) объекты
Microsoft SharePoint Foundation 2010 предлагает хорошо структурированную серверную объектную модель, которую можно использовать для доступа к объектам, представляющим различные стороны веб-сайта SharePoint 2010. От объектов верхних уровней можно спуститься вниз по иерархии объектов, чтобы получить объекты, содержащие члены, которые нужно использовать в разрабатываемом коде.
На следующей схеме показаны взаимоотношения между основными классами при реализации приложений-служб в SharePoint 2010. Сплошные стрелки указывают от родительского класса к тому виду дочернего класса, который содержит свойство коллекции родительского объекта. Пунктирная стрелка указывает, что класс SPServiceInstance представляет выполняющийся процесс (экземпляр) службы на уровне фермы, представленной классом SPService.
Рисунок 1. Взаимоотношения классов в Service Application Framework
Объект SPFarm
Объект SPFarm представляет ферму серверов. SPFarm — это верхний уровень иерархии хранилища конфигурации. Ферма серверов — это кластер физических серверов с балансировкой нагрузки. Программное (или аппаратное) обеспечение балансировки нагрузки направляет поступающее от клиентского компьютера входящее сетевое подключение на компьютер фермы, наименее загруженный в данный момент времени. Таким образом, рабочая нагрузка по обслуживанию клиентских подключений распределяется между многими серверами, процессорами, жесткими дисками и другими периферийными устройствами.
Физический сервер представлен объектом SPServer. Помимо членов, которые он наследует от SPFarm, у SPServer есть свойство Address, содержащее IP-адрес сервера, и свойство Role, определяющее роль сервера в ферме. Свойство ServiceInstances содержит ссылки на все экземпляры служб Windows и веб-служб, выполняемые на сервере.
Объект SPServer
Объект SPServer создается при присоединении сервера к ферме SharePoint, SPServer.Local — это объект конфигурации. Список серверов в ферме можно просмотреть в Центре администрирования. SPServer наследует от объекта SPPersistedObject. Объекты, создающие экземпляр SPPersistedObject, хранятся в базе данных конфигурации SharePoint 2010.
Физический сервер в ферме SharePoint 2010 представлен объектом SPServer.У него есть свойство Address, содержащее IP-адрес сервера, и свойство Role, определяющее роль сервера в ферме. Свойство ServiceInstances содержит ссылки на все экземпляры служб Windows и веб-служб, выполняемые на сервере.
Объекты служб
Объекты служб, также называемые серверными системным объектами, предоставляют общие службы клиентским интерфейсным объектам. В число этих объектов входят:
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 в разделе Федерация служб центра администрирования.