应用与外围设备之间的命令编排

文档序号:385330 发布日期:2021-12-10 浏览:4次 >En<

阅读说明:本技术 应用与外围设备之间的命令编排 (Command orchestration between applications and peripheral devices ) 是由 恩德里戈·纳丁·皮涅罗 克里斯托弗·查理斯·莫尔曼 罗格·本松 斯蒂芬·马克·欣顿 赛义德· 于 2019-06-20 设计创作,主要内容包括:装置的示例包括用于执行应用的应用引擎。装置包括与第一外围设备通信的第一通信接口。装置包括与第二外围设备通信的第二通信接口。装置包括与应用引擎、第一通信接口和第二通信接口通信的编排引擎。编排引擎从应用接收应用命令,并且将应用命令广播到第一外围设备和第二外围设备。编排引擎用于从第一外围设备或者第二外围设备接收设备命令,其中,设备命令用于控制应用。(An example of an apparatus includes an application engine to execute an application. The apparatus includes a first communication interface to communicate with a first peripheral device. The apparatus includes a second communication interface to communicate with a second peripheral device. The apparatus includes an orchestration engine in communication with an application engine, a first communication interface, and a second communication interface. The orchestration engine receives an application command from an application and broadcasts the application command to the first peripheral device and the second peripheral device. The orchestration engine is to receive a device command from the first peripheral device or the second peripheral device, wherein the device command is to control the application.)

具体实施方式

个人计算机或者其他个人电子设备上的应用可以用作通信设备,以允许用户通过运行在个人计算机上的应用进行远距离通信。例如,统一通信客户端可以用于通过电话服务、消息服务、会议服务和其他协作方法来提供通信。统一通信客户端也可以向被选择为呼叫默认设备的外围设备发送命令以及从该外围设备接收命令,而不管有多少其他设备附接到平台。然而,现代个人计算机和个人电子设备可能具有一个以上能够与统一通信客户端一起使用的外围设备。例如,个人计算机可以具有带有音量控制的耳机和带有状态指示器和按钮的键盘,以控制统一通信客户端内的各种功能,例如音量、开始呼叫、加入两个呼叫或者结束呼叫。

应当理解,统一通信客户端没有特别限制。在本示例中,统一通信客户端可以是运行在个人计算机上的应用,该应用将诸如即时消息(聊天)、存在信息、语音(包括IP电话)、移动性特征(包括分机移动性和单号码到达)、音频、网络和视频会议、固定-移动融合(FMC)、桌面共享、数据共享(包括网络连接的电子交互白板)、呼叫控制和语音识别的服务与诸如统一消息(集成语音邮件、电子邮件、SMS和传真)的非实时通信服务集成在一起。因此,统一通信客户端为用户提供了集成接口以跨多种介质进行通信。

尽管一些键盘可能被提供有音量控制,但作为非默认设备的键盘将无法例如通过诸如人机接口设备协议的用于与默认外围设备通信的协议直接与统一通信客户端进行通信。人机接口设备协议是用于运行在处理器上的应用与兼容外围设备交互的标准化协议。具体地,人机接口设备协议提供可以从应用直接发送到连接到应用的外围设备的标准命令。例如,非默认设备上的音量控制可以调整系统范围的音量,而不是统一通信客户端的音量,使得其他应用以及操作系统可以经历全面的音量变化。作为另一示例,统一通信客户端可以具有其他软件解决方案,其中统一通信客户端通过操作系统而不是通过诸如由人机接口设备协议提供的直接通信链路经由各种驱动器与非默认设备通信。应当理解,使用软件解决方案通过标准协议与外围设备进行通信引入更多的延迟并且需要来自计算机系统的更多的资源。

为了增加用户体验,装置被提供有在系统上运行的跟踪系统中存在的每个外围设备及其状态的编排引擎。该跟踪涉及主动监控新设备的增加或者删除。此外,编排引擎接收在外围设备上进行的与随后被发送到统一通信客户端的命令相对应的每个用户动作,诸如外围设备上的按钮按压或者另一外围设备上的语音命令。编排引擎允许最终用户通过多个外围设备与统一通信系统进行交互。附加地,编排引擎也监听(listens)来自统一通信客户端并且发送到先前限定的默认外围设备的命令。编排引擎从适当的外围设备复制命令并将其发送到适当的外围设备,该适当的外围设备可以不是先前附接到统一通信客户端的默认设备。

参见图1,在10处示出了在应用与外围设备之间编排命令的装置。装置10可以包括诸如各种附加的接口和/或者诸如显示器的输入/输出设备的附加的部件,以与装置10的用户或者管理员交互。在本示例中,装置10包括应用引擎15、第一通信接口20、第二通信接口25和编排引擎30。尽管本示例将应用引擎15和编排引擎30示出为单独的部件,但是在其他示例中,应用引擎15和编排引擎30可以是相同物理部件(诸如被配置成执行多种功能的微处理器)的一部分。

应用引擎15用于执行应用。应当理解的是,应用没有特别限制。例如,应用可以是能够直接与外围设备通信的任何应用。与外围设备的直接通信可以允许应用直接向外围设备发送命令。另外,与外围设备的直接通信可以允许应用直接从外围设备处的输入接收命令。

作为具体示例,应用引擎15可以执行诸如统一通信客户端的通信应用,以向单独的电子设备上的用户提供彼此通信的能力。例如,第一用户可以操作安装有通信应用的计算机系统。通信应用可以与第二用户建立通信链路。在本示例中,第二用户可以操作装置10外部的另一设备。另外,第二用户的外部设备可能不具有安装在电子设备上的相同的通信应用。相反,第二用户可以使用常规电话来执行与第一用户的通信应用的通信链路。常规电话通信链路可以是标准电话服务。因此,第一用户的通信应用可以允许在外部设备上与第二用户建立标准电话通信线路。

此外,在本示例中,应用可以用于建立与外围设备的直接连接。可以假设外围设备用于经由通信接口20连接到运行在应用引擎15上的通信应用。直接连接可以表示通信应用可以直接向外围设备发送命令或者数据的连接。另外,直接连接可以允许外围设备直接向应用发送命令或者数据。建立直接连接的方式没有特别限制。例如,通信应用可以使用诸如人机接口设备协议的协议直接与外围设备通信,该协议提供应用与外围设备之间的这种直接通信。应当理解,通过使用人机接口设备协议,通信应用能够向外围设备发送命令,而无需使用操作系统。因此,人机接口设备协议可以允许外围设备以更有效的方式通信。

继续统一通信客户端与电话之间的通信链路的以上的示例,外围设备可以是具有麦克风和扬声器的耳机。耳机可以包括用户输入面板,其中用户可以生成输入来改变统一通信客户端的音量、将参与者增加到电话呼叫、应答另一个呼入呼叫和/或者切换屏幕共享。类似地,统一通信客户端可以向耳机发送命令或者数据。例如,统一通信客户端可以向耳机发送呼叫的状态,诸如统一通信客户端是否已经被置于等待状态,或者呼叫是否已经结束或者被应答。

通信接口20用于与外围设备通信。具体地,通信接口20向外围设备发送命令和数据,并从外围设备接收命令和数据。继续以上的示例,装置10可以为用户提供在诸如电话的外部设备上与另一用户通信的能力。因此,通信接口20可以与耳机通信以促进电话通信。在本示例中,耳机可以包括麦克风以从用户接收诸如语音数据的音频数据。耳机也可以包括诸如触摸屏的附加的按钮或者输入机构以接收要在通信接口20处接收的输入。另外,耳机可以包括扬声器以为用户生成音频输出。耳机也可以包括诸如显示屏的附加的指示器或者输出机构以通过通信接口20为用户生成输出。

通信接口20向外围设备发送数据和从外围设备接收数据的方式没有特别限制。在本示例中,通信接口20可以是使用超高频无线电波在短距离上与外围设备通信的无线接口。具体地,通信接口20可以使用诸如蓝牙的标准。在其他示例中,通信接口20可以经由互联网或者经由有线连接而连接到外围设备。

回到本具体示例,通信接口20可以与诸如耳机的外围设备进行通信以与由应用引擎15执行的应用建立直接连接。建立直接连接的方式没有特别限制,并且可以响应于触发事件。在本示例中,触发事件可以是在通信接口20处从外围设备接收的用户输入。例如,用户可以按下按钮或者向耳机提供语音命令。继续以上的示例,应用是统一通信客户端,并且可以从外部设备接收电话呼叫。因此,统一通信客户端可以经由通信接口20向耳机发送数据。作为响应,耳机可以为用户生成输出。例如,耳机可以响铃或者振动以指示电话呼叫被请求。作为响应,耳机的用户可以按下按钮来应答电话呼叫。应当理解,电话呼叫的应答可以是将经由通信接口20连接的耳机通过人机接口设备协议附接到统一通信客户端的触发事件。

