图书馆电子资源专用浏览器的开发与应用
2012-08-29曾小文
曾小文
(广东水利电力职业技术学院 广东 广州 510635)
0 引言
开发图书馆电子资源专用浏览器的意义:
因为数字资源知识产权等的因素, 图书馆购买的数字资源只能在特定人群、一定范围内使用,而对读者的识别目前只授权校园网所在的IP 段,这种方式有很大的局限性,对数字资源的利用造成了极大的障碍。 但是,随着网络技术的进步,以及校园网的概念都在发生极大的变化。 一是读者在学习和生活地点上存在差异性; 二是读者在放假期间对数字资源的需求;三是读者的流动性在不断增加;四是分校办学模式在很多高校都存在。越来越多的读者开始都住在校外,这使当他们在家里或出差期间,就无法有权地访问的电子资源,这样会造成很大的不便,同时也影响图书馆电子资源的使用率。
为了能有效地解决这一问题,因而笔者开发了《图书馆电子资源专用浏览器》这套软件。
1 系统的设计思想
利用Supid 代理服务器软件作为基础, 以图书馆系统中的读者数据理库作为授权依据。 《图书馆电子资源专用浏览器》(下面简称《专用浏览器》)向服务端发送借书证号与密码。服务端接收到这些信息后,向图书馆系统读者库查询借书证号与密码是否合法,合法则发信息通知Supid 放行。同时也返馈信息给《专用浏览器》,可以访问了。
1.1 系统基本功能
读者在家可以访问我校图书馆的电子资源。 提高资源的利用率。 同时对读者进行身份识别,保障图书馆的电子资源不被滥用和保护电子资源供应商的合法权益。
1.2 系统基本构架
系统分为三部分组成的:1)supid 代理服务器软件;2)服务端认证控制程序;3)读者浏览器程序。
1)supid 代理服务器软件
Squid cache(简称为Squid)是一个流行的自由软件(GNU通用公共许可证)的代理服务器和Web 缓存服务器。 Squid 有十分广泛的用途,从作为网页服务器的前置cache 服务器缓存相关请求来提高Web 服务器的速度, 到为一组人共享网络资源而缓存万维网,域名系统和其他网络搜索,到通过过滤流量帮助网络安全,到局域网通过代理上网。 Squid 的发展历史相当悠久,已有17 年的历史。17 年期间,不断升级与改进。Squid的另一个优越性在于它使用访问控制清单(ACL)和访问权限清单(ARL)。访问控制清单和访问权限清单通过阻止特定的网络连接来减少潜在的Internet 非法连接,可以使用这些清单来确保内部网的主机无法访问有威胁的或不适宜的站点。
本系统采用squid 2.7(windows 版)为内核,开发了一个独立运行的外部ACL 辅助程序。 这个外部ACL 辅助程序是作用是服务端认证控制程序与supid 代理服务器软件的中间角色。
2)服务端认证控制程序
服务端认证控制程序主要负责对读者浏览器程序进行认证、访问控制。 服务端认证控制程序与读者浏览器程序之间是采用http 协议进行信息交换。 同时开发一个独立运行的外部ACL 辅助程序是服务端认证控制程序与supid 交流的桥梁。
3)读者浏览器程序
客户端浏览器软件使用VB.net 2005 开发而成, 使用IE内核。同时自动设置代理服务器地址。而代理的设置,只作用于本软件。 对读者电脑其它浏览器不起作用。
2 系统的特点及实现
2.1 系统的特点
客户端发行使用免安装.net 框架。读者解压即可,完全绿色安装。 读者直接运行客户端,通过客户端内置的浏器,迅速访问图书馆内网电子资源;读者使用客户端,必须通过借书证与密码的认证。 同时,系统能对每一个账号能统计使用次数,这样,能防止电子资源被滥用.有效保护电子资源的版权;服务器端运行稳定,能长期24 小时不间断;由于Squid 软件开发近17 年, 经过不断完善与改进。 目前能长期有效地运行。另外服务器端无需安装Linux 上,只安装在windows 上,安装简单。 对硬件要求低。 特别适合中小型图书馆的应用。
2.2 系统的实现
服务端应用supid 代理服务器为内核,整合读者系统;客户端浏览器软件使用VB.net 2005 开发而成,使用IE 内核;认证方式与汇文图书馆系统挂接。
本系统的核心是squid 的设置、squid 与服务端认证控制程序的交流桥梁 “外部ACL 辅助程序”、 为浏览器客户端实现设置代理服务器地址等。
1)squid 的设置
下面是本软件所用到的"Squid 配置":
其中:
external_acl_type MyAclType children=1 ttl=30 %SRC C:squidlibexecacl.exe
这句是起主要作用.Squid 包含了一个功能,叫做外部ACL。 这些ACL 元素在外部辅助器进程里被执行。
你指示squid 将某些信息写往辅助器,然后辅助器以OK或ERR 来响应squid。
在我的程序中,”某些信息”是指浏览器IP 地址。
主要说明请阅《Squid 中文权威指南》的"12.5 外部ACL "
也可以参考我的编写的"外部ACL 源码"
附:本软件所用到的"Squid 配置":
(1)当浏览器向Squid 请求访问时,Squid 会启动”libexec”文件夹内的ACL.exe(即外部ACL 辅助程序)
(2)外部ACL 辅助程序通过代码Console.ReadLine 来读取Squid 反馈过的的信息, 这个信息是浏览器端的IP 地址。通过函数“是否存在允许IP(ip as string)” 来验证这个IP 是否合法。通过代码” Console.WriteLine("OK")”向Squid 发送通过验证的信息,Squid 则会通过浏览器的代理请求, 否则为”Console.WriteLine("OK")”
(3)函数“是否存在允许IP(ip as string)”会使用HTTP协议来访问下面的网址:
Dim url As String = 认证服务器地址& "/ProxyACL.aspx?ip=" & ip。
服务端认证程序会根椐记录的合法IP 地址, 作出”OK”通过,或”ERR”不通过的响应。 服务端认证程程序与ACL 辅助程序是使用HTTP 协议。
3)读者浏览器的认证功能实现
浏览器端访问以下网址。 “http://认证服务器地址/Proxy-Login.aspx?id=用户账号&psw=用户密码”, 认证服务器返回"OK",则表示登录成功。 认证服务器会记下浏览器端的IP 地址,以便给Squid 验证留下依据。
4)实现IE 为内核的代理服务器功能
主要通过” wininet.dll”的InternetSetOption 函数,来设置浏览器端的代理服务器地址。 这个代理服务器设置,只会在浏览器端内起作用,不用影响其它浏览器的设置。
核心代码为:Call InternetSetOption (IntPtr.Zero, INTERNET_OPTION_PROXY, ProxyInfo, System.Runtime.InteropServices.Marshal.SizeOf(ProxyInfo))
3 结语
此软件在本校内已使用一年了,经过不断开发、测试、试运行,已日趋成熟,并有效地解决外校师生的电子资源使用问题。 为了使本软件功能上和性能上有更大的改进和完善,目前已对校内部分有兴趣的学生开源。S
[1]李默,杨彬.Squid 技术在图书馆电子资源远程访问中的应用[J].科技情报开发与经济,2007(31):11-12.
[2]申飞驹.基于SSL-VPN 的数字图书馆资源共享服务平台研究[J].图书馆数字化技术平台,2010(8):84-85.