Hae it-yrityksiä
osaamisalueittain:

Asiakkuudenhallinta CRM BI ja raportointi HR Tuotekehitys ja suunnittelu Toiminnanohjaus ERP Taloushallinto Markkinointi Webkehitys Mobiilikehitys Käyttöliittymäsuunnittelu Tietoturva Verkkokaupparatkaisut Ohjelmistokehitys Integraatiot Pilvipalvelut / SaaS Tekoäly (AI) ja koneoppiminen Lisätty todellisuus ja VR Paikkatieto GIS IoT Microsoft SAP IBM Salesforce Amazon Web Services Javascript React PHP WordPress Drupal

Azure Logic Apps ja FRENDS: eroja orkestroinnissa

Bloggaus

Azure Logic Apps ja FRENDS: eroja orkestroinnissa

Avataanpa heti alkuun terminologiaa. Orkestroinnilla tarkoitetaan (ainakin tässä blogikirjoituksessa) sitä miten yksi isompi tehtävä järjestellään pienemmistä tehtävistä muodostuvaksi tapahtumien ketjuksi, jota myös työnkuluksi saatetaan kutsua. Esimerkiksi asiakastietojen siirtäminen järjestelmästä toiseen saattaisi sisältää vaikkapa asiakastietojen haun, kunkin asiakkaan tietojen tarkistamisen puutteiden varalta, asiakastietojen rikastamisen tarvittaessa, asiakastietojen siirtämisen kohdejärjestelmään ja kuittauksen lähettämisen sähköpostitse. FRENDSillä toteutettuna tämä työnkulku saattaisi näyttää karkeasti tältä:

FrendsAzure1

Kuva 1: Esimerkki asiakastietojen siirron orkestroinnista työnkuluksi FRENDS:llä

Integraatiokonsultin elämässä orkestrointi on tekemisen ytimessä, eivätkä kaikki tapaukset ole yhtä suoraviivaisia kuin esimerkissä kuvattu. Joskus eri asioita halutaan tehokkuussyistä tehdä rinnakkain, joskus taas tarvitaan monimutkaisempaa työnkulun haaroitumista eri vaiheiden tulosten mukaan. Kaikki integraatioprosessien tekoon käytettävät ohjelmistot ja alustat eivät kuitenkaan tarjoa tismalleen samoja orkestrointimahdollisuuksia. Joskus erot ovat lähinnä pinnallisia, joskus ne saattavat vaikuttaa siihen mitä ja miten asioita voidaan toteuttaa. Allekirjoittanut on hiljattain päässyt FRENDSin lisäksi tutustumaan Azure Logic Appsin maailmaan, mikä tarjosi mahdollisuuden hieman vertailla näiden kahden tuotteen orkestrointimahdollisuuksia.

Rinnakkainen suoritus

Sekä Logic Appseissa että FRENDSissä on mahdollisuus haaroittaa suoritettavaa työnkulkua rinnakkain suoritettaviin haaroihin, eli käytännössä tehdä useampaa asiaa samanaikaisesti. Ohessa Logic Appsilla tehty esimerkki, jossa aloitetaan kolmen toimenpiteen suoritus samanaikaisesti ja jatketaan yhdessä haarassa kahden toimenpiteen suorituksella, kun tämän haaran ensimmäinen toimenpide on suoritettu. Kun kaikkien kolmen haaran toimenpiteet on suoritettu loppuun, suoritetaan toimenpide, johon kaikki kolme työnkulun haaraa johtavat.

FrendsAzure2

Kuva 2: Esimerkki työnkulun haaroituksesta Logic Appsilla tehtynä.

FRENDSillä toteutettuna lähes samanlainen työnkulku näyttäisi seuraavalta:

FrendsAzure3

Kuva 3: Esimerkki työnkulun haaroituksesta FRENDSillä tehtynä.

