毕业设计(论文)基于WebService的RFID信息服务系统.doc

上传人:laozhun 文档编号:3980056 上传时间:2023-03-30 格式:DOC 页数:28 大小:341KB
返回 下载 相关 举报
毕业设计(论文)基于WebService的RFID信息服务系统.doc_第1页
第1页 / 共28页
毕业设计(论文)基于WebService的RFID信息服务系统.doc_第2页
第2页 / 共28页
毕业设计(论文)基于WebService的RFID信息服务系统.doc_第3页
第3页 / 共28页
毕业设计(论文)基于WebService的RFID信息服务系统.doc_第4页
第4页 / 共28页
毕业设计(论文)基于WebService的RFID信息服务系统.doc_第5页
第5页 / 共28页
点击查看更多>>
资源描述

《毕业设计(论文)基于WebService的RFID信息服务系统.doc》由会员分享,可在线阅读,更多相关《毕业设计(论文)基于WebService的RFID信息服务系统.doc(28页珍藏版)》请在三一办公上搜索。

1、 摘 要:射频识别(RFID)技术是一种利用射频通信实现的非接触式自动识别技术。RFID作为一种新兴的自动识别技术,越来越多的被应用到商业领域中,并取得了很快的发展。Web Service技术是目前面向服务架构(SOA)的最好实现技术之一。Web Service是建立分布式应用程序的新平台,实现信息共享。将Web Service应用于RFID系统,可以通过Web Service共享平台将不同信息链接为高效统一的网络,实现信息高度共享,使RFID应用系统更加有效的运作。 关键字:Web service; RFID ;信息共享Design and Implementation of RFID In

2、formation Service SystemYing Xiong ,Class 1 Grade 2007,Department of Computer ScienceAbstract:Radio Frequency Identification (RFID) technology uses radio frequency communication to achieve a non-contact automatic identification technology.RFID as an emerging automatic identification technology,more

3、and more being applied to business areas and has been developed rapidly.Web Service technology is one of the best technologys that implement service-oriented architecture(SOA).Web Service is a new platform to built distributed applications,realize information sharing.Web Service to be applied to RFI

4、D systems,may through a Web Service sharing platform links the different informations into efficient unified network,to archieve a high degree of sharing of information,so that RFID application system more effective manner.Key words: Web Service;RFID;Information Sharing第一章 绪论1.1系统开发的背景与意义1.1.1选题背景射频

5、识别(Radio Frequency Identification,RFID)技术,是一种利用射频通信实现的非接触式自动识别技术(以下简称RFID)。RFID技术通过射频信号自动识别目标对象并获取相关数据,识别工作无需人工干预。RFID标签体积小、容量大、寿命长、可重复使用等特点,可支持快速读写、非可视识别、移动识别、多目标识别、定位及长期跟踪管理。RFID 技术与互联网、通讯等技术相结合,可实现全球范围内物品跟踪与信息共享1。可以说RFID 技术的应用给零售、物流等产业带来革命性变化。目前射频识别技术被广泛应用于工业自动化、商业自动化、交通运输控制管理、安全控制、休闲娱乐等众多领域:汽车、火

6、车、地铁等交通付费;停车场管理;食品药物来源跟踪;物流与供应链管理;流水线生产自动化;安全出入检查;仓储管理;动物管理;电子防盗等等。RFID的应用领域仍在不断拓宽。RFID技术在现代社会具有极大的应用前景。在美国沃尔玛等大型连锁超市等都已经开始引进RFID系统,我国也正在积极研究和筹建将RFID技术应用于物流等产业。因此RFID应用系统也随之发展起来,结构也系统日趋复杂。RFID中间件解决了将物理基础架构收集到的信息传递给企业应用程序的问题。中间件的主要任务是对读写器传来的与标签相关的事件、数据进行过滤、汇集和计算,减少从读写器传往企业应用的巨量原始数据、增加抽象出的有意义的信息量,并提供应

