SDM-МОДЕЛЬ КЛИЕНТ-СЕРВЕРНОЙ СИСТЕМЫ
Научный руководитель – к. т.н., доцент
Рассматривается возможность применения технологии SDM для представления модели архитектуры клиент-серверной системе. В работе анализируется состояние вопроса и особенно состояние инструментальных средств создания моделей. Обобщается опыт развертывания необходимых компонент в составе Visual Studio 2005 и иллюстрируется применение SDM-модели на примере восстановления архитектуры РИС, реализованной на платформе. Net.
Введение
Развитие клиент-серверной архитектуры направлено на создание систем с большой степенью распределенности. Сущность таких распределенных систем состоит в увеличении сложности взаимосвязи программного и аппаратного обеспечения на протяжении всего жизненного цикла системы. Под понятием распределенная система будем понимать взаимосвязь трех сущностей: аппаратного обеспечения, системного программного обеспечения и разработанного приложения. В докладе понятие распределенная система рассматривается с точки зрения клиент-серверных взаимодействий на различных уровнях системы. Реализация распределенной системы, основанной на моделях клиент-серверного взаимодействия, подразумевает под собой создание клиент-серверной архитектуры.
Жизненный цикл приложения
Жизненный цикл системы подразумевает под собой три стадии:
· Разработка (Development)
· Развертывание (Deployment)
· Сопровождения (Operations)
Рассмотрим более подробно особенности каждой стадии.
Разработка сложных распределенных систем, подразумевающая под собой этапы проектирования и реализации, требует много времени и грамотного руководства внутри команды разработчиков. Существует достаточно большой набор различных инструментов, таких как UML, IDEF, BPM, предоставляющих возможности по формализации требований к приложению, функциональному, процессному моделированию, построению объектно-ориентированных приложений, а также документированию. Поэтому, можно с уверенностью говорить о том, что, в связи с многообразием инструментальных средств и особенностями подхода, стадия разработки жизненного цикла системы достаточно хорошо и серьезно охвачена. Подтверждением могут служить разработки фирмы IBM Rational.
На следующей стадии, развертывании, требуется иметь сведения по конфигурации системы и информацию по процессу установки. Как видно из проведенного небольшого исследования, данная стадия не так широко и глубоко охвачена, как стадия разработки. Например, в UML существует инструмент под названием «Диаграмма развертывания» (Deployment diagram), позволяющий моделировать работающие аппаратные средства и компоненты программного обеспечения, развернутые на них. Но применение данного инструмента, по мнению большинства специалистов, не является необходимым на стадии развертывания. Следовательно, можно сделать вывод о том, что данная стадия жизненного цикла приложения недостаточно хорошо охвачена существующем инструментарием, в отличие от стадии разработки.
Стадия сопровождения подразумевает под собой мониторинг в режиме runtime с целью обеспечения поддержки реализованной, развернутой и функционирующей системы. Существенно, что компаниям приходится тратить 70-80% своего бюджета на поддержку внедренных систем, что свидетельствует о сложности данного этапа и, как факт, отсутствия инструментальных средств, соответствующих заданным требованиям.
Модели представления системы. Технология SDM
В настоящее время существует множество подходов, методологий и инструментальных средств для создания моделей. Разработкой такого рода занимаются крупнейшие корпорации, такие как IBM [1], HP [2], Sun, Microsoft [3]. Модели создаются с различными целями, функциональными возможностями на различных этапах жизненного цикла. В последние несколько лет усилия корпорации Microsoft направлены на получение инструментальных средств для возможности объединения и использования своих разработанных методологий Microsoft Solutions Framework [4] (MSF) и Microsoft Operations Framework [5] (MOF) в области Application Lyfecycle Management (ALM). Таким инструментом и является технологий System Definition Model (SDM).
SDM - это новая технология. В 2003 году корпорация Microsoft объявила о том, что в настоящая время стратегия компании будет направлена на создание и развитие методологий и инструментария по объявленной инициативе DSI (Dynamic System Initiative). Основной замысел SDM заключается в создании унифицированного подхода к проектированию моделей с целью использования единой модели на всех стадиях жизненного цикла системы: разработки, развертывания и сопровождения. В 2005 году с выходом новой версии средства разработки Visual Studio 2005 Team System (VS2005 TS) технология SDM стала доступна разработчикам.
Рассматривая в данной работе в качестве актуального и наглядного применения SDM задачу восстановления архитектуры необходимо отметить, что данная задача является важной, а в некоторых случаях необходимой, для обеспечения жизненного цикла приложения. Целью задачи является получение модели, позволяющей представить архитектуру приложения на уровне выше документированного кода. Причинами постановки такой задачи чаще всего является плохая организация разработки, когда необходимые для обеспечения жизненного цикла представления архитектуры либо не создаются вообще, либо создаются не полностью.
Задача ставится исходя из проводимых в работе различий представления архитектуры этапа разработки, где имеется в виду архитектура приложений, и архитектуры этапа развертывания и функционирования, где проявляется влияние ресурсных и системных программных ограничений. Определяется одна из важнейших целей обратного проектирования – для использования полученной архитектуры в мероприятиях по обслуживанию, оптимизации и совершенствованию управления всей инфраструктурой РИС. Задача формулируется как задача создания набора структурных и потоковых моделей представления архитектуры приложения по имеющимся исходным текстам и другим проектным материалам.
Анализ инструментальных средств
Применение SDM в задаче восстановления архитектуры обусловлено стремлением к сохранению однородности. Так как система разработана с использованием продукта Microsoft VS2005, базируется на платформе. Net, функционирует в операционной системе Microsoft Windows 2003 Server, то использование технологии Microsoft SDM не изменяет однородности среды.
Используя встроенные средства VS2005 возможно получить диаграмму классов проекта. Данное представление содержит графическое отображение иерархии классов, список методов, свойств классов. Но можно с уверенностью утверждать, что диаграмма классов не отображает потоковую модель архитектуры системы, а только содержит описание методов и связей классов, поэтому является лишь интерпретацией документированного кода системы.

