Use change as an opportunity
The needs of companies (rules, legal regulations, business models, etc.) can change quickly and must be implemented in short cycles. This applies, in particular, to companies that produce customized products.
The architecture of software solutions must enable rapid adaptations and provide the necessary support.
What hinders the fast implementation of changing business rules or production processes?
We believe coupling is the biggest single problem in large software systems that hinders the rapid implementation of changing business requirements. The coupling in a system grows continuously, if changes and extensions without the necessary foresight are carried out.
A common approach to get the coupling under control is component-based architectures.
Disadvantages of traditional component-based architectures:
- Components may have dependencies.
- Dependencies are injected at runtime in component instances to satisfy dynamic dependencies.
- Dependencies are usually defined in the form of interfaces. Thereby, a dependent component runs the risk of accessing operations that do not concern them.
- The specification of a component is not very compact if several contracts are involved.
- The nesting of components can be confusing.
Event-oriented software architecture can solve these problems
The basic idea of event-based components is simple: Each component – like integrated circuits – has input pins and output pins, and these input and output pins are unidirectional. Unlike conventional components, the input pin only accepts data, and the output pin only delivers data – something like a return value does not exist.
Does not sound very spectacular, but it has a great impact on the software development.
The consistent implementation of an event-oriented software architecture leads to an extremely flexible integration platform for production and logistics processes. Individual components of the system (sensors such as switches, angle step sensors, etc., and actuators such as motors, signal lamps, etc.) are represented by event-based software components. These components are able to transmit and receive signals but have no knowledge of the components that have received or transmitted these signals. As a result, event-based software components can be flexibly used in different scenarios.
As an example, this concept was implemented by “Modulare Standard Applikationen” (MSA) at VolkswagenAG.
- Large number of components for hardware control that can be used immediately (motors, angle step etc.).
- Numerous components for implementing the process logic (timers, value comparisons, conditions, conversions, etc.).
- Editor for the dynamic configuration of the process logic, and of the hardware and the user interfaces.
- Components for communication with other systems via standard protocols (WebServices, FTP, Sockets etc.).
- Integration components for ERP systems (currently Dynamics AX and SAP).
- SDK for easy development of additional components.
- Components can include complex editors for parameterization (for example, monitoring zones for 3D sensors).
- Integrated interprocess communication for distributed parameterization (eg hardware control and visualization on different computers).
- Watchdog for execution, monitoring and updating of parameter settings during operation.
- Central repository for storing parameter settings and defining which parameter settings should be executed on which machines.
- Central reporting of plant monitoring and fault conditions.
Please contact us for detailed information about our integration platform: firstname.lastname@example.org