跨应用推送通知的安全目标对准的制作方法

文档序号:18601778发布日期:2019-09-03 22:44阅读:133来源:国知局
跨应用推送通知的安全目标对准的制作方法

推送技术描述了一种基于网络的通信的类型,其中由发布者或中央服务器发起对信息传输的请求。相反,拉取技术是其中接收者或客户端发起信息传输的请求。推送服务通常基于预先表达的信息偏好,其通常被称为发布/订阅模型。在这种模型中,客户端订阅各种信息通道。只要新内容在那些通道之一上可获取,服务器就会将信息推送出给用户。



技术实现要素:

提供本发明内容是为了以简化的形式介绍一些概念,这些概念将在下面的具体实施方式中进一步描述。本发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于限制所要求保护的主题的范围。

本文描述了用于开发支持向终端用户发送和/或推送通知的应用和/或工作流的方法、系统、装置和计算机程序产品。使得(多个)应用和/或(多个)工作流的开发者(其也可以称为“制造者”或“创建者”)能够开发这样的(多个)应用和/或(多个)工作流,而无需是专家编程者(即,这样的开发者可以是几乎没有编程经验的业务用户)。本文描述的技术使得能够以安全的方式将跨应用推送通知发送到目标应用的终端用户。例如,可以监测推送通知请求以根据管理者可配置的策略规则确定它们是否被授权发送,从而防止发送不期望的推送通知。此外,取决于有多少用户要接收特定推送通知,可以扩大(或缩小)计算资源。这有利地使得本文描述的系统能够满足实时发送大量推送通知的需求。

下面参考附图详细描述本发明的其他特征和优点,以及各种实施例的结构和操作。应注意,本发明不限于本文描述的具体实施例。这些实施例仅出于说明性目的而在本文呈现。基于本文包含的教导,附加实施例对于(多个)相关领域的技术人员将是显而易见的。

附图说明

合并于此并形成说明书的一部分的附图示出本申请的实施例,并且与说明书一起进一步用于解释实施例的原理并使得相关领域的技术人员制造和使用实施例。

图1是根据示例实施例的应用开发系统的框图。

图2示出根据示例实施例的提供用于开发工作流的过程的流程图。

图3示出根据示例实施例的应用设计器应用的框图。

图4示出根据示例实施例的示出显示示例性工作流的浏览器窗口的显示器屏幕的框图。

图5-8示出根据示例实施例的使用开发gui的各种开发阶段中的示例性工作流的视图。

图9-11示出根据示例实施例的使用开发gui的各种阶段中的推送连接创建过程的视图。

图12示出根据示例实施例的应用开发系统的示例gui屏幕,其可以用于创建每当在特定数据库中创建记录时向目标应用的一个或多个用户发送推送通知的工作流。

图13描绘了根据示例实施例的示例gui屏幕,其中用户指定了接收者群组。

图14是根据示例实施例的用于执行工作流的系统的框图,该工作流包括运行时环境中的一个或多个工作流步骤。

图15示出根据示例实施例的提供用于执行工作流的工作流逻辑的过程的流程图。

图16示出根据示例实施例的提供用于经由工作流应用生成和发送推送通知的过程的流程图。

图17-20示出根据示例实施例的开发gui的管理界面的视图。

图21示出根据示例实施例的提供用于根据策略规则发送推送通知的过程的流程图。

图22示出根据示例实施例的提供用于根据策略规则拒绝推送通知请求的过程的流程图。

图23示出可以用于实现实施例的示例计算设备的框图。

通过下面结合附图给出的详细描述,本发明的特征和优点将变得更加明显,其中相同的附图标记始终标识对应的元素。在附图中,相同的附图标记通常指示相同的、功能相似的和/或结构相似的元素。元素首次出现的附图由对应附图标记中最左边的(多个)数字指示。

具体实施方式

i.介绍

本说明书和附图公开了包含本发明的特征的一个或多个实施例。本发明的范围不限于所公开的实施例。所公开的实施例仅举例说明了本发明,并且所公开的实施例的修改版本也包含在本发明中。本发明的实施例由所附权利要求限定。

说明书中对“一个实施例”、“实施例”、“示例实施例”等的引用指示所描述的实施例可以包括特定特征、结构或特性,但是每个实施例可以不必包括特定的特征、结构或特征。而且,这些短语不一定是指相同实施例。此外,当结合实施例描述特定特征、结构或特性时,提出本领域技术人员知道结合其他实施例(无论是否明确描述)实现这样的特征、结构或特性。

在讨论中,除非另有说明,否则诸如“基本上”和“约”的修饰本公开的实施例的一个或多个特征的条件或关系特性的形容词被理解为表示条件或特性被定义在对于预期的应用的实施例的操作可接受的容差内。

如下描述了许多示例性实施例。注意,本文提供的任何部分/子部分标题不旨在是限制性的。贯穿本文档描述了实施例,并且任何类型的实施例可以包括在任何部分/子部分下。此外,在任何部分/子部分中公开的实施例可以以任何方式与在相同部分/子部分和/或不同部分/子部分中描述的任何其他实施例组合。

ii.示例实施例

当可用的现成软件不能完全解决所期望的功能时,通常会创建业务应用和消费者应用。许多业务和消费者应用是交互式的,具有用户可以输入数据的gui,并且可以用于提交数据查询,执行操作和查看结果。

由于应用复杂性和所需的编程专业知识,用户倾向于依赖于信息技术(it)人员来编码他们的应用。例如,配置应用以将数据(例如,来自sql(结构化查询语言)数据库的数据,来自加利福尼亚州旧金山的salesforce.com的客户关系信息,来自由加利福尼亚州帕洛阿尔托的facebook公司运营的或由加利福尼亚州旧金山的twitter公司运营的的社交网络信息)从感兴趣的源拉取到企业或消费者一个困难的过程。

实施例使得能够更容易地开发用户应用和/或工作流,包括商业应用和消费者应用,其使得能够向终端用户发送和/或推送通知。使得(多个)应用和/或(多个)工作流的开发者(其也可以称为“制造者”或“创建者”)能够开发这样的(多个)应用和/或(多个)工作流,而无需是专家编程者(即,这样的开发者可以是几乎没有编程经验的业务用户)。本文描述的技术有利地为用户提供灵活的框架以用于发送针对某些活动(例如,商业活动)的关键路径上的任务的通知。本文描述的技术还使得能够以安全的方式将跨应用推送通知发送到目标应用的终端用户。例如,可以监测推送通知请求以根据管理者可配置的策略规则确定它们是否被授权发送,从而防止发送不期望的推送通知。此外,取决于有多少用户要接收特定推送通知,可以扩大(或缩小)计算资源。这有利地使得本文描述的系统能够满足实时发送大量推送通知的需求。

在以下部分中描述了示例实施例以用于开发使得能够发送/接收推送通知的(多个)用户应用和/或(多个)工作流。在以下描述中,使用本文描述的技术开发用户应用的人被称为“开发者”,其与在运行时使用用户应用的人(“用户”或“终端用户”)区分开。然而,注意,如本文所提及的“开发者”不需要具有计算机编程方面的专业知识。本文描述的实施例使得能够在没有特殊编程技能的情况下开发应用。

a.示例应用/工作流开发实施例

在实施例中,可以以各种方式支持应用(例如,商业应用或工作流应用)的开发。例如,图1示出根据示例实施例的应用开发系统100。如图1所示,系统100包括计算设备102、存储装置104、(多个)基于网络的应用124和服务器134。服务器134包括应用设计器106(例如,在存储装置中)。应用设计器106包括ui生成器110。计算设备102包括显示器屏幕108和浏览器136。存储装置104存储本地应用122。系统100描述如下。

计算设备102可以是任何类型的固定或移动计算设备,包括移动计算机或移动计算设备(例如,设备、膝上型计算机、笔记本计算机、诸如appleipadtm的平板计算机、上网本等)、可穿戴计算设备(例如,包括诸如glasstm等智能眼镜的头戴式设备)、或诸如台式计算机或pc(个人电脑)的固定计算设备。服务器134可以包括一个或多个服务器设备和/或其他计算设备。

存储装置104中的本地应用122是计算设备102可访问而无需通过网络进行通信的应用的示例。本地应用122可以被配置为当由计算设备102的处理器执行时执行数据处理和/或数据托管操作,并且可以在那些应用的运行时期间向由应用设计器106创建的应用提供数据132。本地应用122可以是任何类型的本地应用/服务,诸如数据库应用(例如,电子表格)、消息传递应用(例如,)、生产力应用(例如,等)或其他类型的应用。虽然图1示出单个本地应用,但是计算设备102可以存在任何数目的本地应用,包括数十、数百或更大数目的数目。

