背景
当前全球范围内产业变革和数字化转型蓬勃兴起,工业互联网作为新一代信息技术与制造业深度融合的产物,日益成为新工业革命的关键支撑和深化“互联网+先进制造业”的重要基石,越来越多的工业企业希望以工业互联网为抓手提高生产效率,良率,以及实现生产管理智能化。各行各业的头部企业在工业互联网关键技术(如边缘计算,低时延技术,网络和业务安全保障能力)的研究和应用上已取得了一些成果,并且相关成果已成为相关技术演进与产业发展的风向标,例如工业现场总线,工业光网,无源ONU,光交换,5G/网络切片技术等。通过对大量头部和中小企业典型的应用案例研究,要实现工业领域的自动化控制场景,就要实现生产要素之间的数据采集和传输,传输信息间的数据理解整理归纳,实现工业互联网相关的人机料法环甚至企业上下游,智能产品,用户等全要素,全产业链的生产自动化和管理信息化和知识决策,实现IT/OT完全融合。要打通生产层到应用层的各个环节,就要着眼端到端整个链条上的所有层级的技术需求,就要考虑工业内网网络架构中新增终端对带宽,容量,时延等的高要求;存量多样化非IP化终端通过协议转换IP化的需求;高效有序地实时数据采集的需求,并按照统一的数据标准把数据汇集到数据中心,并把数据接口传输给企业信息网络的上层实体。也要考虑小微企业相对于头部企业资金不够充裕,开发人员不足和素质水平普遍不高(对于高水平人员吸引力不足)的现状,在提供端到端全技术“预制菜”的同时,满足其易运维,易开发定制的需求。基于国内外技术和行业背景,聚焦激光装备智能机械设备和柔性系统FMS行业板块,工业级边缘云操作系统xEOS应运而生。xEOS作为驱动未来发展的“软件定义”创新应用生态,期望能为激光行业迎来数字化转型场景的爆发式增长。
介绍
1.1 什么是xEOS
xEOS(Edge Operating System, Empower OS, Empower Openlaser System)是基于开源Linux定制,面向工业控制和信息化领域,集成运动控制核心技术,低代码编程技术,虚拟化容器技术,管理科学技术等,管理工业控制硬件与企业资源的计算机程序。 xEOS定位是希望成为“光电子自动化交叉融合的工业Android系统”。
1.2 xEOS为谁服务
xEOS操作系统基于客户需求为导向,当前主要解决:
- 自动化/光机电设备制造商
在数控机床、工业机器人、注塑机械、纺织机械和印刷机械自动化设备制造过程中面临的技术供应商平台不统一,自研核心技术投入高风险大,竞品同质化严重;市场响应慢;云鍴联网程度低;数据处于孤立状态等问题。
- 自动化/光机电方案提供商
在提供数控加工生产线、自动供料、装配、检测、包装等自动化方案过程中,缺少产品核心技术,方案需要大量外置设备实现扩展功能,集成度较低;云鍴联网程度低;市场响应速度慢;定制开发成本高;方案产品同质化等问题。
- 自动化/光机电的下游装备机械、汽车、电子、注塑、纺织、航空船舶等行业专家智库(高校等)
专有经验丰富,但缺少实现平台,合作推广渠道,缺乏市场信息,没有科研和成果转化的有效载体等问题。
- 制造装备产线及设备的最终用户
在生产单元设备控制,精准动态作业,设备预测维护,工艺维护;检测监测;生产过程溯源,生产能效管控等有需求但缺少IT/OT融合团队,IT资源有限,定制需求较多,快速交付存在困难等问题。
1.3 为什么使用xEOS
xEOS帮助用户实现技术跨越,提升装备竞争力。在不同行业获得的创新模式,将由于xEOS的平台化特征而可在不同行业得以快速复制,行业创新将会大大加速。xEOS作为工业级的开源操作系统,基于开放的物联网开发技术,通过边侧部署,支持多源异构,多种协议的数据接入(MQTT、HTTP/HTTPS、WebSocket、OPC/OPC UA 等),支持大规模数据的获取,存储,处理,将制造业的数字化建设转变成高效接入的公共能力,并通过边缘计算,为生产端侧就近提供智能化服务,提升企业的生产效率;基于敏捷微服务体系和开放软件架构,实现了自动化控制系统和信息化服务系统的整合,用户可选择使用多种IT编程语言,单独缩放应用程序的关键功能,动态调整服务能力,可灵活的接管从简单抓取到高性能运动控制的所有任务;基于从可靠,高吞吐量,低延迟处理和动态可扩展性开始设计,充分利用Docker容器技术,可以有效扩展,支持大型IOT项目所需要的负载;微服务通过使用明确定义的API框架方法构建,可随着物联网生态系统的发展,与人工智能、数字孪生、云计算、AR、VR等各类新一代信息通信技术有机集成,创新各种新模式,新生态,新场景,打通IT和OT,帮助企业解决数字化转型过程中的难点,痛点和堵点,实现提质、降本、增效、绿色、安全发展。
xEOS架构
xEOS是工业4.0时代现代化设备的边缘大脑,它以一种简单方式,将过去独立的世界接入持续开放的模块化系统:机器控制、信息技术(IT)和物联网(IoT)。xEOS是由Linux server及虚拟化技术底座,xStudio边缘自动化平台和xSuite边缘数据应用套件三部分构成的完整的工业级边缘操作系统。

