Mapeasy中Ajax技术的应用.doc_第1页
Mapeasy中Ajax技术的应用.doc_第2页
Mapeasy中Ajax技术的应用.doc_第3页
Mapeasy中Ajax技术的应用.doc_第4页
Mapeasy中Ajax技术的应用.doc_第5页
已阅读5页,还剩15页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Mapeasy中Ajax技术的应用 Mapeasy中Ajax技术的应用关键词:MAPEASY;瓦片预生成技术;Ajax技术;xmlhttprequest对象 摘要:基于瓦片预生成技术和AJAX技术的GOOGLE地图服务在电子地图技术的实现领域带来了新的活力。Mapeasy是一个应用这两种技术实现电子地图的客户端JS开源类库,Mapeasy本身与后台数据库无关,本文主要介绍了在Mapeasy中应用AJAX技术的Xmlhttprequest对象实现异步数据请求的过程。 一、引言 目前,电子地图的兴起和发展,特别是随着互联网的迅速发展和普及,GIS和INTERNET的结合(WEBGIS),让电子地图作为一种工具,与其他产业的发展应用相结合,已经成为人们一个常用工具。 说到WEBGIS,不得不想到以提供网络搜索服务为主的GOOGLE公司推出的地图服务GOOGLE MAPS和GOOGLE EARTH。它们的出现标志着互联网地图服务的兴起,其应用的地图瓦片预生成技术和Ajax技术相结合的网络地图模式,有效地减轻了服务器端的负载。鉴于这种模式的成功,出现了许多比较优秀的类似技术的网络地图开源类库,比较著名的有Mapeasy,Openlayers。下面简单的介绍下Mapeasy。 二、Mapeasy Mapeasy是一个基于地图瓦片预生成技术和AJAX技术的JS开源类库。严格地说来,它是一个网络地图客户端的应用程序接口,类似于Google Map API,能够简化基础网络地图的实现。并且它独立于具体的GIS技术和规范,还支持多种图片格式,并具有一些常规的GIS功能,如:定位,比例尺,标注等。它是一个纯粹的客户端JS库,不需要在客户端使用任何插件,并且与后台数据的获取方式完全分离,因此可以在服务器端放置简单的图片,也可以在后台架构专业地图服务器(MapX,GeoServer等),更加易于各种环境下的部署和扩展。虽然是完全运用弱类型语言JavaScript编写的,但具有良好的面向对象方法设计和模式。 三、瓦片预生成技术 瓦片预生成技术的原理是预先将地图设定为多个比例尺,对每个比例尺提前将地图分成若干小图片(称为瓦片tile),预存在服务器上,瓦片是像素大小相同的图片。比如:在第一级比例尺上,是一个瓦片,而到了第二级就裂变成了四个瓦片,地图放大一个固定比例,到第三级就裂变为十六个瓦片。依次类推,每放大一个级别上级的一个瓦片就裂变为四个,这样就构成了地图瓦片的金字塔模型。客户端通过计算电子地图显示区内的坐标范围和比例尺大小来索引合适的瓦片,把这些瓦片从服务器端下载到客户端拼接成无缝的电子地图显示出来。 四、Ajax技术的应用 (一)Ajax技术的概述 Ajax是Asynchronous JavaScript And XML的缩写,它并不是一门新的语言或技术,而是几项技术新的组合。 Ajax技术主要的功能和特点: 1.使用了xmlhttprequest对象进行异步数据的读取。 2.使用document object model(DOM)实现动态显示和交互。 3.使用xml和xstl进行数据的交换处理。 4.使用xhtml和css呈现标准化。 5.使用javascript对以上的技术进行数据的绑定处理。 Ajax最大的特点是使用了xmlhttprequest对象实现了服务器端和用户端的异步数据响应,改变了传统WEBGIS以提交表单的形式实现客户端和服务器端的同步。 (二)mapeasy中xmlhttprequest对象实现数据异步存取 在mapeasy中,应用Ajax技术的xmlhttprequest对象建立与后台数据库连接的步骤: 1.申请一个新的xmlhttprequest对象。 var request=new XMLHttpRequest(); 2.xmlhttprequest对象向数据库发送数据请求。 this.getMarkerInfo=function ()/向服务器中的MarkerInfo.aspx发出数据请求 var url=MarkerInfo.aspx?;/给出数据的url request.open(GET,url,true);/建立服务器的异步数据请求,第三个参数为true表示异步数据请求 request.onreadystatechange=this.updateMarkerInfo;/指定回调的方法 request.send(null); 3.接收数据,并在地图上显示标注图标。 this.updateMarkerInfo=function () /接受图标数据,并显示图标 If (request.readyState=4) var receivedInfo=unescape(request.responseText).split(#); var markerInfo; var newmarker; for(var i=0;imarkerInfo=receivedInfoi.split(); newmarker=new Marker(new Point(markerInfo1,markerIn fo2),Marker.LARGE); newmarker.setInfo(markerInfo3); model.addOverlay(newmarker);/把数据图标覆盖到地图的中心点上 五、结束语 在mapeasy中实现电子地图的发布,需要在服务器端先把地图瓦片分等级存放,再应用ajax技术的xmlhttprequest对象实现服务器端数据的异步读取,极大地提高了客户端的用户体验。在mapeasy上的二次开发应用具有更为广泛的前景。 参考文献: 1MapEasy,;2007,1:12 2符海月,赵军,李满春.从Goosle Maps看我国全球化地理信息服务面临的挑战和对策.地理与地理信息科学,2006,22,2:l-3 3易棋.WEBGIS中地图发布的一种改进方案.信息科技,2008,22: 127-129 4栾绍鹏,朱长青.Ajax在Webgis中的应用研究.测绘科学, 2007, 32,5 :158-160 无线局域网的安全性.关键词:无线局域网;无线接入点;数据加密 摘要:无线局域网作为最热门的无线通信技术,在全球得到了迅速推广和普及,其安全性也随之受到越来越多的关注。本文通过对无线局域网的安全协议和认证标准方面进行分析改进,着手无线局域网的安全完善。 安全性对于无线局域网来说可谓老生常谈,自它诞生之日起,与其灵活便捷的优势共存的就是安全漏洞这个挥之不去的阴影。据统计,不愿采用无线局域网的理由中,安全问题高居第一位,达40%以上。不可否认,它已成为阻碍WLAN进一步扩充市场的最大障碍。 为了加强无线局域网的安全性,无论IEEE工作组还是众厂商都尽了最大努力,制定并开发出各种技术来加强WLAN的安全性,经过这一年多的发展,无线局域网的加密技术也已不再限于“MAC地址过滤”、“WEP”等传统方式。各种基于802.11g标准的无线网络产品在安全性上均有很大的提高。 无线局域网的安全性定义包括三个方面,所有的保护/加密技术都是围绕这三方面来进行。首先是“数据的安全性定义”(Confidentiality),它意指无线局域网传输的信息不会被未经授权的用户获取,主要通过各种数据加密的方式来实现;其次是“数据的完整性定义”(integrity),指的是数据在传输的过程中不会被进行修改、删除等额外操作,主要通过数据校验技术来实现;最后是“数据来源的真实性定义”(Authenticity),它代表了数据来源的可靠性,也就是说合法用户的身份不会被非法用户所冒充。 一、无线局域网相关安全技术标准 (一)WiFi WiFiWirelessFidelity,无线保真技术与蓝牙技术一样,同属于在办公室和家庭中使用的短距离无线技术。AP一般称为网络桥接器或接入点,它是当作传统的有线局域网络与无线局域网络之间的桥梁,因此任何一台装有无线网卡的PC均可透过AP去分享有线局域网络甚至广域网络的资源,其工作原理相当于一个内置无线发射器的HUB或者是路由,而无线网卡则是负责接收由AP所发射信号的CLIENT端设备。 (二)WAPI WAPI(无线网络鉴别与保密基础结构)是我国首个在计算机宽带无线网络通信领域自主创新安全接入技术标准(属无线网络通信领域基础关键技术)。2009年10月,WAPI获国际标准组织ISO/IEC JTC1/SC6的提案邀请,将作为ISO/IEC独立标准重新进入国际标准流程这标志着历经曲折的WAPI在国际标准道路上重获新生。作为该领域全球的两个标准之一,相比另一个由IEEE主导并公认存在严重安全缺陷的802.11i标准,WAPI具有明显的安全和技术优势,迄今未被发现有安全技术漏洞。 二、实际项目分析 (一)项目背景 新科技楼,办公区域较分散,某些区域不能实施布线。办公楼共9层,每层900平方,其中8楼为主办公区域,网络内有40台式计算机,20台笔记本计算机。但是工作要求在所有区域都能上网,同时,在科技楼的公共区域也要求能够提供无线接入。由于对网络灵活性的需求,使得无线网络成为构建网络的首选。 (二)网络需求 根据各部门对网络的不同需求,要求无线网络能提供以下的应用:共享上网、从简单的文件共享与打印共享、办公自动化,到复杂的电子商务等。由于网络内有大量Photoshop文档列印需求,有时还有网络视频应用,因而对网络质量和速率要求非常高,普通的802.11B网络的54Mbps传输速率无法满足实际需求,需要选用802.11G无线产品。 (三)网络设计与分析 在无线网的方案中全部选用友讯D-Link和普联TP-Link系列无线网络产品:增强型802.11N无线网络宽带路由器(无线宽带hub)、802.11N/G/B TP-Link无线网卡,802.11N D-Link系列无线网络接入点(无线AP)。其中增强型802.11N/G/B TP-LINK TL-WR1043N无线网络宽带路由器与802.11N/G/B TP-Link无线网卡搭配可提供高达300Mbps的传输速率,完全可满足笔记本计算机区域内移动无线高速上网的需求。台式机全部安装TP-LINK TL-WN821N+USB无线网卡,速率最高可达300Mbps,灵敏度高,输出功率64dbm,支持高达128-Bit的WEP数据加密。同时支持WPA/WPA-PSK、WPA2/WPA2-PSK安全机制。TP-LINK TL-WN821N内置全向智能天线,可适应不同的工作环境,使台式机或笔记本电脑用户方便地接入无线网络,同时支持无线漫游功能。另外还可以方便地与其它的802.11b、802.11g、802.11n无线设备连接。 无线网络宽带路由器TP-LINK TL-WR1043N为办公区域部署了增强型的无线安全网络,内建防火墙及NAT,能有效的阻挡来自Internet的安全性风险。基于硬件的128/254-Bit WEP传输加密,提供安全的数据通信能力。TP-LINK TL-WR1043N不仅针对单一AP设备提供基于WEB的管理方式,同时它还提供有AirPremier AP Manager多设备统一管理软件。通过该软件平台,管理员可以对网内AP实现集中管理,根据设备的运行情况直接进行设置维护,提高了管理和维护效率。 由于主要办公区域在8层,且3楼和6楼均建为有线网络,因而将ADSL Modem与无线路由器TP-LINK TL-WR1043N放置于8层,并通过有线方式连接。TP-LINK TL-WR1043N高达73dBm的输出功率可有效覆盖8层的全部商用无线网络环境。通过路由自动分配IP使得区域内的电脑无需设置即可实现随时随地互联、接入网络,可以不受场所或房间的限制进行连接以及共享文件、共享打印等。 无线局域网的安全系统要做到有效,就必须解决下面三个安全问题: 1.提供接入控制:验证用户,授权他们接入特定的资源,同时拒绝为未经授权的用户提供接入。 2.确保链路的保密与完好:防止未经授权的用户读取、引入或更动在网络上传输的数据。 3.防止阻断服务攻击:确保没有一个用户或一小批用户可占用某个接入点的所有可用带宽,阻断其他用户的正当接入。 当然,8楼的财务部安装有内部财务系统,属于公司的核心关键业务,不能采用无线网络,就会通过有线网络来运行,而不会采用无线网络。只要把有线网络和无线网络进行合理的分工,安全就不是一个问题了。 三、结束语 无线网络的出现就是为了解决有线网络无法克服的困难。虽然无线网络有诸多优势,但与有线网络相比,无线局域网也有很多不足。无线网络速率较慢、价格较高,因而它主要面向有特定需求的用户。无线局域网不是用来取代有线局域网,而是用来弥补有线局域网络之不足,以达到网络延伸之目的。目前,无线局域网已能够通过与广域网相结合的形式提供移动互联网的多媒体业务。相信在未来,无线局域网将以它的高速传输能力和灵活性发挥更加重要的作用! 参考文献: 1谢希仁.计算机网络(第四版)M.电子工业出版社,2007 2中国IT培训工程编委编.Win2000.网络管理员培训班M.珠海:珠海出版社,2001 3雷振甲.计算机网络管理及系统开发M.北京:电子工业出版社,2002   摘要:本文提出以计算机监控技术为主线,综合汇编语言、C 语言、Visual Basic 6.0、计算机接口技术、计算机网络、数据库系统等专业平台课的内容,将各种理论知识应用到实际的项目中,从不同的角度实现相关技术,从而强化理论与实践的结合,熟练掌握计算机监控技术,有效提高就业率和薪资水平。关键词本文来自:计算机毕业网 :计算机监控;仿真软件;综合实践;教学模式1引言目前,我国计算机专业的教学模式主要还是从基础理论到专业理论,实践环节较少,这就导致了学生厌学,眼高手低,本科毕业连基本的编程技能都不具备,从而,在就业市场上一败涂地。这些效果又使在校学生更加沮丧,进一步影响其学习的积极性。中国要发展IT产业,必须改革计算机专业的教学模式。印度是一个贫穷落后的发展中国家,软件业的成就却举世瞩目。印度的软件人才主要是通过职业教育而不是高等教育来培养的,从而大大降低了培养成本和使用成本,缩短了培养周期。其教学不是按从基础理论到专业理论,再到实习的路径,而是把顺序颠倒过来,先从做开始,在做的过程中,学生如遇到问题,再以此问题为基点去学习专业理论。学员一入学,便要做项目,培训中心把所承接的大项目分解成一个个小项目,然后要求每个学员完成一个小项目,让学员在完成项目的过程中学习。培训中心的学员最后一年都在公司实习,积累工作经验,同时也给企业提供深入了解雇员的机会。我们借鉴印度发展软件业的成功经验,结合多年从事计算机监控的项目经验和从事教学的心得体会,提出一种“趣味实用程序的演示+知识点+趣味实用程序的模仿+综合训练+学术论文”的教学模式1,引导学生充满兴趣地钻研技术,最后逐渐成为计算机监控方面的专家,并熟练掌握计算机专业的基础理论与编程语言。2计算机监控技术的特点与主要技术计算机监控系统是以监测控制计算机为主体,加上检测装置、执行机构与被监测控制的对象共同构成的整体。在这个系统中,计算机直接参与被监控对象的检测、监督和控制。检测主要是通过传感器和相应的输入模块来取得被监控对象的状态数据,监督主要是对状态数据进行分析后给操作员提供手动操作的参考,控制则是手动或按照一定的策略自动地对被监控对象执行相应的操作。传统的检测与控制所使用的模块一般采用RS-232接口,因为该接口简单可靠。随着网络技术的发展,采用网络接口RJ-45的模块逐渐增多。监控用的计算机一般称为主控机(或上位机),各种检测与控制模块或嵌入式系统一般称为受控机(或下位机)。主控机软件一般采用高级语言(如Visual Basic 6.0,简称VB)进行开发;受控机软件没有软件界面,仅实现相关的逻辑功能,一般采用C语言、汇编语言等进行开发,通过调试后,再下载到受控机系统中。主控机通过RS-232/RJ-45接口与受控机通信,进行数据的查询与命令的发送。各种控制策略、设备的状态等的保存,都需要使用数据库技术。因而,实现一个计算机监控系统,需要综合使用诸多计算机的基础理论与编程语言:计算机接口技术、计算机网络、数据库系统、VB与C语言等,利用计算机监控技术作为计算机专业实践训练的主线,具有很高的操作性和极大的意义。3仿真软件的设计学习计算机监控技术,需要购买相应的硬件模块,从而在一定程度上制约了该技术的推广。本文提出了一个基于RS-232的仿真模块的可视化模型,在此基础之上设计了可视化的仿真数字I/O模块,模拟量输入模块,并设计了对应的通信协议。主控软件与仿真模块之间的通信通过虚拟串口实现,从而,达到在计算机房零成本搭建计算机监控系统平台的效果。RS-232/RJ-45协议转换器可以用于实现计算机监控系统的远程处理,也可以用于将普通的输入模块转换为仿真的网络传感器。3.1仿真模块的可视化模型基于RS-232接口的仿真模块的可视化模型如图1所示。模块表示区用来模拟实际的模块,对于数字量输入模块(Digital Input Module,DIM),输入开关根据设定的时间随机闭合/打开,并通过图形表示;对于数字量输出模块(Digital Output Module,DOM),用有源电路回路表示输出开关的状态,例如,开关闭合,播放铃声或灯亮等;对于模拟量输入模块(Analog Input Module,AIM),用图形表示检测回路,并在检测点旁边显示温度的原始数据。每个模块都设置数据接收和发送指示灯,显示数据收发的状态。功能按钮区为系统设置按钮和关闭程序按钮。系统设置主要完成串行通信的端口号、波特率、校验码、结尾码、模块地址等的设置,对于DIM模块,还需要设置随机切换输入开关所需要的时间段。协议描述区显示本仿真模块适用的通信协议,包括协议的格式及其具体的含义。数据接收区显示接收到的主控程序发送的原始数据包,以字节形式显示;数据响应区则发送对应的响应数据包,也是以字节形式。利用此可视化模型设计的软件界面,使用方便,动态效果好,仿真模块的开关状态、温度数据、数据收发状态以及传输的数据均一目了然。与实物模块相比,不需要物理连线,也不需要信号发生器与万用表来产生信号和测量状态与数据,对于通信协议,也不需翻阅手册。3.2通信协议的设计相同类型(或厂家)的模块一般采用相同的前导字符,EOT是一个特殊的ASCII字符(0x04),常被用做控制字符,这里的仿真模块全部采用EOT作为前导字符。计算机所连接的I/O模块比较多,CPU为了与连接的设备相互沟通,必须给设备设置一个编号,从而使CPU可以通过每个设备独一无二的编号与不同的设备进行沟通,这个设备编号就是地址,用ADD表示,地址占用一个字节。功能码主要包括读功能码(用RD表示)和写功能码(用WD表示)。RD用字符“R”(0x52)表示,WD用字符“W”(0x57)表示。BCC为数据块校验码,一般有Xor、Add、CRC、CheckSum几种。Xor与Add分别是异或与累加和,占一个字节的长度;CRC与CheckSum分别是循环冗余校验码与TCP/IP协议簇中所使用的累加求补校验码,分别占两个字节。这里的仿真模块提供4种数据块校验方式,根据程序设置进行选择。不少模块以回车CR(0x0d)作为结尾标志EM(End Message),而TCP/IP协议簇(如HTTP,POP3等)较多地采用CRLF(0x0d0a)作为结尾标志,这里的仿真模块也提供这两种结尾标志,根据程序设置进行选择。协议举例。读取仿真模块状态的命令协议如图2所示,其中,ADD的范围为1至255,可由程序进行设置,这样,一台主控设备可以连接多达255个虚拟模块。BCC和EM的种类也可以根据需要由程序进行设置。3.3RS-232/RJ-45协议转换器该协议转换器的主要功能是用软件转换器来替代硬件转换器,实现串口数据与网口数据的直接转发,不涉及到协议的变换。串口只要进行常规的设置,与所连接设备的串口参数一致。由于主控机与嵌入式模块之间一般采用串口进行连接,另外,数据采集模块也大部分采用串口,因而,通过该协议转换器,可以将此类串口设备连接到Internet,进行远程处理。AIM模块与该协议转换器配合,可以转换为一个开关量输入的网络传感器。 3.4虚拟串口的使用除了跟内置的Modem通信,一般地,进行串行通信的调试都需要RS-232连接线。参考文献2提供了虚拟串口驱动程序,模拟实际的RS-232接口,可以在没有物理RS-232接口和电缆的情况下,进行串行通信的调试,并且,还可以模拟硬件引脚信号的变化。4教学模式的具体实现重视教材建设和教学方法的研究,在教学过程中重视由实践而激发学生对相关理论的兴趣,再用提高了的理论水平来指导新的实验和实践活动。传统的教学模式在实践环节上的缺乏与不足也与今天社会人才市场急功近利的需求远远不能相适应。长期以来,我们培养的学生存在着“什么都学过,却什么都不会”的尴尬局面,专业教育和教材与市场需求严重脱节。事实上,学生就业难并不是就业市场不需要人才,其根源还是教学的现状所致3。本文采用“趣味实用程序的演示+知识点+趣味实用程序的模仿+综合训练+学术论文”的教学模式,在讲解新的课程的时候,首先演示程序,例如,用主控程序对仿真数字I/O模块进行监控,让学生观察输入开关量的变化,可以导致输出开关量的变化,并可以看到指示灯的亮与灭,听到电铃的响与停,通过实物激发学生的兴趣,为学生树立一个目标:要实现该系统,需要掌握哪些技术?从而引出本课程中涉及的主要相关技术。4.1C语言和汇编语言的应用C语言是许多高校为计算机专业学生设置的第一门计算机程序设计语言。学习一门语言,不是学习其语法,而是要学习利用该语言去解决问题的方法,从而培养相关的能力。通信是计算机监控系统的关键技术,为了确保数据传输的可靠性,制订了通信协议,引入了校验码与结尾码,如果收到的数据,其头字节、校验码或结尾码错误,一般不进一步处理,而是直接丢弃该数据。可以利用C语言设计异或校验码的生成程序,即对给定的一批字节,计算其异或校验码;对于含异或校验码的一批字节,编写子程序检查是否正确。同理,可以编写其它校验码处理程序。在此基础之上,进一步讲解在一个C语言项目中集成子程序的方法。如果学生掌握了这些方法,就基本掌握了用C语言开发受控机软件的80%以上的技术。汇编语言是符号化了的面向机器的语言,比较枯燥。可以用汇编语言来生成校验码与检查数据是否正确,通过调试,让学生明确各个寄存器的作用。在字节处理方面,可以用0表示开关打开,1表示开关闭合,在置位和复位某位时,不能影响其它位的值。4.2计算机接口技术的应用在计算机接口中讲解“串行通信技术”时,首先演示一个“支持来电显示的多账号拨号器” 网络和分布式计算关键词:分布式计算;中间件技术;P2P技术 摘要:分布式计算研究主要集中在分布式操作系统和分布式计算环境研究两个方面。但随着Internet技术的飞速发展,分布式计算的研究热点也从以分布式操作系统为中心的传统模式转换到以网络计算平台为中心的实用分布式技术,并取得了较大的成功。 Net&Distributed Computing Cui Lisheng (Computer Application&Technology College,Information Engineering College, Chengdu 610059,China) Abstract:Distributed computing research focuses on distributed operating systems and distributed computing environments two aspects. But with the rapid development of Internet technology,the research focus on distributed computing to distributed operating system from the traditional model center switch to a network-centric utility computing platform distributed technology, and achieved considerable success. Keywords:Distributed computing,Middleware technology,P2P technology 一、分布式计算技术的工作原理 要想实现分布式计算,首先就要满足三方面的条件: (一)计算机之间需要能彼此通信 (二)需要有实施的规则(例如,决定谁第一个通过,第二个做什么,如果某事件失败会发生什么情况等) (三)计算机之间需要能够彼此寻找 只有满足了这三点,分布式计算才有可能实现。 二、分布式计算技术 (一)中间件技术 中间件是基础软件,是分布式系统中介于应用层和网络层的一个功能层次,它能够屏蔽操作系统(或网络协议)的差异,实现分布式异构系统之间的互操作。分布式应用软件借助这种软件在不同的技术之间共享资源。中间件位于客户机服务器的操作系统之上,管理计算资源和网络通信。它扩展了C/S结构,形成了一个包括客户端、中间件和服务器的多层结构。基于中间件的分布式计算技术以中间件为桥梁,通过把数据转移到计算之处的计算方式,把网络系统的所有组件集成为一个连贯的可操作的异构系统,从而达到网络“透明”的目的。 (二)网格技术 网格计算是通过Internet把分散在各处的硬件、软件、信息资源连结成为一个巨大的整体,从而使得人们能够利用地理上分散于各处的资源,完成各种大规模的、复杂的计算和数据处理的任务。网格计算无疑是分布式计算技术通向计算时代的一个非常重要的里程碑.网格的体系结构是有效进行网格计算的重要基础,到目前为止比较重要的网格体系结构有两个: 1.是以Globus项目为代表的五层沙漏结构,它是一个以协议为中心的框架。 2.是与Web服务相融合的开放网格服务结构OGSA(Open Grid Services Architecture),它与Web服务一样都是以服务为中心。但是,所有的网格系统都有这样一个基本的、公共的体系结构: (1)网格资源层:它是构成网格系统的硬件基础。包括Internet各种计算资源,这些计算资源通过网络设备连接起来。 (2)网格中间件层:它是一系列工具和协议软件。其功能是屏蔽资源层中计算资源的分布、异构特性,向网格应用层提供透明、一致的使用接口。 (3)网格应用层:它是用户需求的具体体现。在网格操作系统的支持下,提供系统能接受的语言、Web服务接口、二次开发环境和工具,并可配置支持工程应用、数据库访问的软件等。 (三)移动Agent技术 目前还没有一个关于移动Agent的确切定义,我们一般认为移动Agent是一类能在自己控制之下从一台计算机移动到另一台计算机的自治程序,它们能为分布式应用提供方便的、高效的执行框架。移动Agent是一类特殊的软件Agent,可以看成是软件Agent技术与分布式计算技术相结合的产物,它除了具有软件Agent的基本特性自治性、响应性、主动性和推理性外,还具有移动性。即它可以在网络上从一台主机自主地移动到另一台主机,代表用户完成指定的任务。由于移动Agent可以在异构的软、硬件网络环境中自由移动,因此这种新的计算模式能有效地降低分布式计算中的网络负载、提高通信效率、动态适应变化的网络环境,并具有很好的安全性和容错能力。但目前,所有的移动Agent系统还都很不成熟,存在着各种各样的缺陷。所以,我们可以把目前的众多Agent系统看成是实验室系统,它们离真正实用的产品还有很大的距离。 (四)P2P技术 P2P系统由若干互联协作的计算机构成,是Internet上实施分布式计算的新模式。它把C/S与B/S系统中的角色一体化,引导网络计算模式从集中式向分布式偏移,也就是说网络应用的核心从中央服务器向网络边缘的终端设备扩散,通过服务器与服务器、服务器与PC机、PC机与PC机、PC机与WAP手机等两者之间的直接交换而达成计算机资源与信息共享.此外一个P2P系统至少应具有如下特征之一: 1.系统依存于边缘化(非中央式服务器)设备的主动协作,每个成员直接从其他成员而不是从服务器的参与中受益。 2.系统中成员同时扮演服务器与客户端的角色。 3.系统应用的用户能够意识到彼此的存在,构成一个虚拟或实际的群体。P2P技术已发展为一种重要的分布式计算技术,典型代表就是Napster。 (五)Web Service技术 Web Service技术是对Web进行扩展,为相互间连接的软件提供服务。Web Service技术是一种分布式应用程序,它可以通过编程并使用标准的Internet协议,像HTTP和XML,将功能展示在互联网和网内部。Web Service结合了以组件为基础的开发模式以及Web的出色性能,一方面,Web Service和组件一样,具有黑匣子的功能,可以在不关心功能如何实现的情况下重用;同时,与传统的组件技术不同,Web Service可以把不同平台开发的不同类型的功能块集成在一起,提供相互之间的互操作。我们也可以认为Web Service技术是以Internet为载体,通过将紧密连接的、高效的n层技术与面向消息、松散联接的Web概念相结合来实现的。Web服务是一种构建在简单对象访问协议(SOAP)之上的分布式应用程序,其实质是由XML通过HTTP协议来调度的远过程调用实现Web服务的体系结构。 参考文献: 1Middleware white paper.International Systems Group.Inc,1997,2 2都志辉,陈渝,刘鹏.网格计算M.北京:清华大学出版社,2002 3Foster I,Kesselman C,Nick J,et al.Grid Services for Distributed System IntegrationJ.Computer,2002,35,6:37-46 4Tbai T,Lam H Q.NET框架精髓M.王敏之.北京:电力出版社,2001 5胡道元.计算机网络(高级)M.北京:清华大学出版社,1999 6王柏,王红熳,邹华.分布计算环境M.北京:北京邮电大学出版社,2000    摘要:本文首先明确了指针的相关概念,提出了在教学中改变指针引入时间的观点,然后结合示例对指针学习中的难点、疑点等问题由浅入深,进行了较详细地论述。关键词本文来自:计算机毕业网 :C语言;指针;指针变量类型;数组;引用指针是C语言中的一个重要概念,具有功能强大,使用灵活等特点,掌握指针的应用,可以使程序简洁、紧凑、高效。但是指针概念相对来说又具有复杂、抽象的缺点,初学者会经常运用出错,感到困惑。根据多年的C语言和数据结构教学经验,笔者总结出了指针循序渐进教学法。1明确概念很多学生感觉指针难学并对指针恐惧,主要是其对指针学习中的很多概念理解不透,因此,讲解指针时一定要循序渐进明确以下几个概念。1) 地址内存区的每一个字节都有一个固定编号,这个编号称为地址,程序要运行首先需在内存中为各种变量分配相应的空间,各种变量名称对应的是系统根据变量数据类型为变量分配的内存空间的首地址,在程序中一般是通过变量名来对内存单元进行存取操作。在讲解时可以让学生练习如下例子了解变量的地址:int a;printf(“%u”,&a);注意:地址要以无符号整数输出。2) 指针指针就是地址,这一点一定要对学生反复强调。一个变量的地址就是该变量的指针,所以指针就是地址。3) 指针变量存放指针的变量称为指针变量,指针变量首先也是一个变量,因此也有自己的内存空间,指针变量所占空间大小由编译器决定,在16位的系统中指针值都是一个16位的整数;在32位的系统中,指针值都是一个32位的整数。可以通过例子使学生认识指针变量占用空间大小以及指针变量内存地址等,从而形象了解指针变量,如:int *p;printf(“%d,%u”,sizeof(p),&p)4) 指针变量类型指针变量作为变量也有自己的类型,它的类型根据所指向的数据的类型不同而不同,如整型指针变量int *p,浮点型指针变量float *q,p,q为变量的名称,而它们的类型分别为int *和float *。指针变量类型不同,同样的运算形式得到的结果也会不同,如p的值为6000,q的值为6060,则执行p=p+1,q=q+1后,p所指向的地址为内存6002,q所指向的地址为内存6064。注意:在这里要强调指针类型加减整数运算时,跳过的步长为所指向的数据的数据类型大小;两个相同类型的指针变量之间可以进行相减以及比较等运算,但不同类型的指针变量之间不能进行运算,如将上面的指针p,q进行pq或qp等运算将得到错误提示。5) 指针变量的值指针变量的值就是指针所指向的内存单元的地址,这个地址以整数的形式存储于指针变量中。下面通过一个例子和图示将上面讲的概念具体化。void main() int a=13,*p1,*p2;float b,*q;p1=&a;q=&b;p2=(int near *)7000;*p2=120;printf(n%d,sizeof(p1);printf(np1=%u,p1+1=%u,q=%u,q+1=%u,p2=%u,p1,p1+1,q,q+1,p2);printf(n&a=%u,&p1=%u,&p2=%u,&q=%u,&a,&p1,&p2,&q) ;printf(na=%d,*p1=%d,*p2=%d,a,*p1,*p2);运行结果如下:2p1=65524,p1+1=65526,q=65516,q+1=65520,p2=7000&a=65524,&p1=65522,&p2=65520,&q=65514a=13,*p1=13,*p2=120分析上面的例子可以看出,指针变量p1本身的内存地址为65522,p1的值为变量a的地址65524,p1所指内存空间中存放了一个整数13,如图1所示。图1在程序中p2直接指向了一个内存单元7000,并且对此单元赋值为120,注意这里p2赋值的方式,虽然p2里面存放的地址值是以整数值形式存在,但是不能将一个整数直接赋值给指针变量,要根据指针变量的类型将整数值转化为相应的地址值,这里p2为整型指针变量,所以强制类型转化为(int near *)。需要提醒的是C语言指针的功能非常强大,可以对特定内存直接读写,因此破坏性也会很大,如果操作不当,可能会产生严重后果,所以,一般不提倡直接给指针赋值。6) 与引用的区别在C+中出现了引用的概念,引用并不产生变量的副本,它只是变量的另外一个名称,与引用的对象共同使用一个内存空间。引用在一定程度上可以达到指针的效果,尤其在引用作为函数参数时,但是二者有着本质的区别:1) 在函数内定义引用时必须初始化,而指针定义时不必初始化;2) 引用不能为空,既不能引用不存在的东西,而指针可以为空(NULL);3) 在函数内一旦一个引用被作为某个变量的引用,则不能再作为另一个变量的引用,而指针可以指向任何一个相应类型的变量。具体区别可以通过下面一个示例进行讲解:voidref(int &c)/c与实参共用一个内存空间 printf(n&c=%u,c=%d,&c,c);c=c+1;void main() int a=13,*p,b=20;int &m=a;p=&a; printf(n&a=%u,p=%u,&m=%u,&p=%u,&a,p,&m,&p);printf(na=%d,*p=%d,m=%d,a,*p,m);m=b;/只是将b的值赋给m,m仍然与a共用一个空间,因此,相当于改变了a的值p=&b;/p指向b所处内存空间printf(n&b=%u,p=%u,&m=%u,&p=%u,&b,p,&m,&p);printf(na=%d,*p=%d,m=%d,a,*p,m);ref(a);printf(n a=%d,a);/a的值改变了运行结果如下:&a=65524,p=65524,&m=65524,&p=65522a=13,*p=13,m=13&b=65520,p=65520,&m=65524,&p=65522a=20,*p=20,m=20&c=65524,c=20a=212指针概念的引入时间C语言的讲解首先是从变量开始,变量离不开地址,也就离不开指针,因此,指针的学习在刚接触C语言时便已经开始了,但是,很多教材都将指针单独作为一章放到后期讲解。在实际教学中由于教学课时的限制,当讲解到指针时学时已经剩余不多了,学生往往学习的不深入,造成后续课程学习中经常出现理解困难等情况。鉴于这种情形,本人建议打破教材章节限制,在讲解变量以及输入输出语句部分便引入指针的内容。如在讲语句scanf(“%d”,&a)功能时,要强调&a是取出变量a的地址,并用printf打印出变量a的地址,由此引

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论