(多个)基于网络的应用124是基于网络的应用的示例,也称为“云”应用或服务。(多个)基于网络的应用124由计算设备102通过(多个)网络126可访问,可以被配置为执行数据处理和/或数据托管操作,并且可以在那些应用的运行时期间向由应用设计器106创建的应用提供数据130。(多个)基于网络的应用124每个可以是任何类型的web可访问的应用/服务,诸如数据库应用、社交网络应用、消息传递应用和/或服务、金融服务应用、新闻应用、搜索应用、web可访问的生产力应用、云存储和/或文件托管应用等。这些应用的示例包括web可访问的sql(结构化查询语言)数据库、salesforce.comtm财经、(www.nytimes.com)、google搜索、必应、googledocstmoffice365、dropboxtm等。(多个)基于网络的应用124可以包括任何数目的基于网络的应用,包括数十、数百、数千或更多的数目。

注意,数据130和数据132每个可以包括任何类型的数据,包括消息、通知、计算数据、检索数据和/或应用请求或可使用的任何其他类型的信息。

计算设备102和服务器134每个可以包括至少一个网络接口,该网络接口使得能够通过(多个)网络126与彼此以及与(多个)基于网络的应用124进行通信。这样的网络接口的示例(有线或无线)包括ieee802.11无线局域网(wlan)无线接口,全球微波接入互操作性(wi-max)接口、以太网接口、通用串行总线(usb)接口、蜂窝网络接口、蓝牙tm接口、近场通信(nfc)接口等。网络接口的其他示例在本文其他地方描述。(多个)网络126的示例包括局域网(lan)、广域网(wan)、个域网(pan)和/或诸如因特网的通信网络的组合。

应用设计器106被配置为被操作/交互以创建应用(例如,(多个)商业应用、(多个)工作流应用等)。例如,开发者可以通过与能够访问基于网络的应用的计算设备102处的应用(诸如,浏览器136)交互来访问应用设计器106。开发者可以使用浏览器136来遍历到应用设计器106的网络地址(例如,统一资源定位符),其在浏览器窗口114中调用应用设计器gui116(例如,网页)。使得开发者能够与应用设计器gui116交互以开发应用。

如图1所示,应用设计器106包括ui生成器110和应用逻辑生成器112。ui生成器110被配置为将应用gui信息140(例如,一个或多个网页、图像内容等)发送到浏览器136以在显示器屏幕108中在浏览器窗口114中显示为应用设计器gui116。应用设计器gui116可以由开发者与之交互,以选择和配置各种应用界面元素(例如,按钮、菜单、文本框等)到业务应用或工作流步骤中以进入工作流。

例如,开发者可以在应用设计器gui116中插入和排序多个工作流步骤,其中一个或多个步骤与本地或基于网络的应用相关联。开发者可以进一步插入和排序一个或多个工作流步骤,使得正在开发的应用能够向一个或多个其他应用(即,目标应用)的一个或多个用户发送消息。(多个)目标应用可以是与发送推送通知的应用(即,源应用)相同类型的应用。备选地,(多个)目标应用可以是与源应用不同类型的应用(例如,(多个)目标应用不是源应用的(多个)其他实例)。消息可以是电子邮件、短消息服务(sms)消息、推送通知等。这样的(多个)步骤可以使用与某个应用或服务(例如,推送通知服务,诸如但不限于来自microsoft的azure通知中心)相关联的连接器来向具有经由(多个)目标应用接收这样的通知的权限的任何用户发送通知。如本文所使用的,术语“连接器”通常是指编程接口(例如,应用编程接口(api)),其调用应用或服务以用于与正在开发的应用通信。当开发要调用这样的应用或服务的应用时,开发者可以创建与连接器相关联(例如,使用)的连接。开发者可以指定特定于正在开发的应用的连接的一个或多个属性(即,开发者创建已经被定制以与正在开发的应用一起使用的连接的实例)。在下面的子部分b中描述了有关连接创建的附加详细信息。

在正在开发工作流应用的示例中,浏览器136将所选择的工作流步骤、对应的配置信息和工作流步骤顺序信息存储为构建的工作流信息138。构建的工作流信息138处被发送到服务器134处的应用逻辑生成器112。应用逻辑生成器112基于由构造的工作流信息138表示的组合的工作流生成工作流逻辑120。由工作流逻辑120表示的工作流随后可以由终端用户在运行时调用。

在工作流的运行时期间,工作流逻辑120可以调用与工作流逻辑120的工作流步骤相关联的一个或多个本地或基于网络的应用的操作。在工作流步骤被配置为发送推送通知的示例中,工作流逻辑120可以调用基于网络的应用的操作,诸如使得能够从正在开发的应用和目标应用发送推送通知的推送通知服务。例如,(多个)基于网络的应用124之一可以是推送通知服务,诸如来自microsoft的azure通知中心。每个工作流步骤可以从应用设计器gui116接收输入数据,从本地应用122接收数据132,从(多个)基于网络的应用124接收数据130,和/或从工作流逻辑120的另一工作流步骤接收数据。

应用设计器106可以以各种方式操作,以支持应用或工作流的开发。例如,在实施例中,应用设计器106可以根据图2进行操作。图2示出根据示例实施例的提供用于开发工作流的过程的流程图200。流程图200和应用设计器106如下关于图3和4描述。图3示出根据示例实施例的应用设计器106的框图。如图3所示,应用设计器106包括ui生成器110和应用逻辑生成器112。ui生成器110包括工作流步骤库生成器302、模板库生成器304、保存的工作流选择器306,步骤选择器308和步骤配置ui生成器310。应用逻辑生成器112包括工作流定义生成器312和接口定义生成器314。图4示出根据示例实施例的显示器屏幕108上的浏览器窗口402中显示的应用设计器gui116的示例。

图2的流程图200从步骤202开始。在步骤202中,发起工作流的开发。例如,在一个实施例中,应用设计器106可以由与计算设备102处的浏览器136交互的开发者调用。开发者可以遍历到指向服务器134处的应用设计器106以调用应用设计器106的链接或其他网络地址,使应用设计器106向浏览器136提供应用gui信息140(例如,一个或多个网页,图像内容等)以在显示器屏幕108中在浏览器窗口114中显示为应用设计器gui116。一旦被调用,开发者可以打开现有工作流以进行进一步开发,或者可以开始新的工作流。

例如,应用设计器gui116的显示页面可以显示由工作流步骤库生成器302生成的库或工作流步骤。工作流步骤库包括多个可选择的工作流步骤。工作流步骤可以存储在工作流库118中,并且由应用设计器gui116访问以用于显示。开发者可以选择工作流步骤之一以包括在他们的工作流中,并且可以继续配置工作流步骤的内容,和/或可以添加附加工作流步骤以继续生成他们的工作流。

例如,如图4所示,工作流步骤库生成器302可以使得能够选择步骤406a、406b和406c以插入到正在应用设计器gui116中组合的工作流404中。可以插入任何数目的工作流步骤。

在另一示例中,应用设计器gui116的显示页面可以显示由模板库生成器304生成的模板库。模板库包括多个可选择的工作流模板,每个工作流模板包括预先连接以用于操作的一个或多个工作流步骤。工作流模板可以存储在工作流库118中,并且被应用设计器gui116访问以用于显示。开发者可以选择工作流模板之一以包括在他们的工作流中,并且可以继续配置工作流模板的内容,和/或者可以向工作流模板的工作流步骤添加附加工作流步骤,以生成更复杂的工作流。

例如,在图4的示例中,步骤406a和406b可以包括在工作流404中放置的工作流模板中,步骤406c可以随后被添加(例如,从工作流步骤库中)。

在另一示例中,保存的工作流选择器306可以使得开发者能够选择要打开的现有的、保存的工作流以在应用设计器gui116的显示页面中进一步编辑。保存的工作流可以存储在工作流库118或其他地方。例如,保存的工作流选择器306可以显示保存的工作流的列表,可以支持导航到保存的工作流,和/或可以提供用于选择保存的工作流以进行编辑的另一机制。然后,开发者可继续进一步配置工作流的内容,和/或可以将附加工作流步骤添加到工作流的工作流步骤以生成更复杂的工作流。

