论文部分内容阅读
近些年,开源软件发展迅猛,其应用领域和适用范围越来越广泛;与此同时,开源软件的成功也吸引了大量的开发者投入到开源软件的开发,仅GitHub社区就已经托管了 6千多万的版本库,有超过2千万的用户参与到这些项目仓库的开发和维护。开源软件社区积累了大量的软件开发和开发者行为等数据,这些极具挖掘价值的数据逐步引起了研究人员的关注,已经有相关工作对开源软件相关的研究点(如群体开发机制和质量保证手段)展开了一系列探索。高效可靠的数据获取是研究工作开展的重要前提,为了更好地支持此类研究的有效开展,在本文中我们面向GitHub开源社区提出了一个软件大数据数据持续汇聚平台,其主要内容包括:第一,在原始数据采集方面,本文提出了一个易扩展的高效数据采集方法。本文按照系统的业务逻辑把整个系统拆分为任务生成和任务执行两个模块,两个模块之间通过任务队列和数据存储进行连接和交互。通过这种解耦合的方式,本文把系统中相对耗时和耗费资源的任务执行模块并行化,提高系统实时横向扩展的能力,能够更好地满足用户对数据采集系统高速率的采集需求。第二,在结构化数据抽取方面,本文提出了面向数据多源性的数据抽取模型。本文根据开源社区中数据类型种类繁多的特点提出了模板化的抽取策略。首先把系统中的抽取逻辑和数据格式进行分离,然后针对每一种数据类型设计抽取模板。这样的策略使得抽取模块能够根据数据的不同类型,调用不同的抽取模板进行解析和抽取。这种方式提高了代码的可用性和灵活性,能够更好地适应多数据类型的采集需求。第三,在数据可视化方面,本文设计了直观可交互的数据展示系统。本文直观地展示了系统中的数据流以及采集系统各模块的运行情况,以期提高系统的可控性,方便用户与系统间的交互。通过该系统,用户可以直观地获取系统处理的数据概况,对系统的状态有更清晰的把握和认识。此外,用户还可以便捷地对系统的各个模块进行操作,便于对系统的实时控制。