利用PHP+MySql+LDAP实现机房管理系统
2012-10-26吕翠霞
吕翠霞
(江苏广播电视大学,江苏 南京 210036)
利用PHP+MySql+LDAP实现机房管理系统
吕翠霞
(江苏广播电视大学,江苏 南京 210036)
本文在简要介绍了LDAP及相关技术的基础上,利用PHP+MySql编程方法设计了一种基于LDAP协议的适应性广、通用性强的机房管理系统。并对其中涉及的关键技术进行了论述,同时介绍了该系统的设计思想、技术特色和系统结构。
机房;管理系统;LDAP;PHP
一、引言
随着信息化程度的提高和教育改革的发展,越来越多的学校开始普及计算机教学,伴随而来的是电脑数量的剧增,计算机机房的管理任务趋向复杂化。机房管理人员开始投入大量的人力和物力对电脑设备进行管理和维护,尽管如此在机房管理的过程中仍取得不了好的效果。主要常见的问题有:①学生上机不需要认证,计算机资源得不到合理有效的
利用。②当机器出现故障时,需要手工查找学生的上机记录,费事费力。笔者根据多年的机房管理经验,设计了一套机房管理系统,可以实现学校机房管理智能化。
二、设计原理
系统概述:本系统采用当前流行的B/S模式,即在客户端和服务端增加一个代理层,当学生用户登陆时,通过PHP环境下的Web代理层转发用户登陆信息,实现和LDAP服务器端的用户认证通信。当用户登陆后,Web代理层将学生的详细信息,比如上机时间、个人用户信息等内容记录到MySql数据库中,实现上机行为的统计和分析。系统结构图见图一:
LDAP简介:LDAP代表轻型目录访问协议,它是一个用来访问目录服务,尤其是基于X.500的目录服务的轻型协议。LDAP运行在TCP/IP协议或者其他的面向连接的传输服务之上。LDAP的信息模型是建立在“条目”(entries)的基础上。一个条目是一个属性的集合,并且具有一个全局唯一的“可区分名称”DN,该DN被用来唯一的引用该条目。LDAP客户端不保存任何用户信息,它所需要的用户信息通过LDAP服务器从主存储节点中获取。LDAP服务端负责给LDAP客户端提供用户信息的获取、查询和修改服务。
图一 系统结构图
三、系统实现
1.WEB代理层设计
用户认证模块设计:利用PHP程序连接LDAP服务器,向LDAP服务器发出用户认证请求,如果用户名和密码正确,则登陆成功。如果用户信息和LDAP服务器中记录的不一样,则退回登陆界面。PHP实现代码如下:
上机行为记录模块设计:当用户登陆成功后,利用PHP程序从LDAP服务器中读取用户的身份信息,登陆时间等,并将这些信息写入MySql数据库中。其中MySql数据库中的表结构如下(UserAction):
列名 数据类型 长度FileID numeric 9 UserName varchar 32 PassWord varchar 15 LogInTime numeric 9 LogOutTime numeric 9 UserClass varchar 32
上机行为记录模块中PHP实现代码下:
2.LDAP服务器端设计
LDAP认证过程:LDAP客户端和服务器之间的信息传递采用信息交换的模式,LDAP客户端给LDAP服务器传递需要执行的协议请求,LDAP服务器在目录中执行完成后,返回一个包括任何结果或错误的应当。在协议交换的过程中,所有的协议操作都被封装成一个信息包。发送的请求的包格式如下:
LDAP服务器处理完成后,返回一个包括请求所对应的应答信息或出错信息包。在上述协议包中,除了一些必添的信息字段外,还包括了不少预留项,这主要是考虑到以后的扩充,以做到向后兼容。
LDAP用户管理:包括添加新用户、修改用户信息、删除用户。PHP实现代码如下:
用户管理系统的另一个重要的问题就是数据存储的稳定性、可靠性。为了保证数据存储的稳定性、可靠性,在服务端设计和采用管理与存储分离的思想,数据单独存储在与LDAP服务器不同的存储节点上,并且采用数据动态实时更新的技术,当数据改动时,主存储节点实时地把修改的数据更新到存储节点,主、从存储节点间的信息复制遵循LDAP协议。只更新修改数据的优点是,它不仅保证了主、从存储节点上数据的一致性,而且因为更新的数据量少,更新的速度得到了大幅度提高。采用这种主、从存储结构,当主存储节点的数据被破坏时,从存储节点马上代替主存储节点的工作,使服务保持不间断性。并且由于LDAP服务器与数据不在同一节点上,所以当LDAP服务器受到网络攻击而遭到破坏时,也不会损坏到数据,这在一定程度上也保证了数据的可靠性。
四、性能分析
在本机房管理系统中,使用最多的是用户登陆和信息查询。当客户端多用户并发登陆或查询时,每次操作都要经过三个过程。①客户端首先通过Web代理层向LDAP服务端发送认证或查询请求。②再由LDAP服务器从目录服务中获取信息后返回给客户端。③同时Web代理层再将系统所需的信息存储到MySql数据库中。这中间涉及到三个环节速度问题。因此本系统的运行速度跟这三项服务密切相关,要高效运行本机房管理系统,必须分别优化PHP环境、MySql数据库、LDAP服务器。
[1] 罗明,檀文钊.跨平台的PHP+MySql[M].北京:清华大学出版社,2001.
[2] R.Padmini S.Nivedita.TCP/IP详解[M].北京:电子工业出版社,2003.
PHP + MySql Computer Lab Management System Based on LDAP
LV Cui-xia
Based on LDAP protocol, a computer lab management system written in PHP using MySql as database is presented in this paper. The design thought、technology feature and structure of the system are provided.
LDAP,computer lab, management system, PHP
TP308
A
1008-7427(2012)07-0159-02
2012-04-06