论文摘要
互联网的迅猛发展和普及为流媒体业务发展提供了强大的市场动力,流媒体业务正变得日益流行。流媒体的发展必然引起管理软件的巨大需求,该类软件不仅要求对视频进行观看,还要对多媒体流数据进行各种处理和操作。由于多厂商、多系统及设备环境,造成网络中通信的复杂和低效。这样就迫切需要新技术的引入,确保流管理系统高效性和适应性。因此本文提出了通用的网络流管理中间件的思想,其功能要包含对流数据的一些最常见的操作,并以中间件的形式提供,可以方便的进行二次开发,适合多种不同应用。中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机/服务器的操作系统之上,管理计算资源和网络通信。本流管理中间件具体实现的功能应包括:接收、读取、转发、存储、主调、回调等。接收:指利用Socket接收网络数据,需要实现的网络接收模式包括TCP(服务器模式、客户端模式),UDP(单播、多播、组播)。读取:是指把存储在外存上的流数据按照一定的速率读入内存中。转发:把接收到的数据再次发送到网络中的某个地址。需要实现的网络转发模式包括TCP(服务器模式、客户端模式),UDP(单播、多播、组播)。存储:把接收到的数据保存在外存上。主调:应用程序可以把自己产生的数据“注入”中间件。回调:数据通知回调给应用程序,应用程序根据需要对数据进行处理。接收器、转发器、存储器、读取器、主调器和回调器等六个模块应全部工作在异步模式下,即每个模块都有一个单独的服务线程为其工作。由于涉及到频繁的线程的启动和停止,因此应该采用“线程池”的方式来对线程进行管理,从而减少频繁的启动和停止线程对系统资源的占用。另外各个模块都应该采用动态管理模式,即动态的为其申请和释放内存,从而优化整个中间件内存占用量。而流数据的内存管理,由于涉及到频繁的申请和释放,则需要采用“内存池”的方式,从而避免内存碎片的产生。本文着重介绍了流管理中间件设计的核心思想和具体实现,整个设计很好地体现了高效性和安全性的原则。进一步提出性能优化方案,并且对性能优化结果进行了评估。文章的最后对整个工作进行了总结,并提出了今后的研究方向和改进思路。