7 research outputs found

    Creating a sustainable digital infrastructure: The role of service-oriented architecture

    Get PDF
    The United Nations’ goal of generating sustainable industry, innovation, and infrastructure is the point of departure for our reflective paper. The paper elaborates on the concepts of digital infrastructure, service-oriented architecture, and microservices. It emphasizes the benefits and challenges of creating a sustainable infrastructure based on a service-oriented environment, in which cloud services constitute an important part. We outline the prerequisites for obtaining a sustainable digital infrastructure based on services. Service-oriented architecture (SOA) and recently, microservice architecture, and cloud services, can provide organizations with the improved agility and flexibility essential for generating sustainability in a market focusing on digitalization. The reuse capability of SOA provides a common pool of information technology (IT) resources and qualifies as a green IT approach that impacts environmental protection. Previous research has identified IT and business alignment together with SOA governance as the most critical criteria when implementing SOA. This paper discusses these issues in-depth to explain sustainability.publishedVersio

    Continuous evaluation framework for software architectures: an IoT case

    Get PDF
    Context: Design-time evaluation is essential to build the initial software architecture to be deployed. However, experts’ design-time assumptions are unlikely to remain true indefinitely in systems characterized by scale, heterogeneity, and dynamism (e.g. IoT). Experts’ design-time decisions can be thus challenged at run-time. A continuous architecture evaluation that systematically intertwines design-time and run-time evaluation is necessary. However, the literature lacks examples on how continuous evaluation can be realized and conducted. Objective: This thesis proposes the first continuous architecture evaluation framework. Method: The framework is composed of two phases: design-time and run-time evaluation. The design-time evaluation enables the necessary initial step of system design and deployment. Run-time evaluation assesses to what extent the architecture options adopted at design-time and other potential options, perform well at run-time. For that, the framework leverages techniques inspired by finance, reinforcement learning, multi-objective optimisation, and time series forecasting. The framework can actively track and proactively forecast the performance of architecture decisions and detect any detrimental changes. It can then inform deployment, refinement, and/or phasing-out decisions. We use an IoT case study to show how continuous evaluation can fundamentally guide the architect and influence the outcome of the decisions. A series of experiments is conducted to demonstrate the applicability and effectiveness of the framework. Results: The design-time evaluation was able to evaluate the architecture options under uncertainty and shortlist candidates for further refinement at run-time. The run-time evaluation has shown to be effective. In particular, it enabled a significant improvement in overall quality (about 40-70% better than reactive and state-of-the-art approaches in some scenarios), with enhanced architecture’s stability. It was also shown to be scalable and robust to various noise levels. In addition, it provides the architect with flexibility to set a monitoring interval to profile the quality of candidates and has parameters that enable the architect to manage the trade-off between architecture stability and learning accuracy. Conclusion: The proposed continuous evaluation framework could potentially aid the architect in evaluating complex design decisions in dynamic environments

    Understanding, Analysis, and Handling of Software Architecture Erosion

    Get PDF
    Architecture erosion occurs when a software system's implemented architecture diverges from the intended architecture over time. Studies show erosion impacts development, maintenance, and evolution since it accumulates imperceptibly. Identifying early symptoms like architectural smells enables managing erosion through refactoring. However, research lacks comprehensive understanding of erosion, unclear which symptoms are most common, and lacks detection methods. This thesis establishes an erosion landscape, investigates symptoms, and proposes identification approaches. A mapping study covers erosion definitions, symptoms, causes, and consequences. Key findings: 1) "Architecture erosion" is the most used term, with four perspectives on definitions and respective symptom types. 2) Technical and non-technical reasons contribute to erosion, negatively impacting quality attributes. Practitioners can advocate addressing erosion to prevent failures. 3) Detection and correction approaches are categorized, with consistency and evolution-based approaches commonly mentioned.An empirical study explores practitioner perspectives through communities, surveys, and interviews. Findings reveal associated practices like code review and tools identify symptoms, while collected measures address erosion during implementation. Studying code review comments analyzes erosion in practice. One study reveals architectural violations, duplicate functionality, and cyclic dependencies are most frequent. Symptoms decreased over time, indicating increased stability. Most were addressed after review. A second study explores violation symptoms in four projects, identifying 10 categories. Refactoring and removing code address most violations, while some are disregarded.Machine learning classifiers using pre-trained word embeddings identify violation symptoms from code reviews. Key findings: 1) SVM with word2vec achieved highest performance. 2) fastText embeddings worked well. 3) 200-dimensional embeddings outperformed 100/300-dimensional. 4) Ensemble classifier improved performance. 5) Practitioners found results valuable, confirming potential.An automated recommendation system identifies qualified reviewers for violations using similarity detection on file paths and comments. Experiments show common methods perform well, outperforming a baseline approach. Sampling techniques impact recommendation performance

    A conceptual framework for uncertainty in software systems and its application to software architectures

    Get PDF
    The development and operation of a software system involve many aspects including processes, artefacts, infrastructure and environments. Most of these aspects are vulnerable to uncertainty. Thus, the identification, representation and management of uncertainty in software systems is important and will be of interest to many stakeholders in software systems. The hypothesis of this work is that such consideration would benefit from an underlying conceptual framework that allows stakeholders to characterise, analyse and mitigate uncertainties. This PhD proposes a framework to provide a generic foundation for the systematic and explicit consideration of uncertainty in software systems by consolidating and extending existing approaches to dealing with uncertainty, which are typically tailored to specific domains or artefacts. The thesis applies the framework to software architectures, which are fundamental in determining the structure, behaviour and qualities of software systems and are thus suited to serve as an exemplar artefact. The framework is evaluated using the software architectures of case studies from 3 different domains. The contributions of the research to the study of uncertainty in software systems include a literature review of approaches to managing uncertainty in software architecture, a review of existing work on uncertainty frameworks related to software systems, a conceptual framework for uncertainty in software systems, a conceptualisation of the workbench infrastructure as a basis for building an uncertainty consideration workbench of tools for representing uncertainty as part of software architecture descriptions, and an evaluation of the uncertainty framework using three software architecture case studies

    Cyber-Physical Threat Intelligence for Critical Infrastructures Security

    Get PDF
    Modern critical infrastructures comprise of many interconnected cyber and physical assets, and as such are large scale cyber-physical systems. Hence, the conventional approach of securing these infrastructures by addressing cyber security and physical security separately is no longer effective. Rather more integrated approaches that address the security of cyber and physical assets at the same time are required. This book presents integrated (i.e. cyber and physical) security approaches and technologies for the critical infrastructures that underpin our societies. Specifically, it introduces advanced techniques for threat detection, risk assessment and security information sharing, based on leading edge technologies like machine learning, security knowledge modelling, IoT security and distributed ledger infrastructures. Likewise, it presets how established security technologies like Security Information and Event Management (SIEM), pen-testing, vulnerability assessment and security data analytics can be used in the context of integrated Critical Infrastructure Protection. The novel methods and techniques of the book are exemplified in case studies involving critical infrastructures in four industrial sectors, namely finance, healthcare, energy and communications. The peculiarities of critical infrastructure protection in each one of these sectors is discussed and addressed based on sector-specific solutions. The advent of the fourth industrial revolution (Industry 4.0) is expected to increase the cyber-physical nature of critical infrastructures as well as their interconnection in the scope of sectorial and cross-sector value chains. Therefore, the demand for solutions that foster the interplay between cyber and physical security, and enable Cyber-Physical Threat Intelligence is likely to explode. In this book, we have shed light on the structure of such integrated security systems, as well as on the technologies that will underpin their operation. We hope that Security and Critical Infrastructure Protection stakeholders will find the book useful when planning their future security strategies

    Using architectural modifiability tactics to examine evolution qualities of service‑ and microservice‑based systems : an approach based on principles and patterns

    No full text
    Software evolvability is an important quality attribute, yet one difficult to grasp. A certain base level of it is allegedly provided by service- and microservice-based systems, but many software professionals lack systematic understanding of the reasons and preconditions for this. We address this issue via the proxy of architectural modifiability tactics. By qualitatively mapping principles and patterns of Service Oriented Architecture (SOA) and microservices onto tactics and analyzing the results, we cannot only generate insights into service-oriented evolution qualities, but can also provide a modifiability comparison of the two popular service-based architectural styles. The results suggest that both SOA and microservices possess several inherent qualities beneficial for software evolution. While both focus strongly on loose coupling and encapsulation, there are also differences in the way they strive for modifiability (e.g. governance vs. evolutionary design). To leverage the insights of this research, however, it is necessary to find practical ways to incorporate the results as guidance into the software development process
    corecore