This project aims to provide a middleware for industrial automation which realizes Industrie 4.0 concepts using existing technologies like OPC-UA and oneM2M. One essential element of this middleware is a virtual function bus which abstracts from underlying network technologies, similar to the approach chosen in AUTOSAR. Another essential part of BaSyx will be an implementation of the asset administration shell concept that allows access to every information relevant to an asset, as well as access to the asset itself.
The figure above shows a sketch of the planned architecture of the BaSyx runtime environment. The yellow part are the interface layers, and the green part is the runtime and service layer. The Eclipse BaSyx project will consist of the yellow part as a standard, and the green part as a reference implementation.
The Hardware and Operating System Abstraction layer provides a standard interface to the runtime and service layer, such that any implementation of the latter can run on it. This includes, for example, basic services of the operating system, such as resource management and access to networks. Device manufacturers (or 3rd party SW companies) must provide this interface layer in order for devices to be conformal to BaSyx. It is planned to define different conformity classes of this interface. For example, cheaper and resource-conserving devices, which do not offer the full range of capabilities, can be integrated with reduced functionality in BaSyx.
The runtime and service layer can run hardware-independent code, and provides a common set of services that are used to manage the functional components, and implement various basic services. It can be accessed through the BaSyx API, the 2nd large interface layer. There are now different options for applications to run on top of the BaSyx runtime environment. They can use the BaSyx API directly, which will probably the way that applications can get the most advantages out of BaSyx. For legacy applications, it is possible to write wrappers, and for applications that adhere to a certain vendor-specific (or other) standard, a standardized compatibility layer can be used, provided from or 3rd party providers or the vendor itself.