=Paper=
{{Paper
|id=Vol-1859/emmsad-02-paper
|storemode=property
|title=Towards Modeling Monitoring Services for Large-Scale Distributed Systems with Abstract State Machines
|pdfUrl=https://ceur-ws.org/Vol-1859/emmsad-02-paper.pdf
|volume=Vol-1859
|authors=Andreea Buga,Sorana Tania Nemeș
|dblpUrl=https://dblp.org/rec/conf/emisa/BugaN17
}}
==Towards Modeling Monitoring Services for Large-Scale Distributed Systems with Abstract State Machines==
Towards Modeling Monitoring Services for Large-Scale Distributed Systems with Abstract State Machines Andreea Buga and Sorana Tania Nemes, Christian Doppler Laboratory for Client-Centric Cloud Computing, Johannes Kepler University of Linz, {andreea.buga,t.nemes}@cdcc.faw.jku.at Abstract. The evolution of Large-Scale Distributed Systems is strongly associated with the development of solutions for smart cities. They con- sist of a large-number of sensors, processing centers and services deployed in a wide geographical area. Due to their complexity and heterogeneity, such systems face a high-level of uncertainty and the failure of one node can affect the availability of the whole solution. Monitoring services col- lect data about the state of components and elaborate a diagnosis, aiming to increase the reliability of the system. This paper proposes an Abstract State Machine model to capture the properties and behavior of monitor- ing services addressing system failures. The method encompasses the translation of the requirements of the system to ground models. We dis- cuss the formal solution with respect to the problem domain and execute a simulation of the model. We discuss the suitability of the method for distributed systems and compare it with other modeling approaches. Keywords: Formal Modeling, Abstract State Machines, Large-Scale Dis- tributed Systems, Monitoring, Smart City 1 Introduction Large-Scale Distributed Systems (LDS) aggregate computing resources through a wide area network. Such systems offer scalability and transparency of resources and compose services for building various applications. Their complexity intro- duces many challenges like heterogeneity, node or communication failures. Re- covery and high availability of the system require reliable monitoring. One of the trends for developing a sustainable future is supported by smart cities. They encompass applications for enhancing transportation, energy usage, waste disposal. Sensors, data centers and computing resources collaborate to process data and provide services to end devices. These services face failures and availability issues of LDS. Monitors play a key role in detecting issues and providing data for adaptation plans to bring the system to a normal execution mode. Monitoring processes are complemented with adaptation processes, which respond to the existing problems with various restoration plans. The main con- tribution of the paper consists in analyzing and validating correct behavior of monitors, whose accuracy enhances the robustness of the system. 104 Towards Modeling Monitoring Services for LDS with ASMs The goal of this paper is to integrate the formal modeling capabilities of the Abstract State Machines (ASMs) for defining a monitoring solution for LDS. We motivate the choice of ASMs by comparing them with other formal methods with respect to their suitability for distributed systems. We present the requirements of the system from the perspective of a smart city application and propose a structure for the monitoring framework. Requirements are translated to a control state ASM. The use of formal methods for defining a solution helps in understanding possible flaws of the model before deployment [10]. The remainder of the paper is structured as follows. Section 2 captures the problem domain and the research objectives of the paper. Essential concepts re- lated to the ASM formal method are presented in Section 3. Section 4 describes the structure of the monitoring framework and is continued by its formal speci- fication and validation in Section 5. Related work is discussed in Section 6, after which conclusions are drawn in Section 7. 2 Smart City Application Case Study The evolution of distributed systems, Internet of Things (IoT) and network capabilities played an important role in the adoption of ubiquitous solutions for smart cities. Widely distributed sensors for traffic, pollution and environment continuously collect data that are integrated in various applications. The aim is to sustainably develop cities and improve the quality of life of the the inhabitants. One of the main areas of interest is provisioning of medical services. Asthma is a chronic inflammatory disease manifested by airflow obstruction, coughing and/or chest tightness. The condition is directly affected by the environment and by the behavioral patterns of the patient. The benefits of a smart city application empowers patients to take informed decisions and prevent severe asthma attacks. In a smart city network, air quality sensors provide data related to the percentage of dust particles and pollutants, while meteorological data supply humidity and temperature values. Information about traffic is important for avoiding crowded areas and also indicate the pollution level. Such sensors are distributed in an LDS and data they provide can be integrated with activity patterns extracted from smart gadgets for building a knowledge base. Hosseini et al. [11] proposed an architecture for employing wireless environmental sensors within a smartwatch application that assesses the asthma risk level. System nodes refer to sensors and services, which are offered by various cloud providers (Amazon, Microsoft Azure, etc.). Node problems are propagated to the whole system, making it hard to identify the source. We emphasize the role of the monitors for ensuring availability of the system and propose a formal model for it. The proposal closely follows the subsequent research questions and objectives. Research Question 1. Can formal methods capture properties of LDS mon- itors? How does applying formal methods to distributed systems differ from mod- eling traditional applications? We analyze existing formal methods and establish the best option given the characteristics of distributed systems. The choice of the ASM technique is jus- Towards Modeling Monitoring Services for LDS with ASMs 105 tified in Section 3 together with the definition of specific control structures and properties that can be specified using this approach. Research Question 2. How can unavailability issues of smart city applica- tions be tackled by the monitoring solution? In Section 4 we present the main requirements of the system and how the pro- posed monitoring model addresses them. We emphasize the unavailability issues and discuss the novelty of our approach. Research Question 3. How does the ASM model reflect the properties of the monitoring framework? We define the structure of the monitoring solution, capture the workflow in terms of control state diagram and discuss the important transitions of the system. We also declare states and rules with the aid of AsmetaL language, which reflect the behavior of the monitors. Section 5 discusses in more details these aspects. 3 Abstract State Machine Theory While traditional software development processes integrated formal methods eas- ier, the evolution of agile methods, distributed systems and novel business models introduced more challenges. Kossak and Mashkoor [12] propose an evaluation of the existing formal methods considering modeling criteria, supported develop- ment phases, tool support, social aspects and industrial applicability. Given the characteristics of the system described in Section 2, we are inter- ested in adopting the technique that supports modeling properties of distributed systems like concurrency and non-determinism. The expressiveness of the model is important due the heterogeneous nature of the target system. According to [12] the best candidates for these aspects are ASMs and TLA+. By further con- sidering the assistance of the model through the software development process, its coherence and the scalability in industrial applications [12] we adopted the ASM method. The Unified Modeling Language (UML) is widely adopted in soft- ware engineering. However, it is considered imprecise and attempts to improve its operational semantics led to extended mathematical specifications [8]. Petri Nets have been widely used for modeling distributed systems. In [4], Börger illustrates specific distributed scenarios for assessing the capabilities of both ASMs and Petri Nets. The paper does not aim to exhaustively assess the performances of the methods, but to highlight their abstraction capabilities and graphical complexity. The ASM remarks itself as being able to capture various concepts in simpler graphical representations. ASMs rely on the concept of evolving algebras proposed by Yuri Gurevich in [9]. Their proposal was motivated by their power to improve Turing machines with semantic capabilities. The ASM method allows a straightforward transition from natural-language requirements to ground model and control state diagrams, which can be easier formalized. An ASM machine M is represented as a tuple M = (Σ, S0 , R, R0 ), where Σ is the signature (the set of all functions), S0 is the set of initial states of Σ, R is the set of rule declarations, R0 is the main rule of the machine. 106 Towards Modeling Monitoring Services for LDS with ASMs The specification of an ASM consists of a finite set of transition rules of the type: if Condition then Updates [3], where an Update consists of a finite set of assignments f(t1 , ..., tn ) := t. As ASMs allow synchronous parallelism execution, two machines might try to change a location with two different values, triggering an inconsistency. In this case the execution throws an error. Rules consist of different control structures that reflect parallelism (par), sequentiality (seq), causality (if...then) and inclusion to different domains (in). With the forall expression, a machine can enforce concurrent execution of a rule R for every element x satisfying a condition ϕ: forall x with ϕ do R. Non-determinism is expressed through the choose rule: choose x with ϕ do R. Definition 1. A control state ASM is an ASM following the structure of the rules illustrated in Fig. 1: any control state i verifies at most one true guard, condk , triggering, thus, rulek and moving from state i to state sk . In case no guard is fulfilled, the machine does not perform any action. if ctl state = i then j1 if cond1 then cond1 rule1 rule1 ctl state := j1 end if i ..... ........ if condn then rulen ctl state := jn condn rulen jn end if end if Fig. 1. Structure of a Control State ASM Functions in ASMs are classified according to permissions on different operations. Static functions refer specifically to constants, while dynamic functions can be updated during execution. Controlled functions are written only by the machine, while monitored ones are written by the environment and read by the machine. Both the machine and its environment can update shared functions. 4 System Overview This paper describes the monitoring component for an LDS, which is responsible to identify failures and unavailability of constituent nodes. The description of the system starts from the presentation of requirements and is completed by an architectural model, which emphasizes robustness achieved through redundancy. 4.1 Requirements of the Monitoring Framework Req. 1. Monitoring processes will observe each node of the LDS. In order to avoid single points of failure, a set of monitors is assigned to every node. Towards Modeling Monitoring Services for LDS with ASMs 107 Req. 2. Before starting data collection, the monitor submits a request to verify node availability. If no answer is received, the node is considered unavailable. Req. 3. Data collected by the monitor is used for detecting unavailability prob- lems and failures. Req. 4. A monitor that detects a problem must disseminate it locally to other monitors assigned to the same node and carry out a collaborative evaluation. Req. 5. Monitoring specific data and events are temporarily logged in a local storage from where they can be retrieved for analysis processes. Req. 6. Monitoring processes run continuously in background of the execution. Req. 7. Each monitor is characterized by a trustworthiness level, based on its performance. Bad assessment of data indicates a lower trustworthiness. Req. 8. Monitoring data are also used for system adaptation and evaluation of reconfiguration solutions. 4.2 Organization of the Monitoring Framework Fig. 2 illustrates the architecture of the LDS system for a smart city application. The organization comprises three parts: the client side where different users request services from providers, the provider side where sensors are deployed and an internal abstract machine for monitoring and adaptation processes. The interaction of the clients with the providers is based on a solution defined by [5], where the client-cloud interaction middleware processes the requests and ensures the delivery of services to the end user. Clien Client t-prov Laptop Computer ider in Phone st —— Send teractio —— reque n middlew are Reply —— Providers P rovider1 P rovider2 P roviders S11 ... S1n ... S21 ... S2n ... Ss1 ... Ssn bserve ——O bserve bserve bserve bserve bserve —— —— —— —— —— Observ Observ Observ Observ Observ bserve ——O ——O ——O ——O ——O ——O e e e e e m1 ... mi mi+1 ... mk mj+1 ... mk mk+1 ... ml ml+1 ... mp mp+1 ... mr Re Monitoring Layer a dat qu est it dat bm Su a Adaptation Layer Abstract Machine Fig. 2. Architecture of the LDS system We assume that sensors are deployed among various providers. Sensor Spi of a provider P is assigned a set of monitors Monitors (Spi ) = {mi1 , ..., mik }. 108 Towards Modeling Monitoring Services for LDS with ASMs The monitors observe the node by carrying out specific processes: checking avail- ability, collecting raw data, building higher-level metrics, interpreting data and logging. In order to reduce the communication overhead, monitors interact only when a problem is detected and a collaborative decision is required. Monitoring components indicate abnormal situations together with corre- sponding data to the adaptation layer, where a case based repository is consulted and an action plan is proposed. After the deployment of the plan the adapters request data from the monitors in order to check the efficiency of their actions. 5 Formal Specification 5.1 Control state ASMs The model contains ASM monitor agents, each carrying out its own execution according to the the requirements mentioned in Section 4.1. Fig. 3 displays the control state ASM ground model of the monitor agent. The monitor is initialized in the Inactive state. If the monitor is deployed by the middleware, then it can be assigned to a node. From there, the agent moves to the Active state from where monitoring specific processes start. Inactive Monitor deployed Yes Assign to node Active Process Wait for Gather metrics Collect data Yes Reply arrived Send request response response Retrieve Repository No Timeout Yes information available Yes No Stop request Query database Assign diagnosis Interpret data Problem discovered No Report Yes problem No Monitor Yes Log Log data Gossip issue trustworthy Fig. 3. Control ASM for the monitor agent The monitor sends a request to the node after which it moves to the Wait for response state. The guard Reply arrived is verified and if an answer to the request is acknowledged, the monitor processes it by calculating the latency and moves further to the Collect data state. If no reply is recorded, the monitor verifies if the request has exceeded the maximum allowed delay (Timeout guard). In this case it stops the current request and moves to the Report problem state. If the Timeout guard is false, the agent remains in theWait for response state. Towards Modeling Monitoring Services for LDS with ASMs 109 In the Collect data state, the monitor gathers raw data from the node (CPU usage, memory usage, available storage, number of executing tasks). It moves afterwards to the Retrieve information state. If the guard Repository available is verified, the logs are queried. The monitor moves to the Assign diagnosis state, where data are interpreted. If the guard Problem discovered holds then the monitor moves to the Report problem state, otherwise it moves to the Log data state. From Report problem state, the monitor communicates the detected problem to other monitors assigned to the same node and moves to the Log data state. Information are then saved in the local repository. Listing 5.1. AsmetaL specification of the monitor program r u l e r MonitorProgram = par i f ( m o n i t o r s t a t e ( s e l f ) = ACTIVE) t h e n par r SendRequest [ s e l f ] m o n i t o r s t a t e ( s e l f ) := WAIT FOR RESPONSE endpar endif i f ( m o n i t o r s t a t e ( s e l f ) = WAIT FOR RESPONSE) t h e n i f ( h e a r t b e a t r e s p o n s e a r r i v e d ( l a s t ( h e a r t b e a t s ( s e l f ) ) ) ) then i f ( h e a r t b e a t t i m e o u t ( l a s t ( h e a r t b e a t s ( s e l f ) ) ) ) then par r StopRequest [ ] m o n i t o r s t a t e ( s e l f ) := REPORT PROBLEM endpar else par r ProcessResponse [ ] m o n i t o r s t a t e ( s e l f ) := COLLECT DATA endpar endif endif endif i f ( m o n i t o r s t a t e ( s e l f ) = COLLECT DATA) t h e n par r GatherMetrics [ ] m o n i t o r s t a t e ( s e l f ) := RETRIEVE INFO endpar endif i f ( m o n i t o r s t a t e ( s e l f ) = RETRIEVE INFO ) t h e n seq i f ( i s R e p o s i t o r y A v a i l a b l e ) then r QueryDb [ ] endif m o n i t o r s t a t e ( s e l f ) := ASSIGN DIAGNOSIS endseq endif i f ( m o n i t o r s t a t e ( s e l f ) = ASSIGN DIAGNOSIS ) t h e n seq r InterpretData [ ] i f ( isProblemDiscovered ( s e l f ) ) then m o n i t o r s t a t e ( s e l f ) := REPORT PROBLEM else m o n i t o r s t a t e ( s e l f ) := LOG DATA endif endseq endif i f ( m o n i t o r s t a t e ( s e l f ) = REPORT PROBLEM) t h e n par r GossipIssue [ ] m o n i t o r s t a t e ( s e l f ) := LOG DATA endpar endif i f ( m o n i t o r s t a t e ( s e l f ) = LOG DATA) t h e n par r Log [ ] i f ( isMonitorTrustworthy ( s e l f ) ) then m o n i t o r s t a t e ( s e l f ) := ACTIVE else m o n i t o r s t a t e ( s e l f ) := INACTIVE endif endpar endif endpar 110 Towards Modeling Monitoring Services for LDS with ASMs At the end of the monitoring cycle, the trustworthiness of the monitor is calculated and if the Monitor trustworthy guard holds, a new cycle starts. Oth- erwise, the monitor moves to the Inactive state from where it needs to be reini- tialized by the middleware. We, thus, avoid having faulty monitors in the system. 5.2 AsmetaL Specification ASMETA 1 is a toolset for simulating and validating ASM models written in the AsmetaL language, which capture control structures and functions. The Monitor domain is part of the Agent universe and it behaves as an ASM machine, having its own states and transitions. Monitor state is expressed as a controlled function which is updated by the agent itself. Monitors assigned to a node are expressed as a sequence, each storing a sequence of Hearbeat requests sent to the node. The function isProblemDiscovered is left abstract. isMonitorTrustworthy function is calculated at the end of a monitoring cycle. The calculation of heartbeat timeout is a derived function combining a monitored value and a controlled function. The signature of domains and functions of the Monitor agent are important for the representation of the control state ASM from Section 5.1 in Listing 5.1 2 . 5.3 Validation of the Model Currently, validation deals only with the separate processes for each agent. It checks the workflow and the transitions from different states. The model was validated with AsmetaV tool, which allows the creation of scenarios with the aid of the Avalla language described by [7]. By validation we discover possible flaws in the design of the ASM model. For validation we created an instance of the Node domain, which is assigned three Monitor agents. We checked how various inputs affect the control flow of the monitors and if the rules and states of the agent match the control state ASM ground model from Fig. 1 as displayed in Listing 5.2. In a future step of the validation process we plan to analyze the interaction between monitor agents and the function to update the confidence degree of a monitor. 6 Related Work Formal methods have distinguished themselves through the ability to capture mathematical properties in software specification. LDS systems introduce a higher complexity and heterogeneity that needs to be handled. We consulted the area of formal methods and chose the ASM technique proposed by [3]. Modeling LDS has been addressed in several cloud and grid related projects. CloudML, an extension of the UML language for expressing cloud specific pro- cesses, has been proposed by the MODACloud project for specifying adaptable Quality of Service (QoS) models, monitoring operation rules and data [1]. 1 http://asmeta.sourceforge.net/ 2 The complete specification is available at http://cdcc.faw.jku.at/staff/abuga/ emmsad.rar Towards Modeling Monitoring Services for LDS with ASMs 111 Listing 5.2. Example on an AsmetaV scenario s c e n a r i o Monitor1 s e t a s s i g n e d m o n i t o r s ( n o d e 1 ) := [ m o n i t o r 1 , m o n i t o r 2 , m o n i t o r 3 ] ; s e t h e a r t b e a t ( m o n i t o r 1 ) := h e a r t b e a t 1 ; s e t h e a r t b e a t ( m o n i t o r 2 ) := h e a r t b e a t 2 ; s e t h e a r t b e a t ( m o n i t o r 3 ) := h e a r t b e a t 3 ; step c h e c k m o n i t o r s t a t e ( m o n i t o r 1 ) = WAIT FOR RESPONSE and m o n i t o r s t a t e ( m o n i t o r 2 ) = WAIT FOR RESPONSE and m o n i t o r s t a t e ( m o n i t o r 3 ) = WAIT FOR RESPONSE ; s e t h e a r t b e a t r e s p o n s e a r r i v e d ( h e a r t b e a t 1 ) := t r u e ; s e t h e a r t b e a t r e s p o n s e a r r i v e d ( h e a r t b e a t 2 ) := f a l s e ; s e t h e a r t b e a t r e s p o n s e a r r i v e d ( h e a r t b e a t 3 ) := t r u e ; s e t h e a r t b e a t l a t e n c y ( h e a r t b e a t 1 ) := 5 ; s e t h e a r t b e a t l a t e n c y ( h e a r t b e a t 3 ) := 1 5 ; step c h e c k m o n i t o r s t a t e ( m o n i t o r 1 ) = COLLECT DATA and m o n i t o r s t a t e ( m o n i t o r 2 ) = WAIT FOR RESPONSE and m o n i t o r s t a t e ( m o n i t o r 3 ) =REPORT PROBLEM ; s e t h e a r t b e a t r e s p o n s e a r r i v e d ( h e a r t b e a t 2 ) := t r u e ; s e t h e a r t b e a t l a t e n c y ( h e a r t b e a t 2 ) := 2 0 ; step c h e c k m o n i t o r s t a t e ( m o n i t o r 1 ) = RETRIEVE INFO and m o n i t o r s t a t e ( m o n i t o r 2 ) = REPORT PROBLEM and m o n i t o r s t a t e ( m o n i t o r 3 ) = LOG DATA ; s e t i s R e p o s i t o r y A v a i l a b l e := f a l s e ; s e t i s M o n i t o r T r u s t w o r t h y ( m o n i t o r 3 ) := t r u e ; step c h e c k m o n i t o r s t a t e ( m o n i t o r 1 ) = ASSIGN DIAGNOSIS and m o n i t o r s t a t e ( m o n i t o r 2 ) = LOG DATA and m o n i t o r s t a t e ( m o n i t o r 3 ) = ACTIVE ; s e t i s P r o b l e m D i s c o v e r e d ( m o n i t o r 1 ) := t r u e ; s e t i s M o n i t o r T r u s t w o r t h y ( m o n i t o r 2 ) := t r u e ; step c h e c k m o n i t o r s t a t e ( m o n i t o r 1 ) = REPORT PROBLEM and m o n i t o r s t a t e ( m o n i t o r 2 ) = ACTIVE and m o n i t o r s t a t e ( m o n i t o r 3 ) = WAIT FOR RESPONSE ; Formal modeling was also used for building models for grid services and processes. The ASM technique contributed to the description of the job man- agement and service execution in [2]. Specification of grids in terms of ASMs have been proposed also by [14], where Németh and Sunderam focused on expressing differences between grid and traditional distributed systems. ASMs have been also proposed for realization of web service composition. In [13], Ma et al. introduced the notion of Abstract State Services and showed an use case for a cloud service for flight booking. Service composition and orchestration in terms of ASMs have been researched by [6]. 7 Conclusions Formal methods ensure reliable software solutions. LDS introduce a high com- plexity in the system and building formal models for them is still a challenging task. We discussed in this paper the aspects of monitoring LDS, proposed a set of requirements and translated them to an ASM model. The choice of the ASM technique was justified by comparing it with other available formal methods. The current model is limited to a set of states and rules that capture the workflow of the monitors. Timing related constraints, which are essential for LDS, could not be expressed. However, the focus is on ensuring the correctness of the monitoring behavior and improving the overall robustness of the system. As a future work, we will improve the formal model to capture finer-level de- tails. We plan to achieve loose-coupling by employing ASM modules for different functionality of the monitoring framework. In order to ensure the correctness of the solution we will perform verification with the aid of AsmetaSMV tool. 112 Towards Modeling Monitoring Services for LDS with ASMs References 1. A. Bergmayr, A. Rossini, N. Ferry, G. Horn, L. Orue-Echevarria, A. Solberg, and M. Wimmer. The evolution of CloudML and its manifestations. In Proceedings of the 3rd International Workshop on Model-Driven Engineering on and for the Cloud (CloudMDE), pages 1–6, Ottawa, Canada, September 2015. 2. Alessandro Bianchi, Luciano Manelli, and Sebastiano Pizzutilo. An ASM-based model for grid job management. Informatica (Slovenia), 37(3):295–306, 2013. 3. E. Börger and Robert F. Stark. Abstract State Machines: A Method for High-Level System Design and Analysis. Springer-Verlag New York, Inc., Secaucus, NJ, USA, 2003. 4. Egon Börger. Modeling distributed algorithms by abstract state machines com- pared to petri nets. In Proceedings of the 5th International Conference on Abstract State Machines, Alloy, B, TLA, VDM, and Z - Volume 9675, ABZ 2016, pages 3–34, New York, NY, USA, 2016. Springer-Verlag New York, Inc. 5. Károly Bósa, Roxana-Maria Holom, and Mircea Boris Vleju. A formal model of client-cloud interaction. In Correct Software in Web Applications and Web Services, pages 83–144. 2015. 6. Davide Brugali, Luca Gherardi, Elvinia Riccobene, and Patrizia Scandurra. Coor- dinated execution of heterogeneous service-oriented components by abstract state machines. In Formal Aspects of Component Software - 8th International Sympo- sium, FACS 2011, Oslo, Norway, September 14-16, 2011, Revised Selected Papers, pages 331–349, 2011. 7. Alessandro Carioni, Angelo Gargantini, Elvinia Riccobene, and Patrizia Scandurra. A scenario-based validation language for asms. In Proceedings of the 1st Interna- tional Conference on Abstract State Machines, B and Z, ABZ ’08, pages 71–84, Berlin, Heidelberg, 2008. Springer-Verlag. 8. Zamira Daw and Rance Cleaveland. An extensible formal semantics for UML activity diagrams. CoRR, abs/1604.02386, 2016. 9. Yuri Gurevich. Specification and validation methods. chapter Evolving Algebras 1993: Lipari Guide, pages 9–36. Oxford University Press, Inc., New York, NY, USA, 1995. 10. C. M. Holloway. Why engineers should consider formal methods. In 16th DASC. AIAA/IEEE Digital Avionics Systems Conference. Reflections to the Future. Pro- ceedings, volume 1, pages 1.3–16–22 vol.1, Oct 1997. 11. A. Hosseini, C. M. Buonocore, S. Hashemzadeh, H. Hojaiji, H. Kalantarian, C. Sideris, A. A. T. Bui, C. E. King, and M. Sarrafzadeh. Hipaa compliant wire- less sensing smartwatch application for the self-management of pediatric asthma. In 2016 IEEE 13th International Conference on Wearable and Implantable Body Sensor Networks (BSN), pages 49–54, June 2016. 12. Felix Kossak and Atif Mashkoor. How to Select the Suitable Formal Method foran Industrial Application: A Survey, pages 213–228. Springer International Publish- ing, Cham, 2016. 13. H. Ma, K. D. Schewe, and Q. Wang. An abstract model for service provision, search and composition. In 2009 IEEE Asia-Pacific Services Computing Confer- ence (APSCC), pages 95–102, Dec 2009. 14. Zsolt N. Németh and Vaidy Sunderam. A formal framework for defining grid systems. 2014 14th IEEE/ACM International Symposium on Cluster, Cloud and Grid Computing, 0:202, 2002.