CN112231019B - 基于分布式微服务的地图引擎架构 - Google Patents

基于分布式微服务的地图引擎架构 Download PDF

Info

Publication number
CN112231019B
CN112231019B CN202011094958.3A CN202011094958A CN112231019B CN 112231019 B CN112231019 B CN 112231019B CN 202011094958 A CN202011094958 A CN 202011094958A CN 112231019 B CN112231019 B CN 112231019B
Authority
CN
China
Prior art keywords
service
micro
data
map
map engine
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
CN202011094958.3A
Other languages
English (en)
Other versions
CN112231019A (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.)
Zebred Network Technology Co Ltd
Original Assignee
Zebred Network Technology 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 Zebred Network Technology Co Ltd filed Critical Zebred Network Technology Co Ltd
Priority to CN202011094958.3A priority Critical patent/CN112231019B/zh
Publication of CN112231019A publication Critical patent/CN112231019A/zh
Application granted granted Critical
Publication of CN112231019B publication Critical patent/CN112231019B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • 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/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4482Procedural
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01CMEASURING DISTANCES, LEVELS OR BEARINGS; SURVEYING; NAVIGATION; GYROSCOPIC INSTRUMENTS; PHOTOGRAMMETRY OR VIDEOGRAMMETRY
    • G01C21/00Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00
    • G01C21/26Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network
    • G01C21/28Navigation; Navigational instruments not provided for in groups G01C1/00 - G01C19/00 specially adapted for navigation in a road network with correlation of data from several navigational instruments
    • G01C21/30Map- or contour-matching
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/60Software deployment
    • G06F8/61Installation

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Automation & Control Theory (AREA)
  • Navigation (AREA)

Abstract

本发明实施例提供一种基于分布式微服务的地图引擎架构。该架构包括:服务管理模块,服务总线,以及,分布式部署在至少两个物理设备上的多个地图服务模块;所述服务管理模块通过所述服务总线与每个所述地图服务模块连接;每个地图服务模块用于提供与地图引擎相关的微服务;所述服务管理模块,用于管理所述地图服务模块是否提供微服务。本发明提供的基于分布式微服务的地图引擎架构,通过将多个地图服务模块分布式部署在至少两个物理设备上的方式,可以对地图引擎的服务单独升级,无需对地图引擎整体升级,提高了地图引擎的新功能上线的效率和速度。

Description

