一种基于浏览器/服务器结构的信息分配方法及系统的制作方法

文档序号:7647156阅读:144来源:国知局
专利名称:一种基于浏览器/服务器结构的信息分配方法及系统的制作方法
技术领域
本发明涉及信息发布领域,尤其涉及一种基于浏览器/服务器结构的信息分配方法及系统。
背景技术
在当今大型网站应用系统中,实现用户终端与服务器的通信主要有两种模式客户端/服务器(Client/Server,C/S)结构和浏览器/服务器(Browser/Server,B/S)结构。在B/S结构中,服务器通过在会话Session中保存在线用户的信息来监控在线用户,当某一用户A需要将业务信息发送给用户B时,用户A向服务器发送包含业务信息的消息,服务器接收到该消息后,将该消息存储在服务器的硬盘中,并从Session中查询用户B的信息,若查询到,则用户B此时在线,服务器将所述存储在硬盘中的消息发送给用户B,并通知用户A消息转发成功;若未查询到,则用户B此时不在线,服务器通知用户A消息转发失败。
服务器在Session中保存在线用户的信息,而当用户B直接将网页关掉或从任务管理器中将应用系统的进程结束时,服务器不能获取用户B退出系统的事件,所以无法即时更新Session中的在线用户信息,这样Session中仍保存有用户B的信息,服务器会将硬盘中用户A发来的消息发送给用户B,并通知用户A消息转发成功,用户A接收到该通知后等待用户B对该消息进行处理,而实际上用户B已退出系统,用户A无法获知该事件,会一直等待B的处理结果,造成信息处理的延误。
服务器接收到用户A发来的消息后,将该消息存储在服务器的硬盘中,当服务器需要将该消息发送给用户B时,要先访问硬盘,从硬盘中获取该消息后再将该消息发送给用户B,可见,消息的存和取都需访问硬盘,对于需要对信息进行及时处理的用户量、业务量都较大的应用系统中,无疑效率较低。

发明内容
本发明提供一种基于浏览器/服务器结构的信息分配方法及系统,用于解决现有技术中服务器监控在线用户不准确造成的信息处理延误的问题。
本发明提供的一种基于浏览器/服务器结构的信息分配方法,应用于基于浏览器/服务器结构的通信系统中,该系统至少包括服务器和一个以上的用户终端,该方法包括以下步骤A.服务器接收到第一用户终端发来的包含接收用户标识的消息后,保存该消息;B.第二用户终端向服务器发送包含发送用户标识的数据请求;C.服务器接收到该数据请求后,如果保存的消息中接收用户标识与该数据请求中发送用户标识相同,则将该消息发送给该第二用户终端。
步骤B中第二用户终端每隔一定时间向服务器发送数据请求。
步骤A中服务器接收到第一用户终端发来的包含接收用户标识的消息后,进一步包括服务器确定所述接收用户标识对应的接收用户是否在线,如果在线,则保存该消息,否则,不保存该消息,跳出本流程。
所述服务器内存的缓冲区中存储有在线用户信息表,则该方法进一步包括用户终端登录服务器后,服务器从硬盘获取该登录用户信息并将该登录用户信息保存在在线用户信息表中,所述登录用户信息至少包括登录用户标识;则服务器确定所述接收用户标识对应的接收用户是否在线的步骤包括判断在线用户信息表中是否包含所述接收用户标识,如果包含所述接收用户标识,则确定对应的接收用户在线,否则,确定对应的接收用户不在线。
所述服务器内存的缓冲区中存储有消息队列和消息池,则步骤A中服务器保存该消息的步骤为A0.服务器将该消息保存在消息队列中;则该方法进一步包括每隔一定时间,服务器将消息池清空,将消息队列中的消息取出并存储在消息池中;则步骤C包括服务器接收到该数据请求后,判断消息池中存储的消息中是否有接收用户标识与该数据请求中发送用户标识相同的消息,如果有,将该消息发送给该第二用户终端。
服务器将消息池清空前,该方法进一步包括服务器将消息队列设置为上锁状态;服务器将消息队列中的消息取出并存储在消息池中后,该方法进一步包括服务器将消息队列设置为解锁状态;则步骤A0中服务器在消息队列处于解锁状态时将该消息保存在消息队列中。
服务器通过互换消息队列和消息池的指针将消息队列中的消息取出并存储在消息池中。
步骤C中将该消息发送给该第二用户终端后,该方法进一步包括服务器将发送该数据请求的时间记录在在线用户信息表中,并将在线用户信息表中超过一定时间未向服务器发送数据请求的用户信息删除。
一种基于浏览器/服务器结构的信息分配系统,该系统包括第一用户终端,用于向服务器发送包含接收用户标识的消息;第二用户终端,用于向服务器发送包含发送用户标识的数据请求;服务器,用于接收第一用户终端发来的包括接收用户标识的消息,并保存该消息;接收第二用户终端发来的包括发送用户标识的数据请求,如果保存的消息中接收用户标识与该数据请求中发送用户标识相同,则将该消息发送给第二用户终端。
所述服务器包括第一处理单元,用于接收第一用户终端发来的包含接收用户标识的消息,并将该消息保存在内存中;第二处理单元,用于接收第二用户终端发来的包含发送用户标识的数据请求,判断内存中是否有接收用户标识与该数据请求中发送用户标识相同的消息,如果有,将该消息发送给第二用户终端;内存,包括第一存储单元,用于保存第一用户终端发来的包含接收用户标识的消息。
所述内存进一步包括第二存储单元,用于存储第一存储单元中的消息;则所述服务器进一步包括同步单元,用于每隔一定时间,将第二存储单元清空,将第一存储单元中的消息取出并存储在第二存储单元中。
所述服务器进一步包括硬盘,用于保存用户信息,所述用户信息至少包括用户标识;则所述内存进一步包括第三存储单元,用于保存所述用户信息。
所述服务器进一步包括第一记录单元,用于用户终端登录服务器后,从硬盘中获取该登录用户信息并将该登录用户信息保存在第三存储单元中。
所述服务器进一步包括判断单元,用于接收到第一用户终端发来的包含接收用户标识的消息后,确定所述接收用户标识对应的接收用户是否在线,如果在线,则通知第一处理单元将该消息保存在内存中。
所述判断单元包括比较单元,用于通过判断第三存储单元中是否包含所述接收用户标识确定所述接收用户标识对应的接收用户是否在线。
所述服务器进一步包括设置单元,用于将第一存储单元设置为上锁状态或解锁状态。
所述服务器进一步包括第二记录单元,用于将该消息发送给第二用户终端后,将第二用户终端发送数据请求的时间记录在第三存储单元中,并删除第三存储单元中超过一定时间未向服务器发送数据请求的用户信息。
与现有技术相比,服务器将用户终端发来包括接收用户标识的消息保存在内存中,服务器接收到用户终端发来的包括发送用户标识的数据请求后,将内存中接收用户标识与发送用户标识相同的消息发送给该用户终端,解决了服务器因监控在线用户不准确造成的信息处理延误的问题,并同时提高了服务器转发消息的效率。


