Apama (programvara)
Utvecklare | Software AG |
---|---|
Stabil frisättning | 10.5.3 / 26 juni 2020
|
Skrivet i | C++ och Java |
Operativ system | Windows , Linux |
Typ | Komplex händelsebearbetning , bearbetning av händelseströmmar , IoT , dataanalys |
Licens | Kommersiellt / Freemium |
Hemsida |
Apama är en motor för komplex händelsebearbetning ( CEP) och ESP-motor, utvecklad av Software AG . Apama fungerar som en plattform för att utföra streaminganalyser över en rad ingångar och applikationer med hög volym/låg latens, såsom IoT -enheter, finansiella utbyten, bedrägeriupptäckt, sociala medier och liknande. Användare kan definiera datamönster att lyssna efter och åtgärder att vidta när dessa mönster hittas, vilka definieras i det angivna domänspecifika språket som kallas Event Processing Language (EPL). Kärnmotorn i Apama är skriven i C++ ; processen kan också valfritt innehålla en JVM för att interagera med användarskapad Java -kod. Apama fokuserar på hög genomströmning, låg latens och minneseffektiv prestanda; används i både Intel benchmarks och mindre maskiner som Raspberry Pi , routrar och andra Edge /IoT-enheter. Det är särskilt anmärkningsvärt inom CEP-området som ett av de tidigaste projekten , en långsiktig marknadsledare och innovatör av många patent.
Historia
Apama Ltd. grundades 1999 av Dr John Bates , Dr Giles Nelson och Dr Mohamad Afshar, som träffades när de forskar vid Cambridge University Department of Computer Science and Technology .
2005 förvärvades Apama Limited av Progress Software för 25 miljoner dollar.
2013 förvärvades Apama av Software AG från Progress för ett ej avslöjat belopp.
släpptes en freemium- version, Apama Community Edition, tillsammans med stödjande forum och GitHub -utrymmen.
Översikt
Språk för händelsebearbetning
Ansökningar för Apama skapas i Event Processing Language (EPL). EPL innehåller språkfunktioner designade enbart för händelsedriven programmering , inklusive:
- Händelser - Enkla datastrukturer som innehåller fält och åtgärder
- Bildskärmar - I likhet med klasser på andra språk innehåller bildskärmar lyssnare och åtgärder och laddas vid injektion
- Lyssnare - Deklarativa mönster som definierar intressanta förhållanden/kombinationer av händelser. Aggregering, temporal och filtreringsoperatorer stöds
- Åtgärder - Imperativa funktioner, vanligtvis körs av lyssnare vid aktivering eller monitorer vid laddning
- Kontexter - I likhet med trådar finns monitorer i sammanhang
- Kanaler - Mekanism för att kommunicera mellan sammanhang och externa system
- Strömmar - Ordnade partitioner av händelser med stöd för aggregering och SQL -liknande frågor
Den EPL C++/Java-liknande syntaxen är utformad för att skapa CEP-applikationer kortfattat i kombination med ovanstående funktioner, ett exempel på vilka finns nedan:
händelse MyEvent { heltal myInt ; sekvens < sträng > myListOfStrings ; boolesk myBool ; } övervaka MyMonitor { action onload () { spawn worker () till kontext ( "mySideThread" ) ; } action worker () { på alla MyEvent ( myInt > 10 ) som myCoassignedEvent -> MyEvent ( myInt > 20 ) eller MyEvent ( myBool = true ) inom 30.0 { if ( doWork ( myCoassignedEvent . myListOfStrings ) != problem ) { log "Problem !" ; } } } action doWork ( sekvens < sträng > ) returnerar boolean { // gör arbete på listan return true ; } }
Apama frågor
Apama Queries är ett alternativt språk för att skapa regler över definierade datamängder, såsom de senaste fem minuterna av mottagen data eller de senaste tjugo händelserna som tagits emot, i en automatiskt flertrådig miljö som skalas över maskiner. Apama Queries är bättre lämpade för att övervaka mycket stora uppsättningar, såsom banktransaktioner. Vanligtvis kommer varje enhet (dvs. kontoinnehavaren) att delas upp och behandlas oberoende av resten av uppsättningen. Frågor och monitorer kan kommunicera via kanaler. Ett exempel på det tidigare scenariot finns nedan:
fråga FindSuspiciousWithdrawals { parametrar { float DURATION ; flyta TRÖSKEL ; } matar in { Uttag ( ) nyckelkortsnummer inom DURATION ; } hitta varje Uttag som w där w . belopp > 100 välj sista ( med transaktionsId ) som tid välj sist ( med kortnummer ) som cid med sista ( vikt belopp ) > TRÖSKEL * medelvärde ( vikt belopp ) { skicka SuspiciousTransaction ( tid , cid ) till SuspiciousTransactionManager ; _ _ _ _ } }
Designer
Software AG Designer är en Eclipse- baserad IDE med speciellt stöd för att utveckla och distribuera Apama-applikationer, som ingår i en standardinstallation. Funktioner inkluderar kodhjälp, pakethantering, profilering, GUI-utveckling och distributionshantering.
Plugins
Apama stöder möjligheten för användare att skapa plugins för att utöka kapaciteten. Dessa plugins finns i två former, EPL plugins ( för att lägga till funktioner till EPL ) och Connectivity plugins (för att kommunicera med omvärlden). C++ och Java API:er är tillgängliga för båda plugintyperna. Connectivity plugins finns i två former, codecs (som översätter data från ett format till ett annat, såsom den interna Apama-representationen till JSON ) och transporter (som hanterar sändning/mottagning till/från externa system, såsom JMS ). Anslutningar till externa system görs genom att komponera kedjor av codecs och en transport för att uppnå önskad topologi; dessa anslutningar definieras av en YAML- konfigurationsfil vid uppstart eller genom dynamisk hantering med de medföljande verktygen. Flera förbyggda plugins för populära teknologier (t.ex. R , MQTT , Kafka , HTTP , MatLab ) samt anslutningar till andra Software AG-produkter (t.ex. Universal Messaging, Terracotta , Cumulocity) levereras med Apama-installationer.
Uthållighet
Apama-processen är helt i minnet och stöder ett valfritt SQLite- baserat inbyggt persistenssystem. Dessutom stöder anslutnings-API:et tillförlitlig meddelandehantering till system som stöder det, såsom JMS. Slutligen är en förbyggd distribuerad minneslagringsplugin försedd med standardinstallationer för användning med lämpliga back-ends.
Visualisering
Apama tillhandahåller en inbyggd instrumentpanelsteknik utvecklad från Software AG Designer, såväl som inbyggda kopplingar till Software AG:s MashZone NextGen.
Se även
- Complex event processing (CEP) - En relaterad teknik för att bygga och hantera händelsedrivna informationssystem.
- Data Stream Management System (DSMS) - En typ av mjukvarusystem för hantering och sökning av dataströmmar
- Händelsekorrelation
- Händelsedriven arkitektur — (EDA) är ett mjukvaruarkitekturmönster som främjar produktion, upptäckt, konsumtion av och reaktion på händelser.
- Event stream processing — (ESP) är en relaterad teknik som fokuserar på att bearbeta strömmar av relaterad data.
- Operationell intelligens — Både CEP och ESP är tekniker som stöder operationell intelligens.
- Mönstermatchning
- Affärsinformation i realtid — Business Intelligence är tillämpningen av kunskap som härrör från CEP-systemet