一种通信系统及通信方法与流程

文档序号:15049757发布日期:2018-07-27 23:59阅读:144来源:国知局

本申请涉及通信技术领域,尤其涉及一种通信系统及信息服务系统和控制服务系统之间的通信方法。



背景技术:

在通信系统中,信息服务系统用来实现对资源的管理与业务方面的组合,同时接受并处理多用户的业务请求,处理复杂的业务逻辑。控制服务系统可以控制通信终端,并收集通信终端的状态,同时提供对外接口与其他服务进行交互。信息服务系统和控制服务系统之间相互独立,各自完成各自的功能,两种服务系统之间又可以根据定义的接口完成交互,通过组合的方式完成更加复杂的功能,两个服务系统协同工作完成各种业务功能。根两个服务系统之间根据业务需求决定,需要两个服务系统的需要双向通信方式,同时通信方式,既需要同步方式的通信,也需要异步方式的通信。

现有技术的方案中,信息服务系统和控制服务系统之间的通信方式主要包括两种:

(一)基于远程调用方式实现系统间通信

web服务(webservice)的形式,是一种跨语言的系统间交互标准,对外提供功能的一方以超文本传输协议(http,hypertexttransferprotocol)的方式提供服务,调用端和服务端通过简单对象访问协议(soap,simpleobjectaccessprotocol)方式来进行交互。

(二)基于websocket的通信方式。

在websocket的应用程序编程接口(api,applicationprogramminginterface)中,浏览器和服务器只需要要做一个握手的动作,然后,浏览器和服务器之间就形成了一条快速通道。两者之间就直接可以数据互相传送,改变了原有的浏览器/服务器(b/s)模式。现有的websocket技术通常是应用于浏览器和服务器之间的异步通信。

但是,现有技术具有如下的缺点:

上述基于远程调用方式实现系统间的通信方式中,webservice速度较慢,需要在优化速度上做较多工作,在大量数据传输的系统上并不适用。webservice实现双向通信,只能采用客户端轮询调用,webservice无法主动向客户端发送数据,比较消耗资源。

上述websocket的通信方式中,websocket大多用于浏览器和系统之间的通信,且websocket的通信为异步的通信方式,不能满足通信系统中既要同步通信又要异步通信的需求。



技术实现要素:

有鉴于此,本发明的主要目的是提供一种通信系统及信息服务系统和控制服务系统之间的通信方法,在实现信息服务系统和控制服务系统之间既可以同步通信又可以异步通信的同时,又节约成本。

本发明的技术方案是这样实现的:

一种信息服务系统和控制服务系统之间的通信方法,包括:

信息服务系统和控制服务系统之间采用双向通信;

信息服务系统接收控制请求,判断控制请求的类型;

如果是异步控制请求,则发送给控制服务系统,并异步地接收控制服务系统返回的控制结果;

如果是同步控制请求,则根据该同步控制请求的业务类型的划分,将该同步控制请求放入其业务类型对应的同步控制请求队列中,之后对于同步控制请求队列中的同步控制请求,按照先入先出的顺序向控制服务系统发出同步控制请求,待收到控制服务系统返回的该同步控制请求的控制结果后,再向控制服务系统发出本同步控制请求队列中的下一条同步控制请求。

在所述方法的一种优选实施例中,所述信息服务系统判断控制请求的类型,具体包括:信息服务系统根据业务模型需求对异步控制请求和同步控制请求的划分,判断当前收到的控制请求是异步控制请求或同步控制请求。

在所述方法的一种优选实施例中,所述信息服务系统和控制服务系统之间通过websocket实现双向通信。

在所述方法的一种优选实施例中,所述同步控制请求队列具有一个以上,所述信息服务系统将同种业务类型、且具有相互关联的同步控制请求放入同一个同步控制请求队列中。

一种通信系统,包括信息服务系统和控制服务系统,

所述信息服务系统和控制服务系统之间采用双向通信;

所述信息服务系统包括以下模块:

请求判断模块,用于接收控制请求,判断控制请求的类型;如果是异步控制请求,则触发异步模块;如果是同步控制请求则触发同步模块;

所述异步模块用于将所述异步控制请求发送给控制服务系统,并异步地接收控制服务系统返回的控制结果;

