播发平台

2024-08-15

播发平台(精选4篇)

播发平台 篇1

一、引言

CM ACast是中国气象局新一代气象资料卫星数据广播系统的简称, 始建于2010年, 2011年底将投入业务试运行。它是对中国气象局现有的三套卫星数据广播系统 (中国气象局卫星单向数据广播系统PCVSAT、DVB-S卫星单向数据广播试验系统DVB-S和FENGYUNCast气象卫星数据广播系统) 的整合和升级。CMACast系统建成后, 将涵盖原有三套系统的全部数据资料及用户, 提供高达70M b/s速率的数据广播, 每天可播发4 0 0 GB以上的气象资料, 日均播发文件数量可达200万个。

C M AC a s t的数据播发能力较之于中国气象局原有的卫星数据广播系统几乎提高了10倍之多, 其源自于CM ACa st广播系统播发平台中的若干有针对性的设计。本文将首先分析可能影响主站播发平台播发能力的几个因素, 随后将重点分析CMACast系统针对这些因素所采取的解决方法。

二、影响CMACast播发能力的瓶颈

中国气象局在建设CMACast系统之前, 已经建设了PCVSAT、DV B-S和F E NGY U NCa st三套卫星数据广播系统, 但三套系统的日广播数据量均没有达到50GB。从已有三套系统的建设经验来看, 对于一个数据广播系统来说, 从根本上来说其仍然是一个文件的汇聚和分发系统, 其本质上都是在对文件进行读写操作。

因此, 影响系统播发能力的主要因素就是系统在处理大量文件时所产生的I/O消耗, 以及这些I/O消耗对系统性能造成的影响。如果在这个方面上处理的不好, 将极大影响系统的播发能力。从这个角度来说, 做到对文件的高效读写与管理就显得十分必要。

图1是CM ACast主站播发平台的数据播发流程示意图, 如果用一个形象的比喻来理解这个流程示意图的话, 我们可以将整个播发平台看作是一个繁忙的“货运站”。“货运站”转运的“货物”是一个个的文件。在“货运站”中设有专门的“仓库”, 也就是存储空间, 用来对“货物”进行分类存放, 同时货运站中还有一条繁忙的“传送带”, 用来将“货物”装上一辆辆的“货车”, 最后经由“货运站”的出口发出。由于播发平台使用的是卫星信道, 其播发带宽终究是有限的, 因此这个例子中的“货运站”的“货车”的数量和空间是有上限的。而我们关注的播发平台的播发能力, 对于这个“货运站”来说, 就是在固定的“货车”的情况下, 如何最大限度的发挥“货运站”的货运能力。

1. 主站播发平台对文件的管理能力

主站播发平台对于文件管理的能力, 主要取决于操作系统自身对于文件系统的管理机制。以中国气象局现有的三套广播系统为例, 它们全部都基于Windows操作系统开发, 但Windows操作系统在对于大量目录和文件进行管理时, 其处理能力的不足会影响播发平台的整体性能。

2. 主站播发平台从数据源获取待广播文件的方式

主站播发平台获取数据源上的大量待广播文件时, 如果文件的获取速度较低, 将直接影响主站播发平台广播的数据量。以中国气象局现有的PCVSAT和DVB-S卫星广播系统为例, 它们都是通过ftp的方式接收数据源提供的待广播文件。但采用ftp方式传输有几个不足之处:首先, ftp的传输速度受网络带宽的限制, 如果播发平台与数据源之间的网络带宽无法保证, 会影响文件传输的速度, 从而直接降低主站播发平台的广播数据量。其次, 一个文件必须等待ftp完整接收后才能开始播发, 因此如果从一条低速线路上获取一个几百MB的大文件, 仅获取这个文件就需要耗费很多时间, 其文件广播的时效将明显降低。另外, 为了做到从数据源同时获取多个文件, 主站播发平台上往往需要部署多个ftp应用程序, 分别从数据源获取不同的文件。但这给播发平台后续的应用程序维护带来很大问题, 不利于对广播文件的获取进行集中监视。

3. 播发平台带宽在广播文件中的分配

播发平台的广播带宽是有限的, 当面对种类繁多的大

量待广播文件时, 必须根据不同类型资料的广播时效要求做到广播带宽的合理分配, 否则很容易造成某一类文件的积压, 从而造成系统性能的下降, 而且也会造成该类文件广播时效的滞后。