Рисунок 1. Фрагмент диаграммы классов 1
Важно учитывать, что существует различие в понятиях модель архитектуры системы и модель конфигурации. Модель архитектуры системы несет в себе информацию о разработанной программной части системы и структурной и функциональной взаимосвязи ее компонентов. Модель конфигурации системы содержит информацию о системном и аппаратном окружении, а также используется на этапе сопровождения системы при организации мониторинга и контроля работающей системы в режиме runtime. Для определения показателей функционирования используется SDM Service, входящего в состав сервисов операционной системы.
Удобство применения новейших средств Micorsoft по созданию моделей состоит в том, что основой всех моделей является использования языка XAML (Extensible Application Markup Language) как одной из модификаций XML. Преимущества такого подхода состоят в получении описания модели как в виде иерархически структурированного XML-Файла, так и в виде программного кода на одном из языков платформы. Net, удобство визуализации XML-файла, возможность просмотра XML-файла в любой операционной системе.

Рис. 2. Пример SDM модели
В настоящее время ведущими компаниями данной области, такими как IBM, HP, Sun, Microsoft, Cisco разрабатывается язык моделирования сервисов Service Modeling Language (SML). Этот язык основан на XML, позволяет описывать сервис с позиции структурных схем и правил. Также предполагается иметь возможность описания конфигурации системного и аппаратного окружения для возможности использования разработанной с использованием SML модели на стадиях развертывания и сопровождения.
Применение SDM на примере задачи
восстановления архитектуры клиент-серверной системы
Встроенное средство VS2005 Class Designer позволяет не только создавать приложения, но и представлять иерархию уже разработанных объектных классов. При этом создается визуальная модель представления на уровне выше документированного кода. Следует отметить, что данное представление использует для моделирования нотацию отличную от широко распространенного UML, хотя и поддерживает включение в проект готовых UML-диаграмм классов.
Такое представление является наглядным и удобным при работе с программным кодом приложения, позволяет видеть иерархию классов, знать состав методов и свойств каждого класса. Но такая модель только визуализирует написанный код. Поэтому, используя только такое представление, достаточно трудно получить информацию о потоках, функционирующих в системе, их соотношении с аппаратными ресурсами, получить информацию о потоковой (процессной) модели системы.
Поэтому в работе ставится вопрос, о получении модели более верхнего уровня, нежели представление диаграммы кода. Такими моделями являются модели SDM и Workflow (WF). Используя эти инструментальные средства становится возможным создавать модели логики работы системы, сервисов, потоков, а также иметь возможность привязки сервисов к определенным аппаратным ресурсам. Преимущества такого подхода очевидны, поэтому ставится вопрос о возможности обратного инжиниринга путем перехода от исходного кода к модели сервисов через уровень диаграммы кода, как промежуточного этапа
Рассмотрим возможность такого перехода на конкретном примере работающей системы. Построение диаграммы классов дает наглядное визуализированное отображение иерархической структуры объектных классов. Переход от статического представления диаграммы классов к потоковому представлению WF-модели возможен двумя путями:
· Описание алгоритма с помощью последовательно-параллельных действий
· Описание алгоритма с помощью модели конечного автомата
Для того, что понять алгоритм работы, а, следовательно, перейти от представления кода к представлению в виде потоковых диаграмм, воспользуемся инструментом CodeLogic. Данный инструмент дает возможность получить визуальное представление последовательности вызовов при исполнении выбранного метода. Также имеется возможность получить интерпретацию исполнения выбранного метода в виде блок-схемы. Данные действия производятся с целью облегчить понимание алгоритма выполнения метода. Таким образом описанные действия можно выделить в промежуточный этап перехода от исходного кода в workflow моделям.
Под переходом от workflow моделей к модели SDM подразумевается создание в Distributed Systems Designer модели системы на основе знаний, полученных при построении workflow моделей и сведений, полученных из документации. Таким образом, выполнив переход от исходного кода к модели SDM становится возможным получить следующее:
· представление архитектуры на уровне выше документированного кода
· возможность использования модели для дальнейшей разработки и развертывания системы
· реализацию основных механизмов системы с помощью workflow моделей
· получение документированную архитектуру в виде xml-файлов описания SDM и workflow моделей и визуального представления моделей на всех указанных уровнях
· модель для дальнейшего количественного анализа производительности системы.
Методика восстановления архитектуры системы
в предложенном направлении
Для наглядного примера прохождения всех этапов восстановления архитектуры системы возьмем один из этапов процесса начальной загрузки системы. Этот процесс предполагает создание персистентных объектов всех типов и загрузку в них значений из базы данных. Следует понимать, что эти объекты взаимосвязаны, а, следовательно, имеется строгая последовательность в создании объектов.
1. Построить диаграмму классов, используя стандартное средство Visual Studio 2005 Class Diagram. По диаграмме классов и исходному коду системы представляется возможным найти необходимые методы, образующие основу потокового механизма системы.