图1为本发明中方法的流程示意图;图2为本发明中系统的结构示意图。
具体实施例方式
本发明提供的一种基于浏览器/服务器结构的信息分配方法,应用于基于B/S结构的通信系统中,该系统至少包括服务器和一个以上的用户终端,该方法的核心思想是服务器将第一用户终端发来的需要转发的包括接收用户标识的消息保存在内存中;服务器接收到第二用户终端发来的包括发送用户标识的数据请求后,将内存中接收用户标识与该发送用户标识相同的消息发送给该第二用户终端。
参见图1,本发明提供的一种基于浏览器/服务器结构的信息分配方法的具体实现流程如下步骤101服务器接收到第一用户终端发来的包含接收用户标识的消息后,保存该消息;服务器内存的缓冲区中存储有消息队列、消息池和在线用户信息表,该缓冲区为动态缓冲区,所以消息队列、消息池和在线用户信息表的大小可以自动调整。某一用户终端登录服务器后,服务器从保存了用户信息的硬盘中获取该登录用户信息并将该信息保存在在线用户信息表中,该登录用户信息至少包括登录用户标识。本步骤中,服务器接收到第一用户终端发来的包含接收用户标识的消息后,首先判断在线用户信息表中是否包含该接收用户标识,如果包含该接收用户标识,则确定该接收用户标识对应的接收用户在线,服务器将接收到的消息保存在消息队列中;否则,确定该接收用户标识对应的接收用户不在线,则将接收到的消息保存在硬盘中,并通知第一用户终端消息转发失败。
步骤102每隔一个时间周期,该时间周期为预先设定的一个时间间隔,第二用户终端向服务器发送包括发送用户标识的数据请求;步骤103服务器接收到该数据请求后,如果步骤101中保存在消息队列的消息中接收用户标识与该数据请求中发送用户标识相同,则将该消息发送给该第二用户终端。
每隔一个时间周期,该时间周期也为预先设定的一个时间间隔,该时间间隔的大小与用户终端发送数据请求的时间间隔大小相同,服务器将消息队列设置在上锁状态,清空消息池,将消息队列中的消息取出并存储在消息池中,然后服务器将消息队列设置在解锁状态。则本步骤中,服务器是将消息池中接收用户标识与该数据请求中发送用户标识相同的消息取出并发送给该第二用户终端。
这里,消息队列和消息池存储在内存的动态缓冲区中,当清空消息池后,服务器可以通过将指向消息队列的指针与指向消息池的指针互换即可实现将消息队列中的消息取出并存储在消息池中,避免了数据的频繁存取,保证了高效率。
步骤103中,服务器将该消息发送给第二用户终端后,还要将第二用户终端发送该数据请求的时间记录在在线用户信息表中,并将在线用户信息表中超过一定时间未向服务器发送数据请求的用户信息删除。
参见图2,本发明还提供一种基于浏览器/服务器结构的信息分配系统,该系统包括第一用户终端201、第二用户终端202和服务器203,其中,第一用户终端201,用于向服务器发送包括接收用户标识的消息;第二用户终端202,用于向服务器发送包括发送用户标识的数据请求;服务器203,用于接收第一用户终端发来的包括接收用户标识的消息,并保存该消息;接收第二用户终端发来的包括发送用户标识的数据请求,如果保存的消息中接收用户标识与该数据请求中发送用户标识相同,则将该消息发送给第二用户终端。
服务器203包括第一处理单元2031、第二处理单元2032和内存2033,其中,第一处理单元2031,用于接收第一用户终端发来的包含接收用户标识的消息,并将该消息保存在内存中;第二处理单元2032,用于接收第二用户终端发来的包含发送用户标识的数据请求,判断内存中是否有接收用户标识与该数据请求中发送用户标识相同的消息,如果有,将该消息发送给第二用户终端;内存2033,包括第一存储单元20331,用于保存第一用户终端发来的包含接收用户标识的消息。
内存2033进一步包括第二存储单元20332,用于存储第一存储单元中的消息,则服务器203进一步包括同步单元2034,用于每隔一定时间,将第二存储单元清空,将第一存储单元中的消息取出并存储在第二存储单元中。
服务器203进一步包括硬盘2035,用于保存用户信息,该用户信息至少包括用户标识,则内存2033进一步包括第三存储单元20333,用于保存所述用户信息;服务器203还进一步包括第一记录单元2036和判断单元2037,其中,第一记录单元2036,用于用户终端登录服务器后,从硬盘中获取该登录用户信息并将该登录用户信息保存在第三存储单元中;判断单元2037,用于接收到第一用户终端发来的包含接收用户标识的消息后,确定所述接收用户标识对应的接收用户是否在线,如果在线,则通知第一处理单元将该消息保存在内存中。
判断单元2037包括比较单元20371,用于通过判断第三存储单元中是否包含所述接收用户标识确定所述接收用户标识对应的接收用户是否在线。
服务器203还包括设置单元2038和第二记录单元2039,其中,设置单元2038,用于将第一存储单元设置为上锁状态或解锁状态;第二记录单元2039,用于将该消息发送给第二用户终端后,将第二用户终端发送数据请求的时间记录在第三存储单元中,并删除第三存储单元中超过一定时间未向服务器发送数据请求的用户信息。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
权利要求
1.一种基于浏览器/服务器结构的信息分配方法,应用于基于浏览器/服务器结构的通信系统中,该系统至少包括服务器和一个以上的用户终端,其特征在于,该方法包括以下步骤A.服务器接收到第一用户终端发来的包含接收用户标识的消息后,保存该消息;B.第二用户终端向服务器发送包含发送用户标识的数据请求;C.服务器接收到该数据请求后,如果保存的消息中接收用户标识与该数据请求中发送用户标识相同,则将该消息发送给该第二用户终端。
2.如权利要求1所述的方法,其特征在于,步骤B中第二用户终端每隔一定时间向服务器发送数据请求。
3.如权利要求1所述的方法,其特征在于,步骤A中服务器接收到第一用户终端发来的包含接收用户标识的消息后,进一步包括服务器确定所述接收用户标识对应的接收用户是否在线,如果在线,则保存该消息,否则,不保存该消息,跳出本流程。
4.如权利要求3所述的方法,其特征在于,所述服务器内存的缓冲区中存储有在线用户信息表,则该方法进一步包括用户终端登录服务器后,服务器从硬盘获取该登录用户信息并将该登录用户信息保存在在线用户信息表中,所述登录用户信息至少包括登录用户标识;则服务器确定所述接收用户标识对应的接收用户是否在线的步骤包括判断在线用户信息表中是否包含所述接收用户标识,如果包含所述接收用户标识,则确定对应的接收用户在线,否则,确定对应的接收用户不在线。
5.如权利要求1所述的方法,其特征在于,所述服务器内存的缓冲区中存储有消息队列和消息池,则步骤A中服务器保存该消息的步骤为A0.服务器将该消息保存在消息队列中;则该方法进一步包括每隔一定时间,服务器将消息池清空,将消息队列中的消息取出并存储在消息池中;则步骤C包括服务器接收到该数据请求后,判断消息池中存储的消息中是否有接收用户标识与该数据请求中发送用户标识相同的消息,如果有,将该消息发送给该第二用户终端。
6.如权利要求5所述的方法,其特征在于,服务器将消息池清空前,该方法进一步包括服务器将消息队列设置为上锁状态;服务器将消息队列中的消息取出并存储在消息池中后,该方法进一步包括服务器将消息队列设置为解锁状态;则步骤A0中服务器在消息队列处于解锁状态时将该消息保存在消息队列中。
7.如权利要求5所述的方法,其特征在于,服务器通过互换消息队列和消息池的指针将消息队列中的消息取出并存储在消息池中。
8.如权利要求4所述的方法,其特征在于,步骤C中将该消息发送给该第二用户终端后,该方法进一步包括服务器将发送该数据请求的时间记录在在线用户信息表中,并将在线用户信息表中超过一定时间未向服务器发送数据请求的用户信息删除。
9.一种基于浏览器/服务器结构的信息分配系统,其特征在于,该系统包括第一用户终端,用于向服务器发送包含接收用户标识的消息;第二用户终端,用于向服务器发送包含发送用户标识的数据请求;服务器,用于接收第一用户终端发来的包括接收用户标识的消息,并保存该消息;接收第二用户终端发来的包括发送用户标识的数据请求,如果保存的消息中接收用户标识与该数据请求中发送用户标识相同,则将该消息发送给第二用户终端。
10.如权利要求9所述的系统,其特征在于,所述服务器包括第一处理单元,用于接收第一用户终端发来的包含接收用户标识的消息,并将该消息保存在内存中;第二处理单元,用于接收第二用户终端发来的包含发送用户标识的数据请求,判断内存中是否有接收用户标识与该数据请求中发送用户标识相同的消息,如果有,将该消息发送给第二用户终端;内存,包括第一存储单元,用于保存第一用户终端发来的包含接收用户标识的消息。
11.如权利要求10所述的系统,其特征在于,所述内存进一步包括第二存储单元,用于存储第一存储单元中的消息;则所述服务器进一步包括同步单元,用于每隔一定时间,将第二存储单元清空,将第一存储单元中的消息取出并存储在第二存储单元中。
12.如权利要求10所述的系统,其特征在于,所述服务器进一步包括硬盘,用于保存用户信息,所述用户信息至少包括用户标识;则所述内存进一步包括第三存储单元,用于保存所述用户信息。
13.如权利要求12所述的系统,其特征在于,所述服务器进一步包括第一记录单元,用于用户终端登录服务器后,从硬盘中获取该登录用户信息并将该登录用户信息保存在第三存储单元中。
14.如权利要求13所述的系统,其特征在于,所述服务器进一步包括判断单元,用于接收到第一用户终端发来的包含接收用户标识的消息后,确定所述接收用户标识对应的接收用户是否在线,如果在线,则通知第一处理单元将该消息保存在内存中。
15.如权利要求14所述的系统,其特征在于,所述判断单元包括比较单元,用于通过判断第三存储单元中是否包含所述接收用户标识确定所述接收用户标识对应的接收用户是否在线。
16.如权利要求10所述的系统,其特征在于,所述服务器进一步包括设置单元,用于将第一存储单元设置为上锁状态或解锁状态。
17.如权利要求12所述的系统,其特征在于,所述服务器进一步包括第二记录单元,用于将该消息发送给第二用户终端后,将第二用户终端发送数据请求的时间记录在第三存储单元中,并删除第三存储单元中超过一定时间未向服务器发送数据请求的用户信息。
全文摘要
本发明公开了一种基于浏览器/服务器结构的信息分配方法,应用于包括服务器和一个以上用户终端的系统中,该方法为服务器接收到第一用户终端发来的包含接收用户标识的消息后,保存该消息;第二用户终端向服务器发送包含发送用户标识的数据请求;服务器接收到该数据请求后,如果保存的消息中接收用户标识与该数据请求中发送用户标识相同,则将该消息发送给该第二用户终端。本发明还公开了一种基于浏览器/服务器结构的信息分配系统。采用本发明,解决了因在线用户监控的不准确造成的信息处理延误问题,提高了服务器转发消息的效率。
文档编号H04L12/54GK101035130SQ20071006283
公开日2007年9月12日 申请日期2007年1月18日 优先权日2007年1月18日
发明者张嵩, 张百林, 易文飞, 冯少辉 申请人:北京北大方正电子有限公司, 北京大学, 北大方正集团有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1