所述同步模块,用于根据所接收到的同步控制请求的业务类型的划分,将该同步控制请求放入其业务类型对应的同步控制请求队列中,之后对于同步控制请求队列中的同步控制请求,按照先入先出的顺序向控制服务系统发出同步控制请求,待收到控制服务系统返回的该同步控制请求的控制结果后,再向控制服务系统发出本同步控制请求队列中的下一条同步控制请求。

在所述方法的一种优选实施例中,所述请求判断模块具体用于:根据业务模型需求对异步控制请求和同步控制请求的划分,判断当前收到的控制请求是异步控制请求或同步控制请求。

在所述方法的一种优选实施例中,所述信息服务系统和控制服务系统之间通过websocket实现双向通信。

在所述方法的一种优选实施例中,所述同步控制请求队列具有一个以上,所述信息服务系统的同步模块用于将同种业务类型、且具有相互关联的同步控制请求放入同一个同步控制请求队列中。

与现有技术相比,本发明所述信息服务系统和控制服务系统之间的通信为双向通信,而且对于异步控制请求采用现有通信协议的异步通信方式即可,对于同步控制请求,则在信息服务系统中根据业务类型的划分,放入对应的同步控制请求队列中,对于所述同步控制请求队列中的同步控制请求,采用同步时序控制进行发送,因此在不修改信息服务系统和控制服务系统之间的通信协议的情况下,既可以实现异步通信又可以实现同步通信,节约了更新升级的成本,同时也降低了两个系统之间的耦合性,使得系统的扩展性大大提高了。

附图说明

图1为本发明所述的通信系统在一种应用场景下的一种架构示意图;

图2为本发明所述信息服务系统和控制服务系统之间进行通信的一种流程示意图。

具体实施方式

下面结合附图及具体实施例对本发明再作进一步详细的说明。

首先说明本说明书所述同步和异步的概念。

所述同步,就是指一个进程在执行某个请求的时候,若该请求需要一段时间才能返回信息,那么这个进程将会一直等待下去,直到收到返回信息才继续执行下去。

所述异步,是指进程不需要一直等下去,而是继续执行下面的操作,不管其他进程的状态。当有消息返回时系统会通知进程进行处理,这样可以提高执行的效率。

图1为本发明所述的通信系统在一种应用场景下的一种架构示意图。参见图1,本发明的通信系统主要包括信息服务系统101和控制服务系统102。

在图1所述的应用场景下,

所述用户103用于发送控制请求,并接受控制请求的结果以及被监控终端设备的状态变化情况。

所述信息服务系统101和控制服务系统102之间采用双向通信。

所述信息服务系统101统一接受用户的请求,管理系统的所有数据信息;同时根据业务配置把用户的控制请求转发给控制服务系统102;并接收控制结果,接收控制服务系统102收集到的终端的状态变化;并把以上信息通知给用户。

所述控制服务系统102用于控制并监控终端104的状态变化,收集终端104的变化状态,处理信息服务系统101发送的控制请求,并把对终端104的控制结果以及终端104自动发起的状态变化发送给信息服务系统101。信息服务系统101收到信息后把信息转给相关的用户103。

所述终端104是最终的监控与控制目标。

根据业务需求,本发明要求信息服务系统和控制服务系统之间的通信必须为双向通信。所述双向通信是指:信息服务系统和控制服务系统能够同时向对方发送数据。并且,所述信息服务系统和控制服务系统之间的通信分为两类:同步通信和异步通信。

在一种优选实施例中,所述信息服务系统和控制服务系统之间直接采用websocket实现双向通信。

websocket是一种双向通信协议,在建立连接后,信息服务系统和控制服务系统都能主动的向对方发送或接收数据。信息服务系统可以发送控制请求给控制服务系统,控制服务系统把控制请求的响应结果以及监测到终端状态变化发送给信息服务系统。实现信息服务系统以及控制服务系统两个系统服务之间的双向通信。

websocket也是异步通信,绝大部分的命令可以采取异步通信方式,如果命令是相互之间有关联的命令,即同步命令,就需要获取命令执行结果后才能发送新的命令。

本发明所述的通信系统中,需要在信息服务系统和控制服务系统之间的一条通路中实现同步通信与异步通信的两种通信方式。根据业务需求,对于没有逻辑关联的控制请求,信息服务系统采用异步的方式发送给控制服务系统,对于有逻辑关联的控制请求,根据系统需求,可以进入不同的同步控制请求队列,采用同步方式发送给信息服务系统。

