PLATFORMA ATOM

W oparciu o nasze obserwacje zebrane w trakcie wielu wdrożeń systemów masowej przepustowości, skonstruowaliśmy własny model budowy takich rozwiązań. U jego podstaw stoi – stworzona przez nas – platforma programistyczna, umożliwiająca tworzenie niezwykle wydajnych i skalowalnych systemów dla szczególnie wymagających klientów. Platforma ta jest fundamentem wielu naszych wdrożeń.

Podstawę naszych rozwiązań stanowi zunifikowana platforma programistyczna (a więc taka sama w wielu instalacjach), na której uruchamiane są mikrousługi (nazywane przez nas kiedyś, zanim powstało pojęcie mikrousługi,  modułami lub konwerterami) dostosowane do potrzeb naszego klienta (a więc różne w zależności od instalacji). Z jednej więc strony oznacza to, że nie budujemy systemów od zera, bo korzystamy ze stabilnej, przetestowanej i funkcjonującej w wielu wdrożeniach platformy. Z drugiej strony, taka metoda działania pozwala nam na maksymalne dostosowanie się do potrzeb klienta i tworzenie rozwiązań precyzyjnie zoptymalizowanych pod kątem jego oczekiwań.

Stworzona przez nas platforma Atom jest naszą dumą. Powstała z myślą o wydajności i skalowalności tak, by można było na jej podstawie budować wyrafinowane systemy, w tym w szczególności systemy masowej przepustowości.

Wystarczy powiedzieć, że platforma Atom w typowych przypadkach pozwoli na przetwarzanie w gridzie dziesiątek tysięcy transakcji na sekundę, przy zastosowaniu zupełnie zwyczajnego sprzętu komputerowego. Przy odpowiednim zaprojektowaniu struktur danych i zapewnieniu sprzętu komputerowego do pracy w gridzie, Atom może procesować nawet setki tysięcy i miliony transakcji w ciągu sekundy.

Dowiedz się więcej o platformie Atom:

Idea platformy Atom Rozwiń

Platforma Atom (nazywana też ze względu na częsty obszar wdrożeń platformą transakcyjno-rozliczeniową lub PTR) jest naszym autorskim rozwiązaniem, stworzonym przez zespół analityków, inżynierów i programistów – absolwentów wydziałów technicznych najlepszych uczelni.

Atom jest efektem kilkunastu lat badań i prac nad zagadnieniem systemów masowej przepustowości. Pierwsza wersja powstała już w latach 90. Od tamtego czasu przez kilkanaście lat system był wielokrotnie wdrażany w wielu przedsiębiorstwach – poczynając od instytucji finansowych (banki) poprzez instytucje rynku kapitałowego (giełda, domy maklerskie), firmy usługowe, handlowe – po przedsiębiorstwa produkcyjne.

Platforma Atom jako system masowej przepustowości jest gotowym i stabilnym systemem komputerowym, umożliwiającym uruchamianie pod swoją kontrolą setek, a nawet tysięcy mikrousług oraz łączenie ich w bardziej skomplikowane zadania i grupy zadań.

Atom jest klasycznym systemem masowej przepustowości. Został więc zaprojektowany w celu błyskawicznego przetwarzania bardzo dużych zbiorów informacji. Cała konstrukcja systemu, użyte techniki programistyczne, zastosowane algorytmy i rozwiązania operacyjnie – wszystko zostało podporządkowane wydajności.

Platforma Atom przejmuje kontrolę nad powierzonymi jej serwerami i tworzy coś na kształt chmury lub gridu serwerów, pozwalając na konfigurację i uruchamianie procesów na wszystkich maszynach tak, jak gdyby był to jeden wirtualny serwer. Istnieje więc centralny punkt, z którego można konfigurować cały system, zarządzać jego funkcjonowaniem oraz kontrolować jego pracę.

Oczywiście Atom może działać też w pełni zwirtualizowanym lub skonteneryzowanym środowisku – zgodnie z oczekiwaniami klienta.

Platforma Atom nie wymaga drogiego sprzętu. Może ona bez problemu działać na zwykłych, tanich i powszechnie dostępnych serwerach – tworząc z nich wydajne chmury (computing clouds).

Na platformie Atom można tworzyć niemal dowolne systemy – korzystając z jej wydajności, skalowalności oraz wbudowanych mechanizmów zarządzania.

GENEZA PLATFORMY ATOM Rozwiń

Przy wdrożeniach systemów informatycznych stosować można wiele konkurencyjnych metodologii. Niestety zdecydowana większość tych metodologii jest zupełnie bezużyteczna w systemach masowych przepustowości, którymi się zajmujemy. Ich wady w niektórych wdrożeniach ujawnić się mogą w szczególnie dotkliwy sposób. Zasada jest prosta – tam gdzie potrzeba maksymalnej wydajności i skalowalności, stosowanie zwykłych rozwiązań nie ma sensu.

W trakcie wielu lat rozwoju naszej spółki rozważaliśmy też różne modele tworzenia systemów masowej przepustowości:

Testowany model tworzenia Nasze obserwacje
Stworzenie jednej gotowej aplikacji “z półki” – dobrej dla wszystkich klientów i bez ograniczeń funkcjonalności Okazało się jednak, że niemożliwe jest przygotowanie gotowej aplikacji tego typu. Byłaby ona zbyt złożona dla części naszych klientów – a dla części zbyt trywialna. Odmienność wymagań i oczekiwań powodowała całkowitą niemożność znalezienia wspólnego mianownika dla wszystkich klientów. Co więcej, aplikacja taka na pewno nie byłaby systemem masowej przepustowości – nie byłaby w stanie procesować dowolnych danych w zoptymalizowany sposób.Również konfiguracja takiej aplikacji mogła być zadaniem bardzo czasochłonnym. A chcieliśmy uniknąć dość powszechnego zjawiska kiedy konfiguracja niektórych gotowych systemów zajmuje tyle, ile wytworzenie takiego systemu “od zera”.
Stworzenie gotowej aplikacji “z półki” – ale z ograniczoną funkcjonalnością, tak aby realizowała podstawowe oczekiwania klientów To rozwiązanie również ma niewielki sens. Optymalizacja systemów masowej przepustowości oznacza bowiem konieczność konstrukcji struktur danych. Za każdym razem mogą być one inne. Jak więc wybudować nawet trywialny system „pudełkowy” bez struktur danych? To niemożliwe.
Tworzenie systemów na zamówienie To podejście jest nam najbliższe, gdyż od 1995 roku wdrażaliśmy systemy w taki właśnie sposób. Metoda ta umożliwia tworzenie bardzo wydajnych rozwiązań dostosowanych do konkretnych potrzeb. Spełnia więc założenia jakie stawiamy przed systemami masowej przepustowości. Co więcej, klient płaci wyłącznie za to z czego realnie korzysta.Niestety każde takie wdrożenie jest unikalne. Błędy znalezione w jednym systemie są zupełnie inne niż błędy znalezione w systemie drugim. Oznacza to, że wszelkie poprawki (również upgrade’y) trzeba przygotowywać osobno. To powoduje zwiększenie kosztów serwisu i szeroko rozumianego utrzymania aplikacji.

 

