OCPP_1.6_JSON_Specification 中文

更新时间:2024-05-02 04:04:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

Open Charge Point Protocol JSON 1.6,

OCPP-J 1.6 Specification

1

目录

1.

简介 .......................................................................................................................................... 4 1.1. 1.2. 1.3. 1.4. 1.5. 1.6. 2. 3.

本文件的目的 ............................................................................................................... 4 目标观众....................................................................................................................... 4 OCPP-S and OCPP-J ........................................................................................................ 4 协议 .............................................................................................................................. 4 定义及缩写................................................................................................................... 5 文献 .............................................................................................................................. 6

效益与问题 .............................................................................................................................. 7 连接 .......................................................................................................................................... 7 3.1.

客户端请求................................................................................................................... 7 3.1.1. 3.1.2. 3.1.3. 3.2. 3.3.

连接URL ........................................................................................................... 7 OCPP 版本 ........................................................................................................ 8 一个开放的HTTP请求的例子 ........................................................................ 9

服务器响应................................................................................................................... 9 更多信息..................................................................................................................... 10

4. RPC框架 ..................................................................................................................................... 10

4.1. 介绍 ............................................................................................................................ 10

4.1.1. Synchronicity 同步性 ........................................................................................ 11 4.1.2. 字符编码 ............................................................................................................. 11 4.1.3.消息类型 ............................................................................................................ 11 4.2. 用于不同消息类型的消息结构 ..................................................................................... 12

4.2.1. CALL ....................................................................................................................... 12 4.2.2. CallResult ............................................................................................................ 13 4.2.3. CallError ................................................................................................................ 14

5. 连接 ........................................................................................................................................ 17

5.1. 压缩 .............................................................................................................................. 17 5.2. 数据的完整性 ................................................................................................................ 17 5.3. WebSocket Ping与OCPP的Heartbeat ....................................................................... 17

2

5.4. 重新连接 ...................................................................................................................... 18 5.5. 网络节点的层次结构 ................................................................................................... 18 6. 安全 ........................................................................................................................................... 18

6.1. Network-level security 网络级安全 ............................................................................ 18 6.2. OCPP-J over TLS ............................................................................................................. 18

6.2.1. 加密 ................................................................................................................... 19 6.2.2. 充电点认证 ......................................................................................................... 19 6.2.3. 它的安全性和不安全性 ...................................................................................... 23 6.2.4. 适用于OCPP-S ..................................................................................................... 23

7. 配置 ........................................................................................................................................... 24

3

1. 简介

1.1. 本文件的目的

本文档的目的是向读者提供创建正确信息所需的信息。

JSON实现互操作的开放充电协议(OCPP-J)。我们将试图解释什么是强制性的,什么是好的做法和不应该做的,根据我们自己的经验。毫无疑问误解或含糊不清仍然存在,但通过本文件,我们的目的是尽可能防止他们。

1.2. 目标观众

本文件的目的是为开发人员希望了解一个和/或实现OCPP JSON正确互操作方式。在服务器上实现Web服务的基本知识假定嵌入式设备。

1.3. OCPP-S and OCPP-J

随着介绍OCPP 1.6,有两种不同味道的OCPP下基于SOAP协议实现,有可能使用更紧凑的JSON替代方案。为了避免混乱,在通信的类型实现我们建议使用不同的后缀j和s表示JSON或SOAP。一般来说, OCPP-J表示JSON和OCPP-S来表示SOAP。特定版本的术语将OCPP1.6J或OCPP1.2S。如果没有后缀规定是OCPP1.2或1.5,那么必须实现SOAP。从版本1.6来看,这不再是隐式的并应该永远清楚。如果一个系统同时支持JSON和SOAP变量,则此版本则被认为是好的标签OCPP1.6JS而不是OCPP1.6。

本文档介绍了OCPP-J,如果想了解OCPP-S请查看文档:[ OCPP_IMP_S ]

1.4. 协议

本文件中的“必须”、“不得”、“必要”、“应当”、“不应该” “建议”、“可能”和“可选” 等关键词应将被解释如在[ RFC2119 ]所描述的一样。

4

1.5. 定义及缩写

