Lühiülevaade töövoogudest
26.12.2007 | Gunnar.Net Framework 3.0 tõi ühe uuendusena kaasa Windows Workflow Foundation‘i. Tegemist on võimsa töövoogude mootoriga, mida saab kasutada praktiliselt kõikides .Net programmides ja programmides, mida saab .Net abil laiendada. Nende programmide juurde kuulub muuhulgas ka Microsoft Office.
Alustuseks
Töövood annavad meile hea võimaluse modelleerida ja kontrollida erinevaid äriprotsesse ning liita neid meie rakendustesse. Nii saame rakendustest anda vahepeal kontrolli üle töövoole, mis teeb ära korrektsed otsused ning edasi jätkab rakendus oma tööd. See eeldab loomulikult seda, et vaadeldaval rakendusel on töövoogude tugi olemas või saab selle vähemasti sinna lisada.
Käesoleva näite eesmärgiks on tutvustada .Net Framework’i töövoogude maailma ning anda esmane ülevaade sellest, kuidas asjad käivad ja mida üldjoones teha saab.
Töövoo näide
Selles näites vaatame töövoogu, mis kontrollib sisse tulevat tellimust, kontrollib klienti ning otsustab, kas teha soodustust või mitte. Nüüd võib mõni terava taibuga müügijuht öelda, et see on ju vaid ainult üks stsenaarium allahindluste tegemiseks, kuid stsenaariumeid võib olla mitmeid. Ütlen etteruttavalt, et see kõik on võimalik, kuid sellest räägin pisut hiljem.
Töövoog on järgmine. Protsessiks on tellimuse kinnitamine. Tellimuse kinnitamisel kontrollitakse, kas klient on mustas nimekirjas või ei. Kui klient on mustas nimekirjas, siis tellimus tühistatakse. Kui klient ei ole mustas nimekirjas, siis kontrollitakse tellimuse summat ning kui see ületab 1000 EEK, siis tehakse soodustus. Väiksematele tellimustele soodustusi ei tehta. Kui tellimus on soodustuse otsuse läbinud, läheb see kinnitamisele. Seejärel töövoog lõpeb.

Tellimuste kinnitamise töövoog. Töövoog sisaldab kahte otsuse tegemise punkti ning nelja toimingut.
Selliseid skeeme, muide, saab ehitada Visual Studio keskkonnas. Kuigi ärianalüütikutel seda tarkvara arvutites ei ole, on olemas vähemasti hea kokkuleppeline keel, kuidas protsesse graafiliselt kujutada. Tihti on üks pilt parem kui tuhat sõna.
Mitu töövoogu sama protsessi jaoks
Sama protsessi jaoks võib teha ka mitu töövoogu. Võimalik on teha nii, et süsteemist saab kasutaja ise valida, millist töövoogu millisel juhul tuleb kasutada. Oluline on siinkohal see, et kõik samas kohas kasutatavad töövood järgiksid samu tehnilisi liideseid. Vastasel korral pole töövooge kasutav süsteem enam võimeline tuvastama, millist töövoogu nüüd kasutada tuleb.
Tehniline liides, mis defineerida tuleb, peab kindlasti sisaldama omadusi ja meetode, mille abil töövoog initsialiseeritakse. Meie näite juures on vaja näiteks seda, et saaksime töövoole anda ette konkreetse tellimuse, mida töödelda tuleb.
Samuti on võimalik see, et ühe protsessi taga töötab mitu töövoogu. See on kasulik juhul, kui töövoo käivitamispunktist alates läheb protsess edasi mitmes sõltumatus harus.
Kokkuvõte
Töövood on võimas vahend, mille abil saame automatiseerida erinevaid äriprotsesse. Hea planeerimise korral saab neid infosüsteemi ennast muutmata välja vahetada kui protsess peaks mingil põhjusel muutuma. Töövooge saab kasutada ka nö. korrapidajatena erinevate protsesside taga, et kontrollida näiteks staatuste jada läbimist. Rakendusvõimalusi on muidugi palju enam.

27.12.2007 kell 13:48
Kui nüüd tähti niithaaval närida, siis protsessi on infosüsteemi osa (ja reeglina üks tähtsamaid osi) ja selle muutmine on paratamatult ka järelikult infosüsteemi muutmine.
27.12.2007 kell 14:29
Tähti närides küll, jah. Samas on pagana tore, kui mingeid käsuahelaid annab välja vahetada ilma, et peaks jälle uue versiooni ja uue deploymenti tegema. Pisema softiga poleks ju probleemi, kuid mahukamate lahendustega võib tekkida olukord, kus optimaalsem on vahetada välja ainult osake süsteemist, kui teha tervele lahendusele uus deployment.