Porównanie metod tworzenia systemów

Poniżej przedstawiamy porównanie metod tworzenia aplikacji

Aplikacja z półki o podstawowej funkcjonalności Rozbudowana aplikacja z półki o pełnej funkcjonalności Aplikacja tworzona i wdrażana na specjalne zamówienie Aplikacja na zamówienie z użyciem platformy programistycznej
Wydajność  “-“ “-“obszerne konfigurowalne środowiska mają spory narzut na ową konfigurowalność – kosztem wydajności “+”doskonała – system jest projektowany z uwzględnieniem wszystkich oczekiwań wydajnościowych klienta “+”platforma programistyczna zapewnia maksymalną skalowalność i wydajność (grid/chmura). Zarówno struktury danych, jak i same moduły mogą być dowolnie optymalizowane
Funkcjonalność “+/-“do podstawowych zadań bardzo dobra, ale do bardziej skomplikowanych wdrożeń –niewystarczająca “+”czasem nawet za dużo “+”idealnie dopasowana do potrzeb klienta “+”idealnie dopasowana do potrzeb klienta
Łatwość wdrażania  “+” “+”w rozbudowanych konfigurowalnych systemach, konfiguracja jest osobną dziedziną wiedzy i może (choć nie musi) być równie trudna, jak napisanie systemu od zera; bywa też, że klient musi dostosować się w pewnych rozwiązaniach do systemu “-“całą aplikację trzeba niestety zaimplementować – łącznie ze wszystkimi nawet standardowymi mechanizmami, z drugiej strony aplikacja dostosowana jest do firmy w której ma działać – lepiej do niej pasuje i łatwiej się ją wdraża (np. szkolenia nie dotyczą nowej metodologii podejścia do systemu, a dotyczą wyłącznie zasad obsługi systemu) “+”platformy używane przez nas są gotowe. Łącznie ze standardowym interfejsem użytkownika. Trzeba stworzyć nadbudowę
Czas wdrażania “+”bezkonkurencyjny “-“zdarzają się przypadki, że skonfigurowanie rozbudowanej, konfigurowalnej aplikacji ze względu na poziom komplikacji, zajmuje tyle czasu co napisanie odpowiedniego systemu “od zera”  “-“ “+”znacznie krótszy niż w przypadku tworzenia systemu od zera, platformy dostępne są od razu. Można się też łatwo oprzeć o już istniejące konfiguracje
Klient płaci za to, z czego rzeczywiście korzysta  “-“ “-“klient i tak płaci za aplikację, w efekcie, jeśli nie życzy sobie pewnej opcji, płaci za nią w standardzie i płaci za jej usunięcie w trakcie konfiguracji… “+”to jedna z podstawowych zalet “+”klient kupuje co prawda zawsze całą platformę, ale też praktycznie zawsze całą platformę wykorzystuje
Dostęp do uaktualnień / współdzielenie kodu z innymi użytkownikami  “+” “-/+”(częściowe – zależy od tego jak bardzo konfiguracja zmieniła fundamenty systemu)  “-“ “+”w zakresie platformy –pełny dostęp, w zakresie nadbudowy – tak, jeśli daną nadbudowę zainstalowano u wielu klientów

Konstrukcja platformy Atom Rozwiń

Konstrukcja platformy Atom

Atom jest zunifikowaną platformą programistyczną (a więc taka sama w wielu instalacjach), na której powstają mikrousługi dostosowane do potrzeb naszego klienta (a więc różne w zależności od instalacji). Z jednej więc strony oznacza to, że nie budujemy systemów od zera, bo korzystamy ze stabilnych, przetestowanych i funkcjonujących w wielu wdrożeniach platform. Z drugiej strony, taka metoda działania pozwala nam na maksymalne dostosowanie się do potrzeb klienta i tworzenie rozwiązań precyzyjnie zoptymalizowanych pod kątem jego oczekiwań.

Wspierane systemy operacyjne i bazodanowe

Wspierane systemy operacyjnie i bazodanowe.

Cały system został napisany w języku C++ i został osobno zopotymalizowany do pracy w środowisku Windows i osobno do pracy w środowisku Linux.

Co więcej, system został tak zaprojektowany, iż możliwy jest jednoczesny serwis kodu źródłowego dla obu środowisk. Zdecydowana większość kodu źródłowego jest bowiem przenaszalna, co ułatwia wspieranie obu tych kluczowych systemów operacyjnych.

Możliwa jest także praca w heterogenicznych środowiskach – jednocześnie pod kontrolą obu tych systemów operacyjnych. W takim przypadku jednak moduły uruchamiane na platformie Atom powinny być tworzone w osobnej wersji na oba systemy operacyjne, co gwarantuje osiągnięcie maksymalnej wydajności.

System używa dwóch kategorii serwerów bazodanowych. Jeden typ serwera używany jest do wewnętrznej konfiguracji samej platformy, a drugi do fizycznego procesowania danych. Serwerami tymi mogą być w praktyce wszystkie liczące się obecnie na rynku marki – od MS SQL Servera, po rozwiązania typu mySQL i PostgreSQL. W celu uzyskania maksymalnej wydajności doradzamy używanie specjalizowanego serwera bazodanowego VoltDB, choć ostateczna decyzja należy oczywiście do naszego klienta.

