Title: Model Driven Architecture, Control Systems and Eclipse
1Model Driven Architecture,Control Systems and
Eclipse
2Click here to add your title
- Click here if you want to add some text.
3Overview
- Model Driven Architecture
- Control Systems
- Eclipse
- Eclipse Modeling Framework
- Illustration
4Model Driven Architecture (MDA)
- Conceived by the Object Management Group (OMG)
group - The approach suggests platform-independent models
(PIM) - High level of abstraction
- Contain the domain knowledge
- Dont contain specifics of a particular
technology, middleware, framework, - Platform-specific models (PSM) are generated in a
systematic way from the PIM - It is possible to enforce
- Architectural constraints (e.g., dependency
between layers, ) - Consistent implementation of design patterns
(getter/setter methods for properties, singleton,
factory, ) - naming conventions (e.g., fieldName not
FIELD_Name or FieldName) - coding guidelines
- Generator does not produce accidental errors
either things are always right or always wrong. - For more information, please refer to Markus
Völters Sunday tutorial on MDA (link at the end).
5Model Driven Architecture
Source Markus Völters tutorial on MDA
6Model Driven Architecture
Source Markus Völters tutorial on MDA
7Control Systems
- Multiple platforms(servers, clients, real-time
controllers, ) - Different middleware (CORBA, DCOM, )
- Different frameworks (J2EE, .NET, )
- Various devices (serial, GPIB, VME, )
- Relatively simple models, but lots of code
- Requires the following to be synchronized
- Configuration database
- Communication protocol implementations
- User interface layout
- Service implementation
8Cosylabs effort so far
9Cosylabs effort so far
10Eclipse
- Java based and widely used development
environment - Extensible through plug-ins.
- Plug-ins for modeling are avaiable
- Eclipse Modeling Framework (EMF)
- Model Driven Development integration project
(MDDi)
11Eclipse Modelling Framework (EMF)
- EMF is a modeling framework and code generation
facility for building tools and other
applications based on a structured data model - Provides classes for visual editors for the
models imported into the framework - Provides support classes for code generators
12Asyn Device Support
- Library for device communication
- Primarily for EPICS, but reusable elsewhere
- Sending commands and receiving responses from
devices via GPIB or serial links - This is not always trivial (e.g., device crashes,
timeouts, protocol errors, ) - Allows connecting EPICS records to command
strings - The code may become hard to mantain
- A simpler model could be used to describe the
driver
13Device model
14Illustration
- Generating the generator
- Using Eclipse EMF
- Using Java Annotations
/ _at_model type"Command"
containment"true" / Command
getCommands() / _at_model
type"Property" containment"true"
/ Property getProperties()
15Model Driven Asyn Driver tool
- Eclipse-based visual composition facility for
Asyn drivers - Allows for parameter editing
- Possible future development
- Support for code generation
- Complete model implementation
16(No Transcript)
17(No Transcript)
18(No Transcript)
19Conclusion
- Eclipse community is not ignoring the MDA
- New projects are started with MDA in mind
- Generators remain an interesting topic
- The prototype presented proves the concept of
Eclipse based MDA solutions for control systems
20References
- Markus Völter, Tutorial on MDA http//www.voelter.
de/data/presentations/MDDoCBDS.ppt - Object Management Group Model Driven
Architecture, http//www.omg.org/mda/. - Dan Matheson et al., Managed Evolution of a
Model Driven Development Approach to
Software-based Solutions, OOPSLA GPCE Workshop
2004. - K. Žagar et al., The Control System Modeling
Language, ICALEPCS2001, San Jose, USA October
2001.