Интеграция: Интеграция SQL Server 2008 R2 Reporting Services и SharePoint 2010

Ален Ле Марканд

SQL Server и SharePoint всегда неплохо «дружили». Тем не менее в SharePoint Server 2010 и SQL Server 2008 R2 внесены существенные улучшения в плане интеграции между SharePoint и SQL Server 2008 R2 Reporting Services (SSRS). В этой статье я расскажу, как настраивать и использовать эту новую функциональность.

Архитектура интеграции серверов

Модуль Reporting Services для SharePoint — именно то, что обеспечивает интеграцию этих двух серверов. Он доступен для бесплатной загрузки с центра Microsoft Download Center и его нужно устанавливать на все клиентские веб-интерфейсы (Web Front End, WFE) серверов SharePoint 2010, нуждающиеся в интеграции с Report Server. На рис. 1 показана архитектура интеграции компонентов.

В клиентском веб-интерфейсе SharePoint 2010, модуль устанавливает три компонента: прокси SSRS, веб-часть «Средство просмотра отчетов» (Report Viewer) и страницы приложений, позволяющих просматривать, хранить и управлять содержимым сервера отчетов на сайте или ферме SharePoint. Прокси SSRS обеспечивает связь между клиентским веб-интерфейсом и сервером отчетов. На странице Central Administration Reporting Services в SharePoint задают прокси для сервера отчетов, к которому нужно получить доступ, а также метод проверки подлинности и учетные данные для доступа к серверу. Чтобы интеграции заработала, необходимо настроить сервер отчетов для работы в режиме интеграции с SharePoint.

Figure 1: Server Integration Architecture

Рис. 1/ Архитектура интеграции серверов

Обратите внимание, что на рис. 1 на сервере отчетов присутствует компонент «Объектная модель SharePoint». Чтобы сервер отчетов «понимал» информацию отчетов, хранящуюся в SharePoint, и был в состоянии обеспечить ее безопасность, он должен иметь возможность взаимодействовать с базами данных конфигурации и содержимого SharePoint, установленного на компьютере или ферме. Этого можно добиться, установив на сервере отчетов SharePoint в минимальной конфигурации и присоединив его к ферме.

Версия SharePoint, устанавливаемая на сервере отчетов, должна совпадать с версией на ферме. Это нужно, только если сервер отчетов работает на отдельном компьютере. Если же SharePoint и службы Reporting Services установлены на одном компьютере, нужно лишь установить модуль Reporting Services для SharePoint.

Настройка интеграции

В целом, настройка интеграции SharePoint 2010 и SQL Server 2008 R2 упростилась. Последовательность конфигурирования, зависит от того, что уже установлено. Даже если начинать с нуля или с существующего экземпляра, главное — чтобы все основные компоненты были установлены до начала настройки прокси SSRS в SharePoint. Для достижения наилучших результатов при интеграции служб Reporting Services сервера SQL Server 2008 R2 с SharePoint 2010 рекомендуется следующий порядок (речь идет об установке с нуля):

  1. Запустите установщик SharePoint 2010, который установит подключаемый модуль SSRS 2008 R2 для SharePoint.
  2. Установите и настройте SharePoint 2010 как ферму.
  3. Повторите шаги 1 и 2 на сервере отчетов, если клиентский веб-интерфейс SharePoint установлен на другом компьютере, и настройте его так, чтобы он подключался к ферме SharePoint, созданной на шаге 2.
  4. Установите SQL Server Reporting Services в режиме интеграции с SharePoint.
  5. Настройте прокси SSRS, используя страницу служб интеграции Reporting Services, и запустите службы Reporting Services.

Если на сайте в меню Документ/Новые (Document/New) не видно типов содержимого служб Reporting Services, их нужно добавить вручную. О том, как это делать, см. раздел Интеграция с построителем отчетов версии 3.0.

В данной ситуации случае в качестве для базы данных SharePoint я бы использовал SQL Server, а не версию Embedded Edition, которая применяется в SharePoint по умолчанию. Если планируется установить все компоненты на одной машине, шаг 5 лишний. Шаги 1 и 2 можно выполнить в процессе установки SQL Server.

Если SharePoint уже установлен, скачать и установить модуль можно позже. В процессе установки добавляются необходимые страницы Центра администрирования SharePoint, а также новые типы содержимого сервера отчетов в существующие библиотеки SharePoint на сайтах, созданных на основе шаблонов Business Intelligence Center (BI).

На стороне SharePoint можно настроить интеграцию с SharePoint Server 2010 или SharePoint Foundation 2010. Оба продукта поддерживают установку служб Reporting Services. При установке SharePoint и службы Reporting Services на разных машинах необходимо установить ту же версию SharePoint на сервере отчетов. Например, нельзя устанавливать SharePoint Foundation 2010 на сервере отчетов, если в качестве веб-интерфейса используется SharePoint Server 2010.

