Independent thesis Advanced level (degree of Master (Two Years)), 20 credits / 30 HE credits
Recently, cloud computing has been gaining more and more popularity. Misunderstanding, misusing and underutilizing the cloud offerings, though, both from business and technical perspective still poses a threat to the success of cloud projects. On the technical side, one of the main reasons for success or failure is often the architectural design of the system – if a system is not architected the “cloud way”, using cloud’s special characteristics, the business benefits of such a system are often questionable at best. Software architecture through architectural patterns – reusable generic solutions to classes of problems – has for long been a good way to overcome the challenges of software architecture.
This paper focuses on establishing the grounds and highlighting the differences of the knowledge transfer regarding architectural patterns from building pre-cloud (“traditional”) software systems to building cloud-native systems.
The following 3 research questions drive this research:
RQ1. How does the existing knowledge on architectural patterns relate to the cloud computing environment?
RQ2. Which characteristics of architectural patterns make them suitable for the cloud environment?
RQ3. How can architectural pattern evolution be documented effectively for usage in the practice?
In order to answer these 3 research questions and considering their focus is on utility i.e. creating a model which can be directly used in practice, the research uses design science research methodology (Peffers, et al., 2007-8). The emphasis in this methodology is iteratively building artefact(s) which can be improved and proven through practice that they actually help solving the problem at hand.
This research contributes with building 4 inter-connected artefacts:
- a cloud applicability taxonomy of architectural patterns (CATAP) showing how applicable to a cloud environment an architectural pattern is and why;
- a pattern-to-characteristics mapping showing how using an architectural pattern affects the resulting system in traditional and cloud environments;
- a pattern form documenting the architectural patterns and the findings about them in the previous two artefacts;
- a wiki site, APE Wiki, which makes the results available to the public for reference and discussion and improvement.
This research has a few interesting findings. First of all, the current architectural pattern knowledge seems to be very mature as no pattern has been found to have significantly evolved because of cloud – the architectural patterns are really generic and very flexible and only their effect on system characteristics has changed with the environment switch. On the other hand, a few new patterns were discovered and documented, which confirms the need for special attention to the new environment. Apart from that, the pattern-to-characteristics mapping provides interesting insights into which characteristics are most important for cloud and where there is a gap which may need to be filled.
This paper presents both the process and the results of the research as equally important as replicating and extending this research could help in maturing the results and the knowledge about architecting systems for cloud thus increasing the chances of success of cloud projects.
2015. , 90 p.
Architectural Patterns, Cloud Computing, Knowledge Transfer, Enterprise Software Architectures, Software Engineering