Механизм управления потоками Windows Workflow Foundation. Часть 1

Источник: bytemag
Андрей Колесов

Интересная складывается ситуация: довольно долго при обсуждении возможностей будущей Windows Vista (которая тогда еще имела лишь кодовое обозначение Longhorn) речь шла главным образом о новой программной модели системы, которая тогда назвалась WinFX. По большому счету первое представление предварительной ознакомительной версии OC на PDC' 2003 прошло именно в таком ключе: "Longhorn - это WinFX".

Но с выпуском в мае прошлого года публичной второй бета-версии Windows Vista тема технологического набора WinFX, который как раз тогда получил официальное название .NET Framework 3.0, ушла в тень более широких обсуждений Windows с точки зрения работы пользователей (включая, конечно, и важные вопросы настройки и администрирования ОС). Ситуация не изменилась и сегодня, спустя три месяца после начала продаж Vista. И это вполне понятно: на данном этапе перед Microsoft и заказчиками стоит задача практического внедрения системы на пользовательском уровне.

Впрочем, нет сомнений, что в ближайшее время актуальность базовых программных инноваций Windows Vista опять будет быстро расти. В этом плане можно выделить два аспекта. Во-первых, использование фундаментальных новшеств будет все сильнее востребовано на уровне клиентских приложений - как тиражных продуктов, так и заказных решений. Во-вторых, сейчас начнется активный период подготовки к выпуску финальной версии Windows Server Longhorn, для которой возможности разработки весьма приоритетны.

В этой статье мы хотим вкратце познакомить читателей с одним из компонентов .NET Framework 3.0 - Windows Workflow Foundation (WF)*. По нашим наблюдениям, WF пока не стал объектом внимательного изучения ИТ-специалистами и разработчиками. Одна из причин этого в том, что данный программный компонент появился в составе .NET Framework 3.0 уже ближе к выпуску Vista (кажется, это было в августе 2005 г.). При этом в плане маркетингового продвижения этот продукт в силу его специфичности явно оставлен корпорацией Microsoft "на потом" (отметим, что технология управления идентификацией CardSpace появилась в .NET Framework 3.0 почти в самый последний момент, но учитывая актуальность вопросов безопасности, Microsoft прилагает большие усилия к ее популяризации).

*Microsoft сознательно использует сокращение WinWF или просто WF, а не WWF, чтобы его не путали с известной аббревиатурой World Wide Fund (Всемирный фонд охраны дикой природы).

Тем не менее WF - это интересно и перспективно, причем вовсе не в каком-то отдаленном будущем. Разумеется, речь не идет о том, что внутренний механизм Vista в своем нынешнем варианте может конкурировать с промышленными workflow-системами. Но тут нужно иметь в виду следующие обстоятельства.

1. Даже в таком начальном, клиентском, варианте (а в его развитии не стоит сомневаться) WinWF представляет реальный интерес для заказчиков и независимых разработчиков. И ряд российских софтверных вендоров уже начали включать его в свои продукты.

2. Наверняка наиболее интересный вариант применения WF связан с использованием Windows Server, а Longhorn появится уже скоро (на рубеже 2007-08 гг.).

3. WF появился не на пустом месте. На самом деле в нем легко увидеть базовые технологии BizTalk Server. В то же время важен сам прецедент переноса, пусть и в упрощенном варианте, на массовую платформу механизма управления потоками работ (управления бизнес-процессами). Это должно способствовать расширению сферы применения таких технологий и методов организации прикладных решений, в том числе и ускорению продвижения профессиональных workflow-инструментов.

4. В плане перспектив WF, наверное, стоит провести аналогию c SharePoint: встроенные технологии Windows SharePoint Services тоже появились в составе ОС относительно недавно и поначалу были встречены рынком с определенной осторожностью.

Закончив на этом вступление, посмотрим, что же представляет собой Windows Workflow Foundation. Но прежде отметим, что .NET Framework 3.0 доступен в составе не только Windows Vista, но и Windows XP.

Технологическая платформа .NET Framework 3.0

Платформа Microsoft .NET Framework 3.0 предназначена для разработки приложений нового поколения на основе управляемого кода для ОС семейства Windows Longhorn (в настоящее время они представлены клиентской Windows Vista). Она доступна также для работы в среде Windows XP и Windows Server 2003 в качестве дополнительного программного компонента.

По сути в .NET Framework 3.0 включен полный функционал ранее выпущенного набора .NET Framework 2.0, поверх которого устанавливается более высокоуровневый технологический слой, ранее известный под названием WinFX. Таким образом, объявленный сейчас набор .NET 3.0 состоит из двух частей, каждая из которых включает несколько компонентов. В состав первой части, .NET Framework 2.0, входят Common Language Runtime 2.0, Base Class Library 2.0, ADO.NET 2.0, ASP.NET 2.0, Windows Forms 2.0, VB 8.0 и C# 2.0. В состав WinFX - Windows Communication Foundation (WCF), Windows Presentation Foundation (WPF), Windows Workflow Foundation (WF) и Windows CardSpace (WCS).

