白彦辉,王文利,黄 谦
(1.赤峰学院 计算机与信息工程学院,内蒙古 赤峰 024000;2.赤峰市烟草公司,内蒙古 赤峰 024000)
具有身份验证的文件传输Web Service应用研究
白彦辉1,王文利1,黄 谦2
(1.赤峰学院 计算机与信息工程学院,内蒙古 赤峰 024000;2.赤峰市烟草公司,内蒙古 赤峰 024000)
Web服务是一种面向服务的架构的技术,通过标准的Web协议提供服务,目的是保证不同平台的应用服务可以互操作.本文通过对Web服务的研究,分析了Web服务的基本原理,基于.NET开发技术,介绍了一个具有身份验证功能的文件传输Web服务软件的设计过程,软件实现了从客户端登录后使用Web服务功能获取服务器端文件的功能.
Web服务;身份验证;.NET
Web服务就是Web Service,是一个建立可互操作的分布式应用程序的新平台[1].它是一套标准,定义了应用程序如何在Web上实现互操作性,是在Internet上进行分布式计算的基本构造块.Web Service在具体实现时,定义可能有多种,但都应具有以下共同点:
(1)Web Service通过标准的Web协议向Web用户提供有用的功能.多数情况下使用SOAP协议.
(2)Web Service可以非常详细地说明其接口,这使用户能够创建客户端应用程序与它们进行通信.这种说明通常包含在称为Web服务说明语言(WSDL)文档的XML文档中.
(3)Web Service要经过注册,以便潜在用户能够轻易地找到这些服务,这是通过通用发现、说明和集成(UDDI)来完成的.
Web Service在最终实现时,需要使用远程过程调用协议RPC,为了达到互操作性,RPC协议与平台和编程语言无关.
Web Service是由许多与平台无关的、可自我描述的协议构成的,它的实现基于XML、SOAP、WSDL和UDDI这样一些基础协议.
可扩展的标记语言(XML)是Web service平台中表示数据的基本格式.除了易于建立和易于分析外,XML主要的优点在于它既是平台无关的.XML解决了数据表示的问题,但它没有定义一套标准的数据类型,也没有说怎么去扩展这套数据类型.例如,整形数到底代表什么?16位,32位,还是64位?这些细节对实现互操作性都是很重要的.
W3C制定的XML Schema(XSD)定义了一套标准的数据类型,并给出了一种语言来扩展这套数据类型.Web service平台就是用XSD来作为其数据类型系统的.当使用某种语言来构造一个 Web service时,为了符合Web service标准,所有被使用的数据类型都必须被转换为XSD类型.虽然开发工具可能会自动完成这个转换,但仍可能会根据需要去修改转换过程.
SOAP(Simple Object Access Protocal,简单对象访问协议)是一个基于XML的在分散或分布式环境中实现信息交换的简单协议,是一种轻量的、简单的、基于XML的协议,它被设计成在WEB上交换结构化的和固化的信息.Web service建好以后,需要用户或者开发人员去调用它.简单对象访问协议 (SOAP)提供了标准的RPC方法来调用Web service.SOAP规范定义了SOAP消息的格式,以及怎样通过HTTP协议来使用SOAP.SOAP也是基于XML和XSD的, XML是SOAP的数据编码方式.
WSDL(Web Services Description Language)表示Web服务说明语言,它是基于XML的语言,用于描述Web service及其函数、参数和返回值.因为是基于XML的,所以WSDL既是机器可阅读的,又是人可阅读的,这将是一个很大的好处.一些最新的开发工具既能根据Web service生成WSDL文档,又能导入WSDL文档,生成调用相应Web service的代码.
UDDI(Universal Description,Discovery and Integration,通用发现、说明和集成)的目的是为电子商务建立标准;UDDI是一套基于Web的、分布式的、为Web Service提供的、信息注册中心的实现标准规范,同时也包含一组使企业能将自身提供的Web Service注册,以使别的企业能够发现的访问协议的实现标准.
使用ASP.NET创建XML Web Service是一件非常容易的事情,使用ASP.NET创建Web Service时,它自动支持使用SOAP、HTTP-GET和HTTP-POST协议与客户通信.同时asp.ent会自动定义对应的XSD Schema,并把相应的对象对应到XML中.创建过程需要三个步骤:
(1)创建.asmx文件.
(2)在文件中用标签声明此文件用于Web Service.
(3)定义Web Service Method把 Web Service的功能暴露给用户.
文件传输Web服务包含两个组成部分:服务器端和客户端.在.NET环境中建立一个Web Service项目FileService,其中包括一个类文件Authentication.cs,用于实现服务器端的身份验证.客户端是一个Windows Form项目WebServiceTerminal,包含两个窗体:TerminalFrom和ManageForm.
Authentcation类是FileService Web服务中的重要组成部分,它的功能是为Web服务提供认证,实现访问控制.系统中需要认证的信息存放在XML文档中,初始的XML文档如下.
users是根节点,字节点有两种类型:user和admin,用户名和密码通过name和password属性存放.在Authentcation类中包含了ValidateUser、ValidateAdmin、ChangePassword、AddUser四个方法,用户实现用户验证、管理员验证、修改密码和添加用户.ValidateUser和ValidateAdmin方法的主要代码如下:
FileService类是Web Service服务的整体,在这个类中定义了所有的Web Method方法,包括GetFile、ChangePassword、AddUser和 GetList四个方法.其中GetFile和GetList方法用于返回服务器端文件和文件列表,定义如下.
//文件获取方法
运行服务器端代码,记录FileService.asmx文件的运行地址.
在客户端程序中需要添加对已完成Web服务的引用.通过在浏览器中给出FileService.asmx的地址,单击“Add Reference”来添加对当前web服务的引用.被引用的Web服务会出现在WebServiceTerminal项目中.
在这个部分中,实现了对客户端对FileService中函数功能的调用,同时实现了文件传输任务,代码略过.
Web Service的主要目标是跨平台的可互操作性.为了达到这一目标,Web Service完全基于XML(可扩展标记语言)、XSD(XML Schema)等独立于平台、独立于软件供应商的标准,是创建可互操作的、分布式应用程序的新平台.从本文实例中可以看出,.NET环境为用户提供了一整套的Web Service解决方案,在开发中涉及的数据层、中间层、到表现层,.NET都有功能强大的开发工具和组件,为Web Service的开发提供了极大的便利.
〔1〕黄承安.C#网络应用案例导航[M].北京:中国铁道出版社,2003.
〔2〕张晓芬.基于SOAP的CBM系统通信模型设计与实现 [J].沈阳师范大学学报 (自然科学版),2011,29(1):77-81.
〔3〕林川.基于UDDI和WSDL的Web服务发布方案[J].计算机工程与设计,2005,26(4):993-995.
〔4〕芮雄健,王忠民.UDDI的原理与实现[J].计算机工程与设计,2005,26(6):1602-1605.
TP393.08
A
1673-260X(2012)02-0050-03