Dzięki kooperacji VoltDB z platformą Atom, osiągamy skalowalność zupełnie nierealizowalną za pomocą innych metod. Jesteśmy w stanie zaprezentować takie rozwiązania, w których możliwe jest osiągnięcie wydajności rzędu milionów rekordów lub wręcz całych transakcji na sekundę. Co więcej, mogą być to również operacje o znacznym stopniu komplikacji.

VoltDB wraz z platformą Atom umożliwia też niezrównaną skalowalność. Jeśli jest problem z wydajnością – systemy masowej przepustowości wykorzystujące Atom i VoltDB mogą skalować się znacząco w górę.

Moduły na platformę atom

Kluczowym pojęciem w platformie Atom są moduły (realizowane w formie mikrousług). Są to relatywnie małe i proste skompilowane bloki programów tworzone w naszej firmie najczęściej bezpośrednio przy użyciu języka C++, po to by zapewnić maksymalną wydajność. W praktyce moduły tworzone mogą być w dowolnym języku programowania.

Na platformie Atom uruchamiać można dwa typu modułów:

  • moduły on-line, które działając przez cały czas na bieżąco procesują dane bez zwłoki,
  • moduły off-line, które działają tylko co pewien czas i procesują dane, dla których nie jest potrzebne natychmiastowe przeprocesowanie (czyli np. akceptowalne jest minutowe opóźnienie).

Moduły realizują proste, niemal atomowe operacje. W efekcie są stosunkowo proste do programowania oraz, co ważniejsze – prostsze w testowaniu.

Załóżmy, że konieczne jest skonstruowanie systemu, który odbierać będzie dane ze wskazanego konta pocztowego IMAP. Następnie należy zdeszyfrować załącznik do maila za pomocą algorytmu AES, zdekompresować oraz wczytać do bazy danych tak otrzymany plik CSV. Następnie po wyliczeniu agregacji należy stworzyć plik XML, skompresować go, zaszyfrować algorytmem 3DES i przesłać pod wskazany adres na serwer FTP. W takim przypadku konieczne jest zbudowanie następujących modułów:

  1. Moduł odbioru danych ze wskazanego serwera IMAP
  2. Moduł deszyfracji (AES)
  3. Moduł dekompresji (zip)
  4. Moduł importu do bazy danych
  5. Moduł obliczenia agregacji
  6. Moduł eksportu do pliku .xml
  7. Moduł kompresji
  8. Moduł szyfrowania (AES)
  9. Moduł transmisji danych (FTP)

Jak widać moduły 1,2,3,7,8,9 zupełnie nie muszą wnikać w logikę danych jakie przekazują. W efekcie moduły takie mogą być uruchamiane wielokrotnie w różnych kontekstach dla zupełnie różnych danych.

Ewentualna zmiana sposobu agregacji danych wymaga zmiany wyłącznie modułu 5. Wszystkie pozostałe moduły mogą pozostać bez zmian.

Jeśli w podanym wyżej zadaniu konieczna będzie zmiana sposobu komunikacji z docelowym systemem – np. poprzez transmisje danych za pomocą specjalizowanego protokołu, to wtedy trzeba będzie po prostu zastąpić nowym modułem moduły 6-9. Wszystkie inne elementy pozostaną bez zmian.

Moduły można rozumieć jak plug-in. W taki też sposób są one instalowane na platformie Atom, która sama dystrybuuje kod wykonywalny plugin-ów na wszystkie komputery, nad którymi sprawuje kontrolę.

Procesy

Moduł uruchomiony na platformie Atom otrzymuje konkretną konfigurację. Taki moduł wraz z konfiguracją nazywamy procesem. Tak więc np. moduł deszyfracji danych może tworzyć różne procesy – za każdym razem uruchomiony może być w zupełnie innej konfiguracji (inne hasła, inne lokalizacje plików itd.). W efekcie moduł raz stworzony można wykorzystywać jako składnik niezliczonej ilości procesów.

W oczywisty sposób ułatwia to testowanie systemu stworzonego przy użyciu platformy Atom oraz zapewnia możliwośc realnego wykorzystania tego samego kodu źródłowego w różnych biznesowych zastosowaniach.

Zadania

Z założenia procesy są zbyt proste by bezpośrednio za ich pomocą realizować prawdziwe wymagania dzisiejszego biznesu. Platforma Atom pozwala natomiast na tworzenie powiązań pomiędzy procesami. W ten sposób powstają całe grafy powiązań.

W przykładzie podanym w sekcji „Moduły na platformie Atom” graf jest dość prosty – jest to po prostu zwyczajna sekwencja procesów od 1 do 9. Ale można sobie wyobrazić np. specjalny proces uruchamiany wtedy, jeśli deszyfracja pliku się nie powiedzie, albo proces w inny sposób transmitujący dane, kiedy serwer FTP nie jest dostępny.

Graf powiązań pomiędzy konkretnymi procesami nazywamy zadaniem. Zadanie może być właściwie dowolnie skomplikowane i zawierać dowolnie wiele procesów. Procesy mogą być praktycznie dowolnie powiązane (np. mogą być uruchamiane kaskadowo, cykliczne itd. itp.). W każdym zadaniu trzeba wyznaczyć jedynie pierwszy proces, który ma być uruchamiany. Platforma Atom sama zadba, by procesy były uruchamiane w odpowiedniej kolejności, oczywiście w pełni kontrolując wyniki ich działania, ewentualne awarie itd.

Co więcej, mechanizm taki działa zarówno w odniesieniu do zadań off-line (wtedy otrzymujemy klasyczny, lecz niezwykle wydajny mechanizm zadań wsadowych – batch jobs), jak i w odniesieniu do zadań on-line. Ten drugi przypadek jest niezwykle ciekawy. Oznacza to bowiem, że w platformie Atom można zdefiniować sekwencje on-linowych połączeń pomiędzy jednocześnie uruchomionymi procesami. W takim przypadku graf połączeń nie jest prostym grafem informującym o kolejności powiązań, ale grafem wskazującym na to, jakie procesy kierują zapytania do jakich procesów. Platforma Atom może dzięki temu kontrolować obciążenie tych procesów, odpowiednio je uruchamiając na nowych maszynach (lub zamykając bezużyteczne procesy).

Grupy zadań

Skonfigurowane zadania łączone są w platformie Atom w większe struktury nazywane Grupami zadań. Ogromnie ułatwia to administrację systemem. Dla każdej grupy zadań możliwe jest też zdefiniowanie osobnych zadań klasy Beginning-of-Day (BOD) i End-of-Day (EOD).

