Database
 sql >> Datenbank >  >> RDS >> Database

Überbrückung von RDBMS und NoSQL:Einführung in den 2DX-UI-Cluster

2DX ist ein Web-UI-Framework, das aus einem In-Memory-Browser NoSQL und einem RDBMS-Hosting-Speicherprozedur-erstellten JavaScript-Interpreter besteht. Sowohl die NoSQL- als auch die RDBMS-Datenbankkomponenten von 2DX folgen dem gleichen Entity-Attribute-Value-Datenbankschema, das entwickelt wurde, um serialisierte Daten in normaler Form aufzunehmen. Es wurde durch Reduktion von relationalen Datenmodellen auf serialisierte Datenformate entwickelt, die in Industriestandards wie XML oder JSON zu finden sind.

Der NoSQL-Client für Webbrowser ist ein leichtgewichtiges JavaScript-Singleton-Objekt, bei dem es sich um eine Datenbank handelt, die mit einer serialisierten Datenabfrageschnittstelle bereitgestellt wird, die zur Reduzierung der Big-O-Notation bei Extraktionsvorgängen indiziert ist. Verschiedene Dokumenttypen werden durch entsprechende API-Treiber unterstützt. Der derzeit unterstützte Dokumenttyp ist „UI“ für Website-DOM-Bäume mit Unterstützung von „DB“ für relationale Daten und „OL“ für in Entwicklung befindliche Pivot-Tabellen. 2DX-Client-Schnittstellen zu Drittanbieter-JavaScript-Frameworks wie Angular oder jQuery durch spezifische API-Treiber, die seine Client-UI-Funktionalität auf weit verbreitete Webentwicklungstools erweitern.

Webseiten, die im DOM-Baum des „UI“-Dokuments enthalten sind, werden auf Bildschirmen durch die integrierte HTML-Rendering- und Caching-Engine angezeigt. Für seinen UI-Operations-Client erstellt die NoSQL-Datenbank zum Zeitpunkt der Initialisierung „new JS2DX()“ einen In-Memory-DOM-Container. Diese Funktion ermöglicht den direkten DB-UI-Speicherzugriff. Benchmarks zeigen, dass 2DX mehrere Webseiten in Intervallen von 10 bis 20 Millisekunden rendern und DOM-Bäume mit über 2 Millionen HTML-Elementen laden kann, ohne dass das Browserfenster abstürzt.

Der 2DX-Server ist eine RDBMS-Datenbank, die gespeicherte Prozeduren hostet, die serialisierte Daten in Normalform und umgekehrt konvertieren. Die Stored Procedures stellen einen JavaScript-Interpreter dar, dessen Programmquellcode in normaler Form gespeichert ist. Abgesehen von der Übermittlung übermittelter Clientdaten ist der 2DX-Server in der Lage, vollständige, geschäftslogikfähige objektorientierte Programme auszuführen, die in stark typisiertem JavaScript geschrieben sind. Es stellt über den CGI-Treiber eine Verbindung zu Client-Instanzen her.

Da sich immer mehr Unternehmen für eine schnelle Abfrageleistung für NoSQL entscheiden, wird dessen Interoperabilität mit relationalen Daten häufig der mittleren Schicht der Anwendung überlassen. 2DX eliminiert die Notwendigkeit einer mittleren Ebene mit einer Programmierumgebung, die in persistenten gespeicherten Modulen gehostet wird, die in RDBMS nativ sind. Von Kunden übermittelte Daten werden verarbeitet und einer relationalen Datenbank zugeführt. Transaktionsprotokolle mit aktualisierten Tabellenzeilen werden asynchron auf einem NoSQL-Server oder Dateisystem veröffentlicht. Client-Datenbankinstanzen verwenden Letzteres, um Protokolle relationaler Datenaktualisierungen für die Replikation und sofortige Verfügbarkeit auf UI-Bildschirmen abzurufen. Sobald ausstehende Transaktionen auf Clientinstanzen abgespielt werden, werden sie mit der Serverdatenbank synchronisiert.

Die 2DX-Client/Server-Datenbank-Cluster-Konfiguration gewährleistet eine geringe Latenz in großen Datenumgebungen, in denen die Übergabe von Client-Anforderungen an eine relationale Datenbank erforderlich ist. Darüber hinaus stellt ein solcher Cluster sicher, dass Eingabe-/Ausgabevorgänge des Benutzers in RDBMS-Transaktionsprotokollen aufgezeichnet werden. Seine UI-Rendering-Leistung kann 2DX für die Verwendung in Web-Gaming-Diensten öffnen. Der direkte Versand von Datenbankprotokollen zwischen Client- und Server-Datenbankkomponenten des Clusters, der die Serialisierung und den proprietären DBMS-Server als Ersatz für generische RDBMS umgeht, ist in zukünftigen Versionen geplant.