2.1 系统环境
2.1.1 操作系统
2.1.1.1 实时操作系统当外界事件或数据产生时,能够接受并以足够快的速度予以处理,其处理的结果又能在规定的时间之内来控制生产过程或对处理系统作出快速响应,并控制所有实时任务协调一致运行,具有及时响应和高可靠性。2.1.1.2 分时操作系统把计算机与许多终端用户连接起来,分时操作系统将系统处理机时间与内存空间按一定的时间间隔,轮流的切换给各终端用户的程序使用。由于时间间隔很短,每个用户的感觉就像他独占计算机一样。
2.1.2 应用容器引擎
让开发者可以打包他们的应用及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux 或 Windows 操作系统的机器上,实现虚拟化。Docker就是一个轻量级容器技术;Docker支持将软件编译成一个镜像;然后在镜像中各种软件做好配置,将镜像发布出去,其他使用者可以直接使用这个镜像;运行中的这个镜像称为容器,容器启动是非常快速的。

2.1.3 ECAT/UPON标准
工业互联网业务发展使工厂内网络呈现出融合、开放、灵活的发展趋势。大数据分析、边缘计算业务以及随时加入的新增节点设备都要求现场级实时数据的采集和各层级间通信更加高效稳定。由API推出的
ECAT+UPON=工业以太网(EtherCAT)+工业光网络(Universal PON)的标准化模型将顺应时代需求,成为未来工业互联网的基础架构。ECAT/UPON标准建立在物理层、数据链路层上并贯穿网络层和传输层。在实现网络结构的扁平化的同时,使网络更加开放管理更加友好,其可靠性和安全性也将大幅提高。EtherCAT总线协议是当下最具特色的开放总线标准。其具有硬件的成本低、兼容协议丰富、全覆盖拓扑结构、周期时间短等特点为众多制造企业所接受。
Universal PON所代表的工业光网络具高带宽、低延时、易运维、抗干扰的特性将会重新定义工厂级设备间,设备和上位机乃至云端设备的物理基础架构。

2.2 自动化平台xStudio
xStudio是按照IEC61131-3标准及IEC61499标准开发的开放式分布式自动化控制系统编程开发平台。该开发系统将控制器应用的经典编程和工业4.0/IOT环境中的专业的自动化软件开发功能相结合,让用户使用xStudio自动化平台可以轻松实现逻辑控制、运动控制、通讯等功能。

