分布式系统环境

2024-08-17

分布式系统环境(精选十篇)

分布式系统环境 篇1

现阶段高校内部教学、科研、办公、管理等各方面事务都逐渐从单纯的手工、文档管理方式向信息化、系统化管理发展。然而,在实现多个基于本地数据库的信息管理系统的同时,出现了信息重复、资源浪费、交互困难的情况,随之而来的还有信息不同步、形成资源孤岛等问题。

以XML作为信息存储和交换的格式,可以很好的解决校园中存在的“信息孤岛”问题,实现不同系统之间的集成与交互以及异构数据库间的数据共享。XML不仅提供具有意义的数据,也提供了验证的方式(XML Schema),使得程序能轻易地获得内容,并能够彻底地完成内容数据和表达方式的分离。将XML作为标准的信息表示格式,同时利用基于XML的开放的数据接口和分布式数据管理能力,实现对跨平台、各种异构数据库的统一数据交换和管理,实现数据在全校部门、学院之间顺畅的流通。数据交换的核心问题是信息的标准化,主要解决信息的可理解性问题,包括人和机器对信息的理解,最重要的是机器对信息的识别,并能根据数据进行自动处理。XML为信息的标准化提供了有力的工具。在校园信息平台中,各部门、学院之间使用XML作为数据交换的统一格式,用XML统一表示来自不同数据源的数据,可以实现系统间的数据交换,实现信息共享[4]。

其次,还必须有一种方法来进行消息的传递。基于XML的简单对象访问协议SOAP可以和任何的传输协议联合使用,可以方便地穿越防火墙,面向服务体系结构中的发布、查找和绑定操作都可以得到SOAP的支持。将SOAP+HTTP应用于校园分布式信息平台中,实现对校园分布式环境中XML格式的数据的封装和传输,进而实现部门之间的便利信息交互。另外,使用WSDL来描述Web服务,对服务的实现和接口进行标准化的定义,为部门、学院之间的服务调用提供具体的方法。

二、数据建模

在XML的项目中,首先应该创建标准的数据格式。为此我们首先要考虑在本校园分布式信息平台的开发模块中涉及到哪些数据,定义描述数据交换中所涉及事实的数据模型。具有高置信度的模型一旦被创建,数据模型便可以转换成为schema,然后才能继续开展以后的工作。

首先,让我们对校园信息化建设中的“党建”、“人事”信息进行数据分析。学校的“党建”管理工作的目的在于管理全校党员的党建信息,而其中的党建信息涉及到很多数据项,通过走访和调查,经过分析和整理,得到“党建”管理模块的数据逻辑结构,其中包括姓名、所在支部、申请入党时间、党校学习情况、入党时间、转正时间等数据项。同理,“人事”管理模块的数据逻辑结构包括编号、姓名、性别、出生年月、参加工作时间、职称、学历等数据项。

接下来,为了可以结构化地定义有关数据,需要对以上两个模块进行数据建模。一般来说,就是定义Schema文件,在定义了Schema后,所有的数据都将按照这个Schema来组织和检查。XML Schema是一种控制文档结构的方法,使用XML语法,具有XML的特点。作为XML语言的主要模块,Schema对标识的标准化模式起着极其重要的作用。因为模式在发送者和接收者之间规定了强制性的协议,有利于文档之间的信息交流,而且可以在不同的群体之间共享,使得在不同的应用程序间创建、管理和处理相同的文件变得容易,共享数据模式极大地简化了XML词汇的创建和维护,提高了数据的可靠性[5]。

在开发过程中,我们采用Axis这个Soap引擎来实现对数据的建模:

首先在服务提供方开发Java接口和类,然后使用Axis中的Java2WSDL工具从Java接口和类创建WSDL,WSDL中的types元素描述了数据的Schema。数据项信息体现在定义的Java类中,该类的编写符合Java Bean的规范,简单地说就是通过get/set方法来定义数据项。例如,组织部定义“党建”模块的Java类:

同时,把方法的参数和返回值数据类型设为对象,比如提供一个接口用来发送短信息,那么希望接口的参数是一个消息对象,这个消息对象封装了一条信息的所有内容包括发送者、接收者、发送时间、信息内容等等。因为如果把每个内容都做成一个参数,那这个接口的参数可能会非常的多,因此封装成对象是很有必要的。Axis要求复杂类型对象的编写必须符合Java Bean的规范,就是对象的属性是通过get/set方法来访问的。

创建的Java接口部分代码如下:

用Java2WSDL工具从上述接口、类创建WSDL文件。生成的WSDL文档的types元素是Dangjian这个Java Bean到WSDL的映射,它描述了Web服务与用户之间交换的消息的所有数据类型,XML Schema是默认的类型系统。部分WSDL文档:

上述Schema文件分别定义了Web Services环境中传输“党建信息”“人事信息”时所要遵守的的格式。如:人事处的“人事信息”包含“姓名”、“职称”、“学历”等项,元素Zhi Chen为string类型,可以为空……组织部的“党员信息”包含“入党时间”、“共青团推优时间”、“入党证书编号”等项,元素JPTime为string类型,可以为空……人事处、组织部服务器端将包含调用结果的实例对象按照这个Schema文件的格式要求转换成客户端所要求的XML文档,进而构造返回给客户端的SOAP消息,完成服务的请求;客户端可以根据这个Schema文件完成对响应SOAP消息的解析(具体通过WSDL中types元素映射生成的类来实现,该类实现了序列化接口)。

三、信息的传输

其次,是要实现将XML格式的数据通过SOAP进行传输。采用Axis引擎实现数据的SOAP传输,主要通过jaxrpc来实现。对于客户端,主要使用Call类来完成调用Web服务,在客户端的stub类中,设置一个org.apache.axis.client.Call对象来调用服务,实际上,服务的请求和响应都是靠Call类中的invoke()方法来实现的,在调用invoke()方法前,需要对Call的属性进行设置,其中,set Target Endpoint Address()方法设置了服务的endpoint,这个标志着服务地址的参数是从Locator类中传来的,在本系统中的值为:http://222.196.35.143:8080/axis/services/Dangjian Service7,set Operation Name()方法设置了服务操作名称及其方法。invoke()方法把Call对象转换成XML SOAP请求,并把请求发送给endpoint,当返回应答后,invoke()方法返回一个java.lang.Object对象,这个对象中包含的或者是客户端需要得到的服务器应答,或者是错误信息。

在Axis处理SOAP消息时,会涉及到序列化或反序列化问题。序列化指的是把一个Java对象写到一个XML文档上的过程;反序列化则指从一个XML文档中读取一个对象定义并基于该定义创建一个Java对象的过程。Axis提供了许多类来实现内建支持类型的序列化和反序列化,用Java的基本数据类型及其对象形式作为方法参数时是无缝的,不需要考虑序列化和反序列化的问题。Call对象的register Type Mapping()方法起到为序列化/反序列化器注册类型映射信息的作用。

实现了SOAP封装后,信息以一个标准的xml格式在校园分布式环境中进行传输。同理,其他部门如科技处、学生处等也能制订自己的模式文件,以XML格式表述信息,解决数据格式不一致的难题和异构系统之间的通讯,从而使不同应用系统之间交换数据变得容易,实现校园分布式环境下的资源共享。符合模式文件,含有党员信息的XML示例文件如下:

四、服务的发布和发现

最后,我们需要让所设计的Web服务能够让其他部门所找到,所以要一些方法来让服务开发者发布服务,让服务的使用者发现Web服务,UDDI确定了一种机制,使得校园分布式环境下的Web服务提供者可以为其Web服务作广告,也使得Web服务调用者能找到其感兴趣的Web服务。

参考文献

[1]彭涛,张力.基于本体和XML的数据交换研究[J].计算机工程,2006,32(1):90-92.

[2]沈海波,洪帆.面向Web服务的基于属性的访问控制研究[J].计算机科学,2006,33(4):92-96.

[3]Fu X,Bultan T,Su J.WSAT:A Tool for Formal Analysisof Web Services[C].Proceedings of the 16th International Confer-ence on Computer Aided Verification,2004-07.

[4]孙霞.基于XML的数字化校园信息发布与交换技术研究[D].武汉:武汉理工大学,2005.4-26.

分布式存储系统:TDSS 篇2

TDSS是一个高可扩展、高可用、高性能、面向互联网服务的分布式存储系统,主要针对海量的非结构化数据,它构筑在普通的Linux机 器集群上,可为外部提供高可靠和高并发的存储访问,它采用了HA架构和平滑扩容,保证了整个文件系统的可用性和扩展性,

同时扁平化的数据组织结构,可将文 件名映射到文件的物理地址,简化了文件的访问流程,一定程度上为TDSS提供了良好的读写性能。

项目主页:www.open-open.com/lib/view/home/1365411366593

分布式系统环境 篇3

关键词:监测系统;网络终端;温湿度传感器

中图分类号: TP274;S126文献标志码: A文章编号:1002-1302(2016)06-0416-03

收稿日期:2015-04-27

基金项目:院士工作站资助项目(编号:fckt201503);陕西省教育厅产业化培育项目(编号:14JF004);陕西理工学院科研基金(编号:SLGKY14-06、SLGKY15-25)。

作者简介:韩团军(1981—),男,陕西乾县人,硕士,讲师,主要从事集成电路设计与分析相关研究。E-mail:htjzyh@163.com。随着汉中茶园种植朝着产业化、标准化种植方向发展,茶园环境的信息化管理水平对其质量和产量有着很大影响。因此,生产过程中实时掌握种植环境参数有着重要意义。传统的监控设备数据不能实时在网络上进行显示,用户不可以随时随地查看信息进行控制[1-3]。随着农业的迅速发展,远程实时监控农作物生长环境显得更加重要。为了达到实时监控空气质量的目的,并且能方便、快捷、高效、直观地查看监控的结果,本研究提出了基于GPRS和WEB的远程网络分布式茶园环境污染检测系统。相比传统的监控设备,该系统是将数据发送到网络上进行显示,用户可以随时随地查看信息,进行控制。

1检测系统的设计方案