本发明所述的信息服务系统和控制服务系统之间还具有低耦合性、易扩展的特点。其中,对于控制服务系统,只需要简单的接收控制请求、执行控制请求、收集终端状态信息即可,不需要考虑时序问题,也不需要考虑业务逻辑问题,即控制服务系统中没有时序控制模块和业务逻辑模块。所述时序以及业务逻辑问题集中在信息服务系统端进行控制,即所述信息服务系统中包括时序模块和业务逻辑模块,信息服务系统的业务逻辑模块根据业务类型决定控制请求之间的是同步发送还是异步发送,所述时序模块包含在同步模块中,用于对同步控制请求队列中的同步控制请求进行时序控制。本发明在新增业务的时候,扩展比较方便。由于以上特性,本发明的信息服务系统和控制服务系统之间是相对独立的,耦合性低,扩展容易。当需要增加业务逻辑模块时,只需要在信息服务系统中增加即可,控制服务系统不需要增加,而且由于仅仅是信息服务系统通过同步控制实现同步控制请求的传送,因此系统间的websocket通信协议也不需要修改,所以修改更新的成本较低。

本发明主要公开的是一种信息服务系统和控制服务系统之间的通信方法。用户发送请求给信息服务系统,信息服务系统根据请求类型进行分类,分为控制请求、和信息管理请求。

对于控制请求,信息服务系统再次判断该控制请求的类型。具体为:信息服务系统会根据业务模型需求,把所述控制请求分为二类:同步控制请求和异步控制请求。当信息服务系统收到控制请求后,会根据业务模型需求对异步控制请求和同步控制请求的划分,判断当前收到的控制请求是异步控制请求或是同步控制请求。

如果是异步控制请求,信息服务系统直接将该异步控制请求发送给控制服务系统,并不需要等待控制服务系统对此异步控制请求的执行结果,在控制请求被控制服务系统执行后,控制服务系统异步地把控制结果传递给信息服务系统,信息服务系统异步地接收控制服务系统返回的控制结果。

如果是同步控制请求,信息服务系统根据该同步控制请求的业务类型的划分,将该同步控制请求放入其业务类型对应的同步控制请求队列中,之后对于同步控制请求队列中的同步控制请求,按照先入先出的顺序向控制服务系统发出同步控制请求,待收到控制服务系统返回该同步控制请求的控制结果后,再向控制服务系统发出本同步控制请求队列中的下一条同步控制请求。

在一种优选实施例中,所述同步控制请求队列具有一个以上,所述信息服务系统将同种业务类型、且具有相互关联的同步控制请求放入同一个同步控制请求队列中。

与上述方法对应的,本发明所述的通信系统中,所述信息服务系统包括以下模块:

请求判断模块,用于接收控制请求,判断控制请求的类型;如果是异步控制请求,则触发异步模块;如果是同步控制请求则触发同步模块;

所述异步模块用于将所述异步控制请求发送给控制服务系统,并异步地接收控制服务系统返回的控制结果;

所述同步模块,用于根据所接收到的同步控制请求的业务类型的划分,将该同步控制请求放入其业务类型对应的同步控制请求队列中,之后对于同步控制请求队列中的同步控制请求,按照先入先出的顺序向控制服务系统发出同步控制请求,待收到控制服务系统返回的该同步控制请求的控制结果后,再向控制服务系统发出本同步控制请求队列中的下一条同步控制请求。

在一种优选实施例中,所述请求判断模块具体用于:根据业务模型需求对异步控制请求和同步控制请求的划分,判断当前收到的控制请求是异步控制请求或同步控制请求。

在一种优选实施例中,所述同步控制请求队列具有一个以上,所述信息服务系统的同步模块用于将同种业务类型、且具有相互关联的同步控制请求放入同一个同步控制请求队列中。

图2为本发明所述信息服务系统和控制服务系统之间进行通信的一种流程示意图。参见图2,所述信息服务系统和控制服务系统之间是双向通信。

