How to build a modern Business Rules Engine, a quick overview
Tämä on korkean tason käsitteellinen katsaus liiketoimintasääntömoottorin arkkitehtuuriin. Se on todellisen koodin yläpuolella. Jos olet rakentamassa liiketoimintasääntömoottoria – on erittäin todennäköistä, että pidät tätä tekstiä hyödyllisenä.
Aikanaan rakensin liiketoimintasääntömoottorin, joka mahdollisti liiketoiminnan automatisoinnin pienille ja keskisuurille yrityksille ja jolla oli myös kaikki valmiudet ja potentiaali palvella hyvin suuria yrityksiä. Se oli tie tavallisesta ohjelmistosovelluksesta kehittyneeksi ja monimutkaiseksi ratkaisuksi, joka täytti kovat skaalautuvuus-, ylläpidettävyys- ja laajennettavuusvaatimukset. Tässä tekstissä luodaan yleiskatsaus siihen, mitä Business Rules Engine on, ja kuvataan yksi nykyaikaisista lähestymistavoista sen rakentamiseen, jota voit harkita, kun rakennat tällaista ohjelmistoa.
Aluksi on tärkeää määritellä perustermit. Liiketoimintasääntömoottoreita on ollut alalla melko pitkään muodossa tai toisessa, ja melko jokaiselle käyttämällemme termille on annettu joitakin määritelmiä. Aloitetaan ”liiketoimintasäännöstä” – tälle termille on olemassa tunnettu määritelmä. ”Liiketoimintasääntö” on siis:
Lausuma, joka määrittelee tai rajoittaa jotakin liiketoiminnan osa-aluetta. Sen tarkoituksena on vahvistaa liiketoiminnan rakenne tai valvoa tai vaikuttaa liiketoiminnan käyttäytymiseen.
T. Morgan, Liiketoimintasäännöt ja tietojärjestelmät. Boston: Addison-Wesley Publishing, 2002
Liiketoimintasääntöjen soveltamisala on hyvin laaja ja niitä voidaan soveltaa mihin tahansa liiketoiminnan osa-alueeseen. Esimerkiksi sääntöä ”Kun asiakas tulee sisään, tervehdi häntä lämpimästi hymyillen ja ystävällisesti tervehtien” soveltaa yrityksen työntekijä tavatessaan asiakkaita. Toinen sääntö voi määritellä tai rajoittaa tietyn roolin lähestymistapoja rutiinitehtävien ratkaisemiseen yrityksessä. CRM-järjestelmien kaltaisten ohjelmistoratkaisujen suosion jatkuvasti kasvaessa ja ohjelmistojen täydellisen integroitumisen myötä useisiin liiketoiminta-alueisiin valtaosasta liiketoimintaprosesseista on tullut osittain tai kokonaan datakeskeisiä. Tämä on johtanut liiketoimintasääntöjen muuttumiseen ohjelmistokeskeisiksi, esimerkiksi liiketoimintasääntö ”Kun asiakas ostaa jotain myymälästä, soita hänelle myöhemmin ja kysy, haluaisiko hän ostaa muita siihen liittyviä tuotteita” on muuttunut nykyaikaisemmaksi ”Kun asiakas ostaa jotain verkkokaupastamme, lähetä hänelle myöhemmin sähköpostiviesti, jossa luetellaan muita siihen liittyviä tuotteita”. Nykyään monet yritykset käsittelevät päivittäisessä toiminnassaan enimmäkseen tietoja. Kun otetaan huomioon, että suurimmalla osalla kaikenkokoisista yrityksistä on integroituja ohjelmistoratkaisuja liiketoimintaansa, termin ”liiketoimintasääntö” määritelmää voidaan tarkentaa lisäämällä selvennys (se on lihavoitu) edellä mainittuun T. Morganin määritelmään:
Liiketoimintasääntö on lausunto, joka määrittelee tai rajoittaa jotakin liiketoiminnan osaa. Sen tarkoituksena on vakuuttaa liiketoiminnan rakenne tai valvoa tai vaikuttaa liiketoiminnan käyttäytymiseen. Se tallennetaan datarakenteena pysyvään tallennustilaan, ja se sisältää atomisen paketin liiketoimintalogiikkaa. Sitä hallinnoidaan ja sovelletaan yrityksen liiketoimintaprosesseihin automaattisesti ohjelmistoratkaisun avulla.
Kun termi ”liiketoimintasääntö” on määritelty, termi ”Business Rules Engine Management System” (BRMS) määritellään seuraavasti:
BRMS on ohjelmistoratkaisu, jonka avulla hallinnoidaan (tallennetaan, muokataan ja poistetaan jne.) liiketoimintasääntöjä sekä sovelletaan niitä yrityksen liiketoimintaprosesseihin.
Kaupalliset BRMS-järjestelmät voivat olla erittäin kalliita lisenssin hankkimiseksi ja niiden integroimiseksi yrityksen IT-infrastruktuuriin, joten yritykset ottavat usein käyttöön omia ratkaisujaan, kun ne kohtaavat tarvetta liiketoimintaprosessien tai muunlaisten prosessien automatisointiin.
BRMS-järjestelmistä voi tulla olennainen ja elintärkeä osa mitä tahansa yritystä. Joskus yrityksen menestys voi riippua siitä, millaisia liiketoimintasääntöjä sillä on ja miten hyvin näitä liiketoimintasääntöjä hallitaan ja sovelletaan.
Liiketoimintasääntöjen tietorakenne
Liiketoimintasääntö voidaan esittää johdonmukaisena sarjana atomisia komentoja. Komennot voivat sisältää ehdollisen data-analyysin, ajan odottamista koskevia komentoja, toimintojen suorittamista koskevia komentoja jne. Liiketoimintasääntöesimerkki ”Kun asiakas ostaa jotain verkkokaupastamme, lähetä hänelle myöhemmin sähköpostiviesti, jossa luetellaan muut siihen liittyvät tavarat” on hyvä ja yleinen esimerkki, ja monilla muilla liiketoimintasäännöillä voi olla hyvin samanlainen looginen rakenne:
Säännön käsittelyvirta käynnistyy, kun osto on tehty, ja jotakin liiketoimintalogiikkaa sovelletaan suorittamalla komento ”Lähetä ostajalle sähköpostiviesti, jossa on asiaankuuluvat tavaratarjoukset”. Saattaa käydä niin, että ostaja on poistanut sähköpostitilauksen käytöstä. Silloin liiketoimintasääntöön on lisättävä lisäehto – ”jos ostajalla on sähköpostitilaus käytössä”: