用于动态分布式服务再分布的方法和设备与流程

文档序号:18256965发布日期:2019-07-24 10:19阅读:152来源:国知局
用于动态分布式服务再分布的方法和设备与流程

说明性实施例大体涉及用于动态分布式服务再分布的方法和设备。



背景技术:

许多车辆都配备有车载计算机,能够提供与车辆上的各种过程和程序相关的内部处理、应用程序处理和通用计算功能。同时,云服务的功能和可访问性也得到了显著提升,并且基于云的计算可以提供对极其强大的计算引擎的访问,其典型地比车辆上可用的任何计算强大得多且快速得多。

基于云的计算服务确实需要将车辆所使用的数据传送回车辆,并且将要在处理中使用的数据从车辆传送到云。传送对服务处理强加了时间约束,并且取决于要传送的数据量,带宽限制可以通过基于当前带宽将数据传送减慢到可用水平(容量和速度)来进一步约束服务。



技术实现要素:

在第一说明性实施例中,一种系统包括处理器,所述处理器被配置为检测应用程序发起请求。所述处理器还被配置为确定当前车辆连接可用性是否足以支持所述应用程序的远程执行。另外,所述处理器被配置为响应于确定当前车辆连接不足以支持远程执行而启动所述应用程序的本地版本。所述处理器还被配置为一旦当前车辆连接足以支持远程执行,就会请求远程服务器启动所述应用程序的实例。

在第二说明性实施例中,一种计算机实现的方法包括接收对车辆应用程序的应用程序发起请求。所述方法还包括基于当前车辆连接是否足以支持所述应用程序的远程执行而确定是本地还是远程启动所述应用程序。所述方法还包括响应于所述确定,本地执行所述应用程序或指示所述应用程序的远程执行。

在第三说明性实施例中,一种非暂时性计算机可读存储介质存储指令,所述指令当由处理器执行时,致使所述处理器执行包括以下的方法:对于多个本地执行的应用程序中的每一个,监视当前远程连接能力以确定所述能力是否可以支持从包含处理器的实体远程执行给定本地应用程序,不过是代表所述包含处理器的实体,或所述能力是否使得所述给定本地应用程序应继续本地执行。所述方法还包括对于多个本地执行的应用程序中的每一个,监视当前远程连接能力以确定所述能力是否能够代表包含所述处理器的实体继续支持从所述包含处理器的实体远程执行给定远程应用程序,或所述能力是否使得所述给定远程应用程序应开始本地执行。此外,所述方法包括根据与连接有关的所述确定来转移所述本地执行的应用程序和所述远程执行的应用程序的执行。

附图说明

图1示出了说明性车辆计算系统;

图2A至图2E示出了计算服务的说明性分布;

图3示出了服务请求处理的说明性过程;以及

图4A和图4B示出说明性服务转移过程。

具体实施方式

按照需要,本文公开详细实施例;然而,应理解,所公开的实施例仅是说明性的,并且可以以各种形式和替代形式并入。附图不一定按比例绘制;一些特征可能会被放大或最小化以示出特定部件的细节。因此,本文所公开的特定结构细节和功能细节不应被解释为是限制性的,而是仅作为教导本领域的技术人员以不同方式应用所要求保护的主题的代表性基础。

图1示出了用于车辆31的基于车辆的计算系统1(VCS)的示例框拓扑。此类基于车辆的计算系统1的示例是由福特汽车公司(THE FORD MOTOR COMPANY)制造的SYNC系统。支持基于车辆的计算系统的车辆可以包含位于车辆中的可视前端接口4。如果接口设有例如触摸屏显示器,那么用户也能够与接口交互。在另一个说明性实施例中,通过按钮按压、具有自动语音识别的口语对话系统和语音合成来进行交互。

在图1所示的说明性实施例1中,处理器3控制基于车辆的计算系统的操作中的至少一些部分。处理器允许在车辆内提供命令和程序的承载处理。此外,处理器连接到非永久性存储器5和永久性存储器7。在该说明性实施例中,非永久性存储器是随机存取存储器(RAM),而永久性存储器是硬盘驱动器(HDD)或快闪存储器。一般来说,永久性(非暂时性)存储器可以包括在计算机或其它装置断电时维护数据的所有形式的存储器。这些存储器包括但不限于HDD、CD、DVD、磁带、固态驱动器、便携式USB驱动器以及任何其它合适形式的永久性存储器。

处理器还设有允许用户与处理器交互的许多不同的输入端。在该说明性实施例中,提供了麦克风29、辅助输入端25(用于输入33)、USB输入端23、GPS输入端24、屏幕4(其可以是触摸屏显示器)以及蓝牙(BLUETOOTH)输入端15。还提供输入选择器51,以允许用户在各种输入之间交换。麦克风和辅助连接器的输入在被传递到处理器之前由转换器27从模拟转换为数字。虽然未示出,但是与VCS通信的许多车辆部件和辅助部件可以使用车辆网络(诸如但不限于CAN总线)来与VCS(或其部件)来回传递数据。

系统的输出可以包括但不限于视觉显示器4和扬声器13或立体声系统输出。扬声器连接到放大器11并通过数-模转换器9从处理器3接收放大器11的信号。还可以沿着分别在19和21处示出的双向数据流将输出传输到诸如PND 54的远程蓝牙装置或诸如车辆导航装置60的USB装置。

在一个说明性实施例中,系统1使用蓝牙收发器15与用户的漫游装置53(例如,蜂窝电话、智能电话、PDA或具有无线远程网络连接的任何其它装置)进行通信17。然后,可以使用漫游装置(以下称为ND)53来通过例如与蜂窝塔57的通信55与车辆31外部的网络61进行通信59。在一些实施例中,塔57可以是Wi-Fi接入点。

ND 53与蓝牙收发器15之间的示例性通信由信号14表示。

可以通过按钮52或类似的输入端来指示配对ND 53和蓝牙收发器15。因此,指示CPU将车载蓝牙收发器与漫游装置中的蓝牙收发器配对。

可以利用例如数据计划、声载数据或与ND 53相关联的DTMF音调在CPU 3与网络61之间传达数据。替代地,可能期望包括具有天线18的车载调制解调器63,以便通过语音频带在CPU 3与网络61之间传达16数据。然后,可以使用ND 53来通过例如与蜂窝塔57的通信55与车辆31外部的网络61进行通信59。在一些实施例中,调制解调器63可以与塔57建立通信20,以与网络61进行通信。作为一个非限制性示例,调制解调器63可以是USB蜂窝调制解调器,并且通信20可以是蜂窝通信。

在一个说明性实施例中,处理器设有操作系统,所述操作系统包括用于与调制解调器应用软件进行通信的API。调制解调器应用软件可以访问蓝牙收发器上的嵌入式模块或固件,以完成与远程蓝牙收发器(诸如存在于漫游装置中的蓝牙收发器)的无线通信。蓝牙是IEEE802PAN(个人区域网络)协议的子集。IEEE 802LAN(局域网)协议包括Wi-Fi,并且与IEEE 802PAN具有相当大的交叉功能。两者都适用于车辆内的无线通信。可在该领域中使用的另一个通信手段是自由空间光学通信(诸如IrDA)和非标准化消费者IR协议。

在另一个实施例中,ND 53包括用于话音频带或宽带数据通信的调制解调器。在声载数据实施例中,当漫游装置的所有者能够在传送数据时通过装置进行谈话时,可以实现称为频分复用的技术。在其它时候,当所有者未在使用装置时,数据传送可以使用整个带宽(在一个示例中为300Hz至3.4kHz)。虽然频分复用对于车辆与互联网之间的模拟蜂窝通信来说可能是常见的,并且仍在使用,但是它已经在很大程度上被用于数字蜂窝通信的码域多址(CDMA)、时域多址(TDMA)、空域多址(SDMA)的混合技术所替代。如果用户具有与漫游装置相关联的数据计划,那么数据计划可能允许宽带传输,并且系统可以使用更宽的带宽(加速数据传送)。在又一个实施例中,ND 53被安装到车辆31的蜂窝通信装置(未示出)所替代。在又一个实施例中,ND 53可以是能够通过例如(但不限于)802.11g网络(即,Wi-Fi)或Wi-Max网络进行通信的无线局域网(LAN)装置。

在一个实施例中,传入数据可以经由声载数据或数据计划传递通过漫游装置、通过车载蓝牙收发器并进入车辆的内部处理器3中。例如,就某些临时数据的情况来说,数据可以存储在HDD或其它存储介质7上,直到不再需要数据为止。

可与车辆介接的附加源包括具有例如USB连接56和/或天线58的个人导航装置54、具有USB 62或其它连接的车辆导航装置60、车载GPS装置24、或具有与网络61的连接的远程导航系统(未示出)。USB是一类串行网络化协议之一。IEEE 1394(FireWireTM(Apple)、i.LINKTM(Sony)和LynxTM(德州仪器))、EIA(电子工业协会)串行协议、IEEE 1284(Centronics端口)、S/PDIF(Sony/Philips Digital互连格式)和USB-IF(USB实现者论坛)形成装置间串行标准的基干。大多数协议可以实现用于电通信或光学通信。

此外,CPU可以与多种其它辅助装置65进行通信。这些装置可以通过无线连接67或有线连接69进行连接。辅助装置65可以包括但不限于个人媒体播放器、无线健康装置、便携式计算机等。

此外,或替代地,CPU可以使用例如Wi-Fi(IEEE 803.11)71收发器而连接到基于车辆的无线路由器73。这可以使CPU在本地路由器73的范围中连接到远程网络。

除了使由位于车辆中的车辆计算系统执行示例性过程之外,在某些实施例中,还可以由与车辆计算系统通信的计算系统执行示例性过程。这种系统可以包括但不限于无线装置(例如但不限于移动电话)或通过无线装置连接的远程计算系统(例如但不限于服务器)。这种系统可以被统称为车辆相关联的计算系统(VACS)。在某些实施例中,VACS的特定部件可取决于系统的特定实现方式来执行过程的特定部分。作为示例而非限制,如果过程具有与配对的无线装置发送或接收信息的步骤,那么很可能无线装置未在执行过程的那个部分,因为无线装置不会与本身“发送和接收”信息。本领域的普通技术人员将理解何时将特定计算系统应用于给定解决方案是不合适的。

在本文论述的每个说明性实施例中,示出了可由计算系统执行的过程的示例性非限制性示例。关于每个过程,为了执行过程的有限目的,执行过程的计算系统可能被配置为执行过程的专用处理器。所有过程不需要全部都执行,并且被理解为可执行以实现本发明的要素的过程类型的示例。可以根据需要在示例性过程中添加或移除附加步骤。

关于在附图中描述的示出说明性过程流的说明性实施例,应注意,出于执行这些附图所示的示例性方法中的一些或全部的目的,可以暂时地启用通用处理器作为专用处理器。当执行提供指令以执行方法中的的一些或全部步骤的代码时,处理器可以暂时地重新用作专用处理器,直到所述方法完成为止。在另一个示例中,在适当的程度上,根据预先配置的处理器起作用的固件可以致使处理器充当出于执行所述方法或其一些合理变型的目的而提供的专用处理器。

在许多车辆计算场景中,车辆可以访问本地和远程计算能力两者以处理过程和数字服务。虽然远程处理几乎总是比本地处理更强大,但是通信限制和中断可以使一种方法的有效性与另一种方法的有效性相抵。说明性实施例基于通信约束可以如何影响净处理时间或其它效用参数而提出用于动态地选择本地或远程处理的方法和设备。

图2A至图2E示出了计算服务的说明性分布。只要没有连接,该过程就会本地执行所有可能的服务。一旦建立连接,系统就会尽可能多地向云卸载服务。在行程过程中,系统将在车辆与云之间来回传递处理,这取决于通信变化和其如何影响云计算的有效性,而不是执行车载功能(典型地几乎不需要远程通信)。

图2A示出了当没有连接可用时执行一系列服务A、B和C的系统的说明性示例。这可以是例如在起动时,或在无法建立(或可靠地建立)远程信号的任何时候。

车辆200包括车载远程信息处理和通信管理器201。车辆还执行服务管理器202。服务A、B和C包括响应的图形用户界面(GUI)203、204和205。这些GUI经由主操作系统209本地执行,并且无论应用程序是车载还是非车载,都会存在。无论应用程序在何处执行(本地或远程),GUI都为应用程序提供用户接口。这里,应用程序(A 205、B 206和C 207)都在管理程序212的权限内本地执行。

远程服务器210可用,其还包括远程信息处理和通信管理器211以及服务管理器213,两者在主操作系统215的控制下执行。管理程序可以管理在远程服务器上执行的服务,但是由于在该示例中没有连接,因此远程服务器尚未开始代表车辆执行任何过程。

图2B示出了在通信变得可用时的通信程序。在该示例中,可管理服务A、B和C的本地服务管理器202使用远程信息处理通信管理器201来与远程信息处理通信管理器211通信。远程服务管理器213可以通过通信模块之间的通信链路与本地服务管理器对话。

将传递给远程服务器的服务的数量可以是可用带宽和/或连接类型的函数。通过车载服务管理和对可用连接的理解,系统可以传递可最大程度地从远程处理和连接的组合中受益的任何服务。需要非常有限的数据传送的服务可能还需要有限处理,但是仍可以传递给远程服务器以支持处理密集型服务(其将更有效地远程运行),这也需要大量的数据传递,在连接不良、带宽较低等的情况下。如果带宽增加和/或连接变得更可靠,那么该过程可以交换这两个服务,因为如果通信连接可以处理必要的数据传送,那么系统将受益于使后一个服务在云上运行。这种平衡可以用于在连接允许时动态地传递云与车辆之间的服务处理。

图2C示出了在从本地服务管理器向远程服务管理器传递处理指令之后远程服务器210上的服务的起动。还可以提供继续服务提供所需的任何数据,使得远程服务A 221、B 223和C 225可以在限于不中断或重置的情况下继续。一旦远程服务成功起动,如图2D所示,本地服务管理器可以停止那些服务的本地版本。当存在高带宽、可靠连接时,可以完成传递所有服务处理,诸如在该示例中。如果连接不足以处理所有服务的数据传送需求,那么本地服务管理器可以保持一个或多个服务本地执行。本地服务GUI继续提供与服务的介接,但是现在是通过远程信息处理通信模块来进行,远程信息处理通信模块可以将命令传递到远程服务器并输出回GUI。

在某些时刻,本地服务处理过程可以确定通信不足以处理来自远程执行的所有服务的请求和数据。本地服务管理器(或其它适当的模块)可以请求车辆管理程序起动远程服务208的本地副本。任何保存数据(用于不中断地继续服务)都可以本地传回,并且本地GUI现在可以直接地与服务的本地实例交互。远程服务器可以停止远程服务,直到有足够的带宽来恢复服务的远程执行为止。如果通信完全丢失,或不足以为任何远程服务可靠地处理数据传送,那么服务处理过程可以本地重新起动所有过程。

图3示出了服务请求处理的说明性过程。在该说明性示例中,在车辆处执行的过程接收301服务请求。用户可以启动应用程序,或该服务可以是支持某种形式的车载功能的车辆支持服务。其它请求可以包括指定的自动应用程序启动或可在起动、点播或自动地激活时运行的其它服务。

该过程可以确定303连接是否可由服务使用。这可以包括例如蜂窝连接、Wi-Fi连接或可用于传送数据并支持服务的远程执行的任何其它连接。如果没有任何连接,那么该过程将使用车载处理器起动305服务的本地实例。当服务正在执行时,该过程还将监视307连接可用性,并且如果连接变得可用,那么该过程可以通过请求远程起动并传递任何所需的数据来将处理传递到服务的远程版本。