基于分布式微服务的地图引擎架构
技术领域
本发明涉及地图引擎技术领域,尤其涉及一种基于分布式微服务的地图引擎架构。
背景技术
从应用层面来看,地图引擎就是一套提供了驱动和管理地理数据,实现渲染、查询等功能的一套函数库。应用层软件可以调用地图引擎提供的功能接口,即可利用地图引擎完成自身与地图服务相关的功能。目前地图引擎已广泛应用于各种终端上,比如手机,车载终端等。
对于目前的地图引擎来说,地图引擎大多采用软件开发工具包(SoftwareDevelopment Kit,简称SDK)的形式进行封装。因此,地图引擎一般通过整体升级的方式,升级自己的某一功能。对于非手机的移动端(如车载终端)压力较大(例如内存和数据流量等),导致地图引擎的新功能也难以实时上线。
发明内容
本发明实施例提供一种基于分布式微服务的地图引擎架构,能够提高地图引擎新功能上线的效率和速度。
本发明提供的一种基于分布式微服务的地图引擎架构,包括:服务管理模块,服务总线,以及,分布式部署在至少两个物理设备上的多个地图服务模块;所述服务管理模块通过所述服务总线与每个所述地图服务模块连接;每个地图服务模块用于提供与地图引擎相关的微服务;
所述服务管理模块,用于管理所述地图服务模块是否提供微服务。
一种可能的实现方式,所述服务管理模块,具有下述至少一项功能:
设置所述地图引擎架构中默认启动的微服务;
管理和记录所述地图引擎架构微服务的覆盖关系;其中,具有所述覆盖关系的两个微服务同时运行时,被覆盖的微服务停止提供微服务;
管理所述地图引擎架构微服务的绑定关系,其中,具有所述绑定关系的两个微服务中,其中一个微服务使用另一微服务产生数据提供服务;
所述地图引擎架构中的微服务的查询。
一种可能的实现方式,所述地图服务模块通过预设服务接口,向服务管理模块发送微服务注册请求。
一种可能的实现方式,所述微服务注册请求包括下述至少一项信息:
微服务的标识、提供所述微服务的服务实例的标识、所述微服务的优先级、所述微服务是否允许被覆盖、所述微服务是否允许启动多服务实例、所述微服务是否覆盖所述地图引擎架构中已注册的微服务、所述微服务是否与所述地图引擎架构中已注册的微服务绑定。
一种可能的实现方式,所述地图引擎架构,还包括:数据管理模块和数据总线;所述数据管理模块通过所述数据总线与每个所述地图服务模块连接;
所述数据管理模块,用于管理所述地图服务模块提供微服务时所产生的数据。
一种可能的实现方式,所述数据管理模块,具有下述至少一项功能:
管理所述微服务产生的数据在所述地图引擎架构中的传输方式;
管理和记录相同微服务所产生的数据之间的覆盖关系;其中,具有所述覆盖关系的两个微服务的数据同时存在时,丢弃被覆盖的微服务的数据;
缓存所述微服务产生的数据;
所述微服务产生的数据的查询。
一种可能的实现方式,所述微服务产生的数据通过预设数据接口,向服务管理模块发送数据注册请求。
一种可能的实现方式,所述数据注册请求包括下述至少一项信息:
表征微服务产生的数据的来源的标识、所述微服务产生的数据的传输方式、所述微服务产生的数据是否允许被覆盖、所述微服务产生的数据的优先级、所述微服务产生的数据是否覆盖其他微服务已注册的数据。
一种可能的实现方式,所述物理设备为车辆上的电子控制单元(ElectronicControl Unit,简称ECU)。
一种可能的实现方式,所述微服务为下述任一项:
地图数据服务、定位服务、渲染服务、算路服务、导航服务、巡航服务、路况服务、搜索服务、周边识别服务、增强现实AR导航服务、高级驾驶辅助系统ADAS服务、语音服务。
本发明提供的基于分布式微服务的地图引擎架构,通过将该地图引擎架构下的多个地图服务模块分布式部署在至少两个ECU上,服务管理模块通过服务总线,调用分散在不同ECU上的地图服务模块提供微服务。通过将多个地图服务模块分布式部署在至少两个ECU上的方式,可以对地图引擎的服务单独升级,无需对地图引擎整体升级,提高了地图引擎的新功能上线的效率和速度。同时,上述将多个地图服务模块分布式部署在至少两个ECU上的方式,可以充分调用ECU的算力,提高该地图引擎提供服务的速度和效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。
图1为本发明提供的一种基于分布式微服务的地图引擎架构;
图2为本发明提供的一种基于用户的需求设定默认启动的微服务的用户界面示意图;
图3为本发明提供的一种设置服务的覆盖关系的用户界面示意图;
图4为本发明提供的一种查询导航服务的示意图;
图5为本发明提供的另一种基于分布式微服务的地图引擎架构。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
如前所述,地图引擎一般通过整体升级的方式,升级自己的某一功能。对于非手机的移动端(如车载终端)压力较大(例如内存和数据流量等),导致地图引擎的新功能也难以实时上线。
目前,车辆上部署的电子控制单元(Electronic Control Unit,简称ECU)较多,且ECU具有良好的运算力。因此,提出一种基于分布式微服务的地图引擎架构,可以将与地图引擎相关的功能拆分成多个微服务,分别部署在车辆上不同的ECU中,实现分布式部署,充分利用ECU的运算力。这样,在对某一功能进行升级时,可以只对该功能进行升级,无需整体升级,节省了升级流量及时间。
当然,在将上述基于分布式微服务的地图引擎架构应用于其他应用场景时,也可以将该架构中的多个地图服务模块分布式部署在至少两个物理设备上。此处所说的物理设备可以是任一具有处理、通信功能的设备,具体可以根据应用场景确定,本发明对此不进行限定。下述实施例以应用场景为车辆,地图引擎架构的多个地图服务模块分布式部署在车辆的至少两个ECU为例进行示例说明。
图1为本发明提供的一种基于分布式微服务的地图引擎架构。如图1所示,该地图引擎架构可以包括:
服务管理模块,服务总线,以及,分布式部署在至少两个物理设备上的多个地图服务模块;所述服务管理模块通过所述服务总线与每个所述地图服务模块连接;每个地图服务模块用于提供与地图引擎相关的微服务。
所述服务管理模块,用于管理所述地图服务模块是否提供微服务。
地图服务模块能够提供下述任一微服务(简称微服务):地图数据服务、定位服务、渲染服务、算路服务、导航服务、巡航服务、路况服务、搜索服务、周边识别服务、增强现实(Augmented Reality,简称AR)导航服务(下述称为AR导航服务)、高级驾驶辅助系统(Automatic Data Acquisition System,简称ADAS)服务(下述称为ADAS服务)、语音服务、能源管理服务等。同一地图引擎架构下可以存在能够提供相同微服务的地图服务模块,或者,任意两个地图服务模块提供的微服务均不同。
为了便于后续进行描述,将提供地图数据服务的地图服务模块称为地图数据服务模块,将提供定位服务的地图服务模块称为定位服务模块,将提供渲染服务的地图服务模块称为渲染服务模块,将提供算路服务的地图服务模块称为算路服务模块,将提供导航服务的地图服务模块称为导航服务模块,将提供巡航服务的地图服务模块称为巡航服务模块,将提供路况服务的地图服务模块称为路况服务模块,将提供搜索服务的地图服务模块称为搜索服务模块,将提供周边识别服务的地图服务模块称为周边识别服务模块,将提供增强现实(Augmented Reality,简称AR)导航服务的地图服务模块称为AR导航服务模块,将提供高级驾驶辅助系统(Automatic Data Acquisition System,简称ADAS)服务的地图服务模块称为ADAS服务模块,将提供语音服务的地图服务模块称为语音服务模块,将提供能源管理服务的地图服务模块称为能源管理服务模块。
上述罗列的这些地图服务模块按照类型可以分为如下两种类型:一种是地图引擎的基础服务模块,另一种是地图引擎的扩展服务模块。基础服务模块是由地图引擎的基础功能拆分的地图服务模块。例如,地图数据服务模块、定位服务模块、渲染服务模块、算路服务模块、导航服务模块、巡航服务模块、路况服务模块、搜索服务模块等。扩展服务模块是基于所述地图引擎的基础功能扩展的地图服务模块,该模块提供服务时需要使用至少一个基础服务模块所提供的服务或数据。扩展服务模块例如可以是:周边识别服务模块、AR导航服务模块、ADAS服务模块、语音服务模块、能源管理服务模块等。
本实施例中,地图引擎架构可以只包括基础服务模块,也可以包括基础服务模块和扩展服务模块。
下面对上述所说的地图服务模块所提供的微服务进行说明,具体地:
1、地图数据服务,用于提供地图路网数据。
2、定位服务,用于提供车辆定位数据,包括但不限于全球定位系统(GlobalPositioning System,GPS)信号、惯性导航、视觉识别等至少一种与位置相关数据。
例如,定位服务可以与地图数据服务结合,提供匹配到道路的定位数据。又例如,定位服务可以与算路服务、导航服务结合,提供匹配到导航路线或其它算路结果上的定位数据。
3、渲染服务,可以基于地图数据服务,提供指定范围的渲染能力,以及其它服务输入的指定渲染。例如,渲染搜索服务的结果。应理解,渲染能力是指提供基于数据的显示能力,具有可视化。渲染能力包括但不限于放大、缩小、移图等基础操作功能的一个或多个。
例如,渲染服务可以与定位服务结合,提供车体自身的渲染。例如,渲染服务可以与算路服务、导航服务结合,提供对算路结果、导航路线的渲染。可选的,所述车体自身的渲染可以是将定位服务提供的当前车辆的位置坐标,角度速度等的一个或多个显示出来。
4、算路服务,可以基于地图数据服务,根据特定的算路条件,提供指定点之间的最优路线。该特定的算路条件是指用户的选择或者预设的限定条件,比如选择优先走高速或者不走高速。
例如,算路服务可以与定位服务结合,计算车辆的当前位置到指定点的路线。
5、导航服务用于根据指定路线,在车辆行进中进行引导提示。该提示可包括语音及画面两种形式,分别可与语音服务、渲染服务结合提供引导提示。
例如,一般来说,导航服务所依托的路线来自算路服务,即导航服务可以与算路服务结合得到需要路线。或者,该路线也可由其它服务输入,对此不限定。
6、巡航服务,用于根据车辆的当前位置,结合地图数据服务,提供相应的提示。可选的,车辆的当前位置可以由定位服务提供,也可以由其它服务提供。
例如,巡航服务可以与语音服务或渲染服务结合,提供相应提示,即,提示可以包括语音及画面两种形式。示例性的,巡航服务可以和路况服务结合,发出前方路段是否拥堵的提示等。
7、路况服务,用于提供一定范围内的道路交通情况。可选的,所述一定范围内的道路交通情况可以是交通事件、拥堵情况等。
例如,路况服务可以与算路服务、导航服务结合,提供指定路线上的路况。又例如,路况服务可以与巡航服务结合,提供车辆当前位置的周边路况。还例如,路况服务可以与渲染服务结合,提供路况展示。
8、搜索服务,用于基于地图数据提供搜索功能,包括名称搜索、类型搜索、范围搜索等。
例如,搜索服务可以结合地图数据服务、渲染服务,将搜索结果在地图上展示出来。又例如,搜索服务可以结合算路服务,实现到指定点的路线计算。
9、周边识别服务,用于提供包括但不限于摄像头、雷达、车对外界的信息交换(Vehicle to Everything,简称V2X)等来源的周边状况识别。周边状况包括但不限于路况、结合地图数据服务的定位、障碍、行人、周边车辆运行状况等。
例如,周边识别服务可以与地图数据服务、定位服务结合,使识别更加准确。
可选地,周边识别服务的结果也可用于对定位服务进行修正,或对导航服务进行优化。
10、AR导航服务,用于提供基于实景的增强导航渲染。
例如,所述AR导航服务需要使用导航服务或者巡航服务,在一些实施例中,AR导航服务也会结合周边识别服务,提供更高的准确性和安全性。
11、ADAS服务,用于实现ADAS协议的数据提供服务。例如,所述ADAS服务基于地图服务,可以向该架构下的其它服务提供数据支持。
12、语音服务,包括但不限于语音提醒、语音交互等方式。
例如,语音服务与地图不直接相关,可以结合导航服务或巡航服务,提供语音提醒。所述语音服务也可以提供语音交互功能,实现语音控制。
13、能源管理服务,用于管理车辆能量。例如,基于地图服务,能源管理服务可以提供车辆的可达范围计算、路线可达范围提醒、能量回收等服务。
其中,可达范围计算是指没有具体路线时的可达范围。能量回收是指能源管理服务基于接收到的导航数据,控制车辆提前做能量回收的工作,以加大能量回收的力度,提高能量回收的比例。
例如,基于能量回收功能,前方路口即将转弯时,车辆可能会减速,所述能源管理服务接收到前方转弯数据,可以控制车辆提前做能量回收的工作,自发加大能量回收的力度,提高能量回收的比例,比如混动车把动能转换成电能储存起来,自动充电。
应理解,上述所列举的微服务仅是一种示例,本发明所提供的地图引擎架构还可以提供其他与地图引擎相关的微服务,对此不再一一列举,具体可以根据用户的需求确定该架构所能够提供的微服务。
本实施例中,服务总线用于为服务管理模块提供指定服务的调用通路。即,服务管理模块可以通过服务总线管理地图服务模块是否提供微服务。即,控制地图服务模块启动提供微服务,或者停止提供微服务。服务总线可以是软件形式的总线,也可以是硬件形式的总线,本发明对此不进行限定。应理解,当服务总线为软件形式的总线时,此时,服务总线与服务管理模块可以是该引擎架构下逻辑上的概念,在实现上,服务总线与服务管理模块可集成在一起,通过一个模块实现,也可以分别独立实现。
上述服务管理模块可以部署在“设置有与用户交互的用户界面,以及,通信组件(例如蓝牙或USB等)”的ECU上。本实施例所涉及的地图引擎架构所提供的地图引擎的图标可以设置在该ECU的用户界面上,以使用户通过点击该图标可以进入地图引擎,并使用该地图引擎架构下的微服务。在该地图引擎的用户界面上,可以有进入每个微服务的图标控件,或者,组件,或者入口等。
本发明提供的基于分布式微服务的地图引擎架构,通过将该地图引擎架构下的多个地图服务模块分布式部署在至少两个ECU上,服务管理模块通过服务总线,调用分散在不同ECU上的地图服务模块提供微服务。通过将多个地图服务模块分布式部署在至少两个ECU上的方式,可以对地图引擎的服务单独升级,无需对地图引擎整体升级,提高了地图引擎的新功能上线的效率和速度。同时,上述将多个地图服务模块分布式部署在至少两个ECU上的方式,可以充分调用ECU的算力,提高该地图引擎提供服务的速度和效率。
本实施例提供的服务管理模块可以具有下述至少一项功能:
功能1:设置地图引擎架构中默认启动的微服务。
例如,默认启动的微服务可以是预定义在服务管理模块中,也可以是基于用户的需求设定的。基于用户需求设定时,可以通过与用户交互实现默认启动的微服务的设置。该交互的方式可以是通过服务管理模块所在的ECU的用户界面与用户进行交互,或者通过该引擎架构中的语音服务与用户进行交互。图2为本发明提供的一种基于用户的需求设定默认启动的微服务的用户界面示意图。如图2所示,用户可以根据自己的需求选择并设定默认启动的微服务。
应理解,图2仅是一种示意,用户界面的具体实现可以根据实际需求确定。
功能2:管理和记录地图引擎架构的微服务的覆盖关系;其中,具有覆盖关系的两个微服务同时运行时,被覆盖的微服务停止提供服务。
具有覆盖关系的两个微服务通常是相同类别的服务。此时,通过该覆盖关系,服务管理模块可以控制其中一个服务停止提供服务。应理解,当微服务允许被覆盖、且存在与其具有相同类别的微服务时,才能建立两者的覆盖关系,以保证微服务运行的安全性。
具有覆盖关系的两个微服务,可以均来源于地图引擎架构,也可以一个来源于地图引擎架构,另一个来源于接入地图引擎架构所在的ECU的其他终端上的微服务等,本发明对此不做限制。
也就是说,本实施例所提供的地图引擎架构可以外接其他终端上的微服务,当其他终端上的微服务接入后,可以接到服务总线上,以使服务管理模块进行统一的管理。此时,若存在相同类别的两个服务,则服务管理模块可以通过覆盖关系,使其中一个服务停止提供服务。
以算路服务为例,地图引擎架构上有一个算路服务,其他终端的第三方应用上也有一个算路服务。当终端接入(例如蓝牙或USB等)地图引擎架构所在的ECU后,用户可以通过服务管理模块设置终端第三方应用上的算路服务覆盖地图引擎架构中的算路服务,即,建立两者的覆盖关系。
上述地图引擎架构的微服务的覆盖规则可以是预定义在服务管理模块中,也可以是基于用户的需求设定的。基于用户需求设定时,可以通过与用户交互实现地图引擎架构的微服务的覆盖规则的设置。该交互的方式可以是通过服务管理模块所在的ECU的用户界面与用户进行交互,或者通过该引擎架构中的语音服务与用户进行交互。图3为本发明提供的一种设置服务的覆盖关系的用户界面示意图。如图3所示,用户可以根据自身需求选择是否允许第三方应用的算路服务覆盖当前算路服务。
当满足该覆盖规则的两个微服务同时运行时,服务管理模块可以建立两者的覆盖关系,并记录地图引擎架构的微服务的覆盖关系。例如,服务管理模块在采用上述方式获取到微服务之间的覆盖关系后,可以将微服务之间的覆盖关系以及微服务覆盖来源(例如来自地图引擎框架,或者是来自终端的第三方应用),添加到服务覆盖关系表中。
示例性的,该服务覆盖关系表例如可以如下述表1所示:
表1
地图引擎架构的其他微服务可向服务管理模块请求获取此表。另外,该服务覆盖关系表内容发生变化时,服务管理模块可以通过服务总线广播变化的覆盖关系以及微服务覆盖来源,以使各个微服务根据该变化执行相应操作。
例如,地图引擎中的算路服务和来自其他终端的算路服务的覆盖关系为:其他终端的算路服务覆盖地图引擎中的算路服务,则当地图引擎架构的其他微服务基于服务覆盖关系表,获取到该变化时,地图引擎架构中其他需要使用算路服务的数据来实现自身服务的服务,可以从地图引擎中的算路服务获取数据,切换至从其他终端的算路服务获取数据。
例如,地图引擎只信任自己架构下的算路服务,若该算路服务被来自其他终端的算路服务覆盖时,则地图引擎因不信任其他来源的算路服务,停止提供算路服务。
功能3:管理地图引擎架构的微服务的绑定关系,其中,具有绑定关系的两个微服务中,其中一个微服务使用另一微服务产生数据提供服务。
上述微服务的绑定关系可以是预定义在服务管理模块中。当具有绑定关系的两个微服务同时运行时,一个服务产生的数据可以定向输入到与其绑定的服务中,为该服务实现相应功能提供数据支撑。
例如,路况服务与渲染服务绑定,则路况服务产生的数据可以定向传输给渲染服务中,使渲染服务进行路况渲染。
可选地,微服务的绑定关系可以定义更细的绑定粒度,例如将路况服务绑定至渲染服务对应的显示设备上,或者,该显示设备的用户界面的某一窗口上,以在指定设备或者该设备的指定窗口上进行路况渲染。
功能4:地图引擎架构中的微服务的查询。图4为本发明提供的一种查询导航服务的示意图。如图4所示,用户在地图引擎的搜索框搜索导航服务,地图引擎页面就会搜索出导航服务并在用户界面显示。
通过上述功能1至功能4中的至少一种功能,使服务管理模块可以具有更多的管理功能,从而使该地图引擎架构对应的地图引擎中各微服务能够实现自己的功能。
上述地图引擎架构中的各地图服务模块,可以通过预设服务接口向服务管理模块发送微服务注册请求,以使服务管理模块可以对其进行管理。通过该预设服务接口,各地图服务模块所发送的注册请求的格式相同。
例如,通过该预设服务接口所发送的微服务注册请求可以包括下述至少一项信息:
微服务的标识、提供所述微服务的服务实例的标识、所述微服务的优先级、所述微服务是否允许被覆盖、所述微服务是否允许启动多服务实例、所述微服务是否覆盖所述地图引擎架构中已注册的微服务、所述微服务是否与所述地图引擎架构中已注册的微服务绑定。
微服务的标识可以代表自己的身份,例如服务ID。微服务的服务实例的标识是指,当服务启动时,服务需要通过服务标准接口向管理模块进行注册,服务管理模块给该服务分配的服务实例的标识,例如服务实例ID。
微服务是否允许被覆盖用于表征微服务是否允许被不同服务ID,但是相同服务类别的服务进行覆盖。
微服务是否允许启动多服务实例用于表征该服务是否允许启动多个服务实例(每个服务实例都有自己的服务实例ID),以通过多个实例同时提供该微服务。
微服务向服务管理模块发送注册请求包含上述内容,从而使服务管理模块精确实现对每个服务的管理。
可选地,图5为本发明提供的另一种基于分布式微服务的地图引擎架构。如图5所示,上述地图引擎架构中还可以包括:数据管理模块和数据总线。数据管理模块通过数据总线与每个地图服务模块连接;数据管理模块,用于管理地图服务模块提供微服务时所产生的数据。
数据总线用于服务之间数据的传输。类似于服务总线和服务管路模块,数据总线可以是软件形式的总线,也可以是硬件形式的总线,本发明对此不进行限定。应理解,当数据服务总线为软件形式的总线时,此时,数据总线与数据管理模块可以是该引擎架构下逻辑上的概念,在实现上,数据总线与数据管理模块可集成在一起,通过一个模块实现,也可以分别独立实现。
例如,将地图数据服务、定位服务以及算路服务分布式部署在至少两个ECU上。若需要该地图引擎提供到达目的地的最优路径,则服务管理模块可以经过服务总线调用地图数据服务和定位服务,数据管理模块可以把地图数据服务和定位服务的当前数据,通过数据总线反馈给算路服务,算路服务在这些数据基础上进行算路。
可选的,数据总线与数据管理模块,和,服务总线与服务管理模块,也可以集成在一起,通过一个模块实现,对此不进行限定。
本实施例提供的数据管理模块例如可以具有下述至少一项功能:
功能1:管理微服务产生的数据在所述地图引擎架构中的传输方式。
数据管理模块将当前服务产生的数据,通过数据总线进行广播,广播对象为该数据总线上的所有对象,不限制接收方。数据管模块也可以将当前服务产生的数据,通过数据总线进行点对点传输,只有对应的接收方才可以接收该数据。点对点传输的意思仅代表需要指定接收方,点对点传输既可以是一个微服务产生的数据传输给指定的多个接收方,即一对多,也可以是多个微服务产生的数据传输给指定的一个接收方,即多对一,本发明对此不进行限定。接收方可以是地图引擎架构中的其他服务,也可以是基于该数据总线上的第三方应用,本发明对此不进行限定。
应理解,具体采用哪种传输方式传输数据可以根据微服务自己所提供服务时需要的数据确定。
以用户需要用该地图引擎的算路服务为例,首先,服务管理模块通过服务总线调用与算路服务相关的服务,例如,调用地图数据服务以及定位服务,数据管理模块把地图数据服务以及定位服务的数据通过数据总线传输给算路服务(多对一传输),算路服务基于这些数据进行算路。
功能2:管理和记录地图引擎架构的微服务所产生的数据的覆盖关系。其中,具有覆盖关系的两个微服务的数据同时存在时,在服务运行时丢弃被覆盖的微服务的数据。
类似服务管理模块的管理和记录地图引擎架构的微服务的覆盖关系的功能,具有覆盖关系的两个微服务所产生的数据通常是相同类别的数据。此时,通过该覆盖关系,数据管理模块可丢弃在服务运行时被覆盖的微服务的数据。
具有覆盖关系的两组数据,可以均来源于地图引擎架构,也可以一个来源于地图引擎架构的服务,另一个来源于接入地图引擎架构所在的ECU的其他终端的服务等,本发明对此不做限制。
也就是说,本实施例所提供的地图引擎架构可以外接其他终端上的微服务,当其他终端上的微服务的数据接入后,可以接到数据总线上,以使数据管理模块进行统一的管理。此时,若存在相同类别的两组数据,则数据管理模块可以通过覆盖关系,使被覆盖的微服务的数据被丢弃。
例如,以基于导航服务提供给语音服务的提示为例,假定同时存在语音服务,以及,语音美化服务,且语音美化服务的数据覆盖语音服务的数据。则在该示例下,若语音服务接收的播报数据为“前方有转”,语音美化服务接收的播报数据为“前方请注意右转”,则该地图引擎最终播放的语音数据为“前方请注意右转”。
类似服务覆盖关系表,上述地图引擎架构的微服务所产生的数据的覆盖规则例如可以是预定义在数据管理模块中,也可以是基于用户的需求设定的。基于用户需求设定时,可以通过与用户交互实现地图引擎架构的微服务所产生的数据的覆盖规则的设置。该交互的方式可以是通过数据管理模块所在的ECU的用户界面与用户进行交互,或者通过该引擎架构中的语音服务与用户进行交互。
功能3:缓存微服务产生的数据。
数据管理模块具有数据缓存功能,例如,数据管理模块可以将数据缓存到其所在的ECU中,或者,将数据缓存到部署有该地图引擎架构的各模块的ECU上。若新接进来的服务需要使用上一次广播的数据时,可以向数据管理模块请求获取上一次广播的数据。
例如,在导航过程中,由于发起导航时已经广播过一次地图引擎架构的算路服务的算路结果(数据具有时效性),之后其他服务需要向数据管理模块请求获取上一次广播的路线数据。此时,数据管理模块可以将缓存的算路结果提供给其他服务。
当然,数据管理模块也可以不提供数据,若服务需要使用上一次广播的数据时,可以由数据来源的服务提供数据查询功能。
功能4:微服务产生的数据的查询。
其他微服务需要使用数据管理模块上一次广播的数据时,可以向数据管理模块请求查询历史广播的数据。应理解,该历史广播的数据可以是数据管理模块缓存的数据,也可以是数据管理模块基于该微服务的查询请求,从对应的微服务中重新获取该数据。例如,在导航过程中,由于发起导航时已经广播过一次地图引擎架构的算路服务的算路结果(数据具有时效性),其他微服务需要使用数据管理模块上一次广播的数据(即算路服务的算路结果)时,向数据管理模块请求查询上一次广播的算路结果数据,数据管理模块把上一次广播的算路结果数据通过数据总线反馈给算路服务。
通过上述功能1至功能4中的至少一种功能,使数据管理模块可以具有更多的管理功能,从而使该地图引擎架构对应的地图引擎中各微服务所产生的数据能够提供服务。
上述地图引擎架构中的各地图服务模块提供的微服务产生的数据,可以通过预设数据接口向数据管理模块发送数据注册请求,以使数据管理模块可以对其进行管理。
类似服务通过预设服务接口向服务管理模块发送注册请求,微服务启动时,把该服务的数据通过数据标准接口向数据管理模块进行注册,注册后,将该数据通过数据总线进行传输,传输方式包括广播和点对点传输。
通过该预设数据接口,各地图服务模块的微服务产生的数据发送的注册请求的格式相同。
例如,通过该预设数据接口所发送的数据注册请求可以包括下述至少一项信息:
表征微服务产生的数据的来源的标识、所述微服务产生的数据的传输方式、所述微服务产生的数据是否允许被覆盖、所述微服务产生的数据的优先级、所述微服务产生的数据是否覆盖其他微服务已注册的数据。
表征微服务产生的数据的来源的标识是指:产生数据的服务实例的标识,例如同一个服务实例产生的数据都是同一个ID。即,由同一个服务实例产生的数据来源于同一个服务实例。微服务产生的数据是否允许被覆盖用于表征该数据是否允许被相同数据类别的数据进行覆盖。在存在相同数据类别的数据时,数据管理模块可以基于微服务产生的数据的优先级,确定由哪个数据覆盖哪个数据。
本发明提供的基于分布式微服务的地图引擎架构,通过将该地图引擎架构下的多个地图服务模块分布式部署在至少两个ECU上,服务管理模块通过服务总线,调用分散在不同ECU上的地图服务模块提供微服务。通过将多个地图服务模块分布式部署在至少两个ECU上的方式,可以对地图引擎的服务单独升级,无需对地图引擎整体升级,提高了地图引擎的新功能上线的效率和速度。同时,上述将多个地图服务模块分布式部署在至少两个ECU上的方式,可以充分调用ECU的算力,提高该地图引擎提供服务的速度和效率。
应理解,上述地图引擎架构中的所有服务均可为在线或离线实现。地图引擎架构中的服务不需要在同一设备、甚至同一网络域内实现,只要可以通过总线互联即可。
服务可以按需启动,比如不需要导航服务时,不启动导航服务;某些服务压力过大,可以调用两个实例进行任务分配,提高效率。
例如,预设地点附近有10个加油站,从该预设地点到这10个加油站各自有路线,在ECU上可以存在两个算路服务(即服务ID相同,服务实例ID不同)不同,两个算路服务同时进行运算从该预设地点到这10个加油站各自有路线,使效率提高。
某些服务可以进一步拆分,比如AR导航服务,还可以进一步分解为AR数据提供服务和AR渲染服务。具体情况视用户需求与实现方案而定。除地图服务外,还可以基于该架构添加或删减微服务。
在硬件(比如外接U盘或者终端)上的应用提供的服务和ECU上地图引擎架构提供的服务相同时,当将硬件连接到该地图引擎的服务总线和数据总线上后,通过上述数据管理模块或服务管理模块的覆盖关系,将地图引擎架构上的服务替换成硬件(比如外接U盘或者终端)的应用某一服务。
例如通过外接U盘或者终端连接,实现更优的某些服务替换。可以在终端上实现某一服务,终端连接ECU进行服务或数据的替换进行覆盖;如果终端不连接ECU,则服务或数据不进行替换,不产生覆盖关系。若车辆的地图引擎服务版本较低,功能不够全面,终端等外接终端可以连接到车上的ECU,使终端的服务替换车上的服务,提高用户体验。
进一步地,本发明所提供的地图引擎架构还可以适用于依赖地图的第三方应用。目前,现有技术中,依赖地图引擎的第三方应用通常是通过调用地图引擎的软件开发工具包(Software Development Kit,SDK)的方式进行功能开发,实现地图引擎的调用。因此,当地图引擎进行更新时,第三方应用也需重新基于地图引擎的SDK进行功能开发,导致第三方应用的开发效率较低,开发成本较高。
而本发明提供的地图引擎架构,第三方应用后台可以利用前述所说的预设服务接口、预设数据接口,使第三方应用接入该地图引擎,从而可以通过相应总线发送所需数据到需要的服务上,由此可以无缝切换至本发明的地图引擎架构上的服务。这样,即便地图引擎中的某一服务进行了更新,第三方应用也无需重新进行功能开发,即可使用该地图引擎中的服务,提高了第三方应用的开发效率,降低了开发成本。
另外,现有的地图引擎的功能固定,无法灵活扩展,而本发明提供的地图引擎架构可以灵活扩展其自身的功能,提高了用户体验。例如ECU有一个算路服务,第三方有个开发功能更全面的算路服务,终端连接到车辆后,第三方将ECU的算路服务进行覆盖(基于和第三方的合作关系,使更优化的数据进行覆盖)。
本领域普通技术人员可以理解:实现上述各方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成。前述的程序可以存储于一计算机可读取存储介质中。该程序在执行时,执行包括上述各方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
最后应说明的是:以上各实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述各实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的范围。

