手把手教你设计视频分享网站【5】

突然想到了一个成语词庖丁解牛,其中有一段是这么说的:“话臣之所好者道也,进乎技矣。始臣之解牛之时,所见无非牛者。三年之后,未尝见全牛也。方今之时,臣以神遇而不以目视,官知止而神欲行。”当然这就说的有点过了,深究一下无外乎是只其理,而非知形,万事掌握的是内在的机理。

好,继续回到视频网站,发现前面1234篇零零散散的说了很多东西,其实用图解的方式进行补充说明,就应该看得更直观一点了。

                                                                          图1用户点播媒体节目的流程(kuliqiang.com

  

① 用户户运行P2P流媒体客户端程序,登录到P2P流媒体服务系统。

  

②用户浏览系统的内容发布到服务页面,查找到所需节目并点击该节目链接后,P2P流媒体客户端程序通过链接中所含信息,获取该节目的惟一标识以及所对应的资源管理服务器。

  

③P2P流媒体客户端程序连接相应的资源管理服务器,由资源管理服务器根据该节目的惟一标识查找内容节点资源列表,并根据预先定义的策略和客户端属性(如用户IP地址、连接速率等)对内容节点(可以是客户端、内容缓存服务器和原始内容服务器)进行调度,返回一系列符合条件的内容服务节点列表给客户端程序,同时,资源管理服务器根据客户端属性和预先定义的内容分发策略确定该客户端需要存储的内容片断范围,并同样把该要求返回给客户端程序。

  

④P2P流媒体客户端程序根据收到的内容服务节点列表和相应的内容服务节点(内容服务节点可以是客户端、内容缓存服务器和原始内容服务器)建立点对点连接,并从内容服务节点接收相应的内容片断,在本地进行缓存处理,并实现实时播放。

  

⑤在播放的同时,P2P流媒体客户端程序根据前面资源管理服务器确定的内容存储要求进行节目内容的本地存储,并每隔一定的时间向资源管理服务器报告该客户端的内容存储情况,以便资源管理服务器及时更新相应的内容节点资源列表,使该客户端可为其他用户提供相应的服务。

 

此外还是资源管理和调度的问题。整个P2P流媒体系统中,资源管理服务器的设计是最关键的。为确保P2P流媒体服务系统能够正常运转。并向用户提供良好的服务,资源管理服务器必须及时更新维护每个内容文件所对应的内容节点资源列表,准确反映出系统当前可用的服务资源情况。内容节点资源列表应至少包含原始内容服务器信息,并根据资源的实际分布情况可包含其他客户端节点和内容缓存服务器信息,看到这里的朋友不妨再回顾一下《产品经理看:主流视频分享网站【3】》其中对CDN内容分发网络的描述。

  

内容节点资源列表的建立和维护过程设计如下:

1)运营商/ICP在内容发布服务器中发布内容的同时,将在资源管理服务器中建立该内容文件所对应的内容节点资源列表,并把原始服务器作为初始服务资源记录在资源列表中;

 

2)用户登录到P2P流媒体服务系统时,后台对用户进行筛选,并要求合格的客户端服务节点向资源管理服务器报告该客户端内容存储情况,在相应的内容节点资源列表中加入该客户端服务节点;

 

3)当内容缓存服务器所缓存的内容发生变化时。需通知资源管理服务器更新相应的内容节点资源列表;

 

4)当用户点播后,资源管理服务器对内容服务节点进行调度,返回符合条件的内容服务节点列表给客户端程序时,相应的内容节点资源列表应有所记录,反映出资源的占用情况;

 

5)当用户播放节目时,本地存储内容也在不断更新,因此该客户端服务节点每隔一定的时间需向资源管理服务器报告客户端的内容存储情况,以便资源管理服务器及时更新相应的内容节点资源列表;

 

6)当客户端从某个内容服务节点接收完相应的内容数据后,该客户端程序需通知资源管理服务器释放相应的内容服务节点,使该节点可继续为其他用户提供相应的服务;

 

7)当用户退出P2P流媒体服务系统时,相应地也会通知资源管理服务器在相应的内容节点资源列表中删去该客户端服务节点。为实现业务的可运营、可管理、可扩展,资源服务器对内容节点的调度应综合考虑服务质量、网络压力、节点能力等因素,遵循以下调度原则。

 

如果该节目的内容节点资源列表只有原始内容服务器,则该用户为在线用户中第一个点播该节目的用户,由原始内容服务器提供服务。

如果该节目的内容节点资源列表还含有其他客户端节点或内容缓存服务器,则根据预定义的策略进行调度,其预定义策略可包含但不仅限于以下几点。

 

1)地域优先。为优化网络流量、流向,减少穿越骨干流量,并提高内容响应速度和服务质量,应尽量选择同一地域的内容节点优先提供服务,客户端所处地域的判断可通过IP地址段进行。

 

2)节点类型优先。为提高系统伸缩性,使系统服务能力随用户增加而扩展,同时也留出一定资源来为非热门节目提供服务,调度的优先顺序应为其他客户端节点>内容缓存服务器>原始服务器。

 

3)稳定性优先。由于P2P网络是异构网络,客户端设备类型差别很大,为保证服务质量,客户端节点选择应重点考虑稳定性因素,包括在线时间、网络连接、系统负载、以往服务情况等,并且可对各因素所占的权重进行设置。

 

4)Cache优先原则。为提高服务响应速度,减少客户端硬盘操作次数,应优先选择内容还在内存Cache的客户端节点提供服务,即选择正在收看或刚收看完的节点进行优先调度。返回的内容服务节点列表中,同一内容片断应给出两个以上对应的内容服务节点,以便在首选内容服务节点失效时,能够采用备份服务节点提供服务。

  

e7b3bbe7bb9fe69e84e69eb62

                                                                  图2视频网站构架(kuliqiang.com

 

最后我再用图2从一个构架层面上汇总一下,发现发现拖起这个视频网站的无非是:

 

用户平台
原力P2P新媒体网站的终端层包括用户进行的一些功能层面的支持 上传、点播、分享、评论等等。

 

业务平台
原力P2P新媒体网站的业务模式及实现层。可提供的应用包括视频点播、数字电视直播、多媒体数据广播、互动节目、可视电话、互联网浏览以及在线教育等。

 

运营支撑平台
原力P2P新媒体网站的运营管理层。包括用户管理、认证计费管理、系统监控管理、统计报表管理、第三方运营管理等。

 

应用支撑平台
原力P2P新媒体网站的核心层,实现P2P的点播和直播等应用。包括流媒体内容的采集、编码、审核、分发、存储、编目检索、版权保护(DRM)、内容发布等。

 

也就是这么点内容。好了,这一篇就此为止。下一篇真要讲网站交互信息构架表现层面上的一点个人总结了。(注:以上皆为个人的一些理解,不代表权威,仅供参考。)

 

此文纯属个人观点,转载请标明出于:http://www.kuliqiang.com/?p=1796,谢谢您支持!

 

相关文章阅读

10 条评论

发表评论