Mainittakoon tässä yhteydessä muutama kuvista selvästi ilmenevä visuaalinen ero FRENDSiin ja Logic Appsien välillä. Ensinnäkin työnkulun luonnollinen suunta on FRENDS:ssä vasemmalta oikealle ja Logic Appseissa ylhäältä alas. Tällä ei ole käytännössä juuri merkitystä työskentelyn kannalta ja on pääasiassa makuasia, kummasta tykkää enemmän. Toisena huomiona Logic Appsien aktiviteetit ovat litteitä, mutta todella leveitä, siinä missä FRENDSin aktiviteetit ovat melkein neliön muotoisia. Logic Appsien aktiviteettien mittasuhteissa on se etu, että niitä mahtuu työnkulun suunnassa monta ruudulle, mutta aktiviteettien leveyden takia työnkulun haaroitus vie suhteettoman paljon tilaa työpöydältä. FRENDSissä haaroitukset eivät vie tilaa yhtä paljoa, mikä helpottaa työskentelyä monimutkaisten työnkulkujen kanssa, mutta toisaalta työnkulun suunnassa näkymää joutuu vierittämään enemmän kuin Logic Appsien tapauksessa.

FRENDSillä tehdystä esimerkistä näkee aika nopeasti, miksi mainitsin työnkulun olevan lähes samanlainen kuin Logic Apps:lla tehdyssä esimerkissä: Yksi haaroista sisältää uuden haaroituksen, joka lisäksi yhdistyy alkuperäiseen haaraan ennen kuin kaikki kolme haaraa yhdistyvät. Tämä haara on lisätty viimeisenä toimenpiteenä (ennen nimeämistä) sen jälkeen, kun kaikki muut aktiviteetit olivat jo paikoillaan. Logic Appsilla pystyy tekemään vastaavanlaisen logiikan, mutta ilman ennakkosuunnittelua se on hankalampaa, sillä luotuja haaroja ei voi enää haaroittaa enempää sen jälkeen, kun ne yhdistyvät johonkin aktiviteettiin. Lisäksi aktiviteetteja yhdistäviä nuolia ei voi katkoa ja luoda vapaasti, vaan niitä luodaan ja poistetaan automaattisesti aktiviteettien luonnin yhteydessä. Tämä tarkoittaa, että työnkulun järjestäminen uudelleen jälkikäteen voi olla hyvinkin hankalaa. Jos esimerkiksi vastaava logiikka haluttaisiin toteuttaa Logic Appsilla jälkikäteen Kuva 2:n tapauksessa, pitäisi ensin poistaa viimeisenä suoritettava aktiviteetti. Jos tämän aktiviteetin jälkeen olisi ehditty rakentaa lisää logiikkaa, myös se pitäisi poistaa.

Ehdollinen suoritus

On varsin yleistä, että työnkulkua on tarve haaroittaa tiettyjen ehtojen täyttyessä. Ehtojen täyttymiseen liittyvä päättely voi olla joskus varsin monimutkaistakin, mutta ylätasolla vastaan tulevat tilanteet tapaavat edustaa jotain näistä vaihtoehdoista:

1. Tee A, mutta jos x, tee myös B.

2. Tee A jos ja vain jos x, muussa tapauksessa tee B.

3. Tee A, jos x. Tee B, jos y. Tee C, jos z.

Logic Apps tarjoaa ehdolliseen haaroitukseen kaksi tapaa. Näistä “Switch”-aktiviteetti eli kytkin mahdollistaa työnkulun haaroituksen määritellyn ehdon lopputuloksen mukaisesti. Sallittuja lopputuloksia voi olla lukuisia, mutta kaikkien vertailujen pitää perustua yhtäsuuruuteen. On siis sallittua tarkistaa, onko lopputulos 3, 7 tai 10, mutta ei ole sallittua tarkistaa onko lopputulos suurempi kuin 15. Lisäksi on mahdollista määritellä toimenpiteitä default-haaraan, jos mikään vertailuista ei toteudu. Kukin ehto on siten uniikki ja vain yksi mahdollisista haaroista voidaan ajaa kerrallaan. Pelkällä kytkimellä voidaan siis rajatusti toteuttaa yllä olevan listan kolmas kohta ja jos halutaan mahdollistaa tilanne, että tehdään sekä A, B ja C, täytyy työnkulku esim. ensin haaroittaa kolmeen osaan ja tehdä jokaiseen haaraan oma kytkin. Kuvassa 4 on todella yksinkertainen esimerkki kytkimen käytöstä, jossa on kaksi ehtoa, joista toisen toteutuessa suoritetaan kaksi toimenpidettä ja toisen ehdon toteutuessa vuorostaan yksi toimenpide. Jos kumpikaan ehto ei täyty, ei tehdä mitään ennen siirtymistä seuraavaan toimenpiteeseen.

