CN1630236A - 非实时局域网广播通讯方法 - Google Patents
非实时局域网广播通讯方法 Download PDFInfo
- Publication number
- CN1630236A CN1630236A CN 200410019236 CN200410019236A CN1630236A CN 1630236 A CN1630236 A CN 1630236A CN 200410019236 CN200410019236 CN 200410019236 CN 200410019236 A CN200410019236 A CN 200410019236A CN 1630236 A CN1630236 A CN 1630236A
- Authority
- CN
- China
- Prior art keywords
- user
- thread
- router
- data
- server
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Images
Landscapes
- Data Exchanges In Wide-Area Networks (AREA)
- Information Transfer Between Computers (AREA)
Abstract
本非实时局域网广播通讯方法包含若干服务器及其一套相关的软件集成。软件集成有软件块的工作流程、服务流程、户下载块的工作流程。该件集成由一个简单的终端用户程序和若干运行于服务器上的服务构成。包含若干服务器的物理网及其一套相关的软件程序集成;此外,对于具体不同构造物理局域网,有若干特定设备改进和要求。服务器/用户终端机及软件集成基于逻辑局域网中,独立于具体物理网,因此适用于各类型网络。本发明的特点是:对广域网接口带宽得到更有效地利用;并提高网络的效率;有效利用网络的通信能力。能进一步扩展可存储文件种类,使本发明能应用于不那么常见的文件,并近一步提高效率。
Description
技术领域
本发明属于网络广播通讯技术,特别涉及一种非实时局域网广播通讯方法。
背景技术
目前互联网络通讯在繁忙时经常发生网络壅塞现象。尤其对很大的数据量,多个用户几乎在同一时间范围内同时下载,会出现通讯瓶颈问题,表现出通讯效率很低。提高通讯效率的办法如增加带宽等,但也是有极限的。目前有欧洲专利是在网络骨干服务器上统计通讯数据频率,用扩充的内存缓冲存储常见数据(越常见数据被保存时间越长)来提高通讯效率。但也不是从跟本上解决通讯瓶颈问题。
发明内容
本发明的目的是提供一种非实时局域网广播通讯技术方法,充分利用非实时和足够数量的终端用户两个条件,在英特网/局域网实现巨量数据的高速下载。从而实际上消除英特网上常见巨量数据通讯的少量提供方和广大接受方的通讯瓶颈问题。
目前网络下载是P2P模式,用户A和用户B分别要求下载同一个大文件,相同的数据会在不同时刻重复传送,哪怕A和B发出请求的时间差不多。
本发明是一种附加于拥有相当数目终端用户局域网的大文件下载服务系统(小文件增益率较低但总效率仍远高于现行网络)。其主要特征是一种特殊的,基于UDP(用户数据报协议)的服务器面向终端机的网络广播。
本发明的基本原理是:管理员级别程序能在局域网实现广播通讯,即同一个数据包经一个广播发送,所有愿意接收该数据包的终端用户都能够收到。这就是并行通讯相对P2P(点对点)通讯的效率放大缘故。当然前提是有相当数目的用户愿意接收该数据包。对于拥有一定数量(几百以上)的终端用户的局域网,在一定时间范围内(一天以上),从统计角度而言,用户选择下载的重复率是很高的。这一点对于网络上带宽要求最高的影视节目尤其如此。此外符合条件的下载有各类出版物(尤其是定时出版物如流行报刊杂志等)。
本发明设计包含若干服务器及其一套相关的软件集成。
该软件集成由一个简单的终端用户程序和若干运行于服务器上的服务构成。此外,对于具体不同构造物理局域网,有若干特定设备改进和要求。服务器/用户终端机及软件集成基于逻辑局域网中,独立于具体物理网,因此适用于各类型网络。
对于具体物理网(常见的如ADSL网-非对称数字用户环线网),在某个环节上(路由器),广播通信可能是非常不经济的,应用本发明需要特殊路由器支持。该特殊路由器中CPU(中央处理器)要运行额外处理指令。
一种非实时局域网广播通讯方法,其特征在于:
包含若干服务器的物理网及其一套相关的软件程序集成;
其包含若干服务器的物理网是由英特网总站服务器连接的若干个局域网内的路由器,每个局域网的路由器联接若干服务器,路由器还连接各个终端用户;其中的路由器是带有CPU中央处理器路由器;
其软件程序集成为:
有软件块的工作流程;
总站服务器上的服务程序-网页-连同数据库程序一直运行,每个局域网中有一个配分程序也一直运行,并和数据库程序保持实时更新;服务内容-大文件-位于每台服务器的大容量储存器上;每个正在提供下载的服务内容对应一个运行于该服务器上的派分程序;正在使用本发明下载的用户机上有一个用户下载程序,该用户下载程序对于每个下载会调入一个下载任务块;
本发明的一个服务流程由用户引起;
1;用户访问总站网页;
2;网页服务程序取得用户实时资料;
3;用户通过总站网页流览数据库;
4;用户选择某个服务内容(大文件)要求下载;
5;总站服务程序根据用户实时资料从数据库找出对其所属局域网中对应该服务内容的服务器资料;
6;总站服务程序向用户机器上的下载用户程序返回服务器资料;
7;总站服务程序启动用户机器上的下载用户程序的一个下载任务,向用户报告任务初始化完成;
其中5部分可能含以下额外步骤;
1;若用户所在局域网不存在该服务内容;
2;总站服务程序从数据库中检查用户所在局域网的服务器多余空间;
3;若没有服务器有多余空间,则优化地(如最长时间无下载或累计下载人次最少)删除可删内容;
4;若服务器A有空间,则找出其它局域网中有该服务内容的服务器B;
5;总站服务程序启动从服务器B向服务器A调入该服务内容的一个调配程序;
6;当调配程序成功初始化,总站服务程序可继续,否则返回错误;
在用户终端机上的软件流程是;
1;用户启动下载程序或者总站服务程序激活该程序;
2;总站服务程序初始化下载任务后;
3;只要用户不干预(终止),下载任务一直运行于背景下;
4;下载任务定时向对应服务器的发出待下载数据信息;
5;下载任务一直倾听UDP广播;
6;若UDP数据包是所要的数据,展开该数据包;
7;下载任务随时更新已下数据树记录;
8;若服务内容完全下载,下载任务结束;
9;若所有下载任务结束,若用户仍在访问总站网页,则继续待命,不然退出;
对应局域网服务器上软件流程是:
1;服务器启动同时,服务器配分程序随之运行;
2;服务器配分程序初始化,和总站数据库建立实时更新;
3;总站服务程序应用户要求更新该局域网中某服务内容的需求;服务器配分程序随之对该更新做反应;
4;若该服务内容已又对应派分程序,服务器配分程序只需更新自己的记录,反之,服务器配分程序启动一个新的派分程序来分发该内容;
5;服务器配分程序保持对所有运行中的派分程序监视,和总站数据库保持实时更新;
6;派分程序保持监听请求入口,随时更新下载数据树(略去调配程序特例的复杂性);
7;派分程序优化分发服务内容的数据包,进行广播发送;
8;若派分程序满足所有用户对该服务内容的下载请求,派分程序退出;
用户下载块的工作流程是:
1.用户下载程序调入用户下载块,并传入任务参数派分程序所在IP/PORT/ID/SIZE;
2.检查硬盘,若对应该ID文件已部分存在(比如上一次用户中途终止或其它意外)就以此产生用户下载块的文件数据,不然产生一个全新文件数据(无内容);
3.以2中文件数据(无内容或有部分内容)初始数据树;
4.启动辅助线程,在线程初始化时和派分程序建立下载反馈通道(P&P);
5.辅助线程将定时检查数据树,以INDEX元形式表示下载状态;
6.辅助线程将定时向派分程序反馈压缩后的下载状态;
7.辅助线程在重返5之前会检查主线程是否要求退出,是则辅助线程退出,不然重返5;
8.主线程继续4以后会初始UDP倾听派分程序的IP/PORT;
9.主线程保持倾听UDP(超时无信号会退出);
10.若收到数据包,主线程先检查错误,无错包进行RAID还原;
11.主线程对从顺序而言遗漏包尝试RAID合成,该合成可能需要从已下文件数据中读某些相关数据段;
12.主线程对新得到的数据包更新数据树,然后将新包数据写入用户下载块的文件数据;
13.主线程判断是否可以退出,退出条件是所有数据都已下,或用户要求终止;
14.若不退出,主线程返回9;
15.若退出,主线程先存盘,然后要等到辅助线程已经ACK推出才能退出;
派分程序的工作流程是:
1.派分程序由配分程序启动;
2.派分程序根据初始参数读入文件;
3.派分程序根据读入文件初始数据树;
4.派分程序启动用户反馈线程;
5.派分程序启动UDP广播线程;
6.用户反馈线程初试化时要建立P&P接口来接受用户反馈;
7.用户反馈线程保持倾听反馈接口(超时无信号会退出);
8.用户反馈线程得到用户反馈数据包,要先解压;
9.用户反馈线程将用户下载状态(INDEX元形式)更新到数据树;
10.用户反馈线程判断是否可以退出,该变量由主线程设置;
11.若不退出,用户反馈线程返回6;
12.UDP线程初试化时要建立UDP接口来广播;
13.UDP线程判断是否可以退出,该变量由主线程设置;
14.若不退出,UDP线程检查待发送INDEX流,无则IDLE一些时间,返回12;
15.UDP线程从INDEX流以RAID数取出一组INDEX,INDEX数不足情形就是所有INDEX;
16.UDP线程根据14中INDEX从文件数据读入对应数据段;
17.UDP线程对15中那组数据段进行RAID,段数不足所选定的RAID数时用空数据段顶替;
18.UDP线程按顺序将RAID后的数据包用UDP发送,特例时的空段RAID后不空者(取决具体RAID算法)也要发送,用户段RAID还原时会扔掉空数据段的;
19.UDP线程返回12;
20.主线程从4继续,要等到用户反馈线程和UDP线程初试化完成后,取得反馈接口和UDP接口设置,初始化优化控制块,和母程序(配分程序)建立联系;
21.主线程实时从配分程序处得知UDP速度参数,新加入用户ID;
22.主线程检查数据树,更新该文件下载情况,向配分程序返回下载状态;
23.主线程从21中数据树现况,优选法下一步待发INDEX,并放入14中的INDEX流;
24.主线程判断是否可以退出,退出条件是数据树表示无用户在等待数据;
25.主线程开始退出,要等到配分程序ACK自己最后下载状态,用户反馈线程和UDP线程ACK(应答)退出后,才能退出。
所述的物理网,由广域网接口连接路由器,路由器连接若干服务器,每个服务器连接有超大容量的存储器,路由器连接电缆局域网路由器,电缆局域网路由器连接网络管理服务器,电缆局域网路由器通过电缆连接若干用户终端。
所述的物理网,由广域网接口连接路由器,路由器连接若干服务器,每个服务器连接有超大容量的存储器,路由器连接局域网路由器和广播路由器,局域网路由器连接网络管理服务器,局域网路由器和广播路由器分别连接多个ADSL路由器,每个ADSL路由器连接若干用户终端。
所述的物理网,由广域网接口连接路由器,路由器连接若干服务器,每个服务器连接有超大容量的存储器,路由器连接局域网路由器,局域网路由器连接网络管理服务器和卫星天线发射台,局域网路由器和连接多个ADSL路由器,每个ADSL路由器连接若干用户终端;
所述的ADSL路由器,由高带宽通讯线和高带宽UDP线连接路由器,路由器的CPU及RAM连接广播回路和信号分配回路,路由器的CPU及RAM、广播回路和信号分配回路同时连接高速分路,高速分路再连接低带宽电话线,低带宽电话线连接用户终端。所述的ADSL路由器的CPU及RAM通过数据线和控制总线连接信号分配回路。
本发明的特点是:对于本发明适用的常见大文件(特定条件下可推广之小文件),和现况相比,本发明的改进是:
a.使用大容量存储器将常见文件保存在服务器上,使宝贵的广域网接口带宽得到更有效利用;
b.使用广播方式以最优化方式向用户提供大文件下载,越大,越常下载的文件在用户越多的局域网得到越高的并行度,即相对说来效率提高越多;
c.终端机/服务器上自动下载管理程序充分利用用户对大文件下载实时性不介意条件,在方便用户的同时,尽可能提高网络通讯的并行度,即更有效利用网络的通信能力;
d.由于将大文件尽可能并行下载,综合而言,使用本发明的局域网能有更多的带宽用于非常见数据通信;
e.将若干使用本发明的局域网并网,由一个统一的总站服务器管理,能进一步扩展可存储文件种类,使本发明能应用于不那么常见的文件,近一步提高效率;
附图说明
图1表示了基于本发明的网络总体概况。
图2是电缆局域网的情况,
图3是ADSL局域网的情况,
图4是卫星微波下行/ADSL或播号上行混合局域网的情况。
图5是对现有ADSL路由器的最简洁改进。
图6是对现有ADSL路由器的更复杂改进。
图7从数据流向的角度表示了改进2实际上是两重信号分配,且新一重是特殊的多频道N通广播。
图8是总站服务器上的服务程序(网页)连同数据库程序一直运行,每个局域网中有一个配分程序也一直运行,并和数据库程序保持实时更新。
图9所示,N用户通过和总站服务程序交流取得下载服务信息,并启动下载。
图10是用户下载块,服务派送块和优化控制块的工作原理程序。
具体实施例
图2-4有一个共同点,即服务器群及大量可接受广播信号的终端机群。位于广域网中的总站服务器运行一个服务程序(网页)和数据库程序,(数据库程序可以运行在另一台服务器上)。每个局域网中有一个配分程序运行于某一个服务器上。配分程序了解该局域网所有服务内容(大文件)的存储情况,并和总站数据库保持实时更新。每个服务内容(大文件广播下栽)对应一个派分程序。配分程序负载启动派分程序,并实时监控它们。终端用户通过访问总站网页(间接访问总站数据库)来取得可下内容情况。终端用户由总站网页给出下载请求。此时,若用户终端机上没有下载用户软件,总站网页会要求用户下载该软件(一次性),若该用户尚未运行该用户软件,总站网页会启动它,总站网页返回对应该服务内容的派分程序情况,用户软件初始化一个下载任务。
本发明核心是下载任务模块(同时运行于N个用户终端机上)和配分程序间高效并自动纠错的通信。为实现这一目的,局域网必须附加若干台服务器,其中一台须有高速广域网接口。对于任何局域网内的面向终端用户P2P优化的桥式连接(如ADSL路由器)必须加以一定改进防止路由器被广播通信堵塞从而抵消本发明的增益。
下面就列举的三种最常见物理局域网,逐一介绍硬件细节。
电缆局域网如图2所示,每个电缆拖带若干(几十至几千)用户,若干电缆和一个网络管理服务器经一个路由器连接成局域网,若不用本发明服务,该路由器直接连通广域网即可。如无意外设置,电缆局域网用户始终共享上下行带宽。
为实现本发明服务,若干服务器要用高速连接和上述路由器如图构成回路,使大量广播信号能直接下行。 每个服务器拥有越大越好的存储器来保持常见下载文件。网络设置成使其中一台服务器有最大广域网的带宽,配分程序即运行在该服务器上。这一点额外硬件对任何应用本发明的各类型局域网(如下面的ADSL网和混合网)都是一样的。
ADSL局域网如图3所示,用户的ADSL电话线接入中心的ADSL路由器,一般每个路由器可拖10-80终端用户。一般一个典型ADSL局域网要有两层路由器才有一定用户规模。和电缆网一样,ADSL局域网也需要一台网络服务器做管理。若不用本发明服务,最顶段路由器直接连通广域网即可。
和电缆网不同,ADSL用户始终是独享自己ADSL电话线的带宽的。因此现行的普通ADSL路由器的数据传送是单通的(应ADSL支持协议通常都是P2P形式),结果广播数据在ADSL路由器内是一次一次的发送给每个ADSL用户的。这样一来,由于广播通信造成的数据风暴会严重堵塞ADSL路由器。
图5表示了对现有ADSL路由器的最简洁改进。即使用能动态工作于单通与全通两种模式下的集成电路搭建ADSL路由器中的信号分配电路。然后设置ADSL路由器中CPU指令,让它在遇上广播数据包时,将信号分配电路设成全通,其它时候单通。图5表示一个ADSL路由器为若干个用户服务的原理。每个用户段的ADSL解调器和局中心的一个ADSL解调器通过电话线动态连接,每个局中心ADSL解调器是路由器的一个外围IO设备(低端)。路由器的高端通向局域网络内高一级的路由器。在路由器内部,高端和低端的每一个设备把数据包按先进先出(高级一点路由器每个IO设备都有自己缓存)的原则读写于内存。通常ADSL的通信协议都是P2P,故CPU控制下通信以单通为主,即任何时刻只有一个低端设备和高端交换数据。假如总线为100M(bps),ADSL实用带宽为1。5M(bps),存在60个低端设备本发明广播就会堵塞路由器。采用本发明的路由器需增加共享内存(正比于低端设备数),使广播数据包能一次复制到所有低端设备的对应内存,即广播下载是全通。这一点是CPU控制总线分配电路来实现的。
图6表示了对现有ADSL路由器的更复杂改进。从硬件构件来看,和图5没有大的区别,只是UDP包将由专用路由器传入(见图4)。但数据流程上多了一重特殊的来自该特定端口的数据包N通广播(没有网络协议可对应,完全由路由器完成)。路由器中CPU要运行较为复杂的指令,在记录ADSL用户和某个IP(网际协议地址)/PORT(端口)(唯一确认某个派分程序)对话同时,在处理来自该IP/PORT的UDP数据包时,把所有N个有记录的ADSL用户在共享内存中变成N通进行同时读取。使用这种改进ADSL路由器的用户下载程序在退出下载任务时最后和派分程序反馈时要有一个特殊数据包,ADSL路由器CPU见到此包,会将该用户和此IP/PORT对话纪录抹去。
图7从数据流向的角度表示了改进2实际上是两重信号分配,且新一重是特殊的多频道N通广播。
这里需要注意网络通信中广播指P个连接下,来自于其中一个Pi的信号被发送到其余P-1个连接的情况。由于改进2中特殊N通广播需要一个特殊路由表,故这种情况下,用户A必须首先向服务派分程序发出第一个成功请求,路由器该特殊路由表中才产生对应A的路径,然后A才能够得到下载数据包,这一点是比较特殊的。
当然若局域网中的ADSL路由器性能很好,不存在广播风暴问题(同时同效率支持桥式和支点式派送,或内部芯片性能足以处理广播是重复发送),则上述改进都是可省略的。
ADSL或播号混合卫星微波局域网如图4所示,用户上行信号和ADSL/播号局域网一样,下行信号是来自于非常高速的微波卫星信号。上行用户始终独享带宽,下行始终共享带宽。这样和电缆网一样,不需要对硬件作大改进。这种局域网尤其适用本发明,因其直接面对的终端用户数目巨大,而且其上行下行完全分离,若用户上网基本上是下载(绝大多数人除发大电子邮件外基本如此),则播号上行+微波下行能以最低代价充分享受本发明带来的高速共享下载。
最后,由于应用本发明后,共享下行带宽会又有相当高比例是广播通讯,而且相当高比例终端用户在接受这种通信,所以有可能对共享下行带宽进行广播/非广播分频,如用户数目庞大,为增加广播内容种类,可进一步将广播带宽分成若干频道。终端用户的接入解调器改进成能动态倾听不同频道(广播+非广播)。当然在这种超规模用户/服务内容种类时,用户下载程序/配分程序都要有额外功能,会在下一个发明中说明。此时电缆解调器和卫星微波解调器都要有相应改进来支持动态频道,而ADSL路由器倾向于改进2。
以下是主要软件块的工作流程。
如图8所示,总站服务器上的服务程序(网页)连同数据库程序一直运行,每个局域网中有一个配分程序也一直运行,并和数据库程序保持实时更新。服务内容(大文件)位于每台服务器的大容量储存器上。每个正在提供下载的服务内容对应一个运行于该服务器上的派分程序。正在使用本发明下载的用户机上有一个用户下载程序,该用户下载程序对于每个下载会调入一个下载任务块。
本发明的一个服务流程由用户引起。
1。用户访问总站网页;
2。网页服务程序取得用户实时资料;
3。用户通过总站网页流览数据库;
4。用户选择某个服务内容(大文件)要求下载;
5。总站服务程序根据用户实时资料从数据库找出对其所属局域网中对应该服务内容的服务器资料;
6。总站服务程序向用户机器上的下载用户程序返回服务器资料;
7。总站服务程序启动用户机器上的下载用户程序的一个下载任务,向用户报告任务初始化完成;
其中5部分可能含以下额外步骤。
1。若用户所在局域网不存在该服务内容;
2。总站服务程序从数据库中检查用户所在局域网的服务器多余空间;
3。若没有服务器有多余空间,则优化地(如最长时间无下载或累计下载人次最少)删除可删内容;
4。若服务器A有空间,则找出其它局域网中有该服务内容的服务器B;
5。总站服务程序启动从服务器B向服务器A调入该服务内容的一个调配程序;
6。当调配程序成功初始化,总站服务程序可继续,否则返回错误;
在用户终端机上的软件流程是。
1。用户启动下载程序或者总站服务程序激活该程序;
2。总站服务程序初始化下载任务后;
3。只要用户不干预(终止),下载任务一直运行于背景下;
4。下载任务定时向对应服务器的发出待下载数据信息;
5。下载任务一直倾听UDP广播;
6。若UDP数据包是所要的数据,展开该数据包;
7。下载任务随时更新已下数据树记录;
8。若服务内容完全下载,下载任务结束;
9。若所有下载任务结束,若用户仍在访问总站网页,则继续待命,不然退出;
对应局域网服务器上软件流程是:
1。服务器启动同时,服务器配分程序随之运行;
2。服务器配分程序初始化,和总站数据库建立实时更新;
3。总站服务程序应用户要求更新该局域网中某服务内容的需求;服务器配分程序随之对该更新做反应;
4。若该服务内容已又对应派分程序,服务器配分程序只需更新自己的记录,反之,服务器配分程序启动一个新的派分程序来分发该内容;
5。服务器配分程序保持对所有运行中的派分程序监视,和总站数据库保持实时更新;
6。派分程序保持监听请求入口,随时更新下载数据树(略去调配程序特例的复杂性);
7。派分程序优化分发服务内容的数据包,进行广播发送;
8。若派分程序满足所有用户对该服务内容的下载请求,派分程序退出;
本发明的技术核心是局域网内的并行发送。其具体原理是一种特殊的数据广播。和普通广播不同,对于某一个特定用户而言,广播是无序的。任务的结果是是否收到所有数据。这一特性使得派分程序不可能是普通意义上的发送后不管的广播。并行的特性又要求派分程序以集合的概念来对待用户的请求,而不是一个又一个地去满足每一个用户的请求。
以下进一步详细叙述实现高并行度下,自动纠错广播下载的技术细节。
如图9所示,N用户通过和总站服务程序交流取得下载服务信息,并启动下载。每个用户可同时下P个下载。每个局域网有一个配分程序来管理K个派分程序,配分程序负责实时更新总站数据库。每个派分程序对应一个服务内容(下载文件),每个派分程序同时服务于L个需要该文件的用户。局域网A的缺漏文件(局域网B有该文件)由一个调配程序从B调入A。
A线下行通信是高密度RAID(冗余阵列分配)数据广播,黑色上行通信是L*稀疏密栽INDEX(序号)数据更新。后者就某个用户而言是很稀疏,但若L很大,净密度也可能很大。
B线通信是实时更新,但数据量极其小。
C线通信是几台服务器间,或同一台机器,通信量又极其小。
D线,E线是一次性/偶尔通信。
对照图9,只有A线通信不同一般,是本发明的关键。
下面详细介绍本发明对于一个特定服务的最关键步骤,即一个派分程序将特定巨量数据向Q个等待的终端用户派送。派分程序抽象地将该巨量数据分成X个数据包,每次以UDP协议向局域网广播一个包。对于某一个具体终端用户而言,特定服务的完成是该用户收到所有X个数据包。对该派分程序而言,特定服务的完成是没有任何用户在等待属于该巨量数据的任意一个数据包。
为简单起见,假定某特定服务对应的巨量数据在所讨论的时间段内完全存在于局域网的数据缓冲中,有N个用户在任意不同时刻要求该特定服务,其间没有取消,此巨量数据依2K的数据包大小进行打包,若无RAID分配,则共有(数据总长度+2K-1)/2K个包,若有RAID分配,总包数应等比例上升。假定局域网速度令每包发送消耗时间T,讨论时间段即N个用户都得到满足>=总包数*T,且仅在最理想化条件下取等号。
实现本发明的核心派分程序共分三大块,它们是用户下载块,服务派送块,优化控制块。
若用户同时下载几个文件(不可能相同),每个文件下载块对应一个任务,即用户下载块以不同的参数互不干扰运行。服务派送块,优化控制块构成派分程序(服务器)主体,一个服务派送块通信于N个用户终端机上的对应用户下载块。优化控制块根据N个用户的更新情况和下载情况,优化控制服务派送块的派送。
程序设计的原则是尽可能高的并行度,低遗漏率/重复派送率,同等条件下尊重时间优先。此外尽量允许在整个该局域网更灵活的下载调节。
图10详细表示用户下载块,服务派送块和优化控制块的工作原理;
用户下载块的工作流程是:
16.用户下载程序调入用户下载块,并传入任务参数派分程序所在IP/PORT/ID/SIZE;
17.检查硬盘,若对应该ID文件已部分存在(比如上一次用户中途终止或其它意外)就以此产生用户下载块的文件数据,不然产生一个全新文件数据(无内容);
18.以2中文件数据(无内容或有部分内容)初始数据树;
19.启动辅助线程,在线程初始化时和派分程序建立下载反馈通道(P&P);
20.辅助线程将定时检查数据树,以INDEX元形式表示下载状态;
21.辅助线程将定时向派分程序反馈压缩后的下载状态;
22.辅助线程在重返5之前会检查主线程是否要求退出,是则辅助线程退出,不然重返5;
23.主线程继续4以后会初始UDP倾听派分程序的IP/PORT;
24.主线程保持倾听UDP(超时无信号会退出);
25.若收到数据包,主线程先检查错误,无错包进行RAID还原;
26.主线程对从顺序而言遗漏包尝试RAID合成,该合成可能需要从已下文件数据中读某些相关数据段;
27.主线程对新得到的数据包更新数据树,然后将新包数据写入用户下载块的文件数据;
28.主线程判断是否可以退出,退出条件是所有数据都已下,或用户要求终止;
29.若不退出,主线程返回9;
30.若退出,主线程先存盘,然后要等到辅助线程已经ACK推出才能退出;
派分程序的工作流程是:
26.派分程序由配分程序启动;
27.派分程序根据初始参数读入文件;
28.派分程序根据读入文件初始数据树;
29.派分程序启动用户反馈线程;
30.派分程序启动UDP广播线程;
31.用户反馈线程初试化时要建立P&P接口来接受用户反馈;
32.用户反馈线程保持倾听反馈接口(超时无信号会退出);
33.用户反馈线程得到用户反馈数据包,要先解压;
34.用户反馈线程将用户下载状态(INDEX元形式)更新到数据树;
35.用户反馈线程判断是否可以退出,该变量由主线程设置;
36.若不退出,用户反馈线程返回6;
37.UDP线程初试化时要建立UDP接口来广播;
38.UDP线程判断是否可以退出,该变量由主线程设置;
39.若不退出,UDP线程检查待发送INDEX流,无则IDLE一些时间,返回12;
40.UDP线程从INDEX流以RAID数取出一组INDEX,INDEX数不足情形就是所有INDEX;
41.UDP线程根据14中INDEX从文件数据读入对应数据段;
42.UDP线程对15中那组数据段进行RAID,段数不足所选定的RAID数时用空数据段顶替;
43.UDP线程按顺序将RAID后的数据包用UDP发送,特例时的空段RAID后不空者(取决具体RAID算法)也要发送,用户段RAID还原时会扔掉空数据段的;
44.UDP线程返回12;
45.主线程从4继续,要等到用户反馈线程和UDP线程初试化完成后,取得反馈接口和UDP接口设置,初始化优化控制块,和母程序(配分程序)建立联系;
46.主线程实时从配分程序处得知UDP速度参数,新加入用户ID;
47.主线程检查数据树,更新该文件下载情况,向配分程序返回下载状态;
48.主线程从21中数据树现况,优选法下一步待发INDEX,并放入14中的INDEX流;
49.主线程判断是否可以退出,退出条件是数据树表示无用户在等待数据;
50.主线程开始退出,要等到配分程序ACK自己最后下载状态,用户反馈线程和UDP线程ACK(应答)退出后,才能退出;
本发明核心程序在微软0S(操作系统)局域网中试验,实际增益与预计相符。假定大文件已在局域网中中某台服务器上,N个用户从有相似网络接口的服务器分别在任意T时间段下载该文件,不使用本发明,合计下载时间是K。试验表明任意时间若有N>10用户下载,则服务器下行带宽耗尽,有若干用户会持续得到连接错误,所以K是在任何时间N<=10情况下取得。同样情况下若使用本发明,合计下载时间是T2-T1+P,P是1∶1下载时间,T1是第一个开始下载时间,T2是最后一个开始下载时间。结果是K约等于N*P。这里要注意到使用本发明时,不会有N<=10的限制。真正的限制来自于当合计用户反馈信号量接近文件量时,这需要N很大和下载有一定错误率,由于条件限制,没能验证该特性。
本发明除引入无序但基本连续(不是完全没有顺序,是不保证大文件下栽一定是从头到尾)广播外,另外还有使用RAID和数据树来尽可能减少用户反馈给服务器的通信量。现在网络质量虽很稳定,一般还有Q=10^-3以下的随机错误率(如数据包在线路上损坏,用户机内部通信随机过忙等等),一级RAID能将错误率(需要重传)降至约常数*Q^2,这样一来,以数据包2K大小为例,一个几百兆的大文件只有至多10个左右错误包,这样一来使用户极少有因随机错误而必须的反馈。用户若有其它错误(如断电,用户机其他软件错误导致下载任务终止,用户因某种原因暂停等等),需要重传的数据包是连续的,理论上可证明使用数据树表示这些连续包的INDEX在数量级上是最优化的(压缩)。
使用数据树的额外好处是针对N用户可以有方便良好的算法来给出优化的下载INDEX序列。
附录:
ADSL的几种协议:
局域网(RFC1483-基于ATM(异步传输模式)的桥以太网协议)驱动支持RFC-1483协议;广域网(RFC2364-基于ATM的点对点协议,RFC216-基于以太网的点对点协议)驱动支持RFC-2364和RFC-216协议;
相关US专利:
6,343,072
6,366,583
6,618,353
本专利中数据树与一般常见树不同的特征:
1.数据树以B元树的形式对一个大文件进行编序,叶单元唯一对应一个序号数据包;
2.数据树的非叶单元一般包含若干个子单元,不满非叶单元只可能是该级别非叶单元的尾单元;
3.数据树的叶单元必定是同一级别;
4.数据树的非叶单元(满)最终包含叶单元的总数是B^K,这里K是级别差;
5.数据树的B元值应随RAID,即RAID设置B个包变换成传B+RAID级数个包,
注解:
1.P2P(Peer-Peer)指任意两台计算机之间的有连接的通讯。
2.FTP,TCP/IP是最普遍的基于连接的通讯协议。
3.UDP是最普遍的不基于连接的通讯协议,因为该类通讯不需要连接,所以能实现广播。
4.欧洲应该已有在路由器上用缓存来减少英特网通讯从而优化用户下载的专利。
5.数据包是网络通讯的最小单位。一般在半K-128K之间。
6.服务器环是微软视窗服务器的一种特殊配置,一般由若干台服务器组成,对外共用一个IP地址,好比将N台服务器的通讯带宽叠加到一台机器上。
7.数据缓冲通常指计算机的RAM,各种各样的计算机中,RAM被普遍应用,以加快CPU和硬盘的通讯速度。在本发明中,和服务器(们)直接相连位于局域网内的巨量数据储存器就起着和RAM相同的作用。每位用户好比是CPU中的某个程序,英特网则好比是硬盘。
8.RAID是数据传输中常见的一种防错误方法,尤其常见于存储装置。一个简单比喻是,A向B传输4个不同的数值,B必须全部收到才算成功。传输过程存在随机错误,使每个传输有一定的错误/遗漏率Q。RAID即是在4个原来传输的基础上再加传4个不同的数值的和,在不计溢出错误的前提下,A向B的共计5个传输中,B只要收到任意4个,B就能推算出正确的4个数值。由于本发明是A向N个B发送Y个数据,假定Q是极小数,无RAID条件下,Y个发送的整体成功率是(1-Q)^Y约1-Y*Q,若有一级RAID,Y+1个发送的整体成功率是(1-Q)^(Y+1)+(Y+1)*Q*(1-Q)^Y约1-Y(Y+1)*Q^2/2。详细RAID原理请参照有关教科书,此处Y远小于本发明对应巨量数据的总包数X,可见合理RAID能使针对N用户的Y发送失败率从Q变成Q^2。
9.最理想化条件指用户们在同一时刻提出针对同一个巨量数据的申请,没有用户终端会遗漏接受。很显然最理想化条件不会存在,个别时间性很强的巨量数据会接近前者,在深更半夜用户终端会接近后者,通常情况下两者都会严重偏离最理想化条件,呈现随机分布。
10.数据树是一种在最常见数据结构-树的基础上针对本发明进一步延伸的专用结构。试验中采用最普通的两元树结构对总长度为S(BYTE)的巨量数据作INDEXING(编码),若取数据包中数据块长度为正整数L,则根编码取0至(S+L-1)/L-1,从根编码(树的叶单元)向上,每一个母单元的编码数目为对应子单元的一半。数据树的深度D满足2^D>=S,且D是所有令前式成立的最小正整数。事实上还存在更有针对性的数据树结构,由于与本发明的核心思想关系不大,故在此省略。
11.母元数指合法树结构中一个单元子集的单元数目,其成员和某一特定单元P满足{根单元->A-B->…->P},注意P不算入该子集。
12.是|否就是两元选择。
13.占位大小(SIZEOF)对于32操作系统,整数一般是32比特(4BYTE)
14.延迟计算是和计算技术中常见硬盘延迟写入相似的一种优化方法。由于对于巨量数据,数据树子单元的数目可能很庞大,同时优化算法基本上不涉及叶单元和邻近底层非叶单元,所以没有必要对这些数目很庞大的单元进行重复操作。偶尔需要某叶单元或底层非叶单元的正确数据时,只需将记录在其母单元中的延迟计算按顺序执行即可。
15.TX是发送时间,对于未曾发送的预设值是计算方法日期0或服务器启动时间,这样就保证未曾发送的时间间隔是最长的。
英文简略语注释:
ACK-应答;
ADSL-非对称数字用户环线;
ATM-异步传输模式;
CPU-中央处理器;
INDEX-序号;
OS-操作系统;
P2P-点对点;
RAID-冗余阵列分配;
UDP-用户数据报协议;
Claims (6)
1、一种非实时局域网广播通讯方法,其特征在于:
包含若干服务器的物理网及其一套相关的软件程序集成;
其包含若干服务器的物理网是由英特网总站服务器连接的若干个局域网内的路由器,每个局域网的路由器联接若干服务器,路由器还连接各个终端用户;其中的路由器是带有CPU中央处理器路由器;
其软件程序集成为:
有软件块的工作流程;
总站服务器上的服务程序-网页-连同数据库程序一直运行,每个局域网中有一个配分程序也一直运行,并和数据库程序保持实时更新;服务内容-大文件-位于每台服务器的大容量储存器上;每个正在提供下载的服务内容对应一个运行于该服务器上的派分程序;正在使用本发明下载的用户机上有一个用户下载程序,该用户下载程序对于每个下载会调入一个下载任务块;
本发明的一个服务流程由用户引起;
1;用户访问总站网页;
2;网页服务程序取得用户实时资料;
3;用户通过总站网页流览数据库;
4;用户选择某个服务内容-大文件-要求下载;
5;总站服务程序根据用户实时资料从数据库找出对其所属局域网中对应该服务内容的服务器资料;
6;总站服务程序向用户机器上的下载用户程序返回服务器资料;
7;总站服务程序启动用户机器上的下载用户程序的一个下载任务,向用户报告任务初始化完成;
其中5部分可能含以下额外步骤;
1;若用户所在局域网不存在该服务内容;
2;总站服务程序从数据库中检查用户所在局域网的服务器多余空间;
3;若没有服务器有多余空间,则优化地(如最长时间无下载或累计下载人次最少)删除可删内容;
4;若服务器A有空间,则找出其它局域网中有该服务内容的服务器B;
5;总站服务程序启动从服务器B向服务器A调入该服务内容的一个调配程序;
6;当调配程序成功初始化,总站服务程序可继续,否则返回错误;
在用户终端机上的软件流程是;
1;用户启动下载程序或者总站服务程序激活该程序;
2;总站服务程序初始化下载任务后;
3;只要用户不干预-终止,下载任务一直运行于背景下;
4;下载任务定时向对应服务器的发出待下载数据信息;
5;下载任务一直倾听UDP广播;
6;若UDP数据包是所要的数据,展开该数据包;
7;下载任务随时更新已下数据树记录;
8;若服务内容完全下载,下载任务结束;
9;若所有下载任务结束,若用户仍在访问总站网页,则继续待命,不然退出;
对应局域网服务器上软件流程是:
1;服务器启动同时,服务器配分程序随之运行;
2;服务器配分程序初始化,和总站数据库建立实时更新;
3;总站服务程序应用户要求更新该局域网中某服务内容的需求;服务器配分程序随之对该更新做反应;
4;若该服务内容已又对应派分程序,服务器配分程序只需更新自己的记录,反之,服务器配分程序启动一个新的派分程序来分发该内容;
5;服务器配分程序保持对所有运行中的派分程序监视,和总站数据库保持实时更新;
6;派分程序保持监听请求入口,随时更新下载数据树(略去调配程序特例的复杂性);
7;派分程序优化分发服务内容的数据包,进行广播发送;
8;若派分程序满足所有用户对该服务内容的下载请求,派分程序退出;
用户下载块的工作流程是:
1.用户下载程序调入用户下载块,并传入任务参数派分程序所在IP/PORT/ID/SIZE;
2.检查硬盘,若对应该ID文件已部分存在(比如上一次用户中途终止或其它意外)就以此产生用户下载块的文件数据,不然产生一个全新文件数据(无内容);
3.以2中文件数据(无内容或有部分内容)初始数据树;
4.启动辅助线程,在线程初始化时和派分程序建立下载反馈通道(P&P);
5.辅助线程将定时检查数据树,以INDEX元形式表示下载状态;
6.辅助线程将定时向派分程序反馈压缩后的下载状态;
7.辅助线程在重返5之前会检查主线程是否要求退出,是则辅助线程退出,不然重返5;
8.主线程继续4以后会初始UDP倾听派分程序的IP/PORT;
9.主线程保持倾听UDP(超时无信号会退出);
10.若收到数据包,主线程先检查错误,无错包进行RAID还原;
11.主线程对从顺序而言遗漏包尝试RAID合成,该合成可能需要从已下文件数据中读某些相关数据段;
12.主线程对新得到的数据包更新数据树,然后将新包数据写入用户下载块的文件数据;
13.主线程判断是否可以退出,退出条件是所有数据都已下,或用户要求终止;
14.若不退出,主线程返回9;
15.若退出,主线程先存盘,然后要等到辅助线程已经ACK推出才能退出;
派分程序的工作流程是:
1.派分程序由配分程序启动;
2.派分程序根据初始参数读入文件;
3.派分程序根据读入文件初始数据树;
4.派分程序启动用户反馈线程;
5.派分程序启动UDP广播线程;
6.用户反馈线程初试化时要建立P&P接口来接受用户反馈;
7.用户反馈线程保持倾听反馈接口(超时无信号会退出);
8.用户反馈线程得到用户反馈数据包,要先解压;
9.用户反馈线程将用户下载状态(INDEX元形式)更新到数据树;
10.用户反馈线程判断是否可以退出,该变量由主线程设置;
11.若不退出,用户反馈线程返回6;
12.UDP线程初试化时要建立UDP接口来广播;
13.UDP线程判断是否可以退出,该变量由主线程设置;
14.若不退出,UDP线程检查待发送INDEX流,无则IDLE一些时间,返回12;
15.UDP线程从INDEX流以RAID数取出一组INDEX,INDEX数不足情形就是所有INDEX;
16.UDP线程根据14中INDEX从文件数据读入对应数据段;
17.UDP线程对15中那组数据段进行RAID,段数不足所选定的RAID数时用空数据段顶替;
18.UDP线程按顺序将RAID后的数据包用UDP发送,特例时的空段RAID后不空者(取决具体RAID算法)也要发送,用户段RAID还原时会扔掉空数据段的;
19.UDP线程返回12;
20.主线程从4继续,要等到用户反馈线程和UDP线程初始化完成后,取得反馈接口和UDP接口设置,初始化优化控制块,和母程序(配分程序)建立联系;
21.主线程实时从配分程序处得知UDP速度参数,新加入用户ID;
22.主线程检查数据树,更新该文件下载情况,向配分程序返回下载状态;
23.主线程从21中数据树现况,优选法下一步待发INDEX,并放入14中的INDEX流;
24.主线程判断是否可以退出,退出条件是数据树表示无用户在等待数据;
25.主线程开始退出,要等到配分程序ACK自己最后下载状态,用户反馈线程和UDP线程ACK(应答)退出后,才能退出。
2、根据权利要求1所述的非实时局域网广播通讯方法,其特征在于:所述的物理网,
由广域网接口连接路由器,路由器连接若干服务器,每个服务器连接有超大容量的存储器,路由器连接电缆局域网路由器,电缆局域网路由器连接网络管理服务器,电缆局域网路由器通过电缆连接若干用户终端。
3、根据权利要求1所述的非实时局域网广播通讯方法,其特征在于:所述的物理网,
由广域网接口连接路由器,路由器连接若干服务器,每个服务器连接有超大容量的存储器,路由器连接局域网路由器和广播路由器,局域网路由器连接网络管理服务器,局域网路由器和广播路由器分别连接多个ADSL路由器,每个ADSL路由器连接若干用户终端。
4、根据权利要求1所述的非实时局域网广播通讯方法,其特征在于:所述的物理网,
由广域网接口连接路由器,路由器连接若干服务器,每个服务器连接有超大容量的存储器,路由器连接局域网路由器,局域网路由器连接网络管理服务器和卫星天线发射台,局域网路由器和连接多个ADSL路由器,每个ADSL路由器连接若干用户终端;
5、根据权利要求3或4所述的非实时局域网广播通讯方法,其特征在于:所述的ADSL
路由器,由高带宽通讯线和高带宽UDP线连接路由器,路由器的CPU及RAM连接广播回路和信号分配回路,路由器的CPU及RAM、广播回路和信号分配回路同时连接高速分路,高速分路再连接低带宽电话线,低带宽电话线连接用户终端。
6、根据权利要求5所述的非实时局域网广播通讯方法,其特征在于:所述的ADSL路由器的CPU及RAM通过数据线和控制总线连接信号分配回路。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100192366A CN100490379C (zh) | 2004-05-14 | 2004-05-14 | 非实时局域网广播通讯方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2004100192366A CN100490379C (zh) | 2004-05-14 | 2004-05-14 | 非实时局域网广播通讯方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN1630236A true CN1630236A (zh) | 2005-06-22 |
CN100490379C CN100490379C (zh) | 2009-05-20 |
Family
ID=34845684
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2004100192366A Expired - Fee Related CN100490379C (zh) | 2004-05-14 | 2004-05-14 | 非实时局域网广播通讯方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100490379C (zh) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100438408C (zh) * | 2006-03-15 | 2008-11-26 | 华为技术有限公司 | 一种实现代理下载的方法、装置及系统 |
CN102291413A (zh) * | 2011-08-31 | 2011-12-21 | 广东威创视讯科技股份有限公司 | 基于互联网的发现协议系统 |
CN102299834A (zh) * | 2011-09-07 | 2011-12-28 | 中国联合网络通信集团有限公司 | 局域网数据共享方法、设备及系统 |
CN102368729A (zh) * | 2011-09-23 | 2012-03-07 | 北京东方网信科技股份有限公司 | 一种在非实时系统上精确网络限速的方法 |
CN105049452A (zh) * | 2015-08-25 | 2015-11-11 | 广东欧珀移动通信有限公司 | 资源下载方式的切换方法、装置及智能终端 |
CN107085925A (zh) * | 2016-12-30 | 2017-08-22 | 佛山亚图信息技术有限公司 | 一种用于学校的地震预警系统 |
-
2004
- 2004-05-14 CN CNB2004100192366A patent/CN100490379C/zh not_active Expired - Fee Related
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN100438408C (zh) * | 2006-03-15 | 2008-11-26 | 华为技术有限公司 | 一种实现代理下载的方法、装置及系统 |
CN102291413A (zh) * | 2011-08-31 | 2011-12-21 | 广东威创视讯科技股份有限公司 | 基于互联网的发现协议系统 |
CN102291413B (zh) * | 2011-08-31 | 2016-03-30 | 广东威创视讯科技股份有限公司 | 基于互联网的发现协议系统 |
CN102299834A (zh) * | 2011-09-07 | 2011-12-28 | 中国联合网络通信集团有限公司 | 局域网数据共享方法、设备及系统 |
CN102368729A (zh) * | 2011-09-23 | 2012-03-07 | 北京东方网信科技股份有限公司 | 一种在非实时系统上精确网络限速的方法 |
CN102368729B (zh) * | 2011-09-23 | 2013-11-27 | 北京东方网信科技股份有限公司 | 一种在非实时系统上精确网络限速的方法 |
CN105049452A (zh) * | 2015-08-25 | 2015-11-11 | 广东欧珀移动通信有限公司 | 资源下载方式的切换方法、装置及智能终端 |
CN105049452B (zh) * | 2015-08-25 | 2018-04-20 | 广东欧珀移动通信有限公司 | 资源下载方式的切换方法、装置及智能终端 |
CN107085925A (zh) * | 2016-12-30 | 2017-08-22 | 佛山亚图信息技术有限公司 | 一种用于学校的地震预警系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100490379C (zh) | 2009-05-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN1154298C (zh) | 分布式网络计算系统及该系统用的信息交换装置和方法 | |
CN1118984C (zh) | 高速分组传输网络的可编程线路适配器和数据分组缓存方法 | |
CN1284095C (zh) | 多处理器系统中的任务分配方法和多处理器系统 | |
CN1025138C (zh) | 动态回叫技术 | |
CN1272946C (zh) | 可伸缩的网络处理器及操作该网络处理器的方法和装置 | |
CN1167020C (zh) | 数据共享方法和终端 | |
CN1204503C (zh) | 用于通信网络的装置、系统及其操作方法 | |
CN1239984C (zh) | Vlsi网络处理器和方法 | |
CN1291747A (zh) | 高速缓存设备及其使用方法 | |
CN101051937A (zh) | 一种基于xml的用户权限管理方法及系统 | |
CN1173528C (zh) | 用于无线电通信系统的接受控制方法和接受控制装置 | |
CN1636341A (zh) | 将数据流按比例多路复用成一个数据流的方法和设备 | |
CN1459208A (zh) | 信息发送方法和信息发送管理装置 | |
CN1695127A (zh) | 网络接口和协议 | |
CN1874321A (zh) | 传送装置和传送方法 | |
CN1286009A (zh) | 联网系统 | |
CN1967488A (zh) | 任务分配方法和任务分配装置 | |
CN1863168A (zh) | 发射和接收系统,发射器,发射发法,接收器,接收方法 | |
CN1711784A (zh) | 用于发送sms以及文本消息的系统和方法 | |
CN1561610A (zh) | 具有智能控制的可变规模的交换机系统 | |
CN1608366A (zh) | 用于交换数据分组或帧的装置和方法 | |
CN1145876C (zh) | 网络系统和网络接口卡 | |
CN1917471A (zh) | 以太网接入装置及其接入方法 | |
CN1275143C (zh) | 数据处理系统及方法 | |
CN1883138A (zh) | 在移动通信系统中用于高速分组数据业务的资源管理方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20090520 Termination date: 20210514 |