该系统是通过各个气体传感器将模拟当地空气浓度模拟信号传到AD转换芯片将模拟信号转换为数字信号,单片机接收数字信号,分析、处理再加密数据后传给GPRS,GPRS使用3G网络,使用TCP/IP协议,将加密后的数据发送到服务器端,服务器端接收大量数据并提取转换实际有效的数据,写入到数据库。服务器端是基于多线程网路数据库的后台程序,同时可以支持上千客户访问的连接,处理并写入到数据库。数据库存储海量数据,为WEB前台提供接口,WEB前台调用指定数据库的数据并进行直观显示。具体硬件框图如图1所示。

2硬件接口设计

2.1传感器选择

传感器对于监测系统来说就如同生物的眼睛一样重要,它决定着该系统数据的稳定性、真实性。因此,就数据的真实性﹑稳定性和价格合理性选择了技术先进、性能稳定、灵敏度

高、性价比高的MQ系列气体传感器和Sensirion公司生产的单片全校准数字式相对湿度和温度传感器SHT11[4-6]。气体传感器原理是其输出电压和气体的浓度有一定的比例,输出为模拟电压值,利用ADC7888将模拟信号数字化。温湿度传感器是一个将放大和调理为一体的器件,而且输出为数字信号,避免了芯片之间转化而使信号产生误差。经过长时间的测试和厂家提供的传感器技术资料,得出这为后期的数据处理提供了优越的先天条件,而且为系统数据的稳定性、真实性提供有力的保障。

2.2GSM通信模块电路

SIM9000A模块是一个双频GPRS/GSM模块,TCP/IP协议在其内部嵌入。控制模块利用它的串口控制其工作实现该模块的收据收发。电路如图2所示。

2.3电源模块电路

电源电路要为整个系统供电,由于单片机、传感器和GPRS模块所需电流不同,系统用双电源进行供电。GPRS模块供电用MP2307设计,该器件工作电流可达3A,集成可调MOSFET,电流模式控制快速瞬态响应和逐周期电流限制。采用78M05、LM2940稳压芯片分别为传感器和AD芯片及各部分电路供电。GPRS供电具体电路如图3所示。

2.4控制电路

控制电路采用STC12C5A60S2完成傳感器数据的采集和线性处理,控制GSM模块完成信息的无线传输,最后在终端

显示实时参数(图4)。

3系统的软件设计

3.1系统的流程

系统主要由控制芯片完成环境的数据采集、分析、处理,再加密数据后传给GPRS,GPRS使用3G网络,使用TCP/IP协议,将加密后的数据发送到服务器端,服务器端接收大量数据并提取转换实际有效的数据,写入到数据库,服务器端是基于多线程网路数据库的后台程序,同时可以支持上千客户访问的连接,处理并写入到数据库。数据库存储海量数据,为WEB前台提供接口,WEB前台调用指定数据库的数据并进行直观显示。具体流程如图5所示。

3.2WEB服务器的设计

空气质量远程监测软件的WEB服务器最终决定使用 Apache 公司的一款免费开源的Web 应用服务器TomCat作为B/S结构的WEB服务器。ApacheTomcat服务器接收用户发来的请求并送至数据逻辑处理部分的Servlet进行处理,Servlet 则根据需要,调用JavaBean中的方法,通过JDBC技术获得数据库的数据,最后将所得到的数据再经由Tomcat、Apache 服务器和Jsp、HTML页面呈现给用户。

4实现与应用

通过硬件和软件设计,系统可以正常地监测分散地域的环境相关参量,可以很好地在用户页面上展示数据,系统稳定,页面美观大方。用户页面如图6所示,最终的设计终端如图7所示。

5结论

针对汉中茶园种植的特点,设计了基于GPRS和WEB的远程网络分布式茶园环境污染检测系统,实现了对当地空气质量数据的实时采集,并全自动发送至网络,通过自建的服务器收到后并响应,用户可以很方便的访问和查询,该系统测量精确抗干扰能力强、性价比高,支持7×24 h不间断为用户提供信息服务,具有一定的农业应用价值。

参考文献:

[1]梅志坚,马娅婕,肖凡男. 基于 ZigBee 和 GPRS 的大气污染监测系统设计[J]. 武汉科技大学学报:自然科学版,2015(1):63-66.

[2]郑争兵. 基于GSM网络的蔬菜大棚环境参数监测系统[J]. 广东农业科学,2012,39(1):158-159.

[3]李震,洪添胜,文韬,等. 基于物联网的果园实蝇监测系统的设计与实现[J]. 湖南农业大学学报:自然科学版,2015,41(1):89-93.

[4]唐慧强,葛黎黎,景华. 基于无线传感器网络的接地电阻检测系统[J]. 仪表技术与传感器,2015(2):54-56,70.

[5]董玉德,于洽,金国良,等. 基于Web的蔬菜农药残留检测网络监控系统构建[J]. 农业工程学报,2008,24(5):178-180.

分布式系统环境 篇4

1.1 现状

无锡广电现有三套系统数据需要备份, 其中办公自动化系统采用的是Lotus Domino数据库;财务采用的是SQL Server数据库;电视广告管理系统采用的是Oracle数据库。虽已采用一定的备份手段, 但备份数据分散各个不同服务器上, 备份的成功与失败难以得到统一的监看和管理, 备份时间较长, 恢复难度较大。

1.2 建设目标

对备份系统的需求必须满足能兼容Lotus、SQL Server、Oracle三种数据库模式, 在不影响应用系统的正常使用的情况下进行高速备份, 并能在意外情况发生下能快速恢复到指定时间点的数据。具体需求如下:

(1) 备份系统能支持各种类型的数据库备份。 (2) 实现各套应用系统数据的全自动备份, 能根据制定的策略自动进行备份而不需要人为干预。 (3) 在不影响应用系统的正常运行下进行高速备份。 (4) 对介质的有效管理, 对数据形成分门别类的介质存储, 自动校验介质, 确保介质上的数据安全无误, 能方便扩充介质的容量。 (5) 实现数据的集中管理。 (6) 实现数据的自动恢复, 通过管理控制台能很方便地指定所需恢复的某次备份并能确保正确恢复。

1.3 系统选型

传统的备份系统采用的是物理磁带库, 但是磁带具有诸多的问题-速度慢、可靠度低, 但是, 磁带可以离线保存, 所以还是需要保留。随着硬盘容量的增大, 成本的不断降低由于硬盘的存取速度快, 加上在RAID保护之下, 可靠度也相当高, 所以在一定程度上利用硬盘取代磁带成为必然的趋势, 各厂商纷纷推出各种基于磁盘的备份解决方案, 虚拟磁带库 (Virtual Tape Library, 简称VTL) 是其中之一。

虚拟磁带的技术原理并不复杂, 实质就是运用储存虚拟软件, 将备份服务器连接至磁盘空间的SCSI讯号, 仿真成磁带机的表述格式, “欺骗”操作系统和备份软件, 误以为连接到的是一部实体的磁带装置。虚拟磁带库能兼容各种存储、备份管理软件, 采用传统备份策略。

在多方的比较之下, 决定采用D2D2T (磁盘到磁盘到磁带) 技术, 磁盘虚拟磁带库和物理磁带库相结合的备份方式。把快速的在线磁盘备份方式与慢速的磁带备份方式结合起来, 可以利用现有的存储区域网络 (SAN) , 结合LAN-Free备份方式, 可以将数据首先快速备份到磁盘备份设备上, 再通过SCSI线将备份磁盘上的数据迁移到离线的真实磁带库上, 实现数据的快速备份, 减小了对业务系统的影响;同时实现了多个备份作业副本。虚拟带库不仅可作为写入磁带库之前的缓冲备份, 同时也可以将其中的数据快速的进行恢复。虚拟磁带库和物理磁带库特性比较各有所长, 互相补充。把数据先快速的备份到硬盘虚拟磁带库中, 在其他指定时间再将数据自动备份/迁移到真正的磁带库磁带上, 这样可大幅度缩短备份/恢复时间, 同时减少高峰期对网络资源的占用。

2 建设及实施

结合磁盘、磁带的优点, 充分考虑了系统的现状, 遵循经济性和实用性相结合的原则, 我们利用BakBone公司的NetVault备份软件, 对现有应用系统数据建立一个集中管理的、自动化的、高速有效的备份系统, 实现LAN-Free和D2D2T高效备份。

2.1 系统架构

利用原有的存储局域网的资源, 将虚拟带库技术直接用作备份介质, 提高了备份任务执行的效率, 可以利用虚拟带库定制多驱动器的特点, 让尽可能多的任务同时执行。利用NetVault的Smart Clie nt技术实现LAN-Fre e高效备份, SAN上的数据都可以通过SAN的架构, 共享使用磁带库中的磁带机并且将数据直接备份到光纤通道所连接的磁带设备上, 也实现了真正的LAN-free的备份模式, 备份数据流不占用生产LAN的带宽, 由于SAN的高速, 在同样的备份窗口完成更多的备份任务。

2.2 软件系统特点

首先基于先进的层次化集中管理结构, 适应跨平台的复杂IT环境, 实现统一备份, 集中管理。其次, 利用虚拟带库的高读写性能在备份窗口时间备份工作, 在非备份窗口时间将全备份转移到磁带库的磁带介质中, 实现重要备份档案的归档储存;标准的CPIO备份格式, 易于数据分发, 交换;第三、支持SAN环境下和LAN环境下的备份;实现数据库的在线备份和恢复, 无需编写Microsoft SQL Se rve r脚本, 全部图形界面管理。

2.3 硬件系统

光纤存储设备:虚拟带库作为统一数据备份中心, 选用了DELL|EMC的CX3-10光纤阵列柜作为备份中心, 该阵列良好的性能和容错能力对数据安全提供了强有力的保证。

2.4 备份策略

根据所规划的备份资源, 将开放系统备份的策略以及实测的一些数据统计阐述如下, 如表1示。

2.5 功能及特色