Установка надстройки очень проста; нужно всего лишь указать свое имя и название компании. Если вы устанавливаете SharePoint впервые, нужно установить надстройку перед установкой SharePoint; это выполняется автоматически при запуске предварительных условий SharePoint 2010.

Настройка сервера отчетов очень проста. Вот основные соображения:

  • редакция SQL Server должна быть Standard, Enterprise или выше;
  • в базах данных сервера отчетов следует включить режим интеграции с SharePoint;
  • если SharePoint и сервер отчетов установлены на разных машинах, потребуется установить сервер SharePoint в минимальной конфигурации и присоединить к ферме на сервере отчетов.

Сервер отчетов реализован как отдельная служба Windows, которая работает под встроенной учетной записью либо локальной или доменной учетной записью пользователя Windows. В режиме интеграции с SharePoint учетная запись службы сервера отчетов автоматически конфигурируется так, что получает необходимый доступ к конфигурации SharePoint и содержимому базы данных, а также к ресурсам объектной модели SharePoint. Это происходит при настройке интеграции служб Reporting Services с SharePoint средствами страницы интеграции служб Reporting Services.

В режиме интегрированной проверки подлинности Windows при подключении к серверу отчетов через клиентский веб-интерфейс происходит олицетворение пользователя Windows, вошедшего в систему SharePoint. Когда проверка подлинности проходит в режиме доверенной учетной записи, контекст вошедшего в систему SharePoint пользователя передается на сервер отчетов как маркер пользователя SharePoint. Для подключения средствами клиентского веб-интерфейса SharePoint к серверу отчетов используется учетная запись пула приложений этого интерфейса. Информацию о конфигурировании учетной записи службы вы найдете в статье Настройка служб Reporting Services для интеграции с SharePoint 2010».

Если службы Reporting Services уже установлены в конфигурации по умолчанию, база данных служб Reporting Services работает в основном режиме. Чтобы перейти в режим интеграции с SharePoint придется вернуться к средству конфигурации служб Reporting Services, а изменить режим на странице настройки базы данных.

Основной режим сервера отчетов можно сменить на режим интеграции с SharePoint в любой момент, однако это не приведет к преобразованию существующей базы данных. Каждый раз при переключении необходимо либо создать новую базу данных, либо подключиться к уже существующей.

Перед настройкой прокси Reporting Services в SharePoint необходимо проделать еще одно изменение конфигурации — убедиться, что в веб-приложениях не разрешен анонимный доступ. Это не помешает настройке прокси Reporting Services, но пытаясь просмотреть отчеты, пользователи будут получать ошибку. Можно использовать проверку подлинности Windows или проверку подлинности на основе заявок (claims-based authentication), предоставляемую другими провайдерами проверки подлинности, а при настройке интеграции сервера отчетов и фермы SharePoint, каждое веб-приложение SharePoint можно настроить на использование разных провайдеров проверки подлинности.

Подключаемый модуль создает для службы Reporting Services новый раздел на странице (General Application Settings) Центра администрирования SharePoint (SharePoint Central Administration). На странице «Интеграция со службами Reporting Services» (Reporting Services Integration) вводится URL-адрес сервера отчетов и информация для проверки подлинности, а также выполняется активация служб Reporting Services на всех или выбранных наборах сайтов фермы.

Рис. 2. Настройка прокси Reporting Services

Процесс настройки интеграции заканчивается заполнением страницы, показанной на рис. 2.

Интеграция с Построителем отчетов версии 3.0

Основное преимущество интеграции SharePoint и службы Reporting Services заключается в том, что она позволяет пользователям создавать, изменять и публиковать отчеты в SharePoint. Службы Reporting Services предоставляют несколько готовых типов содержимого, служащих для управления различными файлами, в том числе файлами общих источников данных отчетов (.rsds), модели Report Builder (.smdl), а также файлами определений отчетов Построитель отчетов (.rdl). После настройки интеграции необходимо включить новые виды содержимого в библиотеки, чтобы пользователи могли создавать и управлять этими новыми типами содержимого, пользуясь лентой и контекстными меню.

Если используется шаблон сайта BI Center, ничего не надо делать — типы содержимого автоматически доступны из-за применения шаблона и для всех сайтов, созданных с использованием этого шаблона. Для всех остальных сайтов и библиотек документов необходимо выполнить двушаговую настройку: сначала нужно разрешить управление типами содержимого (Content Type Management) в библиотеке (по умолчанию оно отключено), а затем включить поддержку типов содержимого в библиотеке. Подробно о включении управления типами содержимого в библиотеке документов см. статью Как добавить в библиотеку типы содержимого сервера отчетов (службы Reporting Services в режиме интеграции с SharePoint).”