如果存在可用通信连接,那么该过程可以确定309是否存在足以支持过程远程执行的带宽。如果存在足够的带宽,那么该过程可以请求311远程服务器起动该过程的某个版本,以传递所需的任何初始化数据。同样,该过程可以监视连接,并且如果连接开始失败,例如,该过程可以本地起动并在连接完全失败之前接收任何相关数据。

本地起动可取决于通信故障或通信降级。许多远程执行的过程将在执行时将数据传递回车辆以用于各种输出目的,因此在处理中没有任何可见中断的情况下可能需要很少或不需要数据转换就能开始服务的本地实例。在其它情况下,本地过程可能需要来自远程过程的大量数据,以便无缝地或接近无缝地转换。在前一种情况下,本地过程起动可能延迟,直到连接完全丢失,但是在后一种情况下,如果需要,可以在连接衰落期间的某个时刻执行本地过程起动,其中本地处理器预料到丢失连接并相应地请求转换数据。如果连接稳定,那么不需要进行本地转换,并且可以仅停止本地服务。但是,如果连接丢失,那么本地过程可以使用在丢失之前请求的本地数据来提供更无缝的转换。

图4A和图4B示出说明性服务转移过程。在图4A所示的说明性示例中,处理过程确定401是否存在任何服务是本地执行的。只要一个或多个服务本地执行,处理过程就可以跟踪本地服务的连接可用性,因此当连接可用时,服务可以转换为远程处理。

对于任何给定本地服务执行,该过程可以检查403以查看将支持该服务的连接是否可用。该过程还可以检查以查看将支持转换服务的带宽405是否可用。由于可以执行多个本地服务,因此该过程可以作用于按照转移偏好排序的有序服务列表,使得首先考虑的服务(出于带宽考虑)是要转移的“最佳”服务。这允许该过程按照偏好顺序转换407服务。存在许多替代模型来实现相同结果,该示例被讨论来证明转移可以是随机的,或可以基于服务参数和/或带宽参数而优先地考虑。

如果任何本地服务保留409,那么该过程可以出于转移考虑而选择411下一个服务并重复该过程。只要任何服务保留,该过程就可以继续检查可用带宽并根据需要转移服务。

如果任何执行的服务是远程服务401,那么该过程还可以跟踪应将服务转移回本地处理的情况。如前所述,如果连接完全丢失并当连接完全丢失时,该过程总是可以起动本地副本,因此在那些情况下监视要求可能最小。在过程是使用远程数据转换服务以平滑转换的情况下,所示的过程是可以如何预处理转换的示例。

这里,该过程确定423连接是否因衰落信号而变得时好时坏。由于衰落连接或例如可导致带宽降级的新的连接类型,该过程还确定425带宽是否正在改变。如果该过程确定存在指示应发生转换的任一(或任何其它)情景,那么该过程可以接收427本地执行服务所需的任何数据。然后,该过程可以起动429本地实例。如果不需要转换到本地实例(因为连接从未降级或改变以指示转换),那么该过程总是可以在对本地处理的影响最小的情况下停止服务的本地实例。

说明性实施例允许利用本地处理和远程处理两者,并且使用带宽约束和连接可用性以及连接选项以动态地再分布处理,其方式为使得可以在可用资源实际上可用时更好地使用那些资源。

虽然在上文描述了示例性实施例,但是不意味着这些实施例描述本发明的所有可能形式。相反,本说明书中使用的词语为描述性而非限制性词语,并且应理解,可以在不脱离本发明的精神和范围的情况下做出各种改变。另外,各种实现实施例的特征可以以逻辑方式组合以根据情形产生本文描述的实施例的合适的变型。

根据本发明,提供了一种系统,所述系统具有:处理器,所述处理器被配置为:检测应用程序发起请求;确定当前车辆连接可用性是否足以支持所述应用程序的远程执行;响应于确定当前车辆连接不足以支持远程执行,启动所述应用程序的本地版本;以及一旦当前车辆连接足以支持远程执行,就会请求远程服务器启动所述应用程序的实例。

