программирование, операционные системы, компьютеры, железо, графика
 
 На сайте
   Главная
   Новости

 Статьи
   Security & Hack
   Базы данных
 Clarion
 ERwin
 FoxPro
 Informix
 Interbase
 MS SQL Server
 MySQL
 Oracle
 PostgreSQL
 Другие СУБД
 Интеграция приложений и данных
 Информационные системы
 Разное
 Язык запросов SQL
   Графика
   Железо
   Интернет-технологии
   Локальные сети
   Операционные системы
   Программирование
   Программные руководства
   Разное

 Софт
   Программы для Windows
   Программы для КПК, PDA, PocketPC
   Программы для Linux и Unix
 Главная  Новости  Софт

Раздел: Базы данных

Доступ к данным SQL Server с помощью LINQ

Доступ к данным упрощается благодаря эффективно построенным запасам

Уильям Шелдон

Благодаря языку запросов Language Integrated Query (LINQ), реализованному в Microsoft Visual Studio 2008, разработчики могут использовать собственный синтаксис в сочетании с традиционными языками программирования, такими как C# и Visual Basic (VB), для ссылки на объекты базы данных как на собственные объекты языка и создания запросов к этим объектам. Запросы Visual Studio 2008 и LINQ преобразуют код процедур в вызовы базы данных на основе T-SQL, направляемые в SQL Server. LINQ - отличный инструмент для быстрой разработки приложений, с помощью которого можно формировать довольно эффективные запросы, хотя во многих случаях квалифицированный администратор базы данных может оптимизировать их. На сегодня существует три версии LINQ: LINQ for SQL, LINQ for XML и LINQ for Objects. В данной статье рассматривается LINQ for SQL, именуемый просто LINQ.

Как новая технология .NET, LINQ является частью библиотек Microsoft .NET Framework 3.5. Для использования LINQ в проектах Visual Studio 2008 нужно располагать платформой .NET Framework 3.5. У LINQ есть ряд особых требований к типам данных, которые не поддерживаются предыдущими версиями .NET, что заставило разработчиков Microsoft внести существенные изменения в основные языки .NET. Например, в C# появился тип var, а в VB - соответствующие типы. С помощью этих типов объектов .NET можно указать такой тип, при котором тип данных результата запроса неизвестен до выполнения запроса.

Основы LINQ

Коротко расскажу о принципах действия LINQ. Разработчикам Visual Studio 2008 предоставляется интегрированный инструментарий для технологий доступа к данным в SQL Server 2005. Обратите внимание, что компания Microsoft не выпустила пакет обновления SQL Server 2005 для поддержки NET Framework 3.5 и LINQ, так как во внутренних механизмах LINQ используются ADO. NET и существующие методы доступа к данным, реализованные в .NET Framework 2.0.

В LINQ объектная модель представляет источник данных. Затем LINQ ссылается на этот источник данных как на объект DataContext (например, System.Data.Linq.DataContext). Объект DataContext инкапсулирует строку соединения ADO. NET для базы данных. Затем объект DataContext используется с набором определений объекта (например, System.Data.Linq.Mapping.TableAttribute) для таблиц, хранимых процедур и функций в базе данных. Для каждого объекта базы данных, которому дано определение, требуется объект DataContext.

Создание классов с использованием SQLMetal

Существует два варианта создания классов, необходимых для использования LINQ в исходном тексте прикладных программ. Можно вручную ввести все необходимые классы с помощью функции объектно-реляционного сопоставления Visual Studio. Другой способ - применить инструменты типизированных наборов данных для управления доступом и извлечением данных, а затем использовать LINQ для запроса наборов результатов, созданных типизированными наборами данных. Конечно, при использовании объектно-реляционного сопоставления связи между таблицами в базе данных и создаваемыми объектами могут быть только 1:1. Как показывает метод Load, связи 1:1 не всегда удовлетворяют требованиям разработчиков. Поэтому в данной статье будет рассказано о том, как использовать SQLMetal для формирования классов сущностей для объектов базы данных.

SQLMetal.exe - бесплатная утилита сопоставления базы данных, поставляемая вместе с Visual Studio 2008. Этот инструмент командной строки находится в каталоге Program FilesMicrosoft SDKsWindowsV6.0ain. SQLMetal формирует необходимую сущность данных и объект DataContext для LINQ в исходном файле .vb или .cs. Чтобы создать исходные файлы VB для базы данных на локальном SQL Server и включить в них хранимые процедуры, нужно открыть командное окно, перейти в каталог установки (или дать ссылку на инструмент SQLMetal в этом каталоге) и запустить следующую команду:

SQLMetal.exe/server:.SQLEXPRESS
/database: AdventureWorks/
sprocs/functions/language: vb/
code: AdventureWorks.vb

Эта команда создает файл AdventureWorks.vb в текущем каталоге. Обратите внимание, что нужно изменить ссылку сервера, так как .SQLEXPRESS ссылается на экземпляр SQL Express на моем локальном сервере. Этот параметр должен содержать ссылку для локального компьютера или имя сервера базы данных. Параметр database: AdventureWorks указывает обрабатываемую базу данных. Параметры sprocs и function указывают, что SQLMetal должен сформировать файлы сущностей для поддержки хранимых процедур и функций в базе данных. Параметры language: vb и code: AdventureWorks.vb указывают соответственно язык программирования и целевой исходный файл. Чтобы создать файл AdventureWorks в текущем каталоге на языке C#, необходимо заменить параметр language: vb на language: cs, а расширение vb на cs. После того как эта команда была выполнена на тестовом компьютере, полученный файл содержал около 20 тыс. строк исходного текста.

Использование LINQ

После того как сформированы сущности базы данных, файл AdventureWorks.vb можно добавить в любой проект. Для этого требуется подготовить новый проект VB Windows Forms. Щелкните на проекте правой кнопкой мыши в Solution Explorer и на пункте Add Existing Item в контекстном меню, чтобы открыть диалоговое окно Add Existing Item, с помощью которого можно перейти к файлу AdventureWorks.vb. Затем добавьте этот файл к проекту.

После того как файл AdventureWorks.vb добавлен к проекту, фоновый компилятор VB выдает сотни ошибок, так как Visual Studio 2008 не вводит ссылки, необходимые для разбора LINQ в SQL. Чтобы избавиться от ошибок, перейдите к свойствам проекта, щелкните на вкладке References и добавьте System.Data.LINQ в качестве ссылки на проект. Затем щелкните на вкладке Load Web Settings и добавьте параметр строки соединения AdvWorksDB для базы данных. В этом параметре строки соединения нужно использовать те же значения, что и в SQLMetal для создания исходного файла. Обратите внимание, что нужно указать режим безопасности (например, Integrated Security) в параметре строки соединения.

Затем следует подготовить простую форму. В данном примере элемент управления DataGridView помещен в верхней части формы, а ниже расположены четыре кнопки команд. Расположение кнопок не имеет большого значения, но их нужно назвать ButtonLoad, ButtonAdd, ButtonEdit и ButtonDelete. Дважды щелкните на каждой кнопке конструктора, чтобы Visual Studio 2008 автоматически сформировал обработчик событий Click для каждой кнопки.

Затем нужно дважды щелкнуть в области конструктора формы, чтобы подготовить событие Load для формы. Затем измените событие Load с использованием исходного текста, показанного в листинге 1.

Модификация события Load

Фрагмент A в листинге 1 показывает определение объекта DataContext с именем AdvWorksDC, который использует строку соединения базы данных, определенную ранее. Этот объект DataContext определен в области формы, которая обеспечивает повторное использование объекта DataContext в обработчиках событий в форме. Вторая строка исходного текста во фрагменте A (листинг 1) определяет объект сущности (т. е. Department) для таблицы HumanResources_Department из базы данных AdventureWorks, которая также используется в нескольких обработчиках событий.

