管线代理的根据阶段的指定的制作方法

文档序号:15309944发布日期:2018-08-31 21:38阅读:194来源:国知局

计算系统和相关联的网络已经彻底改变了人们工作、娱乐、和通信的方式。我们生活的几乎每个方面都以某种方式受到计算系统的影响。经由使用计算系统的网络使能进行全新形式的通信。这样的新的通信形式的示例包括文本消息传送、即时消息传送、视频会议、电子白板、合作应用、互联网协议语音通信,等等。

这些通信形式中的每一种都涉及到操作的阶段。例如,当接收到通话时,可能存在通话筛选阶段,并且随后是路由前阶段。如果无法联系到接收方则遇到通话建立失败阶段。如果联系到主叫方但是接收方选择拒绝该通话则遇到被拒绝阶段。如果通话得以与接收方连接则遇到已连接阶段。在通话连接结束时则遇到通话已结束阶段。

在本文中所要求保护的主题不限于解决任何缺点或者仅在诸如以上所描述的那些环境中操作的实施例。相反,该

背景技术:
仅被提供以说明在本文中所描述的一些实施例可以在其中实践的一个示例性技术领域。



技术实现要素:

在本文中所描述的至少一些实施例涉及到具有多个阶段的通信管线的定制。针对所述阶段中的至少一些中的每个,一个或多个代理的集合被识别为可用于添加到该阶段。此外,识别已经具有被指定的代理的任何阶段。响应于接收到对要指定给已经指定了代理的特定阶段的代理的用户选择,所选择的代理被指定给该阶段。强制代理强制最多仅有一个代理被指定给每个阶段。

代理的指定是根据阶段来进行的。这允许代理的功能更加朝向增强阶段的功能而有所简化。从而,代理的逻辑被简化,由此使得更有可能将存在可用于针对每个阶段从中选择的代理的健康的质量。从管线用户的角度来看,这允许更大程度地对该管线所使能的通信进行定制。在一些实施例中,单个代理可以被指定为对多个阶段的代理。

由此,在本文中所描述的管线允许一种更为鲁棒的机制来提供用于对涉及管线中的多个阶段的任何种类的通信进行定制的选项。该发明内容不旨在标识所要求保护的主题的关键特征或必要特征,也不旨在用于帮助确定所要求保护的主题的范围。

附图说明

为了描述能够获得上文所引用的以及其他的优势和特征的方式,将通过参考附图而给出各个实施例的更为具体的描述。所要理解的是,这些附图仅描绘了试样实施例,因此不被认为是对本发明范围进行限制,实施例将通过使用以下附图而利用额外的特性和细节进行描述和解译,其中:

图1抽象地示出了能够在其中采用在本文中所描述的一些实施例的计算系统;

图2a示出了具有两个串行阶段的简单示例通信管线;

图2b示出了具有六个阶段和管线分支的更为复杂的通信管线;

图3示出了具有能够应用于管线的一个阶段的逻辑以及能够应用于该管线的另一个阶段的逻辑的多阶段代理;

图4示出了用于向具有多个阶段的通信管线指定代理的代理管理计算系统;

图5示出了用于准备定制具有多个阶段的通信管线的方法的流程图;以及

图6是向管线添加代理的方法的流程图,该方法可以针对通信管线的各个阶段重复执行以允许对通信管线的定制。

具体实施方式

在本文所描述的至少一些实施例涉及对具有多个阶段的通信管线的定制。针对所述阶段中的至少一些中的每个,一个或多个代理的集合被识别为可用于添加到该阶段。此外,识别已经具有被指定的代理的任何阶段。响应于接收到对要指定给已经指定了代理的特定阶段的代理的用户选择,所选择的代理被指定给该阶段。强制代理强制最多仅有一个代理被指定给每个阶段。

代理的指定是根据阶段来进行的。这允许代理的功能更加朝向增强阶段的功能而有所简化。从而,代理的逻辑被简化,由此使得更有可能将存在可用于针对每个阶段从中选择的代理的健康的质量。从管线用户的角度来看,这允许更大程度地对该管线所使能的通信进行定制。在一些实施例中,单个代理可以被指定为对多个阶段的代理。