4. 对文件积压情况的处理机制

在原有三套广播系统中, 主站播发平台对于待广播文件的管理机制设计的不够合理, 特别是待广播文件量突然增大后, 经常出现待广播文件的迅速积压和堆积, 当目录下的文件个数达到几千后, 目录的访问速度就会明显下降, 并使得主站播发平台的播发能力大幅降低。为此, 在CMACast系统主站播发平台设计过程中, 着重在主站播发平台文件系统选

择、播发平台与数据源文件传输方式、播发平台带宽统计复用以及播发平台播发队列设计四个方面进行了有针对性的设计工作。

三、CMACast系统改进方式

1. 主站播发平台文件系统的选择

CMACast系统每日广播文件个数保持在120万以上, 每日广播文件总量在150GB左右。CMACast系统所广播的文件绝大多数集中在100KB以下, 其中又以20KB以下的文件最多, 而小于1KB的文件个数则达到了3万个左右。图2是CMACast目前广播资料文件大小分布情况统计。

因此, CMACast主站播发平台选用了Linux操作系统, 同时在文件系统方面也选择了在小文件处理方面相对更加有优势的的Reiser FS文件系统。与Windows操作系统相比, 其具有以下几个优势:

⊙系统的安全性更高, 一方面是在用户权限的管理方面更为细致, 同时无需担心病毒威胁。

⊙Linux所采用的文件系统具有更高的读写效率, 而且不易产生磁盘碎片问题。

⊙所采用的Reiser FS文件系统处理大小1k左右的文件时, 其处理效率比其他文件系统有显著提高。

2. 通过共享文件系统方式提高文件汇聚能力

CM ACast系统的数据源是中国气象局新一代国内通信系统, 它是CMACast广播资料的惟一来源。它负责收集各类气象资料、产品以及卫星资料等, 为CMACast提供充足的数据资源。

为提高与新一代国内通信系统之间数据交换的速度, 与CMACast采用了通过集群进行文件系统共享的方式来解决数据源与主站播发平台的高速数据交换。这种方式与ftp传输方式相比, 明显减少了文件的读写操作, 同时节省了存储空间。

图3是采用ftp方式传输的数据流程分析, 数据源在收集待广播数据时需要进行一次写操作, 同时在通过ftp向广播系统提供数据时, 还需要再进行一次读操作。对应的在广播系统一侧, 在通过ftp接收数据时, 将进行一次写操作, 而在最终进行数据播发时, 还需要进行一次读操作, 整个过程需要涉及4次I/O操作。

而通过将数据源与广播系统整合到一个集群中, 可以使数据源与广播系统共享集群的存储资源, 同时利用共享文件系统来达到减少读写操作的目的。图4是采用集群方式的数据流程分析。与图3进行对照可以发现, 利用linux操作系统中提供的文件硬链接的方式, 数据源可以将收集到的数据通过硬链接的方式提供给广播系统。Li nu x系统的硬链接方式与文件拷贝不同, 它并不创建新的文件, 但可以使一份数据在多个地方使用。采用这种方式, 可以为整个数据汇聚流程减少2次读写操作, 同时也避免了由于文件复制而引起的存储空间的占用问题。

3. 基于广播通道的带宽统计复用机制

(1) 带宽统计复用原则

在CMACast系统中, 使用逻辑通道的概念来管理不同类型的广播资料。不同的广播通道内的资料的类型各有不同, 同时它们对于广播时效性的要求也各不相同, 有些要求做到分钟级下发, 而有些资料则只需在几小时之内下发即可。

为了兼顾不同通道的特点, 同时最大限度的利用有限的卫星信道资源, 在CMACast系统中采用了基于逻辑通道的带宽统计复用机制, 它的设计兼顾了以下几个方面的因素:

⊙对播发平台总带宽进行控制, 避免超出卫星信道总带宽。

⊙在播发平台内部, 允许为不同通道设定带宽范围。

⊙为不同的通道设定相应的优先级。

⊙对于优先级较高的资料, 应优先提供系统带宽供其使用。

⊙兼顾优先级低的通道, 保证低优先级的通道也有机会得到系统带宽。

⊙对无数据播发的通道, 其原先占用的带宽应自动释放, 供其他通道使用。

