搞一下Adaptive Platform AUTOSAR(七)—— RESTful通信

参考文献:《AUTOSAR AP 标准》

AP和CP相关资料和工具咨询可关注微信公众号“搞一下汽车电子”

邮箱:[email protected]

手机/微信:18405011517


1.概览

两个通信堆栈(ara::com和ara::rest)都可以在自适应应用程序之间建立通信路径。ara::rest是在这样一个API之上构建RESTful API以及特定服务的框架。它不直接定义特定的API来构造RESTful服务。这个框架是模块化的,它使开发人员能够直接访问RESTful消息事务中涉及的不同层。相反,ara::com的重点是提供一个传统的函数调用接口,并隐藏事务的所有细节。

另一个重要区别是ara::rest确保了与非AUTOSAR对等机的互操作性。例如,ara::rest服务可以与移动HTTP/JSON客户机通信,反之亦然。


2.架构

ara::rest的体系结构基于模块化设计,它支持API级别的开发人员以及服务设计。下图说明了它的总体设计。它描述了如何在ara::rest中组成服务应用程序。

图1 ara::rest堆栈体系结构概述

ara::rest的通用REST层只提供三种基本抽象:树结构的消息有效负载(对象图)、URI和请求方法(如从http获取或发布已知信息)。从这些基本原语可以组成特定于域的RESTfulAPI,它定义了一个具体的高级协议,用于通过对象图、URI和方法进行交互。其目的是定义访问特定于域的数据模型的规则,并向应用程序提供抽象的(C++)API。当不需要进一步抽象时,自适应应用程序也可以直接使用ara::rest,而不是使用这个域API。


3.组件

ara::rest由以下组件组成。

图2 ara::rest组件

对象图是一种协议绑定独立的树形数据结构,它是所有ara::rest通信的基础。它的目的是映射到协议格式(如JSON)和C结构。这最大限度地提高了与非ARA通信对等机和经典AUTOSAR的兼容性。对象图以完全从具体的底层协议绑定抽象出来的消息形式传输。

但是,如果需要,它们仍然允许用户访问协议特定的详细信息。

消息在ara::rest的异步编程模型中封装了请求/应答通信周期的整个上下文。

路由概念提供了将请求(包括请求方法和URI)映射到用户定义的处理程序函数的方法。路由是将抽象从通用REST提升到特定类型的RESTful API的基础。

URI是一种通用的、符合RFC但非常有效的URI表示。

REST为服务器和客户机通信提供了所谓的(网络)端点,两者都提供了相当程度的资源控制。这两种设计都旨在在单核和多核系统上提供快速和高效的通信能力。

整个框架设计都严格地面向最大限度的资源控制。所有计算和分配都可以严格控制,并根据应用程序(部署)的精确需求进行定制。

 

原创文章 32 获赞 107 访问量 7551

猜你喜欢

转载自blog.csdn.net/DJAction/article/details/103527655