学术幻灯片管理解决方案草稿
2012-X-XX发布 2012-X-XX实施
关于本方案
本方案为投标使用草案,于初步沟通需求的基础之上拟定。后续需根据实际情况进一步修正完善细节方面具体内容。此方案中主要分为分析需求以及对于解决方案的概要设计,包含部分通信协议。
关键字解释
服务器:整个系统的核心所在,安装在幻灯室,用于统一管理各个客户端软件,接受幻灯片的上传、会场录像的上传。可配置日程信息,并保存于数据库。根据数据库中日程信息统一调度各个相关客户端。日程信息包括演讲批次、演讲地点、演讲主题、演讲者姓名、演讲者单位、演讲者照片,演讲开始时间与结束时间。
会场端:安装在会场,开启本地监听,用于接受服务器端下发的幻灯片以及会场的实时信息,接受演讲者的操作。
上传端:安装在特定地点,供演讲者统一上传幻灯片,并可查看历史上传信息以及指定幻灯片的版本信息,可下载指定幻灯片(仅可下载自己上传的幻灯片)。
视频端:安装在会场,用于根据服务器下发的信息在会场外LCD显示屏显示会场的日程安排,当前演讲者的个人资料以及当前会场的现场直播信息,并负责将会场现场直播的信息录制为flv文件上传服务器端
项目需求
为满足智能化信息化的需求,学术幻灯片尽量以程序智能化取代人为操作为原则,以节约人力方便使用为目标。具体需求分解为以下几个方面:
n 幻灯片同步传输
实现幻灯室和各个分会场之间幻灯片的自动传输,支持单一幻灯和幻灯片带视频的文件夹传输,自动监测最新提交的幻灯,实现幻灯实时传输
n 幻灯片自动播放
自动显示每个分会场的学术日程,讲者可自动播放演讲幻灯,自动根据日程时间设置讲者倒计时,到时则自动调用打开指定路径下的ppt文件。
n 幻灯片实时转播
可将会场讲者演讲声音及幻灯片实时转播到会场外显示屏,会场外实时显示该会场的学术日程及当前讲者照片、姓名和单位,自动生成演讲者Flv音/视频文件,实现会场的录播效果
数据库设计
1、 会场信息表
字段 |
类型 |
含义 |
RoomID |
int |
会场ID,自增列,主键 |
RoomName |
nvarchar(50) |
会场名称 |
RoomPlace |
nvarchar(250) |
会场地点 |
2、 日程信息表
字段 |
类型 |
含义 |
ScheduleID |
uniqueidentifier |
演讲批次,主键 |
ScheduleTitle |
nvarchar(50) |
演讲主题 |
RoomID |
int |
会场ID,外键 |
LecturerID |
int |
演讲者ID,外键 |
BeginTime |
DateTime |
开始时间 |
EndTime |
DateTime |
结束时间 |
3、演讲者信息表
字段 |
类型 |
含义 |
LecturerID |
int |
自增列,主键 |
LecturerName |
nvarchar(50) |
演讲者姓名 |
LecturerUnit |
nvarchar(250) |
演讲者单位 |
LecturerPhoto |
nvarchar(250) |
演讲者照片,存放照片路径 |
Account |
nvarchar(50) |
账户 |
Pwd |
nvarchar(50) |
密码 |
4、 PPT信息表,仅用于insert操作,不用于update操作
字段 |
类型 |
含义 | ||
ID |
int |
自增列,主键 | ||
ScheduleID |
uniqueidentifier |
外键 | ||
PPTName |
nvarchar(250) |
PPT路径名 | ||
5、 系统参数表
字段 |
类型 |
含义 | ||
ParamName |
nvarchar(50) |
参数名 | ||
ParamValue |
nvarchar(50) |
参数值 | ||
其具体记录如下:
ParamName |
ParamValue |
含义 |
PPTPath |
|
用于保存PPT文件的指定路径 |
ImagePath |
|
用于保存照片的指定路径 |
FlvPath |
|
用于保存flv音视频文件的指定路径 |
6、 账户密码表
字段 |
类型 |
含义 | ||
Account |
nvarchar(50) |
账户 | ||
Pwd |
nvarchar(50) |
密码 | ||
Type |
int |
属于哪一种机器 0 服务器自身使用 1 视频段使用 2 上传端使用 | ||
项目方案
统一采用C#作为开发语言,.net版本采用4.0。采用sqlserver2008作为数据持久化工具,采用VS2010作为开发工具。
一、 统一管理,所有幻灯片以及现场录像由幻灯室统一管理。
功能:
1、 服务器端可配置会场信息,维护会场信息表。
2、 服务器接受管理人员操作,进行演讲者信息配置。维护演讲者信息表。
3、 服务器接受管理人员操作,进行日程信息安排。维护日程信息表。
4、 接收上传端上传文件,保存路径规则如下:PPTPath\演讲批次\PPTName\*。其中PPTName为PPT文件的名称,根据实际取值。如果PPTPath\演讲批次目录下发现已经存在与PPTName同名的文件夹,则服务器将本地的PPTName文件夹重命名,命名规则为PPTName.时间.bak,其中时间精确到秒级。然后重新创建PPTName目录,然后将上传端上传的文件保存至该目录下。
备注:此处使用多级目录的方案主要用于解决附件同名的问题。
5、 服务器接受会场端发起的链接,并且将会场端连接之后上报的ID与其SOCKET存入dictionary中。此处如果发现该ID已经存在于dictionary,则使用update操作,用新的SOCKET取代之前的SOCKET。
6、 服务器根据数据库中的日程信息,自动提前半小时将相关文件传输至对应会场。传输规则为:根据日程信息对照PPT信息表,将所有PPT文件夹传输至会场端。
7、 服务器自动按照日程信息提前十五分钟分钟将演讲者的相关信息发送至会场端,供会场端使用。此处信息包括演讲者登录会场端的账户密码。
8、 服务器自动将当日日程安排信息发送至视频端,供会场外LCD显示屏显示该会场的日程安排。
9、 服务器自动按照日程信息提前十分钟将演讲者资料发送至视频段,供会场外LCD显示频显示演讲者信息,此处资料包括演讲者姓名、单位、照片,以及演讲主题。
10、 服务器接收视频端的flv音视频文件上传,保存于FlvPath目录下。
11、 提供对于各个客户端的统一管理,如对于各个客户端账户密码的管理。
实现:
配置环境:
1、 建议采用ibm3850m2或Dell PowerEdgeR710刀片式服务器。建议采用MD3400磁盘柜,磁盘容量不低于4T,块数不低于四块。(为以后双机热备方案的扩展留下硬件基础,其中RAID 5最少需要三块磁盘。)
2、 建议采用windows server2008操作系统。
3、 采用带音频通道的海康硬盘录像机。
方案设计:
1、 同时侦听8008、8009端口,采用TCP传输协议。服务器端与客户端之间采用长连接。
8009作为文件传输端口,用于与各个客户端文件传输以及图片信息传输。文件传输支持断点续传。
8010作为命令交互端口,如日程信息的下发等。
2、 服务器端对于每个连接采用单独线程处理。(此处因为客户端数量较小,此种方案稳定性以及性能相对较好。)
3、 采用内部制定的协议进行命令交互。具体指令见附录1。
4、 采用内部制定的文件传输命令交互。具体指令见附录3。
5、 提供界面操作,用于管理人员对于除PPT信息表以外的几张表的查看、管理与维护。如提供检索功能,根据会场、时间、演讲者信息查找相应幻灯片或音视频文件。(需登录。)
二、 智能上传,可控上传幻灯片。
功能
1、 上传者须由指定地点使用上传端上传幻灯片。
2、 上传者可查看自己的历史上传信息以及某一具体幻灯片的历史版本(如上传者对一幻灯片做过多次修改且多次上传)。
3、 上传者可下载自己历史上曾上传的某一具体幻灯片
4、 上传者无权限对已经上传的幻灯片进行除下载以外的其他操作,如删除、重命名、移动等。
5、 上传者上传PPT时需要指定演讲批次,此处提供下拉框供选择,下拉框中仅出现该演讲者的尚未开始的演讲。
6、 上传者必须在幻灯片使用时间一小时之前上传幻灯片,过期将无法继续上传幻灯片。
实现
配置环境:
1、 采用正常PC即可
2、 使用windows XP或windows7系统。
方案设计:
1、 初次或重新建立连接之后,向服务器端发送请求账户密码命令,由服务器端统一下发账户密码,缓存于内存中。所有操作均需要登录操作
2、 提供文件上传操作,对于上传的文件类型做检查。(此处支持何种文件还需进一步沟通确定。)
3、 需登录才可操作,账户密码由服务器统一下发,缓存于内存中。
4、 可查看当前登录者所有历史上传信息以及具体指定的幻灯片的各个历史版本,并提供下载功能。
三、 会场智能化
功能:
1、 会场端与服务器建立连接,并主动向其发送自身ID。(会场ID在会场客户端的配置文件中有配置。)服务器负责缓存器,以备后用。
2、 会场端软件根据服务器下发的账户密码等信息,刷新本地账户密码。仅演讲者可登录系统(超级用户除外)。演讲者必须登录会场端才可进行相关操作。
3、 演讲开始,演讲者可通过软件播放幻灯片,而无需自己手动查找幻灯片存储路径。演讲者也可托管,会场端软件自己根据日程信息自动播放幻灯片
4、 演讲者无权通过会场端软件进行除播放幻灯片以外的操作
5、 会场端软件根据日程信息提示演讲者倒计时。
6、 会场端软件根据日程信息,在演讲结束五分钟内自动注销登录状态,并根据服务器下发信息刷新登录的账户密码,供下一个演讲者登录使用
7、 超级用户可登录配置本地存放路径。
实现
配置环境:
1、 采用正常PC即可
2、 使用windows XP或windows7系统。
方案设计:
1、 与服务器保持长连接,如果断开则自动注销登录状态,并给出网络异常的提示,且在后台尝试重连接。重连接成功之后,需要重新登录。
2、 需登录操作,账户密码由服务器统一下发,缓存于内存中。(仅保存最新下发的账户密码信息。)
3、 接收服务器下发的日程信息,并且根据日程信息自动提示演讲者倒计时。
4、 演讲者登录后可进行相应的PPT播放操作。不提供演讲者除播放PPT之外的操作。
5、 演讲结束后,自动注销为非登录状态。
6、 超户可登录设置其会场ID。
四、 会场实时直播
功能:
1、 初次或重新建立连接之后,向服务器端发送请求账户密码命令,由服务器端统一下发账户密码,缓存于内存中。所有操作均需要登录操作
2、 视频端根据服务器下发的信息自动将本会场的日程信息在场外LCD显示器上显示。
3、 视频端根据服务器下发的信息自动将当前演讲者的信息再场外LCD显示器上显示。
4、 视频端自动将会场内信息发送至场外LCD显示器上显示(带音频信息)。
5、 视频端自动于演讲结束后将直播信息录制成flv文件上传至服务器端,供服务器端保存。Flv文件的命名规则为”演讲批次.flv”
6、 提供简单操作,如调整所需显示的视频信号,设置本地flv存放路径,设置演讲者照片信息存放路径。
实现
配置环境:
1、 采用正常PC即可
2、 使用windows XP或windows7系统。
3、 采用海康枪机摄像头,并将其接入网络硬盘录像机的视频输入通道。
4、 采用音频采集设备,具体规格需进一步咨询海康,并将其接入网络硬盘录像机的音频输入通道。
5、 采用LCD显示屏(厂方需提供显示屏驱动软件,如果需要我可代为联系,有朋友做这个。)
方案设计:
1、 初次或重新建立连接之后,向服务器端发送请求账户密码命令,由服务器端统一下发账户密码,缓存于内存中。所有操作均需要登录操作
2、 具有简单界面,其中界面上的画面信息对应外部LCD显示器所需显示的信息,以供LCD显示屏软件直接映射到外部LCD显示屏上。(此处软件由LCD厂商提供)。
3、 用户登录后可设置本地flv存放路径,设置演讲者照片存放路径。
备注:系统中存在超户,可登录到任意台位进行操作。超户的账户密码暂定为admin/admin,可根据需求另行修改。
项目组成员
成员数:4人(包含项目经理)
项目经理:1人
姓名:顾伟伟;工作经验:3年;学历:本科;毕业院校:东南大学;
成员:3人
姓名:朱守涛;工作经验:3年;学历:本科;毕业院校:东南大学;
姓名:陈浩;工作经验:3年;学历:硕士;毕业院校:南京航空航天大学;
姓名:姚强;工作经验:6年;学历:本科;毕业院校:南京师范大学;
附录1:
命令交互协议采用格式:
0x69 0x69 |
包头 |
U8 |
2个字节 |
长度 |
从数据类型码到CRC校验结束的长度 |
U32 |
4个字节 |
命令码 |
|
U16 |
2个字节 |
|
数据部分 |
|
N个字节 |
NN |
CRC16效验,从包头0x69开始到数据部分做校验 |
U8 |
2个字节 |
其中数据部分采用TLV编码结构,tag为U8,1个字节,len为U16,2个字节。其中各个tag值的具体含义见附录2。
数据类型码定义:
命令码 |
含义 |
0x00 0x00 |
心跳信息。长度取0 |
0x00 0x01 |
服务器下发账户密码信息,数据部分为账户密码信息,UTF-8编码。 |
0x00 0x02 |
服务器下发当前演讲者信息,数据部分为演讲者信息,包括演讲者姓名、演讲者单位、演讲者照片。其中演讲者照片,此处数据部分中为其名称。视频端根据接收到的文件名去照片存放路径下寻找以展示。 |
0x00 0x03 |
服务器下发日程信息,数据部分为日程信息。日程信息包括演讲批次、开始时间、结束时间、演讲主题、演讲者姓名、演讲者单位 |
0x00 0x04 |
客户端请求账户密码信息。主要由视频端与上传端使用,首次与服务器建立连接或断线重连之后发起请求信息,等待服务器回复账户密码,并且根据服务器回复的账户密码更新本地内存,用于供用户登录。 |
0x00 0x05 |
上传账户密码,用于服务器鉴权使用。数据部分为客户端唯一标识以及账户密码信息,UTF-8编码。 |
0x00 0x06 |
服务器鉴权结果 |
附录2:
TAG取值 |
含义 |
0x00 |
机器key。上传端为guid,会场端为其ID |
0x01 |
账户 |
0x02 |
密码 |
0x03 |
演讲者姓名 |
0x04 |
演讲者单位 |
0x05 |
演讲者照片信息 |
0x06 |
演讲批次 |
0x07 |
演讲开始时间 |
0x08 |
演讲结束时间 |
0x09 |
演讲主题 |
附录3:
文件传输按照以下步骤传输(仿SMTP协议)
角色 |
内容 |
含义 |
发起方 |
HELLO |
发起方发起会话 |
接收方 |
OK,THIS IS ME |
回复,发送方必须接到该信息才可进行下一步童话 |
发起方 |
类型码 |
此处类型码是指即将传输的文件是属于何种类型 见附录4 |
接收方 |
READY |
接收方表示已经准备好接收 |
发起方 |
传输数据 |
具体规格见附录5,可多次发送。对于大文件,分割多次发送,每次发送不得大于50K。 |
发起方 |
END SESSION REQ |
会话结束请求 |
接收方 |
END SESSION RES |
会话结束响应 |
|
|
|
附录4:
文件传输类型码:
UPLOAD PPT REQ |
上传幻灯片请求,附件内容不分第二次会话,一次性传输 |
DOWNLOAD PPT REQ |
下载幻灯片请求,此后数据部分为所请求的幻灯片的文件名 |
UPLOAD FLV REQ |
上传FLV音视频文件请求 |
DOWNLOAD FLV REQ |
下载FLV音视频文件请求,此后数据部分为所请求的FLV音视频的文件名 |
UPLOAD IMAGE REQ |
上传照片请求 |
附录5:
文件传输数据规格定义:
0x69 0x69 |
包头 |
U8 |
2个字节 |
长度 |
从数据类型码到CRC校验结束的长度 |
U32 |
4个字节 |
数据部分 |
UTF-8编码 |
U8 |
N个字节,见附录6 |
NN |
CRC16效验,从包头0x69开始到数据部分做校验 |
U8 |
2个字节 |
附录6:
文件传输数据部分采用TLV编码,其中tag值为U16,len为U32,value为实际内容。四个字节。含义如下:
TAG取值 |
含义 |
value含义 |
0x01 0x01 |
批次信息(用于幻灯片与附件上传时使用) |
批次信息,UTF-8编码。可为空 |
0x01 0x02 |
文件夹信息 |
当前文件父属文件夹名称,此处为相对路径。根路径为传输时所指定的文件夹,如果指定文件,则此处填写”.” |
0x01 0x03 |
文件类型 |
文件类型, PPT 幻灯片 FLV 音视频文件 IMAGE 照片 ATTACHMENT 附件 FOLDER 文件夹 |
0x01 0x04 |
文件名 |
文件名称,UTF-8编码 |
0x01 0x05 |
是否存在下一包 |
1 表示仍然存在下一包,文件未传输完毕 0 表示无下一包,文件传输完毕 |
0x01 0x06 |
文件内容 |
直接传输文件流,不作编码转换 |
备注:其中传输文件夹主要用于服务器端向会场端发送PPT文件信息时,会场端需要建立同名文件夹,然后将后续的文件存放其中。如果此处传输的是文件夹,则是否存在下一包填0,对端接收到之后执行创建文件夹命令。文件夹可多层。