Apama (yazılım) - Apama (software)

APAMA
Geliştirici (ler)Software AG
Kararlı sürüm
10.5.0
YazılmışC ++ ve Java (programlama dili)
İşletim sistemiÇapraz platform
TürKarmaşık Olay İşleme, Olay Akışı İşleme, IoT, Veri analizi
LisansTicari / Freemium
İnternet sitesibir topluluk.com

Apama bir Karmaşık Olay İşleme (CEP) ve Olay Akışı İşleme (ESP) motor, tarafından geliştirilen Software AG. Apama, aşağıdakiler gibi bir dizi yüksek hacimli / düşük gecikmeli giriş ve uygulama üzerinden akış analizi gerçekleştirmek için bir platform görevi görür. IoT cihazlar, finansal değişimler, dolandırıcılık tespiti, sosyal medya ve benzeri.[1] Kullanıcılar, sağlanan veri modellerini ve bu modeller bulunduğunda yapılacak eylemleri tanımlayabilirler. Etki Alanına Özgü Dil Etkinlik İşleme Dili (EPL) olarak adlandırılır. Çekirdek Apama motoru şu şekilde yazılmıştır: C ++; işlem ayrıca isteğe bağlı olarak oluşturulan kullanıcıyla etkileşim için bir JVM içerebilir Java kodu. Apama, yüksek verim, düşük gecikme süresi ve bellek verimli performansa odaklanır; ikisinde de kullanıldı Intel kıyaslamalar[2] ve gibi daha küçük makineler Ahududu Pi,[3] yönlendiriciler ve diğerleri Kenar / IoT[4] cihazlar. YSÖP alanında özellikle dikkat çekicidir. en eski projelerden biri uzun vadeli pazar lideri,[5][6][7][8] ve birçok patentin öncüsü.[9][10][11][12][13][14][15][16]

Tarih

Apama Ltd., 1999 yılında, Dr John Bates, Dr Giles Nelson ve Dr Mohamad Afshar, burada araştırma yaparken bir araya geldi. Cambridge Üniversitesi Bilgisayar Bilimi ve Teknolojisi Bölümü.

2005 yılında Apama Limited, İlerleme Yazılımı 25 milyon dolara.[17]

2013 yılında Apama, Software AG tarafından Progress'ten açıklanmayan bir miktar karşılığında satın alındı.[18]

2016 yılında ücretsiz Apama Community Edition sürümü yayınlandı,[19] destekleyici forumların yanı sıra ve GitHub boşluklar.

Genel Bakış

Olay İşleme Dili

Apama başvuruları, Etkinlik İşleme Dili'nde (EPL) yazılmıştır. EPL, yalnızca aşağıdakiler için tasarlanmış dil özelliklerini içerir: Olay Odaklı Programlama,[20] dahil olmak üzere:

  • Olaylar - Alanları ve eylemleri içeren basit veri yapıları
  • Monitörler - Diğer dillerdeki sınıflara benzer şekilde, monitörler dinleyiciler ve eylemler içerir ve enjeksiyon sırasında yüklenir
  • Dinleyiciler - İlginç koşulları / olay kombinasyonlarını tanımlayan bildirici modeller. Toplama, zamansal ve filtreleme operatörleri desteklenir
  • Eylemler - Zorunlu işlevler, genellikle etkinleştirildiğinde dinleyiciler tarafından çalıştırılır veya yüklendikten sonra izlenir
  • Bağlamlar - Konulara benzer şekilde, monitörler bağlamların içinde bulunur
  • Kanallar - Bağlamlar ve dış sistemler arasında iletişim için mekanizma
  • Akışlar - Toplama desteği ile olayların sıralı bölümleri ve SQL benzeri sorgular

EPL C ++ / Java benzeri sözdizimi, aşağıda bir örneği bulunan yukarıdaki özelliklerle bağlantılı olarak CEP uygulamaları oluşturmak için tasarlanmıştır:

Etkinlik MyEvent {    tamsayı myInt;    sıra<dizi> myListOfStrings;    Boole myBool;} monitör MyMonitor {    aksiyon yükleme() {        yumurtlamak çalışan() -e bağlam("mySideThread");    }     aksiyon çalışan() {        açık herşey MyEvent(myInt>10) gibi myCoassignedEvent -> MyEvent(myInt>20) veya MyEvent(myBool=doğru) içinde 30.0 {            Eğer(işi yapmak(myCoassignedEvent.myListOfStrings) != doğru) {                günlük "Sorun!";            }        }    }     aksiyon işi yapmak(sıra<dizi>) İadeler Boole {        // listede çalışın        dönüş doğru;    }}

Apama Sorguları

Apama Sorguları, makineler arasında ölçeklenen otomatik olarak çok iş parçacıklı bir ortamda alınan verilerin son beş dakikası veya alınan son yirmi olay gibi tanımlanmış veri kümeleri üzerinde kurallar oluşturmak için alternatif bir dildir. Apama Sorguları, banka işlemleri gibi çok büyük kümeleri izlemek için daha uygundur. Tipik olarak, her varlık (yani hesap sahibi) bölümlenir ve setin geri kalanından bağımsız olarak işlenir. Sorgular ve Monitörler kanallar aracılığıyla iletişim kurabilir. Önceki senaryonun bir örneği aşağıda bulunabilir:

sorgu Şüpheli Bul {    parametreleri {        yüzer SÜRE;        yüzer EŞİK;    }     girişler {        Para çekme() anahtar kart numarası içinde SÜRE;    }     bulmak her Para çekme gibi w        nerede w.Miktar > 100        seç son(w.İşlem Kimliği) gibi haber        seç son(w.kart numarası) gibi cid        sahip olmak son(w.Miktar) > EŞİK * ort.(w.Miktar) {            göndermek Şüpheli İşlem(haber, cid) -e SuspiciousTransactionManager;        }}

Tasarımcı

Software AG Designer, bir Tutulma dayalı IDE standart bir kuruluma dahil olan Apama uygulamalarının geliştirilmesi ve dağıtılması için özel destek ile. Özellikler arasında kod yardımı, paket yönetimi, profil oluşturma, GUI geliştirme ve dağıtım yönetimi bulunur.

Eklentiler

Apama, kullanıcıların yeteneklerini genişletmek için eklentiler oluşturma yeteneğini destekler. Bu eklentiler iki biçimde gelir: EPL eklentileri (EPL'ye özellik eklemek için ) ve Bağlantı eklentileri (dış dünya ile iletişim kurmak için). C ++ ve Java API'leri her iki eklenti türü için de mevcuttur. Bağlantı eklentileri iki biçimde gelir: codec'ler (verileri bir biçimden diğerine çevirir, örneğin dahili Apama gösterimi JSON ) ve taşımalar (harici sistemlere / sistemlerden göndermeyi / almayı gerçekleştirir, örneğin JMS ). Harici sistemlere bağlantılar, istenen topolojiyi elde etmek için kodek zincirleri ve bir aktarım oluşturarak yapılır; bu bağlantılar bir ile tanımlanır YAML başlangıçta veya sağlanan araçlarla dinamik yönetim yoluyla yapılandırma dosyası. Popüler teknolojiler için önceden oluşturulmuş birkaç eklenti (ör. R, MQTT, Kafka, HTTP, MatLab ) yanı sıra diğer Software AG ürünlerine (örn.Evrensel Mesajlaşma, Pişmiş toprak, Cumulocity) Apama kurulumlarıyla birlikte gönderilir.

Kalıcılık

Apama süreci tamamen hafızadadır ve isteğe bağlı SQLite yerleşik yerleşik kalıcılık sistemi. Ek olarak, bağlantı API'si, JMS gibi onu destekleyen sistemlere güvenilir mesajlaşmayı destekler. Son olarak, önceden oluşturulmuş dağıtılmış bir bellek deposu eklentisi, uygun arka uçlarla kullanılmak üzere standart kurulumlarla birlikte sağlanır.

Görselleştirme

Apama yerleşik bir gösterge tablosu Software AG Designer içinden geliştirilen teknolojinin yanı sıra Software AG'nin MashZone NextGen'ine yerel bağlantılar.

Ayrıca bakınız

Referanslar

  1. ^ "Apama Akış Analizi ve Etkinlik İşleme Platformu". Alındı 2018-01-16.
  2. ^ "Intel® Xeon® İşlemci E7 v3 ile Apama Akış Analizi *". Intel. Alındı 2018-01-16.
  3. ^ "Apama Community Edition Apama 9.12 Community Edition sürüm duyurusu". www.apamacommunity.com. Alındı 2018-01-16.
  4. ^ "Software AG, güncellenmiş, yapay zeka destekli bir piyasa gözetim çözümü için Apama EagleEye'ı sunuyor - Şimdi IoT - IoT özellikli bir işletme nasıl çalıştırılır". Şimdi IoT - IoT özellikli bir işletme nasıl çalıştırılır. 2017-11-23. Alındı 2018-01-16.
  5. ^ "Satış Tarafı Teknoloji Ödülleri 2013: En İyi Satış Tarafı Karmaşık Etkinlik İşleme (CEP) Teknolojisi ─ Progress Apama - WatersTechnology.com". WatersTechnology.com. 2013-06-03. Alındı 2018-02-08.
  6. ^ "Akıllı İş Süreçleri Yönetim Paketleri için Magic Quadrant". www.gartner.com. Alındı 2018-01-19.
  7. ^ "The Forrester Wave ™: Streaming Analytics, Q3 2017". www.forrester.com. Alındı 2018-01-19.
  8. ^ "Akış analizi platformları - Bloor Research". www.bloorresearch.com. Alındı 2018-01-19.
  9. ^ [1], Nelson, Giles & John Bates, "Alınan olay bilgilerine göre sorguları değerlendirmek için yöntem ve aygıt" 
  10. ^ [2] Mitchell, Robert Scott; Mark K. Horsburgh & Richard M. Bentley, "Birden çok yedekli olay işleme motoruna sahip karmaşık olay işleme sistemi" 
  11. ^ [3], Bates, John; Gareth Smith & Richard M. Bentley, "Olay tabanlı süreç yapılandırması" 
  12. ^ [4], Bates, John; Gareth Smith & Richard M. Bentley, "Karmaşık olay işleme uygulamalarının ve iş etkinliği izleme gösterge panolarının otomatik olarak oluşturulması ve devreye alınması" 
  13. ^ [5], Reed, Christopher & Mark Horsburgh, "Çok iş parçacıklı bir sistemde nesnelerin tahsisi ve serbest bırakılmasını yönetmek için sistem ve yöntem" 
  14. ^ [6], Smith, Gareth, "Ticaret gözetim ve izleme sistemleri ve / veya yöntemleri" 
  15. ^ [7], Smith, Gareth, "Dinamik olarak uyarlanabilir gerçek zamanlı müşteri deneyimi yöneticisi ve / veya ilişkili yöntem" 
  16. ^ [8], SMITH, Leighton & Gareth Smith, "Dinamik olarak analiz edilmiş duygusal girdi kullanan geniş mekan gözetimi ve reaksiyon sistemleri ve yöntemleri" 
  17. ^ "Progress Software Apama'nın Satın Alındığını Duyurdu". Alındı 2018-01-16.
  18. ^ "İlerleme Yazılımı, Apama Çözümünü Software AG'ye Satma Anlaşmasını Duyurdu (NASDAQ: PRGS)". yatirimci.progress.com. Arşivlenen orijinal 2018-02-09 tarihinde. Alındı 2018-01-16.
  19. ^ "Apama Community Edition, Apama Community Edition'a Giriş". www.apamacommunity.com. Alındı 2018-01-16.
  20. ^ http://www.apamacommunity.com/wp-content/uploads/2016/06/SAG_The_Apama_Platform_20PG_WP_Jun16-Web.pdf

Dış bağlantılar