CN111400336B - 数据处理系统及其实现的方法和硬件存储设备 - Google Patents
数据处理系统及其实现的方法和硬件存储设备 Download PDFInfo
- Publication number
- CN111400336B CN111400336B CN202010092462.6A CN202010092462A CN111400336B CN 111400336 B CN111400336 B CN 111400336B CN 202010092462 A CN202010092462 A CN 202010092462A CN 111400336 B CN111400336 B CN 111400336B
- Authority
- CN
- China
- Prior art keywords
- data
- application
- actions
- key
- record
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/242—Query formulation
- G06F16/2428—Query predicate definition using graphical user interfaces, including menus and forms
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/10—File systems; File servers
- G06F16/17—Details of further file system functions
- G06F16/178—Techniques for file synchronisation in file systems
- G06F16/1794—Details of file format conversion
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
- G06F16/24568—Data stream processing; Continuous queries
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/901—Indexing; Data structures therefor; Storage structures
- G06F16/9024—Graphs; Linked lists
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/448—Execution paradigms, e.g. implementations of programming paradigms
- G06F9/4494—Execution paradigms, e.g. implementations of programming paradigms data driven
-
- G—PHYSICS
- G06—COMPUTING OR CALCULATING; COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
- G06F8/43—Checking; Contextual analysis
- G06F8/433—Dependency analysis; Data or control flow analysis
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Human Computer Interaction (AREA)
- Mathematical Physics (AREA)
- Debugging And Monitoring (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Communication Control (AREA)
- Storage Device Security (AREA)
- User Interface Of Digital Computer (AREA)
- Peptides Or Proteins (AREA)
Abstract
本发明涉及数据处理系统及其实现的方法和硬件存储设备。描述了一种用于处理各自与键的值相关联的带键数据项的方法,这些带键数据项来自多个不同的数据流,该处理包括:采集这些带键数据项,基于这些带键数据项中的至少一个的内容确定用于执行一个或多个动作的一个或多个指定条件的满足度,以及使得响应于该确定执行该一个或多个动作中的至少一个动作。
Description
本申请是申请号为201880013670.3、申请日为2018年2月22日、发明名称为“对用于处理带键网络数据流的参数化应用的动态执行”的申请的分案申请。
技术领域
本申请涉及用于在参数化应用中采集、验证、格式化和进一步处理(近)实时网络数据流以执行某些动作(例如跨如电信网络等网络执行的动作)的网络就绪计算机实施的方法、计算机系统和计算机可读介质。
优先权要求
本申请要求于2017年2月23日提交的美国临时专利申请第62/462,498号和于2017年8月28日提交的美国专利申请第15/688,587号的优先权,这些专利申请中的每一个的全部内容通过引用并入本文。
背景技术
在处理从不同源接收的数据记录的通用方法中,多个不同系统采集数据记录,每个系统被配置成处理特定类型的数据。一旦特定类型的数据由被配置成处理该类型数据的系统处理,系统然后就将数据下游传递到另一个应用以供进一步处理。在常规系统中,此下游应用然后对接收到的数据记录执行附加格式化(和/或重新格式化)以将其转换为该应用的可接受格式。因此,此常规方法导致接收和采集数据的系统与处理数据的下游应用之间的时延和延迟交互。由于单个数据记录必须多次被重新格式化,这种常规方法还会导致增加的时延。例如,数据记录由接收它并处理它的每个系统格式化(和/或重新格式化),导致增加的时延的累积。这种(各自执行其自己的数据格式化和处理的不同系统的)非集成系统框架还会导致处理数据时的时延,因为数据不能被实时或至少近实时地处理或分析。因此,如果当前情况已经再次改变,则依赖于已处理数据的操作或动作还会越来越多地被延迟,或最终根本不执行,从而使执行过时。
发明内容
与这些常见方法相反,本文所描述的方法、系统和计算机可读介质以简化和加速的方式执行数据整合和数据记录管理的准备。所描述的能力允许对批量数据流和实时数据流的采集、验证、格式化和进一步处理(例如,在接收数据时实时或近实时,例如,不将已采集数据存储到磁盘)。另外,通过具有执行采集、检测和动作的操作的单个执行系统,执行系统消除了将数据整合到一个系统中以进行数据采集并且然后将该已采集数据重新整合到另一个系统中以执行检测和动作所涉及的复杂性。本文所描述的能力能够提供对数据记录或数据项的立即响应(例如,当它们被接收时),这也提供了应用结果的即时可见性。由于期望的最终动作通常取决于数据的快速处理,因此最终动作(如物流或电信中的动作)极大地受益于对来自各种不同源的大量数据的更快速处理,从而产生各种不同格式的数据。本文所描述的系统可以为五千万用户每天处理超过二十亿个数据记录或数据项。与常见方法相反,本文所描述的系统提供增加的带宽和减少的存储器消耗。
一种用于处理各自与键的值相关联的带键数据项的方法,这些带键数据项来自多个不同的数据流,该处理包括:采集这些带键数据项,基于这些带键数据项中的至少一个的内容确定用于执行一个或多个动作的一个或多个指定条件的满足度,以及使得响应于该确定执行该一个或多个动作中的至少一个动作,该方法包括:访问包括对应的第一规范、第二规范和第三规范的第一参数化应用、第二参数化应用和第三参数化应用;其中,该第一规范指定定义该第一参数化应用的一个或多个性质的一个或多个参数以及这些一个或多个参数的一个或多个对应值;其中,该第二规范指定定义该第二参数化应用的一个或多个性质的一个或多个参数以及这些一个或多个参数的一个或多个对应值,其中,该第二规范包括规则和针对这些规则的对应条件;其中,第三规范指定定义该第三参数化应用的一个或多个性质的一个或多个参数,以及这些一个或多个参数的一个或多个对应值;维持该第二规范的针对该键的对应值的状态,其中,针对该键的特定值的状态指定在该状态下该第二规范的一个或多个部分将由该第二参数化应用执行;使用该第一规范指定的一个或多个参数的一个或多个值执行该第一参数化应用以执行包括以下操作的处理:从一个或多个数据源和一个或多个数据流、多个数据源或多个数据流中采集数据项,其中,已采集的第一数据项的格式与已采集的第二数据项的格式不同,并且其中,数据项与键的值相关联;根据该第一参数化应用的第一规范变换该第一数据项和第二数据项,以获得经变换的数据项;以及使用该经变换的数据项填充队列;使用由该第二规范指定的一个或多个参数的一个或多个值执行该第二参数化应用以处理该队列中的经变换的数据项,其中,处理该经变换的数据项包括:对于与该键的特定值相关联的经变换的数据项中的一个或多个,标识该第二规范的关于该键的特定值的当前状态;标识该第二规范的要在该当前状态下执行的一部分中的一个或多个规则;执行所标识的一个或多个规则;确定该一个或多个经变换的数据项中的至少一个满足在该当前状态下执行的一个或多个规则中的至少一个的一个或多个条件;响应于该确定,生成指定对一个或多个动作的执行的数据结构;使得该第二规范关于该键的特定值从其当前状态转变到后续状态;以及将已生成数据结构传输至该第三参数化应用;以及使用该第三规范指定的一个或多个参数的一个或多个值执行该第三参数化应用以执行操作,这些操作包括:基于该数据结构中指定的一个或多个动作中的至少一个,发送一个或多个指令以使得执行该一个或多个动作中的至少一个动作。一个或多个计算机的系统可以被配置成通过在系统上安装软件、固件、硬件或他们的组合来执行特定操作或动作,该系统在操作中导致或使系统执行动作。一个或多个计算机程序可以被配置成通过包括当由数据处理装置执行时使装置执行动作的指令来执行特定操作或动作。在特定方面,前述方法、计算机程序和/或系统包括以下特征和/或动作中的一个或多个。
这些动作进一步包括在一个或多个用户界面的操作期间,显示用于为该第一参数化应用、该第二参数化应用和该第三参数化应用中的每一个指定该一个或多个参数的一个或多个值的一个或多个用户界面元素。执行该第一参数化应用包括使用由用于该第一参数化应用的一个或多个参数的一个或多个用户界面元素指定的一个或多个值来执行该第一参数化应用。执行该第二参数化应用包括使用由用于该第二参数化应用的一个或多个参数的一个或多个用户界面元素指定的一个或多个值来执行该第二参数化应用,其中,该一个或多个指定值在判定是否满足该一个或多个条件时被这些规则用作输入。执行该第三参数化应用包括使用由用于该第三参数化应用的一个或多个参数的一个或多个用户界面元素指定的一个或多个值来执行该第三参数化应用。数据项包括数据记录,并且其中,该变换包括根据由该第一参数化应用的第一规范指定的格式重新格式化该数据记录。
这些动作进一步包括基于对该第二参数化应用的执行,用来自与该数据记录相关联的用户的简档的数据来丰富该数据记录,其中,该丰富根据由该第二参数化应用的第二规范指定的指令进行以从存储器中检索该用户的简档数据并用该检索到的简档数据填充该数据记录的一个或多个字段。参数化应用包括用于数据处理的应用,其中,该应用包括可用一个或多个值配置的一个或多个参数。这些动作进一步包括执行到一个或多个第三方系统的反馈回路(例如,同步或异步反馈回路)以请求对该一个或多个动作的执行的确认。这些动作进一步包括基于对该第二参数化应用的执行,生成针对该键的特定值的一个或多个关键性能指标(KPI),其中,KPI指定与该键的特定值相关联的数据项的一个或多个值。例如,KPI可以包括性能数据,例如,该性能数据指定活动或一组预定义逻辑的一个或多个部分或逻辑分支的性能。
这些动作进一步包括接收针对该键的特定值的数据,其中,该接收到的数据指示关于该一个或多个动作中的至少一个动作的反馈;以及使用该反馈数据更新针对该键的特定值的KPI。该一个或多个动作包括以下各项中的一项或多项:向外部设备发送文本消息、向外部系统发送电子邮件、在案例管理系统中打开工作订单的票证、切断移动电话连接、向针对性设备提供web服务、使用通知传输该一个或多个经变换的数据项的数据包、以及对该一个或多个经变换的数据项执行托管在一个或多个外部计算机上的数据处理应用。该一个或多个指令经由网络连接发送,以使得在外部设备上执行该一个或多个动作中的至少一个,该方法进一步包括:接收指示该一个或多个动作中的至少一个动作是(i)成功完成还是(ii)失败的反馈消息。如果该一个或多个动作中的至少一个动作的一部分未完成,则认为该一个或多个动作中的至少一个动作失败,其中,该反馈消息指示该一个或多个失败动作中的至少一个失败动作的哪个部分未完成。该反馈消息指示该一个或多个动作中的至少一个动作成功完成和/或失败的结果数据。
这些动作进一步包括基于该结果数据改变该第一参数化应用、该第二参数化应用和/或该第三参数化应用的一个或多个参数的一个或多个指定值;以及使用该改变的一个或多个指定值重新执行该第一参数化应用、该第二参数化应用和/或该第三参数化应用。经由网络连接发送该一个或多个指令,以使得在外部设备上执行该一个或多个动作,该方法进一步包括:从该外部设备接收反馈消息,该反馈消息包括该一个或多个动作中的所执行的至少一个动作的结果数据;将该结果数据与同成功完成对该一个或多个动作中的至少一个动作的执行相关联的预定数据进行比较;以及基于该比较,确定对该一个或多个动作中的至少一个动作的执行成功完成,或对该一个或多个动作中的至少一个的动作执行失败。
这些动作进一步包括基于该结果数据改变该第一参数化应用、该第二参数化应用和/或该第三参数化应用的一个或多个参数的一个或多个指定值;以及使用该改变的一个或多个指定值重新执行该第一参数化应用、该第二参数化应用和/或该第三参数化应用。如果该结果数据偏离该预定数据小于预定量,则将对该一个或多个动作中的至少一个动作的执行确定为成功完成,并且其中,如果该结果数据偏离该预定数据至少预定量,则将对该一个或多个动作中的至少一个动作的执行确定为失败。
这些动作进一步包括在一个或多个用户界面的操作期间,显示用于指定该预定数据和该预定量的一个或多个用户界面元素。这些动作进一步包括在一个或多个用户界面的操作期间,经由一个或多个已显示用户界面元素输出该一个或多个动作中的至少一个动作是(i)成功完成还是(ii)失败。如权利要求15所述的方法,进一步包括:在一个或多个用户界面的操作期间,经由一个或多个已显示用户界面元素输出该结果数据。这些动作进一步包括基于该结果数据,经由一个或多个已显示用户界面元素,接收对该第一参数化应用、该第二参数化应用和/或该第三参数化应用的一个或多个参数的一个或多个指定值的用户指定改变;以及使用该改变的一个或多个指定值重新执行该第一参数化应用、该第二参数化应用和/或该第三参数化应用。通过将指定对该一个或多个动作的执行的输出用作输入,由该第三参数化应用自动执行发送该一个或多个指令以引起对该一个或多个动作中的至少一个动作的执行。
提供本发明内容从而以简化形式引入将在一下具体实施方式中进一步描述的一系列概念。本发明内容并非旨在标识所要求保护的主题的关键特征或重要特征,也并非旨在用于限制所要求保护的主题的范围。
附图说明
图1是实施用于处理带键数据的参数化逻辑的系统的图示。
图2A是示例性数据流图的图示。
图2B和图2C是用于定制数据流图的界面的部分的图示。
图3A是用于计算近实时数据记录聚合的系统的图示。
图3B、图3C、图4、图5A、图5B各自是用于处理带键数据的系统的图示。
图6、图7、图8、图9各自是用于配置参数化逻辑的图形用户界面的示例。
图10是流程图的图示。
图11是流程图实例的图示。
图12是具有宽记录的近实时逻辑执行的图示。
图13是用参数化逻辑处理带键数据的示例过程的图示。
具体实施方式
参考图1,示出了用于从各种源,例如从定位于不同位置并经由网络互连的不同服务器采集数据和数据记录以及用于将该数据与用于执行数据检测和执行动作的模块整合的系统100。通常,数据项包括数据记录、指示数据记录或事件的数据(例如,包括指示动作发生的数据的记录(例如,进行语音呼叫或语音呼叫的长度)或指示动作发生的数据)。尽管本文所描述的技术主要是关于数据记录描述的,但这些技术还可以用于处理事件。系统100包括代码管理存储装置102、开发环境104、数据源106和执行系统(或称为运行时环境)108。执行系统108包括用于实施采集-检测-动作(CDA)环境的系统,该CDA环境用于配置和执行用于执行以上所描述的采集、检测和动作的各种应用和程序。这些各种应用和程序包括例如图、计划、应用等的可重复使用集合(例如,用于加速开发和简化应用和程序的维护)。通常,图(例如,数据流图)包括通过顶点之间的有向链路(表示工作元件流)连接的顶点或节点(组件或数据集),例如,如标题为“Managing Parameters for Graph-BasedApplications(为基于图的应用管理参数)”的美国公开号2007/0011668中所描述的,该美国公开通过引用并入本文。通常,计划包括表示过程流的应用,在该过程流中,被称为任务的处理步骤通过指示执行顺序的流(例如,依赖关系)进行连接。
本文所描述的每种方法可以由系统100执行,该系统包括:耦合至代码管理存储装置102的开发环境104。开发环境104被配置成构建本文所描述的与数据流图相关联的应用中的任何一个应用,该数据流图实施对从一个或多个输入数据集流过处理图组件的图到达一个或多个输出数据集的数据执行的基于图的计算。数据流图由代码管理存储装置102中的数据结构指定。数据流图具有由数据结构指定并表示由一个或多个链路连接的图组件的多个顶点或节点。这些链路由数据结构指定并表示图组件之间的数据流。另外,运行时环境108耦合至存储装置102并且在一个或多个计算机上托管。运行时环境108还读取指定数据流图并用于分配和配置如进程等计算资源的已存储数据结构,这些计算资源用于执行对由运行时环境108分配给数据流图的图组件的计算。运行时环境108还包括用于调度和控制对所分配进程的执行使得执行根据该方法的操作的执行模块。
执行系统108包括采集/整合模块114(下文称为采集模块114),该采集/整合模块用于采集数据记录(和其他数据),对其进行变换并将该经变换数据分发给下游应用,包括例如检测模块116和动作模块118。在此示例中,动作模块118包括到第三方系统和/或外部系统的接口。具体地,采集模块114从各种源(如例如数据源106)或从定位于不同位置并经由网络互连的不同服务器以批量或实时方式收集数据,并且从实时数据流107收集数据,例如,来自定位于不同位置并经由网络互连的不同服务器的实时数据。提供数据源106的存储设备对系统100来说可以是本地的,例如,存储在连接至计算机运行执行系统108的存储介质(例如,硬盘驱动器)上,或者可以远离执行系统108,例如,托管在远程系统上,该远程系统通过局域数据网络或广域数据网络与执行系统108通信。
采集模块114被配置成解析、验证和丰富从数据源106接收的批数据109和/或实时数据流107中的数据。出于方便的目的,在不受限制的情况下,术语“实时”和“近实时”在本文中可以统称为“实时”或统称为“近实时”。采集模块114将丰富的数据记录存储在存储器中,并且还将丰富的数据记录写入磁盘以供存档并确保恢复记录。因为采集模块114能够处理任何源,因此采集模块114实现将数据快速且独立地整合(例如,采集模块114成功执行整合需要附加应用)到CDA环境中,同时处理任意大数据量、低时延和多种数据格式的复杂性。
在示例中,将记录从远程系统推送至系统108。在此示例中,每天有数千条记录到达。在此示例中,采集模块114检测推入系统108的本地目录中的记录。采集模块114还通过将记录排成队列并将数据复制到档案(未示出)来执行记录传递。采集模块114还在解析后删除原始记录。在此示例中,档案存储输入数据的未更改且可选地经压缩的副本。档案将数据存储指定的天数。在此示例中,采集模块114将已采集数据发布或传输至数据队列,每个数据馈送具有一个数据队列。采集模块114还通过读取记录、删除重复、丰富记录(例如,通过向记录添加简档数据)、通过键划分记录(例如,用于进一步丰富)并将记录写入队列来解析记录。在此示例中,采集模块114通过存储ICFF(索引压缩平面文件)档案来移除重复,该档案为每个记录保留散列的副本持续指定天数,以用于移除重复。在此示例中,采集模块114还通过执行从档案和ICFF档案清除(例如,删除)旧文件的调度(例如,每日)图来执行维护。
在此示例中,队列(记录被发布至该队列)包括通过键划分的单个集中式队列,具有包括数据记录类型(指示源数据馈送名称)、标准字段(如键)和馈送-特定字段的标准化格式。该队列包括并行队列,该并行队列可以在一个服务器内或跨服务器并行和/或可以跨一个或多个系统并行处理。
在此示例中,采集模块114在指定数量的接收记录或文件(例如,记录集合)之后或在指定的秒数之后抽点检查数据馈送。采集模块114通过执行具有可配置参数的图来执行此抽点检查,这些可配置参数在输入文件到达时以近实时时延通过系统108推送数据。
执行系统108还包括用于为检测预定义发生的程序生成逻辑的检测模块116。在采集模块114采集和整合已采集数据之后,执行系统108对已采集和已整合数据执行检测模块116。在示例中,采集模块114将一个或多个(例如,不同的)已采集数据流(例如,已经验证和格式化/重新格式化的已采集数据流)发送至检测模块116以便在接收到数据时实时地进一步处理和/或执行针对已采集数据流的一个或多个预定义规则。如以下进一步详细描述的,检测模块116具有独特的灵活性,允许用户基于多个且动态数据记录类型、聚合类型、状态定义和转变、复杂功能和定时器生成简单和复杂的检测模式(例如,具有在规则执行之前满足的各种条件的活动和/或一系列规则)。检测模块116还实现检测“合成”数据(例如,数据记录)。通常,合成数据包括指示不存在某种条件或发生的数据,例如,检测用户在指定的时间量内没有访问过门户。在检测数据记录时,检测模块116将指令或消息发布到队列,这些指令或消息的内容由动作模块118接收和处理。
动作模块118执行已经被触发的动作,如发送文本消息或电子邮件、打开案例管理系统中的工作订单的票证、立即切断服务、向目标系统或设备提供Web服务、使用一个或多个通知等传输分组数据。在另一个示例中,动作模块118生成消息的指令和/或内容,并将这些指令(和/或内容)发送至第三方系统,这些第三方系统进而基于指令执行动作,例如,传输文本消息、提供Web服务等。在示例中,动作模块118被配置成为各接收者生成定制内容。在此示例中,动作模块118配置有规则或指令,这些规则或指令指定向哪些接收者发送或传输哪种定制内容。
在用于数据整合和数据记录检测的常规模型中,一个系统执行数据采集并批量采集数据并将数据仓储在数据仓库中。然后,为了执行数据记录检测,另一个不同的系统从数据仓库中检索和查询批数据,并对该仓储的数据执行数据记录检测。此常规模型具有许多限制,包括例如它不能支持实时数据采集。另外,为了执行不同类型的数据记录检测(例如,针对不同段),构建了不同且不一致的应用和/或引擎。与这些常规模型相反,本文所描述的CDA环境在不需要附加技术(例如,不需要用于数据整合的单独系统以及然后用于数据记录管理的另一个单独系统)的情况下执行针对数据记录管理的数据整合和准备。这种能力简化并加速了端到端整合。另外,本文所描述的CDA环境被配置成处理成批和实时数据流(例如,在接收数据时实时或近实时)。例如,CDA环境能够通过采集模块114近实时地处理、验证和/或格式化数据(例如,当执行系统108接收到数据时)来处理实时数据,例如,不需要将已采集数据存储到磁盘。采集模块114被配置成例如在接收到数据时验证和处理数据流,并且然后将处理后的数据发布到队列以供检测模块116进一步处理——均不需要将数据存储在数据仓库中进行后续检索,这会带来时延。另外,通过具有执行采集、检测和动作的操作的单个系统,执行系统108消除了将数据整合到一个系统中以进行数据采集并且然后将该已采集数据重新整合到另一个系统中以执行检测和动作所涉及的复杂性。由于所期望的最终操作或动作通常取决于处理后的数据并且还将越来越延迟(或如果当前情况已经再次发生改变,则甚至最终将不会执行该最终操作或动作,从而使得执行过时),因此如物流或电信中的动作等最终操作或动作极大地受益于具有各种不同格式的大量数据的这种快速处理。
在此示例中,代码管理存储装置102被配置成与执行系统108通信并存储参数化采集应用120、参数化检测应用122和参数化动作应用124。通常,参数化应用包括预先配置成执行关于一个或多个参数的指定功能和操作的电子模板或记录,该一个或多个参数的值由参数化应用从一个或多个其他应用和/或从用户输入接收。一旦特指或指定了参数值,参数化应用(例如,参数化模板)表示参数化模板规范(下文中称为“规范”),例如,因为参数化应用指定状态值、动作值、状态之间转变的值等。通常,规范表示可执行逻辑,并且基于从对先前数据项执行可执行逻辑所达到的状态为可执行逻辑的参数和可执行逻辑的各种状态指定值。在变体中,系统包括未参数化的动作应用。
在示例中,例如,当电子应用或记录预先配置有用于执行关于一个或多个参数的指定功能和操作的逻辑表达(或其他逻辑)时,参数化应用被称为参数化逻辑。
在示例中,参数化应用包括具有各种参数的通用数据流图(或其他通用数据处理程序或应用),这些参数的值被指定为到参数化应用的输入。在此示例中,参数化采集应用包括用于执行数据采集和整合的参数化应用。参数化检测应用包括用于执行数据检测的参数化应用。参数化动作应用包括用于执行动作的参数化应用。
在示例中,模块114、116、118中的每个模块通过分别执行参数化应用120、122、124的实例来实施。在此示例中,参数化应用的实例包括执行其中指定参数的值的参数化应用。执行采集模块114是基于一个或多个参数化采集应用120,这些参数化采集应用指定如何采集、格式化、验证和整合数据。通过参数化传入数据流,不需要编写新程序来处理每个传入数据流。而是,执行系统108维护用于处理传入数据的程序或应用。该程序或应用包括各种参数,可以设置这些参数的值以配置程序或应用来处理特定传入数据流。在一些示例中,程序或应用是通用数据流图,例如,如参数化应用。使用用户界面模块126,用户通过指定通用数据流图的参数的值来定制特定传入数据流的通用数据流图。这些指定值指定采集模块114如何处理该特定数据流。相比于使专用程序处理每个传入数据流的常规技术,通用数据流图(或应用)的参数化实现重用,这减少了执行系统108的存储器需求并且还减少了数据采集和整合中的数据流图错误,因为使用和重用单一的通用(以及误差检验)数据流图。
在此示例中,参数化采集应用促进了指定采集应用的重用,因为参数化采集应用的参数提供了参数化采集应用中的值的简单修改,例如,而不是具有(非参数化的)采集应用,每当采集应用的值发生关联变化时,必须更改代码本身。在此示例中,执行系统108将参数化采集应用120编译成可执行代码。通过执行此可执行代码来实施采集模块114。
执行检测模块116是基于一个或多个参数化检测应用122,这些参数化检测应用指定用于检测指定发生或缺少这些指定发生的一个或多个预定义规则。在此示例中,参数化检测应用122包括用于指定一个或多个值(例如,在执行检测时由规则使用的值)的一个或多个参数。在此示例中,参数化检测应用促进了指定检测应用的重用,因为参数化检测应用的参数提供了参数化采集应用中的值的简单修改,例如,而不是具有(非参数化的)检测应用,每当采集应用的值发生关联变化时,必须更改代码本身。另外,一般来说,参数化应用以及特别是参数化检测应用122提供跨(例如,用户的)各个段以及跨数据记录的各种类型和数据记录的灵活和即时检测的实施方式。例如,参数化检测应用122之一可以被配置成检测指定类型的数据记录的出现(例如,通过设置该参数化检测应用中的参数的值)。然后可以重用该参数化检测应用来检测另一种类型的数据记录的出现(例如,通过指定该参数化检测应用的参数的其他值)。参数化应用的这种重用减少了执行检测模块116时的错误,例如,因为可以重用无错误应用。这些参数化应用还促进了数据记录检测的灵活性。具体地,常规检测模块(例如,检测引擎)的部署涉及在执行检测之前对各种指令和关系(例如,在各种数据记录类型的检测与指定成功检测时要采取的各种动作的规则之间)进行广泛建模和配置。相比之下,检测模块116可以在没有此类任务并且相反在即时配置的情况下启动,例如通过用户指定(例如,经由用户界面模块126)参数化检测应用122的参数的值。在此示例中,执行系统108将参数化检测应用122编译成可执行代码。通过执行此可执行代码来实施检测模块116。
执行动作模块118是基于指定要执行的一个或多个预定义动作或要传输或执行的指令的一个或多个参数化动作应用124,例如,基于从检测模块116接收的指令或触发器。在此示例中,参数化动作应用124包括用于指定一个或多个值(例如,在执行动作时由规则使用的值)的一个或多个参数。在此示例中,参数化动作应用促进了指定动作应用的重用,因为参数化动作应用的参数提供了参数化动作应用中的值的简单修改,例如,而不是具有(非参数化的)动作应用,每当动作应用的值发生关联变化时,必须更改代码本身。另外,参数化动作应用124提供跨(例如,用户的)各个段以及跨数据记录的各种类型和数据记录的动作的灵活和即时执行的实施方式。例如,参数化动作应用124之一可以被配置成通过设置该参数化动作应用中的参数的值来执行指定动作(例如,发送警告用户的文本消息)。然后可以重用该参数化动作应用来将指令传输至第三方以执行动作,例如发送特定消息。通过为参数化动作应用的参数指定或修改值来重用参数化动作应用。在此示例中,执行系统108将参数化动作应用124编译成可执行代码。通过执行此可执行代码来实施动作模块118。
采集模块114、检测模块116、动作模块116通过实现相比于常规技术的益处,如增加的灵活性、实时数据流的更快的处理时间、和更小的存储器需求来表示对现有技术的改进(例如,具有用于执行采集、检测和动作的单独系统)。如先前所描述的,执行系统108包括整合系统,该整合系统包括采集模块114、检测模块116和动作模块118。通过将这些模块整合到单个系统中,执行系统108能够实时(或近实时)处理数据,因为采集模块114处理存储器中的接收到的数据流,并且然后将经验证数据发布到队列以供进一步处理,例如,而不是将接收到的数据提交给数据存储装置以供随后检索。另外,将采集模块114、检测模块116和动作模块118整合到系统中导致较小的存储器需求,因为系统不需要存储多个不同的应用来为从中接收记录的每个数据流执行采集、检测和动作。相反,例如,当指定各种参数的各种值时,可以重用对应参数化应用。
执行系统108还改变参数化应用的配置,并且还设置参数化应用中的各种参数的值,例如,基于指定参数的值的用户输入或基于导致此类改变或此类设置的已执行动作。用户界面模块126向用户显示配置信息并从用户接收配置动作,例如,指定参数值的数据和/或指定参数化应用的配置的动作的数据。在此示例中,参数化采集应用120、参数化检测应用122和参数化动作应用124中的每一个存储在代码管理存储装置102中。代码管理存储装置102也对开发环境104可访问,在该开发环境中开发者能够开发存储在代码管理存储装置102中由用户界面模块126用来显示用户界面的用户界面。开发环境104还使开发者能够开发参数化应用,包括例如,参数化采集应用120、参数化检测应用122和参数化动作应用124。执行一个或多个应用所产生的已执行动作允许开发者判定一个或多个应用是否对一个或多个给定参数值正确操作。也就是说,可以在用户使用之前测试一个或多个应用以防止该用户面对一个或多个错误操作的应用。
参考图2A,数据流图202可以包括数据源206a、206b,组件208a至208c、210和数据宿212。在此示例中,数据流图202是参数化应用的示例。如进一步详细描述的,数据流图202包括各种参数,这些参数的值由用户输入指定。例如,当数据流图202是参数化采集应用时,数据源206a、206b,组件208a至208c、210和数据宿212中的每一个指定如何近实时地采集、处理和整合(例如,整合到执行系统108中)数据。在数据流图202是参数化检测应用的另一示例中,数据源206a、206b,组件208a至208c、210和数据宿212中的每一个指定在检测各种数据记录时执行的各种检测操作和功能。在数据流图202是参数化动作应用的又另一示例中,数据源206a、206b,组件208a至208c、210和数据宿212中的每一个指定响应于从检测模块接收的触发器和/或指令而执行的各种动作操作和功能。
在此示例中,源、组件和宿中的每一个可以与一组参数204a至204g相关联。用户可以使用用户界面模块126(图1)来输入或以其他方式指定这些参数的值。可以使用用于一个源、组件或宿的参数来评估不同源、组件或宿的参数。源206a、206b连接至组件208a、208c的输入端口。组件208a的输出端口连接至组件208b的输入端口。组件210的输出端口连接至数据宿212。源、组件和宿之间的连接定义了数据流。
数据源、组件或宿中的一些可以具有可以定义图的一些行为的输入参数204a至204g。例如,参数可以定义数据源或宿在物理磁盘上的位置。参数还可以定义组件的行为,例如,参数可以定义排序组件如何对输入进行排序。在另一个示例中,参数定义数据记录如何被格式化或验证。在一些布置中,一个参数的值可以取决于另一个参数的值。例如,源206a可以存储在特定目录中的文件中。参数集204a可以包括称为“目录”的参数和另一个称为“文件名”的参数。在这种情况下,文件名参数将取决于目录参数。(例如,目录可以是“/usr/local/”并且文件名可以是“/usr/local/input.dat”)。参数还可以取决于其他组件的参数。例如,宿212的物理位置可以取决于源206a的物理位置。在此示例中,宿212包括一组参数204g,该一组参数包括文件名参数,该文件名参数取决于源206a的目录参数。(例如,集204g中的文件名参数可以是“/usr/local/output.dat”,其中值“/usr/local/”是从集204a中的目录参数获得的。)
在客户端上的用户界面内,参数集204a至204g的参数可以被组合并重新组织成不同的组以与用户交互,这反映了商业考虑而不是技术考虑。用于基于用户输入接收参数的值的用户界面可以以不一定受到服务器上的开发环境的方面的限制的灵活的方式根据参数之间的关系显示不同的参数。
参考图2B,可以呈现用户界面,其中图标显示有表示参数之间依赖关系的关系。在此示例中,参数被分成第一组参数,该第一组参数由表示第一源数据集的参数的第一源图标224、表示第二源数据集的参数的第二源图标226、表示宿数据集的参数的宿图标230、以及表示正被配置的数据流图的一个或多个组件的参数的变换图标228表示,示出他们与源数据集和宿数据集的关系。可以基于已存储用户界面规范222来进行这种参数分组,该规范定义用户将如何与来自客户端上的用户界面内的数据流图的参数进行交互以及如图标224、226、228、230等用户界面元素将如何彼此相关并且被布置用于在用户界面中呈现。在一些实施方式中,用户界面规范是XML文档。用户界面规范还可以标识数据流图组件,并且可以标识在用户配置图时可以执行某些功能的特定组件,如查看样本数据,如以下更详细描述的。
在一些情况下,用户界面规范可以包括用于如何显示参数的指令。例如,参考图2B和图2C,用户界面规范222可以定义向用户显示的用户界面250。进一步地,用户界面规范222可以指示响应于与源数据集图标224的交互,一个参数应该在用户界面250中显示为用户可以填写的文本框252,而另一个参数应该在用户界面250中显示为具有预先填充值的下拉列表254,仍另一个参数还可以在用户界面250中显示为单选按钮256等。因此,用户界面规范提供了如何将参数呈现给用户的灵活性,以便以可以针对业务用户和/或非技术用户定制的方式定制数据流图。
在一些情况下,用户界面规范可以约束业务用户填充参数值的顺序。由虚线表示的与宿230相关联的参数在用户满足某些预定义条件之前可能对用户不可见。例如,在出现数据宿参数集之前,用户可能必须提供特定参数值或填写一组参数。
在一些实施方式中,用户界面规范还可以包括定义用户界面元素的特征的变量(与定义数据流图的组件的特征的参数成对比)。例如,变量可以用于控制业务用户使用用户界面元素的顺序。变量引用至少一个数据值。在一些示例中,变量引用多个数据值,并且每个数据值被定义为变量的性质。因此,单个变量可以具有多个性质,每个性质与数据值相关联。
由用户界面规范定义的用户界面250可以以用户界面元素(例如,文本框252、下拉列表254、单选按钮256)不直接对应于用于定制数据流图的参数的方式呈现。相反,一些用户界面元素可以对应于与用户,例如可能不知道参数的业务用户和/或非技术用户相关的配置选项。
在这些示例中,用户界面250不需要与数据流图的特定组件224相关联。进一步,用户界面250可以与多个数据流图和其他数据处理和数据存储构造相关联。
例如,用户界面元素可以允许用户改变具有商业含义而不是技术含义的配置选项。配置选项可以是用于在商业交易中使用的货币类型之间进行转换的选项,或用于更新与特定类别的产品库存相关联的信息的选项,或与单个参数的配置不相关的另一种选项。用户界面规范222可以以此类方式定义:商业用户/非技术用户可以按照他/她理解的方式对配置选项进行更改,并且通过在用户界面规范222中定义的关联性和依赖性来对参数进行更改。
用户界面规范222可以定义配置选项如何与数据流图的参数的配置以及可以通过用户界面250配置的其他数据元素相对应。例如,用户与用户界面元素之间的交互可以触发对多个数据流图组件中的参数的改变以及对存储在数据库、数据文件、元数据存储库或另一种数据存储装置中的数据的改变。用户界面规范222可以定义用户界面元素与在用户界面250的操作期间与用户界面元素的改变相关联地改变的数据之间的关系。
用户界面规范222还可以基于从数据库、数据文件、元数据存储库或另一种数据存储装置或如web服务等另一种数据源接收的数据来定义用户界面元素。当显示用户界面250时,接收到的数据用于确定显示用户界面元素的方式。在一些实施方式中,在用户界面250的操作期间,从外部源接收数据,如数据库、数据文件、元数据存储库或另一种数据存储装置或如web服务等另一种数据源,并且在用户界面规范222中将从外部源接收到的数据定义为与参数相关联(例如,将参数更新为包括从外部源接收到的数据)。
用户界面还可以显示与由数据流图的链路表示的至少一个数据流相关联的组件输出数据。例如,参考图2C,数据从一个组件224流到另一个组件228。可以在用户界面250中查看组件之间的数据流。在一些示例中,将样本数据(例如,出于测试目的而检索的数据,而不是出于处理或变换的目的)提供给一个组件224,以判定组件224如何处理数据。
在图2C的变量中,用户界面250(或多个用户界面)显示用于指定参数化采集应用120(图1)、参数化检测应用122(图1)和参数化动作应用124(参见图1)中的每一个中的参数值的用户界面元素。在此示例中,用户界面250显示独立于指定哪些用户界面元素对应于哪个参数化应用的用户界面元素。相反,呈现用户界面元素以使用户能够指定如何执行例如特定数据流上的数据采集和整合,如何执行检测以及如何执行动作。
参考图3A,环境300包括采集检测动作(CDA)系统320,该采集检测动作系统用于采集数据记录、检测数据记录中的一个或多个预定义条件(如规则中所指定的)的满足,并对检测到的数据记录执行适当的动作。在此示例中,图1的执行系统108被示出为CDA系统320并且示出了通过CDA系统的数据流。CDA系统320间歇地(例如,周期性地或连续地)从各种数据源,例如在网络中互连的不同服务器接收数据。当间歇地接收数据时,系统将数据采集到单一数据流中(例如,通过将接收到的数据多次发布到队列)并且例如通过生成包括多次发布到队列的数据的宽记录将数据近实时地(例如,在一毫秒、两毫秒内等)以单一、宽记录的方式连接在一起。数据是从数据源近实时采集的,而不是从数据仓库中(批量)检索的。此已采集数据包括数据记录,这些数据记录包括例如包括指示事件或动作的发生的数据(例如,进行语音呼叫或语音呼叫的长度)或指示事件或动作的发生的数据的记录。通过将来自这些各种数据源的数据连接在一起,宽记录包括不同类型的数据记录(例如,短消息服务(SMS)数据记录、语音数据记录等)。CDA系统320使用数据记录聚合、指示事件未发生的数据、状态数据和如客户数据(例如,客户简档)、账户数据等各种方面来丰富此宽记录。当接收到数据记录时,环境300以近实时的方式生成具有不同类型的数据记录的宽记录(例如,包括和/或指向各种子记录的记录)。
通常,从数据流采集的数据不包括CDA系统处理所需的所有信息,如用户名和简档信息。在这种情况下,通过将简档数据与实时数据流中接收到的数据组合并通过计算近实时聚合来增强数据(即,从数据流采集的数据)。通过将简档数据与来自实时数据流的数据组合并通过计算近实时聚合,搜索和检索系统生成适合于搜索和检索系统的处理需求的有意义的数据记录(例如,包括与键、该键的简档数据和该键的近实时聚合相关联的接收到的近实时数据的数据记录)。通常,处理需求包括系统要执行的各种操作(和/或要执行的规则)以及执行那些操作所需的各种数据。另外,包括“所有数据记录”或预先填充有与数据记录中的每个数据记录相对应的数据的字段(和/或预定义的一组字段)的数据记录的这种预先计算或生成有助于避免和减少例如处理实时数据流时网络瓶颈中的拥塞。这是因为处理所需的所有数据都包括在单个记录(例如,记录的记录)中,例如,因此在处理数据记录或采集记录的每个阶段或步骤中消除或减少数据检索、计算和数据库查询。另外,通过将大量增强数据(例如,简档数据)保存在CDA系统中的存储器或高速缓存索引中,该系统能够更快速地访问该数据,因为它生成(记录的)预先计算的记录。
例如,本文所描述的系统被配置成在系统处于减小的负载(例如,相对于其他时间的负载)时将丰富和增强的数据加载到存储器中(或加载到索引的高速缓存中)。因为在系统以其他方式处于减小的负载时对于预加载增强数据,系统具有灵活性,所以系统通过在减小负载时将增强数据加载到存储器中,例如而不是必须在处理数据记录发生时(这将是增加负载的时段)实时地进行来实现负载分配。
在示例中,CDA系统320每天为五千万用户处理超过二十亿个数据记录,并计算针对每种数据记录类型的聚合。在此示例中,CDA系统320从数据源360接收实时数据流340(例如,多个不同的数据流,每个数据流具有唯一的格式)。如本文所使用的,实时包括但不限于近实时和基本上实时,对于这些实时中的每一个,接收或访问数据的时间与实际发生处理该数据的时间之间可能存在时滞,但在接收数据时数据仍被实时处理。CDA系统320间歇地从实时数据流340接收包括数据记录的数据,还称为数据项。接收到的数据还包括不同类型(例如,不同格式)的数据记录。在示例中,实时数据流中的第一实时数据流包括表示第一类型/格式的数据记录的数据,并且实时数据流中的第二实时数据流包括表示第二类型/格式的数据记录的数据。CDA系统320包括采集模块420,该采集模块用于采集在实时数据流340中接收的不同类型的数据记录。因为采集模块420充当实时数据记录,而不是从EDW中提取的数据,所以CDA系统320能够对数据记录(当他们被接收时)和数据记录的近实时聚合提供即时响应,该系统还提供了应用结果的即时可见性。采集模块420将数据记录采集到单个数据流中,并将数据记录多次发布到队列。在示例中,采集模块420通过使用连续流来采集数据记录以连续地处理接收到的数据记录。
当采集模块420继续间歇地接收来自实时数据流340的数据记录时,采集模块420检测(例如,在队列中)共享一般质量的两个或更多个特定数据记录,如包括在数据记录选项板(palette)中或与特定用户属性(例如,用户标识符(ID)、用户键等)相关联。在示例中,一般质量是两个或更多个特定数据记录的特定字段(例如,用户ID字段)的对应值,该两个或更多个特定数据记录具有指定数据记录类型和/或该两个或更多个特定数据记录由数据记录选项板定义。
采集模块420创建包括检测到的两个或更多个特定数据记录的数据记录集合。在此示例中,采集模块420生成包括检测到的数据记录的集合的数据记录460。采集模块420还将丰富数据440插入数据记录460中,例如,宽记录。通常,丰富数据是存储在与数据记录相关的数据仓库(先前已经接收或预先计算过)中的数据。例如,数据记录可以指定用户已经发送的多条SMS消息,并且还可以包括该用户的用户ID。在此示例中,数据仓库380接收数据记录461并存储包括同一用户ID(或与之相关联)的数据。此已存储数据包括用户简档数据,该用户简档数据包括例如用户的最新手机类型。采集模块420将与包括在数据记录460中的特定数据记录相关联的客户的客户简档数据附加到或插入数据记录460中。
采集模块420对接收到的数据进行过滤,例如,使得仅接收到的数据的子集被丰富并添加到数据记录460。采集模块420被配置成基于键(与记录相关联)和/或基于记录的指定字段的指定值进行过滤。采集模块420还将接收到的数据和/或数据记录关联,使得与相同或类似的键相关联的记录被分组在一起,例如,以实现复杂的数据记录处理(例如,对与特定键相关联并且按时间分隔的记录的处理)。在另一个示例中,采集模块420基于具有某些字段的记录、某些字段的某些值等来关联数据记录。在此示例中,将关联记录的字段的值插入或添加到宽记录中。
采集模块420还计算包括在数据记录460中的一个或多个数据记录的一个或多个聚合(即,数据记录聚合)。对于特定用户的特定数据记录(如由包括在数据记录中的用户ID指定),采集模块420从数据仓库380检索该特定用户的特定数据记录的批数据400。批数据400包括与特定数据记录有关的历史聚合,其中该历史聚合是来自先前时间段的数据记录数据的预先计算的聚合,例如,从开始时间到执行检测数据记录之前的特定时间的时间段。通常,数据记录数据包括指示数据记录的特定质量、属性或特性的数据(例如,数据使用率数据记录的数据使用量)。例如,数据记录的质量包括特定字段(该特定字段包括在数据记录中)、包括在数据记录中的字段的特定值、包括在数据记录中或与其相关联的特定用户ID键、缺少特定字段或缺少数据记录的特定字段的值等。基于包括在特定用户的特定数据记录的实时数据流340中的数据并且基于历史聚合,采集模块420计算组合数据记录数据,例如,数据记录的近实时聚合。采集模块420用该至少一个特定数据记录的组合数据记录数据来丰富数据记录460。
在示例中,数据记录460中的数据记录之一是与用户ID 5454hdrm相关联的JohnDoe的数据使用率。在此示例中,采集模块420从数据仓库380中检索与用户ID5454hdrm相关联的“数据使用率”的数据记录的批数据400。为了计算此特定用户的此数据记录的近实时聚合,采集模块420将批数据400与增量数据410聚合以计算此数据记录的近实时聚合430。
在此示例中,增量数据410包括从实时数据流340接收的数据的一部分,这些实时数据流涉及为该特定用户聚合的数据记录类型。增量数据410发生在最后一次计算历史聚合到接近当前的时间期间,例如,当接收到近实时数据流时。例如,批数据400指定用户JohnDoe在上个月已经使用了六十五兆字节的数据,并且增量数据410指定用户John Doe在最后五分钟内已经使用了一兆字节的数据。通过将批数据400与增量数据410聚合,采集模块420为客户John Doe的此特定数据使用率数据记录计算近实时聚合430。采集模块420将近实时聚合430插入数据记录460中,例如,作为此特定用户的此特定数据记录的记录的一部分。采集模块420还将具有例如如批数据400所指定的特定数据记录的历史聚合的可附加查找文件(ALF)附加到数据记录460。采集模块420将ALF与历史聚合相附加以促进在计算新近实时聚合时使用历史聚合,例如,当接收到新数据记录时。
在此示例中,采集模块420将数据记录460传输至检测模块480。检测模块480包括规则500,这些规则包括例如用于为不同类型的实体实施各种不同应用的规则。检测模块480包括用于实施各种应用以及用于执行聚合的单个模块。
检测模块480计算包括在数据记录460中的数据记录中的一个或多个数据记录的一个或多个聚合(即,数据记录聚合)。对于特定用户的特定数据记录(如由包括在数据记录中的用户ID指定),检测模块480从数据仓库380检索该特定用户的特定数据记录的批数据400。批数据400包括与特定数据记录有关的历史聚合,其中该历史聚合是来自先前时间段的数据记录数据的预先计算的聚合,例如,从开始时间到执行检测数据记录之前的特定时间的时间段。通常,数据记录数据包括指示数据记录的特定质量、属性或特性的数据(例如,数据使用率数据记录的数据使用量)。例如,数据记录的质量包括特定字段(该特定字段包括在数据记录中)、包括在数据记录中的字段的特定值、包括在数据记录中或与其相关联的特定用户ID键、缺少特定字段或缺少数据记录的特定字段的值等。基于包括在特定用户的特定数据记录的实时数据流340中的数据并且基于历史聚合,检测模块480计算组合数据记录数据,例如,数据记录的近实时聚合。检测模块480用该至少一个特定数据记录的组合数据记录数据来丰富数据记录460。
在示例中,数据记录460中的数据记录之一是与用户ID 5454hdrm相关联的JohnDoe的数据使用率。在此示例中,检测模块480从数据仓库380中检索与用户ID5454hdrm相关联的“数据使用率”的数据记录的批数据400。为了计算此特定用户的此数据记录的近实时聚合,检测模块480将批数据400与增量数据410聚合以计算此数据记录的近实时聚合430。
在此示例中,增量数据410包括从实时数据流340接收的数据的一部分,这些实时数据流涉及为该特定用户聚合的数据记录类型。增量数据410发生在最后一次计算历史聚合到接近当前的时间期间,例如,当接收到近实时数据流时。例如,批数据400指定用户JohnDoe在上个月已经使用了六十五兆字节的数据,并且增量数据410指定用户John Doe在最后五分钟内已经使用了一兆字节的数据。通过将批数据400与增量数据410聚合,检测模块480为客户John Doe的此特定数据使用率数据记录计算近实时聚合430。检测模块480将近实时聚合430插入数据记录460中,例如,作为此特定用户的此特定数据记录的记录的一部分。检测模块480还将具有例如如批数据400所指定的特定数据记录的历史聚合的可附加查找文件(ALF)附加到数据记录460。检测模块480将ALF与历史聚合相附加以促进在计算新近实时聚合时使用历史聚合,例如,当接收到新数据记录时。
在此示例中,CDA系统320从用户的客户端设备接收表示定义应用的一个或多个规则的数据。例如,用户可以使用数据记录选项板来定义规则。CDA系统320基于接收到的数据生成定义应用的一个或多个规则。CDA系统320将这些一个或多个规则传递给被配置成实施该一个或多个规则的过程,例如,检测模块480。检测模块480基于针对数据记录460的规则500的执行来实施应用。检测模块480还包括状态转变530,包括例如指定应用中用户已经转变或进行的状态的数据。基于状态转变530,检测模块480标识应用中的哪些动作被执行和/或应用中的哪些决策分支要执行。例如,基于应用中的特定用户状态——如状态转变530指定的,用户检测模块480根据用户的应用状态标识应用的哪个组件已经被执行以及接下来要执行的应用的哪个组件。
数据记录460包括不同类型的数据记录,如SMS数据记录、语音数据记录等。因此,规则500包括具有各种不同类型的数据记录的条件的规则。通常,规则包括条件,该条件的满足引起动作的执行。在此示例中,一个规则(“规则1”)可能具有用户在过去六个月中已经发送了三十条SMS消息的条件。在满足此条件后,规则1指定向用户发放5美元记账的动作。另一个规则(“规则2”)可能具有用户在过去一个月中已经使用少于五十兆字节数据的条件。在满足此条件后,规则2指定向用户提供使用折扣的动作,例如,以激励增加的数据使用。在此示例中,规则1和规则2均使用不同类型的数据记录(即,分别是SMS数据记录和语音数据记录)。检测模块480能够执行包括依赖于不同类型的数据记录的规则的程序,因为数据记录460是包括不同数据记录类型的单个宽记录。另外,检测模块480是执行多个不同应用的应用的单个模块,因为检测模块480接收数据记录460,该数据记录包括所有不同操作水平的所有数据记录类型。也就是说,检测模块480被配置成执行针对单个宽记录(即,数据记录460)的多个不同的应用,而不是使不同模块执行针对不同数据记录的不同应用(每个都包括适用于对应应用的数据类型)。
在检测到满足规则500中的条件中的至少一个条件的数据记录460中的数据记录(或数据记录的聚合)后,检测模块480将动作触发器510发布到队列520以发起一个或多个动作(例如,由具有满足的条件的规则指定的动作)。在示例中,动作触发器包括指定要执行哪些动作、正在执行哪个应用以及用户(例如,为其执行动作的用户)的数据。检测模块480将队列520传输至动作模块540,以执行动作触发器510中指定的动作。在此示例中,动作模块540被配置成执行各种动作,如向用户帐户发放记账、传输消息、传输折扣消息等。
参考图3B,示意图541展示了可执行逻辑(例如,用于活动)生命周期。在此示例中,该可执行逻辑是检测引擎的一部分。在此示例中,在触发事件发生之前,系统不会启动活动。通常,触发事件包括满足一个或多个指定条件或属性的事件。触发事件基于传入事件流和订户简档。如以下描述的,系统延迟对照组的计算,直到发生触发事件为止。另外,系统可以将活动配置为提前结束,例如,如果发生接受事件。系统可以将活动链接在一起——使得提供接受或期满后,可以触发另一个活动。
在此示例中,开始节点542表示活动的开始。在此示例中,开始节点542表示指定活动的开始日期和结束日期的可执行逻辑。可执行逻辑还指定要为活动执行哪些规则(作为规则集的一部分,并且在本文中称为“决策规则”)。在此示例中,节点543表示用于检测触发事件,例如表示该活动应该开始的事件的决策规则(例如,可执行逻辑)。在此示例中,决策规则包括用于触发活动的逻辑,例如,通过指定哪个事件开始活动。决策规则还包括用于指定要提出的邀请(offer)、活动持续时间和消息优先级的逻辑。决策规则还包括用于检测何时接受邀请的逻辑。
在活动开始时,系统对每个接收到的事件执行决策规则。系统基于该事件判定是否触发活动。(针对该事件执行决策规则的)可能结果是忽略事件、退出活动、在明天之前忽略事件或触发活动。如以下进一步详细描述的,决策规则还指定如果无法发送消息该怎么做。例如,规则指定取消活动、触发活动或指定在随后的时间(例如,明天)继续搜索触发器。
一旦已经触发活动,系统就执行对照组逻辑,如节点544所表示的,以判定事件(例如,数据记录)是否将接收邀请或将被分配给不接收邀请的对照组。对照组分配是即时的,例如,因为他们仅在活动触发后才完成。另外,如以下进一步详细描述的,系统使用匹配面板立方体计算对照组。
如节点545所表示的,在目标组(例如,接收邀请的组)或对照组分配之后,系统执行消息仲裁。在此示例中,消息仲裁是指系统执行相对消息优先级查找的过程。在此示例中,系统被配置成遵守订户简档中的新消息限制。例如,订户简档可以指定订户可以每天可以接收的预定义(例如,最大)量的“正常”消息。订户简档还可以指定订户可以在给定日期接收的预定义(例如,最大)量的“紧急”消息。在此示例中,每条消息都有紧急性和优先级。各种类型的紧急性包括正常、紧急或无限制。在此示例中,如果一次发送的消息太多,则系统将对消息进行优先级排序,使得在正常消息之前传输紧急消息。在此示例中,决策规则指定消息发送时间。如果时间是将来,则系统将在发送消息之前等待,以允许代替发送更高优先级消息的机会。
在示例中,当首次触发活动时,系统执行消息仲裁。如果无法发送初始消息(例如,因为已经超过最大消息量的限制),则可以取消触发事件。在此示例中,对于后续消息,如果消息仲裁失败,则无法选择取消活动。在此示例中,订户只是看不到消息。
仲裁过程的一部分是消息(例如,邀请)优先级查找。在此示例中,消息优先级和紧急性在查找(引用)文件中指定。到查找字段的键包括主题字段、类型字段和优先级键字段。也就是说,每个邀请或消息都预先配置有指定的优先级和紧急性。在此示例中,基于消息仲裁的结果,可以发送消息,如节点546所表示的。
在发送消息之后,系统被配置成执行进一步的等待动作(例如,通过等待明天或接受(uptake)(即,邀请履行(fulfillment))),如节点547所表示的。系统通过执行附加的决策规则来执行此进一步的等待动作。在此示例中,对每个事件执行决策规则。规则被配置成基于该事件标识是否结束活动(例如,基于对目标事件的发生的检测)。在此示例中,目标事件通常是履行已经发生的通知。但是,任何事件和条件都可以用于触发活动阶段结束。在此示例中,可能的决策选项是忽略事件、退出活动、和开始新阶段。通常,活动的阶段是指通过活动提供的不同邀请。在此示例中,在结束活动阶段时,决策规则可以开始新阶段。决策规则也在活动阶段已经执行指定天数(例如,N天)后执行,例如,如果未检测到履行事件。当活动阶段结束时,决策规则开始新阶段。在此示例中,可能的选项是退出活动或者开始新阶段。
在执行随后的等待事件之后,系统还执行执行日历规则的一个或多个动作,如节点548所表示的。例如,日历规则指定在初始消息之后,活动被配置成每天发送提醒消息。这些规则还可以用于在一些天抑制消息。基于日历规则,系统判定是否重新发送提醒。如果系统确定要重新发送消息,则系统再次执行消息仲裁,如节点549所表示的。基于消息仲裁的结果,系统可以再次发送消息,如节点550所表示的。通常,由此图中的节点所表示的可执行逻辑可以由业务规则编辑器(例如,如美国专利第8,069,129号中所描述的,该美国专利的全部内容通过引用并入本文)或由流程图用户界面编辑器(例如,如美国申请第15/376,129号中所描述的,该美国申请的全部内容通过引用并入本文)配置。
参考图3C,联网环境560包括数据源562、570和CDA系统577。在此示例中,CDA系统577包括参数化采集应用573、参数化检测应用580和参数化动作应用590。在此示例中,参数化采集应用573之一包括数据流图表573a,该数据流图包括例如各自表示一个或多个数据处理操作的节点。参数化检测应用580之一包括数据流图580a,该数据流图包括节点582、583、584、585。在一些示例中,数据流图580a包括状态图,例如,当数据流图580a指定要在各种状态下执行的各种可执行逻辑时。在此示例中,可以参数化状态图,例如,以便实现在状态图中输入各种参数的值。另外,单个键可以与多个状态图(此处未示出)相关联,例如,以跨不同的数据流图维持键的状态。每个节点表示要在(可执行逻辑的)特定状态下执行的可执行逻辑的一个或多个部分。如此,节点582、583、584、585在下文中分别称为状态582、583、584、585。在此示例中,参数化动作应用590之一包括数据流图590a。
在此示例中,参数化采集应用573包括规范574,该规范指定定义参数化采集应用573(或参数化采集应用573之一)的一个或多个属性的一个或多个参数(例如,参数A和C)以及那些一个或多个参数的一个或多个对应值(例如,值B和D)。例如,参数A可以是用于指定数据格式的参数,并且参数C可以是用于指定从中采集数据项的数据源的参数。在此示例中,值B(针对参数A)指定已采集数据项被变换成的数据格式。值D(针对参数C)指定从中采集数据项的数据源(例如,用于稍后变换)。在示例中,变换包括关联。在此示例中,数据记录通过将与相同键相关联的那些数据记录关联在一起,并且然后将指示相关记录的数据记录(例如,主记录)发布到队列来进行变换。在此示例中,参数化采集应用573还被配置成执行丰富、过滤和格式化。在此示例中,参数化采集应用573丰富事件(例如,数据记录)本身,例如,而不是用简档数据来丰富数据记录——这由参数化检测应用580执行。例如,通过包括指定中继SMS消息的蜂窝电话塔位于何处的数据来丰富SMS消息的事件。在此示例中,参数化采集应用573用此数据来丰富事件,例如通过从一个或多个数据源——内部或外部的——检索此数据。
参数化检测应用580包括规范586,该规范指定定义参数化检测应用580(或参数化检测应用580之一)的一个或多个属性的一个或多个参数(例如,参数E和G)以及那些一个或多个参数的一个或多个对应值(例如,值F和H)。例如,参数E、G可以是包括在由参数化检测应用580执行的规则(例如,用于检测指定事件的规则)中的参数,并且值F、H是那些参数的值(例如,指定要检测的不同类型的事件的值)。规范586还包括规则587和用于规则的对应条件。规范586还包括指定参数化检测应用的各种状态,包括例如数据流图580a的状态数据592。在此示例中,状态数据592指定参数化检测应用580a具有四个状态,状态1至4,其分别对应于状态582至585。在此示例中,根据数据结构593、594、595(例如,指针),在某些状态下执行规则587中的某些规则。例如,数据结构593指定在状态1下执行规则1。在状态2下不执行任何规则。根据数据结构594在状态3下执行规则2。根据数据结构595在状态4下执行规则3。
参数化检测应用580存储简档数据575,该简档数据包括KPI 576和带键状态数据589。通常,KPI包括通过检测(例如,包括在已采集数据记录中或在已采集数据记录中表示的各种事件)获取的数据。如此,KPI的值在运行中并且实时更新和更改。例如,CDA系统577定义用于跟踪数据使用率的KPI。在此示例中,当接收到新数据记录时,参数化检测应用580检测该新数据记录是否包括或指定数据使用率事件。如果数据记录指定数据使用率事件,则CDA系统577用指定已更新数据使用率的数据更新KPI(用于与数据使用率事件相关联的键)。在此示例中,每个KPI都是与特定键相关联的带键KPI。在示例中,KPI用于执行规则,例如,以便通过判定特定键的KPI的内容是否满足要在规范586的针对该键的当前状态下执行的规则的条件来判定是否满足规则的各种条件。另外,可以基于多个事件来计算KPI。例如,可以定义KPI以指定用户何时使用指定量的数据以及指定量的语音使用率。在此示例中,KPI基于两个事件——数据事件和语音使用率事件。KPI本身还可以被聚合,并且聚合的KPI用于检测事件和/或检测对规则条件的满足。KPI被存储为客户简档的一部分。另外,在一些示例中,KPI是由用户和/或系统管理员定义的属性。
在此示例中,带键状态数据589为键的每个值指定参数化检测应用的状态。在此示例中,由CDA系统577接收的数据项各自与键的值相关联。例如,键可以是如订户标识符等唯一标识符。CDA系统577为键值中的每一个维持参数化检测应用580的状态。例如,键值“349jds4”与参数化检测应用580的状态1相关联。键值“834edsf”在第一时间(T1)与参数化检测应用580的状态3相关联,并且在第二时间(T2)与状态4相关联。
在此示例中,参数化动作应用590包括规范597,该规范指定定义参数化动作应用590的一个或多个属性的参数I、K以及那些参数的对应值J、L。例如,参数I可以是指定简档数据用于为用户定制动作的参数。在此示例中,参数I的值J指定在定制中使用哪个简档数据。
在操作中,CDA系统577用由规范574指定的一个或多个参数的一个或多个值来执行参数化采集应用573中的一个或多个,以执行处理数据记录。在此示例中,该处理包括通过参数化采集应用573采集来自数据源562的数据流564中的数据项566a、566b、...、566n。在此示例中,数据项566a、566b、...、566n中的每一个是带键数据项,例如,与键相关联的数据项。参数化采集应用573中的一个或多个还采集来自数据源570的数据项572a、572b、...、572n(这些数据项是批数据568的一部分)。在此示例中,数据项572a、572b、...、572n中的每一个是带键数据项。在此示例中,数据项566a、566b、...、566n的格式不同于数据项572a、572b、...、572n的格式。
参数化采集应用573中的一个或多个根据规范574来变换数据项566a、566b、...、566n和数据项572a、572b...572n以获得经变换的数据项579a、...、579f。在此示例中,经变换的数据项579a、...、579f中的每一个被变换成适用于参数化检测应用580的数据格式。参数化采集应用573中的一个或多个用经变换的数据项579a、...、579f来填充队列579并将已填充队列579传输至参数化检测应用580。
CDA系统577用由规范586指定的一个或多个参数的一个或多个值来执行参数化检测应用580中的一个或多个,以便如下处理队列579中的经变换的数据项579a、...、579f。CDA系统577可以用简档数据575的一个或多个部分和/或用KPI 576来丰富经变换的数据项。例如,CDA系统577通过向经变换的数据项579f添加简档数据(例如,如数据使用率、SMS使用率、地理定位和数据计划数据)来生成丰富的经变换的数据项598。在此示例中,丰富的经变换的数据项598与键的特定值(“834edsf”)相关联。参数化检测应用580标识参数化检测应用580中的一个或多个的关于键的特定值的当前状态。在此示例中,在时间T1处,参数化检测应用580中的一个或多个的当前状态是状态3,如带键状态数据589中所指定的。参数化检测应用580标识要在当前状态下执行的规范586的一部分中的规则587中的一个或多个。在此示例中,在状态3下执行规则2,如图3C中的规则2周围的虚线所示出的。参数化检测应用580执行所标识的一个或多个规则(例如,规则2)。参数化检测应用580确定该一个或多个经变换的数据项(例如,丰富的经变换的数据项598)中的至少一个满足在当前状态下执行的一个或多个规则(例如,规则2)中的至少一个的一个或多个条件。响应于此确定,参数化检测应用580生成指定执行一个或多个动作(由动作数据511表示)的数据结构521。参数化检测应用程序580还使得关于键的特定值(例如,834edsf)的规范586从其当前状态转变到随后状态。在此示例中,该转变被示出为从时间T1到时间T2的转变,其中,针对键值834edsf将规范586的状态从状态3转变到状态4。参数化检测应用580还将已生成数据结构521传输至参数化动作应用590。
CDA系统577用由规范597指定的一个或多个参数的一个或多个值来执行参数化动作应用590,以执行包括以下操作的操作:基于数据结构521中指定的一个或多个动作中的至少一个,发送一个或多个指令591以使得执行该一个或多个动作中的至少一个动作。
在变体中,参数化采集应用573访问每个接收到的数据记录的简档数据(例如,简档数据575),并用该访问的简档数据来丰富数据记录。在此示例中,参数化检测应用580将简档数据的内容与参数化检测应用580中包括的一个或多个规则和/或应用进行比较,以检测一个或多个预定义事件的发生。在检测时,参数化检测应用580例如用检测到的信息和/或指定检测到的事件的信息相应地更新KPI。
在又另一个变体中,采集应用与检测应用之间有多个队列。例如,对于某些类型的事件,例如在处理时不应延迟的事件可能存在优先级队列。处理时可能会延迟其他事件。这些其他事件被分配给另一个队列,例如,非优先级队列,并且将警报插入队列中以指定延迟这些事件的处理。通常,当图表向自己发送将在未来预先计算的时间到达的特殊类型的事件(例如,警报事件)时发生警报。每当图表逻辑想要等待时,就会使用警报。通过具有多个队列,系统能够对事件进行负载平衡处理,并且还能够减少处理事件的时延——通过首先处理优先级队列中的那些事件并等待处理非优先级队列中的事件。在此示例中,参数化采集应用被参数化并配置有用于插入警报的规则和指定与警报相关联的各种事件类型的规则。
参考图4,系统600包括用于例如以批量方式和/或从实时数据流接收615数据记录601至608的采集单元610。在此示例中,采集单元610将记录601至608存储在存储器中,例如,存储在存储器中的数据结构620(例如,索引)中。在此示例中,数据结构620不是静态数据结构。而是,数据结构620是在数据流619中接收到新记录时会间歇性地更新和修改的动态数据结构。另外,数据结构620中的条目在处理完条目(例如,逻辑行)后被移除,例如,通过分配给数据结构630或从数据结构620中过滤。数据结构620包括逻辑行621至628。在此示例中,逻辑行621至628中的每一个对应于数据记录601至608之一。数据结构620还包括逻辑列620a至620d,这些逻辑列各自对应于数据记录601至608中的字段和/或字段的值。在此示例中,数据结构620的每个逻辑行,如逻辑行621至628,对应于由采集单元610从特定数据记录601至608中提取的相关信息的子集。数据结构620的每个逻辑列在概念上定义与特定逻辑行相关联的特定数据记录的特定数据属性。在数据结构620是索引的示例中,逻辑行621至628中的每一个是索引条目。
采集单元610还将数据结构617存储在存储器中。在示例中,数据结构617表示存储在数据存储装置或存储库中的静态数据结构。在此示例中,数据结构617存储丰富数据,例如简档数据。在此示例中,存储在数据结构617中的丰富数据可以即时添加到接收到的数据记录中,例如,通过将特定丰富数据添加或附加到至数据结构620的逻辑行。数据结构617还定义了要在数据记录630中包括哪些数据类型,例如,即时地并且在接收那些记录时将哪些数据类型动态地添加到接收到的记录。在此示例中,数据结构617包括逻辑行617a至617h,其中每个逻辑行包括针对特定ID的丰富数据。在此示例中,数据结构617包括针对ID数据的逻辑列(未示出)。通过将数据结构620中的ID数据与数据结构617中的ID数据进行匹配,采集单元610生成针对特定ID的丰富记录,例如,包括来自实时数据流的接收到的数据并且然后用丰富数据进行丰富的记录。
采集单元610还过滤和关联在数据流619中接收的数据记录601至608。在变体中,采集单元610采集从批量检索,例如从数据存储装置接收到的记录。在此示例中,采集单元610过滤在“位置”字段中包括非Boston值的记录。也就是说,采集单元610过滤数据记录601至608以仅包括位置字段中具有值“Boston”的那些数据记录。采集单元610还将剩余的经过滤记录602、603、606关联在一起,例如通过将记录602与记录603关联——因为这两个记录都与同一ID相关联。采集单元610通过包括表示数据结构630中彼此相邻的这些记录的逻辑行631、632将记录602、603关联在一起。在变体中,关联记录602、603被合并成单个记录。在又另一个示例中,采集单元610通过生成关联聚合来执行关联。
在关联聚合中,聚合的值与返回的值不同。相反,采集单元610使用记录中的各个字段(在时间上分开)来执行关联。在此示例中,关联特别复杂,因为采集单元610例如基于那些记录中的字段的特定值将在时间上分开的记录连接在一起。以下是由采集单元610执行的示例关联:
对于每个客户,对于交易类型的每个数据记录,其中交易.动作=“购买” (trade.action=“buy”),计算最近20分钟内看到的最大交易.量(trade.amount)的符号。
在前述示例中,带下划线的部分表示聚合定义的作为可以被指定的参数的部分。以下是用于关联聚合的可能参数的列表。在此示例中,参数可以被指定为采集应用的一部分:
在此示例中,采集单元610使用字段或表达式连同过滤表达式和选择函数从时间窗口中选择适当的数据记录。然后,我们从该数据记录中计算值,并将该值用作聚合值。在示例中,数据记录具有两个字段——数量字段和符号字段。对于采集单元610,确定对应于具有最大量(在给定时间段内)的数据记录的符号,然后在采集应用中将选择函数设置为“最新最大值”,将字段或表达式设置为“数量”,并且将经计算的表达式设置为“符号”。
在仍另一个变体中,采集单元610关联在时间上分离的数据记录,例如,通过采集与特定键相关联或包括该特定键的特定数据记录,并且然后为包括相同键/与相同键相关联的另一个数据记录等待指定的时间量。当采集单元610采集关联数据记录(例如,与相同键相关联的数据记录)时,采集单元610将关联数据记录分组,例如,通过将数据记录合并成单个记录并生成包括单一、合并记录的数据分组。在示例中,因为数据记录在时间上是分开的,所以采集单元610可以在存储器中存储指示已采集数据记录的数据并等待指定的时间段,以确定是否使用与数据被存储的数据记录的键相匹配的键来接收另一个数据记录(例如,存储器中的暂时性)。由于采集单元610接收的数据记录的量,因此采集单元610实施存储器中网格(或另一个存储器中数据结构)以跟踪和存储表示已经接收到的数据记录的带键数据以及(可选地)表示接收那些记录的时间的时间戳。当接收到新记录时,采集单元610标识新接收到的记录的键,并在存储器中数据网格中查找该存储器中数据网格中是否存在匹配键。如果存在匹配键,则采集单元610将数据记录与匹配键关联,例如,通过将记录合并成单个记录。采集单元610还可以用指定已经接收到针对该键的第二数据记录的数据来更新存储器中网格。另外,采集单元610被配置成在从时间戳中指示的时间开始经过指定量的时间之后删除或以其他方式移除存储器中网格中的条目。
在此示例中,数据结构630表示经过滤的关联记录,并包括逻辑行631至633和逻辑列630a至630e。数据结构630包括动态数据结构,而不是静态数据结构,例如,当接收到新记录时,该动态数据结构被间歇地更新。一旦将动态逻辑(如以下进一步详细描述的)应用于特定条目,就从数据结构630中移除条目(例如,逻辑行)。在将动态逻辑应用于特定条目之后,数据结构630不保留并继续存储该条目。在此示例中,逻辑列630e表示例如针对特定ID的丰富数据。逻辑行631通过包括与ID“384343”相关联的丰富数据来表示记录602的丰富版本。
采集单元610将数据结构630传输至检测模块634。在此示例中,如本文所描述的,检测模块634执行可执行逻辑644。检测模块634还执行动态逻辑(例如,该检测模块执行动态分段),例如,通过执行动态逻辑数据结构640中包括的逻辑。在示例中,动态逻辑包括可执行逻辑,该可执行逻辑被配置成动态即时处理传入数据记录——当它们到达时。在此示例中,数据结构640包括指定规则的逻辑行646、648和逻辑列640a至640d。在此示例中,检测模块634被配置成执行针对数据结构630的数据结构640,以确定数据结构630中表示的哪些记录满足由数据结构640定义的逻辑。在检测到满足逻辑的记录时,检测模块634执行可执行逻辑644的与数据结构640中包括的逻辑的一部分(例如,由数据结构640定义的段)相关联的一个或多个部分。也就是说,可执行逻辑644具有与动态逻辑的各个部分相关联的各个部分(例如,规则)。并非可执行逻辑644的所有部分都对动态逻辑的所有部分是可执行的。检测模块634对满足动态逻辑的一部分的已检测记录执行可执行逻辑644的一部分。例如,由逻辑行632表示的记录603满足包括在数据结构640中的逻辑行646中的动态逻辑。在此示例中,可执行逻辑644的一部分被定义为对由数据结构640中的逻辑行646所定义的逻辑来说是可执行的。因此,检测模块634针对记录603(或针对逻辑行632中包括的数据)执行可执行逻辑644的部分。基于对可执行逻辑的一部分的执行,检测模块634生成用于将目标消息(例如,重新加载移动分钟的邀请)传输至与逻辑列630a处的逻辑行632中包括的ID所表示的用户相关联的客户端设备的指令642。
在示例中,包括在数据结构640中的动态逻辑指定各个段,例如,填充段。例如,逻辑行646中包括的逻辑指定特定段。在此示例中,由检测模块634执行的分段是动态的,因为当系统600实时接收和处理数据记录时,“即时”执行分段。传统上,客户记录被存储到磁盘(例如,在数据存储库中),然后客户被“分段”,例如,通过向客户记录应用各种分段规则。这是静态分段的示例,因为正在对静态客户记录组进行分段。相反,此处,没有静态记录组。而是,系统600连续地和/或间歇地接收记录。当接收到记录时,系统600会动态地对其进行分段,例如,通过使用连续流来即时地处理记录,其中部分处理包括分段。因为记录被动态分段,所以系统600可以检测用户或客户端设备何时进入特定地理位置(例如,商场),并且当用户仍在商场时,在那时向客户端设备发送目标消息。在示例中,动态分段规则可以通过配置参数化应用(例如参数化检测应用之一)来指定。
在示例中,采集单元610或CDA系统的另一组件生成目标组(TG)和对照组(CG),例如,对这些目标组和对照组执行动态逻辑。通常,对照组包括一组用户(例如订户),该一组用户与动态逻辑的指定标准相匹配,并且因此是包含在特定分组中的候选者(例如,包含在活动中),但是这些用户已经明确地被排除在分组之外,因此他们的行为可以与实际参与分组(例如,并且因此接收活动的邀请)的其他用户——目标组进行比较。在此示例中,采集单元在接收到数据记录时即时动态地且实时地确定目标组和对照组。也就是说,采集单元610不是从静态数据集计算对照组和目标组,而是从动态改变的数据集(例如,这些数据集当接收到新记录时间歇地更新和改变)确定目标组和对照组。
在示例中,对照组被如下定义:如果数据记录与指定的逻辑相关联(例如,这些数据记录在给定的活动中),则这些数据记录由采集单元610分配给TG或CG。在示例中,如果指定数据记录的键与逻辑相关联,则该数据记录与指定的逻辑相关联。为了确保TG和CG具有相似的特性和属性,采集单元610生成匹配面板并将其存储在存储器中以对数据记录进行分段。匹配面板(也称为匹配面板立方体)包括表示正在接收针对其的记录的键的多维网格(例如,包括整个订户基础),其中每个键(例如,订户)被分配给一个“立方体”(单元)。维度描述了与键相关联的不同方面,如指示以下内容的数据字段:每用户平均收入(ARPU)、地理(农村或城市)、网络年龄等。具有相同维度值的键出现在匹配面板的同一个立方体中。
然后可以例如通过采集单元610为匹配面板的每个立方体使用稍后描述的指定逻辑来执行确定哪些键(或数据记录)处于TG或CG中。目标组与对照组的成员资格决策还将在指定的图表中作出(例如,从采集应用生成)。如果迟到的记录影响(活动的)逻辑,则在图表逻辑中处理这些迟到的记录。例如,如果逻辑依赖于数据记录A在数据记录B之前到达,但由于操作延迟,数据记录B有可能首先到达,则可以编写图表以考虑这种可能性。如果发送这些数据记录的系统之间存在时间偏差的可能性,则图表逻辑还会考虑时间偏差。在示例中,用于将键(或记录)分配给TG或CG(或两者都不分配——在TG和CG都饱和的数据记录中)的逻辑由采集单元610如下执行。如果逻辑被配置成不需要CG,则采集单元610将键分配给TG。
该逻辑如下:对于每个键,判定该键是否被预先指定为(例如,在表和/或存储器中)属于CG。如果是,则采集单元610将键分配给CG。对于匹配面板的每个立方体,采集单元610如下修改CG中的条目:如果小于指定量(例如,指定百分比)的属于该立方体的预定义键分组(例如,表示活动群体)在CG中,则存在不足。如果存在不足,则将立方体中的TG键移动至该立方体的CG。如果超过指定量的属于该立方体的预定义键分组在CG中的,则存在过量。如果存在过量,则采集单元610将这些键标记为既不在TG中又不在CG中。在示例中,采集单元610计算CG被评分为绿色、黄色或红色的良好程度的测量结果。此测量结果是间歇性改变的动态测量结果,因为CG间歇性地改变。
参考图5A,示出了用于执行实时CDA功能的示例联网环境700。在此示例中,联网环境700包括CDA系统702、客户端系统704、外部数据源706、网络数据源708和外部系统710。CDA系统702包括采集/整合模块712,该采集/整合模块例如执行以上所描述的采集模块的功能。在此示例中,采集模块712将数据存储(如箭头756所示出的)在数据仓库732中。采集模块712以近实时(例如,当接收数据时)和批量的方式存储数据。采集模块712还从数据仓库732中检索(如箭头758所示出的)数据,例如,用于丰富数据记录和用于构建宽记录。在此示例中,采集模块712包括用于存档从数据仓库732中检索的数据的存储器中档案715。在此示例中,如箭头717所示出的,采集模块712可以将一些已采集数据发送回外部数据源706,例如,以促进数据反馈并形成数据反馈回路。CDA系统702还包括应用714,这些应用进而包括检测模块716和动作模块730,这些模块中的每一个执行如上所描述的操作和功能。
在此示例中,检测模块716包括存储器中数据存储装置718,用于存储(例如,CDA系统702的用户的)简档数据,并且还用于存储状态数据(例如,该状态数据指定应用、数据流图表、活动(例如,该活动包括一系列应用和/或数据流图表)等的执行状态。如在此示例中所示出的,例如,将简档存储在存储器中,而不是存储到磁盘,以减少和/或消除数据检索中的时延并实现状态的实时维护。在此示例中,检测模块716例如通过用存储在存储器中数据存储装置718中的简档数据丰富数据记录723来执行丰富。在此示例中,检测模块716执行针对参数化检测应用的规范。由检测模块716执行的丰富是根据由参数化检测应用的规范指定的指令从存储器718中检索与键相关联的简档数据(例如,特定用户的简档数据)并用检索到的简档数据填充(针对该键的)数据记录723的一个或多个字段。
另外,CDA系统702例如通过更新存储器中数据存储装置718中的简档数据来连续地或间歇地更新用户的简档。例如,如果动作模块730向用户发送邀请,则CDA系统702用指定该邀请被发送以及发送了哪个邀请的数据来更新该用户的简档数据。例如,每个邀请包括键或其他唯一标识符或与其相关联。简档数据还包括键或唯一标识符或与键或唯一标识符相关联。一旦动作模块730发送邀请,CDA系统702就标识与该邀请相关联的键,并用指定邀请被发送的数据更新与相同键相关联的简档数据。
另外,基于简档数据,CDA系统702生成KPI。在示例中,KPI是可测量值,该值表明如何有效地实现预定义对象。在示例中,KPI由检测模块716生成并存储在检测模块716中。在该示例中,KPI包括指定向客户发送邀请的时间、邀请发送给哪个客户、该客户是否对邀请作出响应等的数据。在另一个示例中,KPI还表示其他度量,例如,如用户向ATM中存入超过10.00美元的次数,或其他预定义度量或事件。在此示例中,CDA系统702接收输入数据记录。CDA系统702被配置成指定哪些度量是KPI。如此,KPI(和/或其定义)被整合为CDA系统702的初始化的一部分。在仍另一个示例中,CDA系统702用指定由针对该特定键的特定接收到的记录表示的每个事件的其他数据来更新简档数据和/或KPI(针对特定键)。如此,简档数据跟踪并包括表示所有接收到的事件(针对特定用户)和/或预定义事件或事件类型的数据。
在另一个示例中,检测模块716(或参数化检测应用)为键的特定值生成一个或多个KPI。在此示例中,KPI指定与键的特定值相关联的一个或多个数据项值。CDA系统702接收针对键的特定值的数据,其中,接收到的数据指示关于由动作模块730发起的一个或多个动作的反馈和/或其中,接收到的数据包括传入数据记录。在此示例中,检测模块716用反馈数据更新针对键的特定值的KPI,并将KPI存储在存储器中数据存储装置718中。
CDA系统702将其KPI传输至其他系统,例如,以使那些系统能够跟踪和管理邀请有效性和/或客户旅程。如先前所描述的,例如,通过将简档数据存储在存储器中并通过将KPI存储为简档数据的一部分,将简档数据连同KPI一起保持在存储器中。
另外,检测模块716被配置成将外部数据添加到存储器中简档(这些存储器中简档被存储在存储器中数据存储装置718中)。CDA系统702从外部数据源706中的一个或多个中检索此外部数据。在此示例中,检测模块716将外部数据添加到存储器中简档,例如,以进一步减少构建包括丰富和简档数据(例如,用于检测数据记录)的记录的时延。在此示例中,检测模块716执行(例如,已采集数据记录的)存储器中基于键的处理。在此示例中,处理是基于键的处理,因为检测模块716处理与特定键(或标识符)相关联的数据记录,并根据针对该键的(应用或一系列应用的)存储器中状态处理那些带键数据记录(例如,与特定键相关联的数据记录),如美国申请第62/270,257号中所描述的。在此示例中,采集模块712将记录723传输至队列721以供检测模块716检索。在此示例中,采集模块712以批量和实时方式将数据和/或数据记录传输至检测模块716(例如,当采集模块712接收数据记录时)。采集模块712以批量方式将数据传输至检测模块716,例如,通过传输(作为记录723的一部分)从一个或多个数据存储库检索的批数据。
在此示例中,检测模块716执行各种规则(例如,由各种应用和/或流程图指定的规则)。基于对这些规则的执行,检测模块716判定是否需要更新状态(例如,针对特定键)。例如,基于对规则的执行,应用的状态(针对特定键)可以从一个状态转变到另一个状态。当此示例时,检测模块716相应地更新该键的状态。在示例中,检测模块716例如经由持久性存储器中带键数据存储装置将状态存储为与任何特定运行数据流图或应用分离的共享变量。这减少了确定状态所需的时延,例如,因为每个应用和/或模块可以检索该共享变量的存储器中值。
检测模块716还包括应用720、722、724、726,这些应用中的每一个用于执行各种类型的数据处理。在此示例中,采集模块712例如从一个或多个已采集数据记录并且通过将已采集数据记录作为子记录包括在数据记录723中并且还通过用简档数据和/或其他已存储数据丰富数据记录723来生成数据记录723。检测模块716将数据记录723传输至应用720、722、724、726中的每一个,这些应用中的每一个被配置成执行数据处理并应用用于执行数据记录检测的规则。在执行数据记录检测的常规方式中,将生成单独的数据记录并将其传输至(例如,以适合于每个应用的格式)每个应用,从而例如相对于在数据记录的单个宽记录(例如,记录723)被传输至应用720、722、724、726中的每一个应用时所消耗的系统资源、所消耗的存储器和产生的时延的量,导致系统资源的增加、存储器存储的增加以及系统时延的增加,如在美国申请第62/270,257号中所描述的。然而,当每个应用已经整合到特定的系统或模块中时,每个应用共享通用格式,并且因此可以将单个记录传输至应用中的每一个。
基于应用720、722、724、726中的一个或多个的执行,检测模块716检测一个或多个预定义数据记录。对于每个检测到的数据记录,检测模块716向队列728发布动作触发器(例如,执行或引起一个或多个动作的执行的指令),该队列进而将动作触发器发送至动作模块730。基于动作触发器的内容,动作模块730使得执行一个或多个动作(例如,如发送电子邮件、文本消息、SMS消息等)。在一些示例中并且基于动作触发器的内容,动作模块730生成消息或内容,并为消息/内容所针对的用户定制该消息/内容。动作模块730将该定制消息传输(如箭头766所示出的)至外部系统710中的一个或多个,这些外部系统然后传输消息/内容或基于定制消息来执行进一步的动作。
在此示例中,数据仓库732包括查询引擎734、数据仓库738和分析引擎736。查询引擎734从检测模块716、数据仓库738或其他数据源查询数据(例如,指示检测到的数据记录的数据、指示处理的数据记录的数据等),并将该查询到的数据传输(如箭头760所示出的)至分析引擎736用于执行数据分析。在此示例中,分析引擎736将数据分析存储(如箭头762所示出的)在数据仓库738中。除了执行数据记录检测之外,检测模块716还被配置成处理仓库数据(例如,存储在数据仓库738或另一数据存储装置中的数据)以执行各种分析。在此示例中,分析引擎736使用各种个性化规则713,这些个性化规则指定哪些规则应用于与哪些键相关联的数据记录。在此示例中,个性化规则还包括分段规则,这些分段规则指定如何个性化指令或如何把与各种预定义段相关联的记录作为目标。分析引擎736将个性化规则713传输(如箭头764所示出的)至应用714,例如,用于执行个性化规则。
在此示例中,动作模块730将数据和/或消息传输(如箭头740所示出的)至网络数据源708,这些网络数据源然后将数据反馈(如箭头752所示出的)回CDA系统702。在示例中,动作模块730将定制消息传输至网络数据源708,这些网络数据源然后将这些定制消息重新传输(如箭头744所示出的)至客户端系统704,该客户端系统进而将确认消息(未示出)发送(如箭头746所示出的)至网络数据源708,这些网络数据源然后将确认消息作为反馈传输(如箭头752所示出的)回至CDA系统702。如此,联网环境700实施反馈回路(经由箭头740、744、746、752所示出的路径中的一条或多条路径),该反馈回路使得CDA系统702能够审计或跟踪接收到的消息。
在此示例中,动作模块730还将数据(例如,定制消息或其他定制数据)传输(如箭头742所示出的)至外部数据源706以执行数据反馈回路。进而,一个或多个外部数据源706将数据(从动作模块730接收到的)传输(如箭头748所示出的)至客户端系统704,该客户端系统进而可以将确认发送(如箭头750所示出的)回至外部数据源706中的一个或多个,该外部数据源将该确认作为反馈发送(如箭头754所示出的)回至CDA系统702。如此,联网环境700实施另一个反馈回路(经由箭头742、748、750、754所示出的路径中的一条或多条路径)。在此示例中,分析引擎736或CDA系统702的另一个模块跟踪端到端客户行程,例如,通过跟踪邀请是否按原样递送(例如,邀请执行)、用户对邀请的响应、邀请履行等。在此示例中,分析引擎736通过以上所描述的反馈回路之一和/或通过从多个系统(例如,从外部数据源706、外部系统710或跟踪邀请履行和递送的其他外部系统)获得数据来跟踪客户行程(例如,邀请递送和邀请履行)。
在一些示例中,CDA系统702可以评估作为以上所描述的反馈回路之一的一部分接收的数据。例如,接收到的数据可以指定由动作模块输出的邀请或动作的有效性。基于此接收到的数据,CDA系统702评估参数值(例如,用户输入的参数值)是否导致系统的期望反应,例如,是否导致期望动作被执行。使用此反馈,CDA系统702或用户可以修改或调整采集、检测或动作应用的一个或多个参数值。例如,该检测应用可以配置有参数值,这些参数值指定对指示用户的数据计划小于阈值量的剩余数据的事件(或数据记录)的检测。响应于检测此事件,动作应用可以配置有指定要生成的具体动作或输出的一个或多个参数化值。在此示例中,输出可以是通知用户重新加载或购买更多数据的特殊促销机会的消息。使用以上所描述的反馈回路之一,CDA系统702例如通过跟踪邀请履行来跟踪输出的有效性。在示例中,来自动作模块的输出包括唯一标识输出或输出所针对或传输至的用户的键(或其他标识符)。与输出有关的动作(例如,点击输出中的链接或其他可选择部分)被跟踪(例如,通过外部系统),例如,通过包括键或标识符(或与用于输出的键相关联的另一个标识符)的信息记录程序(cookie),通过将动作与包括输出的键或标识符的数字签名相关联等。
在此示例中,基于从反馈回路接收到的数据,CDA系统702可以标识特定输出不是特别有效。例如,输出可能不会导致至少阈值量的用户购买附加数据。基于反馈数据,CDA系统702或用户可以调整检测应用(例如,用于指定对不同或变化的事件的检测)和/或动作应用(例如,用于响应于检测到的事件指定变化或不同的输出)的一个或多个参数值。在此示例中,CDA系统702执行校正回路,该校正回路通过改变值来调整参数值,以在确定所执行的动作不正确(例如,未实现期望的结果)或未被正确执行之后获得要执行的正确动作。在一些示例中,校正回路包括一组规则,该一组规则是基于启发式的并且指定对应用中的一个或多个的修改以修改和/或获得指定结果。
在另一个示例中,检测模块716将反馈直接发送至数据仓库732,如箭头701所示出的。例如,检测模块716可以向数据仓库732发送指示活动成功的数据。检测模块716还可以向数据仓库732发送指示(在检测应用中)所采用的路径、检测应用作出的决定以及检测应用所遵循的分支逻辑的数据(例如,反馈数据)。在此示例中,CDA系统702可以对数据仓库732从检测模块714接收到的反馈数据执行机器学习算法、启发式算法或神经网络中的一个或多个。基于此执行,检测模块716可以更新检测应用中的一个或多个参数值或检测应用中包括的参数的类型。例如,如果分支逻辑的特定区域未被充分使用(如反馈数据所表明的),则神经网络可以利用指定正在访问哪个逻辑的反馈数据,并且基于该反馈数据,调整未被充分利用的分支逻辑的参数以促进对该逻辑的遍历。
以上所描述的反馈回路和校正回路还可以以下面的方式执行,以确保底层系统的正确操作,例如,以确保以正确的方式,即根据需要执行该一个或多个动作。该一个或多个动作可以涉及数据处理任务或网络通信,如以下各项中的一项或多项:向外部设备发送文本消息、向外部系统发送电子邮件、在案例管理系统中打开工作订单的票证、立即切断移动电话连接、向目标设备提供web服务、并使用通知传输该一个或多个经变换的数据项的数据包、并对该一个或多个经变换的数据项执行托管在一个或多个外部计算机上的数据处理应用。在一些示例中,该一个或多个动作包括向用户提供邀请,例如,额外十分钟语音或额外数据。在此示例中,本文所描述的系统被配置成与供应系统(例如,维护或控制分钟和/或数据使用率的系统——如电话网络)进行通信,以向供应系统指示用户具有额外的语音分钟和/或数据。在另一个示例中,该一个或多个动作包括向用户提供益处的系统,如例如,提供金钱。在此示例中,该系统被配置成通过金融交易向在金融实体处维护的用户账户提供金钱。在另一个示例中,该一个或多个动作包括在用户漫游时降级用户的服务以阻止用户招致漫游账单。
底层系统和/或用户可以在反馈回路中接收指示该一个或多个动作是(i)成功完成,还是(ii)失败的反馈消息。如果该一个或多个动作之一的一部分未完成,则可以认为该一个或多个动作失败。反馈消息可以可选地指示该一个或多个失败动作的哪个部分未完成。例如,反馈消息可以指示对该一个或多个经变换的数据项正确或不正确执行托管在一个或多个外部计算机上的数据处理应用,例如,未对数据项中的一些数据项执行应用的一些数据处理任务。反馈消息可以指示哪些数据处理任务(例如,编程代码的哪个部分)未被执行。例如,立即切断移动电话连接的动作可能没有被正确执行,因为移动电话连接仅在一定延迟之后才被切断,该延迟超过了所允许的预定延迟。反馈消息可以指示此特定延迟。反馈消息还可以指示成功完成和/或失败的一个或多个动作的结果数据(例如,由数据处理应用生成的特定延迟或结果)。
可以将结果数据与同成功完成该一个或多个动作的执行相关联的预定数据(例如,被认为是由数据处理应用生成的可允许或期望结果的预定延迟)进行比较。然后可以基于比较确定该一个或多个动作的执行成功完成,或该一个或多个动作的执行失败。如果结果数据偏离预定数据小于预定量(例如,以绝对值的形式或以百分比的形式),则可以确定该一个或多个动作的执行成功完成,并且其中,如果结果数据偏离预定数据至少预定量,则确定该一个或多个动作的执行失败。
也就是说,该一个或多个动作的正确执行可以由预定数据和/或预定量表示。鉴于以上所描述的要执行的可能动作,结果数据与预定数据的此类偏差可能在以下方面发生:接收确认数据、文本/电子邮件消息的传输时间或发送字符数量、票证的票号、切断移动电话连接所需的时间、web服务的可用网络带宽、为数据分组传输的数据量、在外部设备上的数据处理应用中执行的数据处理任务或表征该动作的类似参数或特征。
随后,用于第一参数化应用、第二参数化应用和/或第三参数化应用的一个或多个参数的一个或多个指定值可以基于结果数据进行改变(通过系统702或通过用户),并且第一参数化应用、第二参数化应用和/或第三参数化应用可以通过具有已改变的一个或多个指定值的系统进行重新执行。为了为用户提供评估和/或发起底层系统的正确操作的进一步可能性,可以在一个或多个用户界面的操作期间提供以下交互中的一个或多个:显示一个或多个用户界面元素,用于指定预定数据和预定量;经由一个或多个已显示用户界面元素输出该一个或多个动作是(i)成功完成,还是(ii)失败;并且经由一个或多个已显示用户界面元素输出结果数据。用户界面可以从用户接收(例如,经由作为图形元素的图标)预定数据和预定量。
替代性地,预定数据和预定量中的一个或两个存储在系统可访问和检索的存储器中。用户界面可以图形方式输出(例如,经由作为用户界面元素的图标)该一个或多个动作是(i)成功完成,还是(ii)失败。用户界面可以图形方式输出(例如,经由作为用户界面元素的图标)结果数据以供用户检查或由系统自动使用。经由一个或多个已显示(图形)用户界面元素,接收第一参数化应用、第二参数化应用和/或第三参数化应用的一个或多个参数的用户指定改变的一个或多个指定值(这些指定值可以基于结果数据)并且第一参数化应用、第二参数化应用和/或第三参数化应用可以由系统(例如,系统702)用该改变的一个或多个指定值自动重新执行。通过使用指定作为输入的一个或多个动作的执行的输出,由第三参数化应用自动执行发送用于引起(重新)执行该一个或多个动作的一个或多个指令。可以经由网络连接发送该一个或多个指令以在外部设备上引起该一个或多个动作的(重新)执行。
用户界面可以提供图形元素,该图形元素在用户发起的图形元素激活时自动发起对已改变值的重新执行。例如,可以在用户界面上向用户提供结果数据,并且该用户可以根据该一个或多个动作的正确执行来识别或提供有结果数据不是所期望的信息。然后,用户或系统(例如,系统702)可以在校正回路中发起对已改变值的重新执行动作,其中,已改变值由系统(或由用户输入)基于结果数据计算,以确保动作的正确/期望的执行。这可以帮助确保底层系统的正确操作,例如,通过确保正确地执行该一个或多个动作(即,根据需要)。
如本文所描述的,CDA系统702提供端到端操作稳健性(例如,因为可以利用CDA系统702来处理用于仓储/分析,以及用于操作系统的数据)和商用硬件上的几乎无限的可扩展性,例如,由于重用该应用、由于存储器中状态和简档、并且由于生成的数据记录的宽记录并且然后多次发布到包括例如应用720、722、724、726的各种应用。
参考图5B,联网环境751是图5A中描述的联网环境700的变型。在此示例中,联网环境751包括客户端系统792、联网系统768、外部输入系统769(用于流式传输数据或输入数据)、外部输出系统770(用于接收输出数据)以及具有采集应用780、应用755(包括检测应用775和动作应用776)、简档数据结构771和数据分析应用782的CDA系统753。在此应用中,数据分析应用782包括用于存储数据(例如,以本机格式)的数据存储库765(例如,数据湖)、数据仓库784、分析应用786(例如,用于实施机器学习和数据相关的分析引擎)以及可视化数据763(例如,用于生成数据分析、简档数据等的可视化的数据)。数据分析应用782还包括用于查询数据存储库765、数据仓库784、简档数据结构771等的查询引擎767,例如以便查询数据以供分析应用786处理或分析和/或包含在可视化数据763中。在示例中,简档数据结构771存储在易失性存储器中(例如,以便减少存储器存储需求并且例如相对于当简档数据被存储到磁盘时检索简档数据的时延而减少检索简档数据的时延)和/或存储在非易失性存储器中(例如,存储在数据存储库765和/或数据仓库784中)。CDA系统753还包括数据层788(例如,服务层),该数据层用于将近实时简档数据的部分从简档数据结构771传输(例如,以批量或实时的形式)至外部输出系统770和/或外部输入系统769。
在操作中,客户端系统792中的一个或多个向联网系统768和外部输入系统769传输包括事件(或指示事件)的数据(例如,数据包)。在示例中,客户端系统792之一是智能电话。外部输入系统769之一是电话公司的电信系统。在此示例中,智能电话发送文本消息。当发送文本消息时,智能电话也向电信系统发送数据(指定发送文本消息)。在此示例中,指定发送文本消息的数据是事件。反过来,电信系统将事件传输至采集应用780。通常,采集应用780被配置成从数据源和数据流采集数据记录(例如,以批量和/或实时的形式)。在此示例中,采集应用780将接收到的数据记录传输至应用755。在此示例中,采集应用780通过用采集到的数据记录填充队列759来批量和实时传输接收到的数据记录。
在此示例中,检测应用775被配置成执行各种规则集790a、790b、790c、...、790n。在此示例中,每个规则集执行特定的活动、忠诚度计划、欺诈检测计划等。检测应用775对从采集应用780接收到的数据记录执行各种规则集。在此示例中,检测应用775包括简档存储库773,该简档存储库用于用接收到的数据记录中包括的数据动态更新用户简档(例如,在存储器中)。在此示例中,例如,当需要简档数据来执行规则集和/或判定是否满足规则集的一个或多个条件时,简档数据结构771将简档数据(例如,与特定键和/或所有键相关联)间歇地推送到简档存储库773,该简档存储库将简档数据存储在存储器中以减少检测应用775对简档数据检索时间。当检测应用775接收新数据记录时,检测应用775用适当简档的简档数据更新简档存储库773(例如,通过将与接收到的数据记录相关联的键与同存储在简档存储库773中的简档数据相关联的键进行匹配)。在示例中,数据记录中的特定字段包括简档数据。在此示例中,用那些字段(例如,针对适当键)的内容更新简档存储库773。简档存储库773将其已更新简档数据间歇地推送到简档数据结构771,以更新简档数据结构771。
基于对一个或多个规则集的执行,检测应用775标识要执行的一个或多个动作。在此示例中,检测应用775向队列761发布指令,以使得执行那些一个或多个动作。队列761中的指令被传输至动作应用776,该动作应用包括简档存储库772,该简档存储库将简档数据存储在存储器中。在此示例中,简档存储库772间歇地从简档数据结构771中检索简档数据,并将检索到的简档数据存储在存储器中。简档存储库772这样做是为了实现通过动作应用776以相对于简档数据盘检索的时延的减少的时延检索简档数据。对于指令中指定的动作中的每一个,动作应用776执行该动作或引起执行该动作(例如,通过用执行指令填充队列774并将队列774中的那些执行指令传输至外部输出系统770)。在任一示例中,动作应用776使用简档存储库772中的简档数据来定制已执行动作(例如,使用特定于动作的接收者的简档数据)或者定制执行指令(例如,通过添加特定于动作的接收者的简档数据)。通过将简档存储库772中的简档数据存储在存储器中,而不是将其存储到磁盘,动作应用776以相对于从磁盘检索简档数据时的时延的减少的时延检索简档数据。基于此减少的时延,动作应用776可以以近实时方式向指令和/或动作添加简档数据。在一些示例中,动作应用776用新的简档数据(例如,指定向特定用户发送邀请的数据)更新简档存储库772。简档存储库772向简档数据结构771间歇地推送对简档数据的更新和/或存储在简档存储库772中的简档数据的副本。基于从简档存储库773、772接收的更新和/或简档数据,简档数据结构771维护近实时客户简档。在此示例中,简档数据结构771还从数据仓库784接收简档数据,进一步使得简档数据结构771能够维护针对特定和/或所有键的简档数据版本。
在此示例中,CDA系统753被配置成向采集应用780推送(例如,以批量和/或实时的形式)简档数据结构771中的简档数据,该采集应用进而将简档数据传输至外部输入系统769和/或联网系统768。CDA系统753还被配置成将来自简档数据结构771的简档数据推送(例如,以批量和/或实时的形式)到数据层788,以传输至如数据流757所示出的外部输出系统770、联网系统768(例如,以便基于简档数据中包括的数据(比如,指定执行了什么动作以及何时执行那些动作的数据)来实现操作调度、监测、审计追踪和执行跟踪)以及如数据流791所示出的外部输入系统769(例如,以便基于简档数据中包括的元数据和参考数据来实现数据支配和数据管理(比如,数据归档和质量以及数据沿袭))。在此示例中,存储在简档数据结构771中的简档数据包括数据沿袭数据和表示对简档数据的一个或多个部分(例如,与特定键相关联)执行的变换和其他操作的数据。
在此示例中,采集应用780和数据分析应用782被配置成以批量形式向彼此传输数据。通过这样做,采集应用780向数据分析应用782推送已采集数据记录和从系统768、769接收的其他数据,以存储在数据存储库765和/或数据仓库784中。类似地,数据分析应用782向采集应用780传输分析数据和/或其他已存储数据,例如,用于随后传输至系统768、769中的一个或多个,例如,以促进跨各种系统的数据整合。
参考图6,图形用户界面800示出了用于配置检测模块的灵活向导,例如通过定义用于执行检测的程序的初始设置,例如通过配置参数,比如活动或程序的持续时间、数据记录、数据源和目标人群的定义。在此示例中,图形用户界面800包括用于指定程序(例如,用于活动执行的程序)的一个或多个性质的部分802、用于指定定义用于检测的事件的一个或多个性质和/或参数值的部分804、用于指定用于执行检测的一个或多个性质和/或参数值的部分806以及用于指定用于查看结果的一个或多个性质和/或参数值的状态转变(例如,该转变是检测的一部分)的部分808。
在此示例中,部分804包括用于指定用于执行检测的各种参数的值(例如,包括在参数化逻辑或参数化应用中)的子部分804a、804b、804c。例如,子部分804a使用户能够指定要检测哪些类型的数据记录(例如,数据记录或具有特定性质的数据记录)。子部分804b使用户能够指定那些不执行检测的键,例如,以过滤与特定键相关联的记录。子部分804c使用户能够指定哪些记录将被用作测试记录,例如,以实时测试应用对数据记录的处理。部分806实现配置哪些规则和/或逻辑将由检测模块执行。
参考图7,示出了图6的变型。在此示例中,部分804包括可选择部分812(例如,链接),对该可选择部分的选择使得显示覆盖图810。在此示例中,覆盖图810包括一个或多个可选择部分(例如,复选框),用于指定针对这些数据记录处理(例如,通过应用规则)哪些数据记录。在此示例中,输入到覆盖图810中的数据以关于图2C所描述的方式在功能上指定参数值,例如,以界面250为基础图和/或参数化应用(或参数化逻辑)和/或应用设置参数值相同的方式。
参考图8,图形用户界面900提供采集模块的配置,并示出配置界面901的部分902、904、906、908与通过配置界面901设置参数值的数据流图910的部分912、914、916、918之间的对应关系,例如,实施以上关于图2A至图2C所描述的功能。在此示例中,图形用户界面900示出了可以由非开发者配置的通用应用。在此示例中,数据流图910包括用于采集、变换和丰富从多个源接收到的数据记录的应用。在此示例中,数据流图910包括具有各种参数的应用,这些参数的值通过配置界面901设置。在指定数据流图910的参数值时,CDA系统生成数据流图的实例,例如,数据流图中的参数值被设置为由配置界面指定的值的数据流图910的实例。
在此示例中,配置界面901的部分902指定配置模块采集哪些源文件。对部分902的输入指定数据流图910的部分912中包括的参数值。基于对部分902中的一个或多个可选择部分的选择,用户指定用于采集数据和数据记录的源。部分904指定转换,例如,重新格式化。如本文所述,CDA系统处理任意大数据量、低时延和多种数据格式的复杂性。在此示例中,部分904提供对多种数据格式的处理。对部分904的输入指定数据流图910的部分914中包括的参数值。对部分906的输入指定数据变换,例如,将简档数据丰富和添加到宽记录中。在此示例中,部分906对应于数据流图910的部分916,并且指定数据流图910的部分916中包括的一个或多个参数的值。在此示例中,部分908包括一个或多个可选择部分,用于指定数据流图910的部分918中包括的一个或多个参数的值。部分908用于指定与数据的输出相关的参数值(例如,要输出什么数据)以及用于传输至各种设备的指令。
参考图9,图形用户界面1000显示用于配置检测模块的控件。图形用户界面1000包括用于显示图形用户界面1000中可用的输入的部分1002,例如,对所定义的逻辑的输入。在此示例中,部分1002定义了选项板,如美国申请第62/270,257号中所描述的。选项板包括宽记录中包括的所有数据记录(例如,从CDA系统接收到的采集记录中生成的宽记录)。在此示例中,选项板包括输入1026、1054(例如,数据记录)和丰富的输入1052(例如,丰富的数据记录)。通常,丰富的输入包括基于从数据存储装置或存储器中存储装置中检索或采集的数据的输入,例如,而不是从系统外部接收的数据。在此示例中,输入包括预先计算的聚合,例如,如美国申请第62/270,257号所描述的。对于输入1026,存在各种类型的输入,包括输入1028、1030、1032、1034、1036、1038、1040、1042、1044、1046、1048、1050。这些类型的输入中的每一个都包括在宽记录中。部分1002中显示的每个输入都是可选择的(例如,通过拖放),用于输入到部分1004中的单元中,例如,用于定义逻辑。
图形用户界面1000还包括用于生成要由检测模块执行的逻辑(例如,规则)的部分1004。在示例中,部分1004包括业务规则编辑器。在此示例中,部分1004显示一个或多个参数化应用(例如,检测应用和动作应用)的可视化。部分1004还显示用于指定(多个)参数化应用中的参数值的可编辑单元。在示例中,例如,在输入(多个)参数化应用的参数值时,业务规则编辑器和/或部分1004用于定义规范。也就是说,对部分1004的输入和由部分1004指定的规则一起形成规范。
在此示例中,部分1004包括用于指定一个或多个触发器或条件的逻辑部分1006,对这些触发器或条件的满足使得执行一个或多个动作(例如,通过使得实施输出)。逻辑部分1008指定满足条件或触发器时要发起和/或执行的各种输出。在此示例中,逻辑部分1006包括指定一个或多个状态触发器的状态部分1006a,例如,指定特定键的状态何时对应于检测模块应该对其执行相应动作的特定值或状态类型的条件。逻辑部分1008还包括例如在满足相应触发器时指定逻辑转变到的新状态的状态部分1008a。
在此示例中,逻辑部分1006包括逻辑子部分1010、1012、1014、1016,每个逻辑子部分指定一个或多个条件。例如,逻辑子部分1010指定与正被处理的带键数据相关联的用户是新用户的条件。逻辑子部分1012指定具有“空(is_null)”的“活动状态.合格(CampaignState.Eligible)”值的带键数据的状态的条件。逻辑子部分1014指定正处理的带键数据具有任何数据记录类型的条件。逻辑子部分1016指定SMS使用率大于500的条件。在此示例中,逻辑子部分1010、1012、1014、1016的组合一起形成触发器,对触发器的满足使得检测模块执行和/或实施相应输出。在此示例中,逻辑子部分1010、1012、1014、1016对应于逻辑子部分1018、1020、1022、1024、1025,它们一起指定特定输出。检测模块生成指示特定输出的指令,并将那些指令发送至动作模块,例如,以使得实施输出和/或定制输出并向外部系统发送指示定制输出的数据(或定制输出本身)以供执行。在此示例中,逻辑子部分1018指定可执行逻辑的状态被更新为“新的活动状态.发送邀请(NewCampaignState.SendOffer)”值。逻辑子部分1020指定发送SMS消息的动作。逻辑子部分1022指定消息的内容。逻辑子部分1024指定消息有效的到期日期或值。逻辑子部分1025指定履行计划代码。在此示例中,逻辑子部分1018、1020、1022、1024、1025的组合一起形成例如在满足逻辑子部分1010、1012、1014、1016中指定的条件时实施的输出。
在示例中,部分1002中显示的选项板用于生成逻辑子部分1012、1016、1018、1020、1022、1024中包括的逻辑。例如,逻辑子部分1016中的逻辑是通过将数据记录1040拖放到逻辑子部分1016(在此示例中包括可编辑单元)中生成的。然后,用户将通过向作为逻辑子部分1016的可编辑单元中输入“>500”的文本来进一步编辑逻辑子部分1016。在此示例中,数据记录1040对应于相关联的数据流图或应用中的参数。然后,编辑逻辑子部分1016的用户输入该参数的值,即“>500”的值。使用部分1004中显示的逻辑,CDA系统生成应用或数据流图以实施逻辑,例如,通过将参数化逻辑中的参数值设置为部分1004中显示的那些值。在一些示例中,可执行逻辑可以被指定为流程图,而不是在表中指定。
参考图10,规范1100包括具有节点1102a至1102g的流程图1102。通常,流程图包括用于处理数据记录的应用,例如,参数化应用。在此示例中,参数化应用的参数值的规范(例如,输入)生成规范。如上所述,规范表示可执行逻辑,并基于从对先前数据项执行可执行逻辑所达到的状态来指定可执行逻辑的各种状态。通常,可执行逻辑包括源代码和其他计算机指令。图中的每个节点代表可执行逻辑的一个或多个部分。例如,节点包括生成可执行逻辑的一个或多个逻辑表达(下文称为“逻辑”)。在另一示例中,当可执行逻辑处于特定状态时,节点对应于可执行逻辑的一个或多个特定部分。在此示例中,使用选项板(以上描述的)生成图中的可执行逻辑,例如,以选择各种输入以包含在图的一个或多个节点中。
此应用(由图表示)包括逻辑图形单元,用于对输入数据记录作出反应并产生输出数据记录,例如,基于规范中包含的逻辑生成的数据记录。通常,逻辑图形单元包括至少部分以图形方式生成的逻辑,例如,通过将各种节点从应用(未示出)拖放到用于构建图的窗口。在示例中,节点包括指定以下各项的逻辑(未示出):如何处理输入数据记录、如何设置可执行逻辑使用的变量值、例如在满足逻辑指定的条件时生成哪些输出数据记录等。在示例中,节点可由输入节点的逻辑中使用的参数值和/或变量值的用户编程。
图本身是可执行的,因为节点中的逻辑被编译成可执行逻辑,并且每个节点对应于该可执行逻辑的一个或多个部分。例如,系统通过将节点中的逻辑编译成可执行逻辑来变换规范(和/或规范中的图)。因为图本身是可执行的,所以图本身能够处理数据记录,并且能够被停止、启动和暂停。系统还维持流程图1102的状态,例如,通过跟踪节点1102a-1102g中的哪一个当前正在被执行。流程图1102的状态对应于由流程图1102表示的可执行状态。例如,流程图1102中的每个节点表示可执行逻辑的特定状态(其中可执行逻辑的一个或多个部分在该状态下是可执行的)。当针对键的多个值执行流程图1102时,系统为键的每个值维持流程图1102的状态,例如,通过维持如下进一步详细描述的每个实例的状态。在此示例中,流程图1102包括状态转变图,其中每个传入数据记录驱动节点之间的转变,并且基于处理先前数据记录所达到的状态来评估数据记录。流程图1102中的节点之间的链路表示逻辑的时间流。
节点1102a表示可执行逻辑的开始。在节点1102a完成之后,流程图1102的状态转变到表示可执行逻辑的一个或多个其他部分的节点1102b。节点1102b包括等待节点(下文称为等待节点1102b)。等待节点1102b表示可执行逻辑的一部分(对应于等待节点1102b)等待满足一个或多个条件的输入数据记录的等待状态。在示例中,等待状态可以是流程图1102的另一状态的一部分,例如,系统执行等待节点(以实施等待状态)并且然后执行一个或多个其他节点的状态。在完成可执行逻辑的由等待节点1102b表示的部分之后,系统退出等待状态并执行表示用于实施决策的可执行逻辑的节点1102c。在此示例中,节点1102c包括决策节点。通常,决策节点包括包含用于执行决策的逻辑(例如,求布尔值的逻辑)的节点。
基于该决策的结果,流程图1102的状态转变到节点1102g(该节点使得状态转变回节点1102a)或作为另一个等待节点的节点1102d。在完成可执行逻辑的由等待节点1102d表示的部分之后,流程图1102的状态转变到包括发送节点的节点1102e。通常,发送节点包括表示用于使数据传输至另一个系统的可执行逻辑的节点。在完成执行可执行逻辑的由节点1102e表示的部分之后,流程图1102的状态转变到包括完成节点的节点1102f。通常,完成节点表示可执行逻辑的执行完成。
在示例中,等待节点表示状态之间的转变,例如,从一个状态转变到另一个状态,该状态的开始是等待节点。在此示例中,流程图1102不同于状态转变图,因为不是流程图1102中的每个节点都代表表示状态转变的等待节点。相反,例如,当流程图1102已经处于特定状态时,一些节点表示要执行的动作。在一些示例中,系统处理流程图1102以生成状态机图或状态机指令。
在此示例中,流程图1102包括两种状态,由节点1102b、1102c、1102g表示的第一状态,由节点1102d、1102e、1102f表示的第二状态。在此第一状态下,系统等待特定数据记录(如节点1102b所表示的),并且然后执行节点1102c,该节点进而使得转变(规范1100和/或流程图1102的)到第二状态(其开始由节点1102d表示),或者使得执行节点1102g。一旦处于第二状态,系统再次等待特定数据记录(如节点1102d所表示的),并且然后执行节点1102e、1102f。通过包括除等待节点之外的节点,流程图1102包括数据记录的时间处理的逻辑图。在此示例中,流程图1102包括链路2i,该链路表示流程图1102从第一状态转变到第二状态并且还表示从节点1102c到节点1102d的数据流。
流程图1102还包括节点1102a、1102b之间的链路1102j和节点1102b、1102c之间的链路1102k,以表示用于可执行逻辑的对应于节点1102a、1102b、1102c的、处于第一状态的部分的用户指定执行顺序。在此示例中,可执行逻辑的处于第一状态的部分(下文称为“第一状态可执行逻辑”)包括语句(例如,逻辑语句、指令等(本文中统称为“语句”,但不限于此))。通常,执行顺序包括执行可执行逻辑和/或语句的顺序。节点1102a、1102b、1102c中的每一个对应于那些语句中的一个或多个(例如,对应于第一状态可执行逻辑的一个或多个部分)。如此,链路1102j通过表示由节点1102a表示的第一状态可执行逻辑中的语句在由节点1102b表示的第一状态可执行逻辑中的其他语句执行之前由系统执行来表示第一状态可执行逻辑的执行顺序。链路1102k还通过表示由节点1102b表示的第一状态可执行逻辑中的语句在由节点1102c表示的第一状态可执行逻辑中的其他语句执行之前由系统执行来表示第一状态可执行逻辑的执行顺序。
规范1100还包括标识流程图1102处理包括键1102h或与键1102h相关联的数据记录的键1102h。在此示例中,自定义标识符(ID)用作键。键1102h可以对应于数据记录的字段之一(即,数据记录字段),例如,如订户_ID字段、客户_ID字段、会话_ID字段等。在此示例中,客户_ID字段是键字段。对于特定的数据记录,系统通过标识该数据记录的键字段的值来确定该数据记录的键的值。
在此示例中,流程图1102订阅指定类型的数据记录(例如,当配置流程图1102时指定)。在此示例中,流程图1102订阅包括键1102h的数据记录。在此示例中,流程图1102和数据记录共享键。通常,流程图通过包括用于处理包括流程图的键的那些数据记录的逻辑来订阅数据记录的类型。当数据记录处理开始时,系统为该流程图的键的每个新值开始新的流程图实例,例如,通过维持键的每个新值的可执行逻辑的状态(在流程图中表示)。系统通过配置流程图实例(以及因此底层可执行逻辑)来响应特定键值的数据记录,从而执行数据记录处理。在示例中,流程图订阅客户短消息服务(SMS)数据记录。特定客户ID的流程图实例管理该客户的数据记录。流程图实例的数量可以与传入数据记录中遇到的客户ID的数量一样多。在一些示例中,本文所描述的系统为流程图1102的配置提供用户界面,例如,以使用户能够容易地将值输入到流程图的各个组件中。
参考图11,示意图1107展示了例如由系统根据流程图1102(图10)生成的流程图实例1103、1104、1105以及数据记录1106a、1106b、1106c。也就是说,为在数据记录1106a、1106b和1106c中检测到的每个新键创建流程图1102的新副本或实例。
流程图实例1103、1104、1105中的每一个都与“客户_id”键相关联。流程图实例1103处理在其“客户_id”字段中包括值“VBN3419”的数据记录,该字段在此示例中是键字段。流程图实例1104处理在其“客户_id”字段中包括值“CND8954”的数据记录。流程图实例1105处理在其“客户_id”字段中包括值“MGY6203”的数据记录。在此示例中,系统不会为每个流程图实例重新执行可执行逻辑。相反,系统执行可执行逻辑,并且然后通过维持键的对应值的状态来实施流程图实例。因此,“处理数据记录的流程图实例”的示例是执行可执行逻辑(由流程图表示)、维持键的每个值的状态以及处理与键的特定值相关联的数据记录(基于键的特定值的状态机的状态)的系统。
在此示例中,流程图实例1103包括节点1103a至1103g,其分别对应于图10中的节点1102a至1102g。流程图实例1104包括节点1104a至1104g,其分别对应于图10中的节点1102a至1102g。流程图实例1105包括节点1105a至1105g,其分别对应于图10中的节点1102a至1102g。
流程图实例本身是可执行的。在系统接收与键的特定值相关联的输入数据记录之后,键的特定值的流程图实例处理输入数据记录,例如,通过系统执行对应于流程图实例的可执行逻辑的一个或多个部分(或流程图实例的一个或多个节点)。流程图实例继续处理输入数据记录,直到输入数据记录到达完成节点或等待节点。在此示例中,流程图实例继续处理输入数据记录,例如,通过系统继续处理输入数据记录,直到到达可执行逻辑的对应于完成节点或等待节点的部分。如果输入数据记录到达等待节点,则流程图实例将暂停,直到经过一定量的时间或适当的新输入数据记录到达。通常,适当的数据记录包括满足一个或多个指定条件或标准(例如,包括在节点的逻辑中)的数据记录。如果输入数据记录到达完成节点,则流程图实例的执行完成。
流程图实例具有自己的生命周期。当数据记录到达时,流程图实例的一个或多个当前状态发生变化:数据记录触发决策,或者返回流程图实例的开始,或者向客户发送消息。当数据记录到达完成节点时,客户的流程图实例结束。
在此示例中,系统开始流程图实例1103以获得键字段的“VBN3419”值(例如,客户_id=VBN3419)。流程图实例1103处理包括客户_id VBN3419的数据记录1106a、1106b、1106c的子集。在此示例中,流程图实例3处理在客户_id键字段中具有值“VBN3419”的数据记录1106a。流程图实例1103的节点1103a、1103b、1103c处理数据记录1106a。流程图实例1103的当前状态是等待数据记录的状态,如节点1103d的虚线所表示的。当到达节点1103d时,流程图实例1103等待具有客户ID=VBN3419的另一个数据记录通过流程图实例1103的节点1103d、1103e、1103f进行处理。
系统开始针对键的“CND8954”值(例如,客户_id=CND8954)的流程图实例1104。流程图实例1104处理包括客户_id CND8954的数据记录1106a、1106b、1106c的子集。在此示例中,流程图实例4包括等待节点1104b和1104d。每个数据记录仅可以满足每个流程图实例的一个等待节点的条件。因此,流程图实例1104通过节点1104b到节点1104d处理具有客户_id=CND8954的数据记录1106b,并且然后在前进到节点1104f之前等待具有相同键的第二数据记录。系统开始针对键的“MGY6203”值(例如,客户ID=MGY6203)的流程图实例1105。流程图实例1105处理包括客户_id MGY6203的数据记录1106a、1106b、1106c的子集。在此示例中,流程图实例1105通过节点1105b至1105d处理具有客户_id=MGY6203的数据记录1106c,并且然后在前进到发送消息的节点1105e之前等待具有相同键的第二数据记录。在此示例中,系统不在非等待节点处停止,并且因此不在节点1105e处停止,而是发送消息,并且然后前进到节点1105f。
在图11的变型中,系统为单个键值生成多于一个流程图实例。例如,对于相同的客户,可能存在具有不同开始和结束日期的多个流程图实例,或者对于相同的用户,可能存在用于不同营销活动的多个流程图实例。
在此示例中,系统通过在数据存储库或存储器中数据网格中存储状态数据(例如,指示当前正为每个实例执行哪个节点的数据)来维持实例的状态。通常,状态数据包括指示状态的数据。在此示例中,实例与键的值相关联。数据存储库或存储器中数据网格存储键的值。系统通过存储针对键的每个值的状态数据来维持实例的状态。在完成对键的特定值的数据记录的处理后,系统更新数据存储库中的状态数据,以指定下一个节点(在流程图1102中)表示针对键的值的当前状态。然后,当另一数据记录到达时,系统在数据存储库中查找针对键的值的当前状态,并执行可执行逻辑的与表示针对键的值的可执行逻辑的当前状态的节点相对应的部分。
参考图12,逻辑流1112基于对逻辑(例如,使用上述选项板生成的基于规则的逻辑)的执行,该逻辑使用在其执行中使用上述技术生成的宽记录。在此示例中,逻辑流1112基于包括在一个或多个特定订户的数据记录中的数据记录来指定各种数据记录触发器和动作。逻辑流1112包括不同的决策点(例如,“订户消费了五十条SMS消息吗?”)。对于特定键,检测模块基于订户的数据记录中包括的数据记录(或对数据记录的缺乏)并基于针对该键的可执行逻辑的状态来决定要遍历逻辑流1112的哪个分支。通常,状态是指逻辑的在逻辑执行期间已经转变的特定组件(例如,特定数据记录触发器或特定动作)。例如,状态指定当前正针对特定键执行逻辑中的哪个数据记录触发器或动作。在一些示例中,检测模块在逻辑流1112中选择分支之前等待指定的时间段。通过等待这些指定的时间段,检测模块分析插入到数据记录中的新数据记录。
在此示例中,逻辑流1112包括数据记录触发器1119,其指定在激活特定订户的服务时,动作模块执行监测特定订户在两天内消费的SMS消息量的启动动作1120。在此示例中,数据记录触发器1119是由逻辑流1112执行的规则的先决条件。在满足数据记录触发1119时,动作模块执行启动动作1120。检测模块通过检测宽记录中的激活数据记录来确定特定订户何时满足数据记录触发器1119,并确定与激活数据记录相关联的订户(经由订户ID)。
在此示例中,当订户在过去两天中消费了至少五十条SMS消息时(例如,如由数据记录中的SMS使用率数据记录聚合指定),执行数据记录触发器1113。数据记录触发器1113执行建议的重新加载动作1114,这使得动作模块提示此特定订户重新加载。当订户确实执行重新加载时,用表示重新加载的数据记录更新该特定订户的数据记录中的条目。数据记录的这种更新使逻辑流1112执行数据记录触发器1115,该数据记录触发器指定在成功重新加载执行动作1116时以向订户发送打包建议SMS。通常,打包建议是购买套餐或捆绑服务的建议。
当用户发送对套餐建议SMS的响应时,用表示响应的数据记录和表示在小于三小时内接收到响应的数据记录更新数据记录。检测模块检测数据记录中的更新,并使数据记录触发器1117执行。当订户已经完成套餐购买时,数据记录触发器1117指定在执行结束活动的动作1118的小于十小时内何时接收响应(针对该特定订户)。当数据记录中针对特定订户的条目指定该特定订户未发送对动作1116的响应时,逻辑流1112还指定结束针对该特定订户的活动的动作1125。
在示例中,数据记录中针对特定订户的条目指定订户未执行重新加载,例如,通过不存在重新加载数据记录或者通过指定不存在重新加载的导出数据记录。在此示例中,逻辑流1112指定等待三小时的数据记录触发器1123,例如,以监测用户是否在接下来的三小时内执行重新加载。三小时后,数据记录触发器1123使得执行向订户发送用于重新加载的提醒SMS的提醒动作1124。如果订户未响应提醒SMS,则逻辑流1112指定结束针对该特定订户的活动的动作1126。
响应于动作1120,针对特定订户的条目可以指定该订户在过去两天中未消费至少五十条SMS。该条目可以通过指定没有消费五十条SMS的导出数据记录或者通过指定消费少于五十条SMS的SMS使用率聚合数据记录来指定这一点。在此示例中,逻辑流1112包括等待五天并且然后实施发送提醒SMS的动作1122的数据记录触发器1121。如果在发送提醒之后,订户在另一个五天内仍然没有消费五十条SMS(例如,由数据记录中针对该订户的数据记录所指定的),则逻辑流1112指定数据记录触发器1127执行向客户恢复团队发送警报(例如,以通知该团队消费者没有使用该服务)并结束针对该特定订户的活动的动作1128。
参考图13,系统(例如,本文所述的CDA系统,例如,系统100)在处理多个不同数据流中的数据项时实施过程1200。在操作中,系统访问(1202)第一参数化应用、第二参数化应用和第三参数化应用(例如,参数化应用)。在此示例中,参数化应用中的每一个包括定义该参数化应用的一个或多个性质的一个或多个参数。
系统(或上述系统的采集模块114)使用第一参数化应用的一个或多个参数的一个或多个指定值来执行(1204)第一参数化应用,以实施用于处理数据记录的采集模块(例如,上述系统的采集模块114)。在示例中,第一个参数化应用包括数据流图910(图9)。在此示例中,数据流图910的一个或多个参数的值是通过将值输入到部分902、904、906、908中的一个或多个部分中来指定的。在此示例中,部分902、904、906、908提供将一个或多个值输入到部分902、904、906、908的一个或多个可选择和/或可编辑区域中。这些可选和/或可编辑区域被映射或以其他方式与数据流图910的参数相关联,例如,以使得能够设置这些参数的值。
系统(或上述系统的采集模块114)通过从多个彼此有差异的(例如,不同的)数据流中采集(1206)数据项(例如,数据记录)来执行处理。在此示例中,从一个流采集的数据项的第一部分的格式与从不同流采集的数据项的第二部分的格式不同。此外,数据项与键的值相关联,并且因此可以被称为带键数据。该系统(或上述系统的采集模块114)还根据第一参数化应用的一个或多个规范变换(1208)数据项的第一部分和数据项的第二部分。在示例中,系统通过将数据格式化为适合于采集模块、检测模块和/或动作模块(例如,上述采集模块114、检测模块116和/或动作模块118)的格式来变换数据项(或其部分)。通过这样做,该系统解决了用于数据记录管理的数据整合和准备的问题,而不需要如上所述的附加技术。如前所述,此能力简化并加速了端到端整合。具体地,接收到的数据记录只需要格式化和验证一次(例如,由采集模块114),并且然后可以由采集模块、检测模块和动作模块(例如,上述采集模块114、检测模块116和/或动作模块118)处理。在常规方法中,独立的系统执行采集、检测和动作。如此,需要为采集方面格式化数据,然后再次格式化为适合检测方面的格式,并又再次格式化为适合动作方面的格式。这种重复的格式化和重新格式化在采集、检测和动作的执行中引入了明显的时延,并且在接收数据记录时记录实时动作(或近实时)。这种重复的格式化和重新格式化也会消耗大量带宽和系统存储器资源。因此,与常规方法相反,本文描述的系统提供了降低的带宽和存储器消耗,以及降低的处理中的时延——这提供了实时动作执行。
采集模块还通过用更慢变化的数据(例如,来自数据存储的简档数据)解析、验证和丰富(视情况而定)接收到的数据记录来执行变换。如前所述,这种丰富包括在数据记录选项板(或其子集)中生成所有数据记录,以便实现针对接收到的数据记录的逻辑的实时执行,而没有执行数据库查找以检索逻辑执行所需的数据时的时延。该系统将这些经验证和丰富的数据记录存储在存储器中,例如,以实现实时检测。系统还将这些经验证和丰富的数据记录存储到磁盘以进行归档并确保适度恢复。采集模块被配置成处理大量数据源(和/或几乎任何数据源),从而实现快速和独立地整合到CDA系统中,同时处理任意大数据量、低时延和多种数据格式的复杂性。在变换已采集数据记录之后,采集模块用表示经变换的数据项的条目填充(1210)队列。队列然后将数据项传输至第二参数化应用,例如,检测模块。
在此示例中,系统执行(1212)第二参数化应用,例如,以实施检测模块(例如,上述检测模块116)。具体地,系统使用第二参数化应用的一个或多个参数的一个或多个指定值来执行第二参数化应用,以处理队列中经变换的数据项。在此示例中,第二参数化应用表示包括规则和规则的对应条件的规范。另外,针对键的对应值维持规范的状态。
在示例中,处理队列中的经变换的数据项包括以下操作。对于与键的特定值相关联的一个或多个经变换的数据项,系统(和/或系统的检测模块)检测(1214)该一个或多个经变换的数据项中的至少一个满足规范的规则中的至少一个规则的一个或多个条件。响应于检测,检测模块生成指定一个或多个动作的执行的输出,并将该输出发布到队列。例如,输出可以是针对用户的消息或邀请。在示例中,输出以及关于输出的一个或多个用户动作(或者缺乏用户动作)由CDA系统来跟踪。对这些用户动作的跟踪向CDA系统提供反馈查找,其中,CDA系统跟踪输出,并且然后接收指定输出的递送、与输出的一个或更多用户交互、关于输出的一个或多个动作等的数据(例如,来自外部系统或CDA系统本身)。检测模块还使得(1216)关于键的特定值的规范从其当前状态转变到后续状态。例如,图9的部分1004显示指示可执行逻辑的当前状态的状态部分1006a。部分1004还显示指示后续状态或可执行逻辑转变到的状态的状态部分1008a。
在此示例中,系统还用第三参数化应用的一个或多个参数的一个或多个指定值执行(1218)第三参数化应用,以执行操作,这些操作包括:发送一个或多个指令以使得执行一个或多个动作。在此示例中,第三参数化应用实施动作模块。如前所述,此动作模块定制输出并将其发送给用户和/或将定制输出传输至外部系统。
上述技术可以使用软件实现以便在计算机上执行。例如,软件形成一个或多个计算机程序中的在一个或多个编程或可编程计算机系统(可以是诸如分布式、客户端/服务器或网格等各种架构)上执行的程序,该计算机系统各自包括至少一个处理器、至少一个数据存储系统(包括易失性和非易失性存储器和/或存储元件)、至少一个输入设备或端口以及至少一个输出设备或端口。该软件可以形成较大程序的一个或多个模块,例如,提供与图表和流程图的设计和配置相关的其他服务。图表的节点、链路和元素可以被实施为存储在计算机可读介质中的数据结构或者符合存储在数据存储库中的数据模型的其他有组织的数据。
本文所描述的技术可以在数字电子电路中实现,或者在计算机硬件、固件、软件或其组合中实现。装置可以在有形地呈现或存储在机器可读存储设备(例如,非暂态机器可读存储设备、机器可读硬件存储设备等)中的计算机程序产品中实现,以供可编程处理器执行;并且方法动作可以由执行指令程序的可编程处理器来执行,以通过对输入数据进行操作并生成输出来执行功能。本文所描述的实施例和权利要求的其他实施例以及本文所描述的技术可以有利地在可编程系统上可执行的一个或多个计算机程序中实施,该可编程系统包括至少一个可编程处理器,该可编程处理器被耦接以从数据存储系统、至少一个输入设备以及至少一个输出设备中接收数据和指令并向数据存储系统、至少一个输入设备以及至少一个输出设备传输数据和指令。每个计算机程序可以用高级程序或面向对象的编程语言实现,或者如果需要的话用汇编或机器语言实现;并且在任何情况下,语言可以是汇编或解释语言。
适合于执行计算机程序的处理器举例来讲包括通用微处理器和专用微处理器两者、以及任何种类的数字计算机的任何一个或多个处理器。通常,处理器将从只读存储器或随机存取存储器或两者接收指令和数据。计算机必不可少的元件是用于执行指令的处理器和用于存储指令和数据的一个或多个存储器设备。通常,计算机还将包括用于存储数据的一个或多个大容量存储设备(例如,磁盘、磁光盘或者光盘),或者被可操作地耦接以从大容量存储设备中接收数据或者向大容量存储设备传递数据,或者既接收又传递数据。用于体现计算机程序指令和数据的计算机可读介质包括所有形式的非易失性存储器,举例来说,包括半导体存储设备,例如,EPROM、EEPROM和闪存设备;磁盘,例如,内部硬盘或可移动磁盘;磁光盘;以及CD-ROM和DVD-ROM磁盘。处理器和存储器可以由专用逻辑电路来补充或并入专用逻辑电路。上述任何一项都可以由ASIC(专用集成电路)补充或并入ASIC。
为了提供与用户的交互,实施例可以在具有用于向用户显示信息的显示设备(例如,LCD(液晶显示器)监视器)和用户可以通过其向计算机提供输入的键盘和指点设备(例如,鼠标或轨迹球)的计算机上实现。其他种类的设备也可以用于提供与用户交互;例如,提供给用户的反馈可以是任何形式的传感反馈,例如,视觉反馈、听觉反馈或触觉反馈;并且可以用任何形式接收来自用户的输入,包括声音、语音、或触觉输入。
实施例可以在计算系统中实现,该计算系统包括后端组件(例如,作为数据服务器),或者包括中间件组件(例如,应用服务器),或者包括前端组件(例如,具有图形用户界面或Web浏览器的客户端计算机,用户可以通过该图形用户界面或Web浏览器与实施例的实现交互),或者这些后端、中间件或前端组件的任意组合。系统的组件可以通过数字数据通信(例如,通信网络)的任何形式或介质来进行互连。通信网络的示例包括局域网(LAN)和广域网(WAN)(例如,互联网)。
该系统和方法或其部分可以使用互联网上利用超文本传输协议(HTTP)的服务器集合——“万维网”(Web或WWW)。HTTP是已知的应用协议,其为用户提供对资源的访问权,资源可以是不同格式的信息,比如文本、图形、图像、声音、视频、超文本标记语言(HTML)以及程序。在用户指定链路后,客户端计算机向Web服务器发出TCP/IP请求并接收信息,该信息可以是根据HTML格式化的另一个Web页。用户也可以通过遵循屏幕上的指令、输入特定数据或点击所选图标来访问相同或其他服务器上的其他页。还应当注意,本领域技术人员已知的任何类型的选择设备,例如复选框、下拉框等,可以用于使用web页来允许用户为给定组件选择选项的实施例。服务器在各种平台上运行,包括UNIX机器,但也可以使用其他平台,如Windows2000/2003、Windows NT、Sun、Linux和Macintosh。计算机用户可以通过使用浏览软件(比如Firefox、Netscape Navigator、Microsoft Internet Explorer或Mosaic浏览器)在Web上查看服务器或网络上可用的信息。计算系统可以包括客户端和服务器。客户端和服务器通常远离彼此并且通常通过通信网络交互。客户端与服务器的关系借助于在各自的计算机上运行并且彼此具有客户端-服务器关系的计算机程序产生。
其他实施例在说明书和权利要求的范围和精神内。例如,由于软件的性质,上述功能可以使用软件、硬件、固件、硬连线或任何这些的组合来实现。实现功能的特征也可以物理地位于各种位置,包括被分布使得功能的各部分在不同的物理位置处实现。术语“一个(a)”在本文和整个申请中不是以限制的方式使用,因此并不意味着排除术语“一个(a)”的多重含义或“一个或多个”含义。另外,在要求临时专利申请的优先权的程度上,应当理解,临时专利申请不是限制性的,而是包括可以如何实现本文所描述的技术的示例。
已经描述了本发明的多个实施例。然而,本领域普通技术人员将会理解,在不脱离权利要求和本文所描述的技术的精神和范围的情况下,可以进行各种修改。
Claims (32)
1.一种用于检测带键数据项的聚合值的数据处理系统,其中,每个带键数据项将特定数据项与特定键值相关联,并且对于一个或多个键值中的每个键值使得执行一个或多个动作,该数据处理系统包括:
检测子系统,其被配置成接收从各自位于该数据处理系统的外部的多个不同数据源所采集的带键数据项的队列,其中,每个带键数据项包括具有针对相关键值的特定数据值的数据项,从该不同数据源中的第一数据源采集的至少第一带键数据项具有与从该不同数据源中的第二数据源采集的至少第二带键数据项不同的数据格式,并且该队列中的带键数据项由从中采集该带键数据项的数据源的格式重新格式化为该检测子系统的可读格式;
其中,该检测子系统包括存储器中数据存储装置,该存储器中数据存储装置用于针对多个键值中的每个键值来存储具有各自存储有针对该键值的一个或多个聚合值的多个预定义字段的一个或多个数据记录,其中,针对该键值的聚合值是以下各项的聚合:(i)针对该键值的从另一数据存储装置检索到的一个或多个数据值、以及(ii)针对该键值的包括在从该多个不同数据源采集的带键数据项的队列中的一个或多个对应数据项的一个或多个数据值;
其中,该检测子系统被配置成通过以下操作来执行应用,该应用用于对从该队列输入到该检测子系统的带键数据项进行处理:
针对所输入的带键数据项的特定键值,
标识该应用的针对该特定键值的当前状态;
利用该存储器中数据存储装置来访问针对该特定键值的数据记录;
针对所访问的数据记录,来执行该应用中的被指定用于在该当前状态下执行的一个或多个部分;
在检测到所访问的数据记录的指定字段中的指定聚合值时,输出指定针对特定键值的指定聚合值的检测的指令;以及
使得该应用关于特定键值从其当前状态转变到后续状态;以及
指令子系统,响应于从该检测子系统接收到针对该特定键值的指令而指示一个或多个通信通道进行针对该特定键值的一个或多个动作。
2.如权利要求1所述的数据处理系统,进一步包括:
一个或多个处理器;以及
一个或多个机器可读硬件存储设备,存储有能够由该一个或多个处理器执行以进行操作的指令。
3.如权利要求2所述的数据处理系统,其中,该操作包括:
显示用于为该应用指定一个或多个参数的一个或多个值的一个或多个用户界面元素。
4.如权利要求3所述的数据处理系统,其中,执行该应用包括利用由用于该应用的一个或多个参数的一个或多个用户界面元素所指定的一个或多个值来执行该应用。
5.如权利要求2所述的数据处理系统,其中,数据项包括数据记录,并且其中,该操作进一步包括根据指定格式来重新格式化该数据记录。
6.如权利要求1所述的数据处理系统,其中,数据项是数据记录,并且其中,该检测子系统进一步被配置成进行包括以下的操作:
利用来自与该数据记录相关联的用户的简档的数据来丰富该数据记录,其中根据由应用指定的指令来对该数据记录进行丰富,该指令用于从该存储器中数据存储装置中检索针对该用户的简档数据并利用检索到的简档数据填充该数据记录的一个或多个字段。
7.如权利要求2所述的数据处理系统,其中,该操作进一步包括执行到一个或多个第三方系统的反馈回路以请求对该一个或多个动作的执行的确认。
8.如权利要求2所述的数据处理系统,其中,该操作进一步包括:
基于对该应用的执行,生成针对该键的特定值的一个或多个关键性能指标即KPI,其中,KPI指定与该键的特定值相关联的数据项的一个或多个值。
9.如权利要求8所述的数据处理系统,其中,该操作进一步包括接收针对该键的特定值的数据,其中,接收到的数据指示关于该一个或多个动作中的至少一个动作的反馈;以及
通过将包括在该KPI中或与该KPI相关联的数据的一个或多个部分与该接收到的数据聚合,利用反馈数据来更新针对该键的特定值的KPI。
10.如权利要求1所述的数据处理系统,其中,该一个或多个动作包括以下各项中的一项或多项:向外部设备发送文本消息、向外部系统发送电子邮件、在案例管理系统中打开工作订单的票证、切断移动电话连接、向针对性设备提供web服务、利用通知传输一个或多个经变换的数据项的数据包、以及对该一个或多个经变换的数据项执行托管在一个或多个外部计算机上的数据处理应用。
11.如权利要求2所述的数据处理系统,其中,一个或多个指令从该指令子系统经由网络连接发送,以使得在外部设备上执行该一个或多个动作中的至少一个动作,该操作进一步包括:
接收指示该一个或多个动作中的至少一个动作是(i)成功完成还是(ii)失败的反馈消息。
12.如权利要求11所述的数据处理系统,其中,如果该一个或多个动作中的至少一个动作的一部分未完成,则认为该一个或多个动作中的该至少一个动作失败,其中,该反馈消息指示一个或多个失败动作中的至少一个失败动作的哪个部分未完成。
13.如权利要求11所述的数据处理系统,其中,该反馈消息指示该一个或多个动作中的至少一个成功完成和/或失败的动作的结果数据。
14.如权利要求2所述的数据处理系统,其中,一个或多个指令从该指令子系统经由网络连接发送,以使得在外部设备上执行该一个或多个动作,该操作进一步包括:
从该外部设备接收反馈消息,该反馈消息包括该一个或多个动作中的所执行的至少一个动作的结果数据;
将该结果数据与同成功完成对该一个或多个动作中的至少一个动作的执行相关联的预定数据进行比较;以及
基于该比较,判断为对该一个或多个动作中的至少一个动作的执行成功完成,或对该一个或多个动作中的至少一个动作的执行失败。
15.如权利要求14所述的数据处理系统,该操作进一步包括:
基于该结果数据来改变针对该应用的一个或多个参数的一个或多个指定值;以及
利用改变的一个或多个指定值重新执行该应用。
16.一种由用于检测带键数据项的聚合值的数据处理系统实现的方法,其中,每个带键数据项将特定数据项与特定键值相关联,并且对于一个或多个键值中的每个键值使得执行一个或多个动作,该数据处理系统包括:
由检测子系统接收从各自位于该数据处理系统的外部的多个不同数据源所采集的带键数据项的队列,其中,每个带键数据项包括具有针对相关键值的特定数据值的数据项,从该不同数据源中的第一数据源采集的至少第一带键数据项具有与从该不同数据源中的第二数据源采集的至少第二带键数据项不同的数据格式,并且该队列中的带键数据项由从中采集该带键数据项的数据源的格式重新格式化为该检测子系统的可读格式;
针对多个键值中的每个键值,将具有各自存储有针对该键值的一个或多个聚合值的多个预定义字段的一个或多个数据记录存储在存储器中数据存储装置中,其中,针对该键值的聚合值是以下各项的聚合:(i)针对该键值的从另一数据存储装置检索到的一个或多个数据值、以及(ii)针对该键值的包括在从该多个不同数据源采集的带键数据项的队列中的一个或多个对应数据项的一个或多个数据值;
通过以下操作来执行应用,该应用用于对从该队列输入到该检测子系统的带键数据项进行处理:
针对所输入的带键数据项的特定键值,
标识该应用的针对该特定键值的当前状态;
利用该存储器中数据存储装置来访问针对该特定键值的数据记录;
针对所访问的数据记录,来执行该应用中的被指定用于在该当前状态下执行的一个或多个部分;
在检测到所访问的数据记录的指定字段中的指定聚合值时,输出指定针对特定键值的指定聚合值的检测的指令;以及
使得该应用关于特定键值从其当前状态转变到后续状态;以及
响应于从该检测子系统接收到针对该特定键值的指令而指示一个或多个通信通道进行针对该特定键值的一个或多个动作。
17.如权利要求16所述的方法,进一步包括:
显示用于为该应用指定一个或多个参数的一个或多个值的一个或多个用户界面元素。
18.如权利要求16所述的方法,其中,执行该应用包括利用由用于该应用的一个或多个参数的一个或多个用户界面元素所指定的一个或多个值来执行该应用。
19.一种用于检测带键数据项的聚合值的一个或多个机器可读硬件存储设备,其中,每个带键数据项将特定数据项与特定键值相关联,并且对于一个或多个键值中的每个键值使得执行一个或多个动作,该一个或多个机器可读硬件存储设备存储有指令,这些指令能够由一个或多个处理设备执行以进行包括以下的操作:
接收从各自位于所述处理设备的外部的多个不同数据源所采集的带键数据项的队列,其中,每个带键数据项包括具有针对相关键值的特定数据值的数据项,从该不同数据源中的第一数据源采集的至少第一带键数据项具有与从该不同数据源中的第二数据源采集的至少第二带键数据项不同的数据格式,并且该队列中的带键数据项由从中采集该带键数据项的数据源的格式重新格式化为可读格式;
针对多个键值中的每个键值,将具有各自存储有针对该键值的一个或多个聚合值的多个预定义字段的一个或多个数据记录存储在存储器中数据存储装置中,其中,针对该键值的聚合值是以下各项的聚合:(i)针对该键值的从另一数据存储装置检索到的一个或多个数据值、以及(ii)针对该键值的包括在从该多个不同数据源采集的带键数据项的队列中的一个或多个对应数据项的一个或多个数据值;
通过以下操作来执行应用,该应用用于对来自该队列的带键数据项进行处理:
针对所输入的带键数据项的特定键值,
标识该应用的针对该特定键值的当前状态;
利用该存储器中数据存储装置来访问针对该特定键值的数据记录;
针对所访问的数据记录,来执行该应用中的被指定用于在该当前状态下执行的一个或多个部分;
在检测到所访问的数据记录的指定字段中的指定聚合值时,生成指定针对特定键值的指定聚合值的检测的指令;以及
使得该应用关于特定键值从其当前状态转变到后续状态;以及
响应于针对该特定键值的指令而指示一个或多个通信通道进行针对该特定键值的一个或多个动作。
20.如权利要求19所述的机器可读硬件存储设备,其中,该操作包括:
显示用于为该应用指定一个或多个参数的一个或多个值的一个或多个用户界面元素。
21.如权利要求20所述的机器可读硬件存储设备,其中,执行该应用包括利用由用于该应用的一个或多个参数的一个或多个用户界面元素所指定的一个或多个值来执行该应用。
22.如权利要求19所述的机器可读硬件存储设备,其中,数据项包括数据记录,并且其中,该操作进一步包括根据指定格式来重新格式化该数据记录。
23.如权利要求19所述的机器可读硬件存储设备,其中,数据项是数据记录,并且其中,所述一个或多个处理设备还进行:
利用来自与该数据记录相关联的用户的简档的数据来丰富该数据记录,其中根据由应用指定的指令来对该数据记录进行丰富,该指令用于从该存储器中数据存储装置中检索针对该用户的简档数据并利用检索到的简档数据填充该数据记录的一个或多个字段。
24.如权利要求19所述的机器可读硬件存储设备,其中,该操作进一步包括执行到一个或多个第三方系统的反馈回路以请求对该一个或多个动作的执行的确认。
25.如权利要求19所述的机器可读硬件存储设备,其中,该操作进一步包括:
基于对该应用的执行,生成针对该键的特定值的一个或多个关键性能指标即KPI,其中,KPI指定与该键的特定值相关联的数据项的一个或多个值。
26.如权利要求25所述的机器可读硬件存储设备,其中,该操作进一步包括接收针对该键的特定值的数据,其中,接收到的数据指示关于该一个或多个动作中的至少一个动作的反馈;以及
通过将包括在该KPI中或与该KPI相关联的数据的一个或多个部分与该接收到的数据聚合,利用反馈数据来更新针对该键的特定值的KPI。
27.如权利要求19所述的机器可读硬件存储设备,其中,该一个或多个动作包括以下各项中的一项或多项:向外部设备发送文本消息、向外部系统发送电子邮件、在案例管理系统中打开工作订单的票证、切断移动电话连接、向针对性设备提供web服务、利用通知传输一个或多个经变换的数据项的数据包、以及对该一个或多个经变换的数据项执行托管在一个或多个外部计算机上的数据处理应用。
28.如权利要求19所述的机器可读硬件存储设备,其中,该一个或多个动作中的至少一个动作在外部设备上执行,该操作进一步包括:
接收指示该一个或多个动作中的至少一个动作是(i)成功完成还是(ii)失败的反馈消息。
29.如权利要求28所述的机器可读硬件存储设备,其中,如果该一个或多个动作中的至少一个动作的一部分未完成,则认为该一个或多个动作中的该至少一个动作失败,其中,该反馈消息指示一个或多个失败动作中的至少一个失败动作的哪个部分未完成。
30.如权利要求28所述的机器可读硬件存储设备,其中,该反馈消息指示该一个或多个动作中的至少一个成功完成和/或失败的动作的结果数据。
31.如权利要求19所述的机器可读硬件存储设备,其中,该一个或多个动作在外部设备上执行,该操作进一步包括:
从该外部设备接收反馈消息,该反馈消息包括该一个或多个动作中的所执行的至少一个动作的结果数据;
将该结果数据与同成功完成对该一个或多个动作中的至少一个动作的执行相关联的预定数据进行比较;以及
基于该比较,判断为对该一个或多个动作中的至少一个动作的执行成功完成,或对该一个或多个动作中的至少一个动作的执行失败。
32.如权利要求31所述的机器可读硬件存储设备,该操作进一步包括:
基于该结果数据来改变针对该应用的一个或多个参数的一个或多个指定值;以及
利用改变的一个或多个指定值重新执行该应用。
Priority Applications (1)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202010092462.6A CN111400336B (zh) | 2017-02-23 | 2018-02-22 | 数据处理系统及其实现的方法和硬件存储设备 |
Applications Claiming Priority (7)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US201762462498P | 2017-02-23 | 2017-02-23 | |
| US62/462,498 | 2017-02-23 | ||
| US15/688,587 US10831509B2 (en) | 2017-02-23 | 2017-08-28 | Dynamic execution of parameterized applications for the processing of keyed network data streams |
| US15/688,587 | 2017-08-28 | ||
| PCT/US2018/019272 WO2018156796A1 (en) | 2017-02-23 | 2018-02-22 | Dynamic execution of parameterized applications for the processing of keyed network data streams |
| CN201880013670.3A CN110383268B (zh) | 2017-02-23 | 2018-02-22 | 对用于处理带键网络数据流的参数化应用的动态执行 |
| CN202010092462.6A CN111400336B (zh) | 2017-02-23 | 2018-02-22 | 数据处理系统及其实现的方法和硬件存储设备 |
Related Parent Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201880013670.3A Division CN110383268B (zh) | 2017-02-23 | 2018-02-22 | 对用于处理带键网络数据流的参数化应用的动态执行 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| CN111400336A CN111400336A (zh) | 2020-07-10 |
| CN111400336B true CN111400336B (zh) | 2023-12-22 |
Family
ID=63167746
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN202010092462.6A Active CN111400336B (zh) | 2017-02-23 | 2018-02-22 | 数据处理系统及其实现的方法和硬件存储设备 |
| CN201880013670.3A Active CN110383268B (zh) | 2017-02-23 | 2018-02-22 | 对用于处理带键网络数据流的参数化应用的动态执行 |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| CN201880013670.3A Active CN110383268B (zh) | 2017-02-23 | 2018-02-22 | 对用于处理带键网络数据流的参数化应用的动态执行 |
Country Status (11)
| Country | Link |
|---|---|
| US (5) | US10831509B2 (zh) |
| EP (1) | EP3586242B1 (zh) |
| JP (4) | JP7110217B2 (zh) |
| CN (2) | CN111400336B (zh) |
| AU (4) | AU2018225158B2 (zh) |
| CA (1) | CA3054365A1 (zh) |
| CL (2) | CL2019002361A1 (zh) |
| DE (1) | DE112018000974T5 (zh) |
| MX (2) | MX2019010066A (zh) |
| SG (2) | SG10202110155QA (zh) |
| WO (1) | WO2018156796A1 (zh) |
Families Citing this family (26)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US10936289B2 (en) | 2016-06-03 | 2021-03-02 | Ab Initio Technology Llc | Format-specific data processing operations |
| US11947978B2 (en) | 2017-02-23 | 2024-04-02 | Ab Initio Technology Llc | Dynamic execution of parameterized applications for the processing of keyed network data streams |
| US10831509B2 (en) | 2017-02-23 | 2020-11-10 | Ab Initio Technology Llc | Dynamic execution of parameterized applications for the processing of keyed network data streams |
| US11675617B2 (en) * | 2018-03-21 | 2023-06-13 | Toshiba Global Commerce Solutions Holdings Corporation | Sensor-enabled prioritization of processing task requests in an environment |
| US11232106B1 (en) * | 2018-03-23 | 2022-01-25 | Amazon Technologies, Inc. | Windowed query with event-based open time for analytics of streaming data |
| US11176173B2 (en) * | 2018-07-10 | 2021-11-16 | Comptel Oy | Arrangement for enriching data stream in a communications network and related method |
| US11520803B1 (en) | 2018-09-14 | 2022-12-06 | State Farm Mutual Automobile Insurance Company | Big-data view integration platform |
| US10769220B1 (en) * | 2019-04-09 | 2020-09-08 | Coupang Corp. | Systems, apparatuses, and methods of processing and managing web traffic data |
| US11989741B2 (en) * | 2019-07-02 | 2024-05-21 | Bsi Business Systems Integration Ag | Campaign management system—multiple instances |
| CA3164167A1 (en) * | 2020-01-13 | 2021-05-20 | Yan Xue | A method for adaptively configuring transmission of data flows |
| DE102020204619A1 (de) * | 2020-04-09 | 2021-10-14 | Siemens Aktiengesellschaft | Überwachen eines Elektroenergieübertragungssystems |
| US11347748B2 (en) | 2020-05-22 | 2022-05-31 | Yahoo Assets Llc | Pluggable join framework for stream processing |
| US11539757B1 (en) * | 2020-12-22 | 2022-12-27 | Fuze, Inc. | Interoperability between RCS networks and proprietary messaging platforms |
| CN112700310B (zh) * | 2021-01-19 | 2021-09-07 | 汇通数科智能科技有限公司 | 一种基于电商平台的交易订单数据优化处理方法 |
| US20220245155A1 (en) * | 2021-02-04 | 2022-08-04 | Yext, Inc. | Distributed multi-source data processing and publishing platform |
| WO2022177904A1 (en) * | 2021-02-16 | 2022-08-25 | Ab Initio Technology Llc | Dynamic execution of parameterized applications for the processing of keyed network data streams |
| US12003588B2 (en) * | 2021-04-01 | 2024-06-04 | Stateless, Inc. | Coalescing packets with multiple writers in a stateless network function |
| US11790300B2 (en) | 2021-08-03 | 2023-10-17 | State Farm Mutual Automobile Insurance Company | Systems and methods for generating insurance business plans |
| US11733980B2 (en) * | 2021-12-10 | 2023-08-22 | Xilinx, Inc. | Application implementation and buffer allocation for a data processing engine array |
| US11983085B1 (en) * | 2022-03-31 | 2024-05-14 | Amazon Technologies, Inc. | Dynamic usage-based segmentation |
| US12212988B2 (en) | 2022-08-09 | 2025-01-28 | T-Mobile Usa, Inc. | Identifying a performance issue associated with a 5G wireless telecommunication network |
| CN115455031B (zh) * | 2022-09-20 | 2024-05-24 | 北京火山引擎科技有限公司 | 一种Doris的数据查询方法、装置、存储介质及设备 |
| US12072906B2 (en) * | 2022-12-09 | 2024-08-27 | Dell Products L.P. | Data storage transformation system |
| US20240273398A1 (en) * | 2023-02-13 | 2024-08-15 | Honeywell International Inc. | Apparatus, method, and computer program product for configuration, association, registration, training, and monitoring of machine learning models for operational systems |
| US12339826B2 (en) | 2023-04-07 | 2025-06-24 | Ab Initio Technology Llc | On-demand integration of records with data catalog identifiers |
| US12346350B2 (en) | 2023-04-12 | 2025-07-01 | Ab Initio Technology Llc | Meta-data driven ingestion and data processing |
Family Cites Families (504)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US3956615A (en) | 1974-06-25 | 1976-05-11 | Ibm Corporation | Transaction execution system with secure data storage and communications |
| US3970992A (en) | 1974-06-25 | 1976-07-20 | Ibm Corporation | Transaction terminal with unlimited range of functions |
| US4123747A (en) | 1977-05-20 | 1978-10-31 | International Business Machines Corporation | Identity verification method and apparatus |
| US4110830A (en) | 1977-07-05 | 1978-08-29 | International Business Machines Corporation | Channel storage adapter |
| US4386234A (en) | 1977-12-05 | 1983-05-31 | International Business Machines Corp. | Cryptographic communication and file security using terminals |
| US4227253A (en) | 1977-12-05 | 1980-10-07 | International Business Machines Corporation | Cryptographic communication security for multiple domain networks |
| US4238853A (en) | 1977-12-05 | 1980-12-09 | International Business Machines Corporation | Cryptographic communication security for single domain networks |
| US4186871A (en) | 1978-03-01 | 1980-02-05 | International Business Machines Corporation | Transaction execution system with secure encryption key storage and communications |
| US4266271A (en) | 1978-10-10 | 1981-05-05 | Chamoff Martin E | Reconfigurable cluster of data-entry terminals |
| US4805134A (en) | 1986-01-09 | 1989-02-14 | International Business Machines Corporation | Electronic system for accessing graphical and textual information |
| US4972437A (en) | 1988-06-24 | 1990-11-20 | International Business Machines Corporation | Method of controlling limited resource sessions in a data communications network |
| US5161227A (en) | 1989-11-13 | 1992-11-03 | International Business Machines Corporation | Multilevel locking system and method |
| US5201044A (en) | 1990-04-16 | 1993-04-06 | International Business Machines Corporation | Data processing method for file status recovery includes providing a log file of atomic transactions that may span both volatile and non volatile memory |
| US5086401A (en) | 1990-05-11 | 1992-02-04 | International Business Machines Corporation | Image-directed robotic system for precise robotic surgery including redundant consistency checking |
| US5165031A (en) | 1990-05-16 | 1992-11-17 | International Business Machines Corporation | Coordinated handling of error codes and information describing errors in a commit procedure |
| US5261089A (en) | 1990-05-16 | 1993-11-09 | International Business Machines Corporation | Optimization of commit procedures by utilizing a two-phase commit procedure only when necessary |
| US5319773A (en) | 1990-05-16 | 1994-06-07 | International Business Machines Corporation | Asynchronous resynchronization of a commit procedure |
| US5327532A (en) | 1990-05-16 | 1994-07-05 | International Business Machines Corporation | Coordinated sync point management of protected resources |
| US5276876A (en) | 1990-05-16 | 1994-01-04 | International Business Machines Corporation | Registration of resources for commit procedures |
| JP3293839B2 (ja) | 1990-05-16 | 2002-06-17 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 作業ユニットに合わせてコミット範囲を調整するコンピュータ・システム |
| US5319774A (en) | 1990-05-16 | 1994-06-07 | International Business Machines Corporation | Recovery facility for incomplete sync points for distributed application |
| JP2691081B2 (ja) | 1990-05-16 | 1997-12-17 | インターナショナル・ビジネス・マシーンズ・コーポレイション | コンピュータ・ネットワーク |
| JP2880592B2 (ja) | 1990-10-30 | 1999-04-12 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 複合音声情報の編集装置および方法 |
| US5317730A (en) | 1991-01-11 | 1994-05-31 | International Business Machines Corporation | System for modifying persistent database based upon set of data elements formed after selective insertion or deletion |
| JP2522898B2 (ja) | 1992-09-08 | 1996-08-07 | インターナショナル・ビジネス・マシーンズ・コーポレイション | 動的カストマイズ方法及びグラフィックリソ―ス・エディタ |
| JP2525546B2 (ja) | 1992-09-08 | 1996-08-21 | インターナショナル・ビジネス・マシーンズ・コーポレイション | グラフィックリソ―ス・エディタ |
| GB2281644A (en) | 1993-09-02 | 1995-03-08 | Ibm | Fault tolerant transaction-oriented data processing. |
| US6088026A (en) | 1993-12-21 | 2000-07-11 | International Business Machines Corporation | Method and apparatus for multimedia information association to an electronic calendar event |
| US5802599A (en) | 1994-02-08 | 1998-09-01 | International Business Machines Corporation | System and method for allocating storage in a fragmented storage space |
| US5828862A (en) | 1994-05-04 | 1998-10-27 | International Business Machines Corporation | Game programming flash memory cartridge system including a programmer and a reprogrammable cartridge |
| US5784610A (en) | 1994-11-21 | 1998-07-21 | International Business Machines Corporation | Check image distribution and processing system and method |
| US5794209A (en) | 1995-03-31 | 1998-08-11 | International Business Machines Corporation | System and method for quickly mining association rules in databases |
| US5819249A (en) | 1995-11-29 | 1998-10-06 | International Business Machines Corporation | Tax coding expert system |
| GB2312766A (en) | 1996-05-01 | 1997-11-05 | Ibm | Transactional layer for object management system |
| US5956693A (en) | 1996-07-19 | 1999-09-21 | Geerlings; Huib | Computer system for merchant communication to customers |
| EP0831398B1 (en) | 1996-08-01 | 2003-02-26 | International Business Machines Corporation | Ensuring atomicity for a collection of transactional workitems in a workflow-management-system |
| US6240444B1 (en) | 1996-09-27 | 2001-05-29 | International Business Machines Corporation | Internet web page sharing |
| US5960199A (en) | 1996-11-12 | 1999-09-28 | International Business Machines Corporation | Model trace view for object-oriented systems |
| US5835694A (en) | 1996-12-06 | 1998-11-10 | International Business Machines Corporation | Raid-configured disk drive array wherein array control occurs at the disk drive level |
| US6901425B1 (en) | 1996-12-23 | 2005-05-31 | International Business Machines Corporation | Computer apparatus and method including a disconnect mechanism for communicating between software applications and computers on the world-wide web |
| US6401080B1 (en) | 1997-03-21 | 2002-06-04 | International Business Machines Corporation | Intelligent agent with negotiation capability and method of negotiation therewith |
| US6513152B1 (en) | 1997-07-23 | 2003-01-28 | International Business Machines Corporation | Object oriented framework mechanism for customization of object oriented frameworks |
| US6108700A (en) | 1997-08-01 | 2000-08-22 | International Business Machines Corporation | Application end-to-end response time measurement and decomposition |
| CA2219557C (en) | 1997-10-29 | 2002-12-10 | Ibm Canada Limited-Ibm Canada Limitee | Run-time instrumentation for object oriented programmed applications |
| US6671716B1 (en) | 1997-11-28 | 2003-12-30 | International Business Machines Corporation | Processing extended transactions in a client-server system |
| US5983225A (en) | 1998-01-26 | 1999-11-09 | Telenor As | Parameterized lock management system and method for conditional conflict serializability of transactions |
| WO1999046689A1 (en) | 1998-03-12 | 1999-09-16 | Crossworlds Software, Inc. | Execution of extended activity diagrams by code generation |
| US6959288B1 (en) | 1998-08-13 | 2005-10-25 | International Business Machines Corporation | Digital content preparation system |
| US8914507B2 (en) | 1998-09-01 | 2014-12-16 | International Business Machines Corporation | Advice provided for offering highly targeted advice without compromising individual privacy |
| GB2343020A (en) | 1998-10-19 | 2000-04-26 | Ibm | Handling transaction failures in a transaction processing system |
| WO2010030978A2 (en) * | 2008-09-15 | 2010-03-18 | Aman James A | Session automated recording together with rules based indexing, analysis and expression of content |
| US6219737B1 (en) | 1998-12-10 | 2001-04-17 | International Business Machines Corporation | Read request performance of a multiple set buffer pool bus bridge |
| US6324612B1 (en) | 1998-12-10 | 2001-11-27 | International Business Machines Corporation | Associating buffers in a bus bridge with corresponding peripheral devices to facilitate transaction merging |
| US6405276B1 (en) | 1998-12-10 | 2002-06-11 | International Business Machines Corporation | Selectively flushing buffered transactions in a bus bridge |
| US6301630B1 (en) | 1998-12-10 | 2001-10-09 | International Business Machines Corporation | Interrupt response in a multiple set buffer pool bus bridge |
| US7024670B1 (en) | 1998-12-17 | 2006-04-04 | International Business Machines Corporation | Timed start-conditions for activities in workflow management systems |
| US6298478B1 (en) | 1998-12-31 | 2001-10-02 | International Business Machines Corporation | Technique for managing enterprise JavaBeans (™) which are the target of multiple concurrent and/or nested transactions |
| US6278997B1 (en) | 1999-02-05 | 2001-08-21 | International Business Machines Corporation | System and method for constraint-based rule mining in large, dense data-sets |
| US6711137B1 (en) | 1999-03-12 | 2004-03-23 | International Business Machines Corporation | System and method for analyzing and tuning a communications network |
| US7606742B2 (en) | 1999-04-30 | 2009-10-20 | International Business Machines Corporation | Pre-processor for inbound sales order requests with link to a third party available to promise (ATP) system |
| US6519766B1 (en) | 1999-06-15 | 2003-02-11 | Isogon Corporation | Computer program profiler |
| US6801938B1 (en) | 1999-06-18 | 2004-10-05 | Torrent Systems, Inc. | Segmentation and processing of continuous data streams using transactional semantics |
| CN100375088C (zh) * | 1999-06-18 | 2008-03-12 | 国际商业机器公司 | 利用事务语义法分段和处理连续数据流 |
| US6031747A (en) | 1999-08-02 | 2000-02-29 | Lockheed Martin Missiles & Space Company | Interleaved synchronous flyback converter with high efficiency over a wide operating load range |
| US6880126B1 (en) | 1999-08-03 | 2005-04-12 | International Business Machines Corporation | Controlling presentation of a GUI, using view controllers created by an application mediator, by identifying a destination to access a target to retrieve data |
| US6697969B1 (en) | 1999-09-01 | 2004-02-24 | International Business Machines Corporation | Method, system, and program for diagnosing a computer in a network system |
| US6457143B1 (en) | 1999-09-30 | 2002-09-24 | International Business Machines Corporation | System and method for automatic identification of bottlenecks in a network |
| US6779177B1 (en) | 1999-10-28 | 2004-08-17 | International Business Machines Corporation | Mechanism for cross channel multi-server multi-protocol multi-data model thin clients |
| US6862686B1 (en) | 1999-10-29 | 2005-03-01 | International Business Machines Corporation | Method and apparatus in a data processing system for the separation of role-based permissions specification from its corresponding implementation of its semantic behavior |
| US7181686B1 (en) | 1999-10-29 | 2007-02-20 | International Business Machines Corporation | Selecting screens in a GUI using events generated by a set of view controllers |
| US20070150330A1 (en) * | 1999-12-30 | 2007-06-28 | Mcgoveran David O | Rules-based method and system for managing emergent and dynamic processes |
| US6571216B1 (en) | 2000-01-14 | 2003-05-27 | International Business Machines Corporation | Differential rewards with dynamic user profiling |
| US6701363B1 (en) | 2000-02-29 | 2004-03-02 | International Business Machines Corporation | Method, computer program product, and system for deriving web transaction performance metrics |
| US6606527B2 (en) | 2000-03-31 | 2003-08-12 | International Business Machines Corporation | Methods and systems for planning operations in manufacturing plants |
| GB2366051B (en) | 2000-05-02 | 2005-01-05 | Ibm | Method, system and program product for private data access or use based on related public data |
| US6581063B1 (en) | 2000-06-15 | 2003-06-17 | International Business Machines Corporation | Method and apparatus for maintaining a linked list |
| US6829765B1 (en) | 2000-07-18 | 2004-12-07 | International Business Machines Corporation | Job scheduling based upon availability of real and/or virtual resources |
| US7958251B2 (en) * | 2000-08-04 | 2011-06-07 | Goldman Sachs & Co. | Method and system for processing raw financial data streams to produce and distribute structured and validated product offering data to subscribing clients |
| US6829731B1 (en) | 2000-08-14 | 2004-12-07 | International Business Machines Corporation | Method and system for generating a design-specific test case from a generalized set of bus transactions |
| US6721856B1 (en) | 2000-10-26 | 2004-04-13 | International Business Machines Corporation | Enhanced cache management mechanism via an intelligent system bus monitor |
| US6704843B1 (en) | 2000-10-26 | 2004-03-09 | International Business Machines Corporation | Enhanced multiprocessor response bus protocol enabling intra-cache line reference exchange |
| US6763433B1 (en) | 2000-10-26 | 2004-07-13 | International Business Machines Corporation | High performance cache intervention mechanism for symmetric multiprocessor systems |
| US6856581B1 (en) | 2000-10-31 | 2005-02-15 | International Business Machines Corporation | Batteryless, oscillatorless, binary time cell usable as an horological device with associated programming methods and devices |
| US7644057B2 (en) | 2001-01-03 | 2010-01-05 | International Business Machines Corporation | System and method for electronic communication management |
| US7634726B2 (en) | 2001-01-05 | 2009-12-15 | International Business Machines Corporation | Technique for automated e-business services |
| US7194418B2 (en) | 2001-01-26 | 2007-03-20 | International Business Machines Corporation | Methods and systems for dynamic determination of the number of tickets available for purchase |
| US7346559B2 (en) | 2001-02-14 | 2008-03-18 | International Business Machines Corporation | System and method for automating association of retail items to support shopping proposals |
| US6631309B2 (en) | 2001-02-20 | 2003-10-07 | International Business Machines Corporation | System and method to monitor datamining power usage |
| US7072839B2 (en) | 2001-02-21 | 2006-07-04 | International Buisness Machines Corporation | Systems and methods wherein a consumable item parameter is exchanged between a consumable item and a consuming device |
| US6446004B1 (en) | 2001-02-28 | 2002-09-03 | International Business Machines Corporation | System and method for implementing proximity or location driven activities |
| US9948644B2 (en) | 2001-03-26 | 2018-04-17 | Salesforce.Com, Inc. | Routing messages between applications |
| US7134075B2 (en) | 2001-04-26 | 2006-11-07 | International Business Machines Corporation | Conversion of documents between XML and processor efficient MXML in content based routing networks |
| TW556103B (en) | 2001-05-04 | 2003-10-01 | Ibm | Web page annotation systems |
| WO2002098097A2 (en) | 2001-05-24 | 2002-12-05 | International Business Machines Corporation | Service application architecture for integrated network service providers |
| US6748550B2 (en) | 2001-06-07 | 2004-06-08 | International Business Machines Corporation | Apparatus and method for building metadata using a heartbeat of a clustered system |
| US7069427B2 (en) | 2001-06-19 | 2006-06-27 | International Business Machines Corporation | Using a rules model to improve handling of personally identifiable information |
| US7085286B2 (en) | 2001-06-29 | 2006-08-01 | International Business Machines Corporation | Stateful business-to-business protocol exchange |
| US6829608B2 (en) | 2001-07-30 | 2004-12-07 | International Business Machines Corporation | Systems and methods for discovering mutual dependence patterns |
| GB2378270B (en) | 2001-07-30 | 2005-04-20 | Ibm | Method and apparatus for data transfer across a network |
| WO2003014987A2 (en) | 2001-08-09 | 2003-02-20 | International Business Machines Corporation | Spreadsheet system and method for transferring the content of input cells between scalable template instances |
| US8140346B2 (en) | 2001-08-16 | 2012-03-20 | International Business Machines Corporation | Computer-implemented method and system for handling business transactions within an inhomogeneous legal environment |
| US7343428B2 (en) | 2001-09-19 | 2008-03-11 | International Business Machines Corporation | Dynamic, real-time integration of software resources through services of a content framework |
| US7035944B2 (en) | 2001-09-19 | 2006-04-25 | International Business Machines Corporation | Programmatic management of software resources in a content framework environment |
| US6985939B2 (en) | 2001-09-19 | 2006-01-10 | International Business Machines Corporation | Building distributed software services as aggregations of other services |
| US7275048B2 (en) | 2001-10-30 | 2007-09-25 | International Business Machines Corporation | Product support of computer-related products using intelligent agents |
| US7149296B2 (en) | 2001-12-17 | 2006-12-12 | International Business Machines Corporation | Providing account usage fraud protection |
| US7181489B2 (en) | 2002-01-10 | 2007-02-20 | International Business Machines Corporation | Method, apparatus, and program for distributing a document object model in a web server cluster |
| US8667165B2 (en) | 2002-01-11 | 2014-03-04 | International Business Machines Corporation | Dynamic modification of application behavior in response to changing environmental conditions |
| US7603469B2 (en) | 2002-01-15 | 2009-10-13 | International Business Machines Corporation | Provisioning aggregated services in a distributed computing environment |
| EP1491026B1 (en) | 2002-03-27 | 2011-09-14 | International Business Machines Corporation | Dynamic addressing in transient networks |
| US7143139B2 (en) | 2002-03-27 | 2006-11-28 | International Business Machines Corporation | Broadcast tiers in decentralized networks |
| US7158924B2 (en) | 2002-04-04 | 2007-01-02 | International Business Machines Corporation | Dynamic loading of C-API HDL model instrumentation |
| US7206732B2 (en) | 2002-04-04 | 2007-04-17 | International Business Machines Corporation | C-API instrumentation for HDL models |
| US7272605B1 (en) | 2002-05-13 | 2007-09-18 | Netezza Corporation | Network interface for distributed intelligence database system |
| US7558758B2 (en) | 2002-06-26 | 2009-07-07 | International Business Machines Corporation | Business event triggered, policy-driven payment management |
| US6976027B2 (en) | 2002-08-21 | 2005-12-13 | International Business Machines Corporation | Implementing geographical taxonomy within network-accessible service registries using spatial extensions |
| US7447667B2 (en) | 2002-12-11 | 2008-11-04 | International Business Machines Corporation | Method and knowledge structures for reasoning about concepts, relations, and rules |
| US7418600B2 (en) | 2003-03-13 | 2008-08-26 | International Business Machines Corporation | Secure database access through partial encryption |
| US7403998B2 (en) | 2003-04-10 | 2008-07-22 | International Business Machines Corporation | Estimating network management bandwidth |
| US7107293B2 (en) | 2003-04-30 | 2006-09-12 | International Business Machines Corporation | Nested recovery scope management for stateless recovery agents |
| US7222302B2 (en) | 2003-06-05 | 2007-05-22 | International Business Machines Corporation | Method and apparatus for generating it level executable solution artifacts from the operational specification of a business |
| US7346905B2 (en) | 2003-06-10 | 2008-03-18 | International Business Machines Corporation | Apparatus and method for maintaining resource integrity without a unified transaction manager in a software environment |
| CA2432669A1 (en) | 2003-06-17 | 2004-12-17 | Ibm Canada Limited - Ibm Canada Limitee | Method and system for referencing trading agreements |
| US7350195B2 (en) | 2003-09-19 | 2008-03-25 | International Business Machines Corporation | Selecting a program to improve a service class by requesting the program to incrementally self-tune |
| US7490326B2 (en) | 2003-09-19 | 2009-02-10 | International Business Machines Corporation | Gathering operational metrics within a grid environment using ghost agents |
| US7818745B2 (en) | 2003-09-29 | 2010-10-19 | International Business Machines Corporation | Dynamic transaction control within a host transaction processing system |
| WO2005041038A1 (ja) | 2003-10-29 | 2005-05-06 | Ibm Japan, Ltd. | 情報システム、負荷制御方法、負荷制御プログラム及び記録媒体 |
| US7454469B2 (en) | 2003-12-22 | 2008-11-18 | International Business Machines Corporation | Method and system for instant messaging Bots specification using state transition methodology and XML |
| US20050246262A1 (en) | 2004-04-29 | 2005-11-03 | Aggarwal Charu C | Enabling interoperability between participants in a network |
| US7424530B2 (en) | 2004-05-06 | 2008-09-09 | International Business Machines Corporation | Method for visualizing results of root cause analysis on transaction performance data |
| US8650152B2 (en) | 2004-05-28 | 2014-02-11 | International Business Machines Corporation | Method and system for managing execution of data driven workflows |
| US7376900B2 (en) | 2004-09-30 | 2008-05-20 | International Business Machines Corporation | Method and system to control operation of a portlet |
| US7496855B2 (en) | 2004-10-05 | 2009-02-24 | International Business Machines Corporation | Method and system for maintaining scroll position in a web user interface |
| US7914288B2 (en) | 2004-10-07 | 2011-03-29 | International Bussiness Machines Corporation | On demand learning |
| US8423602B2 (en) | 2004-10-13 | 2013-04-16 | International Business Machines Corporation | Web service broadcast engine |
| US7624176B2 (en) | 2004-10-14 | 2009-11-24 | International Business Machines Corporation | Method and system for programmatically generating synthetic transactions to monitor performance and availability of a web application |
| US7552212B2 (en) | 2004-10-22 | 2009-06-23 | International Business Machines Corporation | Intelligent performance monitoring based on user transactions |
| US7318064B2 (en) | 2004-10-28 | 2008-01-08 | International Business Machines Corporation | Using MD4 checksum as primary keys to link transactions across machines |
| US7454325B2 (en) | 2004-12-07 | 2008-11-18 | International Business Machines Corporation | Method, system and program product for defining and recording threshold-qualified count events of a simulation by testcases |
| US7469276B2 (en) | 2004-12-27 | 2008-12-23 | International Business Machines Corporation | Service offering for the delivery of information with continuing improvement |
| US7949551B2 (en) | 2005-04-06 | 2011-05-24 | International Business Machines Corporation | Processing of compensation scopes in workflow management systems |
| US7689616B2 (en) * | 2005-04-15 | 2010-03-30 | Microsoft Corporation | Techniques for specifying and collecting data aggregations |
| US7716630B2 (en) | 2005-06-27 | 2010-05-11 | Ab Initio Technology Llc | Managing parameters for graph-based computations |
| US7698186B2 (en) | 2005-07-26 | 2010-04-13 | International Business Machines Corporation | Multi-level transaction flow monitoring |
| US8423382B2 (en) | 2005-09-30 | 2013-04-16 | International Business Machines Corporation | Electronic health record transaction monitoring |
| US8620688B2 (en) | 2005-09-30 | 2013-12-31 | International Business Machines Corporation | Checkbook to control access to health record bank account |
| US7934216B2 (en) | 2005-10-03 | 2011-04-26 | International Business Machines Corporation | Method and system for load balancing of computing resources |
| US7487116B2 (en) | 2005-12-01 | 2009-02-03 | International Business Machines Corporation | Consumer representation rendering with selected merchandise |
| US7567994B2 (en) | 2006-01-18 | 2009-07-28 | International Business Machines Corporation | Method and apparatus to proactively capture and transmit dense diagnostic data of a file system |
| US20070180061A1 (en) | 2006-02-02 | 2007-08-02 | International Business Machines Corporation | Methods and apparatus for interactive specification of context-sensitive sevice level agreements; for provisioning of resources required during service delivery events regulated by service level agreements; and for monitoring compliance with service level agreements during service delivery events |
| US7739267B2 (en) | 2006-03-10 | 2010-06-15 | International Business Machines Corporation | Classification and sequencing of mixed data flows |
| US7877381B2 (en) | 2006-03-24 | 2011-01-25 | International Business Machines Corporation | Progressive refinement of a federated query plan during query execution |
| US7958032B2 (en) | 2006-05-10 | 2011-06-07 | International Business Machines Corporation | Generating event messages corresponding to event indicators |
| US8028203B2 (en) | 2006-06-19 | 2011-09-27 | International Business Machines Corporation | Exception view with context |
| JP4928848B2 (ja) * | 2006-06-27 | 2012-05-09 | 株式会社日立ソリューションズ | 計算機システム統合管理環境におけるメッセージ変換装置 |
| US9805010B2 (en) | 2006-06-28 | 2017-10-31 | Adobe Systems Incorporated | Methods and apparatus for redacting related content in a document |
| US9122715B2 (en) | 2006-06-29 | 2015-09-01 | International Business Machines Corporation | Detecting changes in end-user transaction performance and availability caused by changes in transaction server configuration |
| US8583772B2 (en) | 2008-08-14 | 2013-11-12 | International Business Machines Corporation | Dynamically configurable session agent |
| US8473343B2 (en) | 2006-07-24 | 2013-06-25 | International Business Machines Corporation | Tracking responses to promotions |
| US8521786B2 (en) | 2006-07-24 | 2013-08-27 | International Business Machines Corporation | Techniques for assigning promotions to contact entities |
| US8315904B2 (en) | 2006-07-24 | 2012-11-20 | International Business Machines Corporation | Organization for promotion management |
| US8473344B2 (en) | 2006-07-24 | 2013-06-25 | International Business Machines Corporation | Contact history for promotion management |
| US8510430B2 (en) | 2006-08-03 | 2013-08-13 | International Business Machines Corporation | Intelligent performance monitoring based on resource threshold |
| US8996714B2 (en) | 2006-08-21 | 2015-03-31 | International Business Machines Corporation | State-dependent entity based implementation of a service oriented architected application |
| US8370575B2 (en) | 2006-09-07 | 2013-02-05 | International Business Machines Corporation | Optimized software cache lookup for SIMD architectures |
| US7636873B2 (en) | 2006-09-15 | 2009-12-22 | International Business Machines Corporation | Enhancement of assured event delivery mechanism to eliminate external XA store requirement |
| US10031830B2 (en) | 2006-10-13 | 2018-07-24 | International Business Machines Corporation | Apparatus, system, and method for database management extensions |
| US8356254B2 (en) | 2006-10-25 | 2013-01-15 | International Business Machines Corporation | System and method for interacting with a display |
| US7925485B2 (en) | 2006-10-25 | 2011-04-12 | International Business Machines Corporation | System and apparatus for managing latency-sensitive interaction in virtual environments |
| US8271941B2 (en) | 2006-10-31 | 2012-09-18 | International Business Machines Corporation | Method and apparatus for representing and configuring flexible and extensible presentation patterns |
| US7953830B2 (en) | 2006-11-07 | 2011-05-31 | International Business Machines Corporation | Automatic network reconfiguration upon changes in DHCP IP addresses |
| US10031938B2 (en) | 2006-12-04 | 2018-07-24 | International Business Machines Corporation | Determining Boolean logic and operator precedence of query conditions |
| US7711462B2 (en) | 2006-12-15 | 2010-05-04 | International Business Machines Corporation | Vehicle help system and method |
| US7577635B2 (en) | 2007-01-09 | 2009-08-18 | International Business Machines Corporation | System and method of load balancing using fuzzy logic |
| US8295542B2 (en) | 2007-01-12 | 2012-10-23 | International Business Machines Corporation | Adjusting a consumer experience based on a 3D captured image stream of a consumer response |
| US8655623B2 (en) | 2007-02-13 | 2014-02-18 | International Business Machines Corporation | Diagnostic system and method |
| US8365189B2 (en) | 2007-02-28 | 2013-01-29 | International Business Machines Corporation | Method and apparatus for a service control layer |
| US7596583B2 (en) | 2007-03-29 | 2009-09-29 | International Business Machines Corporation | Dynamic learning in redesigning a composition of web services |
| US8376226B2 (en) | 2007-04-03 | 2013-02-19 | International Business Machines Corporation | System and method for interactive marketing to consumers |
| US8831972B2 (en) | 2007-04-03 | 2014-09-09 | International Business Machines Corporation | Generating a customer risk assessment using dynamic customer data |
| US8069129B2 (en) | 2007-04-10 | 2011-11-29 | Ab Initio Technology Llc | Editing and compiling business rules |
| US8219848B2 (en) | 2007-04-10 | 2012-07-10 | International Business Machines Corporation | Mechanism for recovery from site failure in a stream processing system |
| US8326669B2 (en) | 2007-04-19 | 2012-12-04 | International Business Machines Corporation | System and method for selecting and scheduling corrective actions for automated storage management |
| US9009452B2 (en) | 2007-05-14 | 2015-04-14 | International Business Machines Corporation | Computing system with transactional memory using millicode assists |
| US8302861B2 (en) | 2007-05-22 | 2012-11-06 | Ibm International Group B.V. | System and method for maintaining inventory management records based on demand |
| US8055606B2 (en) | 2007-06-13 | 2011-11-08 | International Business Machines Corporation | Method and system for self-calibrating project estimation models for packaged software applications |
| US7971180B2 (en) | 2007-06-13 | 2011-06-28 | International Business Machines Corporation | Method and system for evaluating multi-dimensional project plans for implementing packaged software applications |
| US8006223B2 (en) | 2007-06-13 | 2011-08-23 | International Business Machines Corporation | Method and system for estimating project plans for packaged software applications |
| US8032404B2 (en) | 2007-06-13 | 2011-10-04 | International Business Machines Corporation | Method and system for estimating financial benefits of packaged application service projects |
| US7908233B2 (en) | 2007-06-29 | 2011-03-15 | International Business Machines Corporation | Method and apparatus for implementing digital video modeling to generate an expected behavior model |
| US7908237B2 (en) | 2007-06-29 | 2011-03-15 | International Business Machines Corporation | Method and apparatus for identifying unexpected behavior of a customer in a retail environment using detected location data, temperature, humidity, lighting conditions, music, and odors |
| US8769706B2 (en) | 2007-07-26 | 2014-07-01 | International Business Machines Corporation | System and method for user to verify a network resource address is trusted |
| US8060919B2 (en) | 2007-07-30 | 2011-11-15 | International Business Machines Corporation | Automated password tool and method of use |
| US8843387B2 (en) | 2007-08-08 | 2014-09-23 | International Business Machines Corporation | Managing business process calendars |
| US8141054B2 (en) | 2007-08-08 | 2012-03-20 | International Business Machines Corporation | Dynamic detection of atomic-set-serializability violations |
| US9177115B2 (en) | 2007-08-22 | 2015-11-03 | International Business Machines Corporation | Data subscription management system |
| US8266630B2 (en) | 2007-09-03 | 2012-09-11 | International Business Machines Corporation | High-performance XML processing in a common event infrastructure |
| US7937716B2 (en) | 2007-09-05 | 2011-05-03 | International Business Machines Corporation | Managing collections of appliances |
| US8059533B2 (en) * | 2007-10-24 | 2011-11-15 | Cisco Technology, Inc. | Packet flow optimization (PFO) policy management in a communications network by rule name |
| US8719920B2 (en) | 2007-10-25 | 2014-05-06 | International Business Machines Corporation | Arrangements for identifying users in a multi-touch surface environment |
| JP5088734B2 (ja) | 2007-11-22 | 2012-12-05 | インターナショナル・ビジネス・マシーンズ・コーポレーション | 耐障害性トランザクション処理システム及び処理方法 |
| US8195803B2 (en) | 2007-12-14 | 2012-06-05 | International Business Machines Corporation | Method and apparatus for modeling and managing quality of service (QoS) in a service-oriented architecture (SOA) environment |
| US8739133B2 (en) | 2007-12-21 | 2014-05-27 | International Business Machines Corporation | Multi-threaded debugger support |
| US8447859B2 (en) | 2007-12-28 | 2013-05-21 | International Business Machines Corporation | Adaptive business resiliency computer system for information technology environments |
| US8428983B2 (en) | 2007-12-28 | 2013-04-23 | International Business Machines Corporation | Facilitating availability of information technology resources based on pattern system environments |
| US8346931B2 (en) | 2007-12-28 | 2013-01-01 | International Business Machines Corporation | Conditional computer runtime control of an information technology environment based on pairing constructs |
| US9558459B2 (en) | 2007-12-28 | 2017-01-31 | International Business Machines Corporation | Dynamic selection of actions in an information technology environment |
| US8326660B2 (en) | 2008-01-07 | 2012-12-04 | International Business Machines Corporation | Automated derivation of response time service level objectives |
| US8135608B2 (en) | 2008-01-08 | 2012-03-13 | International Business Machines Corporation | Contact stream optimization considering FEC and CC constraints |
| US8601494B2 (en) | 2008-01-14 | 2013-12-03 | International Business Machines Corporation | Multi-event type monitoring and searching |
| US8682688B1 (en) | 2008-01-14 | 2014-03-25 | Truven Health Analytics Inc. | Systems, methods, and software for supporting consumer healthcare decisions |
| US8117234B2 (en) | 2008-01-24 | 2012-02-14 | International Business Machines Corporation | Method and apparatus for reducing storage requirements of electronic records |
| US7912946B2 (en) | 2008-01-25 | 2011-03-22 | International Business Machines Corporation | Method using footprints in system log files for monitoring transaction instances in real-time network |
| US7908365B2 (en) | 2008-01-25 | 2011-03-15 | International Business Machines Corporation | System using footprints in system log files for monitoring transaction instances in real-time network |
| US8209686B2 (en) | 2008-02-12 | 2012-06-26 | International Business Machines Corporation | Saving unsaved user process data in one or more logical partitions of a computing system |
| US8839345B2 (en) | 2008-03-17 | 2014-09-16 | International Business Machines Corporation | Method for discovering a security policy |
| US8374986B2 (en) * | 2008-05-15 | 2013-02-12 | Exegy Incorporated | Method and system for accelerated stream processing |
| US9135594B2 (en) | 2008-05-23 | 2015-09-15 | International Business Machines Corporation | Ambient project management |
| US8272059B2 (en) | 2008-05-28 | 2012-09-18 | International Business Machines Corporation | System and method for identification and blocking of malicious code for web browser script engines |
| US8131872B2 (en) | 2008-05-30 | 2012-03-06 | International Business Machines Corporation | Affinity-based transaction processing |
| US8949810B2 (en) | 2008-06-16 | 2015-02-03 | International Business Machines Corporation | Method for high-performance data stream processing |
| US8515924B2 (en) | 2008-06-30 | 2013-08-20 | International Business Machines Corporation | Method and apparatus for handling edge-cases of event-driven disposition |
| US8471843B2 (en) | 2008-07-07 | 2013-06-25 | International Business Machines Corporation | Geometric and texture modifications of objects in a virtual universe based on real world user characteristics |
| US8458002B2 (en) | 2008-08-05 | 2013-06-04 | International Business Machines Corporation | Service scheduling |
| US9256346B2 (en) | 2008-08-11 | 2016-02-09 | International Business Machines Corporation | Managing ephemeral locations in a virtual universe |
| US8275815B2 (en) | 2008-08-25 | 2012-09-25 | International Business Machines Corporation | Transactional processing for clustered file systems |
| US8386960B1 (en) | 2008-08-29 | 2013-02-26 | Adobe Systems Incorporated | Building object interactions |
| US9418330B2 (en) | 2008-09-23 | 2016-08-16 | International Business Machines Corporation | System and method for enhancing user accessibility in a virtual universe |
| US8266148B2 (en) * | 2008-10-07 | 2012-09-11 | Aumni Data, Inc. | Method and system for business intelligence analytics on unstructured data |
| US8612286B2 (en) | 2008-10-31 | 2013-12-17 | International Business Machines Corporation | Creating a training tool |
| US20140059514A1 (en) | 2008-11-14 | 2014-02-27 | Adobe Systems Incorporated | Methods and Systems Utilizing Behavioral Data Models |
| US8250143B2 (en) | 2008-12-10 | 2012-08-21 | International Business Machines Corporation | Network driven actuator mapping agent and bus and method of use |
| US9741147B2 (en) | 2008-12-12 | 2017-08-22 | International Business Machines Corporation | System and method to modify avatar characteristics based on inferred conditions |
| US8219554B2 (en) | 2008-12-16 | 2012-07-10 | International Business Machines Corporation | Generating receptivity scores for cohorts |
| US8631485B2 (en) | 2009-01-19 | 2014-01-14 | International Business Machines Corporation | Identification of malicious activities through non-logged-in host usage |
| US8493216B2 (en) | 2008-12-16 | 2013-07-23 | International Business Machines Corporation | Generating deportment and comportment cohorts |
| US7904753B2 (en) | 2009-01-06 | 2011-03-08 | International Business Machines Corporation | Method and system to eliminate disruptions in enterprises |
| US8180559B2 (en) | 2009-02-13 | 2012-05-15 | International Business Machines Corporation | System and methods for geoboundary based traffic monitoring using quick tear down boundaries |
| US8224496B2 (en) | 2009-02-20 | 2012-07-17 | International Business Machines Corporation | Modular power control system to manage power consumption |
| US8265239B2 (en) | 2009-02-25 | 2012-09-11 | International Business Machines Corporation | Callee centric location and presence enabled voicemail using session initiated protocol enabled signaling for IP multimedia subsystem networks |
| US9331892B2 (en) | 2009-03-09 | 2016-05-03 | The Nielsen Company (Us), Llc | System and method for automatic sub-panel creation and management |
| US8930818B2 (en) | 2009-03-31 | 2015-01-06 | International Business Machines Corporation | Visualization of website analytics |
| US9396234B2 (en) | 2009-05-29 | 2016-07-19 | International Business Machines Corporation | Event monitoring for complex event processing |
| US8234236B2 (en) | 2009-06-01 | 2012-07-31 | International Business Machines Corporation | System and method for efficient allocation of resources in virtualized desktop environments |
| US8904394B2 (en) | 2009-06-04 | 2014-12-02 | International Business Machines Corporation | System and method for controlling heat dissipation through service level agreement analysis by modifying scheduled processing jobs |
| US8433786B2 (en) | 2009-06-14 | 2013-04-30 | International Business Machines Corporation | Selective instrumentation of distributed applications for transaction monitoring |
| US8307308B2 (en) | 2009-08-27 | 2012-11-06 | International Business Machines Corporation | Updating assets rendered in a virtual world environment based on detected user interactions in another world |
| US8566524B2 (en) | 2009-08-31 | 2013-10-22 | International Business Machines Corporation | Transactional memory system with efficient cache support |
| US8689188B2 (en) | 2009-09-11 | 2014-04-01 | International Business Machines Corporation | System and method for analyzing alternatives in test plans |
| US8566805B2 (en) | 2009-09-11 | 2013-10-22 | International Business Machines Corporation | System and method to provide continuous calibration estimation and improvement options across a software integration life cycle |
| US8539438B2 (en) | 2009-09-11 | 2013-09-17 | International Business Machines Corporation | System and method for efficient creation and reconciliation of macro and micro level test plans |
| US8805737B1 (en) | 2009-11-02 | 2014-08-12 | Sas Institute Inc. | Computer-implemented multiple entity dynamic summarization systems and methods |
| US8301693B2 (en) | 2009-11-24 | 2012-10-30 | International Business Machines Corporation | Content management |
| US8812384B2 (en) | 2009-11-24 | 2014-08-19 | Sas Institute Inc. | Systems and methods for underlying asset risk monitoring for investment securities |
| EP2513782A1 (en) * | 2009-12-14 | 2012-10-24 | Ab Initio Technology LLC | Specifying user interface elements |
| US8190693B2 (en) | 2009-12-15 | 2012-05-29 | International Business Machines Corporation | Reclaiming lost internet customers |
| US8406412B2 (en) | 2010-02-26 | 2013-03-26 | International Business Machines Corporation | System and method for call flow generation via real-time tracking of guided problem resolution |
| US8984409B2 (en) | 2010-03-12 | 2015-03-17 | Salesforce.Com, Inc. | Service cloud console |
| US8285751B2 (en) | 2010-04-13 | 2012-10-09 | International Business Machines Corporation | Systems and methods of networking enhancements using location based services |
| US10255568B2 (en) | 2010-05-10 | 2019-04-09 | Tibco Software Inc. | Methods and systems for selecting a data transmission path for navigating a dynamic data structure |
| EP2572338A4 (en) * | 2010-05-21 | 2016-04-27 | Hsbc Technology & Services Usa Inc | ACCOUNT OPERATING COMPUTER SYSTEM ARCHITECTURE AND IMPLEMENTATION METHOD THEREFOR |
| US8533532B2 (en) | 2010-06-23 | 2013-09-10 | International Business Machines Corporation | System identifying and inferring web session events |
| US9081937B2 (en) | 2010-08-26 | 2015-07-14 | Adobe Systems Incorporated | Systems and methods for managing subscription-based licensing of software products |
| US8661076B2 (en) | 2010-09-23 | 2014-02-25 | Salesforce.Com, Inc. | Business networking information feed alerts |
| US8543528B2 (en) | 2010-09-23 | 2013-09-24 | International Business Machines Corporation | Exploitation of transition rule sharing based on short state tags to improve the storage efficiency |
| US20120086544A1 (en) | 2010-10-08 | 2012-04-12 | Salesforce.Com, Inc. | Following Data Records in an Information Feed |
| US8903770B2 (en) | 2010-10-15 | 2014-12-02 | Salesforce.Com, Inc. | Methods and apparatus for discontinuing the following of records in an on-demand database service environment |
| US8582803B2 (en) | 2010-10-15 | 2013-11-12 | International Business Machines Corporation | Event determination by alignment of visual and transaction data |
| US9032512B2 (en) | 2010-11-11 | 2015-05-12 | International Business Machines Corporation | Secure access to healthcare information |
| US8744898B1 (en) | 2010-11-12 | 2014-06-03 | Adobe Systems Incorporated | Systems and methods for user churn reporting based on engagement metrics |
| US9256900B2 (en) | 2010-11-15 | 2016-02-09 | International Business Machines Corporation | Managing service demand load relative to infrastructure capacity in a networked computing environment |
| US8977730B2 (en) | 2010-11-18 | 2015-03-10 | International Business Machines Corporation | Method and system for reducing message passing for contention detection in distributed SIP server environments |
| US9112733B2 (en) | 2010-11-22 | 2015-08-18 | International Business Machines Corporation | Managing service level agreements using statistical process control in a networked computing environment |
| US8972873B2 (en) | 2010-11-30 | 2015-03-03 | International Business Machines Corporation | Multi-environment widget assembly, generation, and operation |
| JP5767471B2 (ja) | 2010-12-24 | 2015-08-19 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | テストの網羅性を評価する装置及び方法 |
| US9483570B2 (en) | 2010-12-30 | 2016-11-01 | International Business Machines Corporation | Driving a user experience of a web application using rules that establish or change requests based on user behavior |
| US9383800B2 (en) | 2011-03-22 | 2016-07-05 | International Business Machines Corporation | Managing a portal application |
| US8937456B2 (en) | 2011-04-21 | 2015-01-20 | International Business Machines Corporation | Real time system and method for optimizing and managing a load in an electrical grid |
| US8793377B2 (en) | 2011-05-03 | 2014-07-29 | International Business Machines Corporation | Identifying optimal virtual machine images in a networked computing environment |
| US8984030B2 (en) | 2011-05-04 | 2015-03-17 | International Business Machines Corporation | Journaling and integrity in mobile clouded collaborative spaces |
| US8631154B2 (en) | 2011-06-29 | 2014-01-14 | International Business Machines Corporation | Dynamically modifying quality of service levels for resources in a networked computing environment |
| US9760917B2 (en) | 2011-06-29 | 2017-09-12 | International Business Machines Corporation | Migrating computing environment entitlement contracts between a seller and a buyer |
| US8875120B2 (en) | 2011-08-01 | 2014-10-28 | Salesforce.Com, Inc. | Methods and apparatus for providing software bug-fix notifications for networked computing systems |
| US9942385B2 (en) | 2011-08-04 | 2018-04-10 | International Business Machines Corporation | System and method for preventing and/or limiting use of a mobile device |
| US8898291B2 (en) | 2011-08-08 | 2014-11-25 | International Business Machines Corporation | Dynamically expanding computing resources in a networked computing environment |
| US8516110B2 (en) | 2011-08-24 | 2013-08-20 | International Business Machines Corporation | Automated availability data collection and reporting for system management environments |
| US8549047B2 (en) | 2011-08-25 | 2013-10-01 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for feed-based case management |
| US9215096B2 (en) | 2011-08-26 | 2015-12-15 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing communication between network domains in a service cloud |
| US9178753B2 (en) | 2011-08-31 | 2015-11-03 | Salesforce.Com, Inc. | Computer implemented methods and apparatus for providing access to an online social network |
| US8560357B2 (en) | 2011-08-31 | 2013-10-15 | International Business Machines Corporation | Retail model optimization through video data capture and analytics |
| US8872667B2 (en) | 2011-09-13 | 2014-10-28 | International Business Machines Corporation | Fault isolation and service restoration in an electric grid |
| US8674843B2 (en) | 2011-09-13 | 2014-03-18 | International Business Machines Corporation | System and method for detecting and localizing abnormal conditions and electrical faults in an electrical grid |
| US8843621B2 (en) | 2011-10-25 | 2014-09-23 | International Business Machines Corporation | Event prediction and preemptive action identification in a networked computing environment |
| US8515824B2 (en) | 2011-10-26 | 2013-08-20 | International Business Machines Corporation | Negotiation of product purchase with an electronic device |
| US9256714B2 (en) | 2011-11-09 | 2016-02-09 | International Business Machines Corporation | Preserving integrity of messages in a messaging oriented middleware system |
| US9037306B2 (en) | 2011-11-10 | 2015-05-19 | International Business Machines Corporation | Monitoring and optimizing an electrical grid state |
| US9043037B2 (en) | 2011-11-10 | 2015-05-26 | International Business Machines Corporation | Monitoring and optimizing an electrical grid state |
| US20130132372A1 (en) * | 2011-11-17 | 2013-05-23 | Benefitfocus.Com | Systems and methods for dynamic service integration |
| CN103164463B (zh) | 2011-12-16 | 2017-03-22 | 国际商业机器公司 | 推荐标签的方法和装置 |
| US9766906B2 (en) | 2011-12-29 | 2017-09-19 | International Business Machines Corporation | Efficient sharing of artifacts between collaboration applications |
| US9015006B2 (en) | 2012-01-13 | 2015-04-21 | International Business Machines Corporation | Automated enablement of performance data collection |
| US8938405B2 (en) | 2012-01-30 | 2015-01-20 | International Business Machines Corporation | Classifying activity using probabilistic models |
| US10296962B2 (en) | 2012-02-13 | 2019-05-21 | International Business Machines Corporation | Collaborative shopping across multiple shopping channels using shared virtual shopping carts |
| US20130218885A1 (en) | 2012-02-22 | 2013-08-22 | Salesforce.Com, Inc. | Systems and methods for context-aware message tagging |
| US10353738B2 (en) | 2012-03-21 | 2019-07-16 | International Business Machines Corporation | Resource allocation based on social networking trends in a networked computing environment |
| US9396621B2 (en) | 2012-03-23 | 2016-07-19 | International Business Machines Corporation | Systems and methods for false alarm reduction during event detection |
| US9535978B2 (en) | 2012-03-29 | 2017-01-03 | International Business Machines Corporation | Semantic mapping of topic map meta-models identifying assets and events to include weights |
| US8843404B2 (en) | 2012-04-04 | 2014-09-23 | International Business Machines Corporation | Joint pricing and replenishment of freshness inventory |
| US9967255B2 (en) | 2012-04-09 | 2018-05-08 | Salesforce.Com, Inc. | System and method for secure distribution of communications |
| US8805777B2 (en) | 2012-04-13 | 2014-08-12 | International Business Machines Corporation | Data record collapse and split functionality |
| US8954723B2 (en) | 2012-05-09 | 2015-02-10 | International Business Machines Corporation | Anonymization of data within a streams environment |
| US9665391B2 (en) | 2012-05-17 | 2017-05-30 | International Business Machines Corporation | Automated transaction tuning in application servers |
| US8880959B2 (en) | 2012-06-15 | 2014-11-04 | International Business Machines Corporation | Transaction diagnostic block |
| US8966324B2 (en) | 2012-06-15 | 2015-02-24 | International Business Machines Corporation | Transactional execution branch indications |
| US9317460B2 (en) | 2012-06-15 | 2016-04-19 | International Business Machines Corporation | Program event recording within a transactional environment |
| US9448796B2 (en) | 2012-06-15 | 2016-09-20 | International Business Machines Corporation | Restricted instructions in transactional execution |
| US8688661B2 (en) | 2012-06-15 | 2014-04-01 | International Business Machines Corporation | Transactional processing |
| US10437602B2 (en) | 2012-06-15 | 2019-10-08 | International Business Machines Corporation | Program interruption filtering in transactional execution |
| US9442737B2 (en) | 2012-06-15 | 2016-09-13 | International Business Machines Corporation | Restricting processing within a processor to facilitate transaction completion |
| US9367323B2 (en) | 2012-06-15 | 2016-06-14 | International Business Machines Corporation | Processor assist facility |
| US9361115B2 (en) | 2012-06-15 | 2016-06-07 | International Business Machines Corporation | Saving/restoring selected registers in transactional processing |
| US9348642B2 (en) | 2012-06-15 | 2016-05-24 | International Business Machines Corporation | Transaction begin/end instructions |
| US9384004B2 (en) | 2012-06-15 | 2016-07-05 | International Business Machines Corporation | Randomized testing within transactional execution |
| US9740549B2 (en) | 2012-06-15 | 2017-08-22 | International Business Machines Corporation | Facilitating transaction completion subsequent to repeated aborts of the transaction |
| US9298469B2 (en) | 2012-06-15 | 2016-03-29 | International Business Machines Corporation | Management of multiple nested transactions |
| US8893218B2 (en) | 2012-06-15 | 2014-11-18 | International Business Machines Corporation | Association of service policies based on the application of message content filters |
| US9772854B2 (en) | 2012-06-15 | 2017-09-26 | International Business Machines Corporation | Selectively controlling instruction execution in transactional processing |
| US9104453B2 (en) | 2012-06-21 | 2015-08-11 | International Business Machines Corporation | Determining placement fitness for partitions under a hypervisor |
| US8732207B2 (en) | 2012-07-02 | 2014-05-20 | International Business Machines Corporation | Attribute-based linked tries for rule evaluation |
| US9241017B2 (en) | 2012-07-03 | 2016-01-19 | Salesforce.Com, Inc. | Systems and methods for cross domain service component interaction |
| US9223760B2 (en) | 2012-07-13 | 2015-12-29 | International Business Machines Corporation | Method of encapsulating diverse user interface components while consistently enforcing external constraints |
| US10360188B2 (en) | 2012-07-27 | 2019-07-23 | International Business Machines Corporation | Dynamic property data integration framework |
| US9185235B2 (en) * | 2012-08-02 | 2015-11-10 | Ab Initio Technology Llc | Aggregating data in a mediation system |
| US8893080B2 (en) | 2012-08-15 | 2014-11-18 | Telefonaktiebolaget L M Ericsson (Publ) | Parallelization of dataflow actors with local state |
| US8856034B2 (en) | 2012-08-16 | 2014-10-07 | International Business Machines Corporation | Intelligent point of sale system |
| WO2014031618A2 (en) * | 2012-08-22 | 2014-02-27 | Bitvore Corp. | Data relationships storage platform |
| US9495342B2 (en) | 2012-09-05 | 2016-11-15 | Salesforce.Com, Inc. | System and method for automatically inserting correct escaping functions for field references in a multi-tenant computing environment |
| US9152168B2 (en) | 2012-09-06 | 2015-10-06 | International Business Machines Corporation | Systems and methods for system power estimation |
| US9036796B2 (en) | 2012-09-14 | 2015-05-19 | International Business Machines Corporation | Generating action tuples in response to discerned leads |
| US9852239B2 (en) | 2012-09-24 | 2017-12-26 | Adobe Systems Incorporated | Method and apparatus for prediction of community reaction to a post |
| US9003080B2 (en) | 2012-09-26 | 2015-04-07 | International Business Machines Corporation | Managed access to peripherals of a service terminal |
| US9776078B2 (en) | 2012-10-02 | 2017-10-03 | Razer (Asia-Pacific) Pte. Ltd. | Application state backup and restoration across multiple devices |
| US9772374B2 (en) | 2012-10-04 | 2017-09-26 | International Business Machines Corporation | Selective voltage binning leakage screen |
| US9536108B2 (en) | 2012-10-23 | 2017-01-03 | International Business Machines Corporation | Method and apparatus for generating privacy profiles |
| US20140118141A1 (en) | 2012-10-26 | 2014-05-01 | International Business Machines Corporation | Systems, methods, and computer program products for reporting condition of first entity to second entity |
| US9244446B2 (en) | 2012-11-29 | 2016-01-26 | International Business Machines Corporation | Configuring, optimizing and managing micro-grids |
| US9087298B2 (en) | 2012-12-05 | 2015-07-21 | International Business Machines Corporation | Inference of anomalous behavior of members of cohorts and associate actors related to the anomalous behavior based on divergent movement from the cohort context centroid |
| US8880237B2 (en) | 2013-01-04 | 2014-11-04 | International Business Machines Corporation | Intelligent road signs |
| US9276893B2 (en) | 2013-01-15 | 2016-03-01 | International Business Machines Corporation | Determining states of a threaded communication |
| US9430116B2 (en) | 2013-02-12 | 2016-08-30 | International Business Machines Corporation | Visualization of runtime resource policy attachments and applied policy details |
| US9811808B2 (en) | 2013-02-12 | 2017-11-07 | International Business Machines Corporation | Meeting notifications for offline invitees |
| US10163098B2 (en) | 2013-02-13 | 2018-12-25 | International Business Machines Corporation | Using both social media and non-social media information to identify anomalous behavior |
| US9167029B2 (en) | 2013-02-26 | 2015-10-20 | International Business Machines Corporation | Adjusting individuals in a group corresponding to relevancy |
| US10360579B2 (en) | 2013-03-04 | 2019-07-23 | Adobe Inc. | Campaign performance data snapshot cards |
| US10304079B2 (en) | 2013-03-04 | 2019-05-28 | Adobe Inc. | Organization of campaign performance data snapshot cards in card feeds and card boards |
| US10269033B2 (en) | 2013-03-04 | 2019-04-23 | Adobe Inc. | Expanded overlay state for campaign performance data snapshot cards |
| US9336533B2 (en) | 2013-03-13 | 2016-05-10 | Salesforce.Com, Inc. | Systems, methods, and apparatuses for implementing a similar command with a predictive query interface |
| US9166896B2 (en) | 2013-03-15 | 2015-10-20 | International Business Machines Corporation | Session-based server transaction storm controls |
| US8839167B1 (en) | 2013-04-02 | 2014-09-16 | International Business Machines Corporation | Reducing runtime and memory requirements of static timing analysis |
| US10019297B2 (en) | 2013-04-03 | 2018-07-10 | Salesforce.Com, Inc. | Systems and methods for implementing bulk handling in asynchronous processing |
| US9672575B2 (en) | 2013-04-03 | 2017-06-06 | Salesforce.Com, Inc. | Capturing information regarding an interaction to a database |
| US9448773B2 (en) | 2013-04-03 | 2016-09-20 | Salesforce.Com, Inc. | Systems and methods for implementing a uniform application user interface across a multi-tenant environment |
| US8988139B2 (en) | 2013-05-28 | 2015-03-24 | International Business Machines Corporation | Self-selected variable power integrated circuit |
| US9106610B2 (en) | 2013-06-07 | 2015-08-11 | International Business Machines Corporation | Regional firewall clustering in a networked computing environment |
| US9917885B2 (en) | 2013-07-30 | 2018-03-13 | International Business Machines Corporation | Managing transactional data for high use databases |
| US8985437B2 (en) | 2013-08-07 | 2015-03-24 | International Business Machines Corporation | Creation and management of dynamic quick response (QR) codes |
| US8987010B1 (en) | 2013-08-29 | 2015-03-24 | International Business Machines Corporation | Microprocessor image correction and method for the detection of potential defects |
| US9515491B2 (en) | 2013-09-18 | 2016-12-06 | International Business Machines Corporation | Managing devices within micro-grids |
| US9507847B2 (en) | 2013-09-27 | 2016-11-29 | International Business Machines Corporation | Automatic log sensor tuning |
| US9569187B2 (en) | 2013-10-08 | 2017-02-14 | International Business Machines Corporation | Irreducible modules |
| US9584418B2 (en) | 2013-10-10 | 2017-02-28 | International Business Machines Corporation | Quantized congestion notification for computing environments |
| US9736143B2 (en) | 2013-10-21 | 2017-08-15 | Adobe Systems Incorporated | Customized log-in experience |
| US10163127B2 (en) | 2013-10-31 | 2018-12-25 | International Business Machines Corporation | Spatiotemporal marketing associated with events based on intended user ingress and egress modes and paths |
| US9000837B1 (en) | 2013-11-05 | 2015-04-07 | International Business Machines Corporation | Adjustable reference voltage generator for single-ended DRAM sensing devices |
| US10146597B2 (en) | 2013-11-14 | 2018-12-04 | Salesforce.Com, Inc. | Delegating handling of computing events of a mobile device application |
| US9940581B2 (en) | 2013-11-20 | 2018-04-10 | International Business Machines Corporation | Ontology-aided business rule extraction using machine learning |
| US10148526B2 (en) | 2013-11-20 | 2018-12-04 | International Business Machines Corporation | Determining quality of experience for communication sessions |
| US9471522B2 (en) | 2013-12-04 | 2016-10-18 | International Business Machines Corporation | Resource allocation by virtual channel management and bus multiplexing |
| US9348523B2 (en) | 2013-12-12 | 2016-05-24 | International Business Machines Corporation | Code optimization to enable and disable coalescing of memory transactions |
| US9348522B2 (en) | 2013-12-12 | 2016-05-24 | International Business Machines Corporation | Software indications and hints for coalescing memory transactions |
| US9158573B2 (en) | 2013-12-12 | 2015-10-13 | International Business Machines Corporation | Dynamic predictor for coalescing memory transactions |
| US9292337B2 (en) | 2013-12-12 | 2016-03-22 | International Business Machines Corporation | Software enabled and disabled coalescing of memory transactions |
| US9705676B2 (en) | 2013-12-12 | 2017-07-11 | International Business Machines Corporation | Continuous monitoring of fingerprint signature on a mobile touchscreen for identity management |
| US9146774B2 (en) | 2013-12-12 | 2015-09-29 | International Business Machines Corporation | Coalescing memory transactions |
| US9794128B2 (en) | 2013-12-30 | 2017-10-17 | International Business Machines Corporation | Overlay network movement operations |
| US9310518B2 (en) | 2014-01-24 | 2016-04-12 | International Business Machines Corporation | Weather forecasting system and methods |
| US10324922B2 (en) | 2014-02-13 | 2019-06-18 | Salesforce.Com, Inc. | Providing a timeline of events regarding a database record |
| US9262206B2 (en) | 2014-02-27 | 2016-02-16 | International Business Machines Corporation | Using the transaction-begin instruction to manage transactional aborts in transactional memory computing environments |
| US9430273B2 (en) | 2014-02-27 | 2016-08-30 | International Business Machines Corporation | Suppressing aborting a transaction beyond a threshold execution duration based on the predicted duration |
| US9361041B2 (en) | 2014-02-27 | 2016-06-07 | International Business Machines Corporation | Hint instruction for managing transactional aborts in transactional memory computing environments |
| US9247051B2 (en) | 2014-02-28 | 2016-01-26 | Salesforce.Com, Inc. | Systems and methods for tracking and responding to mobile events in a relationship management system |
| US9348989B2 (en) | 2014-03-06 | 2016-05-24 | International Business Machines Corporation | Contemporaneous gesture and keyboard entry authentication |
| US10156922B2 (en) | 2014-03-11 | 2018-12-18 | International Business Machines Corporation | Touch input device with pathogen transmission mitigation |
| US9397947B2 (en) | 2014-03-11 | 2016-07-19 | International Business Machines Corporation | Quality of experience for communication sessions |
| JP6103540B2 (ja) | 2014-03-14 | 2017-03-29 | インターナショナル・ビジネス・マシーンズ・コーポレーションInternational Business Machines Corporation | 生成装置、生成方法、情報処理方法、及び、プログラム |
| US9983943B2 (en) | 2014-03-27 | 2018-05-29 | Salesforce.Com, Inc. | Reversing object manipulations in association with a walkthrough for an application or online service |
| US10361924B2 (en) | 2014-04-04 | 2019-07-23 | International Business Machines Corporation | Forecasting computer resources demand |
| US9251330B2 (en) | 2014-04-09 | 2016-02-02 | International Business Machines Corporation | Secure management of a smart card |
| US9569791B2 (en) | 2014-04-30 | 2017-02-14 | International Business Machines Corporation | Electronic commerce web page management |
| US9977505B2 (en) | 2014-06-06 | 2018-05-22 | International Business Machines Corporation | Controlling inadvertent inputs to a mobile device |
| US9495108B2 (en) | 2014-06-26 | 2016-11-15 | International Business Machines Corporation | Transactional memory operations with write-only atomicity |
| US9489142B2 (en) | 2014-06-26 | 2016-11-08 | International Business Machines Corporation | Transactional memory operations with read-only atomicity |
| US9779409B2 (en) | 2014-06-26 | 2017-10-03 | Adobe Systems Incorporated | Tracking and linking mobile device activity |
| US9600286B2 (en) | 2014-06-30 | 2017-03-21 | International Business Machines Corporation | Latent modification instruction for transactional execution |
| US10108496B2 (en) | 2014-06-30 | 2018-10-23 | International Business Machines Corporation | Use of replicated copies to improve database backup performance |
| US9785719B2 (en) | 2014-07-15 | 2017-10-10 | Adobe Systems Incorporated | Generating synthetic data |
| US9596647B2 (en) | 2014-07-21 | 2017-03-14 | International Business Machines Corporation | Secure WiFi using predictive analytics |
| US9830647B2 (en) | 2014-08-15 | 2017-11-28 | International Business Machines Corporation | Adaptive dynamic budgeting |
| US9639888B2 (en) | 2014-09-08 | 2017-05-02 | Adobe Systems Incorporated | Providing interactive notifications for completing online transactions |
| US9922357B2 (en) | 2014-09-18 | 2018-03-20 | Adobe Systems Incorporated | Interactive notifications for mobile commerce applications |
| US9697505B2 (en) | 2014-09-19 | 2017-07-04 | International Business Machines Corporation | Automated financial transactions |
| US9715488B2 (en) | 2014-10-06 | 2017-07-25 | International Business Machines Corporation | Natural language processing utilizing transaction based knowledge representation |
| US9665564B2 (en) | 2014-10-06 | 2017-05-30 | International Business Machines Corporation | Natural language processing utilizing logical tree structures |
| WO2016070096A1 (en) | 2014-10-30 | 2016-05-06 | Sas Institute Inc. | Generating accurate reason codes with complex non-linear modeling and neural networks |
| US9782069B2 (en) | 2014-11-06 | 2017-10-10 | International Business Machines Corporation | Correcting systematic calibration errors in eye tracking data |
| US9953053B2 (en) | 2014-12-18 | 2018-04-24 | International Business Machines Corporation | Reliability improvement of distributed transaction processing optimizations based on connection status |
| US9959303B2 (en) | 2015-01-07 | 2018-05-01 | International Business Machines Corporation | Alleviation of index hot spots in datasharing environment with remote update and provisional keys |
| US10037315B2 (en) | 2015-01-23 | 2018-07-31 | Adobe Systems Incorporated | Using form fields as dimensions to define consumer segments for which form interactivity metrics can be analyzed |
| US9799032B2 (en) | 2015-01-26 | 2017-10-24 | International Business Machines Corporation | Client-side security for tokenized transactions |
| US9672831B2 (en) | 2015-02-25 | 2017-06-06 | International Business Machines Corporation | Quality of experience for communication sessions |
| US10026109B2 (en) | 2015-03-11 | 2018-07-17 | Adobe Systems Incorporated | Linking contracts to deliverable items |
| US9935837B2 (en) | 2015-03-20 | 2018-04-03 | International Business Machines Corporation | Physical change tracking system for enclosures within data centers |
| US9460438B1 (en) | 2015-03-20 | 2016-10-04 | International Business Machines Corporation | Authenticating a request for an electronic transaction |
| US10038971B2 (en) | 2015-03-24 | 2018-07-31 | International Business Machines Corporation | Secure mobile device recovery |
| US10311467B2 (en) | 2015-03-24 | 2019-06-04 | Adobe Inc. | Selecting digital advertising recommendation policies in light of risk and expected return |
| US9569255B1 (en) * | 2015-03-25 | 2017-02-14 | Amazon Technologies, Inc. | Persistent state machine |
| US9996846B2 (en) | 2015-03-27 | 2018-06-12 | International Business Machines Corporation | Transforming social media re-shares to track referrer history and identify influencers |
| US9431003B1 (en) | 2015-03-27 | 2016-08-30 | International Business Machines Corporation | Imbuing artificial intelligence systems with idiomatic traits |
| US9866504B2 (en) | 2015-04-20 | 2018-01-09 | International Business Machines Corporation | Identifying end users in need of technical assistance |
| US9953295B2 (en) | 2015-04-28 | 2018-04-24 | International Business Machines Corporation | Management of event contexts using bookend contexts |
| US10135777B2 (en) | 2015-05-27 | 2018-11-20 | International Business Machines Corporation | Leveraging an internet of things to initiate a physical object to perform a specific act that enhances an interaction of a user with the physical object |
| EP4597302A3 (en) * | 2015-06-05 | 2025-10-29 | C3.ai, Inc. | Systems, methods, and devices for an enterprise internet-of-things application development platform |
| US10055334B2 (en) | 2015-06-30 | 2018-08-21 | International Business Machines Corporation | Debugging through causality and temporal patterning in an event processing system |
| US9894266B2 (en) | 2015-06-30 | 2018-02-13 | International Business Machines Corporation | Cognitive recording and sharing |
| US9811505B2 (en) | 2015-07-20 | 2017-11-07 | Sas Institute Inc. | Techniques to provide processing enhancements for a text editor in a computing environment |
| US9674670B2 (en) | 2015-07-28 | 2017-06-06 | International Business Machines Corporation | Communicating with isolated mobile devices in indoor positioning systems |
| US10657134B2 (en) * | 2015-08-05 | 2020-05-19 | Ab Initio Technology Llc | Selecting queries for execution on a stream of real-time data |
| US9420104B1 (en) | 2015-08-18 | 2016-08-16 | Salesforce.Com, Inc. | Systems and methods for an omni-channel routing broker |
| US9690627B2 (en) | 2015-09-01 | 2017-06-27 | International Business Machines Corporation | Redeployable resource forecasting |
| US9734473B2 (en) | 2015-09-03 | 2017-08-15 | Sas Institute Inc. | Computer-implemented system for hierarchical unconstraining in data processes |
| US9805324B2 (en) | 2015-09-16 | 2017-10-31 | Sas Institute Inc. | Computer-implemented system for modeling an allocated resource |
| US10324773B2 (en) | 2015-09-17 | 2019-06-18 | Salesforce.Com, Inc. | Processing events generated by internet of things (IoT) |
| US9842000B2 (en) | 2015-09-18 | 2017-12-12 | Salesforce.Com, Inc. | Managing processing of long tail task sequences in a stream processing framework |
| US10146592B2 (en) | 2015-09-18 | 2018-12-04 | Salesforce.Com, Inc. | Managing resource allocation in a stream processing framework |
| US9965330B2 (en) | 2015-09-18 | 2018-05-08 | Salesforce.Com, Inc. | Maintaining throughput of a stream processing framework while increasing processing load |
| US9946593B2 (en) | 2015-09-18 | 2018-04-17 | Salesforce.Com, Inc. | Recovery strategy for a stream processing system |
| US10062100B2 (en) | 2015-09-24 | 2018-08-28 | Adobe Systems Incorporated | Methods and systems for identifying visitors to real-world shopping venues as belonging to a group |
| US10042915B2 (en) | 2015-09-28 | 2018-08-07 | International Business Machines Corporation | Semantic mapping of topic map meta-models identifying assets and events to include directionality |
| US10103954B2 (en) | 2015-09-29 | 2018-10-16 | International Business Machines Corporation | Inter-nodes multicasting communication in a monitoring infrastructure |
| US10244057B2 (en) | 2015-10-09 | 2019-03-26 | Adobe Systems Incorporated | Techniques for associating and sharing data from multiple local devices |
| US9888340B2 (en) | 2015-10-10 | 2018-02-06 | International Business Machines Corporation | Non-intrusive proximity based advertising and message delivery |
| US10102030B2 (en) | 2015-10-26 | 2018-10-16 | International Business Machines Corporation | Using 64-bit storage to queue incoming transaction server requests |
| US10045096B2 (en) | 2015-11-06 | 2018-08-07 | International Business Machines Corporation | Social media modification of behavior and mobile screening for impairment |
| US9809184B2 (en) | 2015-11-09 | 2017-11-07 | Adobe Systems Incorporated | Automobile usage analytics and personalization |
| US10114854B2 (en) | 2015-11-17 | 2018-10-30 | International Business Machines Corporation | Validation rule management across entities |
| US10321265B2 (en) | 2015-11-18 | 2019-06-11 | International Business Machines Corporation | Diagnosis of beacons in an open architecture |
| US9424525B1 (en) | 2015-11-18 | 2016-08-23 | International Business Machines Corporation | Forecasting future states of a multi-active cloud system |
| US10270881B2 (en) | 2015-11-19 | 2019-04-23 | Adobe Inc. | Real-world user profiles via the internet of things |
| US10096383B2 (en) | 2015-11-24 | 2018-10-09 | International Business Machines Corporation | Performing a health analysis using a smart floor mat |
| US10171406B2 (en) | 2015-11-24 | 2019-01-01 | International Business Machines Corporation | Managing encouraging messages from social media contacts to enhance performance |
| US9471313B1 (en) | 2015-11-25 | 2016-10-18 | International Business Machines Corporation | Flushing speculative instruction processing |
| US10083024B2 (en) | 2015-12-01 | 2018-09-25 | Salesforce.Com, Inc. | Application aware virtual patching |
| US9514006B1 (en) | 2015-12-16 | 2016-12-06 | International Business Machines Corporation | Transaction tracking within a microprocessor |
| US9983774B2 (en) | 2015-12-21 | 2018-05-29 | Tibco Software Inc. | Authoring and consuming offline an interactive data analysis document |
| US11989096B2 (en) | 2015-12-21 | 2024-05-21 | Ab Initio Technology Llc | Search and retrieval data processing system for computing near real-time data aggregations |
| US9391848B1 (en) | 2015-12-28 | 2016-07-12 | International Business Machines Corporation | Real-time monitoring and control in a multi-nodal, multi-tiered distributed system |
| US10091355B2 (en) | 2016-02-19 | 2018-10-02 | International Business Machines Corporation | Virtual voice response agent individually configured for a user |
| US10268561B2 (en) | 2016-02-22 | 2019-04-23 | International Business Machines Corporation | User interface error prediction |
| US9952804B2 (en) | 2016-03-08 | 2018-04-24 | International Business Machines Corporation | Hardware transaction transient conflict resolution |
| US11249710B2 (en) * | 2016-03-31 | 2022-02-15 | Splunk Inc. | Technology add-on control console |
| US9892326B2 (en) | 2016-03-31 | 2018-02-13 | International Business Machines Corporation | Object detection in crowded scenes using context-driven label propagation |
| US10007580B2 (en) | 2016-04-11 | 2018-06-26 | International Business Machines Corporation | Assigning storage locations based on a graph structure of a workload |
| US10241809B2 (en) | 2016-04-15 | 2019-03-26 | International Business Machines Corporation | Obtaining insights from a distributed system for a dynamic, customized, context-sensitive help system |
| US10339933B2 (en) | 2016-05-11 | 2019-07-02 | International Business Machines Corporation | Visualization of audio announcements using augmented reality |
| US9984550B2 (en) | 2016-05-24 | 2018-05-29 | International Business Machines Corporation | Smart garment that communicates at least one parameter to a receiver |
| US10579753B2 (en) | 2016-05-24 | 2020-03-03 | Ab Initio Technology Llc | Executable logic for processing keyed data in networks |
| US10007571B2 (en) | 2016-06-01 | 2018-06-26 | International Business Machines Corporation | Policy based dynamic data collection for problem analysis |
| US9911260B2 (en) | 2016-06-23 | 2018-03-06 | International Business Machines Corporation | Associating external credentials with mobile devices |
| US10262002B2 (en) | 2016-08-11 | 2019-04-16 | International Business Machines Corporation | Consistent execution of partial queries in hybrid DBMS |
| US10523608B2 (en) | 2016-08-12 | 2019-12-31 | International Business Machines Corporation | Integration of social interactions into media sharing |
| US10135964B2 (en) | 2016-08-22 | 2018-11-20 | Adobe Systems Incorporated | Touch and device orientation-based device pairing |
| US10140987B2 (en) | 2016-09-16 | 2018-11-27 | International Business Machines Corporation | Aerial drone companion device and a method of operating an aerial drone companion device |
| US10942946B2 (en) | 2016-09-26 | 2021-03-09 | Splunk, Inc. | Automatic triage model execution in machine data driven monitoring automation apparatus |
| US10218690B2 (en) | 2016-10-17 | 2019-02-26 | International Business Machines Corporation | Abstracting an authentication sequence using HTTP |
| US10135979B2 (en) | 2016-11-02 | 2018-11-20 | International Business Machines Corporation | System and method for monitoring and visualizing emotions in call center dialogs by call center supervisors |
| US10158758B2 (en) | 2016-11-02 | 2018-12-18 | International Business Machines Corporation | System and method for monitoring and visualizing emotions in call center dialogs at call centers |
| US10334067B2 (en) | 2017-01-02 | 2019-06-25 | International Business Machines Corporation | MQTT cluster shared subscription hub for fat-pipe cloud applications |
| US10123172B2 (en) | 2017-01-05 | 2018-11-06 | International Business Machines Corporation | Customer touchpoint patterns and associated sentiment analysis |
| US10169201B2 (en) | 2017-01-07 | 2019-01-01 | International Business Machines Corporation | Debug management in a distributed batch data processing environment |
| US10338812B2 (en) | 2017-01-10 | 2019-07-02 | International Business Machines Corporation | Replacement of physical buttons with virtual controls |
| US10334103B2 (en) | 2017-01-25 | 2019-06-25 | International Business Machines Corporation | Message translation for cognitive assistance |
| US10255324B2 (en) | 2017-02-03 | 2019-04-09 | International Business Machines Corporation | Query modification in a database management system |
| US10331293B2 (en) | 2017-02-22 | 2019-06-25 | International Business Machines Coporation | Automated resizing of application windows based on interactive states |
| US11947978B2 (en) | 2017-02-23 | 2024-04-02 | Ab Initio Technology Llc | Dynamic execution of parameterized applications for the processing of keyed network data streams |
| US10831509B2 (en) | 2017-02-23 | 2020-11-10 | Ab Initio Technology Llc | Dynamic execution of parameterized applications for the processing of keyed network data streams |
| US10324778B2 (en) | 2017-02-27 | 2019-06-18 | International Business Machines Corporation | Utilizing an error prediction and avoidance component for a transaction processing system |
| US10755317B2 (en) | 2017-03-11 | 2020-08-25 | International Business Machines Corporation | Managing a set of offers using a dialogue |
| US10310918B2 (en) | 2017-03-22 | 2019-06-04 | International Business Machines Corporation | Information sharing among mobile apparatus |
| US10275619B2 (en) | 2017-03-27 | 2019-04-30 | International Business Machines Corporation | Luggage management system |
| US10044862B1 (en) | 2017-04-28 | 2018-08-07 | International Business Machines Corporation | Dynamic topic guidance in the context of multi-round conversation |
| US10178294B2 (en) | 2017-05-25 | 2019-01-08 | International Business Machines Corporation | Controlling a video capture device based on cognitive personal action and image identification |
| US10275451B2 (en) | 2017-07-11 | 2019-04-30 | International Business Machines Corporation | Counterintuitive recommendations based upon temporary conditions |
| US10348487B2 (en) | 2017-07-20 | 2019-07-09 | International Business Machines Corporation | Game data offloading to a blockchain |
| US10289395B2 (en) | 2017-10-17 | 2019-05-14 | International Business Machines Corporation | Performing a compiler optimization pass as a transaction |
-
2017
- 2017-08-28 US US15/688,587 patent/US10831509B2/en active Active
-
2018
- 2018-02-22 AU AU2018225158A patent/AU2018225158B2/en active Active
- 2018-02-22 SG SG10202110155Q patent/SG10202110155QA/en unknown
- 2018-02-22 MX MX2019010066A patent/MX2019010066A/es unknown
- 2018-02-22 CN CN202010092462.6A patent/CN111400336B/zh active Active
- 2018-02-22 CN CN201880013670.3A patent/CN110383268B/zh active Active
- 2018-02-22 EP EP18710205.8A patent/EP3586242B1/en active Active
- 2018-02-22 SG SG11201907125XA patent/SG11201907125XA/en unknown
- 2018-02-22 DE DE112018000974.2T patent/DE112018000974T5/de not_active Withdrawn
- 2018-02-22 CA CA3054365A patent/CA3054365A1/en active Pending
- 2018-02-22 WO PCT/US2018/019272 patent/WO2018156796A1/en not_active Ceased
- 2018-02-22 JP JP2019543113A patent/JP7110217B2/ja active Active
-
2019
- 2019-08-21 CL CL2019002361A patent/CL2019002361A1/es unknown
- 2019-08-22 MX MX2023012469A patent/MX2023012469A/es unknown
- 2019-10-08 US US16/595,586 patent/US11080067B2/en active Active
-
2020
- 2020-09-18 US US17/025,513 patent/US11409545B2/en active Active
-
2021
- 2021-08-18 CL CL2021002200A patent/CL2021002200A1/es unknown
- 2021-09-17 US US17/477,922 patent/US11669343B2/en active Active
-
2022
- 2022-07-18 AU AU2022206687A patent/AU2022206687B2/en active Active
- 2022-07-20 JP JP2022115895A patent/JP7453286B2/ja active Active
-
2023
- 2023-01-26 AU AU2023200420A patent/AU2023200420B2/en active Active
- 2023-02-20 JP JP2023024013A patent/JP7478865B2/ja active Active
- 2023-05-12 US US18/316,333 patent/US11983548B2/en active Active
- 2023-07-25 AU AU2023208111A patent/AU2023208111B2/en active Active
-
2024
- 2024-04-22 JP JP2024068886A patent/JP7770464B2/ja active Active
Also Published As
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| AU2023208111B2 (en) | Dynamic execution of parameterized applications for the processing of keyed network data streams | |
| US11947978B2 (en) | Dynamic execution of parameterized applications for the processing of keyed network data streams | |
| US10901791B2 (en) | Providing configurable workflow capabilities | |
| US10970114B2 (en) | Systems and methods for task scheduling | |
| US20080172414A1 (en) | Business Objects as a Service | |
| US11055074B2 (en) | Key-based logging for processing of structured data items with executable logic | |
| WO2022177904A1 (en) | Dynamic execution of parameterized applications for the processing of keyed network data streams | |
| HK40013230A (zh) | 用於处理加密网络数据流的参数化应用程序的动态执行 | |
| HK40013230B (zh) | 用於处理加密网络数据流的参数化应用程序的动态执行 |
Legal Events
| Date | Code | Title | Description |
|---|---|---|---|
| PB01 | Publication | ||
| PB01 | Publication | ||
| SE01 | Entry into force of request for substantive examination | ||
| SE01 | Entry into force of request for substantive examination | ||
| GR01 | Patent grant | ||
| GR01 | Patent grant |