SeelabFhdo / lemma

Home of the Language Ecosystem for Modeling Microservice Architecture (LEMMA)
MIT License
33 stars 8 forks source link

Intermediate transformation of operation models doesn't consider all technologies assigned to an operation node #54

Open frademacher opened 2 years ago

frademacher commented 2 years ago

The Operation Modeling Languages supports the assignment of more than one technology to an operation node, e.g.,

@technology(ContainerTech)
@technology(BuildManagement)
container MyContainer
deployment technology ContainerTech::_deployment.Kubernetes
deploys Services::org.example.MyService {
  aspects {
    BuildManagement::_aspects.ArtifactId(serviceName="org.example.MyService", artifactId="my-service");
  }
  ...
}

In this example, the Kubernetes deployment technology from a ContainerTech technology model is used to determine the deployment technology of the container and the ArtifactId aspect from a BuildManagement technology model is used to determine the artifact ID of the deployed microservice. The approach of allowing more than one technology on an operation node thus increases the expressivity of the Operation Modeling Language and the decomposition of technology models.

However, the ATL specification of the intermediate model transformation and the intermediate operation metamodel don't yet consider multiple technology applications on an operation node. Instead, intermediate operation models always exhibit only one of the applied technologies of an operation node, i.e., either the deployment technology (containers) or the infrastructure technology (infrastructure nodes). Consequently, intermediate operation models lack the information of other technology applications which makes it impossible to recognize them during model processing.

Similarly to intermediate service models, intermediate operation models should thus receive a technologies association for their IntermediateOperationNode concept which should then be established in intermediate models by the corresponding ATL specification.