在步骤204中,使得能够选择一个或多个步骤以包括在工作流中。当开发者正在编辑工作流时,步骤选择器308可以使得开发者能够选择进一步的工作流步骤以包括在工作流中,并且可以对步骤进行排序。工作流步骤可以由工作流库118中的步骤选择器308访问。例如,步骤选择器308可以显示工作流步骤的下拉菜单,可用工作流步骤的可滚动和/或可搜索的列表,或者可以以另一种方式提供工作流步骤,并且可以使得开发者能够从列表中选择任何数目的工作流步骤以包括在工作流中。

在一个示例中,步骤选择器308可以使得开发者能够选择与本地应用(例如)或基于网络的应用(例如)相关联的步骤。在另一示例中,步骤选择器308可以使得开发者能够选择与基于网络的应用124相关联的步骤,诸如用于发送推送通知的推送通知服务。步骤选择器308使得步骤能够按顺序可选地与条件步骤链接在一起,以包括在工作流逻辑120中。

在步骤206中,使得能够配置工作流中的每个选择的步骤。在实施例中,步骤配置ui生成器310使得能够配置工作流中的每个工作流步骤。步骤配置ui生成器310访问工作流库118中的每个选择的工作流步骤以确定工作流步骤的配置,包括其所有输入参数以及用户或开发者需要提供给工作流步骤以配置它的任何其他选择或信息。例如,步骤配置ui生成器310可以生成ui,该ui使得开发者能够输入、导航到、使用下拉菜单、或以其他方式将输入数据输入到工作流步骤的文本输入框或其他数据输入元素(例如,输入参数)中。开发者可以将先前步骤的输出配置为用于工作流步骤的输入数据。步骤配置ui生成器310可以使得数据或其他对象能够被复制和粘贴、拖放或以其他方式输入从其他地方复制到工作流步骤的数据输入框中。

在步骤208中,生成用于实现工作流的工作流逻辑。在实施例中,应用逻辑生成器112被配置为当开发者指示工作流完成时,例如当开发者与应用设计器gui116交互以保存工作流时,基于构建的工作流信息138封装并生成工作流逻辑120。如图3所示,应用逻辑生成器112接收构建的工作流信息138。构造的工作流信息138指示哪些工作流步骤已插入工作流、它们的输入参数值以及它们的排序。应用逻辑生成器112还接收选择的工作流逻辑320,其是工作流的每个工作流步骤的工作流逻辑,如构造的工作流信息138中所指示的。在一个示例中,应用逻辑生成器112针对构造的工作流信息138中指示的每个工作流步骤从工作流库118检索工作流逻辑,以接收选择的工作流逻辑320。应用逻辑生成器112基于构建的工作流信息138和选择的工作流逻辑320为工作流生成工作流逻辑120。例如,应用逻辑生成器112可以以如下形式生成工作流逻辑120:可执行文件、压缩文件或其他形式,这样的形式可以以独立方式执行、可以在浏览器中执行,或者可以以另一种方式执行,这取决于正在生成的特定工作流类型。

参考图3,应用逻辑生成器112可以生成工作流逻辑120以包括至少两个组件(例如,文件):工作流定义信息316和接口定义信息318。工作流定义信息316包括定义工作流逻辑的工作流的顺序和操作的信息(例如,列出工作流步骤操作及其排序/顺序),并且包括工作流的参数值。例如,可以生成工作流定义信息316以包含json(javascript对象表示法)文件格式或另一种形式的信息。接口定义信息318包括定义工作流的工作流步骤的接口/参数(例如,输入和输出)的信息。例如,可以生成接口定义信息318以包含openapi格式或以另一种形式的信息(其是rest(表示性状态转移)web服务的规范)。例如,每个工作流步骤可以在工作流库118中表示为openapi格式的api(应用编程接口)元数据,api元数据定义工作流步骤的必要输入和输出(参数),使得能够根据api定义访问服务。在这样的实现中,工作流定义信息316中的操作引用接口定义信息318中的对应api元数据,以给出生成的工作流的完整结构(例如,工作流定义信息316中的用参数值定义的每个顺序工作流步/操作具有对应的api,其在接口定义信息318中定义)。

因此,流程图200和应用设计器106使得开发者能够创建工作流。图5-8示出根据示例实施例的使用开发gui的各种开发阶段中的示例性工作流的视图。例如,图5-8每个示出浏览器窗口402,其显示用于开发工作流的应用设计器gui116的对应视图。

例如,图5示出包括工作流步骤502和添加界面504的浏览器窗口402。开发者选择工作流步骤502作为工作流中的第一步骤。可以由开发者与添加界面504(例如,按钮或其他gui控件)交互以向工作流添加进一步的工作流步骤。

如上所述,开发者能够从步骤列表或库、工作流步骤库、模板库或其他地方选择工作流步骤502。列表、库(library)或库(gallery)可以包括任何数目的工作流步骤。工作流步骤可以与本文其他地方提到的或者以其他方式已知的基于网络的应用相关联(例如,dropboxtm、来自microsoft的azure通知中心等)、和/或与本文其他地方提到的或者以其他方式已知的本地应用相关联(例如,)。每个工作流步骤被配置用于即插即用到工作流中。每个工作流步骤被配置有适当的逻辑和/或(多个)接口以执行其相应的(多个)功能,其可以包括与本地或远程应用通信。例如,工作流步骤可以被配置为向应用发送查询(例如,对搜索引擎的搜索查询、对数据库的数据库查询、对来自社交网络应用的数据的请求等)、被预先配置为如何正确向应用发送和格式化这样的请求。工作流步骤可以被配置为接收对请求的响应、被预先配置为如何针对期望的响应数据解析响应。因此,工作流的开发者不需要知道如何用编程语言编写程序代码,与复杂的应用接口(例如,应用编程接口(api))对接,或者理解网络通信协议,因为工作流步骤已经被设置。当工作流步骤由开发者插入工作流逻辑中时,开发者配置工作流步骤的输入(如下所述),否则预先配置的工作流步骤处理与其他应用的任何通信。

在图6中,开发者已经与步骤502交互(例如,通过鼠标点击等)以使步骤配置ui生成器310生成用于步骤502的配置的ui。例如,在图6的示例中,工作流步骤502被配置为监测由开发者在文本输入框中标识的特定文件夹中要被创建的文件(例如,通过输入,点击由“…”指示的导航器等)。当工作流步骤502确定将文件添加到指示的文件夹时,触发工作流步骤502之后的工作流步骤。因此,在该示例中,工作流步骤502可以被认为是触发步骤。

例如,在图7中,开发者与添加界面504交互以选择下一工作流步骤702。在实施例中,与添加界面504的交互调用图3中的步骤选择器308,其使得开发者能够选择工作流步骤。在图7的示例中,工作流步骤702是条件步骤。在实施例中,可以选择逻辑元素以包括在工作流中,包括算术逻辑(例如,加法器、乘法器等)、条件逻辑等,其基于在先前工作流步骤中确定的变量值进行操作。工作流步骤702的条件使得工作流能够基于条件(例如,变量值)的确定来分叉。条件可以包括对象名称、关系(例如,逻辑关系、诸如等于、包括、不等于、小于、大于等)和值,它们都由与工作流步骤702交互的开发者定义。可以根据工作流基于条件而分叉的方式来执行对应的动作步骤。

在图7的一个说明性示例中,对象名称可以被选择(例如,从可能性列表中)作为工作流步骤502的创建的文件的名称,关系可以是“包含”(例如,通过下拉菜单选择)并且值可以是“虚拟文件”(例如,由开发者输入)。如果文件名称包含“虚拟文件”,则条件评估为“是”条件,其调用第一动作工作流步骤704,并且如果文件名称不包含“虚拟文件”,则条件评估为“否”条件,其调用第二动作工作流步骤。如果需要的话,可以由开发者为“是”和“否”动作工作流步骤704和706中的一个或两个定义动作。

例如,在图8中,开发者与动作工作流步骤704交互以定义动作。在该示例中,开发者通过经由步骤选择器308选择工作流步骤来定义动作工作流步骤704。如图8所示,显示工作流步骤802a、802b、802c的列表,开发者可从列表中选择要为动作工作流步骤704执行的工作流步骤(例如,通过鼠标点击等)。工作流步骤可以是触发步骤、动作步骤或条件步骤。在选择工作流步骤之后,开发者可以如上所述配置工作流步骤。此外,开发者可以配置用于工作流步骤706的动作,可以添加其他工作流步骤等,最终能够保存工作流。

