Model-based Cloud Computing Applications
Summary of Most Relevant Topic Papers
The paradigm of Cloud Computing is arising out of a convergence of existing technologies for web-based application and service architectures with high complexity, criticality and new application domains. The development, integration, evolution, operation and migration of web-based application and service architectures poses ever more and ever larger challenges to Software Engineering. In [KRR14], we discuss the paradigm of Cloud Computing that is arising out of a convergence of existing and new technologies. It promises to enable new business models, to lower the barrier for web-based innovations and to increase the efficiency and cost-effectiveness of web development.
Cloud-based systems pose a multitude of different challenges. The demand for seamless scalability with system load leads to highly distributed infrastructures and software architectures that can grow and shrink at runtime. The lack of standards, complemented by the variety of proprietary infrastructure and service providers, leads to a high degree of technological heterogeneity. High availability and interconnectivity with a multitude of clients leads to complex evolution and maintenance processes. These challenges come coupled with distinct requirements posed by the individual application domain. Application classes like Internet of Things [HHK+14] [HHK+15a], Cyber-Physical Systems [KRS12], Big Data, App and Service Ecosystems bring attention to aspects like responsiveness, privacy and open platforms. Regardless of the application domain, developers of such systems are in need for robust methods and efficient, easy-to-use languages and tools. For example in [HHK+14] and [HHK+15a], we discuss how to handle privacy in the cloud in a trusted environment.
In our research [PR13], we tackle these challenges by perusing a model-based, generative approach. The core of this approach are several modeling languages that describe different aspects of a cloud-based system in a concise and technology-agnostic way. Software architecture and infrastructure models describe the system and its physical distribution on a large scale. UML/P models, and class diagrams in particular, describe several other aspects of the system, such as its domain and data models, its interfaces and interactions, and its monitoring and scaling capabilities. Among other tools, code generators most prominently take these models as input and generate application-specific frameworks that implement big parts of the system’s technical aspects and provide technology-agnostic, ease-to-use interfaces for the cloud-based application’s actual business logic.
We have applied these technologies to various cloud systems, cars, buildings, smart phones and smart pads and various other kinds of sensors. We built a rather successful and technologically sound framework for web-based software portals [HKR12] that we offer under sselab.de for general use. Another set of cloud systems helps to deal with energy management [FPPR12] [KPR12]. It continuously monitors building operating systems to derive operational data and compare these to the building specification. We use cloud technologies to maintain data, dynamically execute calculations and host management services enabling reduction of building energy costs. Furthermore, we investigate the architecture of Cloud Services for the digital me in a privacy-aware environment [ELR+17]. We support developers with a model-driven and generative methodology supporting reuse of existing services, automated conversion between different data models, integration of ecosystems facilitating service composition, user data access control, and user data management.
We apply cloud technology also for our tool demonstrators and our own development platforms. New services, e.g., collecting data from temperature, cars etc. can now be developed easily.
Key Statements
- Model-based, generative development of cloud-based systems helps to reduce development time, increase flexibility and adaptivity.
- Models can be used for architecture as well as domain and data modeling.
- For connecting the Cloud with Cyber-Physical Systems it is especially interesting to use configurable model-based technology.
Selected Topic-Specific Publications
-
[ELR+17]In: Software Architecture for Big Data and the Cloud, I. Mistrik, R. Bahsoon, N. Ali, M. Heisel, B. Maxim (Eds.), ch. 12, pp. 207-226, Elsevier Science & Technology, Jun. 2017.
-
[HHK+15a]In: Journal Future Generation Computer Systems, Volume 56, pp. 701-718, Elsevier, 2015.
-
[KRR14]Springer, Schweiz, Dec. 2014.
-
[HHK+14]In: Conference on Future Internet of Things and Cloud (FiCloud’14), IEEE, 2014.
-
[PR13]In: Model-Driven Engineering for High Performance and Cloud Computing Workshop, Volume 1118, pp. 15-24, CEUR Workshop Proceedings, 2013.
-
[KRS12]In: Proceedings of Automation 2012, VDI Berichte 2012, pp. 113-116, VDI Verlag, 2012.
-
[HKR12]In: Developing Tools as Plug-Ins Workshop (TOPI’12), pp. 61-66, IEEE, 2012.
-
[FPPR12]In: Energy Efficiency in Commercial Buildings Conference (IEECB’12), 2012.
-
[KPR12]In: Entwicklung und Evolution von Forschungssoftware. Tagungsband, Rolduc, 10.-11.11.2011, H. Lichter, B. Rumpe (Eds.), Aachener Informatik-Berichte, Software Engineering, Band 14, Shaker Verlag, Aachen, Deutschland, 2012.
Related Topics
- Agile Model-Based Software Engineering
- Domain-Specific Languages (DSLs)
- Energy Management
- Enterprise Information Systems
- Generative Software Engineering
- Internet of Things
- MontiCore - Language Workbench
- Modeling Software Architecture
- Unified Modeling Language (UML)
- UML/P