ABSTRACT

In the past 50 years, although software architecture has evolved through several different stages, from Mainframe to Client-Server, to Browser-Server, to Distributed System, and finally to Cloud Computing (Figure 1.1), providing value-added services with optimized resource utilization remains the theme of software system design.