37,175 research outputs found
Recommended from our members
Towards Micro Service Architecture Recovery: An Empirical Study
Micro service architectures are rapidly establishing
themselves in the software industry as a more efficient
and effective substitute for monolithic applications. In a micro
service architecture, the application is broken down into many
small elements called micro services. These are managed in
a distributed way and typically involve several development
teams. In such an environment, an architectural model can get
lost along the way, making it difficult to perform many downstream
software engineering tasks, such as migration, audit,
integration or impact analysis. To address this problem, we are
developing support for Micro Service Architecture Recovery
(MiSAR) using a Model Driven Engineering approach. In this
paper, we describe an empirical study which aims to identify
the core elements of our approach, by undertaking manual
analysis on 8 micro service-based open source projects. From
this analysis, we define a metamodel for micro service-based
architectures and a set of mapping rules which map between
the software and the metamodel. The resulting metamodel and
mapping rules provide a solid foundation for any micro service
architecture recovery approach and hence are a key first step
towards managing the architectural integrity of micro servicebased
applications
Using real options to select stable Middleware-induced software architectures
The requirements that force decisions towards building distributed system architectures are usually of a non-functional nature. Scalability, openness, heterogeneity, and fault-tolerance are examples of such non-functional requirements. The current trend is to build distributed systems with middleware, which provide the application developer with primitives for managing the complexity of distribution, system resources, and for realising many of the non-functional requirements. As non-functional requirements evolve, the `coupling' between the middleware and architecture becomes the focal point for understanding the stability of the distributed software system architecture in the face of change. It is hypothesised that the choice of a stable distributed software architecture depends on the choice of the underlying middleware and its flexibility in responding to future changes in non-functional requirements. Drawing on a case study that adequately represents a medium-size component-based distributed architecture, it is reported how a likely future change in scalability could impact the architectural structure of two versions, each induced with a distinct middleware: one with CORBA and the other with J2EE. An option-based model is derived to value the flexibility of the induced-architectures and to guide the selection. The hypothesis is verified to be true for the given change. The paper concludes with some observations that could stimulate future research in the area of relating requirements to software architectures
Next Generation Cloud Computing: New Trends and Research Directions
The landscape of cloud computing has significantly changed over the last
decade. Not only have more providers and service offerings crowded the space,
but also cloud infrastructure that was traditionally limited to single provider
data centers is now evolving. In this paper, we firstly discuss the changing
cloud infrastructure and consider the use of infrastructure from multiple
providers and the benefit of decentralising computing away from data centers.
These trends have resulted in the need for a variety of new computing
architectures that will be offered by future cloud infrastructure. These
architectures are anticipated to impact areas, such as connecting people and
devices, data-intensive computing, the service space and self-learning systems.
Finally, we lay out a roadmap of challenges that will need to be addressed for
realising the potential of next generation cloud systems.Comment: Accepted to Future Generation Computer Systems, 07 September 201
Autonomic computing architecture for SCADA cyber security
Cognitive computing relates to intelligent computing platforms that are based on the disciplines of artificial intelligence, machine learning, and other innovative technologies. These technologies can be used to design systems that mimic the human brain to learn about their environment and can autonomously predict an impending anomalous situation. IBM first used the term âAutonomic Computingâ in 2001 to combat the looming complexity crisis (Ganek and Corbi, 2003). The concept has been inspired by the human biological autonomic system. An autonomic system is self-healing, self-regulating, self-optimising and self-protecting (Ganek and Corbi, 2003). Therefore, the system should be able to protect itself against both malicious attacks and unintended mistakes by the operator
Designing Software Architectures As a Composition of Specializations of Knowledge Domains
This paper summarizes our experimental research and software development activities in designing robust, adaptable and reusable software architectures. Several years ago, based on our previous experiences in object-oriented software development, we made the following assumption: âA software architecture should be a composition of specializations of knowledge domainsâ. To verify this assumption we carried out three pilot projects. In addition to the application of some popular domain analysis techniques such as use cases, we identified the invariant compositional structures of the software architectures and the related knowledge domains. Knowledge domains define the boundaries of the adaptability and reusability capabilities of software systems. Next, knowledge domains were mapped to object-oriented concepts. We experienced that some aspects of knowledge could not be directly modeled in terms of object-oriented concepts. In this paper we describe our approach, the pilot projects, the experienced problems and the adopted solutions for realizing the software architectures. We conclude the paper with the lessons that we learned from this experience
Ontology-based collaborative framework for disaster recovery scenarios
This paper aims at designing of adaptive framework for supporting
collaborative work of different actors in public safety and disaster recovery
missions. In such scenarios, firemen and robots interact to each other to reach
a common goal; firemen team is equipped with smart devices and robots team is
supplied with communication technologies, and should carry on specific tasks.
Here, reliable connection is mandatory to ensure the interaction between
actors. But wireless access network and communication resources are vulnerable
in the event of a sudden unexpected change in the environment. Also, the
continuous change in the mission requirements such as inclusion/exclusion of
new actor, changing the actor's priority and the limitations of smart devices
need to be monitored. To perform dynamically in such case, the presented
framework is based on a generic multi-level modeling approach that ensures
adaptation handled by semantic modeling. Automated self-configuration is driven
by rule-based reconfiguration policies through ontology
- âŠ