7、用程序级别的接口来查询RFID事件2。但是中间件只具有处理数据的能力,而不能存储数据,RFID信息服务系统就是用于接收中间件传来的事件数据,持久保存到数据库中,并对外提供数据访问接口,实现信息共享。1.1.2系统开发的意义RFID旨在基于将电子标签运用于物品管理和信息采集,利用射频识别实现信息的实时采集、交换、处理等,在此基础上通过一个Web Service共享平台将不同信息联结为高效统一的网络,实现信息高度共享,从而提高运输、仓储、物料输送和生产调度的效率并大幅降低成本,解决企业内部之间、不同企业之间的信息交互,使RFID应用系统更有效地运作3。使用Web服务平台来实现RFID信息服务系统,

8、系统的业务逻辑将被设定为以服务的形式出现。Web服务开发部署在Web上,对外提供标准的接口,因此服务可以在应用程序之间、企业之间被共享、重用和配置,可以被各种应用和其他服务所调用。通过Web Service架构,服务可以独立地设计和开发,而应用程序在需要的时候通过Web Service标准对这些服务进行访问和调用,这样业务的实际实现与用户调用的接口分离开来,对以后系统的扩展和维护来说是十分方便灵活的。因此采用基于Web Service架构,我们可以建立全面的具有通用性、开放性、实用性和灵活性的RFID应用系统。1.2本文所做的工作本课题主要完成以下几方面的工作:1.对Web Service技术

9、进行研究;2.基于SOA的思想,利用Web Service技术分析设计RFID信息服务系统;3.设计一个合理的数据库,用Java编写开发Web服务;改成编号,下面的那个也是本课题在以下几方面有所创新:1.基于Web Service技术的系统架构思想;2.采用服务的形式实现业务逻辑,可以方便的与其他系统集成;3.服务的可重用性,与可扩展性本文的第二章详细介绍了使用到的相关技术理论;第三章介绍了基于RFID信息服务系统的分析与设计;第四章介绍了RFID信息服务系统的实现;第五章是结束语。第二章 相关技术理论与开发环境介绍本系统采用Web Service技术,使用Oracle作为数据库开发工具,使用

10、Java作为软件编码开发语言。下面我将阐述各个工具的特点和优势。2.1系统技术架构2.1.1 Web Service基本概念Web Service 主要是为了使原来各孤立的站点之间能够相互通信、共享资源而提出的一种接口技术。Web Service所使用的是Internet上统一、开放的标准,如HTTP、XML、SOAP、WSDL等。其中,SOAP协议(Simple Object Access Protocal,简单对象访问协议)是一个用于分散和在分布式环境下交换网络信息的基于XML的通信协议。在此协议下,软件组件或应用程序能够通过标准的HTTP协议进行通信,从而使存在的应用程序能够被广泛的用户

11、访问。Web Service是构造分布式、模块化应用程序的最新技术发展趋势。在Web Service的体系中包括三个角色:服务提供者(Service Provider)、服务请求者(Service Requester)、服务注册中心(UDDI Registry)。角色间主要有三个操作:发布(publish)、查找(find)和绑定(bind)。三者的交互模型如图所示:图2-1 Web Service体系的角色交互模型首先服务提供者会在一个WSDL(Web Services Description Language,Web Service描述语言)文件中描述Web Service,通过建立在SO

12、AP(Simple Object Access Protocol,简单对象访问协议)之上的API把这个Web Service在服务注册中心发布。服务请求者可以通过UDDI(Universal Description,Discovery and Integration,统一描述、发现和集成协议)的API在服务注册中心查找合适的服务提供者,找到后进而可以得到WSDL文件4。然后服务请求者会在WSDL文件的基础上创建一个SOAP的请求,这个SOAP的请求被发送到服务提供者,服务提供者处理这个请求。服务的请求者可以使用该项服务。Web Service 体系结构的主要优点之一是,它是使用标准的Web 协

13、议XML、HTTP 和TCP/IP,允许在不同平台上以不同语言编写的各种程序以基于标准的方式相互通信。2.1.2 Java对Web Service的支持Web Service只是提供了一个接口标准,但是它并不会告诉我们Java程序员如何用Java编写Web服务,因此Java提供Web Service规范JAX-WS(Java API for XML Web Services),Java程序员可以方便的使用 JAX-WS 技术为应用程序开发 Web 服务。JAX-WS 是使用 Java 构造 Web 服务和 Web 服务客户端的工作的技术。在Web服务端,程序员可以直接写自己的实现类,只要通过J

