用于基于每个用户控制通知的输送的系统和方法与流程

文档序号:29033287发布日期:2022-02-24 15:24阅读:69来源:国知局
用于基于每个用户控制通知的输送的系统和方法与流程
用于基于每个用户控制通知的输送的系统和方法
1.相关申请的交叉引用
2.本技术要求于2019年6月13日提交的名称为“systems and methods for controlling delivery of notifications on a per user basis”的美国专利申请no.16/440,523的优先权和利益,其全部内容出于所有目的通过引用全部合并于此。


背景技术:

3.操作系统可以向在计算装置上执行的各种应用提供关于适应或集成应用的不同功能的能力的控制。例如,操作系统可以包括限制或拒绝某些功能或限制一个或多个应用与在计算装置上执行的其他应用交互的能力的策略。因此,除非用户主动与相应的应用交互,否则计算装置上的各种应用和系统之间的完全集成会受到约束或限制。


技术实现要素:

4.本文提供了用于基于每个用户控制通知的输送的系统和方法。在实施例中,可以向虚拟会话或为用户提供会话的虚拟机提供代理。虚拟机可以运行一个或多个用户可访问的一个或多个虚拟应用。代理可以钩住虚拟应用和虚拟机的操作系统来拦截由虚拟应用和/或虚拟机的操作系统生成的通知。通知可以旨在用于虚拟机的一个或多个用户。代理可以基于每个用户对通知进行分类,并将通知传送给通知服务。
5.通知服务可以从各种不同的源接收通知。例如,通知服务可以从执行一个或多个虚拟机的代理、虚拟化应用、基于云的应用、web应用、软件即服务(saas)应用或文件系统接收通知。来自不同源的通知可以由通知服务聚合并基于每个用户分类为通知的子集。每个通知的子集可以对应于旨在用于特定用户的通知。通知服务可以从通知的子集中选择一个或多个通知以推送或以其他方式提供给用户的至少一个装置。例如,用户的装置可以接收针对本机应用或相应装置的本机操作系统的通知。用户的装置可以接收针对用户的虚拟应用的通知。在实施例中,对于虚拟应用通知,用户可以在相应装置上启动虚拟会话以连接到虚拟应用并采取动作或响应于为虚拟应用生成的警报。
6.在至少一个方面,本公开涉及一种用于基于用户控制通知的输送的方法。该方法可包括由虚拟机执行的代理建立一个或多个钩子以拦截来自虚拟机的操作系统和由能够由多个用户访问的虚拟机执行的一个或多个虚拟化应用的通知。该方法可以包括由代理经由一个或多个钩子拦截由一个或多个虚拟化应用或操作系统生成的针对多个用户的多个通知。该方法可以包括由代理基于每个用户对多个通知进行分类。该方法可以包括由代理将每个用户的通知传送到通知服务,以与来自由多个用户中的每个用户使用的多个应用的通知进行分类。
7.在实施例中,通知服务可以将来自虚拟机的每个用户的通知与来自基于云的应用或文件系统的用户的通知进行分类。通知服务可以将在多个应用之间分类的通知传送到用户的一个或多个装置。该方法可以包括由通知服务识别从所述一个或多个虚拟化应用或所述操作系统接收到的针对用户的重复的通知。该方法可以包括由所述通知服务从针对所述
多个用户中的每个用户的所述多个通知中移除所述重复的通知。
8.该方法可以包括由通知服务生成通知的多个子集,所述通知的每一个子集都旨在用于所述多个用户中的不同用户。该方法可以包括由所述通知服务经由所述代理识别由所述一个或多个虚拟化应用或所述虚拟机的操作系统请求的动作,所述动作对应于所述通知的子集中的至少一个通知。该方法可以包括由所述通知服务识别与虚拟机相关联的多个用户中的至少一个用户,以及由所述通知服务向与用户相关联的装置提供动作。
9.在至少一个方面,本公开涉及一种用于控制通知的输送的方法。该方法可以包括由通知服务从在虚拟机中执行的代理接收来自由虚拟机执行的虚拟化应用的针对用户的多个通知。该方法可以包括由通知服务接收来自用户的其他应用的通知。该方法可以包括由通知服务聚合来自所述多个虚拟化应用和多个其他应用的针对所述用户的通知。该方法可以包括由通知服务从用户的聚合的通知中选择一个或多个通知,该一个或多个通知中的至少一个包括来自虚拟化应用的针对用户的通知。该方法可以包括由通知服务将所选择的一个或多个通知传送到用户的装置的通知系统。
10.在实施例中,响应于一个或多个通知,用户可以在用户的装置上建立用户的虚拟会话以连接到虚拟化应用。在一些实施例中,来自其他应用的通知包括web应用通知、软件即服务(saas)应用通知或文件通知中的至少一个。该方法可以包括由所述通知服务为所述用户的装置生成警报以指示由所述一个或多个虚拟化应用或所述虚拟机的操作系统请求的动作。该方法可以包括由所述通知服务向所述用户的一个或多个装置提供多个警报,所述多个警报对应于所选择的一个或多个通知。
11.在至少一个方面,本公开涉及一种用于基于用户控制通知的输送的系统。该系统可以包括由虚拟机执行的代理。代理可以包括耦合到存储器的一个或多个处理器。代理可以被配置为建立一个或多个钩子以拦截来自虚拟机的操作系统和由能够由多个用户访问的虚拟机执行的一个或多个虚拟化应用的通知。代理可以被配置为经由一个或多个钩子拦截由一个或多个虚拟化应用或操作系统生成的针对多个用户的多个通知。代理可以被配置为基于每个用户对多个通知进行分类。代理可以被配置为将每个用户的通知传送到通知服务,以与来自由多个用户中的每个用户使用的多个应用的通知进行分类。
12.在实施例中,通知服务可以被配置为将来自虚拟机的每个用户的通知与来自基于云的应用或文件系统的用户的通知进行分类。通知服务可以被配置为将在所述多个应用之间分类的通知传送到所述用户的一个或多个装置。通知服务可以被配置为识别从所述一个或多个虚拟化应用或所述操作系统接收到的针对用户的重复的通知。通知服务可以被配置为从针对所述多个用户中的每个用户的所述多个通知中移除所述重复的通知。通知服务可以被配置为基于每个用户生成通知的多个子集。所述通知的子集中的每一个可以旨在用于所述多个用户中的不同用户。通知服务还可被配置为经由所述代理识别由所述一个或多个虚拟化应用或所述虚拟机的操作系统请求的动作,所述动作对应于所述通知的子集中的至少一个通知。
附图说明
13.本文公开的实施例的目的、方面、特征和优点将从以下详细描述、所附权利要求和附图中变得更加清楚,其中相似的附图标记标识相似或相同的元件。在说明书中与附图相
关联地引入的附图标记可以在一个或多个后续附图中重复,而无需在说明书中进行额外的描述,以便为其他特征提供上下文,并且并非每个元件都可以在每个附图中被标记。附图不一定按比例绘制,而是重点放在说明实施例、原理和概念上。附图并非旨在限制本文所包括的权利要求的范围。
14.图1a是计算装置的实施例的框图;
15.图1b是描绘包括与云服务提供者通信的客户机装置的计算环境的框图;
16.图2是用于基于每个用户控制通知的输送的系统的框图;以及
17.图3a-3b是用于基于每个用户控制通知的输送的方法的流程图。
具体实施方式
18.为了阅读下面各个实施例的描述,本说明书的各部分的以下描述及其各自的内容可能是有帮助的:
19.a部分描述了一种计算环境,其对于实践本文描述的实施例可能是有用的;以及
20.b部分描述了用于基于每个用户控制通知的输送的系统和方法的实施例。
21.a.计算环境
22.在讨论b部分中在本文详细描述的系统和方法的实施例的细节之前,讨论可以部署这种实施例的计算环境可能是有帮助的。
23.如图1a所示,计算机101可以包括一个或多个处理器103、易失性存储器122(例如,随机存取存储器(ram))、非易失性存储器128(例如,一个或多个硬盘驱动器(hdd)或其他磁性或光学存储介质、一个或多个固态驱动器(ssd)(例如闪存驱动器或其他固态存储介质)、一个或多个混合磁性和固态驱动器、和/或一个或多个虚拟存储卷(例如云存储)、或这种物理存储卷和虚拟存储卷或其阵列的组合)、用户接口(ui)123、一个或多个通信接口118和通信总线150。用户接口123可包括图形用户接口(gui)124(例如,触摸屏、显示器等)和一个或多个输入/输出(i/o)装置126(例如,鼠标、键盘、麦克风、一个或多个扬声器、一个或多个照相机、一个或多个生物特征扫描仪、一个或多个环境传感器、一个或多个加速度计等)。非易失性存储器128存储操作系统115、一个或多个应用116和数据117,从而例如由处理器103执行来自易失性存储器122的操作系统115和/或应用116的计算机指令。在一些实施例中,易失性存储器122可以包括一种或多种类型的ram和/或高速缓冲存储器,其可以提供比主存储器更快的响应时间。可以使用gui 124的输入装置输入数据,或从i/o装置126接收数据。计算机101的各种元件可以经由一个或多个通信总线(示出为通信总线150)进行通信。
24.如图1a所示的计算机101仅作为示例示出为客户机、服务器、中间装置和其他网络装置,并且可以由任何计算或处理环境以及利用可以具有能够如本文所述操作的适当硬件和/或软件的任何类型的机器或机器集合来实现。处理器103可以由一个或多个可编程处理器实现以执行一个或多个可执行指令(例如计算机程序),以执行系统的功能。如本文所使用的,术语“处理器”描述了执行功能、操作或操作序列的电路。功能、操作或操作序列可以被硬编码到电路中,或者可以通过保存在存储器装置中并由电路执行的指令被软编码。“处理器”可以使用数字值和/或使用模拟信号来执行功能、操作或操作序列。在一些实施例中,“处理器”可以实现在一个或多个专用集成电路(asic)、微处理器、数字信号处理器(dsp)、图形处理单元(gpu)、微控制器、现场可编程门阵列(fpga)、可编程逻辑阵列(pla)、多核处
理器或具有关联存储器的通用计算机中。“处理器”可以是模拟、数字或混合信号。在一些实施例中,“处理器”可以是一个或多个物理处理器或一个或多个“虚拟”(例如,位于远程的或“云”)处理器。包括多个处理器核的处理器和/或多个处理器可以提供用于并行、同时执行指令或在多于一段数据上并行、同时执行一个指令的功能。
25.通信接口118可以包括一个或多个接口,以使计算机101能够通过各种有线和/或无线或蜂窝连接来访问诸如局域网(lan)、广域网(wan)、个人局域网(pan)或互联网之类的计算机网络。
26.在所描述的实施例中,计算装置101可以代表客户机计算装置的用户执行应用。例如,计算装置101可以执行虚拟机,其提供执行会话,在该执行会话内,应用代表用户或客户机计算装置执行,例如托管的桌面会话。计算装置101还可以执行终端服务会话以提供托管的桌面环境。计算装置101可以提供对计算环境的访问,计算环境包括以下中的一个或多个:一个或多个应用、一个或多个桌面应用、以及可以在其中执行一个或多个应用的一个或多个桌面会话。
27.参考图1b,描绘了计算环境160。计算环境160通常可以被认为是作为云计算环境、本地部署(“on-prem”)的计算环境或包括一个或多个本地部署的计算环境和一个或多个云计算环境的混合计算环境来实现的。当实现为云计算环境(也称为云环境、云计算或云网络)时,计算环境160可以向多个用户提供共享服务(例如,计算机服务)和共享资源(例如,计算机资源)的输送。例如,计算环境160可以包括用于通过互联网向多个用户提供或输送对多个共享服务和资源的访问的环境或系统。共享资源和服务可以包括但不限于网络、网络带宽、服务器、处理、存储器、存储、应用、虚拟机、数据库、软件、硬件、分析和智能。
28.在实施例中,计算环境160可以向客户机162提供由网络环境提供的一个或多个资源。计算环境162可以包括通过一个或多个网络164与云168通信的一个或多个客户机162a-162n。客户机162可以包括例如胖客户机、瘦客户机和零客户机。云108可以包括后端平台,例如服务器106、存储、服务器群或数据中心。客户机162可以与图1的计算机101相同或基本相似。
29.用户或客户机162可以对应于单个组织或多个组织。例如,计算环境160可以包括服务于单个组织的私有云(例如,企业云)。计算环境160可以包括服务于多个组织的社区云或公共云。在实施例中,计算环境160可以包括混合云,混合云是公共云和私有云的组合。例如,云108可以是公共的、私有的或混合的。公共云108可以包括由第三方为客户机162或客户机162的所有者维护的公共服务器。服务器可以异地和位于远程地理位置,如上文或以其他方式所公开的。公共云168可以通过公共网络164连接到服务器。私有云168可以包括由客户机162或客户机162的所有者物理维护的私有服务器。私有云168可以通过私有网络164连接到服务器。混合云168可以包括私有和公共网络164和服务器。
30.云168可以包括后端平台,例如服务器、存储、服务器群或数据中心。例如,云168可以包括或对应于远离一个或多个客户机162的服务器或系统以提供对共享服务和资源池的第三方控制。计算环境160可以提供资源池以通过多租户环境或多租户模型经由客户机162为多个用户提供服务,其中不同的物理和虚拟资源响应于相应环境内的不同需求而动态分配和重新分配。多租户环境可以包括可提供软件、应用或软件应用的单个实例以服务于多个用户的系统或架构。在实施例中,计算环境160可以提供按需自助服务以跨网络为多个客
户机162单方面提供计算能力(例如,服务器时间、网络存储)。计算环境160可以提供弹性以响应于来自一个或多个客户机162的不同需求而动态地横向扩展(scale out)或横向缩小(scale in)。在一些实施例中,计算环境160可以包括或提供监测服务以监测、控制和/或生成与所提供的共享服务和资源相对应的报告。
31.在一些实施例中,计算环境160可以包括并提供不同类型的云计算服务。例如,计算环境160可以包括基础设施即服务(iaas)。计算环境160可以包括平台即服务(paas)。计算环境160可以包括无服务器计算。计算环境160可以包括软件即服务(saas)。例如,云168还可以包括基于云的输送,例如,软件即服务(saas)170、平台即服务(paas)172和基础设施即服务(iaas)174。iaas可以指用户租用在指定时间段期间需要的基础设施资源的使用。iaas提供者可以从大型池中提供存储、网络、服务器或虚拟化资源,允许用户通过根据需要访问更多资源来快速扩展。iaas的示例包括由华盛顿州西雅图的amazon.com公司提供的amazon web services、由德克萨斯州圣安东尼奥的rackspace美国公司提供的rackspace cloud、由加利福尼亚州山景城的google公司提供的google compute engine、或由加利福尼亚州圣巴巴拉的rightscale,公司提供的rightscale。paas提供者可以提供iaas提供的功能,包括例如存储、网络、服务器或虚拟化,以及附加资源,例如操作系统、中间件或运行时资源。paas的示例包括由华盛顿州雷蒙德市的微软公司提供的windows azure、由google公司提供的google app engine和由加利福尼亚州旧金山市的heroku公司提供的heroku。saas提供者可以提供paas提供的资源,包括存储、网络、服务器、虚拟化、操作系统、中间件或运行时资源。在一些实施例中,saas提供者可以提供额外的资源,包括例如数据和应用资源。saas的示例包括google公司提供的google apps、加利福尼亚州旧金山的salesforce.com公司提供的salesforce或微软公司提供的office 365。saas的示例还可以包括数据存储提供者,例如由加利福尼亚州旧金山的dropbox公司提供的dropbox、由微软公司提供的microsoft skydrive、由google公司提供的google drive或由加利福尼亚州库比蒂诺的apple公司提供的apple icloud。
32.客户机162可以使用一个或多个iaas标准访问iaas资源,这些标准包括例如亚马逊弹性计算云(ec2)、开放云计算接口(occi)、云基础设施管理接口(cimi)或openstack标准。一些iaas标准可以允许客户机通过http访问资源,并且可以使用具象状态传输(rest)协议或简单对象访问协议(soap)。客户机162可以使用不同的paas接口访问paas资源。一些paas接口使用http包、标准java api、javamail api、java数据对象(jdo)、java持久性api(jpa)、python api、用于不同编程语言的web集成api(包括例如,用于ruby的rack、用于python的wsgi、或用于perl的psgi)、或可以基于rest、http、xml或其他协议构建的其他api。客户机162可以通过使用由web浏览器(例如,google chrome、microsoft internet explorer或由加利福尼亚州山景城的mozilla基金会提供的mozilla firefox)提供的基于web的用户接口来访问saas资源。客户机162还可以通过智能手机或平板电脑应用(包括例如salesforce sales cloud或google drive应用)访问saas资源。客户机162还可以通过客户机操作系统(包括例如用于dropbox的windows文件系统)访问saas资源。
33.在一些实施例中,对iaas、paas或saas资源的访问可以被认证。例如,服务器或认证服务器可以经由安全证书、https或api密钥对用户进行认证。api密钥可以包括各种加密标准,例如高级加密标准(aes)。数据资源可以通过传输层安全(tls)或安全套接字层(ssl)
发送。
34.b.基于每个用户控制通知的输送
35.本文描述的系统和方法包括基于所针对的用户控制通知的输送。在一个实施例中,代理可以被部署或提供给虚拟机并且一个或多个虚拟应用可以在虚拟机上运行。代理可以钩住虚拟应用和虚拟机的操作系统来拦截由虚拟应用和/或虚拟机的操作系统生成的通知。在实施例中,代理可以从用户连接到与虚拟机的会话时或与虚拟机的会话断开时钩住通知。
36.代理可以将通知转发或传送到在远程装置或服务器上执行的通知服务。通知服务可以收集来自其他应用的通知,包括在虚拟机和虚拟机的操作系统上执行的虚拟应用。例如,通知服务可以收集或拦截来自基于云的应用、web应用或文件系统的通知。来自多个源的通知可以由通知服务聚合。在实施例中,通知服务可以使用一个或多个策略、分析、算法和/或过滤器来分类和组织通知。例如,通知服务可以基于每个用户或部分地基于打算接收相应通知的用户来对聚合的通知进行分类。
37.用户可以通过虚拟会话与一个或多个虚拟应用交互。当虚拟会话是活动的并且用户连接到虚拟会话时,通过虚拟会话向用户提供来自虚拟应用的动作或工作请求。然而,如果用户没有主动连接到虚拟会话或虚拟会话中的虚拟应用,则不会向用户提供动作或工作请求。例如,用户可能必须访问或打开虚拟会话或虚拟应用以确定是否需要执行任何动作或工作,或者是否已发出针对虚拟应用的任何警报。因此,除非用户连接到虚拟会话,否则不会为用户提供用于与一个或多个虚拟应用相关联的任何动作或工作的警报或触发器。
38.在本文描述的实施例中,可以通过用户的端点或装置的通知服务或本机操作系统向用户提供针对一个或多个虚拟应用或虚拟机的操作系统的动作或警报。如果用户没有主动连接到虚拟会话或在虚拟会话中执行的虚拟应用,则可以通过装置向用户提供通知。例如,代理可以在虚拟会话或虚拟机中运行以钩住来自虚拟应用或虚拟机的操作系统的通知。在实施例中,代理可以基于用户或所针对的用户对通知进行分类并且将分类的通知转发到通知服务。通知服务可以将从代理接收到的通知与从其他源接收到的通知聚合,包括但不限于基于云的应用、web应用或文件系统。在一些实施例中,通知服务可以识别并移除重复的通知。通知服务可以选择通知以形成部分地基于用户分组的通知的子集。可以识别用户的一个或多个装置,并且通知服务可以向该用户的一个或多个装置提供针对特定用户的通知的子集。在实施例中,可以通过相应装置的通知系统或用户的相应装置的操作系统向用户提供通知。因此,用户可以从虚拟应用接收通知、动作和/或工作请求,而无需主动连接到虚拟应用或托管虚拟应用的虚拟机。
39.参考图2,描绘了由虚拟机202执行的代理210的一个实施例的框图,以钩住和拦截由虚拟机202和/或虚拟机202的操作系统206执行的一个或多个虚拟化应用204生成的通知270。代理210(例如,通知代理)可以将通知270转发或传送到在远程装置或服务器220上执行的通知服务212。通知服务212可以从其他应用230收集通知270。例如,通知服务212可以收集或拦截来自基于云的应用230、web应用230或文件系统232的通知。来自多个源的通知可以由通知服务聚合。通知服务212可以基于每个用户或部分地基于意图接收相应通知270的用户来对聚合的通知270进行分类。
40.虚拟机202可以包括虚拟会话或虚拟桌面。在实施例中,虚拟机202可以在用户的
至少一个端点或装置250上执行。虚拟机202可以包括被配置为提供客户机装置或计算机(例如,图1a的计算机101)的功能的文件或图像。在一些实施例中,虚拟机202可以为用户提供或执行会话(例如,用户会话)。虚拟机202可以提供或执行会话,在该会话中一个或多个应用代表用户或客户机计算装置在其中执行,诸如托管的桌面会话。虚拟机202可以提供或执行会话,在该会话中一个或多个虚拟化应用204a-204n代表用户或客户机计算装置在其中执行,例如托管的桌面会话。在实施例中,一个或多个虚拟化应用2044-204n可以在虚拟机202上执行或运行。虚拟机202可以包括操作系统206。操作系统20可以包括支持或提供虚拟机202的功能的软件。在实施例中,操作系统206可以包括在虚拟机202之内或之上运行的软件或者在提供虚拟机202的装置或服务器之内或之上运行的软件。
41.代理210可包括在至少一个虚拟机202处部署或由其执行的功能、协议或指令集。在实施例中,代理210可包括用于钩住和拦截由虚拟机202的虚拟化应用204和/或操作系统206生成的通知270的功能、协议或指令集。在实施例中,可以在虚拟机202上部署和运行单个代理210。在一些实施例中,可以在虚拟机202上部署和运行多个代理210。代理210可以包括耦合到存储器262的一个或多个处理器260。处理器260可以包括或耦合到存储计算机指令和操作系统的非易失性存储器。例如,可以由处理器执行来自易失性存储器的计算机指令以执行方法300的全部或部分。代理210可以包括或执行策略和/或规则以部分地基于预期用户或基于每个用户钩住、拦截和分类多个通知270。例如,策略可以包括用于钩住由虚拟机202和/或虚拟机202的操作系统206执行的一个或多个虚拟化应用204的规则。策略可以包括用于拦截一个或多个通知270的规则。策略可以包括用于确定为其生成通知270的预期用户的规则。策略可以包括用于确定生成通知270的虚拟化应用204或操作系统的规则。策略可以包括用于部分地基于用户将多个通知270分类为一个或多个通知的子集272的规则。
42.代理210可以使用硬件或者软件和硬件的组合来实现。例如,代理210的每个组件可以包括响应和处理从存储器单元(例如,存储器262)获取的指令的逻辑电路(例如,中央处理单元或cpu)。代理210的每个组件可以包括或使用微处理器或多核处理器。多核处理器可以在单个计算组件上包括两个或更多个处理单元。代理210的每个组件可以基于这些处理器中的任何一个,或者能够如本文所述那样操作的任何其他处理器。每个处理器260可以利用指令级并行性、线程级并行性、不同级别的高速缓存等。例如,代理210可以包括至少一个逻辑装置,例如具有至少一个处理器的计算装置或服务器,以经由网络208进行通信。代理210的组件和元件可以是单独的组件或单个组件。例如,代理210可以包括硬件和软件的组合。代理210可以包括结构化的数据集。例如,代理210可以包括和/或存储多个通知270和/或通知的子集272。代理210可以包括存储器组件262(例如,用于存储和检索数据的存储器)。存储器262可以包括随机存取存储器(ram)或其他动态存储装置,与代理210耦合以用于存储信息和要被代理210执行的指令。存储器262可以包括至少一个与代理210耦合的只读存储器(rom)或其他静态存储装置,以用于存储代理210的静态信息和指令。存储器262可以包括与代理210耦合的存储装置,例如固态装置、磁盘或光盘,以持久地存储信息和指令。
43.代理210可以建立到由虚拟机202执行的至少一个虚拟化应用204的至少一个钩子290。代理210可以建立到虚拟机202的操作系统206的至少一个钩子290。钩子290可以包括到虚拟化应用204和/或操作系统206的连接或会话。钩子290可以包括由代理210提供给虚
拟化应用204和/或操作系统206以拦截或接收由虚拟机202的虚拟化应用204和/或操作系统206生成的通知的功能、协议或挂钩工具。
44.虚拟机202可以包括多个用户简档214。用户简档214可以对应于访问虚拟机202的多个用户。用户简档214可以包括多个条目并且每个条目可以对应于一个独特的用户。每个条目可以包括用户标识符、用户的帐户信息、用户的密码数据和/或所访问的或与用户相关联的虚拟化应用204。在一些实施例中,用户简档214可以包括通知270和通知的子集272。例如,用户简档214可以包括提供给用户和/或为用户生成的对应于用户简档214的过去或之前的通知270以及通知的子集272。在实施例中,用户简档214可以包括提供给用户和/或为用户生成的对应于用户简档214的当前通知270和通知的子集272。
45.通知中心211可以由虚拟机202执行。通知中心211可以包括或对应于数据库或存储器以收集、存储和分类通知270。例如,通知中心211可以包括多个条目。通知中心211可以由用户、由通知270、由应用204或由操作系统206布置。通知中心211可以包括或对应于存储器。存储器可以使用硬件或软件和硬件的组合来实现。例如,通知中心211的每个组件可以包括响应和处理从存储器单元或数据库获取的指令的逻辑电路(例如,中央处理单元或cpu)。通知中心211可以包括或对应于与处理器260耦合的随机存取存储器(ram)或其他动态存储装置,以用于存储信息和要由代理210执行的指令。通知中心211可以包括或对应于与处理器260耦合的至少一个只读存储器(rom)或其他静态存储装置,以用于存储通知270。通知中心211可以包括或对应于与处理器260耦合的存储装置,例如固态装置、磁盘或光盘,以持久地存储信息和指令。
46.服务器220可以包括或对应于远程或第三方服务器。服务器220可以包括或对应于装置或远程装置。服务器220可以包括、提供或托管至少一个通知服务212。可以使用硬件或软件和硬件的组合来实现服务器220。例如,服务器220的每个组件可以包括响应和处理从存储器单元获取的指令的逻辑电路(例如,中央处理单元或cpu)。服务器220的每个组件可以包括或使用微处理器或多核处理器。多核处理器可以在单个计算组件上包括两个或更多个处理单元。服务器220的每个组件可以基于这些处理器中的任何一个,或者能够如本文所述那样操作的任何其他处理器。每个处理器可以利用指令级并行性、线程级并行性、不同级别的高速缓存等。例如,服务器220可以包括至少一个逻辑装置,例如具有至少一个处理器以经由网络208进行通信的计算装置或服务器。服务器220可以与至少一个装置250(例如,端点)建立至少一个会话以向相应装置250的用户提供一个或多个所选择的通知270或通知的子集272。
47.通知服务212可以包括在服务器220上执行以收集、聚合和分类一个或多个用户的通知270的代理、功能、协议或指令集。通知服务212可以包括耦合到存储器262的一个或多个处理器260。处理器260可以包括或耦合到存储计算机指令和操作系统的非易失性存储器。例如,可由处理器260执行来自易失性存储器的计算机指令以执行方法300的全部或部分。通知服务212可包括或执行策略和/或规则以部分地基于预期用户或基于每个用户来对多个通知270进行分类和过滤。例如,策略可以包括用于确定为其生成通知270的预期用户的规则。策略可以包括用于确定生成通知270的虚拟化应用204、操作系统、其他应用230和/或文件系统232的规则。策略可以包括用于部分地基于用户将多个通知270分类成通知的一个或多个子集272的规则。
48.通知服务212可以使用硬件或软件和硬件的组合来实现。例如,通知服务212的每个组件可以包括响应并处理从存储器单元(例如,存储器)获取的指令的逻辑电路(例如,中央处理单元或cpu)。通知服务212的每个组件可以包括或使用微处理器或多核处理器。多核处理器可以在单个计算组件上包括两个或更多个处理单元。通知服务212的每个组件可以基于这些处理器中的任何一个,或能够如本文所述那样操作的任何其他处理器。每个处理器260可以利用指令级并行性、线程级并行性、不同级别的高速缓存等。例如,通知服务212可以包括至少一个逻辑装置,例如具有至少一个处理器260以经由网络208进行通信的计算装置或服务器。通知服务212的组件和元件可以是单独的组件或单个组件。例如,通知服务212可以包括硬件和软件的组合。通知服务212可以包括结构化的数据集。例如,通知服务212可以包括和/或存储多个通知270和/或通知的子集272。通知服务212可包括存储器组件262(例如,用于存储和检索数据的存储器)。存储器262可包括与通知服务212耦合的随机存取存储器(ram)或其他动态存储装置,以用于存储信息和要由通知服务212执行的指令。存储器262可以包括与通知服务212耦合的至少一个只读存储器(rom)或其他静态存储装置,以用于存储用于通知服务212的静态信息和指令。存储器262可以包括与通知服务212耦合以持久地存储信息和指令的存储装置,例如固态装置、磁盘或光盘。
49.通知服务212可以与一个或多个其他应用230连接以接收和/或拦截来自其他应用230的通知。其他应用230可以包括基于云的应用230、基于web的应用230、其他虚拟化应用230(例如,不同于在虚拟机202上执行的虚拟化应用204)、软件即服务(saas)应用230和/或文件系统232。其他应用230可以包括由一个或多个虚拟机202或用户的虚拟会话执行的应用。在实施例中,其他应用230可以包括从一个或多个服务器(例如,第三方服务器)提供服务和/或托管在一个或多个服务器上的应用(app)。其他应用230可以包括从一个或多个服务器提供服务和/或托管在一个或多个服务器上的应用(app),例如但不限于web应用、软件即服务(saas)应用和/或远程托管应用。其他应用230可以包括但不限于web应用、桌面应用、远程托管应用、虚拟应用、软件即服务(saas)应用、移动应用、hdx应用、本地应用、本机应用(例如,装置250本机的)和/或与一个或多个装置250耦合的装置。通知服务212可以收集和聚合来自其他应用230的通知270和从代理210接收的通知270。
50.通知服务212可以包括聚合通知数据库240。聚合通知数据库240可以包括或对应于用于收集、存储、聚合和分类通知270的数据库或存储器。例如,聚合通知数据库240可以包括多个条目。聚合通知数据库240可以由用户、由通知270、由生成通知270的源(例如,应用204、操作系统206、其他应用230、文件系统232)来布置。聚合通知数据库240可以包括或对应于存储器。存储器可以使用硬件或软件和硬件的组合来实现。例如,聚合通知数据库240的每个组件可以包括响应和处理从存储器单元或数据库获取的指令的逻辑电路(例如,中央处理单元或cpu)。聚合通知数据库240可以包括或对应于与处理器耦合的随机存取存储器(ram)或其他动态存储装置,以用于存储信息和要由通知服务212执行的指令。聚合通知数据库240可以包括或对应于与处理器耦合的至少一个只读存储器(rom)或其他静态存储装置,以用于生成和存储通知270和/或通知的子集272。聚合通知数据库240可以包括或对应于与处理器耦合以持久地存储信息和指令的存储装置,诸如固态装置、磁盘或光盘。聚合通知数据库240可以包括通知的至少一个子集272,其具有为至少一个用户生成的、旨在用于或指向至少一个用户的多个通知270。聚合通知数据库240可以包括通知的多个子集
272,多个子集272中的每一个具有为至少一个用户生成的、旨在用于或指向至少一个用户的多个通知270。
51.在实施例中,通知服务212可以包括通知算法。通知算法可以包括过滤器、指令集或逻辑、功能和/或规则来处理、聚合和分类通知270。在一些实施例中,可以使用硬件或软件和硬件的组合来实现通知算法。例如,通知算法可以包括响应和处理从存储器单元(例如,存储器)获取的指令的逻辑电路(例如,中央处理单元或cpu)。通知算法可以包括或执行策略和/或规则以部分地基于预期用户或基于每个用户来分类和过滤多个通知270。例如,策略可以包括用于确定为其生成通知270的预期用户的规则。策略可以包括用于确定生成通知270的虚拟化应用204、操作系统、其他应用230和/或文件系统232的规则。策略可以包括用于部分地基于用户将多个通知270分类成通知的一个或多个子集272的规则。
52.装置250可以是本文描述的任何客户机装置或计算机装置的实例。例如,装置250可以与图1a的计算装置101相同或基本相似。装置250可以包括与用户相关联的端点。例如,装置250可以包括或为用户提供应用、虚拟桌面、桌面会话、虚拟桌面环境或工作空间应用。在实施例中,装置250工作空间应用在装置250上为用户执行。装置250可以包括但不限于计算装置或移动装置。装置250可以包括本机操作系统252。本机操作系统252可以包括支持或提供装置250和/或在装置250上执行的一个或多个会话的功能的软件。在实施例中,操作系统252可以包括在装置250上运行或由装置250执行的软件。
53.装置250可以包括通知系统254。通知系统254可以包括在装置250上执行以从服务器220的通知服务212接收通知270和/或通知的子集272的代理、功能、协议或指令集。通知系统254可以包括耦合到存储器262的一个或多个处理器260。处理器260可以包括或耦合到存储计算机指令和操作系统的非易失性存储器。例如,可由处理器260执行来自易失性存储器的计算机指令以执行方法300的全部或部分。通知系统254可包括或执行策略和/或规则以接收和收集用于装置250的用户或装置250的多个用户的一个或多个通知270和/或通知的一个或多个子集272。通知系统254可以包括或执行策略和/或规则以部分地基于预期用户或基于每个用户对多个通知270进行分类和过滤。
54.装置250可以通过一个或多个连接292与服务器220和通知服务212耦合。连接292可以包括应用会话、执行会话、桌面会话、托管桌面会话、终端服务会话、浏览器会话、远程桌面会话、url会话、工作空间会话和远程应用会话。连接292可以包括在装置250和服务器220之间建立的加密和/或安全会话。例如,连接292可以包括在装置250和服务器220之间建立的加密会话和/或安全会话。加密连接292可以包括在装置250和服务器220之间传输的加密文件、加密数据或流量。
55.虚拟机202可以通过一个或多个连接292与服务器220和通知服务212通信。连接292可以包括应用会话、执行会话、桌面会话、托管桌面会话、终端服务会话、浏览器会话、远程桌面会话、url会话、工作空间会话和远程应用会话。连接292可以包括在虚拟机202和服务器220之间建立的加密和/或安全会话。例如,连接292可以包括在虚拟机202和服务器220之间建立的加密会话和/或安全会话。加密连接292可以包括由代理210和/或通知服务212在虚拟机202和服务器220之间传输的加密文件、加密数据或流量。
56.网络208可以是公共网络,例如广域网(wan)或互联网。在一些实施例中,网络208可以是专用网络,例如局域网(lan)或公司内联网。网络208可以是公共网络,例如广域网
(wan)或互联网。网络208可以采用一种或多种物理网络和/或网络拓扑,例如有线和/或无线网络,并且可以采用一种或多种通信传输协议,例如传输控制协议(tcp)、互联网协议(ip)、用户数据报协议(udp)或其他类似协议。
57.在一个或多个实施例中,上述元件或实体中的每一个都以硬件或硬件和软件的组合来实现。虚拟机202的每个组件可以由以上结合图1a详述的硬件或硬件或软件的组合来托管或实现。例如,这些元件或实体中的每一个可以包括在客户机装置(例如,装置250)的硬件上执行的任何应用、程序、库、脚本、任务、服务、进程或任何类型和形式的可执行指令。在一个或多个实施例中,硬件包括诸如一个或多个处理器的电路。
58.现在参考图3a-3b,描绘了用于控制通知的输送的方法300的一个实施例的流程图。方法300的功能可以使用本文结合图1-2详述的组件来实现或由其执行。
59.现在参考操作(305),并且在一些实施例中,可以生成代理210。可以在一个或多个虚拟机202上生成和部署代理210。在实施例中,可以在一个虚拟机202上部署和运行单个代理210。在一些实施例中,可以在一个虚拟机202上部署和运行多个代理210。虚拟机202可以包括但不限于虚拟会话或虚拟桌面。虚拟机202可以包括被配置为提供客户机装置或计算机(例如,图1a的计算机101)的功能的文件或图像。在一些实施例中,虚拟机202可以为用户提供或执行会话(例如,用户会话)。虚拟机202可以提供或执行会话,在该会话中一个或多个应用代表用户或客户机计算装置在其中执行,诸如托管的桌面会话。虚拟机202可以提供或执行会话,在该会话中一个或多个虚拟化应用204a-204n代表用户或客户机计算装置在其中执行,例如托管的桌面会话。在实施例中,一个或多个虚拟化应用2044-204n可以在虚拟机202上执行或运行。虚拟机202可以包括操作系统206。操作系统20可以包括支持或提供虚拟机202的功能的软件。在实施例中,操作系统206可以包括在虚拟机202之内或之上运行的软件,或者在提供虚拟机202的装置或服务器之内或之上运行的软件。在实施例中,操作系统206可以包括由虚拟机202执行的软件或由提供虚拟机202的装置或服务器执行的软件。
60.虚拟机202可以包括多个用户简档214。用户简档214可以对应于访问虚拟机202的多个用户。用户简档214可以包括多个条目并且每个条目可以对应给一个独特的用户。每个条目可以包括用户标识符、用户的帐户信息、用户的密码数据和/或所访问的或与用户相关联的虚拟化应用204。代理210可以将虚拟机202的一个或多个用户的用户数据存储在对应于该用户的用户简档中。代理210可以为虚拟机202的一个或多个用户维护和更新用户简档。
61.现在参考操作(310),并且在一些实施例中,可以建立钩子290。在实施例中,由虚拟机202执行的代理210可以建立一个或多个钩子290来拦截来自虚拟机的操作系统206和由多个用户可访问的虚拟机202执行的一个或多个虚拟化应用204的通知270。代理210可以建立到由虚拟机202执行的至少一个虚拟化应用204的钩子290。代理210可以建立到由虚拟机202执行的两个或更多个虚拟化应用204的钩子290。代理210可以建立到由虚拟机202执行的每个虚拟化应用204的钩子290。代理210可以钩住虚拟机202的操作系统206以拦截和接收由操作系统206生成的通知270。在实施例中,代理210可以包括功能、协议或挂钩工具来拦截或接收由虚拟机202的虚拟化应用204和/或操作系统206生成的通知。
62.通知270可以包括由虚拟化应用1204或操作系统206生成的用于输送到虚拟机
202、装置250或用户的端点的任何形式的数据或信息。通知270可以包括但不限于文本、数据、图像或文本、数据和/或图像的组合。通知270可以包括但不限于广告、消息、消息传递工具、对话框、文本消息、弹出窗口、对话窗口、上下文弹出窗口、推送通知、电子邮件通知、桌面通知和/或网页横幅。
63.现在参考操作(315),并且在一些实施例中,可以拦截通知270。在实施例中,代理210可以经由一个或多个钩子290拦截由一个或多个虚拟化应用204或操作系统206生成的针对多个用户的多个通知270。代理210可以通过建立到虚拟化应用204或操作系统206的钩子290拦截或接收至少一个通知270。通知270可以针对虚拟机202的至少一个用户、为虚拟机202的至少一个用户生成和/或指向虚拟机202的至少一个用户。
64.代理210可以确定通知270的属性。例如,代理210可以确定是虚拟化应用204还是操作系统206生成了通知270。在实施例中,代理210可以确定哪个虚拟化应用204生成了通知270。代理210可以确定与通知270相关联的用户。例如,代理210可以确定与通知270相关联的用户、通知270应用于的用户或通知270针对的用户中的每一个。在一些实施例中,通知270可以针对多个用户或与多个用户相关联。例如,通知270可以由多个用户使用或可通过虚拟机202或多个虚拟机202访问的虚拟化应用204生成。代理210可以确定与通知270相关联的用户、通知270应用于的用户或通知270针对的用户中的每一个。
65.现在参考操作(320),并且在一些实施例中,可以对通知270进行分类。在实施例中,代理210可以基于每个用户来对多个通知270进行分类或组织。例如,代理210可以部分地基于各种不同的属性来对多个通知270进行分类。代理210可以部分地基于生成通知270的虚拟化应用204或操作系统206来对多个通知270进行分类。代理210可以部分地基于通知270针对的、生成用于和/或指向的用户来对多个通知270进行分类。代理210可以部分地基于通知270针对的、生成用于和/或指向的一组用户(例如,同事)来对多个通知270进行分类。
66.在一些实施例中,代理210可以将通知算法应用于多个通知270以基于至少一个属性(例如,用户)来组织或分组通知。例如,代理210可以应用具有一个或多个策略的通知算法来识别通知270的属性(例如,用户、虚拟化应用204、操作系统206)并且将通知270分组或划分成通知的子集272。子集272可以包括与至少一个普通用户相关联的一个或多个通知270。例如,子集272可以包括一个或多个通知270,其针对、生成用于和/或指向同一用户或同一组用户。在实施例中,代理210可以生成通知的单个子集272。在一些实施例中,代理210可以生成通知的两个或更多个子集272。子集272的数量可以对应于虚拟机202或多个虚拟机202的用户的数量。代理210可以基于每个用户生成通知的多个子集272,使得通知的子集272中的每一个旨在用于多个用户中的不同用户。
67.在实施例中,代理210可以部分地基于优先级、时间、通知270从其接收或由其生成的应用类型和/或用户偏好来生成通知的多个子集272。例如,响应于基于每个用户对通知270进行分类,通知270可以基于给予生成或提供相应通知270的应用204的优先级来进行分类。例如,具有相同优先级或在优先级范围内的通知270可以被一起分类或分组成通知的子集272。可以基于代理210生成和/或钩住相应通知270的时间来对通知270进行分类。例如,同时或在相同时间范围内生成和/或接收的通知270可以被一起分类或分组成通知的子集272。通知270可以基于生成或提供相应通知270的应用204的应用204的类型来分类。例如,
来自相同类型的应用或相似类型的应用204的通知270可以被一起分类或分组成通知的子集272。通知270可以基于用户偏好进行分类。例如,通知270可以部分地基于来自用户的请求或基于来自用户的一个或多个偏好来分类或分组成通知的子集272。
68.现在参考操作(325),并且在一些实施例中,可以传送通知270。代理210可以将多个通知传送或转发到通知服务212。在实施例中,通知服务212可以从在虚拟机202中执行的代理210接收来自由虚拟机202执行的虚拟化应用204的针对用户的多个通知270。代理210可以将通知的子集272传送或转发到通知服务212。在实施例中,代理210可以将每个用户的通知270传送到通知服务212以与来自由多个用户中的每一个使用的多个应用204的多个通知270进行分类。
69.通知服务212可以在装置或服务器220上执行。在实施例中,装置或服务器220可以与托管或提供虚拟机202的装置或服务器是同一个。通知服务212可以在远程装置或远程服务器220上执行,远程装置或远程服务器220不同于或远离托管或提供虚拟机202的装置或服务器。在一些实施例中,通知服务212可由基于云的服务或基于云的服务器220托管或在其上执行。代理210可以通过在代理210和通知服务212之间建立的连接292和/或在代理210正在其上执行的虚拟机202和通知服务212之间建立的连接292将多个通知270传送到通知服务212。
70.在实施例中,通知服务212可以从用户的其他应用230接收通知270。例如,通知服务212可以接收或拦截由其他应用230(而不是在虚拟机202上执行的虚拟化应用204)生成的通知270。通知服务212可以从各种不同源接收由其他应用230生成的通知270。在实施例中,其他应用230可以包括但不限于基于云的应用230、基于web的应用230、其他虚拟化应用230(例如,不同于在虚拟机202上执行的虚拟化应用204)、软件即服务(saas)应用230和/或文件系统232。
71.现在参考操作(330),并且在一些实施例中,可以聚合通知270。在实施例中,通知服务212可以聚合来自多个虚拟化应用204和多个其他应用230的针对用户的通知270。通知服务212可以收集和组合针对多个用户的多个通知270。通知服务212可以基于每个用户收集和聚合多个通知270以识别针对特定用户的通知270。例如,代理210可以部分地基于各种不同的属性来对多个通知270进行分类。通知服务212可以将来自虚拟机202的每个用户的通知270与来自基于云的应用230、web应用230和/或文件系统232的通知270的用户的通知进行分类。通知服务212可以将来自虚拟机202的每个用户的通知270与从其他应用230接收并对应于用户的通知270进行分类,其他应用230包括例如但不限于基于云的应用230、基于web的应用230、其他虚拟化应用230(例如,不同于在虚拟机202上执行的虚拟化应用204)、软件即服务(saas)应用230和/或文件系统232。例如,通知服务212可以对来自虚拟化应用204、操作系统206、其他应用230和/或文件系统232的多个通知270进行分类。在一些实施例中,通知服务212可以接收由代理210未分类的多个通知270。通知服务212可以将来自在虚拟机202上执行的代理210的通知270与从其他应用230和/或文件系统232接收的通知270聚合。通知服务212可以部分地基于生成通知270的虚拟化应用204、操作系统206和/或其他应用230对多个通知270进行分类。通知服务212可以部分地基于通知270针对的、生成用于和/或指向的用户对多个通知270进行分类。通知服务212可以部分地基于通知270针对的、生成用于和/或指向的一组用户(例如,同事)来对多个通知270进行分类。
72.现在参考操作(335),并且在一些实施例中,可以生成通知的子集272。在实施例中,通知服务212可以基于每个用户生成通知的多个子集272。例如,通知的子集272中的每一个可以为多个用户中的不同用户而生成和/或针对多个用户中的不同用户。通知服务212可以将通知算法(例如分类算法)应用于多个通知270以基于至少一个属性(例如用户)对通知进行分类、组织或分组。例如,通知服务212可以应用具有一个或多个策略的通知算法来识别通知270的属性(例如,用户、虚拟化应用204、操作系统206、其他应用230)并且将通知270分组或划分成通知的子集272。子集272可以包括与至少一个普通用户相关联的一个或多个通知270。例如,子集272可以包括一个或多个通知270,其针对、生成用于和/或指向同一用户或同一组用户。在实施例中,通知服务212可以生成通知的单个子集272。在一些实施例中,通知服务212可以生成通知的两个或更多个子集272。
73.在一些实施例中,通知服务212可以接收由代理210分类的多个通知270。例如,通知服务212可以接收由用户分类的通知的子集272。通知服务212可以对从其他应用230或文件系统232接收的通知270与从代理210接收的通知270或从代理210接收的通知的子集272分开分类。通知服务212可以将从其他应用230接收的通知270分类成通知的子集272。子集272可以包括与至少一个普通用户相关联的一个或多个通知270。通知服务212可以将从代理210接收的与来自虚拟化应用204和/或操作系统20的通知270相对应的通知的子集272与由通知服务212生成的并且与来自其他应用230和/或文件系统232的通知270相对应的通知的子集272聚合或组合。通知服务212可以基于用户聚合或组合通知270的子集272。例如,通知服务212可以识别为同一用户生成的或与同一用户相关联的通知的子集272,并且将多个子集272聚合为各个用户的通知的单个子集272。在一些实施例中,通知服务212可以将已分类的通知的子集272与从其他应用230接收的通知270组合或聚合。通知服务212可以进一步对聚合的通知270进行分类,包括子集272和来自其他应用230的通知270,以生成通知272的新子集272。通知272的新子集272可以按用户分类并且包括来自虚拟化应用204、操作系统206、其他应用230和/或文件系统232的通知270。
74.通知服务212可以收集和组合来自不同源和/或不同应用204、230的多个通知270以识别为特定用户生成的每个通知270。通知服务212可以基于每个用户生成通知的多个子集272,使得通知的子集272中的每一个都针对多个用户中的不同用户。在一些实施例中,可以在多个通知270或通知的子集272中识别重复的通知270、反复的通知270和/或噪声。例如,通知服务212可以为用户识别从一个或多个虚拟化应用204、操作系统206、其他应用230和/或文件系统232接收的重复的通知270。重复的通知270可以包括由不同源生成的相同的通知270。重复的通知270可以包括由不同虚拟机202或不同计算环境执行的相同源所生成的相同的通知270。重复的通知270可以包括包含相同主题或对应于类似主题的相同的通知270。例如,在一个实施例中,重复的通知270可以包括由不同源生成但对应于相同时间警报的时间警报。通知服务212可以从多个通知270和/或多个用户中的每个用户的通知的子集272中移除或删除重复的通知。例如,通知服务212可以从多个通知270中移除或删除重复的通知,使得多个通知270包括通知270的一个版本或一个副本而不是通知270的多个版本或副本。通知服务212可以从通知的子集272移除或删除重复的通知,使得通知的子集272包括通知270的一个版本或一个副本而不是通知270的多个版本或副本。
75.现在参考操作(340),并且在一些实施例中,可以提供通知的子集272。在实施例
中,通知服务212可以将在多个应用204、230之间分类的通知270传送到用户的一个或多个装置250。通知服务212可以向用户的至少一个装置250传送或提供针对用户的通知的子集272。在一些实施例中,通知服务212可以识别用户的或与用户相关联的一个或多个装置250。通知服务212可以从多个通知270中选择一个或多个通知270以提供给用户的装置250。例如,通知服务212可以从用户的聚合的通知270中选择一个或多个通知270。在一些实施例中,通知服务212可以从用户的聚合的通知270的子集272中选择一个或多个通知270。一个或多个通知270中的至少一个可以包括从虚拟化应用204、操作系统206、其他应用230和/或文件系统232到用户的通知270。通知服务212可以将所选择的一个或多个通知270或子集272传送到用户的装置250的通知系统254。
76.在一些实施例中,通知服务212可以识别用户的或与用户相关联的一个或多个装置250。通知服务212可以使用关于用户的用户简档214来识别装置250。在实施例中,通知服务212可以确定用户的或与用户相关联的一个或多个端点(例如,虚拟会话、桌面、机器)和/或装置250的状态。通知服务212可以确定与用户相关联的哪些端点和/或装置250是活动的或者用户正在活跃地(例如,当前)与之交互。通知服务212可以确定用户正在使用哪些装置250来访问虚拟机202、虚拟会话或桌面环境。通知服务212可以选择活动的装置250来接收针对用户的通知270。
77.在实施例中,通知服务212可以向用户的单个装置250或用户的两个或更多个装置250提供用户的通知270或用户的通知的子集272。在一些实施例中,通知服务212可以向用户的每个装置250提供用户的通知270或用户的通知的子集272。通知服务212可以向用户的至少一个端点或至少一个装置250传输或转发至少一个所选择的通知270或通知272的子集。在实施例中,通知服务212可以向用户的多个端点或多个装置250传输或转发多个所选择的通知270或通知的子集272。
78.在一些实施例中,响应于一个或多个通知270或通知的子集272,用户可以在用户的装置250上建立用户的虚拟会话以连接到生成相应的通知270或与相应的通知270相关联的虚拟化应用204。例如,通知服务212可以向在用户的一个或多个装置250上执行的通知系统254提供通知270、通知的子集272、对应于通知270的动作280或对应于通知270的警报282。通知系统254可以通过装置250(例如但不限于通过装置250的浏览器或显示部分)向用户提供通知270、通知的子集272、与通知270相对应的动作280或与通知270相对应的警报282。
79.在实施例中,通知系统254可以指示装置250的操作系统252响应于通知系统254接收到来自服务器220上的通知服务212的通知270、子集272、动作280或警报282来启动与通知270、子集272、动作280或警报282相关联的虚拟化应用204。在一些实施例中,可以响应于从用户(例如,装置250的用户)通过用户接口接收到指令或命令来启动虚拟化应用204。本机os 252可以接收命令,例如,通过用户与装置250的用户接口的交互,以启动与通知270、子集272、动作280或警报282相关联的虚拟化应用204。在一些实施例中,用户可以与装置250的触摸屏交互以响应来自服务器220上的通知服务212的通知270、子集272、动作280或警报282。用户交互可以启动与虚拟化应用204的新会话或重新连接与虚拟化应用204的现有或先前会话。
80.在一些实施例中,装置250的操作系统252可以响应于通知系统254接收到来自服
务器220上的通知服务212的通知270、子集272、动作280或警报282来启动与通知270、子集272、动作280或警报282相关联的虚拟化应用204。例如,可以在装置250上建立新会话以供用户执行与通知270相关联的任务、确认通知270或以其他方式与关于通知270的虚拟化应用204交互。在一些实施例中,可以在装置250上重新建立或重新连接先前的会话,以便用户执行与通知270相关联的任务、确认通知270或以其他方式与关于通知270的虚拟化应用204交互。在实施例中,空闲会话可以在装置250上重新激活以供用户执行与通知270相关联的任务、确认通知270或以其他方式与关于通知270的虚拟化应用204交互。在一些实施例中,新的、先前的或空闲的会话可以在装置250上建立,例如,通过在装置250上执行的虚拟机202。
81.现在参考操作(345),并且在一些实施例中,可以识别动作280。在实施例中,通知服务212可以确定是否已经从虚拟化应用204、虚拟机202的操作系统206、其他应用230和/或文件系统232中的一个或多个接收到任一动作280。在实施例中,动作280可以包括但不限于让用户通过由虚拟机202执行的虚拟化应用204来查看文件的完成下载或呈现。在一些实施例中,动作280可以包括但不限于,让用户通过电子邮件应用接受或拒绝会议邀请。通知服务212可以向由一个或多个虚拟机202执行的一个或多个代理210生成请求以确定是否已经发出任一动作280。例如,通知服务212可以经由代理210识别由一个或多个虚拟化应用204、虚拟机202的操作系统206、其他应用230和/或文件系统232请求的动作280。动作280可以对应于至少一个所选择的通知270或通知的子集272的至少一个通知270。动作280可以包括来自虚拟化应用204、虚拟机202的操作系统206、其他应用230和/或文件系统232中的至少一个的请求,以供用户执行任务、动作或以其他方式与虚拟化应用204、虚拟机202的操作系统206、其他应用230和/或文件系统232中的至少一个交互。通知服务212可以识别与虚拟机202相关联的多个用户中的至少一个用户,其中虚拟机202是要为其生成动作280或要使用其以完成动作280的虚拟机202。通知服务212可以向与用户相关联的装置提供或转发动作280。例如,在一些实施例中,通知服务212可以向在用户的一个或多个装置250上执行的通知系统254提供通知270、通知的子集272和/或对应于通知的一个或多个动作280。通知系统254可以通过装置250向用户提供通知270、通知的子集272和/或一个或多个动作280,例如但不限于通过浏览器或装置250的显示部分。
82.现在参考操作(350),并且在一些实施例中,如果识别出一个或多个动作280,则可以生成一个或多个警报282。在实施例中,通知服务212可以为用户的装置250生成警报282以指示由一个或多个虚拟化应用204、虚拟机202的操作系统206、其他应用230和/或文件系统232请求的动作280。警报282可以包括由通知服务212响应于动作280生成的通知和/或从一个或多个虚拟化应用204、虚拟机202的操作系统206、另一个应用230、和/或文件系统232拦截的通知。
83.现在参考操作(355),并且在一些实施例中,可以识别活动的端点。通知服务212可以识别用户的或与用户相关联的一个或多个端点或装置250的状态。通知服务212可以确定与用户相关联的哪些端点和/或装置250是活动的或者用户正在活跃地(例如,当前)与之交互。通知服务212可以确定用户正在使用哪些装置250来访问虚拟机202、虚拟会话或桌面环境。通知服务212可以选择活动的装置250来为用户接收一个或多个警报282。
84.现在参考操作(360),并且在一些实施例中,可以提供警报282。通知服务212可以
向用户的至少一个装置250或端点提供至少一个警报282。在一些实施例中,通知服务212可以向用户的一个或多个装置250提供多个警报282。多个警报282可以对应于所选择的一个或多个通知270或通知的子集272。例如,多个警报282可以对应于响应于所选择的一个或多个通知270或通知的子集272而生成的动作280。通知服务212可以向与用户相关联的装置提供或转发警报282。例如,在一些实施例中,通知服务212可以向在用户的一个或多个装置250上执行的通知系统254提供警报282或多个警报282。通知系统254可以通过装置250向用户提供警报282或多个警报282,例如但不限于通过浏览器或装置250的显示部分。
85.在一些实施例中,所选择的通知270或通知的子集272可以通过馈送服务或通过在装置250上执行的客户机应用提供给装置250。例如,客户机应用可以在装置250上执行以向至少一个虚拟化应用204提供会话。在一些实施例中,客户机应用可以在装置250上执行以与服务器220和/或虚拟机202的通知服务212连接。通知服务212可以与客户机应用连接以向装置250的用户提供一个或多个所选择的通知270和/或通知的子集272。
86.在实施例中,可以部分地基于与装置250的用户相对应的用户偏好和/或分析来向装置250提供所选择的通知270或通知的子集272。例如,所选择的通知270或通知的子集272可以基于给予生成或提供相应通知270的应用204的优先级提供给装置250的用户。例如,具有更高优先级或优先级高于优先级阈值的通知270可以提供给装置250,并且可以防止在装置250处接收具有较低优先级或优先级小于或低于优先级阈值的通知270。基于代理210生成和/或钩住相应通知270的时间,可以将通知270提供给装置250或阻止在装置250处接收通知270。基于生成或提供相应通知270的应用204的应用204的类型,可以将通知270提供给装置250或阻止在装置250处接收通知270。
87.现在参考操作(365),并且在一些实施例中,如果没有动作280被识别或剩余,则可以确定余下的用户。通知服务212可以连续地查看多个通知270和/或通知的子集272以识别具有为相应用户生成的、指定的或指向相应用户的至少一个通知270的每个用户。通知服务212可以确定是否已经通过虚拟机202为每个会话收集和/或分类通知270。通知服务212可以确定是否已经通过虚拟机202为具有会话的每个用户收集和/或分类通知270。
88.现在参考操作(370),并且在一些实施例中,如果仍然需要对一个或多个用户的通知270进行分类,则方法300可以返回操作330以对不同或后续用户的后续通知270进行分类。通知服务212可以连续地查看多个通知270和/或通知的子集272以识别具有为相应用户生成的、指定的或指向相应用户的至少一个通知270的每个用户。通知服务212可以向与相应用户相关联的至少一个装置250提供或推送关于用户的通知。通知服务212可以连续地查看通知270,直到每个通知270已经被分类或丢弃(例如,重复的通知)。在一些实施例中,通知服务212可以连续地查看通知270,直到每个通知270已经被提供或推送到相应用户的至少一个装置250或端点。现在参考操作(375),并且在一些实施例中,如果通知270已经被分类并提供给每个用户,则通知服务212可以等待到至少一个虚拟机202的后续会话被启动以收集和聚合针对各个会话的通知270。
89.本文在一个或多个实施例的上下文中描述的各种元件可以单独提供或以任何合适的子组合提供。例如,本文描述的过程可以以硬件、软件或其组合来实现。此外,本文描述的过程不限于所描述的具体实施例。例如,本文描述的过程不限于本文描述的特定处理顺序,相反,过程块可以根据需要重新排序、组合、移除或并行或串行执行,以实现本文所阐述
的结果。
90.将进一步理解,在不脱离以下权利要求的范围的情况下,本领域技术人员可以对本文已经描述和示出的部件的细节、材料和布置进行各种改变。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1