根据一个实施例,所述处理器被配置为基于可用带宽而确定当前车辆连接可用性是否足以支持所述应用程序的远程执行。

根据一个实施例,所述处理器被配置为基于由其它远程执行的应用程序利用的光带宽中剩余的可用带宽而确定当前车辆连接可用性是否足以支持所述应用程序的远程执行。

根据一个实施例,所述处理器被配置为基于所测量的连接强度而确定当前车辆连接可用性是否足以支持所述应用程序的远程执行。

根据一个实施例,所述处理器还被配置为:接收关于所述远程服务器已经启动所述应用程序的实例的确认;以及响应于所述确认而终止所述应用程序的所述本地版本。

根据一个实施例,所述处理器被配置为:在终止所述本地版本之前,从所述本地版本向远程版本传递以最小中断继续应用程序进程所需的任何应用程序数据。

根据一个实施例,所述处理器还被配置为:在远程启动确认之后,确定当前车辆连接已下降到低于保持所述应用程序的远程执行所需的水平;以及响应于确定当前车辆连接已下降到低于所述水平,启动所述应用程序的另一个本地版本。

根据一个实施例,所述处理器还被配置为响应于本地启动所述另一个版本而指示所述远程启动的应用程序的终止。

根据一个实施例,所述处理器还被配置为在指示终止之前,从所述远程启动的应用程序请求以最小中断继续应用程序进程所需的任何应用程序数据。

根据一个实施例,所述处理器还被配置为:在远程启动确认之后,预测当前车辆连接将下降到低于保持所述应用程序的远程执行所需的水平;以及响应于确定当前车辆连接将下降到低于所述水平,启动所述应用程序的另一个本地版本;

根据一个实施例,所述处理器还被配置为响应于本地启动所述另一个版本并响应于检测到已经实现所述预测的低水平的连接而指示所述远程启动的应用程序的终止。

根据一个实施例,所述处理器还被配置为在指示终止之前,从所述远程启动的应用程序请求以最小中断继续应用程序进程所需的任何应用程序数据。

根据一个实施例,所述处理器还被配置为预测沿着路线的区域,其中预测发生所述预测的低水平的连接。

根据一个实施例,所述处理器被配置为当车辆通过所述预测区域时终止所述另一个本地版本,而不实现所述预测的低水平的连接。

根据本发明,一种计算机实现的方法包括:接收对车辆应用程序的应用程序发起请求;基于当前车辆连接是否足以支持所述应用程序的远程执行而确定是本地还是远程启动所述应用程序;以及响应于所述确定,本地执行所述应用程序或指示所述应用程序的远程执行。

根据一个实施例,所述确定包括基于可用带宽而确定当前车辆连接可用性是否足以支持所述应用程序的远程执行。

根据一个实施例,所述确定包括基于由其它远程执行的应用程序利用的光带宽中剩余的可用带宽而确定当前车辆连接可用性是否足以支持所述应用程序的远程执行。

根据一个实施例,所述确定包括基于所测量的连接强度而确定当前车辆连接可用性是否足以支持所述应用程序的远程执行。

根据一个实施例,本发明的特征还在于,响应于确定先前不足以支持远程应用程序执行的连接已上升到足以支持远程应用程序执行的水平而指示本地执行的应用程序的远程执行。

根据本发明,一种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质存储指令,所述指令当由处理器执行时,致使所述处理器执行包括以下的方法:对于多个本地执行的应用程序中的每一个,监视当前远程连接能力以确定所述能力是否可以支持从包含处理器的实体远程执行给定本地应用程序,不过是代表所述包含处理器的实体,或所述能力是否使得所述给定本地应用程序应继续本地执行;对于多个远程执行的应用程序中的每一个,监视当前远程连接能力以确定所述能力是否可以代表所述包含处理器的实体继续支持从所述包含处理器的实体远程执行给定远程应用程序或所述能力是否使得所述给定远程应用程序应开始本地执行;以及根据与连接有关的所述确定来转移所述本地执行的应用程序和所述远程执行的应用程序的执行。

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