Let's Do It Romania - 24 Septembrie 2011



   

Documente în mişcare

   

O introducere în terminologia tehnologiilor de workflow


   

Birocraţia este un rău necesar. În absenţa unor reguli care să stabilească succesiunea activităţilor, traseele documentelor şi responsabilităţile aferente, chiar şi cele mai simple procese ar deveni incontrolabile.

Mircea Sârbu


De îndată ce o organizaţie ajunge la un anumit nivel de complexitate - fie ca structură, fie ca mod de funcţionare - ipoteza că fiecare ştie ce are de făcut începe să nu se mai verifice. Mai mult, organizaţiile moderne renunţă tot mai mult la organizarea strict ierarhică, abordând tehnici mult mai dinamice care scurtează circuitele clasice şi distribuie responsabilităţile. "Fişa postului" devine inoperantă, dar locul ei trebuie luat de mecanisme care să pună în practică proceduri suficient de clare pentru a putea fi urmate şi suficient de elastice pentru a se adapta la toate situaţiile. În plus, totul trebuie să fie controlabil, să poată fi urmărit, monitorizat şi, în cele din urmă, optimizat. Răspunsul tehnologiei informatice la această provocare se numeşte workflow management.

Din nefericire, limba română nu a ajuns să creeze un echivalent convenabil pentru un termen atât de sintetic cum este workflow. Traducere brutală ar putea fi "fluxul de lucru", ceea ce ne sugerează o definiţie absolut informală şi imprecisă:

Un ansamblu de activităţi care trebuie efectuate pentru a duce o treabă la bun sfârşit.

Putem să considerăm această schiţă de definiţie un punct de plecare convenabil, astfel încât prin rafinări succesive să ajungem să punem în evidenţă elementele fundamentale ale tematicii.

Procese şi activităţi

Prima precizare importantă pe care o putem face este faptul că fluxul de lucru reprezintă un proces. S-ar putea spune că este însuşi procesul, dar accepţiunea care o vom folosi este cea de reprezentare a unui proces.

În al doilea rând, trebuie limitată generalitatea termenului "proces". Este vorba despre procese lucrative, realizate de obicei într-un context organizaţional şi care au o finalitate bine definită, pe care o vom numi "obiectiv". Termenul utilizat este business process, dar aceasta nu înseamnă neapărat "economic". Un proces juridic, de pildă, poate fi reprezentat printr-un workflow.

În fine, este firesc ca un proces complex să poată fi structurat în sub-procese. Acestea au o anumită independenţă, dar sunt parte integrantă a proceselor în care sunt înglobate. Pe lângă faptul că permite stăpânirea complexităţii, o astfel de structurare are avantaje care devin evidente mai cu seamă în situaţia în care un sub-proces face parte din mai multe procese. Analogia cu subrutinele unui program este imediată.

Procesele reprezintă ansambluri de activităţi. Activităţile sunt considerate indivizibile din perspectivă logică, în sensul că o activitate incompletă nu contribuie la desfăşurarea procesului, nu apropie obiectivul vizat. Activităţile sunt "paşii" unui proces către obiectiv. Trebuie menţionat însă că "perspectiva logică" invocată depinde de punctul de vedere, astfel încât o activitate poate reprezenta uneori un sub-proces.

Activităţile implică anumite resurse. În primul rând este vorba de participanţii la fluxul de lucru, care pot fi persoanele sau maşinile care realizează efectiv munca. Pe de altă parte, este vorba de resurse informaţionale necesare pentru evidenţă şi pentru deciziile care trebuie luate în desfăşurarea procesului.

Succesiunea activităţilor este definită de tranziţii, care reprezintă materializarea regulilor care guvernează procesul. O tranziţie poate fi considerată o tripletă formată din activitatea-sursă (cea care s-a încheiat), activitatea-ţintă (cea care urmează să fie executată) şi o condiţie, care se evaluează pe baza informaţiilor asociate activităţilor implicate şi a contextului.

În mod firesc, succesiunea activităţilor este direcţionată spre îndeplinirea obiectivului (downstream), dar această succesiune nu este în mod necesar liniară, secvenţială. În funcţie de condiţii, tranziţiile pot descrie ramificări sau chiar iteraţii, caz în care avem de-a face cu tranziţii upstream).

Instanţe

Procesele, activităţile şi tranziţiile descrise mai sus sunt generice. Ele modelează fluxul de lucru. Un sistem de administrare a fluxului de lucru (Workflow Management System - WMS) va folosi acest model pentru a automatiza şi a monitoriza instanţe ale proceselor astfel definite. Printr-o analogie cu programarea (care presupun că este mai familiară cititorilor), modelul procesului este similar cu o clasă, pe când o instanţă este similară cu un obiect aparţinând acelei clase.