2.2.1 xStudio IDE 套件
xStudio IDE套件负责完成xPLC程序的开发与下载、EtherCAT从站等信息的配置映射,其具体包含了xPLC和xConfig两个组件。2.2.1.1 xPLCxPLC是符合IEC61131-3标准的PLC编辑器,是xStudio自动化平台的核心组件。xPLC允许创建不同周期的task,并支持在每个task上依附不定量的程序。程序可以使用以下一种或者多种的语言进行开发:
- IL(指令表)
- LD(梯形图)
- FBD(功能块图)
- SFC(顺序功能图)
- ST(结构化文本)
此外,xPLC中还包含了丰富的故障查找功能,使得不管是现场还是通过远程维护解决问题变得非常容易。具体调试功能如下:
2.2.1.2 xConfigxConfig是XStudio重要组件,负责将xPLC的项目导入并将其中的引脚和轴变量与EtherCAT从站引脚连接。具体内容如下:
- IO配置:支持EtherCAT协议的从站自动扫描和手动添加,配置通信协议细节,配置引脚数目等。
- PLC配置:导入编译完成的xPLC项目,在这里分配引脚变量对应的实际硬件引脚,分配NC轴,CNC轴对应的驱动器,二次配置任务周期等。
- NCI配置:支持NC轴功能的参数配置,分配从xPLC项目中获得的轴变量和通道变量到实际的NC可用资源中去。
- CNC配置:支持CNC轴功能的参数配置,分配从xPLC项目中获得的轴变量和通道变量到实际的CNC可用资源中去。
2.2.2 xPLC 运行时系统
PLC运行时系统是采用RT-Linux实时操作系统,能够提供稳定可靠的确定性实时功能,丰富的任务配置,超大变量池,复杂的逻辑运算,功能强大地标准库,便捷的硬件配置及映射。并且支持多PLC、多任务、多周期功能,最短周期可支持125us。
2.2.3 运动控制内核
运动控制内核作为运动控制的核心,包含了一系列单轴、多轴的高精度控制功能,与实际工业场景高度契合,包含了xNCI、xCNC以及xRNC三个部分。2.2.3.1 xNCIxNCI是一款基于IEC61131-3 PLCopen标准开发的运动控制内核,包含基本的PTP位置控制、高速耦合跟随、多轴插补拐角光滑等众多运动控制接口,可以应用于各种自动化场景,实现了高速度、高精度、高流畅性控制。具体功能如下:
- 集成了各种基础的PTP运动模块,如相对运动、绝对运动、叠加运动、点动等运动模块
- 集成了多种多轴联动控制运动模块,如电子齿轮、电子凸轮、飞剪等,在标准跟随功能外,添加了脉冲跟随功能,可以实现高精度主从轴耦合,完美应对各种复杂应用需求
- 在标准功能块之外,集成了随动控制、蛙跳控制、无感穿孔、自动标定、实时标定、智能避障等激光加工行业专用运动控制模块
2.2.3.2 xCNCxCNC是一款基于IEC61131-3 PLCopen标准开发的CNC数控系统内核。其中涵盖了全部的常用的CNC轨迹控制功能,包括用于复杂运动控制和运行学要求的高端系统。具体功能如下:
- 支持3轴插补9轴联动控制,能实现高速度、高精度加工
- 支持断点、回退加工
- 丰富地运动学模块,如直角坐标系、五轴三维、龙门、RTCP等
- 直线插补、圆弧插补、样条插补
- 支持G代码、M代码、子程序
- 代码预读及速度前瞻规划预处理、距离前瞻多小线段时加速过程连续
- 拐角平滑处理及多种滤波器功能适应于各种高低档机床
- 反向间隙补偿、刀具补偿等
2.2.3.3 xRNCxRNC是在xCNC的基础上,提供了SCARA、DELTA、六轴串联等机器人运动学、动力学模型。
2.2.4 通讯协议
为了支持更多应用场景,xStudio支持了多种工业常用的标准通讯协议,其中包含了实时现场总线EtherCAT协议,OPCUA、Modbus-TCP、SSH、FTP等协议。EtherCAT协议负责将IO模块、伺服驱动器和其他总线设备连接到内核层中。协议保证了内核层的程序控制命令的准确执行,以及周期性地将设备的信号反馈出来。EtherCAT还具有灵活的配置特性,从站的拓展与精简都十分简单。用户还可以通过OPCUA、Modbus-TCP、SSH、FTP等协议实现跨平台传输,完成复杂的数据交换。这些协议独立于制作厂商,是开发式的标准的协议,在工业控制系统中的应用广泛,有着很好的拓展性。除此之外,一些协议的服务端还集成了安全机制,用于鉴定和数据加密,系统能够保护网络中两个节点之间的数据通讯安全。
2.2.5 图形化编程xBlock
使用卡合的图形块来表示代码概念,如变量,逻辑表达式,循环等。用户可以不必关注语法细节就能直接按照编程原则进行编程。设计人员可以不用编写或只需编写很少的程序代码,就可以轻松执行所需要的应用程序,使得物联网程序的开发及设计更加快速简易。


2.3 边缘应用套件xSuite
2.3.1 边缘物联代理
基于“硬件虚拟化,业务APP化”的设计理念,初次安装到现场的设备预装xEOS和边缘代理守护进程,利用设备本地通信接口对各类传感器、PLC、终端等设备接入并统一管理,通过xEOS边缘代理应用轻松对其数据提取、汇聚及转发或存储,利用其xEOS可将数据可视化呈现至Web端。同时可扩展至app和桌面应用,支持Bootstrap、jQuery、Vue.js等前端框架,从而可开发绚丽丰富的UI界面。

2.3.2 数据库管理系统
xEOS数据库应用为系统提供设备元数据管理,生产过程数据管理等。xEOS采用时序数据库和关系数据库管理系统,集成各种异构通讯协议的数据源,形成统一的数据库访问接口。完成对时序数据的存储和计算,支持时序数据读写操作和历史数据的高效查询,提供流式计算、实时分析处理等功能。
2.3.3 生产管理系统
针对制造型企业的生产运营与生产管理而服务,生产管理系统主要包括订单管理、生产计划管理、成本管理、物料需求计划、采购管理、库存管理、质量管理等核心管理系统,能够提高各组织部分管理的准确性和及时性,准确地指导原材料定购,及时掌控各方数据信息,优化资金的合理使用,节省生产成本的同时提高生产的效率。

2.3.4 事件驱动编程 xNode
xNode是一种基于流的编程工具,它有一个可视化编辑器,允许将节点连接在一起创建流,使用者只需将节点拖曳到流程编辑器内,并将这些不同功能的节点加以设定及组合后,就可以轻松执行所需要的应用程序,使得物联网程序的开发及设计更加快速简易。xNode可通过MQTT,OPC UA节点轻松采集工业PLC,SCADA,MES系统的数据,并利用其Dashboard等模块,可将数据可视化呈现至Web端。同时可扩展Bootstrap、jQuery、Vue.js等前端框架,从而可开发绚丽丰富的UI界面。

2.4 应用生态xSmart
2.4.1 移动xAPP(安卓或IOS)
基于工业物联网的远程监控以及控制系统,可以给设备带来更多的经济效益。通过移动app可以远程对设备进行监控管理以及控制,通过设备报警进行实时报警,可大大提高了设备运行的安全性,减少设备不必要的损失。用户可以通过在移动端观看设备实时运行状态和历史数据,可及时排除故障,提高维修的效率。



2.4.2 基于Web应用
xEOS集成了丰富的H5应用,H5是下一代 HTML 标准。Web应用以网页的形式存在,由完成特定任务的各种Web组件构成并通过Web将服务展示给外界,用户只需要有浏览器即可,不需要再安装其他软件,Web应用程序只需要在服务器上安装一次,就可以通过网络给所有客户端共享,以后要修改Web应用程序,只需要修改服务器上Web应用程序,则所有的客户端自动进行更新。
2.4.3 组态xHMI应用
xEOS支持传统的HMI和普通桌面应用,采用图形方式显示的计算机操作用户界面。图形用户界面是一种人与计算机通信的界面显示格式,允许用户使用鼠标等输入设备操纵屏幕上的图标或菜单选项,以选择命令、调用文件、启动程序或执行其它一些日常任务。相对于Web应用程序而言的,主要区别在于应用程序自身与它的用户界面之间的相对位置不同。
2.4.4 开发工具xInventor
xInventor是一款Android编程工具软件,采用浏览器+云服务模式,通过图形化积木式的拖放组件来完成Apps开发,已经预先设置好了不同类型的组件模块,如电机类、传感器类,甚者机器人组件。所有开发代码储存在云端服务器上,方便开发者在任何一台机器上进行开发,并且保证了源代码的一致性和安全性,并且提供了强大的调试功能,调试中代码的变更会自动同步到进行调试的手机或者模拟器中,无需重装应用。


