HQL

HQL - HighQSoft Query Language

Query Language für ASAM ODS und ATFx

Eine unserer Hauptaufgaben bei HighQSoft ist es, unseren Kunden Client-Software zur Verfügung zu stellen, die ihre individuellen Geschäftsanforderungen erfüllt. Im Laufe der Jahre haben wir unsere Bibliotheken und Frameworks entwickelt, um das Schreiben und Lesen von Daten von ASAM ODS-Servern beliebiger Hersteller zu ermöglichen.

 

HQL (HighQSoft Query Language) ist ein ASAM ODS-Client, der für eine komfortable und beliebige Interaktion mit dem ASAM ODS-Server entwickelt wurde. Die Bibliothek bietet einen Query Builder und ermöglicht es, Anweisungen als Komposition von Java-Objekten auszudrücken (ähnlich den JPA-Kriterien), was Entwicklern die Erstellung dynamischerer Abfragen ermöglicht. Der Verzicht auf das Parsen von Strings führt zu einem Leistungsgewinn und macht HQL zu einem der schnellsten ASAM ODS-Clients. HQL kann auch eine Möglichkeit sein, Fragen zu bereinigen und sie sicherer zu machen.

 

Sie möchten Daten von einem AVL Santorin-Testzellenserver abfragen? Prüfen. Sie möchten Ihre eigene ASAM ODS (Web)-Anwendung erstellen, ohne den Standard zu kennen? Abgehakt. Sie möchten Matlab-Skripte entwickeln, die Ihre Analyse integrieren? Abgehakt. Möchten Sie Python mit ASAM ODS verwenden? Abgehakt!

 

HQL ist als unabhängige JAVA-Bibliothek, Webservice, ASAM ODS Toolbox für Matlab und als Kommandozeilen-Tool verfügbar. Es ist mit ASAM ODS 5, ASAM ODS 6 und ASAM ATFx kompatibel. Wir verwenden es für unsere gesamte interne Entwicklung, und Partner wie auch Kunden nutzen es für ihre Entwicklungs- und Analyseskripte.

Vorteile

Vorteile

Dynamische Query Language mit Komfortfunktionen

Die HQL-Syntax deckt alle Aspekte der ASAM ODS-API ab und bietet gleichzeitig zusätzliche Funktionalitäten für mehr Komfort. So helfen wir, die Daten zu verstehen, indem wir die generische Komplexität verbergen. Die Bereitstellung von Java-Objekten (ähnlich den JPA-Kriterien) ermöglicht es Entwicklern, dynamischere Abfragen mit weniger Aufwand zu erstellen. Die Vermeidung von String-Parsing macht HQL zu einem der performantesten ASAM ODS-Clients, die verwendet werden können. HQL kann auch eine Möglichkeit sein, Abfragen zu bereinigen und sie sicherer zu machen. So erreichen Entwickler mehr in weniger Zeit.

Effizienzgewinn

Ist ein "Schnellzugriff" auf einen Ihrer ASAM ODS-Server eine Anforderung? Unser HQL ist eine SQL-ähnliche Abfragesprache, die die Komplexität des Standards verbirgt. Sie ist für Entwickler und Ingenieure, die neu im Bereich Testdatenmanagement sind, leicht zu verstehen. Die Semantik ist klar und gut dokumentiert, und sie wird die Schulungs- und Entwicklungszeit für jede Aufgabe erheblich reduzieren.

Einfachheit: Verwenden Sie Ihre Geschäftssprache

Die ASAM ODS API ist eine generische und geschäftsfallfreie Implementierung, die es ermöglicht, den Standard in mehreren Domänen und mit verschiedenen Tools zu nutzen. Die HQL-Syntax bietet eine hilfreichere Schnittstelle, die Basis- und Anwendungsmodell-Entitäten akzeptiert. Wir wandeln Ihre Geschäftssprache mit HQL in die richtigen ASAM ODS-Abfragen um.

HQL ist ASAM ODS nativ