首先, 是利用原先SAN网络, 设备投入小, 应用服务器不需做任何改动。光纤的SAN存储区域网络, 不占用应用的带宽, 同时保证备份服务器到备份设备数据的高速传输, 也很大程度地提高了备份设备的扩展性。其次, 在恢复时, 利用虚拟带库中的最新备份数据进行恢复, 有加载磁带快, 寻找备份数据快的优势。第三、在跨平台的集中备份中, 支持UNIX/Windows/Linux等各种操作系统和DB2/MS SQL/Oracle/Sybas e/MySQL/Lotus Dom ino等各种数据库平台, 统一管理数据的备份和恢复。对SQL和Oracle数据库进行在线备份/恢复。针对SQL和Oracle数据库恢复可直接采用NetVault恢复界面直接恢复。第四, 利用磁盘阵列上建立的虚拟带库, 备份最新的全备和平时的增量, 提高备份窗口时间的备份性能。配置磁带库作为集中备份的设备, 实现在非备份窗口归档老的备份, 和虚拟带库配合实现D2D2T备份。最后、所有备份客户端不需要分别考虑备份硬件设备, 只需通过增加Smart Client License, 连接集中备份设备所在的SAN环境既可实现LAN-Fre e高速备份。实现所有备份数据走SAN, 大大减轻备份对网络造成的影响。

3 实施效果

通过两年的实际使用和演练, 该备份系统符合设计需求。

3.1实现了高速备份与恢复, 以前担心备份窗口的问题得到解决, 虚拟磁带库将备份的速度提高30%-60%, 数据恢复速度比磁带快90%。

3.2 可靠性提高, 磁盘阵列不会发生磁带库和磁带机的机械故障, 也没有磁带失效的问题, 备份的成功率明显提升。

4 展望

目前所有备份设备均在应用系统本地, 未实现异地容灾。随着无锡广电传媒中心建设, 将采用异地备份的方式, 即把备份存储介质和应用数据库存储介质分别存放在两地, 提高数据的高可用性。

摘要:对分布异构环境下的数据集中备份系统建设进行了详细调研和规划, 对各个重要环节的进行了详细分析, 根据自身需求特点组织实施了异构环境下的备份系统, 取得了一定的效果。对其中设施及相关知识点进行了一定的深入了解。

分布式系统环境 篇5

关键词:分布式数据库;松耦合;数据分片;数据库复制

引言

当今社会飞速发展,许多企业的经营和管理规模不断扩大,营业和管理机构的分散造成了业务数据的分散,总公司与各分公司处于不同的城市或城市中的各个地区,在业务上它们处理各自的数据,但也需要彼此之间数据的交换和处理,如何协调处理分散的数据和集中的管理,是企业发展的关键问题之一,也是MIS/ERP系统开发者要研究和解决的重点。分布式数据库系统技术在这个方面就起到了至关重要的作用,使企业在运作中能够得心应手地管理处于分布环境下的各种数据。

1分布式数据库特点介绍

分布式数据库(DDB)的数据分布在计算机网络的不同节点(亦称场地)上,网络中的每个节点具有独立处理的能力(称为场地自治),可以执行局部应用,同时,每个节点也能通过网络系统执行全局应用。系统强调节点的自治性而不强调系统的集中控制,且应保持数据的分布透明性,在编写应用程序时可完全不考虑数据的分布情况。分布式数据库的显著特点是:

(1)分布性

数据库中的数据不是存储在同一计算机。这有别于集中式数据库。

(2)逻辑相关性

数据库逻辑上是相互联系的一个整体,而不是分散的局部物理数据库的集合。

(3)分布式透明性

所谓分布式透明性就是在编写程序时好像数据没有被分布一样,因此,数据转移不会影响程序的正确性。

(4)数据冗余

与集中式数据库系统不同,数据冗余是分布式系统的重要特性,其原因在于:首先,如果在需要的节点复制数据,则可以提高系统局部的应用能力。其次,当某节点发生故障时,可以操作其它节点上的复制数据,因此,提高了系统的有效性。

(5)数据存储途径

在分布式数据库中,数据存储通过以下三种途径实现。

复制:系统维护多个完全相同的副本,这些副本存储在不同的节点上。

分片:关系被划分为几个片段,各个片段存储在不同的节点上。

复制+分片:关系被划分为几个片段,系统为每个片段维护几个副本。

2分布式数据库技术在企业数据管理中的应用现状及特点

在多数使用了分布式数据库的企业MIS/ERP系统中,总公司与各分公司处于不同的城市或城市中的各个地区,在业务上它们处理各自的数据,但彼此之间也需要进行数据交换和处理。这种处理一般有两种情况:一种是数据的交换和处理必须实时进行以确保数据库的紧密一致性;另一种是定期地进行数据交换和处理,甚至只在必要时进行,这种方式对于数据库的一致性在时间上要求不高,各场地间保持松耦合状态,每个营业机构处理的是本机构的数据,各营业机构之间或下级营业机构与上级营业机构之间只是定期进行数据的交换。大多数企业MIS/ERP应用都是采用松耦合分布式数据环境。

松耦合分布式数据环境从全局应用的角度出发,将分公司的所有数据库自下而上构成分布式数据库系统,实现全局数据的完整性和一致性,各营业机构存放本机构的数据,总公司的数据库则存放所有业务数据,并对数据进行完整性和一致性的检查。这种做法虽然有一定的数据冗余,但在不同场地存储同一数据的多个副本,能提高系统的可靠性和可用性,同时提高局部应用的效率,减少通讯代价。分布式数据库系统可以在对当前机构影响最小的情况下进行扩充,增加新的营业机构时只需增加一个节点就可以了,同时也使得各处理机之间的相互干扰降到最低。

3数据库复制技术在松耦合分布式数据环境中的实现

分布式数据库系统可以通过复制、分片和复制加分片三种方式存储数据。因为各数据库之间存在一定的数据冗余,又存在着差异,我们使用了复制十分片的方式进行数据存储。

3.1数据分片

在分布式数据库系统中,将关系分片,有利于按用户需求组织数据,目前的分片方式有水平分片、垂直分片、导出分片、混合分片等四种。我们根据不同的数据关系采用了不同的分片方式:

水平分片对于总公司与分支营业机构的数据关系,由于分支机构的数据是总公司业务数据的子集,我们采用了水平分片的方式,通过并运算实现关系的重构。

垂直分片对于总公司数据库服务器与Web数据库服务器的数据关系,数据是按照其应用功能来划分的,所以我们采用了垂直分片的方式。

3.2数据库复制技术

3.2.1选用数据库复制技术的原因

数据库复制技术是在数据库之间对数据和数据库对象进行复制和分发并进行同步以确保其一致性的一组技术。企业生产管理的数据环境特性是:①数据中心(总公司)的新数据或处理后的数据需要复制或分发至一个或多个数据分中心(各营业厅)。②各个数据分中心的数据被汇总到数据中心服务器上,然后由数据中心服务器加以归并整合。因此,我们选择使用数据库复制技术作为这种松耦合分布式数据环境的解决方案。

3.2.2解决方案

数据库复制的过程不像一般的数据传递,它更要将数据进行同步处理。由于总公司数据库服务器与Web服务器之间的数据交换是双向的,总公司业务管理和营业所业务管理都会产生新的业务数据,所以我们使用合并复制方式实现数据同步:把总公司数据库服务器设置为出版者,Web数据库服务器设置为订阅者,合并复制监视源数据库中的改变,并同步出版者和订阅者的数据值,其中无论是出版者还是订阅者均可以更新数据。当出版者同订阅者发生冲突时,我们将出版者设置为高优先级。与此类似,目的数据库中的数据改变将被告知源数据库。合并复制涉及快照代理和合并代理的参与。快照代理将准备包含有被出版数据表的结构与数据的快照文件,在分发者上存储这些文件,并在分发者的分发数据库中记录同步任务。合并代理应用存储在出版数据库表中的初始快照任务于订阅者;它也合并在最初快照建立后改变的数据,并依据用户配置的规则或使用用户自定义的解决方法来协调冲突。

3.2.3具体实施步骤

(1)数据中心配置发布服务器和分发服务器,指定发布数据库和分发数据库和发布类型(合并发布),指定存储快照文件夹的根位置并创建发布。

(2)数据中心创建请求订阅,添加或指定注册的订阅服务器。

(3)脱机工作时,各个数据分中心可以更新数据。网络连通后,通过使用请求订阅,各数据分中心通过订阅服务器下载数据中心分发的相应数据。

(4)连通数据中心发布数据库服务器,生成订阅。订阅生成后,各个数据分中心更新后的数据将传送到发布服务器和订阅服务器,同时进行同步处理检测并解决冲突。

3.2.4特别说明

在实际操作中,如果由于网络传输速率太低或者掉线会给数据库复制的初始化工作带来不便。因此,我们可以采用在数据中心局域网初始化各分中心的订阅数据库框架,再将该数据库用移动存储的方式移到相应数据分中心的方法解决。

(1)(数据中心)在发布服务器上首先配置发布和分发,使用数据中心局域网的其他计算机作为订阅服务器,对每个分中心的订阅内容进行一次初始化订阅操作(需要用快照初始化框架),以生成相应的订阅数据库。

(2)各分中心使用移动存储将自己已初始化的订阅数据库从数据中心移到本地订阅服务器上。

(3)分中心连通数据中心发布数据库服务器,生成订阅(此时不需要初始化框架),订阅生成后马上运行同步处理,其间不要更改任何数据(适用发布服务器,订阅服务器)。

使用这种方式可以有效地避免因网络传输速度慢或者断网以及发布服务器初始化订阅服务器框架不易顺利进行的问题。以这种方式初始化订阅数据库框架后,复制操作按照数据库复制的规范步骤进行即可。

4结束语

基于分布式环境下的彩虹表密码攻击 篇6

Windows操作系统的密码安全一直以来都是引人关注的热门话题。操作系统一般会把密码作为哈希函数的输出值来存储。哈希 (hash) 是单向操作, 即使攻击者能够读取密码的哈希表, 他也不可能仅仅通过那个哈希表来重构密码。这样, 破解hash的任务就是:对于给出的一个q, 反算出一个p来满足q=hash (p) 。通常我们能想到的两种办法, 一种就是暴力破解法, 把明文P中的每一个p都算一下hash (p) , 直到结果等于q;另一种是查表法, 把每个p和对应的q都记录下来, 按q做一下索引, 到时候查一下就知道了。这两种办法理论上都是可以的, 但是前一种可能需要海量的时间, 后一种需要海量的存储空间, 以至于以目前的人类资源无法实现。