(2) 带宽统计复用中的几个关键参数

⊙系统最大带宽。首先根据租用的卫星转发器带宽以及采用的调制方式等参数计算出卫星信道所能支持的最大信息速率, 之后去除DVB-S2封装开销后得出播发平台最大出口IP速率, 此速率为系统最大带宽, 即系统带宽池总容量。播发平台应严格控制输出的IP包速率不超过该速率, 否则将可能造成卫星链路的数据丢包。

⊙通道最小带宽。每个通道的最小带宽意味着该通道至少能够占用到的带宽, 它是在该通道有数据播发的前提下, 在最差情况下该通道所能获得的带宽, 即该通道的最低速率 (播发平台内所有通道的最小带宽之和不得超过系统最大带宽) 。但最小带宽的设定并不意味着该通道会一直占用此带宽, 在通道没有数据发送时, 该通道的带宽将被释放到系统带宽池中, 供其他通道使用。

⊙通道最大带宽。每个通道的最大带宽意味着该通道能够占用到的最大带宽。在任何情况下, 该通道的播发速率都不能超过该通道的最大带宽, 同时单个通道的最大带宽不得超过系统最大带宽。

⊙通道优先级。每个通道的优先级代表着该通道所广播资料的紧急程度, 带宽统计复用算法根据通道优先级从带宽池中为各通道分配带宽。

(3) 带宽统计复用中算法设计

在某一时刻, 播发平台内各通道占用带宽的分配策略:

⊙首先仅为当前有数据播发的通道分配带宽。

⊙尝试为所有有数据播发的通道均预先分配其设定的最大带宽。

⊙如带宽池不足, 则为所有通道预先分配其设定的最小带宽。

⊙在带宽池有剩余的情况下, 为其中优先级最高的通道分配带宽, 如相同优先级的通道有多个, 则尝试使所有通道均达到最大带宽, 如带宽池还有剩余, 在剩余通道中递归此过程;如带宽池不足, 则按各通道设定的最大带宽值的比例分配带宽池剩余带宽。

随时间变化的带宽分配策略。在连续的时间点上不断的进行带宽的统计复用时即是在每个时间点上均重复进行上述算法。在这一过程中, 无数据播发的通道原先所占用的带宽将被立即回收到带宽池中, 以便在下一个时间点上供其他通道进行使用。

4. 主站文件播发机制设计

(1) 文件播发机制设计原则

CM ACa st主站播发平台的工作方式是对数据源目录实时进行轮询, 从中获取待播发的数据, 并根据不同的数据类型将其在对应的逻辑通道中进行播发。为了提高整个流程的工作效率, 在CMACast播发平台中采用了播发队列工作模式, 其设计基于以下几个基本原则:

⊙数据源目录下的文件被扫描后应尽快移走进行后续处理, 避免造成数据源目录下文件的堆积。

⊙文件移动采用rename方式, 减少文件移动时的I/O操作。

⊙采用播发队列方式对待播发文件进行快速查找和管理。

⊙对由于带宽不足造成的文件积压, 通过专门的积压目录和积压队列对其进行管理, 避免由于文件积压而影响正常文件的播发。

(2) 文件播发流程设计

在CMACast系统中, 播发平台的主要工作进程分为两个, 一个是文件预处理进程, 一个是文件播发进程。这两个进程独立工作, 但通过队列来共享数据。根据应用方式的不同, CMACast设计了四种不同作用的队列, 分别是播发队列、定时队列、重发队列和积压队列, 对于每个逻辑通道, 他们都有各自的队列。

播发队列中记录的是即将在本通道中播发的文件的路径和文件名, 其按照先入先出规则进行排队, 文件播发进程从播发队列中取出一个节点, 根据路径读取相应文件进行播发, 同时从队列中删去该节点。而预处理进程则不断将新来的待播发文件插入队列, 当队列长度达到上限后, 后续再来的待播发文件将进入积压队列。积压队列同样采用先入先出规则, 一旦播发队列有空余后, 积压队列头部的节点将被取出并放入播发队列尾部。

除了播发队列和积压队列, CMACast系统中还设计了重发队列和定时队列, 他们分别用于对重复发送或定时发送的文件进行管理。

