Съдържание на статията
Управление на бизнес процесите: колко, как, защо?
стр.2 Процеси, в които участват само хора
стр.3 Автоматизирано изпълнение на дейности
стр.4 Законодателство и самоуправление на SOA организираната система
стр.5 Рефлективност-реакция на външни събития
Всички страници

Автоматизирано изпълнение на дейности. Интеграция на системите чрез използване на уеб услуги. Service-Oriented Architecture и Enterprise Service Bus

Естествената следваща стъпка е да автоматизираме изпълнението на някои задачи от работните процеси.

Какво представлява

Това означава да накараме някакъв софтуер да свърши нещо без участието на човек (на жаргон казваме “в background режим”). В нашия пример за отпускане на кредит очевидни кандидати за автоматизация са последните задачи: “Обнови данните в досието”, “Открий сметка” и “Стартирай процеса на плащане”. След като кредитът е одобрен и имаме пълна информация за клиента, няма нужда наш служител да се занимава с тези рутинни неща. Много важно е да разберем разликата между задача, изпълнявана от човек и автоматизирана задача. Когато BPMS активира една задача, изпълнявана от човек нормално се случва следната поредица от събития:

  • BPMS поставя задачата в списъка със задачи на потребителя. Нека за пример това е задачата “Обнови данните в досието на клиента”
  • потребителят проверява списъка със задачи (това може да стане след неопределено време, например чак на следващия работен ден)
  • той решава да изпълни задачата (също след неопределено забавяне)
  • изпълнява задачата извън BPMS. В нашия пример:
    • влиза в друго приложение (например CRM)
    • намира необходимия запис (клиента)
    • въвежда новата информация
  • връща се в BPMS и отбелязва задачата като завършена (също след известно време)
  • сега вече BPMS може да продължи процеса нататък.

Виждаме, че всяка стъпка по получаването, изпълнението и отчитането на задачата може да предизвика забавяне във времето, през което целият процес чака. От друга страна, ако тази задача е автоматична, тя ще се изпълни веднага след като е генерирана и процесът ще продължи нататък без забавяне.

Как обаче една софтуерна система (BPMS) да накара друга софтуерна система да свърши нещо?

Как работи

Как работи системата, ако човек изпълнява задачата “Обнови данните в досието”? Както описахме по-горе, потребителят ще влезе в системата с досиетата на клиентите (нека да я наричаме CRM), ще избере необходимия клиент (по клиентски номер, име или ЕГН), ще въведе данните за новия кредит и ще даде командата “Запази”. За да може BPMS да накара CRM да извърши тази операция, трябва самата CRM да предоставя тази функционалност във вид на уеб услуга (web service). Уеб услугите представляват софтуерни компоненти, които реализират някакъв мрежов интерфейс (т.е. могат да бъдат активирани през мрежата – LAN или Интернет) чрез който други мрежови компоненти могат да се свързват с тях и да им пращат данни и команди, както и да получават резултати. Тука няма да дискутираме конкретните технически параметри на свързването (протокол, формат на данните, права за достъп...). Ще кажем само, че езиците за описание и комуникация с уеб услугите са строго дефинирани и стандартизирани. Всяко бизнес приложение (ERP, CRM, BPMS...) публикува своите уеб услуги в специален регистър, откъдето останалите приложения могат да прочетат как да се свържат с него, какви данни да поставят в заявката и какъв резултат да очакват. Например ERP може да предостави уеб услуги, които да променят определено складово количество, да изчислят себестойността на даден детайл, да изготвят заявка към доставчик и т.н. Имайки на разположение тези услуги дизайнерът на бизнес процеси може да ги определя като изпълнители на отделни задачи в схемата на процеса. Така се създават автоматизирани задачи. Когато конкретният бизнес процес стигне до такава задача, вместо да я постави в списъка на някой потребител-човек, той извиква съответната уеб услуга като предварително форматира данните, които са и нужни в съответния формат. Може да има напълно автоматични бизнес процеси, които след като бъдат стартирани изобщо не изискват намеса на човек. Най-често обаче бизнес процесите са смесени – включват както автоматични, така и персонални задачи.