举例来说, 对于14位的大小写加数字 (不算特殊字符) 组成的密码的集合为 (26×2+10) ^14=62^14=1.24×10^25, 即使我们每纳秒可以校验一个明文, 暴力破解法也需要大概4亿年;如果我们采用查表法, 假定Hash的结果是128位即16字节的, 光存放hash值 (不存放明文P) 就需要10^26字节的存储空间。彩虹表的根本原理就是组合了暴力法和查表法, 并在这两者之中取得一个折中, 用可以承受的时间和存储空间进行破解。

1 Rainbow攻击简介

1.1 hash链

彩虹表的基本思想来自hash链。对于一个Q=H (P) (H为某个hash算法, 如MD5) , 建立另一个算法R使得P=R (Q) , 然后对于一个p, 这样进行计算:p0-H→q1-R→p1-H→q2-R→p2-H→q3-R→p3……-H→q (n-1) -R→p (n-1) -H→qn-R→pn。

即把q用H、R依次迭代运算, 最后得到pn, n可能比较大。最后我们把p0和pn都存储下来, 把其他的结果都丢弃。然后用不同的p0代入计算, 得到多个这样的p0pn的对子。

我们在破解的时候, 给出了一个q, 我们来寻找p。我们先把q作一次R运算得到一个值例如叫c1, 然后把c1和每一个p对的最后一个作比较, 假如和某一个pn相等, 那么有可能这个pn所对应的p (n-1) 就是我们在追寻的q, 为了验证我们把pn对应的p0再做一次链式计算, 比对qn是否就是给出的q, 如果是, 很明显p (n-1) 就是我们在追寻的p, 因为p (n-1) -H→qn。

如果不是, 我们再算q-R→c1-H→-R→c2, 再比对c2是否是qn, 如果是, 那么p (n-2) 就可能是p;再算c3、c4直到c (n-1) , 如果都不是就继续寻找, 直到遍历所有的q0qn对。

总的来说, 就是用一个p0pn对存储一个链子的数据, 如果n很大, 就可以大大减小存储的空间。这样带来的问题是必须作n次比对, 时间更长, 但是我们不需要瞬间破解, 等待几秒乃至几天破解一个密码都是可以接受的。

下面我们给出一个hash链攻击的例子:

1) 假设明文空间是6个小写字母字符, 而hash值为32bit, 则一条可能的hash链可能如下:

2) 我们只存储起始点aaaaaa和终点kiebgt。对于一个给定的hash值h, 若想求其对应的密码, 我们对h反复进行R和H操作。如果在某个R操作后, 我们发现其值等于某条链的终点, 于是, 我们回到其对应的起点, 去重新生成该链。

3) 假如我们给的hash为920ECF10, 而920ECF10—R→kiebgt, 于是我们回到起点aaaaaa, 重新计算hash链:

4) 一旦发现hash值920ECF10, 显然其对应的密码就是sgfnyd。

5) 但假如从aaaaaa重新恢复的hash链中没有920ECF10, 于是我们继续对920ECF10做R和H操作, 然后去匹配彩虹表中别的hash链。

6) 在对h进行R和H操作k次后 (假设k为hash链长) , 若所有的hash链都不匹配, 则无法恢复密码。

但hash链有一个明显的缺点, 即在生成链的过程中可能出现, 从不同的链首开始得到相同的元素。这是由于映射函数 (reduction function) R是密文空间 (大空间) 到密钥空间 (小空间) 的一个映射。研究表明, 表越大, 出现这种链碰撞的可能性越高。这样就减少了表所能覆盖的密钥的大小。如第二条链的第三个值和第七条链的第二个值相等, 则其链后面的元素完全相等, 尽管这两条链的终点不等。

1.2 彩虹链

为了更好地描述彩虹链, 我们先给出形式化说明。

给定一个明文P0和与之对应的密文C0, 试图找到用密码算法S加密P0时所需要的密钥k∈N (N为密钥空间) , 使得:

我们使用所有可能的k'∈N的密钥去加密P0, 这样就预计算出所有可能的密文。而所有的密文是按链的方式组织的, 在内存中只保存链首和链尾, 这样就表现出了时间和空间的折中策略。这个链是使用映射函数R来生成的, 映射函数将一个密文映射到一个密钥。链的组织如下:

用f (k) 来表示R (Sk (P0) ) , 这样就得到了一个密钥的链:

生成一个表, 表中包含m个链, 每个链的长度为t, 但是为了节约空间, 只保存这m个链的链首和链尾元素。给定一个密文C, 在这个表中找出生成这个密文的密钥。首先以R (C) 为开始元素, 生成一个长度为t的链。如果生成密文C的密钥确实在表中出现, 肯定能在表中找到一个与链尾元素匹配的链。由于只有链首和链尾元素被保存了, 所以需要从链首元素开始重构这个链, 在R (C) 之前的那个密钥就是生成密文C的密钥。

在一个有m个链, 每个链长度为t的表中, 查找一个密钥成功的概率为:

单个表的查找成功率随着表的增大而快速降低。为了得到更高的成功率, 我们采用多个表, 每个表使用不同的映射函数。这样l个表成功率表示为:

上面方法的主要局限是, 当在一个表中出现碰撞时必须进行合并。Oechslin提出了一种被称之为rainbow链的新链, 在这种链中即使出现碰撞时也不需要合并。此方法在rainbow链中使用了连续的映射函数, 即从映射函数1到映射函数t-1。这样一来, 两个链碰撞时, 合并仅发生在两个链的对应位置上元素相等的情况下。如果位置不相同, 因为后面使用了不同的映射函数, 所以不需要合并。对于一个长度为t的链, 碰撞发生并需要合并的概率为1/t。

对于一个m×t的彩虹表, 查找成功的概率为:

实际上t个大小为m×t的经典表和一个大小为mt×t的彩虹表的查询成功率相当。在两种方法中, 表都覆盖了mt2个密钥, 使用了t个不同的映射函数。他们的对应关系如图1所示。

在彩虹表中查找密钥采用如下的方式进行:首先将Rn-1应用到密文上得到结果, 然后将结果与彩虹表中的链尾匹配。如果找到匹配了, 可以从链首重构整个链。如果找不到, 我们接着对结果应用Rn-2、fn-1, 然后将结果与彩虹表中倒数第二个元素进行匹配。下面接着对结果应用Rn-3、fn-2、fn-1, 以此类推。整个过程中需要计算次数是这只是经典表的一半左右。顺便指出彩虹表的出处即为在彩虹表的每一列采用了不同的reduction函数的缘故。

图2所示给出一个彩虹链攻击的例子:

1) 假设我们要破解的密码hash是“re3xes”, 首先对该值用R3运算处理一下, 得到明文“rambo”。然后看是否在每一个链的终点有明文“rambo”出现。

2) 如果rambo没有出现在表的任一链的终点, 则继续用R2运算处理, 紧跟着用H和R3运算处理, 这次算得的“linux23”恰好在最后一个链的终点出现。如果没出现, 则反复应用类似运算处理。

3) 从最后一个链的起点“passwd”恢复整条链, 我们看到“re3xes”是“culture”的hash结果, 所以, 密码就是“culture”。

2 Rainbow攻击的分布式设计

彩虹表攻击有三部分可考虑分布式。

1) Rainbow表的分布式计算

服务器仅仅分发给客户端产生彩虹表时所需要的各项参数, 然后由客户端来进行彩虹表计算。这样做有如下两点好处:

a) 服务器可以根据需要预计算出各项参数。

服务器端根据所需计算的彩虹表的各项参数及客户端计算能力, 来决定每个客户端所需产生的彩虹表的参数, 以及达到某个成功率所需要产生的彩虹表的个数。设m为每张表中彩虹链个数, t为彩虹链长度, l为彩虹表个数, 则各项参数之间的关系满足如下方程:

这样, 服务器根据想要达到的成功率让每个客户端产生不同表数、不同链数的彩虹表, 每个彩虹表由不同的随机值开始生成。尽管各个表之间可能存在冗余, 但总的来说, 由公式可推出, 表越多, 成功率越大。

b) 在计算过程中, 客户端不需要与服务器进行交互。

J.Borst提出了一种基于DP (distinguished points) 技术的分布式攻击, 由于DP技术固有的缺点, 客户端在产生彩虹表时要与服务器交互, 来验证DP的有效性。在基于彩虹表的分布式攻击中客户端在计算彩虹表的过程中不需要与服务器交互, 减少了交互的代价。

2) Rainbow表的分布式存储

当前国际上也有分布式计算彩虹表的项目, 叫做Distr RTgen。它的原理是客户端计算一个8兆的彩虹表, 然后回传给服务器, 由服务器将其保存在某个安全的地方。这种方法的缺点是:

a) 传输大量数据浪费时间;

b) 由于彩虹表涉及到敏感信息, 在传输过程中还需要进行加密。

我们先择将彩虹表保存在客户端本地, 供后继分布式查询时使用。这种方法能适用于计算客户端相对比较稳定的网络, 即客户端断开服务器的概率比较低的网络。

3) Rainbow的分布式攻击

分布式攻击可以采用两种方式, 一种是由服务器负责分发已经计算好的彩虹表, 客户端接收到彩虹表后进行彩虹表攻击, 这样做有以下缺点:

a) 在应用中, 服务器存有大量数据, 可能成为整个系统的瓶颈;再者, 彩虹表的网络传输代价很高。

b) 这些彩虹表, 如果在网络传输中被篡改, 有可能将导致攻击失败, 这又增加了加密和解密的代价。

