在第一章中,Fielding定义了一套研究软件架构的术语。讨论了每个术语定义的由来,或者将该术语与相关的研究进行比较。
这些软件架构术语包括:软件架构、元素、组件、连接器、数据、配置、架构属性、架构风格等等。作者在将自己的定义与相关研究进行比较的过程中,对于一些相关的研究提出了批评。例如:
一些相关的研究完全不关注软件在运行时的特性,而只关注软件静态的源代码中的结构特性。Fielding将这些人研究的内容称作“软件结构”,不认为这是严格意义上的软件架构。在Fielding所给出的软件架构定义中,明确指出软件架构是软件在运行时的特性。
“一个软件架构是一个软件系统在其操作的某个阶段的运行时(run-time)元素的抽象。一个系统可能由很多层抽象和很多个操作阶段组成,每个抽象和操作阶段都有自己的软件架构。”
Fielding还说:
“我们将软件架构和源代码结构分离开来是为了更好的关注软件运行时的特性,这些特性不依赖于一个特定的组件实现。因此,尽管架构的设计和源代码结构的设计关系密切,它们其实是分离的设计活动。”
关注软件运行时的特性,是Fielding的软件架构研究和其他研究者明显的不同之处。在对架构元素定义的讨论中,Fielding进一步解释了这个差别。软件架构就好像是大楼的架构,而软件结构则好像是大楼的设计图纸。大楼的设计图纸并不是大楼的架构本身。大楼的设计图纸丢失了,大楼并不会立即倒塌。不应该将大楼的设计图纸看作是大楼的架构本身。同样地,不应该将画在纸面上的方框直线图看作是软件架构本身,那样会导致严重的纸上谈兵,即仅根据绘制在纸面上的方框直线图来研究所谓的软件架构(其实只代表了存在于软件源代码中的静态的软件结构)。
Fielding批评说:
“在这个过程中,软件架构被简化为通常在大多数非形式化的架构图表中能够看到的东西:方框(组件)和直线(连接器)。数据元素和其他很多真实软件架构的动态方面都被忽略了。这样的一个模型是不足以描述基于网络的软件架构的,因为对于基于网络的应用而言,数据元素在系统中的位置和移动常常是系统行为唯一至关重要的决定因素。”
Fielding还提出了软件架构风格这样一个非常重要的概念:
“一种架构风格是一组协作的架构约束,这些约束限制了架构元素的角色和功能,以及在任何一个遵循该风格的架构中允许存在的元素之间的关系。”
并且将软件架构风格当作“一种用来对架构进行分类和定义它们的公共特征的机制。”
对于国内的软件架构研究者来说,软件的“架构风格”是一种全新的概念。国内的软件架构研究者很少有能力从软件“架构风格”的抽象层次来思考软件架构的设计,几乎全部都是针对某种特定的架构来讨论。那么软件的“架构风格”与软件的架构是一种什么关系呢?
简单来说,软件的架构风格与软件的架构相比是更高层次的抽象。如果将软件的架构风格比作面向对象编程中的接口或者抽象类的话,那么某种具体的软件架构就相当于接口或抽象类的实现类。举个例子:“分布式对象”是一种架构风格,而CORBA、DCOM、EJB都是分布式对象这种架构风格的架构实例。虽然它们之间存在着很多差别,但是它们其实属于同一种架构风格。
架构风格由一组架构约束组成,当将这组架构约束应用于某种具体的架构实例时,会导致一些特定的架构属性。这些架构约束和架构属性正是判断某种架构风格是否适合于一种特定运行环境的关键。
第一章的主要内容就是,在总结和批判前人经验的基础上,提出了Fielding本人对于软件架构的研究方法和一些具有鲜明个性的观点。
分享到:
相关推荐
Roy Thomas Fielding博士论文REST(中文版), Roy Thomas Fielding第一个提出restful标准,并成为互联网http行业应用标准
Roy Thomas Fielding博士关于REST规则的文章,Roy Thomas Fielding博士关于REST规则的文章,Roy Thomas Fielding博士关于REST规则的文章,Roy Thomas Fielding博士关于REST规则的文章,Roy Thomas Fielding博士关于REST...
Roy Thomas Fielding博士论文REST中文版+英文版 Architectural Styles and the Design of Network-based Software Architectures
Fielding-PhD-thesis-on-REST
Roy T. Fielding博士论文:《架构风格与基于网络的软件架构设计》中文版,一篇rest的理论奠基之作。
REST中文版,Roy Thomas Fielding博士的博士论文:架构风格与基于网络的软件架构设计
REST创始人的博士毕业论文,描述了REST的涵义,原创的,还是比较权威的,包括中英文的两种PDF版本。
这是REST模式的首提论文!中文版,由诸多国内高手花了很长时间翻译的,本人对于REST模式的了解源于此论文。更甚者,我看到许多下载要8分,很坑人,所以我上传我自己用的这篇,高清,以飨众人!
Roy T. Fielding在他的这篇博士学位论文中定义了术语REST。被誉为REST圣经
Roy Thomas Fielding 博士是 HTTP 和 URI 等 Web 架构标准的主要设计者,Apache HTTP 服务器的主要开发者。他为 Web 架构的设计作出极其杰出的贡献,他的工作为 Web 架构奠 定了坚实的基础。 译者简介: 李锟(ajaxcn....
Roy Thomas Fielding博士《架构风格与基于网络的软件架构设计》博士论文
rest-epub:.epub中Roy Fielding的REST论文
架构风格与基于网络的软件架构设计(REST) Roy Thomas Fielding博士论文 中文版
Roy T. Fielding的博士学位论文,中文版
JAX-RS(JSR 311)指的是Java API for RESTful Web Services,Roy Fielding也参与了JAX-RS的制订,他在自己的博士论文中定义了REST。对于那些想要构建RESTful Web Services的开发者来说,JAX-RS给出了不同于JAX-WS...
REST即表述性状态传递(英文:Representational State Transfer,简称REST)是Roy Fielding博士在2000年他的博士论文中提出来的一种软件架构风格。它是一种针对网络应用的设计和开发方式,可以降低开发的复杂性,...