Alles, was wir mit HQL anbieten, ist nativ für ASAM ODS. Somit sind alle Komfortfunktionen und zusätzlichen Features auf allen ASAM ODS-Servern, einschließlich ASAM ODS-Servern wie Peak ODS Server oder AVL Santorin, verfügbar.

Performance Analyzer

HQL kann als Leistungsanalysator des ASAM ODS-Systems verwendet werden, indem einzelne Abfragen mit vergleichbaren statistischen Werten auf der Grundlage der Ausführungszeit ausgeführt werden. Der Leistungsanalysator kann auf jedes Modell mit mehreren Optionen angewendet werden, um die Systemleistung zu testen oder zu überwachen.

Anwendungsfälle

Anwendungsfälle

Client-Entwicklung & Systemintegration

HQL ist vielseitig und flexibel. Es ermöglicht die reibungslose Integration jedes ASAM ODS-basierten Testdatenmanagementsystems in Ihre Umgebung und Ihre Unternehmensprozesse. Wenn Sie Schnittstellen von Drittanbietern erfüllen, kennt Ihr SAP-System zum Beispiel Ihre Testbetriebszeiten. Alternativ können Sie Prüfmitteldaten in das Testdatenverwaltungssystem pushen oder Ihre eigene Anwendung ohne große Vorbereitung entwickeln.

Skriptentwicklung mit Matlab & Python

Matlab und Python sind Skriptsprachen, die Ingenieure, Datenanalysten und Mathematiker verwenden. Beide können HQL direkt über den REST-Webservice nutzen. HQL konvertiert Ergebnisse automatisch in native Datentypen (z.B. Vektoren und Matrizen in Matlab, Reihen und Datenrahmen in Python/Pandas). Entwickler können schneller arbeiten, ohne Programme zu erstellen, die Daten im gewünschten Format exportieren.

ASAM ODS Toolbox für Matlab

Die ASAM ODS Toolbox für Matlab bietet die allgemeine Möglichkeit, den Matlab-Client in das Testdatenverwaltungssystem zu integrieren. Matlab liest die Daten in der Testdatenbank und speichert die erforderlichen Inhalte im Speicher in bekannten Matlab-Strukturen. Mit Matlab können Sie beliebige Informationen manipulieren, hinzufügen oder löschen. Siehe andere Website.

Eigenschaften

Eigenschaften

Kompatibilität von ASAM ODS 5 und ODS 6

HQL unterstützt standardmäßig und per Konfiguration ASAM ODS 5, ASAM ODS 6 und ASAM ATFx (schreibgeschützt). Somit können alle Schnittstellen, Skripte oder Anwendungen, die HQL verwenden, per Konfiguration von ASAM ODS 5 zu ASAM ODS 6 migriert werden! Darüber hinaus funktioniert es mit allen Domänen (Batterie, Sicherheit, Antriebsstrang, ...) und allen bekannten ASAM ODS Servern, wie Peak ODS Server oder AVL Santorin.

Einzelanmeldung mit HQL

HQL stellt die Verbindung mit einem Basic Authentication und einem OAuth 2.0 Authentifizierungsstring her. Der Basic Authentication String ist der Standard für ODS. OAuth 2.0 ist noch nicht im Standard definiert, kann aber mit unserem ODS-Server über HQL verwendet werden. Damit lässt sich ein Single Sign-On realisieren.

Verbesserte Transaktionsverarbeitung

Während ASAM ODS nur eine Transaktion pro Sitzung verarbeiten kann, bietet HQL eine flexiblere Entwicklung von ASAM ODS-Clients durch eine verbesserte Transaktionsverarbeitung, einschließlich der Optionen, dass 1) HQL Transaktionen steuert und 2) HQL Ad-hoc-Transaktionen innerhalb einer Sitzung unterstützt und 3) HQL externe Transaktionen verwenden kann.

ASAM ODS Anwendungsmodell Export

Eine integrierte Funktion von HQL ist der Export des Anwendungsmodells als ATFx-Datei, die als Vorlage für Austausch- oder Importformatdefinitionen oder für Schulungszwecke verwendet werden kann. Es kann Benutzern auch helfen, Ad-hoc-Abfragen für die Produkt- oder Skriptentwicklung zu definieren.