所以我们采用了服务器只负责传输相应参数, 即待破解密码的哈希值, 客户端再收到指令后, 先进行攻击, 如果攻击失败, 则再根据需要产生部分彩虹表, 继续查找。这样做可能会增加攻击的平均时间。一旦某个客户端找到密码, 通知给服务器。服务器然后通知其他客户端密码已找到, 攻击结束。在实际攻击中, 由于彩虹表之间存在冗余, 有可能多个客户端都会找密码。这样服务器取第一个找到密码的结果即可。

3 实验结果

3.1 Rainbow分布式计算和存储实验

分布式计算和存储测试所用的参数如下:Tan=[ABCDEF-GHIJKLMNOPQRSTUVWXYZ0123456789];Ta=[ABCDEFGHI-JKLMNOPQRSTUVWXYZ], 分别表示要产生密钥的字符集。令m为每张表中彩虹链个数, t为彩虹链长度, l为彩虹表个数。我们对生成基于lm算法的密钥长度可为1-7位字符的彩虹表的生成进行了单机版和分布式版的测试。数据参数如表1、表2所示。

实验表明, 对于大的彩虹表, 用单机生成不仅速度慢, 而且因为彩虹表一般很大, 很难存储。同时由于对于太大的文件, 操作系统很难把它一次性读到内存, 这样在进行查找时, 给系统造成很大负担。我们用5个计算节点同时生成彩虹表, 得到了很好的加速比。同时, 也缓解了单机上存过大彩虹表的问题。

3.2 Rainbow分布式攻击实验

分布式攻击实验采用第三方提供的Rainbow表, Rainbow表的各参数如表3所示。

实验中, 我们使用了字母、数字、包括特殊字符的密钥空间, 这基本涵盖了一般的密码所包含的字符。结果表明, 用5台Core Duo2.4G的计算机, 对于任意14位以内的Windows XP系统密码都可以在平均5分钟以内破解出来。这里之所以是14位以内的密码, 是因为Windows XP的密码hash算法是7位一个单元进行的。

4 结束语

本文对基于彩虹表的分布式密码攻击进行了探讨, 分析了彩虹表的基本原理, 即hash链和彩虹链。并使用分布式计算环境对彩虹表的分布式存储、分布式攻击等进行了相关研究。实验表明, 彩虹表对于密码破解的确是强有力的武器。不过, 如果在生成哈希表之前, 给密码加个唯一的前缀, 然后再hash。这样, 攻击者就无法用彩虹表来攻击了。因为“密码”和“加了前缀的密码”生成的哈希结果是不匹配的。除非知道所有的哈希表都加了这个前缀。即使真的知道, 也得专门针对你的机器生成一个定制的彩虹表。

另外基于GPU的计算日益成熟, 在一台普通PC上辅以NVidia CUDA技术, 对于NTLM算法可以达到最高每秒103, 820, 000, 000次明文尝试 (超过一千亿次) , 对于广泛使用的MD5也接近一千亿次。下一步的研究计划是把具有GPU计算能力的计算节点整和到系统中来, 以增强系统的计算能力。

摘要:密码安全是被经常讨论的问题。分析了基于彩虹表的密码破解的基本原理, 首先介绍了哈希链, 分析了其原理和缺点, 即容易出现链冲突。随后引出彩虹链, 分析了其工作原理及优势。并使用分布式计算环境对彩虹表的分布式计算、分布式存储, 分布式攻击等进行了相关研究。

关键词:密码安全,分布式攻击,彩虹表

参考文献

[1]Hellman M E.A cryptanalytic time-memory trade off[J].IEEE Trans-actions on Information Theory, IT-26, 1980:401-406.

[2]Oechslin P.Making a Faster Cryptanalytic Time-Memory Trade-Off[J], Lecture Notes in Computer Science, Volume 2729, 2003:617-630.

[3]Borst J, Preneel B, Vandewalle J.On time-memory tradeoff between ex-haustive key search and table precomputation[J].On Information The-ory in the Benelux, 1998:111-118.

[4]Cosnard M, PHILIPPE J L.Distributed Algorithms for deciphering[J].[S.l.]:[s.n.], 2007.

分布式系统环境 篇7

随着现代社会的进步, 信息技术, 特别是网络技术、数据存储技术和高性能处理器技术飞速发展, 海量数据的收集、管理和分析变得越来越方便, 知识发现和数据挖掘更是在一些深层次的应用中发挥了积极的作用。但与此同时, 也带来了隐私保护方面的诸多问题.例如, 通过对医院病人的病历数据进行挖掘, 可以发现各种疾病之间的关联.但在使用一般方法进行挖掘的过程中, 不可避免地会使病例数据暴露, 从而造成病人隐私的泄露。还有治安系统中的违法记录、保险公司的理赔情况、银行卡客户的交易行为等信息中的关联关系, 都对政府和企业决策具有相当重要的意义, 但同时又都是公民非常注重的个人隐私。所以, 如何在数据挖掘过程中解决好隐私保护的问题, 目前已经成为数据挖掘界的研究热点。

1保持隐私的数据挖掘

隐私, 是指“一种免受非法侵入的权利”。通常人们担心私有信息被滥用。对数据挖掘而言, 隐私又分为以下两种。

(1) “单个隐私”, 即可追溯到个人的数据的私有性。一旦数据挖掘所使用的数据是个人可识别的, 就会引起争议。

(2) “联合隐私”, 即数据集合所揭示的信息的私有性。它通常指数据挖掘结果本身是保密的。因此, “单个隐私”针对的是指数据挖掘的各方输入数据, “联合隐私”讨论的是数据挖掘的输出模型。只要改变数据的收集方式, 屏蔽敏感的模型结果就可以实现保持隐私的数据挖掘。

1.1数据挖掘

保持隐私的数据挖掘需要结合以下几方面来讨论:

(1) 数据挖掘结果, 即开采模型或模式, 如分类树、关联规则、聚类等;

(2) 分布式, 对于不同的数据划分形式, 分为水平和垂直两种;

(3) 隐私限制, 即不同的隐私类型。

对于每一种挖掘任务、不同的数据分布方式和隐私限制, 都需要不同的解决方案。目前, 在分布式环境下, 保持隐私的数据挖掘有两种方式:基于数据干扰技术的集中式数据挖掘和基于多方安全计算的分布式数据挖掘。数据干扰技术的主要思想是:首先加密各站点的数据, 使其不可辨认;然后将修改后的数据存放到数据仓库中进行统一开采。方法有:数据交换方法和数据随机化等。前者通过交换不同记录之间的数值来隐藏记录所属对象与数值间的对应关系;后者在保持数据的原始分布不变的条件下给原记录加入适量的随机噪声。然而, 这种技术的主要问题仍然是从变化了的数据中能否得出正确的模型。多方安全计算是基于如下设想:进行协同计算的各方即不信任其它任何一方, 也不信任彼此之间的通信渠道;但是, 它们都希望在保持隐私的条件下, 通过传递必要的公用信息, 获取计算结果。最初, Yao于1986年提出了两方安全计算[1];随后Goldreich[2]将其推广为对于任何函数都成立的多方安全计算方法, 他指出安全地计算即隐私地计算。在分布式数据挖掘中, 采用多方安全计算来保持隐私需要考虑以下几个方面:正确的挖掘结果, 计算开销, 通信代价和安全强度。

2相关的概念及算法

2.1基本概念

定义1 关联规则可描述如下:设I={i1, i2, …, im}是项的集合;DB是一个事务数据库, 其中每个事务T是项的集合, 每个事务有一个标识符TID。一个项目的集合称为项集, 在一个项集中项目的数量称为项集的长度, 一个长度为k的项集称为k-项集。设X为一个项集。如果项集XTXI, 则称事务T包含X。关联规则是形如XY的蕴涵式, 其中XT, YT, 且XY=Ø。如果DB中包含Xc%的事务同时也包含Y, 那么XY规则在事务集DB中有置信度c (confidence) ;如果DBs%的事务包含XY, 那么规则XY在事务集BD中有支持度s (support) [3]。

定义2 设向量X¯Y¯X¯={x1, x2, , xn}Y¯={y1, y2, , yn}则向量X¯Y¯的点积可定义为:

X¯Y¯=i=1nxiyi

2.2数据垂直分布

垂直分布是指数据按照属性分布在各个站点, 在这种条件下, 可以通过发现项集的支持计数来进行数据挖掘。如果某个项集的支持计数可以被安全地计算, 那么通过检查计数和预先设定的阈值比较, 就可以知道该项集是否是频繁项集。通过安全地计算代表子项集的标量积的方法来得到项集的支持计数。

Jaideep Vaidya 在文献[4]]中提出了一种数据垂直分布条件下的基于关联规则的隐私保护算法。垂直分布是指数据按照属性分布在各个站点, 在这种条件下, 可以通过发现项集的支持计数来进行数据挖掘。如果某个项集的支持计数可以被安全地计算, 那么通过检查计数和预先设定的阈值比较, 就可以知道该项集是否是频繁项集。

如果按照上面的方法, 要计算支持计数, 那么站点A 或B都必须公布各自的私有信息, 暴露了自己的隐私。因此次算法就是一种不向对方公布自己的向量的情况下计算标量积的方法。它的根据就是解一个n元线性方程组, 而方程的个数小于n , 其结果是不确定的。通过这样的方法达到保护隐私的目的, 同时还能保证各方只能得到全局的频繁项集和关联规则。对各站点将其拥有的属性构成一个n 维系数矩阵, 通过产生随机的n个数R1, R2, …, Rn使之与其拥有的属性线性组合, 通过交换计算结果得到规则。

2.3关联规则中的Apriori算法

Apriori算法中, 寻找最大项目集的基本思想是:算法需要对数据集进行多步处理。第l步:简单统计所有含一个元素项目集出现的频率, 并找出那些不小于最小支持度的项目集, 即一维最大项目集。从第2步开始循环处理直到再没有最大项目集生成, 循环过程是:第k步中, 根据第k-1步生成的k维最大项目集产生k维候选项目集, 然后对数据库进行搜索, 到候选项目集的项集支持度, 与最小支持度比较, 从而找到k维最大项目集。

2.4两方安全计算

