GitHub

Project is hosted in the Eclipse organization at GitHub.

Eclipse AAS Web Client

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

Information models are created in a decentralized setup and the specific benefits are demonstrated by means of use cases. The aim is to make the Asset Administration Shell a standard as the technical base for Industrial Digital Twins. The Asset Administration Shell (AAS) is the standardized digital representation of the asset, corner stone of the interoperability between the applications managing the manufacturing systems. AAS identifies the Administration Shell and the assets represented by it, holds digital models of various aspects (submodels) and describes technical functionality exposed by the Administration Shell or respective assets [Source: AAS Spec Part 1]. Core elements of AAS are the metamodels, APIs and security. 

Scope

Eclipse AAS Web Client develops and implements a viewer for the Asset Administration Shell models and its published interfaces. As the specifications of the AAS are continuously being further developed, the Eclipse AAS Web Client has to be adapted to the new interfaces and model extensions, as well as new parts e.g., authentication of users and secure transfer of information. 

Description

Eclipse AAS Web Client is a viewer and client for interaction with Asset Administration Shell information models. The data corresponding to the Asset Administration Shell models are exchanged via a REST Interface with Asset Administration Shell servers e.g., Eclipse AASX Server & Eclipse BaSyx. Building upon the REST Interface, Eclipse AAS Web Client is able to show content of the AASs and AAS repositories. As Eclipse AAS Web Client is written completely in JavaScript, HTML5 and CSS which is executed on the client (web browser), no server infrastructure for hosting the Eclipse AAS Web Client is necessary. 

Why Here?

The Eclipse Foundation provides a professional environment (governance, licensing, intellectual property management) for the future development of Eclipse AAS Web Client. These advantages facilitate the usage of an open source, extensible ecosystem in which manufacturers and suppliers including the providers of applications, platforms, and infrastructure, can all participate equally. 

Project Scheduling

Eclipse AAS Web Client and its involved parties intend to move to Eclipse as soon as possible. We hope to have the initial migration of the existing GITHUB repo done until February 2022. 

Future Work

Eclipse AAS Web Client wants to build an open-source community in Eclipse in order to coordinate the building of an extensible ecosystem in which manufacturers and suppliers, including the providers of applications, platforms and infrastructure, can all participate equally. 

There will be close relationships to other open-source projects building upon the Asset Administration Shell standards, e.g., Eclipse AASX Package Explorer, Eclipse BaSyx. 

Mentors
Interested Parties
  • ASENTICS GmbH & Co. KG 
  • Bosch Connected Industry, Robert Bosch GmbH 
  • Festo SE & Co. KG 
  • Homag GmbH 
  • KUKA AG 
  • Lenze SE 
  • PHOENIX CONTACT GmbH & Co. KG 
  • SAP SE 
  • Siemens AG 
  • Schneider Electric SE 
  • VDMA e.V. 
  • Volkswagen AG 
  • ZVEI e.V. 
Initial Contribution

There is a project repository originally hosted at admin-shell-io (https://github.com/admin-shell-io) implementing the Asset Administration Shell that is considered as initial contribution to this project:

web-aas-client: This project provides a viewer for Asset Administration Shells, which can be used client-side - https://github.com/admin-shell-io/web-aas-client 

Source Repository Type

Eclipse DROPS

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Project
Parent Project
Proposal State
Created
Background

Different technologies are developed at different speeds on different platforms, each team with their own toolchain and home-grown scripts. To avoid bottlenecks, DevOps tools must tie all this specific technology together – including the legacy. An efficient DevOps solution should be platform-agnostic, orchestrating a continuous value stream from business owner to end-user, with release visibility and control across all teams, technologies and tools.

ECLIPSE DROPS is a highly scalable solution for Application Release Orchestration, simplifying the deployment, synchronization and tracking of applications in today’s heterogeneous multi-platform and multi-cloud environments. Both applications and data are managed in sync in order to maximize automation of releases and guarantee the reliability of applications in production.

DROPS was originally designed in 2009 by ARCAD Software to respond to a major market need around the secured deployment of composite applications, often comprising ‘legacy’ back end and database together with Web-based front-end.  As provider of the leading DevOps stack for the IBM i platform, ARCAD Software first addressed growing needs within its own customer base: namely, to automate and synchronize the deployment of interdependent back-end and front-end software components, including database upgrades and critical data values, in an enterprise DevOps pipeline based on industry standards.

As regards release management, our main strategy has always been to remain platform agnostic and focus on the ‘orchestration’ of deployments rather than specialize in any particular software development technology. Even if multiple vendors have emerged and in some cases been more relevant in certain dedicated domains, over time, the high-level design of DROPS and its platform agnostic design becomes a key argument for IT departments seeking a single, common deployment solution across all their technologies and platforms.

A key characteristic of the Application Release Orchestration (ARO)market is that each Ops  team has its own specific definition and requirements. The needs of a given Ops team will depend on enterprise expectations, their existing organization and technical heritage. Even at an enterprise level, Application Release Orchestration is an ever-changing world that must adapt to integrate new platforms, communicate with new solutions and commit to delivering the same level of quality to the end-user.

Scope

Eclipse DROPS delivers to Ops teams a single, centralized and open-source solution for managing, building and deploying applications that is wholly independent of the underlying technology being deployed.

Key components of the project include:

  • Eclipse DROPS Server - based on REST APIs communication and built on Equinox – the DROPS server:
    • Manages all the data, 
    • Supports all the configuration actions (Repositories, Users, Rights and Roles Schema, etc)
    • Executes, plans, delegates or monitors deployment operations
    • Interacts with external provisioning or instantiation solutions
    • Provides all the information required to generate statistics and reports
    • Proposes multiple extension mechanisms to interact with instantiation and provisioning solutions, external artifact repositories or technical target services.
  • The RCP-based Eclipse DROPS Studio that provides a rich GUI to manage all configurations and operations
  • The Eclipse DROPS-Agent- based on REST APIs communication, the agent is optional and used to remotely execute the deployment activities
  • A set of Out-of-the-Box starter scripts that could be used to define deployment processes
Description

DevOps is the industry response to the challenge of application availability. It helps businesses respond rapidly to market changes, accelerating the delivery of high-quality software updates to users. It relies on continuous integration, test and delivery to reduce risk and obtain regular and rapid feedback. But in practice, IT teams face considerable barriers to the “continuous” model and many struggle to deliver against objectives and deploy DevOps principles across the enterprise at scale.  Designed to meet the needs of a modern hybrid, enterprise environment, the Eclipse DROPS CE project delivers an open platform for managing, designing, executing and monitoring secured deployment processes and pipelines. The goal of this project is to support a wide range of application release deployment activities on multiple target services regardless of their underlying technology.

Why Here?

From the outset, the Eclipse DROPS Project is strongly based on the Eclipse technology (e.g., Equinox, EMF, Graphiti, RCP, RAP, JETTY),  so when releasing DROPS as open-source it is only natural that we seek to repay the Eclipse community with our work. Another key reason is that the Eclipse Foundation provides the highly professional services and visibility needed  to make the Eclipse DROPS project a true standard in the Application Release Orchestration domain.

Project Scheduling
  • The initial contribution is expected by Q1 2023
  • The first build may be expected by Q2 2023
  • The release cycle for Eclipse DROPS is planned every 3 months
Future Work

The key work ahead must be community building. This includes the creation of:

  • A dedicated user area offering getting started guides, training guides, and use case focused tutorials (How to Cards). 
  • A developer area offering materials such as architecture overviews, API documentation, and documentation on extension mechanisms.

In addition to community development, the main technical improvements in the short term are focused on

  • Interoperability with major cloud players with respect to instantiation and provisioning processes.
  • The ability of cloud service providers to offer Eclipse DROPS As A Service (multi-tenant mode and high availability).
Description

DevOps is the industry response to the challenge of application availability. It helps businesses respond rapidly to market changes, accelerating the delivery of high-quality software updates to users. It relies on continuous integration, test and delivery to reduce risk and obtain regular and rapid feedback. But in practice, IT teams face considerable barriers to the “continuous” model and many struggle to deliver against objectives and deploy DevOps principles across the enterprise at scale.  Designed to meet the needs of a modern hybrid, enterprise environment, the Eclipse DROPS project delivers an open platform for managing, designing, executing and monitoring secured deployment processes and pipelines. The goal of this project is to support a wide range of application release deployment activities on multiple target services regardless of their underlying technology.

Initial Contribution

ARCAD Software plans to donate the source code of the DROPS Solution, a mature Application Release Orchestration Platform, to form the initial basis of Eclipse DROPS

Source Repository Type

Eclipse Novamoon

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

Low Code platforms are now more than trendy.  Providing a development environment used to create application software through a graphical user interface instead of traditional hand-coded computer programming,  a low-coded platform may produce entirely operational applications.

According to gartner 65% of Business applications will be developped using low code technologies. see

https://www.gartner.com/en/newsroom/press-releases/2021-02-15-gartner-forecasts-worldwide-low-code-development-technologies-market-to-grow-23-percent-in-2021. 

Today, several platforms are leading the market, but they all lack openness, they have some vendor lock-in issues including sometimes a strong link to a specific cloud offering.

Scope

Eclipse NovaMoon provides an open source low code platform with all the similar features as the main proprietary low-code platforms, with a goal to help companies to accelerate their digital transformation. 



The application platform runs inside a container (Apache Tomcat based web application) and applications are edited using an Eclipse based IDE,  and in the future, Theia IDE

Description

Eclipse Novamoon offers a full stack low code platform providing all services to build business applications :

  • Low Code back end flows
  • Low code Data access layers to SQL
  • Low Code REST API Connectors (Including Swagger Definition imports)
  • REST API Generator for back end flows (Including the Swagger Definition portal)
  • Low Code Font End Responsive UI Builder
  • Low Code Font End Action Flows
  • Angular Code Generators
  • Android / Apple APK/ IPA package generators
  • PWA Generators
  • Eclipse IDE Plugin to Author Low Code projects

Novamoon Architecture

The platform can hold many projects, isolated by the URL with common requesters, but they can do internal calls to each other.

Custom REST APIs can also be declared to map HTTP calls to any project API. A project uses a YAML based description that configures all technical objects used by the back-end core and the front-end generator. This YAML based description allows usage of source control like GIT.

The back-end YAML descriptor configures properties of Java objects that run on a performance optimized JVM (now Java 17). Java is a robust and optimized stack for years.

The front-end YAML descriptor configures properties of Java or JSON objects that generate all the complex client side (HTML / Typescript / NPM package) without writing a line of code.

A CI module (ready to use with Gradle and CI platforms) allows users to generate and to perform production builds of their front-end applications, then deploy the whole project (front+back) to the integration or production back-end server.

Novamoon Eclipse IDE

  • The IDE is based on an Eclipse Plugin providing all the views and editors to author LowCode projects :
  • Project View listing all projects and Low Code Objects
  • Property view to edit any object property
  • Console views to display logs and other useful information
  • Palette Views to allow user to Drag & Drop object in the project view or directly on the App Canvas
  • Source picker views to allow user to bind data from back low code steps on to another or to bind data from back flows to frontend UI objects
  • Connector Editors to Display Connector data

Novamoon Frontend Low Code

NovaMoon IDE allows you to create a live angular based application on your side browser. Every change is generated, built and loaded in seconds and lives like the production application.

Code Generated on the front end is Standard Angular 13.XX + Type Script Code including all the necessary frameworks.

With low-code objects from the Palette, users can invoke back-end service and bind  each parameter without coding. The call is performed using an integrated SDK and returned values can in turn be binded to any Ul objects or chained to other actions.

The IDE does live builds for development but can also perform production builds and deploy them to a back-end server with a simple 2 clicks process.

Production builds and deployment can also be performed after a GIT push and a CI/CD configured to run the ready-to-use Gradle tasks for build and deploy.

Users have the capacity to customize any part of the code by adding CustomAction (TypeScript code)  and by implementing some custom handlers directly in the application classes. NovaMoon also brings a unique Component architecture that enables some Low Code components to be reused in the same projects or within cross referenced projects.

All iOS / Android builds are automatically handled by the Gradle build tasks or directly by the IDE.

Why Here?

The eclipse Foundation is the perfect place for low code platforms as Eclipse has a long history about application development, and the current Novammon project IDE is based on Eclipse IDE as an Eclipse Plugin.

Project Scheduling

We expect the first initial contribution to be done mid february 2022.  

Future Work

In a  first step Convertigo Employees will contribute to the novamoon platform, to extends customization features and prepare the community to contribute to the project. Next, Theia studio will be integrated to be the next Low Code Authoring Tool.

Initial Contribution

Novamoon initial contribution will be done by transfering the Convertigo Open Source Low Code Platform core  from current AGPL to EPL 2..0 Licences.

Source Repository Type

Eclipse Diafanis

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

Many IoT solutions require complex mathematical calculations to work correctly or make decisions.

This can be a self-flying drone that evaluates objects in recorded videos or images in real time during flight.

However, it can also be a water pump that works independently at a remote location and a technician must be informed in advance before an error most likely occurs and the water pump fails completely.

These IoT devices do not have the computing power to perform these mathematical calculations themselves. Or these IoT solutions, because they are battery powered, can't even do the intensive math calculations because that consumes battery time.

It therefore makes sense to introduce a mathematical engine as a web service that anyone can use. This mathematical engine should be easy for everyone to integrate and easily scalable, e.g. with Kubernetes.

IoT devices can then easily define mathematical functions that they have to perform multiple times in the web service, i.e. f(x1,..,xn) where f is the mathematical function and x1,..,xn is the variable identifier of the function.

The IoT devices can then commission the web service to calculate variables for the function f with specific values ​​for the variables, e.g. x1=3.4456, x2=498547.4646, etc.

The result of the calculations is then returned by the web service and the IoT device can continue to work with the result or make decisions based on the result.

This "remote calculation" saves the load on the IoT devices and saves energy (e.g. battery power).

Scope

Eclipse Diafanis provides a powerful and fast remote math coprocessor service for IoT devices based on a Linux server for x86 (Intel and AMD) and ARM64 processors.

Equipped with a simple interface, it will allow IoT devices to perform complex mathematical operations remotely and very quickly, thus avoiding increasing electrical consumption in IoT devices.

Description

IoT devices only need to pass the mathematical expression and the input values for evaluation to Diafanis. If the mathematical expression doesn't change, the IoT device only needs to give the new input values as required. Diafanis allows IoT devices to scale the number of inputs of their sensing capabilities by moving the computing power required for mathematical calculations to a central platform.

The Eclipse Diafanis web service listens on port 8080 by default. The port can be freely configured. Calculations are then created via HTTPS request.

Example - To create a calculation the IoT device simply calls the following URL:

http://localhost:8080/?call=Diafanis&functionString=-sin(x*cos(x))^(1/y)&numberOfVariables=2&variables=x;y&values=0.5;2&interval=yes

This creates a calculation object for the function "-sin (x * cos (x)) ^ (1 / y)" and immediately performs the calculation with the "2" variables "x; y" for the values "0.5; 2". Variables and values are always separated by a ";". With "interval=yes" it is indicated that in addition to the computer-precise calculation, the upper and lower interval of the calculation is also given. The exact value of the calculation is then in this interval.

In addition, with the calculation you receive a reference to the generated calculation object for the function. From now on you can simply use this reference to get calculations for further values. References are valid for 1 hour, which is extended to 1 hour from the time of access each time a reference is accessed. If only the reference to a calculation object is used, the sometimes very long function does not have to be passed every time. That saves time and computing power.

For example, if you have received a reference "handle_Computation: 2370169936048", simply call up the following URL for a further calculation with the values 0.2 and 2 for x and y:

http://localhost:8080/?call=Diafanis&handle_Computation=2370169936048&values=0.2;2

This allows you to perform complex calculations of any length on the server.

Why Here?

A goal of everyone for the future and the community is to save electricity and ensure sustainability. IoT devices can use less memory and processing power with Eclipse Diafanis when performing complex calculations remotely.

Project Scheduling

Initial contribution in February 2022.

Future Work

Extensions such as matrix operations or other mathematical methods that can be calculated remotely.

Initial Contribution

The initial source code for this web service is on https://github.com/paceval/paceval/tree/main/examples_sources/NodeJS/paceval-service_linux.

Source Repository Type

Eclipse ExpressLy

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

With this restructuring review, we will split the implementation out from the existing Jakarta Expression Language specification project into its own separate Eclipse open source project. Specifically, the directory containing the implementation code (https://github.com/eclipse-ee4j/el-ri/tree/master/impl) will be split from the Jakarta Expression Language project into a separate repository managed by the new project.

Scope

Eclipse ExpressLy provides an implementation of the Jakarta Expression Language specification.

Description

Eclipse ExpressLy implements Jakarta Expression Language, a technology that helps software developers embed dynamically evaluated expressions in things like XML attributes, directly as template text in documents, in annotation attributes and generally as strings in Java code.

Why Here?

Expression Language and its implementation are already here, so it makes sense to continue developing it here. It's not new code, but a restructuring of existing code. This had been done before for several other projects such as Eclipse WaSP and Eclipse Angus.

Project Scheduling

The initial contribution will be done together with the creation of the project, as it's all the code from https://github.com/eclipse-ee4j/el-ri/tree/master/impl. After the project has been created (and seeded with the contents from https://github.com/eclipse-ee4j/el-ri/), the impl folder will be deleted at https://github.com/eclipse-ee4j/el-ri/tree/master/impl and all folders except the impl folder will be deleted at the location of the new project.

Future Work

We'll continue implementing Jakarta Expression Language in the same way as it was done at https://github.com/eclipse-ee4j/el-ri

For the short term this means implementing and releasing the Jakarta Expression Language 5 compatible implementation according to the Jakarta EE specification process.

Project Leads
Committers
Mentors
Initial Contribution

As this is a restructuring, the initial contribution is all the code from https://github.com/eclipse-ee4j/el-ri/tree/master/impl

Source Repository Type

Jakarta Commons

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Is this a specification project?
Patent License
Implementation Patent License
Parent Project
Proposal State
Withdrawn
Background

Jakarta specifications started suffering from repetition of APIs and utility classes that serve the same purpose in different specifications.

The first attempt to solve such an issue resulted in Jakarta Common Annotations. It seems there is now time to enhance the scope and add additional resources to a common project.

Scope

Jakarta Commons provides a shared space for the community to define utilities, annotations and APIs to be used by other Jakarta specification projects.

In scope:

  • Move Jakarta Common Annotations to this project, and release it as a standalone jar (under the same coordinates)
  • Provide common APIs and utilities to increase consistency of Jakarta EE Specifications (such as TypeLiteral/GenericType, JPMS support)
  • Provide multiple artifacts (jars), as useful for specified components

Out of scope:

  • Utilities for implementations (such as codecs, parsing, security)
Description

After cooperating on a few Jakarta EE specifications (and looking into their implementations as well), I have realized there are certain problems solved over and over again. This leads to duplicity of APIs and to inconsistencies (where the same problem is solved differently by each specification). I think this should be remedied, and a common specification should be created to address these common problems.

Whenever you ask a question "there is this nice API in CDI that would be very useful for my standalone specification, how do I re-use it", you may have discovered a component that would fit the Jakarta Commons project. 

 

Why Here?

This project would become part of Jakarta EE platform, so it can only be "here".

Future Work

The following areas are considered for this project (open for discussion/additions):

  • Builder API
  • Generic Type API (mentioned above)
  • Priority utilities (to increase consistency for new projects that want to order by priority)
  • JPMS support - to help with Java module system (if feasible)
  • Java Language Model - CDI Lite is introducing a model that can be used for build time processing. Such a model may be useful for other specifications as well
  • Semantic versioning - possible annotations + processing (such as a maven plugin) to generate artifacts for OSGi 
  • Discovery support (Introspection API) - remove classpath scanning requirements from specifications (maybe similar to what Jandex is doing)

The community base should be members of other Jakarta EE specifications

Description

After cooperating on a few Jakarta EE specifications (and looking into their implementations as well), I have realized there are certain problems solved over and over again. This leads to duplicity of APIs and to inconsistencies (where the same problem is solved differently by each specification). I think this should be remedied, and a common specification should be created to address these common problems.

Whenever you ask a question "there is this nice API in CDI that would be very useful for my standalone specification, how do I re-use it", you may have discovered a component that would fit the Jakarta Commons project. 

 

Initial Contribution

Current code:

  • Jakarta Common Annotations (existing code)

Other should be specified as part of this project.

Source Repository Type

Eclipse CDT.cloud

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

In a nutshell, Eclipse CDT.cloud is an umbrella project for components to build web-based C/C++ tools. These components are integrated into a template tool called CDT.cloud Blueprint.

There is currently a big shift from desktop based tools to web- and cloud-based tools. With the Eclipse Cloud Development top level project and technologies such as Eclipse Theia, Eclipse Che, Eclipse GLSP, openVSX or EMF.cloud, Eclipse is rapidly building up an ecosystem for the creation of cloud-based tools. This ecosystem is augmented by the wider ecosystem of available VS Code extensions and language servers, e.g. clangd for C/C++.

Many of the current adopters of these technologies are embedded vendors or more general companies providing C/C++ tools. Several of these vendors are adopters of Eclipse CDT. As currently identified in the Special Interest Group for embedded development (embedded SIG), there are some missing building blocks for full-fledged C/C++ tooling in the web/cloud. The embedded SIG is identifying these gaps and working on common solutions as joined initiatives. The developed solutions are currently hosted in various places including Eclipse Theia, Eclipse CDT and Github, which makes it hard for adopters to find them.

To address this, the Eclipse CDT.cloud will be an umbrella project hosting the results of these initiatives. It will also be open for technologies in the same context which are contributed independently of the embedded SIG or have already been existing, though.

Scope

The Eclipse CDT.cloud project is about technologies for the development of web- and cloud-based C/C++ tools. It does not aim at providing components that are already available from other open source projects, but rather augment the open source ecosystem with components that are identified to be missing.

The initial scope of the project will include the following sub components, they are described in more detail in the following section:

  • Eclipse Trace Compass Cloud: A web-based version of the existing tracing tool “Trace Compass”

  • CDT GDB-DAP Adapter: An adapter to connect a debugger UI via the debug adapter protocol to GDB debug sessions.

  • Eclipse CDT.cloud Blueprint: A template tool distribution for C/C++ development bundling common building blocks such as a language server, a debugger, a trace view, etc.

However, the scope of the project will be extended by new components once they are required by the project’s stakeholders. These might be the results of current initiatives of the embedded SIG including: A memory inspection view, a context switcher for the clangd language server and support for multiple context debugging.

Description

Eclipse Trace Compass Cloud

Eclipse Trace Compass Cloud provides tools and components that facilitate the adoption of cloud-based trace analysis and visualization use cases.

The scope of the project includes the following:

  • Trace Server Protocol (TSP) specification

  • A client-side library implementation of the TSP in Typescript 

  • A client-side library implementation of the TSP in Python

  • Generic client front-end implementation in Typescript

  • Graphical libraries for specialized visualizations (e.g. Gantt-chart type view)

  • VsCode extension

Even if the Trace Server Protocol can be used for other types of visualization use cases, for example for showing profiling data or memory usage, this is not in scope initially.

The primary purpose of this project is to provide a framework for visualizing traces on a distributed platform. A limitation of monolithic implementations like Trace Compass in its current form is that the front end and the back end need to be on the same machine, as well as the trace. This makes scalability limited to a single node. Another limitation is that Trace Compass’s front-end is coupled to SWT. This works well, in many cases, but when it comes to drawing complex images, it is still using the CPU for rendering assistance. A GPU accelerated solution such as something using WebGL technologies is desirable to maintain graphical scalability on modern 4k++ displays.

This can be used as a way to effectively perform deep dives in larger traces, both in duration and breadth while leveraging modern and common UI widgets. The front end shall be hosted in the project, as well as the protocol but the back-end shall remain in the Eclipse Trace Compass project.

The main functionalities of the viewer are configuration, showing trees, continuous data (plots) and discrete data (graphs). The viewers are to be navigable and time synced allowing nanosecond resolution queries.

This shall be used in a Visual Studio Code extension that will be a front end to Eclipse Trace Compass. The protocol defined shall be openly available too, so others may add custom back ends and front ends, much like the Language Server Protocol (LSP) and Debug adapter protocol (DAP), the Trace Server Protocol (TSP) aims to have reporting primitives sent over a network to other clients. 

The goal of the trace server protocol is identical to that of the LSP and DAP. It would allow many back ends and many front ends to connect together seamlessly. It is key in remaining vendor neutral and truly open that it be hosted in a foundation such as eclipse.

Simpler example implementations shall also be made available in the server, such as a python command line viewer that could be used for CI/CD troubleshooting.

CDT GDB DAP Adapter

The Eclipse CDT GDB Adapter is an implementation of the Debug Adapter Protocol (DAP), allowing the connection of web-based tools to any device supporting GDB. The library can be included into VS Code, Theia or any client that supports DAP. For example, Renesas, ARM and Blackberry/QNX all have VS Code or Theia extensions that can allow the IDE to connect to their respective hardware and ecosystem. Whether your editor is a traditional IDE, or you are using the new generation of editors in the cloud, the adapter is a key piece that allows communication between that editor and GDB.

The Adapter is a library, and therefore enabling technologies, such as extensions, allow the library to be used in those editor/IDEs.This part of the project will therefore include such extensions and integrations as either examples or published products. Therefore, in addition to the third-party adapters that are built on top of CDT GDB Adapter, the adapter is also delivered as an extension for Theia via the Open VSX Registry and is expected to be delivered as an extension for VS Code in the near future.

Eclipse CDT.cloud Blueprint

CDT.cloud Blueprint is a template tool for building custom, web-based C/C++ tools. It is made of existing open source components and provides a typical C/C++ IDE based on the Eclipse Theia platform. This includes C/C++ language features, a language server (clangd), debugging support, memory debugging and a tracing view. It is meant to serve as a starting point for the implementation of domain-specific custom tools. For a simple showcase, CDT.cloud Blueprint can be easily downloaded and installed on all major operating system platforms.

CDT.cloud Blueprint is not a production-ready product. Therefore, it is also not meant to be a replacement for Eclipse CDT or any other IDE (yet).

As part of the CDT.cloud project, the Blueprint will serve as an integration tool that integrates other parts of CDT.cloud together with parts from outside the project. It therefore also ensures compatibility of the involved projects and can serve as a kind of simultaneous release.

Why Here?

The Eclipse Foundation provides a well-defined open source governance structure and has been a good place for many development tools such as Eclipse CDT. The Eclipse Cloud Development (ECD) working group facilitates the development of cloud development tools and provides a diverse and growing community. Being part of the ECD working will increase visibility and provide opportunities for collaborations and will help the ecosystem to grow, especially in the embedded domain.

Project Scheduling

H1 2022: Initial contribution of all components

H2 2022: Simultaneous release via CDT.cloud Blueprint

Future Work

Extend the project with existing and new emerging components, e.g. a memory inspection view, a context switcher for the clangd language server and support for multiple context debugging.

Mentors
Interested Parties
  • EclipseSource

  • Ericsson

  • STMicroelectronics

  • Ecole Polytechnique Montreal (Dorsal Lab)

  • Auriga

  • Efficios

  • Brock University (Prof Naser Ezzati)

  • ARM

  • Renesas Electronics

  • Kichwa Coders

  • KTH (Prof. Artho)

Eclipse AAS Model for Java

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

Information models are created in a decentralized setup and the specific benefits are demonstrated by means of use cases. The aim is to make the Asset Administration Shell a standard as the technical base for Industrial Digital Twins. The Asset Administration Shell (AAS) is the standardized digital representation of the asset, corner stone of the interoperability between the applications managing the manufacturing systems. AAS identifies the Administration Shell and the assets represented by it, holds digital models of various aspects (submodels) and describes technical functionality exposed by the Administration Shell or respective assets. Core elements of AAS are the metamodels and serializations, APIs, and security.

Scope

Eclipse AAS Model for Java provides enterprise-ready Asset Administration Shell (AAS) metamodels, AAS submodels, transformation libraries (from/to other industry standards such as AutomationML, OPC UA, …), serializers, and validators based on the specifications of the AAS.

 

In scope of this project Eclipse AAS Model for Java are the:

  • Implementation of the AAS metamodel
  • Implementation of tools for the automated generation of libraries containing all classes, properties, and enumerations of the Asset Administration Shell (AAS) metamodel
  • Implementation of serialization and transformation libraries of AAS for other standards such as OPC UA and AutomationML
  • Implementation of tools to validate AAS models
Description

Eclipse AAS Model for Java implements the specification of the Asset Administration Shell (AAS) such as metamodels, submodels, serialization and deserialization modules, validators, and transformation libraries based on the AAS specifications. It also contains all classes and properties as defined by the document 'Details of the Asset Administration Shell' published on www.plattform-i40.de. 

The Eclipse AAS Model for Java projects are focusing on the following features / functionalities:

  • AAS Java Generator: The Java Generator automatically updates AAS Java Model classes and interfaces upon change in the specification documents.
  • AAS Java Model: The AAS Java Model enables users to model and to represent their Digital Twins using AAS metamodels and submodels.
  • AAS Java Serializer: The AAS Java Serializer enables users to serialize the AAS model into JSON, RDF, XML, AASX, OPC UA, AutomationML. This feature is necessary to support the import/export of AAS from/to these formats and validate them.
  • AAS Transformation Library: The AAS Transformation Library brings the content from existing industry-standards such as OPC UA and AutomationML to the AAS.
Why Here?

The Eclipse Foundation provides a professional environment (governance, licensing, intellectual property management) for the future development of Eclipse AAS Model for Java. These advantages facilitate the usage of an open source, extensible ecosystem in which manufacturers and suppliers including the providers of applications, platforms, and infrastructure, can all participate equally.

Project Scheduling

Eclipse AAS Model for Java and its involved parties intend to move to Eclipse as soon as possible. We hope to have the initial migration of the existing GitHub repo done until November 2021.

Future Work

Eclipse AAS Model for Java wants to build an open source community in Eclipse to coordinate the building of an extensible ecosystem in which manufacturers and suppliers, including the providers of applications, platforms and infrastructure, can all participate equally.

There will be close relationship to other activities that also aim for open source approaches, for example Gaia-X, International Data Spaces (IDS), Eclipse BaSyX, CATENA-X (TRACTUS-X), Open Manufacturing Platform (OMP), Open Industry 4.0 Alliance and the Digital Twin Consortium.

Description

Eclipse AAS Model for Java implements the specification of the Asset Administration Shell (AAS) such as metamodels, submodels, serialization and deserialization modules, validators, and transformation libraries based on the AAS specifications. It also contains all classes and properties as defined by the document 'Details of the Asset Administration Shell' published on www.plattform-i40.de. 

The Eclipse AAS Model for Java projects are focusing on the following features / functionalities:

  • AAS Java Generator: The Java Generator automatically updates AAS Java Model classes and interfaces upon change in the specification documents.
  • AAS Java Model: The AAS Java Model enables users to model and to represent their Digital Twins using AAS metamodels and submodels.
  • AAS Java Serializer: The AAS Java Serializer enables users to serialize the AAS model into JSON, RDF, XML, AASX, OPC UA, AutomationML. This feature is necessary to support the import/export of AAS from/to these formats and validate them.
  • AAS Transformation Library: The AAS Transformation Library brings the content from existing industry-standards such as OPC UA and AutomationML to the AAS.
Mentors
Interested Parties
  • ASENTICS GmbH & Co. KG
  • Festo SE & Co. KG
  • Fraunhofer-Gesellschaft
  • Industrial Digital Twin Association e.V.
  • Lenze SE
  • PHOENIX CONTACT GmbH & Co. KG
  • SAP SE
  • Volkswagen AG
  • ZVEI e.V. 
Initial Contribution

There is a project repository originally hosted at admin-shell-io (https://github.com/admin-shell-ioimplementing the Asset Administration Shell that is considered as initial contribution to this project. 

  • AAS Model for Java
    • admin-shell-io/java-generator: AAS model generator for Java (github.com)
    • admin-shell-io/java-serializer: AAS model serializer for Java (github.com)
    • admin-shell-io/java-model: Classes of the AAS model implemented for Java (github.com)
    • admin-shell-io/aas-transformation-library: AAS transformation library (github.com, fork from SAP/aas-transformation-library
Source Repository Type

Eclipse AASX Package Explorer

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

Information models are created in a decentralized setup and the specific benefits are demonstrated by means of use cases. The aim is to make the Asset Administration Shell a standard as the technical base for Industrial Digital Twins. The Asset Administration Shell (AAS) is the standardized digital representation of the asset, corner stone of the interoperability between the applications managing the manufacturing systems. AAS identifies the Administration Shell and the assets represented by it, holds digital models of various aspects (submodels) and describes technical functionality exposed by the Administration Shell or respective assets. Core elements of AAS are the metamodels and different serializations, APIs and security.

Scope

Eclipse AASX Package Explorer provides a set of tools and components with graphical user interface meant for experimenting and demonstrating the potential of Asset Administration Shells targeting tech-savvy and less technically-inclined users.

Eclipse AASX Package Explorer aims at the development and implementation of tools and components based on the Asset Administration Shell specifications. In scope of this project are the development and implementation of modular tools and components such as Graphical User Interface to view and edit AAS. The Eclipse AASX Package Explorer targets the exchange (import and export) of the AAS and AAS submodels in different formats (e.g., AASX files, ECLASS, OPC-UA Nodeset, AutomationML, ..). Eclipse AASX Package Explorer aims at exchanging such information in a secure manner.  

Description

Eclipse AASX Package Explorer is a viewer / editor for the Asset Administration Shell.  Eclipse AASX Package Explorer is a tool with graphical user interface meant for experimenting and demonstrating the potential of Asset Administration Shells targeting tech-savvy and less technically-inclined users. The Eclipse AASX Package Explorer also includes an internal REST server and OPC UA server for the loaded .AASX.

Eclipse AASX Package Explorer accelerates the development of digital twin technologies based on standards such as the Asset Administration Shell and drives its adoption in the market. As a result, the Eclipse AASX Package Explorer supports that Digital Twins technology can be easily used and deployed into existing solutions and processes with little IT infrastructure investment.  

Why Here?

The Eclipse Foundation provides a professional environment (governance, licensing, intellectual property management) for the future development of Eclipse AASX Package Explorer. These advantages facilitate the usage of an open source, extensible ecosystem in which manufacturers and suppliers including the providers of applications, platforms, and infrastructure, can all participate equally.

Project Scheduling

Eclipse AASX Package Explorer and its involved parties intend to move to Eclipse as soon as possible. We hope to have the initial migration of the existing GitHub repo done until November 2021.

Future Work

Eclipse AASX Package Explorer wants to build an open source community in Eclipse in order to coordinate the building of an extensible ecosystem in which manufacturers and suppliers, including the providers of applications, platforms and infrastructure, can all participate equally.

There will be close relationships to other activities that also aim for open source approaches, for example GAIA-X, International Data Spaces (IDS), CATENA-X (TRACTUS-X), Open Manufacturing Platform (OMP), Open Industry 4.0 Alliance and the Digital Twin Consortium.

Mentors
Interested Parties
  • ASENTICS GmbH & Co. KG
  • Festo SE & Co. KG
  • Homag GmbH
  • Industrial Digital Twin Association e.V.
  • KUKA AG
  • Lenze SE
  • PHOENIX CONTACT GmbH & Co. KG
  • Robert Bosch GmbH
  • SAP SE
  • Siemens AG
  • Schneider Electric SE
  • VDMA e.V.
  • Volkswagen AG
  • ZVEI e.V.
Initial Contribution

There is a project repository originally hosted at admin-shell-io (https://github.com/admin-shell-io) implementing the Asset Administration Shell that is considered as initial contribution to this project: 

  • AASX Package Explorer: AASX Package Explorer is a C# based viewer / editor for the Asset Administration Shell - https://github.com/admin-shell-io/aasx-package-explorer
Source Repository Type

Eclipse Velocitas

This proposal is in the Project Proposal Phase (as defined in the Eclipse Development Process) and is written to declare its intent and scope. We solicit additional participation and input from the community. Please login and add your feedback in the comments section.
Parent Project
Proposal State
Created
Background

Traditionally the automotive industry was and still is centering around the hardware of vehicles and the corresponding hardware development and life-cycle management. Software, however, is gaining more and more importance in vehicle development and over the entire vehicle lifetime. Thus, the vehicle and its value to the customer is increasingly defined by software. This transition towards so-called software-defined vehicles changes the way how to innovate, how to code, how to deliver and how to work together. It is a change across the whole mobility value chain and life-cycle: from development and production to delivery and operations of the vehicle.

Scope

Eclipse Velocitas provides an end-to-end, scalable, modular and open source development toolchain for creating containerized and non-containerized in-vehicle applications. This will be conducted by bringing together contributors from the automotive industry, as well as tech players.

Description

Eclipse Velocitas provides an end-to-end, scalable, modular and open source development toolchain for creating containerized and non-containerized in-vehicle applications.

Currently, the automotive industry is facing some revolutionary changes. This includes the clear trend towards electric vehicles as well as the rise of self-driving capabilities. One very important, yet often underestimated trend is the change in value creation from hardware-heavy to software-defined features and business models, towards so called software-defined vehicles.

This project tries to:

  • contribute to amplify the trend towards software-defined vehicles by providing a development environment for in-vehicle applications that offers a comfortable, fast and efficient development experience
  • pursue this goal in an open ecosystem with open source elements created by manifold players of the automotive industry and beyond in order to shape and boost open de-facto standards
  • provide a center of gravity of next generation automotive development environments with a lively community of developers, stakeholders and users
Why Here?

The Eclipse SDV community aims to bring together the domains of automotive software, cloud-native and IoT. Eclipse Velocitas will contribute to the trend of bringing cloud-native and IoT technologies and principles into the automotive software industry. In doing so, it will not only use and support current Eclipse projects (like e.g. Eclipse Kuksa), but also draw attention of automotive players currently not active in the Eclipse community. The development environment created will be one pillar for building customized, proprietary as well as open-sourced ecosystems around the software-defined vehicle.

Project Scheduling
  • Initial contribution expected by Q3 2022
  • Release cycles are planned every 3-6 months
  • Release planning will be conducted together with corresponding Eclipse projects
Future Work

After open sourcing we plan to introduce the following

  • Additional language support (e.g. C++, Rust, Go ...)
  • Extend logging and monitoring to non local devices and/or environments

 

Committers
Gabriela Kreyßing
Ebrahim Ameen
Markus Petke
Sebastian Doell
Mladen Milutinovic
Daniel Lueddecke
Christian Fraas
Mentors
Interested Parties

ETAS GmbH, Microsoft, Robert Bosch GmbH

Initial Contribution

Python SDK and template repository containing:

  • Sample in-vehicle application implementation to allow easy ramp-up of developers into the software defined vehicle ecosystem development model
  • Integration of vehicle model into developer IDE to directly interface with APIs and data
  • Visual Studio Code dev container to simplify the developer workspace setup for in-vehicle application development
  • Out of the box Github workflow implementations and required Github actions to
    • Build a container
    • Test the in-vehicle application (component, integration and vulnerability)
    • Document and visualize the overall test results
    • Publish the build image
Source Repository Type