14、ava语言定义远程调用所需要实现的接口SEI(Service Endpoint Interface),并编写相关实现代码,再调用JAX-WS的服务发布接口就可以将其发布为Web Service接口。在Web服务客户端,开发人员可以通过JAX-WS的API创建一个代理,用本地对象来替代远程服务,实现对Web服务的调用。由于我们在使用JAX-WS的过程中,Java程序员不必全面了解XML和SOAP的解析,也不用编写任何生成和处理SOAP消息的代码,所以有利于开发人员专注于服务接口的具体实现部分,而不用分散精力去编写底层细节,从而加速了Web服务的开发工作。所以在本项目中,选择JAX-WS开发Web

15、 Service。2.2开发环境开发RFIDIS信息服务系统需要用到如下软件环境:l 操作系统:Windows XPl 数据库:Oracle 9il 开发工具:MyEclipse8.6l Web应用服务器:Tomcat 6.0第三章 系统分析与设计3.1系统可行性分析可行性研究的目的,就是用最小的代价在尽可能短的时间内确定问题是否能够解决。可行性分析必须为决策提供有价值的证据5。RFID技术是一门新兴革命性技术,RFID的应用领域也不断拓宽,因此,建立RFID信息服务系统是非常重要的,是建设完整的RFID应用系统不可或缺的一部分。为此,在开发RFID信息服务系统之前,首先应该进行可行性分析。从

16、技术层面上来看,Web Service技术已经比较完善,并且大多数的编程语言都提供了对它的支持。再者RFID与Web Service具有良好的兼容性,为基于RFID信息服务系统的实现打下了基础。而且在开发的同时,有许多的老师和同学可以随时提供技术支持和指导,网络上对Web Service技术的研究资料也比较丰富,作者对于Java编程开发也有一定的经验,综合以上条件来看,可以开发出本系统。系统如果投入使用,使用本系统的一般操作人员要求有一定计算机基础。在新系统开发完成之后只需对办公人员进行简单的培训就可以操作新系统。根据以上两点,可以得出结论该系统的开发是完全可行的。3.2目标设计基于Web S

17、ervice的RFID信息服务系统要完成对事件信息的监听功能以及将监听到的事件信息持久化保存的功能,并且要对保存至本地的事件数据提供访问接口,进行事件交换和信息共享,并为日后添加新的功能或规划的功能预留接口。因此该系统需要解决的问题是如何使RFID信息服务系统具有良好扩展性,这个问题的解决方案就是采用基于Web Service的系统架构。我们将RFID信息服务系统的功能作为Web服务公开,由于Web Service的平台无关性,RFID中间件可以以独立于平台的方式传递事件信息到本系统,并且我们可以将多个RFID信息服务系统对等的分布在网络中,互相之间可以交换和查询数据,实现信息共享。由于服务反

18、映的是业务逻辑,所以当需要新的业务需求时,可以通过服务的组合和复用来实现新的业务流程,同时把需要进行的开发工作降到最低,因此能够更快更好的对系统进行扩展。本系统的设计分成两个层次:Web服务端以及客户端程序。Web服务端是Web Service的提供者,这些服务提供对数据库的访问和其它复杂业务功能的实现,该层发布的Web Service可以提供独立的业务功能,以后所有需要这些业务功能的地方只需要请求并调用这些Web Service即可。客户端程序则根据客户端的请求在UDDI中寻找合适的Web Service,调用其提供的接口,并获取Web Service的处理结果。最后客户端程序将获取的数据显

19、示给用户 4。两层结构使得各类功能间具有明确的划分,其中的Web Service有很好的可重用性。具体来说,RFID信息服务系统的Web Service服务端采用Hibernate框架对Oracle数据库进行操纵,实现数据持久化,并且对外提供数据库访问的接口;而客户端作为人机交互的接口,监听并接收由RFID中间件传递到本机的射频事件列表,通过调用Web Service方法将事件数据存储至本地数据库,并通过调用相应的Web Service方法完成对事件的各种查询功能。3.3术语表序号术语或缩略语说明性定义1TAGID射频唯一标识,唯一对应一件物品或一个人2RFID事件每一次在读写器与标签的交互都