IANA 因特网编号管理局 (www.iana.org) OCPP-J OCPP在使用JSON的Web Socket通信。 具体的OCPP版本上应注明J延伸。ocpp1.5j意味着我们正在谈论1.5的JSON / WebSocket实现。 OCPP-S OCPP communication over SOAP and HTTP(S). As of version 1.6 this should explicitly mentioned. Older versions are assumed to be S unless clearly specified otherwise, e.g. OCPP1.5 is the same as OCPP1.5S OCPP通信在SOAP和HTTP(S)。由于版本1.6中应该明确提到。除非清楚另有规定,旧版本假定为S,如ocpp1.5是和ocpp1.5s一样的 RPS WAMP 远程过程调用 服务器是一个开放的WebSocket协议来提供消息传递模式来处理异步数据。

5

1.6. 文献

[JSON] [OCPP_IMP_S] [RFC2119] http://www.json.org/ OCPP SOAP implementation specification “Key words for use in RFCs to Indicate Requirement Levels”. S. Bradner. March 1997. http://www.ietf.org/RFC/RFC2119.txt [RFC2616] “Hypertext Transfer Protocol?—?HTTP/1.1”. http://tools.ietf.org/html/RFC2616 [RFC2617] “HTTP Authentication: Basic and Digest Access Authentication”. http://tools.ietf.org/html/RFC2617 [RFC3629] “UTF-8, a transformation format of ISO 10646”. http://tools.ietf.org/html/RFC3629 [RFC3986] “Uniform Resource Identifier (URI): Generic Syntax”. http://tools.ietf.org/html/RFC3986 [RFC5246] “The Transport Layer Security (TLS) Protocol; Version1.2”. http://tools.ietf.org/html/RFC5246 [RFC6455] “The WebSocket Protocol”. http://tools.ietf.org/html/RFC6455 [WAMP] [WIKIWS] [WS]

6

http://wamp.ws/ http://en.wikipedia.org/wiki/WebSocket http://www.websocket.org/ 2. 效益与问题

Web Socket协议在【RFC6455】里有定义。早期的草案工作实现Web-Socket规范的存在,但OCPP-J实现使用在 [ RFC6455]描述的协议。

注意,WebSocket TCP之上的定义自己的消息结构。在TCP级别,通过WebSocket发送的数据,被包裹在一个WebSocket帧头。使用框架时,这是完全透明的。然而对于一个嵌入式系统工作时, WebSocket图书馆不可用并且她/他必须依据[RFC6455] 正确地框架信息。

3. 连接

用OCPP-J连接一个充电点和一个中央系统,中央系统扮演一个WebSocket服务器,充电点扮演WebSocket客户端。

3.1. 客户端请求

建立一个连接,充电点启动一个WebSocket连接如在[ RFC6455 ] 第4节“所描述的:开场握手”。

OCPP-J在URL和WebSocket子协议施加额外的约束,在下面的4.1.1和4.1.2这两个部分会详细介绍。

3.1.1. 连接URL

为了启动一个WebSocket连接,充电点需要一个URL([ RFC3986 ])连接。这个URL从此被称为“连接URL”。这个连接URL是特定于充电点的。充电点的连接URL包含充电点身份使中枢系统知道充电点属于哪一个WebSocket连接。

支持OCPP-J的中央系统必须至少提供一个OCPP-J端点URL,从该点电荷应该得到它的URL连接。这OCPP-J端点URL可以是任何以“ws”或“wss”方案URL。充电点如何获得OCPP-J端点URL不是本文档的范围。

为了得到连接URL,充电点通过添加到路径“/”, 然后识别唯一地充电点串来修改OCPP-J端点URL(U + 002f固相线)。这种独特的标识字符串必须成编码如在 [RFC3986 ] 描述中一样有必要。

7

例1:身份为”CP001”的一个点电荷连接到一个中央系统OCPP-J端点URL”ws://centralsystem.example.com/ocpp”这会给出下面的连接URL: ws://centralsystem.example.com/ocpp/CP001

例2:身份为“RDAM123”的一个点电荷连接到一个中央系统OCPP-J端点URL wss://centralsystem.example.com/ocppj”这将给以下网址: wss://centralsystem.example.com/ocppj/RDAM 123

3.1.2. OCPP 版本