由此,在本文中所描述的管线允许一种更为鲁棒的机制来提供用于对涉及管线中的多个阶段的任何种类的通信进行定制的选项。将参考图1对计算系统的一些介绍性讨论进行描述。接着,将参考随后的附图来对多阶段通信管线的代理指定的结构和操作进行描述。

计算系统目前越来越多地采用宽泛的多种形式。例如,计算系统可以是手持设备、家用电器、膝上型计算机、台式计算机、大型计算机、分布式计算系统、数据中心,或者甚至是常规地尚未被认为是计算系统的设备,例如可穿戴设备(例如,眼镜)。在该描述以及权利要求中,术语“计算系统”被宽泛地定义为包括任何设备或系统(或者其组合),其包括至少一个物理且有形的处理器以及其上能够具有可以由处理器执行的计算机可执行指令的物理和有形存储器。所述存储器可以采用任何形式并且可以取决于计算系统的性质和形式。计算系统可以分布在网络环境上并且可以包括多个组成计算系统。

如在图1中所示,在其最基本的配置中,计算系统100通常包括至少一个处理单元102和存储器104。存储器104可以是物理系统存储器,其可以是易失性的、非易失性的,或者二者的一些组合。术语“存储器”在本文中还可以用来指代非易失性大容量存储,例如物理存储介质。如果计算系统是分布式的,则处理、存储器和/或存储能力也是分布式的。

计算系统100还具有常常被称为“可执行组件”的其上的多个结构。例如,计算系统100的存储器104被示出为包括可执行组件106。术语“可执行组件”是针对计算领域的普通技术人员普遍理解为可以是软件、硬件或者其组合的结构的一种结构名称。例如,当以软件来实现时,本领域技术人员将会理解的是,可执行组件的结构可以包括可以在计算系统上执行的软件对象、例程、方法,而无论这样的可执行组件是否存在于大量计算系统中,或者该可执行组件是否存在于计算机可读存储介质上。

在这样的情况下,本领域技术人员将会认识到,可执行组件的结构存在于计算机可读介质上,以使得在被计算系统的一个或多个处理器(例如,被处理器线程)所解译时,所述计算系统被使得执行一种功能。这样的结构可以是能够由处理器直接进行计算机读取的(就如同在可执行组件是二进制的情况下)。可替代地,所述结构可以被构造为是可解译和/或编译(无论在单个阶段或者多个阶段中),以便生成能够直接由处理器解译的这样的二进制码。在使用术语“可执行组件”时,对可执行组件的示例结构的这样的理解在计算领域的普通技术人员的理解范围内是合适的。

术语“可执行组件”同样被本领域技术人员普遍理解为包括排他地或接近排他地以硬件来实现的结构,例如在现场可编程门阵列(fpga)、专用集成电路(asic)、或者任何其他专用电路内。由此,术语“可执行组件”是计算领域的普通技术人员普遍理解的一种结构的术语,而无论其是以软件、硬件还是组合来实现的。在该描述中,还可以使用术语“组件”、“服务”、“引擎”、“模块”、“控制器”、“代理”、“阶段”等。如在该描述中和该情况中所使用的,这些术语也旨在与术语“可执行组件”是同义词或者是这样的“可执行组件”的具体类型,并且因此,也具有计算领域的普通计算人员所普遍理解的结构。在一些实施例中,“代理”可以是自动化和/或远程地执行的可执行组件,例如在服务上和/或在云计算环境中。

在以下的描述中,参考由一个或多个计算系统所执行的动作来描述实施例。如果这样的动作是以软件实现的,则(执行该动作的相关联的计算系统的)一个或多个处理器响应于已经执行了构成可执行组件的计算机可执行指令而引导所述计算系统的操作。例如,这样的计算机可执行指令可以被实施在形成计算机程序产品的一个或多个计算机可读介质上。这样的操作的示例涉及对数据的操纵。