O instanţă a unui proces se creează ca urmare a unui eveniment (event) recunoscut ca atare de către WMS. Acesta poate fi declanşat explicit de către utilizator (de pildă se introduce în sistem o comandă de la un client) sau poate fi determinat de aplicaţii controlate de WMS (de pildă o comandă venită prin situl Web).

Crearea unei instanţe implică în mod obişnuit ataşarea unui set de informaţii care vor fi purtate în mod constant de acea instanţă pe tot parcursul fluxului de lucru. Este important să notăm aici o referinţă la definiţia procesului (deoarece WMS poate gestiona mai multe procese), un identificator al instanţei (deoarece mai multe instanţe ale procesului pot fi active la un moment dat), o informaţie de stare (importantă în monitorizarea procesului) şi informaţii adiacente (documente relevante, istoricul parcurgerii fluxului etc.). De fapt, din punctul de vedere al WMS, instanţa este tocmai acest pachet de informaţii - pe care trebuie să-l direcţioneze prin activităţile procesului până într-unul din punctele de ieşire - motiv pentru care unele sisteme numesc instanţa "jeton" (token).

Crearea instanţei procesului este cel mai adesea considerată o activitate în sine (uneori doar din considerente formale), ceea ce înseamnă intră în acţiune tranziţiile, care determină cărei activităţi trebuie să-i fie înaintat "jetonul". Se naşte astfel o instanţă a activităţii respective.

O instanţă a unei activităţi (uneori numită şi "sarcină" - task) poate fi uneori realizată în mod automat, dar de cele mai multe ori implică o muncă pe care trebuie să o realizeze un utilizator. În această situaţie se creează un aşa-numit work item care este asignat unui participant la fluxul de lucru. Interfaţa unui WMS cu utilizatorul se concretizează de regulă într-o listă de sarcini (worklist).

Există câteva probleme esenţiale pe care WMS trebuie să le rezolve în conducerea şi monitorizarea unei instanţe a unui proces. Mai precis, WMS trebuie să stabilească ce trebuie făcut, când trebuie făcut şi de către cine trebuie făcut.

Determinarea sarcinilor (ce)
Se bazează în mod normal pe evaluarea condiţiilor stabilite pentru tranziţii, dar problema nu este atât de simplă deoarece pot apărea ramificări complexe (descrise generic ca and, or sau xor splits). De pildă anumite activităţi trebuie realizate în paralel (ramificare and-split), caz în care se instanţiază mai multe taskuri.
Sincronizarea (când)
Uneori taskurile urmează în secvenţă (deci se poate genera imediat un work item), dar există multe situaţii în care momentul lansării unui nou task depinde de o serie de condiţii. De pildă de disponibilitatea unor resurse sau de îndeplinirea tuturor sarcinilor rezultate dintr-un and-split (situaţie denumită and-join). De asemenea, adesea temporizarea sarcinilor face parte chiar din definiţia activităţii iar WMS trebuie să urmărească încadrarea în termene precise.
Determinarea participanţilor (cine)
Descrierea fluxului de lucru (adică definirea procesului) se bazează pe resurse generice, care se precizează abia la nivelul instanţei. Resursele umane se descriu la nivel de roluri, care reprezintă grupuri de persoane echivalente din perspectiva competenţelor. Desemnarea persoanei care să îndeplinească o sarcină corespunzătoare unui rol este o sarcină a WMS şi se bazează pe politici specifice. De pildă, există situaţii în care un work item este încredinţat unei echipe (apare într-o listă de sarcini partajată şi dispare când cineva şi-a asumat-o), dar şi situaţii când încredinţarea este foarte precisă (de pildă anumite aprobări pot fi date doar de cel care îndeplineşte rolul de director).

În fine, o altă sarcină importantă a unui WMS este tratarea excepţiilor. Nici un proces real nu este atât de regulat încât să poată fi definit complet şi definitiv, astfel încât WMF trebuie să fie suficient de flexibil pentru a semnala cazurile atipice şi de acţiona în consecinţă (adesea prin "încredinţarea" cazului unui operator uman cu competenţa necesară).

Specificaţii

Dată fiind complexitatea tehnologiilor implicate în domeniul desemnat prin termenul workflow, industria informatică a resimţit nevoia unui set de standarde care să precizeze noţiunile şi să formalizeze specificaţiile astfel încât diversele produse de la diverşi furnizori să poată fi evaluate comparativ şi, eventual, chiar să conlucreze. Astfel s-a format Workflow Management Coalition (WfMC - www.wfmc.org), care a publicat numeroase documente, printre care se remarcă descrierile XML ale diverselor interfeţe (WAPI - Workflow APIs and Interchange formats) şi un glosar general care unifică terminologia.

