软件设计文档Word格式.docx
- 文档编号:21703110
- 上传时间:2023-01-31
- 格式:DOCX
- 页数:61
- 大小:603.96KB
软件设计文档Word格式.docx
《软件设计文档Word格式.docx》由会员分享,可在线阅读,更多相关《软件设计文档Word格式.docx(61页珍藏版)》请在冰豆网上搜索。
播放最后一天的日期
订单状态
Ord_Status
订单总报价
Ord_Amount
订单价格
注:
这里只是标签的术语空间。
互斥性定义了静态互斥和动态互斥。
具有某行业标签(例如酒类)的广告,被投放到某个屏上的时候,这个行业标签被作为静态互斥标签打到这个屏上,就意味着其他具有同类标签的广告不可以投放到这个屏上;
如果这个标签被作为动态互斥标签打到某个广告位上,就意味着,其他具有同类标签的广告,不可以在同一块屏的其他广告位上,与该广告同时播放。
静态互斥在细筛选屏Worker选屏的时候处理;
动态互斥在排期Worker排期的时候处理。
这里所说的互斥与引发互斥的广告生命周期等长。
那个广告结束了,互斥就取消。
Redis结构
OrderAtom()类是订单库的数据结构接口,其中包括订单ID、广告ID、广告要求播放次数、投放客户ID、上刊日期、静态冲突标签集合、动态冲突标签集合、订单状态、订单价格、播放屏ID集合等基础数据。
详细设计如下图所示:
图2.1订单Redis数据结构
数据操作函数
RedisOrderMana()订单管理类,具有管理订单数据的功能。
支持添加、删除、查询订单信息。
订单库管理功能详细说明
编号
功能
类别
函数
原型
输入值
返回值
2.
增加
add
(self,Order)
按订单ID添加订单信息(订单ID、广告ID、广告要求播放次数、投放客户ID、上刊日期、静态冲突标签集合、动态冲突标签集合、订单状态、订单价格、播放屏ID集合)
订单类
订单ID
3.
删除
deleteById
(self,OrderId)
按订单ID删除订单信息
无
4.
查询
searchOrderByAdvID
(self,AdvID)
按广告ID查询订单集合
广告ID
该条广告对应的订单集合
5.
searchOrderBytags
(self,tags)
按广告标签集合查询订单集合
广告的标签
该广告标签集合对应的订单集合
6.
searchOrderByUsrID
(self,UsrID)
按投放客户ID查询订单集合
投放客户ID
该客户对应的订单集合
7.
searchOrderByPriority
(self,Priority)
按广告优先级查询对应的订单集合
播放屏ID
该优先级对应的订单集合
8.
searchOrderByStart_date
(self,start_date)
按广告上刊日查订单集合
广告上刊日
订单集合
9.
searchOrderByEnd_date
(self,end_date)
按广告下刊日查订单集合
广告下刊日
10.
searchOrderByStatus
(self,Status)
按订单状态查询订单集合
订单的状态
该状态对应的订单集合
11.
searchAllOrders
(self)
列表所有订单
所有订单集合
屏
在原有的信息发布系统中,广告屏就是播放端,是系统中可识别的物理播放设备。
每个屏在连接进入系统的时候,会自动向服务器发送16字节的屏ID号,作为其在系统中唯一的标识。
在本子系统中,会为屏ID设计一个7字节的编码,包含4字节的媒体商ID和3字节的播放端ID:
媒体商ID(32位二进制数);
播放端ID(24位二进制数,可区分16M个播放端);
屏幕编号
Scr_Id
播放端编号
经度
Scr_Longitude
纬度
Scr_Latitude
屏幕尺寸
Scr_size
屏幕对角线尺寸(英寸)
屏幕高度
Scr_ratio
屏幕宽高比
位置描述
Scr_PositionDes
屏互斥标签
Scr_conflic_tags
拒绝播放的广告类型标签集合
Set
屏状态
Scr_Status
记录选屏过程中的状态,1.已浏览,2.已选中,3.已订购
屏幕的像素宽、像素高、类型、户内外、室内否等属性用标签来代替。
(标签表里的标签维度和标签名称联合表示)
历史广告投放频度
Scr_Adv_Count
历史在该屏上投放的广告的次数
数值>
广告投放完成率
Scr_Adv_Success_Rate
承接的广告实际完成播出情况
百分比
广告位的变化率
Scr_Area_Stable_rate
广告位是否稳定,没有经常变化
Redis结构
ScreenAtom()类是屏库的数据结构接口,其中包括屏ID、屏所属媒体商、屏幕经度、屏幕纬度、屏幕宽度、屏幕高度、屏幕相关描述、屏幕相关标签、屏幕拥有的广告位等基础数据。
图2.2屏Redis数据结构
RedisScrMana()屏管理类,具有管理屏幕数据的功能。
支持添加、删除、修改、查询屏的信息。
屏库管理功能详细说明
12.
(self,ScrInfo)
按屏ID添加屏信息(屏ID、屏所属媒体商、屏幕经度、屏幕纬度、屏幕宽度、屏幕高度、屏幕相关描述、屏幕相关标签、屏幕拥有的广告位集合)
屏类
屏ID
13.
(self,Scr_Id)
按屏ID删除屏信息
14.
searchScrByMediaId
(self,Media_Id)
按媒体商查询屏集合
媒体商ID
该媒体商拥有的屏集合
15.
searchTagByScrId
按屏查询其对应的标签集合
该屏对应的屏标签集合
16.
searchByScrTags
(self,ScrTags)
按屏标签查询屏集合
屏标签
该屏标签对应的屏集合
17.
searchAreaByScrId
按屏ID查询广告位集合
该屏对应的广告位集合
18.
修改
update_screen_tags
(self,Scr_Id,tag_collection,operation)
按屏ID增加标签
屏信息
19.
按屏ID删除标签
广告位
广告位ID用以区分广告位,是广告位的唯一区分标识。
广告位ID包括三个部分:
广告位ID(8位二进制数,可区分128个广告位)。
三种ID组合共需要64位二进制数可以表示,一个广告位定位ID占8字节:
媒体商ID+播放端ID+广告位ID(4字节+3字节+1字节=8字节)
广告位数据项信息
广告位编号
Area_Id
bigint
左上角X坐标
Area_CoordinateX
区域X坐标
左上角Y坐标
Area_CoordinateY
区域Y坐标
宽度
Area_Width
区域宽度
高度
Area_Height
区域高度
全屏否
FullScreen_Bool
是否全屏
boolean
广告位空闲时间总长
TotalFreeTime
广告位时间总长
空闲时间列表
FreeTimeLists
广告空闲时间列表
AreaAtom()类是广告位的数据结构接口,其中包括广告位ID、广告位左上角X坐标,广告位左上角Y坐标、广告位的宽度、广告位的高度、是否全屏、广告位所在的广告屏ID、广告位空闲时间列表等基础数据。
图2.3广告位Redis数据结构
RedisAreaMana()广告位管理类,具有管理广告位数据的功能。
支持添加、删除、查询广告位信息。
广告位管理功能详细说明
20.
(self,area)
按广告位ID添加广告位信息(广告位ID、广告位左上角X坐标,广告位左上角Y坐标、广告位的宽度、广告位的高度、是否全屏、广告位所在的广告屏ID、广告位空闲时间列表)
广告位类
广告位ID
21.
按广告位ID删除广告位信息
22.
loadDuration
查询某广告位的空闲时间轴返回列表
广告位信息
23.
searchFreeArea
查询所有空闲时间的广告位ID
广告位ID列表
广告
本系统为广告设计一个8字节的编码,包含4字节的广告商ID(32位二进制数)和4字节的子ID(32位二进制数,4G个ID);
广告数据项信息
客户编号
Adv_Customer_Id
投放客户编号
广告名称
Adv_Name
50
广告类型
Adv_Type
文字、视频、图片
广告时长
Adv_Length
秒
长
Adv_MaxLength
广告长
像素值
宽
Adv_MaxHeight
广告宽
缩放倍数
Adv_ScaleFactor
广告播放时可以放缩的倍数
1不能放,>
1放大,<
1缩写
特征标签
Ad_Tag_Ids
广告自身的特征标签列表
包括行业等特征
播放路径
Adv_PlayPath
广告播放路径
100
订单-屏位-排期中间表
OrderPlayListAtom()类是订单-屏位-排期方案的数据结构,包括:
24.每个订单对应的屏位集合Order:
areaids,是选屏Master做完选屏后,写入的选屏结果
25.每个订单对应的排期派发数目OrderId:
AreaId_dispatched_count,是shuffleWorker(原来说的排期Master)分派给每个屏位的排期次数之后,写入派发次数
26.每个订单对应的排期列表,orderId+areaID+day:
playlist,是排期Worker排期之后,写入排期列表。
RedisOrderPlayListManager()订单-屏位-排期中间表管理类,具有管理订单-屏位-排期中间表数据的功能。
支持添加、查询订单-屏位-排期信息。
广告-屏位-排期库管理功能详细说明
(下表信息待修改)
27.
addAdvScrInfo
(self,AdvScrInfo)
根据广告添加要播放该广告的屏ID以及屏中对应的广告位编号
广告-屏临时库信息
(广告ID、屏ID集合、广告位ID集合)
广告-屏临时库中的广告ID
28.
list_screen_adv
(self,AdvId)
按广告区分所有的可用屏信息集合
可播放该广告ID的屏集合
29.
list_area_adv
按广告区分所有可用的广告位集合
可播放该广告ID的广告位集合
30.
list_adv_screen
(self,ScreenId)
按可用屏区分的广告集合
可用屏ID
该屏播放的广告集合
31.
list_area_screen
按可用屏区分的可用广告位集合
该屏上可用广告位集合
32.
list_adv_area
(self,AreaId)
按广告位区分的所有广告
该广告位区分的广告集合
RedisAdvScrManager()广告-屏中间库管理类不仅能够管理广告、屏和广告位间数据,同时还支持管理告位上广告播放次数。
广告位-广告播放次数管理功能详细说明
33.
addAdvAreaCountInfo
(self,AdvAreaCountInfo)
在每个广告位上增加对应的广告播放的次数
广告在各个广告位上播放的次数信息
34.
list_area_advCount
查询广告位上播放广告的次数
该广告位上的广告播放次数集合
订单-屏位排期列表
AreaPlaylistAtom()类是供播放端读取的按照屏位索引的排期列表的数据结构,包括屏位ID、排期日期和播放表(内含开始时间,长度,订单号)、排期表状态等基础数据。
排期方案表的状态包括:
1:
排期Worker在排期中
2:
图2.8排期Redis数据结构
RedisAreaPlaylistMana()排期方案列表管理类,具有管理排期数据的功能。
支持添加、删除、查询、修改排期信息。
排期管理功能详细说明
35.
(self,Sch)
添加排期的属性及相关列表到redis库
排期类
36.
delete
按标记为A的排期做定向删除
37.
deleteByDuration
(self,Sch_id,Time_duration)
删除某固定排期的某时间段
排期编号、时间段
38.
searchByScr
通过屏ID查询排期,可加Tag标记限定,不加则不限定
39.
searchByAdv
(self,Adv_id)
通过广告ID查询排期
40.
changeValue
(self,Sch_id,Key,Value)
修改排期属性值
排期编号、排期的关键字和值
日志
数据结构设计
LogAtom()类是日志的数据结构接口,其中包括日志ID、屏ID、广告位ID、广告ID、广告播放起始时间、广告播放结束时间、广告播放状态等基础数据。
图2.7日志Redis数据结构
RedisLogMana()日志管理类,具有管理日志的功能。
支持添加、删除、查询日志信息。
日志管理功能详细说明
41.
(self,log)
添加日志
日志类
42.
(self,log_id)
按日志ID删除日志与集合
43.
search_by_adv_id
(self,adv_id,date,status)
某条广告一天播放成功(失败)的次数
广告ID、播放时间、播放状态
44.
search_by_screen_id
(self,screen_id,date,status)
某个广告在某块屏上一天播放成功(失败)的次数
屏ID、播放时间、播放状态
45.
search_by_duration
(self,screen_id,date,duration='
duration'
)
某块屏一天播放广告成功(失败)的次数
屏ID、播放时间、播放时长
46.
某块屏一月播放广告成功(失败)的次数
47.
search_by_area_id
(self,area_id,date,status)
某广告位一天播放广告成功(失败)的次数
广告位ID、播放时间、播放状态
48.
某广告位一月播放广告成功(失败)的次数
49.
search_by_adv_screen_id
(self,adv_id,screen_id,date,status)
某条广告一月播放成功(失败)的次数
广告ID、屏ID、播放时间、播放状态
50.
某个广告在某块屏上一月播放成功(失败)的次数
51.
某块屏一天播放广告成功(失败)的时长
52.
某块屏一月播放广告成功(失败)的时长
标签
在本系统中,定义了多维度的标签空间,以标签的形式,标记屏和广告的属性特征,形成屏的标签集合和广告的标签集合。
1:
屏物理属性(类型,分辨率,高宽比)2:
物料类型3:
行政地域(屏)6:
行业标签(广告)7:
地域特征标签(人口、房价、交通、社会功能)
维度编码
维度名称
标签属性
内部结构
应用对象
01
地域
行政区域ID含4层父子关系,名称,经纬度,
来自国家统计局,包括省-市-县乡-镇-区,78万个
02
行业
行业ID含4层父子关系,名称,说明
来自国家统计局,包括18大类,
03
受众特征
受众ID含2层父子关系,名称
来自互联网及学术文献,包含年龄、收入、文化水平、男女比,职业,兴趣关注
地域ID(间接到屏)
04
地域商业特征
商业ID含2层父子关系,名称,说明
来自学术文献,包含人口密度、房价、社交网签到数、交通流量、
地域(间接到屏)
05
屏物理属性
ID含2层父子关系,名称,说明
来自甲方,包含分辨率、屏幕尺寸、宽高比、屏类型
树形结构标签表
标签数据项信息
标签编号
Tag_Id
标签名称
Tag_Name
标签的维度
Tag_Dimension
标签的信息
Tag_Info
标签的父标签
Tag_Parent
标签的子标签集合
Tag_Children
标签的层级
Tag_Level
标签所处的层级
Redis表结构
TagCollection()标签集合类,具有管理标签集合的功能。
支持标签维度判断、标签匹配、动态标签添加和删除以及清空所有动态标签信息。
标签集合功能详细说明
53.
判断
is_fit_dimension
(self,taglist,dimension)
单一维度标签数组判断
标签列表、标签维度
布尔值
54.
is_fit_all
(self,tag_collection)
判断标签集合和另一个标签集合是否匹配
标签集合
55.
add_dynamics
添加动态标签
56.
clear_dynamics
清除所有动态标签
57.
remove_dynamics
移除动态标签
RedisTagMana()标签管理类,具有管理标签的功能。
支持标签的添加、删除、计算标签的维度等。
标签管理功能详细说明
58.
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 软件设计 文档