计算机可执行指令(以及经操纵的数据)可以被存储在计算系统100的存储器104中。计算系统100还可以包含允许计算系统100例如通过网络110与其他计算系统进行通信的通信信道108。

尽管不是所有计算系统都需要用户界面,但是在一些实施例中,计算系统100包括用于在与用户接合时使用的用户界面112。用户界面112可以包括输出机制112a以及输入机制112b。在本文中所描述的原理不限于精确的输出机制112a或输入机制112b,因为这将取决于设备的性质。然而,输出机制112a例如可以包括扬声器、显示器、触觉输出、全息影像等。输入机制112b的示例例如可以包括麦克风、触摸屏、全息影像、相机、键盘、其他指示器输入的鼠标、任何类型的传感器,等等。

如在下文中所描述的实施例可以包括或利用专用或通用计算机系统,其包括计算机硬件,例如一个或多个处理器和系统存储器,如以下更加详细地描述的。在本文中所描述的实施例还包括用于承载或存储计算机可执行指令和/或数据结构的物理和其他计算机可读介质。这样的计算机可读介质可以是能够由通用或专用计算机系统访问的任何可用的介质。存储计算机可执行指令和的计算机可读介质是物理存储介质。承载计算机可执行指令的计算机可读介质是传输介质。因此,作为示例而非限制,本发明的实施例能够包括至少两个不同种类的计算机可读介质:存储介质和传输介质。

计算机可读存储介质包括ram、rom、eeprom、cd-rom或其他光盘存储、磁盘存储或其他磁存储设备,或者能够用来以计算机可执行指令或数据结构的形式存储期望的程序代码工具并且能够由通用或专用计算系统访问的任何其他物理和有形的存储介质。

“网络”被定义为使得能够在计算机系统和/或模块和/或其他电子设备之间传输电子数据的一个或多个数据链路。当信息通过网络或另一通信连接(硬线的、无线的,或者硬线或无线的组合)被传输或提供至计算机系统时,该计算机系统适当地将该连接视为传输介质。传输介质可以包括网络和/或数据链路,其能够用来以计算机可执行指令或数据结构的形式承载程序代码并且能够由通用或专用计算机所访问。以上的组合也应当被包括在计算机可读介质的范围之内。

另外,在到达各种计算系统组件时,计算机可执行指令或数据结构形式的程序代码装置能够自动从传输介质传输至存储介质(或反之亦然)。例如,通过网络或数据链路所接收的计算机可执行指令或数据结构能够被缓存在网络接口模块(例如,“nic”)内的ram中,并且接着最终被传输至计算机系统的ram和/或计算机系统处的较不易失性的计算机存储介质。因此,应当理解的是,可读介质可以被包括在同样也(或甚至主要地)利用传输介质的计算机系统组件中。

计算机可执行指令例如包括指令和数据,所述指令和数据当在一个或多个处理器处被执行时,使得通用计算机系统、专用计算机系统或专用处理设备执行某种功能或一组功能。可替代地或除此之外,计算机可执行指令可以配置计算系统以执行某种功能或一组功能。计算机可执行指令例如可以是二进制码或者甚至在被处理器直接执行之前经历一些转译(例如,编译)的指令,例如中间格式指令,例如汇编语言,或者甚至是源代码。

尽管已经用特定于结构特征和/或方法动作的语言对主题进行了描述,但是要理解的是,在所附权利要求中所定义的主题不一定限于以上所描述的特征和动作或者以上所描述动作的顺序。相反,所描述的特征和动作是作为实现权利要求的示例形式而公开的。

