APP下载

基于版权保护的随书光盘管理系统设计与实现

2013-06-08刘芷茵

河南图书馆学刊 2013年8期
关键词:文件名光盘日志

刘芷茵

(广州市越秀区图书馆,广东 广州 510030)

1 引言

随书光盘是图书的一种补充,帮助读者加深对图书内容的理解,起到辅助学习的作用。但随书光盘在流通过程中容易出现磨损、丢失等情况,造成光盘保存和管理极为不便。为了更好地保存、管理与利用随书光盘,目前国内不少图书馆开始使用随书光盘管理系统,将光盘内容压缩后存储在服务器上,通过网络进行光盘资源管理和应用。这种服务方式,即使随书光盘能够以数字化形式长久保存,又提高了随书光盘的使用效率,体现了图书馆开拓数字化、信息化服务的理念。然而随书光盘管理系统在使用过程中会遇到很多问题,其中版权保护就是比较关键的一个问题。笔者从版权保护出发,探究设计随书光盘管理系统时规避侵权风险的策略,并在此基础上提出了系统设计和实现的方案。

2 规避侵权风险的策略

图书馆作为公益性的社会文化教育机构,承担着保障公众文化权益、让公众共享文化成果的责任,理应为公众提供免费的随书光盘数字资源服务。但随书光盘是随图书一同发行的电子出版物,依法应受到版权保护。那么,图书馆利用随书光盘管理系统在网络上传播随书光盘资源将涉及版权问题。《中华人民共和国著作权法》和《信息网络传播权保护条例》均规定了版权作品合理使用的多种情形及未经著作权人许可、通过信息网络传播版权作品应遵守的规定,为图书馆合理地、正当地为公众信息资源服务提供了法律依据。因此,图书馆应以保护版权为前提,遵守法律规定,从以下几方面着手进行随书光盘管理系统的设计与开发,规避侵权风险。

2.1 保证随书光盘内容的完整性

《中华人民共和国著作权法》第四十七条规定,未经著作权人或者与著作权有关的权利人许可,故意删除或者改变作品、录音录像制品等的权利管理电子信息的行为都是侵权行为,应承担相应的法律责任。在随书光盘管理系统使用过程中,加工随书光盘时,不可对光盘内容作任何删改,直接压缩整张光盘的数据,以保证光盘内容的完整性。

2.2 采取技术措施防止随书光盘被非法下载

《信息网络传播权保护条例》第七条规定,图书馆可以不经著作权人许可,通过信息网络向本馆馆舍内服务对象提供本馆收藏的合法出版的数字作品和依法为陈列或者保存版本的需要以数字化形式复制的作品,不向其支付报酬,但不得直接或者间接获得经济利益。《信息网络传播权保护条例》第十条规定,图书馆未经著作权人许可、通过信息网络向公众提供其作品,应当采取技术措施,防止图书馆服务对象以外的其他人获得著作权人的作品。根据以上条例,只要图书馆采取有效技术保护措施,控制随书光盘数字资源网络传播的对象和范围,向本馆读者提供免费服务,不以盈利为目的,则可避免侵权风险。[1]

2.3 发表版权声明

《信息网络传播权保护条例》第二十二条规定,网络服务提供者通过信息网络向公众提供作品、表演、录音录像制品,应明确标示该信息存储空间是为服务对象所提供,并公开网络服务提供者的名称、联系人、网络地址。随书光盘管理系统的下载页面,应公布版权声明。版权声明内容除了上述条例提到的内容外,还可以包括用户合理使用光盘资源的行为说明和侵权行为说明。图书馆发表版权声明,是为了避免用户直接侵权行为的发生,同时也是为了履行法律关于注意义务的要求,免除可能产生的图书馆间接侵权责任。[2]

3 随书光盘管理系统的设计

笔者基于以上策略,设计和开发了随书光盘管理系统,系统架构为Java+Jsp+Tomcat+SQL Server2005。

3.1 系统设计

本系统主要实现随书光盘的下载利用与系统管理人员对随书光盘的管理和维护,系统包含用户验证、光盘资源下载、光盘资源管理、用户管理、日志管理等功能模块。

3.1.1 用户验证。本模块用于用户身份验证,判断用户是否为图书馆的合法用户,通过验证才能登录系统,验证信息包括读者证号和密码。

3.1.2 光盘资源下载。本模块用于随书光盘的下载使用。只有系统认可的合法用户才有权限下载和使用随书光盘。

3.1.3 光盘资源管理。本模块用于系统管理人员对随书光盘进行加工、上传、修改、删除等操作,实现随书光盘的管理和维护。