Исходный текст во фрагменте B листинга 1 определяет событие Form Load для показа. В событии Load во фрагменте B листинга 1 отключаются кнопки Add, Edit и Delete. Событие Load происходит только один раз, поэтому наступает удобный момент, чтобы создать начальный запрос данных для заполнения таблицы. Вместо простого запроса, который можно легко добавить, обновить или удалить, этот сложный запрос лучше иллюстрирует формат запросов LINQ. Отличие запросов LINQ от запросов SQL заключаются в том, что они начинаются с предложения FROM. Это предложение позволяет задать целевую таблицу в оперативной памяти, в которой содержится определение запроса. В разделе In предложения FROM указывается, где в объекте DataContext будет сделан запрос. После того как определен контекст запроса, механизм LINQ может предоставить технологию IntelliSense для таблиц и столбцов, доступных в запросе.

Запрос во фрагменте B листинга 1 использует инструкцию Join, которая называет вторую таблицу и указывает, какие столбцы будут использоваться для соединения двух таблиц. Запрос также содержит предложение WHERE, чтобы ограничить число возвращаемых результатов. Результат - объект DS, созданный как объект запроса на основе типа интерфейса. Этот объект запроса обслуживает базовый запрос и предоставляет перечислитель, позволяющий извлечь каждую строку результатов. Затем объект запроса назначается как источник данных для таблицы данных. Результирующая таблица (показанная на экране 1) не обеспечивает редактирования или добавления элементов на этапе выполнения. Требуется создать функциональный эквивалент инструкции T-SQL, в котором результаты назначаются набору данных.

Форма с активной кнопкой Load

Добавление строк в таблицу

Теперь можно скомпилировать и запустить приложение, которое выполнит запрос, определенный в событии Load. Эти данные загружаются в таблицу данных. Однако запрос ссылается на таблицу с несколькими связями. Чтобы проиллюстрировать операции Insert, Update и Delete, будет использован запрос, который ссылается на таблицу без связей.

Реализация кнопки Load

В листинге 2 показана реализация трех ключевых методов процесса: ButtonLoad_Click, Bind- Grid и ButtonAdd_Click. Метод ButtonLoad_Click перезагружает таблицу с другой таблицей (т. е. таблицей HumanResources_Department). Метод BindGrid создает собственно запрос LINQ, направленный к объекту DataContext для записей в таблице, а затем обновляет источник данных DataGridView с помощью нового запроса. Запрос демонстрирует предложение ORDER BY, знакомое разработчикам T-SQL. Наконец, метод ButtonAdd_Click активизирует кнопку Add (см. экран 2).

Кнопка Add в форме Form1

Кнопка Add вызывает метод ButtonAdd_Click в листинге 2, чтобы добавить новую запись в текущую таблицу. Этот метод использует объект сущности, созданный как часть определения формы в листинге 1. Затем объект сущности ассоциируется с новым созданным экземпляром подразделения, как показано в первой строке метода ButtonAdd_Click в листинге 2. В этой строке исходного текста используется один из новых синтаксических элементов VB, который задает значения свойствам объекта при его создании. Синтаксис With {.PropertyName = value} позволяет задавать значения свойств объекта при его создании с использованием инструкции New. В строке показано создание новой сущности Department, которая будет отражать строку, которая обновляется в базе данных.

Затем нужно вставить новую сущность подразделения в таблицу. Обновление таблицы - двухэтапный процесс: во-первых, нужно связать новый объект подразделения со списком поставленных в очередь инструкций вставки объекта базы данных с помощью метода InsertOnUpdate. Этот метод указывает LINQ, что объект будет вставлен в таблицу, и позволяет определить несколько новых объектов перед обновлением базы данных. При использовании LINQ эти и другие обновления остаются локальными, пока выполняется метод SubmitChanges. Во-вторых, метод SubmitChanges обеспечивает получение кэшированных обновлений данных и применение сформированного программного кода T-SQL, связанного с каждым из них, к источнику данных SQL. Если нужно добавить коллекцию сущностей, можно отложить обновление базы данных до тех пор, пока не будут созданы все сущности. После щелчка на кнопке Add дисплей обновляется, и вновь созданное подразделение появляется в начале списка, показанного на экране 3.

Только что созданное подразделение вверху списка

Обновление и удаление строк

После того как строка вставлена, рассмотрим, как ее обновить. Поскольку объект сущности был создан из текущего объекта DataContext, требуется лишь обновить одно из свойств объекта сущности, указав значение, которое нужно поместить в базу данных. В нашем примере название подразделения изменится с Bike Computers на Fitness Computers.

Для обновления базы данных вызовите метод SubmitChanges объекта DataContext. На экране 4 показано, как название подразделения меняется с Bike Computers на Fitness Computers после выполнения метода SubmitChanges. Новое название подразделения заменяет первоначальное. Теперь доступна только кнопка Delete.

Название подразделения изменено на Fitness Computers

Теоретически удалить строку так же легко, как обновить; однако внутренний механизм сложнее. По умолчанию LINQ использует оптимистическую схему блокировки. Если LINQ полагает, что базовые данные объекта изменились, то объект не будет обновлен и возвращается сообщение об ошибке с указанием, что строка не найдена или изменилась. Это сообщение об ошибке будет отображаться также при многократном редактировании сущности или попытке удалить сущность после редактирования.

Одно из решений этой проблемы - заменить экземпляр объекта DataContext новым экземпляром DataContext. Первые две строки обработчика событий ButtonDelete_Click (см. листинг 3) воссоздают объект DataContext и связывают объект entity в оперативной памяти со вновь созданным объектом DataContext. Но это решение может повлиять на производительность, так как требует создать новое соединение с базой данных.

Обновление строки

После того как получен вызов для обновления объекта DataContext на месте, вызывается метод DeleteOnSubmit, чтобы удалить текущую сущность из таблицы, а затем передать изменения для действительного удаления строки сущности из таблицы. После щелчка на кнопке Delete вновь появляется картина, подобная показанной на экране 2, и процесс можно повторить. Обратите внимание, что метод DeleteOnSubmit заменяет метод Remove из предшествующих версий LINQ.

Взгляд разработчиков на LINQ

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

Эти два представления суммируют оценку LINQ. Как инструмент RAD, LINQ - мощное дополнение к арсеналу разработчика .NET. Расширяемый интерфейс автоматизирует потенциально сложные запросы. Однако для профессионала, желающего оптимизировать доступ к данным, LINQ вряд ли повлияет на выполнение повседневных задач.

Раздел: Другие СУБД
Секреты служб SQL Server Reporting Services

В основе почти всех моих рекомендаций, адресованных разработчикам SQL Server, Visual Studio и VB. NET, лежат предложения читателей. Благодаря вашим идеям службы отчетов Reporting Services (SSRS) стали более эффективными. Корпорация Microsoft сохранила почти все заслуживающие одобрения средства и добавила несколько новых. Вместе с тем хотелось бы, чтобы были доработаны еще некоторые функции. Давайте рассмотрим ряд усовершенствованных средств, которые должны облегчить работу администратора, а также коснемся нескольких недостаточно продуманных функций, которые ему мешают.

Виртуальный каталог

Теперь службы SSRS могут сохранять виртуальные каталоги, не прибегая к помощи Microsoft IIS. Без участия IIS службы отчетов функционируют быстрее, чем раньше. Чтобы обращаться к отчетам по протоколу SSL, администратору, как и прежде, необходимо использовать сертификат. Запускать производственный отчет без применения SSL - все равно что передавать свой номер телефона по местной радиостанции. При использовании SSL все данные, которыми обмениваются SSRS и браузер, передаются по сети в виде зашифрованных пакетов. И никто не сможет, используя анализатор пакетов, читать отчеты или содержащиеся в них конфиденциальные данные.

