In Anlehnung an unsere Beobachtungen während der Implementierung zahlreicher Massendatensysteme haben wir ein eigenes Modell für den Aufbau solcher Lösungen entwickelt. Es basiert auf einer – von uns geschaffenen – Programmierplattform, die es uns ermöglicht, äußerst effiziente und skalierbare Systeme für besonders anspruchsvolle Kunden zu erstellen.

Die Grundlage unserer Lösungen ist eine einheitliche Programmierplattform (mit anderen Worten eine für viele Installationen identische Plattform), auf der Microservices bereitgestellt werden (vor der Entstehung des Konzepts der Microservices Module oder Konverter genannt), die auf die Bedürfnisse unseres Kunden zugeschnitten sind (und daher je nach Installation unterschiedlich sind). Dies bedeutet einerseits, dass wir unsere Systeme nicht von Grund auf bauen müssen, da wir eine stabile, gründlich getestete und für viele Implementierungen geeignete Plattform benutzen, und andererseits, dass wir uns dank dieser Funktionsweise maximal an die Bedürfnisse des Kunden anpassen und im Hinblick auf seine Erwartungen präzise und optimierte Lösungen entwickeln können.

Die von uns entwickelte Atom-Plattform ist unser ganzer Stolz. Sie ist auf Leistung und Skalierbarkeit ausgelegt, damit sie als Fundament für ausgeklügelte Systeme, insbesondere Massendatensysteme, dienen kann.

Es reicht wohl zu sagen, dass die Atom-Plattform in der Regel Zehntausende von Netztransaktionen in einer Sekunde verarbeiten kann, auch mit ganz gewöhnlicher Hardware. Mit entsprechend konzipierten Datenstrukturen und für den Netzbetrieb geeigneter Hardware kann Atom sogar Hunderttausende, wenn nicht Millionen Transaktionen pro Sekunde verarbeiten.

MEHR ÜBER DIE ATOM-PLATTFORM:

AUFBAU DER ATOM-PLATTFORM

Atom ist eine einheitliche Programmierplattform (mit anderen Worten in vielen Installationen identisch), auf der die auf die Bedürfnisse unseres Kunden angepassten (und darum je nach Installation unterschiedlichen) Microservices entstehen. Einerseits bedeutet das, dass wir die Systeme nicht von Grund auf entwickeln, da wir stabile, gründlich getestete und in vielen Implementierungen funktionierende Plattformen benutzen, und andererseits, dass wir uns dank dieser Funktionsweise maximal an die Bedürfnisse des Kunden anpassen und im Hinblick auf seine Erwartungen präzise und optimierte Lösungen entwickeln können.

Unterstützte Betriebs- und Datenbanksysteme

Unterstützte Betriebs- und Datenbanksysteme.

Das gesamte System ist in C++ geschrieben und wurde jeweils getrennt für den Betrieb in der Windows-Umgebung und in der Linux-Umgebung optimiert.

Darüber hinaus wurde das System so konzipiert, dass die Quellcodes für beide Umgebungen gleichzeitig gepflegt werden können, da der größte Teil des Quellcodes übertragbar ist, was die Unterstützung dieser beiden wesentlichen Betriebssysteme erleichtert.

Das System kann auch in heterogenen Umgebungen laufen, die von den beiden oben genannten Betriebssystemen gleichzeitig gesteuert werden. In diesem Fall sollten jedoch die auf der Atom-Plattform laufenden Module in einer getrennten Version für beide Betriebssysteme entwickelt werden, um maximale Leistung zu gewährleisten.

Das System verwendet zwei Kategorien von Datenbankservern. Ein Servertyp dient für die interne Konfiguration der Plattform selbst, der andere für die physische Verarbeitung der Daten. Dies können in der Praxis Server aller großen Marken auf dem Markt sein – von MS SQL Server bis hin zu Lösungen wie mySQL oder PostgreSQL. Für maximale Leistung empfehlen wir einen dedizierten VoltDB-Datenbankserver, aber die endgültige Entscheidung liegt natürlich beim Kunden.

Dank der Zusammenarbeit von VoltDB mit der Atom-Plattform erzielen wir eine mit anderen Methoden nicht realisierbare Skalierbarkeit. Wir können Lösungen anbieten, mit denen Millionen von Datensätzen oder sogar ganzen Transaktionen pro Sekunde verarbeitet werden können. Auch hochkomplexe Transaktionen können bedient werden.

VoltDB bietet, zusammen mit der Atom-Plattform, ebenfalls eine unvergleichliche Skalierbarkeit. Besteht ein Problem mit der Leistung, dann können die Massendatensysteme, die Atom und VoltDB nutzen, beachtlich nach oben skaliert werden.

Module auf der Atom-Plattform

Das Schlüsselkonzept der Atom-Plattform sind die Module (umgesetzt in Form von Microservices). Es handelt sich dabei um kleine und einfache kompilierte Programmblöcke, die unsere Firma meistens direkt in C++ entwickelt, um optimale Leistung zu gewährleisten. In der Praxis können die Module in einer beliebigen Programmiersprache erstellt werden.

Auf der Atom-Plattform können zwei Typen von Modulen betrieben werden:

  1. Online-Module, welche die ganze Zeit laufend und ohne jede Verzögerung Daten verarbeiten,
  2. Offline-Module, die nur in bestimmten Intervallen arbeiten und Daten verarbeiten, die nicht sofort gebraucht werden (d. h. bei denen z. B. eine Verzögerung von einer Minute akzeptabel ist).

Die Module realisieren einfache, beinahe atomare Operationen. Sie sind dementsprechend relativ einfach zu programmieren und, was noch wichtiger ist, noch einfacher zu testen.

Nehmen wir an, es soll ein System entwickelt werden, das Daten von einem bestimmten IMAP-E-Mail-Konto empfangen wird. Dann müssen der E-Mail-Anhang mit dem AES-Algorithmus entschlüsselt und dekomprimiert sowie die resultierende CSV-Datei in die Datenbank importiert werden. Anschließend muss nach der Aggregatberechnung eine XML-Datei erstellt, komprimiert, mit dem 3DES-Algorithmus verschlüsselt und an die angegebene Adresse eines FTP-Servers gesendet werden. Für dieses Szenario sind die folgenden Module erforderlich:

  1. Modul zum Herunterladen von Daten vom angegebenen IMAP-Server;
  2. Entschlüsselungsmodul (AES);
  3. Dekomprimierungsmodul (Zip);
  4. Datenbankimportmodul;
  5. Modul für die Aggregationsberechnung;
  6. Modul zum Exportieren in .xml-Dateien;
  7. Komprimierungsmodul;
  8. Verschlüsselungsmodul (AES);
  9. Datenübertragungsmodul (FTP).

Wie man sieht, müssen die Module 1, 2, 3, 7, 8 und 9 überhaupt nicht auf die Logik der Daten, die sie übertragen, zugreifen. Das bedeutet, dass diese Module wiederholt in unterschiedlichen Kontexten für völlig verschiedene Daten verwendet werden können.

Im Fall einer Änderung der Datenaggregationsmethode muss nur Modul 5 geändert werden. Alle anderen Module können unverändert bleiben.

Wenn für die oben beschriebene Aufgabe die Methode der Kommunikation mit dem Zielsystem geändert werden muss, z. B. durch die Übertragung von Daten mit einem dedizierten Protokoll, dann müssen lediglich die Module 6-9 ersetzt werden. Alle anderen Komponenten bleiben unverändert.

Die Module sind praktisch so etwas wie Plug-ins. So werden sie auch auf der Atom-Plattform installiert, welche den ausführbaren Code der Plug-ins an alle von ihr kontrollierten Computer verteilt.

Prozesse

Ein auf der Atom-Plattform laufendes Modul erhält eine bestimmte Konfiguration. Ein Modul mit einer solchen Konfiguration wird als Prozess bezeichnet. Das bedeutet, dass z. B. das Datenentschlüsselungsmodul verschiedene Prozesse erzeugen kann – es kann jedes Mal mit einer völlig anderen Konfiguration (andere Passwörter, andere Dateispeicherorte usw.) betrieben werden. Folglich kann ein einmal erstelltes Modul als Komponente unzähliger Prozesse verwendet werden.

Das erleichtert ganz offensichtlich das Testen eines mit der Atom-Plattform entwickelten Systems und macht es möglich, einen und denselben Quellcode tatsächlich in verschiedenen Geschäftsanwendungen wiederzuverwenden.

Aufgaben

Für sich betrachtet sind die Prozesse zu einfach, um den Anforderungen der heutigen Geschäftswelt gerecht zu werden. Die Atom-Plattform ermöglicht jedoch die Herstellung von Verbindungen zwischen den Prozessen. Auf diese Weise entstehen ganze Verbindungsgraphen.

