Towards Cloud Application Architectural Patterns: Transfer, Evolution, Innovation and Oblivion

Towards Cloud Application Architectural Patterns: Transfer, Evolution, Innovation and Oblivion

Towards cloud application architectural patterns: transfer, evolution, innovation and oblivion Dimitar Dimitrov EXAM WORK 2014 Information Engineering and Management Postadress: Besöksadress: Telefon: Box 1026 Gjuterigatan 5 036-10 10 00 (vx) 551 11 Jönköping This exam work has been carried out at the School of Engineering in Jönköping in the subject area Information Engineering and Management. The work is a part of the Master of Science programme. The authors take full responsibility for opinions, conclusions and findings presented. Examiner: He Tan Supervisor: Rob Day Scope: 30 credits (second cycle) Date: Abstract Abstract 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 Abstract 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. Keywords Architectural Patterns – Cloud Computing – Knowledge Transfer – Enterprise Software Architectures – Software Engineering Acknowledgements Acknowledgements I would like to express my gratitude to my supervisor, Mr Rob Day, who had the patience and willingness to help me throughout the whole research process. His valuable feedback helped not only the research, but me as a person and professional. I would also like to thank Mr. Eoin Woods who readily joined the initial effort of defining the scope of the thesis and provided comments which later helped ensure better validity of the results. Although not directly related, I am very thankful to all students and teachers at Jönköping University who I had the chance to interact with. Last but not least, I would like to thank my family and friends for the support. I dedicate this work to my mother who had supported me during all my education. Contents Contents List of abbreviations ........................................................................ i List of tables ................................................................................... ii List of figures ................................................................................. iii 1 Introduction ............................................................................. 1 1.1 BACKGROUND ............................................................................................................................. 2 1.2 PURPOSE AND RESEARCH QUESTIONS .......................................................................................... 4 1.3 DELIMITATIONS .......................................................................................................................... 5 1.4 CONVENTIONS ............................................................................................................................ 6 1.5 OUTLINE ..................................................................................................................................... 6 2 Theoretical Background .......................................................... 7 2.1 IMPORTANT DEFINITIONS ............................................................................................................ 7 2.1.1 Cloud computing ............................................................................................................... 7 2.1.2 Software architecture ...................................................................................................... 10 2.1.3 Patterns ........................................................................................................................... 11 2.1.4 Pattern evolution ............................................................................................................ 12 2.1.5 Frameworks, architectural styles, and architectural tactics .......................................... 13 2.2 RELATED WORK ........................................................................................................................ 14 2.2.1 Patterns and pattern languages ...................................................................................... 14 2.2.2 Cloud application architectural patterns ........................................................................ 16 2.2.3 Architectural patterns and architectural decisions ........................................................ 16 2.2.4 Documenting patterns ..................................................................................................... 17 2.2.5 Pattern-oriented system design and evolution through pattern evolution ...................... 18 3 Research Method ................................................................... 21 3.1 CHOICE OF METHOD .................................................................................................................. 21 3.2 DESIGN SCIENCE RESEARCH ...................................................................................................... 21 3.3 IMPLEMENTATION ..................................................................................................................... 24 3.3.1 Problem identification and motivation ........................................................................... 24 3.3.2 Definition of solution objectives ..................................................................................... 25 3.3.3 Design and development ................................................................................................. 26 3.3.4 Demonstration ................................................................................................................ 29 3.3.5 Evaluation ....................................................................................................................... 29 3.3.6 Communication ............................................................................................................... 29 4 Design and Development ...................................................... 30 4.1 CLOUD APPLICABILITY TAXONOMY OF ARCHITECTURAL PATTERNS (CATAP) ......................... 30 4.1.1 CATAP construction process .......................................................................................... 30 4.1.2 Selection of architectural patterns for the CATAP ......................................................... 31 4.1.3 The CATAP ..................................................................................................................... 34 4.1.4 Discussion of patterns with respect to the CATAP ......................................................... 35 4.1.5 Analysis of the CATAP ...................................................................................................

View Full Text

Details

  • File Type
    pdf
  • Upload Time
    -
  • Content Languages
    English
  • Upload User
    Anonymous/Not logged-in
  • File Pages
    100 Page
  • File Size
    -

Download

Channel Download Status
Express Download Enable

Copyright

We respect the copyrights and intellectual property rights of all users. All uploaded documents are either original works of the uploader or authorized works of the rightful owners.

  • Not to be reproduced or distributed without explicit permission.
  • Not used for commercial purposes outside of approved use cases.
  • Not used to infringe on the rights of the original creators.
  • If you believe any content infringes your copyright, please contact us immediately.

Support

For help with questions, suggestions, or problems, please contact us