Reviews run for a minimum of one week. The outcome of the review is decided on this date. This is the last day to make comments or ask questions about this review.
Eclipse TRACE4CPS (TRACE) originates from a concept tool which was initially designed in 2012 in a research collaboration between ASML, the ESI (Embedded Systems Innovation) joint research center of TNO (the Netherlands Organisation for Applied Scientific Research), and the TU/e (Eindhoven University of Technology). TRACE is used to visualize execution traces of cyber-physical systems (e.g., wafer scanners, professional printers, pick-and-place equipment and medical scanners), which typically contain information from multiple domains (software, mechatronics, etcetera). During the following years, research projects with ESI, the TU/e and Océ Technologies B.V. (now Canon Production Printing) have extended TRACE with analysis capabilities that are tailored to performance engineering. TRACE is currently used by several industrial manufacturing equipment companies such as Canon Production Printing, ASML, and Nexperia.
Eclipse TRACE4CPS (TRACE) maintains and evolves a visualization and analysis tool for the performance engineering of cyber-physical systems. It has a strong focus on industrial applicability. The tool supports visualization of concepts such as events, claims on resources, dependencies, and continuous signals. TRACE typically works on a single execution trace, or, in the very specific case of distance analysis, on a handful of execution traces. Extensions for visualization and analysis of multiple/many execution traces are out of scope.
There are many reasons why a system’s behavior over time is difficult to understand or, worse, confusing – even when the system is performing as designed. An example is a situation in which many concurrent activities share resources. Unforeseen interactions may arise due to the specific timing of the activities. Moreover, if the timing of the activities changes (e.g. due to an upgrade to the computational platform), the interactions may also change, which could result in significantly different behavior. Insight into the hows and whys of a system’s behavior over time is of paramount importance for making effective (design) choices and trade-offs in all phases of the system lifecycle, from the design of a new system to the maintenance of an old legacy system. The TRACE tool can help with this.
The TRACE tool works with execution traces. These capture (a single) system behavior over time. An execution trace contains time-stamped and user-annotated data for claims on resources, events and continuous signals. This execution trace concept is generic, which makes TRACE widely applicable:
- All levels of abstraction: the TRACE format can capture all levels of abstraction, from low-level embedded activities to system-level activities.
- Domain-independent: the TRACE format is domain-independent but nevertheless has the means to be tailored to a specific domain via the user-defined attributes.
- Source-independent: TRACE input can be created from any source, e.g. from the log files of legacy systems or from a discrete-event simulation model.
The TRACE tool provides insights into the system dynamics of all kinds of systems through the visualization and analysis of execution traces. The TRACE Gantt chart view offers coloring, grouping and filtering options. This visualization alone is already very powerful and can bring quick insights into the system dynamics. TRACE also provides several analysis methods, which sets it apart from other Gantt-chart visualization tools.
- Critical-path analysis can be used to detect activities and resources that are bottlenecks for performance.
- Distance analysis can be used to compare execution traces with respect to structure, e.g. to check a model trace against an implementation trace.
- Runtime verification provides a means to formally specify and verify the properties of execution traces using temporal logic. It is useful for expressing and checking performance properties, e.g., “the processing latency is at most 50 ms.”
- Latency, throughput and work-in-progress analysis provides built-in methods to derive these properties from an execution trace.
- Behavioral analysis can be used to visualize repetitive / cyclic patterns that often are present in systems such as image-processing pipelines and manufacturing machines.
- Resource-usage analysis can quickly give insights into the details of the resource usage.
The TRACE tool and the underlying concepts are relatively easy to learn and the TRACE input is easy to use.
The objective is, together with diverse parties interested in the use of TRACE, to create a larger community around TRACE. The aim is to make it easier for all parties to contribute together to the development of the tooling in an open setting, and to enable managed open source support by third parties. TRACE should not be longer seen as research tool but should receive more industrial focus. Therefore, TNO believes the Eclipse Foundation is an excellent fit for the future of TRACE.
The initial contribution of the TRACE project is the full TRACE source, including source code (Java) and documentation, more specifically:
- Core library with TRACE domain model, I/O functionality, and analysis algorithms;
- Visualization library with generic visualization functionality;
- UI plugin that provides the TRACE-Eclipse UI (editors and views);
- Plugins for the temporal-logic specification DSL (based on Xtext);
- Library with command-line tooling for temporal-logic checking;
- Several plugins with unit tests;
- TRACE user documentation (included in the UI plugin as Eclipse on-line help contribution);
- Plugin with extensions of the JFreeChart visualization library;
- Several examples.
TNO is the copyright holder of the code and the other artifacts.
TRACE requires the following other toolsets, to be downloaded separately from their original download location:
- Eclipse Modeling Framework (EMF);
We used the Eclipse Dash License Tool (github.com/eclipse/dash-licenses) to analyze the dependencies of TRACE. The list below excludes all approved dependencies and only lists the dependencies that require investigation.
ASM - 3-Clause BSD License
- maven/mavencentral/org.ow2.asm/asm-tree/7.2, unknown, restricted, none
- maven/mavencentral/org.ow2.asm/asm/7.2, unknown, restricted, none
- maven/mavencentral/org.ow2.asm/asm-commons/7.2, unknown, restricted, none
- maven/mavencentral/org.ow2.asm/asm-analysis/7.2, unknown, restricted, none
JFreeChart - LGPL
- p2/orbit/p2.eclipse-plugin/org.jfree.jfreechart.swt/184.108.40.206011261203, unknown, restricted, none
- p2/orbit/p2.eclipse-plugin/org.jfree.jfreechart/220.127.116.11011261203, unknown, restricted, none
- p2/orbit/p2.eclipse-feature/org.jfree.jfreechart.feature/18.104.22.168011261203, unknown, restricted, none
- p2/orbit/p2.eclipse-plugin/org.jfree.jcommon/22.214.171.124011261203, unknown, restricted, none
- maven/mavencentral/com.google.code.findbugs/jsr305/3.0.2, LGPL-2.0, restricted, emo_ip_team
- maven/mavencentral/com.google.guava/listenablefuture/9999.0-empty-to-avoid-conflict-with-guava, unknown, restricted, none
- maven/mavencentral/org.codehaus.mojo/animal-sniffer-annotations/1.17, unknown, restricted, none
- maven/mavencentral/com.google.errorprone/error_prone_annotations/2.2.0, unknown, restricted, none
- maven/mavencentral/org.checkerframework/checker-qual/2.5.2, unknown, restricted, none
The community around developing the code consists of:
- scientific programmers working for ESI (TNO);
- software programmers working for Altran (software house);
- students and PhD candidates from the TU/e.
TRACE is currently closed source and owned by TNO. Use of TRACE and access to source code is now permitted to other parties under the so called “ESI pilot license”, a software evaluation license in which is stated that TNO holds the intellectual property rights on the software code and the user is allowed to use the software for evaluation purposes, explicitly excluding any liability to and warranty by TNO. Typically, a bilateral software evaluation and confidentiality agreement for a period of one year is set up for each evaluation pilot.
The current licensing terms are:
NEDERLANDSE ORGANISATIE VOOR TOEGEPAST-NATUURWETENSCHAPPELIJK ONDERZOEK TNO (Netherlands Organization for applied scientific research TNO), a legal entity by public law (i.e. the TNO-wet) duly organized and existing under the laws of the Netherlands, hereinafter referred to as “TNO”, has developed and holds certain intellectual property rights on the software code.
The user shall not (and shall not allow any third party to) commercialize, distribute, sell, sublicense, rent, lease or contribute to the open source the source code (or any portion thereof), and remove any product identification, proprietary, copyright or other notices contained in the software code, without permission of TNO.
2 USE AND LICENSE
TNO grants a non-sublicensable, non-transferable, non-exclusive right to use the software code for its own internal (evaluation) purposes. The rights granted hereunder are non-exclusive and nothing hereunder shall be deemed to limit TNO’s ability to enter into any type of agreement with any other party anywhere in the world.
The user shall ensure that the software code does not become subject to any lien or encumbrance and shall not use the software code as collateral for any transaction.
TNO has and will retain all rights, title and interest in and to software code (including, without limitation, all patent rights, copyrights, trademarks, related goodwill, and confidential and proprietary information); and (b) all modifications to, and derivative works based upon, the software code, regardless of the party creating such.
Any third-party module including any open source elements (if any) bundled with specific terms and conditions, are governed exclusively by those separate terms and conditions.
TNO will be hold harmless from and against any and all costs, damages, losses, liability or expenses (including reasonable attorneys’ fees) arising from the use of the software code (including without limitation any actions arising from acts or omissions of the user’s employees or agents).
TNO shall not be liable for any loss of use, lost data, failure of security mechanisms, interruption of business, or any indirect, special, incidental or consequential damages of any kind (including lost profits), regardless of the form of action, whether in contract, tort (including negligence), strict liability or otherwise, even if informed of the possibility of such damages in advance.
The software code is provided on a strict “as is” basis, without warranty of any kind. The user acknowledges that its functionality not intended for product development or commercial use, only for evaluation and testing purposes. The user acknowledges that the functionality may not work properly. TNO does not warrant that user’s use of the functionality will be uninterrupted or error-free.
The user agrees that all inventions, know-how, business, technical and financial information it obtains regarding the software code constitute the confidential property of TNO. The user will hold in confidence and not use or disclose any confidential information except as expressly permitted by TNO. The user’s nondisclosure obligation shall not apply to information which the user can document: (i) is or has become public knowledge through no fault of the user; or (ii) is required to be disclosed pursuant to a regulation, law or court order (but only to the minimum extent required to comply with such regulation or order and with advance notice to TNO). The user acknowledges that disclosure of confidential information would cause substantial harm to TNO that could not be remedied by the payment of damages alone, and therefore that upon any such disclosure by the user, TNO shall be entitled to seek appropriate equitable relief.
This license should be replaced by a permissive software license, preferably the Eclipse Public License 2.0.
An internet search provided no clear conflicts.
The initial contribution is scheduled for 2021 Q3. It will include a fully compiling and tested version of the TRACE product. The first release as an Eclipse project is foreseen for 2021 Q4.
There is a backlog of short-term feature extensions and improvements which is currently (planned to be) worked on:
- UI improvements, including support for improved navigation in the visualization, bookmarking mechanism, improved rendering of certain parts of the visualization, re-running checks from the ETL result view.
- Improvements of existing features, including improved validation in the temporal-logic DSL, providing the temporal implicant for non-satisfied properties, inclusion mechanism in the temporal-logic DSL to improve re-use.
- Bug-fixes for reported issues.
We foresee that, in the future, TRACE will be extended to support more diverse industry application. By extending to more diverse domains, the tool will become more generically applicable and thereby more appealing. To build up a growing user community, TRACE will be applied in projects together with industrial partners, closely aligning with addressing their daily development challenges. Furthermore, knowledge institute ESI (TNO) will actively disseminate the tool and its benefits with the high-tech systems eco-system.
Finally, the project aims to realize a support platform for the tool addressing bug-fixing, regular builds following the Eclipse release cycle, manuals and instruction material. The grand idea is that this platform will enable commercial users (industry, high-tech companies) to commission proprietary software partners (e.g. software houses) to support, extend and improve TRACE.