3.1.4 用户管理。本模块采用多用户多角色管理机制,实现对系统各级用户的角色设置和权限分配,确保不同级别的用户登录系统后只能够执行属于自己权限范围内的操作,保障系统的安全性。

3.1.5 日志管理。本模块跟踪记录用户所进行的操作,形成操作日志,并提供日志查询功能,以便系统管理人员监控用户的操作行为。

3.2 数据库设计

根据系统功能模块的划分,系统的数据库主要包含如下数据表:①光盘资源信息表。包括光盘编号、索取号、光盘名称、光盘文件名、书名、文件大小、上传时间七个字段。②用户信息表。包括用户编号、用户名、用户密码、角色编号四个字段。③用户角色表。包括角色编号、角色名称、角色说明三个字段。④操作权限表。包括权限编号、权限名称、权限说明三个字段。⑤角色权限关联表。包括关联记录编号、角色编号、权限编号三个字段。⑥操作日志表。包括日志编号、操作类型编号、操作对象、操作执行结果、流量、用户编号、操作时间、IP地址八个字段。⑦操作日志类型表。包括操作类型编号、操作类型名称、操作类型说明三个字段。

4 随书光盘管理系统的实现

4.1 Tomcat配置方法

4.1.1 在Tomcat的conf目录下找到server.xml文件,配置文件路径:

<Context path="/iso"docBase="G:disk_data"debug="0"reloadable="true"crossContext="true"/>

其中,path是光盘资源发布到网上下载的虚拟路径,docBase是光盘资源在服务器存放的物理路径。

4.1.2 在Tomcat的conf目录下找到web.xml文件,指定需要下载文件的MIME类型为iso:

<mime-mapping>

<extension>iso</extension>

<mime-type>application/octet-stream</mime-type>

</mime-mapping>

4.2 随书光盘加工处理

加工随书光盘,可以用WinlSO或UltralSO等软件把光盘压缩成ISO镜像文件并上传到服务器。ISO文件是一种符合ISO 9660国际标准的光盘镜像文件格式,扩充的ISO 9660可以支持市场上几乎所有的光盘。使用标准的ISO 9660格式压缩光盘可以保证整张光盘内容的完整性,避免光盘部分信息的丢失。用户下载ISO镜像文件后可通过Daemon等虚拟光驱软件将其虚拟成光盘直接使用[3]。考虑到镜像文件比较大,为了节省数据库空间和提高速度,可在服务器上建立存放光盘镜像的文件夹,把光盘镜像直接上传到服务器上。随书光盘与图书采用一致的索取号,以索取号作为光盘镜像的文件名,然后把光盘镜像的文件名写进数据库。

4.3 用户验证功能

由于随书光盘管理系统数据库不具备读者信息,用户验证交由图书馆管理系统处理。随书光盘管理系统设置用户登录界面,获取用户的读者证号和密码,然后通过基于HTTP协议的读者身份验证接口为用户进行身份验证,再获取接口返回的验证结果,如验证通过则允许用户登录。

接口返回的验证结果可采取XML作为数据描述文件格式。XML是为互联网的数据交换而设计的,是一种简单的数据存储语言,使用一系列简单的标记描述数据。系统可以先用专门处理HTTP请求和响应的工具包,比如HttpClient,来获取XML格式的验证结果,然后再用DOM、DOM4J、SAX和JDOM等四种解析器中的一种来解析XML。

下面笔者编写了一个以读者证号和密码为参数的ReaderCheck函数,来进行用户身份验证。代码如下:

public static String ReaderCheck(String rdid,String pwd){

//用HttpClient获取XML

HttpClient httpClient=new HttpClient();

String urlName="……";

PostMethod postMethod=new PostMethod(url-Name);

try{

int responseCode = httpClient.executeMethod(postMethod);

if(responseCode==200){

System.out.println("请求成功.");

String res = postMethod.getResponseBodyAs-String();

//用DOM解析XML

DocumentBuilderFactory dbf=DocumentBuilder-Factory.newInstance();

StringReader reader=new StringReader(res);

InputSource insource = new InputSource(reader);

DocumentBuilder db=dbf.newDocumentBuilder();

Document doc=db.parse(insource);Element root=doc.getDocumentElement();

……}

4.4 光盘资源下载功能

4.4.1 只允许图书馆借了图书的读者下载所借图书的随书光盘。随书光盘和图书是配套使用的,只学习光盘内容而不看书籍会使学习效果打折扣。而且不加限制地允许用户大量下载随书光盘,会存在侵权的潜在风险。虽然可以由系统监控用户的下载行为,但只能发现短期内同一帐号大量下载随书光盘的行为,对于多个账号分时少量下载的行为则较难检测和判断。

为了实现此功能,可以由图书馆管理系统提供取得读者当前借阅信息的接口,随书光盘管理系统通过该接口获取用户当前的借阅信息,如所借图书带有随书光盘,则提示用户下载。

用户当前借阅信息的获取方法可参照用户身份验证功能的实现方式操作。

4.4.2 做好防盗链处理,防止非授权用户下载随书光盘。盗链就是一些网站为了丰富自己网站的内容,而盗取其他网站的图片、音乐、文件的下载地址,放到自己网站上。防盗链就是防止这种行为的发生,杜绝非法下载,实现版权保护。

笔者采用的防盗链方法是下载光盘资源时隐藏其真实的下载地址。具体流程:根据读者当前所借图书的索取号,利用图书与光盘索取号一致的关联关系在数据库中找到对应的光盘文件名,然后把下载链接设为“http://xxx/download.jsp?fn=yyy”,其中,xxx是随书光盘管理系统域名,yyy是光盘文件名。在download.jsp页面里,先判断下载请求的来源页是否为外部网站,如果是则提示用户登录,如果不是则动态生成光盘资源真实的下载地址,并实现光盘资源的下载。

动态生成下载地址的原理:把光盘的索取号作为光盘的文件名,由于索取号中带有的“/”不能作为文件名,因此用“_”代替“/”,比如索取号为H31/165,则文件名为H31_165.iso。然后,再按分类号对光盘文件分类存放,如H类的放在文件名为“h”的文件夹下,那么H31_165.iso在服务器中存放的相对路径就是“/iso/h/H31_165.iso”。按照这个规则,系统就可以在用户点击下载链接时再由程序生成每个光盘文件的真实下载地址。

实现防盗链的主要代码如下:

(1)用户登录状态判断

if((String)session.getAttribute("Username")==null)

{response.sendRedirect("login.jsp");//跳转到登录页面要求用户登录}

(2)动态生成下载地址

public static String isopath(String fn){

String filename=fn;

char c=filename.charAt(0);

int i=(int)c;

if(i>=65&&i<=90){

String p=filename.substring(0,1).toLowerCase();

String realpath = "/iso/" + p + "/" +filename;//生成下载地址

}

else

{

System.out.println(“文件名错误!”);

}

……

}

(3)下载光盘资源

public String downloadFile(HttpServletRequest request,

HttpServletResponse response){

……

int filelength=0;

try{

response.setContentType(this.getContentType(filename));

response.setHeader("Content-disposition","attachment;filename="+filename);

InputStream fis = new FileInputStream(realpath);

BufferedInputStream bis = new BufferedInput-Stream(fis);

OutputStream fos = response.getOutputStream();

BufferedOutputStream bos=new BufferedOutput-Stream(fos);

int bytesRead=0;

byte bytes=new byte[512000];

while((byteslen=bis.read(bytes))!=-1)

{

filelength+ =byteslen;

bos.write(bytes,0,byteslen);//发送到客户端

}

……

}catch(IOException e){

……

}

}

4.5 日志记录和查询功能

系统在用户进行登录和退出、下载文件,对光盘资源进行增删改等操作时,用SQL的insert into语句在操作日志表中插入一条记录,记录操作用户、操作类型、操作对象、操作执行结果、产生的流量、操作时间、所在IP地址等日志信息。用户登录和退出日志的记录可以利用HttpSessionBindingListener接口,通过监听session的新建和撤销来实现。

有了日志记录,就可以利用SQL语句对操作日志表执行查询和统计,生成统计报表。统计报表可直观反映随书光盘的下载频率和用户下载随书光盘的情况。管理人员根据用户的下载频率和下载流量就可判断其使用行为是否合理。[4]

5 结语

本系统现已在广州市越秀区图书馆使用,效果良好。本系统在解决版权问题的同时,使随书光盘得以长久保存,使读者能够通过网络便捷地获取到所需要的随书光盘资源,为图书馆开展信息资源服务提供了有效途径。

[1] 陈小萍,吴高.随书光盘利用的版权风险与对策研究[J].图书馆论坛,2009(5):53-55.

[2][4]韦景竹,汤罡辉,郭超.图书馆知识产权风险规避自律机制的观察与分析[J].图书情报知识,2010(2):92-99.

[3] 戴丽娜.无锡科技职业学院图书馆随书光盘管理系统的设计[J].内蒙古科技与经济.2009(19):147-149.

猜你喜欢

文件名光盘日志
光盘行动
一名老党员的工作日志
扶贫日志
右键调用多重更名更方便
Excel轻松提取文件名
把我的秘密藏起来
光盘小熊
游学日志
一种基于粗集和SVM的Web日志挖掘模型
光盘光荣