注意,在一些实施例中,诸如第一工作流步骤502的工作流步骤可能需要凭证(例如,登录和密码)来访问所指示的数据(例如,访问在图6中的文本输入框中所指示的位置处的文件)。因此,可以请求开发者提供与第一工作流步骤502相关联的凭证信息,使得当在运行时期间执行第一工作流步骤502时,可以访问数据。备选地,可以在运行时期间向用户请求凭证。

b.示例连接创建实施例

开发者能够创建一个或多个连接,这些连接可以在由开发者和/或(多个)其他开发者开发的(多个)应用中实现。如上所述,(多个)连接使得正在开发的应用能够使用相关联的连接器来调用另一应用或服务。在下面描述的示例中,创建连接以生成推送通知连接。通过指定要接收推送通知的目标应用来定制连接。例如,图9-11示出根据实施例的用于创建推送通知连接的gui(例如,应用设计器gui116)的视图。

例如,图9示出根据实施例的应用设计器gui116的gui屏幕900。如图9所示,gui屏幕900包括多个用户可激活的界面元素,包括但不限于用户界面元素902、用户界面元素904、用户界面元素906和用户界面元素908。用户界面元素902(“我的应用“)在被用户激活时可以使得显示gui屏幕,其示出由用户开发的应用的列表。用户界面元素904(“流”)在被用户激活时可以使得显示gui屏幕,其示出由用户开发的工作流的列表。用户界面906(“连接”)在被用户激活时可以使得显示gui屏幕,其示出由用户创建的连接的列表。如图9所示,用户已激活用户界面906,因此示出由用户创建的连接的列表(即,“连接1”、“连接2”和“连接3”)。还如图9所示,还显示用户界面元素908(“新连接”)。用户可以激活用户界面元素908(“新连接”)以发起连接创建过程。

例如,图10示出根据实施例的gui屏幕1000,其响应于用户激活用户界面908而被显示。如图10所示,响应于用户激活用户界面元素908,显示用户可选择的连接标识符1002、1004、1006和1008的列表,用户可选择的连接标识符1002、1004、1006和1008每个标识特定类型的连接。例如,连接标识符1002标识与第一软件应用(例如,“项目在线”)相关联的第一连接类型,连接标识符1004标识与第二软件应用(例如,“outlook.com”)相关联的第二连接类型,连接标识符1006标识与第一服务(例如,标记为“推送通知”的推送通知服务)相关联的第三连接类型,并且连接标识符1008标识与第三软件应用(例如,“sharepoint”)相关联的第四连接类型。在选择连接标识符1002、1004、1006或1008之一时,显示gui屏幕,该gui屏幕使得用户能够为所选择的连接类型创建连接。如图10所示,用户选择了推送通知连接类型。

图11示出根据实施例的gui屏幕1100,其响应于用户激活连接标识符1006而被显示。如图11所示,在选择连接标识符1006时,向用户呈现窗口1102,该窗口1102使得用户能够指定正在创建的推送通知连接的某些参数。例如,如图11所示,窗口1102包括用户交互字段1104和用户交互字段1106。用户交互字段1104可以使得用户能够指定正在创建的连接的名称,并且用户交互字段1106可以使得用户能够指定目标应用,该目标应用要经由正在创建的推送通知连接接收推送通知。目标应用可以是与其中包含连接的源应用不同类型的应用。如图11所示,用户已经将连接的名称指定为“对案例管理的通知”。可以使用唯一id、应用名称等来指定目标应用。如图11所示,用户经由唯一id(即“f3ded1c1-612c-810b-da94-4c67d429a4b9”)指定了目标应用。在用户指定参数之后,用户可以通过激活用户界面元素1108“保存”来保存连接。

c.示例启用推送通知的应用/工作流开发实施例

一旦创建了连接,就可以使得开发者能够将其合并到他或她正在开发的应用中。例如,开发者可以创建工作流应用,该工作流应用包括与根据实施例的推送通知连接相关联的工作流步骤,从而使得工作流能够将推送通知发送到其他应用。

这些步骤还可以与被设计为与其他应用(例如,电子邮件应用、文档管理应用、数据库应用、社交网络应用、金融服务应用、新闻应用、搜索应用、生产力应用、云存储应用、文件托管应用等)交互的其他工作流步骤组合。

如先前所描述的,应用设计器106生成工作流应用gui116,其使得开发者能够在开发中的工作流内配置工作流步骤,其中这样的配置包括指定工作流步骤的输入参数的值。在实施例中,应用设计器gui116使得开发者能够容易地将第二工作流步骤的输入参数的值指定为包括相同工作流中的第一工作流步骤的输出参数的值。

具体地,根据实施例,应用设计器gui116将在开发中的工作流的第一工作流步骤的输出参数表示为用户交互对象。这些对象可以由开发者轻松地进行交互(例如,点击或拖放),以使对象被插入到数据输入元素(例如文本框)中,该数据输入元素用于指定在开发中的工作流的第二工作流步骤的输入参数的值。当生成表示第一和第二工作流步骤的可执行逻辑时,上述的将对象插入到数据输入元素中具有使第二工作流步骤的输入参数的值被定义为包括与插入的对象相对应的输出参数的值的效果。

为了帮助说明一些前述概念,图12描绘了根据实施例的应用开发系统的示例gui屏幕1200,其可以用于创建每当在特定数据库中创建记录时向目标应用的一个或多个用户发送推送通知的工作流。gui屏幕1200可以例如由应用设计器106的ui生成器110生成,如先前参考图1的工作流开发系统100所描述的。

具体地,如图12所示,工作流包括标题为“当创建记录时”的第一工作流步骤1202和标题为“对案例管理的通知”的第二工作流步骤1204。第二工作流步骤1204实现上面在子部分b中描述的“对案例管理的通知”连接。第一工作流步骤1202和第二工作流步骤1204中的每个可以被配置为接收可以由用户手动定制的一个或多个用户可定制参数。第一工作流步骤1202可以被称为触发步骤,因为它在运行时由于发生触发事件而被激活。在这种情况下,每当记录被添加到指定数据库时,就激活第一工作流步骤1202。

第二工作流步骤502可以被称为动作步骤,因为它使动作响应于触发步骤的执行而在运行时执行。在这种情况下,第二工作流步骤1204中的动作是当在指定数据库(例如,经由工作流步骤502指定的数据库)中创建记录时发送推送通知。可以经由“对案例管理的通知”连接来发送推送通知。如图12所示,第二工作流步骤1204包括数据输入框1206、数据输入框1208、下拉菜单1210和数据输入框1212。数据输入框1206被配置为接收表示要被发送的推送通知的一个或多个接收者的一个或多个用户可定制参数。这样的(多个)参数包括但不限于电子邮件地址、电话号码等。如图12所示,在数据输入框1206中提供用户交互对象1214作为输入参数。用户交互对象1214表示由于在指定数据库(例如,在工作流步骤102中指定的数据库)中创建记录而生成的新案例的推送通知的接收者。

数据输入框1208被配置为接收用户可定制参数,该参数表示要经由推送通知发送的消息。如图12所示,用户交互对象1216与用户指定的文本一起被提供作为数据输入框1208中的输入参数。用户交互对象1216表示由于在指定数据库中创建记录而创建的案例的案例名称。

下拉菜单1210使得用户能够指示在接收到通知时是否要启动目标应用(即,接收推送通知的应用)。在图12所示的示例中,开发者选择了“是”选项,这使在接收到推送通知时启动目标应用。在另一示例中,开发者可以选择“否”选项,这使推送通知经由接收者的设备(例如,移动智能电话)显示而不启动目标应用。注意,还可以使得开发者能够指定目标应用在接收到通知时应该如何行为。例如,开发者可以指定指示目标应用将遍历到其特定gui屏幕的参数。

数据输入框1212被配置为接收一个或多个附加用户可定制参数,例如但不限于新创建的案例的id号和/或案例的所有者。如图12所示,用户交互对象1218被提供作为数据输入框1212中的输入参数。用户交互对象1218表示由于在指定数据库中创建记录而创建的案例的案例id。

根据实施例,除了单个接收者之外或代替单个接收者,开发者可以指定接收者群组。例如,图13描绘了根据实施例的示例gui屏幕1300,其中用户指定了接收者群组。如图13所示,用户可以开始输入群组标识符(例如,群组电子邮件地址或表示其的字符串)。作为响应,应用设计器gui106经由滚动框1302返回与输入的群组标识符匹配的群组标识符。开发者可以选择经由滚动框1302显示的期望的群组标识符。如下面的子部分d中所描述的,在执行工作流期间,群组标识符可以经由目录服务扩展为多个个体用户标识符。用户标识符可以用于将推送通知单独地发送到对应的用户。

