开发工具:
文件大小: 792kb
下载次数: 0
上传时间: 2017-10-12
详细说明: 作者简介: Roy Thomas Fielding 博士是 HTTP 和 URI 等 Web 架构标准的主要设计者,Apache HTTP 服务器的主要开发者。他为 Web 架构的设计作出极其杰出的贡献,他的工作为 Web 架构奠 定了坚实的基础。 内容目录 论文摘要............................................................................................................................... ...............7 绪论......................................................................................................................................................8 第 1 章 软件架构...............................................................................................................................10 1.1 运行时抽象.............................................................................................................................10 1.2 元素 .......................................................................................................................................10 1.2.1 组件..................................................................................................................................11 1.2.2 连接器..............................................................................................................................12 1.2.3 数据 ................................................................................................................................12 1.3 配置.........................................................................................................................................12 1.4 属性 .......................................................................................................................................13 1.5 风格.........................................................................................................................................13 1.6 模式和模式语言.....................................................................................................................14 1.7 视图.........................................................................................................................................15 1.8 相关工作 ...............................................................................................................................15 1.8.1 设计方法学......................................................................................................................15 1.8.2 设计、设计模式、模式语言手册..................................................................................15 1.8.3 参考模型和特定于领域的软件架构..............................................................................16 1.8.4 架构描述语言..................................................................................................................16 1.8.5 形式化的架构模型..........................................................................................................17 1.9 小结 .......................................................................................................................................17 第 2 章 基于网络的应用的架构.......................................................................................................18 2.1 范围.........................................................................................................................................18 2.1.1 基于网络 vs. 分布式......................................................................................................18 2.1.2 应用软件 vs. 网络软件..................................................................................................18 2.2 评估应用软件架构的设计.....................................................................................................18 2.3 关键关注点的架构属性.........................................................................................................19 2.3.1 性能(Performance).....................................................................................................19 2.3.1.1 网络性能(Network Performance).......................................................................20 2.3.1.2 用户可觉察的性能(User-perceived Performance)............................................20 2.3.1.3 网络效率(Network Efficiency)..........................................................................21 2.3.2 可伸缩性(Scalability).................................................................................................21 2.3.3 简单性(Simplicity).....................................................................................................21 2.3.4 可修改性(Modifiability)............................................................................................21 2.3.4.1 可进化性(Evolvability)......................................................................................22 2.3.4.2 可扩展性(Extensibility)......................................................................................22 2.3.4.3 可定制性(Customizability)................................................................................22 2.3.4.4 可配置性(Configurability).................................................................................22 2.3.4.5 可重用性(Reusability)........................................................................................22 2.3.5 可见性(Visibility).......................................................................................................22 2.3.6 可移植性(Portability).................................................................................................23 2.3.7 可靠性(Reliability).....................................................................................................23 2.4 小结.........................................................................................................................................23 4 第 3 章 基于网络的架构风格...........................................................................................................24 3.1 分类方法学.............................................................................................................................24 3.1.1 选择哪些架构风格来进行分类......................................................................................24 3.1.2 风格所导致的架构属性..................................................................................................24 3.1.3 可视化..............................................................................................................................24 3.2 数据流风格(Data-flow Styles)..........................................................................................25 3.2.1 管道和过滤器(Pipe and Filter,PF)..........................................................................25 3.2.2 统一管道和过滤器(Uniform Pipe and Filter,UPF)................................................26 3.3 复制风格(Replication Styles)............................................................................................26 3.3.1 复制仓库(Replicated Repository,RR).....................................................................26 3.3.2 缓存(Cache,$)..........................................................................................................26 3.4 分层风格(Hierarchical Styles)...........................................................................................27 3.4.1 客户-服务器(Client-Server,CS)..............................................................................27 3.4.2 分层系统(Layered System,LS)和分层-客户-服务器(Layered-ClientServer,LCS).........................................................................................................................28 3.4.3 客户-无状态-服务器(Client-Stateless-Server,CSS)...............................................28 3.4.4 客户-缓存-无状态-服务器(Client-Cache-Stateless-Server,C$SS)........................28 3.4.5 分层-客户-缓存-无状态-服务器(Layered-Client-Cache-Stateless-Server,LC$SS) ...................................................................................................................................................29 3.4.6 远程会话(Remote Session,RS)...............................................................................29 3.4.7 远程数据访问(Remote Data Access,RDA)............................................................29 3.5 移动代码风格(Mobile Code Styles)..................................................................................29 3.5.1 虚拟机(Virtual Machine,VM).................................................................................30 3.5.2 远程求值(Remote Evaluation,REV).......................................................................30 3.5.3 按需代码(Code on Demand,COD) .......................................................................31 3.5.4 分层-按需代码-客户-缓存-无状态-服务器(Layered-Code-on-Demand-Client-CacheStateless-Server,LCODC$SS).............................................................................................31 3.5.5 移动代理(Mobile Agent,MA).................................................................................31 3.6 点对点风格(Peer-to-Peer Styles).......................................................................................31 3.6.1 基于事件的集成(Event-based Integration,EBI).....................................................32 3.6.2 C2.....................................................................................................................................32 3.6.3 分布式对象(Distributed Objects,DO).....................................................................33 3.6.4 被代理的分布式对象(Brokered Distributed Objects,BDO)..................................33 3.7 局限.........................................................................................................................................33 3.8 相关工作.................................................................................................................................34 3.8.1 架构风格和模式的分类方法..........................................................................................34 3.8.2 分布式系统和编程范例..................................................................................................35 3.8.3 中间件..............................................................................................................................35 3.9 小结.........................................................................................................................................35 第 4 章 设计 Web 架构:问题与洞察力..........................................................................................37 4.1 万维网应用领域的需求.........................................................................................................37 4.1.1 低门槛..............................................................................................................................37 4.1.2 可扩展性..........................................................................................................................37 4.1.3 分布式超媒体..................................................................................................................38 5 4.1.4 Internet 规模....................................................................................................................38 4.1.4.1 无法控制的可伸缩性..............................................................................................38 4.1.4.2 独立部署..................................................................................................................38 4.2 问题.........................................................................................................................................39 4.3 推导方法(Approach)..........................................................................................................39 4.4 小结.........................................................................................................................................40 第 5 章 表述性状态转移(REST).................................................................................................41 5.1 推导 REST...............................................................................................................................41 5.1.1 从“空”风格开始..........................................................................................................41 5.1.2 客户-服务器....................................................................................................................41 5.1.3 无状态..............................................................................................................................42 5.1.4 缓存..................................................................................................................................42 5.1.5 统一接口..........................................................................................................................44 5.1.6 分层系统..........................................................................................................................44 5.1.7 按需代码..........................................................................................................................45 5.1.8 风格推导小结..................................................................................................................46 5.2 REST 架构的元素...................................................................................................................46 5.2.1 数据元素(Data Elements)..........................................................................................46 5.2.1.1 资源和资源标识符(Resources and Resource Identifiers).................................47 5.2.1.2 表述(Representations)........................................................................................48 5.2.2 连接器(Connectors)...................................................................................................49 5.2.3 组件(Components).....................................................................................................50 5.3 REST 架构的视图...................................................................................................................51 5.3.1 过程视图(Process View)............................................................................................51 5.3.2 连接器视图(Connector View)....................................................................................52 5.3.3 数据视图(Data View).................................................................................................53 5.4 相关工作.................................................................................................................................54 5.5 小结.........................................................................................................................................55 第 6 章 经验与评估...........................................................................................................................56 6.1 Web 标准化.............................................................................................................................56 6.2 将 REST 应用于 URI..............................................................................................................57 6.2.1 重新定义资源..................................................................................................................57 6.2.2 操作影子(Manipulating Shadows).............................................................................57 6.2.3 远程创作(Remote Authoring)....................................................................................58 6.2.4 将语义绑定到 URI..........................................................................................................58 6.2.5 REST 在 URI 中的不匹配...............................................................................................59 6.3 将 REST 应用于 HTTP...........................................................................................................59 6.3.1 可扩展性..........................................................................................................................59 6.3.1.1 协议版本控制..........................................................................................................60 6.3.1.2 可扩展的协议元素..................................................................................................60 6.3.1.3 升级..........................................................................................................................61 6.3.2 自描述的消息..................................................................................................................61 6.3.2.1 主机..........................................................................................................................61 6.3.2.2 分层的编码..............................................................................................................61 6 6.3.2.3 语义独立性..............................................................................................................62 6.3.2.4 传输独立性..............................................................................................................62 6.3.2.5 尺寸限制..................................................................................................................62 6.3.2.6 缓存控制..................................................................................................................63 6.3.2.7 内容协商..................................................................................................................63 6.3.3 性能..................................................................................................................................64 6.3.3.1 持久连接..................................................................................................................64 6.3.3.2 直写式(write-through)缓存................................................................................64 6.3.4 REST 在 HTTP 中的不匹配............................................................................................64 6.3.4.1 区分非权威的响应..................................................................................................65 6.3.4.2 Cookie......................................................................................................................65 6.3.4.3 必需扩展(Mandatory Extensions)......................................................................66 6.3.4.4 混合元数据(Mixing Metadata)..........................................................................66 6.3.4.5 MIME 语法..............................................................................................................66 6.3.5 将响应匹配到请求..........................................................................................................66 6.4 技术迁移.................................................................................................................................67 6.4.1 libwww-perl 的部署经验................................................................................................67 6.4.2 Apache 的部署经验.........................................................................................................67 6.4.3 开发顺从于 URI 和 HTTP/1.1 的软件...........................................................................68 6.5 架构上的教训.........................................................................................................................68 6.5.1 基于网络的 API 的优势..................................................................................................68 6.5.2 HTTP 并不是 RPC...........................................................................................................69 6.5.3 HTTP 并不是一种传输协议...........................................................................................70 6.5.4 媒体类型的设计..............................................................................................................70 6.5.4.1 一个基于网络的系统中的应用状态......................................................................70 6.5.4.2 增量处理..................................................................................................................71 6.5.4.3 Java vs. JavaScript....................................................................................................71 6.6 小结.........................................................................................................................................72 结论....................................................................................................................................................73 参考文献............................................................................................................................................75 ...展开收缩
(系统自动生成,下载前可以参看下载内容)
下载文件列表
相关说明
- 本站资源为会员上传分享交流与学习,如有侵犯您的权益,请联系我们删除.
- 本站是交换下载平台,提供交流渠道,下载内容来自于网络,除下载问题外,其它问题请自行百度。
- 本站已设置防盗链,请勿用迅雷、QQ旋风等多线程下载软件下载资源,下载后用WinRAR最新版进行解压.
- 如果您发现内容无法下载,请稍后再次尝试;或者到消费记录里找到下载记录反馈给我们.
- 下载后发现下载的内容跟说明不相乎,请到消费记录里找到下载记录反馈给我们,经确认后退回积分.
- 如下载前有疑问,可以通过点击"提供者"的名字,查看对方的联系方式,联系对方咨询.