一种基于数据分发服务的局域网即时通讯方法
技术领域
本发明涉及一种基于数据分发服务的局域网即时通讯方法,属于通信传输领域。
背景技术
DDS的全称是Data Distribution Service, 即数据分发服务,是对象管理组织(OMG)在HLA及CORBA等标准的基础上制定的新一代分布式实时通信中间件技术规范。该规范标准化了分布式实时系统中数据发布、传递和接收的接口和行为,定义了以数据为中心的发布-订阅(Data-Centric Publish-Subscribe)机制,提供了一个与平台无关的数据模型。DDS将分布式网络中传输的数据定义为主题(Topic),将数据的产生和接收对象分别定义为发布者(Publisher)和订阅者(Subscriber),从而构成数据的发布/订阅传输模型。这一技术可以集成由单独组件构建的应用程序, 距离应用程序更近。 DDS在应用程序主题、应用程序数据类型、 与应用程序相关的QoS(Quality of Service,例如可靠性,持久性,优先级, 截止日期)方面提供了更高级的接口, 并处理了诸如发现端点和建立通信之类的较低级别的细节。
数据分发服务依赖于QoS的使用,QoS由互相单独的QoS策略组成。DDS为应用程序提供QoS策略来控制大量的非功能性的应用程序属性,如数据可用性、数据交付、数据及时性和资源使用情况。DDS实体的语义和行为,如主题、数据阅读器(reader)和数据发送器(writer),可通过可用的QoS策略进行控制。
在局域网即时通讯工具领域,已有的一些成熟设计和产品,如飞鸽传书、大蚂蚁等。以飞鸽传书为例,是一种面向企业、学校、家庭的局域网即时通讯条件,实现了局域网内部消息和文件的高速传书,具有即装即用、传输快捷等优点。但飞鸽传书存在底层通信机制的问题,无法保证数据的安全性;欠缺对用户数据合法性的管理;跨网段的通信容易出现问题。
因此,亟需一种用于局域网的来保证与飞鸽传书的相同体验的基础上,为用户进一步提供可定制化的管理性、安全性、可配置性和扩展性。
发明内容
本发明要解决的技术问题是:提供一种应用于局域网中的与飞鸽传书有着同样用户体验的,且可进一步满足定制化的管理性、安全性、可配置性和扩展性的即时通讯手段。
为了解决上述技术问题,本发明提出的技术方案是:一种基于数据分发服务的局域网即时通讯方法,执行如下步骤:
1)为使用场景下的各第一通讯程序部署一个发布者和一个订阅者;
2)启动其中一个第一通讯程序,并通过该第一通讯程序的发布者启动发布流程并携带该第一通讯程序的身份信息,同时利用该第一通讯程序的订阅者订阅并读取其他用户的身份信息;
所述发布流程基于数据分发服务的QoS策略和底层实现机制;
3)通过该第一通讯程序的订阅者订阅并读取其他第一通讯程序的身份信息,实现组网加入;
所述局域网即时通讯方法可生成隔离域、可生成聊天群组、可形成信息聚合载体、可有选择的进行屏蔽;
所述局域网中可加入第二通讯程序,所述第二通讯程序基于数据分发服务,并与所述第一通讯程序相同均部署了一个发布者和一个订阅者。
上述方案的进一步改进是:当在所述局域网即时通讯中需要生成隔离域时,为各个第一通讯程序设置域ID,通过不同的域ID对第一通讯程序进行分组隔离。
上述方案的进一步改进是:当所述局域网即时通讯中需生成聊天群组时,所述第一通讯程序中的其中一个第一通讯程序通过该第一通讯程序的发布者向其他第一通讯程序或其他第一通讯程序之一的订阅者发送聊天信息。
上述方案的进一步改进是:当所述局域网即时通讯中需形成信息聚合载体时,则在所述局域网中搭建一个信息迅速传播的技术平台,相应的各个第一通讯程序既成为所述技术平台的潜在信息提供者,又成为所述技术平台的潜在用户接收者;各个第一通讯程序所发布的信息可根据其对应的主题进行分类。
上述方案的进一步改进是:各个第一通讯程序可通过设置主题,有选择的接收信息;且可同时通过数据分发服务所提供的基于内容的过滤机制屏蔽其他第一通讯程序发送来的信息。
上述方案的进一步改进是:步骤1)中还部署了一个用于管理各个第一通讯程序的管理中心;所述管理中心中还监听当前局域中的全部流量或部分流量;所述第一通讯装置中设置有与所述管理中心互联的管理客户端,所述管理客户端还负责对所述第一通讯装置中的订阅者和发布者发送指令。
本发明的有益效果是:基于数据分发服务DDS所提供的动态发现机制,第二通讯程序和同第一通讯程序一样被局域网中的其他用户(通讯程序)发现,并融入网络通讯中,从而实现通讯工具的“即插即用”。信息发布通过DDS的QoS策略和底层实现机制,保证了各个通讯工具的数据传输可靠性。
附图说明
图1是本发明的实施例一的一种基于数据分发服务的局域网即时通讯方法的简单流程示意图。
图2是本发明的实施例一中一种基于数据分发服务的局域网即时通讯方法所应用的一个较基础的使用场景示意图。
图3是本发明的实施例一中在有隔离需求的使用场景下本发明的应用示意图。
图4是本发明的实施例一中在有屏蔽需求的使用场景下本发明的应用示意图。
图5是本发明的实施例二中在有管理需求的使用场景下本发明的应用示意图。
具体实施方式
实施例一
本实施例的一种基于数据分发服务的局域网即时通讯方法,简而言之是,执行如图1所示的步骤:1)进行通讯程序或其内部的部署;2)全部启动或部分启动其中的通讯程序;3)启动的通讯程序向其他通讯程序发送身份信息并从其他通讯程序接收身份信息,以实现加入和完成动态发现。具体如下,
1)为使用场景下的各通讯程序部署一个发布者和一个订阅者;如图2所示,是一个简单的应用场景(例如家庭网络),该场景下有通讯程序1、通讯程序2、通讯程序3,分别对应发布者1、订阅者1、发布者2、订阅者2、发布者3、订阅者3。该场景下的通讯程序通过网络互联。可以看到,发布者1发送的信息被订阅者2和订阅者3接收,同理,发布者2发送的信息被订阅者1和订阅者3接收,发布者3发送的信息被订阅者1和订阅者2接收。
2)启动其中一个通讯程序,并通过该通讯程序的发布者启动发布流程并携带该通讯程序的身份信息;与此同时,利用该通讯程序的订阅者订阅其他通讯程序的身份信息;
发布流程基于数据分发服务的QoS策略和底层实现机制;
3)通过该通讯程序的订阅者订阅并读取其他通讯程序的身份信息,实现组网加入;
局域网即时通讯方法可生成隔离域、可生成聊天群组、可形成信息聚合载体、可有选择的进行屏蔽;
局域网中可加入新的通讯程序(图中未示出,即第二通讯程序),新的通讯程序基于数据分发服务,并与通讯程序相同均部署了一个发布者和一个订阅者。
本实施例的局域网即时通讯方法是基于数据分发服务DDS,其提供了发布者和订阅者的动态发现,意味着通讯程序(无论是局域网内原有的通讯程序还是新加入的通讯程序)不必知道或配置用于通信的端点,也不必借助全局的服务端,通过DDS即可自动发现。在运行时即可完成,不必在设计或编译阶段完成,从而实现真正意义上的,局域网内的通讯工具的“即插即用”属性。
此外,对于实施例一的一种基于数据分发服务的局域网即时通讯方法,如果不是应用于家庭网络,而是应用于相对庞大的局域网络中,对于该情况下的局域网是有隔离需求的,具体来说,如某企业内网中的两个不同部门之间需要做隔离。
如图3所示,通讯程序1和通讯程序2分在同一区域,对应域ID为区域1,通讯程序3和通讯程序4分在同一区域,对应域ID为区域2。而通讯程序1仅和同一域的通讯程序2进行基于DDS的交互;同理,通讯程序3仅和同一域的通讯程序4进行基于DDS的交互。
在某些场景下,需要进行群组聊天,聊天要求进行单播和/或多播传输。首先需要创建群组进行逻辑划分,逻辑划分后如图4所示,将通讯程序1看做用户1,用户1的发布者发送的信息被用户2(通讯程序2)的订阅者所接收,此为一条单播通路;用户1的发布者同时还发送信息并同时被用户2、用户3、用户4(通讯程序2、通讯程序3、通讯程序4)中的订阅者所接收,此为一条多播通路。上述两通路同样通过网络实现。
对于如何进行逻辑划分,本实施例一给出两种可能的方式仅供参考,一是如前文所述,进行隔离分组,通过隔离域,将需要进行群组聊天的用户隔离出来;二是通过DDS创建特定的主题(Topic),多播和单播的信息包含不同或相同的主题,而对应接收者仅接收预先设定好的主题即可满足上述对于群组聊天的需求。对于其他可行或扩展方法不再一一赘述,满足需求即可。
本实施例的局域网即时通讯方法如果是应用于一个信息迅速传播的技术平台,让局域网中的每个通讯程序,也即每个用户或者说每个人都成为潜在的信息提供者。局域网内的每一个用户都可以在其所述的域内发布信息。同时可以区分成不同的类型,使用不同主题进行承载。每一个用户在作为一个信息提供者的同时,也作为一个潜在的信息接收者,可以通过指定特定的主题来接收对应的某一类或某几类信息。
作为用户在选择了感兴趣的一个或几个主题来接收某类信息后,未选择的主题则无法收到。更进一步我们可以通过DDS所提供的内容过滤机制(Topic Filter)进行更细致的划分。使得用户可以屏蔽某类信息中一部分或某个用户发出的信息。如图3所示,用户2(通讯程序2)同时订阅并接受了主题1和主题2的消息,用户应用3(通讯程序3)只订阅并接收主题1的消息,用户应用4(通讯程序4)订阅了主题2的消息,但是由于内容过滤机制,过滤掉了来自用户应用1(通讯程序1)的关于主题2的消息。
实施例二
本实施例与实施例一基本相同,不同之处在于,本实施例的较于实施例一的方案更便于进行管理和适用于大型的局域网内,例如企业的内网。在本实施例中我们在部署各个通讯应用程序的同时,还部署了与之对应的管理中心。各通讯应用程序中也有对应的管理客户端。如图5所示,管理员仅需从管理中心即可获取这个内网的信息,便于集中管理。管理中心和管理客户端之间采用DDS进行通信,通过DDS提供的身份验证,访问和控制,具有机密性和完整性的安全机制。由于DDS的QoS(Quality of Service)是一组控制DDS服务行为的特性, 管理中心可以将合适的QoS策略下发给通讯工具端, 从而实现了全局的通讯调度。
同时,管理中心可以对各通讯工具实施监控,即所有的数据发送器或数据阅读器,或者说所有的发布者或订阅者。管理中心可以根据实际情况、实际需求及网络的性能状况等因素,有选择的做全局或局部的监听。在监测到问题流量时,又可以下发指令至管理客户端,从而关闭该问题通讯程序所对应的订阅者和/或发布者(数据发送器和/或数据阅读器)。
通过本方法所实现的局域网内的即时通讯方法,在实施过程中的点到点延迟低于30μs,及每秒数百万跳的消息吞吐量。在以该方法为基础所形成的局域网通讯环境下,其可扩展近乎是无限的,而其自身所具备的“即插即用”特性又进一步放大了低延迟所带来的用户体验感。
本发明不局限于上述实施例所述的具体技术方案,除上述实施例外,本发明还可以有其他实施方式。对于本领域的技术人员来说,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等形成的技术方案,均应包含在本发明的保护范围之内。