本领域技术人员将会意识到,本发明可以在具有许多类型的计算机系统配置的网络计算环境中进行实践,所述计算机系统配置包括个人计算机、台式计算机、膝上型计算机、消息处理器、手持设备、多处理器系统、基于微处理器的或可编程的消费电子产品、网络pc、小型计算机、大型计算机、移动电话、pda、平板计算机、寻呼机、路由器、交换机、数据中心、可穿戴设备(例如,眼镜)等。本发明还可以在分布式系统环境中实践,其中通过网络进行链接(通过硬线数据链路、无线数据链路,或者通过硬线和无线数据链路的组合之一)的本地和远程计算机系统二者都执行任务。在分布式系统环境中,程序模块可以位于本地和远程存储器的存储设备两者中。

根据本文所描述的原则,代理以受控方式被添加至通信管线上的各个阶段,而使得针对该通信管线的至少一些(并且优选为全部)阶段强制该通信管线的每个阶段仅有一个代理。管线的阶段的确切数量、标识和配置将根据通信的类型和管线的设计而有所变换。本文所描述的原则不限于向任何特定管线的阶段指定代理。然而,仅出于示例的目的,图2a示出了具有串行的两个阶段201a和202a的简单管线200a。图2b则示出了具有留个阶段201b至206b以及管线分支的更为复杂的管线。

作为示例,通信管线可以是基于文本的通信管线,例如用于发送和/或接收文本消息的管线,或者例如是用于发送和/或接收即时消息的即时消息管线。图2a表示一种可能的即时消息管线的示例,在这样的情况下,阶段201a可能表示传递前分解,而阶段202a则可能表示传递后阶段。

作为另一个示例,通信管线可以是音频和/或视频通信管线,例如用于语音或视频会议通话的发起和接收。图2b示出了具有阶段201b至206b的示例通话接收管线200b。在通话接收的情况下,在其一种设计中,阶段201b可以是通话筛选阶段,阶段202b可以是路由前阶段,阶段203b可以是通话建立失败阶段,阶段204b可以是被拒绝阶段,阶段205b可以是已连接阶段,并且阶段206b可以是通话已结束阶段。

根据在本文中所描述的原理,至少一些(并且优选地为全部)阶段仅具有指定它们的一个代理的最大值。此外,以每个阶段为基础来向管线指定代理。这意味着起草代理所涉及的任务可以狭义地被定制为向特定阶段提供增加值,而不必担心为管线的其他阶段提供增加值。这显著地简化了生成新的基于阶段的代理的过程,并且由此使得管线的用户针对每个阶段将更具有更多代理可用。该更高水平的代理可用性还意味着用户将具有更高等级的管线定制以适应用户的需求。

此外,用户可以在甚至不了解管线结构的情况下向阶段进行代理指定。代理简单地被登记为对应于特定阶段,并且强制机制防止有多于一个代理被指定给阶段。针对那些被强制了每个阶段最多一个代理的那些阶段而言,避免了执行冲突解决方案(例如,首先采用哪个代理)的需求,由此在技术上简化了管理管线的过程,并且还确保了管线操作中更多的可预见性。

在一些实施例中,代理能够被登记为可应用于多个阶段。例如,图3示出了具有能够应用于管线的一个阶段的逻辑310以及能够应用于管线的另一个阶段的逻辑320的多阶段代理300。这样的多阶段代理还可以具有阶段识别组件301,其识别该代理被用于哪个阶段并且适当地启动相对应的逻辑310或320。例如,当调用代理时,管线的阶段可以向多阶段代理300通知关于当前所处的阶段。

图4示出了用于向具有多个阶段的通信管线401指定代理410的代理管理计算系统400。作为示例,代理管理计算系统400可以具有上文针对图1的计算系统100所描述的结构。此外,包含在代理管理计算系统400内的任何组件都可以具有上文所描述的图1的可执行组件106的结构。通信管线401可以是如之前所描述的任何通信管线,而无论通信的属性或管线的结构如何。

代理管理计算系统400包括强制组件421,其强制管线的至少一些(并且优选为全部)阶段中的每个仅具有一个代理向该阶段所指定。代理管理计算系统400还具有向管线401的阶段指定代理的代理指定组件422。代理指定组件422的操作将在下文参考图5和6进一步描述。代理指定组件422可以如参考图6所描述的方法那样与强制组件421作为整体进行操作。由此,尽管代理指定组件422不需要包括强制组件421,但是强制组件421被示出为被包括在代理指定组件422之内。可替代地,代理指定组件422可以简单地与强制组件421进行通信,以使得最多一个代理被指定给强制组件422所覆盖的每个阶段。