C M A C a s t作为对中国气象局现有P C V S A T、DV B-S、F E NGY U NCa st三套卫星数据广播系统的整合和升级, 其整合了现有三套系统内广播的各类气象资料及小站接收用户, 且大幅度提升了系统的播发能力。下图是中国气象局原有三套卫星广播系统与CMACast的播发能力对比。目前, CMACast系统在国内已有2000余个省、地、县级气象部门用户, 这些用户并通过这套系统实时接收中国气象局广播的气象观测资料和产品, 开展天气预测预报及服务业务。

四、结束语

C M AC a s t是中国气象局最新一代卫星数据广播系统, 其系统播发能力与原有几套系统相比有了显著提升。目前该系统已建设完成并投入业务运行, 它所具备的高速卫星数据广播能力将有力的提升中国气象局信息网络服务能力, 为全国各级气象部门提供天气预报预测工作准确率和精细化程度提供有力的支撑。笔者作为CMACast系统的主要设计和实施人员, 重点论述了该系统为达到高速数据播发所做的关键设计, 望能对相关系统的建设工作起到些须启发作用。

播发平台 篇2

也就是在短短的20多年前, 还是令人记忆犹新的广播电台“黄金时代”。早晨, 人们起床先打开收音机, 收听中央人民广播电台的《全国联播》;中午, 全家人聚在一台小小的“红灯”牌或者“咏梅”牌收音机旁, 听刘兰芳的评书《岳飞传》;傍晚, 蹦蹦跳跳的孩子们暂时安静下来, 因为“小喇叭开始广播了”。

20多年间, 伴随着改革开放过程中涌现出的令人眼花缭乱的新鲜事物, 电视机从黑白到彩色, 成为家庭最普及的“电器”和娱乐工具;电脑网络从幻想走进现实生活;手机从“大哥大”到成为今天人们身边最离不了的“必备品”之一。

电视抢走了众多听众, 中央电视台晚7点的《新闻联播》取代了中央人民广播电台的《全国联播》, 成为最权威的新闻品牌;网络抢走了年轻人, 他们能一天十几个小时在网上畅游, 却不会听1分钟的广播;手机更厉害, 当一个人低头看手机的时候, 很可能是在看手机报, 而它的出现, 仅仅是两三年的时间。

电视、电脑、手机等新技术的出现导致受众接受新闻的改变, 大势所趋, 再加上老牌的竞争对手报纸的发展, 广播的“黄金时代”一去不复返了。

但正所谓此一时彼一时也, 随着汽车飞速进入国人的生活, 更因为广播人自身的锐意改革, 在群雄气势汹汹之时, “柳暗花明又一村”, 近年来广播电台迎来了发展的“小阳春”。像地处偏远的黑龙江广播电台1年的广告收入达1.6亿元, 地处中原的河南人民广播电台的广告收入超过1亿元, 更别说北京、上海、广州等大城市的广播电台了。

广播新闻的变革之路

除了中央和省级综合性的广播电台由于体制和机制的缘故, 广播新闻没有大的改变, 其他专业台、都市台的新闻播报都已有很大的改变, 特别是针对“汽车族”量身打造的新闻, 无论是新闻的采编还是播发, 都与以往的广播新闻有着很大的改观。综合来看, 变革的主要方向是“短些, 短些, 再短些”, 这应该就是广播夺回听众, 赢得发展的关键所在。

短些, 首先是稿件短。以前动辄五六百字以上、超过1分钟的稿件今后将不再是广播新闻的主打稿了, 一两句话, 几十字的新闻将逐渐成为广播新闻的主打产品。这类似于报纸的标题新闻, 但对广播新闻来说, 是重生的关键。第一, 因为对汽车族来说, 他们不可能静下心来听长篇大论, 广播新闻对他们来说, 就是一个信息。第二, 传媒的增多, 使传媒本身也向专业化方向发展, 广播的专长就是及时和不受时间、地点的约束, 但缺点是纯声音的播报使新闻的深度和思想性受到限制。扬长避短, 简短的“标题式新闻”就是广播新闻的优势和活力所在。

