(中央宣传部电影技术质量检测所 检测认证中心,北京 100086)
近年来,点播影院作为商业影院互补业态,发展迅猛,据不完全统计,以点播方式提供电影放映服务的各类营业场所已超过万家,但其运营管理水平良莠不齐,行业发展状况较为混乱。2019年5月28日,《跨省点播院线审批服务指南》和《点播影院暂行技术规范》(以下简称《规范》)正式发布。《规范》包括点播影院的系统架构、发行版和安全级别、计费系统数据上报、放映质量、设备等六个方面的技术要求,其内容基本涵盖了点播影院相关系统各项软硬件的要求,并具有相应的测量方法。《规范》的发布,从技术上落实了规范点播影院市场、保护内容版权、保证点播影院放映质量的管理思路。
政策层面不断加强对点播影院的规范引导,表明了国家对电影播映新模式发展的鼓励与支持,也预示着点播影院市场将拉开体系化、规范化的序幕。而放映许可证等证照齐全、片源正版化、放映设备和计费系统等软硬件合规化是点播影院规范化建设的重点内容。点播院线计费系统作为点播影院票房统计最主要的数据来源,其规范符合性检测的重要性不言而喻。
《规范》对点播院线计费系统数据上报的要求,分为基本规则、业务功能要求、数据备份与恢复、安全保证四个部分。对点播院线计费系统的规范符合性检测,即按照这四个部分的要求来进行。对于《规范》未作要求的点播院线计费系统的功能,不进行检测,但这些功能有可能成为检测的支撑。
依据《规范》,对点播院线计费系统进行检测时,检测机构需提供一个已通过验证的检测工具——全国点播影院经营管理信息系统模拟器,被测点播院线计费系统通过互联网或者局域网与全国点播影院经营管理信息系统模拟器连接,同时,被测点播院线计费系统需要至少三家与其匹配的点播影院系统作为数据支撑,因为点播院线计费系统自身并不产生票房数据,其仅是一个数据转发的角色,所有的票房数据均来自于点播影院系统。因《规范》未对点播影院系统作出要求,也未对点播影院系统与点播院线计费系统的通讯作出要求,所以检测机构无法将点播影院系统作为检测工具提供,需由被测点播院线计费系统的软件厂商自行提供。点播院线计费系统的测量框图如图1所示。
图1 点播院线计费系统测量框图
检测工具软件全国点播影院经营管理信息系统模拟器由服务端程序和Web端展示两个部分组成。服务端程序为依据《规范》附录C建立的点播院线计费系统信息数据接口服务平台,能够提供符合《规范》附录C信息数据接口要求的通讯功能。检测时,服务端程序运行为后台服务程序,能够自动接收被测点播院线计费系统发送的信息数据接口请求报文,并返回相应的响应报文,同时将通信报文存储至数据库;也能够将Web端生成的信息数据接口下行指令报文发送至被测点播院线计费系统,并接收被测点播院线计费系统返回的响应报文,同时将通信报文存储至数据库。
图2 全国点播影院经营管理信息系统模拟器测试软件结构
Web端为全国点播影院经营管理信息系统模拟器的操作和展示界面。在Web端,可以维护检测所需的基础信息(包括院线信息、影院信息、影厅信息、节目信息等),也可浏览检测过程中产生的、由服务端程序存储于数据库中的所有报文信息及报文解析信息,还可操作生成对被测点播院线计费系统信息数据接口的下行指令报文,并存储至数据库,由服务端程序执行发送操作。全国点播影院经营管理信息系统模拟器测试软件结构如图2所示。
为满足《规范》“通讯安全”条款的要求,检测时,全国点播影院经营管理信息系统模拟器需配置服务器端证书,被测点播院线计费系统需配置相应的客户端证书,证书由全国点播影院经营管理信息系统统一制作、颁发。
《规范》中对于点播院线计费系统数据上报要求的条款及信息数据接口的要求,其中很多内容都与GY/T 276—2013《电影院票务管理系统技术要求和测量方法》标准(以下简称“276标准”)类似,相应的检测方法也类似,276标准颁布时间较早,整套的检测流程和检测方法已非常成熟,因此本文在对点播院线计费系统的检测进行描述时,会与276标准相应的内容做比较说明。
按照《规范》的要求,点播院线计费系统的检测可以分为下载和上报两大主要内容,而下载和上报的通讯基础由“通讯安全”条款所规定,“影院编码”“节目编码”条款的要求是服务于下载内容的规则,“营业日期归属” “营业状态” “营业场次” “场次人数”条款的要求是服务于上报内容的规则,“数据备份与恢复”和“保存期限” “操作权限” “日志”等安全保证条款的要求则是软件系统的常规功能。下载和上报两个检测的主要内容,也基本覆盖了《规范》附录A、附录B、附录C的全部条款要求。本文以《规范》中的下载、上报、营业日期归属、营业状态作为点播院线计费系统规范符合性检测的重点内容进行解析,而“数据备份与恢复”和“保存期限” “操作权限” “日志”等安全保证条款的检测较为常规,对照《规范》中的检测方法完全可自行操作,本文不再赘述。
点播院线计费系统的下载和上报通过信息数据接口完成,《规范》附录C定义了信息数据接口的通讯协议、通讯机制、报文结构。通讯协议要求为,在传输层采用符合RFC 793标准的TCP协议;链路安全采用符合RFC 2246的TLS 1.0版本双向验证方式;采用长连接方式,当连接断开后重新连接应重新进行身份认证。通讯机制要求为,采用双向异步通信实现双向请求,采用停等和消息ID匹配机制,请求方请求数据中包含唯一消息ID,同一业务数据消息多次重发时要保证消息ID不变;如果报文发送后30秒无对应消息ID响应报文,发送端可重发报文,发送方累计发送3个报文没有收到响应则认为链路断开,应断开连接重新连接后重新发送。《规范》附录C共定义了7组、16个报文结构,与276标准相比,报文结构数量有所减少,但报文结构定义类似。
点播院线计费系统的下载分为影院编码下载和节目编码下载,影院编码下载所涉及的报文结构为0xC4影院信息请求数据结构、0xC5影院信息数据结构、0xC6影院信息确认数据结构,节目编码下载所涉及的报文结构为0xC7节目信息下载请求数据结构、0xC8节目信息数据结构、0xC9节目信息确认数据结构。
影院编码下载和节目编码下载的规范符合性检测主要从通讯协议、通讯机制、报文结构以及数据正确性等方面进行验证。被测点播院线计费系统要以文件软证书为基础实现TLS 1.0双向验证方式的安全长连接链路,要实现能够支持双向请求的双向异步通信,要实现停等和消息ID匹配机制。这些要求也适用于上报的检测。
检测时,在全国点播影院经营管理信息系统模拟器中维护好可供下载的影院信息和节目信息,被测点播院线计费系统连接至全国点播影院经营管理信息系统模拟器后,从其上下载影院信息和节目信息。操作完成后,以全国点播影院经营管理信息系统模拟器服务端的接收请求报文和返回响应报文来验证被测点播院线计费系统通讯协议、通讯机制的规范符合性,以模拟器Web端的报文浏览和报文解析来验证被测点播院线计费系统报文结构的规范符合性及数据正确性。
此外,检测要对《规范》中“影院编码下载”和“节目编码下载”条款要求的内容进行功能验证,被测点播院线计费系统不允许人工输入和修改点播影院编码、节目编码,不允许有其他方式的影院编码和节目编码来源。
点播院线计费系统的上报分为原始场次数据上报和统计营业数据上报。原始场次数据上报所涉及的报文结构为0xCC原始场次数据上报数据结构、0xCD原始场次数据上报确认反馈数据结构,统计营业数据上报所涉及的报文结构为0xCE统计营业数据上报数据结构、0xCF统计营业数据上报确认反馈数据结构。
检测时,被测点播院线计费系统接收所属点播影院系统上报来的原始场次数据,接收后10分钟内,要自动上报至全国点播影院经营管理信息系统模拟器;在每日6∶00至14∶00之间,被测点播院线计费系统要将其所属所有点播影院经营数据汇总,以点播影院和营业日为单位完成前一营业日的统计上报。操作完成后的验证与下载的检测一致。
此外,检测要对《规范》中“数据上报”条款要求的内容进行功能验证。被测点播院线计费系统的原始上报要在收到点播影院上报的原始场次数据后10分钟内完成向全国点播影院经营管理信息系统模拟器上报;非正常营业状态的影院也要按照《规范》附录C的格式要求上报原始场次数据。被测点播院线计费系统的统计上报要有补报能力,补报要按照从早到晚的时间顺序进行;非正常营业状态的影院也要按照《规范》附录C的格式要求上报统计营业数据;向全国点播影院经营管理信息系统模拟器上报的统计营业数据必须是被测点播院线计费系统所属点播影院的全部经营数据;上报的统计营业数据为已经扣除退票退场数据后的最终数据。这些功能在数据正确性方面也需要通过全国点播影院经营管理信息系统模拟器Web端的报文浏览和报文解析来验证。尽管在《规范》条款中未作说明,检测时,我们还是要求点播院线计费系统的原始上报有补报能力。
“营业日期”和“营业场次时间”两条款可以合并为一条进行检测,我们可以称之为“营业日期归属”的检测。
检测的前提条件:被测的点播院线计费系统要求接入一家点播影院即可,该点播影院要求至少具备三个影厅。检测时,操作接入的点播影院的经营管理系统,使其产生如图3所示的场次数据。
图3 营业日期归属检测场次数据示意
因《规范》“营业日期”条款规定为“当日上午6∶00至次日上午6∶00(不含次日上午6∶00)”,“营业场次时间”条款规定为“营业场次包括开场时间和结束时间,根据场次结束时间所属营业日确定场次的归属营业日;例:早5∶00开场场次,至早7∶00场次结束,则该场次营业日归属为7∶00所属营业日”。所以,产生的场次数据的场次结束时间围绕06∶00前后展开,而场次开始时间对于营业日期归属检测来说无价值,图中给出的场次开始时间值仅为示意,即,检测以场次的结束时间为目标、以时间轴上的06∶00为临界值来进行判定。
检测结果的判定:因检测过程中要形成原始场次数据上报和统计营业数据上报,而《规范》附录C定义的统计营业数据上报数据结构是按照营业日统计的数据进行上报,即上报的数据为单个营业日的所有场次的统计数据,且报文数据结构中仅有“session_count”一个与场次信息有关的字段,再无其他场次相关信息。这一点与276标准不同,276标准定义的票房数据统计上报数据结构是按照营业日内每个场次统计的数据进行上报,且报文数据结构中有“screen_code” “film_code” “session_code” “session_datetime”等与场次信息相关的多个字段,可以很清晰地判定营业日期场次的包含关系。因此,对于点播院线计费系统营业日期归属的检测,在数据报文中没有明确字段判定营业日期归属的情况下,需要产生的六个场次的观影人数和包场费设置不同数量,使其两两相加的值不同,以观影人数和包场费的合计值来判定营业日期包含的场次信息是否正确。
此外,在实际的检测情况中,场次结束时间并不容易精确控制为“05∶59∶59” “06∶00∶00” “06∶00∶01”,此时,需要把握“06∶00∶00”前结束一场、“06∶00∶00”整结束一场、“06∶00∶00”后结束一场以及三场结束时间尽量靠近“06∶00∶00”的原则。
《规范》在“营业状态”条款中,规定影院营业状态包括测试(在点播影院开业前系统调试测试时标注为测试状态)、营业(点播影院正式开业后标注为营业状态)两种状态。但在附录C信息数据接口的点播影院信息数据结构定义中,影院营业状态却有“测试” “正常营业” “停业” “注销”四种。
本文描述的规范符合性检测,以四种影院营业状态的定义展开。仅在“正常营业”状态时,被测点播院线计费系统要以正常的经营数据完成原始场次数据上报和统计营业数据上报。在“测试”“停业”“注销”状态,被测点播院线计费系统应认为点播影院为非正常营业状态,要以附录C原始场次数据上报数据结构中定义的“非正常营业影院也需要上报,场次编码为zzzzzzzzzzzzzzzzz,节目编码为10000000000000,收入为0”规则完成原始场次数据上报,以附录C统计营业数据上报数据结构中定义的“非正常营业影院,上报场次、人数、收入均为0”规则完成统计营业数据上报,在“正常营业”状态上报的统计营业数据中不包含“测试”状态的数据。
影院营业状态在实际检测中存在不少问题,这会在本文后续部分再提及。
4.1.1 规范市场
《规范》对点播院线计费系统的数据上报、下载及其他必要功能做出了明确的技术要求,对数据上报、下载的通讯协议、通讯机制、报文结构给出了约束规则,并提供了相应的检测方法,使得软件厂商对点播院线计费系统的研发有章可循,也使点播院线计费系统的检测得以规模化开展,对于点播影院市场的规范化发展有着非常积极的作用。
4.1.2 云端部署方向
相比于276标准,《规范》的通讯安全摒弃了硬件USBKey,采用文件软证书。如果采用硬件USBKey方案来保障通讯安全,在云端部署时,会面临较大困难,云端部署的系统无法接入大量的硬件USBKey,一般采取的应对措施是在影院内部再部署一台通讯安全服务器,接入硬件USBKey,实现通讯安全,但会形成云端系统和影院端通讯安全服务器之间的多次数据交互。文件软证书的方案则不存在这样的问题,云端系统可以存储和配置大量的文件软证书,实现与硬件USBKey方案基本一致的通讯安全。采用文件软证书的通讯安全方案不仅提高了软件运行效率,也使得点播院线计费系统云端部署的趋势进一步明朗。
4.1.3 接口统一
相比于276标准,《规范》将原始场次数据上报和统计营业数据上报统一在信息数据接口中,采用相同的通讯方式进行上报。在276标准中,原始数据上报采用TCP+TLS方式,统计数据上报采用HTTP+POST方式。对于软件厂商来说,不同通讯方式的数据上报接口,虽然没有多大的开发难度,但统一通讯方式的数据上报接口,总体而言是简化了软件厂商的研发工作。
4.1.4 接口报文匹配明确
相比于276标准,《规范》在信息数据接口报文结构中,加入了“message_id”(消息ID)和“packet_id”(通讯报文ID)两个字段。《规范》附录C要求,报文通信采用消息ID匹配机制,请求方请求数据中应包含唯一消息ID,同一业务数据消息多次重发时要保证消息ID不变。消息ID作为业务通信中请求、应答间对应消息的唯一标识,在一组业务多次交互过程中,交互双方使用唯一的消息ID。增加的“message_id”字段,可使点播院线计费系统明确发送和接收报文的匹配情况。
4.2.1 影院营业状态问题
首先,在《规范》的“营业状态”条款中,影院营业状态仅定义有“测试” “营业”二种,但在附录C信息数据接口的点播影院信息数据结构定义中,影院营业状态又有“测试” “正常营业” “停业” “注销”四种,《规范》本身存在需要进一步完善的地方。
其次,影院营业状态中的“测试”状态设计初衷需要进一步明确,如果仅为点播院线计费系统被检时使用,则可以删除“测试”状态。在《规范》中,有“院线系统上报数据时根据影院营业状态进行上报,测试数据将不计入正常统计”的要求,又有“数据上报……非正常营业影院也应上报,上报格式在附录C说明”的要求,附录C中还有“原始场次数据上报数据结构……非正常营业影院也需要上报,场次编码为zzzzzzzzzzzzzzzzz,节目编码为10000000000000,收入为0。全国点播影院经营管理信息系统不接收测试数据”和“统计营业数据上报数据结构……非正常营业影院,上报场次、人数、收入均为0。全国点播影院经营管理信息系统不接收测试数据”的要求。按《规范》要求,“测试”状态应归为非正常营业影院,也应按照“场次编码为zzzzzzzzzzzzzzzzz,节目编码为10000000000000,收入为0”的要求上报原始场次数据,但“全国点播影院经营管理信息系统不接收测试数据”,这种情况下为何要让“测试”状态的点播影院上报?而且,“测试”状态的点播影院数据上报格式和“停业” “注销”状态的点播影院数据上报格式一致,上报报文结构中又没有影院营业状态字段,在不对照全国点播影院经营管理信息系统所存储的点播影院营业状态的情况下,无法区分出“测试”状态和“停业” “注销”状态的点播影院上报的数据报文。《规范》定义的“测试”营业状态为“在点播影院开业前系统调试测试时标注为测试状态”,实际上,按照这样的定义,“测试”状态的点播影院产生和上报的数据均为假数据,也可以归为垃圾数据,这样的数据不应该上报至全国点播影院经营管理信息系统,以避免对全国点播影院经营管理信息系统的数据造成紊乱影响。较为合理的逻辑为,全国点播影院经营管理信息系统应具备生产和测试两套环境,两套环境具备相同的数据接收机制;点播影院在系统调试测试时,产生的均为假数据,应上报至全国点播影院经营管理信息系统的测试环境;在系统调试测试完成时,点播影院的上报对象应切换至全国点播影院经营管理信息系统的生产环境;“测试”状态应定义为点播影院正式开业前的试营业状态,该状态下产生的数据为点播影院的正常经营数据,应如实正常上报至全国点播影院经营管理信息系统的生产环境;上报的数据报文结构中,应添加影院营业状态字段。
再次,“停业”和“注销”状态的点播影院,其软件系统可能已经停止运行,是否还需要再进行数据上报?即使需要上报数据,也是由点播院线计费系统生成假数据进行上报,全国点播影院经营管理信息系统对这样的假数据有没有接收的必要性,这个问题值得商榷。
4.2.2 退场问题
对于点播影院经营的实际情况来说,退场的可能性是存在的。对于退场,《规范》附录C信息数据接口的原始场次数据上报数据结构和统计营业数据上报数据结构中均未有定义,仅在“表2 点播院线计费系统数据上报要求”有“统计上报……所上报经营数据应为已经扣除退票退场数据后的最终数据”的要求,原始场次数据上报在遇到退场情况时没有明确的处理规则。退场情况的原始场次数据上报是否要执行?如需上报,相关的观影人数和收入如何填值?这些问题需要进一步明确。最简单的做法是,原始场次数据上报和统计营业数据上报都不上报退场情况,但这需要管理机构认可。
4.2.3 非规范操作处理问题
《规范》要求“出现非规范操作时(如非正常关机、断电等),应保持必要数据的一致性”,现在软件系统云端部署已成趋势,点播影院的软件系统也不例外,已有很多点播院线计费系统和经营管理系统部署于云端。对于云端部署、尤其是公有云部署的软件系统,非正常关机、断电之类的操作已经不太适用。
4.2.4 信息数据接口报文字段问题
《规范》附录C定义了点播院线计费系统与全国点播影院经营管理信息系统之间进行数据通迅的信息数据接口,其中定义的通讯报文结构的报文头中“client_code”字段数据类型为char(8),建议改为char(9);原始场次数据上报数据结构中的“session_code”字段数据类型为char(17),在非正常营业影院进行原始场次数据上报时建议填值为16个“z”,而不是《规范》描述的17个“z”。以使全部char(n)类型的字段均满足《规范》附录C中C.2.2“数据类型”条款的定义“char(n) n个字节定长以0为结束符的字符串,字符串最大长度为n-1个字节,当字符串长度不足n-1个字节时,剩余字节值都为0”,这样既统一了《规范》的描述,也能够避免在对字段进行解析时产生困扰。
另外,统计营业数据上报数据结构中“total_report_count”字段,含义不够明确,可以理解为点播院线计费系统在该营业日期上报原始场次数据的次数,也可以理解为上报本条统计营业数据的次数,或者可以理解为点播院线计费系统上报原始场次数据或统计营业数据的总次数,也可以理解为仅上报原始场次数据或统计营业数据成功的次数。
相比于276标准对电影院票务管理系统的要求,《规范》对点播影院计费系统的要求要少很多,但作为电影播映新模式这一新生事物的技术规范,在开展符合性检测时的难度和工作量并不小。首先,要对《规范》的每一条款进行详细研读、充分理解,要保证理解的一致性;其次,要与软件厂商配合,对其点播院线计费系统进行调试,这是一个反复而漫长的过程;再次,在检测过程中,要对软件厂商进行《规范》的宣贯。通过多次检测的实践,积累了一些经验和心得,也遇到了一些问题,于是撰写本文,希望对相关软件厂商的点播院线计费系统研发和送检有所裨益,也希望在大家共同努力下,问题得到解决。
点播影院的规范化,必然要经历反复的经验摸索和市场验证,是一条漫长又艰难的道路。作为电影行业质检机构从业人员,理应迎难而上,严守质检关,为电影播映新模式的健康发展做出贡献。