Zpracování proudů dat o událostech v reálném čase. Technologie a aplikační možnosti Ing. Jiří Gregor
Obsah:
Úvod Jednoduché, významné a komplexní události Complex Event Processing versus Business Intelligence IT architektura pro zpracování událostí Aplikace CEP v praxi Abstrakt Klíčová slova
Klíčová slova: Business Event Processing (BEP), Complex Event Processing (CEP), reálný čas, událost, jednoduchá událost, komplexní událost, významná událost, okamžitá reakce, řízení v reálném čase, Business Intelligence, Progress Apama, korelační enginy, řízení podle KPI (Key Performance Indicators) Abstrakt: Zpracování událostí v reálném čase (CEP – Complex Event Processing) opouští zažité modely práce s informacemi, ve kterých je rozhodování založeno na datech z datových skladů nebo relačních databází. Zpracování totiž musí proběhnout tak rychle, že není možné ani žádoucí zdržovat se ukládáním dat. Cílem je zpracovat v co nejkratším čase obrovské množství dat z různých zdrojů, vyhledat mezi nimi souvislosti, porovnat je s připravenými scénáři a vydat doporučení nebo automaticky provést rozhodnutí. Technologie CEP nacházejí uplatnění všude tam, kde je rychlost naprosto kritickým parametrem, například v algoritmickém obchodování na kapitálových trzích, v telekomunikacích, telematice nebo v bankovnictví. Obsah
Úvod. Technologie CEP (Complex Event Processing) umožňují sledovat různě komplexní události již v okamžiku, kdy události nebo data o nich vznikají, a reagovat na ně. Nabízí obdobnou schopnost společného zpracování a vyhodnocování dat z různých zdrojů, jakou nabízí business intelligence, liší
1
se však rychlostí. To je dáno tím, že není zapotřebí čekat na uložení dat. Události jsou identifikovány přímo v jejich proudu. Pro každou nebo téměř každou organizaci platí, že v ní i kolem ní téměř neustále probíhají události, které ovlivňují kvalitu služeb, dodávku produktů, spokojenost zákazníků, úroveň prodejů, náklady nebo jiný významný parametr. Schopnost zjišťovat tyto události a okamžitě na ně reagovat znamená významnou konkurenční výhodu. K tomu slouží technologie označované jako Business Event Processing (BEP) či Complex Event Processing (CEP). Používání těchto pojmů se v praxi překrývá. V následujícím textu dáváme přednost výrazu CEP.
Jednoduché, komplexní a významné události Pro účely tohoto textu budeme rozlišovat tři základní typy událostí. Za jednoduchou událost můžeme pokládat například: -
aktivaci prvku v síti,
-
změnu ceny na burze,
-
příchozí volání,
-
žádost o provedení platby,
-
změnu GPS souřadnic,
-
uložení předmětu na určité místo zaznamenané RFID čipem,
-
změna stavu stroje (zapnutí, vypnutí apod.),
-
signál změny stavu zaslaný senzorem (který měří teplotu, rychlost, pohyb atd.)
Některé takové jednoduché události jsou zajímavé a důležité i samy o sobě. Častěji se ale jejich skutečný dopad ukazuje až v souvislostech. Proto je lze považovat za stavební bloky pro budování komplexních událostí. Takovými komplexními událostmi jsou například: -
zadání většího počtu objednávek ve velmi krátkém čase, přičemž tento počet objednávek převyšuje kapacitu střediska,
-
všechny prvky sítě, které jsou potřebné pro poskytnutí určité služby, mají momentálně volnou kapacitu,
-
přílet letadla se všemi nároky na odbavení cestujících, servis, doplnění paliva, zásob atd., které z toho vyplývají.
Tyto komplexní události se většinou skládají z jednoduchých událostí třemi různými způsoby: -
spojení jednoduchých událostí podle času a místa. Takovou komplexní událostí mohou být například výběry z bankomatů stejnou kartou, které jsou od sebe vzdáleny více než 10 km, přičemž čas mezi výběry je kratší než 5 minut;
-
spojení na základě kvantity, například spojení jednoduchých událostí, jejichž součet překračuje stanovenou mez (například celková požadovaná částka, celkové nároky na kapacitu apod.) 2
-
sled událostí (nastane událost A, do 15 minut nastane některá z událostí B nebo C a v dalších dvou minutách neproběhne událost D)
Za významnou událost označujeme takovou komplexní událost, která vyžaduje okamžitou reakci. To znamená, že každá z výše popsaných komplexních událostí může označena jako významná událost, pokud jsou splněny některé další podmínky. Například: -
to, že kapacita střediska neumožňuje vyřídit všechny objednávky ve stanoveném čase, se stává významnou událostí po zjištění, že dvě z těchto objednávek přicházejí od VIP zákazníků;
-
skutečnost, že všechny potřebné prvky sítě mají dostatečnou volnou kapacitu pro poskytnutí určité služby, je významnou událostí, pokud lze z profilu zákazníka usuzovat, že by měl o službu zájem;
-
zjištění, že pokud má letadlo odletět podle jízdního řádu, musí být doplňování paliva zahájeno do 90 minut, což kapacita tankovacích zařízení neumožňuje.
Okamžitou reakci může vyžadovat i jednoduchá událost (například aktivace čidla, která znamená nepovolené vniknutí do objektu). Tyto jednoduché události však jsou většinou ošetřeny v rámci jednoho specializovaného informačního systému a nevyžadují podporu CEP. Významné události se odehrávají bez ohledu na informační technologie. Informační technologie ale mohou přinést schopnost včas je identifikovat a okamžitě na ně reagovat. Měřítka toho, jakou rychlost reakce lze pokládat za dostatečnou, se liší podle oboru. Někdy stačí hodiny nebo dokonce dny, při koordinaci kapacit to mohou být minuty, při obraně proti podvodům se může jednat o sekundy nebo zlomky sekund.
CEP versus Business Intelligence Ke zpracování dat z různých zdrojů slouží již tradičně nástroje Business Intelligence (BI). Umožňují vidět souvislosti a přijímat správná rozhodnutí. Mnohdy to jsou sofistikované a výkonné nástroje, ale není v jejich možnostech zajistit potřebnou rychlost. Mohou tedy kupříkladu poskytnout cenné informace o tom, že v určité fázi procesu pravidelně vznikají zdržení nebo výpadky, ale nedokážou vyvolat akci ve chvíli, kdy se tak děje. Jsou velmi vhodné pro vytváření výkazů, hodnocení různých činností nebo vystavování faktur, jejich použitelnost pro okamžité řízení je omezená. To je dáno i tím, že data jsou do datových skladů přenášena zpravidla dávkově (například jednou denně), aby nebyla zpomalena činnost provozních informačních systémů. Technologie CEP jsou oproti tomu vhodné tam, kde je zapotřebí reagovat v reálném čase nebo v řádu minut. To lze nejlépe ukázat na již zmíněných situacích.
3
-
BI ukáže, že určité středisko pravidelně bývá v určité denní doby přetížené a že během takových přetížení zákazníci čekají na vyřízení svého požadavku příliš dlouho. Často umožní i zjistit, jaké jsou finanční dopady takového přetížení: kolik zákazníků není ochotno čekat, o kolik zakázek firma přichází a jaký to má dopad na spokojenost zákazníků. CEP oproti tomu upozorní, že momentálně hrozí, že významný zákazník nebude obsloužen, a nápravné opatření tudíž musí být podniknuto během několika vteřin.
-
BI poskytne informaci, že kapacita telekomunikační sítě je v určitých denních dobách dostatečná pro poskytnutí dalších služeb a kteří zákazníci zpravidla mají o takové služby zájem. To může být užitečné například při sestavování nových tarifů. CEP oproti tomu upozorní, že právě teď je správný čas nabídnout konkrétnímu zákazníkovi službu – všechny prvky sítě mají dostatek volné kapacity a zákazník s vysokou pravděpodobností nabídku uvítá.
-
BI umožní vidět, že kapacita tankovacích zařízení není racionálně využívána. CEP upozorní na nutnost provést okamžitou změnu v harmonogramu, jinak letadlo neodletí včas.
CEP je tedy technologie užitečná a často nutná tam, kde je okno příležitosti časově omezené, a kde je zapotřebí reagovat okamžitě. A takových situací ve většině oborů přibývá. Stačí připomenout, že ještě v relativně nedávných dobách stačilo makléřům na burzách reagovat na změnu ceny v řádu minut, takže byli schopni situaci konzultovat s kolegou nebo nadřízeným. Dnes rozhodují milisekundy. A nejde zdaleka jen o burzy. Například cross-selling (prodej dalších služeb stávajícím zákazníkům) v telekomunikacích, finančních službách, prodeji na internetu nebo jejich kombinaci. S doplňující nabídkou je často zapotřebí přijít během několika vteřin nebo nejvýše minut, potom příležitost končí. K tak rychlé reakci je zapotřebí vyhodnotit data o zákazníkovi, o produktech, o momentální kapacitě a o tarifu, který zákazník využívá. Podobně je tomu s obranou proti podvodům. Rozhodnutí o tom, zda transakci povolit nebo zablokovat, musí být učiněno nejvýše během několika vteřin. Nejde jen o řešení jednotlivých případů. Mnoho organizací je řízeno podle KPI nebo jiných ukazatelů, a nástroje CEP umožňují zahrnovat do jejich kalkulací i ty události, které právě probíhají. Manažer může skutečně on-line sledovat, jak se mění vytížení kapacit a co to znamená pro finanční ukazatele. Může sledovat reakci na reklamní kampaň i s dopady pro návratnost investice do reklamy a budoucí požadavky na kapacitu. Pochopitelně v přehledné grafice. CEP proto doplňuje schopnosti BI všude tam, kde záleží na čase reakce, tedy v procesech operativního (dispečerského) řízení, kterým poskytuje tzv. průběžnou inteligenci (není oreintovaná na zpracování v dávkách, ale je řízena událostmi).
4
IT architektura pro zpracování událostí V další části ukážeme základní prvky architektury CEP řešení: Korelační enginy. Jedná se o nástroje pro vyhledávání souvislostí v obrovských objemech dat s obrovským výkonem. Mohou jimi „protékat“ v podstatě neomezené objemy dat z různých zdrojů (například telekomunikační síť a informační systémy operátora). Korelační enginy je filtrují, tedy třídí ta data, která jsou relevantní pro posuzovanou událost a hledají v nich scénáře, jichž dokážou posoudit tisíce v řádu milisekund. Korelační engine pracuje ve vnitřní paměti a nevyžaduje pro svoje fungování žádnou vnější databázi. O práci korelačního stroje řekneme více během přednášky. S korelačními enginy jsou dodávány také řídící nástroje, které umožňují nasadit a řídit více korelačních enginů zároveň. To lze ilustrovat na produktu Progress Apama Correlator, který pracuje s patentovanou technologií HyperTree. Tato technologie nerealizuje procesní kroky v sekvenčním pořadí, jak je tomu v tradičních počítačových programech. Monitoring, analýza a vyvolání akce jsou pojaty jako nezávislé, byť logicky propojené, segmenty. Kromě toho je systém schopen paralelně sledovat statisíce instancí scénářů (proběhla událost A a nyní se čeká, zda v určitém časovém limitu bude následovat událost B).
Obr. Schéma vnitřní struktury Apama Event Correlator
Prostředí pro vytváření aplikací. CEP poskytuje jazyk a kompletní prostředí pro vývoj „událostních aplikací“. IT specialista tedy pracuje v jednoduchém skriptovacím jazyce ne nepodobném javě. Zadává de facto popis konečného automatu, který obsahuje: -
jednoduché události, které události mají být sledovány,
-
scénáře sestavené z těchto událostí (komplexní události), 5
-
další pravidla, výpočty KPI apod.
Obr. Zjednodušená ukázka událostní aplikace vytvářené v rámci CEP. V tomto případě se jedná o algoritmické obchodování. Ten, kdo událostní aplikace vytváří, určuje rovněž, jak budou události zobrazovány uživatelům (manažerům a dispečerům). Kromě toho může vytvářet tzv. smart bloky, a umožnit tak pokročilejším uživatelům, aby spojováním, případně parametrizací těchto bloků zadávali vlastní požadavky na scénáře. Dispečerské rozhraní (dashboard pro vizualizaci dění v reálném čase) ukazuje v přehledné grafice momentální dění, včetně dopadů událostí na různé ukazatele, a případně upozorňuje na nutnost okamžitě reagovat. Některé CEP produkty umožňují, aby určité scénáře (požadavek na sledování sledu událostí spojených se splněním určitých podmínek) zadávali i sami koncoví uživatelé bez podpory IT experta, jak je i zmíněno v předcházejícím odstavci.
6
Obr. Příklad uživatelského rozhranní (obrana trhu)
Simulační nástroje. Jak vyplývá z názvu, umožňují tyto nástroje přehrávat události, které se odehrály v minulosti, případně zjišťovat, jaký dopady by měly různé varianty událostí, které teprve mohou nastat. Použití těchto nástrojů (testování scénářů) často vyžaduje i forenzní audit. Zajímavé je, že tyto nástroje většinou předpokládají využití nějaké velmi výkonné databáze. Do této databáze je možné data opatřená časovými razítky uložit a odsud je pak přehrávat podle času vyznačeného na razítkách, což v zásadě simuluje tok událostí, jako by přicházel z originálních zdrojů. Adaptéry
(integrační
vrstva)
přebírají
data
z nejrůznějších
zdrojů:
systémů,
aplikací,
technologických zařízení, telekomunikačních sítí, vnějších poskytovatelů apod. Samozřejmým požadavkem je, aby adaptéry byly schopny přebírat data z jakéhokoliv prostředí, kde tato data vznikají. Tedy z informačních systémů, ale také různých řídících systémů, technických zařízení, mediačních zařízení telekomunikačních sítí apod. Komerční systémy CEP obsahují řadu takových připravených adaptérů i vývojové prostředí umožňující vytvářet další. Kromě přebírání momentálně vznikajících dat musí CEP zajistit tzv.“data enrichment“, tedy doplnit tato data o další informace uložené v databázích vnitropodnikových systémů resp. konvenčních aplikací. Kombinace událostí, z níž vyplývá, že určitá služba nebude poskytnuta včas, dostává kupříkladu jiný význam ve světle zjištění, že se jedná o VIP zákazníka. Jindy je zapotřebí zkontrolovat stav účtu, zjistit zbývající kredit apod. Toto doplňování údajů může být kritickým bodem CEP, protože je do značné míry závislé na rychlosti a kapacitě jiných (non real time) databází.
7
Je zřejmé, že se jedná o složité a náročné systémy. Tím je dáno, že počet dodavatelů CEP je poměrně úzký. Forrester Research považuje za dva absolutně nejlepší produkty Progress Apama a Sybase Aleri Event Stream Processor, do sektoru „leaders“ pak řadí ještě IBM, StreamBase a Tibco. Co se týče kapacity, integračních schopností a dalších vyloženě technologických rysů, je možné konstatovat, že všechny tyto nástroje splňují nároky i těch největších nasazení. Sada produktů Progress Apama, kterou implementuje společnost Galeos, má dominantní postavení na burzách (algoritmické obchodování i dohled nad děním na trzích). Je také často využívána v telekomunikacích, logistice, průmyslu (a všude, kde se pracuje s RFID) i finančních službách (především ochrana proti podvodným transakcím).
Za její hlavní konkurenční výhodu bývá
označována uživatelská přívětivost, možnost velmi snadno přizpůsobit manažerské rozhraní konkrétním uživatelům a poměrně unikátní možnosti přehrávání historických událostí a scénářů.
Obr. Architektura CEP řešení Progress Apama
Aplikace CEP v praxi V rámci přednášky zmíníme některé praktické zkušenosti z využití CEP aplikací tam, kde se Galeos podílel na implementaci. Zde uvedeme jen jejich velmi stručný popis:
8
1. Monitoring konvergovaných bilingových procesů velkého mobilního operátora (účtování různých typů služeb konzumovaných stejným zákazníkem). CEP aplikace byla použita jako nástroj pro odhalení výkonnostních problémů některých aplikací, které klasické monitorovací systémy nebyly schopné identifikovat. Během implementace tak postupně vznikal nástroj pro monitorování a řízení interních SLA (Servis Level Agreement). 2. U dalšího mobilního operátora s více než 10 miliony zákazníky jsme nasadili CEP pro řízení marketingových kampaní v reálném čase. 3. Ochrana před zneužitím platebních karet. Využití CEP lze nejlépe ilustrovat typickým jednoduchým scénářem. Jestliže v proudu dat o platbách rozpoznáme několik plateb téže kartou v krátkém časovém rozmezí, ale různých lokalitách, jde o podezřelé transakce. Banka může okamžitě reagovat zvýšením dohledu, upozorněním dohlížitele nebo automaticky spustit ochrannou akci. Na závěr uvedeme několik dalších oblastí, kde jsou technologie CEP typicky využívány. 1. Algoritmické obchodování. Nástrojů pro automatizovaný prodej a nákup (v reálném čase) existuje celá řada. Zde máme na mysli jejich nejvýkonnější představitele používané v rámci aplikací označovaných jako high frequency- trading, někdy též low-latency trading. To je ostatně oblast, pro kterou byly CEP technologie původně vytvořeny a na které lze dobře ukázat, v jakém prostředí přináší CEP největší přidanou hodnotu. a) Trhy jsou extrémně konkurenční. I zpoždění v řádu milisekund znamená nevyužitou příležitost. Cena se již pohnula a konkurent již nakoupil za lepších podmínek. b) Existuje celá řada veřejných nebo komerčně dostupných proudů dat. Burzy, clearingová centra a další organizace je zveřejňují 24 hodin denně, často v sekundových intervalech. O objemu disponibilních dat si lze udělat představu i podle objemu peněz, které se za tato data na trhu zaplatí (v desítkách miliard USD ročně). Úspěšné strategie pak využívají kombinace krátkodobých (v extrému milisekundových) arbitráží nad cenami (z burz), disponibilními penězi (clearingová centra), informacemi (analytici), možným hedgingem (trh futures) a řadou dalších. 2. Obrana trhu. Je velkou výhodou, pokud regulátor dokáže rozpoznat nedovolené transakce již v okamžiku, kdy jsou prováděny. Umožní to okamžitou reakci. Kromě toho, dodatečné hledání problematické transakce v oddělených proudech dat představuje velmi obtížný úkol. Ovšem velikost a složitost trhu je obdobná, jako jsme uvedli v předcházejícím bodě. Kromě
9
regulátorů využívají takto CEP i jednotliví hráči, kteří chtějí mít jistotu, že ve svém podnikání jsou v souladu s předpisy (compliance). 3. Společné zpracování dat z různých monitorovacích nástrojů a bezpečnostních zařízení (kamery, vstupní systémy, sensory apod.) umožňují identifikovat situaci či osobu a okamžitě reagovat. Zákazníky takových řešení mohou být jak bezpečnostní složky, tak provozovatelé velkých areálů s vysokou mírou rizika, organizace odpovědné za ochranu liniových staveb apod. 4. Telematika je další typickou oblastí, kde je zapotřebí zpracovávat velké množství dat v reálném čase. To nemusí zahrnovat jen klasické řízení provozu, ale také poskytování služeb, respektive jejich personalizovanou nabídku v závislosti na lokalitě. Včetně situací tak kuriózních, nicméně reálných, jako je rozpoznávání „přátelských situací“, kdy letecký dopravce využívá informace dostupné na sociálních sítích ke zlepšení nabídky klientům během cesty. V každém případě je možné konstatovat, že s tím, jak jsou organizace nuceny řešit stále komplexnější problémy, konkurence se zostřuje a regulátoři přicházejí se stále přísnějšími požadavky, přibývá také příležitostí pro CEP. Přibývá dokonce situací, které je bez CEP téměř nemožné uspokojivě vyřešit.
Literatura [1] K Mani Chandy, W. Roy Schulte : Event processing. Designing IT systems for Agile Companies. McGraw Hill 2010. [2] Progress Software: White papers http://www.progress.com/cs/apama/apama-resources.html [3] The Forrester Wave: Complex Event Processing Platforms
Abstrakt Zpracování událostí v reálném čase (CEP – Complex Event Processing) opouští zažité modely práce s informacemi, ve kterých je rozhodování založeno na datech z datových skladů nebo relačních databází. Zpracování totiž musí proběhnout tak rychle, že není možné ani žádoucí zdržovat se ukládáním dat. Cílem je zpracovat v co nejkratším čase obrovské množství dat z různých zdrojů, vyhledat mezi nimi souvislosti, porovnat je s připravenými scénáři a vydat doporučení nebo automaticky provést rozhodnutí. Technologie CEP nacházejí uplatnění všude tam, kde je rychlost naprosto kritickým
10
parametrem, například v algoritmickém obchodování na kapitálových trzích, v telekomunikacích, telematice nebo v bankovnictví.
Klíčová slova Business Event Processing (BEP), Complex Event Processing (CEP), reálný čas, událost, jednoduchá událost, komplexní událost, významná událost, okamžitá reakce, řízení v reálném čase, Business Intelligence, Progress Apama, korelační enginy, řízení podle KPI (Key Performance Indicators)
11