Strefy czasowe

System obsługuje oczywiście różne strefy czasowe i to jednocześnie. Dane grupy zadań można więc przypisać do strefy czasowej i zdefiniować czas i sposób procesowania w zależności od lokalnych uwarunkowań. W efekcie platforma Atom idealnie sprawdzi się też we wszystkich przedsiębiorstwach globalnych, działających w wielu strefach czasowych, a potrzebujących centralnego przetwarzania pewnych danych.

Grid kontrolowany przez platformę Atom

Platforma Atom jest kompletnym rozwiązaniem, pozwalającym na stworzenie czegoś na kształt chmury lub gridu umieszczonego na farmie serwerów. Platforma Atom przejmuje kontrolę nad tymi maszynami (fizycznymi lub wirtualnymi) i samodzielnie pozwala panować nad strukturą w taki sposób, jak gdyby był to jeden system.

Dzięki platformie Atom możliwe jest w pełni centralne zarządzanie systemem, przez co rozumiemy nie tylko jego konfigurację (a nawet centralne instalowanie modułów), ale również kontrolę jego pracy.

Atom jako kompletne narzędzie dedykowane przetwarzaniu danych jest wyposażona w:

  • system konfiguracyjny (Atom Config) – pozwalający centralnie skonstruować dowolny proces biznesowy w oparciu o grupy zadań, zadania i procesy budowane w oparciu o specjalistyczne moduły,
  • system monitorowania pracy (Atom Console). Praca platformy monitorowana jest we wszystkich kluczowych aspektach tj. system raportuje zarówno parametry maszyn fizycznych, jak i podstawowe aspekty procesowania danych. Dane są dostępne poprzez specjalnie do tego skonstruowany panel administracyjny,
  • system zarządzania obciążeniem (Atom Load Balancing). Jest to jeden z kluczowych elementów platformy. System ten aktywnie zarządza zajętością procesorów i optymalizuje pracę całej platformy, dzięki czemu możliwe jest wykorzystanie maksimum możliwości sprzętowych, jak również priorytetyzowanie poszczególnych procesów poprzez dostarczenie im większej ilości zasobów.

Zalety platformy Atom Rozwiń