После добавления этих новых типов содержимого в библиотеку в раскрывающемся списке «Новый документ» (New Document) на вкладке «Документы» (Documents) появятся три новых элемента. Теперь, если выбрать элемент «Отчет» Построителя отчетов, на клиентский компьютер будет загружен и запущен Построитель отчетов версии 3.0 (Report Builder 3.0). Это поведение можно изменить средствами Центра администрирования SharePoint. Страница «Значения по умолчанию для сервера служб Reporting Services» (Reporting Services Server Defaults) позволяет отключить этот элемент, а также настроить альтернативный URL-адрес для отчетов.

Использование веб-части «Средство просмотра отчетов» на сайте SharePoint

Веб-часть «Средство просмотра отчетов» (Report Viewer Web Part) — пользовательская веб-часть, которая устанавливается при установке модуля Reporting Services. Она позволяет просматривать, искать, экспортировать и печатать отчеты на сервере отчетов. О том, как разместить веб-часть на странице, см. статью «Как добавить на веб-страницу веб-часть “Как добавить на веб-страницу веб-часть «Средство просмотра отчетов» (службы Reporting Services в режиме интеграции с SharePoint).”

Каждая веб-часть средства просмотра отчетов в каждый момент времени воспроизводит один отчет, созданный на основе файла с расширением .rdl, на который указывает абсолютный URL-адрес в свойстве «Отчет» (Report). URL-адрес должен содержать полный путь к отчету на текущем сайте SharePoint или на сайте в пределах того же веб-приложения или фермы. Этот URL должен принадлежать библиотеке документов или папке в библиотеке документов, которые содержат отчет. URL отчета должен включать расширение файла .rdl. Если для отчета нужны файлы модели или общий источник данных, эти файлы не нужно указывать в URL. В отчете содержатся ссылки на файлы, в которых он нуждается.

Проверка подлинности на основе заявок и службы Reporting Services

Одной из новых возможностей в SharePoint Server 2010 — поддержка проверки подлинности на основе заявок. В поддерживающих проверку подлинности на основе заявок приложениях (claims-aware application) клиент предоставляет приложению так называемую «заявку», которая содержит определенную информацию о пользователе, такую как имя пользователя, адрес электронной почты или имя менеджера. Это предоставляет приложению больше информации, чем оно получает средствами Kerberos. Возьмем, к примеру, приложение для организации закупок. Две заявки из переданных приложению могут содержать адрес электронной почты менеджера и лимит на закупки пользователя. В приложении, не поддерживающем заявки, этой информацией управляет само приложение.

В мире SharePoint проверка подлинности на основе заявок решает проблему перекрестного доступа к сайтам SharePoint разных организаций. Используя такой продукт как Службы федерации Active Directory (Active Directory Federation Services, AD FS), две организации, использующие различные методы проверки подлинности, могут организовать обработку заявок, которая позволит SharePoint идентифицировать пользователя и назначать ему правильные разрешения.

Поскольку эта функциональность встроена в продукты SharePoint 2010, службы Reporting Services поддерживают эту модель проверки подлинности. Службы Reporting Services не поддерживают заявки, а вместо этого при подключении к SharePoint используют модель доверенной учетной записи. Прокси-служба в модуле SQL Server 2008 R2 использует объектную модель SharePoint для преобразования маркера заявок в соответствующий контекст пользователя SharePoint в виде маркера пользователя SharePoint, который сервер отчетов в состоянии «понять» и использовать для проверки по базе данных SharePoint. В целом процесс выглядит так.

  1. SharePoint выполняет надлежащую проверку подлинности на основе заявок и с помощью службы маркеров безопасности SharePoint передает маркер запроса на прокси Reporting Services.
  2. Прокси Reporting Services использует маркер запроса для обмена с объектной моделью SharePoint и создания соответствующих маркеров пользователей SharePoint, которые он затем пересылает на сервер отчетов.
  3. Сервер отчетов использует маркер пользователей SharePoint в локальной объектной модели SharePoint для создания нужного контекста пользователя SharePoint.
  4. Если у пользователя есть необходимые разрешения, сервер отчетов отправляет запрошенную информацию на SharePoint, используя соответствующий контекст пользователя SharePoint, как это происходило и ранее.

Отчеты на основе списков

