CN108880887B - 基于微服务的陪护机器人云服务系统及方法 - Google Patents
基于微服务的陪护机器人云服务系统及方法 Download PDFInfo
- Publication number
- CN108880887B CN108880887B CN201810637090.3A CN201810637090A CN108880887B CN 108880887 B CN108880887 B CN 108880887B CN 201810637090 A CN201810637090 A CN 201810637090A CN 108880887 B CN108880887 B CN 108880887B
- Authority
- CN
- China
- Prior art keywords
- service
- protocol
- accompanying robot
- cloud service
- micro
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
- H04L67/02—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]
- H04L67/025—Protocols based on web technology, e.g. hypertext transfer protocol [HTTP] for remote control or remote monitoring of applications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/08—Configuration management of networks or network elements
- H04L41/0803—Configuration setting
- H04L41/0823—Configuration setting characterised by the purposes of a change of settings, e.g. optimising configuration for enhancing reliability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L41/00—Arrangements for maintenance, administration or management of data switching networks, e.g. of packet switching networks
- H04L41/14—Network analysis or design
- H04L41/145—Network analysis or design involving simulating, designing, planning or modelling of a network
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/14—Session management
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/56—Provisioning of proxy services
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/50—Network services
- H04L67/60—Scheduling or organising the servicing of application requests, e.g. requests for application data transmissions using the analysis and optimisation of the required network resources
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/22—Parsing or analysis of headers
Abstract
本发明公开了基于微服务的陪护机器人云服务系统及方法,包括终端及云服务平台,所述终端包括移动终端及陪护机器人,所述云服务平台接收终端发起的连接请求,通过协议萃取模型对终端协议进行萃取存储,然后对终端连接请求进行解析并进行服务处理,最后将处理结果通过响应接口反馈至终端;所述云服务平台的业务层基于微服务实现,包括多个细粒度的底层微服务,本发明在接口层设计了协议萃取机制;数据层采用MySQL+MongoDB的混合存储方式进行数据存储;在调度方面提出了一种基于资源匹配的多优先级调度策略,提高了系统资源利用率,在并发方面采用select+epoll的Mix‑IO模型来提升系统并发性能。
Description
技术领域
本发明涉及云服务技术领域,特别是涉及基于微服务的陪护机器人云服务系统及方法。
背景技术
家庭服务机器人在助老助残、儿童教育和家政服务等方面存在重大需求,但由于该类机器人工作在动态、非规则的家居环境,并直接与人亲密接触,因此对此类机器人的自主运动、环境感知与理解、安全性以及价格等方面都提出了很高的要求。实践已证明,传统的仅依靠机器人自身能力的提高已无法同时满足上述要求,将云计算技术与服务机器人技术相结合是解决这一问题的根本出路。
近年来,云计算、大数据、虚拟化等技术不断取得突破性进展,推动了科技领域的信息化、模块化,从而形成新的概念“云服务”,其具有资源利用率高、数据处理能力强、容错率高、成本低等优点,可以统筹管理和调度云端资源,提供强大的计算能力,为用户提供按需服务,被广泛应用于航天、医疗、金融和教育等领域。
基于云计算、大数据的密集计算能力、海量数据的分析处理能力,将陪护机器人本体功能虚拟至云端,形成机器人专有云服务,不仅简化了机器人本体的软硬件结构,降低了陪护机器人的自身成本,而且将其功能拓展并超越其物理本体的限制,从而实现了真正的“物美价廉”。因此,将陪护机器人与云技术相结合是未来服务机器人发展的必然趋势。
微服务架构是一套处理复杂系统的架构方法论,其核心思想是将复杂系统拆解成多个微服务,每个微服务根据特定业务,选择适合的技术设计并独立部署,构成高内聚的微服务单元。各微服务之间采用REST/JSON等轻量级通信机制,共同实现整个应用。
微服务架构是敏捷开发、持续交付、Devops等推动下的产物。它强调服务的独立开发、部署和运行,因此,其更具有灵活、可实施以及可扩展的特点。基于微服务架构的平台,可以在不影响现有业务运行的情况下,将复杂应用根据其业务逻辑拆解成多个微服务,使其具有低耦合、易扩展、可伸缩特性。在对系统升级部署时只需局部更新过时的组件,因此,基于微服务的架构思想为服务机器人云服务的构建提供了新的思路。
目前国内外的研究集中于对单项机器人功能的云端实现,缺乏统一的功能框架设计,不利于机器人功能云化技术的研究。同时,由于接口标准不统一,难以实现机器人知识和技能的共享。
综上所述,现有技术中对于单向机器人如何实现云端通信的问题,尚缺乏有效的解决方案。
发明内容
为了解决现有技术的不足,本发明提供了基于微服务的陪护机器人云服务系统,利用陪护机器人云服务接口与协议自动萃取策略,陪护机器人将自身协议注册到云服务平台,协议萃取机制自动提取并存储协议,在服务交互过程中自动解析协议,提高了系统扩展性。
基于微服务的陪护机器人云服务系统,包括终端及云服务平台,所述终端包括移动终端及陪护机器人,所述云服务平台接收终端发起的连接请求,通过协议萃取模型对终端协议进行萃取存储,然后对终端连接请求进行解析并进行服务处理,最后将处理结果通过响应接口反馈至终端;
所述云服务平台的业务层基于微服务实现,包括多个细粒度的底层微服务;
所述协议萃取模型包括协议识别模块、类型模块、格式模块、协议封装模块、版本模块、协议文本模块和协议库;
协议识别模块,用于注册协议的类型、版本和格式识别,判定协议库是否存有该协议,根据识别结果,告知陪护机器人云服务平台是否可识别该协议;
类型模块,用于陪护机器人协议类型的解析、检索和生成,在协议库中检测协议是否匹配,并根据其类型生成对应协议字段;
版本模块,用于对陪护机器人使用的协议版本字段进行提取、检索和生成,查看陪护机器人协议版本与协议库版本是否兼容;
格式模块,用于对陪护机器人协议的结构、字段类型、数据范围的协议格式进行提取、检索和生成,保证陪护机器人上传的协议格式与协议库存储格式匹配;
封装模块,用于对陪护机器人协议的多元信息进行二次封装,生成统一的存储格式,便于协议库管理;
文本处理模块,由文本解析、文本检索和文本生成三个子模块构成,负责对陪护机器人使用的协议文本进行提取、检索和生成,保证陪护机器人协议文本与协议库文本的一致性;
协议库:分类存储所有陪护机器人的协议。
进一步优选的技术方案,所述陪护机器人端包含陪护机器人注册、协议注册、服务发布、状态发布、服务注销和陪护机器人注销六个主要接口;
陪护机器人注册接口,用于向云服务平台新增陪护机器人代理实例。陪护机器人启动后,首先通过Raspberry Pi检测网络信息,在获取网络的ssid和key后采用Websocket协议通过陪护机器人注册的接口(advertise)向云服务平台发起注册请求,云服务平台创建陪护机器人代理实例,将注册结果封装为Json,通过陪护机器人注册响应接口反馈给陪护机器人;
陪护机器人协议注册接口,用于陪护机器人将自身协议注册到云服务平台,陪护机器人与云服务平台首次建立连接后,云服务平台邀请陪护机器人进行协议注册,陪护机器人通过协议注册接口将信息封装后向云服务平台发起请求,接口层的萃取机制将自动解析存储,并按照进行封装,通过协议注册响应接口回复陪护机器人;
陪护机器人状态发布接口,用于陪护机器人向云服务平台上传自身状态数据,包括各种传感器信息、音视频信息、服务状态信息,保证陪护机器人状态与陪护机器人代理实例状态一致,陪护机器人将本体状态数据进行封装并通过状态发布接口上传数据,云服务平台根据状态数据更新陪护机器人代理实例的状态,保持两者状态一致;
陪护机器人服务注销接口,用于陪护机器人撤销影子服务实例,当陪护机器人自身某种功能出现故障、不再维护或存在安全隐患时,陪护机器人将该功能数据进行封装性通过服务注销接口发起服务注销请求,云服务平台根据请求数据中的service字段删除对应的影子服务实例;
陪护机器人注销接口,用于撤销陪护机器人代理实例,陪护机器人下线时,通过陪护机器人注销接口向云服务平台提交注销请求,云服务平台根据robot_id删除对应陪护机器人代理实例,释放资源,完成注销。
进一步优选的技术方案,所述移动终端包括陪护机器人订阅、服务订阅、服务申请、服务调用、撤销服务订阅、撤销陪护机器人订阅六个主要接口;
陪护机器人订阅接口,用于在云服务平台为移动终端APP代理实例和陪护机器人代理实例之间建立数据通道,陪护机器人上线后,移动终端APP封装订阅消息通过陪护机器人订阅接口向云服务平台发起陪护机器人订阅请求,云服务平台根据请求数据为移动终端APP代理实例和陪护机器人代理实例建立通信连接,并将陪护机器人当前服务列表信息反馈给移动终端APP,告知订阅是否成功;
服务订阅接口,用于移动终端APP影子服务实例的创建,为移动终端APP代理实例与陪护机器人影子服务实例建立通信绑定,移动终端APP可通过该接口订阅感兴趣的非独占服务;
服务申请接口,用于移动终端APP向云服务平台申请独占服务的使用权限,移动终端APP调用独占服务前,首先通过该接口发起服务申请请求,云服务平台根据服务状态通过服务申请响应接口反馈给移动终端APP服务申请结果;
服务调用接口,用于移动终端APP向陪护机器人发送控制指令,服务申请成功后,移动终端APP将控制指令封装为请求数据包,通过该接口调用陪护机器人服务;
撤销服务订阅接口,用于云服务平台撤销APP代理实例与陪护机器人影子服务实例的通信绑定以及删除APP影子服务实例,当不再使用某种服务时,APP通过撤销服务订阅接口向云服务平台提交请求,云服务平台根据List[string]删除对应实例,撤销成功;
撤销陪护机器人订阅接口,用于撤销APP与陪护机器人之间的通信绑定,用户不再使用陪护机器人时,通过撤销陪护机器人订阅接口向云服务平台发送数据请求撤销对该陪护机器人的订阅,云服务平台解除APP与陪护机器人的通信绑定,删除APP代理实例。
进一步优选的技术方案,所述云服务平台的业务层基于微服务实现,包括微服务认证中心、微服务监控中心、微服务池、私有API接口及云服务;
微服务认证中心,微服务池中的每个微服务都有唯一的身份ID,微服务认证中心是该ID的颁发机构,该机构对微服务进行权威认证,可以获取每个微服务的身份信息并确认该信息是否正确;
微服务监控中心对微服务池中所有的微服务进行健康检查和日志采集,服务健康检查能够及时发现异常的微服务实例,并尽快更新服务数据,提醒运维人员及时修复,服务日志采集,记录了每个微服务的运行状态,通过数据可分析出服务存在的安全隐患以及性能瓶颈;
微服务池包括多个微服务,所述微服务之间采用轻量级的REST API接口进行通信,协同工作,根据云服务的需求动态地创建和析构服务实例;
私有API接口,云服务与微服务池通过私有API接口进行通信,与云机交互协议完全隔离,实现在Web协议与内部私有协议之间的转换;
云服务,面向终端用户,以功能为主要导向封装,负责业务逻辑的处理,底层由多个微服务构成,微服务之间协同工作,共同为云服务提供服务。
进一步优选的技术方案,所述云服务平台中数据的存储采用关系型数据库和非关系型数据库混合的数据存储方式,服务通过连接池与数据库建立连接,连接池根据连接请求的数据类型选择合适的数据库进行连接;
关系型数据库存储结构化数据,包括云服务信息表、陪护机器人信息表、用户信息表和绑定关系信息表;
非关系型数据库存储非结构化数据,存储的数据包括语料数据、协议文本数据,语料数据分为文本类、资源类、指令类。
本发明还公开了基于微服务的陪护机器人云服务系统通信方法,包括:
云服务平台与陪护机器人建立首次连接后,利用协议萃取模型开启协议萃取机制,判定是否能与该陪护机器人正常通信,若能正常通信,则进入服务交互阶段,否则进入协议注册阶段;
协议萃取机制流程如下:
陪护机器人采用Websocket协议与云服务平台建立连接,云服务平台向陪护机器人发出协议注册邀请;
陪护机器人发起协议注册请求,协议识别模块首先对陪护机器人协议进行识别,并反馈识别是否成功,即云服务平台是否识别该陪护机器人,若不能识别,则要求陪护机器人上传协议类型;
陪护机器人上传协议类型,类型管理模块根据上传的数据进行协议类型检索,并反馈检索是否成功,若检索成功,则生成对应类型,并要求陪护机器人上传协议版本,否则协议注册失败;
陪护机器人上传协议版本,版本管理模块进行查询匹配,并反馈匹配结果,成功则自动生成对应版本类型,并要求陪护机器人上传协议格式,否则协议注册失败;
陪护机器人上传协议格式,格式管理模块检测格式是否正确,并反馈匹配结果,若正确,则进行协议格式生成,并要求陪护机器人上传自身协议文本,否则协议注册失败;
陪护机器人上传协议文本,协议封装模块将以上生成的对应类型、对应版本类型、协议格式和协议文本进行封装,并将封装结果存储在协议库中,协议注册成功;
协议萃取模型通知云服务平台陪护机器人协议注册成功,云服务平台反馈确认信息,表明已经识别该陪护机器人,两者进入服务交互阶段;
陪护机器人向云服务平台发起服务请求,云服务平台通过协议萃取机制自动解析请求,并作出响应。
进一步优选的技术方案,当大量终端向云服务平台请求服务时,所述云服务平台以云服务和微服务对系统资源要求的匹配度为依据进行服务调度,将资源匹配度与优先级作出定义列表,建立基于资源匹配的多优先级调度模型,该模型包括等待队列WQ:云服务请求等待队列;微服务等待队列MWQ:空闲微服务等待队列;就绪队列PQ:包括多个优先级队列,每个队列优先级相同,依次为Pri0到Pri9;运行窗口RW:提供服务运行环境,就绪队列中服务可运行时,进入该运行窗口RW执行;运行结束队列CQ:包括运行成功队列SQ和运行失败队列FQ。
进一步优选的技术方案,云服务资源占用计算式:
Rs=αRCs+βRMs (1)
式中,Rs表示云服务总资源占用,RCs表示云服务CPU资源占用,RMs表示云服务内存资源占用,α、β为归一化参数;
微服务资源占用计算式:
Rms=αRCms+βRMms (2)
式中,Rms表示服务总资源占用,RCms表示微服务CPU资源占用,RMms表示微服务内存资源占用,α、β为归一化参数;
匹配度计算式:
式中,M表示资源匹配度,即云服务和微服务对于系统资源要求的相似度,匹配度越高,优先级越高。
进一步优选的技术方案,基于资源匹配的多优先级调度策略,具体为:
各终端提交的云服务请求首先进入等待队列WQ,微服务等待队列MWQ维护空闲微服务,进行资源匹配度计算,得出云服务的优先级,然后周期性检查等待队列,若系统资源满足服务需要,同时该优先级的就绪队列未满,则根据其优先级计入到PQ相应的优先级就绪队列中,否则继续保持在等待队列,各终端包括陪护机器人和移动终端;
根据优先级从高到低周期性扫描就绪队列PQ,若队列时间片到且运行窗口RW未满,则将该服务调度到运行窗口RW中,若PQ中某服务资源被占用,则自动调度到等待队列中;
运行窗口RW依据服务对资源要求从高到低的原则以及运行时间最小的原则综合调度,选取运行窗口执行服务;
服务结束后进入运行结束队列CQ,根据服务处理结果进入运行成功队列SQ或运行失败队列FQ中,运行成功则释放占用资源,微服务进入等待队列MWQ等待再次被调用;运行失败则进入异常处理模块;
当微服务等待队列MWQ更新时,等待队列WQ中的云服务优先级也会随之更新,保证云服务与微服务之间资源匹配最佳,实现系统资源的最大化利用。
进一步优选的技术方案,云服务平台采用select+epoll的Mix-IO模型来提升系统并发性能,在服务运行过程中,根据服务自身特点与运行状况动态地进行IO模型选择,实现服务与模型的软匹配;
云服务创建后,Mix-IO模型首先进行IO模型初始化,然后为云服务设定select与epoll模型之间转换的阈值;
云服务平台监测服务的响应时间,判断其是否超过服务本身设定的响应时间阈值,若超过阈值则减小并发阈值即并发终端的数量,否则阈值保持不变;
云服务平台检测服务类型及当前并发数量,若并发数量达到设定阈值则更新服务的IO模型,否则保持原有IO模型;
Mix-IO模型通过对服务响应时间和并发量的监测,自动为服务选择IO模型,优化系统资源,提升系统并发能力。
与现有技术相比,本发明的有益效果是:
本发明在接口层设计了协议萃取机制;数据层采用MySQL+MongoDB的混合存储方式进行数据存储;在调度方面提出了一种基于资源匹配的多优先级调度策略,提高了系统资源利用率,在并发方面采用select+epoll的Mix-IO模型来提升系统并发性能。
附图说明
构成本发明的一部分的说明书附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。
图1陪护机器人云服务系统
图2云服务系统整体架构图
图3基于微服务的业务框架图
图4接口层逻辑图
图5云服务接口用例图
图6陪护机器人接口流程图
图7客户端接口流程图
图8协议萃取模型结构图
图9协议萃取机制流程图
图10数据存储系统模型
图11多优先级调度模型;
图12为基于资源匹配的多优先级调度策略流程图;
图13为Mix-IO模型(SE)流程图。
具体实施方式
应该指出,以下详细说明都是例示性的,旨在对本发明提供进一步的说明。除非另有指明,本发明使用的所有技术和科学术语具有与本发明所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本发明的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,当在本说明书中使用术语“包含”和/或“包括”时,其指明存在特征、步骤、操作、器件、组件和/或它们的组合。
本发明的一种典型的实施方式中,如图1所示,本发明的陪护机器人云服务系统由服务机器人、各种云服务和用户APP三个部分组成。
陪护机器人本体集成了红外、超声、温湿度、麦克风阵列等多种传感器和电机、扬声器等多种执行机构,具有语音交互、人脸识别、运动控制、健康信息监测、智能家居控制、实时视频等多种功能。
一种终端安装有软件APP,提供了陪护机器人用户使用陪护机器人服务、操作陪护机器人的入口。陪护机器人用户通过APP连接云服务平台使用陪护机器人,实现对陪护机器人的运动控制、健康信息的查询以及实时视频等功能。
云服务平台是整个系统的核心,负责管理陪护机器人和APP的服务代理,并进行业务处理。它一方面为陪护机器人提供服务代理,通过对陪护机器人本体功能的抽象和封装,构建陪护机器人云服务;另一方面为APP使用陪护机器人提供入口,使APP的控制信息能够精准到达对应的陪护机器人,实现陪护机器人用户对陪护机器人的远程操控。
一种基于微服务的陪护机器人云服务框架。该框架以云计算技术作为底层支撑,以微服务作为服务建模及业务处理的指导思想,以扩展性作为接口层指标,通过云服务平台对陪护机器人本体功能的封装、代理,形成云服务,提供给陪护机器人和APP使用。云服务设计框架如图2所示。
接口层是陪护机器人和APP与云服务平台进行交互的数据通道,终端(陪护机器人和APP)通过接口层向云服务发起服务请求,云服务平台处理完成后,通过接口层向终端反馈结果。
业务层分为服务管理中心、注册中心和调度中心。服务管理中心负责云服务管理工作,包括服务的发布、更新、订阅和撤销等;服务调度中心负责云服务调度,保证云服务有序推进,最大限度地利用系统资源;服务注册中心一方面负责处理接口层的服务注册,另一方面为服务调度中心提供调用接口。三者共同完成云服务的管理工作。
功能服务是整个业务的核心。从上到下依次为用户服务层、服务重构层、微服务层和通用服务层。
用户服务层不仅集成了平台自身的多种云服务,还支持第三方服务的接入,从而构建了一个开放式可扩展的云服务环境。目前包含语音交互、运动控制、健康监测等云服务,服务均以插件的形式独立部署,保证了服务的稳定性、连续性和可伸缩性。
服务重构层对用户层服务进行解析和组合,将用户层服务转换为多个微服务的有效组合,降低了服务耦合性,提高了服务运行效率。
微服务层由众多功能独立且边界清晰的服务微粒构成,采用轻量级的协议进行通信。它们实时进行动态重组,是构成用户层服务的重要资源。
通用服务层具有平台级的公共服务能力,为上述三层提供公用服务,包括消息队列服务、数据分析服务、测试服务等,是整个业务层的服务支撑。
数据层为整个服务系统提供数据存储能力,包括用户信息、陪护机器人信息、服务信息等。鉴于云服务数据的多样化、海量化特点,本系统采用MySQL+MongoDB的混合集群方式进行数据存储。
底层资源主要包括Tornado、Python、SDK等软件资源和CPU、内存、IO等硬件资源,利用虚拟化技术进行资源整合,形成可被上层使用的虚拟化资源池,包括计算资源池、存储资源池、网络IO资源池等。资源调度模块负责为上层提供调度策略,根据监控数据合理分配资源,为整个系统提供强有力的资源支撑。
云服务平台为大量终端(APP和陪护机器人)提供服务,接口层位于平台最上层,是与终端进行交互的入口,负责对终端协议解析和封装;业务框架是云服务业务逻辑支撑,负责云服务平台与终端的业务交互;数据层为云服务提供海量的数据资源;调度与并发为云服务提供资源调配,最大化利用系统资源。基于上述分析,下面从业务框架、接口层、数据层和调度与并发四个方面展开对陪护机器人云服务的设计。
如图3所示,基于微服务的业务框架,云服务直接开放给终端,为减少服务请求次数,设计粗粒度的云服务;为提升业务逻辑的灵活性、可扩展性和可维护性,设计多个细粒度的底层微服务。
微服务认证中心:每个微服务都有唯一的身份ID,微服务认证中心是该ID的颁发机构。该机构通过Digest的MD5摘要算法对微服务进行权威认证,可以获取每个微服务的身份信息并确认该信息是否正确。微服务的身份认证,不仅是一种安全认证机制,同时也是微服务管理和追踪的重要渠道。
微服务监控中心通过Scribe agent和Scribe store对池中所有的微服务进行健康检查和日志采集。服务健康检查能够及时发现异常的微服务实例,并尽快更新服务数据,提醒运维人员及时修复。服务日志采集,记录了每个微服务的运行状态,通过数据可分析出服务存在的安全隐患以及性能瓶颈。
微服务池是微服务的运行环境,为每个微服务提供了必要的资源。众多的微服务采用轻量级的REST API接口进行通信,协同工作,根据云服务的需求动态地创建和析构服务实例,为云服务的高效运行提供有力保障。
私有API接口位于云服务和微服务池中间,不仅是两者的通信层,也是两者的隔离层。云服务与微服务池通过私有API接口进行通信,与云机交互协议完全隔离,实现了在Web协议与内部私有协议之间的友好转换。
云服务面向终端用户,以功能为主要导向封装,负责业务逻辑的处理。底层由多个微服务构成,微服务之间协同工作,共同为云服务提供服务,实现了服务的细粒度划分,简化了处理逻辑,降低了服务耦合性。
关于云服务接口层,针对陪护机器人功能迭代频繁、服务众多且复杂等情况,设计了具有可扩展性的接口层,整体流程如图4所示。终端向云服务平台发起Websocket连接请求,平台首先通过协议萃取器对终端协议进行萃取存储;然后利用请求分析模块对终端请求进行解析并交由对应的服务处理模块处理;最后将处理结果通过响应接口反馈。本发明将分别从数据传输格式、接口、协议萃取三个方面对接口层进行设计。请求分析模块负责根据终端的请求类型,将服务请求分发到对应的服务处理模块中,服务处理模块主要包括业务逻辑处理、数据解析、运算和封装。
本实施例子采用Json格式设计了如表1所示的基本的接口协议,每一接口的具体格式在接口设计时给出。
表1接口协议基本结构表
op | robot_id | user_id | protocol | service | values | result | topic |
(1)op:请求类型,标识终端(陪护机器人和APP)的请求动作,包括陪护机器人注册、协议注册、服务注册、陪护机器人订阅、服务订阅、服务申请、服务调用、撤销服务订阅等。
(2)robot_id:陪护机器人唯一身份标识,采用陪护机器人序列号SN表示。
(3)user_id:APP唯一身份标识,为便于APP与陪护机器人绑定,采用陪护机器人序列号SN表示。
(4)protocol:协议标识,表示终端使用的私有协议,注册到云服务平台才可使用。
(5)service:服务名,包括服务名称、服务权限、服务状态。
(6)values:终端请求参数列表。
(7)result:云服务平台对终端请求的处理结果true/false。
(8)topic:备注信息。
本系统采用C/S架构,无论陪护机器人发布服务,还是APP调用服务,均需通过接口与云服务平台进行交互。交互接口主要涉及陪护机器人和APP,本发明针对两者分别设计了一套接口,接口用例图如图5所示。
陪护机器人端包含陪护机器人注册、协议注册、服务发布、状态发布、服务注销和陪护机器人注销六个主要接口;APP端包括陪护机器人订阅、服务订阅、服务申请、服务调用、撤销服务订阅、撤销陪护机器人订阅六个主要接口。下面分别对陪护机器人端和APP端接口进行详细设计。
陪护机器人作为服务的生产者,在运行过程中通过接口和云服务平台交互。一方面将自身信息通过接口上传至云服务平台,另一方面需要借助云服务完成复杂任务。陪护机器人端的接口流程如图6所示。
针对流程图,设计了以下六种接口。
1)陪护机器人注册接口
用于向云服务平台新增陪护机器人代理实例。陪护机器人启动后,首先通过Raspberry Pi检测网络信息,在获取网络的ssid和key后采用Websocket协议通过陪护机器人注册的接口(advertise)向云服务平台发起注册请求,请求数据格式如表2所示。
表2陪护机器人注册接口表
云服务平台创建陪护机器人代理实例,将注册结果封装为Json,通过陪护机器人注册响应接口(advertise_response)反馈给陪护机器人,回应数据格式如表3所示。
表3陪护机器人注册响应接口表
2)陪护机器人协议注册接口
用于陪护机器人将自身协议注册到云服务平台。陪护机器人与云服务平台首次建立连接后,平台邀请陪护机器人进行协议注册,陪护机器人通过协议注册接口(protocol_register)将robot_id、header、protocol_text、version和type等信息封装为表4格式的Json向云服务平台发起请求,接口层的萃取机制将自动解析存储,并按照表5的格式进行封装,通过协议注册响应接口(protocol_register_response)回复陪护机器人。
表4陪护机器人协议注册接口表
表5陪护机器人协议注册响应接口表
3)陪护机器人服务发布接口
用于陪护机器人将自身功能以服务的形式发布到云服务平台。陪护机器人将本体功能以表6的格式封装为Json,通过服务发布接口(service_publish)进行服务发布请求,云服务平台根据请求数据为陪护机器人创建影子服务实例,处理完成后将结果按照表7的格式封装为Json,通过陪护机器人服务发布响应接口(advertise_service_response)回复陪护机器人。
表6陪护机器人服务发布接口
表7陪护机器人服务发布响应接口
4)陪护机器人状态发布接口
用于陪护机器人向云服务平台上传自身状态数据,包括各种传感器信息(PM2.5、humdity、temperature、heart_rate等)、音视频信息、服务状态信息等,保证陪护机器人状态与陪护机器人代理实例状态一致。陪护机器人将本体状态数据以表8的格式封装为Json并通过状态发布接口(robot_states)上传数据,云服务平台根据状态数据更新陪护机器人代理实例的状态,保持两者状态一致。
表8陪护机器人状态发布接口表
5)陪护机器人服务注销接口
用于陪护机器人撤销影子服务实例。当陪护机器人自身某种功能出现故障、不再维护或存在安全隐患时,陪护机器人将该功能数据以表9的形式封装为Json通过服务注销接口(service_cancel)发起服务注销请求。云服务平台根据请求数据中的service字段删除对应的影子服务实例。
表9陪护机器人服务注销接口表
6)陪护机器人注销接口
用于撤销陪护机器人代理实例。陪护机器人下线时,通过陪护机器人注销接口(unadvertise)向云服务平台提交注销请求,云服务平台根据robot_id删除对应陪护机器人代理实例,释放资源,完成注销。接口说明如表10所示。
表10陪护机器人注销接口表
移动终端APP端接口设计:APP作为服务的消费方,服务消费过程中需频繁和云服务平台进行交互。根据业务需求两者交互的过程如图7所示。
(1)陪护机器人订阅接口
用于在云服务平台为APP代理实例和陪护机器人代理实例之间建立数据通道。陪护机器人上线后,APP按照表11封装订阅消息通过陪护机器人订阅接口(subscribe)向云服务平台发起陪护机器人订阅请求。云服务平台根据请求数据为APP代理实例和陪护机器人代理实例建立通信连接,并将陪护机器人当前服务列表等信息按照表12的Json形式反馈给APP,告知订阅是否成功。
表11 APP订阅陪护机器人接口表
表12 APP订阅陪护机器人响应接口表
(2)服务订阅接口:用于APP影子服务实例的创建,为APP代理实例与陪护机器人影子服务实例建立通信绑定。APP可通过该接口(subscribe_service)订阅感兴趣的非独占服务(可同时为多个APP提供服务)。请求数据格式如表13所示。
表13 APP服务订阅接口表
(3)服务申请接口:用于APP向云服务平台申请独占服务的使用权限。APP调用独占服务前,首先通过该接口(apply_service)发起服务申请请求,云服务平台根据服务状态通过服务申请响应接口(apply_service_response)反馈给APP服务申请结果。请求数据结构如表14所示,响应数据结构如表15所示。
表14服务申请接口表
表15服务申请响应接口表
(4)服务调用接口:用于APP向陪护机器人发送控制指令。服务申请成功后,APP将控制指令以表16的格式封装为请求数据包,通过该接口(call_service)调用陪护机器人服务。
表16服务调用接口表
(5)撤销服务订阅:用于云服务平台撤销APP代理实例与陪护机器人影子服务实例的通信绑定以及删除APP影子服务实例。当不再使用某种服务时,APP通过撤销服务订阅接口(unsubscribe_service)向云服务平台提交请求,请求数据格式如表17所示。云服务平台根据List[string]删除对应实例,撤销成功。
表17撤销服务订阅接口表
(6)撤销陪护机器人订阅:用于撤销APP与陪护机器人之间的通信绑定。用户不再使用陪护机器人时,通过撤销陪护机器人订阅(unsubscribe)接口向云服务平台发送
user_id、robot_id等数据请求撤销对该陪护机器人的订阅。云服务平台解除APP与陪护机器人的通信绑定,删除APP代理实例。接口说明如表18所示。
表18撤销陪护机器人订阅接口表
为提高云服务接口层的通用性和扩展性,使云服务平台能够根据陪护机器人注册的协议自动进行解析与封装,本发明提出一种协议萃取的方法。所谓萃取,是借助面向对象编程语言中的泛型思想定义的。在泛型编程中,系统内置类型和用户自定义类型,均具有泛型类型封装和类型萃取接口。函数通过泛型类型T为调用者提供参数的普适通道,执行时根据萃取接口自动识别参数的实际类型,按照实际类型进行处理,计算出正确结果。萃取接口屏蔽了调用者和被调用者之间复杂的类型转换,大大降低了代码错误率,提高了开发效率。
参数类型萃取机制对云服务接口层具有借鉴意义,接口层在云服务系统中扮演泛型类型的角色,基于泛型思想,本发明设计了一种协议萃取机制,模型如图8所示,协议萃取模型由协议识别模块、类型模块、格式模块、协议封装模块、版本模块、协议文本模块和协议库七部分组成,说明如下:
(1)协议识别模块:负责注册协议的类型、版本和格式识别,判定协议库是否存有该协议,根据识别结果,告知陪护机器人云服务平台是否“认识”它。
(2)类型模块:负责陪护机器人协议类型的解析、检索和生成,在协议库中检测协议是否匹配,并根据其类型生成对应协议字段。
(3)版本模块:负责对陪护机器人使用的测试版本、发布版本、控制版本等协议版本字段进行提取、检索和生成,查看陪护机器人协议版本与协议库版本是否兼容。
(4)格式模块:负责对陪护机器人协议的结构、字段类型、数据范围的协议格式进行提取、检索和生成,保证陪护机器人上传的协议格式与协议库存储格式匹配。
(5)封装模块:负责对陪护机器人协议类型、版本、格式等多元信息进行二次封装,生成统一的存储格式,便于协议库管理。
(6)文本处理模块:由文本解析、文本检索和文本生成三个子模块构成。负责对陪护机器人使用的协议文本进行提取、检索和生成,保证陪护机器人协议文本与协议库文本的一致性。
(7)协议库:分类存储所有陪护机器人的协议,为云服务提供强大的协议支撑。
云服务与陪护机器人建立首次连接后,会开启协议萃取机制,判定是否能与该陪护机器人正常通信,若能正常通信,则进入服务交互阶段,否则进入协议注册阶段。协议萃取流程如图9所示。
协议萃取具体步骤如下:
Step1:陪护机器人采用Websocket协议与云服务平台建立连接,平台向陪护机器人发出协议注册邀请。
Step2:陪护机器人发起协议注册请求,萃取器的协议识别模块首先对陪护机器人协议进行识别,并反馈识别是否成功,即云服务平台是否“认识”该机器人。若“不认识”,则要求陪护机器人上传协议类型。
Step3:陪护机器人上传协议类型,萃取器的类型管理模块根据上传的数据进行协议类型检索,并反馈检索是否成功。若检索成功,则生成对应类型,并要求陪护机器人上传协议版本,否则协议注册失败。
Step4:陪护机器人上传协议版本,萃取器版本管理模块进行查询匹配,并反馈匹配结果。成功则自动生成对应版本类型,并要求陪护机器人上传协议格式,否则协议注册失败。
Step5:陪护机器人上传协议格式,萃取器格式管理模块检测格式是否正确,并反馈匹配结果。若正确,则进行协议格式生成,并要求陪护机器人上传自身协议文本,否则协议注册失败。
Step6:陪护机器人上传协议文本,萃取器协议封装模块将以上生成的对应类型、对应版本类型、协议格式和协议文本进行封装,并将封装结果存储在协议库中,协议注册成功。
Step7:萃取器通知云服务平台陪护机器人协议注册成功,云服务平台反馈确认信息,表明已经“认识”该陪护机器人,两者进入服务交互阶段。
Step8:陪护机器人向云服务平台发起服务请求,云服务平台通过协议萃取机制自动解析请求,并作出响应。
目前数据库模型主要分为两类:关系型数据库(SQL)和非关系型数据库(NoSQL)。为满足不同类型数据的存储需求,实现数据高效存储,本系统采用SQL+NoSQL混合的数据存储方式,存储模型如图10所示。
由存储模型可以看出,服务通过连接池与数据库建立连接,连接池根据连接请求的数据类型选择合适的数据库进行连接。连接成功后,通过数据访问接口进行数据读写。两种类型数据库形成优势互补,保证系统各类数据的高效存储。下面分别从结构化数据和非结构化数据两方面进行分析设计。
本系统采用MySQL存储结构化数据。系统涉及的数据库表较多,本发明将介绍主要使用的云服务信息表、陪护机器人信息表、用户信息表和绑定关系信息表。各数据表单展示了信息的字段名、类型以及意义。云服务数据表Service Table记录了云服务平台服务的详细信息,数据结构如表19所示。
表19云服务数据表
陪护机器人信息表RobotTable存储了陪护机器人本体的详细信息,详细结构如表20所示。
表20陪护机器人信息表
用户信息表User Table保存了所有用户的关键信息,如表21所示。
表21用户信息表
绑定关系表Robot-UserTable记录了陪护机器人与APP之间的对应关系,如表22所示。
表22绑定关系数据表
本系统中的语料数据、协议文本数据均为Json格式,规则性弱,形式更接近文档,故采用Json文档式数据库MongoDB进行存储。
语料数据量大且形式多样,为便于解析和存储,数据格式的设计尤为重要。通过对语料数据分析,可将语料数据分为文本类、资源类、指令类,详细说明如表23所示。
表23语料数据类型表
根据语料数据的三种类型,设计存储格式表24所示。
表24语料数据存储表
根据协议萃取机制,按照协议类型、版本、格式、文本等属性设计协议存储如表25所示。
表25协议文本存储表
随着陪护机器人数量的不断增长,服务请求越发频繁,云服务平台面临调度与并发的问题。在服务调度方面,本发明提出了一种基于资源匹配的多优先级调度策略,以云服务和微服务对系统资源要求的匹配度为依据进行服务调度;在并发性方面,采用select+epoll的Mix-IO模型,提升系统并发能力。
云服务平台为成千上万的终端(陪护机器人和APP)提供服务,当大量终端请求服务时,由于云服务平台资源有限,故面临服务调度问题。云服务对于系统资源的要求不同,各微服务所占用资源以及运行效率各异。云服务的完成需要多个微服务的配合,为实现系统资源利用的最大化,需要云服务与微服务高效配合。本发明提出一种基于资源匹配的多优先级调度策略,以云服务和微服务对系统资源要求的匹配度为依据进行服务调度,系统资源主要包括CPU和内存。
云服务资源占用计算式:
Rs=αRCs+βRMs (1)
式中,Rs表示云服务总资源占用,RCs表示云服务CPU资源占用,RMs表示云服务内存资源占用,α、β为归一化参数。
微服务资源占用计算式:
Rms=αRCms+βRMms (2)
式中,Rms表示服务总资源占用,RCms表示微服务CPU资源占用,RMms表示微服务内存资源占用,α、β为归一化参数。
匹配度计算式:
式中,M表示资源匹配度,即云服务和微服务对于系统资源要求的相似度,匹配度越高,优先级越高。
根据计算结果,将资源匹配度与优先级定义如表26所示。
表26资源匹配度与优先级定义表
基于操作系统进程多级反馈队列的调度模型,本发明设计的基于资源匹配的多优先级调度模型如图11所示,由以下五部分构成:
(1)等待队列WQ:云服务请求等待队列。
(2)等待队列MWQ:空闲微服务等待队列。
(3)就绪队列PQ:包括多个优先级队列,每个队列优先级相同,从高到低依次为Pri0到Pri9;
(4)运行窗口RW:提供服务运行环境,就绪队列中服务可运行时,进入该窗口执行。
(5)运行结束队列CQ:包括运行成功队列SQ和运行失败队列FQ。
针对以上模型,基于资源匹配的多优先级调度策略流程如图12所示。
Step1:各终端(陪护机器人和APP)提交的云服务请求首先进入等待队列WQ,等待队列MWQ维护空闲微服务,根据式(3)进行资源匹配度计算,得出云服务的优先级,然后周期性检查等待队列,若系统资源满足服务需要,同时该优先级的就绪队列未满,则根据其优先级计入到PQ相应的优先级就绪队列中,否则继续保持在等待队列。
Step2:根据优先级从高到底周期性扫描就绪队列PQ,若队列时间片到且运行窗口RW未满,则将该服务调度到运行窗口RW中,若PQ中某服务资源被占用,则自动调度到等待队列中。
Step3:运行窗口RW依据服务对资源要求从高到底的原则以及运行时间最小的原则综合调度,选取合适的运行窗口执行服务。
Step4:服务结束后进入运行结束队列CQ,根据服务处理结果进入成功运行队列SQ或运行失败队列FQ中。运行成功则释放占用资源,微服务进入等待队列MWQ等待再次被调用;运行失败则进入异常处理模块。
当微服务等待队列MWQ更新时,等待队列WQ中的云服务优先级也会随之更新,保证云服务与微服务之间资源匹配最佳,实现系统资源的最大化利用。
并发性是衡量服务器单体性能的重要指标。为提升云服务的并发性能,一方面可扩展服务集群数量,但会增加成本;另一方面可提升服务器单体性能,从而提升整体性能。
除硬件平台外,底层I/O效率是影响服务器并发性能的主要因素。不同I/O模型在并发性方面差距较大。目前主流的IO多路复用模型主要有select、poll和epoll三种,其中select和poll原理相似,表27对三种模型进行了简单的对比。
表27 I/O模型对比表
在连接数量大,且活跃数量不大的时候,select效率高于epoll;当在连接数量大且活跃户数量也大时,epoll效率要高于select。云服务平台提供多种云服务,不同云服务的活跃度不同,故适用的IO模型也不同。针对各服务特点以及结合IO模型的优势,本发明采用“因地制宜”的思想,采用select+epoll的Mix-IO模型来提升系统并发性能。在服务运行过程中,根据服务自身特点与运行状况动态地进行IO模型选择,实现服务与模型的软匹配。整个流程如下图13所示。
Step1:云服务创建后,Mix-IO模型首先进行IO模型初始化,然后为云服务设定select与epoll模型之间转换的阈值。
Step2:云服务平台监测服务的响应时间,判断其是否超过服务本身设定的响应时间阈值,若超过阈值则减小并发阈值(并发终端的数量),否则阈值保持不变。
Step3:云服务平台检测服务类型及当前并发数量,若并发数量达到设定阈值则更新服务的IO模型,否则保持原有IO模型。
Mix-IO模型通过对服务响应时间和并发量的监测,可自动为服务选择合适的IO模型,优化系统资源,提升系统并发能力。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.基于微服务的陪护机器人云服务系统,其特征是,包括终端及云服务平台,所述终端包括移动终端及陪护机器人,所述云服务平台接收终端发起的连接请求,通过协议萃取模型对终端协议进行萃取存储,然后对终端连接请求进行解析并进行服务处理,最后将处理结果通过响应接口反馈至终端;
所述云服务平台的业务层基于微服务实现,包括多个细粒度的底层微服务;
所述协议萃取模型包括协议识别模块、类型模块、格式模块、协议封装模块、版本模块、协议文本模块和协议库;
协议识别模块,用于注册协议的类型、版本和格式识别,判定协议库是否存有该协议,根据识别结果,告知陪护机器人云服务平台是否可识别该协议;若不能识别,则要求陪护机器人上传协议类型;
类型模块,用于陪护机器人协议类型的解析、检索,若检索成功,则根据其类型生成对应协议字段,并要求陪护机器人上传协议版本,若检索失败,协议注册失败;
版本模块,用于对陪护机器人使用的协议版本字段进行提取、检索,查看陪护机器人协议版本与协议库中协议版本是否兼容,若兼容,则自动生成对应版本类型,并要求陪护机器人上传协议格式,否则协议注册失败;
格式模块,用于对陪护机器人协议的结构、字段类型、数据范围的协议格式进行提取、检索,检测协议格式是否正确,并反馈匹配结果,若正确,则进行协议格式生成,并要求陪护机器人上传自身协议文本,否则协议注册失败,保证陪护机器人上传的协议格式与协议库存储的协议格式匹配;
协议文本模块,由文本解析、文本检索和文本生成三个子模块构成,负责对陪护机器人使用的协议文本进行提取、检索和生成,保证陪护机器人协议文本与协议库中协议文本的一致性;
协议封装模块,用于对陪护机器人协议中的类型模块生成的对应类型、版本模块生成的对应版本类型、格式模块生成的协议格式和协议文本进行二次封装,生成统一的存储格式,便于协议库管理;
协议库:分类存储所有陪护机器人的协议。
2.如权利要求1所述的基于微服务的陪护机器人云服务系统,其特征是,所述陪护机器人端包含陪护机器人注册接口、陪护机器人协议注册接口、服务发布接口、陪护机器人状态发布接口、陪护机器人服务注销接口和陪护机器人注销接口;
陪护机器人注册接口,用于向云服务平台新增陪护机器人代理实例;机器人启动后,首先通过Raspberry Pi检测网络信息,在获取网络的ssid和key后采用Websocket协议通过陪护机器人注册接口向云服务平台发起注册请求,云服务平台创建陪护机器人代理实例,将注册结果封装为Json,通过陪护机器人注册响应接口反馈给陪护机器人;
陪护机器人协议注册接口,用于陪护机器人将自身协议注册到云服务平台,陪护机器人与云服务平台首次建立连接后,云服务平台邀请陪护机器人进行协议注册,陪护机器人通过陪护机器人协议注册接口将信息封装后向云服务平台发起请求,接口层的萃取机制将自动解析存储,并按照协议注册响应接口进行封装,通过协议注册响应接口回复陪护机器人;
陪护机器人状态发布接口,用于陪护机器人向云服务平台上传自身状态数据,包括各种传感器信息、音视频信息、服务状态信息,保证陪护机器人状态与陪护机器人代理实例状态一致,陪护机器人将本体状态数据进行封装并通过陪护机器人状态发布接口上传数据,云服务平台根据状态数据更新陪护机器人代理实例的状态,保持两者状态一致;
陪护机器人服务注销接口,用于陪护机器人撤销影子服务实例,当陪护机器人自身某种功能出现故障、不再维护或存在安全隐患时,陪护机器人将该功能数据以陪护机器人服务注销接口的形式进行封装,通过陪护机器人服务注销接口发起服务注销请求,云服务平台根据请求数据中的service字段删除对应的影子服务实例;
陪护机器人注销接口,用于撤销陪护机器人代理实例,陪护机器人下线时,通过陪护机器人注销接口向云服务平台提交注销请求,云服务平台根据robot_id删除对应陪护机器人代理实例,释放资源,完成注销。
3.如权利要求1所述的基于微服务的陪护机器人云服务系统,其特征是,所述移动终端包括陪护机器人订阅接口、服务订阅接口、服务申请接口、服务调用接口、撤销服务订阅接口、撤销陪护机器人订阅接口;
陪护机器人订阅接口,用于在云服务平台为移动终端APP代理实例和陪护机器人代理实例之间建立数据通道,陪护机器人上线后,移动终端APP封装订阅消息通过陪护机器人订阅接口向云服务平台发起陪护机器人订阅请求,云服务平台根据请求数据为移动终端APP代理实例和陪护机器人代理实例建立通信连接,并将陪护机器人当前服务列表信息反馈给移动终端APP,告知订阅是否成功;
服务订阅接口,用于移动终端APP影子服务实例的创建,为移动终端APP代理实例与陪护机器人影子服务实例建立通信绑定,移动终端APP可通过该接口订阅感兴趣的非独占服务;
服务申请接口,用于移动终端APP向云服务平台申请独占服务的使用权限,移动终端APP调用独占服务前,首先通过该接口发起服务申请请求,云服务平台根据服务状态通过服务申请响应接口反馈给移动终端APP服务申请结果;
服务调用接口,用于移动终端APP向陪护机器人发送控制指令,服务申请成功后,移动终端APP将控制指令封装为请求数据包,通过该接口调用陪护机器人服务;
撤销服务订阅接口,用于云服务平台撤销移动终端APP代理实例与陪护机器人影子服务实例的通信绑定以及删除移动终端APP影子服务实例,当不再使用某种服务时,移动终端APP通过撤销服务订阅接口向云服务平台提交请求,云服务平台根据当前可用的服务列表删除对应实例,撤销成功;
撤销陪护机器人订阅接口,用于撤销移动终端APP与陪护机器人之间的通信绑定,用户不再使用陪护机器人时,通过撤销陪护机器人订阅接口向云服务平台发送数据请求撤销对该陪护机器人的订阅,云服务平台解除移动终端APP与陪护机器人的通信绑定,删除移动终端APP代理实例。
4.如权利要求1所述的基于微服务的陪护机器人云服务系统,其特征是,所述云服务平台的业务基于微服务实现,包括微服务认证中心、微服务监控中心、微服务池、私有API接口及云服务;
微服务认证中心,微服务池中的每个微服务都有唯一的身份ID,微服务认证中心是该ID的颁发机构,该机构对微服务进行权威认证,可以获取每个微服务的身份信息并确认该信息是否正确;
微服务监控中心对微服务池中所有的微服务进行健康检查和日志采集,微服务健康检查能够及时发现异常的微服务实例,并尽快更新微服务数据,提醒运维人员及时修复,微服务日志采集,记录了每个微服务的运行状态,通过数据可分析出微服务存在的安全隐患以及性能瓶颈;
微服务池包括多个微服务,所述微服务之间采用轻量级的REST API接口进行通信,协同工作,根据云服务的需求动态地创建和析构服务实例;
私有API接口,云服务与微服务池通过私有API接口进行通信,与云机交互协议完全隔离,实现在Web协议与内部私有协议之间的转换;
云服务,面向终端用户,以功能为主要导向封装,负责业务逻辑的处理,底层由多个微服务构成,微服务之间协同工作,共同为云服务提供服务。
5.如权利要求1所述的基于微服务的陪护机器人云服务系统,其特征是,所述云服务平台中数据的存储采用关系型数据库和非关系型数据库混合的数据存储方式,服务通过连接池与数据库建立连接,连接池根据连接请求的数据类型选择合适的数据库进行连接;
关系型数据库存储结构化数据,包括云服务信息表、陪护机器人信息表、用户信息表和绑定关系信息表,各数据表单展示了信息的字段名、类型以及意义;
非关系型数据库存储非结构化数据,存储的数据包括语料数据、协议文本数据,语料数据分为文本类、资源类、指令类。
6.基于微服务的陪护机器人云服务系统通信方法,其特征是,包括:
云服务平台与陪护机器人建立首次连接后,利用协议萃取模型开启协议萃取机制,判定是否能与该陪护机器人正常通信,若能正常通信,则进入服务交互阶段,否则进入协议注册阶段;
协议萃取机制流程如下:
陪护机器人采用Websocket协议与云服务平台建立连接,云服务平台向陪护机器人发出协议注册邀请;
陪护机器人发起协议注册请求,协议识别模块首先对陪护机器人协议进行识别,并反馈识别是否成功,即云服务平台是否识别该陪护机器人,若不能识别,则要求陪护机器人上传协议类型;
陪护机器人上传协议类型,类型管理模块根据上传的数据进行协议类型检索,并反馈检索是否成功,若检索成功,则生成对应类型,并要求陪护机器人上传协议版本,否则协议注册失败;
陪护机器人上传协议版本,版本管理模块进行查询匹配,并反馈匹配结果,成功则自动生成对应版本类型,并要求陪护机器人上传协议格式,否则协议注册失败;
陪护机器人上传协议格式,格式管理模块检测格式是否正确,并反馈匹配结果,若正确,则进行协议格式生成,并要求陪护机器人上传自身协议文本,否则协议注册失败;
陪护机器人上传协议文本,协议封装模块将以上生成的对应类型、对应版本类型、协议格式和协议文本进行封装,并将封装结果存储在协议库中,协议注册成功;
协议萃取模型通知云服务平台陪护机器人协议注册成功,云服务平台反馈确认信息,表明已经识别该陪护机器人,两者进入服务交互阶段;
陪护机器人向云服务平台发起服务请求,云服务平台通过协议萃取机制自动解析请求,并作出响应。
7.如权利要求6所述的基于微服务的陪护机器人云服务系统通信方法,其特征是,当大量终端向云服务平台请求服务时,所述云服务平台以云服务和微服务对系统资源要求的匹配度为依据进行服务调度,将资源匹配度与优先级作出定义列表,建立基于资源匹配的多优先级调度模型,该模型包括等待队列WQ:云服务请求等待队列;微服务等待队列MWQ:空闲微服务等待队列;就绪队列PQ:包括多个优先级队列,每个队列优先级相同,依次为Pri0到Pri9;运行窗口RW:提供服务运行环境,就绪队列中服务可运行时,进入该运行窗口RW执行;运行结束队列CQ:包括运行成功队列SQ和运行失败队列FQ。
9.如权利要求7所述的基于微服务的陪护机器人云服务系统通信方法,其特征是,基于资源匹配的多优先级调度策略,具体为:
各终端提交的云服务请求首先进入等待队列WQ,微服务等待队列MWQ维护空闲微服务,进行资源匹配度计算,得出云服务的优先级,然后周期性检查等待队列,若系统资源满足服务需要,同时该优先级的就绪队列未满,则根据其优先级计入到PQ相应的优先级就绪队列中,否则继续保持在等待队列,各终端包括陪护机器人和移动终端;
根据优先级从高到低周期性扫描就绪队列PQ,若队列时间片到且运行窗口RW未满,则将该服务调度到运行窗口RW中,若PQ中某服务资源被占用,则自动调度到等待队列中;
运行窗口RW依据服务对资源要求从高到低的原则以及运行时间最小的原则综合调度,选取运行窗口执行服务;
服务结束后进入运行结束队列CQ,根据服务处理结果进入运行成功队列SQ或运行失败队列FQ中,运行成功则释放占用资源,微服务进入微服务等待队列MWQ等待再次被调用;运行失败则进入异常处理模块;
当微服务等待队列MWQ更新时,等待队列WQ中的云服务优先级也会随之更新,保证云服务与微服务之间资源匹配最佳,实现系统资源的最大化利用。
10.如权利要求6所述的基于微服务的陪护机器人云服务系统通信方法,其特征是,云服务平台采用select+epoll的Mix-IO模型来提升系统并发性能,在服务运行过程中,根据服务自身特点与运行状况动态地进行IO模型选择,实现服务与模型的软匹配;
云服务创建后,Mix-IO模型首先进行IO模型初始化,然后为云服务设定select与epoll模型之间转换的阈值;
云服务平台监测服务的响应时间,判断其是否超过服务本身设定的响应时间阈值,若超过阈值则减小并发阈值即并发终端的数量,否则阈值保持不变;
云服务平台检测服务类型及当前并发数量,若并发数量达到设定阈值则更新服务的IO模型,否则保持原有IO模型;
Mix-IO模型通过对服务响应时间和并发量的监测,自动为服务选择IO模型,优化系统资源,提升系统并发能力。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810637090.3A CN108880887B (zh) | 2018-06-20 | 2018-06-20 | 基于微服务的陪护机器人云服务系统及方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201810637090.3A CN108880887B (zh) | 2018-06-20 | 2018-06-20 | 基于微服务的陪护机器人云服务系统及方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108880887A CN108880887A (zh) | 2018-11-23 |
CN108880887B true CN108880887B (zh) | 2020-05-12 |
Family
ID=64339859
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201810637090.3A Active CN108880887B (zh) | 2018-06-20 | 2018-06-20 | 基于微服务的陪护机器人云服务系统及方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108880887B (zh) |
Families Citing this family (29)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111324644B (zh) * | 2018-11-28 | 2023-10-27 | 中国移动通信集团浙江有限公司 | 大型微服务架构下的数据库连接风暴的监控方法及装置 |
CN109413115B (zh) * | 2018-12-29 | 2021-08-20 | 中国银行股份有限公司 | 协议文本解析方法及系统 |
CN111490890A (zh) * | 2019-01-28 | 2020-08-04 | 珠海格力电器股份有限公司 | 基于微服务架构的分级注册方法、装置、存储介质及设备 |
CN109889406B (zh) * | 2019-02-02 | 2021-05-14 | 北京百度网讯科技有限公司 | 用于管理网络连接的方法、装置、设备和存储介质 |
CN109889416B (zh) * | 2019-02-18 | 2020-06-19 | 西安交通大学 | 一种基于微服务架构的智能家居系统及构建方法 |
CN109948710B (zh) * | 2019-03-21 | 2021-03-30 | 杭州电子科技大学 | 基于api相似度的微服务识别方法 |
CN110138669B (zh) * | 2019-04-15 | 2023-02-07 | 中国平安人寿保险股份有限公司 | 接口访问处理方法、装置、计算机设备及存储介质 |
CN110298919B (zh) * | 2019-05-13 | 2023-08-29 | 广东领慧数字空间科技有限公司 | 一种应用于建筑智能测量的云服务系统 |
CN110209651B (zh) * | 2019-05-16 | 2023-06-09 | 南京华盾电力信息安全测评有限公司 | 基于MongoDB的时序数据库系统 |
CN110351366B (zh) * | 2019-07-12 | 2022-07-01 | 西安雷迪信息技术有限公司 | 一种互联网应用的服务调度系统和方法及存储介质 |
WO2021012235A1 (zh) * | 2019-07-24 | 2021-01-28 | Oppo广东移动通信有限公司 | 一种影子设备的生成方法、设备及存储介质 |
CN110430260B (zh) * | 2019-08-02 | 2022-05-13 | 安徽领云物联科技有限公司 | 一种基于大数据云计算支撑的机器人云平台及工作方法 |
CN110430079B (zh) * | 2019-08-05 | 2021-03-16 | 腾讯科技(深圳)有限公司 | 车路协同系统 |
CN110427039A (zh) * | 2019-08-29 | 2019-11-08 | 山东大学 | 一种基于ros2的分布式云导航系统及导航方法 |
CN110727518B (zh) * | 2019-10-14 | 2022-05-27 | 北京奇艺世纪科技有限公司 | 一种数据处理方法及相关设备 |
CN112749050B (zh) * | 2019-10-29 | 2023-04-07 | 中国移动通信集团浙江有限公司 | 基于微服务框架的安全断路方法、装置及计算设备 |
CN111064722B (zh) * | 2019-12-12 | 2022-10-25 | 山西云时代技术有限公司 | 一种以api方式实现集协议转换的数据共享方法 |
CN111092954B (zh) * | 2019-12-24 | 2022-05-17 | 北京首信科技股份有限公司 | 一种生成微服务的方法和装置及电子设备 |
CN113157429B (zh) * | 2020-01-22 | 2024-04-09 | 中移智行网络科技有限公司 | 一种saas云服务实现方法及系统 |
CN111694857B (zh) * | 2020-06-12 | 2023-11-07 | 北京百度网讯科技有限公司 | 存储资源数据的方法、装置、电子设备及计算机可读介质 |
CN112231117B (zh) * | 2020-10-13 | 2023-05-09 | 山东大学 | 基于动态向量混合遗传算法的云机器人服务选择方法及系统 |
CN112327719B (zh) * | 2020-11-19 | 2022-10-25 | 山东高速信息集团有限公司 | 一种智慧园区中台统一应用接口库的实现方法及系统 |
CN112732810A (zh) * | 2020-12-31 | 2021-04-30 | 青岛海尔科技有限公司 | 数据发送系统及方法、装置、存储介质、电子装置 |
CN114915647B (zh) * | 2021-01-28 | 2023-08-29 | 复旦大学 | 基于微服务的前沿装备远程互动体验系统 |
CN113612686A (zh) * | 2021-06-29 | 2021-11-05 | 中国人民财产保险股份有限公司 | 流量调度方法、装置及电子设备 |
CN113918533B (zh) * | 2021-09-07 | 2023-02-03 | 杭州和佳汇智技术有限公司 | 一种基于大数据方向的rcs统一消息云服务系统的使用方法 |
CN113570347A (zh) * | 2021-09-24 | 2021-10-29 | 国网江苏省电力有限公司营销服务中心 | 一种面向微服务架构系统的rpa运维方法 |
CN114167759B (zh) * | 2021-11-25 | 2023-06-16 | 中万恩科技有限公司 | 一种4g信号传输与数据管理的洗碗机控制器 |
CN115037807B (zh) * | 2022-06-10 | 2023-08-18 | 湖南大学 | 一种工业机器人服务总线上集成dds协议的方法及系统 |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107612812A (zh) * | 2017-08-28 | 2018-01-19 | 珠海凡泰极客科技有限责任公司 | 一种基于聊天机器人的证券开户方法和系统 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20100067174A (ko) * | 2008-12-11 | 2010-06-21 | 한국전자통신연구원 | 음성 인식을 이용한 메타데이터 검색기, 검색 방법, iptv 수신 장치 |
-
2018
- 2018-06-20 CN CN201810637090.3A patent/CN108880887B/zh active Active
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107612812A (zh) * | 2017-08-28 | 2018-01-19 | 珠海凡泰极客科技有限责任公司 | 一种基于聊天机器人的证券开户方法和系统 |
Non-Patent Citations (1)
Title |
---|
一种机器人云平台服务构建与调度新方法;周风余等;《机器人》;20170131;全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN108880887A (zh) | 2018-11-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108880887B (zh) | 基于微服务的陪护机器人云服务系统及方法 | |
US10324711B2 (en) | System and method for the data management in the interaction between machines | |
US10133797B1 (en) | Distributed heterogeneous system for data warehouse management | |
CN109889575B (zh) | 一种边缘环境下的协同计算平台系统及方法 | |
WO2022095435A1 (zh) | AIOT设备接入PaaS和SaaS多级联动管理平台 | |
CN107729139B (zh) | 一种并发获取资源的方法和装置 | |
CN106713018B (zh) | 消息队列业务数据调度及消息队列的实现方法 | |
CN110531987A (zh) | 基于Kubernetes集群的管理方法、装置及计算机可读存储介质 | |
CN111752965B (zh) | 一种基于微服务的实时数据库数据交互方法和系统 | |
CN106777135B (zh) | 服务调度方法、装置及机器人服务系统 | |
CN108449410A (zh) | 一种云平台中消息管理方法、系统及相关装置 | |
WO2021088641A1 (zh) | 数据发送方法、处理方法、接收方法及其设备、存储介质 | |
CN105809356A (zh) | 一种基于应用集成云平台的信息系统资源管理方法 | |
CN113868081A (zh) | 一种用于电网物联管理平台的边缘计算框架及其工作方法 | |
CN104899274B (zh) | 一种内存数据库高效远程访问方法 | |
CN105913847A (zh) | 语音控制系统、用户端设备、服务器和中央控制单元 | |
CN101694709A (zh) | 一种面向服务的分布式工作流管理系统 | |
CN102917006B (zh) | 一种实现计算资源和对象权限的统一控制管理方法及装置 | |
CN111414381B (zh) | 数据处理方法、装置、电子设备及存储介质 | |
CN113326155A (zh) | 一种信息处理方法、装置、系统和存储介质 | |
WO2021244644A1 (zh) | 动态整合应用程序的方法及其软件系统与机器 | |
CN110476154A (zh) | 用于数据收集的代理服务器设备和方法 | |
WO2021114816A1 (zh) | 基于机器人操作系统的消息处理方法、装置及计算机设备 | |
CN108415689A (zh) | 基于泛在对象三段式装配的软件构成方法 | |
CN112887356A (zh) | 共享內存的数据分发服务的系统及其运作方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant | ||
TR01 | Transfer of patent right |
Effective date of registration: 20221226 Address after: 1201-7, Floor 12, Hanyu Jingu Artificial Intelligence Building, Jingshi Road, Jinan Area, China (Shandong) Pilot Free Trade Zone, 250000 Shandong Province Patentee after: Shandong Xinchen Artificial Intelligence Technology Co.,Ltd. Address before: 250061, No. ten, No. 17923, Lixia District, Ji'nan City, Shandong Province Patentee before: SHANDONG University |
|
TR01 | Transfer of patent right |