At HighQSoft, one of our main tasks is providing our customers with client software to meet their unique business requirements. Over the years, we have developed our libraries and frameworks to make writing and reading data from ASAM ODS servers of any vendors.
HQL (HighQSoft Query Language) is an ASAM ODS client built for comfort and any interaction with the ASAM ODS server. The library provides a query builder and allows statements to be expressed as a composition of Java objects (similar to JPA criteria), which enables developers to create more dynamic queries. Avoiding string parsing provides a performance gain, making HQL one of the quickest ASAM ODS clients. HQL can also be a way of sanitizing questions and making them safer.
Want to Query data from an AVL Santorin test cell server? Check. Want to create your own ASAM ODS (web) application without knowledge of the standard? Check. Want to develop Matlab scripts integrating your analysis? Check. Do you want to use Python with ASAM ODS? Check!
HQL is available as an independent JAVA library, web service, ASAM ODS Toolbox for Matlab, and a command-line tool. It is compatible with ASAM ODS 5, ASAM ODS 6, and ASAM ATFx. We use it for all our in-house development, and partners, as well as customers, use it for their development and analysis scripts.
The HQL syntax covers all aspects of the ASAM ODS API while providing additional functionalities for enhanced comfort. Thus, we help understand the data by hiding the generic complexity. Providing Java objects (similar to JPA criteria) allows developers to create more dynamic queries with less effort. Avoiding string parsing makes HQL one of the performant ASAM ODS clients that can be used. HQL can also be a way of sanitizing queries and making them safer. Thus, developers achieve more in less time.
Is “Quick access” to one of your ASAM ODS servers a requirement? Our HQL is an SQL-like query language that hides the standard's complexity. It is easy to understand for developers and engineers who are new to Test Data Management. The semantics are clear and well documented, and they will significantly reduce training and development time for any task given.
The ASAM ODS API is a generic and business case-free implementation that allows the standard to be utilized in multiple domains and with various tools. The HQL syntax provides a more helpful interface that accepts base and application model entities. We transform your business language with HQL into the correct ASAM ODS queries.
Everything we provide with HQL is native to ASAM ODS. Thus, all comfort functions and extra features are provided and available on all ASAM ODS servers, including ASAM ODS Servers, such as Peak ODS Server or AVL Santorin.
HQL can be used as a performance analyzer of the ASAM ODS system by running individual queries with comparable statistical values based on the execution time. The performance analyzer can be applied to any model with multiple options to test or monitor system performance.
HQL is versatile and flexible. It allows smooth integration of any ASAM ODS-based Test Data Management system with your environment and company processes. When fulfilling third-party interfaces, for example, your SAP system knows your test operation hours. Alternatively, push test equipment data into the Test Data Management system or develop your own application without much preparation.
Matlab and Python are scripting languages engineers, data analysts, and mathematicians use. Both can utilize HQL directly via the REST web service. HQL converts results automatically into native data types (e.g., vectors and matrices in Matlab, series, and data frames in Python/Pandas). Developers can work faster without creating programs that export data in the desired format.
The ASAM ODS Toolbox for Matlab provides the general capability to integrate the Matlab Client into the Test Data Management System. Matlab reads data located within the Test Data Database, and caches required content in memory in known Matlab structures. With Matlab, any information can be manipulated, added, or deleted. See other website.
HQL supports ASAM ODS 5, ASAM ODS 6, and ASAM ATFx (read-only) by default and configuration. Thus, any interfaces, scripts, or applications utilizing HQL can be migrated from ASAM ODS 5 to ASAM ODS 6 by configuration! In addition, it works with all domains (battery, safety, powertrain, …) and all commonly known ASAM ODS Servers, such as Peak ODS Server or AVL Santorin.
HQL establishes the connection with a Basic Authentication and an OAuth 2.0 authentication string. The Basic Authentication string is the standard for ODS. OAuth 2.0 is not yet defined in the standard but can be used with our ODS server via HQL. This allows a single sign-on to be realized.
While ASAM ODS can only handle one transaction per session, HQL provides more flexible ASAM ODS client development by offering improved transaction handling, including the options where 1) HQL controls transactions and 2) HQL supports ad-hoc transactions within a session. and 3) HQL can utilize outside transactions.
An integrated feature of HQL is the export of the application model as an ATFx file, which can be used as a template for exchange or import format definitions or for educational purposes. It may also help users define ad-hoc queries for product or script development.
Another integrated feature of HQL is a standard CSV export option for measured data. This is a quick way to obtain channel data for ad-hoc evaluations with tools such as Microsoft Excel.
Want to know more or have a demo of our powerful query language? Did you wonder how we integrate PowerBI, Kibana, or other dashboards and visuals? It is HQL. Don’t hesitate to contact us!
The ASAM ODS interfaces define interfaces and methods for creating, selecting, updating, inserting, and deleting instances of the ASAM ODS model. Additionally, information about the model and the server-side features and configuration can be retrieved. As the ASAM ODS model is not fixed, the interfaces are generic. This results in complex calling sequences to communicate with the ASAM ODS server.
HQL is a SQL-like query language that encapsulates this complexity into simple strings. For example, look at the code to get a list of names of all available physical units.
The following example shows the JAVA code (without catching exceptions and null objects) for the ASAM ODS call that requests the same data as the HQL query “hql aounit.name”.
AoSession aoSession = ...
// Get the model structure.
ApplicationStructure as = aoSession.getApplicationStructure();
ApplElemAccess aea = aoSession.getApplElemAccess();
// Get the application element.
ApplicationElement ae = as.getElementsByBaseType("aounit")[0];
T_LONGLONG aeId = ae.getId();
// Get the name attribute.
ApplicationAttribute attr = ae.getAttributeByBaseName("name");
String aeName = attr.getName();
// Create the query structure.
QueryStructureExt qse = new QueryStructureExt();
// Request the name of the unit. qse.anuSeq = new SelAIDNameUnitId[1];
AIDName aidName = new AIDName(aeId, aeName);
qse.anuSeq[0] = new SelAIDNameUnitId(aidName,
new T_LONGLONG(), AggrFunc.NONE);
// Initialize the other members of the structure.
qse.condSeq = new SelItem[0];
qse.groupBy = new AIDName[0];
qse.joinSeq = new JoinDef[0];
qse.orderBy = new SelOrder[0];
// Get the result.
ResultSetExt[] res = aea.getInstancesExt(qse, 0);
// Get the names.
String[] names = res[0].firstElems[0].values[0].value.u.stringVal();
One use case for HQL is utilizing one or more test data management systems via a central gateway. In that case, HQL is started as a web service and provides programmatic access via a REST endpoint. This allows any user, script, or application to easily connect to ASAM ODS data. The service is globally available within the enterprise and can be used by engineers without any installation.
HQL is a Java application programming interface that allows access to ASAM ODS servers. As a library, HQL can be integrated into applications to provide ASAM ODS compatibility or support end users in developing software for access to the ASAM ODS data. One of the most common feedbacks about HQL is how it can reduce the number of lines of code and speed up development without knowing ASAM ODS.
HQL is also a standalone program that can connect to any ODS server. It allows the user to input queries in an interactive command-line mode and see the outputs in a tabular textual format. It also enables users to update instances, mass data, upload and download files, and change the application model structure. It lets users quickly explore the test metadata and bulk data with just a few commands. Its similarity to SQL makes the language easy to use and memorize. It can also be used as a prototyping tool that facilitates your queries during development time.
The ASAM ODS specifications adopt vendor-neutral technologies to allow client applications to connect to an ASAM ODS server: RPC, CORBA, and HTTP + Protobuf. To create an ASAM ODS client application, it is necessary to understand the networking technology (CORBA for ODS version 5, HTTP + Protobuf for ODS version 6) and the ASAM ODS API specification.
When the ASAM ODS committee conceived the OO API, CORBA was the de facto solution for connecting distributed systems. CORBA supported multiple programming languages and architectures with an object-oriented design. The emergence of SOAP and REST-based web services may have caused the CORBA standard to lose popularity. For the ASAM ODS standard, sending mass data in a text format (XML or JSON) over HTTP was not an option. CORBA continued to provide programmatic access to an ASAM ODS server. After the Protocol Buffers standard became stable and widely used, the industry used it as the basis for the HTTP client API with version 6. Nevertheless, ODS 5 servers are the most mature and widely adopted products at the time of writing.
The ASAM ODS object-oriented API can be pretty complex, especially for expressing complex queries. Good software engineering practices hide this verbosity and translate requests from the business level into specific CORBA calls. Thus, by collecting experience working on different projects based on ASAM ODS, HighQSoft created a common framework that supports programming with the CORBA API.
When upgrading from an ODS 5 to an ODS 6 server, development teams cannot reuse the client applications. ODS 6 requires a different networking protocol. With further software engineering efforts, hiding the CORBA API with technology-neutral interfaces (Java interfaces or C++ virtual classes, for instance) and data classes is possible. Creating an HTTP-based implementation of these interfaces makes it possible to make such a transition without creating new client applications from scratch.
HighQSoft GmbH
Black-und-Decker-Straße 17c
D-65510 Idstein