Модерните бизнес системи са изградени изцяло върху концепцията на уеб услугите. Дори стандартният потребителски интерфейс с който работят потребителите, е отделна специфична уеб услуга.

Начинът на проектиране на софтуерни системи базиран на предоставянето на уеб услуги се нарича Service Oriented Architecture (SOA).

Можем да имаме огромно количество уеб услуги – стотици, предоставяни от едно бизнес приложение (например ERP или CRM). Действието на услугите може да бъде от елементарно печатане на фактура, проверка на валидността на пощенски адрес или форматиране на документ, до сложни бизнес транзакции.

Публикуването на уеб услугите на различни приложения позволява на другите приложения да ги използват за свои цели. Създава се впечатлението, че всички бизнес приложения са свързани в една обща информационна магистрала, по която те могат да взаимодействат едно с друго по предварително зададени алгоритми (чрез схемите на работните процеси) без намесата на човек-оператор като си обменят информация, съобщения и команди. Този образ е добил популярното наименование Enterprise Service Bus (ESB). “Физическият носител” на ESB е системата, в която уеб услугите се регистрират и от която потребителите на услугите получават информация къде какви услуги има, какъв е форматът на входните данни и на резултатите и т.н. Самата концепция на SOA изтрива границите между отделните приложения. Дизайнерът на бизнес процесите разполага с пълен списък на услугите и тяхната функционалност, без да се интересува кое точно приложение предлага всяка конкретна услуга.

Кога се използва

Интеграцията на BPMS с останалите бизнес приложения на основата на уеб сервизи и ESB има смисъл винаги, когато това е технически и технологично възможно! По-точно, интеграцията е желателна, когато потребителите използват други системи (освен системата за управление на задачите си) за да изпълнят работата си. На практика всеки бизнес използва различни корпоративни софтуерни системи.

Извеждането на операции извън затворените рамки на едно бизнес приложение и публикуването им като уеб услуги позволява на дизайнерите на процеси изключителна гъвкавост при моделирането на бизнеса. Можем да направим следната аналогия: както обектно-ориентираното програмиране позволи на програмистите многократно използване на един и същ програмен код (code reusing), така SOA позволява на дизайнерите на бизнес процеси многократно използване на една и съща бизнес логика. В този смисъл SOA представлява истинска интеграция на различните бизнес системи: от отделни затворени бизнес логики те се превръщат в съвкупност от общодостъпни бизнес компоненти, с които дизайнерите на процеси могат да изграждат сложни приложения без нуждата от програмиране, само със средствата за бизнес моделиране, предоставяни от BPMS. Това води до качествен скок в ефективността на работа на организацията. Хората се освобождават от рутинни дейности като едновременно с това рутинните дейности се изпълняват моментално – компютрите работят по 24 часа на ден без почивка и отпуска. По този начин единствените забавяния в изпълнението на бизнес процесите са там, където се намесват хората или в дейностите, които се изпълняват извън интегрираната система.

Необходими инвестиции и IT технологии

За да можем да изградим една изцяло интегрирана система, управлявана от BPMS, необходимо е всички нейни компоненти да са изградени на принципа на предоставяне на уеб услуги. За съжаление това далеч не винаги е така. SOA е сравнително нова концепция и затова само последните версии на най-развитите бизнес системи я поддържат при това на цени, които малцина могат да си позволят. Определено българските производители на бизнес софтуер са големи длъжници на своите клиенти в тази посока. Друг голям проблем у нас са много малкото подготвени консултанти за проектиране на интегрирани системи, базирани на уеб услуги. Самата концепция SOA променя радикално правилата за планиране и стиковане на различните бизнес приложения. Нужна е сериозна промяна в мисленето, целите и “хоризонтите” за да може получената интегрирана система да оправдае големите капиталовложения. Въпреки, че чисто формално SOA просто добавя един нов слой в “технологичния стек” концептуално промените трябва да са много по-дълбоки за да реализират огромния потенциал, заложен в самата идея.