Principalele definiţii :

Workflow (flux de lucru)
Automatizarea completă sau parţială a unui proces de business, în care documente, informaţii şi sarcini sunt trecute de la un participant la altul pentru realizarea unor acţiuni, în concordanţă cu un set de reguli procedurale.
Workflow Management System (sistem de administrare a fluxului de lucru)
Un sistem care defineşte, creează şi administrează realizarea fluxurilor de lucru folosind programe software, rulând pe unul sau mai multe "motoare de workflow" (workflow engines), capabile să interpreteze modelul (definiţia) procesului, să interacţioneze cu participanţii şi, atunci când este nevoie, să invoce utilizarea uneltelor şi aplicaţiilor informatice.
Business Process (proces)
Un set de proceduri sau de activităţi interconectate care împreună realizează un obiectiv al afacerii sau un scop politic (policy goal), de obicei în contextul unei structuri organizaţionale care defineşte roluri şi relaţii funcţionale.
Activity (activitate)
Descrierea unei operaţii (piece of work) care formează un pas logic într-un proces. O activitate poate fi manuală, care nu suportă automatizare computerizată, sau automată (activitate de workflow). O activitate automată necesită resurse umane şi/sau computerizate pentru a permite executarea procesului. Când este nevoie de o resursă umană, o activitate este alocată unui participant la fluxul de lucru.
Instance (instanţă)
Reprezentare a unui caz particular (enactment) a unui proces sau a unei activităţi dintr-un proces, împreună cu datele asociate. Fiecare instanţă reprezintă un fir separat de execuţie a procesului sau activităţii, care poate fi controlat independent şi care va avea propria stare internă şi propria identitate vizibilă din exterior, care poate fi utilizată de exemplu pentru a memora şi a regăsi informaţii cu caracter istoric (audit data) relative la respectiva instanţă.
Workflow Participant (participant, actor, agent)
O resursă care efectuează munca reprezentată de instanţa unei activităţi din fluxul de lucru. Această muncă se prezintă de regulă ca una sau mai multe operaţii elementare (work item) atribuite unui participant la fluxul de lucru prin intermediul unei liste de sarcini (worklist).

Tipuri de workflow

Cu toate că WfMC furnizează specificaţii unitare şi cuprinzătoare în privinţa tuturor aspectelor legate de fluxuri de lucru, persistă câteva clasificări care se bazează pe elementul care joacă „rolul central” în descrierea şi desfăşurarea fluxurilor de lucru:

Workflow bazat pe activităţi (AWF)
este orientat asupra activităţilor şi a succesiunii lor, corespunzând astfel fidel specificaţiilor WfMC.
Workflow bazat pe entităţi (EWF)
este orientat asupra unei anumite entităţi, care de regulă se concretizează într-un document (acesta este sensul pe care-l voi da în continuare entităţii). Un astfel de flux de lucru descrie mai degrabă traseul documentului decât succesiunea activităţilor.

Ambele abordări au domenii la care se pretează şi domenii la care nu se pretează. Diferenţa fundamentală este că în primul caz (AWF) entitatea (ceea ce am numit "jeton") este implicită iar stările ei nu sunt expuse utilizatorului (tranziţiile conectează activităţi), pe când în al doilea caz (EWF) entitatea este bine precizată iar stările (status) sunt expuse explicit, dar nu mai sunt evidenţiate explicit activităţile (tranziţiile conectează stări). De aici derivă diferenţe semnificative şi din perspectiva utilizatorului:

AWF
Utilizatorul alege ce să facă (alege un work item din worklist) iar aplicaţia WMS stabileşte care sunt entităţile asupra cărora se exercită acţiunea utilizatorului.
EWF
Utilizatorului alege entitatea (un document) asupra căreia poate realiza anumite acţiuni (în funcţie de rolul său în fluxul de lucru şi de starea documentului).

Unificarea celor două abordări este adesea dificilă. De pildă, în cadrul redacţiei NetReport fluxul de lucru este centrat pe documente (deci abordarea firească este EWF), dar se pot pune în evidenţă şi activităţi (specifice AWF):

