HQL

HQL – HighQSoft Query Language

Unsere eigene Abfragesprache ASAM ODS: vielseitig und leicht zu erlernen

Eine unserer Hauptaufgaben bei HighQSoft ist es, unseren Kunden eine Client-Software zur Verfügung zu stellen, die ihren individuellen Geschäftsanforderungen gerecht wird.

 

Deshalb haben wir im Laufe der Jahre unsere Bibliotheken und Frameworks entwickelt, die das Schreiben und Lesen von Daten von einem ASAM ODS-Server erleichtern. Wir haben die HighQSoft Query Language entwickelt, um das zugrunde liegende Netzwerkprotokoll zu verbergen und die Umwandlung von geschäftsorientierten Operationen in ASAM ODS-Aufrufe zu erleichtern.

 

HQL ist ein ASAM ODS-Client, der als JAVA-Bibliothek, Webservice, Matlab ODS Toolbox und Kommandozeilen-Tool verfügbar ist. In Verbindung mit seiner Kompatibilität mit ASAM ODS 5, ASAM ODS 6 und ATFx ist es ein wirklich vielseitiges Werkzeug. Heute haben wir HQL erfolgreich in unsere interne Softwareentwicklung integriert und mit unseren Entwicklungspartnern geteilt. Außerdem entwickeln unsere Kunden ihre eigenen Client-Anwendungen.

Produktblatt HQL Version 2.3.8 Status Freigegeben Datum November 2020 ASAM ODS ODS 5.3.1
ODS 6.1
ATFx
IIOP Gateway
Lieferung Oracle JDK 8/11
AdoptOpenJDK 8/11
Anmerkungen zur Veröffentlichung
(mehr Informationen hier)

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, ist es notwendig, die Netzwerktechnologie (CORBA für ODS Version 5, HTTP + Protobuf für ODS Version 6) und die ASAM ODS API-Spezifikation zu 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ützt mehrere Programmiersprachen und Architekturen mit einem objektorientierten Design. Durch das Aufkommen von SOAP- und REST-basierten Webdiensten hat der CORBA-Standard möglicherweise viel von seiner Popularität verloren. Für den ASAM ODS-Standard war es nicht möglich, Massendaten in einem Textformat (XML oder JSON) über HTTP zu versenden. CORBA war weiterhin die Lösung für den programmatischen Zugriff auf einen ASAM ODS-Server. Nachdem der Protokollpuffer-Standard stabil und weit verbreitet war, wurde er von der Industrie als Grundlage für die HTTP-Client-API in Version 6 verwendet. Dennoch sind die ODS-5-Server die ausgereiftesten und am weitesten verbreiteten Produkte zum Zeitpunkt der Erstellung dieses Berichts.

 

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

 

Zeigen, wie HQL Codezeilen reduziert

 

Beim 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 virtuellen C++-Klassen) und Datenklassen zu verbergen. Durch die Schaffung HTTP-basierter Implementierungen dieser Schnittstellen ist es möglich, einen solchen Übergang zu vollziehen, ohne neue Client-Anwendungen von Grund auf zu erstellen.

Anwendungsfälle

Anwendungsfälle für HQL

HQL als Java-Bibliothek

HQL wird als Java-Anwendungsprogrammierschnittstelle für den Zugriff auf ASAM ODS-Server verwendet. Bei HighQSoft hat dies dazu beigetragen, die Entwicklungszeit für unsere Produkte zu verkürzen. Die Manatee Web Application und alle kundenspezifischen Lösungen verwenden beispielsweise HQL als Bibliothek, anstatt direkt die ASAM ODS OO-API zu nutzen. Außerdem wurde HQL auch von einigen unserer Kunden, die ihre Anwendungen vollständig selbst entwickeln, erfolgreich eingesetzt. Eines der häufigsten Feedbacks zu HQL ist, wie es die Gesamtzahl der Codezeilen reduzieren kann.

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 Ergebnisse in einem tabellarischen Textformat. Außerdem kann der Benutzer Instanzen aktualisieren, Massendaten sammeln, Dateien hoch- und herunterladen und die Struktur des Anwendungsmodells ändern. Sie ermöglicht es den Nutzern, mit wenigen Befehlen schnell die Metadaten und Massendaten der Tests zu untersuchen. Durch die Ähnlichkeit mit SQL ist die Sprache leicht zu verwenden und zu lernen. Es kann auch als Prototyping-Tool verwendet werden, das Ihre Abfragen während der Entwicklungszeit erleichtert.

HQL als Webdienst

Einer der größten Nachteile der Verwendung von CORBA als Middleware für Anwendungen besteht darin, dass es für einige Programmiersprachen (insbesondere die neueren) nicht verfügbar ist. Für den Fall, dass es keine funktionierende CORBA-Implementierung für Ihre bevorzugte Sprache gibt, kann HQL als Webdienst gestartet werden und über einen REST-Endpunkt programmatischen Zugriff bieten.
Der HQL-Webdienst kann als zentrales Gateway zu einem oder mehreren Testdatenverwaltungssystemen verwendet werden.

