国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:傅宣登,吴志林
单位:傅宣登,计算机科学国家重点实验室(中国科学院 软件研究所), 北京 100190;中国科学院大学 计算机科学与技术学院, 北京 10004911,吴志林,计算机科学国家重点实验室(中国科学院 软件研究所), 北京 100190;中国科学院大学 计算机科学与技术学院, 北京 10004902
关键词:流式计算;Flink;复杂事件处理;形式语义;数据流转换器;查询求值
基金:国家自然科学基金(61872340)
Apache Flink是目前最流行的流式计算平台之一, 已经在工业界得到了广泛应用. 复杂事件处理是流式计算的一种重要使用场景, Apache Flink平台定义并实现了一种复杂事件处理语言(简称FlinkCEP). FlinkCEP语法特性丰富, 不仅包括常见的过滤、连接、循环等操作, 还包括迭代条件、匹配筛选策略等高级特性. FlinkCEP语义复杂, 尚缺乏语言规范对其语义进行准确描述, 只能通过实现细节来理解, 因此对其语义进行形式描述对于开发人员准确理解其语义非常必要. 针对FlinkCEP提出一种数据流转换器的自动机模型, 该模型包括用于刻画迭代条件的数据变量、存储输出结果的数据流变量、用于刻画匹配筛选策略的迁移优先级等特性. 使用数据流转换器对FlinkCEP的语义进行形式建模, 并且根据形式语义设计FlinkCEP的查询求值算法, 实现原型系统. 进一步, 生成能够较为全面覆盖FlinkCEP语法特性的测试用例集, 利用这些测试用例与FlinkCEP在Flink平台上的实际运行结果进行对比实验. 实验结果表明所提出的形式语义与FlinkCEP在Flink平台上的实际语义基本是一致的. 而且, 对实验结果不一致的情况进行分析, 指出FlinkCEP在Flink平台上的实现对于组模式的处理可能存在错误.
来源:2024年第10期
《软件学报》期刊编辑部