Таким образом, .NET 3.0 - это .NET 2.0 плюс некоторая дополнительная функциональность. Существующая сегодня среда .NET 2.0 Framework и компиляторы остаются неизменными. Однако разработчики теперь получили новые возможности в четырех ключевых направлениях.

Windows Communication Foundation - по сути новое поколение средств взаимодействия программных компонентов: Web Services (asmx), Web Services Extensions (WSE), .NET Remoting, Enterprise Services и Microsoft Message Queue (MSMQ). Тут появилось очень много новшеств, но нужно подчеркнуть, что WCF не заменяет уже существующие технологии, а создает лишь расширения для них. Более того, первая версия WCF зачастую лишь предлагает новые способы применения старых средств.

Windows Presentation Foundation - первое реальное обновление технологической среды пользовательского интерфейса с момента выпуска Windows 95. В WPF входит новое ядро, которое должно заменить GDI и GDI+, используемые в нынешней Windows-платформе. WPF представляет собой высокоуровневый объектно-ориентированный функциональный слой (framework), позволяющий создавать 2D и 3D интерфейсы. Сейчас WPF можно назвать альтернативным вариантом DHTML и JavaScript, используемым в Web-разработке применительно к Windows Forms. Но в будущем WPF должен объединить Windows и Web-разработку (в том числе Ajax).

Windows Workflow Foundation часто характеризуют как функциональное подмножество BizTalk Orchestration, реализованное на уровне Windows (как это в свое время произошло с Terminal Services и SharePoint Services). Механизм управления потоками можно запускать в клиентских, серверных и Web-приложениях, при этом можно работать с визуальным конструктором для проектирования заданий и маршрутов выполнения работ. WF - это хороший способ познакомиться с преимуществами процессно-ориентированного подхода, особенно для тех, кому BizTalk Server кажется функционально избыточным, сложным в освоении или просто слишком дорогим.

Windows CardSpace представляет собой основанное на отраслевых стандартах решение для управления идентификацией при работе с Интернетом. Проще говоря, WCS - это способ простой и безопасной идентификации пользователей при перемещении между ресурсами Интернета, не требующий повторного ввода имен и паролей. В отличие от более ранних технологий унифицированной идентификации (например, Microsoft Passport) WCS управляет непосредственно пользователями и приложениями, с которыми устанавливается контакт (не из централизованного ресурса). Иными словами, можно использовать разные схемы (и уровни сложности) для идентификации при доступе, например, на Web-форумы и для банковских операций. В любом случае Microsoft не управляет доверительными удостоверениями пользователей.

Отметим, что в самом предварительном варианте (три года назад) WinFX состоял из трех основных компонентов - WCF, WPF и WinFS (новая файловая система). Но потом финальная реализация WinFS была отложена до появления серверной Longhorn, а в составе комплекса появились WF и InfoCard. Как поясняли еще год назад представители Microsoft, в этом расширении не было никаких неожиданностей - работы над данными технологиями велись уже давно, и их появление в Vistа было запланировано еще несколько лет назад. Например, WF ранее назывался Windows Workflow Services и имел статус служб ОС. А CardSpace (первоначально эта технология называлась InfoCard) сначала входила в состав WCF, но потом в результате роста актуальности проблем Identity Management выросла в отдельный компонент WinFX.

Общие принципы

Согласно определению Microsoft , Windows Workflow Foundation предоставляет собой программную модель, ядро выполнения и инструменты для быстрой разработки приложений, поддерживающих бизнес-процессы, в ОС Windows нового поколения. WF поддерживает как системные, так и пользовательские процессы, в том числе специальные приложения, потоки страниц интерфейса пользователя, документооборот, составные рабочие процессы для ориентированных на службы приложений, рабочий процесс на основе бизнес-правил и рабочий процесс для управления системами. В WF входят графические средства разработки, которые позволяют создавать приложения, поддерживающие бизнес-процессы, с использованием императивного кода и декларативных правил. При этом поддержка бизнес-процессов реализована на уровне базовой платформы разработки, благодаря чему можно создавать приложения, моделирующие постоянно изменяющиеся бизнес-процессы и легко адаптирующиеся к этим изменениям.

WF - это набор элементарных блоков, называемых "активностями" (activities), которые хранятся в виде моделей, описывающих реальные процессы. На основе моделей механизм workflow выполняет заданную последовательность активностей, реализуемых людьми или программными функциями.

Каждый запускаемый экземпляр workflow создается и управляется как внутренний процесс (in-process) механизма исполнения (workflow runtime engine, WRE). В пределах одного домена приложения может быть запущено несколько WRE, т. е. поддерживаются несколько параллельных экземпляров workflow.

Читать часть 2


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=23478