安全的两方计算是一种协议, 在协议中, 参与双方各自拥有一个保密的输出x, y, 运行协议后, 各自获得输出f1 (x, y) , f2 (x, y) (这里只考虑f1=f2的情形) , 除此之外, 双方不知道关于对方输入的任何信息 (详细方法可参考文献) 。安全的两方计算首先由Yao提出, 而后由O.Goldreich等人扩展到安全多方计算 , 数据挖掘算法中的输入都是非常庞大的, 所以直接使用基于电路协议构造安全的数据挖掘协议效率非常低, 这就使得针对特定的挖掘算法构造高效可行的。具体算法参见文献[5]]。

3现有的算法分析

有关垂直型数据库, 现在的此方面的算法大部分是基于Apriori为主应用两方安全计算, 使用apriori-gen函数去产生所有的侯选集, 对挖掘的每一项, 算法都通过计算标量乘积的形式来判定是否为最大项目。

该算法描述如下:

Jideep Vaidya 通过安全地计算代表子项集的标量积的方法来得到项集的支持计数。并将目标数据库视作是由固定长度的0 、1 序列构, 设数据库是由n条记录构成, 对于其中的一个k-项集, 站点A拥有其中的p个属性a1, a2, ..., apai1, ai2, ..., aip, 表示第i条记录。对应在这些属性上的值, X¯表示一个n 维矢量, 第i 维的值xi=j=1paij站点B 拥有剩余的q个属性bi1, bi2, ..., biq, bi1, bi2, …, biq, 表示第i条记录对应在这些属性上的值。对于B类似地有一个n维矢量Y¯, 其第i维的值yi=j=1pbij于是有k=p+q。这样, 通过计算X¯Y¯=i=1nxiyi可以得出k-项集的支持计数, 从而得出全局频繁集以及关联规则。但是, 如果按照上面的方法, 要计算支持计数, 那么站点A 或B 都必须公布各自的私有信息, 暴露了自己的隐私。针对这样的情况, Jaideep Vaidya 提出的算法就是一种不向对方公布自己的向量的情况下计算标量积的方法。他的根据就是解一个n元线性方程组, 而方程的个数小于n, 其结果是不确定的。通过这样的方法达到保护隐私的目的, 同时还能保证各方只能得到全局的频繁项集和关联规则。对各站点将其拥有的属性构成一个n维系数矩阵, 通过产生随机的n个数R1, R2, …, Rn, 使之与其拥有的属性线性组合, 通过交换计算结果得到规则。同时其考虑的是数据垂直分布在两个站点上的情况。

此处的算法大致分为这样几类, (1) 通过添加随机矩阵, 通过矩阵变换的形式达到对数据的保护, 但矩阵的运算量显然大于线形变换。 (2) 在全分布环境下的数据, 使用一种简单的加密方法, 各个站点间仅仅向挖掘者进行一次数据传输, 在保护隐私的同时最大限度地保证挖掘的准确性。加密虽然更能保证隐私性, 但是对加密算法的保护以及加密的开销限制了一定的效率。 (3) 采用第三方的策略, 所有的或是部分的数据发送给第三方, 这样避免了两方直接的数据交换, 从而达到保护隐私的方法, 但是在第三方接受真实数据的同时存在泄露问题, 再就是第三方的可信度也是一个问题。本算法只有两方的数据交换, 并且传输的仅仅是结果或是变换的向量, 即使在丢失的情况下也不泄露本方的重要的信息。

4算法的改进

算法改进的部分主要是向量的计算部分, 即X¯Y¯=i=1nxiyi, 用线形变换来产生新的向量交换, 隐藏原来的向量, 即用随机扰动来保护其隐私。具体思想如下:设, 则同理有.其中, 依次类推可得Y2, …, Yn。要计算上面提到的X·Y=∑n i=1xiyi, 此处即是依次计算X1 Y1, …, Xn Yn, 同时保证X1和Y1不能泄露自身的相关信息给对方。

首先对向量X1中的每一项乘上系数k1, 然后在加上偏移量v1, 则变换后为

X1´= (k1x11+v1k1x21+v1k1xm1+v1) (1)

1 ′和Y1的点积又由

故可以得到X1Y1=X1´Y1-v1 (y11+y21++ym1) }/k1

由此可见, 要得到X1Y1, 只需要按如下计算和数据交换步骤进行:

(1) 将经过 (1) 式变换的X1 ′传给Y1, X1同时保持k1和v1以及自身的隐秘性;

(2) Y1在接收到X1 ′, 将计算结果X1′Y1以及 (y11+y21+…+ym1) 传送给X1;

(3) X1处计算X1´Y1-v1 (y11+y21++ym1) }/k1既得到结果X1Y1。

同理, X1Y1, …, XnYn的计算依次类推, 并在参数的选取上做出改变, 分别选择参数k1, k2, …, knv1, v2, …, v2。以增强安全性, 以免存在恶意破解相同参数造成隐私性的破坏。

5结论

5.1算法的复杂度

由于算法采用的是Apriori算法, 并仅仅在传送过程中对向量进行线形变换, 然后将得到乘积项使用 Apriori-gen函数之后, 不影响算法的复杂度, 因此复杂度与Apriori算法是相同的。

5.2算法的安全性

算法的安全性就是隐私性的保护, 从上面的推导中可看到, 传送到Y的仅仅是变换了的X, 即X′, 因此Y没有得到X的内容, 同样, 传送到X的仅仅是两个值, 显然也没有泄露Y的相关内容。着重分析一下X'传送到Y的过程, 相当于Y得到方程组