Claims (7)

1.一种基于分布式微服务的地图引擎架构,其特征在于,所述地图引擎架构,包括:服务管理模块,服务总线,以及,分布式部署在至少两个物理设备上的多个地图服务模块;所述服务管理模块通过所述服务总线与每个所述地图服务模块连接;每个地图服务模块用于提供与地图引擎相关的微服务;
所述服务管理模块,用于管理所述地图服务模块是否提供微服务;
所述服务管理模块,具有下述功能:
设置所述地图引擎架构中默认启动的微服务;
管理和记录所述地图引擎架构的微服务的覆盖关系;其中,具有所述覆盖关系的两个微服务同时运行时,被覆盖的微服务停止提供服务;具有所述覆盖关系的两个微服务为相同类别的服务;具有所述覆盖关系的两个微服务均来源于所述地图引擎架构或者一个来源于所述地图引擎架构,另一个来源于接入所述地图引擎架构的其他终端上的微服务;当所述地图引擎架构外接其他终端上的微服务时,所述其他终端上的微服务接入到所述服务总线上,以使所述服务管理模块进行统一管理;当满足覆盖规则的两个微服务同时运行时,所述服务管理模块建立两者的覆盖关系,并将微服务之间的覆盖关系以及微服务覆盖来源添加到服务覆盖关系表中;当所述服务覆盖关系表内容发生变化时,所述服务管理模块通过所述服务总线广播变化的覆盖关系以及微服务覆盖来源,以使各个微服务根据该变化执行相应操作;
管理所述地图引擎架构的微服务的绑定关系,其中,具有所述绑定关系的两个微服务中,其中一个微服务使用另一微服务产生数据提供服务;
所述地图引擎架构中的微服务的查询;
所述地图引擎架构,还包括:数据管理模块和数据总线;所述数据管理模块通过所述数据总线与每个所述地图服务模块连接;
所述数据管理模块,用于管理所述地图服务模块提供微服务时所产生的数据;
所述数据管理模块,具有下述功能:
管理所述微服务产生的数据在所述地图引擎架构中的传输方式;所述传输方式包括广播和点对点传输;
管理和记录相同微服务所产生的数据之间的覆盖关系;其中,具有所述覆盖关系的两个微服务的数据同时存在时,丢弃被覆盖的微服务的数据;具有所述覆盖关系的两个微服务所产生的数据为相同类别的数据;具有所述覆盖关系的两组数据均来源于所述地图引擎架构或者一个来源于所述地图引擎架构的服务,另一个来源于接入所述地图引擎架构的其他终端的服务;当地图引擎架构外接其他终端上的微服务时,所述其他终端上的微服务接入到所述服务总线上,以使所述数据管理模块进行统一管理;
缓存所述微服务产生的数据;
所述微服务产生的数据的查询。
2.根据权利要求1所述的地图引擎架构,其特征在于,所述地图服务模块通过预设服务接口,向服务管理模块发送微服务注册请求。
3.根据权利要求2所述的地图引擎架构,其特征在于,所述微服务注册请求包括下述至少一项信息:
微服务的标识、提供所述微服务的服务实例的标识、所述微服务的优先级、所述微服务是否允许被覆盖、所述微服务是否允许启动多服务实例、所述微服务是否覆盖所述地图引擎架构中已注册的微服务、所述微服务是否与所述地图引擎架构中已注册的微服务绑定。
4.根据权利要求1所述的地图引擎架构,其特征在于,所述微服务产生的数据通过预设数据接口,向服务管理模块发送数据注册请求。
5.根据权利要求4所述的地图引擎架构,其特征在于,所述数据注册请求包括下述至少一项信息:
表征微服务产生的数据的来源的标识、所述微服务产生的数据的传输方式、所述微服务产生的数据是否允许被覆盖、所述微服务产生的数据的优先级、所述微服务产生的数据是否覆盖其他微服务已注册的数据。
6.根据权利要求1-5任一项所述的地图引擎架构,其特征在于,所述物理设备为车辆上的电子控制单元ECU。
7.根据权利要求6所述的地图引擎架构,其特征在于,所述微服务为下述任一项:
地图数据服务、定位服务、渲染服务、算路服务、导航服务、巡航服务、路况服务、搜索服务、周边识别服务、增强现实AR导航服务、高级驾驶辅助系统ADAS服务、语音服务。
CN202011094958.3A 2020-10-14 2020-10-14 基于分布式微服务的地图引擎架构 Active CN112231019B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011094958.3A CN112231019B (zh) 2020-10-14 2020-10-14 基于分布式微服务的地图引擎架构

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011094958.3A CN112231019B (zh) 2020-10-14 2020-10-14 基于分布式微服务的地图引擎架构

