一种Web信息系统中传递消息的方法及Web服务器的制造方法_2

文档序号:8907713阅读:来源:国知局
Web信息系统中传递消息的方法的详细流程图;
[0023]图3为本发明实施例中Web服务器的模块图。
【具体实施方式】
[0024]为了解决现有技术中在并发用户较多时占用内存较大,会造成Web系统拥塞而拒绝访问的技术问题,本发明提出了一种Web信息系统中传递消息的方法及Web服务器,总体思路如下:
[0025]本发明所采用的技术方案是依据可系列化的消息及通行证策略的消息传递模型,以唯一凭证号为标示对需要交换或者需要向后续页面传递的消息存入Web服务器的数据库,需要时直接凭借唯一凭证号从数据库中获取消息。
[0026]上述技术方案取消了 Web信息系统中sess1n机制,从而不需要每个用户维持一个sess1n,极大地减少了内存消耗,解决了现有技术方案在并发用户较多时占用内存较大,会造成Web系统拥塞而拒绝访问的技术问题,进而提升了系统的并发能力,更方便做Web系统集群中的会话保持。
[0027]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0028]本发明实施例提供的Web信息系统中传递消息的方法,应用于Web服务器,Web服务器能够与Web客户端进行信息交互。
[0029]参考图1所示,Web信息系统中传递消息的方法包括如下步骤:
[0030]SlOl、对Web客户端发送的通行证进行第一验证。
[0031]具体的,Web客户端发送通行证为请求用户在系统里全部活动的唯一标识,通行证包括Web服务器生成的唯一凭证号,以及当前操作者的IP。
[0032]其中,唯一凭证号为在SlOl之前通过如下流程生成:接收到来自Web客户端的登陆请求,登陆请求包括请求用户的用户名和密码;判断用户名和密码是否正确,获得一判断结果;在判断结果表明用户名和密码均正确时,生成与请求用户对应的唯一凭证号;保存唯一凭证号对应的凭证到指定位置,以及将唯一凭证号发送给Web客户端。在具体实施过程中,唯一凭证号为一个32位的GUID(全局唯一标识符,Globally Unique Identifier) ο在Web客户端显示用于请求用户的登录界面,用户从登录界面输入用户名和密码。Web客户端将用户输入的用户名和密码发送给Web服务器。Web服务器利用用户登录时的上下文环境变量,通过保存凭证函数 “myticket:: = save_vt_sess1n (vt_setss1n vts) ” 生成一个新的凭证“vksetss1n”实例,保存到指定位置;保存成功返回唯一凭证号;保存失败返回“null”。从用户登录系统到退出系统之间,保存凭证的操作只允许一次。
[0033]保存在指定位置的凭证“vt_SeSS1n”是一个以唯一凭证号为标识的可系列化的对象,包括如下内容:vt_setss1n:: = vt_setss1n(ID, //ticket通行证;用户在系统里全部活动的唯一标识,类似sess1n机制的sess1n id。LOGIN, //登录名。IP,//登录ip。NAME,//登录者标示符号(例如名称,地址等)。CREATE_TME,//创建时间。ACCESS_TIME,//最近访问时间。ACCESS_COUNT,//访问次数。VALID,//是否有效,如果被系统管理员设置为无效,则本次登录的认证立即取消了。C_USER_ID,//用户ID。C_SYSTEM_ID,//用户所在系统。C_YN_COMMENT,//用户系统的层次。C_YEAR,//年份,冗余字段,可以直接从CREATEJIME创建时间中获取ENTITYOBJECT,//最近访问的对象)。
[0034]在具体实施过程中,对Web客户端发送的通行证进行第一验证,包括如下流程:
[0035]接收Web客户端发送的通行证;若从通行证中获取到唯一凭证号,则检查指定位置是否保存有与唯一凭证号对应的凭证,若没有获取到唯一凭证号,则为第一验证失败;其中,检查结果为是时为第一验证通过,检查结果为否时为第一验证失败。
[0036]具体来讲,在需要凭证的地方,Web客户端先向Web服务器出示唯一凭证号,从Web服务器的数据库层获取并返回凭证,Web服务器里没有与所出示的唯一凭证号一致的凭证时返回“null”。凭证的保存位置为“Const_flag”所指定的指定位置。则检查所指定的指定位置是否保存有与唯一凭证号对应的凭证的具体通过如下方式:验证上下文假定不变的参数与凭证里面对应的参数是否一致,一致则返回“true”,否则返回“false”。指定位置无此唯一凭证号也返回“false”。所谓上下文假定不变的参数,是指用户在一个登录退出过程的期间内,某些环境参数可以断定是相同的,用来防止凭证欺骗。
[0037]进一步,由于通行证中还包含了最开始登录的IP,在需要提供凭证的地方,Web服务器不仅查看有无携带唯一凭证号,以及若通行证中携带有唯一凭证号,则检查指定位置是否保存有与唯一凭证号对应的凭证,还要检测当前IP是否与所保存在指定位置的凭证里的原始登录IP是否一致。其中,检测结果表明当前IP与原始登陆IP —致,且指定位置保存有与唯一凭证号对应的凭证时,表明第一验证通过,即两者同时为是时表明第一验证通过。其中,当前IP与原始登陆IP不一致就表明第一验证失败,或者指定位置不存在与唯一凭证号对应的凭证也表明第一验证失败。
[0038]S102、若第一验证通过,将第一消息以通行证中的唯一凭证号为标示,保存到Web服务器的指定位置,其中,第一消息为需要交换或者需要向后续页面传递的消息。
[0039]具体的,检验凭证函数通过后,通过保存消息键值对函数“boolean:: = put_vt_sess1n_value (vt_sess1n_value) ”将第一消息写入到键值对的对象中,以生成生成需要向后传递的消息健值对,并保存到“const_flag”所指定的指定位置,保存成功返回“true”,保存失败返回“false”。其中,第一消息在消息键值对以唯一凭证号为标示。const_flag所指定的指定位置可以为Web服务器的关系数据库或NoSQL数据库(NoSQL数据库泛指非关系型的数据库)中,则保存键值对到Web服务器的关系数据库或NoSQL数据库中。具体来讲,若第一验证失败,则结束请求用户在Web服务器的所有操作。
[0040]S103、当需要第一消息时,依据唯一凭证号从指定位置提取第一消息。
[0041]在具体实施过程中,S103包括如下流程:当需要第一消息时,接收来自Web客户端的通行证;对通行证进行第二验证,其中,第二验证与第一验证为相同的验证方式;若第二验证通过,从关系数据库或NoSQL数据库提取消息键值对;将键值对还原为第一消息。
[0042]具体的,由于第二验证与第一验证为相同的验证方式,在具体实施过程中参考前述对第一验证的描述,为了说明书的简洁,本文不再赘述。
[0043]若第二验证通过(即返回为“true”),通过获取消息键值对函数“vt_SeSS1n_value:: = get_vt_sess1n_value (String name) ” 从关系数据库或 NoSQL 数据库提取消息键值对;将键值对还原为第一消息给Web客户端。获取消息键值对函数中的参数“name”是
当前第2页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1