【Java开源代码栏目提醒】:网学会员为需要Java开源代码的朋友们搜集整理了基于JAVA NIO通信框架的电话会议系统监控模块 - 毕业设计相关资料,希望对各位网友有所帮助!
西安电子科技大学硕士学位
论文基于
JAVA NIO通信框架的电话会议系统监控模块姓名陈方申请学位级别硕士专业软件工程指导教师王亚民王宇辉20100601_------ 题中、英文目 基于
JAVA NIO通信框架的电话会议系统 监控模块 Design and Implementation of Monitoring Module in Teleconference System Based on
JAVA NIO Network Framework 作者姓名 陈 方 王亚民 教授 软件工程 提交
论文日期 二〇一〇年六月 王宇辉 高工 学校指导教师姓名职称工程领域 企业指导教师姓名职称代号 分类号 学号10701 10072035 TP133.5 公开 密级UDC 编号 _------_------ 摘要
Java在网络应用开发中使用非常广泛但采用
Java传统通信框架开发出的网络应用已经难以满足目前高性能网络高并发的需求因此需要研究新的
Java高性能网络框架技术。
本
论文首先介绍了阻塞I/O技术通过对比分析了
JAVA NIO技术的特点和优势随后分析了基于
JAVA NIO的通信框架Reactor模型和Apache提供的MINA框架在这个基础上设计了电话会议系统Actools的监控模块其中包括监控子模块、接口和数据库的设计并给出了缓存和通信框架设计的部分实现。
。
最后通过性能测试的数据比对本文研究与设计的监控模块切实可行解决了老版本并发访问量低和不稳定的
问题功能和性能分别达到了预期目标。
关键词:
JAVA NIO 通信框架 电话会议 监控 _------_------ Abstract
Java is used in the development of network application widelybut
Java network application developed by tradition communication framework is hard to meet this requirementso we need to explore new
java high performance network application technologies. Firstly this thesis makes an introduction on blocking I/O technology and analyzes the feature and advantage of
JAVA NIO technology by comparing with it. Then the thesis starts to research on the framework technology based on
JAVA NIO including Reactor pattern and MINA framework supported by Apache and design the monitoring module in teleconference including the monitoring sub-modules interface and database design based on this. After that It gives some implementation of the cache and framework design. After testing and comparing the data the program of the teleconference monitoring system is feasible we solved the problems of the situation of low parallel client request and unsteady in old system. Every functional module and performance has achieved the expected goal. Key
word:
JAVA NIO Network Framework Teleconference Monitor_------_------ 目录??第一章 绪论......................................................................................................................1??1.1??........................................................................................................1??研究背景1.1.1??.................................................................................................1??研究现状1.1.2??.........................................................................................2??关键技术背景1.2??........................................................................................3??研究的目的和意义1.3??........................................................................................................4??
论文工作1.4??........................................................................................................4??本章小结第二章
JAVA I/O通信技术介绍.......................................................................................5??2.1阻塞I/O通信相关技术.........................................................................................5??2.1.1阻塞I/O技术..............................................................................................5??2.1.2多线程技术...............................................................................................7??2.2 NIO通信相关技术...............................................................................................9??2.2.1线程池技术...............................................................................................9??2.2.2 NIO技术..................................................................................................10??2.3
JAVA NIO通信框架...........................................................................................14??2.3.1 Reactor模型............................................................................................14??2.3.2 MINA框架..............................................................................................16??2.4本章小结............................................................................................................18??第三章 电话会议系统中监控模块的需求分析............................................................19??3.1项目概述............................................................................................................19??3.2功能需求............................................................................................................19??3.2.1系统总体用例.........................................................................................19??3.2.2 会议监控模块的细化用例....................................................................21??3.3非功能需求........................................................................................................22??3.3.1软硬件需求.............................................................................................22??3.3.2性能需求.................................................................................................22??3.3.3稳定性需求.............................................................................................24??3.3.4安全需求.................................................................................................25??3.3.5 运行约束................................................................................................25??3.4 本章小结...........................................................................................................25??第四章 Actools2.0系统中监控模块.....................................................27?? _------ 4.1监控模块总体分析............................................................................................27??4.1.1阻塞I/O通信框架的分析........................................................................27??4.1.2原监控模块的分析.................................................................................30??4.2监控模块....................................................................................31??4.2.1监控子模块设计.....................................................................................31??4.2.2监控模块接口设计.................................................................................34??4.2.3监控模块数据库
设计.............................................................................34??4.2.4监控模块的缓存.................................................................35??4.2.5监控模块通信框架.........................................................39??4.3 本章小结...........................................................................................................41??第五章 系统测试............................................................................................................43??5.1测试环境............................................................................................................43??5.2 功能测试...........................................................................................................44??5.3 性能测试...........................................................................................................45??5.3.1测试方法.................................................................................................45??5.3.2性能测试结果.........................................................................................47??5.3.3性能测试对比及分析.............................................................................48??5.4本章小结............................................................................................................49??第六章 总结与展望........................................................................................................51??6.1
论文工作总结....................................................................................................51??6.2技术展望............................................................................................................51??致谢..................................................................................................................................53??参考文献..........................................................................................................................55??_------ 第一章 绪论 1 第一章 绪论 本章将重点论述基于NIONone-blocking非阻塞I/O通信的发展背景设计实现基于
Java NIO
通信的必要性目前国内外基于
Java NIO通信框架的发展和应用现状以及基于
Java NIO通信所需要完成的工作最后为合理安排时间顺利完成工作还将制定出具体的
工作计划。
1.1 研究背景 目前随着计算机技术、网络通讯技术的高速发展人类社会已经全面迈入了以网络为核心的信息时代。
网络现在已经与老百姓的日常工作、
学习和生活息息相关成为信息社会的命脉和发展知识经济的重要基础对社会生活的许多方面以及对社会
经济的发展已经产生了重大的影响。
。
网络主要包括电信网络、有线电视网络和计算机网络其中发展最快并起到核心作用的是计算机网络。
以因特网为代表的
计算机网络无处不在因此计算机网络应用更加是触及到社会的方方面面。
我们享受网络应用提供的各种服务:使用浏览器访问Web页面浏览最新的新闻收发电子邮件使用即时通讯工具和家人朋友沟通联系使用网上银行支付购买的商品使用点对点下载工具高速下载需要的资源。
随着对网络应用的需求增加上网人数也随之迅猛增长因此对网络应用的性能要求也越来越高。
在许多情况下一个网络应用在网上发布之后使用的用户是数以万计的这时出现的状况是数百甚至上千等并发访问请求在等待它的处理并且这些请求是短连接的。
这些情况的普遍出现需要较高的并发处理能力和快速的响应速度对网络应用的性能提出了非常大的挑战。
1.1.1 研究现状
Java是一种主流的网络应用编程语言大部分的网络应用采用
Java语言进行开发。
Java拥有优秀的平台无关性其编译后产生的字节码能够顺利地运行在异构的操作系统上非常符合网络应用的需求另一方面
Java简化了网络应用的编写工作量提高了开发的效率。
Java让您可以玩网络游戏、与世界各地的人们聊天对于企业内部网应用程序和其他电子商务解决方案而言它也是不可缺少的一部分。
Java网络应用使用非常广泛但采用传统开发模式开发的网络应用己经不能满足人们对网络应用越来越高的性能要求。
随着多处理机体系结构的演变、网络通信的发展和分布式应用的兴起基于
Java并发型多任务的服务器程序设计技术已越来越显示其重要性特别是在互联网服务和某些拥有大量在线用户的专用服务例如金融 证劵交易系 _------2 基于
JAVA NIO通信框架的电话会议系统监控模块 统这要求服务器程序能够在几百个甚至更多的客户端同时发出请求信息的情况下仍能保持高性能的并发处理机制迅速完成所有并发请求的处理。
传统的并发型服务器设计是利用阻塞型网络I/OInput/Output输入输出以多线程的模式来实现的然而由于系统常常在进行网络读写时处于阻塞状态会大大影响系统的性能。
因此
Java网络应用需要采用新的技术以实现高并发的处理机制满足高性能的需求。
1.1.2 关键技术背景 网络应用的种类非常多但现代
网络应用绝大部份基于客户端-服务器模型。
在这种模型当中一个应用是由一个服务器程序和一个或者多个客户端
软件构成。
服务器程序一般运行在高性能的服务器上管理着一定的资源而客户端
程序一般运行在相对便宜的个人计算机上。
客户端发起请求服务器在接收到请求信息后进行处理并给客户端发送响应信息完成对客户端提供服务。
因特网上最流行的客户端-服务器模型是WebWeb服务器响应客户端的请求。
套接字是客户端和服务器进行通信的接口。
它隐藏复杂的TCP/IPTrans
mission Control Protocol/Internet Protocol协议族以及更底层的通信实现。
客户端只要向它的套接字写入任意比特的数据服务器就可以从连接套接字中按发送顺序接收到所有的数据。
这些数据是以流的方式展现的分为输入流和输出流从套接字获取的是输入流写入套接字的是输出流。
Java中提供TCP和UDP套接字以实现这两种协议的通信。
在套接字建立好通信通道以后网络应用需要进行并发处理以同时为多个客户端提供服务。
现代操作
系统提供了三种创建并发程序的方法:进程、I/O多路复用以及线程。
其中最简单的方式是使用进程的方式来进行并发处理在父进程中接受客户端连接请求然后创建一个新的子进程来为新客户端提供服务。
采用I/O多路复用方式的基本思路是使用select函数该函数会被一直阻塞直到监听到有一个或者多个I/O事件发生后才将控制权返回给应用程序。
第三种方式是采用线程它和多进程的执行模式非常相似主线程不断的监听客户端的连接请求当有客户端连接到来时创建一个新的线程来处理该连接。
与CPU和内存相比甚至与磁盘相比网络都很慢。
针对于这种情况提高网络应用的关键是提高网络I/O能力。
传统的
Java网络应用采用缓冲和多线程的方式进行并发处理。
如果不需要很高的性能这种方式能起到很好的效果。
但创建线程以及线程间切换的开销不容忽视。
例如每个线程需要大约1M内存。
线程管理的开销会极大的降低系统性能。
如果一个线程能负责多个连接选取一个准备好接收数据的连接尽快地用连接可以管理的尽可能多的数据进行填充然后转向下一个准备好的连接这样速度会更快。
同时这种想法也是可以实现的可能用于高吞吐量服务器的每一种现代操作系统都支持这样的非阻塞I/O。
_------ 第一章 绪论 3 传统的并发型服务器设计是利用阻塞型网络I/O 以多线程的模式来实现的然而由于系统常常在进行网络读写时处于阻塞状态会大大影响系统的性能自
Java1. 4 开始引入了NIO APIApplication Programming Interface通过使用非阻塞型I/O实现流畅的网络读写操作为开发高性能并发型服务器程序提供了一个很好的解决
方案。
基于NIO机制的服务器
开源框架有MINA、CXF、Grizzly、Mule、JBoss等。
其中MINAMultipurpose Infrastructure for Network Applications是一个优秀的基于NIO 的通信框架。
ACE式Adaptive Communication Environment是可自由使用、开放源码的面向对象框架的NIO和线程模型过滤链机制I/O层与协议层的分离开发者们可以依赖着开发高性能的自定义协议TCP/IP服务器。
现在使用MINA的产品并不是很多比较出名的有Apache Directory基于轻量目录访问协议的服务器软件 OpenfireJive公司出品的一个基于开放式即时通讯协议的产品Red5
开源的Flash流媒体服务器等目前还处于刚刚起步阶段。
1.2 研究的目的和意义 传统的
Java网络应用的使用范围非常广泛但采用传统的开发模式对网络I/O的处理能力不高已经不能满足现在人们对高并发的需求成为高性能网络应用的性能瓶颈。
传统的网络I/O处理方式采用流I/O和多线程的并发网络I/O处理方式效率不高。
面向流的I/O系统一次一个字节地处理数据这种处理方式具有优雅性和简单性但不利的是读写速度相当慢同时流是同步的这种阻塞式的调用也极大的降低了网络I/O的速度。
一个客户端连接分配一个线程进行处理浪费了许多时间在等待数据上面同时系统管理线程也占用了大量资源降低了系统的性能。
本文研究的目的就是针对这种情况研究了开发
Java高性能网络应用的新技术基于新技术设计并实现了电话会议系统中的监控模块。
基于传统流I/O读写速度慢寻找一种新的、速度更快的读写方式。
考虑到流I/O采用阻塞方式进行网络I/O浪费了大量的时间在等待数据上所以新的方式需要能提供非阻塞的支持这样能提高线程的利用率减少系统在管理线程和线程上下文切换的开销。
NIO技术结合线程池技术构建出的Reactor模型能较好的满足上面的需求。
NIO技术提供一个面向块的I/O系统可以实现高速I/O而无需编写自定义的本机
代码。
同时NIO提供非阻塞的I/O机制消除了等待数据的时间这样使得一个线程在相同的时间内能处理更多客户端连接提高了线程的利用率。
非阻塞式调用和面向数据块的操作结合起来能较大地提高网络应用的性能。
线程池技术能减少网络应用创建线程时所需的时间重复利用池中的线程能减少系统的开销同时提高网络应用的性能。
研究基于NIO技术的高性能网络应用开发具有比较深远的意义。
一方面可以为许多正在从事
Java网络应用开发的开发者提供一个参考解决他们在开发中遇到的并发性 _------4 基于
JAVA NIO通信框架的电话会议系统监控模块 能难题。
另外一方面改善了现有产品的服务质量提高这些网络应用的性能促进这些网络应用的服务质量能更好的为社会服务。
1.3
论文工作 本
论文结合Actools2.0项目介绍了基于
JAVA NIO网络框架在实际工作中的运用以及对现有产品的优化。
论文分为六章章节安排如下 第一章是绪论部分该部分讲述了本
论文的研究背景与研究目的。
研究背景中首先简介了
Java网络应用程序的现状以及导致这种状况出现的技术背景。
最后提出基于NIO技术来构建
Java高性能网络应用的课题。
第二章是
JAVA NIO通信技术的介绍首先是对阻塞I/O通信相关技术的研究主要研究了流I/O技术和多线程技术。
随后是对
Java NIO通信技术的研究主要介绍了NIO技术、线程池、Reactor模型和MINA框架。
第三章和第四章是项目应用实例以实际商用的项目Actools2.0的监控模块为例从需求分析到设计实现详细介绍了基于
JAVA NIO的网络框架在具体开发中所发挥的重要作用并对现有产品在性能调优上进行的改进。
第五章是运行及测试对第五、六章的实际应用进行性能测试记录测试结果并用图表的形式表现出来以对比采用新的高性能网络应用技术和传统技术对网络应用的性能提升情况从而验证新技术在实际应用中对
Java高性能网络应用理论分析上的预期为
Java高性能网络应用的开发提供一种参考模型。
第六章是总结首先总结了本文所完成.