Разработчики SSRS изменили и процедуру именования виртуальных каталогов, но эти изменения действительны лишь при условии, что SQL Server 2008 установлен в виде именованного экземпляра. В URL-адресах ReportServer или Reports предшествующих версий имя экземпляра SQL Server присоединялось с помощью символа $, например http://<ваш сервер>/Report$SS2K5. В версии SSRS 2008 разработчики Microsoft заменили символ $ знаком подчеркивания (_). Чтобы развернуть проект Microsoft Visual Studio (VS) 2008 BI, нужно изменить URL-адрес TargetServer, придав ему следующий вид: http://<ваш сервер>/ReportServer_SS2K8, где SS2K8 - это имя конкретного экземпляра SQL Server.

Reporting Services Configuration Manager

Это инструментальное средство подверглось несущественной доработке, и его возможности были усовершенствованы. Диспетчер Reporting Services Configuration Manager (RSCM) по-прежнему запускается из меню SQL Server Configuration Tools. Помните, что диспетчер вносит изменения в конфигурацию конкретного экземпляра SSRS, который часто устанавливается на сервере в том же зале. Если вы устанавливаете службы отчетов более поздней версии, чем SQL Server 2000, эта программа позволяет убедиться, что все подключено корректно, и помогает настроить SSL, установить ссылки электронной почты, а также, что самое важное, установить и зарезервировать ключи шифрования. Обращаться к отчетам без этих ключей довольно сложно. На экране 1 показана ссылка на диспетчер отчетов в RSCM. Здесь порт SSL связывается с созданным вами сертификатом.

Экспорт отчетов

В службах SSRS до сих пор не реализован простой способ экспорта отчетов. Представитель разработчиков сообщил мне, что проблемой экспорта отчетов они предполагают заняться (хотя и не в ближайшем будущем) и что, возможно, такая функция появится в одной из следующих версий. Пока же можно воспользоваться бесплатно распространяемой утилитой, обеспечивающей решение этой задачи (см. врезку "Бесплатное средство экспорта отчетов SSRS").

Включение функции My Reports

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

Запустите SQL Server Management Studio, но не подключайтесь к процессору Database Engine, а в исходном диалоговом окне Connect to Server выберите пункт Reporting Services (это можно сделать, если служба уже запущена). Чтобы активизировать функциональные возможности My Reports, следует правой кнопкой мыши щелкнуть на базовом соединении и выбрать пункт Properties. На экране появится диалоговое окно, показанное на экране 2.

Задание свойств SSRS

Теперь вы сможете задать роль, применяемую к каждому из созданных на данном сервере каталогов My Reports. Когда пользователи Windows откроют URL-адрес диспетчера Report Manager, они увидят новый путь, созданный в каталоге Reporting Services для их доменного имени.

Защищать свои отчеты - жизненно важная задача пользователя вне зависимости от того, кто имеет право просматривать эти отчеты. Один из способов создания ролей Reporting Services, которым администратор может назначить конкретные права, предполагает использование обозревателя объектов Reporting Services Object Explorer. В результате пользователи не смогут обращаться к отчетам, знакомиться с которыми им не положено.

Работа с новым конструктором отчетов Report Designer

В распоряжении разработчиков служб отчетов имеется множество конструкторов отчетов. Во врезке "Версии конструктора отчетов Microsoft" я попытался систематизировать версии продуктов и их возможности.

Новые средства отображения SSRS 2008 Report Definition Language (RDL) решают множество актуальных проблем, проявлявшихся в работе модулей подготовки RDL первого поколения (да, существует несколько модулей первого поколения). Механизм визуализации SSRS 2008 обеспечивает выполнение множества функций по обработке данных в расширенном текстовом формате, а также новый элемент управления Tablix (который, по сути, отнюдь не является элементом управления отчетами). Элемент управления Tablix сочетает в себе свойства элементов управления матрицами и таблицами (отсюда его название), а также такие особенности, как ограниченная поддержка формата Rich Text и встроенные возможности для сводных таблиц.

Кроме того, механизм визуализации SSRS 2008 стал более универсальным. Проблема в том, что механизм визуализации и конструкторы отчетов, создавшие RDL для введения в него данных, формировали новые и несовместимые файлы RDL, которые не воспринимаются старым механизмом SSRS 2005, до сих пор использующимся в элементах управления ReportViewer VS 2005 и VS 2008. И это плохо - по крайней мере тогда, когда необходимо использовать средства BI с функциями, обеспечивающими эффективную генерацию отчетов, для создания этих новых отчетов и средства управления ReportViewer в приложениях Windows и Active Server Pages (ASP) - для их развертывания. Дело в том, что внутренний механизм элемента управления ReportViewer VS 2008 SP1 позволяет ему визуализировать лишь старые отчеты первого поколения в стиле RDL. Однако сейчас происходит обновление Visual Studio и элемента управления ReportViewer, и в ходе этого обновления будут реализованы средства отображения RDL следующего поколения. К сожалению, это произойдет не ранее выхода в свет VS 2010.

Тема SSRS не закрыта

У темы SSRS есть еще много аспектов, о которых я собираюсь рассказывать на страницах журнала в течение нынешнего года, пока специалисты Microsoft завершают работу над остальными компонентами служб отчетов. Надеюсь, что эти службы начнут действовать в обстановке, когда разработчики придут к мысли о том, что значительно проще составлять сложные пользовательские интерфейсы, включающие отношения "родитель-потомок", суммы, итоговые суммы, сложные выражения и встроенные коды, чем жестко программировать эти элементы вручную.

Бесплатное средство экспорта отчетов  SSRS

Если бы передо мной стояла задача восстановить один отчет SSRS и единственный путь ее решения сводился бы к восстановлению всей базы данных SSRS, то я, откровенно говоря, счел бы, что овчинка не стоит выделки. К счастью, Джаспер Смит освоил (судя по всему) протокол SOAP, а также программные интерфейсы к SSRS и создал бесплатно распространяемую утилиту Reporting Services Scripter для извлечения из базы данных RDL, источников данных и всех других элементов каталога. Я протестировал этот продукт, и, хотя он, как мне показалось, сначала не поддерживал SQL Server 2008 (2.0.0.0.11), я сумел добиться подключения утилиты к моему экземпляру SQL Server 2008 и получил отчеты, а также создал проект Visual Studio BI для каждого каталога. В результате мне не пришлось тратить силы на то, чтобы выполнять тест на другой системе. Загрузить утилиту можно по адресу www.sqldbatips.com/showarticle.asp? ID=62.

Версия конструктора отчетов Microsoft

В блоке № 35 кампуса разработчиков Microsoft работают по меньшей мере четыре человека, понимающих, как и почему эволюционировал конструктор отчетов. С выходом каждой версии данного продукта под сомнение ставилась совместимость этих версий. Мне уже приходилось описывать особенности всех изданий конструктора отчетов, но это не позволяет нам понять, почему мы не можем делать то, что нам предлагалось делать при создании отчетов SSRS.

Конструктор отчетов в пакете Visual Studio (VS) 2003 объединяется с дополнительным модулем Reporting SelVices с помощью бинарной "заплатки". Этот конструктор может работать только с отчетами RDL служб отчетов SSRS 2000. Данная версия VS не поддерживает элемент управления ReportViewer.

Конструктор отчетов в VS 2005. Этот конструктор не может "видеть" службы SSRS 2008 и взаимодействовать с ними, но он может импортировать отчеты RDL служб отчетов SQL Server 2000 и взаимодействовать с SSRS 2005. Продукт поддерживает элемент управления ReportViewer первого поколения, который может осуществлять "перекрестное взаимодействие" с отчетами RDL SSRS 2005.

Конструктор отчетов в VS 2008. Этот конструктор тоже не может "видеть" службы SSRS 2008 и взаимодействовать с ними. При этом он не в состоянии даже открывать проекты SSRS 2005. Но продукт по-прежнему поддерживает элемент управления ReportViewer первого поколения и может осуществлять "перекрестное взаимодействие" с отчетами RDL SSRS 2005.

Конструктор отчетов в VS 2008 SP1. Этот конструктор взаимодействует с SSRS 2008 и может даже открывать проекты SSRS 2005, которые он преобразует в формат VS 2008. Он поддерживает проекты с элементом управления ReportViewer первого поколения и может осуществлять "перекрестное взаимодействие" с отчетами RDL SSRS 2005, но не с отчетами RDL SSRS 2008.