20、会产生一个RFID数据流,这条数据经过RFID中间件的过滤抽象处理后成为一条RFID事件记录传到RFIDIS系统。事件信息包括射频唯一标识、读卡时间、读卡地点等信息,这样的一条记录被称为一个事件3监听客户端会在指定端口监听由RFID中间件发送到本机的RFID事件,并将事件数据写入数据库3.4系统结构图RFID信息服务系统统统ServerClient用户验证事件监听信息查询开始监听停止监听查询全部按Tagid查询按时间点查询按时间段查询按时间地点查询订购服务发送订购信息高级查询停止服务接收事件存储事件数据库操纵可视化设计图3-1基于Web Service的RFID信息服务系统结构图3.5数据库的

21、分析与设计由于系统需要接收RFID中间件传来的大量RFID事件,要处理的数据量可以达到百万千万条,数据量比较庞大,故采用企业级别的Oracle数据库作为系统开发的数据库。针对本系统的实际情况,通过对RFID事件标签包含信息的分析,可以设计如下所示的数据项和数据结构:1. 事件信息(事件信息ID,射频唯一标识,读卡时间,读卡地点)。2. 人员信息(标签ID,姓名,性别,出生日期,照片,备注)。3. 物品信息(标签ID,物品名称,生产日期,用途,物品图片,备注)。4. 订购信息(订购信息ID,关注的射频标识组,间隔时间,IP,端口,最后时间)。5. 用户信息(用户名,密码)。得到上面的数据项和数据

22、结构以后,就可以设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。根据关系结构数据模型,为系统建立数据表以及数据表之间的关系。系统共建立5张数据表,分别为事件表、人员表、物品表、订购信息表、用户表。针对本系统的需求,画出ER图如下:事件事件IDTagID读卡时间读卡地点对应对应人员TagID 姓名 性别出生日期 照片 备注物品TagID 名称 用途生产日期 图片 备注对应订购订购ID间隔时间最后时间 PORTIPTagIDS 服务名NN1111用户密 码用户名 图3-2基于Web Service的RFID信息服务系统ER图3.5.1数据库表设计表3-1 Rfi

23、devents表(事件表)设计字段名称类型约束字段内容说明RFIDINDEXVARCHAR2(128)主键TAGIDVARCHAR2(256)射频唯一标识EVENTTIMEDATE读卡时间EVENTADDRESSVARCHAR2(1000)读卡地点表3-2 Person表(人员信息表)设计字段类型约束字段内容说明TAGIDVARCHAR2(256)主键射频唯一标识NAMEVARCHAR2(128)姓名SEXVARCHAR2(10)性别BIRTHDAYDATE人员生日PHOTOBLOB人员照片NOTEVARCHAR2(256)备注信息表3-3 Goods表(物品信息表)设计字段类型约束字段内容说

24、明TAGIDVARCHAR2(256)主键射频唯一标识NAMEVARCHAR2(128)物品名称PRODUCTIONTIMEDATE生产日期USAGEVARCHAR2(256)用途PHOTOBLOB物品图像NOTEVARCHAR2(256)备注信息表3-4 Usertab表(用户表)设计字段类型约束字段内容说明USERNAMEVARCHAR2(256)主键授权用户的用户名,保存的是加密后的字符串PASSWORDVARCHAR2(128)用户密码表3-5 Subscribe表(订阅信息表)设计字段类型约束字段内容说明SUBSCRIBEIDNUMBER(10)主键订购标志,自动递增TAGIDSVA

25、RCHAR2(1000)关注的射频标识组,用英文逗号分隔DURATIONNUMBER(5)间隔时间,需要多长时间想订购方发送一次数据IPVARCHAR2(128)订购方的IP地址PORTVARCHAR2(10)订购方的端口号WEBSERVICENAMEVARCHAR2(128)订购方WEB服务的服务名FINALTIMEDATE最后一次向订购方发生数据的时间3.6数据库优化设计数据库在一个管理信息系统中占有非常重要的地位,因此数据库需求分析需要做大量工作。数据库结构设计的好坏将直接对应用系统的效产生影响。合理的数据库结构设计可以提高数据存储的效率,保证数据的完整和一致6。因此我们需要对所设计的数