d.示例启用推送通知的应用/工作流执行实施例

根据实施例,终端用户可以执行如本文所述开发的应用。在正在执行工作流的示例中,在操作期间,终端用户可以与工作流的gui交互,这可以导致工作流逻辑被执行。工作流逻辑可以在本地(例如,在浏览器中)和/或在远程服务(在“云”中)执行。工作流逻辑可以向一个或多个本地或网络可访问的应用(例如,推送通知服务)发送数据或从其接收数据。因此,工作流执行其预期功能。

图14是根据示例实施例的用于执行包括运行时环境中的一个或多个工作流步骤的工作流的系统1400的框图。如图14所示,系统1400包括计算设备1402、(多个)基于网络的应用124、服务器134、服务器1410、服务器1414、服务器1422、服务器1426和计算设备1412。计算设备1402包括工作流应用。服务器134包括应用执行引擎1418。服务器1410包括推送通知执行引擎1430。服务器1422包括目录服务1436。服务器1414包括一个或多个队列1432。服务器1426可以被配置为经由应用设计器gui116执行管理界面1438。计算设备1412包括被配置为接收推送通知的目标应用1428。系统1400描述如下。

可选地存在(多个)基于网络的应用124,并且是否与这些实体通信将取决于工作流逻辑120的配置。取决于工作流逻辑120的配置,其他基于网络的应用和服务可以存在并且与其通信。

计算设备1402和/或计算设备1412可以是本文描述的或以其他方式已知的任何类型的固定或移动计算设备。计算设备1402、计算设备1412、服务器134、(多个)基于网络的应用124、服务器1410、服务器1414、服务器1422和/或服务器1426中的每个被配置为通过(多个)网络126彼此通信(例如,在“基于云的”实施例中)。

在一个实施例中,工作流在服务器134处由应用执行引擎1418执行,并且工作流应用1404是ui应用,其使得终端用户能够在计算设备1402处与执行的工作流交互,例如通过选择和调用工作流,从执行的工作流接收通信(例如,消息、警报、输出数据等),向执行的工作流提供所请求的输入数据等。在这样的实施例中,工作流应用1404可以是与应用执行引擎1418相关联的应用ui应用(例如,工作流应用1404可以是应用执行引擎1418的扩展),其可以与计算设备1402处的浏览器分开操作或在浏览器内操作,或者可以以另一种方式配置。如图14所示,应用执行引擎1418可以接收和加载用于选择的工作流应用的工作流逻辑120(例如,由用户从工作流库中选择),并且可以执行工作流逻辑120以执行工作流应用。

在另一实施例中,工作流应用1404可以被配置为在计算设备1402处执行工作流。例如,计算设备1402的终端用户可以与应用1404的用户界面交互以选择和调用特定工作流(例如,从工作流库中选择)。在这样的实施例中,工作流逻辑120可以与计算设备1402处的浏览器分开操作或在浏览器中操作,或者可以以另一种方式配置。如图14所示,应用1404可以加载用于选择的工作流的工作流逻辑120(例如,由用户从工作流库中选择),并且可以执行工作流逻辑120以执行工作流。

在另一实施例中,工作流逻辑120的第一部分可以在计算设备1402处的工作流应用1404中执行,并且工作流逻辑120的第二部分可以在服务器134和/或其他地方的应用执行引擎1418中执行。

在工作流逻辑120的执行期间,可以为(多个)工作流步骤调用推送通知服务(例如,通过推送通知执行引擎1430),推送通知连接与(多个)工作流步骤相关联。例如,在执行这样的工作流步骤时,计算设备1402发送请求1406以向服务器134发送推送通知。请求1406可以包括标识推送通知的一个或多个接收者的一个或多个标识符,为推送通知显示的消息,以及与推送通知相关联的一个或多个参数(例如,指示与推送通知相关联的目标应用是否应当在接收到推送通知时以某种方式打开和/或行为的参数)。应用执行引擎1418可以生成对应于请求的推送通知作业1408并将其发送到服务器1414上托管的(多个)队列1432。(多个)队列1432可以被配置为存储源自一个或多个源应用的推送通知作业。推送通知执行引擎1430可以被配置为以由(多个)队列1432指定的顺序从(多个)队列1432拉取推送通知作业1408。

推送通知执行引擎1430可以被配置为通过确定与推送通知作业相关联的用户标识符的数目,来确定将接收推送通知的接收者的数目。在为推送通知作业指定群组标识符的情况下,推送通知执行引擎1430可以向服务器1422上托管的目录服务1436提供请求1416。目录服务1436可以维护将群组标识符映射到个体用户标识符(例如,电子邮件地址、电话号码等)的数据库。目录服务1436可以被配置为检索用户标识符,每个用户标识符唯一地标识包括在由群组标识符标识的群组中的用户。目录服务1436可以向推送通知执行引擎1430提供一个或多个响应1424,其包括所确定的用户标识符。目录服务1436的示例包括但不限于microsoft的azure动态目录图服务。

推送通知执行引擎1430可以被配置为针对由用户标识符标识的每个用户生成推送通知。推送通知执行引擎1430可以被配置为动态地缩放在生成推送通知时要使用的计算资源量(例如,处理能力、存储器、存储装置、网络带宽等)。例如,在要生成的推送通知的数目相对较大的情况下(例如,由于大量接收者),推送通知执行引擎1430可以使得分配附加计算资源。在要生成的推送通知的数目相对较小的情况下,推送通知执行引擎1430可以不分配附加数目和/或减少要用于生成推送通知的计算资源量。根据实施例,推送通知执行引擎1430可以分配一个或多个附加服务器(未示出),在服务器1410上执行的虚拟机和/或在其他服务器(未示出)上执行的虚拟机,以增加用于推送通知生成的计算资源量。推送通知执行引擎1430可以解除分配(多个)服务器、在(多个)服务器1410(和/或(多个)其他服务器)上执行的虚拟机以减少用于推送通知生成的计算资源量。

生成的推送通知的传输可以由推送通知服务来处理,例如来自microsoft的azure通知中心。例如,参考图14,(多个)基于网络的应用124可以包括推送通知服务。推送通知执行引擎1430可以将生成的推送通知1420提供给(多个)基于网络的应用124,其将推送通知发送到适当的目标应用(例如,目标应用1428)的用户。例如,如图14所示,(多个)基于网络的应用124将推送通知1434发送到在计算设备1412上执行的目标应用1428,其可以与由目录服务1036确定的用户标识符所标识的特定用户相关联。在某些实施例中,接收者不需要在与他们相关联的设备上安装目标应用以接收推送通知。相反,接收者只需具有用于安装目标应用的适当的(多个)权限。

根据一个实施例,应用执行引擎1418还包括授权处理器1440。授权处理器1440可以被配置为根据与用于发送推送通知的连接相关联的策略规则,确定是否授权将推送通知发送到目标应用(例如,目标应用1428)的(多个)用户。策略规则可以指定哪些应用和/或用户被授权发送和/或接收推送通知。例如,授权处理器1440可以确定通知的发送者,发送通知的应用,是否由推送通知指定任何接收者和/或被指定接收推送通知的目标应用是否具有发送/接收推送通知的权限。如果授权处理器1440确定发送者、接收者、源应用和/或目标应用不具有发送和/或接收推送通知的权限,则授权处理器1440拒绝(例如,取消)由工作流应用1404提供的推送通知请求(例如,请求1406)。因此,接收者和/或目标应用将不会接收推送通知。这有利地使得未授权的推送通知(例如,垃圾邮件)能够被拒绝并且不被发送到用户,从而提供用于推送通知的安全通道。注意,授权处理器1440可以执行其他验证方案以确定是否授权发送推送通知。例如,授权处理器1440可以进一步确定指定的接收者信息是否是有效格式(例如,电子邮件地址正则表达式),确定所提供的接收者信息是否存在于目录服务1436等中。

由授权处理器1440使用的策略规则可以由管理者经由管理界面(例如,管理界面1438)来配置。下面在子部分e中描述有关管理界面1438和策略规则的配置的其他详细信息。

