The modular and feature toggle architectures of Google Chrome

The modular and feature toggle architectures of Google Chrome
复制标题

Google Chrome 的模块化和功能切换架构

DOI:
--
复制
发表时间:
2018
影响因子:
4.1
通讯作者:
Emad Shihab
Emad Shihab
中科院分区:
计算机科学2区
文献类型:
--
作者:
Md Tajmilur Rahman;Peter C. Rigby;Emad Shihab

文献摘要

被引文献

相似文献

软件特性通常跨越多个目录和概念模块,使得特性架构的提取变得困难。在这项工作中,我们提取了一个功能切换架构视图,并展示了功能如何跨越概念、具体和参考架构。特性开关是简单的条件标志,允许开发人员在运行中的系统中打开或关闭一个特性。它们通常被包括b谷歌、Netflix和Facebook在内的大型网络公司用来选择性地启用和禁用某些功能。最近,为所有主要的编程语言创建了帮助注入和管理切换的库。我们从b谷歌Chrome web浏览器中提取功能开关,以说明它们在理解系统架构中的用途。由于Chrome没有高级概念和具体的架构,我们不得不从可用的文档中手动导出这些表示,并将它们映射到源代码中。这些现代web浏览器的模块化表示使我们能够用当前的技术和浏览器概念更新12年的浏览器参考架构研究。挖掘源代码中功能切换的用法,我们能够将它们映射到模块化表示上,以创建Chrome的功能切换架构视图。我们还能够显示哪些特性包含在一个模块中,以及一个特性涵盖了哪些模块。在整个论文中,我们展示了特征切换视图如何为系统的特征体系结构提供新的视角。
Software features often span multiple directories and conceptual modules making the extraction of feature architectures difficult. In this work, we extract a feature toggle architectural view and show how features span the conceptual, concrete, and reference architectures. Feature toggles are simple conditional flags that allow developers to turn a feature on or off in a running system. They are commonly used by large web companies, including Google, Netflix and Facebook to selectively enable and disable features. Recently, libraries to help inject and manage toggles have been created for all the major programming languages. We extract the feature toggles from the Google Chrome web browser to illustrate their use in understanding the architecture of a system. Since there is no high-level conceptual and concrete architectures for Chrome, we had to manually derive these representations from available documentation and map them into the source code. These modular representations of a modern web browser allowed us to update the 12 year old research on browser reference architectures with current technologies and browser concepts. Mining the usages of feature toggles in the source code, we were able to map them on to the modular representation to create a feature toggle architectural view of Chrome. We are also able to show which features are contained in a module and which modules a feature spans. Throughout the paper, we show how the feature toggle view can give new perspectives into the feature architecture of a system.