{k1x11+v1=x11k1x21+v1=x21k1xm1+v1=xm1

方程中有的未知量是x11, x21, …, xm1以及k1和v1一共m+2个, 而方程有m个, 因此依靠的根据与Jaideep Vaidya提出的“解一个n 元线性方程组, 而方程的个数小于n ”是一致的。从而保证了隐私性。

参考文献

[1]Yao AC.Howto generate and exchange secrets.Proceedings Canada:Vancouver B C.International Conference on Parallel of the27th IEEE Symposium on Foundations of Computer Processing, 2002.Science, IEEE, 1986;162—167

[2]Goldreich O.The foundations of cryptography.General Cryptographic Protocols Cambridge University Press, 2004

[3]Agrawal R, Srikant R.Privacy-preserving data mining.Proceedings of the ACM SIGMOD Conference on Management of Data, Dallas, TX, 2000:439, 450

[4]Vaidya J, Clifton C.Privacy preserving association rule mining in ver-tically partitioned data.Proceedings of the Eighth ACMSIGKDD Inter-national Conference on Knowledge Discovery and Data Mining, Edm-onton, Alberta, Canada, 2002:639—644

分布式系统环境 篇8

1 分布式电源概述

分布式电源在近年来得到了广泛应用,相应的技术也随着不断成熟。分布式电源在电网环境中投入使用之后,对于改善电网环境内的电压水平等方面都有积极意义。依照分布式电源接入供电网络的方式不同,可以将分布式电源划分成为两类,即电机类分布式电源以及变流器类分布式电源。其中电机类分布式电源包括以异步电机直接并入电网方式实现工作的风力发电,以及通过同步发电机直接实现并网的小型水力发电 ;而变流器类分布式电源则包括了光伏发电、燃料电池、微型燃气轮机和生物能发电等多种,通常此类分布式电源均通过变流器并入电网实现工作。

不同类型的分布式电源应用的环境会有所差别,并且对应地会表现出不同的应用特征,对于既有的电力环境,尤其是对于电压的质量也会存在不同的差异影响。甚至于某些分布式电源在接入电网之后,还有可能造成电压的不稳定,甚至形成较大程度的电压冲击问题,严重的情况下谐波污染以及电压波形变异都会发生,综合此种情况,有必要对分布式电源对于电网电压的质量影响考虑到整个供电体系中来,切实展开有效分析,实现对于分布式电源更深入了解。

2 分布式电源对于电网电压的影响分析

当前在电网电压的研究领域,主要包括建立电压质量指标层次模型和采用合适的评估方法两大部分,引入到该领域中的相关评估方法,包括模糊数学法、层次分析法、灰色关联分析法等多种,其计算特征各有千秋。这其中层次分析法独具特色,主要是将决策问题的有关元素分解成目标、准则和方案等层次,在此基础上展开定性和定量的分析。下面基于此种分析方法,对于分布式电源对电压的影响进行浅要论述。

采用层次分析方法展开分析,首先需要构造出相应的结构模型。注意在对问题实现分解的过程中,确保层次之间的关系明确,每一层中的元素对下一次实现支配作用,同时服从其上一层次的支配。进一步构造判断矩阵A=(aij)n×n。其中aij的取值依据i和j两个元素的重要性进行设定,如果i元素比j元素重要则设定值为1,反之为 -1,同等重要则为0。这样构建起来的判断矩阵,在很大程度上依赖于人们对于相关要素的主观认定,在一定程度上缺乏足够依据并且存在误差,因此需要通过一致性认定来实现对于判断矩阵的验证。但是考虑到一致性认定本身的复杂,可以考虑采用如下方法用以取到和绕过一致性认定。

首先构建 反对称矩 阵A=[aij]n×n,并且满足aij =- aji,进一步求出最有传递矩阵。考虑到反对称矩阵A如果满足aij=aik+akj,则成为矩阵A是传递的 ;因此如果A为反对称矩阵,则A的最优传递矩阵应当为B=[bij]n×n,并且满足式(1)。

进一步求出拟优化一致矩阵。如果有实数矩阵A,并且对于i,j,k∈N,存在aik ajk = aij,那么就可以称A为完全一致性矩阵。因此对于反对称矩阵A而言,B为A的最优传递矩阵,则有A*=10B是A的拟优一致矩阵。表示为A*=[a*ij]n×n,其中a*ij =ex(pbij)。

在此基础上能够求出对应的权重。一致性矩阵A* 的最大特征根对应的特征向量满足A*=W=λmax W,则有W=[W1,W2,…,Wn]T为λmax的特征向量,W表示权重。进一步参与式(2)以及式(3)运算 :

最后求得W=[W1,W2, …,Wn]T为所求特征向量。

就目前而言,我国对电压质量各项分指标已经制定出的相应标准,但是此种标准仅仅在对单项电压质量展开评估的情况下才具有价值,而对于电能质量综合评估工作方面则存在不足。在利用层次分析法对电压质量展开评估的时候,可以考虑将电压质量分若干等级个等级,用以对电压的质量实现梯度反映。首先可以利用评分标准对电压质量展开评估,对于测量数据进行无量纲化处理,参见式(4)。

式(1)中x为评价指标的实际测量值。进一步利用之前确定的权重和无量纲化的数据对电压质量展开评分,参见式(5)。

式(2)中S(i)为第i个评估对象的分值,而为第Wij个评估对象的第j个指标的权重值,并且为第i个评估对象的第j个指标的无量纲化数据。

通过这样的计算得到对应的评分值,并且通过最终的计算分值对相应的电力环境中的电压质量实现描述和反馈,是层次分析方法的最终目标。

3 结论

采用此种方法,可以省去一致性检验,对于结算过程实现了简化,因此具有一定的现实意义。但是对于分布式电源电网的研究和分析远不止于此,必须展开更为详实和深入的分析,才能获取到良好结果,最终实现对于电压管理工作的现实价值。

摘要:文章首先从分布式电源的概念出发,就其主要的类型和在电网环境中的工作特征和影响进行了分析,而后从数学的角度对分布式电源对于电网电压的影响展开讨论,对于深入认识分布式电源有着一定的积极价值。

分布式系统环境 篇9

关键词:VMware虚拟机,ArcSDE,Oracle,ArcGIS Engine

0 引言

Arc SDE是空间数据存取的中间件, 处于应用程序和数据库之间, 它允许应用元素通过网络连接进行互操作, 实现了数据库是GIS系统中属性数据和空间数据统一有效的管理, 改变了过去属性数据与空间数据分别存取的传统方式, 在理论上支持了数据的完整性和数据共享的功能[1]。

Oracle数据库系统是美国ORACLE公司 (甲骨文) 提供的以分布式数据库为核心的一组软件产品, 是目前最流行的客户/服务器 (CLIENT/SERVER) 或B/S体系结构的数据库之一。Oracle的分布式数据库功能允许用户开发的应用程序将多个数据库作为一个完整的数据库对待, 允许用户透明的操作远程数据库, 并可以把他们连接在一起, 满足多个工作组、部门或地区的需求, 使应用程序看起来像一个大型数据库[2]。本文将详细介绍Arc SDE+Oracle搭建分布式开发环境的解决方案。

1 分布式开发环境

分布式环境是将系统分部在不同的物理位置, 但是彼此保持通信, 成为一个整体。内容的分布相对用户来说是透明的。系统相对用户来说可以是本地的、也可以是远程的。分布式环境允许应用从本地或者远程系统交换数据。Oracle充分体现了分布式系统的特性, 能够将一个或者多个数据库系统置于网络的不同机器上。用户同时能够使用单个SQL语句访问位于不同位置的数据库, 数据的物理分布对于用户来说是透明的[3]。

1.1 分布式数据库

分布式数据库 (Distributed Data Base System, DDBS) 是由若干个站集合而成的, 这些站又称为节点, 它们在通讯网络中连接在一起, 每个节点都是一个独立的数据库系统, 它们又拥有各自的数据库中央处理器、终端, 以及各自的局部数据库管理系统, 因而分布式数据库系统可以看成一系列集中式数据库系统联合, 它们在逻辑上属于同一系统, 但在物理结构上是分布的[4]。

1.2 系统架构设计

本方案以Arc SDE为空间数据引擎, 选用Oracle为空间数据库管理软件, 以主操作系统Windows7 (64bit) 作为客户端, 在主操作系统Windows7下安装的VMware虚拟机软件作为服务端, 建立C/S结构分布式空间数据库。

VMware是VMware Inc.出品的模拟机软件, 利用VMware我们可以在主操作系统下安装多个不同的操作系统, 并且可以同时运行在原来的平台下, 这些“新”的机器拥有自己独立的内存、硬盘和操作系统, 而对主操作系统没有任何影响, 我们可以完全把它当成是两台独立的机器。在客户/服务器结构中, 数据库服务器的管理和应用分布在宿主机和虚拟机上, 客户机上安装应用程序和连接工具, 通过Arc SDE建立和服务器的连接, 发出数据请求。服务器上运行数据库, 通过网络协议接收连接请求, 将执行结果回送客户机。由于基础地理框架数据的数据量非常大, 我们使用Oracle 11g数据库来存储和管理数据, 并在专门的服务器上实施。所有的空间数据和应用程序都放在服务器端, 客户端只是提出请求, 所有的响应都在服务器端完成。Oracle+Arc SDE是服务器端的典型应用, 也是目前国际上最先进的地理信息管理方案之一, 可提供强大的地理信息存储访问机制[5]。

2 分布式开发环境搭建过程

2.1 配置服务端: (1) 在Windows7系统下安装VMware。

(2) VMware下安装Windows Sever 2008操作系统。如图2所示。 (3) 安装数据库:Oracle11g-11.2.0.1.0-win32。 (4) 配置监听程序:收集以下信息:服务器计算机名:lenove-PC;Oracle网络服务名:dbserver;sys用户密码:******。服务器ip地址:192.169.150.134。如图3、图4所示。

2.2 配置客户端: (1) 安装开发工具Visual Studio 2010.NET。

(2) 安装Arc GIS 10.0 (32bit) 。 (3) 安装数据库客户端Oracle-Ora Client11g_home1。 (4) 配置监听程序:采用和服务端同样方法和信息进行配置, 完成后进行测试, 测试成功后可尽行下一步操作。如图5所示。 (5) 安装Arc SDE for Oracle 11g (32bit) :分布式安装的一个必须要求是Arc SDE端机器必须安装在客户端, 在安装Arc SDE之前, 首先保证该机器安装数据库客户端, 而且保证sqlplus/oracle@oracle as sysdba可以连通。

3 关键技术

3.1 Arc GIS Engine

Arc GIS Engine (AE) 是一组跨平台的嵌入式AO, 它是Arc GIS软件产品的底层组件, 用来构建定制的GIS和桌面制图应用程序, 或是向原有的应用程序增加新的功能, 通过它, 可以构建非GIS为中心的应用。开发者使用Arc GIS Engine开发包构建应用程序, 并通过Arc GIS Engine Runtime的软件许可将这些程序分发给最终用户[6]。Arc Engine是一个简单的、独立于应用程序的Arc Objects编程环境, 开发人员用于建立自定义程序的嵌入是GIS组件的一个完整类库。Arc Engine由一个软件开发包和一个可以重新分发的为ARCGIS应用程序提供平台的运行时 (runtime) 组成。另外Arc Engine封装了大量的对象类库, 如System类库、System UI类库、Geometry类库、Display类库、Server类库、Output类库、Geodatabase类库、GISClient类库、Data Sources File类库、Data Sources GDB类库、Data Sources Raster类库、Geo Database Distributed类库、Carto类库、Location类库、Network Analysis类库、Controls类库、3Danalyst类库、Globe Core类库及Spatial Aanlyst类库等。在Windows、UNIX和Linux平台的开发环境下使用这些库, 开发者可以开发出从低级到高级的各种定制的应用。

3.2 Arc SDE连接数据库

用Oracle数据库管理向导建立一个数据库, 为了提高数据库的运行速度, 需把数据库的临时表空间与索引表空间置于两个不同驱动器中 (非操作系统启动驱动器) , 并增大表空间容量。装载、启动数据库, 在安装Arc SDE过程中, 需输入数据库的全局数据库名 (SID) 以及空间数据引擎运行实例名 (缺省为esrisde) , 以便创建空间数据引擎的运行实例[7]。在服务器端的Arc SDE连接到Oracle以后, 启动Arc GIS License Manager服务, 采用c#作为语言平台, 数据库使用Oracle11g, 使用Arc SDE作为连接数据库的中间件。

使用Arc SDE连接数据库的代码如下:

运行结果如图6所示。

4 结语

本文采用VMware虚拟机软件, 通过建立虚拟的操作系统, 模拟两台独立的计算机, 并将其配置成为一个分布式计算网络, 通过Arc SDE+Oracle技术可以为使用者提供一个虚拟的并行程序调试和运行环境, 通过实验证明这种方法是可行的。这种方法让用户可以实现数据存储管理的自动化与智能化, 提高存储效率, 避免了每个开发人员都必须在本机安装数据库及SDE等大型软件, 节约资源, 同时避免数据切割产生多个副本造成增加数据处理难度等。

参考文献

[1]曾炫.分布式空间数据管理与应用研究[D].北京.华北电力大学, 2012.

[2]刘铁铮, 姜斌, 李常山, 夏秀峰.Oracle分布式数据库的创建策略[J].沈阳航空工业学院学报, 2004, 21 (4) :70-72.

[3]Oracle.10g入门与实践.

[4]李仕川, 汪陵, 宋学文地籍信息GIS系统中使用分布式数据库探讨[J].重庆交通学院学报, 2004, 23 (3) :70-72.

[5]赵村民, 宋利好, 赵晓民.基于Oracle与ArcSDE的空间信息访问优化[J].吉林大学学报 (信息科学版) , 2004, 22 (3) :283-288.

[6]吴玮, 李小帅, 张斌.基于ArcGISEngine的GIS开发技术探讨[J].科学技术与工程, 2006, 6 (2) :176-178.

分布式三维虚拟校园系统设计 篇10

摘 要:本文首先介绍了三维虚拟校园及其发展现状和分布式虚拟现实系统,然后在此基础上设计了一种以用户为中心,可以实现在三维虚拟场景里进行生活、学习的令人身临其境的分布式三维虚拟校园环境。

关键词:三维 虚拟校园 分布式

中图分类号:TP311.1 文献标识码:B 文章编号:1673-8454(2009)17-0034-03

三维虚拟校园可以将学校的各种场景、细节和体验完全复制到互联网上,让学生和教师不受时间和空间的限制,仅需通过电脑和网络,就能够身临其境地感受优美的校园风光、良好的教学环境和优秀的教学资源。

一、三维虚拟校园及其发展现状

1.三维虚拟校园

三维虚拟校园基于因特网、虚拟现实技术和地理信息系统(GIS)、遥感(RS)、空间定位系统(GPS)技术等。该技术的应用对现实校园三维景观和教学环境的数字化和虚拟化有很多辅助作用。

2.虚拟校园的发展现状

早在1996年,天津大学在SGI公司的硬件平台上,基于VRML国际标准,最早开发了虚拟校园。随着宽带技术的大规模应用,国内其他高校也开始逐步推广、使用虚拟校园模式。然而这些虚拟校园大多都是以实现浏览功能为主,不能让用户体验在三维虚拟校园里面的学习生活氛围。现在,人们不再满足于只是对校园环境的浏览,而是期待一种以用户为中心,可以实现在虚拟场景里进行生活、学习、工作的三维虚拟校园环境。

二、分布式虚拟现实系统

分布式虚拟现实系统简称DVR,是虚拟现实系统的一种类型。它是基于网络的虚拟环境,在这个环境中,位于不同物理环境位置的多个用户或多个虚拟环境通过网络相连接,或者多个用户同时参加一个虚拟现实环境,通过计算机与其他用户进行交互,并共享信息。在分布式虚拟现实系统中,多个用户可通过网络对同一虚拟世界进行观察和操作,以达到协同工作的目的。

三、分布式三维虚拟校园系统的整体构想

分布式三维虚拟校园系统是利用分布式虚拟现实技术,构建的基于网络的三维虚拟校园环境。本系统的整体结构如图1所示。

从总体上讲,系统主要由以下三个部分组成:三维虚拟人物、三维虚拟校园场景和学习资源。

1.三维虚拟人物

用户通过注册之后可以登录到三维虚拟校园系统中,登录后可以根据自己的爱好设计三维化身,设置自己的基本资料,在虚拟校园中进行学习、工作和交流。按照不同的权限,系统中的用户可以分为三种:系统管理员用户、助管用户、普通用户。具体来说各类用户的权限主要表现在:

(1)系统管理员用户

系统管理员是整个系统中权限最高的用户,负责管理整个系统,系统管理员可以对系统的用户进行管理,包括处理用户的注册申请、分配用户权限、添加删除用户等;另外系统管理员可以对系统中的教学楼、实验室、办公场所、休闲娱乐场所等虚拟校园内的硬件设施进行管理,以及对系统中的资源进行管理。

(2)助管用户

助管用户是由系统管理员指定,分配一定的权限之后,协助管理员进行管理的用户。助管用户可以在自己的职权范围之内对三维数字校园内的虚拟建筑物、资源及特定的用户进行管理。助管用户具体来说包括虚拟教室管理员、虚拟实验室管理员、虚拟图书馆管理员、虚拟教师用户、虚拟学习社区管理员、虚拟购物场所管理员。

(3)普通用户

普通用户是整个系统中权限最小的角色,在三维虚拟校园系统,普通用户登录后可以在三维场景里漫游,在虚拟教室上课,在虚拟实验室做实验,还可以与其他用户进行交流,进行一些休闲娱乐活动。

2.三维虚拟校园场景

系统中的虚拟校园场景是根据学校的地形地貌,利用三维建模技术,将实际生活中的学校环境重现在计算机上,为用户提供一个三维显示的具有真实情境感的学习环境,通过在虚拟环境中集成各种媒体,可以让用户获得视觉、听觉等多方面的感知,同时用户可以与虚拟环境和虚拟环境中的虚拟人物进行交互,让用户能够体验到一种主体存在感和沉浸感。

系统中的三维虚拟场景主要包括以下几个部分:虚拟教室、虚拟实验室、虚拟图书馆、虚拟生活休闲场景。

用户浏览校园时通过点击查看建筑物属性,可以查询此时此栋教学楼有哪些教室在上课,虚拟教师在特定的虚拟教室中组织教学。学习者进入教室后,可以自己选择座位坐下,开始听课,学习者在听课的同时可以看到教室中的虚拟教师和其他学习者,并可以与他们进行交流。

虚拟教师如果要教授实验部分的知识或者学习者要在虚拟环境中做实验,可以选择去虚拟实验室。虚拟实验室中有必要的实验设施,可以让用户对实验设施进行操作。

虚拟图书馆是运用虚拟现实技术、网络技术和数字技术将文献信息资源以及各种数字资源整合,通过网络提供远程服务,使处在不同地理位置的用户可以方便地利用这里的数字化信息资源。虚拟图书馆中按照各种不同专业类别将电子图书分类放在不同的书架上,用户进入虚拟图书馆后可以在虚拟图书馆内行走,并可以根据自己的需求选择图书。

虚拟生活休闲场景就是指除了虚拟教室、虚拟实验室和虚拟图书馆以外的一些学校校园场景,包括一些购物场所、健身场所、行事办公场所,以及学校的花草树木等。

3.虚拟学习资源

为了更好地促进学习者的学习,三维虚拟校园中必须提供充足的学习资源供学习者使用,系统不仅提供学习者学习过程中需要的学习资源,图书馆的图书资源,还提供一些可以供用户随时下载的资源。这些资源不仅是文本性质的,还包括一些声音、图片、图像等,给用户提供全方位、多感知的学习资源。

四、分布式三维虚拟校园系统技术实现

系统采用B/S结构,基于VRML-Java的分布式多用户虚拟现实系统,实现了多个用户共享一个三维虚拟校园环境,实现人机交互。服务器端的场景管理器负责整个系统的用户登录/注销管理、场景更新、多用户连接时的线程管理,并负责接受各个用户的场景更新数据包;客户端采用装有可显示VRML场景的Applet插件的浏览器来充当,负责本地的场景绘制渲染,通过键盘、鼠标等实现用户与虚拟场景之间的交互,接受服务器发送的场景更新数据,并维持同服务器之间的Socket连接。其结构如图2所示。

1.客户端

客户端环境是分布式虚拟现实系统中的用户在虚拟环境中协同工作的场所。本系统采用3D MAX等建模软件对校园模型进行建模,然后转换成.wrl文件,再利用VRML脚本语言给模型添加一些交互行为,但是VRML只能实现有限的交互性,而且这些交互都是一些单一的、缺乏内在的逻辑控制的交互行为。

Java语言不仅具有跨平台性,而且语言还具有强大的逻辑控制功能,同时Java Applet可以调用VRML规范所提供的EAI接口来对VRML场景进行控制,Java Applet还可以通过VRML嵌入到网页中。所以系统中客户端为装有插件的浏览器,客户端程序以Applet的方式运行在浏览器中,用于创建与服务器之间的Socket连接,接收服务器的广播报文进行解析,从而实现客户虚拟场景的更新,可以通过键盘、鼠标等控制用户虚拟化身在三维虚拟校园场景中的位置、方向和视角,实现用户与场景的交互。

2.服务器端

服务器端主要由三部分组成:Web服务器、场景及用户数据库、场景管理器。Web服务器负责提供基于WWW的Internet服务,将系统站点发布出去供客户端访问,用户可以通过客户端浏览器登录,进入三维虚拟校园系统;场景及用户数据库用来管理系统的三维虚拟场景和用户的基本信息,其中保存了系统可调用的三维虚拟场景信息、进入场景中漫游的用户名称、用户密码,以及用户在虚拟场景中的虚拟化身等信息;场景管理器是服务器端的主要部分,它连接了Web服务器和场景及用户数据库,主要用于维护用户的登录/注销,管理不同用户与服务器之间的连接,从用户端接收数据报文,这些报文主要分为状态更新、加入/退出请求等几类,在解析这些报文以后,服务器再将这些信息以广播的方式发送给网络上的每一台客户机,用以更新客户机的虚拟场景,从而实现网络上客户与虚拟场景以及客户与客户之间的动态交互。

3.数据库连接

用户登录后与系统的交互不仅仅是靠客户端基于VRML场景本身所提供的数据信息进行交互,更多的是与系统中的其他用户的协作交互,而这些信息不能完全存储在客户端,这就需要数据库系统提供相应的支持。数据库中不光要存储用户的数据信息,学习资源的信息,最主要的还是要存储分布式系统中登录的不同客户端在场景中改变的数据,而且这些改变的数据还可以被不同客户端读取。由于VRML没有直接定义访问数据库的语句,因此VRML场景与数据库的连接一般是通过VRML规范所提供的EAI接口发送给Java Applet,由Java Applet实现对数据库的访问,最后将结果通过EAI接口返回给VRML客户端场景,从而实现与数据库系统的相互操作。

4.系统的时钟同步

分布式虚拟现实系统中一个关键的技术就是时钟同步技术,由于不同的计算机有自己的物理时钟,两台计算机的时钟不可能实现完全的同步。这是由于计算机的时间是由其固定的晶体振荡频率所决定的。虽然两个时钟之间的振荡周期的偏差可能相对很小,但是经过多次的累加之后会在时钟计数器中形成可以观察到的差异。因此,当系统长期运行时,这种差异就有可能影响到系统的实时性。为了消除这种实时性问题,可以利用统一的外部时间源来同步进程的时钟,也就是外部同步。当外部同步满足一定的精度,就能够通过本地时钟度量发生在不同计算机上的两个事件的间隔,达到内部同步。因此可以使用一个事件同步服务器,连接到一个接受UTC(Universal Time Coordinated,通用协调时)信号的设备上,用于实现系统外部同步。

五、结束语

利用分布式虚拟现实技术构建的基于网络环境的三维分布式虚拟校园系统使得位于不同物理环境位置的多个用户

可以通过网络对三维虚拟校园进行观察和操作,与其他用户进行交互,共享信息。用户不仅可以浏览到校园的风景,更可以感受到校园的文化氛围,可以更有效地促进学习者的学习。

参考文献:

[1]杨宝民.分布式虚拟现实技术及其应用[M].北京:科学出版社,2000.

[2]芦鸿雁,李斌兵.虚拟校园及其在现代化教学中的作用[J].科技资讯,2007(34):102-103.

上一篇:建筑形态构成要素研究下一篇:社会效益与经济效益