短些, 其次是播报时间短。以往的广播新闻正点播报, 时间较长, 20分钟算少的, 半个小时、一个小时都有, 品种丰富, 内容繁多, 看似新闻很充实, 但却忽略了受众接受的程度。在电视和网络都没有出现的时候, 广播新闻是很多人唯一获取新闻的渠道, 人们可以一两个小时守在收音机旁, 但现在电视和网络已经彻底改变了人们的日常生活, 更不用说获取新闻的习惯了。10分钟、5分钟, 甚至2~3分钟的新闻播报, 对快节奏的人们来说, 较为合适, 而时长30分钟以上的新闻节目, 将逐步退出广播新闻的历史舞台。

短些, 再次是播出的间隔短。新闻永远是广播媒体的重中之重。要改变的是过去早6时半、晚7时半等固定时段, 每天一个台播报的新闻不少, 但间隔时间过长, 人们打开收音机, 除非在上述特定的时间段, 否则很难听到新闻。现在这种局面已经被打破, 很多电台都推出了整点播报、半点播报等。但这种间隔目前还不是主流, 更短时间的间隔还很少探索, 笔者认为, 无间断播报可能很难做到, 也没有必要做到, 但播出的间隔短将是潮流所趋。

短些与长些的辩证关系

综上所述, 广播新闻的变革之路是稿件内容短、播报时间短、播出间隔短。这种变革是顺应新媒体挑战的结果, 更是自身发展的需要。但短些的本质却是更长的新闻。它包括每天播发新闻的数量多了, 每天播报新闻的时间长了, 广播人的工作量更重了。

新闻数量的增多和播报时间的延长很好理解, 每条新闻的字数减少了, 就意味着在相同的时间内播发的新闻条数增多了;播出间隔短了, 就意味着在相同的时间段内播出新闻的总时间延长了。

可以说, 广播新闻的短些、短些、再短些, 恰恰是广播新闻的长些、长些、再长些。对广播新闻工作者来说, 工作量增加了, 责任更重了, 最主要的是, 广播记者的采访和写作模式要改, 采编部门几十年一贯制的采编和播发机制要改。

对记者来说, 打破新闻的“5个W”, 对单一的只需播出一次的新闻来说, 只需回答出“何人、何时、何地、何结果”就行了, 就如报纸新闻的导语, 甚至比导语更短。如果同一件新闻, 报纸消息需要700字, 电视新闻需要2分钟, 而广播新闻则可能只需70个字, 20秒钟时间。对重大的、群众极为关心的突发性新闻, 记者则要学习新华快讯的报道方式, 随时随地关注事态的发展, 随时随地报道事件的进程。

看似短小的新闻, 但对记者提出的要求更高了, 一是需要记者具有高度概括和提炼的能力, 最重要的是听众最关心的新闻要在几句话当中提炼出来, 对记者来说是一个写作上的挑战。二是突发性的新闻随时随地报道, 要求记者随时随地守候在现场, 多方采访和了解掌握情况, 并突破通信传输等困难, 及时把报道发回去。对记者来说是体力和精力上的挑战。

播发射机房UPS电源系统的设计 篇3

1 UPS电源系统及其工作原理

Uninterruptible Power System (UPS) 即为不间断电源系统, 当市电供电系统发生断电时, UPS电源系统能够向用电设备及时提供电能, 确保设备在一段时间例能够不间断地工作, 而在电压变化时该系统的输出电压稳定在220V或者380V。主要包括在线式、后备式与在线互动式不间断电源UPS。

在线式不间断电源UPS属于双变型系统, 在外电正常的情况下, 该电源系统电池组能够自行充电, 并通过整流器实现交流电压到直流电压的转换, 再经逆变器将直流电压转换为交流电压提供给用电设备。当外电中断时, 逆变器将对蓄电池组的直流电压进行转换, 将转换后的交流电压提供给用电设备, 确保设备的不间断工作。同时在线式不间断电源能够对干扰成分或者波动进行有效的消除或隔离, 确保供电的质量与安全。后备不间断电源UPS通常不用在精密设备的地方, 这是因为后备不间断电源UPS电能的供给质量并不高, 其供给电压幅度因外电网电压幅度的变化为变化, 对外电电网、非线性负载设备与电源自身的各种干扰与谐波成分并不能有效的消除或隔离。而在线互动式不间断电源UPS则综合了上述两种电源的优点, 在外电正常时, 如同后备式不间断电源直接对用电设备供电;在外电电压高于或低于额定值时, 在线互动不间断电源就能够通过降压或者升压, 不使用蓄电池组为设备供电;仅在停电或者外电电压超出范围时, 采使用蓄电池进行供电。

