The MORYX AbstractionLayer is the environment for the digital twins of resources and products. It defines the domain independent meta model and enables applications to model their physical system and product portfolio as typed objects. It thereby makes other modules hardware independent by encapsulating details of the underlying structure and devices. Like the platform version 5.0 of the AbstractionLayer is focused on the open source community and we are still applying the final touches, while the in-house stable version powers a range of different applications.
Links
If you want to start developing with or for MORYX, the easiest way is our template repository. It comes with two empty solutions, the necessary package feeds and preinstalled empty MORYX runtime. Add projects and packages to backend and frontend solutions depending on your specific requirements. Install stable releases via Nuget; development releases are available via MyGet.
Whether you want to debug and experiment with this repository or build an application based on the Abstraction Layers packages you need to follow a few simple steps to setup each of the modules. For both modules this requires the package Moryx.Runtime.Maintenance.Web and its database configuration.
Product Management:
- Create or configure the database for Moryx.Products.Model using the Maintenance
- Configure the storage mapping for your domain objects. This is necessary to store, load and use the objects within MORYX.
Resource Management:
- Create or configure the database for Moryx.Resources.Model
- Execute the
ResourceInteractionInitializer
from ResourceManager console to provide the endpoint for the resource configuration UI.
The Abstraction Layer defines the domain independent model of assets, products, processes and many more. It is the foundation for compatible models of systems and hardware independence of other modules.
The Resource Management holds the object graph representing the physical system. It maintains the database entities for the object graph in the background and reconstructs the object graph upon boot. It also provides the API for other modules to interact with resources based on their implemented interfaces and supports resource look-up by various conditions or capabilities.
The Product Management holds all product variants, created instances of those variants and recipes how to create an instance. It provides an API giving access to product types, instances, recipes and workplans.
To start using the AbstractionLayer for your own projects you can jump into these tutorials: