基于SEDA的服务器端应用程序设计与实现

基于SEDA的服务器端应用程序设计与实现

论文摘要

随着信息技术的迅猛发展,互联网应用和服务的流量与用户规模与日剧增,巨大的网络流量给在网络上提供各种服务的服务器提出了前所未有的挑战。虽然计算机硬件的发展在一定程度上提升了服务器的性能,但其仍然难以满足要求。具体表现在服务平台缺乏对高并发、动态内容、连续的高可用性和对突发时变负载的自适应调节能力等需求的综合考虑。传统的服务器应用程序主要使用阻塞的多线程并发控制,即网络IO的读写是通过线程轮询来完成,服务端通过多线程并发来响应客户端请求的网络通信机制。这种网络通信机制存在性能低下、并发量小等缺点。基于非阻塞事件驱动的网络通信机制能够很好的解决上述问题。然而,纯事件驱动模型在程序结构上以事件监听器和分派机制为中心,缺乏构造模块化程序的灵活性,不利于构造复杂的服务器应用程序,也很难发挥多处理器并行处理的优势。分阶段的事件驱动体系架构(Stage Event-Driven Architecture SEDA)在事件驱动体系架构中引入模块化思想,它通过将代码组织成模块或对象化组件,使用显式事件队列进行模块间通信,引入资源的动态管理机制来管理线程池,动态的改变不同阶段的工作线程设置或设置高的优先权,从而减少瓶颈。本文结合实际应用的需求,对SEDA进行了深入的研究。SEDA提出的分“阶段”的思想,能够很好的解决上述采用事件驱动网络通信模型时所出现的问题。建立在这种体系结构的服务器应用程序具有良好的可伸缩性、较低的资源消耗、易编程使用等优点。由于SEDA是一种较新的软件体系架构,基于此架构构建的现代服务器应用程序还很少,目前仅有少量的开源的框架mule、mina使用了SEDA技术。显示SEDA在实际应用中还不够成熟,并且SEDA在应用中存在各功能模块划分粒度过粗,模块间耦合度过高等问题。针对上述问题,重庆民航凯亚公司民航机票分销代理服务系统(以下简称:案例系统)开发项目,结合该项目中对代理服务器需求的具体情况并针对高性能服务器应用软件所要求的大并发量、较低的资源消耗及良好的资源负载调节能力等特点,在原有SEDA模型的基础上进行了改进,改进后的模型使得对SEDA中的阶段构建和管理更加灵活,整体结构更加简单、程序的模块化和代码的复用度更高,并且基于改进后的模型设计开发了案例系统中的SEDA组件,给出了代理服务应用程序组件的详细设计方案和具体的实现过程,并对所开发的代理服务应用程序进行了测试。并将改进后的模型成功地应用在案例系统中。本文中提出的SEDA改进模型,在案例系统中的设计和实现证实了该方案原理的正确性以及实践的可行性。本文所提出的设计和实现方案对其它类似的服务器应用程序的设计也具有一定的参考价值。