2 广播发射机房UPS电源系统的设计

2.1 UPS电源供电电源的设置

UPS电源在广播发射机房的应用中, 应采用两路电源进行供电。使两路电源同时接入到UPS系统, 进而使主、备电源能够进行自动切换和独立供电。在主路电源发生断电时, 则由备路电源为设备进行自动供电;若主、备路电源均断电时, 则由不间断UPS电源经逆变器将蓄电池直流电压转换为交流电压为设备供电 (外电恢复时, 蓄电池组充电) 。

2.2 选择UPS电源合适容量

UPS电源能够驱动多大功率的负载是由UPS的额定输出功率所决定的, 因此在实际运用中, 需要根据所需的负载来确定UPS的额定功率, 并留有余量, 同时对负载装置的特性、影响负载的因素进行考虑, 进而确保UPS电源能够安全的运行。根据负载总容量, 通常可根据公式:UPS容量=负载容量÷0.75 (0.8) , 来进行计算, 即表示负载容量应在UPS额定容量的75~80%以下。如在广播电视台需要不间断供电的设备 (包括有调度系统、卫星接收机、安防系统与质量保证系统等) 的总功率为6000VA, 那么选择的在线式UPS主机额定容量就应在8000VA以上。

2.3 选择合理的配线

配线的合理性是非常重要的, 若配线太细, 当电流较大, 就极易造成线路发热引发火灾;而配线太粗则造成浪费;同时也会影响广播电视的安全播出, 因此在配线上应根据导线的电气特性进行合理的选择。通常铝线容量为4A/mm, 多股铜芯线容量为6A/mm。在确定主机的功率后可参照UPS电源配线表、UPS电源空气开关配置表选择配线与空气开关。

2.4 放电时间的配置

在停电后, 不间断电源UPS是通过蓄电池组对设备进行供电的, 由于长效型的UPS具有外置的蓄电池组, 因此能够在停电时长时间的进行供电, 供电时间在数小时以上。广播发射机房最好选择长效型UPS, 进而满足不间断供电需要。电池供电时间的经验公式为:供电时间=蓄电池组容量×电压÷主机额定功率÷0.75 (功率因素) ;而电池放电电流则可根据电池供电时间进行计算, 经验公式为:放电电流=UPS容量×功率因素÷电池放电平均电压÷效率。

2.5 具有较强的过载能力

在具有冲击型设备的情况下, 不间断电源UPS也存在较大的瞬间冲击电流。为避免逆变器转换供电控制电路与UPS旁路供电发生错误动作, UPS应具有较强的过负载能力, 同时逆变器在短时间轻度过负荷中也应能够继续供电, 这种供电时间的长短由过载的严重程度决定。

2.6 安装旁路开关, 配置防止雷击与浪涌的模块

不间断电源UPS应具有应急切换与设备检修时的旁路开关, 旁路开关的安装能够使机房设备在完全由UPS进行供电的情况下, 将负荷全部转换到外电上, 以便在UPS电源发生故障与检修时避免发生停电。同时, 还应在UPS电源输入端配置相应的防止雷击与浪涌的模块, 以保护UPS电源的安全。

2.7 实现UPS电源的智能化, 进行实时的人机交互工作

UPS电源内部设置有微电脑, 能够对不间断电源UPS系统工作期间的相关参数进行实时监控, 同时能够进行故障的诊断。微电脑一旦监测到系统中的异常情况时, 就会自动发出声光报警, 并显示故障的位置、性质, 并对相关信息进行记录, 以便查阅。

3 结束语

UPS电源系统为传输工作的安全带来了极大的好处, 能够使在广电发射机房发射传输不因局部停电而中断, 同时也能够避免计算机大量存储信息的丢失。只要在广电发射机房中正确设计与选择UPS电源, 其必定能够在人们的工作与生活中发挥更大的作用。

摘要:在广播发射机房中采用不间断UPS电源系统, 经科学有效地设计能够确保该系统提供可靠的电源。为此, 本文主要对不间断电源UPS的工作原理进行了介绍, 并从七个方面探讨了广播发射机房UPS电源系统的设计。

关键词:广播发射,UPS电源,设计

参考文献