通信接口25用于与另一外围设备通信。具体地,通信接口25用于向外围设备发送命令和数据,并从外围设备接收命令和数据。继续以上的示例,通信接口25可以与诸如键盘的另一用户接口设备通信。键盘可以包括从用户接收输入的按键。除了键盘上的标准按键之外,键盘可以包括用于与统一通信客户端交互的专用按键,诸如音量控制按键和处理电话呼叫的按键(诸如应答呼叫或者挂断呼叫的按钮)。键盘也可以包括显示屏的附加的指示器,以输出与经由通信接口25从应用接收的电话呼叫相关联的数据。要接收的附加的数据不受限制,并且可以包括定时器数据、呼叫状态数据、呼叫者标识信息以及与电话呼叫相关联的其他数据。

通信接口25向附加的外围设备发送数据和从附加的外围设备接收数据的方式没有特别限制。在本示例中,通信接口25可以是使用超高频无线电波在短距离上与外围设备通信的无线接口。具体地,通信接口25可以使用诸如蓝牙的标准。在其他示例中,通信接口25可以经由互联网或者经由有线连接而连接到外围设备。

回到本具体示例,应当理解,人机接口设备协议可以用于连接单个外围设备,并且不支持附加的设备。因此,由于通信接口20已经通过人机接口设备协议与运行在应用引擎15上的应用建立了直接连接,因此使用标准人机接口设备协议经由通信接口25进行通信的键盘不能建立与应用的直接连接。

在本示例中,编排引擎30与应用引擎15以及通信接口20和通信接口25通信。编排引擎30用于从运行在应用引擎15上的应用接收命令和数据,并将命令编排到经由通信接口20连接到装置的外围设备和经由通信接口25连接到装置的外围设备。另外,编排引擎30用于经由通信接口20从外围设备接收命令和数据,并且经由通信接口25从第二外围设备接收命令和数据。编排引擎30用于将经由通信接口20或者通信接口25接收的命令和数据编排到应用,以控制应用的各种特征。

再次参见以上的示例,耳机连接到通信接口20,并且键盘连接到通信接口25。在该示例中,耳机和键盘两者可以具有用于统一通信客户端的附加的输入和输出。使用人机接口设备协议附接统一通信客户端的默认设备可以被假设为连接到通信接口20的耳机。在操作期间,编排引擎30用于截取从统一通信客户端经由人机接口设备协议接收到外围设备的命令。应当理解,来自统一通信客户端的命令经由通信接口20被引导至耳机。编排引擎30截取该命令,并且也经由通信接口25将其转发到键盘。例如,来自统一通信客户端的命令可以用于激活诸如LED、声音、振动或者显示屏上的提示的指示器以通知用户存在呼入的电话呼叫。通过向耳机和键盘两者发送命令,两个外围设备将向用户生成输出。相比之下,在没有编排引擎30的情况下,键盘将不会接收到人机接口设备命令。

类似地,编排引擎30用于截取经由旨在用于统一通信客户端的人机接口设备协议从外围设备接收的命令。应当理解,可以经由通信接口20从耳机接收命令,或者经由通信接口25从键盘接收命令,即使键盘没有经由人机接口设备协议直接连接到统一通信客户端。编排引擎30接收该命令,而无论哪个外围设备生成该命令并将其转发到统一通信客户端。例如,响应于来自统一通信客户端的通知用户有呼入电话呼叫的命令,用户可以使用键盘上的“应答呼叫”按钮来经由通信接口25生成命令。编排引擎30接收该命令,并使用人机接口设备协议将其引导到统一通信客户端。相比之下,在没有编排引擎30的情况下,由于统一通信客户端经由人机接口设备协议连接到耳机,键盘将无法向统一通信客户端发送人机接口设备命令。尽管诸如构建统一通信客户端的后门的可替代软件解决方案也可以工作,但是应当理解,通过使用可替代路由向统一通信客户端发送命令涉及附加的层并使用更定制化的软件。

参见图2,在10a处示出了在应用与外围设备之间编排命令的装置的另一示例。装置10a的相似的部件除了其后有后缀“a”之外与它们在装置10中的对应部件具有相似的标号。在本示例中,装置10a包括通信引擎15a、第一通信接口20a、第一外围设备22a、第二通信接口25a、第二外围设备27a、编排引擎30a、第一过滤器35a和第二过滤器40a。