在一些实施例中,代理指定是响应于用户交互而执行的。由此,代理管理计算系统400还可以包括用户界面组件423。作为示例,如果代理管理计算系统400是图1的系统100,则用户界面组件423可以是图1的用户界面112。

如箭头411所表示的,代理管理计算系统400能够在阶段的等级来访问管线401的结构。如箭头412所表示的,代理管理计算系统400还能够访问代理集合410内的代理的身份,以及每个代理被登记为能够被指定给管线中的哪些阶段。

图5示出了用于准备定制具有多个阶段的通信管线的方法500的流程图。方法500可以由图4的代理管理计算系统400来执行。由此,方法500将参考回图4的代理管理计算系统400来进行描述。此外,将参考作为图2b的管线200b的管线401来进行描述,但是将要理解的是,这仅仅是示例。

方法500包括,针对每个阶段识别可用于添加至阶段的一个或多个代理的集合(动作501)。例如,代理指定组件422知晓管线401的阶段(即,图2b的示例中的管线200b的阶段),并且还知晓代理集合410内的哪些代理有资格被指定给每个阶段。资格可以基于代理被登记为与哪个或哪些阶段相兼容,并且还可以考虑管线401的用户的许可。

代理指定组件422或强制组件421还识别管线的哪些阶段已经具有指定给该阶段的代理(动作502)。动作501和502可以被示为是预备性的,以使得一旦要指定的动作被合适的事件(例如,图6的事件601)触发,则代理指定组件422可以轻易地进行进一步的指定。这样的事件例如可以包括用户选择向管线添加代理。

图6是用于定制管线的方法600的流程图。每次向管线添加代理时方法600被执行。方法600由对触发事件的检测所触发(动作601)。该触发事件例如可以是用户已经选择了用于添加至管线的代理。注意到,用户不需要识别要向其指定该代理的阶段(并且实际上不存在供用户识别该阶段的机制)。代理指定组件422简单地对代理适用于哪个或哪些阶段有所了解。实际上,下一个动作是识别经识别的代理适用于哪个或哪些阶段(动作602)。

针对该代理所能够向其指定的每个阶段,方法600的其余部分(框610之内)可以针对每个合适的阶段来执行。例如,假定图3的多阶段代理300被选择以便添加至管线,并且逻辑310能够应用于阶段201b而逻辑320能够应用于阶段202b,接着针对阶段201b和202b中的每个执行框610的内容。然而,在代理要被添加至管线401并且该代理仅适用于单个阶段的情况下,仅仅执行框610的内容一次。

特别地,代理指定组件确定代理是否已经被指定给对应的阶段(决策框611)。该确定可以经由对强制组件621的使用来进行,或者通过以其他方式检查从而确信当前没有代理被指定给对应的阶段而进行。如果当前没有代理被指定给该阶段(决策框611中的“否”),则代理可以简单地被指定给该阶段(动作612),并且方法600以将代理成功添加至管线而完成。

另一方面,如果当前已经有代理被指定给该阶段(决策框611中的“是”),则强制仅存在一个代理被指定给该阶段(动作613)。该强制可以涉及能够由强制组件421执行的一些冲突解决机制。冲突解决方案可以相当简单,例如拒绝将所请求的代理添加至管线,或者将管线的当前代理替换为该管线的新选择的代理。可替代地或除此之外,用户可以被通知以允许用户确定管线的用户优选哪个代理。如果当代理被添加至代理集合410时利用代理指定组件422以某种方式登记了功能,则可以突出功能的可能的差异。在本文中所描述的原理不限于该冲突如何解决。然而,冲突不是通过允许两个代理被指定给相同阶段而被解决的。这再一次简化了管理管线的过程,因为执行阶段不涉及必须应用智能性(例如,代码复杂度)来确定应当首先运行哪个代理,一个代理的执行要在何时暂停以使得其他代理能够运行,等等。