26、据库进一步的分析优化。本信息系统的数据库中最主要的表就是事件表。事件表(Rfidevents表)用于存储Rfid事件,由于RFID中间件会持续不断的向本系统传送事件数据,因此事件表存储的数据量非常的庞大,为了改善应用系统的性能,我们采用Oracle数据库提供的表分区技术。Oracle的分区是一种处理超大型表、索引等的技术。分区是一种“分而治之”的技术,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的、单独的对象进行管理,为大量数据提供了可伸缩的性能。分区通过将操作分配给更小的存储单元,减少了需要进行管理操作的时间,并通过增强的并行处理提高了性能,通过屏蔽故障数据的分区,还增加

27、了可用性。每个分区有自己的名称,还可以选择自己的存储特性。从数据库管理员的角度来看,一个分区后的对象具有多个段,这些段既可进行集体管理,也可单独管理,这就使数据库管理员在管理分区后的对象时有相当大的灵活性。但是,从应用程序的角度来看,分区后的表与非分区表完全相同,使用 SQL DML 命令访问分区后的表时,无需任何修改。Oracle分区的优点有:1、增强可用性:如果表的某个分区出现故障,表在其他分区的数据仍然可用;2、维护方便:如果表的某个分区出现故障,需要修复数据,只修复该分区即可;3、均衡I/O:可以把不同的分区映射到磁盘以平衡I/O,改善整个系统性能;4、改善查询性能:对分区对象的查询可