Конструктор отчетов, реализованный в комплекте SSRS BI Tools. Этот новый конструктор VS BI специально предназначен для работы с SSRS 2008, а также с проектами SSRS 2005, которые он преобразовывает в формат VS 2008 BI. Продукт не поддерживает разработку в средах Windows Forms или ASP, так что вопрос об использовании элемента управления ReportViewer здесь не актуален.

Раздел: Другие СУБД
Об SQL Server 2008, Internet Cloud Services и многом другом

В беседе с Шейлой Молнар технический советник подразделения Microsoft Data and Platform Дэвид Кэмпбелл рассуждает о возможностях SQL Server 2008 и связанных с SQL Server продуктах Microsoft, готовящихся к выпуску, таких как Kilimanjaro, Madison и Azure Services Platform. При этом он касается и некоторых других тем - тенденций в сфере управления данными, механизма взаимодействия SQL Server с Visual Studio и Microsoft Office, а также вопросов, связанных с концентраторами данных.

Что вас больше всего радует в продукте SQL Server 2008?

То обстоятельство, что менее чем за три года нам удалось реализовать в нем так много различных возможностей. Мы полностью пересмотрели процесс проектирования SQL Server. Мы создали в своем воображении мир, где функционируют миллионы серверов и миллионы серверов баз данных уровня предприятия. Затем мы пересмотрели концепцию продукта с учетом этой картины. Нам нужен был продукт, который мог бы "сам позаботиться о себе" и был бы гораздо проще в обслуживании.

А какова была ваша роль в этом процессе?

В ходе проектирования SQL Server 2005 я возглавлял довольно большой коллектив разработчиков. Когда мы готовились к выпуску SQL Server 2005, я подошел к Полу Флесснеру, тогдашнему вице-президенту подразделения Microsoft Data and Storage, и сказал: "Мы уже не плетемся за другими участниками гонки. Теперь мы в группе лидеров, и существует масса вещей, которые мы можем сделать, чтобы выделиться на фоне остальных". Я сформировал группу сотрудников, и мы проанализировали ситуацию на рынке, потребности наших клиентов и независимых поставщиков программного обеспечения, а также отдачу, получаемую от услилий инженеров. Мы определили, какие задачи нужно решать в первую очередь, скажем инструкции merge, о чем нас просили в течение длительного времени, и решили эти задачи.

Мы выявили такую тенденцию: описывающие пространство и время данные становятся интегральными типами данных, и мы включили в SQL Server 2008 средства для работы с пространственными типами данных. Еще мы заметили, что, хотя управлять системами SQL Server на уровне "сервер-сервер" проще, чем многими другими продуктами для работы с базами данных, управление тысячами систем SQL Server все еще требует больших усилий. Так родилась концепция управления на основе политик. Жизнь администратора и в самом деле упрощается, если он может определить несколько классов обслуживания (жизненно важный сервер, сервер рабочей группы, сервер второго уровня, расположенный под рабочим столом сотрудника), политики для этих классов, связать каждый сервер с одним из классов и проследить за тем, чтобы они сохраняли соответствие требованиям.

Каковы, на ваш взгляд, основные тенденции в сфере управления данными?

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

Какое влияние на SQL Server окажет снижение стоимости хранения данных?

Пользователям требуются нужные данные в определенной форме в конкретном месте и в нужное время. Руководители информационных служб и главные архитекторы хотят знать, можем ли мы решить эти задачи быстрее, чем другие компании, и с меньшими затратами средств. На рынке средств хранения данных есть ряд областей, которые мы еще не охватили… пока.

Вы имеете в виду проект Madison?

Мы отмечаем, что руководители многих компаний не хотят удалять данные из хранилищ; они строят все более вместительные хранилища данных. От возможности собирать, добывать информацию, анализировать и вновь предъявлять ее предприятию может зависеть успех бизнеса. Проект Madison, которым мы занялись после приобретения компании DATAllegro, позволит нам выйти на рынок средств хранения данных с решениями емкостью в сотни терабайт. Объемы просто умопомрачительные. Данных в хранилищах становится все больше, а их очистка проводится реже. Я думаю, что в таких условиях люди могут анализировать ситуацию на протяжении длительного времени и выявлять исторические тенденции. Эти тенденции являются основой, на которой мы строим прогностический анализ с целью выявления зависимостей во времени.

И какое место в этой картине занимает продукт Kilimanjaro?

Вторая половина задачи состоит в том, как извлекать данные и информацию из больших хранилищ данных и предъявлять их людям, которые выполняют работу и принимают решения изо дня в день. Мы хотим реализовать такие возможности и в очень крупных хранилищах данных, и в системах бизнес-аналитики на базе самообслуживания. Просто формировать отчеты недостаточно; нужно предоставлять информацию в руки конечных пользователей и аналитиков данных, чтобы те могли произвольно манипулировать данными и добавлять к ним информацию, которую они могут получить только в своих рабочих группах. Самообслуживание - одна из важнейших тем в версии Kilimanjaro.

Какие еще принципы наряду с самообслуживанием лежат в основе Kilimanjaro?

В версии Kilimanjaro реляционный процессор SQL Server будет иметь аппаратные средства для обработки более чем 64-разрядных потоков. Еще одна тема - управление множеством серверов. Только представьте себе, какие проблемы могут возникать в случае самообслуживания. Существует ли возможность без особых хлопот готовить серверы к работе? Администраторы компаний, эксплуатирующих сотни и тысячи систем SQL Server, после внедрения Kilimanjaro со средствами управления множеством серверов получат возможность управлять своими серверами как единой группой.

Могли бы вы сказать, почему системами SQL Server и средствами хранения данных в Microsoft занимается одно и то же подразделение?

Это далеко не случайно! Помните, я сказал о том, что все данные получаются сегодня в цифровом формате? Так вот, даже те сведения, которые не введены непосредственно в базу данных, нужно как-то учитывать, ими требуется управлять - подобно тому, как мы управляем информацией в базе данных. Мир неструктурированных данных и мир структурированных данных сближаются. Это происходит под воздействием трех сил. Во-первых, имеется огромное множество неструктурированных данных. Неужели вам не хотелось бы, к примеру, чтобы всеми файлами на вашем компьютере можно было управлять с помощью базы данных? Во-вторых, неструктурированные данные часто имеют другие атрибуты. Так, к числу атрибутов мгновенных сообщений относятся имя отправителя, имя получателя и дата. Третье обстоятельство - извлечение данных. Мы можем осуществить текстовое индексирование мгновенных сообщений. Возможность выполнения запросов по тексту таких сообщений дает определенные преимущества.

Одно из больших достоинств системы SQL Server 2008 - реализованный в ней тип данных FILESTREAM. Если вам придется создавать приложения для хранения блогов, будете ли вы размещать их в файловой системе, а имя хранить в базе данных, или разместите их в базе данных? У каждого свое мнение на этот счет. Мы будем использовать файловую систему там, где она дает наилучшие результаты, а базу данных - там, где она наиболее эффективна. Благодаря сотрудничеству со специалистами по хранению данных нам удалось сблизить два этих разных мира и создать дополнительные возможности.

В ходе нашей беседы невольно вспоминается файловая система WinFS.

С WinFS связано многое из того, что мы выпускали за последние год-два: технология entity framework, модель entity data model, архитектура synchronization framework. Это просто еще один способ довести систему до рынка. Когда мы приняли решение не включать WinFS в ту версию Windows, которая позднее получила название Vista, мы объявили, что выпуск этой технологии откладывается. Она будет реализована в SQL Server.

Как SQL Server взаимодействует с Microsoft Visual Studio и с Microsoft Office?

