在当今信息驱动的工作场所中,数据不断地移动和转换。典型的“照常工作”方法是使用电子邮件附件、共享网络位置、数据库,以及最近使用的云。通常情况下,数据的多个版本位于不同的位置,这些数据的用户会因为缺乏描述其来源(换句话说,其谱系)的元数据而感到困惑。本文描述的橡树岭国家实验室(ORNL)的ProvDMS项目旨在解决传感器数据环境中的这个问题。
ORNL的建筑技术研究与集成中心拥有部署在灵活研究平台(frp)上的可重构商业建筑。图1是一座中型商业办公楼的谷歌地球模型,是ORNL的玻璃钢装置的一部分。这些建筑(金属仓库和办公室)配备了大量的传感器,可以测量暖通空调效率、相对湿度和门、窗和墙的温度梯度等变量。传感器从数百个通道获取分分钟分辨率的数据。科学家们进行实验,进行模拟,并分析数据。传感器数据也用于详细的质量保证练习,以研究系统故障的影响。这两种类型的商业建筑包括FRPs,以30秒分辨率为这两幢建筑共1071个频道传输数据。
从frp收集的传感器数据被保存到一个共享的网络位置,供研究人员访问。很明显,适当的科学控制不仅需要管理数据采集和传输,还需要管理与传感器数据的时间子集相关的元数据。FRPs的ProvDMS,或称来源数据管理系统,允许研究人员检索感兴趣的数据,并追踪其谱系。大多数对象的生命周期包括创建、管理、转换、存档和潜在的删除。出处就是跟踪这样的信息。8
ProvDMS为研究人员提供了所有数据转换的一站式服务,允许他们有效地跟踪数据的来源,这样就可以重用和复制实验和实验的派生,而不需要重复每个实验。
有许多现有的软件系统用于源数据收集,具有强大的工作流集成。嵌合体6是一个面向过程的来源系统,用于管理协作环境中数据对象的派生和分析。它存储可用于在系统内重新生成、比较和审计数据派生的来源信息。业力来源系统7允许用户收集和查询科学数据过程的来源,既可以独立运行,也可以作为更大的网络基础设施设置的一部分。由于紧密的工作流程集成,Karma系统与数据紧密相连。Vis-Trails4,5为科学数据探索和可视化提供支持,重点关注工作流作为源对象来表示复杂的计算。Vis-Trails中的工作流可以可视化为导致计算输出的过程序列管道。欧盟来源计划1使用面向服务的方法为网格系统使用开放源体系结构,即用于航空航天工程和器官移植管理。在EU来源项目中,来源系统被用于以患者/医生交互为单位跟踪医疗信息。该项目试图在收集的数据量和尽量减少收集工作的干扰性之间找到平衡,以保持医疗保健的质量。
虽然这些系统中的许多都是完整的软件解决方案,但核心源库(CPL)3.设计为独立于应用程序,易于集成到新的或现有的系统中。由于CPL的独立性,它在ProvDMS中被用作来源后端。这允许ProvDMS的用户界面与CPL的对象约束分离,从而产生积极的用户体验。
根据一些重要的属性,来源的特定实现可能会有很大的不同。ProvDMS的重点是研究人员需求、来源的粒度、工作流需求和对象设计。它的设计原则强调了用户需求的重要性,在来源与用户工具的集成上采取了内聚但独立的立场。
粒度.大多数系统同时包含细粒度和粗粒度,以避免限制用户可用数据的类型和数量。2ProvDMS实现了一个细粒度系统,但为用户提供了一个混合粒度的接口,因此使用可视化的跟踪沿代是上下文的。用户被显示为粗源对象,可以上下文扩展以提供更细粒度的信息。这允许用户仍然看到更精细、更精确的来源对象,这些对象专门映射到系统中的逻辑对象,但在查看来源时不会被不必要的信息负担过重。
与工作流的工具集成.ProvDMS的设计很大程度上取决于与现有工具集成的“何时”和“如何”。大多数工具都没有来源跟踪功能。ORNL的研究人员经常使用来自不同供应商的各种专业工具,这些工具没有出处支持。因此,ProvDMS不能有很多限制。虽然具有挑战性,但这将重点转向数据基础设施需求,以支持追溯来源,同时促进软件接口的开发,以支持未来的系统集成。为了支持工作流的意义,ProvDMS使用了用户的概念实验,其中传感器数据一旦从系统导出。用户可以选择任何工具,并可以选择将实验的不同状态导入到ProvDMS中。
起源的起源.溯源系统跟踪其如何创建和跟踪溯源对象的能力并不是ProvDMS最初的设计需求,而是从cpl的能力中产生的。通过跟踪溯源的溯源(PoP), ProvDMS提供了关于溯源系统何时创建新对象或对象版本、哪个用户负责对象的创建、执行跟踪功能的进程ID、以及执行环境等系统信息。这个系统的管理员现在可以随着时间的推移跟踪系统使用情况,并可以检测系统和来源数据存储的使用模式。
独特性.来源系统本质上涉及对象之间的层次连接。使用CPL作为来源后端允许用户轻松访问来源对象祖先。此外,CPL的版本控制系统确保每个对象都是唯一可识别的,这解决了用户能够多次定义一个实验的设计问题。
对象设计.对象设计塑造了整个ProvDMS,可以说包含了最困难的决策集。第一个挑战是确定预期用户如何与确定所需来源对象的数据交互。对于一个还停留在纸面上的系统来说,这很难衡量。我们不确定要存储和公开的种源的粒度级别,因为有可能很多种源数据都无法使用。我们倾向于更细的粒度,同时提供跨粒度范围的支持,以解决ProvDMS中尚未发现的未知问题。
CPL中的来源对象是使用三个主要属性唯一定义的:名称、类型,发起者.在ProvDMS使用CPL时,Name描述对象,Type决定对象的粒度。的发起者将通过分层的域名空间,以类似Java的包命名约定的方式使用。ProvDMS使用系统名称作为顶级域,用户作为下一个级别,接口作为最后一个级别。这保证了可以理解和唯一的发起者的存在实验(以及相应的来源对象)。
FRPs使用坎贝尔科学公司的数据记录器从设施中的1071个频道收集数据。Campbell Scientific的Loggernet数据库(LNDB)运行在专用服务器上,并将原始传感器输出填充到MySQL数据库中。ProvDMS运行在另一个专用服务器上,并从MySQL数据库检索数据以满足用户需求,从而提供原始数据存储与来源跟踪的完全分离。LNDB在数据服务器上创建所需的模式,而ProvDMS的体系结构是感知模式及其与FRP的逻辑关系,以便向用户呈现一个令人信服的简化界面。由于大部分数据都是私有的,因此进行检查以确保数据备份、安全性和隔离性。
图2表示FRP数据物理布局的逻辑表示。这影响了ProvDMS的来源对象设计。如图所示,传感器数据被分离为站,每个包含一套数据记录器.这些数据记录器由一组数据组成渠道.物理上,这些通道与传感器放置在整个测试设施的不同位置。
源系统的最终目标是跟踪用户实验中传感器数据的时间子集的参与情况。ProvDMS将它们视为对象。研究人员导出所选传感器通道的时间子集作为实验,然后可以在用户的工作空间中进行各种转换。一旦研究人员觉得准备好了,他们可以向系统提交实验的“状态”,以及任何额外的派生数据、支持文件、结果或其他元数据。ProvDMS允许用户将上传的文件映射为原始实验的衍生物。
FRP数据的逻辑表示被设计成与来源对象相对应。每一个类型对象的来源关系到它的逻辑表示。这些对象在表示上是相似的,但有一些不同。重要的是,还有从数据记录器到相关文件的附加链接。在用户定义的实验的情况下,这些是保存传感器数据通道的文件。对于派生实验,这些是派生过程中使用的任何相关文件。图3说明了它们表达方式的不同。使用两种类型的链接:版本依赖关系和数据流依赖关系。这些链路之间的差异对于CPL中的循环避免算法非常重要。
此外,对象之间有两种类型的链接:版本依赖关系用于作为以前对象的新版本创建的对象;数据流依赖关系用作不同对象之间的祖先链接,表示它们之间的数据转换。这两种类型的链接之间的差异对于CPL的循环规避算法非常重要(稍后将在覆盖物源可视化的一节中详细讨论)。
在体系结构上,ProvDMS具有分层设计。图4显示其层和组件的图表。兼容层包括两个包装器:一个PHP包装器和一个与PHP包装器交互的c++包装器。c++包装器抽象了源端后端交互。不同的组件内聚地相互作用:
当信息必须保存到来源数据库时,使用CPL允许ProvDMS独立于来源调用API钩子行事。抽象层处理用户操作到CPL API调用的转换,用于插入或查询来源信息。这被封装到包含PHP和c++包装器的兼容性层中。
PHP代码图6演示了包装器与c++的交互,以便存储或检索来源数据。
CPL是用C编写的,已经包含了一些c++功能。c++包装器通过一个高度面向对象的接口抽象了与CPL的交互。中的代码片段图7说明起源对象的创建。正如所示,PHP使用exec调用与c++包装器通信。放弃PHP扩展的决定是基于以下几个驱动因素:
权衡.在解耦的通用性和exec调用的性能开销之间进行权衡,尤其是对其中的一小部分而言,更倾向于使用PHP exec框架,而不是完整的PHP扩展。
简单.使用对外部c++可执行文件的exec调用,可以维护类似于bash的基于参数的简单调用。
源.在提供源代码的同时,将c++包装器作为外部可执行文件包括进来,允许管理员根据组织的需要修改包装器。
时间来实施.ProvDMS在八到九周内设计和实现,我们充分利用了快速开发。一个完整的PHP扩展实现超出了项目所分配的时间和预算范围。
与CPL的集成是ProvDMS实现中最顺畅的部分之一。在不同的客户端和服务器平台上测试和使用cpld集成系统时存在一些微小的差异。prodms的开发和测试使用Open-SUSE 12.3,生产版本使用Red Hat Enterprise Linux 6。
最早的问题之一涉及PHP和执行的c++调用之间的交互。为了让CPL提供PoP,它必须从执行环境中提取一些信息。这对于CPL代码的客户端执行非常有效,但是一旦CPL代码通过PHP exec调用执行,某些环境变量就不再可检索了。这些变量对于保存关于起源会话的信息是必要的,因此起源后端不能继续。通过一个快速的热修复程序传入适当的环境信息,避免了来自环境变量的影响。
ProvDMS的建立不仅是为了追踪实验的来源,也是FRPs所有传感器数据相关活动的一站式访问点。提供以下接口特性:
创造实验.ProvDMS允许用户选择电台、数据记录器和频道的子集作为新实验的定义。这些信息被解析并保存为服务器上的CSV文件。用户可以根据要求导出该数据。在创建时,每个实验都被源后端定义为一个源对象,该后端创建了所有更细粒度的对象。
实验推导.用户上传并将实验定义为以前实验的派生。这意味着用户可以在ProvDMS中保存数据和任何相关文件的状态,允许他们在未来跟踪派生。
数据状态.该系统提供了一个带有Sparklines的仪表盘,9这有助于总结服务器上的数据状态。火花线是没有轴标签的小趋势图,允许它们与文本内联嵌入,从而允许用户轻松地挑选出数据中的趋势。Sparklines可以显示来自不同传感器的关键通道状态,用于快速评估和检测系统故障。
出处可视化.该系统提供可视化功能,因此用户可以轻松地可视化他们的数据沿袭。来源可视化的主题值得单独讨论,下一节将详细讨论。
ProvDMS的早期开发大部分都花在确保它使用起来自然和简单上。例如,实验创建特性(图5)的设计采用了有效的用户交互原则,以实现简单的“流程”,并强调了在管理用户数据时效率的重要性。
任何人在开始可视化时应该问的第一个问题与设计来源系统时应该问的第一个问题相似:“什么信息是重要的?”
CPL的开发人员建议使用他们的Orbiter工具来可视化使用cpls的来源。Orbiter是一个用Java开发的外部可视化程序。它从CPL数据库(本例中为SQL后端)提取信息,并使用节点-链接图对其进行可视化。它包括基于时间的可视化功能和具有公共链接的节点的节点分组功能。它是可视化来自CPL数据库的信息的极好工具。
虽然制作Orbiter ProvDMS的可视化工具很容易,但还是存在一些问题。其中最主要的是CPL使用循环避免算法来版本化和链接对象,而不在对象来源中创建循环。上下文信息必须作为可视化的一部分显示出来。这意味着从CPL的祖先查询中删除特定的信息。图8显示了ProvDMS创建的来源信息子集及其与cpld的集成。由于数据流依赖关系和循环避免算法,存在两个版本的细粒度对象。这些额外的节点必须被移除,以清晰地显示来源。该信息的表示是正确的,但是许多对象对用户并不重要,可能会模糊可视化中的数据沿袭。为了更清晰地表示来源,必须删除由于避免循环而通过翻译对象创建的双重版本。
重要的是要注意这些解析案例的具体程度。在图中,实验对象缺少额外的翻译版本,因为这些实验只通过版本依赖进行链接。这意味着用户创建了一个与前一个实验具有相同标识的新实验。这是ProvDMS与CPL集成以创建该实验的新版本的一个提示。这个过程绕过了通过数据流依赖项手动链接对象的需要。这样的情况增加了解析单个案例以实现可视化的难度。
ProvDMS的可视化是通过使用各种JavaScript可视化库(如JIT (JavaScript InfoVis Toolkit)和D3.js(数据驱动文档))实现的。ProvDMS包括几种类型的可视化:
非唯一node-link树.由于Name、Type、Originator对象约定,CPL的来源实现中的对象本质上是唯一的。尽管对象最初是惟一创建的,但来源的本质是提供数据的分层流。对象在其生命周期的某个时刻无疑会有多个版本。多版本对象不会将其标识从一个版本更改为另一个版本。由于只有它们的版本发生了变化,因此对于这种类型的可视化,不再使用相同的约定唯一标识节点。
部队node-link布局.来源可视化的经典方法关注于从顶级来源对象(通常是选定的对象)根状视图。CPL的对象也被设计为使用这种类型的继承,依靠后代和祖先来遍历来源信息。即便如此,以不同的方式可视化对象的沿袭也会很有用,比如采用基于力量的布局。这个布局仍然像其他布局一样使用节点-链接格式,但它使用作用于每个节点的力系统来确定它们的位置。这使得系统更具互动性,因为用户可以通过拖动对图中的节点施加力。
图9而且10演示这种可视化的一些有趣的结果。在图9,可见可跟踪的数据沿袭流,以及具有类似粒度的对象的自然分组。实灰色线表示源对象之间的层次连接,这些源对象被分组为与用户定义的或导入的实验的单个版本相关的信息。橙色的节点表示顶级实验对象,它们是所有相关的细粒度对象的父级对象,如站、数据记录器和通道(分别为蓝色、红色和绿色)。在图10,最里面的节点和所有细粒度节点的连接创建了一个包含整个对象分组的伪“权重”。每个对象都有其关联的权重,这将影响所有连接节点的布局。分组往往充当可视化中的单个节点。
唯一的上下文节点-链接树.ProvDMS中可视化的当前实现在其出处可视化模块中使用了这种方法。与第一种方法类似,该方法使用节点-链接树以分层方式可视化来源。节点是异步扩展的,同时从起源数据库中提取信息。可以为某些对象显示上下文信息。通过这种方式,可以通过处理源对象属性以及对象本身来可视化更细的粒度。图11是该可视化的一个示例,使用上下文节点链接树。展开两个节点,以比它们的父节点更细的粒度级别显示元信息。实验节点是最粗糙的对象,而特定于来源对象的信息(用矩形表示)是最精细的粒度级别。
将来源引入科学研究的尝试突出了将来源应用于广义数据流的一些挑战和潜在解决方案。尽管我们成功地为ORNL的frp构建了一个处理来源的系统,但这个特定的用例使它不像许多其他来源系统那样通用。CPL作为库的可用性是有益的。使用CPL的成功可以归因于ProvDMS独立于来源后端,在系统设计中提供了所需的灵活性。在项目中开发的c++和php包装器代码将返回给CPL的作者,以便将来进行集成。
自动化传感器数据验证、缺失或损坏数据的估计、传感器健康状况的机器学习估计等方面的研究工作正在进行中,并计划将工作流与ProvDMS集成。这些系统将连接到ProvDMS的底层,允许对数据有效性、故障检测和质量保证的来源进行集成跟踪。
尽管具有挑战性的设计决策,可用性既指导又限制了ProvDMS的能力。我们限制了所收集的种源的特征和粒度,以确保最小的限制和很少的额外培训需要研究人员。其结果是一个简单的界面,用户可以手动跟踪他们的数据和实验。ProvDMS的模块化设计将允许随着系统的发展添加更新的来源收集方法。从我们对ProvDMS的设计和使用的经验中获得的知识应该很快会带来进一步的改进。
最后,ProvDMS可以作为在通常缺乏信息跟踪方法的环境中实现和使用公共数据原型来源的示例。ProvDMS应该展示这种系统在实现可复制科学方面的力量。
我们感谢哈佛大学CPLPeter Macko和Margo Seltzer的作者在项目中对CPL使用的支持和指导。这项工作由能源部门建筑技术活动编号为EB3603000的实地调查提案RAEB006资助。我们也感谢Edward Vineyard对这个项目的支持。
橡树岭国家实验室由UT-Battelle, LLC为美国能源部管理,合同为DE-AC05-00OR22725。本文由UT-Battelle有限责任公司撰写,与美国能源部的合同编号为DEAC05-00OR22725。美国政府保留和出版商,通过接受文章的出版,承认美国政府保留非独家的、付费的、不可撤销的、全球范围内的许可,以出版或复制本手稿的出版形式,或允许其他人这样做,为美国政府的目的。
相关文章
在queue.acm.org
Hazy:让构建和维护大数据分析变得更容易
阿伦·库马尔,牛峰,克里斯托弗Ré
http://queue.acm.org/detail.cfm?id=2431055
看不见的助理
盖太诺博列洛
http://queue.acm.org/detail.cfm?id=1147532
自愈网络
罗伯特·普尔,克里夫·鲍曼和夏洛特·伯吉斯·奥本
http://queue.acm.org/detail.cfm?id=864027
1.Alvarez, S, Vazquez-Salceda, J., Kifor, T., Varga, L. Z,和Willmott, S.在分布式器官移植管理中应用来源。数据的来源和注释.施普林格,2006,2836。
2.建立实际来源系统的问题。IEEE数据工程通讯, 4(2007), 3843。
3.maco, P.和Seltzer, M.一个通用的来源库。在四人会议记录th关于来源理论和实践的Usenix研讨会, 2012年。
4.C. Scheidegger, Koop, D. Santos, E. Vo, H. Callahan, S. Freire, J.和C. Silva,每次一层解决来源的挑战。并发与计算:实践与经验, 5(2008), 473483。
5.席尔瓦,c.t.,弗莱雷,J.和卡拉汉,S.P.。可视化的来源:再现性和超越。科学与工程计算, 5(2007), 8289。
6.西姆汉,杨利,普莱,B.和甘农,D.电子科学中的数据来源调查。ACM Sigmod记录34, 3(2005), 3136。
7.Simmhan, y.l., Plale, B.和Gannon, D. Karma来源框架的查询功能。并发与计算:实践与经验, 5(2008), 441451。
8.Szomszor, M., Moreau, L.关于Web和网格服务中数据来源的记录和推理。迈向有意义的互联网系统2003:CoopIS, DOA和ODBASE.施普林格,603620年。
9.Tufte, E. Sparklines:理论与实践,2004;http://www.edwardtufte.com/bboard/q-and-a-fetch-msg?msg_id=0001OR&topic_id=1.
©2014 0001 - 0782/14/02 ACM
允许为个人或课堂使用部分或全部作品制作数字或硬拷贝,但不得为盈利或商业利益而复制或分发,且副本在首页上附有本通知和完整的引用。除ACM外,本作品的其他组件的版权必须受到尊重。允许有信用的文摘。以其他方式复制、重新发布、在服务器上发布或重新分发到列表,都需要事先获得特定的许可和/或费用。请求发布的权限permissions@acm.org传真(212)869-0481。
数字图书馆是由计算机协会出版的。版权所有©2014 ACM, Inc.
没有发现记录