NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

关于构建可进化的系统

  • 2011-06-30
  • 本文字数:892 字

    阅读完需:约 3 分钟

在最近一篇帖子上, Mike Amundsen 写了构建可进化的系统,对他的演讲“超越 REST:一个打造稳定、可进化的 Web 应用程序的方案”做了补充。在那场演讲里,他希望回答的问题是“我们如何设计和实现分布式网络解决方案,使之随着时间的推移仍然保持稳定和灵活?”他说:

……把一个“应用”放到可以触及的“Web 上”一点都不难,难就难在实现一个解决方案,随着时间的推移能够成功地进化。我认为一个成功的方案包括接受和采纳分布式网络架构的一些现实,隔离环境里的临时因素,以及把你的大部分创造力放在以一种灵活和可进化的方式来表达重要的问题域信息上。

根据 Mike 的说法,回答这个问题的关键在于着眼于系统的三个方面:

* 传输协议——他认为目前创建分布式系统的工具都在向开发者隐藏了底层的协议,为了提高抽象性,通常牺牲了传输协议与生俱来的优点。

处理 HTTP 的最好方式是接纳它,让 HTTP 把系统设计师引向有损耗的(lossy)、零散的(chunky)和无状态的设计,接受 HTTP 的稳定性对于你的实现来说很少改变这个本性……这样你的所有分布式网络设计都会体现 HTTP 本身的强大、稳定和可靠。

* 状态管理——作为识别和接纳协议的不同方面的一个特例,状态管理通常用在本来没有状态的协议上(在这里是 HTTP)维护有状态的通讯。

与其不断地发明新的方式,企图忽视分布式网络交互中的无状态本性,设计师和开发者应该停止使用他们的临时个性化数据污染公共网络,客户端应该记录用户所需的信息(这正是为什么它们通常被称作用户代理)。

* 领域语义——他接着解释如何使用媒体类型在客户端和服务器之间共享领域语义。

正是媒体类型为各方定制消息提供了可能;共享它们对每个数据元素和超链接的含义的理解。正是媒体类型专门提供了注册表,各方都可以在这里找到共享出来的对问题域的理解,以便在相互认可的领域层面实现解决方案。

最后,他总结道

构建可进化的系统并不是非常复杂。它需要清除地理解传输协议,小心地隔离临时数据,并专注于通过共享消息恰当地表达问题域。这未必是一个复杂的过程,但确实需要付出努力。

你能举出企业或者其他地方的例子,同时具备所有这些方面的吗?

查看英文原文: On Building Evolvable Systems

2011-06-30 08:441878

评论

发布
暂无评论
发现更多内容

OpenAI 工程师平均薪酬 92.5 万美元;SpaceX 明年将每两天发射一次丨 RTE 开发者日报 Vol.81

声网

mac电脑capture one pro 2023 中文破解版下载

影影绰绰一往直前

Capture One Pro 23 Capture One Pro下载 Capture One Pro破解版

选择 REST ,还是 GraphQL

高端章鱼哥

Rest graphql

软件测试/测试开发/人工智能丨 利用ChatGPT编写测试用例

测试人

人工智能 软件测试 测试用例 ChatGPT

智慧地球软件开发

西安链酷科技

dapp 去中心化 智能管理 合约 智慧地球

Vectorworks 2022 for mac破解版下载(三维模型设计工具)

影影绰绰一往直前

Vectorworks 2022 Vectorworks 2022下载 Vectorworks 2022破解

Understand for Mac(优秀的源代码审查工具)v5.1(1029)激活版

影影绰绰一往直前

Understand下载 Understand激活版 Understand mac

sublime text 4 Mac版 秘钥激活 好用的代码编辑器

影影绰绰一往直前

Sublime Text 4 破解版 Sublime Text 4下载 Sublime Text 4注册版

十月 Web3 游戏行业报告:市值增长背后的用户获取挑战

Footprint Analytics

gamefi NFT链游 Web3 游戏

探秘亚马逊云科技海外服务器 | 解析跨境云计算的前沿技术与应用

-亦世凡华、

服务器 经验分享 海外服务器 亚马逊服务器

区块链游戏,游戏开发

西安链酷科技

区块链 开发 游戏 去中心化 链游

.NET 8 IEndpointRouteBuilder详解

不在线第一只蜗牛

.net 编程语言

OmniOutliner Pro mac 中文专业版下载

iMac小白

OmniOutliner Pro下载 OmniOutliner Pro破解 OmniOutliner Pro激活

链游开发,链游定制开发

西安链酷科技

万千企业,数智世界,一触即达

脑极体

数智化

BSC链农场游戏系统开发|智能合约DAPP

西安链酷科技

NFT生态链游

交易所开发搭建

西安链酷科技

数字货币 去中心化 交易所 量化 合约

区块链多链数字钱包开发

西安链酷科技

区块链 dapp 去中心化 钱包 多链

特权账号的安全和风险管理

尚思卓越

网络安全 风险检测

DxO PhotoLab 7 for mac中文激活版(raw图像处理工具)

影影绰绰一往直前

DxO PhotoLab 7 DxO PhotoLab 7下载 DxO PhotoLab 7破解

情感语音识别技术在人机交互中的应用与挑战

来自四九城儿

WeChatTweak for Mac(多开和防撤回工具) macOS微信插件

影影绰绰一往直前

微信多开和防撤回工具 微信小助手 微信多开助手 微信多开

Infuse for Mac(强大的音视频播放器)

iMac小白

Infuse下载 Mac版Infuse下载 Infuse 中文 Infuse播放器

基于HarmonyOS的HTTPS请求过程开发示例(ArkTS)

HarmonyOS开发者

HarmonyOS

利用Java的反射机制实现代码自动生成

这我可不懂

Java 反射机制 代码自动生成

【开源三方库】Easyui:基于OpenAtom OpenHarmony ArkUI深度定制的组件框架

OpenHarmony开发者

OpenHarmony

Boxy SVG for Mac(矢量图编辑器) 4.15.0完美激活版

mac

苹果mac Windows软件 Boxy SVG 矢量图形编辑软件

c#装饰器模式详解

快乐非自愿限量之名

C# 编程语言

统一运维的定义以及优点说明-行云管家

行云管家

运维 IT运维 运维软件 统一运维

Spring 微服务:数据压缩技术

互联网工科生

spring 微服务 云原生 数据压缩

云图说|什么是可信智能计算服务TICS

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 华为云云图说

关于构建可进化的系统_SOA_Dilip Krishnan_InfoQ精选文章