Architectural Refactoring for the Cloud (ARC)

Pattern- oriented Modernization of Existing Applications for the Cloud

The blog "The Concerned Architect" and its Medium counterpart cover microservices as an implementation approach for service-oriented cloud applications.

Project results (overview): 

  • Decision- and task-centric definition of term architectural refactoring
  • Quality story templates
  • Architectural refactoring template
  • Catalog of general-purpose architectural refactorings and cloud refactorings
  • Architectural best practices, e.g. IDEAL and FIT cloud application architectures
  • POINT criteria for API design and management; service contract template
  • ADMentor, prototypical tool support for architectural decision modelling and reuse, and Cloud Design Guidance Model crafted with this tool (emerging)

Selected project results are featured in an OOP 2014 presentation (slides).

Recommended practices when architecting for the cloud (selection):

  • Design application startup and restart procedures as lean as possible.
  • Let all components implement the Service Layer pattern.
  • Define with Remote Facades and expose them with JAX-WS or JAX-RS.
  • Use messaging for cloud-internal communication and integration.
  • Define all Data Transfer Objects (DTOs) to be serializable.
  • Use Internet security technologies to satisfy application security needed.
  • Model all communication dependencies explicitly and consult IT infrastructure architects both on provider and on consumer side.
  • Score architectural patterns according to their cloud affinity using the IDEAL properties (i.e. isolated state, decomposition, elasticity, automated management, loose coupling).
  • Leverage patterns to improve application startup times and fault tolerance.

Selected architectural patterns, decisions and principles in cloud design are featured in another OOP 2014 presentation (slides).

Research papers, conference presentations and tool support

An update on the initial project results can be found in Olaf Zimmermann's presentations given at the Open Cloud Day organized by the Swiss Open Systems User Group (slides) and at Architekturen 2014, the annual meeting of the Architecture working group of the Gesellschaft für Informatik (slides). Architectural decisions that recur in workflow and BPM design are collected in a presentation given at the 8th user group meeting for software architecture at Softwareforen Leipzig (slides).

A first set of ARC papers has been published in 2015 in the Pragmatic Architect column in IEEE Software (author's copy, online version at InfoQ), a conference and journal paper (online access, download of pre-print) and a workshop paper (author's copy) presented at ICSE SAM (presentation). A supporting Architectural Refactoring Tool (ART) is described here (German with English Appendix). ART is available as an Open Source Software (OSS) here.

This article shows how the Web and HTTP can be positioned as an integration style: The Web as a Software Connector: Integration Resting on Linked Resources (IEEE Software, 2018).

Other cloud computing knowledge sources

Click here for information on the Cloud Application Lab and here for links to additional sources of cloud design knowledge. First and foremost, the ARC project leverages the cloud computing patterns featured on this website and in this book.