`
JackyCheng2007
  • 浏览: 254239 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

REST 阅读 (1) - Software Architecture

    博客分类:
  • REST
阅读更多
Representational State Transfer (REST)

REST Constraints

Null ->  Client-Server -> client-stateless-server ->
client-cache-stateless-server -> Uniform-client-cache-stateless-server ->
Uniform-Layered-client-cache-stateless-server ->
code-on-demand(optional) - Uniform-Layered-client-cache-stateless-server

REST Architectural Elements

Data Elements

resource ------------------ the intended conceptual target of a hypertext reference
resource identifier ----------------- URL, URN
representation ---------------------- HTML document, JPEG image
representation metadata media type -- last-modified time
resource metadata ------------------- source link, alternates, vary
control data ------------------------ if-modified-since, cache-control

架构样式和基于网络的软件架构的设计

Roy Thomas Fielding


摘 要


万维网(WWW)已经取得很大的成功,因为它的架构设计满足了互联网级别的分布式超媒体系统的需求。Web已被迭代式的开发了十几年,对定义其架构的标准进行了一系列的修改。为了识别需要修改的和不需要修改的哪些方面,我们需要一种现在web架构模型来引导它的设计、定义和开发。

软件架构的研究寻找了很多方法来决定怎样最优地划分系统,组件彼此如何识别和通信,信息如何沟通,系统元素如何独立进化,以及上面这些问题如何通过正式的和非正式的概念描述。受这种需求的驱动,我的工作就是要利用一些原则上的约束来理解和评估基于网络的软件架构,从而期望满足该架构的功能、性能和社会的需求。一种架构样式是一种有名字的和一组架构约束等价的概念。

本文定义了一种通过架构样式来理解基于网络的软件架构的框架,并阐述了该样式是如何引导基于网络的软件架构的设计的。我对基于网络的软件架构的样式进行了调查研究,并根据他们的促进分布式超媒体架构的属性对他们进行分析。然后我就引入了REST样式,并解释该样式是如何引导现代web软件架构的设计何开发的。

REST强调组件交互的伸缩性,接口的通用性,组件开发的独立性,减少交互时间的中间组件,增强安全,兼容遗留系统。

1. Software Architecture
1.1 Run-time Abstraction
A software architecture is an abstraction of the run-time elements of a software system during some phase of its operation. A system may be composed of many levels of abstraction and many phases of operation, each with its own software architecture.

Therefore, architectural design and source code structural design, though closely related, are separate design activities.
1.2 Elements
A software architecture is defined by a configuration of architectural elements—components, connectors, and data—constrained in their relationships in order to achieve a desired set of architectural properties.
1.2.1 Components
A component is an abstract unit of software instructions and internal state that provides a transformation of data via its interface.

Example transformations include loading into memory from secondary storage, performing some calculation, translating to a different format, encapsulation with other data, etc.

A component is defined by its interface and the services it provides to other components, rather than by its implementation behind the interface.
1.2.2 Connectors
A connector is an abstract mechanism that mediates communication, coordination, or cooperation among components.
Examples include shared representations, remote procedure calls, message-passing protocols, and data streams.

Connectors enable communication between components by transferring data elements from one interface to another without changing the data.
1.2.3 Data
A datum is an element of information that is transferred from a component, or received by a component, via a connector.

Examples include byte-sequences, messages, marshaled parameters, and serialized objects, but do not include information that is permanently resident or hidden within a component.

The nature of the data elements within a network-based application architecture will often determine whether or not a given architectural style is appropriate.
1.3 Configurations
A configuration is the structure of architectural relationships among components, connectors, and data during a period of system run-time.
Strictly speaking, one might think of a configuration as being equivalent to a set of specific constraints on component interaction.
1.4 Properties
The set of architectural properties of a software architecture includes all properties that derive from the selection and arrangement of components, connectors, and data within the system. Examples include both the functional properties achieved by the system and non-functional properties, such as relative ease of evolution, reusability of components, efficiency, and dynamic extensibility, often referred to as quality attributes.
1.5 Styles
An architectural style is a coordinated set of architectural constraints that restricts the roles/features of architectural elements and the allowed relationships among those elements within any architecture that conforms to that style.
1.6 Patterns and Pattern Languages

1.7 Views
An architectural viewpoint is often application-specific and varies widely based on the application domain. ... we have seen architectural viewpoints that address a variety of issues, including: temporal issues, state and control approaches, data representation, transaction life cycle, security safeguards, and peak demand and graceful degradation. No doubt there are many more possible viewpoints.
A process view emphasizes the data flow through the components and some aspects of the connections among the components with respect to the data. A data view emphasizes the processing flow, with less emphasis on the connectors. A connection view emphasizes the relationship between components and the state of communication.


分享到:
评论

相关推荐

    Hands-On-Software-Architecture-with-Golang:Packt发行的《使用Golang的动手软件架构》

    通过介绍REST和GraphQL标准来探索API驱动的系统架构 构建事件驱动的体系结构,并使您的体系结构易碎 工程师可扩展性,并学习如何从其他语言迁移到Go 掌握CICD管道,云部署等部署注意事项 在Go中构建端到端电子商务...

    Essential Software Architecture,Second Edition

    《Essential Software Architecture, Second Edition》(《软件架构精要 第二版》)是由Ian Gorton撰写的一本关于软件架构的权威教材。Ian Gorton是一位实验室研究员,目前任职于太平洋西北国家实验室。本书作为软件...

    Learn Microservices with Spring Boot

    Author Moises Macero follows a very pragmatic approach to explain the benefits of using this type of software architecture, instead of keeping you distracted with theoretical concepts. He covers some ...

    fse-F14-SA5-SSNoC-Java-REST:fse-F14-SA5-SSNoC-Java-REST

    3. "SA5" 可能是“Software Architecture 5”或“System Assignment 5”,表明这是关于软件架构的第五个任务或阶段。 4. "SSNoC" 是 "Social Network on Chip" 的缩写,指在芯片上的社交网络系统,这里可能是一个...

    REST架构网页开发

    REST架构网页开发.Representational State Transfer (REST) is a style of software architecture for distributed systems such as the World Wide Web.

    sample-dotnet-core-cqrs-api:使用Clean Architecture的具有原始SQL和DDD的示例.NET Core REST API CQRS实现

    使用原始架构和原始SQL和DDD的示例.NET Core REST API CQRS实现。 CI 给个星星! :star: 如果您喜欢这个项目,请学习或在应用程序中使用它,请给它加星号。 谢谢! 描述 使用基本方法和域驱动设计实现的示例.NET ...

    Multiprocessor+Systems-on-Chips

    1.7.2 Software architecture and design reuse viewpoint 15 1.7.3 Optimization Viewpoint 16 1.8 The Rest of the Book 18 PART I HARDWARE 19 2 Techniques for Designing Energy-Aware MPSoCs 21 Mary Jane ...

    12 More Essential Skills for Software Architects

    Software architecture is about learning how to relate to people and ... 12 Essential Skills of Software Architects focused on soft skills – without these, the rest of the journey is nearly impossible

    Clean Architectures in Python A practical approach to better software design

    The clean architecture is the opposite of spaghetti code, where everything is interlaced and there are no single elements that can be easily detached from the rest and replaced without the whole ...

    【英文参考资料】-AUTOSAR学习资料无人驾驶-AUTOSAR_SWS_REST.zip

    标题中的“AUTOSAR学习资料无人驾驶-AUTOSAR_SWS_REST.zip”主要涉及的是AUTOSAR(AUTomotive Open System ARchitecture,汽车开放系统架构)在无人驾驶领域的应用,特别是REST(Representational State Transfer,...

    Software Pipelines and SOA

    在IT领域,软件管道(Software Pipelines)和面向服务架构(Service-Oriented Architecture, SOA)是两种重要的设计模式和技术概念,它们各自服务于不同的目的,但有时可以协同工作以提高系统的效率和可扩展性。...

    Enterprise Rails

    * Explore service-oriented architecture and web services with XML-RPC and REST * See how caching can be a dependable way to improve performance Building for scale requires more work up front, but ...

    Java EE 学习方向

    - COA(Cloud-Oriented Architecture)、SaaS(Software as a Service)、网格计算、集群计算、分布式计算、云计算等技术。 通过上述内容的学习,不仅能够成为一名合格的Java程序员,还能够逐渐成长为Java高级软件...

    SoapUI-x64-5.2.1

    SOAPUI是由SmartBear Software公司开发的一款开源接口测试工具,主要用于测试SOAP(Simple Object Access Protocol)和REST(Representational State Transfer)协议的服务。它不仅支持发送和接收SOAP请求,还能够...

    Docker in Practice

    Part 1 lays the groundwork for the rest of the book, introducing Docker and getting you to run some basic Docker commands. In chapter 2 some time is spent getting you familiar with Docker’s client-...

    WebService&SOA&ESB入门介绍(手把手xfire开发WS入门实例)

    SOAP最初由Microsoft和Userland Software提出,并由W3C发展为规范。SOAP 1.1仅支持HTTP POST,而SOAP 1.2增加了对HTTP GET的支持。SOAP消息通常包含四个部分:封装结构、编码规则、RPC表示和绑定,其中封装和编码...

    单片机-外文翻译-英文文献-中英版-at89s51概述.doc

    The interrupt architecture of the AT89S51 consists of a five-vector, two-level interrupt structure. This means there are five distinct interrupt vectors, each directing the processor to a specific ...

    WebService.ppt

    XFire(现为Apache CXF的一部分)简化了Web Service的创建和部署,而Axis则提供了广泛的工具和支持,包括Axis1.x和Axis2.x两个版本。 【相关技术】 与Web Service密切相关的技术包括AJAX(Asynchronous JavaScript...

Global site tag (gtag.js) - Google Analytics