[1]黄明象.阳江广播电视台电视节目制作机房UPS电源设计和应用[J].科技创新导报, 2011 (02) .

[2]沈德军.关于UPS电源的几点认识[J].科技资讯, 2011 (31) .

播发平台 篇4

北斗地基增强系统建成以后,数据播发平台将为全国用户提供高精度卫星定位服务,可接入的卫星差分定位终端也将达到数亿量级。随着北斗地基增强系统的不断推广,北斗差分定位用户数的不断增加,北斗数据播发平台未来必将面临同时处理百万级甚至千万级终端用户的并发访问。且根据播发服务的特点,用户与播发平台之间的连接大部分都为长连接。因此,播发系统在建设的过程中必然会面临高并发、长连接的大规模数据访问。

经典的多线程池模型为每一个客户端创造一个独立的线程, 随着请求服务的客户端数量的增加,服务器将要创建大量的线程,但是线程数量是有限制的,而且大量的线程之间的切换也浪费了许多的CPU时间,严重影响了系统的效率。为了解决这些问题,微软花了数年时间进行研究和测试的一种非常好的机制来支持这种服务,这种机制被称为IOCP。

1 IOCP模型

IOCP是一种使用线程池处理异步I/O请求的高性能I/O模型,它的基本架构如图1所示:

主要有三种类型的参与者:

完成端口:任何想利用IOCP方式来处理I/O请求的I/O设备,都必须把该IO设备的句柄关联到完成端口。完成端口维护是一个先进先出的I/O完成队列,操作系统把异步I/O操作完成事件通知放入该队列后,完成端口唤醒等待者线程队列中的一个工作线程对数据进行处理。

等待者线程队列:工作线程通过调用Get Queued Compleion S tatus API,在完成端口上等待取下一个I/O完成包。

执行者线程组:工作线程已经从完成端口上获得I/O完成包, 在占用CPU进行处理。

2 IOCP在北斗广域差分数据播发平台应用中存在的问题及解决方法

IOCP在实际应用于北斗广域差分数据播发平台时暴露出一些问题,下面详细介绍遇到的问题及恰当的解决方案。

2.1用户端信息的识别和提取

基于IOCP的播发平台在实际应用中将处理大量用户的I/O请求,在完成端口完成用户的I/O请求后,交给工作线程池中的一个空闲线程处理,这个工作线程必须知道这个完成的工作I/O请求来自哪个用户(该用户的Sockaddr_in结构数据和连接该用户的Socket),以及I/O数据存放位置(存放数据的缓冲)。

在IOCP中,工作线程通过调用Get Queued Completion Status函数从一个指定的完成端口中获取一个I/O完成包。这个函数带有两个具有扩展性的参数,一个是LPDWORD类型的参数lp Completion Key(完成健);另一个是OVERLAPPED类型的指针。其中完成健是一个套接字句柄关联完成端口时的一个参数, 在这里可以取出这个参数,这是一个指针类型的参数,我们可以通过扩展这个参数使其成为指向带有用户端地址信息的数据结。 这样我们在这里就可以通过完成健获得用户端信息,识别用户。

IOCP使用OVERLAPPED结构进行异步、非阻塞I/O,在基于IOCP的输入、输出操作时必须带有一个指向OVERLAPPED结构的指针参数。工作线程可以得到这个参数,但是通过这个参数不能确定I/O的操作类型(READ、WRITE、ACCEPT)。通过上面的分析,我们可以扩展OVERLAPPED结构,使其包含所需的操作类型等用户跟踪信息,这样我们在工作线程中利用CONTAINING_RECORD取出扩展的数据结构,就可以确定操作类型。

2.2数据包重排序

虽然IOCP是严格按照先进先出(Fist In First Out,FIFO) 处理I/O请求,但是,因为工作线程是多线程的,可能导致实际I/O请求的完成顺序不确定。例如三个工作线程A、B、C依次从完成端口取出“数据包1、数据包2、数据包3”,由于三个独立线程工作情况的不确定性,可能处理完的顺序是“数据包3、数据包1、数据包2”等各种情况。针对这个问题,通过对I/O内存增加顺序号,并按内存顺序号依次处理,对内存号不符合当前要处理的顺序号要求时,先将该I/O内存保存。

2.3系统内存资源管理