现在将对若干示例阶段和代理进行描述。如先前所描述的,图2b的示例中的管线200b,在通话接收的情况下,在其一种设计中,阶段201b可以是通话筛选阶段,阶段202b可以是路由前阶段,阶段203b可以是通话建立失败阶段,阶段204b可以是被拒绝阶段,阶段205b可以是已连接阶段,而阶段206b可以是通话已结束阶段。

尽管在每个阶段处可以使用的代理的类型是相似的,但是在一个示例中,通话筛选阶段具有执行逻辑以将特定通话筛选出去的通话筛选代理。可以存在用户能够从中进行选择的若干通话筛选代理,其中每个包含筛选通话的不同方式。例如,一些通话筛选代理可以与被报告为已知征求者的通话号码的数据库进行同步。其他的则可以依赖于用户来识别哪些号码要被筛选。一些可以提供特定的用户界面,给出来电通话的通知,和/或允许不同等级的定制。

对于路由前阶段而言,可以存在定义用户不可接通或不愿接听通话时要发生什么的个人操作者代理。例如,通话可能被路由至助手、同伴或者其他团队成员。还可以存在允许负责录制语音邮件的语音邮件代理。同样,可以存在用户可用的、针对个人操作者代理和语音邮件代理的选项。每个可以提供稍有不同的功能、选项、用户界面、定制等。

拒绝阶段也可以具有类似的个人操作者代理或语音邮件代理。拒绝可能在主叫方没有被筛选出去时发生,并且因此电话被允许发出声音或振动,但是用户接着就不能够接听或者选择不接听通话,并且因此按下通话拒绝控件。实际上,可以存在实际上是用户可以选择以便应用于多个阶段的多阶段代理的个人操作者代理。可替代地或除此之外,个人操作者代理可以仅针对单个阶段来起草并且仅可用于单个阶段。可替代地或除此之外,个人操作者代理可以物理上能够针对不同阶段执行,但是用户可以选择该代理仅被用于多个代理中的仅一个。同样,语音邮件代理可以是针对路由前和/或拒绝阶段的多阶段代理。

对于已连接阶段,用户能够选择计时器代理、录音机代理、计费代理等。例如,计时器代理可能对通话进行计时,并且显示和/或记录通话的时间。录音机代理可以进一步给出对通话录音的选项。计费代理可以负责通话的支付。这些功能中的全部或一些可以被组合成单个代理。用户针对这样的用户可用的代理可以具有许多选项。

通话已结束阶段例如可以具有录音保存器代理,其保存任何由通话录音代理所启动的通话录音。这样的代理可以是在通话期间或开始时启动录音,并且在通话结束时保存通话的多阶段代理的示例。计费代理也可以在通话已结束阶段使用以由此针对通话收取付费。计费代理是在通话已连接阶段期间以及通话已结束阶段期间进行操作的可能的多阶段代理的另一个示例。

每当用户针对阶段选择代理以便不再将代理示为可供指定的时,当那些代理不再可用于还没有为它们指定的代理的任何阶段时,用户界面423可以被更新。

因此,在本文中所描述的原理提供了一种用于增强和定制通信管线的性能的有效的机制。可以根据阶段进行代理指定。这允许代理的功能更加朝向增强阶段的功能而有所简化。从而,代理的逻辑被简化,由此使得更有可能将存在可用于针对每个阶段从中选择的代理的健康的质量。从管线用户的角度来看,这允许更大程度地对该管线所使能的通信进行定制。

本发明可以以其他具体形式来实施而不脱离其精神或基本特征。所描述的实施例在所有方面都要被认为仅是说明性而非限制性的。因此,本发明的范围是由所附权利要求而不是先前的描述指示的。落入权利要求的等同物的含义和范围内的所有改变都被包含在其范围之内。

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