CN105027126A - 元数据驱动的实时分析框架 - Google Patents

元数据驱动的实时分析框架 Download PDF

Info

Publication number
CN105027126A
CN105027126A CN201380065209.XA CN201380065209A CN105027126A CN 105027126 A CN105027126 A CN 105027126A CN 201380065209 A CN201380065209 A CN 201380065209A CN 105027126 A CN105027126 A CN 105027126A
Authority
CN
China
Prior art keywords
data analysis
application
time data
real
bag
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
CN201380065209.XA
Other languages
English (en)
Other versions
CN105027126B (zh
Inventor
W·张
X·丁
W·H·托克
X·吴
R·曹
B·德米柔斯基
X·赵
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105027126A publication Critical patent/CN105027126A/zh
Application granted granted Critical
Publication of CN105027126B publication Critical patent/CN105027126B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/20Software design
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/31Programming languages or programming paradigms
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/31User authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F21/00Security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F21/30Authentication, i.e. establishing the identity or authorisation of security principals
    • G06F21/44Program or device authentication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2221/00Indexing scheme relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/21Indexing scheme relating to G06F21/00 and subgroups addressing additional information or applications relating to security arrangements for protecting computers, components thereof, programs or data against unauthorised activity
    • G06F2221/2141Access rights, e.g. capability lists, access control lists, access tables, access matrices

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Computer Hardware Design (AREA)
  • Computing Systems (AREA)
  • Human Computer Interaction (AREA)
  • Debugging And Monitoring (AREA)
  • Stored Programmes (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

提供了用于开发应用定义包、以及将应用定义包部署在云服务处以生成实时数据分析应用的方法、系统以及计算机程序产品。在一个实施方式中,接收对定义实时数据分析应用的应用定义包的选择。应用定义包指示应用名称并包括至少一个有效载荷定义、引用数据定义、以及查询定义。提供实时数据分析应用的域名,并且生成与该域名相关联的云服务。应用定义包被应用于应用模板以生成最终的实时数据分析包。最终的实时数据分析包在云服务中被实例化以创建实时数据分析应用的可网络访问的实例。

Description

元数据驱动的实时分析框架
背景
“数据分析”指的是用于分析数据以得出有关数据的结论的技术。数据分析由许多实体使用,包括由企业用来作出更好的商业决策,以及由科学家用来证明或反驳现有的模型或理论。数据分析不同于数据挖掘。在数据挖掘中,数据挖掘者对巨量的数据集进行整理以标识未被发现的模式并建立隐藏的关系。相反,数据分析旨在基于数据以及对数据分析进行配置的研究者的知识来推导结论。数据分析可包括对数据的检测、清理、转换、以及建模以突出有用信息、给出结论建议、支持作出决策、和/或提供其它有益结果。
在一些情况下,可对“实时”数据执行数据分析,“实时”数据是一旦被收集或生成就立即递送以供分析的数据。分析实时数据的数据分析应用可被称为实时数据分析应用。端对端实时数据分析应用的部署是复杂且劳动密集的。这样的实时数据分析应用的开发者不得不耗费大量的时间来为应用的各个组件编程,包括不得不编写数据获取组件、分析组件、以及结果分发组件。
发明内容
提供本发明内容是为了以精简的形式介绍将在以下详细描述中进一步描述的一些概念。本发明内容并不旨在标识所要求保护主题的关键特征或必要特征,也不旨在用于限制所要求保护主题的范围。
提供了用于开发包含用来构建数据分析应用的应用定义包的方法、系统以及计算机程序产品。可通过将应用定义应用解包成提供数据获取、数据分析以及结构分发组件的通用框架来在基于网络的服务(例如,云服务)处部署数据分析应用的实例。所部署的数据分析应用可接收数据(包括实时数据)并且可处理所接收的数据以生成输出数据。输出数据可被接收并显示给访问用户控制面板的用户。
在一个实施方式中,配置了一可部署的实时数据分析应用。用户被允许提供实时数据分析应用的名称、提供至少一个定义将由实时数据分析应用接收的实时数据的有效载荷定义、提供至少一个定义将由实时数据分析应用访问的引用数据的引用数据定义、以及提供至少一个定义被配置成针对实时数据和引用数据执行的查询以生成实时分析应用的输出数据的查询定义。用户可被允许配置实时数据分析应用的更多组件,包括安全性、控制流、用户界面控制面板组件、以及更多组件。生成指示应用名称并包括有效载荷定义、引用数据定义、以及查询定义的应用定义包。应用定义包被配置成可被应用于服务框架以允许实时数据分析应用的实例能够被部署并且可被网络访问。
在进一步的实施方式中,接收对定义实时数据分析应用的应用定义包的选择。应用定义包指示应用名称并包括至少一个有效载荷定义、至少一个引用数据定义、至少一个查询定义、以及可选的其它组件。提供实时数据分析应用的域名,并且生成与该域名相关联的基于网络的服务。应用定义包被应用于应用模板以生成最终的实时数据分析包。最终的实时数据分析包被解包以创建被部署到基于网络的服务的实时数据分析应用的实例。
在一个实施方式中,实时数据分析服务包括数据分析应用框架和基于网络的服务。数据分析应用框架可被配置以生成实时数据分析应用。数据分析应用框架包括事件收集模块、引用数据服务、以及数据分析处理引擎。基于网络的服务执行在至少一个服务器中,并且可被配置成为实时数据分析应用提供网络访问。事件收集模块被配置成接收定义将由事件收集模块接收的实时数据的至少一个有效载荷定义。引用数据服务被配置成接收定义由引用数据服务提供的引用数据的至少一个引用数据定义。数据分析处理引擎被配置成接收定义至少一个查询的至少一个查询定义。数据分析处理引擎被配置成根据一个或多个查询处理实时数据和引用数据以生成实时分析应用的输出数据。
此处还描述了包含计算机可读存储介质的计算机程序产品,计算机程序产品存储了计算机代码/指令,用于开发具有包形式的可部署实时数据分析应用、用于部署这样的包以生成实时数据分析应用、以及用于运行所部署的实时数据分析应用的实例,计算机代码/指令还实现了此处所描述的附加实施例。
下面将参考各个附图,详细描述本发明的进一步特点和优点,以及本发明的各实施例的结构和操作。值得注意的是,本发明不仅限于此处所描述的特定实施例。本文呈现这些实施例仅用于说明性的用途。基于本文所包含的描述,其它实施例对于相关领域的技术人员将是显而易见的。
附图说明
结合到本说明书并构成本说明书的一部分的附图示出了本发明,且与描述一起,进一步用于说明本发明的原理,并允许那些相关领域技术人员实施和使用本发明。
图1示出了根据示例实施例的数据分析系统的框图。
图2示出了根据示例实施例的、提供用于使用户能够开发可部署的数据分析应用包的过程的流程图。
图3示出了根据示例实施例的数据分析应用开发系统的框图。
图4示出了根据示例实施例的、提供用于基于可部署的数据分析应用包部署数据分析应用的过程的流程图。
图5示出了根据示例实施例的数据分析应用管理系统的框图。
图6示出了根据示例实施例的、提供用于运行作为数据分析应用包中的一项服务而部署的数据分析应用的过程的流程图。
图7示出了根据示例实施例的、可由数据分析应用包配置以作为数据分析服务运行的应用模板的框图。
图8示出了根据示例实施例的、根据数据分析应用包配置以实现完整数据分析服务的图7的应用模板的框图。
图9示出了根据示例实施例的、向基于云的数据分析服务的事件收集器提供数据的数据获取网络的框图。
图10示出了可用于实现本发明的各实施例的示例计算机的框图。
当结合其中相同的附图标记标识对应的元素的附图时,本发明的特征和优点将从以下阐述的详细描述中变得更加显而易见。在附图中,相同的参考标号一般指相同的、功能上相似的和/或结构上相似的元素。其中元素第一次出现的附图由对应的参考标号中最左侧的数字指示。
具体实施方式
I.介绍
本说明书公开了包括本发明的各特征的一个或多个实施例。所公开的实施例只例示了本发明。本发明的范围不仅限于所公开的实施例。本发明由所附的权利要求进行限定。
说明书中对“一个实施例”、“实施例”、“示例实施例”等等的引用表示所描述的实施例可包括特定特征、结构或特性,但是,每一个实施例可不必包括该特定特征、结构,或特征。此外,这些短语不一定指相同的实施例。此外,当关于某一实施例描述特定特征、结构或特性时,不管是否被明确描述,关于其他实施例来实现该特征、结构或特性被认为是在本领域技术人员的知识范围内。
本发明的多个示例性实施例在以下描述。应当理解,在此提供的任何章节/子章节标题不旨在限制。本文档中描述了各实施例,并且任何类型的实施例可被包括在任何章节/子章节下。此外,在任何章节/子章节中公开的各实施例可与在相同章节/子章节和/或不同章节/子章节中描述的任何其它实施例以任何方式组合。
II.示例实施例
“数据分析”指的是用于分析数据以得出关于数据的结论的技术,“数据分析”由许多实体使用以做出改进的商业决策、校验或反驳现有的模型或理论等等。数据分析可包括对数据的检测、清理、转换、以及建模以突出有用信息、给出结论建议、支持作出决策、和/或提供其它有益结果。在一些情况下,可对“实时”数据执行数据分析,“实时”数据是一旦被收集或生成就立即递送以供分析的数据。这样的实时数据可被持续接收,并且可在任何时间被分析以做出关于收集时的可适用环境的结论。
分析实时数据的数据分析应用可被称为实时分析应用。被部署到基于网络的服务(例如,云服务)的实时数据分析应用可被称为实时数据分析服务。端对端实时数据分析服务的部署是复杂且劳动密集的。这样的实时数据分析服务的开发者不得不耗费大量的时间来为服务的各个组件编程,包括不得不编写服务的数据获取组件、分析组件、以及结果分发组件。
根据各实施例,提供了使得数据分析应用能够以更有效率的方式来开发的数据分析框架或系统。例如,在一个实施例中,数据分析开发门户可被用来开发具有诸如包之类的可部署形式的数据分析应用。管理门户可接收包,并可基于该包将数据分析应用的实例作为服务部署在数据分析框架中。数据分析框架提供了用于数据收集的接口、用于执行数据分析的分析引擎、以及用于输出信息给一个或多个客户机的接口。根据包对框架进行配置以作为数据分析应用的数据分析服务运行。
例如,在一个实施例中,提供了元数据驱动的实时分析框架。框架采用了用于端对端实时分析方案的部署容器、以及实时分析服务主机。开发者可利用用来对端对端分析方案建模的设计工具。分析模型包括开发者所配置的各个组件,诸如进入事件获取端点、进入事件有效载荷定义、结果有效载荷定义、引用数据、控制流、以及配置。分析模型可被封装到部署容器中,部署容器是可被提供到网络位置(例如,提供到“云”)的单个部署文件(例如,“.adpac”文件)。
实时分析服务主机可接收部署文件中的分析模型,并且可通过物理地实例化包括在部署文件中的不同组件来部署分析模型。主机可自动将不同组件连接在一起,并且用户可配置并启动所得到的数据分析方案作为实时数据分析方案。实时分析服务主机可被配置成监视实时数据分析服务的健康。
由此,根据各实施例,开发者可定义数据分析服务的核心组件,诸如输入数据的结构、任何引用数据的结构、以及针对输入数据和引用数据执行的分析逻辑(例如,具有查询的形式)以生成输出数据,而无需额外生成数据获取组件、分析组件、以及结果分发组件。取而代之的,可为开发者提供数据获取组件、分析组件、以及结果分发组件的基础架构或框架。在所提供的框架中实例化为开发者提供的组件以创建端对端数据分析服务。
图1示出了根据示例实施例的数据分析系统100的框图。如图1中所示,数据分析系统100包括部署门户102、管理门户104、以及作为数据分析应用110的服务的服务106。部署门户102被配置成为开发者提供配置和打包数据分析应用的组件的接口(例如,工具等)。组件的示例包括输入数据定义(或模型)、应用数据定义(或模型)、以及数据分析逻辑定义(例如,一个或多个查询)。部署门户102对可传输的数据分析应用包108(例如,文件或其它容器)中的组件打包,并且可被部署以创建数据分析应用的实例。
如图1中所示,管理门户104可接收数据分析应用包108,并且可通过解包其中所包含的组件来创建由数据分析应用包108定义的数据分析应用的实例。例如,如图1中所示,管理门户104可在服务106处部署数据分析应用包108以创建由服务106主控的数据分析应用110。服务106包括数据分析应用110的框架,诸如输入数据接口、引用数据服务、数据分析引擎、以及输出数据接口(例如,用户或客户机接口)。服务106可以是基于网络或云的服务,使得客户机可接收来自数据分析应用110的输出信息。可基于数据分析应用包108在一个或多个服务处部署任何数量的数据分析应用110的实例作为数据分析服务。
在各实施例中,图1中示出的数据分析系统100的各元素可以各种方式来配置。在随后的子章节中描述了数据分析系统100的示例实施例。
A.开发可部署数据分析应用的示例实施例
如上所述,开发门户102被配置成为开发者提供用于配置数据分析应用的各组件以及用于生成数据分析应用包108的接口,数据分析应用包108是可传输且可部署的容器,其可被用来生成数据分析应用的实例。部署门户102可按各种方式配置,并且可用各种方式执行其功能。
例如,图2示出了根据实例实施例的、提供用于使用户能够开发可部署的数据分析应用包的过程的流程图200。在一个实施例中,流程图200可以由部署门户102来执行。为了说明的目的,图2的流程图200结合图3来描述。图3示出了根据示例实施例的数据分析应用开发系统300的框图。数据分析应用开发系统300是图1的开发门户102的示例。如图3中所示,数据分析应用开发系统300包括开发工具302以及由开发工具302生成的用户接口304。开发工具302包括应用信息编辑器306、有效载荷定义编辑器308、引用数据定义编辑器310、查询定义编辑器312、控制流编辑器314、控制面板UI组件接收器328以及包生成器330。以下描述流程图200和数据分析应用开发系统300。值得注意的是并非流程图200的每一步骤都在每个实施例中执行,并且流程图200的步骤可以其它顺序执行。基于以下描述,其他结构及操作的实施例对于相关领域的技术人员将是显而易见的。
开发工具302是一种工具,开发者可与之交互以生成用于数据分析应用的可部署包,诸如应用定义包108。开发工具302可用各种方式实现。例如,开发工具302可被实现在开发者直接与之交互的计算设备中,包括以诸如桌面应用、移动应用、或Web应用之类的应用的形式。作为替换,开发工具302可被实现在远程计算设备(例如,服务器)中,远程计算设备将用户接口304以网页形式发送给开发者的计算设备,该网页在web浏览器中显示给开发者。
合适的计算设备的示例包括固定计算机(例如,个人计算机、服务器等)或移动计算设备,诸如手持设备(例如,设备、RIM设备、个人数字助理(PDA))、膝上型计算机、笔记本计算机、平板计算机(例如,苹果iPadTM、微软SurfaceTM等)、上网本、移动电话(例如,智能手机,诸如苹果iPhone、Google AndroidTM手机、微软phone等)、或其它类型的计算设备。Web浏览器的示例包括华盛顿州雷蒙德市的微软公司开发的Internet加利福尼亚州山景城的Mozilla公司开发的Mozilla以及加利福尼亚州山景城的Chrome。
用户界面304可具有任何数量和任意组合的开发者可与之交互的用户界面元素。例如,用户界面304可以是包括一个或多个图形用户界面控件(例如,文本输入框、下拉菜单、单选框、复选框)的图形用户界面(GUI)。用户可以任何方式与用户界面304交互,诸如通过键盘、拇指旋律、定点设备、滚球、指点杆、触敏显示器(例如,通过使用手势输入)、语音识别系统、和/或描述在本文中其它处或以其它方式已知的其它用户界面元件。
如图2所示,流程图200开始于步骤202。在步骤202,使用户能够提供实时数据分析应用的名称。例如,在一个实施例中,应用信息编辑器306可生成使开发者能够提供开发者正开发的实时数据分析应用的名称的用户界面控件。例如,开发者可键入应用名称、可说出应用名称、或以另一种方式将应用名称提供给用户界面304以使应用名称被应用信息编辑器306所接收。应用信息编辑器306可以任何形式在应用信息316中输出应用名称,形式包括文件(例如,文本文件、XML文件等)。
在各实施例中,用户可被允许以这种方式提供进一步的应用信息。例如,用户能够与应用信息编辑器306生成的用户界面控件交互以配置实时数据分析应用的安全性特性,诸如能够配置认证类型或授权策略。认证模块可使用认证类型来认证尝试通过网络与实时数据分析应用进行通信的用户和/或设备。认证类型的示例包括口令、Kerberos、公钥加密等。认证模块可使用认证策略来提供访问控制以达到信息安全的目的,以控制能够通过网络与实时数据分析应用的特定资源交互的用户和/或设备(例如,定义诸如读、写之类的访问权限,以及执行权限)。认证策略的示例包括使用访问控制列表、基于能力的安全性等。应用信息编辑器306可指示应用信息316中的安全性特性。
在步骤204,使用户能够提供定义将由实时数据分析应用所接收的实时数据的至少一个有效载荷定义。例如,在一个实施例中,有效载荷定义编辑器308可生成使得开发者能提供一个或多个有效载荷定义的用户界面控件。有效载荷定义定义了从一个或多个实时数据收集实体所接收的实时数据的格式。“实时数据”指的是一旦被收集/生成就立即被递送以供处理的数据,其通常是随时间变化的数据。例如,有效载荷定义可定义被接收为实时数据的数据结构或对象的标识符、被标识的数据结构的一个或多个数据字段/属性、和/或所接收的实时数据的一个或多个其它方面。因此,用户可键入有效载荷定义、通过语音提供有效载荷定义、或以另一种方式将有效载荷定义提供给用户界面304,以使有效载荷定义被有效载荷定义编辑器308接收。可为特定实时数据分析应用提供任何数量的有效载荷定义以定义将被接收的实时数据的相应的不同类型。有效载荷定义编辑器308可以任何形式在有效载荷定义308中输出一个或多个有效载荷定义,形式包括文件(例如,文本文件、XML文件等)。
例如,在城市公交车运输数据分析应用中,可为代表城市公交车沿着它们在城市内的路线的行程的实时数据提供示例有效载荷定义。这样的有效载荷定义可被标识为“公交车行程数据”并且可包括一个或多个字段,诸如公交车标识符、公交车位置(例如,坐标)、公交车速度、公交车行进方向、以及时间戳。
在步骤206,使用户能够提供定义将由实时数据分析应用所使用的引用数据的至少一个引用数据定义。例如,在一个实施例中,引用数据定义编辑器310可生成使得开发者能提供一个或多个引用数据定义的用户界面控件。引用数据定义定义了从引用数据源接收到的引用数据的格式。“引用数据”指的是与实时数据分析应用相关联的固定数据。例如,引用数据定义可定义引用数据的数据结构或对象的标识符、被标识的数据结构的一个或多个数据字段/属性、和/或引用数据的一个或多个其它方面。因此,用户可键入引用数据定义、通过语音提供引用数据定义、或以另一种方式将引用数据定义提供给用户界面304,以使引用数据定义被引用数据定义编辑器310接收。可为特定实时数据分析应用提供任何数量的引用数据定义以定义将被接收的引用数据的相应的不同类型。引用数据定义编辑器310可以任何形式在引用定义320中输出一个或多个引用数据定义,形式包括文件(例如,文本文件、XML文件等)。
例如,继续城市公交车传输数据分析应用,可为公交车站的位置提供示例引用数据定义,公交车站的位置是固定位置。这样的引用数据定义可被标识为“公交车站位置数据”并且可包括一个或多个字段,诸如公交车站标识符、以及公交车站位置(例如,坐标)。
在步骤208,使用户能够提供至少一个查询定义,查询定义被配置成对实时数据和引用数据进行操作以生成用于实时数据分析应用的输出数据。例如,在一个实施例中,查询定义编辑器312可生成使得开发者能提供一个或多个查询定义的用户界面控件。查询定义定义了将对(根据一个或多个有效载荷定义来定义的)实时数据进行操作并可选地对(根据一个或多个引用数据定义来定义的)引用数据进行操作的数据分析逻辑以生成用于实时数据分析应用的输出数据。查询定义可用任何适当的方式格式化,包括格式化为公式或等式、计算机程序的形式(例如,XML、JavaScript、C++等)、或另一种方式。因此,用户可键入查询定义、通过语音提供查询定义、从文档加载查询定义、或以另一种方式提供查询定义给用户界面304,以使查询定义被查询定义编辑器312接收。在一个实施例中,查询定义编辑器312可提供用于协助输入查询定义的自动代码完成。可为特定实时数据分析应用提供任何数量的查询定义以定义要被执行的相应的查询。查询定义编辑器312可以任何形式在查询定义322中输出一个或多个查询定义,形式包括文件(例如,文本文件、XML文件等)。
例如,继续城市公交车运输数据分析应用,可提供示例查询定义以确定在一分钟时间范围内以超过50Km/hr行驶的公交车的数量。在另一示例中,可提供查询定义以确定在某一时刻哪些公交车位于距到达车站一分钟车程内。
在步骤210,使用户能够为实时数据分析应用提供至少一个控制流定义。例如,在一个实施例中,控制流编辑器314可生成使开发者能够提供一个或多个控制流(也称为工作流)的用户界面控件。控制流定义要被执行的用于控制实时数据分析应用的输出数据流的控制逻辑。例如,在一个实施例中,控制流可同步输出数据的提供和/或定义其它与控制相关的功能。控制流可用任何适当的方式格式化,包括以表格的形式、作为计算机程序、或以另一种方式。因此,用户可键入控制流、通过语音提供控制流、从文档加载控制流、或以另一种方式提供控制流给用户界面304,以使控制流被控制流编辑器314接收。可为特定实时数据分析应用提供任意数量的控制流。控制流编辑器314可以任何形式在控制流定义324中输出一个或多个控制流,形式包括文件(例如,文本文件、XML文件等)。
例如,继续城市公交车运输数据分析应用,可提供将输出数据同步到一个1分钟时间范围的示例控制流,输出数据指示经确定的以超过50Km/hr行驶的公交车的数量以及经确定的位于距到达车站一分钟车程内的公交车。
在步骤212,使用户能够为实时数据分析应用提供用户控制面板的至少一个控制面板用户界面(UI)组件。例如,在一个实施例中,控制面板UI组件接收器328可生成使得开发者能提供一个或多个控制面板UI组件的用户界面控件。控制面板UI组件定义可被显示在用户控制面板中(例如,在网页或其它用户界面中)以向用户(例如,顾客)提供实时数据分析应用的输出数据的用户界面输出显示元素。可提供任何类型和数量的用户界面输出显示元素作为控制面板UI组件以便显示输出数据,用户界面输出显示元素包括图形、地图、表格、图表、图形、以程序代码(例如,XML、JavaScript等)定义的UI元素。可以程序代码(例如,XML、HTML等)的形式提供应用控制面板页面定义,其定义了应用控制面板的布局,包括任意被提供的控制面板UI组件的位置。因此,用户可以任意方式上传或提供将由控制面板UI组件接收器328接收的控制面板UI组件(以及应用控制面板页面定义)到用户界面304。可为特定实时数据分析应用提供任意数量的控制面板UI组件。控制面板UI组件接收器328可在控制面板UI组件326中输出一个或多个控制面板UI组件(以及应用控制面板页面定义)。
例如,继续城市公交车运输数据分析应用,一个示例第一控制面板UI组件是一个表格,其显示了被确定以超过50Km/hr行驶的公交车和位于距公交车站1分钟车程内的公交车的公交车列表,以及一个第二控制面板UI组件,其是一张城市地图,其显示了城市中公交车站的位置以及表格中列举的公交车的位置。
在另一实施例中,控制面板UI组件接收器328可生成使开发者能够提供应用图标并且能够提供其它类型的控制面板UI组件的用户界面控件,应用图标可被用来标识这样的实时数据分析应用列表中的实时数据分析应用。
再次回到图2,在步骤214,生成被配置成使实时数据分析应用的实例能够被部署的应用定义包。例如,在一个实施例中,包生成器330可被配置成生成应用定义包108以包括所生成的数据分析应用的组件。例如,包生成器330可包括应用信息316、有效载荷定义318、引用数据定义320、查询定义322、控制流定义324、以及控制面板UI组件326中的一个或多个。包生成器330可以各种方式生成应用定义包108,包括被压缩(例如,ZIP文件)或未被压缩的单个文件、包含多个文件的文件夹等。在一个实施例中,包生成器330可生成列举包括在应用定义包108中的组件的应用清单文件,并且可将应用清单文件包括在应用定义包108中。
B.用于部署数据分析应用的示例实施例
如以上结合图1所描述的,用户可与管理门户104交互以创建数据分析应用包108定义的数据分析应用的实例。例如,如图1中所示,管理门户104可在服务106处部署数据分析应用包108以创建由服务106主控的数据分析应用110。管理门户104可按各种方式配置,并且可用各种方式执行其功能。
例如,图4示出了根据示例实施例的、提供用于基于可部署的数据分析应用包部署数据分析应用的过程的流程图400。在一个实施例中,流程图400可以由管理门户104来执行。为了说明的目的,图4的流程图400结合图5来描述。图5示出了根据示例实施例的数据分析应用管理系统500的框图。数据分析应用管理系统500是图1的管理门户104的示例。如图5中所示,数据分析应用管理系统500包括部署工具502、服务器504、以及由部署工具502生成的用户接口506。部署工具502包括云服务生成器508、包实例化器510、以及数据库生成器512。服务器504包括云服务514,云服务514是图1中的服务106的示例。以下描述流程图400和数据分析应用管理系统500。值得注意的是并非流程图400的每一步骤都在每个实施例中执行,并且流程图400的步骤可以其它顺序执行。基于以下描述,其他结构及操作的实施例对于相关领域的技术人员将是显而易见的。
部署工具502是用户(例如,顾客等)可与之交互以基于诸如应用定义包108之类的可部署数据分析应用包来生成数据分析应用的工具。部署工具502可以各种方式实现,包括以与图3的开发工具302类似的方式(例如,作为远程或本地计算设备中的应用)。类似地,用户界面506可以类似于图3的用户界面304的方式实现(例如,作为本地应用的用户界面、显示在浏览器中的网页等)。用户界面506可以任何方式来配置,并且可具有任意数量和组合的用户可与之交互的用户界面控件,包括以上所描述的以及以其它方式已知的那些用户界面配置和控件。
在图4中,流程图400以步骤402开始。在步骤402中,接收对定义实时数据分析应用的应用定义包的选择。例如,如图5中所示,用户可与用户界面506(例如,顾客控制面板)交互以选择用于部署为基于网络的实施数据分析服务的应用定义包108。例如,可从显示在用户界面506中的包的列表中选择包108。在一个实施例中,应用图标和/或应用名称(如以上所描述的)可被显示在用户界面506中以标识供(在其它应用名称和/或应用图标的列表中)选择的包108。基于选择,应用定义包108可由部署工具502加载(例如,加载到存储器中)。
在一个实施例中,当包108被加载时,部署工具502(例如,包实例化器510)可校验包108。例如,包108的内容可被分析以确定是否所有组件都存在(例如,如应用清单所指示的等),并且每个组件可被分析以确定其是否有效。例如,头部信息可被分析、错误检查可被执行、和/或可执行进一步的校验过程。
在步骤404中,接收实时数据分析应用的域名。例如,如图5中所示,用户可与用户界面506交互以输入被部署的基于网络的实时数据分析服务的域名。例如,用户可键入域名、可说出域名、或以另一种方式将域名提供给用户界面506以使域名被云服务生成器508所接收。
在步骤406中,生成与该域名相关联的基于网络的服务。例如,在一个实施例中,云(基于网络的)服务生成器508可生成由服务器504主控的云服务514(基于网络的服务)。云服务514可在服务器504处被主控以便可通过用户(在步骤404)提供的域名来访问。云服务514可被配置成通过网络提供实时数据分析应用作为服务。网络可以是局域网(LAN)、广域网(WAN)、或网络的组合,如因特网。云服务514可主控包括至少一个网页(应用控制面板)的网站,该网页使得用户能够使用web浏览器、移动设备或其它应用访问来自实时数据分析应用的输出数据。此外,云服务514可主控作为后端监视控制台的网页,用于监视实时数据分析应用的健康和/或其它活动。再有,云服务514可主控一地址,实时数据可被传送到该地址以由实时数据分析应用所使用。
例如,在一说明性示例中,当用户提供“foo”的域名给用户界面506时,作为响应,云服务生成器508可为所得到的云服务分配以下URL:
http://foo.cloudapp.net——这是应用控制面板的网络地址
http://foo.cloudapp.net/EventReceiver——这是实时数据收集设备将真实数据发送到的网络地址
http://foo.cloudapp.net/monitor:这是后端监视控制台的网络地址
这些URL可在用户界面506中显示给用户或以任何其它方式提供给用户。
在步骤408中,应用定义包被应用于应用模板以生成最终的实时数据分析包。如图5中所示,包实例化器510接收应用定义包108。在一个实施例中,包实例化器510可对包108解包,并且可任选地将包108的组件应用于应用模板以生成最终的实时数据分析包。例如,可存在包括以下内容的应用模板:可填写的空白、可填写的程序代码部分、可配置的参数、和/或其它可填写或可配置的部分,这些部分可由实时数据分析应用包的组件来填写和/或配置以生成相应的完全配置的、端对端的实时数据分析服务。以此方式,可通过在通用应用模板中填写来自数据分析应用包的应用专用信息来生成任意数量的不同类型的实时数据分析服务/应用。
例如,图5示出了可由包实例化器510接收的应用模板520。包实例化器可根据数据分析应用包108配置应用模板520以生成供部署到云服务514的最终的数据分析应用包。在各实施例中,应用模板520可包括以下可配置数据分析应用部分的一个或多个,包括数据分析引擎、应用监视器、认证模块、授权模块、事件收集器、引用数据服务、状态引擎、以及用户控制面板。应用模板520的这些部分将在以下子章节中进一步描述。
在步骤410中,最终的实时数据分析包被实例化到基于网络的服务。例如,如图5中所示,包实例化器510可基于应用定义包108将实时分析应用522部署在云服务514处。当被激活时,云服务514通过网络提供实时数据分析应用522作为服务,包括如上所述的,在相关联的域名处主控实时数据分析应用522的网页。在以下子章节中描述了在云服务处部署实时分析应用的进一步细节。
在步骤412中,生成用于存储来自实时数据分析应用的输出数据的数据库。例如,如图5中所示,云服务生成器508可向数据库生成器512提供生成数据库指令528。作为响应,数据库生成器512生成耦合到实时数据分析应用522的数据库516。数据库516被配置成接收、存储、以及组织与实时数据分析应用522相关联的数据,包括由此生成的输出数据。数据库516可以是基于SQL(结构化查询语言)的数据库或本领域技术人员所知的其它类型的数据库516。
在步骤414,将包括在应用定义包中的至少一个用户界面组件部署到为实时数据分析应用生成的网络可访问的用户控制面板。例如,如上所述的,包108可包括用户控制面板的一个或多个控制面板UI组件。在一个实施例中,包实例化器510可解包该一个或多个控制面板UI组件并将其提供给服务器504以包括在应用控制面板518中。应用控制面板518包括在云服务生成器508所指派的如以上描述的网络地址(例如http://foo.cloudapp.net)处由云服务514主控的一个或多个网络可访问的网页。该一个或多个控制面板UI组件可被嵌入在一个或多个网页中供显示给用户(例如,在客户机处)以允许和/或增强输出数据的显示。该一个或多个控制面板UI组件可根据应用控制面板页面定义(如果存在)来排列。
在步骤416,向中央数据库注册实时数据分析应用。例如,如图5中所示,包实例化器510可生成注册请求530,该注册请求被发送给中央数据库524。中央数据库524可与服务器504相关联或可位于另一计算设备。注册请求530使中央数据库524指示由其维护的活跃数据分析应用列表中的实时数据分析应用522。此外,可在中央数据库524中指示实时数据分析应用522是正运行还是停止、和/或关于实时数据分析应用522的其它状态信息的指示。
此外,在实例化实时数据分析应用522之后,用户可与用户界面506交互以执行一个或多个功能,诸如启动实时数据分析应用522、停止实时数据分析应用522、移除实时数据分析应用522等。
C.部署到云服务的数据分析应用的示例实施例
如以上关于(图4的)流程图400的步骤408和410所描述的,图4的部署工具502可通过将数据分析应用包应用于应用模板并且将结果实例化到云服务来生成数据分析应用的实例。
图6示出了根据示例实施例的、提供用于运行作为数据分析应用包中的一项服务而部署的数据分析应用的过程的流程图。在一个实施例中,流程图600可由图5的包实例化器510来执行。参考图7—9描述流程图600如下。值得注意的是并非流程图600的每一步骤都在每个实施例中执行,并且流程图600的步骤可以图6中显示的顺序以外的其它顺序执行。基于以下描述,其他结构及操作的实施例对于相关领域的技术人员将是显而易见的。
在图6中,流程图600以步骤602开始。在步骤602,使用定义将由实时数据分析应用所接收的实时数据的至少一个有效载荷定义来配置事件收集模块。在一个实施例中,包实例化器510可使用包108中接收的一个或多个有效载荷定义(例如,图3的有效载荷定义318)来配置应用模板520的事件收集模块。事件收集模块被配置成接收实时数据。当由包实例化器510配置时,事件收集模块能够接收根据一个或多个有效载荷定义配置的实时数据。
例如,图7示出了根据示例实施例的、可由数据分析应用包配置以作为数据分析服务运行的应用模板700的框图。图7示出了应用模板700的图形表示,应用模板可实际上以程序代码(例如,XML代码、JavaScript代码、C++代码等)的形式实现。如图7中所示,应用模板700包括数据分析处理引擎702、应用监视器704、认证模块706、授权模块708、事件收集器710、引用数据服务712、状态引擎714、以及用户控制面板716。应用模板的这些特征中的一个或多个可能在一些实施例中不存在。应用模板700可由应用定义包的组件来填充,并且可在云服务中主控,以生成实时数据分析服务。
图7的事件收集器710被配置成接收实时数据。当由包实例化器510配置时,事件收集器710能够接收根据一个或多个有效载荷定义配置的实时数据。例如,图8示出了根据示例实施例的、根据数据分析应用包配置以实现完整数据分析应用服务800的图7的应用模板700的框图。如图8中所示,可使用第一有效载荷定义802a和第二有效载荷定义802b来配置事件收集器710。如上所描述的,第一和第二有效载荷定义802a和802b定义了可被事件收集器710(在服务800的运行期间)接收的实时数据的第一类型和第二类型。值得注意的是,在各实施例中,可使用对应于将被接收的实时数据的不同类型的数量的任意数量的有效载荷定义来配置事件收集器710。
如图8中所示,事件收集器710接收由一个或多个数据源828a-828n所生成和/或收集的实时数据818。数据源828a-828n可包括包括任何适当类型的传感器的一个或多个固定设备、移动设备等。数据源828a-828n收集和/或生成实时数据,并以有线和/或无线方式将实时数据818提供给事件收集器710。
例如,图9示出了根据示例实施例的、向基于云的数据分析服务的事件收集器710提供数据的数据获取网络900的框图。数据获取网络900是以说明目的提供的数据获取设备的网络的示例。如图9中所示,数据获取网络900包括第1-第n设备902a-902n。第1-第n设备902a-902n是图8中的数据源828a-828n的示例。设备902a-902n中的每一个被配置成收集(例如,感测)数据和/或生成实时数据。设备902a-902n的示例包括固定设备和移动设备,这些设备可各自包括一个或多个传感器、处理器或其它逻辑、和/或用于收集和/或生成数据的其它特征。例如,传感器可检测速度、温度、压力、方向、传输的数据量、和/或可被表示为数据的其它参数。设备902a-902n能够以无线或有线方式将这样的数据分别作为实时数据904a-904n传送。可生成和/或收集任何类型的实时数据。事件收集器710可以任何方式接收实时数据904a-904n。在图8中,实时数据904a-904n包括根据第一载荷定义804a以及根据第二载荷定义804b格式化的实时数据。
例如,继续城市公交车运输示例,设备902a-902n可以是城市公交车上携带的位置、速度、以及方向传感器。实时数据904a-904n可包括设备902a-902n所收集的实时数据,包括公交车位置、公交车速度、公交车行驶方向、以及时间戳,以及还包括公交车标识符。
再次回到图6,在步骤604,使用定义将由实时数据分析应用所访问的引用数据的至少一个引用数据定义来配置引用数据服务。在一个实施例中,包实例化器510可使用包108中接收的一个或多个引用数据定义(例如,图3的引用数据定义320)来配置应用模板520的引用数据服务。例如,如图8中所示的,包实例化器510可用引用数据定义812a-812n来配置图7中的应用模板700的引用数据服务712。当被包实例化器510配置时,引用数据服务712能够接收和/或维护(例如,存储在数据库或其它存储中)根据引用数据定义812a-812n配置的引用数据。在服务800运行期间,数据分析处理引擎702可从引用数据服务712请求引用数据以供处理查询中使用。
在步骤606,使用根据至少一个查询定义来定义的至少一个查询来配置处理引擎。在一个实施例中,包实例化器510可使用包108中接收的一个或多个查询定义(例如,图3的查询定义322)来配置应用模板520的数据分析处理逻辑。例如,如图8中所示的,包实例化器510可使用查询808a-808c(基于相应的查询定义)配置图7中的应用模板700的数据分析处理引擎702。当被包实例化器510配置时,数据分析处理引擎702能够接收来自引用数据服务712的引用数据832(根据引用数据定义812a-812n格式化)以及来自事件收集器710的实时数据820a和820b(根据有效载荷定义802a和802b格式化)。在服务800运行期间,数据分析处理引擎702执行查询808a-808c来生成输出数据810a-810c,查询808a-808c各自使用实时数据820a和820b和/或引用数据812a-812n。
在步骤608,使用至少一个控制流定义来配置状态引擎。在一个实施例中,包实例化器510可使用包108中接收的一个或多个控制流定义(例如,图3的控制流定义324)来配置应用模板520的状态引擎。例如,如图8中所示的,包实例化器510可使用控制流814a-814n(基于相应的控制流定义)来配置图7中的应用模板700的状态引擎714。状态714被配置成提供服务800的“世界观”,并且可与数据分析处理引擎702、引用数据服务712、以及用户控制面板824交互以执行其功能。当被包实例化器510配置时,状态引擎714能够同步用户控制面板716处的输出数据810a-810c作为根据控制流814a-814n的经同步的输出数据824。以此方式,处理引擎702在特定时间值内生成的各种输出数据可被提供供在用户面板716处一起显示(例如,在一共同的表格行中,一起在一地图中等)。此外,在一个实施例中,状态引擎714可将引用数据控制信号822提供给引用数据服务832以根据控制流814a-814b控制提供给数据分析处理引擎702的引用数据的定时。
在服务800运行期间,一个或多个客户机830可访问用户面板716以访问经同步的输出数据824。客户机830可从网页中或其它形式的用户控制面板716中接收经同步的输出数据824,作为输出数据816a和816b。输出数据816a和816b可由客户机830通过网络834(例如,LAN、WAN、网络的组合,诸如因特网等)接收。例如,输出数据816a和816b可根据包108中提供的一个或多个控制面板UI组件、以一个或多个表格(由表格查看器显示)或以其它形式显示在网页中。
在步骤610,根据为实时数据分析应用指示的认证类型配置认证模块。在一个实施例中,包实例化器510可使用包108中接收的(例如,在应用信息316中的)认证类型来配置应用模板520的认证模块。例如,包实例化器510可使用认证类型来配置图7中的应用模板700的认证模块706。认证模块706可使用认证类型来对尝试通过网络834与服务800通信的客户机830进行认证。认证类型的示例包括口令、Kerberos、公钥加密等。
在步骤612,根据为实时数据分析应用指示的授权策略配置授权模块。在一个实施例中,包实例化器510可使用包108中接收的(例如,在应用信息316中的)授权策略来配置应用模板520的授权模块。例如,包实例化器510可使用授权策略来配置图7中的应用模板700的授权模块708。授权模块706可使用授权策略来提供出于信息安全目的的访问控制以控制能够接收输出数据的客户机830。认证策略的示例包括使用访问控制列表、基于能力的安全性等。
III.示例计算设备实施例
可以硬件或软件以及软件和/或固件的任意组合的形式来实现开发门户102、管理门户104、服务106、数据分析应用110、开发工具302、应用信息编辑器306、有效载荷定义编辑器308、引用数据定义编辑器310、查询定义编辑器312、控制流编辑器314、控制面板UI组件接收器328、包生成器330、部署工具502、云服务生成器508、包实例化器510、数据库生成器512、云服务514、实时数据分析应用522、数据分析处理引擎702、应用监视器704、认证模块706、授权模块708、事件收集器710、引用数据服务712、状态引擎714、用户控制面板716、流程图200、流程图400、以及流程图600。例如,开发门户102、管理门户104、服务106、数据分析应用110、开发工具302、应用信息编辑器306、有效载荷定义编辑器308、引用数据定义编辑器310、查询定义编辑器312、控制流编辑器314、控制面板UI组件接收器328、包生成器330、部署工具502、云服务生成器508、包实例化器510、数据库生成器512、云服务514、实时数据分析应用522、数据分析处理引擎702、应用监视器704、认证模块706、授权模块708、事件收集器710、引用数据服务712、状态引擎714、用户控制面板716、流程图200、流程图400、以及流程图600可被实现为配置成在一个或多个处理器中执行的并且存储在计算机可读存储介质中的计算机程序代码。作为替换,开发门户102、管理门户104、服务106、数据分析应用110、开发工具302、应用信息编辑器306、有效载荷定义编辑器308、引用数据定义编辑器310、查询定义编辑器312、控制流编辑器314、控制面板UI组件接收器328、包生成器330、部署工具502、云服务生成器508、包实例化器510、数据库生成器512、云服务514、实时数据分析应用522、数据分析处理引擎702、应用监视器704、认证模块706、授权模块708、事件收集器710、引用数据服务712、状态引擎714、用户控制面板716、流程图200、流程图400、以及流程图600可被实现为硬件逻辑/电气电路。
例如,在一个实施例中,开发门户102、管理门户104、服务106、数据分析应用110、开发工具302、应用信息编辑器306、有效载荷定义编辑器308、引用数据定义编辑器310、查询定义编辑器312、控制流编辑器314、控制面板UI组件接收器328、包生成器330、部署工具502、云服务生成器508、包实例化器510、数据库生成器512、云服务514、实时数据分析应用522、数据分析处理引擎702、应用监视器704、认证模块706、授权模块708、事件收集器710、引用数据服务712、状态引擎714、用户控制面板716、流程图200、流程图400、以及流程图600中的一个或多个可被一起在片山系统(SoC)上实现。SoC可包括集成电路芯片,该集成电路芯片包括以下一个或多个:处理器(如微控制器、微处理器、数字信号处理器(DSP)等等)、存储器、一个或多个通信接口、和/或用于执行其功能的进一步的电路和/或嵌入的固件。
图10描绘了其中可以实现本发明的各实施例的计算机1000的示例性实现。例如,部署门户102、管理门户104、服务106、开发系统300、部署工具502、和/或服务504可以在类似于计算机1000、包括计算机1000的一个或多个特征和/或可替换特征的一个或多个计算机系统中实现。此处所提供的对计算机1000的描述只是为了说明,并不是限制性的。如相关领域的技术人员所知道的,本发明的各实施例可以在其他类型的计算机系统中实现。
如图10所示,计算机1000包括一个或多个处理器1002、系统存储器1004,以及将包括系统存储器1004的各种系统组件耦合到处理器1002的总线1006。总线1006表示若干类型的总线结构中的任何一种总线结构的一个或多个,包括存储器总线或存储器控制器、外围总线、加速图形端口,以及处理器或使用各种总线体系结构中的任何一种的局部总线。系统存储器1004包括只读存储器(ROM)1008和随机存取存储器(RAM)1010。基本输入/输出系统1012(BIOS)储存在ROM 1008中。
计算机1000还具有一个或多个以下驱动器:用于读写硬盘的硬盘驱动器1014、用于读或写可移动磁盘1018的磁盘驱动器1016、以及用于读或写诸如CD ROM、DVD ROM或其他光介质之类的可移动光盘1022的光盘驱动器1020。硬盘驱动器1014、磁盘驱动器1016,以及光驱动器1020分别通过硬盘驱动器接口1024、磁盘驱动器接口1026,以及光学驱动器接口1028连接到总线1006。驱动器以及它们相关联的计算机可读介质为计算机提供了对计算机可读指令、数据结构、程序模块,及其他数据的非易失存储器。虽然描述了硬盘、可移动磁盘和可移动光盘,但是,也可以使用诸如闪存卡、数字视频盘、随机存取存储器(RAM)、只读存储器(ROM)等等之类的其他类型的计算机可读存储介质来储存数据。
数个程序模块可被储存在硬盘、磁盘、光盘、ROM或RAM上。这些程序包括操作系统1030、一个或多个应用程序1032、其他程序模块1034以及程序数据1036。应用程序1032或程序模块1032可包括例如用于实现开发门户102、管理门户104、服务106、数据分析应用110、开发工具302、应用信息编辑器306、有效载荷定义编辑器308、引用数据定义编辑器310、查询定义编辑器312、控制流编辑器314、控制面板UI组件接收器328、包生成器330、部署工具502、云服务生成器508、包实例化器510、数据库生成器512、云服务514、实时数据分析应用522、数据分析处理引擎702、应用监视器704、认证模块706、授权模块708、事件收集器710、引用数据服务712、状态引擎714、用户控制面板716、流程图200、流程图400、以及流程图600的计算机程序逻辑(例如,计算机程序代码或指令)。
用户可以通过诸如键盘1038和定点设备1040之类的输入设备向计算机1000中输入命令和信息。其它输入设备(未示出)可包括话筒、控制杆、游戏手柄、卫星天线、扫描仪、触摸屏和/或触摸平板、用于接收语音输入的语音识别系统、用于接收手势输入的手势识别系统、诸如此类。这些及其他输入设备常常通过耦合到总线1006的串行端口接口1042连接到处理器1002,但是,也可以通过其他接口,诸如并行端口、游戏端口、通用串行总线(USB)端口,来进行连接。
显示组件1044也通过诸如视频适配器1046之类的接口连接到总线1006。除了监视器之外,计算机1000还可包括其他外围输出设备(未示出),如扬声器和打印机。
计算机1000通过适配器或网络接口1050、调制解调器1052、或用于通过网络建立通信的其他手段连接到网络1048(例如,因特网)。可以是内置的或外置的调制解调器1052可以经由串行端口接口1042连接到总线1006,如图10所示,或者可以使用包括并行接口的另一接口类型连接到总线1006。
如此处所用的,术语“计算机程序介质”、“计算机可读介质”以及“计算机可读存储介质”被用于泛指介质,诸如与硬盘驱动器1014相关联的硬盘、可移动磁盘1018、可移动光盘1022,以及其他介质,诸如闪存卡、数字视频盘、随机读取存储器(RAM)、只读存储器(ROM)等。这些计算机可读存储介质与通信介质(不包括通信介质)相区别且不重叠。通信介质通常在诸如载波等已调制数据信号中承载计算机可读指令、数据结构、程序模块或者其它数据。术语“已调制数据信号”是指具有以在信号中编码信息的方式被设定或改变其一个或多个特征的信号。作为示例而非限制,通信介质包括无线介质,如声学、RF、红外和其它无线介质。实施例也针对这些通信介质。
如上文所指示的,计算机程序和模块(包括应用程序1032及其他程序模块1034)可被储存在硬盘、磁盘、光盘、ROM或RAM上。这样的计算机程序也可以通过网络接口1050、串行端口接口1042或任何其他接口类型来接收。这样的计算机程序,当由应用执行或加载时,使得计算机1000能实现此处所讨论的本发明的特征。相应地,这样的计算机程序表示计算机1000的控制器。
本发明还涉及包括储存在任何计算机可使用介质上的软件的计算机程序产品。这样的软件,当在一个或多个数据处理设备中执行时,使数据处理设备如此处所描述的那样操作。本发明的各实施例使用现在已知的或将来已知的任何计算机可使用或计算机可读介质。计算机可读介质的示例包括,但不仅限于,诸如RAM、硬盘驱动器、软盘、CD ROM、DVD ROM、zip磁盘、磁带、磁存储设备、光存储设备、MEM(存储器)、基于纳米技术的存储设备等等之类的存储设备。
VI.结论
尽管上文描述了本发明的各实施例,但是,应该理解,它们只是作为示例来呈现的,而不作为限制。那些精通有关技术的人员将理解,在不偏离如所附权利要求书所定义的本发明的精神和范围的情况下,可以在形式和细节方面进行各种修改。因此,本发明的范围不应该受到上述示例性实施例的任一个的限制,而只应根据下面的权利要求和它们的等效内容进行定义。

Claims (10)

1.一种用于部署实时数据分析应用的方法,包括:
接收对于定义所述实时数据分析应用的应用定义包的选择,所述应用定义包指示应用名称并包括至少一个有效载荷定义、至少一个引用数据定义、以及至少一个查询定义;
接收所述实时数据分析应用的域名;
生成与所述域名相关联的基于网络的服务;
将所述应用定义包应用于应用模板以生成最终的实时数据分析包;以及
在所述基于网络的服务中实例化所述最终的实时数据分析包以创建所述实时数据分析应用的实例。
2.如权利要求1所述的方法,其特征在于,进一步包括:
生成用于存储来自所述实时数据分析应用的输出数据的数据库。
3.如权利要求1所述的方法,其特征在于,进一步包括:
将包括在所述应用定义包中的至少一个控制面板用户界面(UI)组件部署到为所述实时数据分析应用生成的可网络访问的用户控制面板。
4.如权利要求1所述的方法,其特征在于,进一步包括:
向中央数据库注册所述实时数据分析应用。
5.如权利要求1所述的方法,其特征在于,进一步包括:
向用户提供为所述实时数据分析应用生成的用户控制面板的第一网络地址;
向用户提供第二网络地址,实时数据分析将以所述第二网络地址发送并由所述实时数据分析应用接收;以及
向用户提供所述实时数据分析应用的监视控制台的第三网络地址。
6.如权利要求1所述的方法,其特征在于,进一步包括:
允许用户开始所述实时数据分析应用的实例、停止所述实时数据分析应用的实例、或者移除所述实时数据分析应用的实例。
7.一种配置成部署实时数据分析应用的部署工具,包括:
包实例化器,所述包实例化器被配置成接收对于定义所述实时数据分析应用的应用定义包的选择,所述应用定义包指示应用名称并包括至少一个有效载荷定义、至少一个引用数据定义、以及至少一个查询定义;以及
云服务生成器,所述云服务生成器被配置成接收所述实时数据分析应用的域名,并且生成与所述域名相关联的基于网络的服务;
所述包实例化器被配置成将所述应用定义包应用于应用模板以生成最终的实时数据分析包,以及在所述基于网络的服务中实例化所述最终的实时数据分析包以创建所述实时数据分析应用的实例。
8.如权利要求7所述的部署工具,其特征在于,所述云服务生成器被配置成生成用于存储来自所述实时数据分析应用的输出数据的数据库;以及
所述包实例器被配置成将包括在所述应用定义包中的至少一个控制面板用户界面(UI)组件部署到为所述实时数据分析应用生成的可网络访问的用户控制面板。
9.如权利要求7所述的部署工具,其特征在于,所述云服务生成器被配置成向用户提供为所述实时数据分析应用生成的用户控制面板的第一网络地址,向用户提供第二网络地址,实时数据将以所述第二网络地址发送并由所述实时数据分析应用接收以及向用户提供所述实时数据分析应用的监视控制台的第三网络地址。
10.一种包括计算机可读介质的计算机程序产品,所述计算机可读介质上记录有计算机程序代码,包括:
用于使处理器能够执行权利要求1-6中的任何一项的计算机程序代码。
CN201380065209.XA 2012-12-13 2013-12-13 元数据驱动的实时分析框架 Active CN105027126B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US13/713,369 2012-12-13
US13/713,369 US9251324B2 (en) 2012-12-13 2012-12-13 Metadata driven real-time analytics framework
PCT/US2013/075158 WO2014093909A2 (en) 2012-12-13 2013-12-13 Metadata driven real-time analytics framework

Publications (2)

Publication Number Publication Date
CN105027126A true CN105027126A (zh) 2015-11-04
CN105027126B CN105027126B (zh) 2018-05-15

Family

ID=49918853

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201380065209.XA Active CN105027126B (zh) 2012-12-13 2013-12-13 元数据驱动的实时分析框架

Country Status (4)

Country Link
US (2) US9251324B2 (zh)
EP (1) EP2932418B1 (zh)
CN (1) CN105027126B (zh)
WO (1) WO2014093909A2 (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9251324B2 (en) * 2012-12-13 2016-02-02 Microsoft Technology Licensing, Llc Metadata driven real-time analytics framework
US9116766B2 (en) 2013-07-31 2015-08-25 Sap Se Extensible applications using a mobile application framework
KR101501669B1 (ko) * 2013-12-24 2015-03-12 한국인터넷진흥원 비정상 행위를 탐지하기 위한 행위 탐지 시스템
US9838431B2 (en) * 2014-11-28 2017-12-05 International Business Machines Corporation Context-based cloud security assurance system
US9459843B1 (en) * 2015-03-31 2016-10-04 Mckesson Financial Holdings Methods and apparatuses for providing dynamic definition and selection of metric applications
US10261985B2 (en) 2015-07-02 2019-04-16 Microsoft Technology Licensing, Llc Output rendering in dynamic redefining application
US10198405B2 (en) 2015-07-08 2019-02-05 Microsoft Technology Licensing, Llc Rule-based layout of changing information
KR20170010574A (ko) * 2015-07-20 2017-02-01 삼성전자주식회사 정보처리장치, 영상처리장치 및 그들의 제어방법
US10437575B2 (en) 2015-08-14 2019-10-08 Aeris Communications, Inc. Aercloud application express and aercloud application express launcher
US10648823B2 (en) 2017-06-22 2020-05-12 Aeris Communications, Inc. Learning common routes and automatic geofencing in fleet management
US10231084B2 (en) 2015-08-14 2019-03-12 Aeris Communications, Inc. System and method for monitoring devices relative to a learned geographic area
US9774994B2 (en) 2015-08-14 2017-09-26 Aeris Communications, Inc. System and method for monitoring devices relative to a user defined geographic area
US10277582B2 (en) 2015-08-27 2019-04-30 Microsoft Technology Licensing, Llc Application service architecture
US10250452B2 (en) 2015-12-14 2019-04-02 Microsoft Technology Licensing, Llc Packaging tool for first and third party component deployment
US10666517B2 (en) 2015-12-15 2020-05-26 Microsoft Technology Licensing, Llc End-to-end automated servicing model for cloud computing platforms
US10394532B2 (en) * 2015-12-22 2019-08-27 Opera Solutions U.S.A., Llc System and method for rapid development and deployment of reusable analytic code for use in computerized data modeling and analysis
US20170242559A1 (en) * 2016-02-18 2017-08-24 Salesforce.Com, Inc. Automation of application creation utilizing flexible frameworks
US10270796B1 (en) * 2016-03-25 2019-04-23 EMC IP Holding Company LLC Data protection analytics in cloud computing platform
US10606450B2 (en) * 2016-06-24 2020-03-31 Accenture Global Solutions Limited Method and system for visual requirements and component reuse driven rapid application composition
CN110300961A (zh) * 2017-02-17 2019-10-01 维萨国际服务协会 统一智能连接器
US10691514B2 (en) * 2017-05-08 2020-06-23 Datapipe, Inc. System and method for integration, testing, deployment, orchestration, and management of applications
US11132636B2 (en) 2017-06-22 2021-09-28 Aeris Communications, Inc. System and method for monitoring and sharing location and activity of devices
US10735904B2 (en) 2017-06-22 2020-08-04 Aeris Communications, Inc. System and method for monitoring location and activity of devices
US11627195B2 (en) 2017-06-22 2023-04-11 Aeris Communications, Inc. Issuing alerts for IoT devices
US10956363B2 (en) * 2018-04-13 2021-03-23 EMC IP Holding Company LLC Automated data management via machine-readable data definition files
US20190361697A1 (en) * 2018-05-22 2019-11-28 Pure Storage, Inc. Automatically creating a data analytics pipeline
US11050735B2 (en) 2018-08-23 2021-06-29 International Business Machines Corporation Customizable authentication system
US11316754B2 (en) * 2019-11-07 2022-04-26 Verizon Patent And Licensing Inc. Systems and methods for network analytics service automation
US20220086846A1 (en) * 2020-09-11 2022-03-17 Motojeannie, Inc. Latency-as-a-service (laas) platform
CN112149391B (zh) * 2020-09-28 2023-06-09 平安证券股份有限公司 信息处理方法、信息处理装置、终端设备及存储介质
US20220188089A1 (en) * 2020-12-15 2022-06-16 Baker Hughes Holdings Llc Framework for industrial analytics

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058657B1 (en) * 2003-01-07 2006-06-06 Perlegen Sciences, Inc. Architecture for developing and reusing analytic and visualization components and methods of use thereof
CN101326515A (zh) * 2005-12-09 2008-12-17 微软公司 元数据驱动的应用程序部署
US20090288064A1 (en) * 2007-08-03 2009-11-19 Ailive Inc. Method and apparatus for non-disruptive embedding of specialized elements
US20100083287A1 (en) * 2008-09-30 2010-04-01 Maximilien E Michael Declarative Representation of Networked Applications
US20110029963A1 (en) * 2009-07-31 2011-02-03 Rick Smith System and method for deploying software into a computing environment
US20120022916A1 (en) * 2010-07-20 2012-01-26 Accenture Global Services Limited Digital analytics platform

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6272213B1 (en) * 1997-12-31 2001-08-07 Alcatel Usa Sourcing, L.P. Method and system for service engineering in an advanced intelligent network
US7657887B2 (en) * 2000-05-17 2010-02-02 Interwoven, Inc. System for transactionally deploying content across multiple machines
US20110214157A1 (en) * 2000-09-25 2011-09-01 Yevgeny Korsunsky Securing a network with data flow processing
US7882497B2 (en) 2001-05-17 2011-02-01 Attachmate Corporation Symbiotic computer application and system and method for generation and presentation of same
US7350184B2 (en) * 2002-05-02 2008-03-25 Bea Systems, Inc. System and method for enterprise application interactions
US20060136417A1 (en) 2004-12-17 2006-06-22 General Electric Company Method and system for search, analysis and display of structured data
US8341259B2 (en) * 2005-06-06 2012-12-25 Adobe Systems Incorporated ASP for web analytics including a real-time segmentation workbench
US20080159633A1 (en) 2007-01-03 2008-07-03 Blue Reference, Inc. Method and Apparatus for Managing Data-Analysis Parts in a Word Processor Application
US20080163043A1 (en) * 2007-01-03 2008-07-03 Blue Reference, Inc. Method and Apparatus for Data Analysis in a Word Processor Application
US20090240695A1 (en) * 2008-03-18 2009-09-24 International Business Machines Corporation Unique cohort discovery from multimodal sensory devices
US7596620B1 (en) 2008-11-04 2009-09-29 Aptana, Inc. System and method for developing, deploying, managing and monitoring a web application in a single environment
US8572717B2 (en) * 2008-10-09 2013-10-29 Juniper Networks, Inc. Dynamic access control policy with port restrictions for a network security appliance
US20120102103A1 (en) * 2010-10-20 2012-04-26 Microsoft Corporation Running legacy applications on cloud computing systems without rewriting
US9251215B2 (en) * 2011-01-14 2016-02-02 Hewlett Packard Enterprise Development Lp Data staging for results of analytics
US9159024B2 (en) * 2011-12-07 2015-10-13 Wal-Mart Stores, Inc. Real-time predictive intelligence platform
US9396504B2 (en) * 2012-04-18 2016-07-19 Abb Research Ltd. Centralized control center for electrical network computational services
US9251324B2 (en) * 2012-12-13 2016-02-02 Microsoft Technology Licensing, Llc Metadata driven real-time analytics framework

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7058657B1 (en) * 2003-01-07 2006-06-06 Perlegen Sciences, Inc. Architecture for developing and reusing analytic and visualization components and methods of use thereof
CN101326515A (zh) * 2005-12-09 2008-12-17 微软公司 元数据驱动的应用程序部署
US20090288064A1 (en) * 2007-08-03 2009-11-19 Ailive Inc. Method and apparatus for non-disruptive embedding of specialized elements
US20100083287A1 (en) * 2008-09-30 2010-04-01 Maximilien E Michael Declarative Representation of Networked Applications
US20110029963A1 (en) * 2009-07-31 2011-02-03 Rick Smith System and method for deploying software into a computing environment
US20120022916A1 (en) * 2010-07-20 2012-01-26 Accenture Global Services Limited Digital analytics platform

Also Published As

Publication number Publication date
WO2014093909A3 (en) 2014-10-09
EP2932418A4 (en) 2016-08-24
CN105027126B (zh) 2018-05-15
EP2932418A2 (en) 2015-10-21
WO2014093909A2 (en) 2014-06-19
US20160103657A1 (en) 2016-04-14
US20140173683A1 (en) 2014-06-19
US10013239B2 (en) 2018-07-03
US9251324B2 (en) 2016-02-02
EP2932418B1 (en) 2022-08-03

Similar Documents

Publication Publication Date Title
CN105027126A (zh) 元数据驱动的实时分析框架
US8667394B1 (en) System for generating an intelligent cross-platform document
CN102520841B (zh) 收集用户接口
CN106605234B (zh) 使用近场通信与许可控制共享内容
CN105612495A (zh) 在计算机系统中安装所选更新之后自动解决冲突
CN105653368A (zh) 用于私人云计算的系统和方法
JP2018513426A (ja) 自動インテリジェントデータスクレイピング及び検証
CN106575300A (zh) 用于识别文档中的对象的基于图像的搜索
CN105612496A (zh) 基于存储的生命周期信息来自动推荐更新
CN105765577A (zh) 可定制的数据服务
TW201519067A (zh) 自電子文件中的資料產生視覺化
CN105027116A (zh) 电子阅读器内平面书籍到富书籍的转换
CN106164851B (zh) 基于对已实现的过程进行过程建模的计算机系统的自动配置
US20200409724A1 (en) User interface widget recommendation
CN107704104A (zh) 表单输入项联想方法、系统、设备及存储介质
US10956026B2 (en) Smart element filtering method via gestures
EP4235538A1 (en) Process recipe digital twin structuring
US11604907B2 (en) System and method for designing car systems
CN108021317A (zh) 用于屏幕编辑的方法及装置
CN104781784A (zh) 基于动态模型的管理工具
Arslan et al. Modelling Internet of Things Software for Public Transportation
CN108885447B (zh) 分析和控制冷链系统的方法和系统
US20180300290A1 (en) Virtualized server side rendering
CN102110166A (zh) 基于浏览器的本体3d可视化和编辑的系统及方法
CN110333847B (zh) 一种后端接口自动文档生成的集成方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant