没有合适的资源?快使用搜索试试~ 我知道了~
资源推荐
资源详情
资源评论
译 感
近年来,“多核”、“分布式计算”、“集群计算”、“大并发量处理”等名词逐
步从实验室中的概念走向了大众社会的应用,并给许多公司带来了商业上的巨大
成功。一个新的信息处理时代已经悄然来临,召唤着新的适应这个时代的软件开
发方法和工具。其实早在 1986 年,在 Ericsson 就有一些专家开始了如何编写出
可靠的分布式系统方面的探索和研究。这些研究成果,成就了可靠性达到
99.9999999%的目前世界上最复杂的 ATM 交换机,并给我们带来了 Erlang/OTP
这套开源的开发工具和平台。Joe Armstrong 先生就是 Erlang 的主要发明人,而
本文就是 Joe Armstrong 的博士论文。
之初学习 Erlang 编程的时候,为了深入了解一下 Erlang 的设计哲学,我决
定把这篇论文精读一遍。我想无一遗漏地精读的方式,就是把它翻译一回。邓辉
先生(《敏捷软件开发——原则、模式与实践》中文版译者)鼓励我说,翻译吧,
也算是给国内的 Erlang 这个小圈子做点贡献。于是似乎有了一些责任。既然是
要公开出来的,任何细节就更不能毛糙了,也就迫使我查阅了许多背景资料,而
这些论文以外的知识对于我平时的 Erlang 编程颇有助益,算是意外之得了。
跟其他的理工类博士论文不一样,本论文并没有堆砌大量的公式推导,而是
以平铺直叙的方式,在解答“如何在存在软件错误的情况下编写出具有合理行为
的软件?”这一核心问题的过程中,详细地阐述了 Erlang/OTP 的设计哲学。论
文分析了构建可靠的分布式系统的一些系统需求、语言需求、库需求,介绍了完
全针对这些需求而打造的 JAM 系统、Erlang 语言和 OTP 开发库。本论文的重点
不在于 JAM 的设计,不在于 Erlang 语言的描述,也不在于 OTP 库的介绍,虽然
这些方面都有很多值得讨论的课题。本论文把重点放在了可容错的架构上,如何
构建软件运行的模型?如何进行错误检测和恢复?如何实际编写出可容错的系
统?本文的重点在于探讨这一系列的设计思想的问题。这是一门软件开发哲学,
也是一个软件世界观。
不得不提的是“一切皆进程”的 Erlang 世界观。作者把软件所有要处理的
事务划分成一系列层次化的任务,每个任务有一个“强隔离的进程”来执行,进
程之间没有任何共享状态,只能通过“消息传递”来通信。这种“强隔离的进程”
不仅可以更真实地描述现实世界的信息处理过程,还成为软件错误发生时保护系
统的可靠性的最有力模型。
也要说说本论文关于故障处理的论述。由于业务处理都在一个个“强隔离的
进程”中——作者把它们称为“工作者”,就防止了一个进程出错会传播到其他
的进程。业务处理进程的运行状况由另外专门的进程来看护——作者把它们称为
“监视者”。“工作者”和“监视者”组成一个层次化的监督模型,使得一个进程
发生故障时,整个系统可以作出相应的调整,保障系统最大限度地提供服务。
还要说说 behaviour。本论文无意中介绍了 OTP 库集中的 behaviour 库的设
计思想,即将程序的并发处理和顺序化处理分开。本文还以 gen_server 为例,展
示了如何把并发部分抽象出来,如何让程序从最初的“脆弱”演化到“可容错”,
体味一下,会受到启发。
罢了罢了,关于本论文的内容我不能说太多,言多必失,恐怕淡漠了任何一
方面,也许每个人看到的重点都不一样。总之,非常感谢 Joe Armstrong 给我们
奉献了这篇论文。
在本译稿完成的时候,Joe Armstrong 关于 Erlang 编程的的新书《Programming
Erlang》也已经出版面世了,引起了软件开发主流们不小的震动,Ralph Johnson
甚至预言 Erlang 会是下一个 Java。不管这种预言会不会成真,想深入学习 Erlang
编程的朋友一定不要错过这部伟大的著作。
非常感谢邓辉先生,他详细地审阅了本译文的初稿,提出了许多宝贵的意见,
使得本译文更贴合论文原意。
无论我怎么努力,终究水平有限,肯定还存在许多对原文理解错误或中文表
达欠妥之处,恳请读者指正。译者联系方式:
sanderisme@hotmail.com。
段先德
2007 年 9 月 上海
面对软件错误构建可靠的
分布式系统
(Making reliable distributed systems in the presence of software errors)
2003 年 11 月 20 日最终修订版
Joe Armstrong
本论文作为工学博士
学位之要件提呈皇家技术研究院
瑞典·斯德哥尔摩
皇家技术研究院
2003 年 12 月
微电子与信息技术学部
献给
Helen
、
Thomas
和
Claire
I
剩余234页未读,继续阅读
资源评论
jiangdmdr
- 粉丝: 57
- 资源: 774
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功