Zalety platformy Atom

  • Nasz system powstawał w ścisłej współpracy z praktykami bankowości i masowego przetwarzania danych na rynkach kapitałowych, dlatego też, projektując go, uwzględniliśmy co najmniej trzy znaczenia rozwoju systemu:
    – wzrost „normalny” związany z organicznym zwiększaniem się obciążenia odzwierciedlający normalny rozwój gospodarki,
    – wzrost skokowy związany z obsługą przez klienta zupełnie nowego procesu (np. włączenie do przetwarzania dużej grupy rachunków dotychczas nieobsługiwanych) lub też np. przejęcie dużej grupy klientów w wyniku fuzji i włączenie ich do usługi,
    – trzeci rodzaj wzrostu wywołany może zostać przez zwiększenie się poziomu komplikacji algorytmów, co jednak nie może skutkować wydłużeniem czasu ich przetwarzania.

  • Atom jest systemem, który nieustannie się rozwija. Obecnie proponujemy naszym klientom wdrożenie wersji 4.0 naszego systemu, wkrótce wersję kolejną 5.0. Co ważne, wszelkie upgrade’y oferujemy zupełnie bezpłatnie. Oferujemy też pełny cykl szkoleń obejmujących zarządzanie systemem, konfigurację zadań, procesów, grup zadań, szkolenia dotyczące monitoringu systemu itd. Dzięki temu nasz klient lub lokalny partner mogą samodzielnie – bez naszej pomocy – wiarygodnie zarządzać systemem zbudowanym na platformie Atom.

    Cena – zarówno oprogramowania, jak i sprzętu
    System został zaprojektowany tak, aby mógł działać na powszechnie dostępnym sprzęcie. Zamiast jednego drogiego serwera proponujemy używanie wielu serwerów, nawet sumarycznie, znacznie tańszych. Takie założenie pozwala na:

    • obniżenie całościowych kosztów pracy systemu i jego utrzymania (total cost of ownership),
    • zminimalizowanie wielu ryzyk, w tym praktyczne wyeliminowanie jednego z głównych tj. „single point of failure”.

    Platforma Atom jest specjalistycznym rozwiązaniem. Jej zastosowanie nie jest więc doganianiem konkurencji przez naszych klientów, ale środkiem do osiągnięcia realnej przewagi konkurencyjnej.

  • Platforma Atom jest tak zaprojektowana, aby mogła być użyta wszędzie tam, gdzie zachodzi potrzeba przetwarzania dużych ilości danych. Oznacza to, że jest ona uniwersalną platformą wymiany danych między heterogenicznymi systemami, którą można wykorzystywać zarówno:

    • w bankowości (bankowość transakcyjna, bankowość wsparcia handlu, transakcje kartowe),
    • na rynkach kapitałowych (jako warstwa integracyjna dla giełdowych systemów transakcyjnych),
    • jako wsparcie usług IT, jak np. wsparcie integracji elektronicznych kanałów kontaktu z klientami,
    • jako element systemów near-real-time.
  • Atom został tak zaprojektowany, aby:

    • obsługiwać dane w postaci strumienia (rynki kapitałowe, IT),
    • obsługiwać dane w formie statycznej np. pliki, procedury składowe itp. (bankowość, IT),
    • obsługiwać wszystkie znane protokoły komunikacyjne,
    • obsługiwać wszystkie znane protokoły szyfrowania i zabezpieczania danych,
    • obsługiwać wszystkie znane mechanizmy kompresji danych,
    • obsługiwać dowolny rodzaj danych w dowolnych formatach.
  • Atom to system masowej przepustowości, dlatego szybkość jest jego absolutnym priorytetem. Uzyskujemy ją optymalizując działanie platformy na 4 podstawowych poziomach:

    • optymalizacja kodu – moduły przetwarzające są od wielu lat nieustannie optymalizowane w celu uzyskania jak najwyższej prędkości przetwarzania,
    • optymalizacja protokołów komunikacyjnych – dzięki wieloletnim studiom nad przesyłem danych wykorzystujemy najbardziej wydajne i szybkie mechanizmy przesyłu danych,- optymalizacja przetwarzania – oznaczająca wykorzystanie 100% możliwości fizycznej maszyny,
    • stosowanie rozwiązań bazodanowych Atom – ze szczególnym uwzględnieniem partycjonowania całej bazy danych (a nie pojedynczych tabel).
  • Atom jest kompletnym rozwiązaniem dedykowanym przetwarzaniu danych. Jest wyposażony w komplet narzędzi służących do konfiguracji systemu, instalacji bieżącego monitoringu jego działania, wykrywania problemów (rozbudowany system logów).

  • W dotychczasowej praktyce wykorzystywaliśmy rozwiązania bazodanowe wszystkich liczących się dostawców tj. Oracle/Microsoft/PostgreSQL. Na życzenie klienta możemy również zoptymalizować system do innych baz danych np. do baz pamięciowych (Oracle TimesTen, MonetDB).
    Ze względu jednak na wydajność i skalowalność – dla poważnych wdrożeń zdecydowanie rekomendujemy stosowanie wraz z platformą Atombazy danych VoltDB.

    Atompozwala się również bez trudu implementować na różnych systemach operacyjnych, zarówno z rodziny produktów Microsoft, jak i Unix/Linux.

  • Metafora, której najczęściej używamy myśląc o platformie Atom, to Tablica Mendelejewa, a więc pewien fundamentalny zestaw pierwiastków (modułów wykonujących proste, podstawowe czynności, takie jak pakowanie, szyfrowanie, agregowanie itp.), z których klient sam buduje bardziej skomplikowane „związki chemiczne”.

  • Atomowe moduły prosto zaimplementować i przetestować, bo są w jasny sposób odseparowane od reszty. Atomowe moduły są łatwiejsze do projektowania i wdrażania. Oznacza to również, że we wszystkich etapach produkcji są po prostu bardziej efektywne kosztowo. Prostsze są również modyfikacje modułów. Programista rozwiązuje bowiem bardzo lokalny problem dotyczący małej ilości kodu źródłowego, co powoduje duże oszczędności czasu przeznaczanego zazwyczaj na analizę rozbudowanych procedur.

  • Atomowość pozwala również znacząco zwiększyć stabilność całego rozwiązania. Zadania są bowiem konstruowane na bazie skompilowanych i przetestowanych już atomów (modułów). Osoba dokonująca konfiguracji procesu czy zadania procesu, nie jest już w stanie ingerować w skompilowany kod.

  • Raz przetestowany kod jest wykorzystywany w wielu miejscach – w formie już skompilowanej. Postulat “Reusability of the code” nie jest więc realizowany na fundamencie klas czy bibliotek w danym języku programowania, ale na bazie skompilowanego kodu, który dzięki zdefiniowanym interfejsom, może współpracować z innymi takimi modułami. Reusability przekłada się więc na znaczące obniżenie kosztów wdrożenia kolejnych usług na danej instancji platformy Atom.

  • Atomowość wspiera się na fundamencie restrykcyjnej standaryzacji kodu, dzięki czemu mamy możliwość budowania dużych zespołów programistów, jak również prostej ich rozbudowy i prostszego i bardziej wydajnego przekazywania wiedzy wewnątrz zespołu.

    Praca „unattended”
    Praca unattended oznacza brak interakcji z użytkownikiem w czasie realizacji zadań. Jest to nic innego jak koncepcja: „ustawiam raz, wykonuję wiele razy”. Dzięki temu nie zachodzi konieczność ręcznego ingerowania w system podczas jego pracy. W razie wystapienia awarii system sam rozpocznie odpowiednie działania na podstawie zdefiniowanych wcześniej scenriuszy. W ten sposób minimalizuje się najczęstszą przyczynę poważnych awarii – wywołanych zwykle zbyt szybkim i nieprzemyślanym działaniem człowieka w reakcji na niekrytyczną awarię.

    Supportowanie przez dużą liczbę programistów w naszej firmie
    Koncepcja atomowości i ufundowany na niej imperatyw standaryzacji kodu powodują znaczące podniesienie bezpieczeństwa całego rozwiązania poprzez rozszerzenie grupy programistów, mogących dokonać modyfikacji atomowych prostych modułów. W większości interwencji nie jest bowiem wykorzystywana specjalistyczna wiedza na temat produktu i mechanizmów działania np. factoringu, a jedynie kompetencje potrzebne do dokonania prostych modyfikacji programistycznych. Oznacza to możliwość urównoleglenia dewelopmentu, a tym samym dzięki dużemu zespołowi programistów jakim dysponujemy – znaczące przyspieszenie czasu wdrażania systemu w stosunku do rozwiązań konkurencyjnych.

Rozwój Platformy Atom Rozwiń

Atom jest efektem kilkunastu lat naszych badań i prac nad zagadnieniem systemów masowej przepustowości. Pierwsza wersja powstała już w latach 90 z myślą o obsłużeniu konkretnych potrzeb naszych Klientów. Od tamtego czasu system został wdrożony w wielu przedsiębiorstwach – poczynając od instytucji finansowych (banki) poprzez instytucje  rynku kapitałowego (giełda, domy maklerskie), firmy usługowe, handlowe  – po przedsiębiorstwa produkcyjne.

Atom od wielu lat nieustannie sprawdza się znakomicie we wszystkich miejscach, gdzie wymagana jest obsługa skomplikowanych procesów i przetwarzanie gigantycznych ilości danych w maksymalnie krótkim czasie. Jest to możliwe dzięki sugestiom naszych klientów, jak i naszym ciągłym, wewnętrznym pracom rozwojowym.

Platforma Atom w wersji Enterprise Edition została stworzona dla najbardziej wymagających przedsiębiorstw, dla których wydajność systemów, ich stabilność oraz wysoka dostępność i zapewnienie ciągłości działania (High Aviability/Disaster Recovery) są niezbędne do realizowania swoich biznesowych celów.

Atom w wersji Enterprise Edition przeznaczona jest do obsługi procesów biznesowych i operacyjnych związanych zarówno z przetwarzaniem bardzo dużej ilości danych pochodzących z wielu rozproszonych źródeł (Big Data), jak i tych, dla których wynikiem przetwarzania danych są decyzje podejmowane w ułamkach sekundy, w trybie on-line (Fast Data). Architektura wersji Enterprise  Edition w całości podporządkowana jest osiąganiu ekstremalnie wysokiej wydajności i szybkości przetwarzania. Cele te realizowane są poprzez wbudowany silnik bazodanowy, który w razie potrzeby, działając na spartycjonowanych danych, jest w stanie przetwarzać dane z szybkością niemożliwą do osiągnięcia w standardowych systemach bazodanowych.

Ze względu na fakt, że wersja Enterprise Edition dedykowana jest najczęściej przetwarzaniu procesów krytycznych, została ona wzbogacona o dodatkowe mechanizmy zapewniające jej wysoką dostępność (High Availability) – osiągnięte jest to m.in. poprzez zapewnienie redundancji wszystkich jej komponentów. Ponadto wersja ta zapewnia niespotykany w standardowych rozwiązaniach rynkowych poziom niezawodności, zapewniający ciągłość działania i optymalizację Platformy pod kątem automatycznego restartu w przypadku poważnej awarii (Disaster Recovery) – mechanizmy te mają na celu zagwarantować stuprocentową transakcyjność, nawet w przypadku awarii.

Powyższe cechy pozwalają na osiągniecie niespotykanych do tej pory poziomów bezpieczeństwa i spójności danych, wymaganych przy przetwarzaniu danych wrażliwych, a w rezultacie przy podejmowaniu na ich podstawie decyzji w czasie rzeczywistym (generujących natychmiastowe pojawienie się realnych zobowiązań biznesowych).

Poniższa tebela przedstawia przyjętą mapę drogowę rozwoju Atom Enterprise Edition:

Parametry

Atom v.3.n (wersje bieżące)

Atom v.4 (bieżąca)

Atom v.5 (w przyszłości)

Log SQL database (up to 100/s) super fast queue (short term) SQL database (long term)(up to 30 000/s) super fast queue (short term) SQL database (long term) (up to 30 000/s)
BigData (Wolumen) + ++ ++
BigData (Prędkość) + +++ (on-line/real-time) ++++ (on-line/real-time) with transactions
BigData (Wartość) + +++ (on-line/real-time) ++++ (on-line/real-time) with transactions
BigData (Różnorodność) hard coded hard coded data independent – binary XML
Procesowanie On-line limited unlimited – massive parallelism unlimited – massive parallelism plus distributed transactions
Systemy adaptacyjne + ++ (speed)
Moduły raportujące ++ ++
AI + ++ (speed)
Konwertery On-line pull + ++ ++
Konwertery On-line push ++ +++ (with queues)
Konwertery kolejkowe + (even more: all others simulated by queue converters
Kolejki danych pomiędzy konwerterami + multiple in & out queues

Wiarygodność platformy Atom Rozwiń

Wiarygodność platformy Atom

Gwarancją najwyższej jakości platformy jest długoletnie doświadczenie naszej firmy w projektowaniu i implementacji rozwiązań wspierających systemy masowej przepustowości, a w szczególności systemów dla rynków finansowych oraz nagrody branżowe, takie jak Europrodukt 2012 oraz rekomendacja Gazety Bankowej w konkursie technologicznym Hit Roku 2011 i Hit Roku 2010 dla Instytucji Finansowych w kategorii Rozwiązanie.
europrodukt

1) Przykładowe obszary zastosowaniaRozwiń

Przykładowe obszary zastosowania

Integracja systemów

Platforma Atom często funkcjonuje w roli rozwiązania klasy EDB (Enterprise Data Bus), funkcjonującym jako uniwersalny translator międzysystemowy. Dlatego jedną z podstawowych miar sukcesu była dla nas możliwość łatwego interfejsowania się z dowolną ilością heterogenicznych źródeł danych, poprzez dowolne kanały komunikacji.

Atom został tak zaprojektowany, aby:

  • obsługiwać dane w postaci strumienia (rynki kapitałowe, IT),
  • obsługiwać dane w formie statycznej, np. pliki, procedury składowe itp. (bankowość, IT),
  • obsługiwać wszystkie znane protokoły komunikacyjne,
  • obsługiwać wszystkie znane protokoły szyfrowania i zabezpieczania danych,
  • obsługiwać wszystkie znane mechanizmy kompresji danych,
  • obsługiwać dowolny rodzaj danych w dowolnych formatach.

Atom od początku budowany był z myślą o jak najłatwiejszym i najprostszym interfejsowaniu się z wieloma systemami, z których pobiera i do których wysyła dane wszystkimi znanymi kanałami we wszystkich znanych formatach. Dane mogą być kompresowane, szyfrowane.

Źródłami danych mogą być dowolne systemy przechowujące dane (hurtownie), jak i systemy przetwarzające dane OLTP, tak więc Atom sprawdza się zarówno na rynkach finansowych i kapitałowych, jak i w sektorze sieci handlowych i międzynarodowych organizacji biznesowych, gdzie zarządzanie danymi (np. finansowymi) wymaga integracji zbiorów danych pochodzących z wielu krajów i generowanych w różnych strefach czasowych oraz w oparciu o różne kalendarze. To powoduje, że Atom jest narzędziem globalnej integracji danych, doskonale sprawdzającym się w heterogenicznych organizacjach biznesowych.

W przypadku danych pochodzących z wielu heterogenicznych źródeł, kluczowym aspektem jest wykluczenie szeregu ryzyk związanych z utratą i/lub błędną interpretacją danych. Dlatego też Atom można wyposażyć w szereg modułów do walidacji, clearingu, deduplikacji danych oraz narzędzi pozwalających na defragmentację i konsolidację, konwersję, rekoncyliację i matching oraz dowolne agregacje.

Masowe przetwarzanie transakcji on-line

Klasycznym zastosowaniem platformy Atom jest masowe przetwarzanie transakcji on-line, pojawiających się w dużych ilościach i wymagających przetwarzania w krótkim czasie. Przykładem są np. transakcje autoryzacji karty płatniczej – wymagające przeprowadzenia procesu potwierdzenia lub odmowy autoryzacji, transakcje sprzedaży rejestrowane bezpośrednio w POS (point-of-sale), czy też – w zupełnie innych zastosowaniach – informacje płynące w czasie rzeczywistym z różnorakich czujników – wymagające reakcji robotyki na linii produkcyjnej.

W tego typu transakcjach kluczowy jest czas realizacji. Nie chodzi tu oczywiście tylko o proste zarejestrowanie transakcji w bazie danych, ale nade wszystko o przeprowadzenie całego procesu – w tym przeprowadzenie odpowiednich wyliczeń, stworzenie agregacji, komunikację z innymi systemami itd. Oczywiste jest, że klient w POS powinien być obsłużony w minimalnym czasie, a robotyka na linii produkcyjnej nie może czekać na decyzję systemu komputerowego, co do dalszego działania.

Modelowanie procesow biznesowych

Platforma Atom jest wyposażona w wygodne narzędzia modelowania procesów biznesowych.

Każdy proces jest konstruowany z prostych, parametryzowalnych modułów odpowiedzialnych za przeprowadzenie atomowej czynności (rozpakowanie danych, walidacja danych, agregacja, zaszyfrowanie danych itp.).

Posługujemy się tu metaforą tablicy Mendelejewa mówiąc, że wraz z engine systemu dostarczamy  „tablicę Mendelejewa” tj. szereg modułów wykonujących proste biznesowe funkcje (atomy), z których klient może składać dowolnie skomplikowane „związki chemiczne”, odzwierciedlając procesy biznesowe. System wyposażony jest w modeler procesów biznesowych, a jednocześnie całe rozwiązanie jest szybsze i wydajniejsze niż znane systemy innych dostawców, ponieważ nie używamy języków skryptowych.

Czas ma w przetwarzaniu danych masowych rolę kluczową, dlatego też nasze rozwiązanie jest wyposażone w szereg narzędzi do czasowego modelowania procesów. Możemy określać zarówno moment rozpoczęcia, zakończenia jak i długość trwania poszczególnych procesów przetwarzania danych.

Raportowanie

System zbudowany na platformie Atom świetnie nadaje się jako procesor danych używanych w systemach raportowania. Nie ma oczywiście sensu, by Atom zajmował się samą wizualizacją danych (chociaż i to odpowiedni moduł może zrealizować). Atom może natomiast z powodzeniem przetwarzać zupełnie gigantyczne zbiory danych. Dzięki temu możliwe jest uzyskiwanie zestawień praktycznie natychmiast po wystąpieniu zdarzenia gospodarczego, a nie (jak w zwykłych hurtowniach danych) – dopiero po długotrwałym procesie zasilenia systemu danymi.

Uważamy, że w dzisiejszym świecie to czas jest kluczowym czynnikiem, a szybkość jest i będzie zasadniczym budulcem przewagi konkurencyjnej. Dlatego uważamy, że istotne jest nie tylko jakie dane otrzymujemy w wyniku analizy (bo i nasza konkurencja przecież wygeneruje te same dane), ale nade wszystko – jak szybko można je wygenerować.

Raportowanie na platformie Atom może być realizowane całkowicie w czasie on-line. Moduły uruchomione na platformie Atom mogą na bieżąco wykonywać skomplikowane wyliczenia i kierować działaniem innych systemów: mogą wyliczać wiarygodność kredytową klienta, oceniać sposób zachowania klienta podczas przeglądania strony WWW, czy też analizować zakupy, jakie właśnie w tym momencie przeprowadza.

2) Przykładowe wdrożeniaRozwiń

Przykładowe wdrożenia

Platforma Atom jest dedykowana przetwarzaniu danych, dlatego też sprawdza się we wszystkich obszarach, gdzie potrzeby biznesu dotyczą przetwarzania danych operacyjnych i analitycznych.