其中的异步通信具体包括:信息服务系统收集用户的各种控制和监控需求,并负责发送控制请求给控制服务系统。如果控制请求不属于同步控制请求,则采用异步通信的方式发送,把所有异步控制请求都发送给控制服务系统,从控制服务系统中接受到控制结果后,记录终端状态后,并根据所述控制请求的唯一标识,把控制结果转发给用户,用户和信息服务系统直接也采用websocket的方式异步通信。

例如图2所示,如果信息服务系统依次收到异步的控制请求1、控制请求2和控制请求3,则不存在时序控制,直接将这些异步的控制请求发送给控制服务系统。控制服务系统在收到所述控制请求1、控制请求2和控制请求3后,分别执行对应的请求动作,执行完哪个控制请求的动作后就将对应的控制结果反馈给信息服务系统。例如,先执行完控制请求1的动作,则将对应的控制结果1返回给信息服务系统;之后执行完控制请求3的动作,则将对应的控制结果3返回给信息服务系统;最后执行完控制请求2的动作,则将对应的控制结果2返回给信息服务系统。

其中同步通信具体包括:如果信息服务系统接收到的控制请求属于同步控制请求,就要采取同步通信的方法,把同步控制请求放到对应的同步控制请求队列中,在每一个同步控制请求队列中,按照时序(即先入先出)发送其中的同步控制请求给控制服务系统,在本同步控制请求队列中,只有当上一个同步控制请求收到对应的控制结果后,才能依次发送本同步控制请求队列中的下一条同步控制请求。

本发明的一种优选实施例中,如图2所示,会根据同步控制请求的业务类型的划分,把同步控制请求分为不同的同步控制请求队列,这样能提高请求实时性,提高系统性能。同一个同步控制请求队列的同步控制命令是有逻辑关系的,必须等到上一个同步控制请求的执行结果才执行下一个。

例如,假设有二个终端,终端a和终端b,根据业务种类的区别,每个终端分别有1、2、3、4种需要同步的操作,即一定要同步等待操作1的结果回来之后,才能执行2操作。那么会针对终端a的同步操作设置一个同步请求队列a,针对终端b的同步操作设置一个同步请求队列b。终端a和终端b之间就不存的时序上的逻辑,因此没有必要让终端a里面的控制请求的响应时间去影响终端b的控制请求,所以终端a和终端b分别设置对应的同步请求队列。

当信息服务系统收到终端a的同步控制请求后,将该同步控制请求放入终端a对应的同步请求队列a中;当收到终端b的同步控制请求后,将给同步控制请求放入终端b对应的同步请求队列b中。针对每一个同步请求队列中的同步控制请求,按照时序要求进行同步发送,如图2所示。

通过上述技术方案,本发明具有如下有益效果:

1)通过websocket能够实现信息服务系统和控制服务系统之间的双向通信。

2)websocket通路通过设定同步控制请求对列,满足同步与异步的通信的两种要求。

3)可以设置多个同步请求队列,降低系统中必须同步命令的比例。

4)websocket是应用层协议,更具易用性,是一种轻量级通信协议,通信所占资源更少。

另外,在本发明各个实施例中的各功能模块可以集成在一个处理单元中,也可以是各个模块单独物理存在,也可以两个或两个以上模块集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。所述各实施例的功能模块可以位于一个终端或网络节点,或者也可以分布到多个终端或网络节点上。

另外,本发明的每一个实施例可以通过由数据处理设备如计算机执行的数据处理程序来实现。显然,数据处理程序构成了本发明。此外,通常存储在一个存储介质中的数据处理程序通过直接将程序读取出存储介质或者通过将程序安装或复制到数据处理设备的存储设备(如硬盘和或内存)中执行。因此,这样的存储介质也构成了本发明。存储介质可以使用任何类型的记录方式,例如纸张存储介质(如纸带等)、磁存储介质(如软盘、硬盘、闪存等)、光存储介质(如cd-rom等)、磁光存储介质(如mo等)等。

因此本发明还公开了一种存储介质,其中存储有数据处理程序,该数据处理程序用于执行本发明上述方法的任何一种实施例。

另外,本发明所述的方法步骤除了可以用数据处理程序来实现,还可以由硬件来实现,例如,可以由逻辑门、开关、专用集成电路(asic)、可编程逻辑控制器和嵌入微控制器等来实现。因此这种可以实现本发明所述方法的硬件也可以构成本发明。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1