# A Survey on Modeling Languages for Applications Hosted on Cloud-Edge Computing Environments
## 3 Results
### Description of QoS and QoE  
CMLs provide the capability to define constraints or elasticity rules that dictate how the Quality of Service (QoS) and Quality of Experience (QoE) may degrade in response to events, guiding the framework to perform runtime adaptations such as auto-scaling or self-healing for specific application components. Additionally, many CMLs support the specification of time constraints related to network metrics or response time. These constraints or rules allow for the modeling of real-time adaptation of the application to changing conditions, ensuring that the desired performance and user experience are maintained. [PERSON] et al. [32] emphasize that time constraints are often violated due to network issues or high data loads, with response time being the sole time constraint considered in their proposed model. However, there are several CMLs that do support time constraints. For instance, the modeling language proposed in [36] allows for the description of time constraints, including response time and deadline (timeout) constraints, for applications and services running on cloud or fog environments. Moreover, HOT enables the definition of conditions where developers can describe specific measurement constraint values as triggers for specific actions. For instance, the HOT extension proposed by [PERSON] in [27] supports time-critical constraints as network reachability rules. This demonstrates that CMLs provide the capability to specify time constraints for guiding the behavior and adaptation of cloud applications in response to changing conditions. CAMEL's [1] modeling and execution language allows for the description of response time as both a QoS constraint and an objective. A requirement can be stated as a condition (response time \(<\) 100 ms) or as an optimization objective (maximize performance). This flexibility in expressing response time constraints in different ways provides versatility in modeling and managing the performance of cloud applications using CAMEL. [PERSON] et al. with their proposed CML [21] support sytax capable to define QoS adaptation rules in runtime. These rules are defined within the AdaptationRule entity and expressed using the extended MPS Baselanguage. The language allows for specifying QoSEvent conditions based on metrics such as CPU consumption or latency and SensorEvent conditions linked to specific sensor groups. A notable feature is the ability to set a time period for the conditions to remain true, preventing unnecessary rule triggering. When conditions are satisfied, runtime adaptation actions are executed. The Self-adaptive IoT DSL language includes the allActions entity, which triggers all associated actions when set to true. Alternatively, the actionsQuantity attribute determines the number of actions executed if set to false, starting from the first action and continuing until the desired quantity is achieved. The language supports four types of actions: Offloading, which involves migrating containers between different layers (edge, fog, cloud); Scaling, which deploys replicas of an application; Redeployment, which stops and redeploys containers on nodes; and OperateActuator, which controls system actuators like alarms activation or deactivation. [PERSON] et al. [12] employ a similar approach in SMADA-Fog, leveraging an adaptation strategy model. This model facilitates the definition of a sequence of adaptation rules, where each rule comprises a condition-action pair that targets a specific container. These adaptation rules delineate the appropriate actions to be executed when specific conditions are met, thereby influencing the designated service. The conditions are triggered by changes in the application's execution environment, leading to code generation for implementing the prescribed actions. Conditions can be expressed through two approaches: (a) detection of specific events, or (b) evaluation of relational expressions based on QoS metric thresholds or the number of active users/connections requesting the service.