Возможно, создание отчетов — не самая приятная часть работы администратора баз данных, но они необходимы для любой компании и любого отдела, хранящих информацию в базе данных. Для составления отчетов, в том числе из SQL Server, многие используют готовые приложения, такие как Microsoft Excel и Access. Microsoft также предлагает утилиты для разработчиков, предназначенные для создания собственных приложений для подготовки отчетов. Но корпорация из Редмонда, как ни странно, до сих пор стоит в стороне от сферы готовых инструментов для работы с отчетами, уступая этот прибыльный сектор рынка независимым производителям.

К концу года Microsoft закончит работу над новым продуктом из состава SQL Server под названием Reporting Services, который позволит управлять полным жизненным циклом отчета, от авторской разработки до менеджмента и опубликования. Представители компании сообщили, что Reporting Services была разработана в ответ на просьбы пользователей создать платформу для работы с отчетами, которая была бы построена в Microsoft .NET Framework, интегрировалась с другими приложениями Microsoft, хорошо работала с SQL Server и другими базами данных и допускала расширение продуктами независимых компаний. Как и многие другие решения Microsoft, Reporting Services (ранее называвшийся Rosetta и планировавшийся как часть версии Yukon SQL Server) представляет собой базовую платформу. Microsoft будет владеть ядром службы отчетов, оставляя достаточно свободного пространства для того, чтобы поставщики могли разрабатывать дополнительные компоненты, и стимулируя партнерский рынок, чему мы стали свидетелями при разработке значительной части SQL Server в области Analysis Services OLAP. Рассмотрим три основных этапа жизненного цикла отчетов и попробуем оценить, как отвечают им возможности Reporting Services.

Авторская разработка. Reporting Services будет содержать проектировщик типа WYSIWYG для создания структуры отчета. Кроме того, можно будет выкладывать печатные данные и данные, выводимые на экран, в различных форматах, а также создавать мощные отчеты, включающие таблицы и визуализацию данных. Однако возможности по проектированию отчетов в Reporting Services этим не ограничиваются, поскольку Microsoft публикует язык проектирования отчетов на основе XML (Report Definition Language, RDL), который скрытым образом используется в данном продукте. При наличии RDL Reporting Services становится настоящей серверной платформой, с помощью которой могут вести свои разработки корпоративные ИT-отделы и производители коммерческого программного обеспечения. В частности, последние смогут создавать среду для визуального проектирования отчетов для конечных пользователей, которые в свою очередь получат возможность создавать настраиваемые отчеты и интегрировать имеющиеся программы для работы с отчетами с Reporting Services. Разработка таких дополнений только приветствуется, поскольку первоначальная функциональность системы проектирования отчетов Microsoft, похоже, больше рассчитана на разработчиков и профессионалов ИT, чем на обычных пользователей.

В Reporting Services также можно будет создавать смешанные отчеты на основе разнородных источников данных, включая реляционные, однородные файлы и OLAP. Сегодня большинство пользователей делают это вручную. Конечно, продукты таких компаний, как Business Objects, Cognos и Crystal Decisions, упрощают создание отчетов из источников данных различного типа, но эти продукты обычно дорого стоят и ограничивают пользователя рамками узкой парадигмы. Вот где важна открытость RDL: вы сможете с легкостью расширять базовую платформу Reporting Services, используя инструменты независимых разработчиков.

Управление отчетами. Управление отчетами охватывает масштабируемость, безопасность и настройку расписания отчетов. Microsoft реализовала Reporting Services как службу Win32, которая допускает многопроцессорную обработку сложных отчетов, параллельно извлекающих данные из различных источников. Такой подход обеспечивает лучшее время отклика и передачу данных для сложных отчетов, многократно запрашивающих различные по типу источники данных. Кроме того, разработчики Microsoft создали Reporting Services как объект, не меняющий своего состояния в процессе работы, в зависимости от подключения пользователей, запрашивающих отчет. Эта неизменность состояния позволит создавать масштабируемые Web-фермы серверов отчетов, которые смогут обсуживать тысячи и, возможно, даже десятки тысяч подключенных пользователей. Специалисты по ИT-архитектуре будут иметь возможность разворачивать один логический образ созданного в Reporting Services решения, который может состоять из большого числа физических машин. Рассмотрим, например, крупные телекоммуникационные компании и коммунальные предприятия, которые должны предоставлять потребителям хорошо проработанные решения в сфере отчетов и доставлять эти отчеты по электронной почте или по Web-телефонам. Такие компании могут иметь более десятков тысяч клиентов, у которых возникнет желание взглянуть на свои ежемесячные счета одновременно. Масштабируемые фермы отчетов как нельзя кстати становятся важной архитектурной функцией.

