CHAPTER 2 Network-based Application Architectures
2.1 Scope
2.1.1 Network-based vs. Distributed
The primary distinction between network-based architectures and software architectures in general is that communication between components is restricted to message passing, or the equivalent of message passing if a more efficient mechanism can be selected at runtime based on the location of components。
a distributed system is one that looks to its users like an ordinary centralized system, but runs on multiple, independent CPUs. In contrast, network-based systems are those capable of operation across a network, but not necessarily in a fashion that is transparent to the user.
2.1.2 Application Software vs. Networking Software
Applications represent the “business-aware” functionality of a system。
2.2 Evaluating the Design of Application Architectures
Keeping in mind that architecture is the realization of an architectural design and not the design itself.
Architecture can be evaluated by its run-time characteristics, but we would obviously prefer an evaluation mechanism that could be applied to the candidate architectural designs before having to implement all of them.
In order to evaluate an architectural design, we need to examine the design rationale behind the constraints it places on a system, and compare the properties derived from those constraints to the target application’s objectives.
The first level of evaluation is set by the application’s functional requirements.
Building a derivation tree provides a mechanism for architectural design guidance.
Since it is rarely useful to compare architectural designs across different application domains, the simplest means of ensuring consistency is to make the tree domain-specific.
Design evaluation is frequently a question of choosing between trade-offs.
I prefer to present all of the information to the architect in a readily viewable form, and let the architect’s intuition be guided by the visual pattern.
2.3 Architectural Properties of Key Interest
2.3.1 Performance
The performance of a network-based application is bound first by the application requirements, then by the chosen interaction style, followed by the realized architecture, and finally by the implementation of each component.
2.3.1.1 Network Performance
Network performance measures are used to describe some attributes of communication.
Styles impact network performance by their influence on the number of interactions per user action and the granularity of data elements.
2.3.1.2 User-perceived Performance
User-perceived performance differs from network performance in that the performance of an action is measured in terms of its impact on the user in front of an application rather than the rate at which the network moves information. The primary measures for user perceived performance are latency and completion time.
It is important to note that design considerations for optimizing latency will often have the side-effect of degrading completion time, and vice versa.
Balancing these tradeoffs can be difficult, particularly when it is unknown whether the recipient cares more about latency (e.g., Web browsers) or completion (e.g., Web spiders).
2.3.1.3 Network Efficiency
An interesting observation about network-based applications is that the best application performance is obtained by not using the network. This essentially means that the most efficient architectural styles for a network-based application are those that can effectively minimize use of the network when it is possible to do so, through reuse of prior interactions (caching), reduction of the frequency of network interactions in relation to user actions (replicated data and disconnected operation), or by removing the need for some interactions by moving the processing of data closer to the source of the data (mobile code).
2.3.2 Scalability
Scalability refers to the ability of the architecture to support large numbers of components, or interactions among components, within an active configuration.
2.3.3 Simplicity
The primary means by which architectural styles induce simplicity is by applying the principle of separation of concerns to the allocation of functionality within components.
Applying the principle of generality to architectural elements also improves simplicity, since it decreases variation within architecture.
2.3.4 Modifiability
分享到:
相关推荐
Architectural Styles and the Design of Network-based Software Architectures,对基于网络的软件架构设计以及架构风格进行了拓展,并主要揭示了软件架构的一些原理性的东西
##### 2. 网络应用架构的范围 **2.1 范围** 网络应用架构涉及了从简单的网页到复杂的分布式系统等各种类型的网络应用程序。这些应用程序通常需要跨越多个网络边界,并且能够在异构环境中运行。 **2.2 设计评估** ...
本论文是Web发展史上一篇非常重要的技术文献。...基 于相同的基本原理,Web开发者能够设计并建造出最为高效的Web应用。因此译者发起了 这一公益性的翻译项目。除了四位主要的译者以外,来自新浪公司的田乐、丁舜佳和梁...
**2. 基于网络的应用架构** - **范围**:探讨了基于网络的应用程序架构的范围和边界,强调了网络环境下的特殊考虑因素。 - **评估设计**:提出了一套评估网络应用架构设计有效性的方法,包括功能性和非功能性特征。...
REST 这个术语是由 Roy Fielding 在他的博士论文 《 Architectural Styles and the Design of Network-based Software Architectures 》中提出的。REST 并非标准,而是一种开发 Web 应用的架构风格,可以将其理解为...
它源于Roy Fielding于2000年在他的博士论文《Architectural Styles and the Design of Network-based Software Architectures》中提出的一种软件架构风格。REST架构强调的是使用HTTP协议、URI(Uniform Resource ...
Roy Fielding 在其博士论文《Architectural Styles and the Design of Network-based Software Architectures》中提出。这篇论文虽然学术性强且使用正式语言,但依然易于理解,并为 REST 实践提供了基础。 #### 三...
Roy Thomas Fielding博士论文REST中文版+英文版 Architectural Styles and the Design of Network-based Software Architectures
REST(Representational State Transfer)是一种软件架构风格,最初由Roy Thomas Fielding在他的博士论文《Architectural Styles and the Design of Network-based Software Architectures》中提出。REST强调通过...
菲尔丁(Roy Thomas Fielding)在加利福尼亚大学欧文分校提交的一篇博士论文,题目为《架构风格与基于网络的软件架构设计》(Architectural Styles and the Design of Network-based Software Architectures)。...
REST(Representational State Transfer)是一种软件架构风格,最早由Roy Thomas Fielding在他的博士论文《Architectural Styles and the Design of Network-based Software Architectures》中提出。REST的核心理念...
REST的概念最早由Roy Thomas Fielding博士在其2000年的论文《Architectural Styles and the Design of Network-based Software Architectures》中提出。Fielding博士是HTTP/1.1协议的主要设计者之一,他在论文中阐述...
7.3.1 Trace-Based Analysis of Communication Architectures 196 Contents xi 7.4 Design Space Exploration for Customizing Communication Architectures 203 7.4.1 Communication Architecture Templates 203 ...
由Roy Thomas Fielding博士在其博士论文《Architectural Styles and the Design of Network-based Software Architectures》中提出,它已成为现代Web服务设计的核心原则之一。 REST强调组件之间的可伸缩性和接口的...
REST 来自于 Roy Thomas Fielding 的博士论文《Architectural Styles and the Design of Network-based Software Architectures》。REST 是一种架构风格,具有许多优点,如高性能、可伸缩性、统一接口简化性、组件可...
从提供的文件内容来看,这是一份关于网络软件架构设计和架构风格的详细资料,其内容可能来源于Roy Thomas Fielding的博士论文《Architectural Styles and the Design of Network-based Software Architectures》。...
REST(Representational State Transfer,表述性状态转移)是由Roy Thomas Fielding在其博士论文《Architectural Styles and the Design of Network-based Software Architectures》中提出的一种网络应用程序的设计...