Publications (2)

Publication Number Publication Date
CN112231019A CN112231019A (zh) 2021-01-15
CN112231019B true CN112231019B (zh) 2024-04-16

Family

ID=74111910

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011094958.3A Active CN112231019B (zh) 2020-10-14 2020-10-14 基于分布式微服务的地图引擎架构

Country Status (1)

Country Link
CN (1) CN112231019B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112965446B (zh) * 2021-01-29 2022-06-14 华中科技大学 一种基于微服务架构的柔性生产线控制系统平台

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017067230A1 (zh) * 2015-10-21 2017-04-27 中兴通讯股份有限公司 一种基于微服务架构扩展软件功能的方法及装置
WO2019135207A1 (en) * 2018-01-08 2019-07-11 Here Global B.V. Distributed processing system and method for the provision of location based services
CN110543537A (zh) * 2019-08-22 2019-12-06 广东省城乡规划设计研究院 一种基于Docker容器及微服务架构的智慧规划时空云GIS平台
CN111680033A (zh) * 2020-04-30 2020-09-18 广州市城市规划勘测设计研究院 一种高性能gis平台

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017067230A1 (zh) * 2015-10-21 2017-04-27 中兴通讯股份有限公司 一种基于微服务架构扩展软件功能的方法及装置
WO2019135207A1 (en) * 2018-01-08 2019-07-11 Here Global B.V. Distributed processing system and method for the provision of location based services
CN111566620A (zh) * 2018-01-08 2020-08-21 赫尔环球有限公司 用于提供基于位置的服务的分布式处理系统和方法
CN110543537A (zh) * 2019-08-22 2019-12-06 广东省城乡规划设计研究院 一种基于Docker容器及微服务架构的智慧规划时空云GIS平台
CN111680033A (zh) * 2020-04-30 2020-09-18 广州市城市规划勘测设计研究院 一种高性能gis平台

