没有合适的资源?快使用搜索试试~ 我知道了~
首页Architectural Styles and the Design of Network-based Software Architectures_2
资源详情
资源评论
资源推荐
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
© Roy Thomas Fielding, 2000.
All rights reserved.
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
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)
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
v
CHAPTER 3: Network-based Architectural Styles ......................................38
3.1 Classification Methodology................................................................................38
3.2 Data-flow Styles .................................................................................................41
3.3 Replication Styles ...............................................................................................43
3.4 Hierarchical Styles ..............................................................................................45
3.5 Mobile Code Styles.............................................................................................50
3.6 Peer-to-Peer Styles..............................................................................................55
3.7 Limitations ..........................................................................................................59
3.8 Related Work ......................................................................................................60
3.9 Summary.............................................................................................................64
CHAPTER 4: Designing the Web Architecture: Problems and Insights ......66
4.1 WWW Application Domain Requirements ........................................................66
4.2 Problem...............................................................................................................71
4.3 Approach.............................................................................................................72
4.4 Summary.............................................................................................................75
CHAPTER 5: Representational State Transfer (REST)................................76
5.1 Deriving REST ...................................................................................................76
5.2 REST Architectural Elements.............................................................................86
5.3 REST Architectural Views .................................................................................97
5.4 Related Work ....................................................................................................103
5.5 Summary...........................................................................................................105
CHAPTER 6: Experience and Evaluation .................................................. 107
6.1 Standardizing the Web......................................................................................107
6.2 REST Applied to URI.......................................................................................109
6.3 REST Applied to HTTP....................................................................................116
6.4 Technology Transfer.........................................................................................134
6.5 Architectural Lessons .......................................................................................138
6.6 Summary...........................................................................................................147
CONCLUSIONS.........................................................................................148
REFERENCES............................................................................................152
vi
LIST OF FIGURES
Page
Figure 5-1. Null Style 77
Figure 5-2. Client-Server 78
Figure 5-3. Client-Stateless-Server 78
Figure 5-4. Client-Cache-Stateless-Server 80
Figure 5-5. Early WWW Architecture Diagram 81
Figure 5-6. Uniform-Client-Cache-Stateless-Server 82
Figure 5-7. Uniform-Layered-Client-Cache-Stateless-Server 83
Figure 5-8. REST 84
Figure 5-9. REST Derivation by Style Constraints 85
Figure 5-10. Process View of a REST-based Architecture 98
vii
LIST OF TABLES
Page
Table 3-1. Evaluation of Data-flow Styles for Network-based Hypermedia 41
Table 3-2. Evaluation of Replication Styles for Network-based Hypermedia 43
Table 3-3. Evaluation of Hierarchical Styles for Network-based Hypermedia 45
Table 3-4. Evaluation of Mobile Code Styles for Network-based Hypermedia 51
Table 3-5. Evaluation of Peer-to-Peer Styles for Network-based Hypermedia 55
Table 3-6. Evaluation Summary 65
Table 5-1. REST Data Elements 88
Table 5-2. REST Connectors 93
Table 5-3. REST Components 96
viii
ACKNOWLEDGMENTS
It has been a great pleasure working with the faculty, staff, and students at the University
of California, Irvine, during my tenure as a doctoral student. This work would never have
been possible if it were not for the freedom I was given to pursue my own research
interests, thanks in large part to the kindness and considerable mentoring provided by
Dick Taylor, my long-time advisor and committee chair. Mark Ackerman also deserves a
great deal of thanks, for it was his class on distributed information services in 1993 that
introduced me to the Web developer community and led to all of the design work
described in this dissertation. Likewise, it was David Rosenblum’s work on Internet-scale
software architectures that convinced me to think of my own research in terms of
architecture, rather than simply hypermedia or application-layer protocol design.
The Web’s architectural style was developed iteratively over a six year period, but
primarily during the first six months of 1995. It has been influenced by countless
discussions with researchers at UCI, staff at the World Wide Web Consortium (W3C), and
engineers within the HTTP and URI working groups of the Internet Engineering
Taskforce (IETF). I would particularly like to thank Tim Berners-Lee, Henrik Frystyk
Nielsen, Dan Connolly, Dave Raggett, Rohit Khare, Jim Whitehead, Larry Masinter, and
Dan LaLiberte for many thoughtful conversations regarding the nature and goals of the
WWW architecture. I’d also like to thank Ken Anderson for his insight into the open
hypertext community and for trailblazing the path for hypermedia research at UCI. Thanks
also to my fellow architecture researchers at UCI, all of whom finished before me,
including Peyman Oreizy, Neno Medvidovic, Jason Robbins, and David Hilbert.
The Web architecture is based on the collaborative work of dozens of volunteer software
developers, many of whom rarely receive the credit they deserve for pioneering the Web
before it became a commercial phenomenon. In addition to the W3C folks above,
recognition should go to the server developers that enabled much of the Web’s rapid
growth in 1993-1994 (more so, I believe, than did the browsers). That includes
Rob McCool (NCSA httpd), Ari Luotonen (CERN httpd/proxy), and Tony Sanders
(Plexus). Thanks also to “Mr. Content”, Kevin Hughes, for being the first to implement
most of the interesting ways to show information on the Web beyond hypertext. The early
client developers also deserve thanks: Nicola Pellow (line-mode), Pei Wei (Viola),
Tony Johnson (Midas), Lou Montulli (Lynx), Bill Perry (W3), and Marc Andreessen and
Eric Bina (Mosaic for X). Finally, my personal thanks go to my libwww-perl
collaborators, Oscar Nierstrasz, Martijn Koster, and Gisle Aas. Cheers!
ix
The modern Web architecture is still defined more by the work of individual volunteers
than by any single company. Chief among them are the members of the Apache Software
Foundation. Special thanks go to Robert S. Thau for the incredibly robust Shambhala
design that led to Apache 1.0, as well as for many discussions on desirable (and
undesirable) Web extensions, to Dean Gaudet for teaching me more about detailed system
performance evaluation than I thought I needed to know, and to Alexei Kosut for being the
first to implement most of HTTP/1.1 in Apache. Additional thanks to the rest of the
Apache Group founders, including Brian Behlendorf, Rob Hartill, David Robinson,
Cliff Skolnick, Randy Terbush, and Andrew Wilson, for building a community that we
can all be proud of and changing the world one more time.
I’d also like to thank all of the people at eBuilt who have made it such a great place to
work. Particular thanks go to the four technical founders — Joe Lindsay, Phil Lindsay,
Jim Hayes, and Joe Manna — for creating (and defending) a culture that makes
engineering fun. Thanks also to Mike Dewey, Jeff Lenardson, Charlie Bunten, and
Ted Lavoie, for making it possible to earn money while having fun. And special thanks to
Linda Dailing, for being the glue that holds us all together.
Thanks and good luck go out to the team at Endeavors Technology, including
Greg Bolcer, Clay Cover, Art Hitomi, and Peter Kammer. Finally, I’d like to thank my
three muses—Laura, Nikki, and Ling—for their inspiration while writing this dissertation.
In large part, my dissertation research has been sponsored by the Defense Advanced
Research Projects Agency, and Airforce Research Laboratory, Air Force Materiel
Command, USAF, under agreement number F30602-97-2-0021. The U.S. Government is
authorized to reproduce and distribute reprints for Governmental purposes
notwithstanding any copyright annotation thereon. The views and conclusions contained
herein are those of the authors and should not be interpreted as necessarily representing
the official policies or endorsements, either expressed or implied, of the Defense
Advanced Research Projects Agency, Airforce Research Laboratory or the U.S.
Government.
剩余89页未读,继续阅读
javatemptation
- 粉丝: 65
- 资源: 324
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- 2023年中国辣条食品行业创新及消费需求洞察报告.pptx
- 2023年半导体行业20强品牌.pptx
- 2023年全球电力行业评论.pptx
- 2023年全球网络安全现状-劳动力资源和网络运营的全球发展新态势.pptx
- 毕业设计-基于单片机的液体密度检测系统设计.doc
- 家用清扫机器人设计.doc
- 基于VB+数据库SQL的教师信息管理系统设计与实现 计算机专业设计范文模板参考资料.pdf
- 官塘驿林场林防火(资源监管)“空天地人”四位一体监测系统方案.doc
- 基于专利语义表征的技术预见方法及其应用.docx
- 浅谈电子商务的现状及发展趋势学习总结.doc
- 基于单片机的智能仓库温湿度控制系统 (2).pdf
- 基于SSM框架知识产权管理系统 (2).pdf
- 9年终工作总结新年计划PPT模板.pptx
- Hytera海能达CH04L01 说明书.pdf
- 数据中心运维操作标准及流程.pdf
- 报告模板 -成本分析与报告培训之三.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
评论0