Десять лет назад потребители принимали решение о покупке в зависимости от возможностей процессора реляционной базы данных. Сейчас мы уже не считаем SQL Server сервером баз данных. Мы относим эту систему к категории платформ data platform с более широкими горизонтальными службами. Для бизнес-аналитики у нас в системе имеются средства извлечения, преобразования и загрузки (extraction, transformation, and loading, ETL). Кроме того, мы можем обеспечить подключение системы к средствам SharePoint. Имеются функции для подключения к Visual Studio. Мы уже пользуемся оболочкой Visual Studio для среды проектирования ETL, так что в обоих случаях требуются одни и те же навыки. Мы реализовали сценарий Occasionally Connected Systems с использованием Visual Studio 2008. Он предназначен для создателей мобильных приложений, которые не хотят отвлекаться на выяснение состояния данных (connected или not connected). Ключевым компонентом платформы данных является синхронизация. Все это реализовано в нашем продукте.

В чем смысл добавления синтаксиса языка запросов LINQ к продукту SQL Server 2008?

Я думаю о том, как уменьшить трения, возникающие при создании приложений. Между логикой приложения и уровнем интерфейса базы данных возникает рассогласование нагрузки. А если вернуться лет на 15-20 назад, шла ли речь об интеграции баз данных с помощью языка COBOL или о предварительных компиляторах, в каком-то смысле мы находились в более благоприятных условиях, чем тогда, когда обращались к интерфейсам уровня вызова. Так вот, подумайте об интерфейсе ODBC: он открывал базы данных для взаимодействия с более широким классом сред разработки. Правда, задача разработчика на какое-то время становилась сложнее. Я думаю, LINQ сделает большое дело - позволит разработчикам выражать запросы с помощью естественных средств, легко воспринимаемых их программами, и при этом неважно, как они относятся к базам данных, к структурам внутренней памяти или к XML.

Что вы думаете о платформе Azure Services Platform и о предоставлении платформы обработки данных в качестве услуги?

Наша позиция - расширить платформу обработки данных до уровня Internet. Платформа Azure - еще одно измерение самообслуживания. Сегодня, чтобы подготовить к работе базу данных, вам нужно разыскать сервер, найти дисковое пространство. А теперь представьте себе такую картину. Вы готовите к работе c базой данных конечную систему, и после этого, где бы вы ни находились, если у вас есть выход в Internet, вы можете получить соединение с упомянутой конечной системой. Это один из аспектов самообслуживания. Azure - это перенос баз данных из "мира земного" (клиент-сервер) в мир Internet. Вспомним, как клиент-серверные базы данных высвободили данные и позволили нам донести их до пользователей настольных систем. Мир служб освободит данные от оков локальных сетей и сделает их достоянием всех имеющих на то полномочия пользователей, располагающих доступом к Internet.

Какие еще задачи могут быть решены разработчиками с помощью платформы Azure?

Мне доставляет удовольствие наблюдать за тем, как разрабатываются новые типы приложений. Многие рассуждают так: "Переносить свои профильные бизнес-приложения в Internet я не буду". И я разделяю эту точку зрения. Но я могу представить себе массу ситуаций, таких как использование цепочек снабжения, контакты "предприятие - предприятие", электронные средства автоматизации проектирования и управления жизненным циклом продуктов, в которых корпорации могут обмениваться данными, размещать информацию в концентраторах данных и предоставлять одним устройствам данные, хранящиеся на других устройствах.

На конференции профессиональных разработчиков Professional Developers Conference (PDC) мы объявили о том, что в лаборатории SQL Services Labs начались работы по проекту Huron. Его реализация даст возможность взять базу данных Access, опубликовать ее в службе SQL Services, после чего на эту базу подпишутся уполномоченные на то пользователи. При этом приложение будет ликвидировано, но все имеющиеся данные синхронизируются. Образуется концентратор данных. Нет необходимости в том, чтобы отдельные клиенты были связаны друг с другом; им достаточно иметь возможность подключения к концентратору. Данные защищены и резервируются в концентраторе. Для разработчиков открывается ряд новых сценариев. Кроме того, мы объявили о том, что в лаборатории SQL Services Labs будут выполняться работы по поддержке таких процессов, как добыча данных и подготовка отчетов. Еще одно интересное направление - службы интеграции данных. Пользователи получат возможность размещать данные из ряда источников в концентраторе и подвергать их бизнес-анализу.

Что еще читателям следует знать о концентраторах данных?

С помощью служб SQL Services пользователи смогут создавать концентраторы данных наиболее общего типа и уменьшать количество проблем. Совместно с разработчиками .NET Services, которые тоже участвуют в создании платформы Azure, мы будем проектировать средства управления доступом к ней. Пользователи смогут брать существующие сведения из каталога Active Directory (AD) и объединять их, перенося эти данные в Internet. К тому же они смогут создавать политики авторизации применительно к этим данным, чтобы сделать безопасной процедуру совместного использования информации различными приложениями и людьми.

Какие преимущества даст, на ваш взгляд, оснащение платформы для обработки данных в Internet службой SQL Data Services (SDS)?

SDS - всего лишь первая из целого ряда служб. При наличии этой службы пользователю не обязательно знать, где находится нужная ему система. По своей природе модель SDS "многопользовательская". Если вы разрабатываете приложение, вы можете концентрировать на нем все внимание, и в процессе установки инициализировать конечную систему. Вам не нужно ломать голову над тем, как масштабировать базы данных до уровня петабайтов. В SDS мы строили абстрактные конструкции с учетом того, что с ними будут работать представители различных организаций.

SDS полностью меняет наше представление о корпоративной базе данных. Ваши базы данных становятся гораздо более абстрактными, чем были раньше.

Сегодня одна из проблем, с которыми сталкиваются корпорации, состоит в том, где размещать базы данных. Раньше было принято размещать базу данных под рабочим столом одного из служащих. Теперь представьте себе, что сотрудник ИТ-подразделения предлагает: "Я дам вам возможность инициализировать базы данных в конечных системах в Internet". Разработчику остается только ответить: "Подготовьте мне конечную систему на 10 Гбайт". Многие крупные корпорации имеют средства самостоятельной подготовки сайтов SharePoint; это делается без особых затруднений. Представьте себе, что в корпорации, где действует такая модель, разработчикам не приходится дожидаться установки новых аппаратных компонентов. Им не нужно ждать, пока представится случай договориться с сотрудником ИТ-подразделения о настройке виртуальной машины. Нужно только заполнить формуляр с запросом на базу данных, получить конечную систему - и можно приступать к разработке приложения. Таким образом будет повышена оперативность действий и снижена напряженность на данном участке работы.

В одной из своих статей о воздействии "облака вычислений" на ИТ-службы компаний наш автор Брайан Моран писал, что перспектива вычислений в Internet кому-то может показаться пугающей, так как у корпораций отпадет потребность в ИТ-подразделениях.

Абсолютно с этим не согласен. На мой взгляд, перед ИТ-подразделениями откроются новые возможности. Надо сказать, что многие путают вычисления в Internet с переходом к хостингу у сторонних подрядчиков - дескать, собирайте все и отдавайте мне. Я же думаю, что если обработка данных в Internet будет организована правильно, люди смогут сосредоточиться на своей работе. И потом, перед сотрудниками ИТ-подразделений открывается возможность добиться более высокой степени взаимозависимости и преобразовать производственно-сбытовую цепь, а не только снабженческую.

Какие же навыки должны в таком случае приобрести администраторы баз данных?

Я думаю о цикле жизни данных от их зарождения до архивирования. Нам нужно взглянуть в глаза реальности и понять, что мы будем жить в мире, где стоимость приобретения данных сведена к нулю. Стоимость хранения данных уже упала до нуля. Ширина полосы пропускания в каком-то смысле является сдерживающим фактором.

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

Чтобы быть на уровне современных требований, пользователи не должны занимать позицию иждивенцев - мол, кто возьмет мою базу данных и перенесет ее в Internet? Важно представить, что в твоем распоряжении оказались компоненты платформы, из которых можно создать синхронизируемый концентратор данных общего назначения.