Un autor (acesta este un rol în care se încadrează redactorii şi colaboratorii) elaborează (aceasta este o activitate) un articol (aceasta este entitatea) care este în starea privat. Când îl termină, îl propune spre publicare. Odată propus, articolul trece în stare în aşteptare (sau pending) până când un editor (rol jucat de redactorii coordonatori de secţiuni) îl evaluează (activitate, numită şi review) şi îl trece în starea aprobat (caz în care este trimis spre tehnoredactare şi de acolo spre corectură) sau îl trece în starea refuzat (caz în care se reîntoarce la autor şi trece din nou în starea privat). Un articol aprobat (eventual tehnoredactat şi corectat) poate fi oricând retras de redactorul-şef (un rol), caz în care poate trece în starea rezervat (păstrat pentru o publicare ulterioară) sau poate fi scos din flux. Tot redactorul-şef este cel care poate trece un articol în starea bun de tipar. Anumite articole publicate (o stare) parcurg apoi un sub-proces de publicare pe Web. Toate articolele publicate ies din flux în momentul în care ajung în starea arhivat (deşi există posibilitatea de a re-intra pentru o nouă publicare, eventual ca material suplimentar pentru un articol nou).

Trebuie menţionat că fiecare tranziţie este însoţite de note (explicaţii) care sunt parte integrantă a istoricului fluxului, că entitatea (articolul) nu este doar un simplu document (e de fapt un dosar care poate cuprinde mai multe documente) şi, în fine, procesul este mult mai complicat în realitate, deoarece intervin şi alte procese (de pildă cel privind materialele publicitare, sau consultarea unor experţi). Nu am pus în evidenţă procesul iniţial (stabilirea conţinutului, care la rândul lui este subordonat stabilirii planului editorial).

Jucătorii pieţei

FileNet (www.filenet.com) este unul din liderii pieţei, furnizând o suită completă de administrare a conţinutului (inclusiv document imaging şi document management). Componenta de workflow se cheamă Business Process Manager şi se remarcă printr-o interfaţă grafică foarte elegantă pentru modelarea proceselor şi prin setul de modele prestabilite pentru procese tipice.

Sun Microsystems a devenit un furnizor important după ce a cumpărat Forté Software şi produsul acesteia, Conductor, pe care l-a integrat apoi în iPlanet Integation Server. Se remarcă posibilitatea de a folosi simultan mai multe motoare de workflow interoperabile.

Hewlett-Packard a furnizează Changengine (cunoscut şi sub denumirea HP Process Manager), un soft de workflow management în care integrează şi tehnologie de la Netscape Communications. Accentul este pus pe integrare iar preţurile încep de la 70.000 de dolari.

Staffware (www.staffware.com) este unul dintre "clasicii" domeniului, fiind o firmă britanică orientată exclusiv spre soluţii de workflow şi business process management. Staffware Process Suite este produsul de bază, dispunând şi de versiuni specifice pentru diverse domenii.

Fujitsu a devenit un furnizor de soluţii workflow după ce a preluat compania britanică ICL, care la rândul ei deţinea firma finlandeză TeamWare, specializată în tehnologii groupware. Componenta de workflow se cheamă acum InterStage i-Flow şi se remarcă prin posibilităţile de integrare cu aplicaţiile existente şi cu aplicaţii web.

IBM nu putea să lipsească de pe o piaţă în care a jucat un rol de pionierat cu FlowMark, unul dintre primele motoare de workflow independente de aplicaţii generale de administrare a documentelor. După ce l-a redenumit MQSeries Workflow, IBM l-a integrat în seria WebSphere, astfel încât acum se cheamă WebSphere MQ Workflow. Unul dintre punctele forte este alinierea la normele WfMC.

Versata a intrat în piaţă tot printr-o achiziţie, preluând astfel produsul firmei Verve, care acum este o componentă din Versata Logic Suite numită Process Logic Designer. Remarcabil la acest produs este faptul că a fost conceput din start ca o soluţie embedded, adică un motor de workflow care să poată fi înglobat în alte aplicaţii.

SAP este liderul pieţei mondiale de ERP (Enterprise Resources Planning) şi nu se poate lipsi de această tehnologie integratoare. Remarcabil este faptul că SAP Business Workflow se integrează nu doar cu modulele specializate ale suitei mySAP Business Suite ci şi cu diverse alte aplicaţii de workgroup şi administrare de documente, cum ar fi Lotus Notes, Micrsoft Exchange Server sau Novell GroupWise.

Desigur, mai există numeroase soluţii de workflow, dintre care cele mai multe sunt componente ale unor aplicaţii complexe sau ale unor suite de aplicaţii. Alegerea nu este uşoară şi, având în vedere preţurile, serviciile unei firme de consultanţă sunt aproape obligatorii.


 

(Publicat în NET Report 127 - aprilie 2003)

 

Copyright © 2003 Agora Media

Creative Commons License
This work is licensed under a Creative Commons License.