CN117812142A - 服务发现方法、装置及电子设备 - Google Patents
服务发现方法、装置及电子设备 Download PDFInfo
- Publication number
- CN117812142A CN117812142A CN202311835066.8A CN202311835066A CN117812142A CN 117812142 A CN117812142 A CN 117812142A CN 202311835066 A CN202311835066 A CN 202311835066A CN 117812142 A CN117812142 A CN 117812142A
- Authority
- CN
- China
- Prior art keywords
- access information
- client
- server
- service
- vehicle node
- 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.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 63
- 238000006243 chemical reaction Methods 0.000 claims description 32
- 238000012545 processing Methods 0.000 claims description 24
- 238000013507 mapping Methods 0.000 claims description 21
- 238000004590 computer program Methods 0.000 claims description 17
- 230000008569 process Effects 0.000 claims description 13
- 230000006854 communication Effects 0.000 abstract description 23
- 238000004891 communication Methods 0.000 abstract description 20
- 230000005540 biological transmission Effects 0.000 description 11
- 238000010586 diagram Methods 0.000 description 5
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 230000006870 function Effects 0.000 description 3
- 230000004044 response Effects 0.000 description 3
- 238000013519 translation Methods 0.000 description 3
- 238000011161 development Methods 0.000 description 2
- 238000005516 engineering process Methods 0.000 description 2
- 238000006467 substitution reaction Methods 0.000 description 2
- 230000001360 synchronised effect Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 1
- 238000013459 approach Methods 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/51—Discovery or management thereof, e.g. service location protocol [SLP] or web services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/12—Protocols specially adapted for proprietary or special-purpose networking environments, e.g. medical networks, sensor networks, networks in vehicles or remote metering networks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
- H04L67/141—Setup of application sessions
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/55—Push-based network services
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- General Health & Medical Sciences (AREA)
- Medical Informatics (AREA)
- Small-Scale Networks (AREA)
Abstract
本申请提供了一种服务发现方法、装置及电子设备,涉及通信技术领域,包括:接收客户端发送的服务订阅事件,服务订阅事件包含客户端的访问信息和订阅的服务信息;根据订阅的服务信息,查询车内节点上与服务订阅事件匹配的服务端以及服务端的访问信息;根据服务端的访问信息和客户端的访问信息,判断服务端是否位于车内节点的内部元件上,以及客户端是否位于服务端对应的车内节点;并根据判断结果,对服务端的访问信息进行外部使用和本地使用的区分处理后推送给客户端。因此,可实现将服务端的访问信息区分为外部使用和本地使用,以及依据区分情况推送适用服务端的访问信息,可避免客户端和服务端连接失败以及保证服务发现成功。
Description
技术领域
本申请涉及通信技术领域,尤其涉及到一种服务发现方法、装置及电子设备。
背景技术
随着汽车电子(Electronic Electric,EE)系统架构从传统的点对点连接演变为分布式架构,面向服务的架构(Service-OrientedArchitecture,SOA)成为了最重要的开发方法,其中支持SOA的服务发现系统成了基础设施。为了满足SOA的要求,车内节点之间基于服务发现的通信协议,实现通信两端动态部署。客户端和服务端建立连接之前,客户端并不知道服务端的访问信息。通常通过服务发现的通信协议,将对应于特性服务的服务端的访问信息推送给订阅这个服务的客户端,然后客户端利用这个访问信息与服务端进行通信。
目前,采用服务发现方式是查询到服务端的访问信息直接将查询到的访问信息推送给客户端。然而,一个车内节点内存在多个内部元件,如芯片等,按照上述方式进行服务发现,如果服务端在车内节点的内部元件上,将查询到的服务端的访问信息直接推送给客户端,可能会造成客户端无法与服务端进行连接,导致服务发现失败。
发明内容
本申请提供一种服务发现方法、装置及电子设备,可实现将服务端的访问信息区分为外部使用和本地使用,以及依据区分情况推送适用服务端的访问信息,可避免客户端和服务端连接失败以及保证服务发现成功。
第一方面,提供一种服务发现方法,包括:
接收客户端发送的服务订阅事件,服务订阅事件包含客户端的访问信息和订阅的服务信息;
根据服务信息,查询车内节点上与服务订阅事件匹配的服务端以及服务端的访问信息;
根据服务端的访问信息和客户端的访问信息,判断服务端是否位于车内节点的内部元件上,以及客户端是否位于车内节点上;
根据判断结果,对服务端的访问信息进行外部使用和本地使用的区分处理后推送给客户端,以便客户端基于区分处理后的访问信息与服务端进行通信。
第二方面,提供一种服务发现装置,包括:
接收模块,用于接收客户端发送的服务订阅事件,服务订阅事件包含客户端的访问信息和订阅的服务信息;
查询模块,用于根据服务信息,查询车内节点上与服务订阅事件匹配的服务端以及服务端的访问信息;
判断模块,用于根据服务端的访问信息和客户端的访问信息,判断服务端是否位于车内节点的内部元件上,以及客户端是否位于服务端所在的车内节点上;
处理模块,用于根据判断结果,对服务端的访问信息进行外部使用和本地使用的区分处理后推送给客户端,以便客户端基于区分处理后的访问信息与服务端进行通信。
第三方面,提供一种电子设备,包括:
处理器和存储器,存储器用于存储计算机程序,处理器用于调用并运行存储器中存储的计算机程序,以执行如第一方面各实现方式中的方法。
第四方面,提供一种计算机可读存储介质,用于存储计算机程序,计算机程序使得计算机执行如第一方面各实现方式中的方法。
通过本申请提供的技术方案,可提供一种服务发现方法、装置及电子设备。在客户端需要使用服务时,接收客户端发送的服务订阅事件,服务订阅事件包含客户端的访问信息和订阅的服务信息;同时可根据订阅的服务信息,查询车内节点上与服务订阅事件匹配的服务端以及服务端的访问信息;根据服务端的访问信息和客户端的访问信息,判断服务端是否位于车内节点的内部元件上,以及客户端是否位于服务端对应的车内节点上;并根据判断结果,对服务端的访问信息进行外部使用和本地使用的区分处理后推送给客户端,以便客户端基于区分处理后的访问信息与服务端进行通信。因此,本申请的技术方案,可实现将服务端的访问信息区分为外部使用和本地使用,以及依据区分情况推送适应的访问信息,可避免外部车内节点的客户端无法与车内节点的内部元件上的服务端建立连接的情况出现,可保证服务发现成功以及保证客户端成功访问服务端或者成功调用服端的相应服务。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本申请。本申请的其他特征和优点将在随后的具体实施方式部分予以详细说明。
附图说明
为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本申请实施例提供的一种服务发现方法的流程示意图;
图2为本申请实施例提供的车内节点的示意图;
图3为本申请另一实施例提供的一种服务发现方法的流程示意图;
图4为本申请实施例提供的一种服务发现装置的结构示意图;
图5为本申请实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
需要说明的是,本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本申请的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或服务器不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
随着EE系统架构从传统的点对点连接演变为分布式架构,SOA成为了最重要的开发方法,其中支持SOA的服务发现系统成了基础设施。为了满足SOA的要求,车内节点之间基于服务发现的通信协议,实现通信两端动态部署。客户端和服务端建立连接之前,客户端并不知道服务端的访问信息。通常通过服务发现的通信协议,将提供对应服务的服务端的访问信息推送给订阅这个服务的客户端,然后客户端利用这个访问信息与服务端进行通信。
目前,车内各节点间使用以太网通信,大多使用二层网络,很少使用路由及上层的策略。随着算力的需求增长,一个车内节点内存在多个元件,同时由于不同供应商元件方案的不同,为了使得多个元件可以对外通信,整车厂往往给车内节点分配一个外部访问信息,给各个元件分配内部访问信息,也即车内节点之间通过外部访问信息进行通信,车内节点内的元件之间通过内部访问信息进行通信。然而,如果服务端在一个车内节点的内部元件上,查询的服务端的访问信息为内部访问信息,订阅服务的客户端在另一个车内节点上,直接将服务端的内部访问信息推送给客户端,会造成客户端无法与服务端进行连接,导致服务发现失败。
因此,为了保证服务发现成功,本申请技术方案提供一种服务发现方法、装置及电子设备。
下面将对本申请技术方案进行详细阐述:
图1为本申请实施例提供的一种服务发现方法的流程图,该方法应用于服务发现系统的中心节点,具体可以是基于互联网协议(Internet Protocol,IP)网络的可扩展的面向服务的中间件(Scalable service-Oriented MiddlewarE over IP,SOME/IP)的中心节点,该方法也可以应用于车内节点,或者网络设备,但不限于此。如图1所示,该方法可以包括如下步骤:
步骤110、接收客户端发送的服务订阅事件,服务订阅事件包含客户端的访问信息和订阅的服务信息。
在本申请实施例中,当客户端需要调用或者使用某个服务时,客户端将向中心节点发送服务订阅事件,以获取与服务端相关的信息,此时,中心节点接收客户端发送的服务订阅事件。客户端可以称为服务使用端,客户端的访问信息可以包括客户端的名称、网络地址和端口号等,网络地址可以为IP地址,通过客户端的访问信息可以访问到客户端。订阅的服务信息可以包括服务名称,服务版本号,服务公布的周期,服务的有效时间(Time-To-Live,TTL)串口以及其它可能的参数。
步骤120、根据订阅的服务信息,查询车内节点上与服务订阅事件匹配的服务端以及服务端的访问信息。
在具体实施例中,步骤120“根据订阅的服务信息,查询车内节点上与服务订阅事件匹配的服务端以及服务端的访问信息”的具体过程可以包括:根据订阅的服务信息,查询预设服务注册表,以确定车内节点上与服务订阅事件匹配的服务端以及服务端的访问信息。其中,预设服务注册表保存有不同服务端分别对应的访问信息和服务信息,不同服务端可以预先向中心节点进行服务注册,服务端可以为服务提供端,客户端和服务端是相对的,当需要调用或者使用服务时,称为客户端,当提供服务时,称为服务端,服务端的访问信息客户端的名称、网络地址和端口号等,网络地址可以为IP地址,通过服务端的访问信息可以访问到服务端以及相应的服务。
具体地,预设服务注册表记录可用的服务及其服务端的名称、IP地址、端口号等。客户端在需要调用或是使用某个服务时,向中心节点发出服务订阅事件,中心节点会将预设服务注册表中存在的服务信息与订阅的服务信息匹配的服务信息进行匹配,并将匹配的服务信息对应的服务端,确定为提供订阅服务的服务端,并确定服务端的网络地址、端口号等访问信息。也即中心节点在接收到客户端发送的服务使用请求事件后,会根据预设服务注册表查找与服务订阅事件相匹配的服务,为其找到相应的服务端。如果找到了匹配的服务,中心节点会获取该服端的名称、IP地址。
在具体实施例中,中心节点还可以接收不同服务端分别发送的服务注册请求事件,任一服务端发送的服务注册请求事件包含服务端的访问信息和服务端待注册的服务信息;分别建立不同服务端的标识信息和不同服务端待注册的服务信息之间的关联,并将得到的关系信息保存到预设服务注册表中。通过不同服务端向中心节点注册服务信息,可实现由中心节点负责维护不同服端的标识信息和服务信息,从而维护不同服务端与其提供的服务信息。
步骤130、根据服务端的访问信息和客户端的访问信息,判断服务端是否位于车内节点的内部元件上,以及客户端是否位于服务端所在的车内节点上。
在具体实施例中,步骤130“根据服务端的访问信息和客户端的访问信息,判断服务端是否位于车内节点的内部元件上,以及客户端是否位于服务端所在的车内节点上”的具体过程可以:获取车内网络拓扑图,根据服务端的访问信息、客户端的访问信息和车内网络拓扑图,判断服务端是否位于车内节点的内部元件上,以及客户端是否位于服务端所在的车内节点上。其中,通过车内网络拓扑图记录所有车内节点或者所有元件,以及车内节点和元件分别对应的访问信息。
在本申请实施例中,一个车内节点内存在多个元件,同时由于不同供应商元件方案的不同,为了使得多个元件可以对外通信,整车厂看可以使用NAT(NetworkAddressTranslation,网络地址转换)及NAPT(NetworkAddress Port Translation,网络地址端口转换)技术,在网络设备上给元件分配一个外部访问信息,在内部使用上分配内部访问信息,也即车内节点之间通过外部访问信息进行通信,车内节点内的元件之间通过内部访问信息进行通信。对于一个元件来说,同一个车内节点内的元件通信,可以通过内部访问信息进行通信,对于外部车内节点的元件,只能通过元件所在的车内节点的外网访问信息进行访问。
在本申请实施例中,为了更好的说明技术方案:提供了图2,如图2所示,服务端可以在车内节点的内部元件上,也可以在车内节点的内部元件外,客户端和服务端可以在同一车内节点上,可以在同一车内节点的同一个内部元件上,可以在同一车内节点的不同内部元件上,在同一车内节点上,客户端和服务端可以一个在内部元件上,一个在内部元件外,也可以均在内部元件外,客户端和服务端也可以不同的车内节点上。客户端和服务端的位置关系不同,对应的访问路径不同。若不考虑客户端和服务端的位置关系,采用固定的方式向客户端反馈服务端的访问信息,可以会导致服务端和客户端无法连接。
在本申请实施例中,通过根据服务端的访问信息和客户端的访问信息,判断服务端是否位于车内节点的内部元件上,以及客户端是否位于服务端所在的车内节点上,可以确定客户端和服务端的所在位置以及二者所在的车内节点关系,实现根据所在位置以及二者所在的车内节点关系,对服务端的访问信息进行区分处理,实现对服务协议的扩展,可解决“直接按照查询到访问信息推送给客户端”这种服务发现方式带来的服务发现失败问题。
步骤140、根据判断结果,对服务端的访问信息进行外部使用和本地使用的区分处理后推送给客户端,以便客户端基于区分处理后的访问信息与服务端进行通信。
在本申请实施例中,若服务端与客户端不在同一车内节点上,则认为服务端的访问信息是属于外部使用,也即属于网络环境外部的客户端与服务端通信;若服务端与客户端同一车内节点上,则认为服务端的访问信息是属于本地使用,也即属于网络环境内部的客户端与服务端通信。在服务端与客户端不在同一车内节点的情况下,如果将服务端在本地使用的内网访问信息推送给客户端进行连接,连接会失败。“对服务端的访问信息进行外部使用和本地使用的区分处理”的步骤可以包括:区分服务端的访问信息是外部使用还是本地使用;然后再根据区分结果,对服务端的访问信息进行处理,处理包括对服务端的访问信息进行转换和维持服务端的访问信息不变。具体地,若服务端的访问信息是属于外部使用,且在车内节点的内部元件上,则对服务端的访问信息进行转换处理。若服务端的访问信息是属于本地使用,则维持服务端的访问信息不变。通过对服务端的访问信息进行外部使用和本地使用的区分处理,可以避免将服务端在本地使用的访问信息推送给客户端进行连接。
综上,通过本申请提供的技术方案,在客户端需要使用服务时,接收客户端发送的服务订阅事件,服务订阅事件包含客户端的访问信息和订阅的服务信息;同时可根据订阅的服务信息,查询与服务订阅事件匹配的服务端以及服务端的访问信息;根据服务端的访问信息和客户端的访问信息,判断服务端是否位于车内节点的内部元件上,以及客户端是否位于服务端对应的车内节点上;并根据判断结果,对服务端的访问信息进行外部使用和本地使用的区分处理后推送给客户端,以便客户端基于区分处理后的访问信息与服务端进行通信。因此,本申请的技术方案,可实现将服务端的访问信息区分为外部使用和本地使用,以及依据区分情况推送适应的访问信息,可避免外部车内节点的客户端无法与车内节点的内部元件上的服务端建立连接的情况出现,可保证服务发现成功以及保证客户端成功访问服务端或者成功调用服端的相应服务。
基于图1所示的实施例,作为上述实施例的细化和扩展,为了完整说明本实施例方法的具体实现过程,本实施例提供了如图3所示的具体方法。如图3所示,该方法包括如下步骤:
步骤210、接收客户端发送的服务订阅事件,服务订阅事件包含客户端的访问信息和订阅的服务信息。
步骤220、根据订阅的服务信息,查询车内节点与服务订阅事件匹配的服务端以及服务端的访问信息。
步骤230、根据服务端的访问信息和客户端的访问信息,判断服务端是否位于车内节点的内部元件上,以及客户端是否位于服务端所在的车内节点上。
在具体实施例中,步骤230“根据服务端的访问信息和客户端的访问信息,判断服务端是否位于车内节点的内部元件上,以及客户端是否位于服务端所在的车内节点上”的具体可以包括:将服务端的访问信息和车内节点的外网访问信息进行对比,以确定服务端是否位于车内节点的内部元件上;将客户端的访问信息与车内节点的外部访问信息进行对比,以确定客户端是否位于车内节点上。
需要说明的是,若车内节点上服务端的访问信息和车内节点的外网访问信息不同,则说明服务端的访问信息是内网访问信息,服务端位于车内节点的内部元件上,若车内节点上服务端的访问信息和车内节点的外网访问信息相同,则说明服务端的访问信息是外网访问信息,服务端位于车内节点的内部元件之外;若客户端的访问信息和车内节点的外网访问信息不同,则说明客户端不位于车内节点,则若客户端的访问信息和车内节点的外网访问信息相同,则说明客户端位于车内节点。此外,还可以根据服务端的访问信息、客户端的访问信息和车内网络拓扑图,判断服务端是否位于车内节点的内部元件上,以及客户端是否位于服务端所在的车内节点上。其中,通过车内网络拓扑图记录所有车内节点或者所有元件,以及车内节点和元件分别对应的访问信息。
步骤240、若判断结果为服务端位于车内节点的内部元件上,且客户端不位于服务端所在的车内节点上,则基于预设转换映射规则,将服务端的访问信息转换为车内节点的外网访问信息并推送给客户端,以便客户端基于车内节点的外网访问信息与服务端进行通信。
在本申请的实施例中,若判断结果为服务端位于车内节点的内部元件上,且客户端不位于服务端所在的车内节点上,则说明服务端与客户端不在同一车内节点上,则认为服务端的访问信息是属于外部使用,也即属于网络环境外部的客户端与服务端通信,且在车内节点的内部元件上,则对服务端的访问信息进行转换处理。通过对服务端的访问信息进行外部使用和本地使用的区分处理,可以避免将服务端在本地使用的访问信息推送给客户端进行连接。其中,预设转换映射规则可以保存在配置文件中,具体可以在配置文件中通过服务实例的方式配置预设转换映射规则,具体地,可以通过“gateway”字段中进行转换映射配置。在NAT网络环境下,可以通过NAT网关进行访问信息转换,在非NAT的网络环境,配置服务端的外部使用和本地使用的访问信息是相同的。具体地,可以针对在TCP(Transmission Control Protocol,传输控制协议)/UDP(User Datagram Protocl,用户数据报协议)下的访问信息进行转换。
在具体实施例中,预设转换映射规则为预设网络地址转换规则,步骤“基于预设转换映射规则,将服务端的访问信息转换为车内节点的外网访问信息并推送给客户端,以便客户端基于车内节点的外网访问信息与服务端进行通信”的具体可以包括:若服务端的访问信息为服务端的网络地址信息,则基于预设网络地址转换规则,将服务端的网络地址信息映射转换为车内节点的外网地址信息。预设网络地址转换规则具体可以为预设IP地址转换规则,若服务端的访问信息为服务端的内网IP地址信息,则基于预设IP地址转换规则,将服务端的内网IP地址信息映射转换为车内节点的外网IP地址信息。内网IP地址信息与内网IP地址信息为不同网段。例如,若服务端的内网IP地址为172.30.30.30.1~172.30.30.30.255,则转换后的外部IP地址可以为:192.168.10.1~192.168.10.255(TCP);192.168.10.1~192.168.10.255:30501(/UDP)。
在具体实施例中,预设转换映射规则为预设网络地址端口转换规则,步骤“基于预设转换映射规则,将服务端的访问信息转换为车内节点的外网访问信息并推送给客户端,以便客户端基于车内节点的外网访问信息与服务端进行通信”的具体可以包括:若服务端的访问信息为服务端的网络地址端口信息,则基于预设网络地址端口转换规则,将服务端的网络地址端信息映射转换为车内节点的外网地址端口信息。预设网络地址转换规则具体可以为预设IP地址端口转换规则,若服务端的访问信息为服务端的内网IP地址端口信息,则基于预设IP地址端口转换规则,将服务端的内网IP地址端口信息映射转换为车内节点的外网IP地址端口信息。
在具体实施例中,可以根据上述预设转换映射规则,在服务端的服务订阅响应报文和服务调用请求响应报文中,使用option字段进行IP地址和IP地址端口号的转换。具体地,可以使用option字段的SERVER_IP选项传递服务端的IP地址。option字段的SERVER_PORT选项,传递服务端的IP地址端口号。
步骤250、若判断结果为服务端位于车内节点的内部元件上,且客户端位于服务端所在的车内节点上,则将服务端的访问信息推送给客户端,以便客户端基于服务端的访问信息与服务端进行通信。
在本申请实施例中,若判断结果为服务端位于车内节点的内部元件上,且客户端位于服务端所在的车内节点上,则认为服务端的访问信息是属于本地使用,也即属于网络环境内部的客户端与服务端通信。如果将服务端在本地使用的内网访问信息推送给客户端进行连接,连接会成功。此时,维持服务端的访问信息不变,将服务端的访问信息推送给客户端,以便客户端基于服务端的访问信息与服务端进行通信。通过对服务端的访问信息进行外部使用和本地使用的区分处理,可以保证服务端与本地的客户端成功连接的前提下,节省处理访问信息的资源消耗。
步骤260、若判断结果为服务端位于车内节点的内部元件之外,则将服务端的访问信息推送给客户端,以便客户端基于服务端的访问信息与服务端进行通信。
在本申请实施例中,若判断结果为服务端位于车内节点,但位于内部元件之外,说明此时的服务端的访问信息为车内节点的外网访问信息,客户端与服务端在不在一个车内节点上,通过客户端车内节点的外网访问信息都可以与服务端进行连接成功,此时,维持服务端的访问信息不变,将服务端的访问信息推送给客户端,以便客户端基于服务端的访问信息与服务端进行通信。通过对服务端的访问信息进行外部使用和本地使用的区分处理,可以保证服务端与本地的客户端成功连接的前提下,节省处理访问信息的资源消耗。
需要说明的是,客户端可以使用SOME/IP协议调用或是使用服务端中的相关服务,与服务端的进行通信的过程具体可以包括:当客户端与服务端建立SOME/IP的通信连接后,服务端将待传输的数据包在应用层进行封装,基于SOME/IP协议进行报文封装后送入底层协议栈;底层协议栈接收报文封装的数据包后,再次进行封装后传输至网络传输总线;网络传输总线基于传输通道将接收到的数据包传输至服务使用端所相连接的网络传输总线,然后传输到至目标客户端的底层协议栈,客户端的底层协议栈解包后,基于SOME/IP的报文格式进行解析,然后得到相应服务的传输数据。
在具体实施例中,还可以通过网关进行服务发现,客户端与服务端的进行通信的过程具体还可以包括:当客户端与服务提供端建立SOME/IP的通信连接后,服务端将待传输的数据包在应用层进行封装,再基于SOME/IP协议进行报文封装后送入底层协议栈;底层协议栈接收报文封装的数据包后,再次进行封装后传输至网络传输总线;网络传输总线将再次封装后的数据包传输至网关;网关基于根据优先级选择的传输通道将接收到的数据包传输至客户端所相连接的网络传输总线,然后传输到至客户端的底层协议栈;客户端的底层协议栈解包后,基于SOME/IP的报文格式进行解析,然后得到相应服务的传输数据。在服务端使用SOME/IP协议调用服务提供端中的相关服务过程,客户端和服务端可以直接通信交互,没有中心节点的参与和介入,不需要中心节点进行基于SOME/IP协议的报文封装或者转发。
需要说明的是,在客户端与服务端进行通信过程中,可以基于SOME/IP协议定义的数据序列化格式,对数据进行序列化;然后将序列化后的数据在网络中进行传输,以确保数据在不同节点之间的正确解析和理解,客户端与服务端基于SOME/IP协议定义的数据反序列化格式,对数据进行反序列化。此外,SOME/IP协议可以支持不同的通信模式,如请求-响应模式、发布-订阅模式等。客户端与服务端可以基于根据服务需求,选择适当的通信模式进行通信。
在本申请实施例中,在客户端与服务端进行通信过程中,可能会遇到网络错误、数据错误等情况。客户端与服务端进行通信过程可以基于SOME/IP协议的错误处理机制,包括错误检测、重试策略等,进行错误处理,如重新发送数据、断开连接,以确保通信的稳定性和可靠性。当客户端与服务端进行通信过程通信结束时,可以通过SOME/IP协议关闭连接,并释放相关资源。这包括关闭套接字、释放内存等操作,以确保系统的正常运行和资源的有效利用。
综上,通过本申请提供的技术方案,在客户端需要使用服务时,接收客户端发送的服务订阅事件,服务订阅事件包含客户端的访问信息和订阅的服务信息;同时可根据订阅的服务信息,查询与服务订阅事件匹配的服务端以及服务端的访问信息;根据服务端的访问信息和客户端的访问信息,判断服务端是否位于车内节点的内部元件上,以及客户端是否位于服务端对应的车内节点上;并根据判断结果,对服务端的访问信息进行外部使用和本地使用的区分处理后推送给客户端,以便客户端基于区分处理后的访问信息与服务端进行通信。因此,本申请的技术方案,可实现将服务端的访问信息区分为外部使用和本地使用,以及依据区分情况推送适应的访问信息,可避免外部车内节点的客户端无法与车内节点的内部元件上的服务端建立连接的情况出现,可保证服务发现成功以及保证客户端成功访问服务端或者成功调用服端的相应服务。同时,可保证服务端与客户端成功连接的前提下,节省处理访问信息的资源消耗。
基于上述图1、图3提供的服务发现方法的具体描述,如图4所示,图4是根据一示例性实施例示出的一种服务发现装置框图。该装置应用于服务发现系统的中心节点,具体可以是SOME/IP的中心节点,该方法也可以应用于车内节点,或者网络设备,但不限于此。如图4所示,该装置包括:
接收模块31,可用于接收客户端发送的服务订阅事件,服务订阅事件包含客户端的访问信息和订阅的服务信息;
查询模块32,可用于根据服务信息,查询与服务订阅事件匹配的服务端以及服务端的访问信息;
判断模块33,可用于根据服务端的访问信息和客户端的访问信息,判断服务端是否位于车内节点的内部元件上,以及客户端是否位于车内节点上;
处理模块34,可用于根据判断结果,对服务端的访问信息进行外部使用和本地使用的区分处理后推送给客户端,以便客户端基于区分处理后的访问信息与服务端进行通信。
在本申请的一些实施例中,处理模块34,可用于若判断结果为服务端位于车内节点的内部元件上,且客户端不位于车内节点上,则基于预设转换映射规则,将服务端的访问信息转换为车内节点的外网访问信息并推送给客户端,以便客户端基于车内节点的外网访问信息与服务端进行通信。
在本申请的一些实施例中,处理模块34,可用于若判断结果为服务端位于车内节点的内部元件上,且客户端位于车内节点上,则将服务端的访问信息推送给客户端,以便客户端基于服务端的访问信息与服务端进行通信。
在本申请的一些实施例中,处理模块34,可用于若判断结果为服务端位于车内节点的内部元件之外,则将服务端的访问信息推送给客户端,以便客户端基于服务端的访问信息与服务端进行通信。
在本申请的一些实施例中,预设转换映射规则包括预设网络地址转换规则,处理模块34,可用于若服务端的访问信息为服务端的网络地址信息,则基于预设网络地址转换规则,将服务端的网络地址信息映射转换为车内节点的外网地址信息。
在本申请的一些实施例中,预设转换映射规则包括预设网络地址端口转换规则,处理模块34,可用于若服务端的访问信息为服务端的网络地址端口信息,则基于预设网络地址端口转换规则,将服务端的网络地址端信息映射转换为车内节点的外网地址端口信息。
在本申请的一些实施例中,判断模块33,可用于将服务端的访问信息和车内节点的外网访问信息进行对比,以确定服务端是否位于车内节点的内部元件上;将客户端的访问信息与车内节点的外部访问信息进行对比,以确定客户端是否位于车内节点上。
综上,通过本申请提供的技术方案,在客户端需要使用服务时,接收客户端发送的服务订阅事件,服务订阅事件包含客户端的访问信息和订阅的服务信息;同时可根据订阅的服务信息,查询与服务订阅事件匹配的服务端以及服务端的访问信息;根据服务端的访问信息和客户端的访问信息,判断服务端是否位于车内节点的内部元件上,以及客户端是否位于服务端对应的车内节点上;并根据判断结果,对服务端的访问信息进行外部使用和本地使用的区分处理后推送给客户端,以便客户端基于区分处理后的访问信息与服务端进行通信。因此,本申请的技术方案,可实现将服务端的访问信息区分为外部使用和本地使用,以及依据区分情况推送适应的访问信息,可避免外部车内节点的客户端无法与车内节点的内部元件上的服务端建立连接的情况出现,可保证服务发现成功以及保证客户端成功访问服务端或者成功调用服端的相应服务。
关于上述实施例中的装置,其中各个模块执行操作的具体方式已经在有关该方法的实施例中进行了详细描述,此处将不做详细阐述说明。
上文中结合附图从功能模块的角度描述了本申请实施例的服务发现装置。应理解,该功能模块可以通过硬件形式实现,也可以通过软件形式的指令实现,还可以通过硬件和软件模块组合实现。具体地,本申请实施例中的服务发现方法实施例的各步骤可以通过处理器中的硬件的集成逻辑电路和/或软件形式的指令完成,结合本申请实施例申请的服务发现方法的步骤可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。可选地,软件模块可以位于随机存储器,闪存、只读存储器、可编程只读存储器、电可擦写可编程存储器、寄存器等本领域的成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述服务发现方法实施例中的步骤。
图5是本申请提供的一个实施例的电子设备600的示意性框图。
如图5所示,该电子设备600可包括:
存储器610和处理器620,该存储器610用于存储计算机程序,并将该程序代码传输给该处理器620。换言之,该处理器620可以从存储器610中调用并运行计算机程序,以实现本申请实施例中的方法。
例如,该处理器620可用于根据该计算机程序中的指令执行上述方法实施例。
在本申请的一些实施例中,该处理器620可以包括但不限于:
通用处理器、数字信号处理器(Digital Signal Processor,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(FieldProgrammable GateArray,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等等。
在本申请的一些实施例中,该存储器610包括但不限于:
易失性存储器和/或非易失性存储器。其中,非易失性存储器可以是只读存储器(Read-Only Memory,ROM)、可编程只读存储器(Programmable ROM,PROM)、可擦除可编程只读存储器(Erasable PROM,EPROM)、电可擦除可编程只读存储器(Electrically EPROM,EEPROM)或闪存。易失性存储器可以是随机存取存储器(RandomAccess Memory,RAM),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的RAM可用,例如静态随机存取存储器(Static RAM,SRAM)、动态随机存取存储器(Dynamic RAM,DRAM)、同步动态随机存取存储器(Synchronous DRAM,SDRAM)、双倍数据速率同步动态随机存取存储器(Double DataRate SDRAM,DDR SDRAM)、增强型同步动态随机存取存储器(Enhanced SDRAM,ESDRAM)、同步连接动态随机存取存储器(Synch link DRAM,SLDRAM)和直接内存总线随机存取存储器(Direct Rambus RAM,DR RAM)。
在本申请的一些实施例中,该计算机程序可以被分割成一个或多个模块,该一个或者多个模块被存储在该存储器610中,并由该处理器620执行,以完成本申请提供的方法。该一个或多个模块可以是能够完成特定功能的一系列计算机程序指令段,该指令段用于描述该计算机程序在该控制器中的执行过程。
如图5所示,该电子设备600还可包括:
收发器630,该收发器630可连接至该处理器620或存储器610。
其中,处理器620可以控制该收发器630与其他设备进行通信,具体地,可以向其他设备发送数据或数据,或接收其他设备发送的数据或数据。收发器630可以包括发射机和接收机。收发器630还可以进一步包括天线,天线的数量可以为一个或多个。
应当理解,该电子设备中的各个组件通过总线系统相连,其中,总线系统除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。
本申请还提供了一种计算机存储介质,其上存储有计算机程序,该计算机程序被计算机执行时使得该计算机能够执行上述方法实施例的方法。或者说,本申请提供的一个实施例还提供一种包含指令的计算机程序产品,该指令被计算机执行时使得计算机执行上述方法实施例的方法。
当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。该计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行该计算机程序指令时,全部或部分地产生按照本申请实施例该的流程或功能。该计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。该计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,该计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(Digital Subscriber Line,DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。该计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。该可用介质可以是磁性介质(例如,软盘、硬盘、磁带)、光介质(例如数字视频光盘(Digital Video Disc,DVD))、或者半导体介质(例如固态硬盘(Solid State Disk,SSD))等。
本领域普通技术人员可以意识到,结合本文中所申请的实施例描述的各示例的模块及算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,该模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个模块或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或模块的间接耦合或通信连接,可以是电性,机械或其它的形式。
作为分离部件说明的模块可以是或者也可以不是物理上分开的,作为模块显示的部件可以是或者也可以不是物理模块,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。例如,在本申请各个实施例中的各功能模块可以集成在一个处理模块中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个模块中。
以上仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以该权利要求的保护范围为准。
Claims (10)
1.一种服务发现方法,其特征在于,包括:
接收客户端发送的服务订阅事件,所述服务订阅事件包含所述客户端的访问信息和订阅的服务信息;
根据所述服务信息,查询车内节点上与所述服务订阅事件匹配的服务端以及所述服务端的访问信息;
根据所述服务端的访问信息和所述客户端的访问信息,判断所述服务端是否位于所述车内节点的内部元件上,以及所述客户端是否位于所述车内节点上;
根据判断结果,对所述服务端的访问信息进行外部使用和本地使用的区分处理后推送给所述客户端,以便所述客户端基于区分处理后的访问信息与所述服务端进行通信。
2.根据权利要求1所述的方法,其特征在于,所述根据判断结果,对所述服务端的访问信息进行外部使用和本地使用的区分处理后推送给所述客户端,包括:
若所述判断结果为所述服务端位于所述车内节点的内部元件上,且所述客户端不位于所述车内节点上,则基于预设转换映射规则,将所述服务端的访问信息转换为所述车内节点的外网访问信息并推送给所述客户端,以便所述客户端基于所述车内节点的外网访问信息与所述服务端进行通信。
3.根据权利要求1所述的方法,其特征在于,所述根据判断结果,对所述服务端的访问信息进行外部使用和本地使用的区分处理后推送给所述客户端,包括:
若所述判断结果为所述服务端位于所述车内节点的内部元件上,且所述客户端位于所述车内节点上,则将所述服务端的访问信息推送给所述客户端,以便所述客户端基于所述服务端的访问信息与所述服务端进行通信。
4.根据权利要求1所述的方法,其特征在于,所述根据判断结果,对所述服务端的访问信息进行外部使用和本地使用的区分处理后推送给所述客户端,包括:
若所述判断结果为所述服务端不位于所述车内节点的内部元件上,则将所述服务端的访问信息推送给所述客户端,以便所述客户端基于所述服务端的访问信息与所述服务端进行通信。
5.根据权利要求2所述的方法,其特征在于,所述预设转换映射规则包括预设网络地址转换规则,所述基于预设转换映射规则,将所述服务端的访问信息转换为所述车内节点的外网访问信息,包括:
若所述服务端的访问信息为服务端的网络地址信息,则基于所述预设网络地址转换规则,将所述服务端的网络地址信息映射转换为所述车内节点的外网地址信息。
6.根据权利要求2所述的方法,其特征在于,所述预设转换映射规则包括预设网络地址端口转换规则,所述基于预设转换映射规则,将所述服务端的访问信息转换为所述车内节点的外网访问信息,包括:
若所述服务端的访问信息为服务端的网络地址端口信息,则基于所述预设网络地址端口转换规则,将所述服务端的网络地址端口信息映射转换为所述车内节点的外网地址端口信息。
7.根据权利要求1所述的方法,其特征在于,所述根据所述服务端的访问信息和所述客户端的访问信息,判断所述服务端是否位于所述车内节点的内部元件上,以及所述客户端是否位于所述车内节点上,包括:
将所述服务端的访问信息和所述车内节点的外网访问信息进行对比,以确定所述服务端是否位于所述车内节点的内部元件上;
将所述客户端的访问信息与所述车内节点的外部访问信息进行对比,以确定所述客户端是否位于所述车内节点上。
8.一种服务发现装置,其特征在于,所述装置包括:
接收模块,用于接收客户端发送的服务订阅事件,所述服务订阅事件包含所述客户端的访问信息和订阅的服务信息;
查询模块,用于根据所述服务信息,查询车内节点上与所述服务订阅事件匹配的服务端以及所述服务端的访问信息;
判断模块,用于根据所述服务端的访问信息和所述客户端的访问信息,判断所述服务端是否位于所述车内节点的内部元件上,以及所述客户端是否位于所述车内节点上;
处理模块,用于根据判断结果,对所述服务端的访问信息进行外部使用和本地使用的区分处理后推送给所述客户端,以便所述客户端基于区分处理后的访问信息与所述服务端进行通信。
9.一种电子设备,其特征在于,包括:
处理器和存储器,所述存储器用于存储计算机程序,所述处理器用于调用并运行所述存储器中存储的计算机程序,以执行权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,用于存储计算机程序,所述计算机程序使得计算机执行如权利要求1-7中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311835066.8A CN117812142A (zh) | 2023-12-28 | 2023-12-28 | 服务发现方法、装置及电子设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311835066.8A CN117812142A (zh) | 2023-12-28 | 2023-12-28 | 服务发现方法、装置及电子设备 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117812142A true CN117812142A (zh) | 2024-04-02 |
Family
ID=90433019
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311835066.8A Pending CN117812142A (zh) | 2023-12-28 | 2023-12-28 | 服务发现方法、装置及电子设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117812142A (zh) |
-
2023
- 2023-12-28 CN CN202311835066.8A patent/CN117812142A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US7339895B2 (en) | Gateway device and control method for communication with IP and IPV6 protocols | |
US8626921B2 (en) | Device and service management based on layer 2 through layer 7 device attributes | |
KR101630729B1 (ko) | 차량에 최적화된 이더넷 통신 제공 방법 및 시스템 | |
US7542466B2 (en) | System and method of information communication, information processing apparatus and information processing method, program and recording medium | |
US7280559B2 (en) | Distributed application layer protocol converter for communications network | |
US10681184B2 (en) | Method and device for transmitting a message in a vehicle | |
US20240045657A1 (en) | System architecture for implementing dds communication based on autosar, communication method, and device | |
US20060069836A1 (en) | Communication system and method for upgrade of user terminal software and user terminal upgraded by the same | |
US20120317254A1 (en) | Network platform in a network device ecosystem | |
CN105791315A (zh) | 一种udp协议加速方法和系统 | |
US20200382597A1 (en) | Vehicle diagnostic communication apparatus, system including the same and method thereof | |
CN110177010B (zh) | 一种链路切换方法及装置 | |
CN114205342A (zh) | 服务调试的路由方法、电子设备、介质及程序产品 | |
US20080025331A1 (en) | Communication System, Connection Adapter For Communication Device and Network Router | |
CN113892247A (zh) | 中继装置、车辆、通信方法以及通信程序 | |
CN112702441B (zh) | 基于容器的访问数据处理方法、装置、系统及存储介质 | |
CN117812142A (zh) | 服务发现方法、装置及电子设备 | |
CN116827854A (zh) | 一种基于冗余信息反馈的车载通信系统及方法 | |
CN114466011B (zh) | 一种元数据服务请求方法、装置、设备及介质 | |
US10574797B2 (en) | Method for configuring a device connected to a field bus | |
CN117812106A (zh) | 车载通信方法、装置及电子设备 | |
CN113556392B (zh) | 通信系统、方法、设备及存储介质 | |
AU2018373682B2 (en) | Method for remote management of a device connected to a residential gateway | |
CN115361337B (zh) | 一种基于通信路由和星型网络的通信方法及系统 | |
US12069137B2 (en) | Method and device for mediating a set of applications |
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 |