Службы Reporting Services SQL Server 2008 R2 теперь способны работать со списками SharePoint как с источником данных. Это позволяет получать список данных от SharePoint Foundation 2010, SharePoint Server 2010, Windows SharePoint Services 3.0 и Office SharePoint Server 2007. Возможность доступа к списку данных не зависит от наличия модуля или от режима сервера — основного или режима интеграции с SharePoint. Функциональность встроена в сервер отчетов. Отличие различных конфигураций заключается в изменившемся методе доступа.

Есть два способа доступа SharePoint к данным списков. Первый заключается в использовании веб-сервиса lists.asmx, а второй основан на API-функциях объектной модели SharePoint. В любом экземпляре SharePoint при вводе адреса http://<имя_сервера_sharepoint>\lists.asmx вы получите все доступные списки сайта SharePoint в формате XML. Этот метод позволяет получить эти списки в Построителе отчетов версии 3.0. Этот же метод применятся сервером отчетов, работающим в основном режиме.

Метод с использованием API-функций объектной модели SharePoint может использоваться в двух ситуациях. В первой сервер отчетов работает в режиме интеграции с SharePoint, а список есть на ферме SharePoint, с которой интегрированы службы Reporting Services, и это все работает на одной машине. Нужно помнить, что в такой ситуации надо помнить, что доступ к API обеспечивает экземпляр SharePoint, работающий на сервере отчетов. Другая ситуация — установка SharePoint 2010 вместе с подключаемым модулем, но без сервера отчетов. Это называется локальным режимом и описывается далее в разделе «Получение отчетов без служб Reporting Services».

Чтобы использовать данные, полученные из списка SharePoint в отчете, сначала требуется создать источник данных, затем — набор данных, который использует этот источник данных. В Построителе отчетов версии 3.0 есть новый тип подключения на странице свойств источника данных под названием список Microsoft SharePoint (рис. 3). Здесь указывается URL-адрес сайта SharePoint, при этом не нужно добавлять lists.asmx в адрес. Для источника данных можно задать различные учетные данные для доступа к серверу SharePoint.

Figure 3: SharePoint List Connection Type

Рис. 3. Типы подключения SharePoint к спискам

Создав на основе этого источника данных новый набор, вы получите список всех списков SharePoint на сайте, к которым вам разрешен доступ. Этот список можно разворачивать, просматривая отдельные элементы, создавать фильтры, параметры и отчеты, в общем делать то же, что и с таблицей базы данных SQL.

Поддержка сопоставления для альтернативного доступа

Еще одно усовершенствование интеграции — поддержка сопоставления для альтернативного доступа (Alternate Access Mapping, AAM). Этот механизм присутствовал в SharePoint, начиная с 2007 версии, но службы Reporting Services его не поддерживали. Теперь, при настройке сопоставления для альтернативного доступа в Центре администрирования SharePoint, модуль Reporting Service поддерживает структуру URL, как показано в простом отчете на рис. 4. Отчеты http://sql-01 и https://www.contoso.com совпадают.

Figure 4: Alternate Access Mapping

Рис. 4. Сопоставление для альтернативного доступа

Получение отчетов без Reporting Services

Пока вся информация в данной статье относилась к тому, что называется режимом с подключением. В предыдущих версиях служб Reporting Services это был единственный доступный режим, и это означало, что для отображения отчетов с помощью Средства просмотра отчетов SharePoint должен был быть подключен к серверу отчетов Reporting Services, работающему в режиме интеграции с SharePoint.

С выходом SQL Server 2008 R2 стало возможным отображать отчеты без интеграции сайта SharePoint или фермы с сервером отчетов со службами Reporting Services. Вместо этого можно использовать Средство просмотра отчетов для непосредственной генерации отчетов средствами SharePoint, если расширения данных поддерживают создание отчетов в локальном режиме. В стандартной конфигурации только расширения SharePoint List и Microsoft Access 2010 поддерживают такую возможность.

В локальном режиме можно также создать отчет на основе данных встроенного или общего источника данных из RSDS-файла. Тем не менее, нельзя управлять отчетом или связанным с ним источником данных, так как это не поддерживается в локальном режиме.

Сочетаемость модулей SharePoint и сервера отчетов

С выходом SQL Server 2008 R2 и SharePoint Server 2010 существует три версии SQL, три версии модулей, а также две версии SharePoint. Компоненты интеграции могут работать на любой из этих выпусков, но нужно правильно их сочетать. В таблице на рис. 5 даны сведения о поддерживаемых сочетаниях продуктов.

Figure 5: Supported Combinations of the SharePoint Add-In Report Server

Рис. 5. Поддерживаемые сочетания SharePoint, модулей и серверов отчетов

Алан Ле Марканд (Alan Le Marquand) является системным архитектором IT Pro британского отделения Microsoft. Адрес его блога: * Alan’s World of IT*.

Материалы по теме