CN105659209B - 在客户端设备上托管的云服务 - Google Patents

在客户端设备上托管的云服务 Download PDF

Info

Publication number
CN105659209B
CN105659209B CN201480056852.0A CN201480056852A CN105659209B CN 105659209 B CN105659209 B CN 105659209B CN 201480056852 A CN201480056852 A CN 201480056852A CN 105659209 B CN105659209 B CN 105659209B
Authority
CN
China
Prior art keywords
client device
local
cloud service
service
function
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201480056852.0A
Other languages
English (en)
Other versions
CN105659209A (zh
Inventor
B·阿盖拉伊阿卡斯
H·费托西
B·施勒辛格
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN105659209A publication Critical patent/CN105659209A/zh
Application granted granted Critical
Publication of CN105659209B publication Critical patent/CN105659209B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/1097Protocols in which an application is distributed across nodes in the network for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/65Updates
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5061Partitioning or combining of resources
    • G06F9/5072Grid computing
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/303Terminal profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/2866Architectures; Arrangements
    • H04L67/30Profiles
    • H04L67/306User profiles
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/568Storing data temporarily at an intermediate stage, e.g. caching
    • H04L67/5683Storage of data provided by user terminals, i.e. reverse caching
    • YGENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
    • Y02TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
    • Y02DCLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
    • Y02D10/00Energy efficient computing, e.g. low power processors, power management or thermal management

Abstract

针对在客户端设备上托管的云服务而提供了一个或多个技术和/或系统。例如,云服务可以包括可以由客户端设备上的应用消耗的数据和/或功能。云服务可以被托管在云计算环境内,这是因为客户端设备可能不包括能够托管全部的云服务的处理资源。从而,可以在客户端设备上部署本地服务作为云服务的本地实例化。例如,本地服务可以是云服务的数据和/或功能的至少一部分的本地实例化。用这种方式,本地服务可以比云服务使用更少的资源,并且可以本地地处理来自客户端设备上的应用的请求。例如,地图本地服务可以利用从云服务中本地地缓存的地图数据来处理请求。

Description

在客户端设备上托管的云服务
背景技术
设备(例如,移动设备)可以依赖于由云计算环境托管的云服务。在示例中,设备上的应用可以通过网络访问各种云服务以用于数据和/或功能处理。例如,移动计算设备上的餐厅应用可以为了餐厅业列表数据而访问地图云服务,并且为了餐厅预定功能而访问地图云服务。因为可以将云服务托管在云托管设备(例如,云服务器基础设施)(不同于托管消耗云服务的数据和/或功能的应用的本地设备)上的云计算环境内,所以可能产生各种连通性、延迟、隐私、可缩放性、本地处理资源的不充分利用、和/或其它问题。
发明内容
提供了该概要以用简化形式介绍在下文的具体实施方式中进一步描述的一组选择的概念。该概要不旨在标识所要求保护的主题的关键因素或者基本特征,也不旨在用于限制所要求保护的主题的范围。
其中,在本文中提供了针对在客户端设备上托管的云服务的一个或多个系统和/或技术。例如,可以将云服务(例如,音乐云服务)托管在云计算环境内。云服务可以包括大量的数据(例如,各种风格的音乐的歌曲数据库)和/或代码模块(例如,歌曲识别模块、歌曲购买模块、歌曲用户评论模块、歌曲下载模块、歌曲回放模块等)。从而,可以在客户端设备上部署本地服务以用于云服务的实例化,使得本地服务可以本地地处理来自客户端设备上的应用对云服务的请求。本地服务可以包括云服务的数据和/或功能中的至少一些以用于处理这样的请求。例如,音乐本地服务可以对来自音乐云服务的歌曲数据库中的对应于客户端设备的用户感兴趣的音乐的风格的歌曲进行本地缓存。可以将来自音乐云服务的歌曲识别模块的歌曲识别功能安装到音乐本地服务中。以这样的方式,音乐本地服务可以本地地处理来自客户端设备上的应用的针对歌曲识别功能的请求。在示例中,音乐云服务可以对于音乐本地服务可能不能够处理的处理请求(例如,音乐回放请求)保持可用。在另一示例中,音乐云服务可以保持可用于向音乐本地服务(例如,与还没有在客户端设备上本地地缓存的风格相对应的歌曲)和/或功能(例如,用户可以希望购买歌曲,并且因此歌曲购买模块可以用于更新音乐本地服务)提供额外的数据。可以预测和/或从云音乐服务中获取可以相关于用户的数据和/或功能,以用于由本地音乐服务以无缝的和/或自动化的方式使用。
在托管在客户端设备上的云服务的示例中,功能取回(retrieval)组件可以被配置以从云服务(例如,图像云服务)中接收功能代码包。功能代码包可以包括由云服务的代码模块所提供的功能的实例(例如,图像识别功能)。可以将功能代码包安装到客户端设备上的本地服务中(例如,或者用于在客户端设备上部署新的本地服务)以用于由本地服务执行功能而作为云服务的代码模块的本地实例化。例如,图像本地服务可以使用图像识别功能来处理来自客户端设备上的应用的请求,例如,来自相机应用的请求。
在示例中,数据提取组件可以被配置以从云服务中取回数据包(例如,由图像识别功能使用以对树进行识别的树图像数据,其可以基于对树有兴趣的客户端设备的用户、和/或包括树的用户图像的客户端设备来取回)。在示例中,可以利用各种设备信号(例如,当前的GPS位置,例如,在国家森林中)和/或本地数据(例如,森林图片库、关于树的主题的电子邮件、针对树的搜索历史等)来确定可以从云服务中提取数据的哪些子集。例如,本地服务可以连接至可以用于保存来自云服务的数据的本地缓存的这样的设备信号和/或本地数据。数据包可以包括由云服务使用的数据的子集(例如,树的图像,但不是例如用于识别汽车的汽车图像的其它图像,这是由于客户端设备的存储约束)。可以将数据包存储在客户端设备上的本地缓存内以供由本地服务使用。
在示例中,运行时执行组件可以被配置以从托管在客户端设备上的应用中接收(例如,截取)请求,以访问云服务的功能(例如,相机应用可以发送针对云服务的请求(例如HTTP请求)以执行图像识别功能)。运行时执行组件可以被配置以将本地服务(例如图像本地服务)标识为被配置用于处理请求。可以将本地服务托管在客户端设备上以作为云服务的本地实例化(例如,被配置以代表云服务来本地地处理针对云服务的请求的后台服务)。以这样的方式,可以调用本地服务以使用功能的实例(例如,图像识别功能和/或树图像数据)来处理请求。
将云服务的实例化本地地托管在客户端设备上作为本地服务等缓解了否则可能通过将敏感的用户信息传输至云服务而产生的隐私问题(例如,用户信息可以由本地服务本地地处理以通过将用户信息保持在客户端设备上而改善安全性)。云服务环境具有的可缩放性问题可以通过使用客户端设备的处理能力以代表云服务本地地处理请求来缓解(例如,越来越多的用户可以支持自动化缩放,这是因为这样的用户的客户端设备可以用来处理请求,与之相反的是在云服务环境中增加负载,这可能引起增加昂贵的新的云处理设备)。利用客户端设备的本地处理能力可以降低与维护云服务环境相关联的成本,这是因为可以需要和/或可以需要保持相对较少的服务器或其它机器。因为本地服务可以在客户端设备上可用,无论客户端设备是否具有连通性(例如,缺少互联网连通性,缺少到云服务连通性等),可以本地地促进对处理请求的离线支持(例如,用户可以能够阅读从云新闻阅读服务中本地地缓存在客户端设备上的新闻,即使客户端设备当前不具有到云新闻阅读服务的连通性,例如在旅行期间或者在地铁上)。客户端设备上的云服务的本地实例化可以与云服务等同地或者比云服务更好地执行。例如,因为在设备上本地地运行的服务可以使用可能对云服务不可用的本地用户数据(例如,GPS定位、通话记录等),所以可以给用户提供有比如果实现云服务更加鲁棒的体验(例如,更加相关、更加本地化等的搜索结果)。
为了完成前述的和相关的目的,以下的描述和附图阐述了某些说明性的方面和实现。这些仅仅指示其中可以部署一个或多个方面的各种方式中的一些。当结合附图考虑时,本公开的其它方面、优点、和新颖的特征将从以下的具体描述中变得显而易见。
附图说明
图1是用于使用被托管在云计算环境上的云服务来处理来自客户端设备上的应用的请求的传统技术的示图。
图2是示出了在客户端设备上部署本地服务作为云服务的本地实例化的示例性方法的流程图。
图3是示出了在客户端设备上托管的云服务的示例性方法的流程图。
图4A是示出了用于在客户端设备上部署本地服务的示例性系统的组件方框图。
图4B是示出了用于将来自云服务的数据本地地缓存在客户端设备上以供由客户端设备上的本地服务使用的组件方框图。
图5是示出了针对在客户端设备上托管的云服务的示例性系统的组件方框图。
图6A是示出了用于更新客户端设备上的本地服务的示例性系统的组件方框图。
图6B是示出了针对在客户端设备上托管的云服务的示例性系统的组件方框图。
图7是示出了用于更新客户端设备上的本地服务的示例性系统的组件方框图。
图8A是示出了用于安装功能性代码包以更新本地服务的示例性系统的组件方框图。
图8B是示出了用于使用来自本地服务和云服务的数据和/或功能来处理来自应用的请求的示例性系统的组件方框图。
图9是示例性计算机可读介质的示图,其中,可以包括被配置以实施在本文中所阐述的规则中的一个或多个的处理器可执行指令。
图10示出了示例性计算环境,其中,可以实现在本文中所阐述的规则中的一个或多个。
具体实施方式
现在参考附图来描述所要求保护的主题,其中,相同的附图标记通常用于指代通篇中相同的元素。出于解释说明的目的,在以下的描述中阐述了多个具体的细节,以便提供对所要求保护的主题的理解。然而,显然,可以没有这些具体的细节而实践所要求保护的主题。在其它实例中,以方框图的形式示出了结构和设备,以便描述所要求保护的主题。
图1示出了用于使用被托管在云计算环境124上的云服务来处理来自客户端设备114上的应用的传统技术的示例100。客户端设备114可以包括地图应用122,其被配置以显示地图,该地图被填入有针对特定邮编的商业场所。例如,用户可以发出针对地图应用122的命令116以显示针对邮编44131的商业场所。地图应用122可以被配置以通过经过网络126向被托管在云计算环境124(例如,不同于客户端设备114的云服务器基础设施)上的地图云服务102发出请求118而对命令116进行处理。即,地图应用122可能缺少用于执行命令116的数据和/或功能,并且因此地图应用122依赖于由地图云服务102通过网络126向地图应用122所提供的各种功能(例如,地图功能110、导向功能112)和/或数据(例如,来自商业数据库104的数据、来自房屋数据库106的数据、和/或来自地图数据库108的数据等),例如,数据120。这样的数据和功能可以由地图云服务102托管而不是地图应用122,这是因为客户端设备114(例如,移动设备)可能缺少合适的计算资源(例如,地图数据库108可以包括针对世界的巨大量的地图信息,这些信息可能不适合在客户端设备114内存储)。这样的传统的客户端/服务器配置(例如,地图应用122作为客户端并且地图云服务102作为服务器)可能导致客户端设备114的处理能力的不充分使用、连通性问题(例如,由于与网络126和/或云计算环境124的连通性问题,地图云服务102可能对客户端设备114不可访问)、由于用户数据被发送至云计算环境124而产生的隐私问题、网络126的延迟问题等。
由图2的示例性方法200示出了在客户端上部署本地服务作为云服务的本地实例化的一个实施例。在202处,方法开始。在示例中,客户端设备可以包括可以消耗由云服务所提供的数据和/或功能的一个或多个应用。例如,房屋中介应用可以消耗房屋价格数据、房屋地图显示功能、房屋列表功能、房屋竞价功能、和/或由房屋地图云服务所提供的其它功能。从而,可以在客户端设备上部署本地服务作为云服务的本地实例化,使得本地服务可以本地地处理来自应用的对云服务的请求(例如,可以在客户端设备上部署本地房屋地图服务作为房屋地图云服务的本地实例化,并且可以包括房屋地图云服务的至少一些数据和/或功能以处理来自房屋中介应用和/或其它应用的请求)。以这样的方式,客户端设备的本地处理能力可以被使用,并且客户端设备和云服务之间的连通性问题可以不影响对请求的处理,这是因为本地服务可以在客户端设备上托管。
在部署本地服务的示例中,在204处可以从由云计算环境托管的云服务中接收功能代码包。功能代码包可以包括由云服务的代码模块所提供的第一功能(例如,功能代码包可以包括由房屋地图云服务的房屋地图显示代码模块所提供的至少一些房屋地图显示功能)。在206处,可以在客户端设备上安装功能代码包以在客户端设备上部署本地服务(例如,本地房屋地图服务)作为云服务的本地实例化。在示例中,可以从云服务中接收数据包(例如,对应于用户可能感兴趣的位置(例如,用户当前的位置、或者从电子邮件、日程表条目、任务条目、社交网络简档、网络搜索会话等中识别的位置)的一部分房屋价格数据)。可以将数据包存储在客户端设备上的本地缓存中以用于由本地服务使用。在示例中,可以基于与客户端设备的操作上下文(例如,可用的存储、处理能力、当前的电源(例如,电池或AC)等的量)和/或用户的个性化信息(例如,对移居至克利夫兰市的兴趣)相关联的上下文来标识功能代码包和/或数据包。在示例中,可以基于对云服务的更新来更新本地服务(例如,可以通过功能更新和/或数据更新来更新本地服务)。更新可以从云服务中获取,并且可以用于对本地服务进行更新(例如,当客户端设备连接至WiFi而不是蜂窝数据时,和/或当客户端设备连接至AC而不是靠电池运行时可以获取更新)。以这样的方式,本地服务可以被部署和/或被保持在客户端设备上(例如,作为在客户端设备上执行的后台服务)。
在208处,可以调用本地服务以使用功能代码包的第一功能的实例来处理来自在客户端设备上托管的应用的请求。例如,房屋中介应用可以发送针对房屋地图云服务的请求(例如,HTTP请求)以向房屋中介应用提供克利夫兰市的房屋数据。可以调用房屋地图本地服务以本地地处理请求中的至少一些,而不是调用房屋地图云服务来处理全部请求。在本地服务不能够处理全部请求的示例中,可以从云服务中取回额外的数据和/或功能。在本地服务不能够处理全部请求的另一示例中,可以调用云服务以处理请求的至少一部分。以这样的方式,本地服务可以被使用以本地地处理来自应用的请求。在210处,方法结束。
由图3的示例性方法300示出了在客户端设备上托管的云服务的实施例。在302处,方法开始。在示例中,本地服务可以已经在客户端设备上被部署作为云服务的本地实例化(例如,云服务的至少一部分的本地实例化),并且可以被配置以处理来自应用的针对云服务的请求以向这样的应用提供功能和/或数据。从而,在304处,可以从在客户端设备上托管的应用中接收(例如,截取)请求以访问由云计算环境托管的云服务的第一功能。例如,购物应用可以从购物云服务中请求可视游戏数据和可视游戏购买功能。在306处,可以将本地服务(例如,购物本地服务)标识为被配置以处理这样的请求。例如,购物本地服务可以被托管为购物云服务的本地实例化,并且可以包括购物云服务的至少一些购物数据和/或功能,例如,本地地缓存至客户端设备的可视游戏购买功能以及可视游戏数据(例如,基于用户对可视游戏有兴趣,可视游戏数据包和/或可视游戏购买功能代码包可以已经从购物云服务中取回,并且本地地缓存在客户端设备上)。在308处,可以调用本地服务以使用由云服务在客户端设备上缓存的第一功能的实例来处理请求。以这样的方式,可以由购物本地服务来本地地处理至少一部分的请求。在310处,方法结束。
图4A示出了用于在客户端设备114上部署本地服务的系统400的示例。在示例中,可以将地图云服务102托管在可以由各种设备上的应用通过网络126访问的云计算环境124内。地图云服务102可以包括可以用于处理来自这样的应用的请求的数据(例如,商业数据库104、房屋数据库106、地图数据库108、和/或其它数据库)和/或功能(例如,地图显示功能110、导向功能112、和/或其它功能)。因为数据和/或功能可能太大和/或过于计算量密集而无法保存在客户端设备上,所以将地图云服务102托管在云计算环境124内。然而,客户端设备的本地处理能力可能变得不被充分利用,并且/或连通性问题可能中断对地图云服务102的访问。从而,系统400的功能取回组件402可以被配置以在客户端设备114上部署406地图本地服务408作为地图云服务102的本地实例化,使得地图本地服务408可以本地地处理对地图云服务102的请求。例如,功能取回组件402可以从地图云服务102中接收地图显示功能代码包404。地图显示功能代码包404可以包括由地图云服务102的地图显示代码模块所提供的地图显示功能110中的至少一些(例如,可以与用户相关的地图显示功能110的一部分,例如,基于用户对跑步感兴趣而标识的跑步路线地图显示功能)。功能取回组件402可以将地图显示功能代码包404安装到地图本地服务408中以在客户端设备114上部署地图本地服务408。以这样的方式,地图本地服务408可以使用地图显示功能代码包404来本地地处理来自客户端设备114上的应用的请求。
图4B示出了用于将来自云服务的数据本地地缓存在客户端设备114上以供由客户端设备114上的本地服务来使用的系统450的示例。在示例中,可以已经在客户端设备114上部署了地图本地服务408(例如,图4A)。系统450可以包括被配置以从地图云服务102中接收数据包(例如,克利夫兰市的地图数据包454)的数据提取组件452。数据提取组件452可以被配置以从地图云服务102中接收数据包,例如克利夫兰市的地图数据包454。在示例中,数据提取组件452可以对克利夫兰市的地图数据包454进行标识以用于基于与客户端设备114的操作上下文相关联的上下文(例如,当客户端设备114可以连接至WiFi而不是蜂窝数据、客户端设备114可以处于充电状态而不是电池消耗状态、客户端设备114的当前的位置可以是克利夫兰市等)和/或针对客户端设备114的用户的个性化信息(例如,用户的社交网络数据(例如,微博客消息)可以指示用户可以具有今天沿着克利夫兰市的路线的跑步数据)而取回。在示例中,克利夫兰市的地图数据包454可以包括由地图云服务102所使用的数据的子集(例如,由于地图数据库108包括比客户端设备114能够存储的更多的信息,因此仅仅是对应于克利夫兰市和路线的一部分的地图数据库108)。数据提取组件452可以将克利夫兰市的地图数据包454存储456在本地缓存458内。本地缓存458可以对地图本地服务408可用,以用于代表地图云服务102本地地处理来自应用的请求。
图5示出了针对在客户端设备114上托管的云服务的系统500的示例。在示例中,可以已经在客户端设备114上部署了地图本地服务408作为地图云服务102的本地实例化(例如,图4A)。例如,地图本地服务408可以包括来自由地图云服务102所提供的地图显示功能代码包(例如,图4A中的404)的地图显示功能(例如,跑步路线地图显示功能)。地图本地服务408可以具有对包括从地图云服务(例如,图4B中的102)中所接收的数据(例如,克利夫兰市的地图数据包)的本地缓存458的访问。在示例中,地图本地服务408可以作为被配置以对来自被托管在客户端设备114上的一个或多个应用的请求进行处理的后台服务来执行。
系统500的运行时执行组件504可以被配置以从被托管在客户端设备114上的应用中接收(例如,截取)请求,以访问被托管在云计算环境内的地图云服务102的第一功能。例如,运行时执行组件504可以从地图应用122中接收针对克利夫兰市的地图数据的请求502(例如,经截取的互联网协议请求,例如,HTTP请求或者由应用使用以访问地图云服务102的任何其它协议),以便显示在克利夫兰市的跑步路线。运行时执行组件504可以被配置将地图本地服务408标识为被配置以处理请求(例如,地图本地服务408可以被配置有跑步路线地图显示功能,并且/或可以具有对本地缓存458内的克利夫兰市的地图数据包的访问)。在示例中,运行时执行组件504可以被配置以便于服务的测试(例如,beta测试),该测试通过基于测试设置(例如,测试设置可以指示待由相对于本地服务的非测试版本的测试版本处理的请求的百分比)将测试服务选择为本地服务。在示例中,可以根据请求502来执行安全性检查以确定地图应用122是否具有对地图云服务102和/或地图本地服务408的访问凭证。
运行时执行组件504可以调用506地图本地服务408以使用由地图云服务102在客户端设备114上缓存的第一功能的实例(例如,本地缓存458内的跑步路线地图显示功能和/或克利夫兰市的地图数据包)来处理请求502。以这样的方式,地图本地服务408可以本地地处理请求502的至少一部分,并且向地图应用122提供结果,例如,填充有跑步路线的克利夫兰市的地图508。在示例中,地图本地服务408可以被提供有对由地图云服务102托管的数据和/或功能的访问,例如,当请求502对应于没有本地地缓存在客户端设备114上的一部分数据和功能时。在示例中,运行时执行组件504可以被配置以收集与处理请求502的地图本地服务408相关联的分析(例如,服务用量和统计可以被收集,这是因为来自客户端设备114上的应用可以通过单个源,即运行时执行组件504来路由)。
在示例中,第二云服务(未示出)可以被标识为被配置以提供对应于与客户端设备114的操作上下文和/或用户的个性化信息相关联的上下文的功能。例如,基于社交网络信息、用户简档、电子邮件数据、日历数据、微博客消息、用户照片等,用户可以对音乐感兴趣。运行时执行组件504可以被配置以基于从第二云服务(例如,音乐云服务)中所接收到的安装包而在客户端设备114上安装未示出的第二本地服务(例如,音乐本地服务)。第二本地服务可以被托管在客户端设备114上作为第二云服务的本地实例化。以这样的方式,可以基于(例如,根据其而预测的)客户端设备114的上下文信息和/或关于用户的信息而将各种本地服务安装在客户端设备114上作为云服务的本地实例化。以这样的方式,本地服务可以由后台任务在客户端设备114上无缝地安装(例如,可以将运行时执行组件504实现为被配置以执行各种后台任务的后台服务),而不需要用户干预。然而,在一些实施例中,直到用户接受或者同意安装才可以进行这样的安装。
图6A示出了用于对客户端设备114上的本地服务进行更新的系统600的示例。在示例中,可以已经在客户端设备114上部署了地图本地服务作为地图云服务102的本地实例化(例如,图4A)。可以已经将克利夫兰市的地图数据包本地地缓存在本地缓存内以供由地图本地服务408(例如,图4B)使用。系统600可以包括被配置以注册地图本地服务408来访问客户端设备数据602的设备耦合组件606。客户端设备数据602可以包括互联网连通性数据(例如,WiFi访问信息、蜂窝数据访问信息等)、电源数据(例如,电池电源信息、AC电源信息等)、位置追踪(例如,客户端设备114的当前的GPS位置)、用户数据(例如,社交网络简档、电子邮件信息、日历信息、任务信息、和/或用户可以已经选择了与地图本地服务408共享的其它用户数据)、或者操作系统数据。以这样的方式,可以从客户端设备数据602中标识上下文604。例如,上下文604可以指示客户端设备114的当前的位置为在阿克伦市(Akron),并且指示用户对今天在阿克伦市越野跑有兴趣。
数据提取组件452可以被配置以基于上下文604来对可从地图云服务102获得的数据包进行标识。例如,基于指示针对跑步路线的阿克伦市的地图数据可以由客户端114上的应用所请求的上下文604,数据提取组件452可以取回阿克伦市的地图数据包608。数据提取组件452可以利用阿克伦市的地图数据包608来更新610本地缓存,以得出对地图本地服务408可访问的经更新的本地缓存612。
图6B示出了针对在客户端设备114上托管的云服务的系统650的示例。在示例中,可以已经在客户端设备114上部署了地图本地服务408作为地图云服务102的本地实例化(例如,图4A)。可以已经将克利夫兰的地图数据包(例如,图4B中的454)和阿克伦市的地图数据包(例如图6A中的608)本地地缓存在经更新的本地缓存612内以供由地图本地服务408使用。系统650可以包括运行时执行组件504。运行时执行组件504可以被配置以从由客户端114托管的跑步应用658中接收(例如,截取)请求,以访问地图云服务102的路线地图功能。运行时执行组件504可以标识被配置以处理请求652的地图本地服务408。运行时执行组件504可以调用654地图本地服务408以使用由安装在地图本地服务408内的地图显示功能代码包(例如,图4A中的404)所提供的路线地图功能来处理请求652。地图本地服务408可以使用在经更新的本地缓存612中本地地缓存的阿克伦市的地图数据包(例如,图6A中的608)。以这样的方式,地图本地服务408可以处理请求652,并且可以向跑步应用658提供阿克伦市的跑步路线的地图656。
图7示出了用于对本地服务进行更新的系统700的示例。在示例中,可以已经利用地图显示功能代码包在客户端设备114上部署了地图本地服务作为地图云服务102的本地实例化(例如,图4A中的408)。系统700可以包括可以标识对由地图云服务102所提供的功能的更新(例如,经更新的地图显示功能702)的功能取回组件402。功能取回组件402可以被配置以从地图云服务102接收针对地图显示功能的更新704。功能取回组件402可以将更新应用706至地图本地服务,以得出经更新的地图本地服务708。以这样的方式,地图本地服务408可以自动地和/或无缝地更新而不需要用户介入。然而,在一些实施例中,直到用户同样接受或者同意更新才可以进行这样的更新。
图8A示出了用于安装功能性代码包以对本地服务进行更新的系统800的示例。在示例中,可以已经利用地图显示功能代码包在客户端设备114上部署了地图本地服务(例如,图4A中的408)以作为地图云服务102的本地实例化。系统800可以包括功能取回组件402,所述功能取回组件402可以被配置以预测本地服务是否可以使用由云服务所提供的功能。例如,功能取回组件402可以确定地图本地服务不包括由地图云服务102的导向代码模块所提供的导向功能112。功能取回组件402可以确定客户端设备114上的应用可以请求开车导向(例如,用户日历条目可以指示即将到来的开车度假)。从而,功能取回组件402可以取回包括地图云服务102的导向功能112中的至少一些的导向功能代码包802。功能取回组件402可以将导向功能代码包802安装到地图本地服务408中,以得出经更新的地图本地服务804。以这样的方式,经更新的地图本地服务804可以向客户端设备114上的应用提供导向。
图8B示出了用于使用来自本地服务和云服务的数据和/或功能来处理来自应用的请求的系统850的示例。在示例中,可以已经利用地图显示功能代码包在客户端设备114上部署了地图本地服务(例如,图4A中的408),以作为地图云服务102的本地实例化。可以已经利用导向功能代码包(例如,图8A中的802)更新了地图本地服务,以得出经更新的地图本地服务804(例如,图8A)。经更新的地图本地服务可以访问本地缓存(例如,图4B中的458)以获取对在其中本地地缓存的克利夫兰市的地图数据包(例如,图4B中的454)的访问。
系统850可以包括运行时执行组件504。运行时执行组件504可以被配置以从客户端设备114上的应用中接收(例如,截取)针对由地图云服务102所提供的功能的请求。例如,运行时执行组件504可以从餐厅应用852中接收针对到墨西哥餐厅的导向的请求854。运行时执行组件504可以将经更新的地图本地服务804标识为被配置以基于利用导向功能代码包更新的经更新的地图本地服务804来处理请求854。从而,运行时执行组件504可以调用856经更新的地图本地服务804来处理请求854。在示例中,本地缓存458可以不包括墨西哥餐厅的商业数据。从而,经更新的地图本地服务804可以被提供有对地图云服务102的访问,例如,对地图云服务102的商业数据库(例如,图4A中的104)的访问。以这样的方式,经更新的地图本地服务804可以从地图云服务中取回墨西哥餐厅的商业数据858(例如,数据提取组件(例如,图4B中的452)可以被调用以从地图云服务中取回墨西哥餐厅的数据包以用于缓存在本地缓存458内)。经更新的地图本地服务804可以处理请求854,并且可以向餐厅应用852提供墨西哥餐厅导向858。在经更新的地图本地服务804缺少用于处理请求854的功能(例如,餐厅预订功能)中的至少一部分的示例中,功能取回组件(例如,图4A中的402)可以被配置以调用地图云服务102以执行这样的功能,并且/或被配置以从地图云服务102中取回对应于缺少的部分的功能代码包以用于由经更新的地图本地服务804使用。以这样的方式,来自客户端设备114上的应用的请求可以由本地服务本地地处理和/或由云服务处理。
另一个实施例包括计算机可读介质,所述计算机可读介质包括被配置以实现在本文中所呈现的技术中的一个或多个的处理器可执行指令。在图9中示出了计算机可读介质或计算机可读设备的示例实施例,其中实现900包括其上编码有计算机可读数据906的计算机可读介质908,例如,CD-R、DVD-R、闪存驱动器、硬盘驱动器的盘片等。该计算机可读数据906(例如,包括零或一中的至少一个的二进制数据)进而包括一组计算机指令904,其被配置以根据在本文中所阐述的原理中的一个或多个来操作。在一些实施例中,处理器可执行的计算机指令904被配置以执行方法902,例如,图2的示例性方法200中的至少一些和/或图3的示例性方法300中的至少一些。在一些实施例中,处理器可执行指令904被配置以实现系统,例如,图4A的示例性系统400中的至少一些、图4B的示例性系统450中的至少一些、图5的示例性系统500中的至少一些、图6A的示例性系统600中的至少一些、图6B的示例性系统650中的至少一些、图7的示例性系统700中的至少一些、图8A的示例性系统800中的至少一些、和/或图8B的示例性系统850中的至少一些。被配置以根据在本文中所呈现的技术而操作的许多这样的计算机可读介质是由本领域技术人员发明的。
尽管已经用特定于结构性特征和/或方法论行为的语言描述了主题,但是应当理解的是,在所附权利要求中所限定的主题非必须限制于上文所描述的具体的特征或行为。相反,上文所描述的具体的特征和行为是作为实现权利要求中的至少一些的示例形式而公开的。
如在该申请中所使用的,术语“组件”、“模块”、“系统”、“接口”等通常旨在指代与计算机相关的实体,其是硬件、硬件和软件的组合、软件、或者执行中的软件中的一种。例如,组件可以但不限于是在处理器上运行的进程、处理器、对象、可执行文件、执行的线程、程序、和/或计算机。通过示例的方式,在控制器上运行的应用和控制器两者都可以是组件。一个或多个组件可以驻留在进程和/或执行的线程内,并且组件可以被本地化在一个计算机上和/或分布在两个或更多个计算机之间。
此外,可以利用用于生产软件、固件、硬件、或其任何组合的标准程序和/或工程技术将所要求保护的主题实现为方法、装置、或制品,以控制计算机实现所公开的主题。如在本文中所使用的术语“制品”旨在包含可以从任何计算机可读设备、载体、或介质获取的计算机程序。当然,可以对该配置做出许多修改而不脱离所要求保护的主题的范围或精神。
图10和以下的讨论提供了用于实现在本文中所阐述的规定中的一个或多个的实施例的简短的、概括的描述。图10的操作环境仅仅是合适的操作环境的一个示例,并且不旨在暗示关于操作环境的使用或功能的范围任何限制。示例计算设备包括但不限于个人计算机、服务器计算机、手持或膝上型设备、移动设备(例如,移动电话、个人数字助理(PDA)、媒体播放器等)、多处理器系统、消费型电子产品、迷你计算机、大型计算机、包括以上的系统或设备中的任何一个的分布式计算环境等。
尽管没有要求,但是在由一个或多个计算设备执行的一般的上下文“计算机可读指令”中描述了实施例。计算机可读指令可以经由(在下文中所讨论的)计算机可读介质分布。可以将计算机可读指令实现为执行特定的任务或实现特定的抽象数据类型的程序模块,例如,函数、对象、应用程序接口(API)、数据结构等。通常而言,如在各种环境中所期望的,计算机可读指令的功能可以被组合或分布。
图10示出了包括被配置以实现在本文中所提供的一个或多个实施例的计算设备1012的系统1000的示例。在一个配置中,计算设备1012包括至少一个处理单元1016和至少一个存储器1018。取决于计算设备的确切的配置和类型,存储器1018可以是易失性的(例如,RAM)、非易失性的(例如,ROM、闪速存储器等)、或两者的某组合。在图10中由虚线1014示出了该配置。
在其它实施例中,设备1012可以包括额外的特征和/或功能。例如,设备1012也可以包括额外的存储设备(例如,可移动的和/或不可移动的),所述额外的存储设备包括但不限于,磁存储设备、光存储设备等。在图10中由存储设备1020示出了这样的额外的存储设备。在一个实施例中,用于实现在本文中所提供的一个或多个实施例的计算机可读指令可以在存储设备1020中。存储设备1020还可以存储用于实现操作系统、应用程序等的其它计算机可读指令。计算机可读指令可以在存储器1018中被载入存储器1080中以用于由例如处理单元1016执行。
如在本文中所使用的术语“计算机可读介质”包括计算机存储介质。计算机存储介质包括以任何用于存储信息(例如,计算机可读指令或其它数据)的方法或技术实现的易失性的和非易失性的、可移动的和不可移动的介质。存储器1018和存储设备1020是计算机存储介质的示例。计算机存储介质包括但不限于RAM、ROM、EEPROM、闪速存储器或其它存储器技术、CD-ROM、数字通用盘(DVD)、或其它光存储设备、盒式磁带、磁带、磁盘存储设备或其它磁存储设备、或者可以用于存储期望的信息并且可以由设备1012存取的任何其它介质。任何这样的计算机存储介质都可以是设备1012的一部分。
设备1012还可以包括允许设备1012与其它设备进行通信的通信连接1026。通信连接1026可以包括但不限于,调制解调器、网络接口卡(NIC)、集成网络接口、射频发射机/接收机、红外端口、USB连接、或者用于将计算设备1012连接至其它计算设备的其它接口。通信连接1026可以包括有线连接或无线连接。通信连接1026可以发送和/或接收通信介质。
术语“计算机可读介质”可以包括通信介质。通信介质通常将计算机可读指令或者其它数据实施在“经调制的数据信号”(例如,载波或者其它传输机制)中,并且包括任何信息传递介质。术语“经调制的数据信号”可以包括具有其特征集合中的一个或多个的信号,或者以关于在将信息在信号中编码的方式而改变。
设备1012可以包括输入设备1024,例如,键盘、鼠标、笔、语音输入设备、触摸输入设备、红外相机、视频输入设备、和/或任何其它输入设备。诸如一个或多个显示器、扬声器、打印机、和/或任何其它输出设备之类的输出设备1022也可以被包括在设备1012中。输入设备1024和输出设备1022可以经由有线连接、无线连接、或任何其组合连接至设备1012。在一个实施例中,来自另一个计算设备的输入设备或输出设备可以被用作计算设备1012的输入设备1024或输出设备1022。
计算设备1012的组件可以由各种互连(例如,总线)连接。这样的互连可以包括外围组件互连(PCI)(例如,PCI快速)、通用串行总线(USB)、火线(IEEE 1394)、光总线结构等。在另一个实施例中,计算设备1012的组件可以由网络相互连接。例如,存储器1018可以由多个物理存储器单元组成,所述多个存储器单元位于由网络相互连接的不同的物理单元中。
本领域技术人员将理解,用于存储计算机可读指令的存储设备可以跨网络分布。例如,经由网络1028可访问的计算设备1030可以存储用于实现在本文中所提供的一个或多个实施例的计算机可读指令。计算设备1012可以访问计算设备1030,并且下载计算机可读指令的一部分或全部以用于执行。可替代地,计算设备1012可以视需要下载计算机可读指令的片段、或者可以在计算设备1012处执行的一些指令并且可以在计算设备1030处执行一些指令。
在本文中提供了实施例的各种操作。在一个实施例中,所描述的操作中的一个或多个可以构成存储在一个或多个计算机可读介质上的计算机可读指令,其中,如果由计算设备执行所述计算机可读指令,将使计算设备执行所描述的操作。对操作中的一些或全部进行描述的顺序不应该被理解为暗示这些操作必须是依赖顺序的。受益于该描述的本领域技术人员将理解可替代的顺序。此外,应当理解的是,不是必须将所有的操作都呈现在在本文中所提供的每个实施例中。同样,应当理解的是,在一些实施例中不是所有的操作都是必须的。
此外,除非另外指定,“第一”、“第二”等不旨在暗示时间方面、空间方面、顺序等。相反,仅仅将这样的术语用作特征、元素、项目等的标识符、名称等。例如,第一对象和第二对象通常对应于对象A和对象B、或者两个不同的或两个相同的对象、或者同一个对象。
此外,在本文中使用“示例性的”以表示充当示例、实例、示图等,并且非必须是有利的。如在本文中所使用的,“或”旨在表示包括性的“或”而不是排他的“或”。此外,除非另外指定,或者从上下文中清楚地指向单数形式,否则如在该申请中所使用的“一”和“一个”通常被理解为“一个或多个”。同样,A和B等通常意指A或B,或者A和B两者。此外,就在具体实施方式或者权利要求书中所使用的“包括”、“拥有”、“具有”、“有”、和/或其变型而言,这样的术语旨在作为类似于术语“包含”的方式的包括。
同样,尽管已经关于一个或多个实现示出并描述了本公开,但是在阅读并理解了该说明书和附图之后,本领域技术人员将想到等同的变型和修改。本公开包括所有这样的修改和变型,并且仅由以下的权利要求的范围来限制。特别关于由上文所描述的组件(例如,元件、资源等)执行的各种功能,除非另外指出,否则用于描述这样的组件的术语旨在对应于执行所描述的组件的具体功能的任何组件(功能上等价的),即使结构上不等价于所公开的结构。此外,尽管可以已经关于几个实现中的仅仅一个而公开了本公开的特定的特征,但是如可以是期望的并且有利于任何给定的或特定的应用的那样,这样的特征可以与其它实现的一个或多个其它特征相结合。

Claims (10)

1.一种针对被托管在客户端设备上的云服务的系统,包括:
所述客户端设备的运行时执行组件,其被配置以:
从被托管在所述客户端设备上的应用中接收请求以访问由所述客户端设备与其进行通信的云计算环境托管的云服务的第一功能;
将所述云服务的本地实例标识为被托管在被配置以处理所述请求的所述客户端设备上;
调用被托管在所述客户端设备上的所述云服务的本地实例以使用由所述云服务在所述客户端设备上缓存的所述第一功能的实例来处理来自被托管在所述客户端设备上的所述应用的所述请求;以及
数据提取组件,其被配置以:
从所述云服务取回数据包,所述数据包仅包括被托管在所述客户端设备上的所述云服务的所述本地实例用于执行所述第一功能需要的、但尚未缓存在所述客户端设备上的数据的子集,所述第一功能是在所述数据包被取回之后执行的。
2.根据权利要求1所述的系统,包括:
功能取回组件,其被配置以:
从所述云服务中接收所述功能代码包,所述功能代码包包括由所述云服务的代码模块所提供的第二功能的实例;并且
将所述功能代码包安装到本地服务中以用于由所述本地服务来执行所述第二功能,以作为所述云服务的所述代码模块的本地实例化。
3.根据权利要求1所述的系统,其中,
所述数据提取组件,其被配置以:
将所述数据包存储在本地缓存内以用于由本地服务来使用。
4.根据权利要求1所述的系统,包括:
设备耦合组件,其被配置以:
向所述客户端设备注册本地服务以访问客户端设备数据。
5.根据权利要求4所述的系统,其中:
所述数据提取组件,其还被配置以:
保存包括从所述云服务中缓存的一个或多个数据包的本地缓存以用于由所述本地服务使用;
将所述云服务上的数据包标识为包括对应于所述客户端设备数据的数据;并且
利用所述数据包来更新所述本地缓存。
6.根据权利要求1所述的系统,所述运行时执行组件被配置以:
响应于确定本地服务缺少所述第一功能中的至少一部分,调用功能取回组件以:
从所述云服务中取回对应于所述第一功能的缺少的部分的功能代码包。
7.一种用于在客户端设备上部署本地服务作为云服务的本地实例的方法,包括:
基于与所述客户端设备的操作上下文或者所述客户端设备的用户的个性化信息中的至少一个相关联的上下文而从由云计算环境托管的云服务中接收数据包,所述数据包仅包括被托管在所述客户端设备上的所述云服务的所述本地实例用于执行第一功能需要的、但尚未缓存在所述客户端设备上的数据的子集,所述第一功能是在所述数据包被接收之后执行的;
在所述客户端设备上安装所述数据包以在所述客户端设备上部署本地服务作为所述云服务的所述本地实例;以及
调用被托管在所述客户端设备上的所述云服务的所述本地实例以使用由所述云服务在所述客户端设备上缓存的所述第一功能的实例来处理来自被托管在所述客户端设备上的应用的请求。
8.根据权利要求7所述的方法,包括:
从所述云服务中取回所述数据包;以及
将所述数据包存储在本地缓存内以用于由所述本地服务使用。
9.根据权利要求7所述的方法,包括:
响应于标识对所述云服务的更新:
从所述云服务中获取所述更新;并且
使用所述更新对所述本地服务进行更新。
10.根据权利要求8所述的方法,包括:
预测所述本地服务是否可以使用由云服务所提供的功能;
确定所述本地服务不包括由所述云服务的模块所提供的功能;
确定所述客户端设备上的应用可以请求内容;
取回包括所述云服务的所述功能中的至少一些的功能代码包;
将所述功能代码包安装到所述本地服务中,以得出经更新的本地服务。
CN201480056852.0A 2013-10-15 2014-10-09 在客户端设备上托管的云服务 Active CN105659209B (zh)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/054,530 US10027753B2 (en) 2013-10-15 2013-10-15 Cloud service hosting on client device
US14/054,530 2013-10-15
PCT/US2014/059790 WO2015057464A1 (en) 2013-10-15 2014-10-09 Cloud service hosting on client device

Publications (2)

Publication Number Publication Date
CN105659209A CN105659209A (zh) 2016-06-08
CN105659209B true CN105659209B (zh) 2019-09-20

Family

ID=51790890

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201480056852.0A Active CN105659209B (zh) 2013-10-15 2014-10-09 在客户端设备上托管的云服务

Country Status (5)

Country Link
US (1) US10027753B2 (zh)
EP (1) EP3058458A1 (zh)
KR (1) KR102266203B1 (zh)
CN (1) CN105659209B (zh)
WO (1) WO2015057464A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20150137530A (ko) * 2014-05-30 2015-12-09 삼성에스디에스 주식회사 멀티 클라우드 배포 관리 시스템 및 방법
US10375154B2 (en) * 2016-07-29 2019-08-06 Microsoft Technology Licensing, Llc Interchangeable retrieval of content
US10530599B2 (en) * 2017-02-27 2020-01-07 Oracle International Corporation Methods, systems and computer readable media for providing service capability exposure function (SCEF) as a cloud service
US11418604B2 (en) * 2018-06-07 2022-08-16 Hewlett-Packard Development Company, L.P. Local servers to manage storage across client devices in an intermittent network
CN109450969B (zh) * 2018-09-27 2021-09-03 北京奇艺世纪科技有限公司 从第三方数据源服务器中获取数据的方法、装置和服务器
US10834524B2 (en) * 2019-02-19 2020-11-10 International Business Machines Corporation Delegating cloud-side roles to devices
US11630700B2 (en) * 2020-03-23 2023-04-18 T-Mobile Usa, Inc. Local edge device
CN112148826A (zh) * 2020-09-25 2020-12-29 北京锐安科技有限公司 在业务中集成地图服务的方法、装置、设备和存储介质
US11886319B2 (en) 2022-01-11 2024-01-30 International Business Machines Corporation Methods and systems for managing as-a-service systems in the event of connectivity issues

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1204025A2 (en) * 2000-07-11 2002-05-08 Microsoft Corporation Application program caching
CN102300205A (zh) * 2010-08-10 2011-12-28 微软公司 基于位置和上下文的移动应用程序的宣传和传递
CN102419838A (zh) * 2010-10-29 2012-04-18 微软公司 提供合并后的项目信息服务
CN103477319A (zh) * 2011-04-18 2013-12-25 国际商业机器公司 移动设备上的文件搜索

Family Cites Families (37)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6366945B1 (en) * 1997-05-23 2002-04-02 Ibm Corporation Flexible dynamic partitioning of resources in a cluster computing environment
US6614804B1 (en) * 1999-03-22 2003-09-02 Webtv Networks, Inc. Method and apparatus for remote update of clients by a server via broadcast satellite
WO2002041107A2 (en) * 2000-11-20 2002-05-23 Flexiworld Technologies, Inc. Systems and methods for mobile and pervasive output
US7213231B1 (en) * 2001-01-11 2007-05-01 Cisco Technology, Inc. Cross-spectrum application model for dynamic computing environments in software lifecycle
US6996805B2 (en) * 2001-06-28 2006-02-07 Microsoft Corporation Methods and systems of testing software, and methods and systems of modeling user behavior
US7725554B2 (en) * 2001-09-28 2010-05-25 Quanta Computer, Inc. Network object delivery system for personal computing device
US8255548B2 (en) 2002-06-13 2012-08-28 Salesforce.Com, Inc. Offline web services API to mirror online web services API
US7861243B2 (en) * 2003-07-11 2010-12-28 Computer Associates Think, Inc. Automatically deploying program units to a cluster of networked servers
US7536390B2 (en) * 2005-03-11 2009-05-19 Microsoft Corporation Accessing Web content from any virtualized store
US7938727B1 (en) * 2007-07-19 2011-05-10 Tim Konkle System and method for providing interactive content for multiple networked users in a shared venue
US8589541B2 (en) * 2009-01-28 2013-11-19 Headwater Partners I Llc Device-assisted services for protecting network capacity
US8516037B2 (en) * 2008-06-16 2013-08-20 International Business Machines Corporation Methods for dynamic partitioning of applications in client-server environments
US8355711B2 (en) * 2008-07-25 2013-01-15 Zerotouchdigital Collaborative computing for mobile devices
US8543441B2 (en) * 2009-02-24 2013-09-24 At&T Intellectual Property I, L.P. Map association with calendar entry
US8490084B1 (en) * 2009-06-18 2013-07-16 Amazon Technologies, Inc. Installation testing in automated application distribution
US9395965B2 (en) * 2009-12-29 2016-07-19 Oracle International Corporation Techniques for automated generation of service artifacts
US8468455B2 (en) * 2010-02-24 2013-06-18 Novell, Inc. System and method for providing virtual desktop extensions on a client desktop
US9461996B2 (en) * 2010-05-07 2016-10-04 Citrix Systems, Inc. Systems and methods for providing a single click access to enterprise, SAAS and cloud hosted application
US8612463B2 (en) * 2010-06-03 2013-12-17 Palo Alto Research Center Incorporated Identifying activities using a hybrid user-activity model
US8635635B2 (en) * 2011-01-25 2014-01-21 Microsoft Corporation Factoring middleware for anti-piracy
US8805951B1 (en) * 2011-02-08 2014-08-12 Emc Corporation Virtual machines and cloud storage caching for cloud computing applications
US8762709B2 (en) * 2011-05-20 2014-06-24 Lockheed Martin Corporation Cloud computing method and system
US20120303568A1 (en) * 2011-05-25 2012-11-29 Macroview Labs, Inc. Delivering recommendations based on user content profile
US20130054734A1 (en) 2011-08-23 2013-02-28 Microsoft Corporation Migration of cloud applications between a local computing device and cloud
US8589481B2 (en) * 2011-09-14 2013-11-19 Microsoft Corporation Multi tenant access to applications
US8819638B2 (en) * 2011-09-20 2014-08-26 Alcatel Lucent Application protoyping suite
US20130080999A1 (en) * 2011-09-26 2013-03-28 Microsoft Corporation Automated Testing for Hosted Applications on Various Computing Platforms
US9594597B2 (en) * 2011-10-24 2017-03-14 Plumchoice, Inc. Systems and methods for automated server side brokering of a connection to a remote device
US8793379B2 (en) * 2011-11-01 2014-07-29 Lsi Corporation System or method to automatically provision a storage volume by having an app-aware based appliance in a storage cloud environment
US9152541B1 (en) * 2012-03-22 2015-10-06 Amazon Technologies, Inc. Automated mobile application verification
US9146603B2 (en) * 2012-05-08 2015-09-29 William Reber, Llc Cloud computing system, vehicle cloud processing device and methods for use therewith
US8612406B1 (en) * 2012-05-22 2013-12-17 Sap Ag Sharing business data across networked applications
US8930917B2 (en) * 2012-05-22 2015-01-06 Adobe Systems Incorporated Method and apparatus for mobile application development and testing that avoids repackaging and reinstallation
US9147286B2 (en) * 2012-06-06 2015-09-29 Apple Inc. Non-static 3D map views
US9239668B2 (en) * 2012-06-29 2016-01-19 Intel Corporation Provision of a user interface based on user interaction with a computing device
US8904503B2 (en) * 2013-01-15 2014-12-02 Symantec Corporation Systems and methods for providing access to data accounts within user profiles via cloud-based storage services
US8739282B1 (en) * 2013-03-14 2014-05-27 Parse, Inc. Mobile development platform in a cloud based architecture

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1204025A2 (en) * 2000-07-11 2002-05-08 Microsoft Corporation Application program caching
CN102300205A (zh) * 2010-08-10 2011-12-28 微软公司 基于位置和上下文的移动应用程序的宣传和传递
CN102419838A (zh) * 2010-10-29 2012-04-18 微软公司 提供合并后的项目信息服务
CN103477319A (zh) * 2011-04-18 2013-12-25 国际商业机器公司 移动设备上的文件搜索

Also Published As

Publication number Publication date
CN105659209A (zh) 2016-06-08
KR102266203B1 (ko) 2021-06-18
US10027753B2 (en) 2018-07-17
EP3058458A1 (en) 2016-08-24
KR20160071455A (ko) 2016-06-21
WO2015057464A1 (en) 2015-04-23
US20150106430A1 (en) 2015-04-16

Similar Documents

Publication Publication Date Title
CN105659209B (zh) 在客户端设备上托管的云服务
US11128633B2 (en) Microservice deployment
US9996321B2 (en) Multi-tenant, tenant-specific applications
US10409576B2 (en) Chained data processing and application utilization
US20130007063A1 (en) Method and apparatus for real-time processing of data items
US11010215B2 (en) Recommending applications based on call requests between applications
US20110153812A1 (en) Apparatus and method for distributing cloud computing resources using mobile devices
JP2021036433A (ja) 端末、端末の制御方法、及びプログラム
US10318338B2 (en) Re-launching contextually related application sets
US11444852B2 (en) Microservice generation system
US10991398B2 (en) Automated video bumper system
CN107315833A (zh) 基于应用程序的检索与下载的方法和装置
CN111597466A (zh) 展示方法、装置和电子设备
US9043323B2 (en) Method and apparatus for providing search with contextual processing
CN107968807A (zh) 自动更新本地缓存资源的方法及装置
CN111580883B (zh) 应用程序启动方法、装置、计算机系统和介质
KR20210113963A (ko) 정보 획득 방법 및 장치
CN110995842A (zh) 业务数据下载方法、装置、设备及存储介质
US20190228435A1 (en) Location type confidence optimization
CA2929845A1 (en) Presentation of digital content listings
US9661491B1 (en) Communicating information about an update of an application
CN115203194A (zh) 一种元数据信息的生成方法、相关装置、设备及存储介质
JP2015533435A (ja) 装置上のフォルダの内容を動的に更新するシステム及び方法
CN108600303B (zh) 一种应用控制方法、装置、终端设备和介质
US11647377B2 (en) Mobile device roaming optimization and operation

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant