SoMoX/Development/SAMM to PCM Migration
Development Notes
ComponentType
- in SAMM: Super class of PrimitiveComponent and CompositeComponent
- in PCM: Enumeration type and NOT super class of basic and composite component!
-> be carefull when using automatic organize imports in eclipse!
CompleteComponentType vs. RepositoryComponent vs. ImplementationComponententType
In the Q-Impress deliverable, the mapping table between SAMM and PCM maps a SAMM ComponentType to a PCM CompleteComponentType. This is not valid for SoMoX because a CompleteComponentType is not compatible with an ImplementationComponentType or a BasicComponent. The latter is required to reference ServiceEffectSpecifications (SEFF) later on. One should use either a BasicComponent or a RepositoryComponent, depending on the requirements of the actually migrated code.
Interfaces
When the SAMM metamodel has been created, it was derived from the "simple" palladio interfaces. Meanwhile, the palladio meta model has been enhanced to specify different types of interfaces. At least event and operational interfaces should be treated explicitly.
Mapping
GASTBehaviourRepository -> SEFF2JavaAST
GASTBehaviour -> SEFF2MethodMapping
GASTBehaviourStub -> ServiceEffectSpecification/ResourceDemandingSEFF
GASTBehaviourStub.getName() -> ???
Mapping of SAMM to PCM
SAMM | PCM |
---|---|
Behaviour package | |
Behaviour | covered by ServiceEffectSpecification and RD-SEFF |
ComponentTypeBehaviour | N/A |
OperationBehaviour | ServiceEffectSpecification, extended as RD-SEFF |
Deployment package | |
Service | Allocation Context |
Cache | N/A |
Container | ResourceEnvironment |
ExecutionResource | N/A |
HardwareDescriptor | ProcessingResourceSpecification |
HardwareDescriptorRepository | ResourceRepository |
Memory | N/A |
MemoryDescriptor | N/A |
MemoryResource | N/A |
NetworkElement | N/A |
NetworkElementDescriptor | N/A |
NetworkInterface | N/A |
NetworkInterfaceDescriptor | N/A |
NetworkResource | CommunicationLinkResourceSpecification (partially) |
Node | ResourceContainer |
PassiveResource | PassiveResource (partially) |
Processor | ProcessingResourceType |
ProcessorCore | N/A |
ProcessorDescriptor | N/A |
SchedulingPolicy | SchedulingPolicy |
StorageDevice | ProcessingResourceType |
StorageDeviceDescriptor | ProcessingResourceSpecification |
StorageResource | N/A |
TargetEnvironment | ResourceEnvironment |
TLB | N/A |
Static package | |
CollectionDataType | CollectionDataType |
ComplexDataType | CompositeDataType |
ComponentEndpoint | No class exists for this (not necessary as only strongly distinguished connectors (assembly/deleagtion) exist) |
ComponentType | BasicComponent or RepositoryComponent (original mapping: CompleteComponentType) |
CompositeComponent | CompositeComponent |
CompositeStructure | ComposedStructure |
Connector | AssemblyConnector/DelegationConnector |
EndPoint | for AssemblyConnector: Association; for Assembly-Context: RequiredRole and ProvidedRole |
Entity | Entity |
EventPort | N/A |
InnerElement | InnerDeclaration |
Interface | Interface |
InterfacePort | ProvidedRole/RequiredRole |
MessageType | Parameter/association returnType of Signature (only one return allowed in PCM) |
NamedEntity | NamedElement |
Operation | Signature |
OperationException | ExceptionType |
Parameter | Parameter |
PrimitiveComponent | BasicComponent |
PrimitiveDataType | PrimitiveDataType |
Repository | Repository (partially) |
ServiceArchitectureModel | System |
SubcomponentEndpoint | Connectors are directly associating Roles and AssemblyContext |
SubcomponentInstance | AssemblyContext |
Type | DataType |
XSDPrimitiveDataType | PrimitiveTypeEnum |
Mapping of PCM to SAMM
PCM | SAMM |
---|---|
Allocation | ServiceArchitectureModel |
Allocation | Context Service |
AssemblyConnector | Connector |
AssemblyContext | SubcomponentInstance |
BasicComponent | PrimitiveComponent |
CollectionDataType | CollectionDataType |
CommunicationLinkResourceSpecification | bandwidth in NetworkResource |
CompleteComponentType | ComponentType |
ComposedProvidingRequiringEntity | N/A |
ComposedStructure | CompositeStructure |
CompositeComponent | CompositeComponent |
CompositeDataType | ComplexDataType |
Connector | Connector |
DataType | Type |
DelegationConnector | Connector |
Entity | Entity |
ExceptionType | OperationException |
ExternalCallAction | SimpleStatement |
InnerDeclaration | InnerElement |
Interface | Interface |
InterfaceProvidingRequirungEntity | N/A |
NamedElement | NamedEntity |
Parameter | Parameter |
PassiveResource | PassiveResource |
PrimitiveDataType | PrimitiveDataType |
PrimitiveTypeEnum | XSDPrimitiveDataType |
ProcessingResourceSpecification | HardwareDescriptor |
ProcessingResourceType | Processor, Memory, Disk |
ProvidedDelegationConnector | Connector |
ProvidedRole | InterfacePort |
ReleaseAction | SimpleStatement |
Repository | Repository (partially) |
RequiredDelegationConnector | Connector |
RequiredRole | InterfacePort |
ResourceContainer | Node |
ResourceDemandingBehaviour | OperationBehaviour |
ResourceEnvironment | TargetEnvironment |
ResourceRepository | TargetEnvironment |
ResourceType | N/A (several more concrete types such as Disk, Memory, etc.) |
Role | InterfacePort |
ServiceEffectSpecification | Behaviour |
Signature | Operation |
System | ServiceArchitectureModel |