Wszędzie tam gdzie istnieje biznesowa potrzeba przetwarzania danych masowych, integracji wielu źródeł i formatów danych, dokonywania dowolnych agregacji, generowania zestawień, raportów jak również danych wsadowych do systemów zarządczych, MIS, ERP i wielu innych, Platforma Atom jest najbardziej optymalnym rozwiązaniem. W swojej dotychczasowej praktyce Platforma Atom obsługiwała następujące produkty i usługi dla sektora bankowego oraz rynków kapitałowych:

 

  • Usługa skierowana do klienta korporacyjnego, polegająca na automatycznym księgowaniu należności. Pozwala efektywnie zarządzać procesem odbioru i rejestracji należności. System generuje specyfikowane raporty w natywnych formatach systemów finansowo-księgowych klienta

  • System znajduje zastosowanie dla tych klientów banku, którzy szukają możliwości usprawnienia i automatyzacji bieżącego procesu uzgadniania swoich należności poprzez eliminację do minimum płatności wątpliwych tj. tych wpłat, które zawierają błędne, bądź też niekompletne dane i nie mogą być uzgodnione przez klienta banku w sposób automatyczny

  • System ten na podstawie uprzednio zarejestrowanych plików generuje elektroniczne „Zapytanie o zgodę”, które poprzez system trafia do banku płatnika. Na podstawie zarejestrowanej odpowiedzi generuje on informację zwrotną dla klienta banku w postaci elektronicznego raportu, który wierzyciel importuje do swojego systemu. Od tego momentu możliwa jest realizacja kolejnych faktur danego płatnika w drodze Polecenia Zapłaty.

  • System do obsługi Cash Poolingu umożliwia bankom świadczenie na rzecz swoich klientów usługi finansowej, polegającej na bilansowaniu sald rachunków spółek należących do tego samego holdingu. Usługa ta polega na koncentracji środków firm na wspólnym rachunku grupy i zarządzaniu tą kwotą. Chwilowe nadwyżki finansowe wybranych podmiotów rekompensują niedobory pozostałych. Z punktu widzenia holdingu oznacza to obniżenie kosztów odsetkowych ponoszonych przez uczestników posiadających na rachunku salda ujemne poprzez kredytowanie ze środków tych podmiotów grupy, którzy posiadają salda dodatnie. System obsługuje Cash Pooling rzeczywisty oraz Cash Pooling wirtualny.

  • System może pełnić dwie podstawowe funkcje, albowiem opiera się na szeregu wskaźników opisujących transakcyjność, produktowość oraz salda klienta. W roli monitora umowy może być rozumiany jako system „wczesnego ostrzegania” i dostarczać danych dla opiekuna w odniesieniu do wywiązywania się klienta z zapisów umownych.
    Ten sam zestaw wskaźników może jednak być bazą do stworzenia przejrzystej skali nagród i zachęt dla klienta w ramach systemu lojalnościowego.
    System może dokonywać ocen w oparciu o ustalony kalendarz i informować opiekunów klienta i management o rezultatach prowadzonych rankingów.

  • System pozwala na bardzo elastyczne kreowanie polityki opłat i prowizji i szybkie reagowanie na zmieniające się warunki rynkowe. Konfiguracja systemu umożliwia tworzenie tabel dla klientów, produktów, transakcji i operacji gotówkowych. System może raportować efektywność wprowadzanych polityk w odniesieniu do jednostek czasu i w podziale na poszczególne produkty.

  • System przygotowuje i udostępnia klientowi zestaw raportów w wybranym przez klienta formacie lub w formacie ustalonym jako standardowy. System może dostarczać raporty tresury (Daily Cash Reports), jak również zasilać system fk klienta danymi. Możliwe jest również przygotowanie szeregu innych raportów dla Działów Finansowych klienta, ponieważ możliwości kumulacji, agregacji i walidacji danych są nieograniczone.

  • Platforma Atom idealnie nadaje się do budowy systemów raportujących, ponieważ wyposażona jest w mechanizmy pozwalające na importowanie danych z praktycznie dowolnych źródeł, uruchomionych w różnych lokalizacjach i na dowolnych systemach operacyjnych czy maszynach. Dane te mogą być dostępne nie tylko lokalnie, ale i zdalnie (przez Internet lub dedykowane łącza VPN). Atom świetnie sprawdza się więc jako platforma integracyjna, łącząca dane z heterogenicznych źródeł.

    Platforma Atom proponuje podejście hybrydowe – stosujemy bowiem zarówno bazy typu OLAP, jak i OLTP. W efekcie Atompotrafi generować nie tylko typowe raporty przekrojowe (jak w klasycznej hurtowni), ale również potrafi się odnosić do konkretnych pojedynczych transakcji (jak w systemach OLTP). W jednym raporcie mogą być ujęte i jedne, i drugie rodzaje informacji. Jako, że dane przechowywane w platformie Atom zostały już poddane walidacji, transformacji i uzupełnieniu – raporty takie mogą być wykonywane z niezrównaną prędkością. Przy wykonywaniu każdego z nich nie trzeba się też martwić o jakość danych. W efekcie na platformie Atom budować można dowolnie skomplikowane i niezwykle szybkie raporty. Raporty wykonywane są automatycznie o zadanych godzinach. Mogą one być dostępne również w formie serwisów (np. WebServices), aby inne systemy informatyczne mogły pobierać zaraportowane przez platformę dane w trybie on-line. Atom jest w stanie wygenerować odpowiednie raporty i rozesłać je np. w formie pliku PDF jako załącznik do wiadomości e-mail. Raporty wykonywane są bez interakcji z użytkownikiem – metoda ta świetnie sprawdza się w przypadku raportów wymagających skomplikowanego przetwarzania.

  • System oparty o platformę Atom funkcjonuje jako warstwa integracyjna w najważniejszej instytucji polskiego rynku kapitałowego. Jego podstawowym zadaniem jest pobieranie strumienia komunikatów z Systemu Transakcyjnego, dokonywanie niezbędnych agregacji i modyfikacji, a następnie kierowanie ich do szeregu serwerów „odpowiedzialnych za obraz rynku”. Celem platformy jest przeniesienie logiki przetwarzania z systemów odbiorczych do Warstwy po to, by zapobiec komplikacjom związanym z wielokrotnym dostosowywaniem do zmian systemu transakcyjnego i w jego obrębie.

    Atom, jako uniwersalny translator międzysystemowy, upraszcza również architekturę systemów odbiorcy. Jest ona jedną z najnowocześniejszych i najszybszych szyn danych na rynku. W pikach jego wydajność znacznie przekracza założone 5000 komunikatów na sekundę na pojedynczy serwer małej wydajności. Dodatkowym atutem jest możliwość działania zarówno w trybie synchronicznym (pobieranie i nadawanie strumienia danych), jak i asynchronicznym (pobieranie i nadawanie skończonych zbiorów danych) oraz poprzez bardzo różne kanały (web service, procedury składowe, tcp/ip, inne). System ten jest kompleksowym rozwiązaniem oferującym interfejsy do konfiguracji (AtomConfig) procesów oraz do ich nadzorowania w czasie rzeczywistym (AtomConsole), a także rozbudowany system load balancingu, monitoringu i COB.

  • System ten sprawdza się wszędzie tam, gdzie występuje potrzeba harmonizacji i usprawnienia elektronicznych kanałów kontaktu z klientami. Ma on na celu wyeliminowanie problemów, jakie mogą wystąpić zarówno przy zwiększaniu się liczby kanałów, poprzez które następuje kontakt (call center, e-mail, sms), jak i liczby emitentów (systemy transakcyjne, CRM i systemy marketingowe, systemy windykacyjne itp.). Zwiększa się zarówno ilość systemów, jak i poszerzane są ich funkcjonalności w celu powiększenia możliwości komunikacyjnych – co może generować problemy wynikające z powielania rozwiązań komunikacyjnych w kolejnych systemach, multiplikację systemów bilingowych, duże koszty modyfikacji interfejsów oraz brak koordynacji w obszarze kontaktu z klientami.

  • System do monitorowania sald, transakcji i zarządzania przepływami na wielu rachunkach klienta korporacyjnego oraz prognozowania jego stanu środków finansowych w przyszłości.

  • System umożliwiający dwukierunkową, bezpieczną łączność pomiędzy klientem korporacyjnym banku a samym bankiem. Jest to platforma wymiany danych, której celem jest automatyzacja komunikacji pomiędzy systemami finansowo-księgowymi, ERP, HR klienta banku a systemem bankowym. System umożliwia klientowi banku przesłanie paczki przelewów do realizacji, sprawdzenie statusu ich realizacji lub pobranie wyciągów bankowych bezpośrednio z wewnętrznego systemu np. finansowo-księgowego, bez konieczności logowania do systemów bankowych.

  • System obsługi i przetwarzania transakcji bankowych (masowych płatności krajowych wychodzących i przychodzących oraz polecenia zapłaty), który umożliwia:

    • identyfikację i zarządzanie płatnościami przychodzącymi
    • zarządzanie płatnościami wychodzącymi/wypłatami
    • zarządzanie obrotem gotówkowym

Idź do góry