[发明专利]基于发布订阅系统的文件存储方法有效

专利信息
申请号: 200710164756.X 申请日: 2007-12-12
公开(公告)号: CN101197844A 公开(公告)日: 2008-06-11
发明(设计)人: 尹建伟;丁夏珍;吴健;邓水光;李莹;施东材;吴朝晖 申请(专利权)人: 浙江大学
主分类号: H04L29/08 分类号: H04L29/08;G06F17/30
代理公司: 杭州九洲专利事务所有限公司 代理人: 陈继亮
地址: 310027浙江省杭州市西湖区浙*** 国省代码: 浙江;33
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 基于 发布 订阅 系统 文件 存储 方法
【说明书】:

技术领域

发明涉及文件存储方法,主要是一种基于发布订阅系统的文件存储方法。

背景技术

现如今,越来越多的企业、单位面临着各种各样的数据集成和系统整合,CORBA、DCOM、RMI等RPC中间件技术也应运而生,但由于采用RPC同步处理技术,在性能、健壮性、可扩展性上都存在着诸多缺点。而基于消息的异步处理模型采用非阻塞的调用特性,发送者将消息发送给消息服务器,消息服务器在合适的时候再将消息转发给接收者;发送和接收是异步的,发送者无需等待,二者的生命周期也可以不必相同,而且发送者可以将消息间接传给多个接收者,大大提高了程序的性能、可扩展性及健壮性,这使得异步处理模型在分布式应用上比起同步处理模型更具有吸引力。

其中发布/订阅(publish/subscribe,简称pub/sub)系统便是一种基于分布式计算平台的消息传递系统,也可以称中间件系统,用于为分布式系统中的各参与者之间提供一种松耦合的通信方式。在pub/sub系统中,有消息的生产者(发布者)和消息的消费者(订阅者),发布者通过中间代理把消息发给对该消息感兴趣的订阅者,而订阅者不一定都在线,此时就要把消息存储起来,等下次订阅者上线时,再把消息发送。消息持久化就是提供存储消息的功能,它保证了系统的可靠性。使得不管是服务器当机还是客户端连接失败,发送到服务器端的持久化消息都能被正确处理。然而,由于数据文件可能非常大,那怎样用尽可能少的时间进行数据的存储、读取、删除等操作变得至关重要。这些性能跟采用什么样的数据存储方式有关,这里提出的是文件存储的方式,它通过把持久化消息存储到文件中,而达到消息的存储、删除、提取的高性能表现。

目前消息存储机制主要有数据库存储,也就是通过把持久化消息存储到特定的数据库中,但是由于创建数据库连接的开销非常大,从而影响了消息的存储,删除等的性能。

发明内容

本发明要解决现有pub/sub系统中消息持久化存在的缺陷,提供一种对消息的高性能的存储、删除和提取的基于发布/订阅系统的文件存储方法,是一种发布订阅系统中对消息进行持久化时采用的方法。

本发明解决其技术问题所采用的技术方案:这种基于发布订阅系统的文件存储方法,在pub/sub系统中,为每个消息目的地都创建一个消息容器表,且每个目的地的消息容器表都将存在一个表结构中。同时每个目的地的消息容器表就是缓存消息的接口,可以通过消息容器表提供的存储、删除、修改等方法来对消息进行相应的动作。这使得操作文件像操作一个内存中的表一样方便轻松。消息容器表的具体方法的实现如下:消息容器表中存放的是特定目的地的消息总和,每个消息以(messageId,message)形式的(关键字,值)对来存储。在存储消息对的同时,为每个消息建立一个索引,索引记录了每个消息的关键字和值两个数据所在的文件以及在文件的起始位置。每个索引的结构大小都一样,所有索引都以链表的形式存放在索引文件中。并且,每个消息和它对应的索引关系以(messageId,IndexItem)形式的(关键字,值)对存放在一个消息索引表中。具体的消息以数据文件的格式存储在文件中,文件的大小可手动配置,但在文件大小配置好的情况下,存放在文件中的消息大小不可超过配置好的每个文件的大小。具体步骤如下:

系统启动好后,自动为每个目的地建立一个消息容器表,且每个目的地只有一个消息容器表,该目的地中的所有消息都以关键字/值对的形式保存在这个消息容器表中,其中关键字对应于目的地中的一个消息的messageId(messageId在消息的发送过来的包中已经定义),值则对应该消息对象的内容。

1.当一个可持续订阅的消息到达服务器端:

从消息中得到它将要发往的目的地名称,根据该目的地名称,找到对应的消息容器表,若不存在这样的消息容器表,则创建一个新的消息容器表。接着,从到达的消息中找到对应的messageId以及它的值,通过消息容器表提供的存储消息的方法将消息保存到文件中。

2.若要从文件中取出一个持久化消息,则:同上找到该消息对应的消息容器表,并根据消息容器表提供的取消息的方法去文件中读取一条消息即可。

3.若要从文件中删除一个持久化消息,则:

同上找到该消息对应的消息容器表,根据消息容器表的删除消息的方法,在文件中找到该消息,并删除即可。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江大学,未经浙江大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/200710164756.X/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top