Apama (oprogramowanie)
Deweloperzy | Oprogramowanie AG |
---|---|
Wersja stabilna | 10.5.3 / 26 czerwca 2020
|
Napisane w | C++ i Javę |
System operacyjny | Windowsa , Linuksa |
Typ | Złożone przetwarzanie zdarzeń , Przetwarzanie strumienia zdarzeń , IoT , Analiza danych |
Licencja | Komercyjne / Freemium |
Strona internetowa |
Apama to złożony mechanizm przetwarzania zdarzeń (CEP) i przetwarzania strumienia zdarzeń (ESP), opracowany przez firmę Software AG . Apama służy jako platforma do przeprowadzania analiz strumieniowych w zakresie danych wejściowych i aplikacji o dużej objętości/małych opóźnieniach, takich jak urządzenia IoT , giełdy finansowe, wykrywanie oszustw, media społecznościowe i podobne. Użytkownicy mogą definiować wzorce danych do nasłuchiwania i działania, które należy podjąć, gdy te wzorce zostaną znalezione, które są zdefiniowane w dostarczonym języku specyficznym dla domeny o nazwie Event Processing Language (EPL). Rdzeń silnika Apama jest napisany w C++ ; proces może również opcjonalnie zawierać maszynę JVM do interakcji z Java utworzonym przez użytkownika . Apama koncentruje się na wysokiej przepustowości, niskich opóźnieniach i wydajnej pamięci; używany zarówno w Intela , jak i mniejszych maszynach, takich jak Raspberry Pi , routery i inne urządzenia Edge /IoT. Na szczególną uwagę zasługuje w przestrzeni CEP jako jeden z najwcześniejszych projektów , wieloletni lider rynku i innowator wielu patentów.
Historia
Apama Ltd. została założona w 1999 roku przez dr Johna Batesa , dr Gilesa Nelsona i dr Mohamada Afshara, którzy poznali się podczas prowadzenia badań na Wydziale Informatyki i Technologii Uniwersytetu Cambridge .
W 2005 Apama Limited została przejęta przez Progress Software za 25 milionów dolarów.
W 2013 roku Apama została przejęta przez Software AG od Progress za nieujawnioną kwotę.
W 2016 roku została wydana wersja freemium , Apama Community Edition, wraz z obsługą forów i przestrzeni GitHub .
Przegląd
Język przetwarzania zdarzeń
Aplikacje dla Apama są tworzone w języku Event Processing Language (EPL). EPL zawiera funkcje językowe przeznaczone wyłącznie do programowania sterowanego zdarzeniami , w tym:
- Zdarzenia — proste struktury danych zawierające pola i akcje
- Monitory — podobnie jak klasy w innych językach, monitory zawierają detektory i akcje i są ładowane po wstrzyknięciu
- Słuchacze - Wzorce deklaratywne określające interesujące warunki/kombinacje zdarzeń. Obsługiwane są operatory agregacji, czasowe i filtrujące
- Akcje — funkcje imperatywne, zwykle uruchamiane przez detektory po aktywacji lub monitory po załadowaniu
- Konteksty — podobnie jak wątki, monitory istnieją w kontekstach
- Kanały - Mechanizm komunikacji między kontekstami a systemami zewnętrznymi
- Strumienie — uporządkowane partycje zdarzeń z obsługą agregacji i zapytań podobnych do SQL
Składnia podobna do EPL C++/Java jest przeznaczona do tworzenia aplikacji CEP w zwięzły sposób w połączeniu z powyższymi funkcjami, których przykład można znaleźć poniżej:
zdarzenie MojeZdarzenie { liczba całkowita mojaInt ; sekwencja < string > myListOfStrings ; wartość logiczna moja wartość bool ; } monitor MyMonitor { akcja onload () { spawn worker () do context ( "mySideThread" ); } action worker () { na wszystkich MyEvent ( myInt > 10 ) jako myCoassignedEvent -> MyEvent ( myInt > 20 ) lub MyEvent ( myBool = true ) w ciągu 30.0 { if ( doWork ( myCoassignedEvent . myListOfStrings ) ! = true ) { log "Problem !" ; } } } akcja doWork ( sequence <string> ) zwraca wartość logiczną { // wykonaj pracę na liście return true ; } }
Zapytania Apamy
Apama Queries to alternatywny język do tworzenia reguł dla zdefiniowanych zestawów danych, takich jak odebrane dane z ostatnich pięciu minut lub odebrane ostatnie dwadzieścia zdarzeń, w automatycznie wielowątkowym środowisku, które skaluje się między maszynami. Zapytania Apama lepiej nadają się do monitorowania bardzo dużych zbiorów, takich jak transakcje bankowe. Zazwyczaj każdy podmiot (tj. posiadacz konta) będzie podzielony na partycje i przetwarzany niezależnie od reszty zbioru. Zapytania i monitory mogą komunikować się za pośrednictwem kanałów. Przykład poprzedniego scenariusza można znaleźć poniżej:
zapytanie FindSuspiciousWithdrawals { parametry { float DURATION ; pływak PRÓG ; } wprowadza { Wypłata () klucz cardNumber w ciągu DURATION ; } znaleźć każdą wypłatę jako w gdzie w . kwota > 100 wybierz ostatnią ( z . identyfikator transakcji ) jako tid wybierz ostatnią ( z . numer karty ) jako numer rachunku mający ostatnią ( z . kwota ) > PRÓG * śr. ( z . kwota ) { wyślij SuspiciousTransaction ( tid , cid ) do SuspiciousTransactionManager ; } }
Projektant
Software AG Designer to IDE oparte na Eclipse ze specjalną obsługą tworzenia i wdrażania aplikacji Apama, które jest zawarte w standardowej instalacji. Funkcje obejmują pomoc w kodzie, zarządzanie pakietami, profilowanie, rozwój GUI i zarządzanie wdrażaniem.
Wtyczki
Apama umożliwia użytkownikom tworzenie wtyczek w celu rozszerzenia możliwości. Wtyczki te występują w dwóch formach, wtyczek EPL ( do dodawania funkcji do EPL ) i wtyczek łączności (do komunikacji ze światem zewnętrznym). Interfejsy API C++ i Java są dostępne dla obu typów wtyczek. Wtyczki łączności występują w dwóch formach: kodeków (które tłumaczą dane z jednego formatu na inny, na przykład wewnętrznej reprezentacji Apama na JSON ) i transportów (które obsługują wysyłanie/odbieranie do/z systemów zewnętrznych, takich jak JMS ). Połączenia z systemami zewnętrznymi są tworzone poprzez tworzenie łańcuchów kodeków i jednego transportu w celu uzyskania pożądanej topologii; te połączenia są definiowane przez YAML podczas uruchamiania lub poprzez dynamiczne zarządzanie za pomocą dostarczonych narzędzi. Kilka gotowych wtyczek dla popularnych technologii (np R , MQTT , Kafka , HTTP , MatLab ) oraz łączność z innymi produktami Software AG (np. Universal Messaging , Terracotta , Cumulocity ) jest dostarczanych z instalacjami Apama.
Trwałość
Proces Apama znajduje się w całości w pamięci i obsługuje opcjonalny wbudowany system trwałości oparty na SQLite . Ponadto interfejs API łączności obsługuje niezawodne przesyłanie komunikatów do obsługujących go systemów, takich jak JMS. Wreszcie, wstępnie zbudowana wtyczka magazynu rozproszonej pamięci jest dostarczana ze standardowymi instalacjami do użytku z odpowiednimi back-endami.
Wyobrażanie sobie
Apama zapewnia wbudowaną technologię pulpitów nawigacyjnych opracowaną w oprogramowaniu Software AG Designer, a także natywne połączenia z MashZone NextGen firmy Software AG.
Zobacz też
- Kompleksowe przetwarzanie zdarzeń (CEP) — powiązana technologia służąca do budowania systemów informacyjnych sterowanych zdarzeniami i zarządzania nimi.
- System zarządzania strumieniem danych (DSMS) — rodzaj systemu oprogramowania do zarządzania i wysyłania zapytań do strumieni danych
- Korelacja zdarzeń
- Architektura sterowana zdarzeniami — (EDA) to wzorzec architektury oprogramowania promujący wytwarzanie, wykrywanie, wykorzystywanie i reagowanie na zdarzenia.
- Przetwarzanie strumienia zdarzeń — (ESP) to powiązana technologia, która koncentruje się na przetwarzaniu strumieni powiązanych danych.
- Wywiad operacyjny — zarówno CEP, jak i ESP to technologie, które stanowią podstawę wywiadu operacyjnego.
- Dopasowanie wzorca
- Business Intelligence w czasie rzeczywistym — Business Intelligence to zastosowanie wiedzy pochodzącej z systemu CEP