Also Published As

Publication number Publication date
CN112231019A (zh) 2021-01-15

Similar Documents

Publication Publication Date Title
US10798669B2 (en) Method of enabling a wireless information device to access location data
US9057624B2 (en) System and method for vehicle navigation with multiple abstraction layers
CN105302007A (zh) 一种车联网操作控制系统
CN104691444A (zh) 一种基于电动汽车的车载终端和车载终端系统
KR20080103370A (ko) 피투피 서비스 기반 실시간 교통 영상정보 공유 시스템 및그 제어 방법
CN105066999A (zh) 位置信息确定方法及装置
US11644318B2 (en) Navigation data processing system, apparatus and computer readable medium
CN110972085A (zh) 信息交互方法、装置、存储介质、设备及系统
JP2019121378A (ja) 明確なピックアップ場所を提供するための電子機器およびコンピュータプログラム
CN112231019B (zh) 基于分布式微服务的地图引擎架构
US20190215437A1 (en) Vehicle imaging support device, method, and program storage medium
CN114882464B (zh) 多任务模型训练方法、多任务处理方法、装置及车辆
CN112735162A (zh) 车辆调度方法、装置、系统、设备及存储介质
WO2018032654A1 (zh) 一种离线地图获取方法及车载单元
CN113422727A (zh) 业务处理方法、装置及电子设备
CN102158463A (zh) 车载信息服务系统及车载信息服务方法
CN105450763B (zh) 一种车联网处理系统
JP4808174B2 (ja) 位置情報付きコンテンツ検索システム及び車載情報提供装置並びにコンピュータプログラム
EP4346247A1 (en) Data interaction method and apparatus, vehicle, readable storage medium and chip
CN114802311B (zh) 全局化车辆控制方法、装置、电子设备及存储介质
KR101734609B1 (ko) 다중 경로 안내 텔레매틱스 시스템
KR20070105694A (ko) 네비게이션 배경 정보 제공 방법 및 이를 이용한네비게이션 시스템
US20230182761A1 (en) Information processing apparatus and information processing method
CN113252050B (zh) 一种路线匹配方法、装置、设备及存储介质
US20230131924A1 (en) Information presentation device, information presenting method and non-transitory recording medium

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