Der Graph für das Beispiel im Abschnitt „Module auf der Atom-Plattform“ ist recht simpel – er besteht einfach in einer gewöhnlichen Prozesssequenz von 1 bis 9. Aber man kann sich zum Beispiel einen speziellen Prozess vorstellen, der gestartet wird, wenn die Dateientschlüsselung fehlschlägt, oder einen Prozess für eine alternative Datenübertragung, wenn ein FTP-Server nicht verfügbar ist.

Ein solcher Graph von Verbindungen zwischen konkreten Prozessen wird als Aufgabe bezeichnet. Eine Aufgabe kann von beliebiger Komplexität sein und eine beliebige Anzahl von Prozessen umfassen. Die Prozesse können praktisch beliebig miteinander verbunden werden (z. B. sequentiell oder zyklisch usw.). In jeder Aufgabe muss nur der erste Prozess, der ausgeführt werden soll, identifiziert werden. Die Atom-Plattform sorgt dafür, dass die Prozesse in der richtigen Reihenfolge ausgeführt werden und kontrolliert natürlich ihre Ergebnisse, eventuelle Fehler usw.

Darüber hinaus funktioniert der Mechanismus sowohl für Offline-Aufgaben (in diesem Fall gewährleistet er eine klassische, aber äußerst effiziente Batchverarbeitung) als auch für Online-Aufgaben. Letzteres ist besonders interessant, denn es bedeutet, dass auf der Atom-Plattform Sequenzen von Online-Verbindungen zwischen gleichzeitig laufenden Prozessen definiert werden können. In diesem Fall ist der Verbindungsgraph nicht mehr nur eine einfache Veranschaulichung der Reihenfolge der Verbindungen, sondern zeigt an, welche Prozesse Anfragen an welche anderen Prozesse senden. Auf diese Weise kann die Atom-Plattform die Belastung dieser Prozesse kontrollieren und sie dementsprechend auf neuen Maschinen laufen lassen (oder nutzlose Prozesse schließen).

Aufgabengruppen

Konfigurierte Aufgaben werden auf der Atom-Plattform zu größeren Strukturen, den sogenannten Aufgabengruppen, zusammengefasst. Dadurch wird die Systemadministration erheblich erleichtert. Für jede Aufgabengruppe können auch getrennte Aufgaben vom Typ Tagesanfangsverarbeitung (TAV) und Tagesendverarbeitung (TEV) definiert werden.

Zeitzonen

Das System unterstützt selbstverständlich verschiedene Zeitzonen und zwar gleichzeitig. Spezifische Aufgabengruppen können also einer Zeitzone zugewiesen und Zeit und Art der Bearbeitung entsprechend den lokalen Gegebenheiten definiert werden. Das bedeutet, dass die Atom-Plattform auch eine perfekte Lösung für alle globalen Unternehmen ist, die in mehreren Zeitzonen tätig sind und bestimmte Daten zentral verarbeiten müssen.

Von der Atom-Plattform gesteuertes Netz

Die Atom-Plattform ist eine Komplettlösung, die es ermöglicht, auf einer Serverfarm so etwas wie eine Cloud oder ein Netzwerk zu schaffen. Die Atom-Plattform übernimmt die Kontrolle über diese (physischen oder virtuellen) Maschinen und ermöglicht die Verwaltung der gesamten Struktur als wäre sie ein einziges System.

Mit der Atom-Plattform kann ein System vollkommen zentral gesteuert werden – und zwar nicht nur in Bezug auf seine Konfiguration (und sogar die zentrale Installation von Modulen), sondern auch auf seinen Betrieb.

Die Atom-Plattform als ein komplettes Datenverarbeitungswerkzeug verfügt über:

  1. ein Konfigurationssystem (Atom Config) – für den zentralen Aufbau beliebiger Geschäftsprozesse auf der Grundlage von Aufgabengruppen, Aufgaben und Prozessen basierend auf spezialisierten Modulen,
  2. ein Betriebsüberwachungssystem (Atom Console). Alle Schlüsselaspekte des Plattformbetriebs werden überwacht, d. h. das System meldet sowohl die Parameter der physischen Maschinen als auch die grundlegenden Aspekte der Datenverarbeitung. Der Zugang zu den Daten ist über eine speziell dafür entwickelte Administrationsoberfläche möglich,
  3. ein Lastausgleichsystem (Atom Load Balancing). Dieses System ist ein Schlüsselelement der Plattform. Es verwaltet aktiv die Prozessorauslastung und optimiert den Betrieb der gesamten Plattform, um die maximale Nutzung der Hardwarekapazität und die Priorisierung einzelner Prozesse durch die Zuweisung größerer Mengen von Ressourcen zu gewährleisten.

Geh hinauf