在基于IOCP的北斗广域差分数据播发平台中需要给每个合法的客户端连接分配一个内存空间,用于存储连接客户端的地址和SOCKET等信息(统称单句柄数据),当该连接断开时需要及时释放相应的内存资源。在北斗播发平台,大规模、高并发的用户请求将导致频繁的内存分配、释放,这种情况非常占用系统资源。针对这个问题,可以通过内存池的方法来解决,事先创建指定数量的单句柄数据内存块,然后将其全部放入一个空闲队列中,当有新的连接请求时,首先看空闲队列中是否还有可用的单句柄内存块:如果有,则将第一个可用的单句柄数据内存块取出使用;否则向系统申请一个单句柄数据内存块。在断开用户端连接,需要释放单句柄内存块时,首先判断空闲队列是否已满,如果未满,将单句柄内存块清空后存入队列;否则释放该内存块。

在播发平台中,需要高频率地接收、发送数据,每一次接收、 发送数据都要申请一块用于存放将要发送或接收的数据、数据长度、操作类型等(统称单I/O数据)内存块。这种情况也涉及到内存块的频繁分配与释放,也将造成系统资源的极大浪费。针对这个问题,我们可以采用单I/O数据内存池管理的方法来解决。

2.4多线程响应用户的连接

在典型的IOCP模型中,在主线程中调用阻塞的accept() 函数接受用户的连接,然后把新建的连接套接字绑定到完成端口。在基于IOCP的播发平台,使用单线程响应用户的连接请求, 无法满足大规模、高并发的用户访问需求。这个问题的解决方法是在主线程投递指定数量的异步、非阻塞的Accept Ex I/O请求, 利用IOCP机制在工作线程中处理用户连接请求,实现多线程并发处理用户连接请求,提高用户连接的响应速度。

3基于IOCP的北斗播发平台设计

3.1北斗播发平台的数据流

北斗播发平台的设计需要满足上亿注册用户、千万级同时在线用户的服务,这样大规模的用户量,单台服务器是不可能满足需求的。根据实际情况,这里打算采用服务器集群的方式来实现北斗播发平台,我们通过设计高性能的基于IOCP的单台北斗播发服务器,达到减少所需的服务器数量,降低整个系统的硬件成本目的。图2是北斗广域差分数据播发平台的数据流程图,这里我们专注研究北斗广域差分数据播发服务器的单台服务器性能。

3.2单台服务器的IOCP通信设计

3.2.1 IOCP的主要数据结构设计

(1)CIOCPBUFFER结构

该结构是对OVERLAPPED结构的扩展,其中n Sequence Nu mber字段用于数据包重排序;n Operatioon字段用于确定完成I/ O包的操作类型。

(2)CIOCPContext

为每一个新建立的用户分配一个CIOCPContext结构的内存块, addr Local字段保存连接的本地地址;addr Remote字段保存连接的远程地址,该字段用于用户端信息的识别;n Read Sequence 、 n Current Read Sequence、p Out Of Order Reads三个字段和CIOBUFFER的n Sequence Number字段共同作用完成数据包重排序。

3.2.2 IOCP的工作流程介绍

程序的工作流程如图3所示。

主线程首先程创建完成端口,然后创建侦听套接字并关联到完成端口,最后启动侦听线程。

侦听线程投递指定数量的接受I/O,创建指定数量的工作线程,创建事件数组,处理程序运行中的各种事件,工作线程通过get Quened Completion Status获取完成的I/O,针对不同类型的操作,调用相应的函数处理。

3基于IOCP的北斗播发平台测试

3.1测试环境

6台Intel(R)Core(TM)i5-2520M CPU ·2.5GHz 2.50GHz 4G内存笔记本6台。一台作为服务器,另外5台作为测试用户终端。 每个客户端可以循环发起2000个TCP连接模拟用户服务请求。 服务器端开启8个工作线程处理IOCP的I/O完成包。

3.2测试结果

服务器端可以在1秒内完成5个客户端模拟的8000用户连接请求,并可以进行简单的数据通信。

4结束语

【播发平台】推荐阅读:

逻辑平台07-14

融资平台07-14

平台软件07-15

咨询平台07-21

攻防平台05-11

维修平台05-13

平台网纹05-13

三维平台05-15

平台安全05-16

学习平台05-16

上一篇:提高犊牛的存活率下一篇:专家研究