Uwe BreitenbücherReutlingen University
Uwe Breitenbücher
Professor
About
272
Publications
30,386
Reads
How we measure 'reads'
A 'read' is counted each time someone views a publication summary (such as the title, abstract, and list of authors), clicks on a figure, or views or downloads the full-text. Learn more
4,071
Citations
Introduction
Uwe Breitenbücher works as PostDoc at the Institute of Architecture of Application Systems, University of Stuttgart.
Publications
Publications (272)
Learning management systems (LMSs) are established tools in higher education, especially in the field of software engineering~(SE). The onset of the COVID-19 pandemic further amplified the utilization of these systems, which necessitated their integration into educational curricula for both lecturers and students. However, adopting LMSs within SE e...
The introduction of smart contracts has expanded the applicability of blockchains to many domains beyond finance and cryptocurrencies. Moreover, different blockchain technologies have evolved that target special requirements. As a result, in practice, often a combination of different blockchain systems is required to achieve an overall goal. Howeve...
Application systems often need to be deployed in different variants if requirements that influence their implementation, hosting, and configuration differ between customers. Therefore, deployment technologies, such as Ansible or Terraform, support a certain degree of variability modeling. Besides, modern application systems typically consist of var...
Blockchains have become increasingly important in recent years and have expanded their applicability to many domains beyond finance and cryptocurrencies. This adoption has particularly increased with the introduction of smart contracts, which are immutable, user-defined programs directly deployed on blockchain networks. However, many scenarios requ...
Modern component-based architectural styles, e.g., microservices, enable developing the components independently from each other. However, this independence can result in problems when it comes to managing issues, such as bugs, as developer teams can freely choose their technology stacks, such as issue management systems (IMSs), e.g., Jira, GitHub,...
Automation is the key to enable an efficient, fast, and reliable deployment of applications. Therefore, several deployment automation technologies emerged in recent years whereby each technology has its specific field of application: While some are bound to cloud providers and offer provider-specific functionalities, others enable multi-cloud deplo...
Recent developments in the automotive industry show a rising demand for in-car gaming and entertainment. Series-produced vehicles offer high-performance hardware, displays, sensors, and actors, which can be used for gaming. This trend was recently confirmed in particular by the Mercedes-Benz Group AG, which integrated the racing game SuperTuxKart i...
Distributed transactions that span multiple microservices are more and more realized using the Saga Pattern. However, in case the interaction between microservices fails due to an Service Level Objective (SLO) violation, e.g., insufficient availability, the executed business logic gets significantly impacted when a saga compensates already executed...
For the deployment of applications, various deployment technologies, such as Kubernetes and Terraform, are available to automate the deployment of applications. However, to use these technologies, developers must acquire specialized knowledge about these deployment technologies to create, maintain, and understand deployment models, for example, con...
Intelligent Tutoring Systems (ITSs) are increasingly used in modern education to automatically give students individual feedback on their performance. The advantage for students is fast individual feedback on their answers to asked questions, while lecturers benefit from considerable time savings and easy delivery of educational material. Of course...
Most of existing production-ready deployment automation technologies enable declaratively specifying the target deployment for a multi-service application, which can then be automatically enforced. Each technology however relies on a different deployment modelling language, hence hampering the portability of an application deployment from one techn...
The rise of the IoT and Industry 4.0 has increased the complexity of collaborating business processes, i. e., choreographies, as more partners and assets are involved. However, maintaining and executing business choreographies are complex tasks. Moreover, enabling robust and reliable execution is important, as failures or delays cause high costs am...
For automating the deployment of composite applications, typically, declarative deployment models are used. Depending on the context, the deployment of an application has to fulfill different requirements, such as costs and elasticity. As a consequence, one and the same application, i.e., its components, and their dependencies, often need to be dep...
Various cloud service models with different management requirements can be used for hosting a certain application component. For instance, more consumer-managed serverful options can be preferred if a component has special requirements related to deployment stack or scaling configuration management, whereas more provider-managed serverless alternat...
Software Engineering (SE) has evolved over many decades and has led to many proven and well-established methods and tools that support the efficient development of software and IT systems in general. Although software development had often been performed by distributed teams even before the pandemic, the COVID-19 outbreak exacerbated the physical s...
Software Engineering (SE) is evolving to make the best out of the constantly changing technological trends, ranging from development to deployment to management and decommissioning of software systems. In this new column Trending Topics in Software Engineering, we aim at providing insights, reports, and outlooks on how researchers and practitioners...
Digital learning is becoming increasingly important, especially in situations when students cannot attend presence lectures as we experienced during the Covid-19 pandemic. However, while there are platforms that support generic learning concepts such as multiple-choice questions, we believe that the first semesters of computer science courses can b...
Infrastructure-as-Code (IaC) technologies are used to automate the deployment of cloud applications. They promote the usage of code to define and configure the IT infrastructure of cloud applications allowing them to benefit from conventional software development practices, which facilitates the rapid deployment of new versions of application infra...
Infrastructure-as-Code (IaC) technologies are used to automate the deployment of cloud applications. They promote the usage of code to define and configure the IT infrastructure of cloud applications allowing them to benefit from conventional software development practices, which facilitates the rapid deployment of new versions of application infra...
Function‐as‐a‐Service (FaaS) is a cloud service model enabling to implement serverless applications for a variety of use cases. These range from scheduled calls of single functions to complex function orchestrations executed using orchestration services such as AWS step functions. However, since the available function orchestration technologies var...
Function-as-a-Service (FaaS) is a cloud service model enabling developers to offload event-driven executable snippets of code. The execution and management of such functions becomes a FaaS providerâs responsibility, therein included their on-demand provisioning and automatic scaling. Key enablers for this cloud service model are FaaS platforms, e.g...
Function-as-a-Service (FaaS) is a cloud service model enabling developers to offload event-driven executable snippets of code. The execution and management of such functions becomes a FaaS provider’s responsibility, therein included their on-demand provisioning and automatic scaling. Key enablers for this cloud service model are FaaS platforms, e.g...
Quantum computing can enable a variety of breakthroughs in research and industry in the future. Although some quantum algorithms already exist that show a theoretical speedup compared to the best known classical algorithms, the implementation and execution of these algorithms come with several challenges. The input data determines, for example, the...
Patterns describe proven solutions for recurring problems. Typically, patterns in a particular domain are interrelated and can be organized in pattern languages. As real-world problems often require to combine patterns of multiple domains, different pattern languages have to be considered to address these problems. However, cross-domain knowledge a...
Although historically the term serverless was also used in the context of peer-to-peer systems, it is more frequently associated with the architectural style for developing cloud-native applications. From the developer's perspective, serverless architectures allow reducing management efforts since applications are composed using provider-managed co...
Microservice-based architectures (MSAs) gained momentum in industrial and research communities since finer-grained and more independent components foster reuse and reduce time to market. However, to come from the design of MSAs to running applications, substantial knowledge and technology-specific expertise in the deployment and integration of micr...
Modern software systems often are structured as distributed component-based architectures, such as microservice architectures. However, such systems come with significant challenges in cross-component issue management. Each component usually manages its issues in an independent issue management system, and conventional issue management systems only...
The OASIS standard TOSCA provides a portable means for specifying multi-service applications and automating their deployment. Despite TOSCA is widely used in research, it is currently not supported by the production-ready deployment technologies daily used by practitioners, hence resulting in a gap between the state-of-the-art in research and the s...
Traditional distributed transaction processing (TP) systems, such as replicated databases, faced difficulties in getting wide adoption for scenarios of enterprise integration due to the level of mutual trust required. Ironically, public blockchains, which promised to solve the problem of mutual trust in collaborative processes, suffer from issues l...
In recent years, several technologies were developed enabling the automated provisioning and decommissioning of cloud applications. To reduce costs, these applications can be terminated and restarted on demand. However, as an application is terminated, its current application state, i.e., all application specific data is deleted along with the runn...
In recent years, a plethora of deployment technologies evolved, many following a declarative approach to automate the delivery of software components. Even if such technologies share the same purpose, they differ in features and supported mechanisms. Thus, it is difficult to compare and select deployment automation technologies as well as to migrat...
The OASIS standard TOSCA provides a portable means for specifying multi-service applications and automating their deployment. Despite TOSCA is widely used in research, it is currently not supported by the production-ready deployment technologies daily used by practitioners, hence resulting in a gap between the state-of-the-art in research and the s...
Blockchains are distributed ledgers that enable the disintermediation of collaborative processes and, at the same time, foster trust among partners. Modern blockchains support smart contracts, i.e., software deployed on the blockchain, and guarantee their repeatable, deterministic execution. Alas, blockchains and smart contracts lack standardizatio...
Various technologies have been developed to automate the deployment of applications. Although most of them are not limited to a specific infrastructure and able to manage multi-cloud applications, they all require a central orchestrator that processes the deployment model and executes all necessary tasks to deploy and orchestrate the application co...
Blockchains are distributed ledgers that enable the disintermediation of collaborative processes and, at the same time, foster trust among partners. Modern blockchains support smart contracts, i.e., software deployed on the blockchain, and guarantee their repeatable, deterministic execution. Alas, blockchains and smart contracts lack standardizatio...
Various technologies have been developed to automate the deployment of applications. Although most of them are not limited to a specific infrastructure and able to manage multi-cloud applications, they all require a central orchestrator that processes the deployment model and executes all necessary tasks to deploy and orchestrate the application co...
This article introduces the reader to a set of technologies that lay the foundation for a service-oriented integration of smart contracts into generic software applications, such as business processes or enterprise applications. Using a typical supply chain scenario, the article showcases the use of the Smart Contract Description Language (SCDL) to...
Complex applications are typically composed of multiple components. In order to install these components all their dependencies need to be satisfied. Typically these dependencies are resolved, downloaded, and installed during the deployment time and in the target environment, e.g., using package manager of the operating system. However, under some...
The term serverless is often used to describe cloud applications that comprise components managed by third parties. Like any other cloud application, serverless applications are often tightly-coupled with providers, their features, models, and APIs. As a result, when their portability to another provider has to be assessed, application owners must...
The adoption of cloud computing combined with DevOps enables companies to react to new market requirements more rapidly and fosters the use of automation technologies. This influences the way software solutions are built, which is why the concept of cloud-native applications has emerged over the last few years to build highly scalable applications,...
The automation of application deployment is critical because manually deploying applications is time-consuming, tedious, and error-prone. Several deployment automation technologies have been developed in recent years employing tool-specific deployment modeling languages. At the same time, the OASIS standard Topology Orchestration Specification for...
This article introduces the reader to a set of technologies that lay the foundation for a service-oriented integration of smart contracts into generic software applications, such as business processes or enterprise applications. Using a typical supply chain scenario, the article showcases the use of the Smart Contract Description Language (SCDL) to...
Since deployment automation technologies are heterogeneous regarding their supported features and modeling languages, selecting a concrete technology is difficult and can result in a lock-in. Therefore, we presented the Essential Deployment Metamodel (EDMM) in previous work that abstracts from concrete technologies and provides a normalized metamod...
Today’s blockchain technologies focus mostly on isolated, proprietary technologies, yet there are application scenarios that ask for interoperability, e.g., among blockchains themselves or with external applications. This paper proposes the Smart Contract Locator (SCL) for the unambiguous identification of smart contracts over the Internet and acro...
Function-as-a-Service (FaaS) is a cloud service model enabling developers to offload event-driven executable snippets of code. The execution and management of such functions becomes a FaaS provider's responsibility, hereby included their on-demand provisioning and automatic scaling. Key enablers for this cloud service model are FaaS platforms, e.g....
With the ongoing advances in the area of cloud computing, Internet of Things, Industry 4.0, and the increasing prevalence of cyber-physical systems and devices equipped with sensors, the amount of data generated every second is rising steadily. Thereby, the gathering of data and the creation of added value from this data is getting easier and easie...
To improve cloud portability and interoperability many standards have been proposed in order to facilitate the design, the development and deployment of cloud applications. One of the most used is TOSCA (Topology and Orchestration Specification for Cloud Applications). However since TOSCA helps modeling the structure of an application there are som...
Quantum computing can enable a variety of breakthroughs in research and industry in the future. Although some quantum algorithms already exist that show a theoretical speedup compared to the best known classical algorithms, the implementation and execution of these algorithms come with several challenges. The input data determines, e.g., the requir...
Declarative approaches for automating the deployment and configuration management of multi-component applications are on the rise. Many deployment technologies exist, sharing the same baselines for enacting declarative deployments, even if based on different languages for specifying multi-component applications. The Essential Deployment Metamodel (...
Service composition is a popular approach for building software applications from several individual services. Using imperative workflow technologies, service compositions can be specified as workflow models comprising activities that are implemented, e.g., by service calls or scripts. While scripts are typically included in the workflow model itse...
Architectural patterns assist in the process of architectural decision making as they capture architectural aspects of proven solutions. In many cases, the chosen patterns have system-wide implications on non-functional requirements such as availability, performance, and resilience. Ensuring compliance with the selected patterns is of vital importa...
Declarative approaches for automating the deployment and configuration management of multi-component applications are on the rise. Many deployment technologies exist, sharing the same baselines for enacting declarative deployments, even if based on different languages for specifying multi-component applications. The Essential Deployment Metamodel (...
Architectural patterns assist in the process of architectural decision making as they capture architectural aspects of proven solutions. In many cases, the chosen patterns have system-wide implications on non-functional requirements such as availability, performance, and resilience. Ensuring compliance with the selected patterns is of vital importa...
Patterns describe proven solutions for recurring problems. Typically, patterns in a particular domain are interrelated and organized in pattern languages. As real-world problems often require patterns of multiple domains, different pattern languages have to be considered to address these problems. However, cross-domain knowledge about how patterns...
Service composition is a popular approach for building software applications from several individual services. Using imperative workflow technologies, service compositions can be specified as workflow models comprising activities that are implemented, e.g., by service calls or scripts. While scripts are typically included in the workflow model itse...
Das aktuell vom Institut für Architektur von Anwendungssystemen (IAAS) der Universität Stuttgart und vom Data Center for the Humanities (DCH) der Universität zu Köln bearbeitete Projekt SustainLife â Erhalt lebender, digitaler Systeme für die Geisteswissenschaften befasst sich mit der Konservierung von Forschungssoftware im Bereich der Digital Huma...
For automating the deployment of applications in cloud environments, a variety of technologies have been developed in recent years. These technologies enable to specify the desired deployment in the form of deployment models that can be automatically processed by a provisioning engine. However, the deployment across several clouds increases the com...
Serverless computing focuses on developing cloud applications that comprise components fully managed by providers. Function-as-a-Service (FaaS) service model is often associated with the term serverless as it allows developing entire applications by composing provider-managed, event-driven code snippets. However, such reduced control over the infra...
Function-as-a-Service (FaaS) is a novel cloud service model allowing to develop fine-grained, provider-managed cloud applications. In this work, we investigate which challenges motivate researchers to introduce or enhance FaaS platforms and tools. We use a systematic mapping study method to collect and analyze the relevant scientific literature, wh...
Blockchains are distributed systems that facilitate the interaction of autonomous entities with limited mutual trust. Many of them support transactional applications known as smart contracts, which access and modify the shared world state. Permissionless blockchains are completely decentralized and do not require mutual trust between interacting pe...
The growing usage of software and hardware in our everyday lives has lead to paradigms such as Cloud Computing, Edge Computing, and the Internet of Things. The combination of these paradigms results in distributed and heterogeneous target environments: components of an application often need to be deployed in different environments such as clouds,...
Function-as-a-Service (FaaS) is an emerging cloud service model that enables composing applications using arbitrary, small, and event-driven code snippets managed by cloud providers and that can be scaled to zero. The scalability properties of FaaS look attractive for handling rare or unexpected high loads that affect only particular functionalitie...
Since deployment automation technologies are heterogeneous regarding their supported features and modeling languages, selecting a concrete technology is difficult and can result in a lock-in. Therefore, we presented the Essential Deployment Metamodel (EDMM) in previous work that abstracts from concrete technologies and provides a normalized metamod...
Todayâs blockchain technologies focus mostly on isolated, proprietary technologies, yet there are application scenarios that ask for interoperability, e.g., among blockchains themselves or with external applications. This paper proposes the Smart Contract Locator (SCL) for the unambiguous identification of smart contracts over the Internet and acro...
In recent years, several technologies were developed enabling the automated provisioning and decom-missioning of cloud applications. To reduce costs, these applications can be terminated and restarted on demand. However, as an application is terminated, its current application state, i.e., all application specific data is deleted along with the run...
In recent years, a plethora of deployment technologies evolved, many following a declarative approach to automate the delivery of software components. Even if such technologies share the same purpose, they differ in features and supported mechanisms. Thus, it is difficult to compare and select deployment automation technologies as well as to migrat...
Traditional distributed transaction processing (TP) systems, such as replicated databases, faced difficulties in getting wide adoption for scenarios of enterprise integration due to the level of mutual trust required. Ironically, public blockchains, which promised to solve the problem of mutual trust in collaborative processes, suffer from issues l...