基于信息池信息传递的群聊机制的制作方法

文档序号:14914503发布日期:2018-07-11 00:20阅读:203来源:国知局

本发明涉及基于信息池的信息传递技术领域,尤其涉及系统消息池模型、构件模型、消息池化技术以及消息传递群聊协议。



背景技术:

消息池化需要首先将大量的消息内容(文本甚或图片)从用户需求中抽取出来并作归类,对于周期性的项目而言这一步骤即费时也未必能够符合用户需求反复变更的需要。也可以在系统开发后期或者维护、升级期间通过扩展的方式将补充的消息内容添加进来,但这同样需要系统在设计阶段就考虑到后期的种种变数并预留出扩展的接口。而对于实时性要求较高的系统,比如生产制造业管理软件采用消息池化同样也不合适。因为消息池化实现过程中要将大量的消息内容(文本甚至图片)通过网络传播,其间的开销是不可小视的。应用到实时性高的系统中时不可避免的会产生各种问题。

消息池化技术推荐您根据需要将消息内容放在适当的位置,每个系统的需求和实现方案都有或多或少的差异,存放消息内容的位置直接影响到系统整体的性能,因此必须也只能根据自己的特点进行权衡。消息池化表示将在内存中某处存在消息,可以把这堆消息放在服务端也可以放在客户端。对于前者,客户端需要频繁的向服务端发送请求,获取所需的消息内容;对于后者,客户端除了要把所有消息内容从服务端拉到本地,还要负责维护消息池的状态和有效性,也许还要考虑同步等诸多问题。

系统实施基于信息池信息传递的群聊机制的好处:在构件上挂载伴随消息池,消息池之间遵循事先订立的消息协议进行通信,能够克服现行主流的层次消息总线风格中存在的消息总线负载过重、同步控制困难等缺点,并能简化系统设训一过程,支持分布式系统以及软件产品线设计。



技术实现要素:

为了克服现有的群聊机制的不足,本发明提供一种基于信息池信息传递的群聊机制,构件是独立的计算模块,可以用任何语言进行编写.构件之间的通信仍是通过消息传递完成的,消息在用户之间传输.每一个构件有一个挂载的消息池,消息池是消息的载体,一方面用于存储本地构件的计算结果,另一方面用于接收来自其它构件的消息。消息内容显示在左边,时间显示在右边;如果消息有加密,那么消息内容固定显示为加密消息,时间显示右边。如果消息是回复我的消息,那么第一行显示对方回复的内容,第二行显示我发送的原始消息,时间显示右边。如果设定过消息期限,需要显示倒计时。如果回复我的是加密消息,那么第一 行显示加密消息4个字,第二行显示我发的原始消息内容,时间显示右边。如果发送给我的消息设定过自动删除,那么超过设定时间后,消息内容就显示为【阅毕已自动删除】,时间显示右边。

本发明解决其技术问题所采用的技术方案是:Output消息池负责接收构件的状态变化信息。如果构件在运行过程中发生了状态变化,那么构件的状态数据将转存于消息池,等待其它构件来取;对方取毕后消息池负责销毁该消息,并回收内存,以便接收新的消息.如果该消息为多个其它构件所用,那么消息池在所有需求构件都取毕之后再进行销毁。Input消息池负责接收其它构件的消息并通知构件消息己经到达。构件可以选择马上处理或者暂缓处理,如果选择暂缓处理,消息池将一直为构件保存这条消息,处理完毕后消息池才回收该消息空间。

本发明的有益效果是,采用基于信息池信息传递的群聊机制,由于消息的直接传递减少了消息的分派和过滤动作。消息的登记和传递记录在预先订立的消息传递协议中.消息传递协议就是将消息的传递管理从总线功能中剥离出来,大大缩短了系统运行时的计算时间,或用静态的协议换取动态的路由过程;另一方面消息传递与构件的业务逻辑计算分离开,降低了系统设计的复杂度。

附图说明

下面结合附图和实施例对本发明进一步说明。

图1为本发明实例基于信息池的信息传递软件体系图。

图2为本发明实例消息池服务器图。

图3为本发明实例消息池模型图。

图4为本发明实例基于信息池的信息传递软件构建模型图。

图5为本发明实例信息交互示意图。

具体实施方式

在图4中,表示了基于信息池信息传递的群聊机制构建模型的所有实体和步骤。基于信息池的信息传递软件构建模型在消息传递设置了一个新的实体消息模块。消息模块主要负责与消息池的联系,从消息池获取消息或者将状态变化写入消息池.业务逻辑模块则用于核心业务逻辑的计算.基于信息池的信息传递支持系统自顶向下进行层次化分解,一个构件可以由多个子构件组装而成.每个子构件可以挂载各自的消息池,但是多个子构件共享同一个外部消息池,即子构件由同一个消息模块向同一个消息池传输数据。

系统实现基于信息池的信息传递运行过程如下:

1.将所有的消息内容放在资源文件(Resource)中,资源文件可以被编译并嵌在程序集dll中(.net)。存放消息内容的资源文件被放置在服务器端,由客户端请求并获取。

2.在客户端从服务端请求服务的过程中,服务端是被动的和无状态的,它的职责就是从资源文件中读取全部的消息内容,并通过合适的载体通过网络发送给客户端,由客户端接受并进行处理。对于Internet的应用,使用XML Web Servervice技术,通过XML序列化及SOAP协议解决防火墙的困扰。使用List<string>将文本类型的消息内容承载起来,它既支持二进制序列化也支持XML序列化,非常方便。

3.客户端从服务端请求并获取到消息流以后,要在本地作消息缓存。这一过程还需简单的处理,因为服务端发送过来的消息列表并没有明确的分类,也不方便本地根据消息名称索引具体的消息内容,也就是说还要实现根据“消息A”这个名字找到消息A的内容这样的效果。采用键值对这样的散列方式,Dictionary<string,string>(.net中Dictionary数据类型的泛型版本)构建三类键值对,包括错误信息集合Errors,警告信息集合Warnings,普通信息集合Informations。这些信息集合应当作为全局对象一直缓存于内存中,它们共同组成了一个消息池,向前台的Form或Web界面提供消息来源,直至客户端关闭。

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