# A Survey on Modeling Languages for Applications Hosted on Cloud-Edge Computing Environments
## 3 Results
### Relationships, Dependencies and Environment Values  
Application components interact with each other to form a cohesive application. As a result, modeling languages need to be capable of representing relationships, dependencies, and environmental values. There are two main types of relationships:  
1. host relationship that binds application components with hosts,
2. connection relationship that connects application components. TOSCA encompasses the host relationship, which is utilized to describe the hosting of a tosca.nodes.SoftwareComponent instance to a tosca.nodes.Compute node instance. Additionally, TOSCA supports the ConnectsTo type of relationship, which models a connection between two components. Despite proposing a TOSCA extension, [PERSON] et al. [17] demonstrate that the language can utilize the host relationship to specify the deployment of a container on a virtual machine. [PERSON] et al. introduce a TOSCA extension that expands the host relationship and introduces new relationships in their work. The new relationships, specifically prestocloud.relationships.executedBy.faas and prestocloud.relationships.executedBy.loadBalanced, establish connections between FaaS fragments and FaaS agents, as well as load-balanced fragments and their associated virtual machines (VMs). In the context of prestocloud.nodes.agent.faas, FaaS fragments are deployed on agents represented by the prestocloud.nodes.agent.faas type. The relationship prestocloud.relationships.executedBy.faas indicates FaaS agents executing FaaS fragments. Agents modeled by prestocloud.nodes.agent.loadBalanced host load-balanced fragments represented by prestocloud.nodes.fragment.loadBalanced. The relationship prestocloud.relationships.executedBy.loadBalanced ensures proper matching between load-balanced fragments and their corresponding agents. In research by [PERSON] et al. [18], host and ConnectsTo relationships are used which are provided by the basic syntax of TOSCA, as well as the contained_in relationship which was introduced with their presented extension. The contained_in relationship expresses that a programming language or a library should be installed in a target container. The EDMM [7] syntax supports the relation entity to illustrate the connections between components. This entity is an instance of the relation type entity, and each connection is derived from a distinct relation type. A relation type is a reusable entity that specifies the semantics of a connection when this type is assigned to it. EDMM offers several examples of relation types, including the network connection relation that enables two components to communicate and the hosted on relation type, which denotes that a component must be installed on a server. TOSCA Light [30] integrates semantic rules from both TOSCA and EDMM. It is capable of supporting the description of the HostedOn relationship and the ConnectTo relationship, which are common to both languages. Developers have the ability to create custom relationships by extending these existing relationships. Other CMLs may use different terminology and methodology to describe relationships. The OCCI Platform utilizes links between entities for this purpose. MoDMaCAO [23] further enhances the functionality of the OCCI Platform by introducing a new type of link called PlacementLink. This link serves to establish a connection between a Component entity from the OCCI Platform extension and a Compute entity from the OCCI Infrastructure extension, representing the deployment of an application component onto a virtual machine. Additionally, MoDMaCAO expands the relationship capabilities through the ComponentLink, which supports an extension for Containment annotations. This extension enables the depiction of an application's hierarchical structure, signifying that an application encompasses one or more components. Uni4 Cloud [13] modeling language facilitates the description of communication requirements between application components, which are represented as virtual machines, in order to compose the overall application.