Overview
An Eclipse plugin is used to model applications and physical chassis.
There are two phases to the modelling process. Type modelling and instance modelling. In the type modelling phase, physical (hardware) and software (application) types are created using a UML-like design tool. In the instance modelling phase, these types are "instantiated" into a specific cluster configuration. Instance modelling is done via a graphical abstraction of a physical cluster.
Type and instance modelling are inter-related. For example, the instantiations on a particular node can be abstracted into a particular node "type". A new copy of that node can then be instantiated in one click during instance modelling or via an API call at runtime.
Type Modelling
Types are modelled with more fundamental entities. For example, the applicaton type "Apache" could be modelled with a Service Group type, a Service Unit type, and a Component type. Configuration specific to the "Apache" application can be associated with this new entity through a YANG management file. These sub-entities are then "wrapped up" into a single box in the UML diagram, representing the "Apache" entity. Double-clicking on the Apache Entity expands the box and shows the interior entities via UML and modeless dialog widgets. Every configuration field can be set to a default value for this entity type. There is also a lock icon. If the lock icon is "locked", instance CANNOT change the default value. If the icon is unlocked, instances can configure the value.
There are NO fundamental (hard-coded) entities in the Type modelling. There is only base files "SAFplusEntityDef.xml" and "SAFplusAmf.yang" that define the fundamental SA-forum entities like Applicaton, Service Group, Service Unit, Component, etc.
Types can also associate templatized code. When the code generation phase is executed this templatized code is applied to the complete chassis type and instance configuration to create the output code.
All application modelling is defined by XML files.
- UML
- Nested, recursive (zoom out view is a single entity)
- Export/import
- Applications are made up of entities (SG, SU, comp, custom) which have configuration modeless dialog that is defined by YANG.
- set of YANG config that is associated with a component can be "selected" to be the config for the zoomed out view.
Types can be imported and/or exported.
YANG modelling
- UML to YANG
Cluster modelling
Cluster modelling instantiates defined types. During cluster modelling, any fields defined by the type and "unlocked" can have instance-specific values assigned.
- Based on Eclipse EMF
- graphical chassis representation