【B2B研发商城】 【加入收藏】 【设为首页】 【进入论坛】 【站点地图】

你的位置:中国研发网 >> 专题频道 >> 流媒体开发 >> 详细内容 在线投稿

SharpStreaming项目总体架构设计

热度137票  浏览28次 【共0条评论】【我要评论 时间:2010年8月05日 12:26
SharpStreaming项目包含两个子项目,分别为SharpStreamingServer和SharpStreamingClient,按照通常的做法是对每一个项目做分别的开发,待项目开发完毕后才最后集成。很显然,这种方式似乎并不适合于本项目的开发,因为服务器与客户端本来就应该是配套的,两者是紧密结合的。因此,在构建服务器的基本框架的同时,也必须构建客户端的基本框架,并能够使两者很好地集成起来。这样无论是对服务器还是对客户端的进一步开发和调试都能够顺利进行,可以进一步确保每一个服务器和客户端的版本都是可用的。

    本篇文章及后面一篇文章将重点介绍本项目的总体结构设计,不仅仅是基本的服务器和客户端,而是从全局的角度来对本项目做总体结构的设计。本章将介绍服务器端的总体结构设计,在下一篇文章中将介绍客户端的总体结构设计。

    首先,抛开服务器的性能等相关方面不说,服务器其实就是一个不断接受客户端请求并处理客户端请求的应用程序。服务器通过网络与客户端进行数据交互,每一个客户端对服务器而言就是一个会话,所以服务器就是由很多客户端会话组成的一个集合,每一个客户端会话独立处理属于自己的事情,比如从本地文件读取文件数据块并通过网络发送出去,至于采用什么样的方式发送和接收数据,就涉及到传输协议了。

    另一方面,从用户体验的角度出发,给服务器构建一个用户界面,将使服务器的可操作性大大增强。因此,服务器初步划分为两大部分,即服务器UI部分和服务器核心部分,更确切地说,构建一个SharpStreamingServer解决方案,该方案包含两个项目,分别为SharpStreamingServer.UI(Windows窗体应用程序)和SharpStreamingServer.Core(类库),前者负责处理与用户的交互等工作,后者处理服务器的后台工作(如侦听客户端连接、接收和发送数据等)。

    下面是服务器部分的思维导图:


    先来看服务器UI处理部分,该部分(项目)其实从概念上来讲,可以划分为两个层次:一是UI展现层,二是UI处理层。UI展现层将各种数据展现到用户面前,如可供用户操作的各种按钮(启动服务器、停止服务器、设置等)、服务器的运行信息或已连接客户端的基本信息等。UI处理层是UI展现层与服务器核心部分交互的桥梁,服务器核心部分的数据是以事件的方式反馈回给UI处理层的,UI处理层经过处理后再将其通过UI展现层展现出来。

    再看服务器的核心处理部分,该部分大致由几大块组成:RtspServer类、Socket处理类、Session处理类、文件处理类、事件处理类、公共或工具类、RTP/RTCP处理类,此外还可能有一些未知的类。RtspServer类是核心类,负责服务器的启动、停止等相关操作,是与UI部分交互的窗口。Socket处理类包括ServerSocket(负责侦听客户端连接请求)和ClientSocket(以异步方式接收和发送数据)。Session处理类包括ClientSession和MediaSession,初步构想是每一个ClientSession对应一个MediaSession。文件处理类主要是从服务器本地读取指定文件数据块。RTP/RTCP处理类包括了对RTP数据包的组包等,在这一块目前还存在一些模糊的地方,需要在后面进行深入研究。

    此外,随着服务器的深入开发,后面还可能会陆续加入一些目前未知的类。

    在本项目中,有Source和Sink的概念(这两个概念源于Live555开源项目),Source代表来源数据,Sink代表消费数据。如FileSource代表的是从文件读取文件数据块,而RTPSink代表的是消费文件数据块;因此这种联系也就非常明确了,FileSource不断地读取数据,之后交给RTPSink,RTPSink再通过网络发送出去(消费)。

    总体而言,服务器基本可以根据上述的思维导图进行项目工程的构建了。



本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/huangxinfeng/archive/2010/07/15/5738326.aspx
本站所有文章欢迎任何形式的转载,但请注明作者及出处,尊重他人劳动成果!
文章转载自:中国研发网 [http://www.yanfaw.com]
本文标题:SharpStreaming项目总体架构设计
TAG: 架构 设计 项目 总体
顶:5 踩:4
对本文中的事件或人物打分:
当前平均分:0.39 (44次打分)
对本篇资讯内容的质量打分:
当前平均分:-0.7 (40次打分)
【已经有44人表态】
3票
感动
8票
路过
6票
高兴
7票
难过
4票
搞笑
5票
愤怒
5票
无聊
6票
同情
上一篇 下一篇
发表评论

网友评论仅供网友表达个人看法,并不表明本网同意其观点或证实其描述。

查看全部回复【已有0位网友发表了看法】