CN113329047B - 一种分布式服务调度方法及相关装置 - Google Patents

一种分布式服务调度方法及相关装置 Download PDF

Info

Publication number
CN113329047B
CN113329047B CN202010132849.XA CN202010132849A CN113329047B CN 113329047 B CN113329047 B CN 113329047B CN 202010132849 A CN202010132849 A CN 202010132849A CN 113329047 B CN113329047 B CN 113329047B
Authority
CN
China
Prior art keywords
service
terminal
distributed
information
supported
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
CN202010132849.XA
Other languages
English (en)
Other versions
CN113329047A (zh
Inventor
龚俊松
何山
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202210523576.0A priority Critical patent/CN115086346A/zh
Priority to CN202010132849.XA priority patent/CN113329047B/zh
Priority to EP21759519.8A priority patent/EP4096188B1/en
Priority to PCT/CN2021/076812 priority patent/WO2021169847A1/zh
Priority to US17/802,717 priority patent/US11831713B2/en
Publication of CN113329047A publication Critical patent/CN113329047A/zh
Application granted granted Critical
Publication of CN113329047B publication Critical patent/CN113329047B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/1095Replication or mirroring of data, e.g. scheduling or transport for data synchronisation between network nodes
    • 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/51Discovery or management thereof, e.g. service location protocol [SLP] or web services
    • 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/60Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
    • H04L67/63Routing a service request depending on the request content or context

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

本申请公开了一种分布式服务调度方法,包括:第一终端获取到针对第一服务的调用请求。后先判断第一终端的本地是否支持第一服务,若否,判断本地数据库中是否包括有第一服务的服务信息,若是,则第一终端从本地数据库中确定出第一服务的标识信息以及支持第一服务的第二终端。所述第一终端将所述第一服务的标识信息和调用请求发送给第二终端,第二终端根据调用请求执行该第一服务。之后,第一终端接收第二终端根据调用请求执行第一服务的结果。这样,可以实现终端设备之间不需要服务器中转,去中心化完成服务调用,以及资源共享,达到终端设备间的能力互补。

Description

一种分布式服务调度方法及相关装置
技术领域
本申请涉及终端技术领域,尤其涉及一种分布式服务调度方法及相关装置。
背景技术
目前,多设备互联场景在生活中日益增强,跨设备访问、调用的需求也日益迫切。终端设备往往具有大量的系统服务,实现了许多功能。
当前物联网设备多终端互联场景越来越多,物理网设备之间的数据访问多数是借助云端。当前终端设备互联,往往依赖于云端服务器进行统一调度,在连入网络的情况下,电子设备先把数据上传到云端,然后,由云端进行整合处理,然后访问数据的时候,再从云端请求数据,这种方式需要借助于云端进行数据中转,开销较大,更新数据往往有时间间隔,不具备高实时性。
发明内容
本申请提供了一种分布式服务调度方法及相关装置,实现了终端设备之间的分布式服务列表自动同步,以及跨设备精准访问系统服务,不需要服务器中转,去中心化,从而实现多终端设备下服务协同的灵活性和高实时性。
第一方面,本申请提供了一种分布式服务调度方法,包括:首先,第一终端获取到针对第一服务的调用请求。然后,该第一终端判断该第一终端的本地是否支持该第一服务,若否,则该第一终端判断本地数据库中是否包括有该第一服务的服务信息,若是,则该第一终端从该本地数据库中确定出该第一服务的标识信息以及支持该第一服务的第二终端。该本地数据库中包括有一个或多个分布式服务的服务信息。其中,该服务信息包括该分布式服务的标识信息和该分布式服务所在终端的设备标识。接着,该第一终端将该第一服务的标识信息和该调用请求发送给该第二终端,该第一服务的标识信息用于该第二终端匹配该第一服务。接着,该第一终端接收该第二终端根据该调用请求执行该第一服务的结果。
本申请提供一种分布式服务调度方法,可以实现终端设备间分布式服务列表自动同步,跨设备精准访问系统服务,并且开发者无需关注服务本身,从而能够实现多终端设备下系统服务的调用,以及资源共享,达到终端设备间的能力互补的效果。例如,手机和电视在同一分布式网络的情况下,手机可以实现一键将手机上看的视频无缝切换至电视上,由电视来继续提供播放视频服务,享受大屏体验。又例如,手机和车机互联的情况下,手机可以直接访问车机提供的服务来播放歌曲,这样,用户上车之后,可以享受更好的汽车音效。通过本申请提供的一种分布式服务调度方法,提高了应用开发者的开发效率,降低了终端设备存储系统服务的空间,且服务在终端间调度不需要服务器进行中转,去掉服务器中心化,也保护了隐私。
在一种可能的实现方式中,当该第一终端的本地支持该第一服务时,该第一终端在本地根据该调用请求执行该第一服务。
在一种可能的实现方式中,在该第一终端获取到针对第一服务的调用请求之前,该第一终端从该第一终端上一个或多个系统服务中确定出该第一终端所支持的该分布式服务,并将该第一终端所支持的该分布式服务的服务信息保存到该本地数据库中。其中,该分布式服务为具有分布式标识的该系统服务。这样,第一终端可以筛选出能够给其他设备调度的系统服务。
在一种可能的实现方式中,在该第一终端获取到针对第一服务的调用请求之前,该第一终端将该第一终端所支持的该分布式服务的服务信息发送给该第二终端。这样,其他设备也可以调用第一终端上的分布式服务。
在一种可能的实现方式中,在该第一终端获取到针对第一服务的调用请求之前,该第一终端接收该第二终端发送的该第二终端所支持的该分布式服务的服务信息。该第一终端将该第二终端所支持的该分布式服务的服务信息保存至该本地数据库。这样,第一终端上保存有其他设备支持的分布式服务的服务信息,为第一终端远程调度提供了条件。
在一种可能的实现方式中,该第一终端从该本地数据库中确定出支持该第一服务的多个终端。该第一终端从该多个终端中,确定出该第二终端。该第一终端从该本地数据库中确定出该第二终端所支持的该第一服务的标识信息。这样,在多个其他终端上有第一服务时,第一终端可以根据决策调用最优终端上的第一服务,保证了第一服务的调度质量。
其中,该第一终端根据历史记录,从该多个终端中确定出在预设时间段内被调用该第一服务次数最多的该第二终端。
或者,该服务信息还包括该分布式服务的服务质量。该第一终端根据该分布式服务的服务质量,从该多个终端中确定出该第一服务的服务质量最高的该第二终端。
在一种可能的实现方式中,该第一终端输出调用提示,该调用提示用于提示用户从该多个终端选择出该第二终端。该第一终端接收该用户针对该第二终端的选择操作。响应于该选择操作,该第一终端确定出该第二终端。这样,可以由用户选择出需要调用的终端,增强用户交互性。
在一种可能的实现方式中,当该第一终端的本地没有该第一服务时,该第一终端的本地不支持该第一服务。或,当该第一终端的本地有该第一服务,且该第一服务被占用时,该第一终端的本地不支持该第一服务。
在一种可能的实现方式中,当第一终端检测到该第二终端离线时,第一终端删除该本地数据库中该第二终端所支持的分布式服务的服务信息。这样,可以提高第一终端调用其他设备上分布式服务的成功率。
在一种可能的实现方式中,该标识信息包括该分布式服务的服务名称和/或指针地址。
第二方面,本申请提供另了一种分布式服务调度方法,包括:第一终端获取到针对第一服务的调用请求。第一终端判断第一终端的本地是否支持第一服务,若否,则第一终端判断第一数据库中是否包括有该第一服务的服务信息,若是,则该第一终端从该第一数据库中确定出该第一服务的标识信息以及支持该第一服务的第二终端。该第一数据库中包括有一个或多个分布式服务的服务信息。其中,该服务信息包括该分布式服务的标识信息和该分布式服务所在终端的设备标识。该第一终端将该第一服务的标识信息和该调用请求发送给该第二终端。该第二终端根据该第一服务的标识信息,匹配出该第一服务,并根据该调用请求执行该第一服务。该第二终端将执行该第一服务的结果发生给该第一终端。
本申请提供一种分布式服务调度方法,可以实现终端设备间分布式服务列表自动同步,跨设备精准访问系统服务,并且开发者无需关注服务本身,从而能够实现多终端设备下系统服务的调用,以及资源共享,达到终端设备间的能力互补的效果。例如,手机和电视在同一分布式网络的情况下,手机可以实现一键将手机上看的视频无缝切换至电视上,由电视来继续提供播放视频服务,享受大屏体验。又例如,手机和车机互联的情况下,手机可以直接访问车机提供的服务来播放歌曲,这样,用户上车之后,可以享受更好的汽车音效。通过本申请提供的一种分布式服务调度方法,提高了应用开发者的开发效率,降低了终端设备存储系统服务的空间,且服务在终端间调度不需要服务器进行中转,去掉服务器中心化,也保护了隐私。
在一种可能的实现方式中,当该第一终端的本地支持该第一服务时,该第一终端在本地根据该调用请求执行该第一服务。
在一种可能的实现方式中,在该第一终端获取到针对第一服务的调用请求之前,该第一终端从该第一终端上一个或多个系统服务中确定出该第一终端所支持的该分布式服务,并将该第一终端所支持的该分布式服务的服务信息保存到该本地数据库中。其中,该分布式服务为具有分布式标识的该系统服务。这样,第一终端可以筛选出能够给其他设备调度的系统服务。
在一种可能的实现方式中,在该第一终端获取到针对第一服务的调用请求之前,该第一终端将该第一终端所支持的该分布式服务的服务信息发送给该第二终端。该第二终端将该第一终端所支持的该分布式服务的服务信息存储至第二数据库中。这样,其他设备也可以调用第一终端上的分布式服务。
在一种可能的实现方式中,在该第一终端获取到针对第一服务的调用请求之前,第二终端将第二终端上所支持的分布式服务的服务信息保存至第二数据库中。该第二终端将该第二终端所支持的该分布式服务的服务信息发送给第一终端。该第一终端将该第二终端所支持的该分布式服务的服务信息保存至该第一数据库。这样,第一终端上保存有其他设备支持的分布式服务的服务信息,为第一终端远程调度提供了条件。
在一种可能的实现方式中,该第一终端从该第一数据库中确定出支持该第一服务的多个终端。该第一终端从该多个终端中,确定出该第二终端。该第一终端从该第一数据库中确定出该第二终端所支持的该第一服务的标识信息。这样,在多个其他终端上有第一服务时,第一终端可以根据决策调用最优终端上的第一服务,保证了第一服务的调度质量。
其中,该第一终端根据历史记录,从该多个终端中确定出在预设时间段内被调用该第一服务次数最多的该第二终端。
或者,该服务信息还包括该分布式服务的服务质量。该第一终端根据该分布式服务的服务质量,从该多个终端中确定出该第一服务的服务质量最高的该第二终端。
在一种可能的实现方式中,该第一终端输出调用提示,该调用提示用于提示用户从该多个终端选择出该第二终端。该第一终端接收该用户针对该第二终端的选择操作。响应于该选择操作,该第一终端确定出该第二终端。这样,可以由用户选择出需要调用的终端,增强用户交互性。
在一种可能的实现方式中,当该第一终端的本地没有该第一服务时,该第一终端的本地不支持该第一服务。或,当该第一终端的本地有该第一服务,且该第一服务被占用时,该第一终端的本地不支持该第一服务。
在一种可能的实现方式中,当第一终端检测到该第二终端离线时,第一终端删除该本地数据库中该第二终端所支持的分布式服务的服务信息。这样,可以提高第一终端调用其他设备上分布式服务的成功率。
在一种可能的实现方式中,该标识信息包括该分布式服务的服务名称和/或地址指针。
第三方面,本申请提供了一种终端,为第一终端,包括:应用程序、服务管理模块、通信模块。该应用程序,用于向该服务管理模块发起针对第一服务的调用请求。该服务管理模块,用于判断该第一终端的本地是否支持该第一服务,若否,则判断本地数据库中是否包括有该第一服务的服务信息,若是,则从该本地数据库中确定出该第一服务的标识信息以及支持该第一服务的第二终端。该本地数据库中包括有一个或多个分布式服务的服务信息。其中,该服务信息包括该分布式服务的标识信息和该分布式服务所在终端的设备标识。该通信模块,用于将该第一服务的标识信息和该调用请求发送给该第二终端,该第一服务的标识信息用于该第二终端匹配该第一服务。该通信模块,还用于接收该第二终端根据该调用请求执行该第一服务的结果,并将该结果返回给该应用程序。
本申请提供一种终端,可以实现终端设备间分布式服务列表自动同步,跨设备精准访问系统服务,并且开发者无需关注服务本身,从而能够实现多终端设备下系统服务的调用,以及资源共享,达到终端设备间的能力互补的效果。例如,手机和电视在同一分布式网络的情况下,手机可以实现一键将手机上看的视频无缝切换至电视上,由电视来继续提供播放视频服务,享受大屏体验。又例如,手机和车机互联的情况下,手机可以直接访问车机提供的服务来播放歌曲,这样,用户上车之后,可以享受更好的汽车音效。通过本申请提供的一种分布式服务调度方法,提高了应用开发者的开发效率,降低了终端设备存储系统服务的空间,且服务在终端间调度不需要服务器进行中转,去掉服务器中心化,也保护了隐私。
在一种可能的实现方式中,该服务管理模块,还用于当该第一终端的本地支持该第一服务时,在本地执行该第一服务。
在一种可能的实现方式中,该服务管理模块,还用于在该应用程序向该服务管理模块发起针对第一服务的调用请求之前,从该第一终端上一个或多个系统服务中确定出该第一终端所支持的该分布式服务,并将该第一终端所支持的该分布式服务的服务信息保存到该本地数据库中。其中,该分布式服务为具有分布式标识的该系统服务。这样,第一终端可以筛选出能够给其他设备调度的系统服务。
在一种可能的实现方式中,该通信模块,还用于在该应用程序向该服务管理模块发起针对第一服务的调用请求之前,发送该第一终端所支持的该分布式服务的服务信息给该第二终端。这样,其他设备也可以调用第一终端上的分布式服务。
在一种可能的实现方式中,该通信模块,还用于在该应用程序向该服务管理模块发起针对第一服务的调用请求之前,接收该第二终端发送的该第二终端所支持的该分布式服务的服务信息。该服务管理模块,还用于将该第二终端所支持的该分布式服务的服务信息保存至该本地数据库。这样,第一终端上保存有其他设备支持的分布式服务的服务信息,为第一终端远程调度提供了条件。
在一种可能的实现方式中,该服务管理模块,具体用于:从该本地数据库中确定出支持该第一服务的多个设备。从该多个设备中,确定出该第二终端。从该本地数据库中,确定出该第二终端所支持的该第一服务的标识信息。这样,在多个其他终端上有第一服务时,第一终端可以根据决策调用最优终端上的第一服务,保证了第一服务的调度质量。
其中,该服务管理模块,具体用于:根据历史记录,从该多个设备中确定出在预设时间段内被调用该第一服务次数最多的该第二终端。
或者,该服务信息还包括该分布式服务的服务质量。该服务管理模块,具体用于:根据该分布式服务的服务质量,从该多个设备中确定出该第一服务的服务质量最高的该第二终端。
在一种可能的实现方式中,该终端还包括:输入模块和输出模块。该输出模块,用于在该服务管理模块从数据库中确定出支持该第一服务的多个设备后,输出调用提示,该调用提示用于提示用户从该多个设备中选择出该第二终端。该输入模块,用于接收该用户针对该第二终端的选择操作。该服务管理模块,具体用于响应于该选择操作,确定出该第二终端。这样,可以由用户选择出需要调用的终端,增强用户交互性。
在一种可能的实现方式中,该服务管理模块具体用于:当该第一终端的本地没有该第一服务时,判定该第一终端的本地不支持该第一服务。或,当该第一终端的本地有该第一服务,且该第一服务被占用时,判定该第一终端的本地不支持该第一服务。
在一种可能的实现方式中,该服务管理模块,还用于:当检测到该第二终端离线时,删除该本地数据库中该第二终端所支持的分布式服务的服务信息。这样,可以提高第一终端调用其他设备上分布式服务的成功率。
在一种可能的实现方式中,该标识信息包括该分布式服务的服务名称和/或指针地址。
第四方面,本申请提供了一种终端,为第一终端,包括一个或多个处理器、一个或多个存储器和通信接口。该一个或多个存储器、通信接口与一个或多个处理器耦合,一个或多个存储器用于存储计算机程序代码,计算机程序代码包括计算机指令,当一个或多个处理器执行计算机指令时,使得第一终端执行上述任一方面任一项可能的实现方式中的分布式服务调度方法。
第五方面,本申请实施例提供了一种计算机存储介质,包括计算机指令,当计算机指令在终端上运行时,使得通信装置执行上述任一方面任一项可能的实现方式中的分布式服务调度方法。
第六方面,本申请实施例提供了一种计算机程序产品,当计算机程序产品在计算机上运行时,使得计算机执行上述任一方面任一项可能的实现方式中的分布式服务调度方法。
附图说明
图1为本申请实施例提供的相关技术中的服务调度方法的流程示意图;
图2为本申请实施例提供的另一种相关技术中服务调度的方法流程示意图;
图3为本申请实施例提供的一种终端的硬件结构示意图;
图4A为本申请实施例提供的一种终端的软件系统架构示意图;
图4B为本申请实施例提供的一种分布式系统的架构示意图;
图5为本申请实施例提供的一种分布式服务调度方法的流程示意图;
图6为本申请实施例提供的一种终端间数据库同步的流程示意图;
图7A-图7C为本申请实施例提供的一组场景界面示意图。
具体实施方式
下面将结合附图对本申请实施例中的技术方案进行清除、详尽地描述。其中,在本申请实施例的描述中,除非另有说明,“/”表示或的意思,例如,A/B可以表示A或B;文本中的“和/或”仅仅是一种描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况,另外,在本申请实施例的描述中,“多个”是指两个或多于两个。
以下,术语“第一”、“第二”仅用于描述目的,而不能理解为暗示或暗示相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括一个或者更多个该特征,在本申请实施例的描述中,除非另有说明,“多个”的含义是两个或两个以上。
下面介绍现有技术中终端设备之间的服务调度的方案。
目前,终端设备之间的互联,往往依赖于云端服务器进行统一调度,实际上是终端设备之间进行互联网通信。请参考图1,图1示出了本申请中现有技术的服务调度方案的流程图。
如图1所示,该方案可以包括如下步骤:
1、终端A和终端B连接上网络(Internet)。
2、终端A和终端B通过连接上的网络,连接上云服务器。
3、终端A可以上传数据到云服务器。
4、云服务器在接收到终端A上传的数据后,可以对数据进行处理整合。
5、当终端B需要调用终端A上的数据或服务时,终端B可以从云服务器上获取到需要获取的数据。
由上述步骤可以看出,现有技术中,终端B若需要调用终端A上的服务或数据时,需要通过云端的云服务器进行数据中转,云服务器的处理开销较大,比较耗时,并且,终端A更新数据到云服务器上往往有间隔时间,不具备高实时性,无法满足与用户频繁交互的终端。
目前,现有技术中提供了一种分布式服务网络框架,应用于分布式集群领域。请参考图2所示,图2示出了现有技术中分布式服务网络系统框架图。
如图2所示,该分布式服务网络系统包括有注册中心(registry),客户端(consumer),容器(container),服务提供者(provider),监控中心(monitor)。
1、初始化阶段:部署在容器(container)的服务提供者(provider)启动后可以向注册中心(registry)发布并注册自己的服务,客户端(consumer)在初始化时即向注册中心(registry)订阅自己想要的服务,同时,注册中心(registry)对客户端保持一个长连接。当订阅的服务新增或减少节点时,会及时通知到客户端(consumer)更新。于是,客户端(consumer)便有了服务提供者(provider)的所有实时信息,客户端(consumer)便可以向服务提供者(provider)发起服务调用了。
2、调用(invoke)阶段:客户端(consumer)可以从注册中心(registry)获得的所有服务提供者(provider)列表中通过负载均衡等策略选出最适合调用的服务提供者(provider)并发起同步调用。
3、监控(monitor)阶段:客户端和服务提供者通过异步的方式向监控中心(monitor)上报自己需要被监控的数据。
由上述步骤可以看出,现有的分布式服务管理框架均是服务于分布式集群领域,需要一个服务注册中心(超级节点)专门维护服务信息,如上图2中所示的注册中心(registry),这个注册中心是分布式服务系统中的一个重要组成模块,管理所有服务的服务提供者(provider),在实际的运行环境中,服务注册中心(registry)被动通知或由客户端(consumer)主动询问,在服务提供者(provider)有节点宕机或者有新的节点增加时,客户端(consumer)也可以实时感知到,从而避免了某个服务提供者(provider)被无限调用或者被无限闲置。通过这种方式,客户端调用服务提供者上的服务时,需要实现与注册中心建立连接,当应用到分布式终端时,不够灵活。
因此,本申请提供一种分布式服务调度方法,可以实现终端设备间分布式服务列表自动同步,跨设备精准访问系统服务,并且开发者无需关注服务本身,从而能够实现多终端设备下系统服务的调用,以及资源共享,达到终端设备间的能力互补的效果。例如,手机和电视在同一分布式网络的情况下,手机可以实现一键将手机上看的视频无缝切换至电视上,由电视来继续提供播放视频服务,享受大屏体验。又例如,手机和车机互联的情况下,手机可以直接访问车机提供的服务来播放歌曲,这样,用户上车之后,可以享受更好的汽车音效。通过本申请提供的一种分布式服务调度方法,提高了应用开发者的开发效率,降低了终端设备存储系统服务的空间。
下面介绍本申请实施例涉及的终端。
图3示出了终端100的结构示意图。
下面以终端100为例对实施例进行具体说明。应该理解的是,图3所示终端100仅是一个范例,并且终端100可以具有比图3中所示的更多的或者更少的部件,可以组合两个或多个的部件,或者可以具有不同的部件配置。图中所示出的各种部件可以在包括一个或多个信号处理和/或专用集成电路在内的硬件、软件、或硬件和软件的组合中实现。
终端100可以包括:处理器110,外部存储器接口120,内部存储器121,通用串行总线(universal serial bus,USB)接口130,充电管理模块140,电源管理模块141,电池142,天线1,天线2,移动通信模块150,无线通信模块160,音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,传感器模块180,按键190,马达191,指示器192,摄像头193,显示屏194,以及用户标识模块(subscriber identification module,SIM)卡接口195等。其中传感器模块180可以包括压力传感器180A,陀螺仪传感器180B,气压传感器180C,磁传感器180D,加速度传感器180E,距离传感器180F,接近光传感器180G,指纹传感器180H,温度传感器180J,触摸传感器180K,环境光传感器180L,骨传导传感器180M等。
可以理解的是,本发明实施例示意的结构并不构成对终端100的具体限定。在本申请另一些实施例中,终端100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元,例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,存储器,视频编解码器,数字信号处理器(digital signal processor,DSP),基带处理器,和/或神经网络处理器(neural-network processing unit,NPU)等。其中,不同的处理单元可以是独立的器件,也可以集成在一个或多个处理器中。
其中,控制器可以是终端100的神经中枢和指挥中心。控制器可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路(inter-integrated circuit,I2C)接口,集成电路内置音频(inter-integrated circuitsound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,用户标识模块(subscriber identity module,SIM)接口,和/或通用串行总线(universal serial bus,USB)接口等。
I2C接口是一种双向同步串行总线,包括一根串行数据线(serial data line,SDA)和一根串行时钟线(derail clock line,SCL)。在一些实施例中,处理器110可以包含多组I2C总线。处理器110可以通过不同的I2C总线接口分别耦合触摸传感器180K,充电器,闪光灯,摄像头193等。例如:处理器110可以通过I2C接口耦合触摸传感器180K,使处理器110与触摸传感器180K通过I2C总线接口通信,实现终端100的触摸功能。
I2S接口可以用于音频通信。在一些实施例中,处理器110可以包含多组I2S总线。处理器110可以通过I2S总线与音频模块170耦合,实现处理器110与音频模块170之间的通信。在一些实施例中,音频模块170可以通过I2S接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。
PCM接口也可以用于音频通信,将模拟信号抽样,量化和编码。在一些实施例中,音频模块170与无线通信模块160可以通过PCM总线接口耦合。在一些实施例中,音频模块170也可以通过PCM接口向无线通信模块160传递音频信号,实现通过蓝牙耳机接听电话的功能。所述I2S接口和所述PCM接口都可以用于音频通信。
UART接口是一种通用串行数据总线,用于异步通信。该总线可以为双向通信总线。它将要传输的数据在串行通信与并行通信之间转换。在一些实施例中,UART接口通常被用于连接处理器110与无线通信模块160。例如:处理器110通过UART接口与无线通信模块160中的蓝牙模块通信,实现蓝牙功能。在一些实施例中,音频模块170可以通过UART接口向无线通信模块160传递音频信号,实现通过蓝牙耳机播放音乐的功能。
MIPI接口可以被用于连接处理器110与显示屏194,摄像头193等外围器件。MIPI接口包括摄像头串行接口(camera serial interface,CSI),显示屏串行接口(displayserial interface,DSI)等。在一些实施例中,处理器110和摄像头193通过CSI接口通信,实现终端100的拍摄功能。处理器110和显示屏194通过DSI接口通信,实现终端100的显示功能。
GPIO接口可以通过软件配置。GPIO接口可以被配置为控制信号,也可被配置为数据信号。在一些实施例中,GPIO接口可以用于连接处理器110与摄像头193,显示屏194,无线通信模块160,音频模块170,传感器模块180等。GPIO接口还可以被配置为I2C接口,I2S接口,UART接口,MIPI接口等。
USB接口130是符合USB标准规范的接口,具体可以是Mini USB接口,Micro USB接口,USB Type C接口等。USB接口130可以用于连接充电器为终端100充电,也可以用于终端100与外围设备之间传输数据。也可以用于连接耳机,通过耳机播放音频。该接口还可以用于连接其他终端,例如AR设备等。
可以理解的是,本发明实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端100的结构限定。在本申请另一些实施例中,终端100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
充电管理模块140用于从充电器接收充电输入。其中,充电器可以是无线充电器,也可以是有线充电器。在一些有线充电的实施例中,充电管理模块140可以通过USB接口130接收有线充电器的充电输入。在一些无线充电的实施例中,充电管理模块140可以通过终端100的无线充电线圈接收无线充电输入。充电管理模块140为电池142充电的同时,还可以通过电源管理模块141为终端供电。
电源管理模块141用于连接电池142,充电管理模块140与处理器110。电源管理模块141接收电池142和/或充电管理模块140的输入,为处理器110,内部存储器121,外部存储器,显示屏194,摄像头193,和无线通信模块160等供电。电源管理模块141还可以用于监测电池容量,电池循环次数,电池健康状态(漏电,阻抗)等参数。在其他一些实施例中,电源管理模块141也可以设置于处理器110中。在另一些实施例中,电源管理模块141和充电管理模块140也可以设置于同一个器件中。
终端100的无线通信功能可以通过天线1,天线2,移动通信模块150,无线通信模块160,调制解调处理器以及基带处理器等实现。
天线1和天线2用于发射和接收电磁波信号。终端100中的每个天线可用于覆盖单个或多个通信频带。不同的天线还可以复用,以提高天线的利用率。例如:可以将天线1复用为无线局域网的分集天线。在另外一些实施例中,天线可以和调谐开关结合使用。
移动通信模块150可以提供应用在终端100上的包括2G/3G/4G/5G等无线通信的解决方案。移动通信模块150可以包括至少一个滤波器,开关,功率放大器,低噪声放大器(lownoise amplifier,LNA)等。移动通信模块150可以由天线1接收电磁波,并对接收的电磁波进行滤波,放大等处理,传送至调制解调处理器进行解调。移动通信模块150还可以对经调制解调处理器调制后的信号放大,经天线1转为电磁波辐射出去。在一些实施例中,移动通信模块150的至少部分功能模块可以被设置于处理器110中。在一些实施例中,移动通信模块150的至少部分功能模块可以与处理器110的至少部分模块被设置在同一个器件中。
调制解调处理器可以包括调制器和解调器。其中,调制器用于将待发送的低频基带信号调制成中高频信号。解调器用于将接收的电磁波信号解调为低频基带信号。随后解调器将解调得到的低频基带信号传送至基带处理器处理。低频基带信号经基带处理器处理后,被传递给应用处理器。应用处理器通过音频设备(不限于扬声器170A,受话器170B等)输出声音信号,或通过显示屏194显示图像或视频。在一些实施例中,调制解调处理器可以是独立的器件。在另一些实施例中,调制解调处理器可以独立于处理器110,与移动通信模块150或其他功能模块设置在同一个器件中。
无线通信模块160可以提供应用在终端100上的包括无线局域网(wireless localarea networks,WLAN)(如无线保真(wireless fidelity,Wi-Fi)网络),蓝牙(bluetooth,BT),全球导航卫星系统(global navigation satellite system,GNSS),调频(frequencymodulation,FM),近距离无线通信技术(near field communication,NFC),红外技术(infrared,IR)等无线通信的解决方案。无线通信模块160可以是集成至少一个通信处理模块的一个或多个器件。无线通信模块160经由天线2接收电磁波,将电磁波信号调频以及滤波处理,将处理后的信号发送到处理器110。无线通信模块160还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线2转为电磁波辐射出去。
在一些实施例中,终端100的天线1和移动通信模块150耦合,天线2和无线通信模块160耦合,使得终端100可以通过无线通信技术与网络以及其他设备通信。所述无线通信技术可以包括全球移动通讯系统(global system for mobile communications,GSM),通用分组无线服务(general packet radio service,GPRS),码分多址接入(code divisionmultiple access,CDMA),宽带码分多址(wideband code division multiple access,WCDMA),时分码分多址(time-division code division multiple access,TD-SCDMA),长期演进(long term evolution,LTE),BT,GNSS,WLAN,NFC,FM,和/或IR技术等。所述GNSS可以包括全球卫星定位系统(global positioning system,GPS),全球导航卫星系统(globalnavigation satellite system,GLONASS),北斗卫星导航系统(beidou navigationsatellite system,BDS),准天顶卫星系统(quasi-zenith satellite system,QZSS)和/或星基增强系统(satellite based augmentation systems,SBAS)。
终端100通过GPU,显示屏194,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏194和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏194用于显示图像,视频等。显示屏194包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端100可以包括1个或N个显示屏194,N为大于1的正整数。
终端100可以通过ISP,摄像头193,视频编解码器,GPU,显示屏194以及应用处理器等实现拍摄功能。
ISP用于处理摄像头193反馈的数据。例如,拍照时,打开快门,光线通过镜头被传递到摄像头感光元件上,光信号转换为电信号,摄像头感光元件将所述电信号传递给ISP处理,转化为肉眼可见的图像。ISP还可以对图像的噪点,亮度,肤色进行算法优化。ISP还可以对拍摄场景的曝光,色温等参数优化。在一些实施例中,ISP可以设置在摄像头193中。
摄像头193用于捕获静态图像或视频。物体通过镜头生成光学图像投射到感光元件。感光元件可以是电荷耦合器件(charge coupled device,CCD)或互补金属氧化物半导体(complementary metal-oxide-semiconductor,CMOS)光电晶体管。感光元件把光信号转换成电信号,之后将电信号传递给ISP转换成数字图像信号。ISP将数字图像信号输出到DSP加工处理。DSP将数字图像信号转换成标准的RGB,YUV等格式的图像信号。在一些实施例中,终端100可以包括1个或N个摄像头193,N为大于1的正整数。
数字信号处理器用于处理数字信号,除了可以处理数字图像信号,还可以处理其他数字信号。例如,当终端100在频点选择时,数字信号处理器用于对频点能量进行傅里叶变换等。
视频编解码器用于对数字视频压缩或解压缩。终端100可以支持一种或多种视频编解码器。这样,终端100可以播放或录制多种编码格式的视频,例如:动态图像专家组(moving picture experts group,MPEG)1,MPEG2,MPEG3,MPEG4等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端100的智能认知等应用,例如:图像识别,人脸识别,语音识别,文本理解等。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储计算机可执行程序代码,所述可执行程序代码包括指令。处理器110通过运行存储在内部存储器121的指令,从而执行终端100的各种功能应用以及数据处理。内部存储器121可以包括存储程序区和存储数据区。其中,存储程序区可存储操作系统,至少一个功能所需的应用程序(比如声音播放功能,图像播放功能等)等。存储数据区可存储终端100使用过程中所创建的数据(比如音频数据,电话本等)等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件,闪存器件,通用闪存存储器(universal flash storage,UFS)等。
终端100可以通过音频模块170,扬声器170A,受话器170B,麦克风170C,耳机接口170D,以及应用处理器等实现音频功能。例如音乐播放,录音等。
音频模块170用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块170还可以用于对音频信号编码和解码。在一些实施例中,音频模块170可以设置于处理器110中,或将音频模块170的部分功能模块设置于处理器110中。
扬声器170A,也称“喇叭”,用于将音频电信号转换为声音信号。终端100可以通过扬声器170A收听音乐,或收听免提通话。
受话器170B,也称“听筒”,用于将音频电信号转换成声音信号。当终端100接听电话或语音信息时,可以通过将受话器170B靠近人耳接听语音。
麦克风170C,也称“话筒”,“传声器”,用于将声音信号转换为电信号。当拨打电话或发送语音信息时,用户可以通过人嘴靠近麦克风170C发声,将声音信号输入到麦克风170C。终端100可以设置至少一个麦克风170C。在另一些实施例中,终端100可以设置两个麦克风170C,除了采集声音信号,还可以实现降噪功能。在另一些实施例中,终端100还可以设置三个,四个或更多麦克风170C,实现采集声音信号,降噪,还可以识别声音来源,实现定向录音功能等。
耳机接口170D用于连接有线耳机。耳机接口170D可以是USB接口130,也可以是3.5mm的开放移动终端平台(open mobile terminal platform,OMTP)标准接口,美国蜂窝电信工业协会(cellular telecommunications industry association of the USA,CTIA)标准接口。
压力传感器180A用于感受压力信号,可以将压力信号转换成电信号。在一些实施例中,压力传感器180A可以设置于显示屏194。压力传感器180A的种类很多,如电阻式压力传感器,电感式压力传感器,电容式压力传感器等。电容式压力传感器可以是包括至少两个具有导电材料的平行板。当有力作用于压力传感器180A,电极之间的电容改变。终端100根据电容的变化确定压力的强度。当有触摸操作作用于显示屏194,终端100根据压力传感器180A检测所述触摸操作强度。终端100也可以根据压力传感器180A的检测信号计算触摸的位置。在一些实施例中,作用于相同触摸位置,但不同触摸操作强度的触摸操作,可以对应不同的操作指令。例如:当有触摸操作强度小于第一压力阈值的触摸操作作用于短消息应用图标时,执行查看短消息的指令。当有触摸操作强度大于或等于第一压力阈值的触摸操作作用于短消息应用图标时,执行新建短消息的指令。
陀螺仪传感器180B可以用于确定终端100的运动姿态。在一些实施例中,可以通过陀螺仪传感器180B确定终端100围绕三个轴(即,x,y和z轴)的角速度。陀螺仪传感器180B可以用于拍摄防抖。示例性的,当按下快门,陀螺仪传感器180B检测终端100抖动的角度,根据角度计算出镜头模组需要补偿的距离,让镜头通过反向运动抵消终端100的抖动,实现防抖。陀螺仪传感器180B还可以用于导航,体感游戏场景。
气压传感器180C用于测量气压。在一些实施例中,终端100通过气压传感器180C测得的气压值计算海拔高度,辅助定位和导航。
磁传感器180D包括霍尔传感器。终端100可以利用磁传感器180D检测翻盖皮套的开合。在一些实施例中,当终端100是翻盖机时,终端100可以根据磁传感器180D检测翻盖的开合。进而根据检测到的皮套的开合状态或翻盖的开合状态,设置翻盖自动解锁等特性。
加速度传感器180E可检测终端100在各个方向上(一般为三轴)加速度的大小。当终端100静止时可检测出重力的大小及方向。还可以用于识别终端姿态,应用于横竖屏切换,计步器等应用。
距离传感器180F,用于测量距离。终端100可以通过红外或激光测量距离。在一些实施例中,拍摄场景,终端100可以利用距离传感器180F测距以实现快速对焦。
接近光传感器180G可以包括例如发光二极管(LED)和光检测器,例如光电二极管。发光二极管可以是红外发光二极管。终端100通过发光二极管向外发射红外光。终端100使用光电二极管检测来自附近物体的红外反射光。当检测到充分的反射光时,可以确定终端100附近有物体。当检测到不充分的反射光时,终端100可以确定终端100附近没有物体。终端100可以利用接近光传感器180G检测用户手持终端100贴近耳朵通话,以便自动熄灭屏幕达到省电的目的。接近光传感器180G也可用于皮套模式,口袋模式自动解锁与锁屏。
环境光传感器180L用于感知环境光亮度。终端100可以根据感知的环境光亮度自适应调节显示屏194亮度。环境光传感器180L也可用于拍照时自动调节白平衡。环境光传感器180L还可以与接近光传感器180G配合,检测终端100是否在口袋里,以防误触。
指纹传感器180H用于采集指纹。终端100可以利用采集的指纹特性实现指纹解锁,访问应用锁,指纹拍照,指纹接听来电等。
温度传感器180J用于检测温度。在一些实施例中,终端100利用温度传感器180J检测的温度,执行温度处理策略。例如,当温度传感器180J上报的温度超过阈值,终端100执行降低位于温度传感器180J附近的处理器的性能,以便降低功耗实施热保护。在另一些实施例中,当温度低于另一阈值时,终端100对电池142加热,以避免低温导致终端100异常关机。在其他一些实施例中,当温度低于又一阈值时,终端100对电池142的输出电压执行升压,以避免低温导致的异常关机。
触摸传感器180K,也称“触控面板”。触摸传感器180K可以设置于显示屏194,由触摸传感器180K与显示屏194组成触摸屏,也称“触控屏”。触摸传感器180K用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。可以通过显示屏194提供与触摸操作相关的视觉输出。在另一些实施例中,触摸传感器180K也可以设置于终端100的表面,与显示屏194所处的位置不同。
骨传导传感器180M可以获取振动信号。在一些实施例中,骨传导传感器180M可以获取人体声部振动骨块的振动信号。骨传导传感器180M也可以接触人体脉搏,接收血压跳动信号。在一些实施例中,骨传导传感器180M也可以设置于耳机中,结合成骨传导耳机。音频模块170可以基于所述骨传导传感器180M获取的声部振动骨块的振动信号,解析出语音信号,实现语音功能。应用处理器可以基于所述骨传导传感器180M获取的血压跳动信号解析心率信息,实现心率检测功能。
按键190包括开机键,音量键等。按键190可以是机械按键。也可以是触摸式按键。终端100可以接收按键输入,产生与终端100的用户设置以及功能控制有关的键信号输入。
马达191可以产生振动提示。马达191可以用于来电振动提示,也可以用于触摸振动反馈。例如,作用于不同应用(例如拍照,音频播放等)的触摸操作,可以对应不同的振动反馈效果。作用于显示屏194不同区域的触摸操作,马达191也可对应不同的振动反馈效果。不同的应用场景(例如:时间提醒,接收信息,闹钟,游戏等)也可以对应不同的振动反馈效果。触摸振动反馈效果还可以支持自定义。
指示器192可以是指示灯,可以用于指示充电状态,电量变化,也可以用于指示消息,未接来电,通知等。
SIM卡接口195用于连接SIM卡。SIM卡可以通过插入SIM卡接口195,或从SIM卡接口195拔出,实现和终端100的接触和分离。终端100可以支持1个或N个SIM卡接口,N为大于1的正整数。SIM卡接口195可以支持Nano SIM卡,Micro SIM卡,SIM卡等。同一个SIM卡接口195可以同时插入多张卡。所述多张卡的类型可以相同,也可以不同。SIM卡接口195也可以兼容不同类型的SIM卡。SIM卡接口195也可以兼容外部存储卡。终端100通过SIM卡和网络交互,实现通话以及数据通信等功能。在一些实施例中,终端100采用eSIM,即:嵌入式SIM卡。eSIM卡可以嵌在终端100中,不能和终端100分离。
下面介绍本申请实施例提供的一种终端的软件系统架构。
终端100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构,示例性说明终端100的软件结构。
请参考图4A,图4A是本申请实施例的终端100的软件架构框图。分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,可以将终端的系统分为应用层、系统层和内核层。
其中,应用层可用于实现对外围设备的管理和界面操作,该应用层可以包括一系列应用程序包,例如,相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息,邮件,浏览器,联系人等应用程序。
系统层可用于负责连接操作系统和应用层,实现系统的基本功能的提供。其中,该系统层可以包括分布式服务管理模块,数据库,通信模块,系统层应用程序接口。
该分布式服务管理模块,可用于提供服务注册和发现的能力,发现与注册终端上的服务。该分布式服务管理模块,还可用于将服务的服务信息存储到数据库,其中,该服务信息包括服务标识,服务所在终端的标识以及服务实例指针地址。该服务实例指针地址可用于指示该服务实例的在终端上的存储位置。该分布式服务管理模块,还可用于实现多个终端之间的服务信息同步。该分布式服务管理模块,还可用于监听其他设备的上下线,触发服务信息的同步。
该数据库,可提供管理分布数据库的能力,终端间分布数据库的同步能力,分布式数据的访问(增删改查)能力,以及提供终端上下线通知能力。
该通信模块,可用于提供跨设备的通信能力,跨进程的通信能力和跨设备传递对象的能力。
该内核层是操作系统的内部核心程序,可用于向外部提供终端设备的核心管理调用。其中,操作系统的代码可以分成多个部分。内核所在的地址空间可称作内核空间。
下面结合上述终端软件架构介绍本申请提供的一种分布式系统架构图。
请参考图4B,图4B示出了本申请实施例提供的一种分布式系统400的架构图。该分布式系统400中可以包括有多个终端。其中,该多个终端可以是连入同一个网络,例如,该多个终端可以连入同一个局域网。在一种可能的实现方式中,该多个终端还可以登录有同一个系统账号,例如,该多个终端登录的系统账号都可以为“HW9527”。在一种可能的实现方式中,该多个终端上登录的系统账号可以都属于同一个账户组。例如,该多个终端上登录的系统账号包括有“HW001”,“HW002”,“HW003”。其中,系统账户“HW001”,“HW002”,“HW003”同属于账户组“华为之家”。在一种可能的实现方式中,多个终端可以通过近场通信(Near FieldCommunication,NFC),建立一个临时账户组,多个终端可以通过扫描同一个二维码建立一个临时账户组。
示例性的,本申请实施例中的终端可以为手机、电视,平板电脑、音箱,手表,桌面型计算机、膝上型计算机、手持计算机、笔记本电脑、超级移动个人计算机(ultra-mobilepersonal computer,UMPC)、上网本,以及个人数字助理(personal digital assistant,PDA)、增强现实(Augmented reality,AR)\虚拟现实(virtual reality,VR)设备等,本申请实施例对该终端的具体类型不作特殊限制。
如图4B所示,本申请实施例中以分布式系统400包括有两个终端进行示例性说明。例如,该分布式系统400包括有终端A和终端B。其中,终端A可以被称为第一终端,终端B可以被称为第二终端。
其中,终端A可以包括有一个或多个应用(例如应用411),一个或多个系统服务(例如系统服务412,系统服务413等),服务管理模块414,数据库415,通信服务代理模块416。终端B可以包括有一个或多个应用(例如应用421),一个或多个系统服务(例如系统服务422,系统服务423等),服务管理模块424,数据库425,服务代理模块426。
下面结合上述分布式系统的架构图,对本申请实施例中提供的一种分布式服务调度的方法进行说明。
如图4B所示,该分布式服务调度的方法流程可以如下:
1、分布式系统中终端可以向服务管理模块注册自己的系统服务。
例如,终端A上注册的系统服务可以包括:系统服务412和系统服务413。终端B上注册的系统服务可以包括:系统服务422和系统服务423。
2、分布式系统中终端上的服务管理模块在接收到系统服务注册的请求后,可以判断该系统服务是否具有分布式标识,若有,则服务管理模块可以将该带有分布式标识的系统服务确定为分布式服务,并将分布式服务的服务信息存储到数据库。其中,该分布式标识可用于指示该系统服务可以被其他设备调用。
其中,分布式服务的服务信息可以包括该分布式服务的标识信息以及该分布式服务所处设备的设备标识,该分布式服务的标识信息可以包括分布式服务的服务名称和/或指针地址。该分布式服务的指针地址用于指示该分布式服务的服务实例(也即为实现该分布式服务的资源)在终端上的存储地址。
示例性的,终端A中的服务管理模块414在接收到系统服务412发起的注册请求之后,可以判断系统服务412是否具有分布式标识,若有,则服务管理模块414可以将系统服务412确定为分布式服务,并将该系统服务412的服务信息存储至数据库415中。终端A中的服务管理模块414在接收到系统服务413发起的注册请求之后,可以判断系统服务413是否具有分布式标识,若有,则服务管理模块414可以将该系统服务413确定为分布式服务,并将该系统服务413的服务信息存储至数据库415。
又示例性的,终端B中的服务管理模块424在接收到系统服务422发起的注册请求之后,可以判断系统服务422是否具有分布式标识,若有,则服务管理模块414可以将系统服务422的服务信息存储至数据库425中。终端B中的服务管理模块424在接收到系统服务423发起的注册请求之后,可以判断系统服务423是否具有分布式标识,若有,则服务管理模块424可以将该系统服务423的服务信息存储至数据库425。
3、分布式系统中终端上的服务管理模块可以调用通信模块(图4B中未示出)提供的接口,保存具有分布式标识的系统服务的标识和指针地址至服务代理模块,以用于分布式服务的查询匹配。其中,服务代理模块可以以键值对儿(key-value)保存的形式保存分布式服务的服务标识和指针地址。
示例性的,终端A上的系统服务412和系统服务413都可以用于其他设备的调用,系统服务412和系统服务413都具有分布式标识,终端A上的服务管理模块414可以调用终端A上通信模块提供的接口,保存该系统服务412和系统服务413各自的服务标识和指针地址到该服务代理模块416。
又示例性的,终端B上的系统服务422和系统服务423都可以用于其他设备的调用,系统服务422和系统服务423都具有分布式标识,终端B上的服务管理模块424可以调用终端B上通信模块提供的接口,保存该系统服务422和系统服务423各自的服务标识和指针地址到该服务代理模块426。
4、当终端A和终端B检测到对方上线时,终端A和终端B可以同步各自数据库中的内容。
示例性的,在终端A在将系统服务412的服务信息和系统服务413的服务信息存储到分布数据库415,终端B将系统服务422的服务信息和系统服务423的服务信息存储到分布数据库425后,终端A和终端B互相检测到了对方的上线。终端A可以将数据库415中终端A的分布式服务的服务信息,通过通信模块发送给终端B。终端B可以将数据库415中终端A的分布式服务的服务信息保存至数据库425中。终端B可以将数据库425中的终端B的分布式服务的服务信息,通过通信模块发送给终端A。终端A可以将数据库425中终端B的分布式服务的服务信息保存至数据库415中。
5、终端A上的应用411可以调用系统应用接口(api)向服务管理模块414发送针对第一服务的调用请求。
6、服务管理模块414在接收到应用411发送针对第一服务的调用请求后,可以查询终端A本地是否有该第一服务,若有,则服务管理模块414可以调用该第一服务,执行该调用请求,并将执行调用请求的结果返回给应用411。
7、当终端A本地没有该第一服务时,服务管理模块414可以查询数据库415中是否保存有第一服务的服务信息。
8、若数据库415中保存有第一服务的服务信息时,服务管理模块414可以将第一服务对应的标识信息以及设备标识传递给服务代理模块416。其中,该第一服务对应的设备标识为终端B的设备标识。若数据库415中没有保存第一服务的服务信息时,服务管理模块414可以返回不支持调用第一服务的结果给应用411。
9、服务代理模块416可以通过通信模块提供的跨设备通信能力将第一服务对应的标识信息和调用请求传递到终端B上的服务代理模块426。
10、终端B上的服务代理模块426在接收到终端A发送的第一服务的标识信息和调用请求后,可以根据终端A发送的第一服务的标识信息,以及服务代理模块426上保存的具有分布式标识的系统服务的标识信息,匹配出第一服务的服务名称(例如,系统服务423的服务名称),然后根据第一服务的服务名称新建一个服务通信客户端(图中未示出)。其中,该服务通信客户端可用于向第一服务发送调用请求。
11、终端B上的服务代理模块426可以通过第一服务对应的服务通信客户端将调用请求传递给第一服务(例如系统服务423)。
12、第一服务(例如系统服务423)在接收到调用请求后,可以完成调用请求,并把调用请求的处理结果通过通信模块提供的跨设备通信能力发送给终端A上的应用411。
下面介绍本申请提供的一种分布式服务调度方法。
本申请实施例中提供的一种分布式服务调度方法可应用于上述实施例中的分布式系统,其中,该分布式系统可以包括有多个终端。其中,该多个终端可以是连入同一个网络中,例如,该多个终端可以连入同一个局域网。在一种可能的实现方式中,该多个终端还可以登录有同一个系统账号,例如,该多个终端登录的系统账号都可以为“HW9527”。在一种可能的实现方式中,该多个终端上登录的系统账号可以都属于同一个账户组。例如,该多个终端上登录的系统账号包括有“HW001”,“HW002”,“HW003”。其中,系统账户“HW001”,“HW002”,“HW003”同属于账户组“华为之家”。本申请实施例中以分布式系统包括有两个终端(例如终端A和终端B)进行示例性说明分布式服务调度方法。其中,终端A可以被称为第一终端,终端B可以被称为第二终端。
请参考图5,图5示出了本申请实施例提供的一种分布式服务调度方法的流程示意图。如图5所示,该方法可以包括如下步骤:
S501、终端A和终端B注册各自的系统服务。
其中,具体实现过程可以参考上述图4B所示实施例,在此不再赘述。
S502、终端A和终端B从各自的注册的系统服务中,确定出各自的分布式服务,并将各自分布式服务的服务信息存储到各自的数据库中。其中,终端A上的数据库可以被称为数据库A,终端B上的数据库可以被称为数据库B。
其中,分布式服务为系统服务中具有分布式标识的服务,具有分布式标识的系统服务可支持远端调用。终端可以判断系统服务是否具有分布式标识,若有,则该系统服务为分布式服务。
该数据库中可以保存有多个分布式服务的服务信息,其中,分布式服务的服务信息包括分布式服务的标识信息和该分布式服务所在终端的设备标识。该标识信息包括分布式服务的服务名称和/或指针地址。其中,该分布式服务的指针地址用于指示该分布式服务的服务实例(即实现该分布式服务的资源)在终端上的存储地址。
S503、终端A和终端B同步各自数据库中的内容。
终端A在将终端A上分布式服务的服务信息存储到数据库A中后,可以将终端A上分布式服务的服务信息发送给终端B。终端B可以将终端A上分布式服务的服务信息存储到数据库B中。终端B在将终端B上分布式服务的服务信息存储到数据库B后,可以将终端B上分布式服务的服务信息发送给终端A。终端A可以将终端B上分布式服务的服务信息存储到数据库A中。
示例性的,在终端A将终端A上分布式服务的服务信息存储到数据库A中时,该数据库A可以如下表1所示:
表1
Figure BDA0002396268180000171
由上述表1所示,可以看出,终端A的设备标识可以为“0x01”,该终端A上的分布式服务可以包括蓝牙后台管理服务、位置服务、音频录播放服务、音频策略等等。其中,蓝牙后台管理服务的服务名称可以为“bluetooth”,在终端A上该蓝牙后台管理服务的指针地址可以为“p_1”。位置服务的服务名称可以为“location”,在终端A上该位置服务的指针地址可以为“p_2”。音频录播放服务的服务名称可以“audioflinger”,在终端A上该音频录播放服务的指针地址可以为“p_3”。音频策略服务的服务名称可以为“audioplicy”,在终端A上该音频策略服务的指针地址可以为“p_4”等等。上述表1所示示例,仅仅用于解释本申请,不应构成限定。
在终端A将终端B上分布式服务的服务信息存储到数据库A中时,该数据库A可以如下表2所示:
表2
Figure BDA0002396268180000172
Figure BDA0002396268180000181
由上述表2所示,可以看出,终端B的设备标识可以为“0x02”,该终端B上分布式服务可以包括蓝牙后台管理服务、位置服务、媒体播放服务、相机服务等等。其中,蓝牙后台管理服务的服务名称可以为“bluetooth”,在终端B上该蓝牙后台管理服务的指针地址可以为“t_1”。位置服务的服务名称可以为“location”,在终端B上该位置服务的指针地址可以为“t_2”。媒体播放服务的服务名称可以“mediaplayer”,在终端B上该媒体播放服务的指针地址可以为“t_3”。相机服务的服务名称可以为“camera”,在终端B上该相机服务的指针地址可以为“t_4”等等。上述表2所示示例,仅仅用于解释本申请,不应构成限定。
在一种可能的实现方式中,同一个服务名称可以对应有多个指针地址,例如,在一些终端上,可以提供多个蓝牙后台管理服务给外部设备调用,因此,该多个蓝牙后台管理服务的服务名称可以都为“bluetooth”,但该多个蓝牙后台管理服务的指针地址不同,一个蓝牙后台管理服务对应有一个指针地址。
S504、终端A获取到针对第一服务的调用请求。
其中,该针对第一服务的调用请求可以由终端A上的应用发起。例如,终端A上的地图应用可以发起针对位置服务的调用请求,请求调用位置服务返回GPS位置。
在一种可能的实现方式中,该针对第一服务的调用请求还可以是由用户操作触发。例如,终端A可以接收用户针对视频的播放操作,响应于该针对视频的播放操作,终端A可以获取到针对视频播放服务的调用请求,请求调用视频播放服务播放该视频。示例仅仅用于解释本申请,不应构成限定。
S505、当终端A判定终端A的本地具有该第一服务时,开启第一服务,执行第一服务的调用请求。
例如,第一服务可以为位置服务,针对第一服务的调用请求可以是获取GPS位置信息。当终端A本地有位置服务时,终端A可以开启位置服务,获取到GPS位置信息。
S506、当终端A判定出终端A本地没有该第一服务,但是从数据库A中查询到终端B具有该第一服务时,将第一服务的标识信息和调用请求发送给终端B。
其中,当该终端A本地没有该第一服务时,终端A可以从数据库A中查询是否有第一服务的服务信息。当数据库A中有该第一服务的服务信息时,终端A可以从该第一服务的服务信息中确定出具有该第一服务的终端。当终端B具有该第一服务时,终端A可以将该第一服务的标识信息和调用请求发送给终端B。该第一服务的标识信息包括该第一服务的服务名称/或指针地址。
示例性的,该第一服务可以是相机服务。该调用请求可用于请求调用相机服务返回摄像头捕捉到画面。终端A本地支持的系统服务可以包括电源管理服务(powermanagerservice)、活动管理服务(activitymanagerservice)、电话注册服务(telephonyregistryservice)、内容服务(contentservice)、蓝牙后台管理服务(bluetoothservice)、位置服务(locationservice)等等,终端A本地不支持相机服务。终端A上的数据库A中包括有终端B支持的分布式服务的服务信息。其中,终端B上支持的分布式服务可以包括蓝牙后台管理服务、位置服务、媒体播放服务、相机服务等等。终端A可以通过上述图4B中所示的服务管理模块414判断数据库A中是否具有该相机服务的服务信息,当该数据库A中具有该相机服务的服务信息时,上述服务管理模块414可以从数据库A中查询到该相机服务的标识信息,以及该相机服务处于终端B上。终端A可以将该相机服务的标识信息以及针对该相机服务的调用请求通过服务代理门模块416发送给终端B上的服务代理模块426。
在一种可能的实现方式中,终端A上的数据库A中包括有多个终端各自所支持分布式服务的服务信息。例如,数据库A中可以包括有终端A、终端B、终端C和终端D各自支持的分布式服务的服务信息。若终端A从数据库A中,确定出有多个终端支持该第一服务(例如终端B和终端C都支持第一服务)时,终端A可以从该多个支持第一服务的终端中,根据历史记录确定出在预设时间段内(例如,过去一天、或过去一个月内、或过去一个月内等)被终端A调用第一服务的次数最多的终端,并将该第一服务的指针地址以及该第一服务的调用请求发送给该被终端A调用第一服务次数最多的终端。
例如,终端B和终端C都支持第一服务,终端A在过去一个月内调用终端B上的第一服务10次,调用终端C上的第一服务1次。终端A可以将该第一服务的指针地址以及该第一服务的调用请求发送给终端B。示例仅仅用于解释本申请,不应构成限定。
在一种可能的实现方式中,分布式的服务信息可以包括所述分布式服务的标识信息、分布式服务所在终端的设备标识和该分布式服务的服务质量。若终端A从数据库A中,确定出有多个终端支持该第一服务(例如终端B和终端C都支持第一服务)时,终端A可以根据分布式服务的服务质量,从多个终端中确定出第一服务的服务质量最高的第二终端。
在一种可能的实现方式中,若终端A从数据库A中,确定出有多个终端支持该第一服务(例如终端B和终端C都支持第一服务)时,终端A可以输出调用提示,该调用提示可用于提示用户选择出针对第一服务的被终端A调用的终端。
在一种可能的实现方式中,终端A接收用户指定调用终端B上第一服务的输入操作,响应于该输入操作,终端A可以从数据库中获取第一服务的指针地址,并将第一服务的指针地址以及该第一服务的调用请求,发送给终端B。例如,第一服务可以是视频播放服务,终端A可以接收用户针对视频投屏到终端B的输入操作,响应于该输入操作,终端A可以从数据库中获取到终端B上该视频播放服务的指针地址,并将该视频播放服务的指针地址,以及调用请求发送给终端B。在终端B开启视频播放服务后,可以从终端A上获取到该视频的播放数据,并播放。其中,在一种可能的实现方式中,该调用请求中可以包括该视频的网络存储路径,终端B在接收到该调用请求后,可以根据该视频的网络存储路径,获取到该视频的播放数据。
S507、终端B根据第一服务的标识信息,匹配出第一服务。
终端B在接收到终端A发送的针对第一服务的标识信息后,可以根据第一服务的标识信息匹配出第一服务。
S508、终端B根据调用请求执行该第一服务。
S509、终端B返回根据调用请求执行该第一服务的结果给终端A。
例如,该第一服务可以是相机服务。该调用请求可用于请求调用相机服务返回摄像头捕捉到画面。终端B可以在开启该相机服务,通过该相机服务开启终端B上的摄像头,并将终端B上的摄像头所拍摄到的画面,返回给终端A。上述示例仅仅用于解释本申请,不应构成限定。具体内容可以参考前述图4B所示实施例,在此不再赘述。
在一些实施例中,终端A可以针对不同的终端设置不同的服务调用权限。当分布式系统中包括有三个及以上的终端时,终端A可以创建有多个数据库,每个数据库对应一个其他终端。其中,终端A上的任一数据库中保存有终端A允许该数据库对应的其他终端调用的分布式服务的服务信息。这样,终端可以为其他不同的终端设置不同的服务调用权限,在多终端的分布式服务调用时,更加灵活。
例如,分布式系统中可以包括有终端A、终端B、终端C、终端D。终端A可以分别创建数据库1、数据库2和数据库3。其中,数据库1可以对应终端B,数据库2可以对应终端C,数据库3可以对应终端D。终端A可以允许终端B调用位置服务,允许终端C调用音频录播放服务,允许终端D调用音频策略服务。因此,数据库1中可以包括有终端A上位置服务的服务信息以及终端B上分布式服务的服务信息,数据库2中可以包括有终端A上音频录播放服务的服务信息以及终端C上分布式服务的服务信息,数据库3中可以包括有终端A上音频策略服务的服务信息以及终端D上分布式服务的服务信息。上述示例仅仅用于解释本申请,不应构成限定。
通过本申请实施例,可以实现终端设备间分布式服务列表自动同步,跨设备精准访问系统服务,并且开发者无需关注服务本身,从而能够实现多终端设备下系统服务的调用,以及资源共享,达到终端设备间的能力互补的效果。
下面介绍本申请实施例中提供的终端间数据库同步的流程。
请参照图6,图6示出了本申请中提供的一种终端间数据库同步的方法流程图。其中,本申请实施例中提供的一种终端间数据库同步的方法可应用于上述实施例中的分布式系统,其中,该分布式系统可以包括有多个终端。其中,该多个终端可以是连入同一个网络中,例如,该多个终端可以连入同一个局域网。在一种可能的实现方式中,该多个终端还可以登录有同一个系统账号。在一种可能的实现方式中,该多个终端上登录的系统账号可以都属于同一个账户组。本申请实施例中以分布式系统包括有两个终端(例如终端A和终端B)进行示例性说明终端间数据库的同步方法。其中,终端A可以被称为第一终端,终端B可以被称为第二终端。
如图6所示,该终端间数据库的同步方法可以包括如下步骤:
S601、终端A和终端B开机启动。
S602、终端A和终端B各自创建各自的数据库。其中,终端A创建的数据库可以被称为数据库A,终端B创建的数据库可以被称为数据库B。
S603、终端A和终端B各自注册各自的系统服务。
S604、终端A和终端B各自从各自的系统服务中,确定出各自的分布式服务,并将各自的分布式服务的服务信息保存至各自的数据库中。
终端A从本地的系统服务中确定出终端A所支持的分布式服务,并将终端A支持的分布式服务的服务信息保存至数据库A中。终端B从本地的系统服务中确定出终端B所支持的分布式服务,并将终端B支持的分布式服务的服务信息保存至数据库B中。
其中,分布式服务为系统服务中具有分布式标识的服务,具有分布式标识的系统服务可支持远端调用。终端可以判断系统服务是否具有分布式标识,若有,则该系统服务为分布式服务。
该数据库中可以保存有多个分布式服务的服务信息,其中,分布式服务的服务信息包括分布式服务的标识信息和分布式服务所在终端的设备标识。该标识信息包括服务名称和/或指针地址。该分布式服务的指针地址用于指示该分布式服务的服务实例(即实现该分布式服务的资源)在终端上的存储地址。
S605、终端A和终端B上线时,可以同步各自分布式服务的服务信息。
其中,当终端A检测到终端B上线时,终端A可以将终端A所支持分布式服务的服务信息发送给终端B,当终端B检测到终端B上线时,终端B可以将终端B所支持分布式服务的服务信息发送给终端A。
S606、终端A上添加新的分布式服务或删除已有的分布式服务。
其中,终端A可以接收并响应用户的输入操作,增加新的分布式服务,或删除已有的分布式服务。在一种可能的实现方式中,终端A上登录的系统账号和终端B上登录的系统账号可以属于同一个账户组(例如账户组“华为之家”)。终端A可以接收并响应用户的输入操作,设置可以被账户组中的其他终端调用的系统服务,例如,增加或删除可以被账户组中的其他终端调用的系统服务。
S607、终端A在本地的分布式服务有增加或删除时,更新数据库A。
当终端A在本地增加有新的分布式服务时,终端A可以将新的分布式服务的服务信息保存至数据库A中。当终端A在本地删除已有的分布式服务(例如,删除该分布式服务的分布式标识)时,终端A可以将该已有的分布式服务的服务信息从数据库A中删除。
S608、终端A将分布数据库A中的内容更新到终端B。
在终端A上的数据库A有所更新(例如新增或删除分布式服务的服务信息)时,终端A可以将更新的内容发送给终端B,终端B将终端A更新后的分布式服务的服务信息更新保存到数据库B中。在一种可能实现方式中,终端A可以将新增的分布式服务的服务信息发送给B,终端B可以将终端A上新增的分布式服务的服务信息存储到数据库中。或者,终端A可以将需要删除分布式服务的服务名称发送给终端B,终端B根据需要删除的分布式服务的服务名称,删除数据库B中终端A需要删除的分布式服务的服务信息。在一种可能的实现方式中,终端A可以将更新后的数据库中的分布式服务的服务信息,发送给终端B。终端B将终端A上更新后的分布式服务的服务信息替换掉数据库B中已存终端A所支持分布式服务的服务信息。
S609、终端B离线。
S610、终端B在离线时,可以向终端A发送离线通知。
S611、终端A在接收到终端B的离线通知后,删除数据库A中终端B所支持分布式服务的服务信息。
在一种可能的实现方式中,终端A在接收到终端B的离线通知后,可以将数据库A中终端B所支持分布式服务的服务信息标记不可用状态,在终端A获取到针对第一服务的服务信息时,终端A可以从数据库A中处于可用状态下的分布式服务的服务信息中查询该第一服务的服务信息。当终端A接收到终端B再次上线的通知后,终端A可以将数据库A中终端B所支持分布式服务的服务信息标记为可用状态。
通过本申请实施例,能够实现在多个终端设备连入同一分布式网络的情况下时,终端间的数据库中的内容自动同步和更新,从而达到终端间的服务同步可调用。并且应用在访问服务时,无需知道是在本机还是其他设备,节省了应用开发者的开发效率,降低了分布式系统中终端设备存储系统服务的空间。
下面示例性的介绍本申请实施例提供一种分布服务调度方法提供的应用场景。
在一些应用场景中,终端A和终端B都连入了同一局域网。终端A上本地支持的系统服务可以有包括电源管理服务、活动管理服务、电话注册服务、内容服务、蓝牙后台管理服务等等,但是由于终端A的GPS定位模块已损坏或者无GPS定位模块,终端A本地不支持定位服务。当终端A上的应用程序需要用到位置服务时,终端A可以从本地的数据库中查询到终端B上支持位置服务,因此,终端A可以将该位置服务的标识信息以及调用请求发送给终端B。终端B在根据调用请求执行完该位置服务后,可以执行该位置服务的结果发送给终端A。终端A再将终端B执行位置服务的结果提供给发起调用的应用程序。
示例性的,如图7A所示,终端A上可以显示有主屏幕的界面710,该界面710中显示了一个放置有应用图标的页面,该页面包括多个应用图标(例如,天气应用图标、股票应用图标、计算器应用图标、设置应用图标、邮件应用图标、音乐应用图标、视频应用图标、浏览器应用图标、地图应用图标711、等等)。多个应用图标下方还显示包括有页面指示符,以表明当前显示的页面与其他页面的位置关系。页面指示符的下方有多个托盘图标(例如拨号应用图标、信息应用图标、联系人应用图标、相机应用图标),托盘图标在页面切换时保持显示。
终端A可以接收到用户作用于该地图应用图标711的输入操作(例如单击),响应于该输入操作,终端A可以响应于该输入操作,终端A可以显示如图7B所示的地图应用界面720。
如图7B所示,终端A显示出地图应用界面720。该地图应用界面720中包括有地图721、和搜索框。其中,在终端A接收到上述针对输入操作时,终端A上的地图应用可以发起针对位置服务的调用请求。终端A查询到本地不支持位置服务时,终端A可以输出调用提示窗口730。该调用提示窗口730可用于提示用户选择是否调用其他设备上的位置服务。例如,该调用提示窗口730中可以包括文字提示“发现本设备上没有位置服务,是否调用局域网内其他设备上的位置服务完成地图应用的定位需求”。该调用提示窗口730中可以包括确定按钮731和取消按钮732。该确定按钮731可用于触发终端A对终端B上位置服务的调用。该取消按钮732可用于触发终端A取消对终端B上位置服务的调用。
终端A可以接收到用户针对该确定按钮731的输入操作(例如单击),响应于该输入操作,终端A可以从上述实施例中的数据库A中,查询到同一局域网内的终端B上所支持位置服务的服务信息,并将该位置服务的标识信息和调用请求发送给终端B。终端B可以根据终端A发送的位置服务的标识信息匹配出位置服务,并根据该调用请求执行该位置服务,例如,终端B可以执行该位置服务获取到终端B的位置信息,并将终端B的位置信息发送给终端A。终端A接收终端B发送的位置信息后,可以将位置信息提供给地图应用。
如图7C所示,终端A上的地图应用在获取到终端B发送的位置信息后,终端A可以将终端B的位置信息作为自己的位信息,在该图库应用界面720上的地图上显示该终端A所处的位置的标记722。
上述示例仅仅用于解释本申请,不应构成限定。
在本申请实施例中,分布式服务调度的应用场景可以包括服务单次调用场景和服务长时间调用场景。其中,
1、在服务单次调用场景下,例如,终端A可以是手机,终端B可以是大屏设备。在终端A和终端B互联时,若终端A需要打开终端B上的某个应用(例如音乐应用)时,终端A调用的第一服务可以是终端B上的组件管理服务。终端A可以将该组件管理服务的标识信息和调用请求发送给终端B。其中,该调用请求可以包括该终端B上待打开应用(例如音乐应用)对应的应用包名和启动组件名(例如音乐应用的搜索页面)。终端B上在接收到该控件管理服务的标识信息和调用请求后,可以根据该调用请求中的应用包名和启动组件名,启动该应用包名对应的应用(例如音乐应用),并触发该应用中启动组件名对应的组件(例如音乐应用的搜索页面)。当启动组件完成时,终端A的调用过程结束了。
2.调用服务长时间交互的场景下,例如,终端A可以是手机,终端B可以是音响。在终端A和终端B互联时,终端A可以通过控制界面来控制终端B上的播放。终端A调用的第一服务可以是终端B上的音响服务。终端A可以将该音响服务的标识信息和调用请求发送给终端B。其中,该调用请求可以包括该音响服务的句柄名。终端B在接收到该音响服务的标识信息和调用请求后,可以根据该调用请求中的音响服务的句柄名,获取到该音响的服务句柄后,并将该音响服务的句柄发送给终端A。终端A可以根据该句柄控制音乐的播放、暂停、上一首或者下一首。
以上所述,以上实施例仅用以说明本申请的技术方案,而非对其限制;尽管参照前述实施例对本申请进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本申请各实施例技术方案的范围。

Claims (22)

1.一种分布式服务调度方法,其特征在于,包括:
第一终端将所述第一终端所支持的分布式服务的服务信息发送给第二终端;
所述第一终端接收所述第二终端发送的所述第二终端所支持的分布式服务的服务信息,所述分布式服务可被远程调用;
所述第一终端将所述第二终端所支持的分布式服务的服务信息保存至本地数据库;
所述第一终端获取到针对第一服务的调用请求;
所述第一终端判断所述第一终端的本地是否支持所述第一服务,若否,则所述第一终端判断所述本地数据库中是否包括有所述第一服务的服务信息,若是,则所述第一终端从所述本地数据库中确定出所述第一服务的标识信息以及支持所述第一服务的所述第二终端;所述本地数据库中包括有一个或多个分布式服务的服务信息;其中,所述服务信息包括所述分布式服务的标识信息和所述分布式服务所在终端的设备标识;
所述第一终端将所述第一服务的标识信息和所述调用请求发送给所述第二终端,所述第一服务的标识信息用于所述第二终端匹配所述第一服务;
所述第一终端接收所述第二终端根据所述调用请求执行所述第一服务的结果。
2.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一终端的本地支持所述第一服务时,所述第一终端在本地根据所述调用请求执行所述第一服务。
3.根据权利要求1所述的方法,其特征在于,在所述第一终端获取到针对第一服务的调用请求之前,所述方法还包括:
所述第一终端从所述第一终端上一个或多个系统服务中确定出所述第一终端所支持的所述分布式服务,并将所述第一终端所支持的所述分布式服务的服务信息保存到所述本地数据库中;其中,所述分布式服务为具有分布式标识的所述系统服务。
4.根据权利要求1所述的方法,其特征在于,所述第一终端从本地数据库中确定出所述第一服务的标识信息以及支持所述第一服务的第二终端,具体包括:
所述第一终端从所述本地数据库中确定出支持所述第一服务的多个终端;
所述第一终端从所述多个终端中,确定出所述第二终端;
所述第一终端从所述本地数据库中确定出所述第二终端所支持的所述第一服务的标识信息。
5.根据权利要求4所述的方法,其特征在于,所述第一终端从所述多个终端中,确定出所述第二终端,具体包括:
所述第一终端根据历史记录,从所述多个终端中确定出在预设时间段内被调用所述第一服务次数最多的所述第二终端。
6.根据权利要求4所述的方法,其特征在于,所述服务信息还包括所述分布式服务的服务质量;
所述第一终端从所述多个终端中,确定出所述第二终端,具体包括:
所述第一终端根据所述分布式服务的服务质量,从所述多个终端中确定出所述第一服务的服务质量最高的所述第二终端。
7.根据权利要求4所述的方法,其特征在于,所述第一终端从所述多个终端中,确定出所述第二终端,具体包括:
所述第一终端输出调用提示,所述调用提示用于提示用户从所述多个终端选择出所述第二终端;
所述第一终端接收所述用户针对所述第二终端的选择操作;
响应于所述选择操作,所述第一终端确定出所述第二终端。
8.根据权利要求1所述的方法,其特征在于,当所述第一终端的本地没有所述第一服务时,所述第一终端的本地不支持所述第一服务;或,
当所述第一终端的本地有所述第一服务,且所述第一服务被占用时,所述第一终端的本地不支持所述第一服务。
9.根据权利要求1所述的方法,其特征在于,所述方法还包括:
当所述第一终端检测到所述第二终端离线时,所述第一终端删除所述本地数据库中所述第二终端所支持分布式服务的服务信息。
10.根据权利要求1所述的方法,其特征在于,所述标识信息包括所述分布式服务的服务名称和/或指针地址。
11.一种终端,为第一终端,其特征在于,包括:
应用程序、服务管理模块、通信模块;
所述通信模块,用于发送所述第一终端所支持的分布式服务的服务信息给第二终端;
所述通信模块,还用于接收所述第二终端发送的所述第二终端所支持的分布式服务的服务信息,所述分布式服务可被远程调用;
所述服务管理模块,还用于将所述第二终端所支持的所述分布式服务的服务信息保存至本地数据库;
所述应用程序,用于向所述服务管理模块发起针对第一服务的调用请求;
所述服务管理模块,还用于判断所述第一终端的本地是否支持所述第一服务,若否,则判断本地数据库中是否包括有所述第一服务的服务信息,若是,则从所述本地数据库中确定出所述第一服务的标识信息以及支持所述第一服务的所述第二终端;所述本地数据库中包括有一个或多个分布式服务的服务信息;其中,所述服务信息包括所述分布式服务的标识信息和所述分布式服务所在终端的设备标识;
所述通信模块,还用于将所述第一服务的标识信息和所述调用请求发送给所述第二终端,所述第一服务的标识信息用于所述第二终端匹配所述第一服务;
所述通信模块,还用于接收所述第二终端根据所述调用请求执行所述第一服务的结果,并将所述结果返回给所述应用程序。
12.根据权利要求11所述的终端,其特征在于,所述服务管理模块,还用于当所述第一终端的本地支持所述第一服务时,在本地执行所述第一服务。
13.根据权利要求11所述的终端,其特征在于,所述服务管理模块,还用于在所述应用程序向所述服务管理模块发起针对第一服务的调用请求之前,从所述第一终端上一个或多个系统服务中确定出所述第一终端所支持的所述分布式服务,并将所述第一终端所支持的所述分布式服务的服务信息保存到所述本地数据库中;其中,所述分布式服务为具有分布式标识的所述系统服务。
14.根据权利要求11所述的终端,其特征在于,所述服务管理模块,具体用于:
从所述本地数据库中确定出支持所述第一服务的多个设备;
从所述多个设备中,确定出所述第二终端;
从所述本地数据库中,确定出所述第二终端所支持的所述第一服务的标识信息。
15.根据权利要求14所述的终端,其特征在于,所述服务管理模块,具体用于:
根据历史记录,从所述多个设备中确定出在预设时间段内被调用所述第一服务次数最多的所述第二终端。
16.根据权利要求14所述的终端,其特征在于,所述服务信息还包括所述分布式服务的服务质量;
所述服务管理模块,具体用于:
根据所述分布式服务的服务质量,从所述多个设备中确定出所述第一服务的服务质量最高的所述第二终端。
17.根据权利要求14所述的终端,其特征在于,所述终端还包括:输入模块和输出模块;
所述输出模块,用于在所述服务管理模块从数据库中确定出支持所述第一服务的多个设备后,输出调用提示,所述调用提示用于提示用户从所述多个设备中选择出所述第二终端;
所述输入模块,用于接收所述用户针对所述第二终端的选择操作;
所述服务管理模块,具体用于响应于所述选择操作,确定出所述第二终端。
18.根据权利要求11所述的终端,其特征在于,所述服务管理模块具体用于:
当所述第一终端的本地没有所述第一服务时,判定所述第一终端的本地不支持所述第一服务;或,
当所述第一终端的本地有所述第一服务,且所述第一服务被占用时,判定所述第一终端的本地不支持所述第一服务。
19.根据权利要求11所述的终端,其特征在于,所述服务管理模块,还用于:当检测到所述第二终端离线时,删除所述本地数据库中所述第二终端所支持的分布式服务的服务信息。
20.根据权利要求11所述的终端,其特征在于,所述标识信息包括所述分布式服务的服务名称和/或指针地址。
21.一种终端,为第一终端,其特征在于,包括:处理器,存储器和通信接口;其中,所述存储器、所述通信接口和所述处理器耦合;所述存储器用于存储计算机程序代码,所述计算机程序代码包括计算机指令,当所述处理器执行所述计算机指令时,所述终端执行如权利要求1-10中任一项所述的方法。
22.一种计算机存储介质,其特征在于,包括计算机指令,当所述计算机指令在终端上运行时,使得所述终端执行如权利要求1-10中任一项所述的方法。
CN202010132849.XA 2020-02-29 2020-02-29 一种分布式服务调度方法及相关装置 Active CN113329047B (zh)

Priority Applications (5)

Application Number Priority Date Filing Date Title
CN202210523576.0A CN115086346A (zh) 2020-02-29 2020-02-29 一种分布式服务调度方法及相关装置
CN202010132849.XA CN113329047B (zh) 2020-02-29 2020-02-29 一种分布式服务调度方法及相关装置
EP21759519.8A EP4096188B1 (en) 2020-02-29 2021-02-19 Distributed service scheduling method and related apparatus
PCT/CN2021/076812 WO2021169847A1 (zh) 2020-02-29 2021-02-19 一种分布式服务调度方法及相关装置
US17/802,717 US11831713B2 (en) 2020-02-29 2021-02-19 Distributed service scheduling method and related apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010132849.XA CN113329047B (zh) 2020-02-29 2020-02-29 一种分布式服务调度方法及相关装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
CN202210523576.0A Division CN115086346A (zh) 2020-02-29 2020-02-29 一种分布式服务调度方法及相关装置

Publications (2)

Publication Number Publication Date
CN113329047A CN113329047A (zh) 2021-08-31
CN113329047B true CN113329047B (zh) 2023-04-18

Family

ID=77412890

Family Applications (2)

Application Number Title Priority Date Filing Date
CN202210523576.0A Pending CN115086346A (zh) 2020-02-29 2020-02-29 一种分布式服务调度方法及相关装置
CN202010132849.XA Active CN113329047B (zh) 2020-02-29 2020-02-29 一种分布式服务调度方法及相关装置

Family Applications Before (1)

Application Number Title Priority Date Filing Date
CN202210523576.0A Pending CN115086346A (zh) 2020-02-29 2020-02-29 一种分布式服务调度方法及相关装置

Country Status (4)

Country Link
US (1) US11831713B2 (zh)
EP (1) EP4096188B1 (zh)
CN (2) CN115086346A (zh)
WO (1) WO2021169847A1 (zh)

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114168160A (zh) * 2020-09-10 2022-03-11 荣耀终端有限公司 应用模块启动方法和电子设备
WO2023044929A1 (zh) * 2021-09-27 2023-03-30 西门子股份公司 用于提供与信息系统相关联的服务的方法和系统
CN114222003A (zh) * 2021-12-06 2022-03-22 Oppo广东移动通信有限公司 服务调用方法、系统、装置、设备及存储介质
CN114125990B (zh) * 2021-12-09 2023-12-22 思必驰科技股份有限公司 用于设备的组网方法及系统
CN114756306A (zh) * 2022-03-30 2022-07-15 Oppo广东移动通信有限公司 服务调用方法、装置、设备及存储介质
CN117472606A (zh) * 2022-07-22 2024-01-30 华为技术有限公司 调用系统服务的方法和装置
CN115296952B (zh) * 2022-09-26 2023-02-07 广州市保伦电子有限公司 一种设备调度方法、装置、设备及存储介质
CN116049320B (zh) * 2023-03-09 2023-08-08 龙存科技(北京)股份有限公司 一种基于本地化访问的分布式数据库设计方法及系统
CN117523410B (zh) * 2023-11-10 2024-10-18 中国科学院空天信息创新研究院 基于多终端协同感知分布式大模型的图像处理及构建方法

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104202427A (zh) * 2014-09-24 2014-12-10 国家电网公司 一种分布式节点间的服务调用方法及系统
CN105245500A (zh) * 2015-08-31 2016-01-13 北京奇艺世纪科技有限公司 一种多媒体资源共享方法和装置
CN105681463A (zh) * 2016-03-14 2016-06-15 浪潮软件股份有限公司 一种分布式服务框架以及分布式服务调用系统
CN107729210A (zh) * 2017-09-29 2018-02-23 百度在线网络技术(北京)有限公司 分布式服务集群的异常诊断方法和装置
CN109257396A (zh) * 2017-07-12 2019-01-22 阿里巴巴集团控股有限公司 一种分布式锁调度方法及装置
CN109831361A (zh) * 2019-02-28 2019-05-31 东软集团股份有限公司 一种分布式调试方法、系统及装置
CN110798358A (zh) * 2019-11-05 2020-02-14 泰康保险集团股份有限公司 分布式服务标识方法、装置、计算机可读介质及电子设备

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6185611B1 (en) 1998-03-20 2001-02-06 Sun Microsystem, Inc. Dynamic lookup service in a distributed system
US7577834B1 (en) 2000-05-09 2009-08-18 Sun Microsystems, Inc. Message authentication using message gates in a distributed computing environment
US7903621B2 (en) * 2005-04-29 2011-03-08 Siemens Aktiengesellschaft Service execution using multiple devices
CN101102248A (zh) 2007-08-16 2008-01-09 四川长虹电器股份有限公司 家庭网络中设备之间服务协同的方法
US9357017B2 (en) 2012-01-25 2016-05-31 Qualcomm Incorporated Method and apparatus for automatic service discovery and connectivity
US9182989B1 (en) * 2012-06-30 2015-11-10 Charles Schwab & Co., Inc. System and method for receiving services provided by distributed systems
CN103905511A (zh) 2012-12-30 2014-07-02 青岛海尔软件有限公司 基于广域网的点对点服务发现及服务调用系统及方法
US9198215B2 (en) * 2013-03-01 2015-11-24 Qualcomm Incorporated Peer connectivity using reciprocal wireless connections
US20150142602A1 (en) * 2013-11-19 2015-05-21 Service Labs, Inc. Method and system for automated identification and engagement of service providers
GB201320770D0 (en) * 2013-11-25 2014-01-08 Microsoft Corp Communication system architecture
CN105991694B (zh) 2015-02-05 2019-11-15 阿里巴巴集团控股有限公司 一种实现分布式服务调用的方法与设备
US10289991B1 (en) * 2016-06-13 2019-05-14 Square, Inc. Utilizing APIs to facilitate open ticket synchronization
US20180070370A1 (en) * 2016-09-06 2018-03-08 Ricoh Company, Ltd. Communication device, communication system, and communication method
KR101971170B1 (ko) 2016-10-14 2019-04-22 배재대학교 산학협력단 웹 서버 기반의 분산형 기기간 협업 시스템 및 방법
CN108234555A (zh) 2016-12-15 2018-06-29 广州市动景计算机科技有限公司 网页资源获取装置与方法
US10608895B2 (en) * 2017-03-31 2020-03-31 At&T Intellectual Property I, L.P. Quality of service management for dynamic instantiation of network slices and/or applications
CN109688548B (zh) * 2018-12-11 2020-12-08 惠州Tcl移动通信有限公司 Volte频段共享方法、服务器、移动终端和存储介质
US10742421B1 (en) * 2019-03-08 2020-08-11 Ares Technologies, Inc. Methods and systems for anonymous hardware attestation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104202427A (zh) * 2014-09-24 2014-12-10 国家电网公司 一种分布式节点间的服务调用方法及系统
CN105245500A (zh) * 2015-08-31 2016-01-13 北京奇艺世纪科技有限公司 一种多媒体资源共享方法和装置
CN105681463A (zh) * 2016-03-14 2016-06-15 浪潮软件股份有限公司 一种分布式服务框架以及分布式服务调用系统
CN109257396A (zh) * 2017-07-12 2019-01-22 阿里巴巴集团控股有限公司 一种分布式锁调度方法及装置
CN107729210A (zh) * 2017-09-29 2018-02-23 百度在线网络技术(北京)有限公司 分布式服务集群的异常诊断方法和装置
CN109831361A (zh) * 2019-02-28 2019-05-31 东软集团股份有限公司 一种分布式调试方法、系统及装置
CN110798358A (zh) * 2019-11-05 2020-02-14 泰康保险集团股份有限公司 分布式服务标识方法、装置、计算机可读介质及电子设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
电网调度广域分布式实时数据库系统体系架构和关键技术;翟明玉等;《电力系统自动化》;20130125(第02期);第67-70页 *

Also Published As

Publication number Publication date
WO2021169847A1 (zh) 2021-09-02
CN113329047A (zh) 2021-08-31
CN115086346A (zh) 2022-09-20
EP4096188A4 (en) 2023-04-12
EP4096188A1 (en) 2022-11-30
US20230123223A1 (en) 2023-04-20
EP4096188C0 (en) 2024-07-31
US11831713B2 (en) 2023-11-28
EP4096188B1 (en) 2024-07-31

Similar Documents

Publication Publication Date Title
CN113329047B (zh) 一种分布式服务调度方法及相关装置
WO2022257977A1 (zh) 电子设备的投屏方法和电子设备
US20230021994A1 (en) Cross-Device Content Projection Method and Electronic Device
CN112615960B (zh) 一种设备能力调度方法及电子设备
CN111030990B (zh) 一种建立通信连接的方法及客户端、服务端
WO2020238890A1 (zh) 信息处理方法和设备
WO2021052204A1 (zh) 基于通讯录的设备发现方法、音视频通信方法及电子设备
WO2020216098A1 (zh) 一种跨电子设备转接服务的方法、设备以及系统
CN111615820B (zh) 通过向grs服务器发送关键值进行域名解析的方法及设备
CN113923230A (zh) 数据同步方法、电子设备和计算机可读存储介质
CN114125354A (zh) 一种智能音箱与电子设备协作的方法及电子设备
US20230297414A1 (en) Task Processing Method and Related Apparatus
CN113254409A (zh) 文件共享方法、系统及相关设备
EP4293997A1 (en) Display method, electronic device, and system
US20240303024A1 (en) Display method, electronic device, and system
CN111372329B (zh) 一种连接建立方法及终端设备
CN114449090B (zh) 数据分享方法、装置、系统及电子设备、存储介质、芯片
CN114064160A (zh) 应用图标布局方法及相关装置
CN115248693A (zh) 一种应用的管理方法和电子设备
CN114567871A (zh) 文件共享的方法、装置、电子设备以及可读存储介质
WO2020062308A1 (zh) 位置信息处理方法及相关装置
EP4290375A1 (en) Display method, electronic device and system
CN115048193A (zh) 一种多设备分布式调度方法及相关设备
CN115695445A (zh) 一种数据同步方法、终端和系统
CN117119098A (zh) 账户屏蔽方法、通信系统及电子设备

Legal Events

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