Архитектура рабочих процессов в SharePoint Server 2013: вчера и сегодня

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

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

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

    Далее рассматривается архитектура платформы рабочих процессов SharePoint 2013, ее отличия и преимущества в сравнении с SharePoint 2010, дается обзор всех основных компонентов и взаимосвязей между ними.

    Платформа рабочих процессов SharePoint 2010


    В SharePoint 2010 рабочие процессы базируются на платформе Windows Workflow Foundation 3.5 (WF), предоставляющей инфраструктуру программирования, средства разработки и выполнения приложений.
    Фактически SharePoint 2010 содержит среду исполнения рабочих процессов (англ. Workflow Runtime) и предоставляет собственную закрытую реализацию ее сервисов. Таким образом, рабочие процессы тесно интегрированы со средой SharePoint 2010 и не могут быть вынесены за ее пределы.


    Рисунок 1. Архитектура рабочих процессов WF в SharePoint 2010

    Среда исполнения рабочих процессов интегрируется с SharePoint 2010 автоматически в ходе инсталляции фермы, а все ее компоненты хранятся в базе данных контента SharePoint на SQL Server. Рабочие процессы SharePoint 2010 доступны и одинаково работают во всех редакциях SharePoint, — SharePoint Foundation 2010, SharePoint Server 2010.


    Рисунок 2. Схема хранения данных рабочих процессов в SharePoint 2010

    Архитектура рабочих процессов SharePoint 2010 имеет ряд существенных недостатков, например:
    • Невозможность масштабирования с целью распределения нагрузки и использования механизмов управления отказоустойчивостью независимо от серверов фермы SharePoint;
    • Ориентированность на внедрение в рабочих средах компаний, сильная ограниченность применения в облачных средах.

    Платформа рабочих процессов SharePoint 2013


    Платформа рабочих процессов SharePoint 2013 использует диспетчер рабочих процессов (англ. Workflow Manager), который функционирует на базе рабочих процессов WF 4.0. В свою очередь, WF является частью .NET Framework 4.5.
    Диспетчер рабочих процессов — это новая мощная служба, которая может использоваться множеством различных приложений, в том числе SharePoint Server 2013. Одна из основных идей разработки новой платформы заключается в том, чтобы предоставить полноценный функционал рабочих процессов пользователям SharePoint Server 2013 без жесткой привязки к самой платформе. Такой подход обеспечил возможность решать проблемы производительности, отказоустойчивости и масштабируемости SharePoint Server 2013 и диспетчера рабочих процессов независимо друг от друга.


    Рисунок 3. Общая архитектура платформы рабочих процессов SharePoint 2013

    SharePoint 2013 использует диспетчер, отвечая только за поддержку моделей рабочих процессов и реализацию логики выполнения действий. Принципиальным в новой архитектуре является перенос процессов на сторону диспетчера, что позволяет вынести их за пределы фермы SharePoint 2013, обеспечив полностью независимое использование серверных ресурсов.

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

    Для взаимодействия с диспетчером рабочих процессов SharePoint Server 2013 использует специализированный программный интерфейс (англ. Application Program Interface, API). Весь необходимый набор компонентов для этого включен в соответствующего клиента (англ. Workflow Manager Client). При этом все обращения реализуются через служебную шину (англ. Service Bus).

    Платформа рабочих процессов SharePoint 2013 базируется на модели облачных приложений. Диспетчер рабочих процессов при этом может быть установлен на отдельный сервер во внутренней сетевой инфраструктуре компаний (англ. on-premises), так и развернут в качестве сервиса в Windows Azure.

    Отметим, что на практике компании часто в своей внутренней сетевой инфраструктуре разворачивают диспетчера рабочих процессов и шину служб для Windows Server на серверах SharePoint.

    Вторым важным моментом является то, что настройка рабочих процессов SharePoint 2013 доступна только в серверных редакциях, т.е. в SharePoint Server 2013 Standard и SharePoint Server 2013 Enterprise.


    Рисунок 4. Архитектура платформы рабочих процессов во внутренней сетевой инфраструктуре компании


    Рисунок 5. Архитектура платформы рабочих процессов в Windows Azure

    Перечислим основные преимущества, которые имеет новая архитектура рабочих процессов:
    1. Мульти-серверный хостинг. Он обеспечивает высокую эффективность и скорость исполнения экземпляров рабочих процессов в сочетании с легкостью управления. Также в числе его достоинств — более высокий уровень безопасности, гибкие возможности масштабирования и распределения нагрузки между удаленными серверами диспетчера рабочих процессов.
    2. Масштабирование. Управление разработкой рабочих процессов, реализацией бизнес-логики и формированием их экземпляров на стороне фермы SharePoint Server 2013 внутри сетевой инфраструктуры компании позволяет сохранять использование ресурсов серверов фермы на постоянном уровне, и в то же время выделять по требованию ресурсы, необходимые для непосредственного исполнения рабочих процессов. В случае размещения диспетчера рабочих процессов в Windows Azure появляется возможность добавлять и удалять ресурсы по мере роста или снижения нагрузки по обработке рабочих процессов, платить только за те ресурсы, которые в данный момент необходимы.
    3. Расширенные средства диагностики и мониторинга. Новые функциональные возможности мониторинга и диагностики исполняющихся экземпляров рабочих процессов используют REST API и клиент диспетчера рабочих процессов. Системным администраторам предоставляется специализированный набор инструментов, в то время как клиентам доступен просмотр данных о состоянии и статусах запущенных рабочих процессов, гибкое управление их конфигурационными настройками.
    4. Полностью декларативная разработка рабочих процессов. Это новая концепция впервые была использована на платформе SharePoint. Основными средством разработки для пользователей SharePoint Server 2013 становятся SharePoint Designer 2013, MS Visio 2013, MS InfoPath 2013. Для разработчиков Visual Studio 2012/2013 представлен набор специализированных шаблонов проектов и мощный инструментарий разработки действий рабочих процессов. Действия рабочих процессов, разрабатываемые в MS Visual Studio, ориентированы на последующее использование в SharePoint Designer 2013.
    5. Реализация в виде веб-сервисов. Действия рабочих процессов SharePoint Server 2013 вызываются с помощью слабосвязанных веб-служб, использующих программный интерфейс для взаимодействия с SharePoint. Он базируется на функциях обмена сообщениями Windows Communication Foundation (WCF) и использовании REST-запросов. Поддержка среды исполнения, входящих и исходящих сообщений координируют все этапы выполнения рабочих процессов, гарантируя целостность и надежность.

    Далее компоненты архитектуры рабочих процессов SharePoint 2013 рассматриваются более подробно.

    Компоненты платформы рабочих процессов SharePoint 2013


    Windows Workflow Foundation в среде SharePoint Server 2013


    Общая характеристика
    Windows Workflow Foundation (WF) –технология компании Microsoft, т обеспечивающая поддержку жизненного цикла рабочих процессов: определение, разработку, выполнение и управление. (англ. workflow). WF предоставляет инфраструктуру программирования, средства разработки и выполнения приложений на базе рабочих процессов.


    Рисунок 6. Архитектура Windows Workflow Foundation

    Таблица 1. Основные компоненты архитектуры Windows Workflow Foundation
    Компонент Описание
    Хост-процесс Приложение, которое включает среду выполнения рабочих процессов WF. Хост-процесс обеспечивает поддержку для сервисов среды выполнения.
    Действие Единица работы или отдельный шаг бизнес-процесса.
    Рабочий процесс Последовательность действий, использующаяся для реализации бизнес-процесса.
    Библиотека базовых действий Набор шаблонов действий рабочих процессов, использующихся при разработке и входящих в состав WF.
    Дополнительные действия Действия рабочих процессов, разработанные программистами.
    Среда выполнения Экземпляры рабочего процесса исполняются средой выполнения. Она же управляет изменением состояний рабочих процессов и взаимодействием между ними.
    Дизайнеры Инструменты пользовательского интерфейса, использующиеся для разработки. Visual Studio включает специализированный дизайнер WF
    Сервисы среды выполнения Сервисы, которые обеспечивают размещение и взаимодействие между компонентами рабочих процессов

    Рабочие процессы WF — это структурированная коллекция «действий» (англ. activities), каждое из которых представляет функциональный компонент бизнес-процесса.


    Рисунок 7. Пример панели разработчика рабочего процесса для SharePoint 2013 в MS Visual Studio 2013

    Платформа SharePoint Server 2013 обеспечивает дополнительный набор средств разработки, значительно расширяя стандартные возможности WF:
    • Веб-браузер, например, Internet Explorer, Firefox или Chrome — средство, используемое для взаимодействия с сайтами SharePoint Server 2013. Например, можно создать списки и библиотеки, добавлять к ним элементы, связать с ними рабочий процесс, запустить его для отдельного элемента, чтобы проверить состояние.
    • MS Visio 2013, использующееся для создания схем с помощью фигур и соединителей. Его можно задействовать для создания рабочих процессов на основе платформы SharePoint 2013. Далее процессы можно импортировать из MS Visio 2013 в SharePoint Designer 2013 и наоборот.
    • MS InfoPath 2013 — средство, предназначенное для разработки форм. С помощь него можно настроить формы, которые будут необходимы пользователям для взаимодействия с рабочим процессом.
    • SharePoint Designer 2013 — это основное средство, с помощью которого бизнес-пользователи создают определения рабочего процесса и публикуют их, как и в предыдущих версиях. Оно также используется для упаковки определения рабочего процесса со связанными компонентами SharePoint (такими как списки, библиотеки, типы контента, сайты) или без них. Можно создавать пользовательские действия рабочего процесса в Visual Studio и импортировать их в SharePoint Designer 2013, где они становятся доступными из конструктора рабочих процессов.
    • Средства разработки в Visual Studio действий для использования конструктором SharePoint Designer 2013.



    Рисунок 8. Примеры действий рабочих процессов в SharePoint Designer


    Рисунок 9. Фрагмент рабочего процесса в SharePoint Designer

    Важно отметить связь между действиями рабочего процесса WF и действиями SharePoint Server 2013, доступными для выбора в SharePoint Designer 2013 (SPD 2013). Действия рабочего процесса WF представляют базовые управляемые объекты, методы которых определяют поведение рабочего процесса.

    Действия рабочего процесса в SPD 2013 — это оболочка, инкапсулирующая базовые действия WF и представляющая их в понятной SPD 2013 форме.

    Создатели рабочих процессов в ходе разработки в SPD 2013 взаимодействуют с действиями рабочего процесса, в то время как модуль выполнения рабочих процессов работает на основе соответствующих действий WF.

    Типы рабочих процессов
    WF обеспечивает создание рабочих процессов двух типов:
    1. Последовательные рабочие процессы.
    2. Рабочий процесс конечного автомата.

    Последовательные рабочие процессы (англ. sequential workflow) следуют определенному пути. Он может включать ветки решений и циклы или не иметь конечной точки, но в процессе разработки легко отслеживается предсказуемый путь.

    Примеры последовательных рабочих процессов, выполняющихся в среде SharePoint Server 2013:
    • При добавлении документа в библиотеку SharePoint рабочий процесс добавляет новую задачу в список задач SharePoint.
    • При редактировании задачи рабочий процесс выполняет проверку свойства задачи, чтобы определить ее на предмет завершения. Если выполнение завершено, рабочий процесс также завершается.



    Рисунок 10. Пример последовательного рабочего процесса WF в MS Visual Studio

    Рабочий процесс конечного автомата (англ. state machine workflow) представляет собой набор состояний, переходов и действий. Действия выполняются асинхронно, это означает, что они не обязательно размещены в строгой последовательности, и вместо этого могут активироваться другими действиями и состояниями. Одно состояние задается как начальное, затем (при возникновении определенного события) происходит переход к другому.

    Конечному автомату можно задать состояние, определяющее завершение рабочего процесса.


    Рисунок 11. Пример рабочего процесса конечного автомата WF

    SharePoint Server 2013
    SharePoint Server 2013 предоставляет платформу для рабочих процессов, которые моделируют бизнес-процессы, связанные с документами, списками, типами контента, пользователями, задачами и сайтами SharePoint. Кроме того, рабочие процессы, сопоставления, действия и другие метаданные хранятся и контролируются в SharePoint 2013.

    Клиент диспетчера рабочих процессов
    Клиент диспетчера рабочих процессов (англ. Workflow Manager Client) обеспечивает управление определениями рабочих процессов. Это самостоятельный программный компонент, который после инсталляции в системе взаимодействует с SharePoint с помощью общих протоколов инфраструктуры обмена сообщениями через шину обслуживания.

    Прокси-сервер приложения служб рабочих процессов
    Клиент диспетчера рабочих процессов представлен в SharePoint 2013 в виде прокси-приложения службы рабочих процессов (англ. Workflow Service Application Proxy). Этот компонент позволяет SharePoint взаимодействовать с сервером диспетчера рабочих процессов. Межсерверная проверка подлинности выполняется с помощью OAuth.

    Диспетчер сервисов рабочих процессов
    Все новые возможности рабочих процессов SharePoint 2013 реализуются в объектной модели SharePoint посредством диспетчера сервисов рабочих процессов, который включает в себя службы развертывания, экземпляров, взаимодействия и обмена сообщениями.

    Служба развертывания
    Служба развертывания обеспечивает реализацию функционала публикации рабочих процессов и установки ассоциаций между ними и объектами SharePoint.

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

    Служба взаимодействия
    Служба взаимодействия используется для извлечения и запуска на выполнение экземпляров классических рабочих процессов SharePoint 2010. При этом она поддерживает два сценария:
    1. В организации есть старые рабочие процессы SharePoint 2010, функционирование которых необходимо поддерживать в среде SharePoint 2013.
    2. Разработан рабочий процесс SharePoint 2013, внутри которого необходимо обеспечить выполнение действий, доступных только в SharePoint 2010.


    В обоих сценариях служба взаимодействия поддерживает корректную работу самих рабочих процессов и отдельных действий SharePoint 2010 в среде SharePoint 2013, отвечая за поддержку процесса согласования между двумя средами.

    SharePoint Designer 2013 предоставляет доступ к новому действию – запуск рабочего процесса SharePoint 2010. С точки зрения WF оно представляет собой последовательность отправки сообщений между диспетчером и хостом рабочих процессов SharePoint 2010, работающим на платформе SharePoint 2013. Общая последовательность действий при этом следующая:
    1. Диспетчер бизнес-процессов начинает рабочий процесс (1). Соответствующее сообщение передается диспетчеру сервисов рабочих процессов (2).
    2. Диспетчер сервисов рабочих процессов запускает рабочий процесс внутри хоста рабочих процессов SharePoint 2010.
    3. Событие завершения рабочего процесса SharePoint 2010 или сразу после его запуска (в зависимости от свойств рабочего процесса) вызывает отправку соответствующего сообщения диспетчеру рабочих процессов (3).
    4. Через публикатор событий (4) информация о завершении рабочего процесса SharePoint 2010 передается диспетчеру рабочих процессов (5).
    5. Общая схема взаимодействия между компонентами платформы рабочих процессов SharePoint 2013 представлена ниже на изображении.



    Рисунок 12. Общая схема взаимодействия компонентов платформы рабочих процессов при выполнении рабочих процессов SharePoint 2010


    Рисунок 13. Действие запуска рабочего процесса SharePoint в SharePoint Designer 2013


    Рисунок 14. Параметры запуска рабочего процесса SharePoint 2010 в SharePoint Designer 2013

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

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

    Диспетчер рабочих процессов и служебная шина
    События SharePoint Server 2013, которые связаны с выполнением рабочего процесса, например, — создание элемента списка/библиотеки, обновление элемента списка/библиотеки, — направляются серверу диспетчера рабочих процессов с помощью шины обслуживания. Для обратного вызова SharePoint диспетчер рабочих процессов использует API REST SharePoint.

    Ниже на изображении представлен пример схемы взаимодействия между диспетчером рабочих процессов и служебной шиной во время выполнения простого рабочего процесса SharePoint 2013.


    Рисунок 15. Высокоуровневая модель рабочего процесса SharePoint Server 2013. Назначение задачи пользователю


    Рисунок 16. Высокоуровневая модель рабочего процесса SharePoint Server 2013. Выполнения задачи пользователем и сохранение результатов

    Автор – Любовь Волкова
    Поделиться публикацией

    Комментарии 0

    Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

    Самое читаемое