Parser und Abfragesprache

Als Java-Bibliothek kann HQL in zwei Modi arbeiten: Als Parser werden Abfragen und Anweisungen als Text in der HQL-Syntax eingegeben. In diesem Modus ist HQL eine SQL-ähnliche Sprache zur Abfrage von ODS-Servern. Als Query Builder werden Abfragen und Anweisungen als Komposition von Java-Objekten ausgedrückt (ähnlich wie bei JPA Criteria). In diesem Modus können Entwickler dynamischere Abfragen erstellen. Außerdem bringt es einen Leistungsgewinn, wenn das Parsen von Zeichenketten vermieden wird. Es kann auch eine Möglichkeit sein, Abfragen zu säubern und sie sicherer zu machen.

HQL-Kunden für Matlab und Python

Matlab und Python sind Skriptsprachen, die von Ingenieuren, Datenanalysten und Mathematikern verwendet werden. Beide können HQL direkt 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 und ohne die Erstellung von Programmen arbeiten, die Daten im gewünschten Format exportieren. Die Matlab-Erweiterung für HQL ist bereits verfügbar und wird von einigen HighQSoft-Kunden eingesetzt. Wir planen, die Python-Erweiterung Ende 2021 zur Verfügung zu stellen.

Noch Fragen?

Möchten Sie mehr erfahren oder eine Demo unserer leistungsstarken Abfragesprache erhalten? 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. Darüber hinaus ist es möglich, Informationen über das Modell und die serverseitigen Funktionen und Konfigurationen abzurufen. 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. Schauen Sie sich zum Beispiel den Code an, um eine Liste der Namen aller verfügbaren physischen 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 wie die HQL-Abfrage "hql aounit.name" anfordert:

 

JAVA-Code-Beispiel

AoSession aoSession = ...
// Abrufen der Modellstruktur.
ApplicationStructure as = aoSession.getApplicationStructure();
ApplElemAccess aea = aoSession.getApplElemAccess();

// Holen Sie das Anwendungselement.
ApplicationElement ae = as.getElementsByBaseType("aounit")[0];
T_LONGLONG aeId = ae.getId();

// Abrufen des Attributs 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 Elemente der Struktur.
qse.condSeq = new SelItem[0];
qse.groupBy = new AIDName[0];
qse.joinSeq = new JoinDef[0];
qse.orderBy = new SelOrder[0];

 

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

 

// Abrufen der Namen.
String[] names = res[0].firstElems[0].values[0].value.u.stringVal();

Eigenschaften

Eigenschaften / Vorteile

Verkürzung der Zeit bis zur Anwendung

HQL ist eine SQL-ähnliche Abfragesprache und daher für Entwickler und Ingenieure, die neu im Bereich der Testdatenverwaltungssysteme sind, leicht zu verstehen. Die Semantik ist klar, einfach und reduziert die Schulungs- und Entwicklungszeit erheblich.

Vollständige Syntax- und Komfortfunktionen

Die HQL-Syntax deckt alle Aspekte der ASAM ODS-API ab und bietet darüber hinaus zusätzliche Funktionalitäten für mehr Komfort. Auf diese Weise tragen wir zum Verständnis der Daten bei, indem wir die generische Komplexität verbergen. Für fortgeschrittene Entwickler oder generische Anwendungen,

Kompatibilität mit ODS 5 und ODS 6

HQL funktioniert mit allen Domänen und allen bekannten ASAM ODS Servern. Außerdem unterstützt es ASAM ODS 5.3.1, ASAM ODS 6.1 sowie ATFx-Dateien per Konfiguration. Dies macht HQL zu einem hervorragenden Werkzeug für schrittweise Migrationen zu ASAM ODS 6.1.

Verwenden Sie Ihre eigene Business-Logik

Die ASAM ODS API ist eine generische und geschäftsneutrale Implementierung, die die Nutzung durch verschiedene Domänen und deren Werkzeuge ermöglicht. Die HQL-Syntax bietet eine abstraktere Schnittstelle, die sowohl Entitäten des Basismodells als auch des Anwendungsmodells akzeptiert. Mit HQL wandeln wir Ihre Geschäftssprache in die richtigen ASAM ODS-Abfragen um.

Integration von Skripten, Tools und Systemen

HQL ist vielseitig und flexibel - es ermöglicht eine reibungslose Integration des Testdatenmanagementsystems in Ihre Umgebung. Mit Skripten oder Schnittstellen von Drittanbietern kennt Ihr SAP-System Ihre Testbetriebszeiten. Wir übertragen die Daten der Prüfgeräte in das Testdatenverwaltungssystem, oder Ihre Skripte liefern automatisch Informationen an ein beliebiges Tool oder System Ihrer Wahl.

Kunden, die HQL selbst nutzen

HighQSoft GmbH

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