论文目录

  • 摘要
  • ABSTRACT
  • 1 绪论
  • 1.1 课题背景及问题陈述
  • 1.2 国内外研究现状
  • 1.3 本文研究工作简介
  • 1.4 本文组织结构
  • 2 几种主要的服务器应用软件设计模型
  • 2.1 多进程/多线程程序设计模型
  • 2.1.1 多进程模型
  • 2.1.2 多线程模型
  • 2.2 事件驱动/异步程序设计模型
  • 2.2.1 单进程事件驱动模型
  • 2.2.2 非对称多进程事件驱动(AMPED)模型
  • 2.3 阶段化事件驱动架构(SEDA)
  • 2.4 系统内核级异步I/O 实现机制
  • 2.4.1 Reactor 模式
  • 2.4.2 Proactor 模式
  • 2.5 本章小结
  • 3 SEDA 在高性能代理服务器软件中的应用
  • 3.1 SEDA 中阶段的分析
  • 3.1.1 阶段中的事件处理器
  • 3.1.2 SEDA 中阶段的改进设计
  • 3.1.3 阶段中的线程池
  • 3.1.4 案例中的线程池的设计
  • 3.2 案例中SEDA 分阶段事件驱动模型
  • 3.2.1 案例系统中各个阶段的设计
  • 3.3 SEDA 在高性能事件驱动服务器应用程序的优势
  • 3.4 本章小结
  • 4 SEDA 在代理服务器应用程序的设计与实现
  • 4.1 需求概要
  • 4.1.1 系统主要用例图
  • 4.1.2 系统主要业务顺序图
  • 4.1.3 代理系统主要业务活动图
  • 4.2 代理服务器应用软件系统功能
  • 4.2.1 系统整体功能图
  • 4.2.2 身份认证活动图
  • 4.2.3 数据转发功能
  • 4.2.4 数据缓存功能
  • 4.2.5 消息发送功能
  • 4.3 代理服务器应用软件系统结构
  • 4.3.1 总体结构
  • 4.3.2 过滤器/过滤器链结构
  • 4.3.3 事件处理器结构
  • 4.3.4 “阶段”内事件的响应及触发
  • 4.3.5 通信的安全功能设计
  • 4.4 系统实现
  • 4.4.1 开发及运行环境说明
  • 4.4.2 过滤器及过滤器链的实现
  • 4.4.3 异步I/O 的实现
  • 4.4.4 系统运行实例示意
  • 4.5 本章小结
  • 5 功能与性能测试
  • 5.1 功能测试
  • 5.2 性能测试
  • 5.3 本章小结
  • 6 结语
  • 6.1 本文工作总结
  • 6.2 未来研究展望
  • 致谢
  • 参考文献
  • 附录
  • 相关论文文献

    • [1].Linux服务器应用程序管理软件的设计[J]. 数字技术与应用 2017(06)
    • [2].三季度服务器出货量下降2.6%[J]. 网络安全和信息化 2017(01)
    • [3].运用C++ Builder6开发ISAPI的Web服务器应用程序[J]. 电脑知识与技术 2008(27)
    • [4].C++ Builder开发的ISAPI的Web服务器应用程序的调试[J]. 科技创业月刊 2008(10)
    • [5].2011年10大技术趋势预测[J]. 石油工业计算机应用 2010(04)
    • [6].基于IOCP服务器模型设计与实现[J]. 电脑编程技巧与维护 2012(20)
    • [7].如何优化ASP应用程序[J]. 高科技与产业化 2009(03)
    • [8].基于ASP的调查系统设计与实现[J]. 现代商贸工业 2008(13)
    • [9].虚拟化服务器[J]. 网络安全和信息化 2017(12)
    • [10].奥博杰天的软件研发外包解决方案[J]. 软件和信息服务 2011(02)
    • [11].基于局域网的可视化远程操控系统的研究[J]. 教育教学论坛 2013(52)
    • [12].互联网远程校准的实现及其安全性研究[J]. 中国计量 2018(03)
    • [13].Rails与J2EE框架结构的分析与研究[J]. 软件导刊 2010(03)
    • [14].基于OLE技术的PB统计报表的实现[J]. 电脑知识与技术 2008(09)
    • [15].基于Web的分布式共享信息系统设计[J]. 现代计算机(专业版) 2011(08)
    • [16].浅谈ASP的安全漏洞与应对策略[J]. 电脑知识与技术 2011(11)
    • [17].ASP技术在动态网页设计中的应用[J]. 硅谷 2009(10)
    • [18].基于B/S结构的校园OA系统的设计与开发[J]. 科学咨询(决策管理) 2009(04)
    • [19].SharePoint Server2007在网络教学平台及教育资源建设中的应用[J]. 中国科教创新导刊 2010(36)
    • [20].2019年无服务器技术发展的5个预测[J]. 软件 2019(02)
    • [21].基于.NET的通用TCP通信程序设计[J]. 科技广场 2016(04)
    • [22].边检“V通关”微信服务平台的设计与实现[J]. 实验室研究与探索 2015(10)
    • [23].网络辅助教学系统设计初探[J]. 长春理工大学学报 2010(07)
    • [24].一种双网络智能家居嵌入式网关/服务器[J]. 物联网技术 2015(07)
    • [25].基于ASP的Web数据库交互访问技术初探[J]. 中国校外教育(理论) 2008(03)
    • [26].用VB编写CAN总线以太网通讯协议[J]. 通信技术 2012(12)
    • [27].GPRS无线应用的通用平台设计[J]. 中国新技术新产品 2010(13)
    • [28].浅析JSP技术在动态网页技术中的应用[J]. 商场现代化 2009(07)
    • [29].通用网络传感器平台的研究与实现[J]. 计算机测量与控制 2013(02)
    • [30].基于ASP的网站安全性探究[J]. 山东纺织经济 2012(07)

    标签:;  ;  ;  ;  

    基于SEDA的服务器端应用程序设计与实现
    下载Doc文档

    猜你喜欢