图15示出根据示例实施例的提供用于执行工作流的工作流逻辑120的过程的流程图1500。如下出于说明的目的关于图14的系统1400描述流程图1500。

流程图1500从步骤1502开始。在步骤1502中,执行工作流。在一个实施例中,计算设备1402处的终端用户可以例如通过命令行,通过点击/敲击或以其他方式与表示应用的图标交互,通过在浏览器中选择或以其他方式来执行工作流逻辑120。如上所述,工作流逻辑120可以在计算设备1402处的工作流应用1404和/或服务器134处的应用执行引擎1418中执行。当执行时,工作流逻辑120的工作流步骤以配置的顺序执行。因此,一个或多个工作流步骤可以调用对应的应用/服务来执行它们的功能,诸如本地应用122(返回数据132)、(多个)基于网络的应用124(返回数据130)、和/或本地或基于网络的其他应用。

在步骤1504中,显示工作流gui。步骤1504是可选的,如在一些实施例中,不为工作流显示gui。在一个实施例中,gui可以由计算设备1402处的工作流应用1404显示。当显示时,用户可以通过查看显示的数据(例如,从文件、数据库记录、电子表格或由工作流读取的其他数据结构)与gui交互,通过将数据输入gui(例如,通过输入、通过语音等),和/或通过与由gui显示的一个或多个控件交互。

在步骤1506中,基于与工作流的交互来触发工作流逻辑。在工作流的一个或多个工作流步骤需要来自用户的输入的情况下,步骤1506是可选的。在这种情况下,用户与应用1404的gui中的控件交互,该控件与工作流逻辑120的工作流步骤相关联,以提供触发工作流步骤的逻辑以进行操作的信息。

以这种方式,工作流逻辑120执行其功能,诸如处理订单,跟踪信息,生成消息,处理文档以生成任务或信息,收集反馈和/或任何其他功能。

图16示出根据实施例的提供用于经由工作流应用生成和发送推送通知的过程的流程图1600。如下出于说明的目的关于图14的系统1400描述流程图1600。

流程图1600从步骤1602开始。在步骤1602,从源应用接收请求以将源自源应用的推送通知发送到目标应用的用户群组,该目标应用与源应用不同并且由与源应用相关联的推送通知连接指定。例如,参考图14,工作流应用1404(即,源应用)发送请求1406以向目标应用1428发送推送通知。目标应用1428可以由与应用1404的特定工作流步骤相关联的推送通知连接指定(例如,如图12中所示的步骤1204)。

在步骤1604中,确定用户群组中的用户的总数是否超过预定阈值。例如,参考图13,推送通知执行引擎1430可以确定用户群组中的用户的总数是否超过预定阈值。如果确定用户群组中的用户的总数未超过预定阈值,则流程继续到步骤1606。否则,流程继续到步骤1608。

在步骤1606中,使用第一计算资源量生成推送通知并将其发送到目标应用的用户群组中的每个用户。例如,参考图14,推送通知执行引擎1430可以为目标应用1428的用户群组中的每个用户生成推送通知,并且推送通知服务(例如,(多个)基于网络的应用124)可以使用第一计算资源量将推送通知发送到每个用户。例如,推送通知执行引擎1430可以确定不需要附加计算资源来生成推送通知,并且使用已经分配给其的计算资源(例如,在服务器1410上执行的(多个)虚拟机和/或在(多个)其他服务器上执行的(多个)虚拟机)。

在步骤1608中,使用大于第一计算资源量的第二计算资源量,生成推送通知并将其发送到目标应用的用户群组中的每个用户。例如,参考图14,使用大于第一计算资源量的第二计算资源量,推送通知执行引擎1430可以为目标应用1428的用户群组中的每个用户生成推送通知,并且推送通知服务(例如,(多个)基于网络的应用124)可以将推送通知发送给每个用户。例如,推送通知执行引擎1430可以确定需要附加计算资源来生成推送通知,并且分配附加计算资源以执行推送通知生成。

根据一个或多个实施例,该请求指定表示用户群组的群组标识符。根据这样的实施例,包括群组标识符的第二请求被提供给目录服务,以及接收来自目录服务的包括多个用户标识符的响应,其中多个用户标识符中的每个用户标识符唯一地表示用户群组中的特定用户。多个用户标识符中的每个用于将推送通知发送到目标应用的用户群组中的每个用户。例如,参考图14,推送通知执行引擎1430向目录服务1436提供包括群组标识符(例如,群组电子邮件地址)的请求1416。目录服务1436提供包括多个用户标识符的响应1420,其中多个用户标识符中的每个用户标识符唯一地表示用户群组中的特定用户。

e.经由管理界面配置策略规则

如上所述,应用设计器106被配置为被操作/交互以创建应用(例如,(多个)商业应用、(多个)工作流应用等)。应用设计器106还可以使得管理者能够经由管理接口1438配置在发送源自工作流应用1404和/或其他应用的推送通知时要使用的一个或多个策略规则。ui生成器110可以将应用gui信息140发送到服务器1426的浏览器以显示为管理界面1438。图17-20示出根据实施例的示例性管理界面的视图。

例如,图17示出根据实施例的管理界面1438的示例gui屏幕1700。如图17所示,gui屏幕1700包括多个用户可激活的界面元素,包括但不限于用户界面元素1702、用户界面元素1704和用户界面元素1706。用户界面元素1702(“应用”)当被用户激活时可以使得显示gui屏幕,其示出管理者可管理的应用的列表。用户界面元素1704(“流”)当被用户激活时可以使得显示gui屏幕,其示出管理者可管理的工作流的列表。用户界面1706(“连接”)当被用户激活时可以使得显示gui屏幕,其示出由管理者可管理的连接的列表。如图17所示,用户界面1706已被用户激活,因此示出用户可选择的连接标识符1708、1710、1712的列表(即,“连接1”、“连接2”和“对案例管理的通知”)。上面在子部分b中描述了“对案例管理的通知”连接的创建。“连接1”、“连接2”和“对案例管理的通知”连接中的每个可以与相同或不同的应用相关联。

图18示出根据另一实施例的管理界面1438的示例gui屏幕1800。如图18所示,管理界面1438可以使得管理者能够选择连接并且监测其性能(例如,与选择的连接相关联的推送通知请求的量)。在图18所示的示例中,管理者已经选择了与“对案例管理的通知”连接相对应的用户界面元素1802。如图18中进一步所示,图1804的一部分1806指示在2017年7月11日发送了与“对案例管理的通知”连接相关联的大量推送通知请求(例如,395)。gui屏幕1800还可以提供选择的连接相关联的附加信息。这样的信息可以包括但不限于检索相关联的连接的数据所花费的时间,连接错误的数目,在建立连接之后对服务的成功请求的数目等。

图19示出根据实施例的管理界面1438的示例gui屏幕1900,其使得用户能够配置与连接相关联的策略规则。在图19所示的示例中,管理者选择了“对案例管理的通知”连接(例如,经由连接标识符1712)。如图19所示,示出能够使用“对案例管理的通知”连接来发送推送通知的用户的列表(例如,“bobjones”和“adamsmith”)。gui屏幕1900可以使得管理者能够指定每个用户是否被授权经由工作流应用1404发送推送通知。在图19所示的示例中,可以使用下拉菜单(例如,下拉菜单1902和下拉菜单1904)来进行指定。例如,如图19所示,下拉菜单1902用于为用户“bobjones”选择“能够使用”选项,并且下拉菜单1904用于为用户“adamsmith”选择“不能使用”选项。用户“bobjones”能够经由“对案例管理的通知”连接发送推送通知,但用户“adamsmith”不能。

gui屏幕1900还可以包括用户界面元素1906和用户界面元素1908。用户界面元素1906在被激活时禁用选择的连接的所有实例。通过以这种方式禁用连接,拒绝与选择的连接相关联的所有推送通知(而不管与其相关联的用户)。用户界面1908在被激活时使得显示gui屏幕,其使得管理者能够修改连接。

管理界面1438可以使得管理者能够配置其他策略规则。例如,管理界面1438可以使得管理者能够配置策略规则以用于指定哪些接收者能够接收某些推送通知,哪些目标应用能够接收某些推送通知,和/或哪些源应用能够发送某些推送通知。

图20示出根据实施例的管理接口1438的示例gui屏幕2000,其使得用户能够修改连接。如图20所示,在激活用户界面元素1908时,向管理者呈现窗口2002,该窗口使用户能够修改连接的某些参数。例如,如图20所示,窗口1102包括用户交互字段2004和用户交互字段2006。用户交互字段2004可以使得用户能够改变连接的名称,并且用户交互字段2006可以使得用户能够通过指定新目标应用名称或与新目标应用关联的唯一id,来改变经由连接接收推送通知的目标应用。