Standard-CSV-Export

Eine weitere integrierte Funktion von HQL ist eine standardmäßige CSV-Exportoption für Messdaten. Dies ist ein schneller Weg, um Kanaldaten für Ad-hoc-Auswertungen mit Tools wie Microsoft Excel zu erhalten.

Haben Sie Fragen?

Möchten Sie mehr erfahren oder eine Demo unserer leistungsstarken Abfragesprache erhalten? Haben Sie sich gefragt, wie wir PowerBI, Kibana oder andere Dashboards und Visualisierungen integrieren? Es ist HQL. Zögern Sie nicht, uns zu kontaktieren!

HQL-Syntax

HQL-Syntax

Die ASAM ODS-Schnittstellen definieren Schnittstellen und Methoden zum Erstellen, Auswählen, Aktualisieren, Einfügen und Löschen von Instanzen des ASAM ODS-Modells. Außerdem können Informationen über das Modell und die serverseitigen Funktionen und die Konfiguration abgerufen werden. Da das ASAM ODS-Modell nicht festgelegt ist, sind die Schnittstellen generisch. Dies führt zu komplexen Aufrufsequenzen für die Kommunikation mit dem ASAM ODS-Server.

 

HQL ist eine SQL-ähnliche Abfragesprache, die diese Komplexität in einfache Zeichenketten kapselt. Sehen Sie sich zum Beispiel den Code an, um eine Liste der Namen aller verfügbaren physikalischen Einheiten zu erhalten.

 

Das folgende Beispiel zeigt den JAVA-Code (ohne das Abfangen von Ausnahmen und Null-Objekten) für den ASAM ODS-Aufruf, der die gleichen Daten abfragt wie die HQL-Abfrage "hql aounit.name".

 

JAVA Code Beispiel

AoSession aoSession = ...
// Abrufen der Modellstruktur.
ApplicationStructure as = aoSession.getApplicationStructure();
ApplElemAccess aea = aoSession.getApplElemAccess(); // Abrufen des Anwendungselements.
ApplicationElement ae = as.getElementsByBaseType("aounit")[0];
T_LONGLONG aeId = ae.getId(); // Holt das Attribut name.
ApplicationAttribute attr = ae.getAttributeByBaseName("name");
String aeName = attr.getName(); // Erstellen Sie die Abfragestruktur.
QueryStructureExt qse = new QueryStructureExt();

 

// Abfrage des Namens der Einheit. qse.anuSeq = new SelAIDNameUnitId[1];
AIDName aidName = new AIDName(aeId, aeName);
qse.anuSeq[0] = new SelAIDNameUnitId(aidName,
new T_LONGLONG(), AggrFunc.NONE);

 

// Initialisieren Sie die anderen Mitglieder der Struktur.
qse.condSeq = new SelItem[0];
qse.groupBy = new AIDName[0];
qse.joinSeq = new JoinDef[0];
qse.orderBy = new SelOrder[0];

 

// Holen Sie das Ergebnis.
ResultSetExt[] res = aea.getInstancesExt(qse, 0);

 

// Holen Sie die Namen.
String[] names = res[0].firstElems[0].values[0].value.u.stringVal();

Ausschüttungen

Ausschüttungen

HQL als Webdienst

Ein Anwendungsfall für HQL ist die Nutzung eines oder mehrerer Testdatenverwaltungssysteme über ein zentrales Gateway. In diesem Fall wird HQL als Webservice gestartet und bietet programmatischen Zugriff über einen REST-Endpunkt. So kann jeder Benutzer, jedes Skript oder jede Anwendung problemlos eine Verbindung zu ASAM ODS-Daten herstellen. Der Dienst ist innerhalb des Unternehmens global verfügbar und kann von Technikern ohne Installation genutzt werden.

HQL als Java-Bibliothek