精确的OCPP版必须在SEC- WebSocket协议字段指定。这应该是下列值之一: 表1:OCPP版本 版本 1.2 1.5 1.6 2.0

对于OCPP1.2,1.5和2.0是官方WebSocket子协议名称的值。他们本身注册在因特网编号管理局。

注意:OCPP1.2和1.5在列表中。由于WebSocket解决方案中的JSON是独立的实际消息内容,所以也可用于旧版本OCP。请记住,在这些情况下,实现还应该保持对基于SOAP的解决方案的支持,以便互操作。

将OCPP版包含在OCPP-J端点URL字符串的一部分是很好的实践。如果你运行一个Web服务,可以在同一个OCPP-J端点URL处理多个OCPP版本,这是没有必要的课程。

8

Websocket 子协议名称 OCPP1.2 OCPP1.5 OCPP1.6 OCPP2.0

3.1.3. 一个开放的HTTP请求的例子

以下是一个OCPP-J连接握手的开放HTTP请求的例子: GET /webServices/ocpp/CP3211 HTTP/1.1

Host: some.server.com:33033 Upgrade: websocket Connection: Upgrade

Sec-WebSocket-Key: x3JJHMbDL1EzLkh9GBhXDw== Sec-WebSocket-Protocol: ocpp1.6, ocpp1.5 Sec-WebSocket-Version: 13

黑体部分是在每一个WebSocket握手请求时会出现,其他部分都是具体的例子。 在

OCPP-J

URL

\。充电点的唯一标识符”CP3211”,因此请求路径为\。

根据sec- WebSocket 协议报头,充电点在这里显示,它可以使用OCPP1.6J和OCPP1.5J,更偏向于前者。

在这个例子中,另一头是HTTP和WebSocket协议的一部分,与那些实施OCPP-J除第三方WebSocket库之外无关。这些标题的作用在[RFC2616] 和 [RFC6455]中有解释。

3.2. 服务器响应

在接收充电点的要求,中央系统与响应完成握手如在[RFC6455] 描述。 以下为OCPP-J-specific申请条件:

? 如果中央系统不能识别URL路径中的点电荷标识符,它应该发送状态404的HTTP响应

和中断WebSocket连接如在[ RFC6455 ]所描述。

? 如果中央系统不同意使用一个由客户提供的子协议,它必须与一个反应不一秒

WebSocket协议头,然后立即关闭WebSocket连接完整的WebSocket握手。

所以如果中央系统接受上述例子的要求并且同意使用充电点OCPP1.6J,中央系统的响应将如下所示:

9

HTTP/1.1 101 Switching Protocols Upgrade: websocket Connection: Upgrade

Sec-WebSocket-Accept: s3pPLMBiTxaQ9kYGzzhZRbK+xOo= Sec-WebSocket-Protocol: OCPP1.6

黑体部分是在每一个WebSocket握手响应中找到,其他部分都是具体的例子。 Sec-Web Socket-Accept的作用在[ RFC6455 ]中有解释。 SEC -WebSocket协议头指示服务器将在此连接使用OCPP1.6J。

3.3. 更多信息

对于那些做自己实现WebSocket握手的,[WS]和[ WIKIWS ]给更多关于WebSocket协议的信息。

4. RPC框架

4.1. 介绍

一个WebSocket是一个全双工连接,简单来说就是数据可以从管道中的进出,进出之间没有明确的关系。根据请求和响应,WebSocket协议本身没有提供任何方法与消息。对这些请求/响应关系,我们需要在顶部的WebSocket有个小协议。这个问题发生在WebSocket更多的案例,所以有现有的方案去解决它。使用最广泛的是WAMP(见[WAMP])。但随着现有的版本框架处理RPC不是WAMP兼容当前版本。由于所需的框架很简单我们决定定义自己的框架,受到WAMP的启发,删除了我们不需要的并加上了我们发现所丢失的。

基本上,我们需要的是非常简单的:我们需要发送一个消息(电话)和收到回复(callresult)或解释为什么信息不能妥善处理(callerror)。对于未来可能的兼容性我们将对这些消息进行编号同步服务器。我们实际的OCPP消息将被放入一个至少包含消息的类型的包装,一个独特的消息ID和有效载荷,该OCPP消息本身。

10

本文来源:https://www.bwwdw.com/article/4m4g.html

Top