FrendsAzure4

Kuva 4: Esimerkki työnkulun haaroittamisesta Logic Appsin kytkimellä.

Kytkimen lisäksi Logic Apps mahdollistaa joko tai -tyylisen haaroituksen annettujen ehtojen pohjalta “Condition”-toiminnolla. Tässä toiminnossa on mahdollista määritellä sekä ehtoja että ehtoryhmiä, ja ehtojen (sekä ehtoryhmien) toteutumisen osalta on valittavissa joko vaatimus kaikkien ehtojen täyttymisestä tai vain yhden ehdon täyttymisestä. Lisäksi ehtoryhmiä ryhmiä voi asettaa toisten ryhmien jäseniksi. Itse ehdot voivat sisältää muutakin vertailua kuin kytkimen tapauksessa mainittu yhtäsuuruus, joskin vaihtoehtoja on rajattu määrä. Kaikki tämä mahdollistaa hyvin monimutkaisenkin päättelylogiikan rakentamisen. Ehtoihin liittyvän tarkistuslogiikan lopputuloksen pohjalta suoritetaan yksi kahdesta mahdollisesta haarasta, joten “Condition”-aktiviteetilla voi toteuttaa suoraan aiemman listan kohdan 2 logiikan. Kohdan 1 toteuttaminen vaatii työnkulun haaroittamista ensin ja ehdollisen suorituksen rakentamista toiseen luoduista haaroista. Kuvan 5 esimerkissä ei ole lähdetty tekemään monimutkaista ehtopäättelyä, vaan on annettu kaksi ehtoa, joista kumpi vain saa olla tosi. Jos tämä toteutuu, suoritetaan toisen haaran kaksi toimenpidettä. Jos taas ei, suoritetaan toisen haaran yksi toimenpide. Tämän jälkeen jatketaan työnkulun seuraavaan toimenpiteeseen.

FrendsAzure5

Kuva 5: Esimerkki työnkulun haaroituksesta Logic Appsin “Condition”-toiminnolla.

FRENDS tarjoaa niin ikään kaksi tapaa ehdolliseen haaroitukseen: “inclusive decision” ja “exclusive decision”. Näistä jälkimmäinen vastaa pääpiirteittäin Logic Appsin “Condition”-aktiviteettia, eli halutun ehtolausekkeen tuloksen perusteella valitaan yksi kahdesta haarasta. Ehtolauseke voi koostua useammasta pienestä ehdosta sekä vaatia useamman, edes yhden tai vain yhden ehdon toteutumista. Lisäksi vertailut eivät rajoitu yhtäsuuruuteen taikka valmiisiin vaihtoehtolistoihin, vaan käyttäjällä on vapaus rakentaa ehdot sisältämään myös yksinkertaisia koodilausekkeita. Samoin kuin Logic Appsin “Condition”-aktiviteetin tapauksessa, tällä haaroitustavalla voi toteuttaa aiemman listan kohdan 2 mukaisen ehdon ja kohdan 1 mukainen ehto vaatii työnkulun haaroittamista ennen päätöstä. FRENDSin “inclusive decision” antaa käyttäjän haaroittaa prosessia useamman ehdon mukaisesti, mutta erona Logic Appsin kytkimeen ehtojen ei tarvitse olla yksinkertaisia ja uniikkeja yhtäsuuruusvertailuja, vaan kullekin haaralle ehdon voi rakentaa tarvittaessa yhtä monimutkaiseksi kuin “exclusive decision” -aktiviteetin tapauksessa. Lisäksi “Default”-haara – jota ei ole pakko asettaa – suoritetaan aina, ei vain siinä tapauksessa, että mikään muu ehto ei toteutunut. Ehdot voi siis joko rakentaa siten että tietyissä tilanteissa ajetaan rinnakkain useampi haara tai siten, että aina valitaan vain yksi haara, jolloin “inclusive decision” siis mahdollistaa paitsi aiemman listan kohdan 3 mukaisen päättelyn, myös kohdan 1 mukaisen päättelyn ilman ylimääräisiä haaroituksia.