Раздел: Другие СУБД
SAP® BusinessObjects™ VOYAGER для анализа деловых проблем. Мощное решение для OLAP.

С помощью SAP BusinessObjects Voyager ваши бизнес-аналитики смогут быстро исследовать OLAP-данные, вырабатывать бизнес-рекомендации и отвечать на запросы, а затем совместно с коллегами работать надо полученной аналитикой. Voyager позволяет распространять знание поверх границ рабочего места, отдела или группы аналитики.

SAP BusinessObjects Voyager это:

  • мощный анализ и совместное использование данных OLAP;
  • всесторонний доступ к данным;
  • низкая стоимость развертывания.

Анализ и совместное использование данных OLAP

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

Однако быстрый доступ к данным - это решение только половины реальной проблемы. Аналитикам необходимо так же иметь возможность производить определенные вычисления и осуществлять обзор потенциальных бизнес-сценариев. Voyager отвечает этим потребностям, обеспечивая возможность любых видов вычислений, в том числе и тех, которые свойственны функциональности ведущих современных OLAP-хранилищ. Средства визуализации Voyager в комбинации с подсветкой предельных значений позволяют аналитикам быстро обнаруживать тенденции и идентифицировать сложные шаблоны (рис. 1)

Рис. 1. Визуализация в SAP BusinessObjects Voyager

Как только аналитики завершили свою работу, они могут предоставить результаты для совместного применения как внутри организации, так и за ее пределы, используя при этом другие решения  Business Intelligence. Кроме этого, Voyager позволяет экспортировать результаты анализа как в формат Excel, так и в формат PDF. Таким образом, эти результаты могут быть легко распечатаны, сохранены или пересланы через каналы передачи информации.

Всесторонний доступ к данным

Ключевым требованием при осуществлении финансового - или бизнес - анализа является доступ к как можно более широкому диапазону источников данных OLAP в организации. Voyager позволяет не только осуществлять полноценный доступ к различным источникам данных, но и объединять данных из разных информационных систем и источников в одном рабочем пространстве. Это существенно сокращает время на консолидацию и проведение анализа данных, и освобождает аналитиков от зависимости от группы консолидации данных.

Voyager так же позволяет для получения ответа на определенный вопрос обновлять только нужные для данной процедуры данные. Это дает возможность получать ответы быстро, легко и элегантно.  Аналитики в Voyager могут получить различные представления одного и того же OLAP-куба, или разных OLAP-кубов в пределах одного рабочего пространства (рис. 2). Например, аналитики могут совместить оценку тенденции продаж с просмотром учетных записей клиентов. Voyager поддерживает практически все известные OLAP-хранилища, включая SAP, Microsoft и Oracle.

Рис. 2. Одновременный доступ к различным OLAP-кубам

Низкая стоимость развертывания

Для успешного проведения OLAP-анализа, аналитик должен иметь возможность доступа к данным независимо от того, где они располагаются географически. SAP BusinessObjects Voyager выполнен на основе современных web-технологий, и насыщен самыми последними достижениями в этой области. В результате получился тонкий клиент, наделенный самыми богатыми возможностями настольного приложения. Такое решение позволяет основательно понизить стоимость развертывания. Для работы Voyager нет необходимости отдельно разрабатывать, поставлять и поддерживать независимое решение для OLAP - аналитики, он входит в состав комплексного решения SAP BusinessObjects XI, таким образом вы можете централизованно управлять вопросами безопасности, подключения, выбора данных и сохранения документов, тем самым так же значительно снижая стоимость развертывания решения.

И это только часть айсберга

Надо добавить, что OLAP-кубы используются не только Voyager, они служат источниками данных для множества других технологий  Business Intelligence, включая генерацию отчетов, запросы и аналитику по требованию, и другие. SAP BusinessObjects Voyager является частью стратегии, назначение которой - предоставление необходимых инструментов каждому пользователю.

Технология Crystal Reports имеет прямой доступ к OLAP-кубам, что позволяет на их основе генерировать отчеты, в то время как технология SAP BusinessObjects Web Intelligence обеспечивает аналитику по специфицированным запросам на основе данных, извлеченных из OLAP-кубов.

Главная выгода

SAP BusinessObjects Voyager входит в состав технологий, на которые распространяются условия об OEM-партнерстве. Это значит, что интегрировав Voyager в свой программный продукт (информационную систему или интеграционное решение),  вы получаете возможность поставлять эту технологию под своей торговой маркой.  При этом вы получаете явные финансовые, конкурентные, имиджевые и маркетинговые выгоды.  Надо учесть и тот факт, что такой путь гораздо дешевле (в сравнении с покупкой технологии), а спрос на Business Inelligence у конечного заказчика постоянно растет. 

Ключевые моменты

  • Быстрый доступ к OLAP-данным - возможность быстрее получить ответы на бизнес - вопросы при анализе многомерных данных.
  • Всесторонний доступ к данным - проистекает из возможности подключаться к широкому диапазону источников OLAP-данных.
  • Визуализация и подсветка при выходе за предельные значения - позволяет выявить и проанализировать тенденции и сложные шаблоны.
  • Совместный доступ к результатам и данным - данные могут совместно использоваться и внутри организации, и за ее пределами.
  • Современный и богатый возможностями интерфейс пользователя - полностью соответствует специфическим потребностям аналитика.

Бизнес - преимущества

  • Увеличивает производительность и самостоятельность, поскольку аналитики получают доступ ко всем OLAP-данным быстрее и эффективнее.
  • Выработка более обоснованных решений обеспечивается широким и легким доступом к результатам анализа всех заинтересованных лиц.
  • Уменьшение времени на консолидацию данных, и меньшая зависимость аналитиков от IT-подразделений.
  • Более связное восприятие данных, благодаря возможности одновременно просматривать несколько OLAP-кубов на одном рабочем пространстве.
  • Уменьшение стоимости развертывания благодаря использованию тонкого клиента и интеграции в другие технологии SAP BusinessObjects business intelligence.

Раздел: Интеграция приложений и данных
Генерация документов в системе управления требованиями Borland/Microfocus CaliberRM

С современным уровнем развития дисциплины управления требованиями, хранение и работа с требованиями в текстовых документах кажется анахронизмом. Существует множество систем управления требованиями, и многопользовательских клиент-серверных, и однопользовательских локальных, позволяющих работать со структурой и иерархией требований, формулировками и оформлением, а также предопределенными и пользовательскими метаданными. Однако часто возникают ситуации, когда текстовый документ является необходимым. Например: техническое задание как формальный документ, подписываемый заказчиком и исполнителем; спецификация требований для согласования с заказчиком; план-график реализации требований и т.д. Фактически все эти документы - это определенный срез данных из единой базы требований по проекту. Соответственно, у пользователя должна быть возможность быстрой и удобной генерации требуемого документа, содержащего актуальную информацию.

В данной статье мы рассмотрим процесс генерации документов в системе управления требованиями Borland/Microfocus CaliberRM.

В системе Borland/Microfocus CaliberRM для генерации документов предназначена утилита Document Factory. Document Factory может генерировать документы в форматах .doc, .rtf и .txt. Принцип действия Document Factory довольно прост - это анализ шаблона документа и замена ключевых слов значениями из базы данных требований, а также выполнение команд и операторов, указанных в теле шаблона. При подготовке шаблона используются следующие термины:

  • Команды (commands). С помощью команд определяется выборка, сортировка и группировка требований из базы данных.
  • Ключевые слова (keywords). Ключевые слова в шаблоне подменяются на соответствующие значения из базы данных требований.
  • Операторы (operators). Операторы представляют собой определенные критерии для поиска групп требований.

Все остальное оформление документа (колонтитулы, начертание, цвет и размер шрифта, таблицы, изображения, а также другие объекты) остаются в документе неизменными, то есть такими же, какие были в шаблоне. 

