在探讨基于XML的软件授权控制技术之前,首先需要了解一些基础概念。序列号(SN)方式是早期软件授权的一种常见形式,但存在诸多缺陷,例如容易被传播,不能有效保护软件版权,对软件收费方式控制不灵活,以及智能化升级不足等问题。为了解决这些问题,出现了基于XML技术的软件授权控制方式。
XML(eXtensible Markup Language,可扩展标记语言)是一种网络技术,它允许用户根据需求创建新的标记,并以统一的方式格式化和传输数据。XML具有以下特点:良好的数据存储格式、可扩展性、高度结构化、便于网络传输等特性。这些特性为基于Web的应用程序提供了更强的功能和更多的灵活性,使得数据可以更容易地与其他应用程序、对象、中间层服务器交换。
基于XML的软件授权控制系统的工作原理包括服务器端和客户端两个部分。服务器端负责生成和管理授权文件,而客户端负责使用该授权文件。服务器端基本服务功能包括在线授权申请、在线获取授权信息、在线更新客户信息、在线下载程序和在线升级程序等。软件公司通过Web页面接收客户的基本信息、购买信息和缴费信息,经审核通过后,生成加密的XML授权文件,并通过电子邮件、光盘或其他方式发送给客户。
客户端的应用程序需要通过一个特定的DLL文件(例如warrant.dll),通过该文件解密和解析授权文件,验证客户是否合法以及使用期限是否有效。如果验证通过,应用程序可以正常使用,否则不能进入程序,从而达到保护软件版权的目的。
授权XML文件的生成和加密过程通常使用JSP(Java Server Pages)技术开发。JSP技术可以使HTML编码从业务逻辑中分离出来,并且可以访问可重用的组件,如Servlet、JavaBeans和基于Java的Web应用程序。在生成加密授权文件的过程中,服务器首先审核客户资金到账情况,然后提取客户信息和产品信息,并调用特定函数生成XML格式的授权字符串。之后,系统会对这个XML字符串进行加密处理,最终生成加密的授权文件。
生成XML文件时,文件的第一行是文件序言,它告诉XML解析器如何工作。序言中包含version属性,标示XML文件所用的标准版本号,以及encoding属性,指明XML文件中所使用的字符类型。例如,一个基本的XML文件序言可能如下所示:
```xml
<?xml version="1.0" encoding="GB2312"?>
```
节点是XML文件中标识信息的基本单位,每个节点都需要使用一对节点名来标识。在生成授权文件的过程中,通过编写相应的函数来设置这些节点名。
由于版权保护的重要性,对加密算法的选择需谨慎。加密算法不应一成不变,以防止被破解的连锁效应。授权文件只需一个,即使客户使用了公司的一个或多个产品,这样设计可以减少管理复杂性,同时保证了系统的灵活性和安全性。
文章的作者周广琦和魏恒义来自西安交通大学电子与信息工程学院,他们在2005年第9期的《计算机时代》上发表了这篇文章,旨在通过技术手段解决软件授权过程中的版权保护和智能化升级服务等问题。文章的分析和实施方法,对于理解XML在软件授权控制方面的应用,提供了具体的实践案例和技术支持。