图21示出根据实施例的提供用于根据策略规则发送推送通知的过程的流程图2100。如下出于说明的目的关于图14的系统1400描述流程图2100。

流程图2100以步骤2102开始。在步骤2102,从源应用接收请求以将源自源应用的推送通知发送到与源应用不同的目标应用的用户子组,目标应用由与源应用相关联的推送通知连接指定。例如,参考图14,应用1404(即,源应用)发送请求1406以向目标应用1428发送推送通知。目标应用1428可以由与应用1404的特定工作流步骤相关联的推送通知连接指定(例如,图12中示出的步骤1204)。

在步骤2104中,根据与推送通知连接相关联的策略规则,确定推送通知被授权发送到目标应用的用户子组。例如,参考图14,授权处理器1440被配置为根据策略规则确定推送通知被授权发送到目标应用1428的用户子组。

根据一个或多个实施例,策略规则指定源应用的一个或多个用户被授权发送推送通知。

根据一个或多个实施例,策略规则由管理者经由管理界面可配置。例如,参考图14,管理界面1438使得管理者能够配置策略规则。

根据一个或多个实施例,管理界面使得管理者能够配置多个不同的策略规则,不同的策略规则中的每个策略规则与不同的源应用相关联。

根据一个或多个实施例,管理者经由管理接口接收更新策略规则以指定被授权发送源自源应用的推送通知的源应用的一个或多个用户的指示。例如,参考图14,管理界面1438可以接收更新策略规则以指定被授权发送推送通知的源应用的用户的指示。

根据一个或多个实施例,开发者经由图形用户界面指定用于推送通知连接的目标应用。例如,图11的gui屏幕1100示出指定“对案例管理的通知”连接的目标应用的开发者。

根据一个或多个实施例,管理者经由管理接口接收禁用推送通知连接的指示,并且响应于接收到指示而禁用推送通知连接。禁用推送通知连接会使得从源应用接收的推送通知请求被拒绝。例如,参考图14,管理界面1438可以接收管理者禁用推送通知连接的指示,并且管理界面1438响应于接收到指示而禁用推送通知连接。例如,参考图19的gui屏幕1900,用户可以通过与用户界面元素1906交互来禁用“对案例管理的通知”连接。应用执行引擎1418在接收到发送推送通知的请求(例如,请求1406)时可以拒绝该请求。

根据一个或多个实施例,管理者经由管理接口接收将由推送通知连接指定的目标应用改变为不同的目标应用的指示,并且由推送通知连接指定的目标应用响应于接收到指示被改变为不同的目标应用。目标应用的改变使源自源应用的推送通知被发送到不同的目标应用。例如,参考图14,管理界面1438可以接收由管理者将由推送通知连接指定的目标应用改变为不同的目标应用的指示,并且管理界面1438响应于接收到指示将由推送通知连接指定的目标应用改变为不同的目标应用。例如,图20的gui屏幕2000示出管理者经由用户交互字段2006改变与“对案例管理的通知”连接相关联的目标应用。

在步骤2106中,响应于确定推送通知被授权发送到目标应用的用户子组,推送通知被发送到目标应用的用户子组。例如,参考图14,授权处理器1440可以确定推送通知被授权发送到目标应用1428的用户子组,应用执行引擎1418发送请求1408以将推送通知发送到(多个)队列1432,推送通知执行引擎1430从(多个)队列1432拉取请求1408,推送通知执行引擎1430从其生成推送通知1420,并且将推送通知1420提供给推送通知服务(例如,(多个)基于网络的应用124)以用于发送到目标应用1428。

图22示出根据实施例的提供用于根据策略规则拒绝推送通知请求的过程的流程图2200。如下出于说明的目的关于图14的系统1400描述流程图2200。

在步骤2202中,根据与推送通知连接相关联的策略规则,确定推送通知未被授权发送到目标应用的用户子组。例如,参考图14,授权处理器1440被配置为根据与推送通知连接相关联的策略规则,确定推送通知未被授权发送到目标应用1428的用户子组。

在步骤2204中,响应于确定推送通知未被授权发送到目标应用的用户子组,推送通知请求被拒绝。例如,参考图14,授权处理器1440确定推送通知未被授权发送到目标应用1428的用户子组,并且拒绝请求1408。

iii.示例计算机系统实现

计算设备102、应用设计器gui116、浏览器136、服务器134、应用设计器106、ui生成器110、应用逻辑生成器112、工作流库118、存储装置104、本地应用122、(多个)基于网络的应用124、应用执行引擎1418、授权处理器1440、服务器1410、推送通知执行引擎1430、服务器1426、管理界面1438、计算设备1412、目标应用1428、服务器1422、目录服务1436、服务器1414、(多个)队列1432、流程图200、流程图1500、流程图1600、流程图2100和/或流程图2200可以用硬件或硬件与软件和/或固件的任何组合来实现,包括被实现为被配置为在一个或多个处理器中执行并且存储在计算机可读存储介质中的计算机程序代码,或者实现为硬件逻辑/电路,诸如在片上系统(soc)中一起实现。soc可以包括以下中的一个或多个:集成电路芯片,其包括处理器(例如,微控制器、微处理器、数字信号处理器(dsp)等)、存储器、一个或多个通信接口和/或其他电路和/或用于执行其功能的嵌入式固件。

图23描绘了其中可以实现实施例的计算设备2300的示例性实现。例如、计算设备102、计算设备1412、服务器134、服务器1410、服务器1414、服务器1422、服务器1426中的任何一个可以在类似于固定或移动计算机实施例中的计算设备2300的一个或多个计算设备中实现,包括计算设备2300的一个或多个特征和/或替代特征。本文提供的计算设备2300的描述是出于说明的目的而提供的,而不是限制性的。如(多个)相关领域的技术人员所知,实施例可以在其他类型的计算机系统中实现。

如图23所示,计算设备2300包括一个或多个处理器(称为处理器电路2302)、系统存储器2304、以及将包括系统存储器2304的各种系统组件耦合到处理器电路2302的总线2306。处理器电路2302是电和/或光电路,该电和/或光电路在一个或多个物理硬件电路设备元件和/或集成电路设备(半导体材料芯片或裸片)中实现为中央处理单元(cpu)、微控制器、微处理器和/或其他物理硬件处理器电路。处理器电路2302可以执行存储在计算机可读介质中的程序代码、例如操作系统2330、应用程序2332、其他程序2334的程序代码等。总线2306表示若干类型的总线结构中的任何一种或多种,包括存储器总线或存储器控制器、外围总线、加速图形端口、以及使用各种总线架构中的任何一种的处理器或本地总线。系统存储器2304包括只读存储器(rom)2308和随机存取存储器(ram)2310。基本输入/输出系统2312(bios)存储在rom2308中。

计算设备2300还具有以下驱动器中的一个或多个:用于读取和写入硬盘的硬盘驱动器2314、用于读取或写入可移动磁盘2318的磁盘驱动器2316、以及用于读取或写入可移动光盘2322(诸如,cdrom、dvdrom或其他光学介质)的光盘驱动器2320。硬盘驱动器2314、磁盘驱动器2316和光盘驱动器2320分别通过硬盘驱动器接口2324、磁盘驱动器接口2326和光盘驱动器接口2328连接到总线2306。驱动器及其相关联的计算机可读介质为计算机提供计算机可读指令、数据结构、程序模块和其他数据的非易失性存储。虽然描述了硬盘、可移动磁盘和可移动光盘,但是可以使用其他类型的基于硬件的计算机可读存储介质来存储数据,诸如闪存卡、数字视频盘、ram、rom和其他硬件存储介质。

许多程序模块可以存储在硬盘、磁盘、光盘、rom或ram上。这些程序包括操作系统2330、一个或多个应用程序2332、其他程序2334和程序数据2336。应用程序2332或其他程序2334可以包括例如用于实现以下的计算机程序逻辑(例如,计算机程序代码或指令):应用设计器106、ui生成器110、应用逻辑生成器112、工作流库118、本地应用122、(多个)基于网络的应用124、工作流应用1404、应用执行引擎1418、授权处理器1440、管理接口1438、推送通知执行引擎1430、目标应用1428、目录服务1436、(多个)队列1432、流程图200、流程图1500、流程图1600、流程图2100和/或流程图2200(包括其任何合适的步骤)、和/或本文描述的其他实施例。

