2024, 35(3):1280-1306.DOI: 10.13328/j.cnki.jos.006813
摘要:从单体系统迁移到微服务系统是当前业界对遗留系统实施再工程化的主流选项之一,基于单体遗留系统的微服务体系架构重构则是实现该迁移的关键步骤.目前学界多集中在微服务识别方法的研究上;业界虽有许多面向微服务架构的遗留系统重构的实践,但缺乏系统性的方法及高效鲁棒的工具.鉴于此,在微服务识别与模型驱动开发方法前期研究的基础上,研发一种模型驱动的、可用于单体遗留系统微服务化重构的集成设计平台MSA-Lab.它通过分析单体遗留系统运行日志中的方法调用序列,对其中的类和数据表进行类型识别和聚类以构造抽象微服务,同时生成包括微服务图和微服务序列图在内的系统架构设计模型.它包括用于微服务自动识别与设计模型自动生成的核心部件MSA-Generator,以及用于微服务静态结构模型与动态行为模型可视化展现、交互式建模、模型语法约束检验的核心部件MSA-Modeller.在MSA-Lab平台上,通过对4个开源项目实施有效性、鲁棒性、功能转换完备性等实验以及对3个同类型工具实施性能对比实验,结果表明:所提平台拥有很好的有效性、鲁棒性及实现面向日志的功能转换完备性,且性能更加优越.
2024, 35(4):1841-1860.DOI: 10.13328/j.cnki.jos.006924
摘要:软件缺陷定位是指找出与软件失效相关的程序元素. 当前的缺陷定位技术仅能产生函数级或语句级的定位结果. 这种粗粒度的定位结果会影响人工调试程序和软件缺陷自动修复的效率和效果. 专注于细粒度地识别导致软件缺陷的具体代码令牌, 为代码令牌建立抽象语法树路径, 提出基于指针神经网络的细粒度缺陷定位模型来预测出具体的缺陷代码令牌和修复该令牌的具体操作行为. 开源项目中的大量缺陷补丁数据集包含大量可供训练的数据, 且基于抽象语法树构建的路径可以有效捕获程序结构信息. 实验结果表明所训练出的模型能够准确预测缺陷代码令牌并显著优于基于统计的与基于机器学习的基线方法. 另外, 为了验证细粒度的缺陷定位结果可以贡献于缺陷自动修复, 基于细粒度的缺陷定位结果设计两种程序修复流程, 即代码补全工具去预测正确令牌的方法和启发式规则寻找合适代码修复元素的方法, 结果表明两种方法都能有效解决软件缺陷自动修复中的过拟合问题.
2023, 34(1):312-333.DOI: 10.13328/j.cnki.jos.006395
摘要:如何利用多源异构时空数据进行准确的轨迹预测并且反映移动对象的移动特性是轨迹预测领域的核心问题. 现有的大多数轨迹预测方法是长序列轨迹模式预测模型, 根据历史轨迹的特点进行预测, 或将当前移动对象的轨迹位置放入时空语义场景根据历史移动对象轨迹预测位置. 综述当前常用的轨迹预测模型和算法, 涉及不同的研究领域. 首先, 阐述了多模式轨迹预测的主流工作, 轨迹预测的基本模型类; 其次, 对不同类的预测模型进行总结, 包括数学统计类、机器学习类、滤波算法, 以及上述领域具有代表性的算法; 再次, 对情景感知技术进行了介绍, 描述了不同领域的学者对情景感知的定义, 阐述了情景感知技术所包含的关键技术点, 诸如情景感知计算、情景获取和情景推理的不同类模型, 分析了情景感知的不同分类、过滤、存储和融合以及它们的实现方法等. 详细介绍了情景感知驱动的轨迹预测模型技术路线及各阶段任务的工作原理. 给出了情景感知技术在真实场景中的应用, 包括位置推荐, 兴趣点推荐等, 通过与传统算法对比, 分析情景感知技术在此类应用中的优劣. 详细介绍了情景感知结合LSTM (long short-term memory)技术应用于行人轨迹预测领域的新方法. 最后, 总结了轨迹预测和情景感知研究的当前问题和未来发展趋势.
2023, 34(3):1148-1167.DOI: 10.13328/j.cnki.jos.006784
摘要:在大数据背景下,保证数据可信共享是数据联邦的基本要求.区块链技术代替传统的主从架构,可以提高联邦学习(federated learning,FL)的安全性.然而,现有工作中,模型参数验证与数据持久化所产生的巨大通信成本和存储消耗,已经成为数据联邦中亟待解决的问题.针对上述问题,设计了一种高效的去中心化联邦学习框架(efficient decentralized federated learning framework,EDFL),能够降低存储开销,并显著提升FL的学习效率.首先,提出了一种基于贡献度证明(proof-of-contribution)的共识机制,使得区块生成者的选举基于历史贡献度而不采用竞争机制,从而有效发避免了挖矿过程产生的区块生成延迟,并以异步方式缓解模型参数验证中的阻塞问题;其次,提出了一种角色自适应激励算法,因为该算法基于节点的工作强度和EDFL所分配的角色,所以能够激励合法节点更积极地进行模型训练,并有效地识别出恶意节点;再者,提出一种区块链分区存储策略,使得多重局部修复编码块(local reconstruction code)可被均匀地分布到网络的各个节点上,进而降低节点的本地存储代价,并实现了较高的数据恢复效率;最后,在真实的FEMNIST数据集上,对EDFL的学习效率、存储可扩展性和安全性进行了评估.实验结果表明,EDFL在以上3个方面均优于主流的基于区块链的FL框架.
2023, 34(5):2482-2493.DOI: 10.13328/j.cnki.jos.006440
摘要:口令增强加密是一个近年来新出现的原语,可以通过增加一个第三方密码服务提供商承担辅助解密的功能,抵抗已有的服务器猜测低熵口令即可解密带来的恶意离线攻击风险,即实现了对口令认证进行增强并增加加密的功能.结合近年来新出现的算法替换攻击威胁,对提出该原语工作中的方案给出了一种服务器积极攻击的方法,该攻击具有不可检测性且可以让服务器仍然能实施离线攻击,从而证明原方案不具备其声称的抵抗恶意服务器的功能.接着讨论与总结能够抵抗恶意服务器实施算法替换攻击的方案应当具备的性质与构造特点;随后,给出一个能够真正抵抗恶意服务器算法替换攻击的方案并给出了仿真结果;最后,对于复杂交互式协议受到算法替换攻击时的安全性影响需要的系统性研究进行了展望.
2023, 34(8):3905-3923.DOI: 10.13328/j.cnki.jos.006645
摘要:事件抽取是从非结构化的自然语言文本中自动抽取用户感兴趣的事件信息, 并以结构化的形式表示出来. 事件抽取是自然语言处理与理解中的重要方向, 在政府公共事务管理、金融业务、生物医学等不同领域有着很高的应用价值. 根据对人工标注数据的依赖程度, 目前基于深度学习的事件抽取方法主要分为两类: 有监督和远程监督学习方法. 对当前深度学习中事件抽取技术进行了全面的综述. 围绕有监督中CNN、RNN、GAN、GCN与远程监督等方法, 系统地总结了近几年的研究情况, 并对不同的深度学习模型的性能进行了详细对比与分析. 最后, 对事件抽取面临的挑战进行了分析, 针对研究趋势进行了展望.
2022, 33(3):797-813.DOI: 10.13328/j.cnki.jos.006448
摘要:基数估计和代价估计可以引导执行计划的选择,估计准确性对查询优化器至关重要.然而,传统数据库的代价和基数估计技术无法提供准确的估计,因为现有技术没有考虑多个表之间的相关性.将人工智能技术应用于数据库(artificial intelligence for databases,AI4DB)近期得到广泛关注,研究结果表明,基于学习的估计方法优于传统方法.然而,现有基于学习的方法仍然存在不足:首先,大部分的方法只能估计基数,但忽略了代价估计;其次,这些方法只能处理一些简单的查询语句,对于多表查询、嵌套查询等复杂查询则无能为力;同时,对字符串类型的值也很难处理.为了解决上述问题,提出了一种基于树型门控循环单元,Tree-GRU (tree-gated recurrent unit)的基数和代价估计方法,可以同时对基数和代价进行估计.此外,采用了有效的特征提取和编码技术,在特征提取中兼顾查询和执行计划,将特征嵌入到Tree-GRU中.对于字符串类型的值,使用神经网络自动提取子串与整串的关系,并进行字符串嵌入,从而使具有稀疏性的字符串变得容易被估计器处理.在JOB、Synthetic等数据集上进行了大量实验,实验结果表明,所提模型的各方面性能优于主流算法.
2022, 33(4):1451-1476.DOI: 10.13328/j.cnki.jos.006461
摘要:共享单车系统日益普及,积累了海量的出行轨迹数据.在共享单车系统中,用户的借车和还车行为是随机的,且受天气、时间等动态因素影响,使得共享单车调度不平衡,影响单车用户体验,并给运营商造成巨大经济损失.提出了新型基于站点聚类的共享单车需求预测算法,通过构建单车转移网络计算站点活跃度,充分考虑站点地理位置和单车转移模式因素,基于数据场聚类思想,将距离相近和用车模式相似的站点聚合到一个聚簇中,给出最佳簇中心个数求取方法.充分分析时间和天气因素对站点单车需求的影响,利用皮尔逊相关系数,从真实天气数据中选择相关性最大的天气特征,结合历史聚簇内单车需求量,将其转化为三维向量,利用多特征长短时记忆深度神经网络LSTM (long short-term memory)对向量内的特征信息进行学习和训练,以30分钟为长时间间隔,对每个聚簇内的单车需求量进行预测分析.与传统机器学习算法和当前主流方法进行对比,实验结果表明,所提单车需求模型预测性能得到显著提升.
2022, 33(12):4504-4516.DOI: 10.13328/j.cnki.jos.006352
摘要:对抗样本的出现,对深度学习的鲁棒性提出了挑战.随着边缘智能的兴起,如何在计算资源有限的边缘设备上部署鲁棒的精简深度学习模型,是一个有待解决的问题.由于精简模型无法通过常规的对抗训练获得良好的鲁棒性,提出两阶段对抗知识迁移的方法,先将对抗知识从数据向模型迁移,然后将复杂模型获得的对抗知识向精简模型迁移.对抗知识以对抗样本的数据形式蕴含,或以模型决策边界的形式蕴含.具体而言,利用云平台上的GPU集群对复杂模型进行对抗训练,实现对抗知识从数据向模型迁移;利用改进的蒸馏技术将对抗知识进一步从复杂模型向精简模型的迁移,最后提升边缘设备上精简模型的鲁棒性.在MNIST,CIFAR-10和CIFAR-100这3个数据集上进行验证,实验结果表明:提出的这种两阶段对抗知识迁移方法可以有效地提升精简模型的性能和鲁棒性,同时加快训练过程的收敛性.
2021, 32(4):904-933.DOI: 10.13328/j.cnki.jos.006223
摘要:随着系统复杂性的急剧增加,未来安全关键软件越来越多地采用异构构件组合架构,各种构件可能使用不同的计算模型或实现语言,使得整个软件系统呈现异构性.因此,设计此类系统需要使用复杂的建模方法.AADL (architecture analysis and design language)是一种安全关键系统体系结构多范式建模语言,丰富的可表达方式和可扩展性使其成为安全关键异构软件设计的重要选择.提出一种AADL和SDL(specification and description language)混合建模方法,支持以自底向上的方式对安全关键软件系统进行混合建模,并给出面向多核处理器平台的代码自动生成方法.首先,通过扩展AADL属性集,以支持使用SDL建模语言表达软件构件的功能行为.其次,以Ada作为目标语言,给出AADL-SDL混合模型的多任务代码生成方法.最后,实现了原型工具支持AADL和SDL混合建模及多任务Ada代码生成,并基于导航、制导与控制系统案例对所提方法的有效性进行分析.