通信引擎15a用于执行统一通信客户端,以向单独的电子设备上的用户提供彼此通信的能力。例如,第一用户可能正在操作安装有统一通信客户端的计算机系统,以便与单独的计算机系统上的另一用户通信。在本示例中,第二用户可以操作装置10a之外的另一设备。另外,第二用户的外部设备可能安装有相同的统一通信客户端,也可能未安装。相反,第二用户可能使用常规电话来执行与第一用户的统一通信客户端的通信链路。常规电话通信链路可以是标准电话服务。因此,第一用户的统一通信客户端可以允许与在外部设备上的第二用户建立标准电话通信线路。

在本示例中,统一通信客户端使用人机接口设备协议经由通信接口20a建立与外围设备22a的直接连接,使得外围设备22a可以与统一通信客户端发送和接收人机接口设备命令。装置10a进一步包括也与人机接口设备协议兼容以与统一通信客户端一起操作的附加的外围设备27a,。因此,外围设备27a用于接收用户输入并直接为统一通信客户端生成命令。

在本示例中,外围设备22a安装有过滤器35a。过滤器35a通常可以是控制外围设备22a的驱动器。参见图3,过滤器35a可以截取从统一通信客户端向外围设备22a入站的人机接口设备命令。在截取来自统一通信客户端的人机接口设备命令时,过滤器35a复制该命令并将其转发到编排引擎30,编排引擎30可以将其转发到外围设备27a。因此,尽管外围设备27a不使用人机接口设备协议与统一通信客户端通信,但是外围设备27a将以与外围设备22a类似的方式接收命令。因此,外围设备27a与外围设备22a同步。例如,外围设备27a和外围设备22a可以显示统一通信客户端的状态,诸如呼叫是活动的还是在等待(on hold)。作为另一示例,外围设备27a和外围设备22a两者可以用于接收诸如音量控制命令或者结束呼叫命令的用户输入以在同步时控制统一通信客户端。如图4中所示,由于外围设备22a直接与统一通信客户端连接,来自外围设备22a的命令可以通过过滤器到达通信引擎15a。

在本示例中,外围设备27a安装有过滤器40a。与过滤器35a类似,过滤器40a通常可以是控制外围设备27a的驱动器。参见图5,过滤器40a可以截取从外围设备27a入站到统一通信客户端的人机接口设备命令。由于外围设备27a没有连接到统一通信客户端,并且在外围设备27a处接收的命令可能不被转发到通信引擎15a。然而,当利用过滤器40a截取来自外围设备27a的人机接口设备命令时,命令被发送到编排引擎30a,编排引擎30a可以经由过滤器35a将命令转发到在通信引擎上运行的统一通信客户端。从统一通信客户端的角度来看,来自外围设备27a的命令表现为从外围设备22a接收到,使得不需要对人机接口设备协议或者统一通信客户端进行附加的修改。因此,尽管外围设备27a没有使用人机接口设备协议与统一通信客户端通信,但是外围设备27a能够以与外围设备22a类似的方式从用户接收命令。因此,外围设备27a将与外围设备22a同步。

另外,过滤器35a和过滤器40a可以分别用于检测外围设备22a和外围设备27a的存在。因此,在检测到外围设备22a或者外围设备27a的增加或者移除时,信息可以被转发到编排引擎30a,编排引擎30a可以调整广播人机接口设备命令的方式。检测外围设备22a或者外围设备27a的存在的方式没有特别限制。例如,过滤器35a和过滤器40a可以向通信接口20a或者通信接口25a发送周期性状态检查以确定是否连接了外围设备。

参见图6,在10b处示出了在应用与外围设备之间编排命令的装置的另一示例。装置10b的相似部件除了其后有后缀“b”之外与它们在装置10a中的对应部件具有相似的标号。在本示例中,装置10b包括处理器50b、存储器存储单元55b、第一外围设备60b和第二外围设备65b。

在本示例中,处理器50b可以包括中央处理单元(CPU)、微控制器、微处理器、处理核、现场可编程门阵列(FPGA)等。处理器50b和存储器存储单元55b可以协作以执行各种指令。处理器50b维护并操作通信引擎15b以运行诸如统一通信客户端的应用。另外,处理器50b可以操作编排引擎30b,以编排通信引擎15b与外围设备60b和外围设备65b之间的命令和数据。

处理器50b也用于控制外围设备60b和外围设备65b。具体地,处理器50b可以向外围设备60b和外围设备65b发送指令以接收用户输入和数据。例如,处理器50b可以使用人机接口设备协议在统一通信客户端、外围设备60b和外围设备65b之间接收和发送命令。