用户可以通过诸如键盘2338和指示设备2340的输入设备将命令和信息输入到计算设备2300中。其他输入设备(未示出)可以包括麦克风、操纵杆、游戏手柄、卫星天线、扫描仪、触摸屏和/或触摸板、用于接收语音输入的语音识别系统、用于接收手势输入的手势识别系统等。这些和其他输入设备通常通过耦合到总线2306的串行端口接口2342连接到处理器电路2302,但是可以通过其他接口连接,诸如并行端口、游戏端口或通用串行总线(usb)。

显示器屏幕2344还经由诸如视频适配器2346的接口连接到总线2306。显示器屏幕2344可以在计算设备2300外部或并入计算设备2300中。显示器屏幕2344可以显示信息,以及作为用于接收用户命令和/或其他信息(例如,通过触摸、手指手势、虚拟键盘等)的用户界面。除了显示器屏幕2344之外,计算设备2300还可以包括其他外围输出设备(未示出),诸如扬声器和打印机。

计算设备2300通过适配器或网络接口2350、调制解调器2352或用于通过网络建立通信的其他装置连接到网络2348(例如,因特网)。调制解调器2352可以是内部的或外部的,可以经由串行端口接口2342连接到总线2306,如图23所示,或者可以使用另一种接口类型(包括并行接口)连接到总线2306。

如本文所使用的,术语“计算机程序介质”、“计算机可读介质”和“计算机可读存储介质”用于指代物理硬件介质,诸如与硬盘驱动器2314相关联的硬盘、可移动磁盘2318、可移动光盘2322、其他物理硬件介质、诸如ram、rom、闪存卡、数字视频盘、压缩盘、mem、基于纳米技术的存储设备、以及其他类型的物理/有形硬件存储介质(包括图23的存储器2320)。这种计算机可读存储介质与通信介质区分开并且不重叠(不包括通信介质)。通信介质以诸如载波的调制数据信号来体现计算机可读指令、数据结构、程序模块或其他数据。术语“已调制数据信号”表示设置或改变信号的一个或多个特征以对信号中的信息进行编码的信号。作为示例而非限制,通信介质包括诸如声学、rf、红外和其他无线介质的无线介质,以及有线介质。实施例还涉及与针对计算机可读存储介质的实施例分离并且不重叠的这种通信介质。

如上所述,计算机程序和模块(包括应用程序2332和其他程序2334)可以存储在硬盘、磁盘、光盘、rom、ram或其他硬件存储介质上。还可以经由网络接口350、串行端口接口2342或任何其他接口类型来接收这样的计算机程序。当由应用执行或加载时,这样的计算机程序使得计算设备2300能够实现本文讨论的实施例的特征。因此,这样的计算机程序表示计算设备2300的控制器。

实施例还涉及包括存储在任何计算机可读介质上的计算机代码或指令的计算机程序产品。这种计算机程序产品包括硬盘驱动器、光盘驱动器、存储器设备封装、便携式记忆棒、存储卡和其他类型的物理存储硬件。

iv.其他示例实施例

本文描述了一种方法。该方法包括:接收将源自源应用的推送通知发送到目标应用的用户子组的请求,目标应用与源应用不同并且由与源应用相关联的推送通知连接指定;根据与推送通知连接相关联的策略规则,确定推送通知被授权发送到目标应用的用户子组;以及响应于确定推送通知被授权发送到目标应用的用户子组,将推送通知发送到目标应用的用户子组。

在前述方法的一个实施例中,策略规则指定源应用的用户被授权发送推送通知。

在另一实施例中,策略规则由管理者经由管理界面可配置。

在前述方法的又一实施例中,管理界面使得管理者能够配置多个不同的策略规则,不同的策略规则中的每个策略规则与不同的源应用相关联。

在前述方法的另一实施例中,该方法还包括接收由管理者经由管理接口更新策略规则以指定源应用的一个或多个用户被授权发送源自源应用的推送通知的指示。

在前述方法的又一实施例中,该方法还包括:根据与推送通知连接相关联的策略规则,确定推送通知未被授权发送到目标应用的用户子组;以及响应于确定推送通知未被授权发送到目标应用的用户子组,拒绝推送通知请求。

在前述方法的又一实施例中,开发者经由图形用户界面指定用于推送通知连接的目标应用。

在前述方法的另一实施例中,该方法还包括:接收由管理者经由管理界面禁用推送通知连接的指示;以及响应于接收到指示,禁用推送通知连接,该禁用使得从源应用接收的推送通知请求被拒绝。

在前述方法的又一实施例中,该方法还包括:接收由管理者经由管理界面将由推送通知连接指定的目标应用改变为不同的目标应用的指示;以及响应于接收到指示,将由推送通知连接指定的目标应用改变为不同的目标应用,该改变使得源自源应用的推送通知被发送到不同的目标应用。

本文还描述了一种系统。该系统包括一个或多个处理器和存储程序代码的一个或多个存储器,程序代码被配置为由一个或多个处理器执行,程序代码在由至少一个处理器单元执行时使得至少一个处理器电路执行操作,该操作包括:接收将源自源应用的推送通知发送到目标应用的用户子组的请求,目标应用与源应用不同并且由与源应用相关联的推送通知连接指定;以及确定用户子组中的用户的总数是否超过预定阈值;以及响应于确定用户群组中的用户的总数未超过预定阈值:使用第一计算资源量生成并向目标应用的用户群组中的每个用户发送推送通知;以及响应于确定用户群组中的用户的总数超过预定阈值:使用大于第一计算资源量的第二计算资源量生成并向目标应用的用户群组中的每个用户发送推送通知。

在前述系统的一个实施例中,该请求指定表示用户群组的群组标识符,并且一个或多个第二服务器还被配置为:向目录服务提交包括群组标识符的第二请求;接收来自目录服务的响应,该响应包括多个用户标识符,多个用户标识符中的每个用户标识符唯一地表示用户群组中的特定用户;以及使用多个用户标识符中的每个用户标识符,将推送通知发送到目标应用的用户群组中的每个用户。

本文还描述了一种计算机可读存储介质,其上记录有程序指令,程序指令当由至少一个处理电路执行时执行方法。该方法包括接收将源自源应用的推送通知发送到目标应用的用户子组的请求,目标应用与源应用不同并且由与源应用相关联的推送通知连接指定;根据与推送通知连接相关联的策略规则,确定推送通知被授权发送到目标应用的用户子组;以及响应于确定推送通知被授权发送到目标应用的用户子组,将推送通知发送到目标应用的用户子组。

在前述方法的一个实施例中,该方法还包括:确定用户子组中的用户的总数;以及基于用户子组中的用户的总数,确定要被用于向用户子组发送推送通知的计算资源量。

在前述方法的另一实施例中,策略规则指定源应用的一个或多个用户被授权发送推送通知。

在又一实施例中,策略规则由管理者经由管理界面可配置。

在前述方法的另一实施例中,管理界面使得管理者能够配置多个不同的策略规则,不同的策略规则中的每个策略规则与不同的源应用相关联。

在前述方法的又一实施例中,该方法还包括:根据与连接相关联的策略规则,确定推送通知未被授权发送到目标应用的用户子组;以及响应于确定推送通知未被授权发送到目标应用的用户子组,拒绝推送通知请求。

在前述方法的又一实施例中,开发者经由图形用户界面指定用于推送通知连接的目标应用。

在前述方法的另一实施例中,该方法还包括:接收由管理者经由管理界面禁用推送通知连接的指示;以及响应于接收到指示,禁用推送通知连接,该禁用使得从源应用接收的推送通知请求被拒绝。

在前述方法的又一实施例中,该方法还包括:接收由管理者经由管理界面将由推送通知连接指定的目标应用改变为不同的目标应用的指示;以及响应于接收到指示,将由推送通知连接指定的目标应用改变为不同的目标应用,该改变使得源自源应用的推送通知被发送到不同的目标应用。

v.结论

尽管上面已经描述了本发明的各种实施例,但是应理解,它们仅以示例的方式呈现,而不是限制。(多个)相关领域的技术人员将理解,在不脱离所附权利要求限定的本发明的精神和范围的情况下,可以在其中进行形式和细节上的各种改变。因此,本发明的广度和范围不应受任何上述示例性实施例的限制,而应仅根据所附权利要求及其等同物来限定。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1