Рассмотрим структуру шаблона. Так как в базе данных может существовать несколько проектов по работе с требованиями, а в каждом проекте может быть несколько базовых линий (baseline) требований, в шаблоне документа нужно указать наименование проекта и базовой линии с помощью команд $PROJECT и $BASELINE. Соответственно, в документ попадут только требования из указанного проекта и отмеченные заданной базовой линией. В случае если в проекте не задано базовых линий (точнее, существует только одна - Current Baseline), то команду $BASELINE можно не указывать. В случае если задано несколько базовых линий, а в шаблоне документа команда $BASELINE не указана, то при генерации документа будет выдано диалоговое окно с возможностью выбора базовой линии требований, для которой необходимо генерировать документ. При отсутствии в шаблоне документа команды $PROJECT, при генерации документа будет выдано диалоговое окно для выбора проекта. Такой подход удобен, когда используется универсальный шаблон для нескольких проектов, а генерация документа выполняется вручную. Однако при автоматической генерации по расписанию (мы рассмотрим эту возможность ниже) такой вариант неприемлем.

Для отображения определенных групп требований используется понятие секций и команды $BEGIN_SECTION и $END_SECTION. Данные команды начала и окончания секции представляют собой своеобразный цикл по требованиям в базе данных. Например, если между этими командами указать ключевое слово <<name>>, то в документе будут выведены наименования всех требований в заданном проекте. Для того чтобы выводить ограниченный набор требований по какому-либо условию используются команда $FILTER. Например, чтобы вывести в секцию только бизнес-требования, необходим следующий код (точнее текст, а не код):

$BEGIN_SECTION

$FILTER{type = "1. Business Requirements"}

$END_SECTION

Важные замечания: секций в шаблоне может быть сколько угодно много, но они не должны быть вложенными; все команды, кроме $PROJECTS, $BASELINE и пары $BEGIN_SIGNATURES/ $END_SIGNATURES должны находиться внутри секций; в одной секции может быть только одно использование одной команды.

Рассмотрим следующий пример с использованием дополнительных команд:

$BEGIN_SECTION

$FILTER{type = "3. Functional Requirements"}

$SORT{hierarchy}

$INDENTION_LEVEL{3}

$INDENTION_SIZE{.5}

<<tag>><<id_number>>. <<name>>

<<description>>

$END_SECTION

В данном примере в документ будут выведены только функциональные требования (команда $FILTER), требования будут отсортированы в порядке возрастания по иерархии (команда $SORT). Команда $INDENTION_LEVEL{3} говорит о том, что будут выведены требования только трех верхних уровней вложенности, требования более глубоких уровней будут проигнорированы. Команда $INDENTION_SIZE{.5} задает размер отступа в дюймах при выводе требований из разных уровней вложенности. Непосредственно вывод производится с помощью ключевых слов <<tag>> (тэг требования), <<id_number>> (номер требования по базе данных), <<name>> (заголовок требования) и <<description>> (текст требования). В команде $FILTER можно использовать математические и логические операции, а также слова Like, Not Like, Between, Not Between, In и Not In.

Также интерес представляют следующие команды:

  • $BEGIN_LIST/$END_LIST - используется для вывода списков, например, списка ответственных исполнителей назначенных за реализацию требования.
  • $BEGIN_HISTORY/$END _HISTORY - используется для вывода истории изменений требований.
  • $BEGIN_TRACES/ $END _TRACES - используется для вывода информации о связях трассировки с другими требованиями.
  • $BEGIN_DISCUSSIONS/ $END_DISCUSSIONS - используется для вывода дискуссий, проводимых "вокруг" требований.
  • $BEGIN_GLOSSARY/ $END_GLOSSARY - используется для вывода глоссария.
  • $CALCULATE - используется для выполнения элементарных математических операций (умножение, деление, сложение, вычитание) над атрибутами требований.

Наиболее часто используются следующие ключевые слова:

  • <<type>> - тип требования
  • <<hierarchy>> - иерархический номер
  • <<id_number>> - идентификатор требования по базе данных
  • <<status>> - статус требования
  • <<priority>> - приоритет требования
  • <<description>> - детальное описание требования (текст требования)
  • <<tag>> - тэг требований (код типа требования)
  • <<name>> - имя (заголовок) требования
  • <<version>> - номер версии требования
  • <<owner>> - текущий владелец требования

В случае если используются пользовательские атрибуты требований - их также можно использовать в шаблоне обрамляя двойными скобками: <<пользовательский_атрибут>>.

Теперь рассмотрим процесс генерации документа на основе созданного шаблона с помощью утилиты Document Factory. Утилиту можно запустить из меню "Пуск" (отобразиться окно, представленное на рис.1) или с помощью нажатия кнопки "Document Factory" из клиентской части CaliberRM (отобразиться окно, представленное на рис.2, без запроса параметров подключения).

Рис.1. Параметры подключения к серверу CailberRM.

Рис.2. Указание пути к шаблону и конечному файлу.

Необходимо указать путь к файлу шаблона и путь к конечному файлу. Если необходимо при генерации создавать лог-файл - нужно поставить соответствующую галочку "Create Log File". Установка галочки "Warn about ambiguous tags" позволит выводить предупреждения о нераспознанных тегах, например, написанных с синтаксической ошибкой. После нажатия кнопки "Далее" отображается окно установки дополнительных параметров (рис.3).

Рис.3. Установка дополнительных параметров. 

В верхней части задается формат вывода даты - короткий или длинный, в нижней части задается режим вывода ключевых слов. При выборе значения Once замена ключевого слова происходит только один раз, то есть следующие вхождения данного ключевого слова заменены не будет. При выборе значения Multiple будут заменены все вхождения ключевого слова. После нажатия кнопки "Далее" отображается окно установки дополнительных параметров (рис.4).

Рис.4. Установка дополнительных параметров.

На данном окне задаются следующе параметры. Источник формирования требований: из базы данных (Use CaliberRM server data) или из ранее сохраненного набора данных (Use previously saved data). Для сохранения набора данных необходимо установить галочку "Save data for subsequent use", при этом данные будут сохранены в формате mdb-файла. При установке галочки "Create configuration file only" будет сформирован конфигурационный файл с выставленными параметрами. Данный файл можно использовать для автоматизированной генерации документов по расписанию. Установкой галочки "Requirement description will include formatted text, tables and images" пользователь задает, будет ли использовано оформление требования из базы данных CailberRM или из шаблона документа. После установки дополнительных параметров необходимо нажать кнопку "Готово" для начала генерации документа.

В случае если в шаблоне не был указан конкретный проект с помощью команды $PROJECT, будет выдано окно с выбором проекта (рис.5).

Рис.5. Выбор проекта

После выбора проекта и нажатия кнопки "Ок" начинается непосредственно генерация документа (рис.6).

Рис.6. Процесс генерации документа.

 

В случае если генерация прошла успешно, пользователю выдается запрос на открытие сгенерированного документа. При нажатии кнопки "Да" документ будет открыт в программе Microsoft Word.

Рис.7. Запрос на открытие документа.

Теперь рассмотрим возможности автоматической генерации документов по расписанию.

Для этого необходимо использовать программу Docfactory.exe, в качестве параметра передавая конфигурационный файл, созданный ранее (рис.4), например: 

C:Program FilesBorlandCaliberRMDocfactory.exe /conffile.ini 

Затем данную команду можно запланировать на запуск с определенной периодичностью, например, с помощью стандартной программы Windows "Планировщик заданий".

Таким образом, возможности, предоставляемые CaliberRM и Document Factory, позволяют создавать практически любые документы с произвольным оформлением, содержащие информацию из базы данных требований CaliberRM.


Раздел: Интеграция приложений и данных
Talis Decision (download)

Есть в Великобритании такая корпорация, Talis. Занимается она внедрением инноваций в образование, библиотеки и Linked Data. Один из центральных продуктов этой фирмы, Talis Decisions, полностью построен на платформе SAP BusinessObject Business Intelligence. Назначение этого продукта - управление информационными потоками и информационными запасами библиотеки, анализ данных и получение отчетов.  Следующий ролик дает обзор продукта Talis Decision (практически, это одновременно обзор основных технологий, входящих в BusinessObjects BI). В случае Talis Decision хорошо сработала схема OEM-партнерства: продукт BusinessObjects BI был встроен в конечный продукт, который предложили потребителю, как готовое решение.

Раздел: Oracle
Демо-ролик о Crystal Reports (download)

Широко известный в мире генератор отчетов Crystal Reports с некоторых пор стал частью сюиты Business Intelligence от SAP BusinessObjects. При помощи Crystal можно генерировать отчеты практически любой сложности, с красивым профессиональным оформлением, интерактивно взаимодействующие с пользователем, с динамическим обновлением данных. В демо-ролике речь пойдет о том, как при помощи Crystal извлечь данные из OLAP-куба, и на их основе построить довольно сложный отчет, отображающий некоторые срезы многомерного пространства данных. Язык - английский, качество неплохое.

Раздел: Oracle
BI Widgets: как сделать актуальные данные частью Вашего рабочего стола? (download)

Приятно, когда все актуальные данные под рукой, немедленно доступные и непрерывно наглядные. А когда они еще и красиво оформлены, интерактивны и взаимосвязаны - это вообще сказка!  В этом небольшом видеоролике речь пойдет о такой интересной технологии от SAP BusinessObjects, как BI Widgets. Как сделать актуальные данные частью Вашего рабочего стола? - ответ внутри. Язык - английский, качество - не очень, но посмотреть рекомендую.

Раздел: Oracle
Kylix 2: первый взгляд
Kylix 2 продолжает направление, начало которому было положено Kylix 1 - средством быстрой разработки приложений для операционной системы Linux. Как и Kylix 1, Kylix 2 продолжает традиции компонентного программирования, заложенные фирмой в хорошо известном отечественным программистам средстве разработки Delphi, позволяющем легко и быстро создавать, например, клиентские приложения к серверным базам данных. До появления Kylix для Linux не было аналогичных средств разработки.
Раздел: Другие СУБД
SQLBase под микроскопом
Настройка производительности SQLBase стала существенно легче. Новая утилита быстро обращается к тем запросам, которые представляют наибольший интерес. Приходилось ли Вам производить настройку SQL в системах SQLBase? С чего Вы начинали?Существуют, вероятно, тысячи операторов SQL, которыми пользуются каждый день, но с их помощью нельзя обнаружить операторы, ограничивающие производительность системы.
Раздел: Другие СУБД
Как перенести табличное пространство из базы в базу
Проблема переноса данных в Oracle, так же как и многие другие, не имеет одного общего приемлемого решения. С одной стороны, прикладные требования к такому переносу всегда конкретны: частота, объем, скорость осуществления и так далее. С другой стороны, предлагаемые Oracle варианты технических решений разнообразны и обладают каждый своими плюсами и минусами. В версии 8.
Раздел: Другие СУБД
Динамические SQL - запросы Oracle для ускорения выборок данных
Типичная задача при работе с базами данных - выбрать информацию из разных таблиц, отфильтровать ее по определенным критериям, потом обработать и/или выдать пользователю для просмотра и визуального анализа. Если параметры отбора записей имеются в наличии и определены - эта задача решается тривиально, с помощью обычного оператора SQL "SELECT… FROM… WHERE…" - где набор условий, располагаемых после WHERE, всегда определен.
Раздел: Другие СУБД
Сервер Oracle8i: еще SQL, но уже OLAP
Пользователи Oracle при слове "OLAP" чаще всего вспоминают Oracle Express. И не все знают, что для OLAP-работы вполне хватает и функциональности, присутствующей в Oracle8i. О чем конкретно идет речь, и как упомянутая функциональность соотносится с возможностями Oracle Express, говорится ниже. Туман вокруг OLAP Разработчики OLAP-продуктов изрядно потрудились не только над самими продуктами, но и над созданием терминологического тумана вокруг продуктов.
Раздел: Другие СУБД
SQL Server Version 7.0: Краткий обзор характеристик
Microsoft® SQL Server™ 7.0 - определяющая версия этой системы управления базами данных Microsoft. Как на лучшей системе управления базами данных для Windows NT®, на СУБД SQL Server остановили свой выбор многие корпорации и независимые поставщики программного обеспечения, создающие приложения для бизнеса. Нужды и требования пользователей обусловили существенное обновление продукта в части простоты использования, масштабируемости и надежности, а также поддержки хранилищ данных.
Раздел: Другие СУБД
RDM Server 4.0 (download)
кросс-платформенный сервер баз данных, спроектированный для приложений, к которым предъявляются высокие требования по производительности. .
Раздел: Другие СУБД
XML в Oracle - это очень просто
Оглавление Введение Простой пример XMLTYPE - тип XML XMLTYPE - объектный тип Oracle Взаимные преобразования табличного вида и XMLTYPE Преобразование из XMLTYPE в табличную форму Преобразование из табличной формы в XMLTYPE Дополнительная информация Введение Тип XMLTYPE появился в Oracle в версии 9.0. До этого наиболее подходящим для хранения документов в формате XML был тип CLOB (и менее подходящим - тип VARCHAR2, ограниченный максимумом 4000 знаков).
Раздел: Другие СУБД
Как убрать процессы несуществующих сеансов в Oracle
Проблема На расхожем ныне жаргоне заголовок мог бы звучать так: "Как убрать трупы (убитых сеансов)". Интересно, что такое название звучало бы точно. Как известно, каждый сеанс связи клиентской программы с СУБД Oracle реализуется посредством "серверного процесса", возникающего на компьютере, где работает СУБД.
Раздел: Другие СУБД
Oracle дорабатывает интеллектуальный софт
В середине марта Oracle обновил сервисы интеграции бизнеса, которые облегчают управление информацией в интеллектуальных бизнес-приложениях. Такие приложения предназначены для сбора всей возможной информации по определенной теме, чтобы облегчить выбор наилучших бизнес-возможностей. К ним относятся системы поддержки принятия решений, отчеты, аналитическая обработка в он-лайн режиме (OLAP), статистический анализ,  прогнозирование и вскрытие данных (data mining).
Раздел: Другие СУБД
Какой СУБД лучше управлять
Современные СУБД становятся все более сложными и многофункциональными системами и, как следствие этой тенденции, управляемость (managebility) СУБД и вычислительных сред, в которых они используются, также превращается в трудноразрешимую проблему. Сегодня этот параметр воспринимается как один из основных факторов, определяющих общую стоимость владения СУБД.
Раздел: Другие СУБД
Новые возможности Oracle 9i релиз 2 (Oracle 9.2)
Весной 2002 года компания Oracle выпустила новый релиз своей СУБД - Oracle 9i Release 2 (Oracle 9.2). В этом релизе были исправлены некоторые ошибки, обнаруженные в релизе 1, повысилось быстродействие и эффективность работы СУБД.
Раздел: Другие СУБД
                           
12345678910>>
 
 31.07 17:20
Определён возможный источник короткопериодических комет
 31.07 11:09
Треть молодых британцев страдают от повышенного кровяного давления
 31.07 11:09
Белóк в моче может прогнозировать болезнь почек
 31.07 05:13
Воссоздан легендарный нацистский компьютер
 31.07 05:12
Ученые приблизились к разгадке возникновения Вселенной
 31.07 04:50
Ritmix привезла в Россию три цифровых фоторамки
 31.07 04:50
Samsung SGH-i917 Cetus: смартфон п/у ОС Windows Phone 7
 31.07 04:50
Pantech P4000 и P1000: телефоны с двумя слотами для сим-карт
 31.07 04:50
Motorola представила мобильный телефон GRASP
 31.07 04:50
Motorola ME511: версия смартфона FlipOut для КНР
 
CNews: Новости | e-Business | Hi-Tech | Telecom
TopCTO Компьютеры цены продажа Компьютеры џ­¤ҐЄб жЁвЁа®ў ­Ёп