论文部分内容阅读
事件同步身份验证是一种一次性口令系统,它的实现特点是验证服务器处理每一次验证都需要把服务器和token两端的计数器调整到同步的状态。
本文的主要工作就是将运行在Windows上的单结点数据库的事件同步身份验证系统移植到Linux,并设计新的体系结构以提升其处理能力和数据库的负载能力,且新系统要具备良好的可扩展性。我们面临的主要问题有:1,设计和选择新的可扩展性良好的系统架构;2,将原验证系统单点结数据库存储扩展成多结点数据库存储;3,将原验证服务器从Windows平台移植到Linux上。
本文针对上述问题所相应采取的解决方案是:1,采用LinuxVirtualServer(LVS)建立验证服务器集群,从而可透明有效地扩展系统处理能力;2,设计二叉树分裂算法在应用程序层实现了无共享存储结构的存储子系统;3,在Linux上开发了一个网络服务器的小型框架,在此基础上顺利将原系统移植到Linux。
由于事件同步系统每一次验证都必须更新数据库中的计数器以保证两端同步,所以不能采用相应的内存或者磁盘缓存结构,于是直接对数据库造成了压力,且系统处理的用户量极大,单结点数据库根本无法支持系统的运行。本文没有采用共享存储设备如SAN和数据库集群如RAC,仅采用相互独立的多个MySql结点来实现无共享存储策略,以我们提出的二叉树分裂算法为基础,通过应用程序为LVS验证服务器集群提供了全局一致的存储映象,并能够透明地扩展存储结点来对系统进行扩容,包括增加结点和更换结点。此外,运用设计模式和C++的面向对象与范型特性设计开发了一个Unix类系统的网络并发服务器框架,此框架封装了网络并发程序最常用的一部分Unix系统的底层特性,并引入了一套运行机制,在此框架的基础上仅仅通过继承进程基类就能把验证服务的应用逻辑嵌入到框架里,成功地将系统从Windows移植到了Linux。