存储器存储单元55b耦接到处理器50b,并且可以包括非暂时性机器可读存储介质,其可以是任何电子、磁、光或者其他物理存储设备。非暂时性机器可读存储介质可以包括例如随机存取存储器(RAM)、电可擦除可编程只读存储器(EEPROM)、闪存、存储驱动器和光盘等。存储器存储单元55b也可以用可执行指令编码,以操作外围设备60b和外围设备65b以及与处理器50b通信的其他硬件。在其他示例中,应当理解,存储器存储单元55b可以用基于云的存储系统代替。

存储器存储单元55b也可以存储由处理器50b可执行的操作系统,以向装置10提供通用功能,例如支持诸如访问装置10b的各种特征的用户界面的各种应用的功能。操作系统的示例包括WindowsTM、macOSTM、iOSTM、AndroidTM、LinuxTM和UnixTM。存储器存储单元55b可以附加地存储由处理器50b可执行的应用,以向装置10b提供诸如下文更详细的描述的特定功能。

存储器存储单元55b也可以存储用于装置10b的操作的附加的可执行指令。在本示例中,可执行指令可以包括供处理器50b运行以便操作通信引擎15b和编排引擎30b的指令组。

参见图7,在200处示出了在应用与外围设备之间编排命令的方法的流程图。为了帮助解释方法200,将假设方法200可以利用装置10b来执行。实际上,方法200可以是装置10b可以被配置成与外部设备(未示出)交互的一种方式。此外,方法200的以下讨论可以导致对装置10b及其各种部件的进一步理解。此外,需要强调的是,方法200可以不按照所示的准确顺序执行,并且各种框可以并行执行而不是按顺序执行,或者按照完全不同的顺序执行。

从框210处开始,处理器50b用于在通信引擎15b上执行诸如统一通信客户端的应用。通信引擎15b通常与由另一用户操作的外部设备通信。例如,统一通信客户端可以通过诸如电话呼叫的通信标准与第二用户建立通信链路。

框220包括将外围设备60b附接到统一通信客户端。在本示例中,统一通信客户端可以使用人机接口设备协议与单个外围设备通信。外围设备60b的附接可以由用户或者基于设备的优先级列表来预定。在其他示例中,可以响应于诸如通过外围设备60b处的输入的选择的触发事件来附接外围设备。外围设备60b的选择没有特别限制,并且在一些示例中,外围设备65b可以附接到统一通信客户端。

框230包括将命令从统一通信客户端复制到外围设备60b。如上所描述,由于外围设备60b通过人机接口设备协议被附接到统一通信客户端,统一通信客户端将不能使用相同的协议与其他外围设备通信。在本示例中,发送到外围设备60b的命令可以被过滤器截取、复制并传输到编排引擎30b。此外,过滤器可以是与外围设备60b相关联的驱动器。将命令传输到编排引擎30b的方式不受限制,并且可以涉及推送或者拉取过程(pushing orpulling process)。

在框240中,在框230处生成的复制命令被广播到其他外围设备。在该示例中,唯一的其他外围设备是外围设备65b。在其他示例中,附加的外围设备可以接收复制命令。例如,如果来自统一通信客户端的原始命令是提醒外围设备60b电话呼叫正在到来,则框240也可以提醒外围设备65b。

框250包括复制来自外围设备65b的命令。在该示例中,由于外围设备65b不与统一通信客户端直接通信,因此外围设备无法向统一通信客户端发送命令。相反,命令可以由过滤器复制以传输到编排引擎30b,编排引擎30b随后可以在框260中将命令发送到统一通信客户端。来自外围设备65b的命令经由过滤器被传输到编排引擎30b的方式不受限制,并且可以涉及推送或者拉取过程。

因此,当用户被提醒有电话呼叫时,代替利用外围设备60b应答呼叫,用户可以使用外围设备65b,因为在使用人机接口设备协议时,命令将通过编排引擎30b被路由到统一通信客户端,从而可以省略向统一通信客户端增加后门的附加的开发。

应当认识到,以上提供的各种示例的特征和方面可以组合成也落入本公开的范围内的进一步示例。

17页详细技术资料下载
上一篇:一种医用注射器针头装配设备
下一篇:会话管理功能选择

网友询问留言

已有0条留言

还没有人留言评论。精彩留言会获得点赞!

精彩留言,会给你点赞!

技术分类