HQL ist eine Java-Anwendungsprogrammierschnittstelle, die den Zugriff auf ASAM ODS-Server ermöglicht. Als Bibliothek kann HQL in Anwendungen integriert werden, um ASAM ODS-Kompatibilität zu bieten oder Endbenutzer bei der Entwicklung von Software für den Zugriff auf die ASAM ODS-Daten zu unterstützen. Eines der häufigsten Feedbacks zu HQL ist, dass es die Anzahl der Codezeilen reduzieren und die Entwicklung beschleunigen kann, ohne dass man ASAM ODS kennt.

HQL als eigenständiger ASAM ODS-Client

HQL ist auch ein eigenständiges Programm, das sich mit jedem ODS-Server verbinden kann. Es ermöglicht dem Benutzer die Eingabe von Abfragen in einem interaktiven Befehlszeilenmodus und die Anzeige der Ausgaben in einem tabellarischen Textformat. Außerdem können Sie damit Instanzen aktualisieren, Massendaten hoch- und herunterladen und die Struktur des Anwendungsmodells ändern. Mit nur wenigen Befehlen können die Benutzer die Test-Metadaten und Massendaten schnell untersuchen. Durch die Ähnlichkeit mit SQL ist die Sprache leicht zu verwenden und zu merken. Sie kann auch als Prototyping-Tool verwendet werden, das Ihre Abfragen während der Entwicklungszeit erleichtert.

Geschichte der ASAM ODS Client-Entwicklung

Die ASAM ODS-Spezifikationen verwenden herstellerneutrale Technologien, die es Client-Anwendungen ermöglichen, sich mit einem ASAM ODS-Server zu verbinden: RPC, CORBA und HTTP + Protobuf. Um eine ASAM ODS-Client-Anwendung zu erstellen, müssen Sie die Netzwerktechnologie (CORBA für ODS Version 5, HTTP + Protobuf für ODS Version 6) und die ASAM ODS API-Spezifikation verstehen.

 

Als der ASAM ODS-Ausschuss die OO-API konzipierte, war CORBA die De-facto-Lösung für die Verbindung verteilter Systeme. CORBA unterstützte mehrere Programmiersprachen und Architekturen mit einem objektorientierten Design. Mit dem Aufkommen von SOAP- und REST-basierten Webservices hat der CORBA-Standard möglicherweise an Popularität verloren. Für den ASAM ODS-Standard war es keine Option, Massendaten in einem Textformat (XML oder JSON) über HTTP zu versenden. CORBA ermöglichte weiterhin den programmatischen Zugriff auf einen ASAM ODS-Server. Nachdem der Protocol Buffers-Standard stabil wurde und weite Verbreitung fand, nutzte die Industrie ihn als Grundlage für die HTTP-Client-API mit Version 6. Dennoch sind die ODS 5-Server zum Zeitpunkt der Erstellung dieses Artikels die ausgereiftesten und am weitesten verbreiteten Produkte.

 

Die objektorientierte API von ASAM ODS kann ziemlich komplex sein, insbesondere wenn es darum geht, komplexe Abfragen zu formulieren. Gute Software-Engineering-Praktiken verbergen diese Ausführlichkeit und übersetzen Anfragen aus der Geschäftsebene in spezifische CORBA-Aufrufe. Durch das Sammeln von Erfahrungen bei der Arbeit an verschiedenen Projekten, die auf ASAM ODS basieren, hat HighQSoft ein gemeinsames Framework geschaffen, das die Programmierung mit der CORBA-API unterstützt.

 

Bei einem Upgrade von einem ODS 5 auf einen ODS 6 Server können die Entwicklungsteams die Client-Anwendungen nicht wiederverwenden. ODS 6 erfordert ein anderes Netzwerkprotokoll. Mit weiteren Software-Engineering-Anstrengungen ist es möglich, die CORBA-API mit technologieneutralen Schnittstellen (z.B. Java-Schnittstellen oder virtuelle C++-Klassen) und Datenklassen zu verbergen. Die Erstellung einer HTTP-basierten Implementierung dieser Schnittstellen ermöglicht einen solchen Übergang, ohne dass neue Client-Anwendungen von Grund auf erstellt werden müssen.

Kunden, die HQL verwenden

HighQSoft GmbH

Black-und-Decker-Straße 17c
D-65510 Idstein