论文部分内容阅读
目前的软件业在互联网的普及下已经全面进入了互联网时代,科技和通信领域如闪电般迅速进步,全世界的人们可以空前地彼此接近。在互联网软件构建中,需要性能更好,稳定性更高,开发周期更短,更容易扩展的软件服务。与传统面向对象软件抽象模式完成不同,函数式语言拥有容错性好,在多核和集群下性能好,稳定性高等传统命令式语言不具备的特点,很容易达到良好的开发效率,也具备强大的易扩展性。因此非常适合开发大规模网络消息服务器。本文论述了在开发互联网应用中服务器程序需要达到的各种指标,比较了常规的几种并发程序开发模式,从需求分析,系统设计到实现,使用函数式语言Erlang语言在OTP(Open Telecom Platform)框架下开发了网络消息服务器,服务器基于消息驱动模型编写,服务器可以作为通用互联网服务的服务器,适合高并发链接的网站或者网络游戏应用。达到了单服务器负载并发请求时每秒处理7000个请求的性能。与业界性能领先的webserver等性能相近,同时在开发效率上接近目前流行的脚本语言。函数式语言良好的体系架构保证了开发该系统可以达到很好的灵活性,获得了快速迭代的开发效率。为了达到松散耦合的要求,实现了用消息队列模式来扩展系统功能,在大型网络服务器架构中作为业务逻辑处理模块。与使用一般命令式语言实现的原型系统做比较,分析了使用函数式语言开发高并发环境下的网络服务器程序中,在开发效率和执行效率均和传统模式开发的网络服务器的测试对比。指出了函数式语言在开发并行程序中的关键环节,分析了在并发程序中函数式语言比命令式语言更容易保证并行程序的性能和稳定性的关键因素。