Рис. 3. Диаграмма используемых классов
В алгоритме задействованы класс логики InfoPullLogic и классы механизмов поддержки персистентных объектов: PersistentFacade, PersistentObject, InfoObjectBase, UID. Как видно из диаграммы классов эти классы не имеют между собой отношений типа наследование.
2. Определив необходимые методы классов, с помощью инструмента CodeLogic построить необходимые представления последовательности вызовов и блок-схемы работы метода. Целью является визуальное представление работы метода (потока) для понимая алгоритма работы.

Рис. 4. Последовательность вызовов
При запуске конструктора класса InfoPullLogic выполняется получение экземпляра объекта PersistentFacade (GetInstance). Далее, используя полученный экземпляр, выполняется последовательная загрузка данных по типам объектов (LoadObjectsFromDatabase
3. Получение Workflow модели
Исходя из описания алгоритма на основе полученных представлений выбираются два объекта, существующих независимо: InfoPullLogic и PersistentFacade. Изначально запускается конструктор класса InfoPullLogic. Во время его выполнения вызывается метод получения экземпляра класса PersistentFacade. При положительном результате в цикле происходит вызов функции LoadObjectsFromDatabase с передачей в качестве параметра необходимого типа объекта. После успешного завершения цикла процесс загрузки данных считается завершенным.
Полученная WF-модель может иметь следующие представление:

Рис. 5. Полученная Workflow-модель
Данная модель имеет следующее xml-описание:

Рис. 6. XML-описание полученной Workflow-модели
Заключение
Изучив основные положения концепции Microsoft System Definition Model и проведя исследование с целью оценки возможностей на сегодняшний день инструментальных средств, я пришел к выводу, что применение SDM, в отличие от других технологий, возможно на всех трех этапах жизненного цикла системы. Была продемонстрирована методика восстановления архитектуры системы из исходного кода с применением набора инструментов на примере функционирующей системы для с целью показать актуальность применения SDM моделей.
Литература и источники
1. IBM On Demand Workplace (http://www. /ondemand/workplace)
2. HP OpenView (www. *****/openview/)
3. System Definition Model Overview White Paper (www. /windowsserversystem/dsi/sdmwp. mspx)
4. Microsoft Solutions Framework (http://msdn. /vstudio/teamsystem/msf/)
5. Microsoft Operations Framework (www. /technet/solutionaccelerators/cits/mo/mof/default. mspx)
6. Overview of System Definition Model (SDM) (http:///en-us/library/ms181772(VS.80).aspx)
7. Windows Server System: Health Modeling (http://www. /windowsserversystem/dsi/designwp. mspx)
8. Windows Server System: System Definition Model Overview White Parper (http://www. /windowsserversystem/dsi/sdmwp. mspx)
9. Архитектура программного обеспечения на практике. Л. Басс, П. Клементс, Р. Кацман. – СПб.: Питер, 2004
10. Распределенные системы. Принципы и парадигмы. Э. Таненбаум, М. Ван Стеен. – СПб.: Питер, 2003.
11. Современные методы и средства проектирования информационных систем. . (http://www. *****/database/case/)


