CN114097205A - 用于处理网络数据的系统和方法 - Google Patents

用于处理网络数据的系统和方法 Download PDF

Info

Publication number
CN114097205A
CN114097205A CN202080042513.2A CN202080042513A CN114097205A CN 114097205 A CN114097205 A CN 114097205A CN 202080042513 A CN202080042513 A CN 202080042513A CN 114097205 A CN114097205 A CN 114097205A
Authority
CN
China
Prior art keywords
data
network
computing device
intermediate data
batch
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.)
Pending
Application number
CN202080042513.2A
Other languages
English (en)
Inventor
赛义德·曼苏尔·帕沙
穆凯什·加格
志全·杰夫·徐
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Citrix Systems Inc
Original Assignee
Citrix Systems Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Citrix Systems Inc filed Critical Citrix Systems Inc
Publication of CN114097205A publication Critical patent/CN114097205A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/069Management of faults, events, alarms or notifications using logs of notifications; Post-processing of notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/542Event management; Broadcasting; Multicasting; Notifications
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/32Monitoring with visual or acoustical indication of the functioning of the machine
    • G06F11/323Visualisation of programs or trace data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3442Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment for planning or managing the needed capacity
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/34Recording or statistical evaluation of computer activity, e.g. of down time, of input/output operation ; Recording or statistical evaluation of user activity, e.g. usability assessment
    • G06F11/3466Performance evaluation by tracing or monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24568Data stream processing; Continuous queries
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/06Management of faults, events, alarms or notifications
    • H04L41/0631Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis
    • H04L41/064Management of faults, events, alarms or notifications using root cause analysis; using analysis of correlation between notifications, alarms or events based on decision criteria, e.g. hierarchy, tree or time analysis involving time analysis
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L41/00Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
    • H04L41/16Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks using machine learning or artificial intelligence
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L43/00Arrangements for monitoring or testing data switching networks
    • H04L43/04Processing captured monitoring data, e.g. for logfile generation
    • H04L43/045Processing captured monitoring data, e.g. for logfile generation for graphical visualisation of monitoring data
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/30Monitoring
    • G06F11/3003Monitoring arrangements specially adapted to the computing system or computing system component being monitored
    • G06F11/3006Monitoring arrangements specially adapted to the computing system or computing system component being monitored where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2201/00Indexing scheme relating to error detection, to error correction, and to monitoring
    • G06F2201/86Event-based monitoring
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/50Indexing scheme relating to G06F9/50
    • G06F2209/508Monitor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2209/00Indexing scheme relating to G06F9/00
    • G06F2209/54Indexing scheme relating to G06F9/54
    • G06F2209/544Remote

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Medical Informatics (AREA)
  • Evolutionary Computation (AREA)
  • Artificial Intelligence (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Quality & Reliability (AREA)
  • Mathematical Physics (AREA)
  • Computing Systems (AREA)
  • Databases & Information Systems (AREA)
  • Computer Hardware Design (AREA)
  • Multimedia (AREA)
  • Computational Linguistics (AREA)
  • Debugging And Monitoring (AREA)
  • Computer And Data Communications (AREA)

Abstract

呈现了使用由单个代码基管理的单个处理流水线来提供数据分析并生成网络事件的实时和历史视图的方法和系统。计算设备可以接收指示在网络上发生的多个事件的数据流。计算设备可以使用单个处理流水线来处理数据流以生成中间数据和批数据。中间数据可以用于生成历史视图,并且批数据可以包括一段时间间隔的多个中间数据。计算设备可以基于中间数据的子集和批数据来生成事件的历史视图。最后,计算设备可以将历史视图提供到处理层,以使得计算设备能够响应对关于网络的信息的请求。

Description

用于处理网络数据的系统和方法
相关申请的交叉引用
本申请要求于2019年7月18日提交的并且名称为“用于处理网络数据的系统和方法(System and Method for Processing Network Data)”的美国非临时专利申请第16/515,344号的优先权,其全部内容通过引用明确地并入本文。
技术领域
本文描述的各方面总体上涉及计算机联网以及与其相关的硬件和软件。更具体地,本文描述的一个或多个方面提供网络事件的数据处理。
背景技术
分析服务允许用户查看网络上发生的实时和历史事件。典型地,这些分析服务使用两个不同的处理流水线,一个用于提供实时视图,并且另一个用于提供历史视图。使问题复杂化的是,实时视图处理流水线和历史视图处理流水线源自两个不同的代码基。
发明内容
下文呈现本文描述的各个方面的简化概述。本概述不是广泛的概览,并且不旨在识别所需的或关键的元件或者描绘权利要求的范围。以下概述仅以简化形式呈现一些概念,作为以下提供的更详细描述的介绍性序言。
本文描述的各方面涉及使用单个处理流水线和单个代码基来生成网络事件的实时和历史视图。计算设备可以接收指示在网络上发生的多个事件的数据流。计算设备可以使用单个处理流水线来处理数据流以生成中间数据和批数据。中间数据可以用于生成历史视图。此外,中间数据可以在实时视图中作为实时事件显示。批数据可以包括一段时间间隔的多个中间数据。计算设备可以基于中间数据的子集和批数据来生成事件的历史视图。计算设备可以基于所生成的历史视图经由处理层来响应对关于网络的信息的请求。计算设备可以将中间数据存储在第一存储器中,并使中间数据呈现为实时视图中的数据点。另外,批数据可以存储在诸如时间数据库的第二存储器中。中间数据和批数据可以用于检测异常网络状况。例如,可以将中间数据与阈值进行比较,并且当中间数据大于阈值时,可以生成指示异常状况的警报。还可以将批数据与阈值进行比较以检测异常网络状况。当网络状况正常(即,低于阈值)时,可以将中间数据和/或批数据提供到机器学习系统以构建网络模型。在一些实施例中,当检测到异常网络状况时,可以调整一个或多个网络参数。
使用单个处理流水线和单个代码基生成中间数据和批数据提供了比实施多个代码基和多个处理流水线的现有技术系统更好的可缩放性。特别地,与实施多个代码基和多个处理流水线的现有技术系统相比,单个处理流水线和单个代码基降低了处理资源和网络带宽资源的消耗。
受益于以下进一步详细讨论的公开内容,将理解这些和附加的方面。
附图说明
通过参考鉴于附图的以下描述,可以获得对本文描述的各方面及其优点的更完整的理解,在附图中,相同的附图标记指示相同的特征,并且其中:
图1描绘了可以根据本文描述的一个或多个说明性方面使用的说明性计算机系统架构。
图2描绘了可以根据本文描述的一个或多个说明性方面使用的说明性远程访问系统架构。
图3描绘了可以根据本文描述的一个或多个说明性方面使用的说明性虚拟化系统架构。
图4描绘了可以根据本文描述的一个或多个说明性方面使用的说明性基于云的系统架构。
图5描绘了说明性企业移动性管理系统。
图6描绘了根据本文描述的一个或多个说明性方面的可以用于生成网络事件的实时和历史视图的说明性管理和分析服务。
图7A至图7C描绘了根据本文描述的一个或多个说明性方面的准备网络事件的实时和历史视图的单个处理流水线的说明性算法。
图8描绘了根据本文描述的一个或多个说明性方面的用于生成网络事件的历史视图的说明性算法。
图9A和图9B描绘了根据本文描述的一个或多个说明性方面的实时视图的实例。
图10A至图10C描绘了根据本文描述的一个或多个说明性方面的历史视图的实例。
具体实施方式
在各种实施例的以下描述中,参考上文被识别并形成其一部分的附图,并且在其中以说明的方式示出可以实践本文描述的各方面的各种实施例。应当理解,在不脱离本文描述的范围的情况下,可以利用其他实施例,并且可以进行结构和功能修改。各个方面能够有其他实施例并且能够以各种不同的方式实践或执行。
如以上讨论的,典型的分析服务使用来自两个不同代码基的两个不同处理流水线。在操作中,两个不同代码基在所执行的任务中重叠。例如,两个代码基均可以多次读取相同数据。执行相同数据的多次读取的需要在时间和处理能力方面都是低效的。除了低效之外,具有多个代码基还不能很好地缩放。此外,随着时间的推移,维护两个不同代码基变得越来越复杂,并且可能由于代码基之间的差异而导致性能退化。
为了克服以上描述的现有技术中的限制,并且为了克服在阅读和理解本说明书时将显而易见的其他限制,本文描述的各方面涉及使用由单个代码基管理的单个处理流水线来生成网络事件的实时和历史视图。根据单个代码基的单个处理流水线可以提供优于现有技术系统的优点,现有技术系统跨多个流水线划分处理并且跨多个代码基扩展这些部件的功能。在这点上,由单个代码基执行的单个处理流水线降低了维护多个代码基的复杂性,并且呈现了比现有技术系统更节省成本的解决方案。此外,单个处理流水线和单个代码基提供了比实施多个代码基和多个处理流水线的系统更好的可缩放性。
应当理解,本文使用的措辞和术语是为了描述的目的,而不应当被认为是限制性的。相反,本文使用的短语和术语被给予其最广泛的解释和含义。使用“包括(including)”和“包括(comprising)”及其变体意在涵盖其后列出的项及其等同物以及附加项及其等同物。术语“连接”、“耦合”和类似术语的使用意在包括直接和间接连接和耦合。
计算架构
计算机软件、硬件和网络可以用在各种不同的系统环境中,包括独立环境、联网环境、远程访问环境(也称为远程桌面)、虚拟化环境和/或基于云的环境等。图1图示了可以用于在独立环境和/或联网环境中实施本文描述的一个或多个说明性方面的系统架构和数据处理设备的一个实例。各个网络节点103、105、107和109可以经由诸如因特网的广域网(WAN)101互连。也可以或替代地使用其他网络,包括专用内联网、公司网络、局域网(LAN)、城域网(MAN)、无线网络、个人网络(PAN)等。网络101用于说明的目的,并且可以用更少或附加的计算机网络代替。局域网133可以具有任何已知的LAN拓扑中的一个或多个,并且可以使用各种不同的协议中的一个或多个,诸如以太网。设备103、105、107和109以及其他设备(未示出)可以经由双绞线、同轴电缆、光纤、无线电波或其他通信介质连接到网络中的一个或多个。
如本文使用并在附图中描绘的术语“网络”不仅指其中远程存储设备经由一个或多个通信路径耦合在一起的系统,而且指可以不时耦合到具有存储能力的这样的系统的独立设备。因此,术语“网络”不仅包括“物理网络”,而且还包括“内容网络”,其包括归属于单个实体的数据,该单个实体跨全部物理网络驻留。
这些部件可以包括数据服务器103、网络服务器105和客户端计算机107、109。数据服务器103提供对数据库和控制软件的整体访问、控制和管理,用于执行本文描述的一个或多个说明性方面。数据服务器103可以连接到网络服务器105,用户通过网络服务器105与所请求的数据进行交互并获得所请求的数据。替代地,数据服务器103可以充当网络服务器本身,并且直接连接到因特网。数据服务器103可以通过局域网133、广域网101(例如,因特网),经由直接或间接连接,或经由一些其他网络连接到网络服务器105。用户可以使用远程计算机107、109与数据服务器103交互,例如,使用网络浏览器经由网络服务器105所托管的一个或多个外部公开的网站连接到数据服务器103。客户端计算机107、109可以与数据服务器103一起使用以访问存储在其中的数据,或者可以用于其他目的。例如,用户可以从客户端设备107使用本领域中已知的因特网浏览器,或者通过执行通过计算机网络(诸如因特网)与网络服务器105和/或数据服务器103通信的软件应用来访问网络服务器105。
服务器和应用可以被组合在相同物理机器上,并且保留单独的虚拟地址或逻辑地址,或者可以驻留在单独的物理机器上。图1仅图示了可以使用的网络架构的一个实例,并且本领域技术人员将理解,所使用的特定网络架构和数据处理设备可以改变,并且对于它们提供的功能是次要的,如本文进一步描述的。例如,由网络服务器105和数据服务器103提供的服务可以被组合在单个服务器上。
每个部件103、105、107、109可以是任何类型的已知计算机、服务器或数据处理设备。例如,数据服务器103可以包括控制数据服务器103的整体操作的处理器111。数据服务器103还可以包括随机访问存储器(RAM)113、只读存储器(ROM)115、网络接口117、输入/输出接口119(例如,键盘、鼠标、显示器、打印机等)和存储器121。输入/输出(I/O)119可以包括用于读取、写入、显示和/或打印数据或文件的各种接口单元和驱动器。存储器121还可以存储用于控制数据处理设备103的整体操作的操作系统软件123、用于指示数据服务器103执行本文描述的各方面的控制逻辑125,以及提供可以或可以不结合本文描述的各方面使用的次要、支持和/或其他功能的其他应用软件127。控制逻辑125在本文也可以被称为数据服务器软件125。数据服务器软件125的功能可以指基于编码到控制逻辑125中的规则自动做出的操作或决定、由将输入提供到系统中的用户手动做出的操作或决定,和/或基于用户输入(例如,查询、数据更新等)的自动处理的组合。
存储器121还可以存储用于执行本文描述的一个或多个方面的数据,包括第一数据库129和第二数据库131。在一些实施例中,第一数据库129可以包括第二数据库131(例如,作为单独的表格、报告等)。即,根据系统设计,信息可以存储在单个数据库中,或分离成不同的逻辑数据库、虚拟数据库或物理数据库。设备105、107和109可以具有与关于设备103所描述的类似或不同的架构。本领域技术人员将理解,本文描述的数据处理设备103(或设备105、107或109)的功能可以跨多个数据处理设备分布,以例如将处理负载跨多个计算机分配,从而基于地理位置、用户访问级别、服务质量(QoS)等来隔离交易。
一个或多个方面可以体现在计算机可用或可读的数据和/或计算机可执行指令中,诸如体现在由一个或多个计算机或本文描述的其他设备执行的一个或多个程序模块中。一般而言,程序模块包括例程、程序、对象、部件、数据结构等,其在由计算机或其他设备中的处理器执行时执行特定任务或实施特定抽象数据类型。模块可以用随后被编译用于执行的源代码编程语言来编写,或者可以用诸如(但不限于)超文本标记语言(HTML)或可扩展标记语言(XML)的脚本语言来编写。计算机可执行指令可以存储在诸如非易失性存储设备的计算机可读介质上。可以使用任何合适的计算机可读存储介质,包括硬盘、CD-ROM、光存储设备、磁存储设备、固态存储设备和/或它们的任何组合。另外,表示本文描述的数据或事件的各种传输(非存储)介质可以以穿过诸如金属线、光纤和/或无线传输介质(例如,空气和/或空间)的信号传导介质传播的电磁波的形式在源和目的地之间传送。本文描述的各个方面可以体现为方法、数据处理系统或计算机程序产品。因此,各种功能可以整体或部分地体现在软件、固件和/或硬件或硬件等同物(诸如集成电路、现场可编程门阵列(FPGA)等)中。特定的数据结构可以用于更有效地实施本文描述的一个或多个方面,并且这样的数据结构被认为在本文描述的计算机可执行指令和计算机可用数据的范围内。
进一步参考图2,本文描述的一个或多个方面可以在远程访问环境中实施。图2描绘了包括可以根据本文描述的一个或多个说明性方面使用的说明性计算环境200中的计算设备201的示例系统架构。计算设备201可以用作单服务器或多服务器桌面虚拟化系统(例如,远程访问或云系统)中的服务器206a,并且可以被配置成为客户端访问设备提供虚拟机。计算设备201可以具有用于控制设备201及其相关联的部件(包括RAM 205、ROM 207、输入/输出(I/O)模块209和存储器215)的整体操作的处理器203。
I/O模块209可以包括计算设备201的用户可以通过其提供输入的鼠标、小键盘、触摸屏、扫描仪、光学读取器和/或指示笔(或其他输入设备),并且还可以包括用于提供音频输出的扬声器中的一个或多个以及用于提供文本输出、视听输出和/或图形输出的视频显示设备中的一个或多个。软件可以存储在存储器215和/或其他存储设备内,以将指令提供到处理器203,用于将计算设备201配置到专用计算设备中,以执行本文描述的各种功能。例如,存储器215可以存储由计算设备201使用的软件,诸如操作系统217、应用程序219和相关联的数据库221。
计算设备201可以在支持到诸如终端240(也称为客户端设备和/或客户端机器)等一个或多个远程计算机的连接的联网环境中操作。终端240可以是包括以上关于计算设备103或201描述的多个或全部元件的个人计算机、移动设备、膝上型计算机、平板计算机或服务器。图2描绘的网络连接包括局域网(LAN)225和广域网(WAN)229,但是还可以包括其他网络。当在LAN联网环境中使用时,计算设备201可以通过网络接口或适配器223连接到LAN225。当在WAN联网环境中使用时,计算设备201可以包括调制解调器或其他广域网接口227,用于在诸如计算机网络230(例如,因特网)等WAN 229上建立通信。将理解,所示的网络连接是说明性的,并且可以使用在计算机之间建立通信链路的其他手段。计算设备201和/或终端240还可以是包括诸如电池、扬声器和天线(未示出)等各种其他部件的移动终端(例如,移动电话、智能手机、个人数字助理(PDA)、笔记本等)。
本文描述的各方面还可以与众多其他通用或专用计算系统环境或配置一起操作。可适用于本文描述的各方面的其他计算系统、环境和/或配置的实例包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子设备、网络个人计算机(PC)、小型计算机、大型计算机、包括以上系统或设备中的任一个的分布式计算环境等。
如图2所示,一个或多个客户端设备240可以与一个或多个服务器206a至206n(本文统称为“服务器206”)通信。在一个实施例中,计算环境200可以包括安装在服务器206与客户端机器240之间的网络电器。网络电器可以管理客户端/服务器连接,并且在一些情况下可以在多个后端服务器206之间加载平衡客户端连接。
在一些实施例中,客户端机器240可以被称为单个客户端机器240或单组客户端机器240,而服务器206可以被称为单个服务器206或单组服务器206。在一个实施例中,单个客户端机器240与多于一个的服务器206通信,而在另一个实施例中,单个服务器206与多于一个的客户端机器240通信。在又一个实施例中,单个客户端机器240与单个服务器206通信。
在一些实施例中,客户端机器240可以由以下非穷举性术语中的任何一个来引用:客户端机器;客户端;客户端计算机;客户端设备;客户端计算设备;本地机器;远程机器;客户端节点;端点;或端点节点。在一些实施例中,服务器206可以由以下非穷举性术语中的任何一个来引用:服务器、本地机器;远程机器;服务器群或主机计算设备。
在一个实施例中,客户端机器240可以是虚拟机。虚拟机可以是任何虚拟机,而在一些实施例中,虚拟机可以是由类型1或类型2管理程序管理的任何虚拟机,管理程序例如由思杰系统(Citrix Systems)、国际商用机电器公司(IBM)、威睿(VMware)开发的管理程序或任何其他管理程序。在一些方面,虚拟机可以由管理程序管理,而在其他方面,虚拟机可以由在服务器206上执行的管理程序或在客户端240上执行的管理程序管理。
一些实施例包括客户端设备240,其显示由在服务器206或其他远程定位的机器上远程执行的应用生成的应用输出。在这些实施例中,客户端设备240可以执行虚拟机接收机程序或应用以在应用窗口、浏览器或其他输出窗口中显示输出。在一个实例中,应用是桌面,而在其他实例中,应用是生成或呈现桌面的应用。桌面可以包括为其中可集成本地和/或远程应用的操作系统的实例提供用户界面的图形壳层。如本文使用的应用是在操作系统(并且可选地还有桌面)的实例已经被加载之后执行的程序。
在一些实施例中,服务器206使用远程呈现协议或其他程序来将数据发送到在客户端上执行的瘦客户端或远程显示应用,以呈现由在服务器206上执行的应用生成的显示输出。瘦客户端或远程显示协议可以是以下非穷举性协议列表中的任何一个:由佛罗里达州劳德代尔堡的思杰系统公司开发的独立计算架构(ICA)协议;或由华盛顿州雷德蒙市的微软公司(Microsoft Corporation)制造的远程桌面协议(RDP)。
远程计算环境可以包括多于一个的服务器206a至206n,使得服务器206a至206n例如在云计算环境中在逻辑上一起分组到服务器群206中。服务器群206可以包括在逻辑上分组在一起时地理上分散的服务器206,或者在逻辑上分组在一起时彼此邻近定位的服务器206。在一些实施例中,服务器群206内的地理上分散的服务器206a至206n可以使用WAN(广域)、MAN(城域)或LAN(局域)通信,其中不同地理区域可以被表征为:不同大陆;大陆的不同区域;不同国家;不同州;不同城市;不同校园;不同房间;或先前地理位置的任何组合。在一些实施例中,服务器群206可以作为单个实体来管理,而在其他实施例中,服务器群206可以包括多个服务器群。
在一些实施例中,服务器群可以包括执行基本上类似类型的操作系统平台(例如,WINDOWS、UNIX、LINUX、iOS、ANDROID等)的服务器206。在其他实施例中,服务器群206可以包括执行第一类型的操作系统平台的第一组一个或多个服务器和执行第二类型的操作系统平台的第二组一个或多个服务器。
服务器206可以根据需要被配置成任何类型的服务器,例如文件服务器、应用服务器、网络服务器、代理服务器、电器、网络电器、网关、应用网关、网关服务器、虚拟化服务器、部署服务器、安全套接字层(SSL)VPN服务器、防火墙、网络服务器、应用服务器,或者被配置成为主应用服务器、执行活动目录的服务器或执行提供防火墙功能、应用功能或负载平衡功能的应用加速程序的服务器。也可以使用其他服务器类型。
一些实施例包括第一服务器206a,其接收来自客户端机器240的请求、将该请求转发到第二服务器206b(未示出),并用来自第二服务器206b(未示出)的响应来响应由客户端机器240生成的请求。第一服务器206a可以获取客户端机器240可用的应用的枚举以及与托管应用的枚举内识别的应用的应用服务器206相关联的地址信息。然后,第一服务器206a可以使用网络接口呈现对客户端请求的响应,并且直接与客户端240通信以向客户端240提供对被识别的应用的访问。一个或多个客户端240和/或一个或多个服务器206可以通过网络230(例如网络101)传输数据。
图3示出了说明性桌面虚拟化系统的高级架构。如图所示,桌面虚拟化系统可以是单服务器或多服务器系统,或者云系统,该系统包括被配置成将虚拟桌面和/或虚拟应用提供到一个或多个客户端访问设备240的至少一个虚拟化服务器301。如本文所用,桌面是指其中可以托管和/或执行一个或多个应用的图形环境或空间。桌面可以包括为其中可集成本地和/或远程应用的操作系统的实例提供用户界面的图形壳层。应用可以包括在操作系统(并且可选地还有桌面)的实例被加载之后执行的程序。操作系统的每个实例可以是物理的(例如,每个设备一个操作系统)或虚拟的(例如,在单个设备上运行的OS的多个实例)。每个应用可以在本地设备上执行,或者在远程定位的(例如远程的)设备上执行。
计算机设备301可以被配置成虚拟化环境(例如,单服务器、多服务器或云计算环境)中的虚拟化服务器。图3图示的虚拟化服务器301可以被部署为图2图示的服务器206的一个或多个实施例或由其他已知的计算设备来部署和/或实施。包括在虚拟化服务器301中的是硬件层,该硬件层可以包括一个或多个物理盘304、一个或多个物理设备306、一个或多个物理处理器308以及一个或多个物理存储器316。在一些实施例中,固件312可以存储在物理存储器316中的存储器元件内,并且可以由物理处理器308中的一个或多个执行。虚拟化服务器301还可以包括操作系统314,该操作系统314可以存储在物理存储器316中的存储器元件中,并且由物理处理器308中的一个或多个执行。此外,管理程序302可以存储在物理存储器316中的存储器元件中,并且可以由物理处理器308中的一个或多个执行。
在物理处理器308中的一个或多个上执行的可以是一个或多个虚拟机332A至332C(统称为332)。每个虚拟机332可以具有虚拟盘326A至326C和虚拟处理器328A至328C。在一些实施例中,第一虚拟机332A可以使用虚拟处理器328A来执行包括工具栈324的控制程序320。控制程序320可以被称为控制虚拟机、Dom0、Domain 0或用于系统管理和/或控制的其他虚拟机。在一些实施例中,一个或多个虚拟机332B至332C可以使用虚拟处理器328B至328C来执行客户操作系统330A至330B。
虚拟化服务器301可以包括具有与虚拟化服务器301通信的一个或多个硬件的硬件层310。在一些实施例中,硬件层310可以包括一个或多个物理盘304、一个或多个物理设备306、一个或多个物理处理器308以及一个或多个物理存储器316。物理部件304、306、308和316可以包括例如以上描述的部件中的任一个。物理设备306可以包括例如网络接口卡、视频卡、键盘、鼠标、输入设备、监视器、显示设备、扬声器、光驱、存储设备、通用串行总线连接、打印机、扫描仪、网络元件(例如,路由器、防火墙、网络地址转换器、负载平衡器、虚拟专用网络(VPN)网关、动态主机配置协议(DHCP)路由器等),或连接到虚拟化服务器301或与虚拟化服务器301通信的任何设备。硬件层310中的物理存储器316可以包括任何类型的存储器。物理存储器316可以存储数据,并且在一些实施例中可以存储一个或多个程序或一组或多组可执行指令。图3图示了其中固件312存储在虚拟化服务器301的物理存储器316内的实施例。存储在物理存储器316中的程序或可执行指令可以由虚拟化服务器301的一个或多个处理器308执行。
虚拟化服务器301还可以包括管理程序302。在一些实施例中,管理程序302可以是由虚拟化服务器301上的处理器308执行以创建和管理任何数量的虚拟机332的程序。管理程序302可以被称为虚拟机监视器或平台虚拟化软件。在一些实施例中,管理程序302可以是监视在计算机器上执行的虚拟机的可执行指令和硬件的任何组合。管理程序302可以是类型2管理程序,其中管理程序在虚拟化服务器301上执行的操作系统314内执行。然后虚拟机可以在管理程序302之上的级别执行。在一些实施例中,类型2管理程序可以在用户的操作系统的语境中执行,使得类型2管理程序与用户的操作系统交互。在其他实施例中,虚拟化环境中的一个或多个虚拟化服务器301可以替代地包括类型1管理程序(未示出)。类型1管理程序可以通过直接访问硬件层310内的硬件和资源而在虚拟化服务器301上执行。即,当类型2管理程序302通过主机操作系统314访问系统资源时,如图所示,类型1管理程序可以直接访问全部系统资源而无需主机操作系统314。类型1管理程序可以直接在虚拟化服务器301的一个或多个物理处理器308上执行,并且可以包括存储在物理存储器316中的程序数据。
在一些实施例中,管理程序302可以以模拟具有对系统资源的直接访问的操作系统330或控制程序320的任何方式向在虚拟机332上执行的操作系统330或控制程序320提供虚拟资源。系统资源可以包括但不限于物理设备306、物理盘304、物理处理器308、物理存储器316以及包括在虚拟化服务器301的硬件层310中的任何其他部件。管理程序302可以用于仿真虚拟硬件、分区物理硬件、虚拟化物理硬件和/或执行提供对计算环境的访问的虚拟机。在其他实施例中,管理程序302可以控制在虚拟化服务器301上执行的虚拟机332的处理器调度和存储器分区。管理程序302可以包括由加利福尼亚州帕洛阿尔托市的威睿公司制造的管理程序;由微软提供的HyperV、虚拟服务器或虚拟PC管理程序等。在一些实施例中,虚拟化服务器301可以执行管理程序302,该管理程序302创建虚拟机平台,客户操作系统可以在虚拟机平台上执行。在这些实施例中,虚拟化服务器301可以被称为主机服务器。这样的虚拟化服务器的实例是由佛罗里达州劳德代尔堡的思杰系统公司提供的思杰管理程序。
管理程序302可以创建一个或多个虚拟机332B至332C(统称为332),客户操作系统330在其中执行。在一些实施例中,管理程序302可以加载虚拟机映像以创建虚拟机332。在其他实施例中,管理程序302可以执行虚拟机332内的客户操作系统330。在其他实施例中,虚拟机332可以执行客户操作系统330。
除了创建虚拟机332之外,管理程序302还可以控制至少一个虚拟机332的执行。在其他实施例中,管理程序302可以呈现具有由虚拟化服务器301提供的至少一个硬件资源(例如,硬件层310内可用的任何硬件资源)的抽象的至少一个虚拟机332。在其他实施例中,管理程序302可以控制虚拟机332访问虚拟化服务器301中可用的物理处理器308的方式。控制对物理处理器308的访问可以包括确定虚拟机332是否应当访问处理器308,以及如何将物理处理器能力呈现给虚拟机332。
如图3所示,虚拟化服务器301可以托管或执行一个或多个虚拟机332。虚拟机332是一组可执行指令,该组可执行指令在由处理器308执行时可以模仿物理计算机的操作,使得虚拟机332可以与物理计算设备非常相似地执行程序和过程。虽然图3图示了虚拟化服务器301托管三个虚拟机332的实施例,但是在其他实施例中,虚拟化服务器301可以托管任何数量的虚拟机332。在一些实施例中,管理程序302可以向每个虚拟机332提供该虚拟机332可用的物理硬件、存储器、处理器和其他系统资源的唯一虚拟视图。在一些实施例中,唯一虚拟视图可以基于以下的一个或多个:虚拟机许可、策略引擎对一个或多个虚拟机标识符的应用、访问虚拟机的用户、在虚拟机上执行的应用、虚拟机所访问的网络或任何其他期望的准则。例如,管理程序302可以创建一个或多个不安全虚拟机332和一个或多个安全虚拟机332。可以防止不安全虚拟机332访问可以允许安全虚拟机332访问的资源、硬件、存储器位置和程序。在其他实施例中,管理程序302可以向每个虚拟机332提供该虚拟机332可用的物理硬件、存储器、处理器和其他系统资源的基本上类似的虚拟视图。
每个虚拟机332可以包括虚拟盘326A至326C(统称为326)和虚拟处理器328A至328C(统称为328)。在一些实施例中,虚拟盘326是虚拟化服务器301的一个或多个物理盘304或虚拟化服务器301的一个或多个物理盘304的一部分的虚拟化视图。物理盘304的虚拟化视图可以由管理程序302生成、提供和管理。在一些实施例中,管理程序302向每个虚拟机332提供物理盘304的唯一视图。因此,在这些实施例中,与其他虚拟盘326相比,包括在每个虚拟机332中的特定虚拟盘326可以是唯一的。
虚拟处理器328可以是虚拟化服务器301的一个或多个物理处理器308的虚拟化视图。在一些实施例中,物理处理器308的虚拟化视图可以由管理程序302生成、提供和管理。在一些实施例中,虚拟处理器328基本上具有至少一个物理处理器308的全部相同特征。在其他实施例中,虚拟处理器308提供物理处理器308的修改视图,使得虚拟处理器328的特征中的至少一些与对应的物理处理器308的特征不同。
进一步参考图4,本文描述的一些方面可以在基于云的环境中实施。图4图示了云计算环境(或云系统)400的实例。如图4所示,客户端计算机411至414可以与云管理服务器410通信以访问云系统的计算资源(例如,主机服务器403a至403b(本文统称为“主机服务器403”)、存储资源404a至404b(本文统称为“存储资源404”)和网络元件405a至405b(本文统称为“网络资源405”))。
管理服务器410可以在一个或多个物理服务器上实施。管理服务器410可以运行例如由佛罗里达州的思杰系统公司提供的思杰云(Citrix Cloud),或OPENSTACK等等。管理服务器410可以管理各种计算资源,包括云硬件和软件资源,例如,主机计算机403、数据存储设备404和联网设备405。云硬件和软件资源可以包括专用部件和/或公共部件。例如,云可以被配置成由一个或多个特定客户或客户端计算机411至414和/或通过专用网络使用的专用云。在其他实施例中,公共云或混合公共-专用云可以由其他客户通过开放或混合网络使用。
管理服务器410可以被配置成提供用户界面,云操作员和云客户可以通过该用户界面与云系统400交互。例如,管理服务器410可以将向一组应用编程接口(API)和/或一个或多个云操作员控制台应用(例如,基于网络的或独立的应用)提供用户界面,以允许云操作员管理云资源,配置虚拟化层,管理客户账户,以及执行其他云管理任务。管理服务器410还可以包括具有用户界面的一组API和/或一个或多个客户控制台应用,用户界面被配置成经由客户端计算机411至414接收来自终端用户的云计算请求,例如,创建、修改或销毁云内虚拟机的请求。客户端计算机411至414可以经由因特网或一些其他通信网络连接到管理服务器410,并且可以请求访问由管理服务器410管理的计算资源中的一个或多个。响应于客户端请求,管理服务器410可以包括资源管理器,其被配置成基于客户端请求选择和供应云系统的硬件层中的物理资源。例如,管理服务器410和云系统的附加部件可以被配置成通过网络(例如,因特网)为客户端计算机411至414处的客户供应、创建和管理虚拟机及其操作环境(例如,管理程序、存储资源、由网络元件提供的服务等),向客户提供计算资源、数据存储服务、联网能力以及计算机平台和应用支持。云系统还可以被配置成提供各种特定服务,包括安全系统、开发环境、用户界面等。
例如,某些客户端411至414可以与代表相同终端用户或隶属于相同公司或组织的不同用户创建虚拟机的不同客户端计算机相关。在其他实例中,某些客户端411至414可以是不相关的,诸如隶属于不同公司或组织的用户。对于不相关的客户端,任何一个用户的虚拟机或存储的信息可以对其他用户隐藏。
现在参考云计算环境的物理硬件层,可用性区域401至402(或多个区域)可以指一组并置的物理计算资源。区域可以在地理上与计算资源的整个云中的其他区域分离。例如,区域401可以是位于加利福尼亚的第一云数据中心,并且区域402可以是位于佛罗里达州的第二云数据中心。管理服务器410可以位于可用性区域中的一个处,或者位于单独的位置处。每个区域可以包括通过网关与区域外部的设备(诸如管理服务器410)对接的内部网络。云的终端用户(例如,客户端411至414)可能知道或可能不知道区域之间的区别。例如,终端用户可以请求创建具有指定量的存储器、处理能力和网络能力的虚拟机。管理服务器410可以响应于用户的请求,并且可以分配资源以创建虚拟机,而无需用户知道虚拟机是使用来自区域401还是区域402的资源创建的。在其他实例中,云系统可以允许终端用户请求在特定区域中或在区域内的特定资源403至405上分配虚拟机(或其他云资源)。
在该实例中,每个区域401至402可以包括各种物理硬件部件(或计算资源)403至405的布置,例如,物理托管资源(或处理资源)、物理网络资源、物理存储资源、交换机以及可以用于将云计算服务提供到客户的附加硬件资源。云区域401至402中的物理托管资源可以包括一个或多个计算机服务器403,诸如以上描述的虚拟化服务器301,该虚拟化服务器301可以被配置成创建并且托管虚拟机实例。云区域401或402中的物理网络资源可以包括一个或多个网络元件405(例如,网络服务提供商),网络元件405包括被配置成将网络服务提供到云客户的硬件和/或软件,诸如防火墙、网络地址转换器、负载平衡器、虚拟专用网络(VPN)网关、动态主机配置协议(DHCP)路由器等。云区域401至402中的存储资源可以包括存储盘(例如,固态驱动器(SSD)、磁硬盘等)和其他存储设备。
图4所示的示例云计算环境还可以包括具有附加硬件和/或软件资源的虚拟化层(例如,如图1至图3所示),该附加硬件和/或软件资源被配置成创建和管理虚拟机并且使用云中的物理资源向客户提供其他服务。虚拟化层可以包括如以上在图3中描述的管理程序,以及提供网络虚拟化、存储虚拟化等的其他部件。虚拟化层可以作为与物理资源层分离的层,或者可以与物理资源层共享相同硬件和/或软件资源中的一些或全部。例如,虚拟化层可以包括安装在具有物理计算资源的虚拟化服务器403中的每一个中的管理程序。替代地,可以使用已知的云系统,例如WINDOWS AZURE(华盛顿州雷蒙德市的微软公司)、AMAZON EC2(华盛顿州西雅图市的亚马逊公司(Amazon.com Inc.))、IBM BLUE CLOUD(纽约州阿蒙克市的IBM公司)或其他云系统。
企业移动性管理架构
图5表示在“自带设备”(BYOD)环境中使用的企业移动性技术架构500。该架构使得移动设备502的用户能够从移动设备502访问企业或个人资源,并且将移动设备502用于个人用途。用户可以使用由用户购买的移动设备502或由企业提供到用户的移动设备502来访问这样的企业资源504或企业服务508。用户可以将移动设备502仅用于商业用途或用于商业和个人用途。移动设备502可以运行iOS操作系统、安卓操作系统等。企业可以选择实施策略以管理移动设备502。策略可以通过防火墙或网关以这样的方式实施,即移动设备502可以被识别、保护或安全验证,并提供对企业资源(例如,504和508)的选择性或完全访问。策略可以是移动设备管理策略、移动应用管理策略、移动数据管理策略,或者移动设备、应用和数据管理策略的一些组合。通过应用移动设备管理策略管理的移动设备502可以被称为注册设备。
在一些实施例中,移动设备502的操作系统可以被分成托管分区510和非托管分区512。托管分区510可以具有应用于其的策略,以保护在托管分区510上运行的应用和存储在托管分区510中的数据。在托管分区510上运行的应用可以是安全应用。在其他实施例中,全部应用可以根据与应用分开接收的一组一个或多个策略文件来执行,并且这些策略文件定义一个或多个安全参数、特征、资源限制和/或当应用在移动设备502上执行时由移动设备管理系统实施的其他访问控制。通过根据它们各自的策略文件进行操作,可以允许或限制每个应用与一个或多个其他应用和/或资源进行通信,从而创建虚拟分区。因此,如本文所用,分区可以指存储器的物理分区部分(物理分区)、存储器的逻辑分区部分(逻辑分区),和/或作为如本文描述的跨多个应用执行一个或多个策略和/或策略文件的结果而创建的虚拟分区(虚拟分区)。换言之,通过对托管应用实施策略,这些应用可以被限制为仅能够与其他托管应用和受信任的企业资源进行通信,从而创建非托管应用和设备无法访问的虚拟分区。
安全应用可以是电子邮件应用、网络浏览应用、软件即服务(SaaS)访问应用、Windows应用访问应用等。安全应用可以是安全本机应用514、由安全应用启动器518执行的安全远程应用522、由安全应用启动器518执行的虚拟化应用526等。安全本机应用514可以由安全应用包装器520包装。安全应用包装器520可以包括当在移动设备502上执行安全本机应用514时在移动设备502上执行的集成策略。安全应用包装器520可以包括元数据,该元数据将在移动设备502上运行的安全本机应用514指向企业所托管的资源(例如,504和508),安全本机应用514可以要求这些资源在执行安全本机应用514时完成请求的任务。由安全应用启动器518执行的安全远程应用522可以在安全应用启动器518内执行。由安全应用启动器518执行的虚拟化应用526可以利用移动设备502上、企业资源504处等的资源。由安全应用启动器518执行的虚拟化应用526在移动设备502上使用的资源可以包括用户交互资源、处理资源等。用户交互资源可以用于收集和传输键盘输入、鼠标输入、相机输入、触觉输入、音频输入、视觉输入、手势输入等。处理资源可以用于呈现用户界面、处理从企业资源504接收的数据等。由安全应用启动器518执行的虚拟化应用526在企业资源504处使用的资源可以包括用户界面生成资源、处理资源等。用户界面生成资源可以用于组装用户界面、修改用户界面、刷新用户界面等。处理资源可以用于创建信息、读取信息、更新信息、删除信息等。例如,虚拟化应用526可以记录与图形用户界面(GUI)相关联的用户交互,并将它们通信到服务器应用,其中服务器应用将使用用户交互数据作为对在服务器上操作的应用的输入。在这样的布置中,企业可以选择在服务器侧维护应用以及与应用相关联的数据、文件等。虽然企业可以根据本文的原理通过保护一些应用以将它们在移动设备502上进行部署来选择“移动”这些应用,但是对于某些应用也可以选择这种布置。例如,虽然一些应用可以被保护以在移动设备502上使用,但是其他应用可能不准备或不适合部署在移动设备502上,因此企业可以选择通过虚拟化技术向移动用户提供对未准备好的应用的访问。作为另一个实例,企业可以具有带有大型复杂的数据集的大型复杂应用(例如,材料资源规划应用),其中为移动设备502定制应用将是非常困难的或不合需要的,因此企业可以选择通过虚拟化技术提供对应用的访问。作为又一个实例,企业可以具有维护高度受保护的数据(例如,人力资源数据、客户数据、工程数据)的应用,企业可能认为这些数据甚至对于受保护的移动环境来说也过于敏感,因此企业可以选择使用虚拟化技术来允许对这样的应用和数据的移动访问。企业可以选择在移动设备502上提供完全受保护和完全功能的应用以及虚拟化应用526,以允许访问被认为在服务器侧更适当地操作的应用。在实施例中,虚拟化应用526可以将移动设备502上的一些数据、文件等存储在安全存储位置中的一个中。例如,企业可以选择允许将某些信息存储在移动设备502上,而不允许其他信息的存储。
结合虚拟化应用526,如本文所述,移动设备502可以具有被设计成呈现GUI并随后记录与GUI的用户交互的虚拟化应用526。虚拟化应用526可以将用户交互通信到服务器侧以由服务器侧应用用作与应用的用户交互。作为响应,服务器侧的应用可以将新GUI传输回移动设备502。例如,新GUI可以是静态页面、动态页面、动画等,从而提供对远程定位的资源的访问。
安全应用514可以访问存储在移动设备502的托管分区510中的安全数据容器528中的数据。安全数据容器中保护的数据可以由安全本机应用514、由安全应用启动器518执行的安全远程应用522、由安全应用启动器518执行的虚拟化应用526等访问。存储在安全数据容器528中的数据可以包括文件、数据库等。存储在安全数据容器528中的数据可以包括限于特定安全应用530、在安全应用532之间共享的数据等。限于安全应用的数据可以包括安全通用数据534和高度安全数据538。安全通用数据可以使用强加密形式,诸如高级加密标准(AES)128位加密等,而高度安全数据538可以使用非常强的加密形式,诸如AES 256位加密。当接收到来自设备管理器524的命令时,可以从移动设备502删除存储在安全数据容器528中的数据。安全应用(例如,514、522和526)可以具有双模式选项540。双模式选项540可以向用户呈现以未受保护或非托管模式操作受保护应用的选项。在未受保护或非托管模式中,安全应用可以访问存储在移动设备502的非托管分区512上的未受保护数据容器542中的数据。存储在未受保护数据容器中的数据可以是个人数据544。存储在未受保护数据容器542中的数据也可以由在移动设备502的非托管分区512上运行的未受保护应用546访问。当存储在安全数据容器528中的数据从移动设备502中删除时,存储在未受保护数据容器542中的数据可以保留在移动设备502上。企业可能希望从移动设备502中删除由企业拥有、许可或控制的选定或全部数据、文件和/或应用(企业数据),同时保留或以其他方式保存由用户拥有、许可或控制的个人数据、文件和/或应用(个人数据)。该操作可以称为选择性擦除。利用根据本文描述的各方面布置的企业和个人数据,企业可以执行选择性擦除。
移动设备502可以连接到企业的企业资源504和企业服务508、公共因特网548等。移动设备502可以通过虚拟专用网络连接连接到企业资源504和企业服务508。虚拟专用网络连接,也称为微VPN或应用专用VPN,可以专用于特定应用(如微VPN 550所图示、特定设备、移动设备上的特定受保护区域(如O/S VPN 552所图示)等。例如,移动设备502的受保护区域中的每个包装的应用可以通过应用专用VPN来访问企业资源,使得基于与应用相关联的属性(可能结合用户或设备属性信息)授予对VPN的访问。虚拟专用网络连接可以承载微软交换业务、微软活动目录业务、超文本传输协议(HTTP)业务、超文本传输协议安全(HTTPS)业务、应用管理业务等。虚拟专用网络连接可以支持并启用单点登录认证过程554。单点登录过程可以允许用户提供单组认证凭证,然后由认证服务558对其进行验证。认证服务558然后可以向用户授予对多个企业资源504的访问,而无需要求用户向每个单独的企业资源504提供认证凭证。
虚拟专用网络连接可以由访问网关560建立和管理。访问网关560可以包括管理、加速和改进企业资源504到移动设备502的递送的性能增强特征。访问网关560还可以将业务从移动设备502重新路由到公共因特网548,使得移动设备502能够访问在公共因特网548上运行的公共可用且未受保护的应用。移动设备502可以经由输送网络562连接到访问网关。输送网络562可以使用一个或多个输送协议,并且可以是有线网络、无线网络、云网络、局域网、城域网、广域网、公共网络、专用网络等。
企业资源504可以包括电子邮件服务器、文件共享服务器、SaaS应用、网络应用服务器、Windows应用服务器等。电子邮件服务器可以包括Exchange服务器、Lotus Notes服务器等。文件共享服务器可以包括ShareFile服务器等。SaaS应用可以包括Salesforce等。Windows应用服务器可以包括被构建成提供旨在在本地Windows操作系统等上运行的应用的任何应用服务器。企业资源504可以是基于驻地的资源、基于云的资源等。企业资源504可以由移动设备502直接访问或通过访问网关560访问。企业资源504可以由移动设备502经由输送网络562访问。
企业服务508可以包括认证服务558、威胁检测服务564、设备管理器服务524、文件共享服务568、策略管理器服务570、社交整合服务572、应用控制器服务574等。认证服务558可以包括用户认证服务、设备认证服务、应用认证服务、数据认证服务等。认证服务558可以使用证书。证书可以由企业资源504等存储在移动设备502上。存储在移动设备502上的证书可以存储在移动设备502上的加密位置中,证书可以临时存储在移动设备502上以在认证时使用,等等。威胁检测服务564可以包括入侵检测服务、未授权访问尝试检测服务等。未授权访问尝试检测服务可以包括对访问设备、应用、数据等的未授权尝试。设备管理服务524可以包括配置、供应、安全、支持、监视、报告和停止使用服务。文件共享服务568可以包括文件管理服务、文件存储服务、文件协作服务等。策略管理器服务570可以包括设备策略管理器服务、应用策略管理器服务、数据策略管理器服务等。社交整合服务572可以包括联系人整合服务、协作服务、与诸如Facebook、Twitter和LinkedIn等社交网络的整合等。应用控制器服务574可以包括管理服务、供应服务、部署服务、分配服务、撤销服务、包装服务等。
企业移动性技术架构500可以包括应用商店578。应用商店578可以包括未包装的应用580、预包装的应用582等。应用可以从应用控制器574填充到应用商店578中。移动设备502可以通过访问网关560、通过公共因特网548等来访问应用商店578。应用商店578可以具有直观且易于使用的用户界面。
软件开发工具包584可以向用户提供通过如先前在本说明中描述的那样包装应用来保护由用户选择的应用的能力。已经使用软件开发工具包584包装的应用然后可以通过使用应用控制器574将其填充到应用商店578中而对移动设备502可用。
企业移动性技术架构500可以包括管理和分析服务588。管理和分析服务588可以提供与如何使用资源、使用资源的频率等相关的信息。资源可以包括设备、应用、数据等。如何使用资源可以包括哪些设备下载哪些应用、哪些应用访问哪些数据等。使用资源的频率可以包括应用下载的频率、特定数据集被应用访问的次数等。
分析服务
图6示出了管理和分析服务588,其可以生成与如何使用资源(例如,计算资源、托管资源、处理资源、网络资源、存储资源、硬件资源、软件资源、企业资源、个人资源等)、使用资源的频率等相关的信息。另外,管理和分析服务588还可以生成与网络相关事件相关的信息,诸如用户会话的数量和质量、连接失败、往返时间、登录持续时间等。如以下将更详细讨论的,与网络相关事件相关的信息可以显示给用户或管理员,以帮助解决网络相关问题。替代地,与网络相关事件相关的信息可以触发异常状况,该异常状况提示系统采取纠正措施来补救异常状况。
如图所示,管理和分析服务588可以在诸如服务器206的服务器(未示出)上执行和/或位于服务器(未示出)上,并且可以包括输入接口610、分析引擎620、第一存储器630和第二存储器640。输入接口610可以是以上讨论的联网接口中的任一个。另外,输入接口610可以被配置成通过网络(未示出)与一个或多个输入源(诸如服务器206、虚拟化服务器301、管理服务器410或监视器605)建立通信。在这点上,该一个或多个输入源可以经由输入接口610向管理和分析服务588提供网络事件。服务器206、虚拟化服务器301、管理服务器410可包括可以被配置成向管理和分析服务588提供网络事件的软件、硬件、固件或其任何组合。替代地,监视器605可以安装在服务器206、虚拟化服务器301、管理服务器410上以将网络事件提供到管理和分析服务588。监视器605可以是软件、硬件、固件或其任何组合,其可以被配置成监视网络事件并将与其相关的信息提供到管理和分析服务588。虽然图6仅图示了一个监视器,但是可以在整个联网环境中部署任何数量的监视器。
一旦获得了与网络事件相关的信息,就可以将该信息传递给分析引擎620。分析引擎620可以是软件、硬件、固件或其任何组合,其可以被配置成解析从一个或多个输入源接收的网络事件。分析引擎620可以使网络事件显示给一个或多个用户。为了处理网络事件,分析引擎620可以包括流处理模块621、进程间消息队列625和批处理模块627。在数据分析用语中,流处理模块621可以被称为速度层,进程间消息队列625可以被称为查询层,并且批处理模块627可以被称为批处理层。在一些实施例中,分析引擎620可以是使用流处理模块621、进程间消息队列625和批处理模块627来实施单个处理流水线的单个代码基。诸如Λ架构的典型系统实施速度层、批处理层和查询层。速度层和批处理层是经由双流水线并行地对相同数据流进行操作的不同代码基。速度层可以实时处理数据,批处理层可以处理大量数据,并且查询层可以从批处理层和速度层输出数据。实际上,速度层和批处理层应该经由不同路径产生相同结果。虽然Λ架构对于提供分析可能是有用的,但是它为速度层和批处理层维护单独的代码基而具有的固有复杂性限制了它的影响力。
相反,本申请描述了将流处理模块621、进程间消息队列625和批处理模块627组合在根据单个代码基的单个处理流水线中,以提供优于现有技术系统(类似于Λ架构)的优点,现有技术系统跨多个流水线划分处理并且跨多个代码基扩展这些部件的功能。本文所述的单个处理流水线可以串行而非并行地处理数据。如上所述,典型的系统通过两个不同路径并行地执行速度层和批处理层。本文所揭示的单个处理流水线可以串行地执行速度层(即,流处理)和批处理层(即,批处理)。利用从单个代码基导出的单个处理流水线,降低了维护多个代码基的复杂性,并且呈现了比现有技术系统更节省成本的解决方案。此外,单个处理流水线确保流处理模块和批处理模块基于由流处理模块和批处理模块执行的分析来分析数据流以产生相同结果。此外,单个处理流水线和单个代码基提供了比实施多个代码基和多个处理流水线的现有技术系统更好的可缩放性。特别地,与实施多个代码基和多个处理流水线的现有技术系统相比,单个处理流水线和单个代码基允许降低处理资源和网络带宽资源的消耗。
单个处理流水线可以从流处理模块621开始。如以下关于图7更详细地讨论的,流处理模块621可以被配置成接收网络事件并解析其中包含的信息以生成中间结果。中间结果可以表示网络事件的实时或近实时的状态。如本文所用的,近实时可以是任何合适的短时间间隔,诸如一分钟、五分钟、十分钟等。因此,中间结果可以指示一段时间间隔上的网络事件。在一些实施例中,中间结果可以表示第一时间(即Tn-1)和第二时间(Tn)之间的网络事件的平均值。在生成中间结果之后,流处理模块621可以使中间结果经由实时视图623显示。另外,流处理模块621可以将中间结果存储在第一存储器630中。第一存储器630可以是分布式文件系统,其能够存储从流处理模块621接收的多个中间结果631并将该多个中间结果631传送到批处理模块627。使用分布式文件系统可以允许本文所述的分析能力更有效地缩放。替代地,第一存储器630可以是能够有效缩放的任何合适的基于网络的文件系统。在又一个实施例中,第一存储器630可以是任何合适的存储系统,诸如存储区域网络(SAN)。
单个处理流水线中的下一个是进程间消息传递队列625。进程间消息传递队列625可以在流处理模块621和批处理模块627之间传送指令和数据。例如,进程间消息传送队列625可以向批处理模块627提供通知,以定期生成历史视图数据集,诸如每小时、每周一次、每月一次、每年一次等。替代地,进程间消息传递队列625可以向批处理模块627提供用户已请求自定义历史视图的通知。例如,自定义历史视图可以是由用户定义的时间段。另外,进程间消息传递队列625可以提供生成历史视图数据集所需要的信息。在一些实施例中,进程间消息传递队列625可以将多个中间结果从流处理模块621传送到批处理模块627。在其他实施例中,进程间消息传递队列625可以使多个中间结果从第一存储器630传送到批处理模块627。在进一步的实施例中,进程间消息传送队列625可以将来自流处理模块621的第一多个中间结果和要从第一存储器630传送的第二多个中间结果传送到批处理模块627。
单个处理流水线可以在批处理模块627处结束。批处理模块627可以被配置成处理多个中间结果以生成批数据。批数据可以表示对应于预定义的时间间隔(诸如一小时、一周、一个月或一年)的历史视图数据集。替代地,历史视图数据集可以是由用户定义的自定义时间间隔。基于所请求的时间间隔,批处理模块627可以从第一存储器630获得多个中间结果。从第一存储器630获得的多个中间结果631可以与历史视图数据集的所请求的时间间隔相关联。批处理模块627可以从多个中间结果631生成批数据。一旦生成,批处理模块627可以使批数据和/或历史视图数据集经由历史视图629被显示。使历史视图数据集被显示可以包括从历史视图数据集生成视觉表示。另外,批处理模块627可以将历史视图数据集存储在第二存储器640中。在这点上,第二存储器640可以是能够存储多个历史视图数据集的数据库,诸如时间数据库。
转到图7A至图7C,示出了单个处理流水线如何操作的算法700。算法700开始于框702,其中第一服务器运行分析引擎620,接收数据流。数据流可以包括经由输入接口610从以上讨论的一个或多个输入源接收的一个或多个网络事件。在一些实施例中,数据流可以包括表示为串行化数据的一个或多个网络事件。在框704中,可以处理数据流以获得表示网络事件的第一中间结果。在一些实施例中,流处理模块621可以处理数据流以获得第一中间结果。获得第一中间结果可以包括解析数据流以获得多个中间结果631。解析数据流可包括根据模式将数据流去串行化。模式可以由输入源、分析引擎620或其任何组合来定义,并且可以定义数据流中存在的数据类型和协议。可以从解析数据流而获得的多个中间结果631中选择第一中间结果。在框706中,可以将第一中间结果存储在第一存储器630中。如上所述,第一存储器630可以是能够存储从流处理模块621接收的多个中间结果631的分布式文件系统。本文描述的分布式文件系统可以允许分析能力更有效地缩放。在框708中,第一服务器,并且特别是流处理模块,可以使第一中间结果被显示。例如,第一中间结果可以在实时视图中作为数据点显示。另外,第一中间结果可以显示在第一服务器上。替代地,第一中间结果可以通过网络传输并显示在另一个服务器或用户设备上。
在一些实施例中,第一中间结果可以被传输到网络监视系统,这可以与框706和708同时发生或在框706和708之前发生。网络监视系统可以被配置成检测异常状况。图7B图示了评估第一中间结果以检测异常状况的示例性算法。在框720中,可以在网络监视系统处从第一服务器接收第一中间结果。在框722中,可以将第一中间结果与第一阈值进行比较。例如,第一阈值可以是第一中间结果的预期范围。第一中间值可以与预期范围进行比较。例如,预期范围可以对应于可接受的往返时间的范围。在另一个实例中,第一阈值可以是限制,诸如用户会话的数量或登录持续时间。在这点上,当超过对用户会话的数量的限制时,由于网络状况恶化,可以对用户会话的数量设置限制。在另一个实例中,登录持续时间可以限于若干小时。替代地,登录持续时间可以限于若干小时的范围(即上午8:00到下午6:00)。在框724中,网络监视系统可以确定第一中间结果是否大于或等于第一阈值。当第一中间结果小于阈值时,第一中间结果可以是可接受的。继续上述实例,第一中间值可以在往返时间的预期范围内。类似地,用户会话的数量或登录持续时间可以低于可接受的限制。这些可以指示最佳网络状况。因此,在框726中,可以将网络状况和第一中间值提供到机器学习系统以构建网络的第一模型。在这点上,可以经由一个或多个网络发现工具来确定网络的一个或多个部件。在该一个或多个部件已知之后,可以处理网络状况和满足第一阈值的多个中间值以确定最佳网络配置。处理网络状况和多个中间值可以包括将网络状况和多个中间值作为训练数据提供到诸如神经网络的机器学习模型。训练数据可以用于基于网络状况和多个中间值来确定优化的网络配置。随后的网络状况和中间值可以与优化的网络配置进行比较,以检测一个或多个异常状况。替代地或附加地,可以根据图7A中阐述的步骤706、708和710来处理第一中间结果。当第一中间结果大于或等于阈值时,在框728中可以向管理员通知异常状况。通知可以包括经由电子邮件、文本或两者向管理员发送警报。另外,通知可以包括在管理员的控制台上设置标志。在框730中,网络监视系统可以调整一个或多个网络参数以纠正异常状况。例如,当用户会话的数量等于或大于第一阈值时,桌面虚拟化系统可以为客户端设备提供附加虚拟机来访问。响应于使附加虚拟机可以用于客户端设备,可以增加用户会话数量的第一阈值。当用户会话的数量随后下降时,可以降低第一阈值。在另一个实例中,当登录持续时间等于或大于第一阈值时,可以使附加虚拟机可用。替代地或附加地,当登录持续时间等于或大于第一阈值时,客户端设备可以切断它们的连接。
返回图7A,在框710中,第一服务器可以从第一存储器获得多个中间结果。如以上讨论的,批处理模块627可以以时间间隔(例如,预定或动态时间间隔)从第一存储器获得多个中间结果。替代地,批处理模块627可以响应于来自进程间消息传递队列625的提示而从第一存储器获得多个中间结果。在框712中,执行批处理模块627的第一服务器可以处理多个中间结果以产生历史视图数据集。如以下将更详细地讨论的,批处理模块627可以从先前历史视图数据集生成历史视图数据集。附加地或替代地,批处理模块627可以使用多个中间结果和先前历史视图数据集的组合来生成历史视图数据集。例如,用户可以请求过去一个月的历史视图。批处理模块627可能已经准备了第一周的第一历史视图、第二周的第二历史视图和第三周的第三历史视图,但是第四周还没有被批处理模块627处理。第四周可以构成第一存储器630中的多个中间结果。替代地,第四周可以在第二存储器640中构成六个每日历史视图,并且在第一存储器630中构成多个中间结果的日价值。不管数据定位在何处,批处理模块627可以使用多个中间结果和先前历史视图数据集的组合来基于最近数据集生成最新历史视图数据集。
在框714中,第一服务器可以将历史视图数据集存储在诸如时间数据库的第二存储器中。在框716中,第一服务器可以生成历史视图数据集的视觉表示。根据一些实施例,生成视觉表示可以包括使用数据库来处理历史视图数据集以生成视觉表示。在框718中,第一服务器可以使得呈现历史视图数据集的视觉表示。类似于以上讨论的第一中间结果,历史视图数据集的视觉表示可以显示在第一服务器上,或者通过网络传输并显示在另一个服务器或用户设备上。
另外,历史视图数据集还可以被传输到网络监视系统以确定异常网络事件。图7C图示了用于评估历史视图数据集是否指示一个或多个异常网络状况的算法。在一些实施例中,图7C图示的算法可以与框714、716和718同时发生。
转到图7C,在框732中,网络监视系统可以接收历史视图数据集。在框734中,可以将历史视图数据集与第二阈值进行比较。类似于上述第一阈值,第二阈值可以是历史视图数据集所比较的历史范围。例如,历史范围可以是往返时间、用户会话的数量,或在先前间隔(即,1周、1个月、1年)期间的登录持续时间。替代地或附加地,历史范围可以是在先前间隔上的图表。在这点上,可以将历史视图数据集与历史范围进行比较。在一些实施例中,比较可以检测趋势数据。例如,如果用户会话的数量在先前间隔上已经趋向增加,则系统可以通知管理员和/或提供附加虚拟机来处理增加数量的用户会话。如果登录的持续时间呈向上趋势,则系统可以采取类似的动作。在框736中,网络监视系统可以确定历史视图数据集是否大于或等于第二阈值。在这点上,第二阈值可以指示其中可以分配附加资源以容纳附加用户的点。这可能是由于一个或多个网络事件中的尖峰。替代地或附加地,越过第二阈值可以是向上趋势的历史范围的顶点。当历史视图数据集小于阈值时,在框738中,可以将历史视图数据集提供到机器学习系统作为网络的第一模型的输入。类似于多个中间结果,可以提供历史视图数据集作为第一模型的输入以确定最佳网络配置。在该语境中,历史视图数据集可以提供最佳网络状况的更准确的图片。历史视图数据集向机器学习模型提供更大的数据集。如以上讨论的,历史视图数据集可以最初作为训练数据来提供,以确定优化的网络配置。当训练期结束时,可以将随后的历史数据集与优化的网络配置进行比较,以检测一个或多个异常状况。附加地或替代地,可以通过检测和预测网络配置中的变化来使用随后的历史数据集来更新优化的网络配置。替代地或附加地,可以根据以上阐述的步骤714、716和718来处理历史视图数据集。当历史视图数据集大于或等于阈值时,可以在框740中向管理员通知异常状况。通知可以包括向管理员提供警报或在管理员的控制台上设置标志。在框742中,网络监视系统可以调整一个或多个网络参数以纠正异常状况。例如,桌面虚拟化系统可以基于用户会话的数量超过第二阈值的指示为客户端设备分配更多的虚拟机来访问。类似于以上讨论,可以基于附加虚拟机的分配来增加用户会话数量的第二阈值。在另一个实例中,当登录持续时间等于或大于第一阈值时,可以使附加虚拟机可用。
有时,用户可能希望查看分析引擎620不支持的历史视图。也就是说,用户可能请求批处理模块没有准备的时间间隔的历史视图。当接收到类似这些的请求时,流处理模块621和批处理模块627可以协调以生成所请求的时间间隔的历史视图。图8图示了用于生成基于来自用户的请求的历史视图的算法800。
算法800开始于框810,其中第一服务器接收对第二历史视图的请求。在一些实施例中,请求可以由流处理模块接收。第二历史视图可以用于用户定义的间隔,诸如前两周或前21天。替代地,用户定义的间隔可以指定日期范围。在框820中,第一服务器可以确定所请求的第二历史视图包括多个历史视图数据集。例如,如果请求前21天,则第一服务器可以确定需要对应于第一周的第三历史视图数据集、与第二周相关联的第四历史视图数据集以及中间结果的过去几周的价值来生成第二历史视图。第一服务器可以访问第二存储器640,第二存储器640可以是基于历史视图数据集所对应的时间阶段来存储多个历史视图数据集的时间数据库。例如,第二存储器640可以将第一周与1月6至12日(2019年的第一整周)相关联,并且可以将第二周与1月13至19日(2019年的第二整周)相关联。当对1月25日的前21天做出请求时,第一服务器可以确定需要在1月6日至1月19日之间的时间阶段的历史视图数据集。因此,第一服务器可以从第二存储器640请求第一周(即,1月6至12日)和第二周(即,1月13至19日)。最近一周可以从第一存储器630获得。替代地,可以从存储在第二存储器640中的每日历史视图和来自第一存储器630的最近一天的中间结果来编译最近一周。然后可以在块830中将至少第三历史视图数据集和第四历史视图数据集从第二存储器传送到第一存储器。
在框840中,可以处理该至少第三历史视图数据集和第四历史视图数据集以产生第二历史数据集。在这点上,批处理模块627可以从第一存储器检索至少第三历史视图数据集和第四历史视图数据集,并且批处理模块627可以处理数据以产生第二历史视图数据集,很像批处理模块627从多个中间结果生成历史视图数据集。在框850中,第一服务器可以从第二历史视图数据集生成第二历史视图。如以上讨论的,这可以包括使用数据库生成第二历史视图以生成视觉表示。在框860中,第一服务器可以使第二历史视图被显示。类似于以上讨论的显示,第二历史视图数据集可以显示在第一服务器上,或者通过网络传输并显示在另一个服务器或用户设备上的界面上。如上所述,历史视图数据集可以用于确定正被监视的数据中的趋势并基于所确定的趋势分配资源。例如,当用户会话的数量和/或登录的持续时间呈上升趋势时,系统可以分配附加虚拟机。类似地,当历史视图数据集趋呈下降趋势时,可以停止使用附加资源或者将附加资源重新分配用于其他目的。
虽然过程800已经被描述为提供除了由分析引擎支持的那些间隔(即,12小时、1天、1周、1个月、1年)之外的用户定义的间隔,但是过程800也可以用于生成由分析引擎支持的间隔。在这点上,批处理模块627可以从第二存储器获得第一12小时历史视图数据集和第二12小时历史视图数据集,将第一12小时历史视图数据集和第二12小时历史视图数据集传送到第一存储器,并且从第一12小时历史视图数据集和第二12小时历史视图数据集生成一天历史视图数据集。类似地,该过程可以获得历史视图数据集的七天价值并且生成一周历史视图数据集。必要时可以重复该过程以生成历史视图数据集。
转到图9A和图9B,示出了根据本文所述的一个或多个方面的由分析引擎620生成的实时视图的实例。转到图9A,示出了实时视图910。实时视图910图示了用户会话的两小时窗口。特别地,实时视图910示出了上午7:00和上午9:00之间的时间段,其中x轴表示经过的时间,并且y轴表示用户会话的数量。实时视图910还示出了可以以三分钟间隔来计算中间结果。在这点上,实时图示的多个中间结果中的每一个可以是以三分钟间隔绘制的图表上的数据点。因此,系统可以从多个绘制的数据点呈现实时视图910。
回到图9A,实时视图910示出了在上午7:00和上午7:30之间没有用户会话。从上午7:30到上午8:00,有一个用户会话,并且用户会话的数量继续增加直到上午9:00。实时视图910还可以向用户呈现改变时间段的选项。特别地,用户可以选择先前12小时、过去一天、过去一周、过去一个月和过去一年。替代地,可以在实时视图910中向用户呈现时间段。根据一些实施例,实时视图910可以包括用于用户指定自定义时间段的界面。在确定网络状况何时开始恶化时使用自定义时间段是有用的。另外,自定义时间段可以提供对导致网络状况恶化的原因的深入了解。虽然实时视图910图示了表示用户会话数量的柱状图,但是可以呈现诸如曲线图的任何类型的视觉表示来图示用户会话的数量。
转到图9B,示出了图示往返时间的实时视图920。类似于实时视图910,实时视图920示出了上午7:00和上午9:00之间的两小时窗口,其中x轴表示经过的时间,并且y轴表示往返时间的数量和质量。往返时间可以用作网络拥塞的指示符。因此,实时视图920图示了堆叠柱状图中的往返时间的数量和质量。例如,在上午8:00有五个极好的往返时间和两个一般的往返时间。在上午9:00,除了五个极好的往返时间之外,五个一般的往返时间也指示系统性能似乎退化。在该实例中,网络管理员可以调查五个一般的往返时间的原因。附加地或替代地,可以调整一个或多个网络参数以试图补救五个一般的往返时间。
除了提供实时视图之外,分析引擎620还可以提供历史视图。图9A至图9C示出了根据本文描述的一个或多个方面生成的历史视图的实例。转到图10A,示出了历史视图1010并且图示了过去一个月的用户会话。历史视图1010还示出了图示用户的总数的第一曲线1012和图示单独用户的总数的第二曲线1014。第一曲线1012可以包括多个数据点;每一个可以对应于网络事件,诸如特定日子的总用户会话的数量。类似地,第二曲线1014也可以包括多个数据点以图示网络事件,诸如在给定日子的单独用户的总数。历史视图1010还可以包括屏幕顶部的信息,包括用户会话的总数(即21),单独用户的总数(即10)以及会话失败的数量(即36)。历史视图1010可以描绘正常使用,诸如周一到周五的类似数量的用户和周末时使用的预期下降。这在检测异常网络状况时可能是有用的。例如,当预期为高时,诸如在工作周期间,用户会话数量较低可以指示需要补救的网络问题。因此,系统可以采取步骤来解决网络问题并返回到用户会话的预期数量。
图10B图示了替代的历史视图。特别地,历史视图920图示了先前一个月的先前往返时间。如以上关于图9B所讨论的,往返时间可以指示网络拥塞或其他问题。因此,历史视图1020在检测往返时间退化的周期时可能是有用的。这可以向系统和/或管理员提供深入了解以确定什么可能导致往返延迟以不可接受的水平执行。
最后,图10C示出了登录持续时间的历史视图1030。历史视图1030提供登录持续时间的历史数据集的替代视图。在这点上,历史视图1030包括指示两个站点的登录的数量和质量的表格1035。如图示的那样,第一站点(www.test.com)共有8个登录,6个极好,1个一般,以及1个较差;第二站点(www.test1.com)共有6个登录,全部都极好。可以在历史视图1030的顶部附近文本地显示登录的总数。在这点上,信息指示共14个登录,其中12个极好,1个一般,以及1个较差。
本文描述的管理和分析服务可以提供根据单个代码基的单个处理流水线,以生成网络事件的实时和历史视图。如以上讨论的,单个处理流水线和单个代码基提供了比实施多个代码基和多个处理流水线的现有技术系统更好的可缩放性。特别地,与实施多个代码基和多个处理流水线的现有技术系统相比,单个处理流水线和单个代码基降低了处理资源和网络带宽资源的消耗。因此,单个处理流水线和单个代码基最小化了维护多个代码基的复杂性,并且呈现了更节省成本的解决方案。
虽然已经以特定于结构特征和/或方法动作的语言描述了主题,但是应当理解,权利要求书定义的主题不必局限于以上描述的具体特征或动作。相反,以上描述的具体特征和动作是作为以下权利要求的示例实施方案来描述的。

Claims (20)

1.一种方法,包括:
由计算设备接收指示网络的多个事件的数据流;
由所述计算设备处理所述数据流以生成中间数据和批数据,其中,所述中间数据能够用于生成历史视图,并且所述批数据包括一段时间间隔的多个中间数据;
由所述计算设备基于至少中间数据的子集和所述批数据来生成所述网络的所述事件的历史视图;以及
由所述计算设备将所述历史视图提供到另一个处理层,以使得所述计算设备能够响应对关于所述网络的信息的请求。
2.根据权利要求1所述的方法,包括:
由所述计算设备将所述中间数据存储在包括多个中间数据的第一存储器中。
3.根据权利要求1所述的方法,包括:
由所述计算设备基于所述中间数据使在所述网络上发生的事件的实时视图被呈现,其中,所述事件的实时视图包括对应于所述中间数据的数据点。
4.根据权利要求1所述的方法,包括:
由所述计算设备将所述历史视图存储在时间数据库中。
5.根据权利要求1所述的方法,其中,使用单个处理流水线来生成所述中间数据和批数据。
6.根据权利要求5所述的方法,其中
所述单个处理流水线由单个代码基执行。
7.根据权利要求1所述的方法,包括:
由所述计算设备接收对预定持续时间的第二历史视图的请求;
确定所述第二历史视图包括多个批数据;
从第一存储器获得第二批数据和第三批数据;
处理所述第二批数据和所述第三批数据以产生所述第二历史视图;以及
显示所述预定持续时间的所述第二历史视图。
8.根据权利要求1所述的方法,包括:
当所述中间数据指示异常状况时为管理员生成警报。
9.根据权利要求1所述的方法,包括:
将所述中间数据提供到机器学习系统以构建所述网络的模型。
10.根据权利要求1所述的方法,包括:
响应于所述中间数据,调整一个或多个网络参数以容纳附加用户设备。
11.根据权利要求1所述的方法,包括:
响应于所述批数据,调整一个或多个网络参数以容纳附加用户设备。
12.一种计算设备,包括:
至少一个处理器;以及
存储指令的存储器,所述指令在由所述至少一个处理器执行时,使所述计算设备:
接收指示在网络上发生的多个事件的数据流;
处理所述数据流以生成中间数据和批数据,其中,所述中间数据能够用于生成历史视图,并且所述批数据包括一段时间间隔的多个中间数据;
基于至少中间数据的子集和所述批数据生成所述网络的所述事件的历史视图;以及
将所述历史视图提供到另一个处理层,以使得所述计算设备能够响应对关于所述网络的信息的请求。
13.根据权利要求12所述的计算设备,其中,所述存储器存储附加计算机可读指令,所述指令在由所述至少一个处理器执行时,使所述计算设备:
将所述中间数据存储在包括多个中间数据的第一存储器中。
14.根据权利要求13所述的计算设备,其中,使用从单个代码基执行的单个处理流水线来生成所述中间数据和所述批数据。
15.根据权利要求12所述的计算设备,其中,所述存储器存储附加计算机可读指令,所述指令在由所述至少一个处理器执行时,使所述计算设备:
基于所述中间数据使在所述网络上发生的事件的实时视图被呈现,其中,所述事件的实时视图包括对应于所述中间数据的数据点。
16.根据权利要求12所述的计算设备,其中,所述存储器存储附加计算机可读指令,所述指令在由所述至少一个处理器执行时,使所述计算设备:
当所述中间数据指示异常状况时为管理员生成警报。
17.根据权利要求12所述的计算设备,其中,所述存储器存储附加计算机可读指令,所述指令在由所述至少一个处理器执行时,使所述计算设备:
将所述中间数据提供到机器学习系统以构建所述网络的模型。
18.一种或多种存储指令的非暂时性计算机可读介质,所述指令在由包括至少一个处理器、存储器和通信接口的计算机平台执行时使所述计算平台:
接收指示在网络上发生的多个事件的数据流;
使用由单个代码基执行的单个处理流水线来处理所述数据流以生成中间数据和批数据,其中,所述中间数据能够用于生成历史视图,并且所述批数据包括一段时间间隔的多个中间数据;
基于至少中间数据的子集和所述批数据生成所述网络的所述事件的历史视图;以及
将所述历史视图提供到另一个处理层,以使得计算设备能够响应对关于所述网络的信息的请求。
19.根据权利要求18所述的一种或多种非暂时性计算机可读介质,其中,所述指令使所述计算设备:
当所述中间数据指示异常状况时为管理员生成警报。
20.根据权利要求18所述的一种或多种非暂时性计算机可读介质,其中,所述指令使所述计算设备:
响应于所述中间数据,调整一个或多个网络参数。
CN202080042513.2A 2019-07-18 2020-07-14 用于处理网络数据的系统和方法 Pending CN114097205A (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US16/515,344 2019-07-18
US16/515,344 US11245600B2 (en) 2019-07-18 2019-07-18 System and method for processing network data
PCT/US2020/041944 WO2021011543A1 (en) 2019-07-18 2020-07-14 System and method for processing network data

Publications (1)

Publication Number Publication Date
CN114097205A true CN114097205A (zh) 2022-02-25

Family

ID=71944367

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202080042513.2A Pending CN114097205A (zh) 2019-07-18 2020-07-14 用于处理网络数据的系统和方法

Country Status (6)

Country Link
US (2) US11245600B2 (zh)
EP (1) EP3999965A1 (zh)
CN (1) CN114097205A (zh)
AU (1) AU2020313921A1 (zh)
CA (1) CA3140915A1 (zh)
WO (1) WO2021011543A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10824487B2 (en) 2018-07-17 2020-11-03 Xandr Inc. Real-time data processing pipeline and pacing control systems and methods
US11245600B2 (en) * 2019-07-18 2022-02-08 Citrix Systems, Inc. System and method for processing network data
US11558255B2 (en) 2020-01-15 2023-01-17 Vmware, Inc. Logical network health check in software-defined networking (SDN) environments
US11909653B2 (en) * 2020-01-15 2024-02-20 Vmware, Inc. Self-learning packet flow monitoring in software-defined networking environments
US11822423B2 (en) * 2020-02-14 2023-11-21 Dynatrace Llc Structured software delivery and operation automation
US20210373914A1 (en) * 2020-05-29 2021-12-02 Intuit Inc. Batch to stream processing in a feature management platform
US20220190990A1 (en) * 2020-12-16 2022-06-16 Qualcomm Incorporated Network-configured training procedure
US12056232B2 (en) * 2021-08-27 2024-08-06 EMC IP Holding Company LLC Function-based service framework with trusted execution platform
US12132749B2 (en) * 2022-06-08 2024-10-29 Microsoft Technology Licensing, Llc Security incident detection based on historian configuration data collected over time

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751914A (en) * 1995-10-10 1998-05-12 International Business Machines Corporation Method and system for correlating a plurality of events within a data processing system
US20130080641A1 (en) * 2011-09-26 2013-03-28 Knoa Software, Inc. Method, system and program product for allocation and/or prioritization of electronic resources
US20170195439A1 (en) * 2016-01-04 2017-07-06 RiskIQ, Inc. Techniques for infrastructure analysis of internet-based activity
CN107005544A (zh) * 2014-09-05 2017-08-01 卡特伯德网络股份有限公司 用于网络分析和报告的系统和方法

Family Cites Families (25)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7962607B1 (en) * 2006-09-08 2011-06-14 Network General Technology Generating an operational definition of baseline for monitoring network traffic data
TWI423129B (zh) * 2011-01-31 2014-01-11 Acer Inc 管線式網路裝置及相關資料傳送方法
US9146763B1 (en) * 2012-03-28 2015-09-29 Google Inc. Measuring virtual machine metrics
US9087138B2 (en) * 2013-01-15 2015-07-21 Xiaofan Zhou Method for representing and storing hierarchical data in a columnar format
US10511498B1 (en) * 2015-02-25 2019-12-17 Infoblox Inc. Monitoring and analysis of interactions between network endpoints
US10572296B2 (en) * 2015-02-27 2020-02-25 Savi Technology, Inc. System and method for a data processing architecture
US9734206B2 (en) * 2015-04-14 2017-08-15 International Business Machines Corporation Intermediate window results in a streaming environment
US10417577B2 (en) * 2015-06-05 2019-09-17 Facebook, Inc. Machine learning system interface
US9699205B2 (en) * 2015-08-31 2017-07-04 Splunk Inc. Network security system
US11276006B2 (en) * 2015-10-02 2022-03-15 Outlier AI, Inc. System, apparatus, and method to identify intelligence using a data processing platform
US10681074B2 (en) * 2015-10-28 2020-06-09 Qomplx, Inc. System and method for comprehensive data loss prevention and compliance management
US10579929B2 (en) * 2016-05-26 2020-03-03 Ogma Intelligent Systems Corp. Processing time-varying data streams using sparse predictive hierarchies
US10990568B2 (en) * 2017-07-17 2021-04-27 Microsoft Technology Licensing, Llc Machine learning for automated model generation with constraints
US10467039B2 (en) * 2017-08-07 2019-11-05 Open Data Group Inc. Deployment and management platform for model execution engine containers
US10540203B2 (en) * 2017-08-29 2020-01-21 Micro Focus Llc Combining pipelines for a streaming data system
US11049041B2 (en) * 2018-04-26 2021-06-29 Adobe Inc. Online training and update of factorization machines using alternating least squares optimization
US10866844B2 (en) * 2018-05-04 2020-12-15 Microsoft Technology Licensing, Llc Event domains
US10887415B1 (en) * 2018-05-09 2021-01-05 Architecture Technology Corporation Common agnostic data exchange systems and methods
US10735481B2 (en) * 2018-06-11 2020-08-04 International Business Machines Corporation Multiple web conference screen display sharing
US11500685B2 (en) * 2018-07-24 2022-11-15 Citrix Systems, Inc. Mixed instance catalogs
US11288319B1 (en) * 2018-09-28 2022-03-29 Splunk Inc. Generating trending natural language request recommendations
US10776164B2 (en) * 2018-11-30 2020-09-15 EMC IP Holding Company LLC Dynamic composition of data pipeline in accelerator-as-a-service computing environment
US11089034B2 (en) * 2018-12-10 2021-08-10 Bitdefender IPR Management Ltd. Systems and methods for behavioral threat detection
US11159386B2 (en) * 2019-03-14 2021-10-26 Cisco Technology, Inc. Enriched flow data for network analytics
US11245600B2 (en) * 2019-07-18 2022-02-08 Citrix Systems, Inc. System and method for processing network data

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5751914A (en) * 1995-10-10 1998-05-12 International Business Machines Corporation Method and system for correlating a plurality of events within a data processing system
US20130080641A1 (en) * 2011-09-26 2013-03-28 Knoa Software, Inc. Method, system and program product for allocation and/or prioritization of electronic resources
CN107005544A (zh) * 2014-09-05 2017-08-01 卡特伯德网络股份有限公司 用于网络分析和报告的系统和方法
US20170195439A1 (en) * 2016-01-04 2017-07-06 RiskIQ, Inc. Techniques for infrastructure analysis of internet-based activity

Also Published As

Publication number Publication date
US11558268B2 (en) 2023-01-17
US11245600B2 (en) 2022-02-08
WO2021011543A1 (en) 2021-01-21
CA3140915A1 (en) 2021-01-21
EP3999965A1 (en) 2022-05-25
US20210021491A1 (en) 2021-01-21
US20220124012A1 (en) 2022-04-21
AU2020313921A1 (en) 2021-12-16

Similar Documents

Publication Publication Date Title
US11558268B2 (en) System and method for processing network data
US11438421B2 (en) Accessing resources in a remote access or cloud-based network environment
US11099826B2 (en) Canary deployment using an application delivery controller
US11062041B2 (en) Scrubbing log files using scrubbing engines
US11675914B2 (en) Secure information storage
US11374828B2 (en) Systems and methods for using an error budget for monitoring performance of a service level of a service
US11356531B2 (en) Data caching for cloud services
US11748082B2 (en) Systems and methods for expedited access to applications
US20210119871A1 (en) Proxy configuration for multiple networks
US11470169B2 (en) Wrapping continuation tokens to support paging for multiple servers across different geolocations
WO2021083684A1 (en) Secure workload configuration

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
WD01 Invention patent application deemed withdrawn after publication

Application publication date: 20220225

WD01 Invention patent application deemed withdrawn after publication