335 research outputs found
Migrating Legacy Systems to Service-Oriented Architectures
This paper presents a methodology for migrating legacy systems towards Service-Oriented Architectures. The approach is based on source code analysis for identifying the contribution of code fragments to architectural elements and graph transformation for architectural migration, allowing for a high degree of automation. In order to transform existing application architectures into SOAs, the methodology has to be used in two dimensions, a technological and functional one.
The work presented here is being developed in the context of a collaboration between academia and industry, and is aimed at being applied in real reengineering projects
Self-management for large-scale distributed systems
Autonomic computing aims at making computing systems self-managing by using autonomic managers in order to reduce obstacles caused by management complexity. This thesis presents results of research on self-management for large-scale distributed systems. This research was motivated by the increasing complexity of computing systems and their management.
In the first part, we present our platform, called Niche, for programming self-managing component-based distributed applications. In our work on Niche, we have faced and addressed the following four challenges in achieving
self-management in a dynamic environment characterized by volatile resources and high churn: resource discovery, robust and efficient sensing and actuation, management bottleneck, and scale. We present results of our research
on addressing the above challenges. Niche implements the autonomic computing architecture, proposed by IBM, in a fully decentralized way. Niche supports a network-transparent view of the system architecture simplifying
the design of distributed self-management. Niche provides a concise and expressive API for self-management. The implementation of the platform relies on the scalability and robustness of structured overlay networks. We proceed
by presenting a methodology for designing the management part of a distributed self-managing application. We define design steps that include partitioning of management functions and orchestration of multiple autonomic
managers. In the second part, we discuss robustness of management and data consistency, which are necessary in a distributed system. Dealing with the effect of churn on management increases the complexity of the management logic
and thus makes its development time consuming and error prone. We propose the abstraction of Robust Management Elements, which are able to heal themselves under continuous churn. Our approach is based on replicating a
management element using finite state machine replication with a reconfigurable replica set. Our algorithm automates the reconfiguration (migration) of the replica set in order to tolerate continuous churn. For data consistency, we propose a majority-based distributed key-value store supporting multiple consistency levels that is based on a peer-to-peer network. The store enables the tradeoff between high availability and data consistency. Using majority allows avoiding potential drawbacks of a master-based consistency control, namely, a single-point of failure and a potential performance bottleneck. In the third part, we investigate self-management for Cloud-based storage systems with the focus on elasticity control using elements of control theory and machine learning. We have conducted research on a number of different designs of an elasticity controller, including a State-Space feedback controller and a controller that combines feedback and feedforward control. We describe our experience in designing an elasticity controller for a Cloud-based key-value store using state-space model that enables to trade-off performance for cost. We describe the steps in designing an elasticity controller. We continue by
presenting the design and evaluation of ElastMan, an elasticity controller for Cloud-based elastic key-value stores that combines feedforward and feedback control
Emerging research directions in computer science : contributions from the young informatics faculty in Karlsruhe
In order to build better human-friendly human-computer interfaces,
such interfaces need to be enabled with capabilities to perceive
the user, his location, identity, activities and in particular his interaction
with others and the machine. Only with these perception capabilities
can smart systems ( for example human-friendly robots or smart environments) become posssible. In my research I\u27m thus focusing on the
development of novel techniques for the visual perception of humans and
their activities, in order to facilitate perceptive multimodal interfaces,
humanoid robots and smart environments. My work includes research
on person tracking, person identication, recognition of pointing gestures,
estimation of head orientation and focus of attention, as well as
audio-visual scene and activity analysis. Application areas are humanfriendly
humanoid robots, smart environments, content-based image and
video analysis, as well as safety- and security-related applications. This
article gives a brief overview of my ongoing research activities in these
areas
Cross-layer Peer-to-Peer Computing in Mobile Ad Hoc Networks
The future information society is expected to rely heavily on wireless technology. Mobile access to the Internet is steadily gaining ground, and could easily end up exceeding the number of connections from the fixed infrastructure. Picking just one example, ad hoc networking is a new paradigm of wireless communication for mobile devices. Initially, ad hoc networking targeted at military applications as well as stretching the access to the Internet beyond one wireless hop. As a matter of fact, it is now expected to be employed in a variety of civilian applications. For this reason, the issue of how to make these systems working efficiently keeps the ad hoc research community active on topics ranging from wireless technologies to networking and application systems.
In contrast to traditional wire-line and wireless networks, ad hoc networks are expected to operate in an environment in which some or all the nodes are mobile, and might suddenly disappear from, or show up in, the network. The lack of any centralized point, leads to the necessity of distributing application services and responsibilities to all available nodes in the network, making the task of developing and deploying application a hard task, and highlighting the necessity of suitable middleware platforms.
This thesis studies the properties and performance of peer-to-peer overlay management algorithms, employing them as communication layers in data sharing oriented middleware platforms. The work primarily develops from the observation that efficient overlays have to be aware of the physical network topology, in order to reduce (or avoid) negative impacts of application layer traffic on the network functioning. We argue that cross-layer cooperation between overlay management algorithms and the underlying layer-3 status and protocols, represents a viable alternative to engineer effective decentralized communication layers, or eventually re-engineer existing ones to foster the interconnection of ad hoc networks with Internet infrastructures. The presented approach is twofold. Firstly, we present an innovative network stack component that supports, at an OS level, the realization of cross-layer protocol interactions. Secondly, we exploit cross-layering to optimize overlay management algorithms in unstructured, structured, and publish/subscribe platforms
Realizing Adaptive Process-aware Information Systems with ADEPT2
In dynamic environments it must be possible to quickly implement new business processes, to enable ad-hoc deviations from the defined business processes on-demand (e.g., by dynamically adding, deleting or moving process activities), and to support dynamic process evolution (i.e., to propagate process schema changes to already running process instances). These fundamental requirements must be met without affecting process consistency and robustness of the process-aware information system. In this paper we describe how these challenges have been addressed in the ADEPT2 process management system. Our overall vision is to provide a next generation technology for the support of dynamic processes, which enables full process lifecycle management and which can be applied to a variety of application domains
The impact of microservices: an empirical analysis of the emerging software architecture
Dissertação de mestrado em Informatics EngineeringThe applications’ development paradigm has faced changes in recent years, with modern development being
characterized by the need to continuously deliver new software iterations. With great affinity with those principles,
microservices is a software architecture which features characteristics that potentially promote multiple quality
attributes often required by modern, large-scale applications. Its recent growth in popularity and acceptance in
the industry made this architectural style often described as a form of modernizing applications that allegedly
solves all the traditional monolithic applications’ inconveniences. However, there are multiple worth mentioning
costs associated with its adoption, which seem to be very vaguely described in existing empirical research, being
often summarized as "the complexity of a distributed system". The adoption of microservices provides the
agility to achieve its promised benefits, but to actually reach them, several key implementation principles have
to be honored. Given that it is still a fairly recent approach to developing applications, the lack of established
principles and knowledge from development teams results in the misjudgment of both costs and values of this
architectural style. The outcome is often implementations that conflict with its promised benefits. In order to
implement a microservices-based architecture that achieves its alleged benefits, there are multiple patterns and
methodologies involved that add a considerable amount of complexity. To evaluate its impact in a concrete and
empirical way, one same e-commerce platform was developed from scratch following a monolithic architectural
style and two architectural patterns based on microservices, featuring distinct inter-service communication and
data management mechanisms. The effort involved in dealing with eventual consistency, maintaining a communication
infrastructure, and managing data in a distributed way portrayed significant overheads not existent in the
development of traditional applications. Nonetheless, migrating from a monolithic architecture to a microservicesbased
is currently accepted as the modern way of developing software and this ideology is not often contested,
nor the involved technical challenges are appropriately emphasized. Sometimes considered over-engineering,
other times necessary, this dissertation contributes with empirical data from insights that showcase the impact
of the migration to microservices in several topics. From the trade-offs associated with the use of specific patterns,
the development of the functionalities in a distributed way, and the processes to assure a variety of quality
attributes, to performance benchmarks experiments and the use of observability techniques, the entire development
process is described and constitutes the object of study of this dissertation.O paradigma de desenvolvimento de aplicações tem visto alterações nos últimos anos, sendo o desenvolvimento
moderno caracterizado pela necessidade de entrega contínua de novas iterações de software. Com
grande afinidade com esses princípios, microsserviços são uma arquitetura de software que conta com características
que potencialmente promovem múltiplos atributos de qualidade frequentemente requisitados por aplicações
modernas de grandes dimensões. O seu recente crescimento em popularidade e aceitação na industria
fez com que este estilo arquitetural se comumente descrito como uma forma de modernizar aplicações que
alegadamente resolve todos os inconvenientes apresentados por aplicações monolíticas tradicionais. Contudo,
existem vários custos associados à sua adoção, aparentemente descritos de forma muito vaga, frequentemente
sumarizados como a "complexidade de um sistema distribuído". A adoção de microsserviços fornece a agilidade
para atingir os seus benefícios prometidos, mas para os alcançar, vários princípios de implementação
devem ser honrados. Dado que ainda se trata de uma forma recente de desenvolver aplicações, a falta de
princípios estabelecidos e conhecimento por parte das equipas de desenvolvimento resulta em julgamentos
errados dos custos e valores deste estilo arquitetural. O resultado geralmente são implementações que entram
em conflito com os seus benefícios prometidos. De modo a implementar uma arquitetura baseada em
microsserviços com os benefícios prometidos existem múltiplos padrões que adicionam considerável complexidade.
De modo a avaliar o impacto dos microsserviços de forma concreta e empírica, foi desenvolvida uma
mesma plataforma e-commerce de raiz segundo uma arquitetura monolítica e duas arquitetura baseadas em
microsserviços, contando com diferentes mecanismos de comunicação entre os serviços. O esforço envolvido
em lidar com consistência eventual, manter a infraestrutura de comunicação e gerir os dados de uma forma distribuída
representaram desafios não existentes no desenvolvimento de aplicações tradicionais. Apesar disso, a
ideologia de migração de uma arquitetura monolítica para uma baseada em microsserviços é atualmente aceite
como a forma moderna de desenvolver aplicações, não sendo frequentemente contestada nem os seus desafios
técnicos são apropriadamente enfatizados. Por vezes considerado overengineering, outras vezes necessário,
a presente dissertação visa contribuir com dados práticos relativamente ao impacto da migração para arquiteturas
baseadas em microsserviços em diversos tópicos. Desde os trade-offs envolvidos no uso de padrões
específicos, o desenvolvimento das funcionalidades de uma forma distribuída e nos processos para assegurar
uma variedade de atributos de qualidade, até análise de benchmarks de performance e uso de técnicas de
observabilidade, todo o desenvolvimento é descrito e constitui o objeto de estudo da dissertação
- …