Кроме того, можно достичь дополнительной масштабируемости благодаря способности Reporting Services предоставлять отчеты по требованию, которые или формируются «вживую», или содержатся в кэше. «Живой» отчет для извлечения данных запрашивает в реальном времени нижележащие источники данных, тогда как кэш-отчет — это сохраненная версия результирующего набора данных из отчета за определенный период времени. Предположим, что пять пользователей одновременно хотят запустить огромный отчет. При наличии кэш-версии отчета система сможет, один раз создав набор данных, повторно задействовать его для других четырех пользователей, запрашивающих те же данные. Используя настройку расписания в Reporting Services, можно будет запускать отчет каждый понедельник в 8 утра, после чего все пользователи смогут просто вытаскивать копию из кэш-памяти.

То, что в основе Reporting Services лежат технологии XML и .NET, обеспечивает гибкость архитектуры и создает базу для других полезных функций Reporting Services, когда один отчет может «накладываться» на другой. Например, отчет Show Yearly Sales содержит данные о продажах по годам, но пользователю нужен другой отчет, который содержит поквартальные данные. В Reporting Services можно будет задействовать выходной набор данных первого отчета как входной набор данных поквартального отчета. Настройка полномочий в зависимости от ролей и пользователей позволит горизонтально и вертикально разбивать данные в отчете, так что несколько человек, работая с одним и тем же отчетом, будут видеть только те данные, которые им нужны.

Получение отчета. Используя Reporting Services, можно будет проектировать отчет независимо от того, как его предстоит выполнять. Reporting Services позволяет создать одиночный отчет, который можно реализовать почти в любом формате (включая PDF, TIFF, HTML, а также XML и CSV) практически для любого устройства.

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

Можно создавать статические отчеты, а можно создавать интерактивные отчеты, которые позволяют углубляться в составляющие при анализе данных и компоновать данные по-своему, даже если отчет отключен от оригинального источника данных. Интерактивные функции Reporting Services применяют стандартные Web-ориентированные технологии, такие как HTML, HTTP и SOAP, которые обычно используются для разработки Web-приложений. Фактически демонстрационные разработки, сделанные в Reporting Services, которые мне приходилось видеть, стирают грань между традиционными функциями отчетов и разработкой приложений. Например, как много вам встречалось приложений, в которых Web-страница содержит только табличные или графические данные? Reporting Services легко может стать средой разработки приложений, которые должны отображать данные в табличном виде или визуализировать их.

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

Многие организации, возможно, выберут Reporting Services, даже если их данные и не хранятся в SQL Server (хотя для использования Reporting Services нужна лицензия SQL Server 2000). Такое развитие событий характерно для сферы извлечения, преобразования и загрузки (ETL) и для OLAP, где службы SQL Server Data Transformation Services (DTS) и SQL Server Analysis Services важны сами по себе, независимо от SQL Server.

Богатая функциональность, пронизывающая полный жизненный цикл отчетов, присущая Reporting Services, вкупе с агрессивной ценовой политикой, которую наверняка будет вести Microsoft, сформирует предложение, которое сможет заметно повлиять на способ получения часто используемых отчетов корпоративными и индивидуальными пользователями. К моменту публикации этой статьи Microsoft еще не уточнила цены и детали комплектации; самую последнюю информацию о Reporting Services можно найти на сайте http://www.microsoft.com/sql/ evaluation/bi/reportingservices.asp. С выпуском Reporting Services SQL Server станет единственной большой системой управления реляционными базами данных (RDBMS), включающей богатую среду управления отчетами, которая является к тому же ядром платформы. Даже те, кто не использует технологии баз данных Microsoft, в конце концов тоже выиграют от выпуска Reporting Services, поскольку Oracle и IBM, вынужденные соответствовать требованиям времени, обеспечат своих пользователей продуктами, обладающими интегрированными возможностями современной системы проектирования отчетов.

Брайан Моран - президент группы пользователей и директор по технологиям СУБД Spectrum Technology Group. Имеет сертификаты MCSE, MCSD и MCT. С ним можно связаться по адресу: brian@spectrumtech.com.