UNIVERSITY OF CALIFORNIA IRVINE Architectural Styles and the design of Network-based Software Architectures DISSERTATION submitted in partial satisfaction of the requirements for the degree of DOCTOR OF PHILOSOPHY in Information and Computer Science b Roy Thomas Fielding Dissertation committee Professor Richard n. Taylor, Chair Professor mark s. ackerman Professor david s. rosenblum 2000
UNIVERSITY OF CALIFORNIA, IRVINE Architectural Styles and the Design of Network-based Software Architectures DISSERTATION submitted in partial satisfaction of the requirements for the degree of DOCTOR OF PHILOSOPHY in Information and Computer Science by Roy Thomas Fielding Dissertation Committee: Professor Richard N. Taylor, Chair Professor Mark S. Ackerman Professor David S. Rosenblum 2000
o Roy Thomas Fielding, 2000. All rights reserved
© Roy Thomas Fielding, 2000. All rights reserved
The dissertation of Roy Thomas Fielding is approved and is acceptable in quality and form for publication on microfilm Committee chair University of California, Irvine 2000
ii The dissertation of Roy Thomas Fielding is approved and is acceptable in quality and form for publication on microfilm: ____________________________________ ____________________________________ ____________________________________ Committee Chair University of California, Irvine 2000
DEDICATION Pete and Kathleen Fielding, who made all of this possible, for their endless encouragement and patience And also to Tim Berners -Lee for making the World wide web an open, collaborative project What is life? It is the flash of a firefly in the night It is the breath of a buffalo in the wintertime. It is the little shadow which runs across the grass and loses itself in the sunset. Crowfoot's last words(1890), Blackfoot warrior and orator. Almost everybody feels at peace with nature: listening to the ocean waves against the shore, by a still lake, in a field of grass, on a windblown heath. One day, when we have learned the timeless way igain, we shall feel the same about our towns, and we shall feel as much at peace in them, as we do today walking by the ocean, or of a Christopher Alexander, The Timeless Way of Building(1979)
iii DEDICATION To my parents, Pete and Kathleen Fielding, who made all of this possible, for their endless encouragement and patience. And also to Tim Berners-Lee, for making the World Wide Web an open, collaborative project. What is life? It is the flash of a firefly in the night. It is the breath of a buffalo in the wintertime. It is the little shadow which runs across the grass and loses itself in the sunset. — Crowfoot's last words (1890), Blackfoot warrior and orator. Almost everybody feels at peace with nature: listening to the ocean waves against the shore, by a still lake, in a field of grass, on a windblown heath. One day, when we have learned the timeless way again, we shall feel the same about our towns, and we shall feel as much at peace in them, as we do today walking by the ocean, or stretched out in the long grass of a meadow. — Christopher Alexander, The Timeless Way of Building (1979)
TABLE OF CONTENTS LIST OF FIGURES LIST OF TABLES ACKNOWLEDGMENTS 111 CURRICULUM VITAE ABSTRACT OF THE DISSERTATION INTRODUCTION CHAPTER 1: Software Architecture 1.1 Run-time abstraction 1. 2 Elements 1.3 Configurations.................2 1. 4 Properties 12 1.5 Styles 13 1.6 Patterns and Pattern Languages 16 1.7 Views 1 8 Related Work 1.9 Summary CHAPTER 2: Network-based Application Architectures 2.1 Scope 2.2 Evaluating the Design of Application Architectures 2.3 Architectural Properties of Key Interest 24 Summary……
iv TABLE OF CONTENTS Page LIST OF FIGURES .......................................................................................vi LIST OF TABLES........................................................................................vii ACKNOWLEDGMENTS ...........................................................................viii CURRICULUM VITAE.................................................................................x ABSTRACT OF THE DISSERTATION ....................................................xvi INTRODUCTION ..........................................................................................1 CHAPTER 1: Software Architecture ..............................................................5 1.1 Run-time Abstraction............................................................................................5 1.2 Elements................................................................................................................7 1.3 Configurations ....................................................................................................12 1.4 Properties ............................................................................................................12 1.5 Styles...................................................................................................................13 1.6 Patterns and Pattern Languages ..........................................................................16 1.7 Views ..................................................................................................................17 1.8 Related Work ......................................................................................................18 1.9 Summary.............................................................................................................23 CHAPTER 2: Network-based Application Architectures.............................24 2.1 Scope...................................................................................................................24 2.2 Evaluating the Design of Application Architectures ..........................................26 2.3 Architectural Properties of Key Interest .............................................................28 2.4 Summary.............................................................................................................37