OCPP-1.6-JSON-Specification-中文
本作品内容为OCPP-1.6-JSON-Specification-中文,格式为 doc ,大小 439848 KB ,页数为 24页
('OpenChargePointProtocolJSON1.6,OCPP-J1.6Specification1目录1.简介..........................................................................................................................................31.1.本文件的目的..............................................................................................................31.2.目标观众......................................................................................................................31.3.OCPP-SandOCPP-J.......................................................................................................31.4.协议..............................................................................................................................31.5.定义及缩写..................................................................................................................31.6.文献..............................................................................................................................42.效益与问题..............................................................................................................................53.连接..........................................................................................................................................63.1.客户端请求..................................................................................................................63.1.1.连接URL...........................................................................................................63.1.2.OCPP版本.........................................................................................................63.1.3.一个开放的HTTP请求的例子.........................................................................73.2.服务器响应..................................................................................................................73.3.更多信息......................................................................................................................84.RPC框架.......................................................................................................................................84.1.介绍.................................................................................................................................84.1.1.Synchronicity同步性.............................................................................................84.1.2.字符编码................................................................................................................94.1.3.消息类型..............................................................................................................94.2.用于不同消息类型的消息结构........................................................................................94.2.1.CALL.........................................................................................................................94.2.2.CallResult..............................................................................................................104.2.3.CallError................................................................................................................115.连接.........................................................................................................................................125.1.压缩................................................................................................................................125.2.数据的完整性.................................................................................................................135.3.WebSocketPing与OCPP的Heartbeat..........................................................................135.4.重新连接........................................................................................................................135.5.网络节点的层次结构.....................................................................................................136.安全............................................................................................................................................1326.1.Network-levelsecurity网络级安全................................................................................136.2.OCPP-JoverTLS...............................................................................................................146.2.1.加密.....................................................................................................................146.2.2.充电点认证..........................................................................................................146.2.3.它的安全性和不安全性.......................................................................................176.2.4.适用于OCPP-S......................................................................................................177.配置............................................................................................................................................1731.简介1.1.本文件的目的本文档的目的是向读者提供创建正确信息所需的信息。JSON实现互操作的开放充电协议(OCPP-J)。我们将试图解释什么是强制性的,什么是好的做法和不应该做的,根据我们自己的经验。毫无疑问误解或含糊不清仍然存在,但通过本文件,我们的目的是尽可能防止他们。1.2.目标观众本文件的目的是为开发人员希望了解一个和/或实现OCPPJSON正确互操作方式。在服务器上实现Web服务的基本知识假定嵌入式设备。1.3.OCPP-SandOCPP-J随着介绍OCPP1.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]所描述的一样。41.5.定义及缩写IANA因特网编号管理局(www.iana.org)OCPP-JOCPP在使用JSON的WebSocket通信。具体的OCPP版本上应注明J延伸。ocpp1.5j意味着我们正在谈论1.5的JSON/WebSocket实现。OCPP-SOCPPcommunicationoverSOAPandHTTP(S).Asofversion1.6thisshouldexplicitlymentioned.OlderversionsareassumedtobeSunlessclearlyspecifiedotherwise,e.g.OCPP1.5isthesameasOCPP1.5SOCPP通信在SOAP和HTTP(S)。由于版本1.6中应该明确提到。除非清楚另有规定,旧版本假定为S,如ocpp1.5是和ocpp1.5s一样的RPS远程过程调用WAMP服务器是一个开放的WebSocket协议来提供消息传递模式来处理异步数据。51.6.文献[JSON]http://www.json.org/[OCPP_IMP_S]OCPPSOAPimplementationspecification[RFC2119]“KeywordsforuseinRFCstoIndicateRequirementLevels”.S.Bradner.March1997.http://www.ietf.org/RFC/RFC2119.txt[RFC2616]“HypertextTransferProtocol—HTTP/1.1”.http://tools.ietf.org/html/RFC2616[RFC2617]“HTTPAuthentication:BasicandDigestAccessAuthentication”.http://tools.ietf.org/html/RFC2617[RFC3629]“UTF-8,atransformationformatofISO10646”.http://tools.ietf.org/html/RFC3629[RFC3986]“UniformResourceIdentifier(URI):GenericSyntax”.http://tools.ietf.org/html/RFC3986[RFC5246]“TheTransportLayerSecurity(TLS)Protocol;Version1.2”.http://tools.ietf.org/html/RFC5246[RFC6455]“TheWebSocketProtocol”.http://tools.ietf.org/html/RFC6455[WAMP]http://wamp.ws/[WIKIWS]http://en.wikipedia.org/wiki/WebSocket[WS]http://www.websocket.org/62.效益与问题WebSocket协议在【RFC6455】里有定义。早期的草案工作实现Web-Socket规范的存在,但OCPP-J实现使用在[RFC6455]描述的协议。注意,WebSocketTCP之上的定义自己的消息结构。在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-J7端点URL(U+002f固相线)。这种独特的标识字符串必须成编码如在[RFC3986]描述中一样有必要。例1:身份为”CP001”的一个点电荷连接到一个中央系统OCPP-J端点URL”ws://centralsystem.example.com/ocpp”这会给出下面的连接URL:ws://centralsystem.example.com/ocpp/CP001例2:身份为“RDAM123”的一个点电荷连接到一个中央系统OCPP-J端点URLwss://centralsystem.example.com/ocppj”这将给以下网址:wss://centralsystem.example.com/ocppj/RDAM%201233.1.2.OCPP版本精确的OCPP版必须在SEC-WebSocket协议字段指定。这应该是下列值之一:表1:OCPP版本版本Websocket子协议名称1.2OCPP1.21.5OCPP1.51.6OCPP1.62.0OCPP2.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版本,这是没有必要的课程。83.1.3.一个开放的HTTP请求的例子以下是一个OCPP-J连接握手的开放HTTP请求的例子:GET/webServices/ocpp/CP3211HTTP/1.1Host:some.server.com:33033Upgrade:websocketConnection:UpgradeSec-WebSocket-Key:x3JJHMbDL1EzLkh9GBhXDw==Sec-WebSocket-Protocol:ocpp1.6,ocpp1.5Sec-WebSocket-Version:13黑体部分是在每一个WebSocket握手请求时会出现,其他部分都是具体的例子。在这个例子中,中央系统的OCPP-J端点URL是"ws://some.server.com:33033/webServices/ocpp"。充电点的唯一标识符”CP3211”,因此请求路径为"webServices/ocpp/CP3211"。根据sec-WebSocket协议报头,充电点在这里显示,它可以使用OCPP1.6J和OCPP1.5J,更偏向于前者。在这个例子中,另一头是HTTP和WebSocket协议的一部分,与那些实施OCPP-J除第三方WebSocket库之外无关。这些标题的作用在[RFC2616]和[RFC6455]中有解释。3.2.服务器响应在接收充电点的要求,中央系统与响应完成握手如在[RFC6455]描述。以下为OCPP-J-specific申请条件:\uf06c如果中央系统不能识别URL路径中的点电荷标识符,它应该发送状态404的HTTP响应和中断WebSocket连接如在[RFC6455]所描述。\uf06c如果中央系统不同意使用一个由客户提供的子协议,它必须与一个反应不一秒WebSocket协议头,然后立即关闭WebSocket连接完整的WebSocket握手。所以如果中央系统接受上述例子的要求并且同意使用充电点OCPP1.6J,中央系统的响应将如下所示:HTTP/1.1101SwitchingProtocols9Upgrade:websocketConnection:UpgradeSec-WebSocket-Accept:s3pPLMBiTxaQ9kYGzzhZRbK+xOo=Sec-WebSocket-Protocol:OCPP1.6黑体部分是在每一个WebSocket握手响应中找到,其他部分都是具体的例子。Sec-WebSocket-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消息本身。104.1.1.Synchronicity同步性一个充电点或中央系统不应该向另一方发送呼叫信息,除非它之前发送的所有呼叫消息已被回复或超时。一个电话的消息已经回应了,当callerror或callresult消息已收到了调用消息的消息ID。当出现以下情况是会出现消息回复超时:\uf06c已经回复过\uf06c自发送消息以来,依赖于实现的超时间隔已经过去了。实现可以自由选择此超时间隔。建议他们考虑某种与另一方通信的网络。移动网络通常比固定线路有更长的最坏情况往返时间。注意:上述规定不排除当充电点或中心系统在等待一个callerror或callresult时,会接收对方呼叫的信息。这种情况很难预防,因为双方的通话信息总是相互交叉的。4.1.2.字符编码所有的信息包括包装和有效载荷的必须是有效的JSON与UTF-8编码(见[RFC3629])的字符编码。请注意,所有有效的US-ASCII文本也是有效的UTF-8,所以如果一个系统只发送US-ASCII文本,它发送的所有信息符合UTF-8的要求。一个充电点或中央系统应该只使用字符不是US-ASCII发送自然语言文本。这样的自然语言文本的一个例子是在OCPP2.0中localizedtext型文本。4.1.3.消息类型为了标识消息的类型,必须使用以下消息类型号之一。表2:消息类型11消息类型编号方向CALL2CLIENT-TO-SERVERCALLRESULT3SERVER-TO-CLIENTCALLERROR4SERVER-TO-CLIENT当服务器收到一个消息,该列表中没有消息类型号时,它将忽略消息有效负载。每个消息类型可能有额外的必填字段。4.1.4.ThemessageID消息ID消息ID用于标识请求。一个CALL消息ID必须不同于所有以前通过同一个websocket连接发送CALL消息的消息ID,消息ID为callresult或callerror消息必须等于响应该CALL消息的callresult或callerror消息。表3:特殊消息ID名称数据类型限制消息ID串最大为36字允许GUIDS4.2.用于不同消息类型的消息结构注意:在下面的段落中,您可能会发现充电点标识丢失。WebSocket连接握手过程中,标识被交换,也是一种连接的属性。每个消息都是由这个标识发送或指向的。因此,没有必要在每条消息中重复。4.2.1.CALLCALL总是包含4个要素:标准的元素message和uniqueID,另一方需要的具体ACTION,payload,Action的论据。调用的语法如下所示:[
提供OCPP-1.6-JSON-Specification-中文会员下载,编号:1700774061,格式为 docx,文件大小为24页,请使用软件:wps,office word 进行编辑,PPT模板中文字,图片,动画效果均可修改,PPT模板下载后图片无水印,更多精品PPT素材下载尽在某某PPT网。所有作品均是用户自行上传分享并拥有版权或使用权,仅供网友学习交流,未经上传用户书面授权,请勿作他用。若您的权利被侵害,请联系963098962@qq.com进行删除处理。