论文部分内容阅读
随着互联网的发展,互联网用户的激增,互联网中的各种服务器面临的并发性、容错性压力越来越大,要求越来越高。传统编程语言(C/C++)对并发性以及容错性的支持不足,造成用其开发的程序天生具备并发性和容错能力不足的缺陷,不仅增加了相关系统的实现难度,浪费了目前日益普及的多核CPU的性能,也一定程度阻碍了软件技术的发展。‘而Erlang语言,一门由爱立信计算机科学实验室针对电信领域软件开发而发明的语言,凭借其对并发性、分布式、容错性等特性的良好支持,对网络服务程序程序特别是分布式程序开发的支持,近年来逐渐兴盛起来。随着互联网用户的增多,即时通讯系统服务器、web服务器这类对并发性、容错性要求较高的服务程序使用各种办法来缓解服务器的压力,如采用集群系统、分布式系统等。然而由于传统语言在并发性、容错性和分布式特性的支持不足,利用传统语言实现并发性和容错性良好的集群或者分布式系统比较复杂,并发性和容错性的提高也比较困难,实现难度也比较大。而Erlang语言,恰恰正是针对这类系统的开发而出现的,其内建优良的并发性支持、容错性支持、分布式等特性的支持,能较大程度的降低并发性和容错性要求高的集群软件系统或者分布式软件系统的实现难度。本文首先介绍了Erlang语言的发展现状、即时通讯系统的发展现状,Erlang语言的特点与优势,接着对在Erlang语言基础上系统的并发性关键技术、容错性技术和集群系统负载均衡技术做了研究,并对在Erlang语言中运用设计模式进行了探索,最后在对这些技术研究的基础上,实现了一个即时通讯系统。由于Erlang编程语言的优势和特点,此系统具备良好并发性、良好的容错性和可靠性,以及相对于传统语言开发更为容易的特性。这个系统具体包括两个部分,分别是集群服务器部分和客户端部分,其中服务器部分采用Erlang语言实现,客户端采用C#语言实现,两者间的通信协议使用是IETF的XMPP通信协议。