Kuvan 6 esimerkissä on luonnosteltu tilanne, jossa ensin “inclusive decision”-aktiviteetin yhteydessä kahden haaran ehto kolmesta täyttyisi, jolloin nämä kaksi suoritettaisiin yhdessä default-haaran kanssa. Tämän jälkeen tehtäisiin joko-tai-valinta ja suoritettaisiin toinen jäljellä olevista haaroista. Jos haluttaisiin, työnkulun voisi laittaa päättymään jälkimmäisen ehdollisen haaroituksen toisessa haarassa suoraan, jolloin työnkulussa olisi kaksi lopetukseen johtavaa haaraa. Tässä on ero “inclusive decision”-aktiviteettiin, jonka kaikkien haarojen pitää yhdistyä lopuksi yhteen ja samaan aktiviteettiin ennen kuin voidaan keskeyttää työnkulun suoritus. Tämä vaatimus kumpuaa mahdollisuudesta suorittaa useampia haaroja rinnakkain.

FrendsAzure6

Kuva 6: Esimerkki työnkulun haaroituksesta FRENDS:llä käyttäen sekä “inclusive decision”-aktiviteettia että “exclusive decision” -aktiviteettia.

Yhteenveto

Sekä FRENDS että Logic Apps tarjoavat monipuoliset mahdollisuudet työnkulun orkestrointiin rinnakkaisen suorituksen sekä ehdollisen haaroituksen kautta. Ehdollisessa haaroituksessa FRENDS tarjoaa enemmän joustavuutta, joka yksinkertaistaa tietynlaisten ehtopäättelyjen toteuttamista, mutta ehkä merkittävin tässä blogissa mainittu ero tuotteiden välillä on kuitenkin lopulta seuraava: FRENDSin tarjoama mahdollisuus poistaa ja luoda aktiviteetteja yhdistäviä nuolia ilman että aktiviteetteja tarvitsee poistaa. Tämä helpottaa orkestroinnin muutoksia sellaisissa tapauksissa, että jo luotua logiikkaa pitäisi järjestellä uudestaan, sekä tietyin reunaehdoin myös tapauksissa, joissa tehtyjä työnkulun haaroituksia pitäisi monimutkaistaa.

FRENDSin ja Logic Appsin väliset erot eivät luonnollisesti rajoitu vain tässä blogissa mainittuihin. Eroja on mm. tarjolla olevissa aktiviteeteissa, käyttöliittymässä, alustan tarjoamissa arkkitehtuurivaihtoehdoissa, toteutusten uudelleenkäytettävyydessä sekä versionhallinnassa. Blogikirjoitusten aiheita siis riittää ja onkin todennäköistä, että palaan vielä kevään aikana asiaan näiden kahden tuotteen osalta.

Pinterest
HiQ Oy logo

Lisätietoja

Yritysprofiili HiQ kotisivut

Tagit

Jos tarjontatagi on sininen, pääset klikkaamalla sen kuvaukseen

Liiketoimintaprosessi

Tietohallinto

Erikoisosaaminen

Integraatiot

Teknologia

Azure

Siirry yrityksen profiiliin HiQ kotisivut Yrityshaku Referenssihaku Julkaisuhaku

HiQ - Asiantuntijat ja yhteyshenkilöt

HiQ - Muita referenssejä

HiQ - Muita bloggauksia

Digitalisaatio & innovaatiot blogimedia

Blogimediamme käsittelee tulevaisuuden liiketoimintaa, digitaalisia innovaatioita ja internet-ajan ilmiöitä

Etusivu Yrityshaku Pikahaku Referenssihaku Julkaisuhaku Blogimedia