开放平台
3.1 应用授权
授权获取code
- 访问地址:http://HOST:PORT/auth/authorize?client_id=client_id&redirect_uri=redirect_uri
client_id:网站地址redirect_uri:和client_id同源的回调地址client_id和redirect_uri需要 encode 编码转换,如:
"http://host/auth/authorize?client_id=" + encodeURIComponent(client_id) + "&redirect_uri=" + encodeURIComponent(redirect_uri);
授权登录后页面会跳转到redirect_uri并在地址栏附带code
通过code换取token
- 请求地址:http://host/auth/token
- 请求方法:POST
- 请求头:Content-Type:application/x-www-form-urlencoded
- 参数:
字段 | 类型 | 必填 | 说明 |
grant_type | String | true | 固定传值authorization_code |
code | String | true | 上一步获取到的code |
client_id | String | true | 网站地址 |
3.2 数据订阅
3.2.1 OPC/UA订阅
激光加工设备主要订阅信息包括:IO状态,设备状态,报警信息等。
- endpoint:opc.tcp://IP:PORT/abc
- Action: subscribe
- Interval:为客户端接收订阅数据的时间间隔
- Item (NodeId) :订阅的OPC UA地址,例如ns=2;i=4 或 ns=3;s=MyVariable
订阅数据示例:
- IO状态:
ioSignal | Axis | double[] |
AxisDes | string[] |
AI | double[] |
AIDes | string[] |
AO | double[] |
AODes | string[] |
Pwm | double[] |
PwmDes | string[] |
DI | double[] |
DIDes | string[] |
DO | double[] |
DODes | string[] |
- 设备状态信息:
deviceStatus | dCoordinateX | X坐标 | double |
dCoordinateY | Y坐标 | double |
dCoordinateZ | Z坐标 | double |
dWeldingPower | 焊接功率 | double |
dWeldingSpeed | 焊接速度 | double |
bEnableState | 使能状态 | bool |
bShutterState | 光闸状态 | bool |
bRedLightState | 红光状态 | bool |
bSpottingState | 点射状态 | bool |
bAirKnifeState | 气刀状态 | bool |
bLaserResetState | 激光复位状态 | bool |
bCoaxialProtectionState | 同轴保护气状态 | bool |
bStepState | 步进状态 | bool |
dStepValue | 步进值 | double |
nSystemStatus | 界面状态,2:运行状态,,3:急停,4:准备状态,5:暂停状态, | int |
bAllAxisHomed | 回零状态 | bool |
bFastSpeed | 快速 | bool |
dSpeedRate | 速度倍率 | double |
- 报警信息:
alarmInfo | ID | 报警ID | int |
TimeStamp | 时间 | string |
3.2.2 MQTT主题订阅
- mqtt服务地址:ws://xxx
- mqtt配置项:options:{ clientId, username, password, reconnectPeriod, ... }
- clientId:服务端使用 ClientId 识别客户端。连接服务端的每个客户端都有唯一的 ClientId 。客户端和服务端都必须使用 ClientId 识别两者之间的 MQTT 会话相关的状态。ClientId 必须存在,但是服务端可以允许客户端提供一个零字节的 ClientId,如果这样做了,服务端必须将这看作特殊情况并分配唯一的 ClientId 给那个客户端。然后正常处理这个 CONNECT 报文。
- username/password:MQTT 可以通过发送用户名和密码来进行相关的认证和授权,但是,如果此信息未加密,则用户名和密码是以明文的方式发送的
- reconnectPeriod:重连时间间隔
- 连接服务:mqtt.connect()
- 订阅主题:mqtt.client#subscribe()
示例
import mqtt from 'mqtt'
var options = {
clientId: '',
username: 'xxxxx',
password: 'xxxx',
reconnectPeriod: 30*1000,
}
var client = mqtt.connect('ws://xxxxx', options)
client.on('connect', ()=>{
client.subscribe("主题地址", { qos:0 })
}).on('message', (topic, message)=>{})
3.3 资源读取
Restful GET
基于Rest理念的一套开发风格,以URL方式进行资源的传递,作为用户交互的入口。例如获取用户数据:http://localhost:8080/user/${userId}user为获取用户数据的接口方法,userId为用户的id。
3.4 远程控制
3.4.1 MQTT发布消息
topic:发布消息的主题data:发布的数据
client.publish(topic, data)
3.4.2 POST发布资源
url: 请求地址data: 请求荷载请求头:Content-Type: application/json; 示例:
$.ajax({
url: 'xxxx',
type: 'POST',
data: data,
contentType: 'application/json; charset=utf-8',
})
.done(function (data, textStatus, xhr) {
})
.fail(function (xhr, textStatus, err) {
})
3.4.3 JSON-RPC接口
jsonrpc: 指定JSON-RPC的版本,必须设置为2.0,id:调用标识符,用于标示一次远程调用过程,值必须包含一个字符串、数值。method: 所要调用方法名称的字符串params::方法传入的参数,若无参数则传入空[]示例:
{
"jsonrpc": "2.0",
"method": "call",
"id": 563297835,
"params": {
"model": "sale.order",
"method": "web_search_read",
"args": [
[["state","=","draft"]],
["name"]
],
"kwargs": {
"limit": 1,
"offset": 0,
"context": {
"lang": "zh_CN",
"tz": "Asia/Shanghai"
}
}
}
}
3.5 相关协议
3.5.1 MQTT
MQTT(Message Queuing Telemetry Transport,消息队列遥测传输)协议是即时通信协议,是物联网的重要组成部分。MQTT协议是为大量计算能力有限,且工作在低带宽、不可靠的网络的远程传感器和控制设备通讯而设计的协议,它具有以下主要的几项特性:
- 使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合;
- 对负载内容屏蔽的消息传输;
- 使用 TCP/IP 提供网络连接;
- 小型传输,开销很小(固定长度的头部是 2 字节),协议交换最小化,以降低网络流量;
- 使用 Last Will 和 Testament 特性通知有关各方客户端异常中断的机制;
- 有三种消息发布服务质量:
- “至多一次”,消息至多发送一次。
- “至少一次”,确保消息到达,但消息重复可能会发生。
- “只有一次”,确保消息到达一次。
3.5.2 OPC/UA
OPC UA(OPC Unified Architecture)是指OPC统一体系架构,是一种基于服务的、跨越平台的解决方案。OPC UA具有如下特点:
- 扩展了OPC的应用平台。传统的基于COM/DCOM 的OPC技术只能基于Windows操作系统,OPC UA支持拓展到Linux和Unix平台。这使得基于OPC UA的标准产品可以更好地实现工厂级的数据采集和管理;
- OPC UA定义了统一数据和服务模型,使数据组织更为灵活,可以实现报警与事件、数据存取、历史数据存取、控制命令、复杂数据的交互通信;
- OPC UA传递的数据是可以加密的,并对通信连接和数据本身都可以实现安全控制。新的安全模型保证了数据从原始设备到MES,ERP系统,从本地到远程的各级自动化和信息化系统的可靠传递;
- OPC UA可以穿越防火墙,实现Internet 通讯。
OPC UA是一种应用层协议,基于tcp之上,其url通常为opc.tcp://127.0.0.1:4840/abc,在opcua中常被称为endpoint。opcua支持c/s模式,同时也支持类似mqtt的发布订阅模式,通常各种设备作为opcua的服务端提供各种服务。opcua采用面向对象的设计思路, 使用了对象(objects)作为过程系统表示数据和活动的基础。对象包含了变量,事件和方法,它们通过引用(reference)来互相连接。
3.5.3 WebSocket
WebSocket协议是基于TCP的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信,即允许服务器主动发送信息给客户端。因此,在WebSocket中,浏览器和服务器只需要完成一次握手,两者之间就直接可以创建持久性的连接,并进行双向数据传输,客户端和服务器之间的数据交换变得更加简单。很多网站为了实现推送技术,所用的技术都是Ajax轮询。轮询是在特定的时间间隔(如每1秒),由浏览器对服务器发出HTTP请求,然后由服务器返回最新的数据给客户端的浏览器。这种传统的模式带来很明显的缺点,即浏览器需要不断的向服务器发出请求。然而HTTP请求可能包含较长的头部,其中真正有效的数据可能只是很小的一部分,显然这样会浪费很多的带宽等资源。HTML5定义的WebSocket协议优势如下:
- 小Header:互相沟通的Header非常小,只有2Bytes左右。
- 服务器不再被动接收到浏览器的请求之后才返回数据,而是在有新数据时就主动推送给浏览器。
- WebSocket协议能更好的节省服务器资源和带宽,并且能够更实时地进行通讯。
3.5.4 Restful-API
RESTful API是利用HTTP请求访问或使用数据的应用程序接口(API)的体系结构样式。这些数据可用于GET,PUT,POST和DELETE数据类型,这些数据类型指的是与资源相关的操作读取、更新、创建和删除。网站的API是允许两个软件程序相互通信的代码。API详细说明了开发人员编写从操作系统或其他应用程序请求服务程序的正确方法。RESTful API(也称为RESTful Web服务或REST API)基于表示性状态转移(REST),它是Web服务开发中经常使用的一种体系结构样式和通信方式。REST技术通常优于其他类似技术。这是因为REST使用较少的带宽,使其更适合高效的互联网使用。RESTful API也可以用JavaScript或Python之类的编程语言来构建。浏览器使用的REST可以被视为互联网语言。随着云使用量的兴起,云消费者正在使用API公开和组织对Web服务的访问。REST是构建API的逻辑选择,它允许用户在分布式环境中灵活地连接、管理和交互云服务。
3.5.5 JSON-RPC
JSON-RPC,是一个无状态且轻量级的远程过程调用(RPC)传送协议,其传递内容透过 JSON 为主。相较于一般的 REST 透过网址(如 GET /user)调用远程服务器,JSON-RPC 直接在内容中定义了欲调用的函数名称(如 {"method": "getUser"}),这也令开发者不会陷于该使用 PUT 或者 PATCH 的问题之中。 本规范主要定义了一些数据结构及其相关的处理规则。它允许运行在基于 Socket、HTTP 等诸多不同消息传输环境的同一进程中。其使用 JSON(RFC 4627)作为数据格式。
3.5.6 XML-RPC
xml rpc是使用http协议做为传输协议的rpc机制,使用xml文本的方式传输命令和数据。一个rpc系统,必然包括2个部分:1.rpc client,用来向rpc server调用方法,并接收方法的返回数据;2.rpc server,用于响应rpc client的请求,执行方法,并回送方法执行结果。RPC是Remote Procedure Call的缩写,翻译成中文就是远程过程调用,是一种在本地的机器上调用远端机器上的一个过程(方法)的技术,这个过程也被大家称为“分布式计算”,是为了提高各个分立机器的“互操作性”而发明出来的技术。
结论
xEOS凭借创新性的开放技术,引领智能装备柔性制造行业从“功能机”跨入“智能机”时代,帮助设备制造商和集成商轻松实现技术跨越,提升行业竞争力。借助xEOS边缘云操作系统,用户可以比以前更快地无缝式汇集从现场层级和边缘设备到云层级信息,基于数据的自动化信息化融合方案开箱即用,并以任何语言轻松灵活地编程和提供功能的自主应用生态,从而实现减少支出、提高效率并能为产品提升价值的目标。