万网网站备案系统,dw怎么做网站跳转,html网站开发开题报告范文,python 直播网站开发☞返回总目录
相关总结#xff1a;服务发现实现策略总结
7.2 服务发现的实现策略
如前面章节所述#xff0c;ara::com 期望产品供应商实现服务发现的功能。服务发现功能基本上是在 API 级别通过 FindService、OfferService 和 StopOfferService 方法定义的#xff0c;协议…☞返回总目录
相关总结服务发现实现策略总结
7.2 服务发现的实现策略
如前面章节所述ara::com 期望产品供应商实现服务发现的功能。服务发现功能基本上是在 API 级别通过 FindService、OfferService 和 StopOfferService 方法定义的协议和实现细节是开放的。
当一个 AP 节点更具体地是一个 AP 软件组件通过网络提供服务或向另一个网络节点请求服务时服务发现 / 服务注册表显然是通过网络进行的。通过网络进行服务发现的协议需要由所使用的通信协议完全指定比如 SOME/IP在 SOME/IP 服务发现协议规范 [13AUTOSAR_PRS_SOMEIPServiceDiscoveryProtocol.pdf] 中完成。但是如果一个 ara::com 应用程序想要与同一节点上同一 AP 供应商的另一个 ara::com 应用程序通信那么必须有一个本地版本的服务发现可用。这里唯一的区别是在本地进行服务发现的协议实现完全取决于 AP 产品供应商。
7.2.1 集中式与分布式方法
一、集中式方法
抽象来看AP 产品供应商可以在两种方法进行选择
第一种是集中式方法供应商决定拥有一个中央实体例如一个守护进程
维护所有服务实例及其位置信息的注册表。为本地 ara::com 应用程序的所有 FindService、OfferService 和 StopOfferService 请求提供服务从而更新注册表OfferService、StopOfferService或查询注册表FindService。为网络的所有 SOME/IP SD 消息提供服务要么更新其注册表接收到 SOME/IP Offer Service要么查询注册表接收到 SOME/IP Find Service。通过发送 SOME/IP SD 消息将本地更新的注册表传播到网络。
下图大致勾勒了这种方法。
二、分布式方法
另一种略有不同 —— 更加分布式的方法是在节点内的 ara::com 应用程序之间分布服务注册表信息可用性和位置信息。因此对于节点的本地通信用例不需要突出服务发现守护进程可以通过类似广播的通信技术实现。这意味着任何服务提供和查找都被传播到所有本地 ara::com 应用程序以便每个应用应用程序进程内都有服务注册表的本地视图。这种方法可能有好处因为本地通信可能更加灵活 / 稳定因为它不依赖于单个注册表守护进程。
然而网络服务发现的通信节点无论如何都需要一个单一的负责实例分布式方法不可行因为 SOME/IP SD 需要一组固定的端口而这只能由单个应用程序进程在典型的操作系统 / 具网络栈中提供。
最后我们也确实只有一个单例略有不同的是它负责充当节点本地发现协议和网络 SOME/IP SD 协议之间的服务发现协议桥梁。除此之外 —— 由于注册表在节点内的所有 ara::com 应用程序之间被复制 —— 这个桥梁也持有一个本地注册表。