Существующая версия SQL Server снабжена мощным языком программирования – Transact-SQL, позволяющим создавать сложную логику триггеров и хранимых процедур. В новой версии язык значительно расширен, теперь он соответствует стандарту ANSI‑92, и программисты получили новые возможности (такие как новые, соответствующие ANSI‑стандарту, типы данных и соответствующая стандарту ANSI поддержка декларативной целостности данных). Помимо перечисленных возможностей, программист может воспользоваться генератором, автоматически создающим уникальные значения для ключевых полей таблицы, возможностью передавать идентификаторы и данные типа TEXT и IMAGE как параметры хранимым процедурам и многое другое. Использование хранимых процедур, которые запускаются автоматически при каждом старте SQL Server, позволяет создавать системы, способные выполнять различного рода задания без участия администратора. Наиболее же интересным нововведением являются скроллируемые, двунаправленные курсоры. Курсоры SQL Server поддерживают все режимы, определенные расширенными требованиями ANSI, а также и ODBC семантику; они совместимы с существующими курсорами, поддерживаемыми API в DB-Library.
Microsoft SQL Server имеет параллельную архитектуру, интенсивно использующую много поточность операционной системы для обеспечения высокой производительности и масштабируемости на многопроцессорных системах. Все управление задачами SQL Server организовано вытесняющим для повышения надежности и изолирования возможных сбоев. За счет динамического распределения нагрузки на процессоры SQL Server достигает автоматической балансировки загрузки всех ЦП компьютера. Microsoft называет это «симметричной архитектурой сервера».
Симметричная архитектура Microsoft SQL Server предоставляет следующие преимущества:
– снижает сложность системы.
SQL Server не дублирует службы операционной системы (такие как диспетчирование, распределение памяти, управление очередями), что делает архитектуру системы более эффективной и стабильной;
– повышает производительность.
SQL Server способен обеспечить высокую скорость выполнения транзакций и обладает высокой пропускной способностью на микропроцессорных системах, даже при одновременной работе сотен пользователей;
– адаптируется к росту нагрузки.
Нагрузка на SQL Server динамически распределяется по нескольким ЦП, что повышает масштабируемость на симметричных многопроцессорных системах. Задачи пользователя исполняются в самостоятельных потоках, и при необходимости одна задача принудительно завершается, не оказывая влияния на выполнение остальных. Например, SQL Server способен прервать «спящий» процесс без того, чтобы это оказало влияние на работу всей системы. Ни одна задача не может «выйти из-под контроля».
Безопасность SQL Server:
- Улучшенная интеграция с безопасностью NT;
- Аутентификация средствами NT (как текущий пользователь – без пароля, как другой – login+pwd);
- Возможна аутентификация средствами SQL Srv;
- Полная поддержка пользователей, групп и ролей;
- Роли могут быть приписаны пользователям и группам NT, а также пользователям Sphinx;
- Роли могут быть вложены;
- Прикладные роли для 3‑уровневых систем;
- Позволяют назначать права при доступе через приложение, а не isql;
- Гибкая гранулярность прав и системных ролей;
- Предопределенные роли ServerAdmin, SecurityOfficer,…;
- Поддержка делегирования в NT 4.0;
- На 2‑м сервере не как удаленный пользователь, а под тем же именем;
- Простое и мощное администрирование.
1.6.3 Обоснование проектных решений по программному обеспечению
Для программирования прикладных компонентов будет использоваться объектно-ориентированный язык. Таким языком будет FoxPro, так как он:
1. универсальный;
2. многоцелевой;
3. лаконичный;
4. предоставляет гибкие и эффективные средства определения объектов;
5. обеспечивает высокий уровень абстракции.
Для удобства и быстроты выполнения часто повторяющихся операций, а также для создания автоматизированных рабочих мест СУБД FoxPro имеет свой язык программирования. В Visual FoxPro 3.0 язык программирования делится на две части. Первая перешла по наследству от предыдущих версий и относится к одному из самых мощных подмножеств языка Xbase. Это процедурный язык.
Вторая часть языка является совершенно новым компонентом, который появился только в Visual FoxPro и является объектно-ориентированным. Можно отметить, что в СУБД FoxPro таким образом могут без особых переработок работать большое количество программ, написанных в других системах. Следует заметить также, что версия 3.0 в полном объеме поддерживает совместимость со всеми предыдущими версиями и даже с такими старожилами СУБД для персональных компьютеров, как dBase III. Поэтому сейчас Visual FoxPro имеет весьма внушительный перечень команд и функций, многие из которых потеряли практическое значение для программиста при разработке новой программы. Конечно, в книге мы не будем перебирать весь этот внушительный список, а рассмотрим только те команды и функции, которые необходимы для разработки эффективной программы.
Так как в качестве основной платформы выбрана Win32, то конкретной реализацией языка FoxPro будет Microsoft Visual FoxPro.
В качестве инструмента для реализации всего проекта используется CASE‑средство (средство, позволяющее максимально систематизировать и автоматизировать поддержку жизненного цикла программного продукта) фирмы PLATINUM technology. В частности, для проектирования бизнес-модели предприятия используется инструмент-модуль BPwin. Для каждого элемента построенной модели BРwin позволяет вести описательные поля, такие как Name (Название элемента) Definition (Определение элемента) Note (Дополнительные аннотации к элементу). Эти поля содержат информацию, позволяющую понять логику, алгоритм процесса и проанализировать его составляющие.
Целостную и достаточно подробную модель можно получить, пользуясь специальными методами структурного анализа, такими как IDEF. Впервые метод IDEF0 был предложен в конце шестидесятых годов Дугласом Россом (тогда он назывался SADT – Structured Analysis and Design Technique). Первоначально метод SADT предназначался для моделирования технологических процессов, но вот уже более 20 лет он успешно применяется во всем мире сотнями компаний в самых разных областях деятельности. Согласно синтаксису IDEF0, модель представляет собой совокупность иерархически выстроенных схем, каждая из которых является описанием какого-либо процесса (activity). Функциональная модель SADT отображает функциональную структуру объекта, т.е. производимые им действия и связи между этими действиями. Основные элементы этой методологии основываются на следующих концепциях /4/:
· графическое представление блочного моделирования. Графика блоков и дуг SADT‑диаграммы отображает функцию в виде блока, а интерфейсы входа / выхода представляются дугами, соответственно входящими в блок и выходящими из него. Взаимодействие блоков друг с другом описываются посредством интерфейсных дуг, выражающих «ограничения», которые в свою очередь определяют, когда и каким образом функции выполняются и управляются;
· строгость и точность. Выполнение правил SADT требует достаточной строгости и точности, не накладывая в то же время чрезмерных ограничений на действия аналитика. Правила SADT включают:
– ограничение количества блоков на каждом уровне декомпозиции (правило 3–6 блоков),
– связность диаграмм (номера блоков),
– уникальность меток и наименований (отсутствие повторяющихся имен),
– синтаксические правила для графики (блоков и дуг),
– разделение входов и управлений (правило определения роли данных),
Три методологии – IDEF0, DFD и IDEF3, поддерживаемые в BPwin, позволяют посмотреть с разных сторон на деятельность предприятия /5/.
IDEF0 – Это функциональная модель, предназначенная для описания бизнес-процессов на предприятии. Она позволяет понять, какие объекты или информация служат сырьем для процессов, какие результаты производят работы, что является управляющими факторами и какие ресурсы для этого необходимы.
DFD (Data flow diagramming) переводится на русский как «схемы потоков данных». С их помощью описываются документооборот и обработка информации. Подобно IDEF0, DFD представляет модельную систему как сеть связанных между собой работ. DFD можно использовать как дополнение к модели IDEF0, когда требуется более наглядное отображение текущих операций документооборота, описания функций обработки информации, документов, объектов, а также сотрудников или отделов, которые участвуют в обработке информационных потоков. Синтаксис DFD, помимо работ и стрелок, включает дополнительно два типа объектов. Первый, внешняя сущность, служит для отображения внешних по отношению к проектируемой системе объектов. Это может быть клиент, отдел кадров, справочник и т.п. Второй, хранилище данных, – это «склад» информационных объектов. Им может быть база данных, файл или архив бумажных документов. Хранилище данных как бы «замораживает» данные, позволяя отобразить отсрочку в передаче объектов и информации от одной работы к другой. Причем элементы для описания источников, приемников и хранилищ данных позволяют более эффективно и наглядно представить процесс документооборота.
IDEF3 – Для описания логики взаимодействия информационных потоков более подходит IDEF3. Иногда ее называют workflow diagramming – моделирование с использованием графического описания информационных потоков, взаимоотношений между процессами обработки информации и объектами, являющимися частью этих процессов. У IDEF3 имеется специфический элемент перекресток. Им описывают последовательность выполнения работ, очередность их запуска и завершения. С помощью workflow‑схем можно моделировать сценарии действий сотрудников организации, например порядок обработки заказа или события, на которые необходимо реагировать за конечное время. Каждый сценарий сопровождается описанием процесса и может быть использован для документирования любой функции, моделируемой на схеме IDEF0.