首页 > Erlang并发教程 > 1.4 Erlang并发编程-应用
2013
11-04

1.4 Erlang并发编程-应用

第10章展示了如何使用Erlang编写一个数据库。我们从第??章开发的简单字典模块和第??章的客户端—服务器模型开始,由此完成一个简单的并发数据库。然后我们将展示如何以组织成多级树形结构的并行进程来实现该数据库,以此改善其吞吐量。接着我们加入事务性,以使得多个串行数据库操作可以表现出原子性。

在这之后,我们为数据库增加“回滚”机制以允许我们“撤销”先前的数据库操作。回滚示例对非破坏性赋值进行了漂亮的展示。

接着我们讨论如何让我们的数据库能够容错。最后,我们展示如何将一个外部数据库与我们的数据库集成,并为程序员提供统一的接口。

第11章介绍分布式编程技术。我们展示如何使用Erlang实现多种常见的分布式编程技术,如远程过程调用、广播、promises等等。

第12章研究分布式数据问题。许多情况下,运行在不同物理机器上的多个应用希望共享一些公共数据结构。本章描述用于实现分布式系统中的共享数据的各种技术。

第13章是对Erlang操作系统的讨论。由于所有的进程管理都在Erlang内部完成,我们对传统操作系统提供的服务所需甚少。我们在此展现Erlang操作系统中用于完成语言标准分布式任务的主要组件。该操作系统可以作为更专一化的操作系统的基础以用于某个具体应用之中。

应用
第14章与两个实时控制问题相关。第一个是著名的电梯控制问题——这里我们将看到将系统建模为一组并行进程提供了一套简单优雅的解决方案。第二部分讨论“进程控制”,此处我们的“进程”是一个卫星。观测卫星的唯一途径是分析安装在卫星上的传感器所发送的数据。变更卫星行为的唯一途径是向卫星上的仪器发送指令。尽管这里以卫星控制系统为例,相关技术可以应用于更广泛的范围。

第15章是一个小型本地电话交换机的实时控制系统实例。Erlang是Ericsson计算机科学实验室开发出来的,而Ericsson也是世界上主要电话交换机的生产商之一——简化电信编程始终都是我们的主要兴趣所在!

本章中的示例只是一个“玩具”系统。然而麻雀虽小五脏俱全,它展示了用Erlang构建电信软件的许多技术。该示例只是那些用于控制复杂电信应用的庞大Erlang程序的小兄弟。这些程序都由数万行Erlang代码构成,是本章所描述的各种编程技术的扩展应用。

本章的末尾对SDL做了一个简短的介绍(SDL被广泛用于描述电信系统的行为)——我们在此展现了一份SDL规范与实现这份规范的Erlang代码的一一对应关系。SDL与Erlang之间的概念“鸿沟”很小——这将降低实时系统的设计实现成本。

第16章简短地介绍了ASN.1并给出了一个从ASN.1到Erlang的交叉编译器。ASN.1是用于描述通讯协议数据格式的标准。本章展现了ASN.1规范与用于操作ASN.1描述的数据包的Erlang代码间的相似性。为系统中通讯软件部分自动产生大部分代码的能力大大简化了系统的构建过程。

第17章展示了如何为Erlang应用构建用户界面。本章展示了两点:第一,并发进程组如何良好地映射到窗口系统中的一组对象;第二,让Erlang与其他语言编写软件包协同运作。

第18章中我们讨论面向对象程序语言的一些主要属性以及如何在Erlang中予以实现。我们将讨论面向对象设计及其Erlang实现之间的关系。


留下一个回复

你的email不会被公开。