您的位置:首页 > 其它

Fielding博士论文导读----第3章

2008-06-08 14:35 274 查看
在第三章中,Fielding使用第二章中定义的架构属性作为度量标准,对很多种基于网络的应用的架构风格进行了全面的评估和比较。

尽管这一章中所讨论的架构风格种类很多,但是仍然无法包括所有可能的基于网络的应用的架构风格,而仅仅是评估了一组有代表性的架构风格的样本。并且建造一个分类的框架,以便其他架构风格一旦被开发出来就能够被添加到这个分类中。

Fielding在这一章中评估的架构风格分为以下几个大类:
数据流风格(Data-flow Styles)
复制风格(Replication Styles)
分层风格(Hierarchical Styles)
移动代码风格(Mobile Code Styles)
点对点风格(Peer-to-Peer Styles)

每个架构风格大类又分为几个小类,
数据流风格(Data-flow Styles)包括了管道和过滤器(Pipe and Filter)、统一管道和过滤器(Uniform Pipe and Filter)

复制风格(Replication Styles)包括了复制仓库(Replicated Repository)、缓存(Cache)
分层风格(Hierarchical Styles)包括了客户-服务器(Client-Server)、分层系统(Layered System)和分层-客户-服务器(Layered-Client-Server)、客户-无状态-服务器(Client-Stateless-Server)、客户-缓存-无状态-服务器(Client-Cache-Stateless-Server)、分层-客户-缓存-无状态-服务器(Layered-Client-Cache-Stateless-Server)、远程会话(Remote Session)、远程数据访问(Remote Data Access)

移动代码风格(Mobile Code Styles)包括了虚拟机(Virtual Machine)、远程求值(Remote Evaluation)、按需代码(Code on Demand)、分层-按需代码-客户-缓存-无状态-服务器(Layered-Code-on-Demand-
Client-Cache-Stateless-Server)、移动代理(Mobile Agent)

点对点风格(Peer-to-Peer Styles)包括了基于事件的集成(Event-based Integration)、C2、分布式对象(Distributed Objects)、被代理的分布式对象(Brokered Distributed Objects)

Fielding通过表格列举了这些架构风格对于各种架构属性的影响,并且对于每种架构风格的优缺点进行的深入的点评。

第三章是Fielding这篇论文中最为出彩的一章,集中体现出了Fielding在软件架构研究领域的深厚功力。如果说以前我读过的一些软件架构方面的著作只是让我看到了一个个树木的话,那么论文的第三章让我一下子看到了整片的森林,一下子豁然开朗。我在读这一章的时候感觉是大开眼界。以前读过的任何一本软件架构方面的著作中都没有这样清晰地比较过各种软件架构的影响。甚至有些作者还有意模糊某种架构在不利方面的影响(例如几乎所有讲EJB的书),而且有意不讲清楚架构所适用的运行环境,给读者造成的感觉就是这是一种普遍适用的“银弹”架构。前一段时间国内某软件厂商开发出的基于JSF的“世界上最好的Web开发框架”就是一个典型的例子。大家还是都诚实一些比较好。

以后每当我感觉到运行于某个特定环境的应用似乎可以使用某种架构时,我都会重新阅读Fielding论文的第三章,看看这种架构有没有已经讨论过,有哪些优缺点。如果这种架构是一种尚未被讨论过的新架构,我就会按照Fielding提出的研究方法和分类框架,画出表格,仔细考虑和分析这种架构对于各种架构属性将造成的影响,判断这种架构是否真的适合于我所要建造的应用,然后作出取舍。这是我目前所知道可以遵循的最为可靠的研究方法,可以让我尽可能远离Design by buzzword。

这一章的目的并非是为了得出结论,而是全面展示目前可以选择的基于网络的应用的架构,为以后的章节准备足够的素材。以这一章的内容作为原料,后面章节使用这些原料,为读者制造出来一道美味可口的圣诞大餐。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: