`

基于Web Service的流媒体测试系统

阅读更多

 

1引言

流媒体(Streaming Media)技术的出现,使得在网络上观看和传输影音文件变为一种现实。通俗的讲,所谓的流媒体技术,就是将视音频文件经过压缩处理后,放在网络服务器上进行分段的传输,客户端计算机不用将整个的视音频文件下载到本地,便可以即时收听和收看。但在目前的网络带宽的限制下,为了达到网络上流式传播文件的目的,视音频文件经过压缩处理,减小文件的大小,从而使影音文件的品质有所下降。而且,流媒体业务是一种宽带业务,对于网络带宽、抖动、延迟和丢包率都有较高的要求。因而用户端在使用流媒体服务时,尤其是在忙时段,可能会产生黑屏、马赛克、图像停格、声音时断等现象。

为了解决流媒体在播放时出现的问题,首先应该找到问题的详细、精确描述,而现今对流媒体的测试手段并不是很多,大致可以分为两类:1、最原始最简单的测试方法就是让大量测试人员在不同时段、不同的地方点播流媒体,当遇到黑屏、马塞克、图像停格、声音时断等现象时作记录,最后再汇总。这种做法的优点是与最终用户的点播感受一致,但是费时费力,测试人员必须一直仔细地盯着画面,很容易疏忽掉一些细节,而且统计工作也非常繁琐;2、使用专门的测试设备进行测试,可以模拟打开、关闭连接,其优点就是自动化,大大减轻测试人员的工作量,但是这种测试手段偏重于对流媒体服务器进行压力测试,测试设备不会真正进行播放,无法真实模拟用户的使用场景,当然也无法检测到停顿、马赛克等现象。本系统试图代替人工点播测试,实现一种成本低廉、自动记录异常、分析结果准确、统计方便、少量人工参与的流媒体测试系统。

2系统架构概述

从流媒体点播的基本思想来看,任何一台连入Internet的计算机都有可能成为流媒体用户,也就是说安装了我们开发的客户端点播程序的计算机都可以成为本系统的一个测试点,这就要求系统具有远程通信的能力。并且,待测流媒体以及点播客户可能会不断变化,所以要求服务器与客户端之间的关系更为灵活、松散,这对系统提出了松散耦合的需求。另外,点播设备上运行的客户端程序与服务器端的实现可能是异构的,这里需要将两者集成为一个相互协调互动的Web应用。

Web Service体系使用SOAP协议实现应用与服务之间的通信,用WSDL文件对服务进行标准的描述;它具有完全的平台、语言独立性,它进行了更高程度的抽象,只要遵守Web Service的接口即可进行服务的请求与调用;同时,SOAP一般使用标准的HTTP协议,可以透明地穿越防火墙;Web Service可以在Web上发布,发布的服务可以在UDDI上进行注册以便被检索使用;而且,通过采用Web Service,部署和集成的费用大大降低,所有应用只要能连入Internet,就可以使用和集成Web Service,流程的更改也无须更改大量代码,从而减少了支持现有的和正在开发的产品的总成本。基于Web Service的应用程序具备了松散耦合、面向构建和跨技术实现的特点。因此,使用Web Service是很好的解决办法。下面分别介绍一下本系统的物理架构和逻辑架构。

2.1物理架构

基于Web Service的流媒体测试系统的物理架构中包括以下几个部分:

● 点播设备:普通PC机即可,运行一个或多个利用流媒体厂商提供的SDK开发的客户端点播程序;

● 测试服务器:包括Web Server与数据库;

● 流媒体服务器:待测的流媒体所在的服务器,可以为微软、Real、QuickTime的产品;

● 管理员PC:任意一台可以通过HTTP访问测试服务器的PC机。

上述部分构成了完整的基于Web Service的流媒体测试系统的物理架构,基于Web Service的流媒体测试系统逻辑结构中包括客户端点播程序、测试服务器的配置和查询模块和测试数据管理模块三部分组成。

● 客户端点播程序:运行于点播设备上,根据从数

据库中取到的配置记录对流媒体自动进行点播,采样画面并记录数据,与测试服务器进行数据交换;

● 测试服务器端测试数据管理模块:通过Web Service方式接收来自客户端点播程序的数据,并从数据库中取出一条可用记录给测试点。

● 测试服务器端配置和查询模块:实现对测试点的影片播放列表的灵活配置,根据管理员组合条件的结果统计;

系统的开发工作主要涉及到两个部分的内容,分为测试点的客户端点播程序和测试服务器端应用程序。接下来,将对这两个部分的实现方案进行讲述。

3客户端程序实现技术方案

目前在流媒体市场上主要有微软、RealNetworks和苹果电脑三家公司产品,分别是:Windows Media、Real System和QuickTime,目前在我们的系统中只实现了Windows Media格式的流媒体测试,这里我们以此为例。Windows Media Player 为数字音频和视频提供了出色的播放效果,但在我们的系统中作为客户端程序在点播过程中需要得到更多信息,所以需要利用Windows Media Player 软件开发工具包 (SDK)扩展独立 Player 的功能,并将播放功能嵌入到自己订制的应用程序中。这里需要扩展两个方面的功能:首先,调用合适的函数获得我们感兴趣的流媒体性能参数,比如:最大比特率、帧速率、可用带宽、协议等等;其次,是这个订制的客户端点播程序如何与服务器端的Web Service通讯的功能。

在流媒体播放发生异常时会伴随着一系列流媒体性能参数的异常,比如:当流媒体点播端到端的丢包率超过了一定限度或者流媒体服务器负载过大时,将会发生马塞克现象;当网络拥塞,网络带宽或网络QoS质量在一定的时间内不能很好的保证,导致画面停格和跳帧现象,有时只能听到比较流畅的声音,有时连声音也停住;网络丢包率达到了10%或时延超过500ms,流媒体点播的网络QoS质量在一定的时间内不能保证,导致播放器一直处于与服务器连接的缓冲状态。客户端点播程序可以利用所获得的采样数据分析出流媒体当前是否处于异常状态,假如是的话,可以参照一系列的现象与性能参数之间的对应关系,判断出是什么样的异常并记录下来。这一点与人眼的观察很近似,但是要比人眼更精确。

在实际的测试过程中,配置好点播程序(测试点编号、测试服务器IP等信息)后,它会通过SOAP方式调用测试服务器上的一个名为GetConfig 的Web Service,得到服务器数据库中的一条可用配置记录,其中包括影片URL、最早播放时间、采样周期等信息,客户端程序根据这些参数自动配置并打开流媒体进行播放,同时调用开发包中的控件实时采样当前画面的质量状况并记录到缓冲区中,每测试完一部影片会产生的结果,通过SOAP方式调用测试服务器上的另一个名为UploadData的Web Service解析结果数据,并将解析出来的数据存到数据库中,然后再取一条配置记录下来播放,周而复始直至数据库中没有可用的配置记录下发为止,其点播流程如图3:

由于数据是在客户端与服务器之间进行交换,考虑到服务器端对数据解析的方便,以及数据的可扩展性和健壮性,客户端产生的结果数据采用XML格式,满足XML文档形式合理限制的最低要求即可。其中包含的信息非常丰富,有影片URL、影片开始结束时间、比特率、帧数、数据包数、网络连接状态与采样数据等基本信息。

4服务器端程序实现技术方案

测试服务器采用免费的Tomcat作为Web服务器, Tomcat是Java Servlet 2.2和Java Server Pages 1.1技术的标准实现,是基于Apache许可证下开发的自由软件;而WebService引擎采用的是免费的可与Tomcat集成使用的

AXIS,它是Apache SOAP项目的最新版本,是一个SOAP处理机,可以将可插入的部件进行分类,并进行多种方式的设置。从AXIS的最简单形式来看,它可以视为介于业务逻辑和携带数据的网络传输之间的一个薄层,只是从传输中提取SOAP消息并将其交给Web Service,此外,它也把所有的响应格式化为SOAP消息,并发回请求者。这两者都是免费软件,可以大大节省开发成本。

测试服务器实现两大部分的功能:

4.1、测试数据管理功能:

测试数据管理模块以二进制可执行文件形式存在于测试服务器,以Web Service形式发布,供测试点的客户端程序进行SOAP调用,实现通知测试点按照测试配置进行流媒体测试和收集测试数据的功能。本模块为测试点提供两个SOAP调用对象:取测试配置(GetConfig)和上传测试结果(UploadData),两者主要的工作是与数据库进行交互。

4.1.1取测试配置(GetConfig):测试点在进行测试时首先调用GetConfig对象,获取要播放的影片URL和测试配置参数,根据测试配置参数测试影片。GetConfig对象根据测试点编号为测试点找到一条可用的测试配置记录,其中包括影片URL、数据上传模式、采样周期等信息。假如没有找到可用的测试配置记录,GetConfig将返回给测试点一条为 “none”字符串信息。

4.1.2上传测试结果(UploadData):测试点每测试完一部影片后调用UploadData对象,向测试服务器上传测试结果。UploadData对象负责接收测试点的测试结果数据,将其中的各项信息解析出来并存放到数据库的相应字段。最后,UploadData将向客户端程序返回一个数据是否上传成功的布尔信息。

4.2配置和查询功能:

测试服务器支持管理员和普通用户两种权限级别的用户。其中,管理员可以配置影片列表、查询结果、查看测试点当前状态、增加、删除、修改测试点和普通用户信息;而普通用户不能添删任何数据,只能查询结果和查看测试点当前状态。

配置和查询模块采用Web方式实现,大大减轻了管理员的工作量。管理员通过浏览器访问测试服务器就可以实现多个测试点的播放列表配置,也可以修改任意一部待测影片的测试配置参数,还可以实现按流媒体服务器IP、测试点编号、播放时段对测试结果的统计。

5结束语

现今对流媒体的测试手段并不是很多,本系统的目的就在于将当前较为成熟的Web Service技术同利用流媒体厂商提供的SDK自行开发的客户端点播程序结合起来。目前本系统只支持对微软的流媒体服务器进行测试,接下来的目标是利用其他流媒体厂商提供的SDK开发支持他们流媒体服务器的客户端程序,利用Web Service良好的可扩展性,扩展本系统的通用性。 (c001)

分享到:
评论

相关推荐

    基于ssm+vue开发的web新闻流媒体平台.zip

    该项目是一个综合性的Web新闻流媒体平台,采用现代前端框架Vue.js与后端Spring Boot、Spring、MyBatis(SSM)架构相结合的方式进行开发。同时,考虑到移动端的使用,项目还涉及微信小程序的开发。以下将详细介绍这个...

    Web项目的基础部分,Angular加SpringBoot编写,实现了基于权限、角色、用户的基本系统和流媒体服务+源代码+文档说

    前台项目是由`Angular`编写,后台项目由`SpringBoot`及其它组件编写,主要分为两个服务:`service-web`是`Web`服务,为前台项目提供接口,处理业务流程,实现了基于权限、角色、用户的基本系统;`service-static-...

    流媒体服务器源码包nginx+rtmp

    通过以上步骤,你就能搭建起一个基本的基于Nginx和RTMP的流媒体服务器。然而,实际部署中可能还需要考虑负载均衡、安全策略、带宽管理、CDN集成等高级特性,这些都需要根据具体需求进行更深入的配置和优化。同时,...

    基于php网站系统的移动增值业务的设计与实现--毕业设计论文.doc

    移动增值业务是指通过移动通信网络提供给用户除基本语音通信之外的各种增值服务,这些服务通常包括短信服务、彩信、WAP浏览、手机游戏、音乐下载、视频流媒体等。随着3G和4G网络的普及,移动增值业务已经成为电信...

    基于springboot的线上教学系统源码.zip

    总结来说,基于SpringBoot的线上教学系统源码是一个综合运用了多种技术和设计模式的典型应用,涵盖了用户认证、数据库操作、文件上传、视频流媒体、交互式讨论、作业管理等多个功能。通过对源码的深入学习,开发者...

    基于ssm在线云音乐系统.zip

    9. **用户体验**:音乐播放功能可能需要实现音频流媒体技术,提供流畅的播放体验。此外,界面设计应简洁美观,符合用户的使用习惯。 10. **测试与调试**:项目开发过程中,单元测试、集成测试和压力测试都是必不可...

    基于java的智能点餐系统毕业论文(20210809163201).pdf

    9. 软件测试与维护:包括单元测试、集成测试、系统测试以及应用的调试、发布和维护。 这些知识点覆盖了从理论基础到实际开发的方方面面,为设计和实现一个实用的智能点餐系统提供了技术支持和方法论指导。由于文档...

    安卓Android源码——Red5+直播系统的架构服务端的直播流工程.zip

    Red5提供了API和Web控制台,可以用来管理直播频道、存储和检索流媒体内容。服务端的直播流工程可能涉及到以下几个核心概念: 1. **RTMP协议**:实时传输协议是用于音视频数据实时传输的协议,常用于直播系统中。...

    SOAPUI必备知识.pdf

    SOAPUI是目前流行的一款接口测试工具,被广泛应用于软件测试领域中,特别是针对基于Web Service的接口进行测试。本文将详细介绍与SOAPUI工具相关的几个基础概念和使用方法,以帮助测试工程师更好地理解和使用SOAPUI...

    UPnP测试程序(基于SharpPnP实现)

    设备架构定义了如何在网络上自我宣告、发布和发现设备,而服务架构则规定了设备如何提供和使用特定的功能,如媒体流或网络打印。UPnP协议基于SOAP(简单对象访问协议)和XML,允许设备和控制点(例如计算机或智能...

    基于SSM的在线学习课堂系统源码.zip

    3. **视频播放**:支持在线观看教学视频,可能涉及到流媒体技术和缓存策略。 4. **论坛讨论**:提供论坛功能,让学生提问、讨论,教师解答。 5. **作业与测验**:发布作业,自动或手动批改,进行在线测验。 6. **...

    java基于springboot的在线网课系统源码.zip

    3. 视频模块:视频资源的上传、存储和播放,可能涉及流媒体服务器如Nginx-RTMP或阿里云OSS服务。 4. 订单模块:处理课程购买、支付逻辑,集成第三方支付接口,如支付宝、微信支付。 5. 消息通知:包括课程更新通知、...

    GB28181测试工具

    压缩包中的“mss-1.4.0.FINAL-apache-tomcat-6.0.29”文件名可能指的是一个基于Apache Tomcat 6.0.29版本的Media Server Service (MSS)软件包。Apache Tomcat是一个流行的开源Java应用服务器,通常用于部署Web应用...

    在线学习系统

    总的来说,基于SSM框架的在线学习系统开发涵盖了从需求分析、设计、编码、测试到运维的全过程,涉及Web开发的多个方面,是学习和掌握Java Web开发技术的好实践项目。通过这个项目,开发者不仅可以深化对SSM框架的...

    asp本地测试程序软件

    NetBox 支持目前最为流行的 XML 和 Web Service 工业标准和 ASP、COM、.NET 等流行标准,NetBox 对第三方数据库的完美支持使您新构建的商务应用可以容易的将已有的应用系统整合进来,从而充分利用现有的 IT 资源,...

    基于J2EE的网上在线听音乐

    10. **测试与部署**:项目开发完成后,需要进行单元测试、集成测试和系统测试,确保功能的正确性和稳定性。部署时,可能涉及到应用服务器如Tomcat、JBoss等,以及Web服务器如Apache或Nginx的配置。 以上是“基于...

    Alfresco.3.Business.Solutions 的测试代码

    - **压力测试**:测试系统的稳定性,模拟大量并发用户访问。 - **定制化测试**:针对书中介绍的自定义内容模型、工作流或界面进行的测试。 5. **运行和分析测试代码** 在运行这些代码前,你需要一个本地或远程的...

Global site tag (gtag.js) - Google Analytics