28、以仅搜索自己关心的分区,提高检索速度。Rfidevents表根据事件发生时间来分区,每一个月份的数据作为一个分区,Rfidevents表的创建语句如下:create table SCOTT.RFIDEVENTS( RFIDINDEX VARCHAR2(128) not null, TAGID VARCHAR2(256), EVENTTIME DATE, EVENTADDRESS VARCHAR2(1000), LOGICALREADER VARCHAR2(128), EPC VARCHAR2(256), RAWHEX VARCHAR2(256), RAWDECIMAL VARCHAR2(256

29、), ANTENNAPORT VARCHAR2(10)partition by range (EVENTTIME)(partition PART20110101 values less than to_date(2001-01-01 00:00:00,yyyy-mm-dd hh24:mi:ss ) tablespace SYSTEM storage(initial 100k next 100k minextents 1 maxextents unlimited pctincrease 0), partition PART20110201 values less than to_date(200

30、1-02-01 00:00:00,yyyy-mm-dd hh24:mi:ss ) tablespace SYSTEM storage(initial 100k next 100k minextents 1 maxextents unlimited pctincrease 0),partition PART20110301 values less than to_date(2001-01-01 00:00:00,yyyy-mm-dd hh24:mi:ss ) tablespace SYSTEM storage(initial 100k next 100k minextents 1 maxexte

31、nts unlimited pctincrease 0),);由于我们的事件表是根据时间范围进行分区,在创建表时固定的分区随着时间的推移肯定不能够满足系统需求,因此还需要在Oracle中制定一个定时任务,在每个月的1号零点创建一个新的分区。我们创建一个Produce完成此任务:create or replace procedure scott.rfidevents_add_partition(v_max_date in date)isv_sql varchar2(1000);v_sql2 varchar2(1000);v_partition_name varchar2(256);v_char_

32、date varchar2(50);beginv_partition_name := part|to_char(v_max_date,yyyymmdd); v_char_date := TO_CHAR (v_max_date, YYYY-MM-DD hh24:mi:ss); v_sql := alter table rfidevents add partition |v_partition_name| values less than(to_date( |v_char_date| ,YYYY-MM-DD hh24:mi:ss); dbms_utility.exec_ddl_statement(

33、v_sql); commit;end;创建了这个存储过程,还需要在oracle的任务表中添加一条工作任务,让Oracle定时执行rfidevents_add_partition这个存储过程,因此我们需要调用dbms_job.submit()这个过程创建一个job。dbms_job.submit()有五个参数:job、what、next_date、interval与no_parse。具体过程头说明如下:PROCEDURE submit ( job OUT binary_ineger, what INvarchar2, next_date INdate, intervalINvarchar2, n

34、o_parse INbooean:=FALSE)job参数是由Submit()过程返回的binary_ineger。这个值用来唯一标识一个工作。what参数是将被执行的PL/SQL代码块。next_date参数表示何时将运行这个工作。interval参数表示何时这个工作将被重执行。no_parse参数表示此工作在提交时或执行时是否应进行语法分析,如果为TRUE指示此PL/SQL代码在它第一次执行时应进行语法分析,而FALSE指示本PL/SQL代码应立即进行语法分析。在本项目中我们要求的是每个月在rfidevents表中增加一个新的分区,所以我们只要定制一个如下的job:var myjob nu

35、mber;begindbms_job.submit(:myjob,rfidevents_add_partition(sysdate);,to_date(2010-11-01 00:00:00,yyyy-mm-dd hh24:mi:ss),TRUNC(LAST_DAY(SYSDATE)+1);dbms_job.run(:myjob);commit;end;以上语句即创建了一个每隔一个月运行rfidevents_add_partition过程一次的job。在创建job之后还需要运行job,这个过程就十分简单了,只需要调用dbms_job.run()方法就可以了。3.6数据库的访问采用了时下流行的H

36、ibernate框架来完成数据库的连接访问。Hibernate是一个开发源代码的对象关系映射框架,它对JDBC进行了轻量级的对象封装,使Java程序员可以随心所欲的使用对象编程思维来操纵数据库。它不仅提供了从Java类到数据表之间的映射,也提供了数据查询和恢复机制。相对于使用JDBC和SQL来手工操纵数据库,Hibernate可以大大减少工作量,从而节约开发时间和开发成本7。Hibernate可以和多种Web服务器或者应用服务器良好集成,而且几乎支持所有流行的数据库服务器。因此我们可以轻便的使用Hibernate来进行数据的持久性保存。首先创建用于包装数据表对象的持久化类,在前面数据库设计中已

37、经介绍了5张数据表,那么这里我们就要对应每一张数据表创建一个持久化类,为了便于理解和识别,该类的类名与数据表的表名相同。在项目代码中对应的java类存放在com.rfid.pojo包下,包括:Goods.java对应Goods(物品信息表)Person.java对应Person(人员信息表)Rfidevents.java对应Rfidevents(事件表)Subscribe.java对应Subscribe(订购信息表)Usertab.java对应Usertab(用户信息表)以上持久化类符合JavaBean的规范,包含数据表中定义的字段属性,以及与之对应的getXXX()和setXXX()方法,g

38、etXXX()和setXXX()方法符合特定的命名规范,“get”和“set”后面紧跟属性的名字,并且属性名的首字母为大写,例如tigid属性的get方法为getTigid()。在编写的持久化类中还要提供一个无参的构造器,因为Hibernate要求持久化类必须提供一个不带参数的默认构造方法,在程序运行中,Hibernate运用Java反射机制,调用Java1angreflectConstructornewInstance()方法来构造持久化类的实例。在持久化类中没有引入任何HibernateAPI,持久化类不需要继承Hibernate的类或实现Hibernate的接口,这提高了持久化类的独立性

39、。如果日后我们不使用Hibernate而要改用其他的持久化层产品,也不需要修改持久化类的代码。其次要创建对象一关系映射文件。Hibernate采用XML格式的文件来指定对象(持久化类的实例)属性和关系数据库中表的字段之间的映射。每一张数据库表都要对应生成一个映射文件,文件名默认采用表名.hbm.xml的方式命名。例如在本项目中,将创建一个名为Goodshbmxml的文件,它用于把Goods类映射到数据库的Goods表。再次要创建Hibernate的配置文件hibernate.cfg.xml。Hibernate从其配置文件中读取和数据库连接相关的信息。在hibernate.cfg.xml中必须配

40、置好数据库连接URL、数据库的用户名、密码及数据库驱动都,并且要将上一步创建对应数据库表的映射文件也配置进去。Hibernate的配置工作完成后就可以利用HibernateAPI对数据库进行操纵了。首先利用MyEclipse自动生成Hibernate的工厂类,该类用于获得操纵数据库的Session。本项目中的HibernateSessionFactory.java位于com.rfid.factory包下。生成了Hibernate工厂类之后就可以完成DAO层,DAO层直接访问数据库,对数据表进行增删改查。每一张数据表对应相应的dao类,例如Goods表对应GoodsDAO.java,GoodsD

41、AO将提供对Goods表的查询,删除,更新,保存等操作。3.7系统的安全性由于Web Service对外是公开的,只要知道Web服务的WSDL地址就能请求访问该服务,因此必须考虑到系统的安全保密性能。3.8.1设计说明在调用Web服务时加入身份验证部分,只有通过验证的用户才有调用Web服务的权利。启动本系统时首先弹出登录窗体,请求用户输入用户名及密码,将用户输入的验证信息经过加密后调用用户身份验证类,在数据库中查询该用户是否为授权用户,若在用户表中查找到相应记录并对比无误后,允许该用户使用本系统。3.8.2信息加密身用户输入身份验证信息后,将采用MD5对输入信息进行加密。MD5即Message

42、-Digest Algorithm 5(信息-摘要算法5),是一种用于产生数字签名的单项散列算法,在1991年由MIT Laboratory for Computer Science(IT计算机科学实验室)和RSA Data Security Inc(RSA数据安全公司)的Ronald L. Rivest教授开发出来,经由MD2、MD3和MD4发展而来。MD5算法的使用不需要支付任何版权费用。它的作用是让大容量信息在用数字签名软件签私人密匙前被压缩成一种保密的格式(将一个任意长度的“字节串”通过一个不可逆的字符串变换算法变换成一个128bit的大整数,换句话说就是,即使你看到源程序和算法描述,

43、也无法将一个MD5的值变换回原始的字符串,从数学原理上说,是因为原始的字符串有无穷多个,这有点象不存在反函数的数学函数)。因此使用MD5对字符串加密是很安全的。在数据库中存储在用户表里的信息也是经过加密后的字符串,这样就保证了用户信息不会泄露,即使拥有数据库管理员权限也无法窃取用户的身份信息。同时在身份验证的请求中也是传递的加密后的用户名及密码,防止在请求调用Web服务时用户信息被恶意拦截破解,从而加强了用户信息的安全性。3.8.3身份验证数据库中的用户表里存储着经过授权的合法用户,当我们启动RFIDIS信息服务系统时就要经过登录,验证用户身份后才能够正常使用该系统。身份验证部分利用SOAPH

44、eader来传递用户输入的信息,并在调用Web Service时进行拦截,对请求的SOAP消息进行解析,用来判断用户身份是否合法,在这个过程中我们将要在客户端和服务端两端都要定义自己的Handler类,该类要实现javax.xml.ws.handler.soap.SOAPHandler接口。SOAPHandler接口中有如下方法:public void close(MessageContext arg0) :close方法是一个webService调用结束时调用的方法,通常会做释放资源的操作public boolean handleFault(SOAPMessageContext arg0)

45、:当handlerMessage发生异常时调用该方法public boolean handleMessage(SOAPMessageContext context) :一次webService调用会调用该方法两次,inbound和outbound都会调用由上面的方法可以看出,SOAPHandler其实和Servlet中的过滤器filter极为相似,我们在客户端定义的Handler类将在outbound时负责将用户信息加入SOAPHeader,而服务端的Handler则在inbound时解析SOAPHeader读取用户信息,并返回验证结果。本项目完成用户身份验证的java类如下:ClientAuthenticationHandler.java(客户端的用户身份验证类)AuthenticationHandler.java(服务器端的用户身份验证类)第四章 系统实现下面给出系统详细设计模块以阐述基于Web Service的RFID信息服务系统的具体功能。在系统实现过程中,对数据库的访问操作是由Web服务提供的,Web服务发布以后,客户端通过请求调用Web服务提供的接口方法完成对数据库的访问。4.1Web Service服务端接口设计本系统的Web服务端是采用JAX-WS规范,JAX-WS 提供了用于将传统 Java 对象(Plain Old Java Object,POJO

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 办公文档 > 其他范文


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号