您现在的位置:网站首页答辩论文论文专题

面对软件错误构建可靠的分布式系统

  • 简介:面对软件错误构建可靠的 分布式系统 (瑞典)Joe Armstrong 撰 段先德 译 邓 辉 审  原文链接:http://www.erlang.org/download/armstro...
    • 请与管理员联系购买资料 QQ:5739126
  • 论文简介
  • 相关论文
  • 论文下载
面对软件错误构建可靠的
分布式系统
(瑞典)Joe Armstrong 撰
段先德 译
邓 辉 审
<声明:本文版权属原文作者所有,译文仅用于个人学习和交流,不得用于任何商业目的。>
原文链接:http://www.erlang.org/download/armstrong_thesis_2003.pdf
译 感
近年来,“多核”、“分布式计算”、“集群计算”、“大并发量处理”等名词逐
步从实验室中的概念走向了大众社会的应用,并给许多公司带来了商业上的巨大
成功。一个新的信息处理时代已经悄然来临,召唤着新的适应这个时代的软件开
发方法和工具。其实早在 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 撰
段先德 译
邓 辉 审
<声明:本文版权属原文作者所有,译文仅用于个人学习和交流,不得用于任何商业目的。>
原文链接:http://www.erlang.org/download/armstrong_thesis_2003.pdf
译 感
近年来,“多核”、“分布式计算”、“集群计算”、“大并发量处理”等名词逐
步从实验室中的概念走向了大众社会的应用,并给许多公司带来了商业上的巨大
成功。一个新的信息处理时代已经悄然来临,召唤着新的适应这个时代的软件开
发方法和工具。其实早在 1986 年,在 Ericsson就有一些专家开始了如何编写出
可靠的分布式系统方面的探索和研究。这些研究成果,成就了可靠性达到
99.9999999%的目前世界上最复杂的 ATM 交换机,并给我们带来了 Erlang/OTP
这套开源的开发工具和平台。Joe Armstrong先生就是 Erlang的主要发明人,而
本文就是 Joe Armstrong的博士论文。
之初学习 Erlang编程的时候,为了深入了解一下 Er.....
查看评论 已有0位网友发表了看法
  • 验证码: