Hogyan építsünk egy modern üzleti szabálymotort, gyors áttekintés
Ez egy magas szintű koncepcionális áttekintés az üzleti szabálymotorok architektúrájáról. A valódi kód fölött van. Ha ön üzleti szabálymotort épít – nagy valószínűséggel hasznosnak találhatja ezt a szöveget.
Egyszer építettem egy olyan üzleti szabálymotort, amely lehetővé tette az üzleti automatizálást kis- és középvállalkozások számára, és rendelkezett minden olyan képességgel és potenciállal is, amely jól szolgálhatta volna a nagyvállalatokat. Ez volt az út egy átlagos szoftveralkalmazástól egy kifinomult és összetett megoldásig, amely megfelelt a kemény skálázhatósági, karbantarthatósági és bővíthetőségi követelményeknek. Ez a szöveg áttekintést nyújt arról, hogy mi is az Üzleti Szabályok Motorja, és ismerteti az egyik modern megközelítést, amelyet az ilyen típusú szoftverek készítésekor figyelembe vehetünk.
Kezdésnek fontos definiálni az alapvető fogalmakat. Az üzleti szabálymotorok már elég régóta léteznek az iparágban valamilyen formában, és nagyjából minden általunk használt kifejezésre létezik néhány definíció. Kezdjük az “üzleti szabállyal” – erre a kifejezésre létezik egy jól ismert definíció. Az “üzleti szabály” tehát:
Egy olyan kijelentés, amely meghatározza vagy korlátozza az üzlet valamely aspektusát. Célja az üzleti struktúra érvényesítése vagy az üzlet viselkedésének irányítása vagy befolyásolása.
T. Morgan, Üzleti szabályok és információs rendszerek. Boston: Addison-Wesley Publishing, 2002
Az üzleti szabályok alkalmazási köre igen széles, és az üzlet bármely aspektusára alkalmazhatók. Például a “Amikor egy ügyfél bejön, üdvözöld őt egy meleg mosollyal és egy barátságos “Helló”-val” szabályt a cég alkalmazottja alkalmazza az ügyfelekkel való találkozáskor. Egy másik szabály meghatározhatja vagy korlátozhatja a rutinfeladatok megoldásának megközelítését a vállalat egy adott szerepkörében. Az olyan szoftvermegoldások, mint a CRM-rendszerek folyamatosan növekvő népszerűségével és a szoftverek teljes integrációjával a különböző üzleti területekhez, az üzleti folyamatok többsége részben vagy teljesen adatorientálttá vált. Ez az üzleti szabályok átalakulásához vezetett, így azok szoftverorientálttá váltak, például a “Ha egy vásárló vásárol valamit az üzletünkben, hívjuk fel később, hogy szeretne-e más kapcsolódó árukat vásárolni” üzleti szabály átalakult egy modernebb “Ha egy vásárló vásárol valamit az online áruházunkban, küldjünk neki később egy e-mailt, amelyben felsoroljuk a többi kapcsolódó árut” szabállyá. Napjainkban sok vállalat napi működése során többnyire adatokkal foglalkozik. Figyelembe véve, hogy a vállalkozások többsége minden méretben integrált szoftveres megoldásokat alkalmaz üzleti tevékenységeihez, az “üzleti szabály” fogalmának meghatározása konkrétabban is meghatározható, ha a T. Morgan által fent említett definíciót kiegészítjük egy pontosítással (félkövérrel):
Az üzleti szabály egy olyan kijelentés, amely meghatározza vagy korlátozza az üzleti tevékenység valamely aspektusát. Célja az üzleti struktúra érvényesítése vagy az üzlet viselkedésének ellenőrzése vagy befolyásolása. Adatkonstrukcióként tárolódik a perzisztens tárolóban, és az üzleti logika egy atomi csomagját tartalmazza. Egy szoftveres megoldáson keresztül automatikusan kezelik és alkalmazzák a vállalat üzleti folyamataiban.
Az “üzleti szabály” fogalmának meghatározása után az “üzleti szabálymotor-kezelő rendszer” (BRMS) fogalmát a következőképpen határozzuk meg:
A BRMS egy szoftveres megoldás az üzleti szabályok kezelésére (tárolására, szerkesztésére, törlésére stb.), valamint a vállalati üzleti folyamatokban való alkalmazására.
A kereskedelmi BRMS-ek megvásárlása és a vállalati informatikai infrastruktúrába való integrálása rendkívül költséges lehet, ezért a vállalatok gyakran házon belüli megoldásokat alkalmaznak, amikor az üzleti folyamatok vagy más típusú folyamatok automatizálásának igényével találkoznak.
A BRMS-ek bármely vállalkozás alapvető és létfontosságú részévé válhatnak. Néha egy vállalkozás sikere attól függhet, hogy milyen üzleti szabályokkal rendelkezik, és hogy ezeket az üzleti szabályokat mennyire jól kezelik és alkalmazzák.
Az üzleti szabály adatkonstrukció
Az üzleti szabály atomi parancsok következetes sorozataként ábrázolható. A parancsok tartalmazhatnak feltételes adatelemzést, idővárakozási parancsokat, műveletvégzési parancsokat stb. A “Ha egy ügyfél vásárol valamit a webáruházunkban, később küldjünk neki egy e-mailt, amelyben felsoroljuk a többi kapcsolódó árut” üzleti szabály példa jó és általános, és sok más üzleti szabály nagyon hasonló logikai felépítésű lehet:
A szabály feldolgozási folyamata akkor indul el, amikor a vásárlás megtörtént, és a “Küldj a vevőnek egy e-mailt a vonatkozó áruajánlatokkal” parancs végrehajtásával bizonyos üzleti logika kerül alkalmazásra. Előfordulhat, hogy a vevő letiltotta az e-mail feliratkozást. Ekkor az üzleti szabályhoz hozzá kell adni a további feltételt – “ha a vevőnek engedélyezve van az e-mail előfizetése”:
A parancsok következetesen végrehajtásra kerülnek, és most egy adatelemzési parancs van, amely ellenőrzi, hogy a vevőnek van-e aktív e-mail előfizetése. Ha igen – folytassa az üzleti szabály következő parancsának végrehajtását. Ha pedig nem – ne folytassa, az üzleti szabály befejezettnek tekinthető, a feldolgozási folyamat leáll, a következő parancsok nem kerülnek végrehajtásra.
A vevőnek lehet SMS-előfizetése is, és ha az aktív, akkor egy másik parancsnak is kell lennie – “SMS küldése kapcsolódó promóciós ajánlattal”. Ezzel elágazás kerül bevezetésre az üzleti szabály logikájába: