Несколько лет назад, мы достаточно много говорили о сервис-ориентированной архитектуре. Напомню, что основная идея этого подхода заключается в разделении компонент корпоративной информационной системы на две группы. Первая группа состоит достаточно стабильных, предназначенных для повторного использования компонент, называемых сервисами. Сервисы реализуют базовый функционал и меняются не очень часто. Часто меняющийся функционал должен быть отделен от сервисов и вынесен в группу приложений второго типа.
Прошло много времени. Мы были заняты другими делами: новые проекты, финансовый кризис и т.д. В общем, о сервис-ориентированной архитектуре все стали понемногу забывать. А тем временем поставщики постепенно развивали архитектуру своих решений в направлении SOA и в какой-то момент действительно научились делать платформы, допускающие повторное использование функционала без продолжительных и дорогостоящих доработок. Одним из таких решений являются платформы управления заданиями. Такие платформы, как правило, входят в состав SOA/BPM предложений основных поставщиков.
Основная идея платформы управления заданиями следующая.
Приложение разбивается на две части. Первая представляет собой базу данных, которая хранит задания, их статусы, историю изменений и т.д. Заодно в этой базе хранится список сотрудников, их группы, роли и естественно назначения конкретного сотрудника на ту или иную задачу. К этому компоненту примыкает пользовательский интерфейс, позволяющий людям просматривать свои задачи, редактировать их статусы, добавлять необходимую информацию. В общем, все то, что обычно съедать огромное количество трудозатрат на разработку такого приложения с нуля. Однако вся логика работы с заданиями вынесена в другую часть приложения, называемую process manager. Вся специфика конкретного процесса реализуется именно там. Мы можем реализовать в этой части множество различных процессов, и все они будут использовать функционал первой части. Более того, мы можем добавлять в этот компонент задания из других приложений, что избавит пользователей от необходимости работы с несколькими приложениями.
Сейчас в мой почтовый ящик регулярно приходят уведомления от массы систем. Это запросы на согласование ресурсов из системы проектного управления. Напоминания о необходимости визирования требований, распоряжений и запросов на изменения из различных систем, разработанных в Lotus Notes. Заявления и заявки сотрудников, уведомления о незакрытых дефектах, порой даже инциденты и многое-многое другое. Я совершенно не хочу работать со всеми этими системами. Мне, как пользователю, нужен единый список моих задач. Точно так же я хочу видеть единый список поручений моих сотрудников, чтоб отслеживать своевременность их исполнения. На мой взгляд, удобство работы сотрудника и руководителя еще боле весомый аргумент в пользу платформы управления заданиями, чем экономия ресурсов на разработку.
