数字化教学中家长与学校互动平台的设计与实现
姓名:段竹申请学位级别:硕士专业:计算机软件与理论指导教师:冯宏伟
20040501
摘要二十一世纪是知识经济的世纪,是网络化的世纪,我国教育的发展迎来了新的机遇和挑战。通过采纳高效的计算机技术、先进的网络技术和丰富的应用软件,并且结合教育信息化的理念,数字化教学逐渐向传统教学中渗透,而家长与学校的交流也是数字化教学过程中的一个重要环节,基于这样的背景,我们设计和开发了数字化教学中家长与学校互动平台。浏览器/N务器结构实现了“瘦”客户端,使得整个系统的维护量很少,而且系统减少了向数据库服务器发送SQL请求,使系统性能更佳。另外,这种结构能够实现更为细致的授权定义,从而增强整体系统的安全性。这种结构也体现了分布式应用系统的含义,分布式应用系统结构把系统不同的运作部分分布到独立的机器中,使整个应用系统的延展性大为提升,已成为众多厂家争相采用的新型体系结构。本文对浏览器/服务器结构和以前的网络计算模型进行了分析比较,阐述了浏览器/N务器结构的工作原理及其特点,说明了平台所选用结构的合理性和优越性。另外,本文对开发家长与学校互动平台所采用的ASP.NET技术、ADO.NET数据访问技术、c撑、组件技术以及XML技术等都进行了详细论述,说明平台所采用技术的先进性、优越性和适用性。本平台实现了信息浏览与查询、网上讨论、留言等多种功能,并且给管理员提供了基于角色的平台管理功能,在平台的吸引力和亲和力等方面也做了很多工作,对于家长和学校相互交流的一些特殊要求给予了充分考虑。本平台提高了家长与学校相互交流的效率,是一个基于互联网的、功能完善的、扩展性好的、安全可靠的、实用性强的家长与学校之间相互交流的平台。关键词:互动平台,浏览器/N务器结构,COM,COM+,ASP.NET,XMLAbstractThetwenty—firstcenturyisthecenturyofknowledgeeconomyandnetwork,Theeducationinourcountrymeetsnewchancesandchallenges.Integratedthetheoryofeducationinformationize,E-teachingisgraduallypenetratingtotraditionaleducationbyusingeffectivecomputertechnique,advancednetworkskillandabundantallapplicationsoftware.AndthecommunicationimportantcomponentofE・teaching.Basedbetweenparentsandschoolisonthebackground,theinteractiveplatformbetweenparentsandschoolisdesignedanddeveloped.The‘'thin'’clientoftheB/Ss缸1lcnlremakesmuchlesssystemmaintenanceandreducestheSQLrequirestodatabaseserver.Sothesystemstructureiscapableofperformancereachestothebest.Furthermore,themoreparticularSOasmakingauthorizationanddefinitiontoenhancethesystemsecurity.TheB/Sembodiesthedefinitionofdistributedapplicationsystem.Thedistributedapplicationsystemstructureputtsdifferentrunningpartstoindependencemachineresultingreatincreaseofthesystemductility.Somanyenterprisesstrivetoadoptthenovelstructure.oftheB/SinthisandcomparisontooldnetworkrationalityandsuperiorityThedisciplines,characteristicscomputationmodelsofthestructureonaredeeplyanalyzedthesis.Thethedevelopedplatformisalsodepicted.AndASENET,ADO.NET,C#.componentpossessandXMLarediscussedindetails.Sothetechniquesintheworkapplicability.onadvantages,superioritiesandThefollowingfunctionsareimplementedtheplatform,informationbrowseandretrieve,onlinedebate,messageandrolesbasedplatformmanagementforadministrator.Manyworksarefocusedonplatform’Sattractionandappetency.Simultaneously,atolotofconsiderationsaregiventosomespecialdemandwithrespectthecommunicationbetweenparentsandsch001.Anyway,thisplatformincreasesIthecommunicationefficiency.AnditisanIntemetbasedplatformwithperfectfunctions,strongexpansibilityKeywords:interactiveandpracticabilityandreliablesecurity.platform,B/S,COM,COM+,ASP.NET,XML独创性声明本人声明所呈交的学位论文是本人在导师指导下进行的研究工作及取得的研究成果。据我所知,除了文中特别加以标注和致谢的地方外,论文中不包含其他人已经发表或撰写过的研究成果,也不包含为获得酉j竖太堂或其他教育机构的学位或证书而使用过的材料。与我一同工作的同志对本研究所做的任何贡献均已在论文中作了明确的说明并表示谢意。学位论文作者签名:题笪签字日期:继年互月旦日引言二十一世纪是知识经济的世纪,是网络化的世纪,我国教育的发展迎来了新的机遇和挑战。积极应用现代教育技术,全面推进教育改革和实施素质教育,培养具有创新精神和实践能力的高素质人才,已成为现代教育发展的共识。通过采纳高效的计算机技术、先进的网络技术和丰富的应用软件,并且结合教育信息化的理念,传统的教学正向以学生为主体的、交互式的、协作式的和探索性的现代教育转换,学生作为整个教学过程的主体,如何充分地发挥学生在学习过程中的能动性,是构建整个数字化教学的关键;家长作为这个主体的社会老师,如何更准确、及时、方便地了解到自己子女在校的学习情况,从而更好地配合老师为学生创造一个更有利于个人发展的空间,也是数字化教学过程中的一个重要环节。随着信息技术的发展,教育信息网、其它教育网站的逐步发展、并通过光纤等高速网络环境实现了学校与社会、学校与家庭等的联结,从而形成了一个全社会的终身学习环境。数字化教学的实现目标之一,就是在现代化教学模式的装备下,为家长与学校相互交流提供方便的平台,家长可以通过互联网随时登录家长与学校互动平台,了解子女的详细情况,学校的教师和学生也可以通过这个互动平台和家长进行交流,达到相互之间及时沟通的目的。现在已经有许多成熟的数字化教学软件产品,但是通过仔细的查看与分析这些数字化教学软件产品,我们发现这些软件产品中对于家长与学校互动的内容涉及很少。作为一个孩子的父母,迫切地希望了解孩子在校的学习情况、心理健康、在校生活情况等。可是,在如今的经济飞速发展的时代里,家长己没有太多的时间专门到学校去了解孩子的情况,而且传统意义上的家访、学校统一组织家长会等沟通形式,已经不能适应新型教学的发展,如果学校能借助信息技术,开展与家长之间的信息互通,就可以增强家长与学校之间的信息透明度,促进现代化的教育体制更加完善。家长与学校互动平台就是一个实现在网络环境下、家长与学校之间相互沟通的完善的软件平台。家长与学校互动平台专门关注了家长这个角色的需求,弥补了现有的数字化教学软件中对于家长与学校互动的内容涉及很少的不足,使得家.t.长借助信息技术与学校进行信息互通,及时地了解子女在校情况,实现了家长、教师和学生三方相互沟通,并且可以使得家长参与到校外的自主教育活动中,从而使家庭教育达到一定的高度,提高教育质量,共同培养孩子。同时,学校也将从中获益。本平台结合教育信息化理念,利用浏览器/服务器结构、ASP.NET技术、ADO.NET数据访问技术、C#、组件技术和XML技术实现了信息浏览与查询、网上讨论、留言等多种功能,并且给管理员提供了基于角色的平台管理功能,因此是一个设计统一规范的、功能完善的、涵盖面广的、安全可靠的、实用性强的家长与学校之间相互交流的平台。本论文共分为七个部分:引言:主要介绍研究背景。第一章,绪论。介绍了国内外教育信息化和教育手段现代化的现状、数字化教学中家长与学校互动平台的特点以及主要工作和关键技术。第二章,浏览器/服务器结构与分布式系统。介绍了网络计算模型的发展,浏览器/服务器结构的特点和分布式系统,从而阐明本平台所选用结构的合理性和优越性。第三章,平台开发所采用的关键技术。对开发平台所采用的Microsoft.NET、COM/DCOM/COM+技术和XML技术进行了详细介绍,说明平台开发所采用的技术的先进性、优越性和适用性。第四章,家长与学校互动平台的分析与设计。从建站主导思想、可行性分析、系统需求分析、平台结构设计、主要功能的设计、数据库设计和平台的安全性设计方面详细介绍了平台的分析与设计过程。第五章,家长与学校互动平台的实现。介绍了本平台在开发过程中所采用的关键技术和本平台的主要功能的具体实现。第六章,总结与展望。总结了本平台的研究与设计实现中所做的工作,并提出了今后可以继续开展的研究工作。第一章绪论自20世纪中叶计算机诞生以来,计算机技术就以罕见的速度迅速发展和普及,渗透到人类生活的各个角落。自20世纪90年代以来,国际教育界出现了以信息技术(IT)的广泛应用为特征的发展趋向,国内学者称之为教育信息化[1】现象。教育技术作为教育深化改革的突破口和制高点已逐渐成为人们的共识,并且与素质教育、教育信息化、创新人才培养、促进终身教育体系的建立等重大问题紧密相关。现代科学技术的发展,己经成为现代教育发展的重要驱动力。现代教育技术学在电子技术、传播技术和信息技术等现代科学技术的推动和影响下,已成为正在堀起的现代教育科学的一个重要分支。从技术上看,教育信息化的基本特点【21是数字化、网络化、智能化和多媒体化。数字化的学习环境就是指利用多媒体技术、网络技术,将学校的主要信息资源数字化,并实现数字化的信息管理方式和沟通传播方式,从而形成高度信息化的人才培养环境。利用多媒体网络促进新型教学方式的实现,鼓励以学习为中心的教学模式。教师将从传统的知识传授者转变为学生学习的导航者、学习活动的主持者。各门课程的学习更多地围绕着高水平的闯题讨论而展开,与有关的项目和课题结合起来,学生可以利用各种网络资源库搜索自己需要的信息,进行研究性学习,解决各种问题,完成一定的项目,同时利用互联网与其他学习者进行广泛的合作探索和讨论交流。教师也可以利用互联网将学校以外的信息资源和智力资源引迸到教学中。建立满足高水平的学生和教师之间的互动需要,促进主动式、协作式、研究型的学习,从而形成开放的、高效的教学模式,更好地培养学生的信息素养以及解决问题的能力和创新能力。建立既能满足学生和教师互动需要,又能适应学生自主的、交互的、协同式的学习,并且具有研究型教学功能的网络教育支撑平台和网站。自从互联网兴起以来,美国非常重视互联网在学校的应用,他们要把所有的教室都接入互联网,为学生学习提供一对一的解决方案,即更加关注学生的个性和成长过程,关注学生与教师的沟通,关注学校与家长的沟通,这是传统手段难以解决的。1.1国内外教育信息化和教育手段现代化的现状现代计算机和信息技术的高速发展在客观上帝动了教育信息化和教育手段现代化的进程。特别是Internet业务的普及,构筑和运行高性能、低价格的远程教育系统在技术上和经济上成为可能。到目前为止,已初步形成了以计算机多媒体技术和网络技术为核心的远程教育系统的雏形。目前,世界各国对教育的发展给予了前所未有的关注,都试图在未来的信息社会中让教育处于一个优势的位置,从而走在社会发展的前列,为此许多国家都把信息技术应用于教育,作为民族发展的重要推动力【31。1.政府立法,增加投入,把信息教育列入大中小学正式课程,抢占国际教育化新的制高点。我国为教育信息化和教学手段现代化的发展提出了明确的任务:(1)大力提高教育技术手段的现代化水平和教育信息化程度。(2)国家支持建设以中国教育科研网和卫星视频系统为基础的现代远程教育网络。(3)充分利用现有资源和各种音像手段,继续搞好多样化的电化教育和计算机辅助教学。(4)在高中阶段的学校和有条件的初中、小学普及计算机操作和信息技术教育。(5)使教育科研网络进入全部高等学校和主要中等职业学校,逐步进入中小学。(6)采取有效措施,大力开发教育教学软件。(7)运用现代远程教育网络为社会成员提供终身学习的机会,为农村和边远地区提供适合当地需要的教育。所有这些措施都将对中国教育带来深刻的影响。美国总统克林顿曾经在国情咨文中指出,2000美国必须实施100%与国际互联网连通,并建议国会通过立法执行使美国从小学到大学都实行“人、机、路、网”成片的唯一国家,克林顿的这一行动旨在为美国教育界抢占国际教育新的制高点做准备。法国曾制定三年教育信息化发展方案,重点放在教育信息化大发展对相应信●息教育师资的培训上,重点倾向于应用多媒体教学和微机操作水平的提高,提高现有信息设备的使用效率。日本教育课程审议会发表的题为“关于教育课程基本走向”咨询报告书中明确了信息教育课程的运作细则。首先在小学、初中、高中各个阶段的所有学科都要使用微机进行教学。小学在“综合学习时间”课上要适当地运用计算机等信息手段,初中要把现行的“信息基础”选修课改为必修课。芬兰政府拟定了信息社会发展战略,把“全体公民掌握和使用信息技术的能力”列为五大方针之一,旨在“使每一芬兰国民掌握信息社会的基本技能”。教育当局规定,从1995年开始,受过九年义务教育的学生必须达到使用计算机和上网的技能标准。2.教育信息、软件资源开发和建设始终是教育信息化和教学手段现代化发展的重点。中国已经着手实施“现代远程教育工程”,形成开放式教育网络,构建终身学习体系。教育部1998年12月制定,国务院1999年1月批转的“面向2l世纪教育振兴行动计划”明确指出要:(1)实施“现代远程教育工程”,有效地发挥现有教育资源的优势,是在我国教育资源短缺的条件下办好教育的战略措施,要作为重要的基础设施加大建设力度。(2)以现有的中国教育科研网(CERNET)示范网和卫星视频传输系统为基础,进一步扩大中国教育科研网的传输容量和联网规模。(3)继续发挥卫星电视教育在现代远程教育中的作用,改造现有广播电视教育传输网络,建设中央站,并与中国教育科研网进行高速连接,进行部分远程办学点的联网改造。2000年,争取使全国教育电视节目办好,重点满足边远、海岛、深山、林牧等地区的教育需求。(4)开发高质量教育软件,重点建设全国远程教育资源库和若干个教育软件开发生产基地。德国的教育信息开发把眼光投向了全方位的全民开发模式,不仅针对学校而且面向家庭和社会。德国的方法是不仅使学生应用、操作和收集教育信息水平得到提高,而且重点放在创新和预测教育信息的能力上,旨在培养对信息资源的主动创新和教学软件的开发上,这一点显示了德国教育信息资源开发、利用和预测的特色。发展中的突尼斯要求全国的科研单位、大中小学和图书馆一律上因特网。第一步全国图书馆联网,做到教育信息资源的整体开发和盘活,为发展中国家走上信息化发展之路开创一种新的运作模式。此外,成立全国儿童信息中心、各省份中心,统领全国小学生的教育信息资源开发教育,做到从小掀起的信息化教育和开发意识的新生代行动战略,在发展中国家是很有见地的。再有马来西亚建立“多媒体超级走廊”,使教育信息化达到国际水平。以上这些信息可以看出当代各国重视教育信息化进程的资源开发和创新能力的国际化大趋势。3.在师资教育信息化培训和相应教育手段现代化装备方面实行政策倾斜,在经费和投资力度上实行优先保证的方案。我国这些年加大了对教育信息化的实施的投入。“校校通”工程,在教育部的统一部署下,于2000年底开始启动,目前已在全国中小学校展开,特别在东部经济发达地区已经取得了很好的效果,如上海、江苏等地基本实现了“校校通”。同时加强师资教育信息化的培训。英国政府在实施“全国上网学习计划”时重点放在“为全国教师提供机会,以更新他们的信息和通信技术技能”上。英国政府对于整个基础教育信息化的发展是逐年增加投资,扩大信息受益面,确保信息时代在有利于所有公民方面起主要作用。在美国,网络学习现已普及全社会,内容十分丰富,呈现多元化之趋向,但从发展源头来看,还是从重视中小学网络学习的信息化教育运作开始的。针对实施美国教育行动计划.美国曾经投入巨资,旨在使每一位美国国民都能用MIT(现代信息技术)进行终身学习。具体而言,先从中小学教师信息化的应用培训和掌握人机教学本领开始。为此,规定教师首先需要教育信息化的条款占有十分重要的地位,并列举了教师能够掌握现代计算机技术、网络技术和远程教育教学技能标准,从而使政府投入的信息硬件设备发挥最佳效益,使中小学生迅速地在高水平教师的指导下学会网络学习。日本前首相桥本龙太郎曾经指出进一步加强对师范教育在校生和学校现任教师信息化培训l及对学生指导能力的培养,并为此开设“教育信息化方法与技术”的教师课程,在教师培训阶段设立“信息设备操作”的实用课程,并经列入培训体制的计算机考核范畴。1.2数字化教学中家长与学校互动平台的特点随着教育信息化和教育手段现代化的发展,现在的数字化教学发展很快,但是现在的数字化教学多数还是注重学生这个主体。家长作为学生这个主体的社会老师,如何更准确、及时、方便地了解到自己子女在校的情况,从而更好地配合老师为学生创造一个更有利于个人发展的空间,也应该是数字化教学过程中的一个重要环节。基于这个思想,我们开发了数字化教学中家长与学校互动平台。本平台的设计和开发都有其自身的特点:1.设计理念上的新颖性专门注重了家长这个角色的需求,实现了家长、教师和学生三方的相互交流,这是以往在数字化教学中很少专门关注的部分,是本平台在设计理念上的特色。2.人性化的设计在设计的过程中不仅从实际调查、实际需求出发,而且加入了人性化的设计,从教育心里学的角度结合实际需求来充分考虑家长与学校之间相互交流的要求和进行功能设计。3。通用性平台及一些功能模块具有一定的通用性,适合各类中小学使用。4.可扩展性本平台的设计支持组件化的开发方式,这使得平台具有极好的可扩展性。5.交互性通过多种渠道实现家长、教师和学生之间的相互交流。6.开放性一个互动平台应该是开放的,它的开放不仅是时间和空间上的开放,更重要的是有一定的交流自由度。例如在学校论坛中用户可以自由发表主题,显示发表主题的用户的身份,依据发表主题者的身份查看相关主题,实现有选择性的主题回复与交流等。但是开放不等于放开,平台有专门的管理员对其进行全面维护。1.3主要工作和关键技术下面描述平台开发所傲的主要工作和所采用的关键技术。・主要工作:1.充分理解浏览器/N务器结构和分布式系统的原理,利用ASP.NET技术、ADO.NET数据访问技术、c拌、组件技术和XML技术,结合自己的理解和灵活运用,实现了一个基于Web的家长与学校之间相互交流的平台。2.本平台实现了信息浏览与查询、网上讨论、留言等多种功能,并且为管理员提供了基于角色的信息管理功能。3.平台采用用户身份认证、授权控制、监视跟踪以及系统备份和故障恢复等技术,保证了平台的安全。4.平台在构思设计、提高吸引力和亲和力等方面都做了大量的工作,使得平台界面友好、层次清晰、操作简便、实用性强。・关键技术:1.平台采用了浏览器/N务器结构和分布式系统。浏览器/服务器结构在经济性、可维护性、可伸缩性、强壮性、软件重用及可剪裁性、兼容性、异构性、安全性、独立性和稳定性等方面都具有自身的特点。而且浏览器/N务器结构体现了分布式应用系统的含义,分布式应用系统结构把系统不同的运作部分分布到独立的机器中,使整个应用系统的延展性大为提升。2.平台的开发采用了ASP.NET技术。它本身在编译的代码、支持的语言、开发人员环境、服务器控件、浏览器独立性和用户界面从业务逻辑中的分离等方面都具有新的特性。它的这些新特性适合用于本平台的开发。3.平台采用了ADO.NET数据访问技术。它是以.NETFramework为基础,专门为.NET平台上的数据存取操作而建立的全新的数据库存取模型。它具有离线存取数据、使用XML文件交换数据、新的数据浏览方式、采用DataSet对象显示数据和程序化接口等特点。4.平台采用了COM、COM+技术。COM具有语言无关性、进程透明性和可重用性等特点,而COM+为程序开发人员使用COM提供了方便的操作环境,使得在分布式环境中使用COM技术变得简单易行而且十分有效,从而提高了编程效率,而且增强了系统的执行性能与效率。5.平台的开发采用了现在流行的XML技术,利用它的可扩展、内容与显示分开、自描述能力强、结构化和形式化、比SGML更容易存取、平台独立和开放等这些特点来开发一些模块。第二章浏览器int务器结构与分布式系统本文所叙述的数字化教学中家长与学校互动平台采用的是浏览器/服务器结构和分布式系统。在本章中首先阐述网络计算模型的发展以及浏览器/N务器结构的原理和特点,从而阐明本平台所选用结构的合理性和优越性。然后对分布式系统的原理作以介绍。2.1网络计算模型的发展随着计算机技术和网络技术的飞速发展,计算机软件的复杂程序在不断地增加,系统结构在软件设计和开发过程中所起的作用越来越重要。软件采用何种体系结构在软件的开发过程中起着关键作用,它不仅影响到系统设计和开发的进度,还直接影响到系统的后续发展潜力,甚至会决定系统的成败。2.1.1客户机/服务器结构出现以前的模型网络计算经历了从基于宿主机的计算模型到客户机/.N务器计算模型的演变。在集中式计算技术时代广泛使用的大型机/d,型机计算模型是通过一台物理上与宿主机相连接的非智能终端来实现宿主机上的应用程序。在多用户环境中,宿主机应用程序既负责与用户的交互,又负责对数据的管理;宿主机上的应用程序一般也分为与用户交互的前端和管理数据的后端,即数据库管理系统(DBMS)。集中式的系统使用户能共享贵重的硬件设备,如磁盘机、打印机和调制解调器等。但随着用户的增多,对宿主机能力的要求很高,而且开发者必须为每个新的应用重新设计同样的数据管理部件141。80年代以后,集中式结构逐渐被以PC为主的微机网络所取代。个人计算机和工作站的采用,永远改变了协作计算模型,从而导致了分散的个人计算模型的产生。一方面,由于大型机系统固有的缺陷,如缺乏灵活性,无法适应信息量急剧增长的需求,并为整个企业提供全面的解决方案等等。另一方面,由于微处理器的日新月异,其强大的处理能力和低廉的价格使微机网络迅速发展,已不仅仅是简单的个人系统,这便形成了计算机界的向下规模化(Downsizing)。其主要.9.优点是用户可以选择适合自己需要的工作站、操作系统和应用程序:PC的应用程序非常丰富,且易于开发;工作站上的数据是属于个人自治的信息集合。网络/文件服务器计算模型的产生用以解决PC和工作站的数据和外部设备共享问题。在一个局域网中共享数据,需要将文件存放在文件服务器上,所有用户都通过这个存储数据文件的中央节点访问数据文件。这个节点也是局域网(LAN)中共享外部设备的中枢。但网络/文件服务器计算模型的内在设计,使得它无法像大型机那样对多用户请求、共享数据的应用提供足够充分的服务。网络/文件服务器计算模型不提供多用户应用要求的数据并发性,当某一用户封锁一个文件便阻止了其他用户共享该文件;如果LAN中许多工作站请求和发送很多文件,网络很快就达到信息传送的饱和状态,造成瓶颈,降低整个网络的性能。2.1.2传统客户机/it务器计算模型分析以PC机为主体的文件服务器并不能满足分布式计算的需求,而客户机/服务器技术正是一种分布式计算模式,它集中了大中型系统及文件服务器的优点,并且具有良好的系统开放性和可扩展性,即寻找一种适当规模化(Rightsizing)。客户机/服务器计算模式定义了台式机如何和服务器相连,以实现数据和应用的共享,并利用台式机的处理能力将数据和应用分布到多个处理机上。这种模式当时被用于工作组和部门的资源共享。在客户机/服务器结构中通常是由客户端的机器执行应用程序,然后连接到后端的数据库服务器中存取应用系统需要的资料。图2.1说明了一般客户机/服务器的结构:CLi∞t客户机图2.1客户机朋&务器结构示意图客户机/服务器系统有三个主要部件:数据库服务器、客户端应用程序和网络通信软件。数据库服务器负责有效地管理系统的资源,其任务集中于:数据库安全性的要求;数据库访问并发性的控制;数据库前端的客户应用程序的全局数据完整性规则;数据库的备份与恢复。客户端应用程序的主要任务是:提供用户与数据库交互的界面;向数据库服务器提交用户请求并接受来自数据库服务器的信息;利用客户应用程序对存在于客户端的数据执行应用逻辑要求。网络通信软件的主要作用是,完成数据库服务器和客户端应用程序之间的数据传输。客户机/N务器系统比文件服务器系统能提供更高的性能,因为客户端和服务器端将应用的处理要求分开,同时又共同实现其处理要求,对客户端程序的请求实现“分布式应用处理”。服务器为多个客户端应用程序管理数据,而客户端程序发送、请求和分析从服务器接受的数据,这是一种“胖客户机(FatClient)”、“瘦服务器(ThinServer)”的网络计算模式。在一个客户机IN务器应用中,客户端应用程序是针对一个小的、特定的数据集,如对一个表的行来进行操作,而不是像文件服务器那样针对整个文件进行;对某一条记录进行封锁,而不是对整个文件进行封锁,因此保证了系统的并发性,并使网络上传输的数据量减到最小,从而改善了系统的性能。客户机/服务器模型的优点主要在于系统的客户端应用程序和服务器部件分别运行在不同的计算机上,系统中每台服务器都可以适合各部件的要求,这对于硬件和软件的变化显示出极大的适应性和灵活性,而且易于对系统进行扩充和缩小。在客户机/服务器模型中,系统中的功能部件充分隔离,客户端应用程序的开发集中于数据的显示和分析,而数据库服务器的开发则集中于数据的管理,不必在每一个新的应用开发中都要对一个数据库进行编码。将大的应用处理任务分布到许多通用网络连接的低成本计算机上,从而极大地降低了费用。在数年前客户机朋匣务器结构兴起之后,许多系统便使用这种结构来设计。随着客户机/服务器结构技术的成熟,使用这种结构的应用系统也运行的非常的平顺。由于客户机/月艮务器结构很适合一般的管理信息系统(MIS),只要应用系统的客户端数目在200个用户之内并且是在同一个区域中,那么客户机/N务器结构在执行MIS时便已经足够了。客户机/服务器结构虽然能够平顺地运行一般的MIS系统,但是这种结构本身包含了一些问题。客户机/服务器结构的问题在于它常把应用系统的企业逻辑都编写在客户端的应用程序之中,因此当应用系统需要改变时,所有的客户端的应用程序都必须改变,这对于MIS系统的维护来说成本实在太高了。虽然有一些企业把系统逻辑改写在数据库之中,但是这样的机构有更大的问题,因为如此一来不但应用系统都绑死在特定的数据库之中,而且许多应用逻辑的程序代码并不适合在数据库中执行,因为使用大量计算的程序代码会严重的拖累数据库的执行效率。总的来说,两层C/S结构的应用具有以下的局限性:1.它是单一服务器且以局域网为中心的,所以难以扩展至大型企业广域网或Intemet:软、硬件的组合及集成能力有限:难以管理大量的客户机。2.C/S结构的系统一般都是非开放的,这使得开发难度大,通用性、可移植性差,代码不易重用。客户端软件和服务器端软件只能工作在特定的硬件平台和操作系统环境下,开发、维护成本高。3.服务器端的数据库必须同每一个活动的客户保持连接,这些连接消耗了大量的服务器资源,其结果是随着客户数目的增加,性能不断下降。4.两层模式下的安全管理不适用于非局域网环境,多用户、多数据库的连接存在死锁和系统崩溃的潜在可能。由于业务处理逻辑驻留在客户端,所以在这种基于用户授权方式的安全管理下,一旦用户拥有了某项权限就有可能绕过客户端的应用逻辑直接操作数据。5.客户端用户界面风格不统一,使用繁杂、枯燥,不利于推广使用,用户对系统的掌握需要一个过程,当系统升级或使用新系统时,用户必须从头开始学习。6.C/S结构往往无法采用新技术,因此限制了扩展性,无法包容已有的系统。7.随着应用变得越来越复杂和数据交换量不断增长,客户机端控制了大量的信息,而数据需要在客户机与服务器之间不断交流,使网络系统变得十分紧张,日益增多的客户连接数和系统用于管理、协调所有客户连接的开销也耗费了服务器大量的CPU和内存资源。2.1.3浏览器/Ill务器结构为了解决两层结构应用软件中存在的f.3题,人们提出了三层结构。三层结构表现为B/S结构(Browser/Server)即浏览器/服务器结构,是目前流行的网络软件系统结构,它正逐渐取代C/S结构,成为网络软件开发的首选。在三层结构应用软件中,整个系统分为三个组成部分:客户机、应用服务器和数据库服务器。客户机上只需要安装应用程序,它负责处理与用户的交互和与应用服务器的交互。应用服务器负责处理应用逻辑,具体的说就是接受客户机方面应用程序的请求,然后根据应用逻辑将这个请求转化为数据库请求后与数据库服务器交互,并将与数据库服务器交互的结果传送给客户机方的应用程序。数据库服务器软件根据应用服务器发送的请求进行数据操作,并将操作结果传送给应用服务器。三层结构应用软件的模型如图2.2所示:圈2.2三层结构不惹图三层结构应用软件中的特点是用户界面与应用逻辑位于不同的平台上,并且应用逻辑被所有用户共享。由于用户界面与应用逻辑位于不同的平台上,所以系统必须提供用户界面与应用逻辑之间的连接,它们之间的通讯协议是由系统自定义的。这个协议必须定义正确的语法、语义以及同步规则,以保证传递数据的正确并且能够从错误中恢复过来。.13.从应用功能上,可以将三层的B/S结构划分为表示层、功能层和数据层,如上图2.2所示。表示层是客户机上的用户接口部分,它负担着用户与应用间的对话功能。它用于检查用户从键盘等输入的数据,显示应用输出的数据。为使用户能直观的进行操作,一般要使用图形用户接口(GUI),该接口操作简单,易学易用;功能层相当于应用的本体,它是将具体的业务处理逻辑编入程序中;数据层就是DBMS,负责对数据库的读写,它必须能迅速的执行大量数据的更新和检索。现在的主流还是关系型数据库管理系统(RDBMS),因此,一般从功能层传送到数据层的要求大都使用SQL语言。2.2浏览器/服务器结构的特点与传统的结构相比较,B/S结构有其自身的特点。2.2.1浏览器/服务器结构与客户机/服务器结构的E匕较在传统的两层客户机/服务器结构中,开发工作主要集中在客户方面,客户方面软件不但要完成用户交互和数据显示工作,而且还要完成对应用逻辑的处理,即使用户界面与应用逻辑位于同一个平台上。这样就带来了两个突出的问题,即系统的可伸缩性较差和安装维护较困难。由于在一个系统中并不是所有用户要求都相同,因此他们要求程序的功能也不尽相同。使用两层结构应用软件时,开发人员提供给所有用户的程序都是相同的,除非开发人员不厌其烦地根据不同用户的需求将大的软件裁剪成不同的小软件分发给用户。在基于两层客户机/N务器结构的系统开发完成后,整个系统的安装也非常复杂。在每一台客户机上不但要安装应用程序,而且还必须安装相应的数据库连接程序,还要完成大量的系统配置工作。如果系统有大量用户,并且用户是分布的和流动的,例如广域网环境下的应用系统,那么整个系统的安装将非常困难。在系统进行修改后,所有客户机上的应用软件都会受到影响。应用逻辑被所有用户共享是两层结构应用软件与三层结构应用软件之间的最大区别。中间层即应用服务器是整个系统的核心,应用必须具有处理系统应用而提供事物处理、安全控制以及为满足不同数量的客户机的请求而进行性能调整.14.的能力。应用服务器软件中可以根据处理逻辑的不同被划分为不同的模块,从而使客户机方的应用程序在需要某种应用服务时只与应用服务器上处理这个应用逻辑的模块通信,并且一个模块能够同时响应多个客户机方面应用程序的请求。使用三层结构应用软件开发系统,它使整个系统被划分为不同的逻辑块,层次非常清晰:它使“肥”客户机变成“瘦”客户机:它使开发和管理工作向服务器方转移,使得分布数据处理成为可能:它使管理和维护变的相对简单。另外引进三层结构体系,客户机便可省去与数据库系统直接互动的麻烦。客户机直接调用服务器上的应用逻辑,应用逻辑则代表客户机对数据库进行存取。这样就可减少向服务器发出SQL查询和更新要求,使性能比两层结构更好。此外,由于客户机不会直接连接数据库系统,而服务器能够实现更细致的授权定义,因此,三层结构能增强整体系统的安全性。2.2.2浏览器/111;务器结构的特点总的来说,浏览器/N务器结构有以下特点:1.经济性、可维护性。在客户端只有简单的浏览器,这样,在企业内部部署硬件时,客户端有时仅需要简单的网络计算机(Nc)即可,大大降低了成本。由于浏览器执行的应用程序JavaApplet或ASP是从Web服务器上下载来的,因此客户端不必安装及配置应用软件,而系统维护人员只需要在服务器端对服务器进行集中的维护。这给应用软件的维护、升级带来了巨大的好处。2.可伸缩性。分布式Web计算将复杂的业务处理分割成相互之间可交互调用和通信的若干业务功能部件或对象,并可将其分配到多个网络互联的应用服务器中实现负荷分担。这些应用服务器还具备对分布对象管理和实时调度的功能,能够迅速地将请求交给当时可用的对象,并随着请求的增多调用更多驻留在其它应用服务器上的对象,从而只要通过添加应用服务器便能满足日益增长的业务处理需要。3.强壮性。当某台应用服务器发生故障或失效时,分布式系统会自动把该●应用服务器正在处理的事务请求移交给另外一台工作正常的服务器。4.软件重用及可裁剪性。在分布式Web计算中,业务处理是由许多分布式对象交互协作完成的。将来会出现更高层次的分布式对象组件和商务对象组件,可以针对每个企业的具体情况,选用不同的分布式商务对象组件来构筑应用系统。5.兼容性。由于对象可以建成与现有系统接合的方式,所以分布式对象是可以与现有系统一道工作的。一个对象如果具有与现有系统的接口,就可以在分布式系统中调用以前的程序,同时,使用分布式对象时,不必重建传统的应用程序。这样便大大加快了系统的开发速度,也节省了大量资金。6.异构性。网络分布的业务处理对象可访问不同的后台数据库,适合多种异构数据库环境,达到分布数据开放的效果。它提供了异种机、异种网、异种应用服务的联机、联网、统一服务的最现实的开放性基础。7.安全性。B/S结构有严密的安全管理。对业务处理对象的调用和数据库的存取权限是按层设置的,即使外部入侵者突破了客户机层的安全防线,若在应用服务器层中采用基于组件的授权方式,同样可以保证系统的安全性。8。独立性。在三层结构中,各层都具有相对独立性,于是每一层都可选取各自的最优解决方案、最佳的开发语言和开发工具。9.稳定性。它具有最稳定的技术平台。在C/S时代由于以前的技术基础不是网络,因此自然地发展出众多的、互不兼容的技术平台。当进入到网络计算时代之后,由于上亿用户都联接在网上,其技术才获得了高度稳定性。它只能发展,不能被推翻,所有人只能支持和遵循它,不能控制和随意改变它。2.3分布式系统浏览器/N务器结构已经体现了分布式系统的含义,它包含应用程序服务器,为了降低重复开发应用系统的成本,以及为了增加应用系统的重复使用性,发挥面向对象分析/面向对象设计的功能,软件开发人员以一种特定的组件形态,例如Microsoft的COM/DCOM,CORBA对象,或是EnterpriseJavaBean等,封装企业的逻辑程序代码。分布式系统将三层中整个应用系统的执行分成数个不同的部分并且执行在不同的机器之中‘51,图2.3所示的是一个典型的分布式应用系●统。图2.3一个典型的分布式应用系统结构由于分布式应用系统结构把系统不同的运作部分分布到独立的机器中,所以由于分布式应用系统强调系统的稳定性、延展性以及执行效率。所以现在有同的应用程序服务器,当客户端应用程序或者是Web服务器需要使用企业对象由于分布式结构涉及到许多不同的软件元素,因此一个支持分布式应用系统的开发工具也必须能够同时地开发、制作这些不同的分布式元素。目前分布式结构使用的核心技术大致上可以分为两种不同的工业标准,第一ObjectRequestBrokerArchitecture),这两种不同的分布式技术各有不同的优缺点,基本上Microsoft制定的COM/DCOM/COM+是以Windows为中心的开发环境,而CORBA则是平台中立的分布式技术,能够执行于Windows、UNIX以及Linux等操作系统之中。本平台中采用COM、COM+分布式系统的结构种类繁多,不同需求的应用系统会使用不同的分布式结构。通常分布式应用系统都是由数个软件组合而成,这些软件分别提供不同的功能以便满足企业的需求。一般来说目前的分布式应用系统大多使用了下列的软件整个应用系统的延展性也大为提升。许多的分布式应用系统提供了容错能力以及负载平衡的能力。在具备容错能力和负载平衡的能力的分布式应用系统中,主要是在应用程序服务器部分提供多台不的服务时,可以根据目前每一台应用程序服务器的负荷以及是否可以提供服务的情形来动态决定连接到哪一台应用程序服务器之中。种是Microsoft制定的COM/DCOM/COM+,第二种则是由多个厂商共同提倡的CORBA(Common标准设计应用逻辑。来建制应用系统:●Web服务器:提供l_utemet/Intranet电子商务的服务;●应用程序服务器(MTS服务器,MIDAS服务器,CORBA服务器):执行企业对象的环境,提供核心服务。例如交易管理,安全机制,容错能力和负载平衡等功能;・MessageQueue服务器:提供应用系统消息机制,可以在应用程序服务器shutdown时仍然能够维护已送出的消息,并且提供异步的处理机制;●数据库服务器:存储应用系统资料的服务器。2.4本章小结本章通过概述网络计算模式的发展和演变,详尽介绍了各种结构的原理和特点,而且浏览器/服务器结构体现了分布式应用系统的含义,分布式应用系统结构把系统不同的运作部分分布到独立的机器中。使整个应用系统的延展性大为提升a所以浏览器/服务器结构是当今开发基于Web的平台所选用结构的趋势与主流。第三章平台开发所采用的关键技术开发家长与学校互动平台,我们必须考虑所采用技术的先进性、优越性和适用性。ASP.NET技术、ADO.NET数据访问技术和XML技术等都有其自身的特点和优点,适合用于本平台的开发。同时要实现分布式系统与面向对象的开发方法,就必须应用组件编程。本章对开发家长与学校互动平台所采用的关键技术进行了详细分析。3.1Microsoft.NET.NETt6,71计划是微软继DOS和Windows之后推出的又一个革命性的开发平台。.NET的核心内容之一就是要搭建第三代互联网平台,这个网络平台将解决网站之间的协同合作,从而最大限度地获取信息。在.NET平台上,不同网站之间通过相关的协定联系在一起,网站之间形成自动交流,协同工作,提供最全面的服务。.NET不再关注单个的网站和与Intemet连接的单个设备,而是要让所有的计算机群、相关设备和服务商协同工作,提供更加广泛和丰富的解决方案。人们将能够控制何种信息、在何时、以何种方式传送给自己。计算机群、相关设备和服务商将能够相互协作,提供更加多样的服务。消费者将能够把企业所提供的产品与服务严丝合缝地嵌入自己的电子设备构架中。.NET提供了比Windows更加友好的人机界面,在.NET网络平台上,人们可以使用键盘、鼠标、手写、语音等各种方式的人机交流模式,这样将极大的降低人们进入网络的门槛,降低用户使用的难度,为构建全真虚拟网上社会打下基础。3.1.1.NETFramework概述框架(Framework)是许多基本结构的重要组成部分,如J2EE,CORBA,EJB等技术涉及框架的概念。设计框架的主要目的就是屏蔽具体的实现过程,向用户和开发人员展现一个透明的使用和开发平台。框架中通常提供了许多实用工具以及相关服务,开发人员使用这些工具可以很容易地在此平台上进行开发。-19.Microsoft.NET框架【8捌的目的是使开发者更容易建立网络应用程序和网络服务。在Microsoft.NET框架的体系结构中,建立在操作系统最上层的服务,是管理运行代码需求的公共语言运行时(CommonLanguageRuntime,CLR),CLRtl0All可以管理用现代任何一种编程语言编写的代码的运行,并且它提供了大量的服务用于帮助简化应用程序的开发和分发,同时极大的提高了应用程序的可靠性。.NET框架还包括一套可被开发者用于任何编程语言的类库[12,13】。在此之上是许多应用程序模板,这些模板为开发网络应用和服务提供高级的组件和服务。.NET框架提取了微软组件对象模型的精华,将它们与松散耦合计算的设计思想有机地结合在一起,生成了强大的、高效的Web组件系统。从.NET框架角度看,所有组件都可以是WebService服务.而WebService也仅是一种组件。微软.NET组件系统简化了开发的操作、深入遗集成了安全性,引进了基于互联网的操作系统,并且极大的改善了应用程序的可靠性和扩展性。1.公共语言运行时公共语言运行时(CommonLanguageRunfime,CLR)即公共语言运行平台,它在组件的开发以及运行过程中,都扮演着非常重要的角色。在组件运行过程中,运行时负责管理内存分配、启动或取消线程和进程、实施安全一匪策略、同时满足当前组件对其它组件的需求。在开发阶段,运行时的自动化程度和COM开发相比大为提高,例如它可以自动执行内存管理而不需要开发人员在程序中设定。另外,公共语言运行时的映射功能减少了代码编写量,这些代码是开发人员在将业务逻辑转化成可复用的组件进行编程时所必需的。实际上每种编程语言都有自己的运行时,如VisualBasic的RBRUN,Java的MSVCRT等。.NET框架的关键作用是它提供了一个跨语言的统一编程环境,这是它和普通编程语言环境的根本区别。2.统一的编程类库.NET框架为开发人员提供了一个统一的、面向对象的、层次化的、可扩展的类库集合。目前,不同语言的开发人员使用的是各不相同的类库,如c++程序员使用MFC,VB程序员使用VBAPI集。而.NET框架统一了微软当前各种不同的框架,通过创建一个公共的跨语言编程的API集合,.NET框架实现了跨语言继承性、错误处理和调试功能。3.ASP.NETASP.NET是使用.NET框架提供的类库构建而成的,它提供了一个Web应用程序模型,该模型由一组控件和一个基本结构组成。有了它,构建Web应用程序将变得非常容易。3.1.2ASP.NET本节对ASP.NET作以介绍。1.ASP.NET概述ASP.NET[14,15]是一个用于Web开发的全新框架,它是微软公司发展的新的体系结构Microsoft.NET的一部分。ASP.NET提供了更易于编写、结构更清晰的代码.这些代码很容易进行再利用和共享。ASP.NET使用编译后的语言,从而提升性能和伸缩性。ASP.NET使用Web表单使开发更直观,利用面向对象技术促进组件的再利用。ASP.NET中还包括有页面事件、Web控件、缓冲技术以及服务器控件和对数据绑定的改进。供ASP.NET使用的库以及在Microsoft.NET框架中允许通过Web使用客户商用函数,为程序员提供了更多新的开发机会。ASP。NET利用CommonLanguageRuntime和Service框架为Web应用程序提供了一个可靠的、自动化的、可扩展的主机环境。ASP.NET也得益于CommonLanguageRuntime的Assemble,极大地简化了应用程序的部署。另外,ASP.NET提供可以简化应用程序开发的服务(如状态管理服务)以及高级编程‘1印模型(如ASPNETWebForms和ASP.NETWebServices)。2.数据绑定1171在Intemet环境下由于WebServer或Web应用所能容纳的同时连接数有限,而且受到网络带宽的限制,不间断连接在Internet环境下几乎是不可能的,因而连接的协议采用了HTl_P协议。HTTP协议对事物没有记忆能力,而且每次连接只处理一个请求便断开连接。因此在以往的Web应用程序中,各个用户要求的查询操作,每次向服务器发出查询的请求都会经过一次网络的往返过程。而在实际应用中,用户从服务器取得一些数据后,在数据不变动的情况下,很可能只是想对不同的栏目进行排序或从取回的数据中筛选部分数据来显示。如果每次操作都要通过网络和服务器通信,尤其是涉及到相对大型的查询结果集时,执行效率就比较低。所以,当用户需要上述类型的操作时,可以采用数据绑定技术来处理。运用数据绑定技术可以将两个(或多个)数据相关的对象联系起来,以便在对象之间传递数据集或其它数据对象,它提供了客户端用户对已经取到缓冲区的数据进行交互的能力,例如对不同栏目的数据重新排序或过滤数据等等。数据绑定技术维持数据源对象提供的数据与数据使用对象之间的同步关系,其中数据源对象的数据来自于数据缓冲区,而数据使用对象是在页面上显示数据的载体。数据源对象与数据库服务器可以是断开的,也可以是连接的。数据绑定技术是在服务器端处理数据绑定操作时,这样虽然在客户端页面刷新(Refresh)时会造成一次网络的往返过程,但由于数据绑定操作在服务器端处理,对客户端没有数据处理要求,因此这种技术适用于所有类型的浏览器。这种方式以一部分效率换取了通用性,因而适应性更强。ASP.NET有某些控件可以绑定到数据源,这些控件有:Repeater控件、DataList控件和DataGrid控件[18,19]。(1)Repeater控件。Repeater控件允许用户创建自定义列表以显示各种数据源的数据。与其它服务器控件(比如TextBox和ListBox)有所不同的是,Repeater控件没有默认的外观和布局。必须通过创建模板的方法为Repeater控件提供布局。因为是用户自己向控件提供布局,所以用户可以根据自己的需要为控件创建任何一种列表。可以创建的列表包括表格或网格、用逗号分隔的列表以及项目符号列表或编号列表。(2)DataList控件。DataList控件允许用户依据数据源在列表中显示数据行。显示在DataList控件中的每一行数据就是一个项目。要创建这些项目,必须至少创建一个模板即ItemTemplate。默认情况下,DataList控件中的项目显示在单独的一个垂直列中。但是,可以使用模板向控件中的各项提供自定义的布局。(3)DataOrid控件。DataGrid服务器控件是一个多列的数据绑定网格,它允许用户定义各种列的类型。这些列不仅向网格内容提供布局,而且添加选择、编辑、排序和分页数据的功能。而且DataGrid控件通过使用称为Templatecolumns的特定列提供完全自定义输出的功能。使用DataGrid控件可以指定标题行、脚注行、内容行、替换内容行的样式,也可以创建列一级的模板。3.ASP.NET的新特性:(I)编译的代码虽然传统上在每次运行页时就解释ASP页中的脚本代码,但是ASP.NET页却每当页首次被请求时就编译进.NET类中。编译的类被缓存,用于随后的页请求,这使得页的性能有了重大改进。如果对ASP.NET页的源代码做了任何的改动,ASP.NET运行时就自动探测,如果必要,就重新编译.NET类。完成这些工作甚至都不必停止WorldWideWebService。如果向文件中写入了源代码的新版本,就使用类的旧版本服务现有的正在运行的请求,而使用新版本服务随后的所有的新请求。一旦完成所有现有的请求,就清除旧版本。(2)支持的语言在ASP中,必须使用脚本语言编写代码,通常VBScript或JScript。但是在.NET平台中这些已改变了,目前可以使用c捍、VB或JScript编写编译的代码,将来还会有其它语言加入到这一行列中。事实上,VBScript不再作为--1"1独立的语言而存在,它已经集成到VB中了。(3)开发人员环境虽然通常使用VisualInterdev编写ASP页,VisualInterdev只能通过脚本调试器提供有限的开发人员调试支持,但是可以使用DeveloperEnvironment编写ASP.NET页,这就意味着ASP.NET开发人员可以访问独立应用程序开发人员可以访问的调试工具。(4)服务器控件在ASP中,如果希望显示下拉列表框,则就必须在ASP页中放入HTML代码。ASP脚本引擎不识别下拉列表框,因此用户必须很明确地在文件中放置将要传输给浏览器的HTML代码。在ASP.NET中这就不同了,因为Microsoft已经编写了大量的服务器控件,比如列表框、按钮和全规模的日历控件。这些都是基本的.NET组件,可以生成正确的HTML代码,也可以使用简单的ASP.NET标记调用这些组件。这使得用户可以集中精力处理页的业务逻辑。还有服务器端验证控件,用于用户在HTML窗体中提供的数据上执行数据验证工作,这也可以节省大量的开发时间,因为用户不必编写模板HTML或客户端脚本代码以完成这种例程性的工作。(5)浏览器独立性1201有了ASP.NET,用户就不必花费大量的时间,担忧发出请求的某种浏览器的性能问题。这是服务器控件的直接结果。当ASP.NET运行时处理控件时,它在HTTP请求头文件中自动检查发出请求的浏览器的类型,然后可以生成适合该浏览器的页。例如,它可以要求JavaScript执行新浏览器的客户端数据验证工作,而不能运行客户端脚本的旧浏览器发出了相同的请求,却返回简单的HTML,它将用户的输入返回给服务器用于数据验证。ASP.NET页开发人员不必担忧,因为所有这些工作会自动完成。(6)用户界面从业务逻辑中的分离有了ASP,.asp文件就可以包含所有的编程逻辑,这些编程逻辑可以决定向浏览器发送的数据。与编程逻辑混合在一起的是实际创建用户界碾的HTML。这使得维护代码更加困难。公认的看法是,小心地使用包括的文件和函数调用,有可能在某种程度上分离编程逻辑和HTML,但是其进程总会不太顺畅。在原则上还有可能使用COM组件从用户界面中分离出代码逻辑,但是大多数ISP都不会允许他们的用户这样做,因为那样会威胁服务器的安全。ASP.NET对于分离代码[211的这些方面却要容易得多。部分原因是由于服务器端控件。它允许用户指示所希望的控件的类型,而不必在HTML用户界面标记中明确地输入;部分原因是一种新的概念Codebehind,在其中明确指示一种可替代的文件,作为包含大多数编译代码的位置。3.1.3ADo.NETASP.NET中的ADO.NETl22,23】和ASP中的ADO相对应,但是ADO.NET比ADO有了本质上的重大改进,ADO.NET是以.NETFramework为基础,专门为.NET平台上的数据存取操作而建立的全新的数据库存取模型。ADO.NET相对于ADO的主要优点就是具有互操作性和可伸缩性更强的数据访问体系结构。ADO.NET的工作原理如图3.1所示。图3.1ADO.NET的工作原理ADO.NET比ADO有了本质上的重大改进,相对于ADO对象模型来说,ADO.NET具有全新的且更好的对象模型,该模型主要使用XML作为主要的数据传输格式,同时它使得用户对无关联数据的操作变得更加简单。ADO.NET保存数据的基本对象是DataSei[24,25]。DataSetCommand对象能够自动地在系统内部同时使用合适的连接和命令对象与数据源通信。Connection对象用来建立与数据库的链接。当链接到数据库之后,可以使用Command对象对数据库进行操作,如进行数据添加、删除、修改等操作。当处理大量数据的时候,占用大量内存会导致性能上的问题。为了解决这些问题,.NET框架包括了DataReaderl26,27]对象,而这个对象仅仅从数据库返回一个只读的、仅向前的数据流,而且当前内存中每次仅存在一条记录。DataReader接口支持各种数据源,比如关系数据和分级数据。DataReader可以适用于运行完一条命令仅需要返回一个简单的只读记录集的情况下。在两种情况下,DataReader被推荐使用:(1)客户界面利用手写代码,或是没有用到数据绑定且数据的更新是利用手写的SQL语句或是存储过程,在这种情况下;DataReader将提供有效的访问数据的方法:(2)需要查看数据库状态,但不需要实现诸如自动更新的功能。可以通过SqlDataReader对象直接操作SQLServer数据库,通过OleDbDataReader操作支持ADOManagedProvider的数据来源。ADO.NET相对于ADO而言主要有以下的特点:1.离线存取过去,数据处理主要是基于连接的,在应用程序运行的过程中,连接保持着打开状态,如果连接断开,数据就不能再存取。在ADO中,RecordSet(记录集)虽然可以提供不连接的数据访问功能,以便让多用户同时存取数据,提高执行效率。但实际上,ADO主要是为连接的访问设计的,它较适用于即时连线的数据处理。ADO.NET的DataSet(数据集)则一律采用离线豹方式来存取数据。ADO.NET以离线数据为基础,可以对本地的DataSet进行数据的添加、删除或修改,然后更新真正的数据来源。采用离线的方式存取数据所带来的好处是:第一,当进行数据改动时,针对的是本机的DataSet进行操作,因而可以减少对数据库服务器往返沟通的次数,降低网络的流量,提供了更好的可伸缩性;第二,在大多数情况下,数据库只可以维持少量的并发连接,采用离线方式减少了与数据库的活动连接数目(即减少了多个用户争用数据库服务器上有限资源的可能性),从而实现了最大程度的数据共享。2.使用XML文件交换数据如果要在不同的应用程序或组件之间传送ADO的RecordSet,必须通过COMMarshalling的机制将参数、数据包装成标准格式,即二进制格式,然后适当地进行一些数据类型转换的工作。采用RecordSet的缺点在于:第一,类型转换的过程会耗掉一些资源,而且数据类型被限制为COM标准定义的那些数据类型;第二,防火墙通常会挡掉COMMarshalling的数据包,使得网际存取更为困难。虽然可以在防火墙上开个通信端口(Port)让COMMarshalling数据包通过,但这无疑也在一定程度上降低了安全性。所以一般来说,基于安全性的考虑,不进行这样的操作。在ADO.NET中,传输数据的格式是XML(可扩展标记语言)。XML是一种简单的、与平台无关的、被广泛采用的标准。它的格式是基于文本的,所以可以直接通过防火墙,不受任何限制。对于离线或远端的数据而言,不管与使用ADO.NET程序沟通的对象是一般的应用程序还是网站的网页,ADO.NET都一致地采用XML来交换、更新数据。由于传送的数据都是XML格式的,因此采用ADO.NET的应用程序可以与其它能够理解XML文件格式的应用程序中的组件交换数据,不用担心数据类型受限与转换的问题。使用XML格式来交换数据的好处是:(1)不需要进行数据类型转换,数据类型更丰富,执行效率会比在传统的ADO上使用COMMarshalling来包装数据然后进行传输的方式要快得多。(2)数据处理的程序代码与用户接口可以更容易地分散在不同的电脑上,也可以提高大量用户的应用程序的执行效率,维护上也较为简单。(3)在应用方面,目前许多数据库厂商设计出所谓的XML数据库使用XML来保存数据,能够直接存取XML文件的数据。也有许多厂商在关联式数据库中增加对XML的支持,如SQLServer2000可以直接通过HTTP从数据库中取得数据库的数据,然后返回一份XML格式的文件;或者直接发给SQLServer2000的数据库一份XML文件来添加、修改、删除数据。因此,若这些支持XML的数据库搭配了ADO.NET来进行存取,势必让数据的存取与交换更为单纯,也变得更容易操作。3.新的数据浏览方式ADO循序读取RecordSet中的数据,数据一行一行移动:而ADO.NET采用一种新的数据浏览方式,可以通过对象之问的关联性来存取相关的数据,4.采用DataSet对象显示数据ADO使用RecordSet对象来显示数据,看起来类似单一的Table(数据表);而ADO.NET使用DataSet对象来显示数据。DataSet是一个或多个表的集合,每一个表一般都对应于数据库中的表或视图。DataSet组成了一个非连接的数据库数据视图,可以保存多了独立的表并维护有关表之间关系的信息,因此它可以保存比RecordSet丰富得多的数据结构。5.程序化接口过去使用ADO开发Web应用程序,在Script的开发环境撰写程序时,ADO只使用Variant数据类型:而在ADO.NET中,所有数据存取相关对象的变量都有特定的类型。3.1.4C}}概述C#E28,291是微软公司特别为使用下一代W曲服务框架和ASP.NET而设计的一种新语言。它是一种安全的、现代的、简单的、由C和c++衍生出来的面向对象的编程语言,它牢牢根植于C和C++语言之上,C和C++的使用者很快就可以熟悉它。它将C++强大的功能与VisualBasic的效率以及Java的简洁组合在一起。c#是源于C++的新语言,但是其设计本意却是类似于VisualBasic的方式支持RapidApplicationDevelopment(快速应用程序开发,RAD)。VisualC#使得我们可以使用表单设计器快速方便地设计WindOWS和网页应用程序;VisualStudio负责编写大部分代码,比如为事件处理程序实例化控件和编写定义。在效率、Internet和再利用代码是主要考虑因素的环境中,c撑比任何其它现有的语言都更适合。3.2COM/DCOM/COM+技术剖析本节对系统所采用的组件技术从COM的原理、中间的分布式COM、到实用的COM+技术这几方面,进行详细的分析[J0,3q。3.2.1组件编程体系COM[32,331(ComponemObjectiveModule)即组件对象模型,是微软制定的用来构造二进制兼容软件组件的规范,也是微软公司推出的使软件生产更加符合人类行为的最成功的对象模型。传统编程方式的局限性表现得很明显,现在它往往成了“软件危机”的代名词。在传统的编程体系下,整个程序是一个“铁板一块”的结构,程序功能模块间的联系是紧凑的、多点的、时间相关的。紧凑的联系是指应用程序在经过编译并连接形成二进制可执行代码之后,程序的各部分就牢固地连接在一起,相互间形成了一种固定不变的调用约定。多点联系指的是,应用程序形成以后将与程序有关的规划、算法、编码以及编译等各种不同类型的信息都包含了进去并相互关联。时间相关性指的是程序由于不能提供很好的更新机制而需要处理程序的版本问题,从而使程序带有明显的时间特征。相对于传统编程体系“铁板一块”的结构和功能模块闻联系的紧凑性、多点性和时间相关性,组件编程体系要建立的是一种分块的程序结构和模块间松散型的单点的时间无关的联系。组件编程体系表现的是一种简单的“分”的基本思路。几乎所有的问题因为“分”的实现而有了改进的机会,变得灵活起来。“分”的思想基于对程序应用中的一种这样的认识:所有程序都是有许许多多的模块构成的,并且对于不同的程序来说,程序的许多局部功能都是相同的,例如:与学生相关的许多程序中都要用到对学生基本信息表的查询。所以不同的程序可以共享某些局部的功能模块。程序模块分的越小,共享复用的机会就越大。除了共享以外,对于一个具体程序及其升级版雨言,真正需要改变的也只是一些局部的内容,如果能够把程序的这些部分分离出来单独实现,就能很容易地实现程序的更新。这些从应用程序中经过分离形成的基本模块就是通常所说的组件。将程序分解成一些组件结构后,传统应用程序遇到的诸多问题就集中到了如何对程序进行共享和局部处理等问题上了。对于具体如何对应用程序进行分解,这需要根据程序本身的具体情况而定,但有一些基本的原则:首先,程序的功能和重用程度存在这样的一种关系,即程序的功能越单一越基本,那么复用的程度和可靠性就越高,相反复用的程度就越低。所以,可以考虑将程序尽可能的分解成一些功能单一的具有原子性的基本模块。这是从模块的复杂程度来考虑组件的划分的。其次,对于具体的应用程序而言,需要定制的主要是一些与程序应用特定领域的业务规则密切相关的处理部分,所以,一般涉及到具体业务规则的程序功能要单独形成组件模块。另外,程序中越通用的部分往往是那些针对于计算机基础设施而进行的专业性操作,这样的功能应该形成组件并可以集成到系统中去,以便应用程序能方便地共享这些功能。这样做不仅有利于降低编程实现的难度,而且有利于实现操作的标准化,从而可以提高应用程序的质量和性能。组件编程体系是为了适应用户对软件的功能和数量日益增长的需要而建立起来的一种新型的程序设计模式。它从根本上摒弃了传统程序结构中的许多有缺陷的方面,同时吸收了各种先进的现代程序设计技术和方法,是目前在符合人类行为方面最为成功的一种程序设计模型。3.2.2COM原理与特性本节对COM的原理与特性进行详细论述。3.2.2.1CoM原理COM为组件软件和应用软件之间进行通信提供了统一的标准,它为组件程序提供了一个面向对象的活动环境【341。COM标准包括规范和实现两大部分,规范部分定义了组件和软件之间通信的机制,这些规范不依赖于任何特定的语言和操作系统,只要按照该规范,任何语言都可使用;COM标准的实现部分是COM库,COM库为COM规范的具体实现提供了一些核心服务。1.标准——对象与接口COM是面向对象的软件模型,COM对象是某个类(class)的一个实例,丽类则是一组相关的数据和功能组合在一起的一个定义。使对象的应用(或另一个对象)成为客户。接口是一组逻辑上相关的函数集合,其函数也被称为接口成员函数。在COM模型中,对象本身对于客户来说是不可见的,客户请求服务时,只能通过接口进行。每一个接口都由一个128位的全局唯一标识(GloballyUniqueIdentifier,GUID)来标识。客户通过GUID获得接口的指针,客户就可以调用其相应的成员函数。一般来说,接口是不变的,只要客户期望的接口在组件对象中还存在,它就可阻继续使用该接口提供的服务。对象可以支持多个接口,因此对组件对象的升级可以通过增加接口的方法实现,这样得到的新接口可以不影响老接口的使用。新客户可以使用新增加的接口,老客户可以在不更新代码的情况下继续使用老的接口。与接口类似,每个对象也用一个128位的GUID来标识,称为CLSID(ClasslIdentifier,类标识符或类ID),用CLSID标识对象可以保证(概率意义上)在全球范围内的唯一性。只要系统中含有这类COM对象的信息,并包括COM对象所在的模块文件(DLL或EXE文件)以及COM对象在代码中的入口点(实际的过程要复杂的多),客户程序就可以由CLSID来创建COM对象。在成功的创建对象后,得到的是一个指向对象某个接口的指针。2.实现—coM库COM本身除了规范之外,也有实现的部分,其中包括一些核心的系统级代码,也正是这部分核心代码,才使得对象和客户之间可通过接口在二进制代码级进行交互。在MicrosoftWindows操作系统环境下,这些库以.dll文件的形式存在,其中包括以下内容:(1)提供了少量的API函数实现客户和服务器端COM应用的创建过程。在客户端,主要是一些创建函数;提供一些对对象的访问支持。(2)COM通过注册表查找本地服务器即EXE程序,以及程序名与CLSID的转换等。(3)提供了一种标准的内存控制方法,使应用程序控制进程中内存的分配。COM库一般不在应用程序层实现,而在操作系统层次上实现,因此一个操作系统只有一个COM库实现。而且,COM库的实现必须依赖于具体的系统平台,尤其是系统底层的一些标准。COM库可以保证所有的组件按照统一的方式进行交互操作,它使我们在编写COM应用程序时,可以不用编写为进行COM通信而必须的大量基础代码,而是直接利用COM库提供的API进行编写,从而大大加快了开发的速度。COM库的另一个好处是,它往往实现了更多的特性,我们可以充分享受这些特性,例如,现在COM库的版本都支持远程组件,即分布式COM,我们不用编写任何网络或者RPC(RemoteProcedureCall,远程过程调用)的代码,就可以实现在网络上进行程序之间的通信。3.2.2.2COM特性COM在语言无关性、进程透明性和可重用性方面有自身的特性。1.语言无关性COM规范的定义不依赖于特定的语言,因此,编写组件对象所使用的语言与编写客户程序使用的语言可以不同,只要它们都能够生成符合COM规范的可执行代码即可。COM标准与面向对象的编程(Object--OrientedProgramming,OOP)语言不同,它所采用的是一种二进制代码级的标准,而不是源代码级的标准。OOP语言可以被利用于创建COM组件,因此这两种技术实际上是互相补充的。COM对象把OOP语言中的对象封装起来,并提供一致的接口,使得它可以被各种不同的语言所使用。2.进程透明性COM所提供的服务组件对象在实现时有两种进程模型:进程内对象和进程外对象。如果是进程内对象,则它在客户进程空间中运行;如果是进程外对象,则它运行在同一机器上的另一个进程空间或者在远程机器的迸程空间中。我们通常也按下面的方式对组件对象服务程序进行分区。进程内服务程序:服务程序被加载到客户的进程空间,在Windows环境下,通常服务程序的代码以动态链接库(DLL)的形式实现。本地服务程序:服务程序运行在与客户不同的机器上,它既可以是一个DLL模块,也可以是一个EXE文件。如果远程服务程序是以DLL形式实现的话,则远程机器会创建一个代理进程。虽然COM对象有不同的进程模型,但这种区别对于客户程序来说是透明的,因此客户程序在使用组件对象时可以不管这种区别的存在,只要遵守COM规范即可。然而,在实现COM对象时,还是应该慎重选择进程模型。进程内模型的优点是效率高,但组件不稳定会引起客户进程崩溃,因此组件可能会危及客户;进程外模型的优点是稳定性好,组件进程不会危及客户程序,一个组件进程可以为多个客户进程提供服务,但进程外组件开销大,而且调用效率相对低一些。实现这种进程透明性的关键在于COM库,COM库负责组件程序的定位,管理组件对象的创建与客户之间的通信。当客户创建组件对象时,COM库负责装入组件模块或者启动组件进程,如果客户指定在远程机器上创建一个代理对象(proxyobject),客户程序直接与代理对象进程交互。因此,客户程序可以不管组件对象的进程模型,即使组件的进程模型发生了变化,客户程序也不需要重新编译。3.可重用性可重用性是任何对象模型的实现目标,尤其对于大型的软件系统,可重用性非常重要。COM用两种机制实现对象的重用。我们假定有两个COM对象,对象1希望能重用对象2的功能。我们把对象1称为外部对象,对象2称为内部对象。(1)包容方式。对象1包含了对象2,当对象l需要用到对象2的功能时,它可以简单地把实现交给对象2来完成,虽然对象1和对象2支持同样的接口,但对象l在实现接口时实际上调用了对象2的实现。如图3.2(a)所示。_COM象1电喵(b)o嘶中聚合模爨侧(a)o呵中包窖模型示例图3.2COM使用客户机/服务器模型的几种灵活用法(2)聚合方式。对象1只需要简单地把对象2的接口也暴露给客户程序,而客户程序并不知道内部对象2的存在。如图3.2(b)所示。COM接口本身也是COM的一个特性,它为COM组件与客户之间进行通信提供了保障,通过引用计数(referencecounting)的方法控制了组件对象的生存期,为多个用户共享同一个组件对象提供了有效的控制手段。3.2。3DCOM技术DCOMi”l即分布式COM,是在分布式系统中应用COM,也就是把COM从一台计算机上,延伸到另外一台计算机上。考虑图3.3所示的COM模型,客户应用程序创建一个对象,并获得一个进程内代理。代理通过一个通道与服务器端的占位程序相连。这可能是COM的主要优点:客户和服务器都不用知道或特别关心对方是否位于同一台计算机上。最初服务器位于同一台计算机中的另一个进程内,而通道将进程连接起来,这时很容易想到将服务器移到另一台计算机中,并使用通道将两台计算机连接起来。图3.3进程间通信模型两个计算机程序在网络上通信的问题并不新鲜。事实上,开放软件基金会(OpenSoftwareFoundation,OSF)制定了网络上进程间通讯的标准软件服务。ComputingEnvironment,Procedure这些标准服务统称为分布式计算环境(DistributedDCE)。其中一个服务是“远程过程调用”(RemoteCall,P.PC),使一台机器上的进程可以调用另一机器上的进程中的过程或函数,正是R.PC使COM变成DCOM。需要和另一个进程中的组件通信的客户机并不能直接访问这个组件,而必须使用由操作系统提供的进程间通讯的某种形式。COM以一种完全透明的方式来实现这种通讯:它截取客户机的调用,并把调用转发到另一个进程中的组件。图3.4显示了COM/DCOM运行库如何提供客户机和组件之间的连接。图3.4COM客户机和组件之间的调用过程当客户机和组件位于不同机器上时,DCOM只是把本地进程间通信替换成网络协议。这种改变对客户机和组件都是透明的,它们不知道连接发生了变化。下面的图3.5显示了DCOM的调用原理。图3.5DCOM的调用原理DCOM的主要特点如下:・所有应用都被看作是对象。・每一个对象必须在本地机上注册一个唯一的标识,以便定位该对象。・支持多线程服务。・现存的客户机和服务器应用可以在主机上注册和配置,从而分布到网络上。DCOM与在单个计算机上运行COM相比,跨越网络运行COM会带来额外的成本,如性能降低,增加了管理负担,需要重新考虑编程体系结构等。要以合理的时间和成本编写分布式应用程序,应该使用高级抽象,即COM+。它是一神高级抽象,一种提供分布式应用程序中常见问题的解决方案的工具包。如果需要编写分布式应用程序,应该使用COM+。3.2.4COM+技术●1.从COM/DCOM到MTS再到COM+MTS的发布是应用程序开发策略不断演化过程中的一个重要里程碑。它允许中间层的业务对象运行并控制分布式事务。MTS不仅是一个事务监视器,它还为中间层的COM组件提供了崭新的运行环境。MTS比早先的COM增加了许多关键性的基础支持,如分布式事务、集成化安全、线程池,并改善了对象的管理和配置。这样MTS具备了通常只有高档的事务处理系统才具有的健壮性和完整性。COM是个开放的组件标准,它有很强的扩展能力,从COM到DCOM,再到MTS的发展过程也充分说明了这~点。但是,MTS的许多优越性还没有为广大的Windows程序员所认识。MTS针对多层分布式应用的特点,在COM的基础上添加了许多功能和特性,使COM成为一个完整的组件体系结构。由于历史原因,COM和MTS相互之间并不很融洽,难以形成统一的整体。随着Windows2000的发布,COM和MTS的优秀思想都被集成到新的运行环境COM+中了。COM+把COM和MTS有效地统一起来,形成一个全新的、功能强大的组件体系结构,并且把二者的各种优势以更为简捷的方式带给Windows2000开发者和用户。图3.6显示了三者的关系以及各自提供的服务。图3。6COM/MTS/COM+提供的服务一览●COM+不仅继承了COM和MTS的许多特性,同时也新增了一些服务,比如负载平衡、内存数据库、事件模型、队列服务等。COM+新增的服务为COM+应用提供了很强的功能,建立在COM+基础上的应用程序可以直接利用这些服务而获得良好的企业应用特性。2.COM+系统运行机制与原理COM+136,37]也是Microsoft的“分布式网间应用程序”(DistributedInterNetApplication,DNA)的一部分。在本质上这是一个n层结构,在这种结构中,不同的服务器执行一些特定的任务。这些任务不过是一个完整的应用程序的一部分。换句话说,位于用户计算机上的单个应用程序实际上可能需要多台服务器所提供的服务。其中一台服务器可能拥有组件,这些组件中包含了请求的基本业务逻辑,而另一台服务器可能会提供对主数据存储库的访问。总的想法就是要创建一种环境,在这种环境下,用户并不关心哪一台服务器拥有它完成工作所必须的信息,而只是关心工作是否能够以最有效的方式来完成。确切的说,COM+是一个面向应用的高级的COM运行环境,它将许多面向企业应用的关于通用基础设施和通常技术的内容预先加以实现,并将它们和操作系统集成在一起【38l。这样,在分布式环境中使用COM技术就变得既简单易行,又十分有效。COM+服务功能的设计思想立足于这样的认识,即不同应用的业务逻辑不同,不同应用的企业基础设施性能却一样,所以可以将业务逻辑和企业基础设施的实现分开进行。然后,将实现了业务逻辑的COM组件包装起来,插入到COM+系统中,以便应用可以从环境中继承COM对象的控制,完成需要的服务。在简单的单机环境中,由于客户和组件对象处于同一个进程空间中,它们之间的交互是直接发生的,所以没有必要设置通信的中介机制。在客户和组件对象处于不同机器上的分布式计算环境中,客户和组件对象互相看不见,它们之间不能进行直接的控制和确认。为了保证互相之间的交互操作正常进行,必须在客户和组件对象之间建立一种有效中介机制,负责客户和组件对象之间的传输、控制和连接。同时,不同的客户和组件对象之间对传输的控制要求不一样,这也需要系统具有灵活处理各种情况的能力。COM+通过一种叫做截取控制策略实现了这样的要求。截取控制的概念是实现COM+应用技术的关键。截取控制策略的原理如下:对于客户和组件对象在不同机器上的情况,客户方具有一个代理,而组件对象所在服务器方具有一个存根。该代理连接到一个由系统提供的被称为RPC通道的对象上(也可以通过HTTP协议进行),RPC通道又连接到服务程序一方的存根。当客户和组件对象首次建立连接时,COM+系统会根据COM+应用的配置情况,在代理和R_PC通道之间以及RPC通道和存根之间,插入完成企业应用服务功能的所谓策略对象,从而形成了一条策略对象链。策略对象链的全部内容就构成了客户和组件对象间所需要的企业应用服务内容。当客户引发的调用产生时,调用请求就循着策略链向组件服务方传递,而服务方的反馈也会循着这条策略链将处理结果传回给客户。当调用在策略链上进行传递时,COM+系统将截取调用,然后进行一系列诸如安全性检验这样的处理,如果截取成功,整个调用就成功完成,否则就不允许调用继续下去。客户方的截取发生在代理和RPC通道之间,而服务程序一方的截取发生在通道和存根之间。客户方的策略对象链接方法被调用时或者该方法被调用之后被使用,服务程序一方的策略对象链在客户调用第一次到达服务程序时和它离开服务程序之前被调用。截取控制策略工作原理如图3.7所示:图3.7COM+通过策略对象实现的截取控制截取控制发生的实际过程为:(1)当客户程序调用CoCreatclnstancc函数时(VisualBasic客户可以用GetObject函数),COM+系统检查客户代码是否运行在与组件对象兼容的对象环境中。兼容在这里指数据格式与处理方式是否一致以及相互间是否值得信赖等等。(2)如果客户代码运行在与COM组件对象兼容的环境中,COM+系统就不将截取机制应用到调用过程中,而是直接创建组件的实例对象并且返回一个代理对象。(3)如果二者不兼容,CoCreateInstance函数就会自动切换到一个与组件对象兼容的环境中,然后创建组件对象并返回一个代理对象。在随后进行的针对接口方法的调用过程中,代理对象在调用过程实际发生的前后进行一些类似的处理,使方法的运行环境能够和组件对象保持一致。截取控制策略链的优点是,不仅使服务功能能够加入到COM对象并成功发生,而且使客户和组件之间具有了对服务功能进行选择的余地,用户可以根据自己的需要为COM对象配置企业特性。用户在为应用程序配置服务功能时,应该遵循适用的原则,服务功能太多就会因为多层的检查而影响程序的运行性能,服务性能太少又不能满足应用的需要的可能。3.3XML技术XMLt39,40l是一种标记语言,它是SGMLl41I(StandardGeneralizedMarkupLanguage)的一个精简子集。SGML是一种通用的文档结构描述标记语言,具有极好的扩展性,在分类和索引数据中非常有用。但是SGML过于复杂,并不适合在Web中快速简便地发布。现在广泛使用的HTML[421是SGML的一个实例。由于它不是一种元标记语言,无法描述数据内容,对结构化数据的表现能力差,所以无法满足许多Web应用扩展标记的需求。XML重新定义了SGML的一些内部值和参数,适当简化了文档类型定义,并增加了支持Interact的特殊成分,从而很好地解决了上述问题。IXML也是一种元标记语言,使用者可以利用它定义与自己的特定领域相关的标记语言,这使得它具有良好的可扩展性。XML描述的是文档的结构和意义,其自身并不涉及页面元素显示的格式,可以使用样式语言(如CSS和XSL)为文档增加格式化信息。一个基本的XML文档就是一个XML元素。一个XML元素由开始标签、结束标签以及标签之间的数据构成,它可以嵌套其它XML元素。一个结构完整的XML文档必须满足三点:有唯一的根元素;所有元素必须有结束标签;所有元素必须正确地嵌套。XML文档还必须完全遵守文档类型定义(DTD)中规定的标记符的语法规则,否则就是无效文档。3,3.1XML的特点XML兼取HTML和SGML之长,可扩展性、高度结构化和自描述性是XML的三个主要特点。概括的来说XML有以下特点:・XML是可扩展的。XML允许程序员建立属于他们自己的保存信息的标记结构。有了这个强大的特征,程序员就可以创建自己的过程语言,定制自己的数据交换格式。・XML中内容与显示分开。HTML同时含有数据和外观描述,而XML只是描述数据本身。可以根据不同的显示要求灵活地显示XML数据,CSS(层叠式样式语言)可以显示XML数据,XSL(可扩展样式语言)不但可以显示XML数据,而且可以把一种XML数据转化为另一种XML数据。・XML自描述能力强。XML文档不仅带有数据,而且带有相应的数据描述,XML格式的数据发送给客户后,客户使用应用软件在本地就可以分析和处理数据,不再需要请求服务器分析处理。・XML是结构化的和形式化的。XML的文档元素具有层次关系,可以根据元素的标签理解元素的含义,可以用于信息的存储。・XML比SGML更容易存取。因为它具有良好的结构,因此程序员可以容易地编写软件来描述XML文档。XML具有简单的原则来区分文档内容和XML标记元素。・XML是平台独立的。XML具有平台独立性。要做信息交流的各种系统只需装有XML解析器,便可解读由其它机器所传来的XML信息,进而加以利用。・XML是开放的。XML技术不属于任何私人的,没有版权之争也没有垄断技术之说,它是开放的。3.3.2DOM技术DOMt43J4】是程序访问和维护XML文档的API(ApplicationProgrammingInterface),DOM的设计目标是成为一种独立于平台和独立于语言的标准,这显然是Intemet的要求。DOM的工作组于是使用了OMG(ObjectManagementGroup,对象管理组织)的IDL(InterfaceDef'mitionLanguage,接121定义语言)来定义DOM的接口。1.DOM的基本原理xMLDOM对象提供了一个标准的方法来操作存储在xML文档中的信息,DOM应用程序接口(API)用来作为应用程序和XML文档之间的桥梁。DOM可以认为是一个标准的用于连接文档和应用程序或脚本语言结构体系。XML解析器允许用户装载和创建一个文档。收集文档的错误信息,得到和操作文档中的所有的信息和结构,并把文档保存在一个XML文件中。DOM提供给用户一个接口来装载、到达和操作并序列化XML文档。DOM提供了对存储在内存中的XML文档的一个完全的表示。提供了可以随机访问整个文档的方法。DOM允许应用程序根据XML解析器提供的逻辑结构来操作XML文档中的信息。利用MSXML所提供的接口来操作XML。实际上MSXML解析器根据XML文档生成一个DOM树结构,它能够读XML文档并根据XML文档内容创建一个节点的逻辑结构,XML文档本身被认为是一个包含了所有其它节点的节点。DOM使用户能够把文档看成是一个有结构的信息树,而不是简单的文本流。这样应用程序或者是脚本即使不知道XML的语义细节也能够方便地操作该结构。DOM包含两个关键的抽象:一个是树状的层次、另一个是用来表示文档内容和结构的节点集合。树状层次包括了所有这些节点,节点本身也可以包含其它的节点。这样的好处是对于开发人员来说,可以通过这个层次结构来找到并修改相应的某~个节点的信息。DOM把节点看成是一个通常的对象,这样就有可能创建一个脚本来装载一个文档,然后遍历所有的节点,显示感兴趣的节点的信息。节点可以有很多种具体的类型,比如元素、属性和文本都可以认为是一个节点。2.DOM的组成作为W3C的标准接口规范,DOM由三部分组成,包括:核心(core)、HTML和XML。核心部分是结构化文档比较底层对象的集合,这一部分所定义的对象已经完全可以表达出任何HTML和XML文档中的数据了。HTML接口和XML接口两部分则是专为操作具体的HTML文档和XML文档所提供的高级接口,使对这两类文件的操作更加方便。3.DOM的基本接口在DOM接口规范中,有四个基本的接口:Document,Node,NodeList以及NamedNodeMap。在这四个基本接口中,Document接口是对文档进行操作的入口,它是从Node接口继承过来的。Node接口是其它大多数接口的父类,像Document,Element,Attribute,Text,Comment等接口都是从Node接口继承过来的。NodeList接口是一个节点的集合,它包含了某个节点中的所有子节点。NamedNodeMap接口也是一个节点的集合,通过该接口,可以建立节点名和节点之间的一一映射关系,从而利用节点名可以直接访问特定的节点。下面将对这四个接口分别做一些简单的介绍。●Document接口Document接口代表了整个ⅪⅥL/HTML文档,因此,它是整棵文档树的根,提供了对文档中的数据进行访问和操作的入口。由于元素、文本节点、注释、处理指令等都不能脱离文档的上下文关系而独立存在,所以Document接口提供了创建其它节点对象的方法,通过该方法创建的节点对象都有一个ownerDocument属性,用来表明当前节点是由谁所创建的以及节点同Document之间的联系。在DOM树中,Document接口同其它接口之间的关系如图3.8所示:图3.8Document接口同其它接CI之间的关系由图3.8可以看出,Document节点是DOM树中的根节点,也是对ⅪvIL文●Node接口Node接口在整个DOM树中具有举足轻重的地位,DOM接口中有很大一部口,都是从Node继承过来的。在DOM树中,Node接口代表了树中的一个节点。的元素进行遍历的支持。●NodeList接口NodeList接口提供了对节点集合的抽象定义,它并不包含如何实现这个节点列。另外,它还出现在一些方法的返回值中,例如GetNodeByName。在DOM中,NodeList的对象是“live”的,换句话说,对文档的改变,会直接反映到相关的NodeList对象中。例如,如果通过DOM获得一个NodeList档进行操作的入口节点。通过Document节点,可以访问到文档中的其它节点,如处理指令、注释、文档类型以及XIvlL文档的根元素节点等等。另外,从上图我们还可以看出,在一棵DOM树中,Document节点可以包含多个处理指令、多个注释作为其子节点,而文档类型节点和XML文档根元素节点都是唯一的。分接口是从Node接口继承过来的,例如,Element、Attr、CDATASection等接Node接口提供了访问DOM树中元素内容与信息的途径,并给出了对DOM树中集的定义。NodeList用于表示有顺序关系的一组节点,比如某个节点的子节点序对象,该对象中包含了某个Element节点的所有子节点的集合,那么,当再通过DOM对Element节点进行操作(添加、删除、改动节点中的子节点)时,这些改变将会自动地反映到NodeList对象中,而不需DOM应用程序再做其它额外的操作。NodeList中的每个item都可以通过一个索引来访问,该索引值从0开始。●NamedNodeMap接El实现了NamedNodeMap接口的对象中包含了可以通过名字来访问的一组节点的集合。不过,NamedNodeMap并不是从NodeList继承过来的,它所包含的节点是无序的。尽管这些节点也可以通过索引来进行访问,但这只是提供了枚举NamedNodeMap中所包含节点的一种简单方法,并不表明在DOM规范中为NamedNodeMap中的节点规定了一种排列顺序。NamedNodeMap表示的是一组节点和其唯一名字的一一对应关系,这个接口主要用在属性节点的表示上。与NodeList相同,在DOM中,NamedNodeMap对象也是“live”的。3.4本章小结本章详细介绍了平台开发所采用的关键技术的原理以及这些技术的特性,从而说明了本平台开发所采用的技术是先进的和优越的,并且适用于本平台的开发。第四章家长与学校互动平台的分析与设计在本章中,我们基于前面章节的理论,对建立数字化教学中家长与学校互动平台从建站主导思想、可行性分析、系统需求分析、平台结构设计、主要功能的设计、数据库设计和平台的安全性设计等方面进行全面介绍,并描述~些具体设计思路和一些开发细节。数据库采用MicrosoftSQLServer200014s,46];数据库分Visio2000。析设计工具采用PowerDesigner9.5:绘图工具采用Microsoft4.1建站主导思想为了转变以往通过家访或学校统一组织家长会等来了解子女在校的情况的形式,我们建立了数字化教学中家长与学校互动平台,旨在使得家长通过互联网就能了解子女在校的情况。这种方式不受时间的限制,只要有闲暇时间,家长就可以通过互联网登录到家长与学校互动平台,了解子女的详细情况。作为学校也一样,教师和学生只需要通过互联网登录到家长与学校互动平台,就可以和家长进行相互交流与沟通。本平台设计采用以下基本原则:1.软件设计通用、开放考虑到不同学校对于家长与学校的相互交流既有共同点,也有不同点这一特性,在软件设计中,一方面尽量满足不同类型学校的需求,另一方面要将系统的通用性和开放性作为两个重要的因素加以考虑。提供较强的修改和扩充功能,便于用户根据自身的需要进行修改和扩充,以使该平台更加适合各类学校使用。2。设计标准、规范信息标准与规范化是整个国家教育管理信息系统建设的基础。信息不标准,就根本谈不上信息交流和资源共享。为此,在软件开发过程中必须严格按照国家和教育部颁布的相关标准和规范。同时,软件系统的设计要充分考虑系统的规范与兼容问题。做到不同软件之间能够相互兼容,配套使用。3.具有较强的办公管理和信息管理功能系统在设计中尽量做到最大限度地减轻管理人员日常管理工作量、提高工作效率、增强信息管理和信息查询功能。4.适应性强针对我国不同地区计算机应用水平差异大的状况,系统采用模块化设计。用户可以根据自己的实际情况自行组合,使系统在不同的硬件环境下都能得以应用。5.技术先进平台的设计和开发紧跟着整个计算机发展潮流,利用先进的开发技术和开发工具,使平台无论在功能设计上,还是在技术实现上,都能够处于同行业的领先地位。4.2可行性分析作为一个孩子的父母,迫切希望了解孩予的学习情况、心理健康、在校生活情况等。可是,在如今的经济飞速发展的时代里,家长已没有太多的时间专门到学校去了解孩子的情况,而且传统意义上的家访、学校统一组织家长会等沟通形式,已经不能适应新型教学的发展,所以我们建立了数字化教学中家长与学校互动平台,使得家长、教师和学生不受时间限制地通过互联网登录到家长与学校互动平台,进行相互之间的交流与沟通。这是适应当前社会发展的。同时我们了解到,现在已经有的许多成熟的数字化教学软件产品主要还是针对学校教学、学生管理等来开发的,对于家长与学校互动的内容涉及很少,而家长在数字化教学中也是一个重要角色。所以建立该平台也弥补了现有的数字化教学软件中对于家长与学校互动的内容涉及很少的不足,使得家长借助信息技术与学校进行信息互通,从而增强家长与学校之间的信息透明度,使家庭教育达到一定的高度,提高教育质量。同时,学校也将从中获益。4.3系统需求分析家长与学校互动平台的主要需求有:1.信息浏览与查看:所有用户可以浏览学校信息,查看教育新闻和教育文摘。2.家长注册:未注册家长可以通过平台进行注册。3.用户登录:家长注册后以及教师和学生信息由管理员统一录入后,家长、-46.教师和学生才可以登录互动平台。已注册的家长、教师和学生通过输入正确的帐号、口令和选择身份登录互动平台。登录后可以查看个人资料、修改个人资料、修改密码、设置安全码,安全码在密码找回时使用。4.学校论坛;家长、教师和学生可以通过学校论坛进行相互交流和讨论。5.信息查询:已注册的家长和学校的教师登录后可以进入查询系统对学生基本信息、教师基本信息、学生各科成绩、教师代课信息和家长信息进行查询;学生登录后可以进入查询系统对学生基本信息、教师基本信息、学生各科成绩、教师代课信息进行查询。6.留言:所有用户可以给学校发表留言。7.平台管理:管理员登录后进入管理界面对数据库中的数据进行添加、删除和编辑。以上需求利用家长与学校互动平台的用例图4.1描述如下:糕一教7羧。么丝兰口m目/X镯夸蓬。毖人\\图4.1家长与学校互动平台的用例图4.4平台结构设计本平台采用了浏览器/J]E务器(B/S)模型来实现同最终用户的交互。前面我们对浏览器朋艮务器结构已经做了详细介绍。在本平台中:第一层是表示层(浏览器)。在表示层中包含系统的显示逻辑,位于客户端。它的任务是由浏览器向网络上的某--N务器提出服务请求,服务器对用户身份进行验证后用HTTP协议把所需的主页传送给客户端,客户机接受传来的主页文件,并把它显示在浏览器上。第二层是功能层(具有应用程序扩展功能的服务器)。在功能层中包含系统的事务处理逻辑,位于服务器端。它的任务是接受用户的请求,进行相应的处理,如查询数据库,而后将数据处理的结果返回给服务器,再由服务器传送回客户端。第三层是数据层(数据库服务器)。在数据层中包含系统的数据处理逻辑,位于数据库服务器端。它的任务是接受服务器对数据库操作的请求,实现对数据库查询、修改和更新等功能,把运行结果返回给服务器。4.5主要功能的设计家长与学校互动平台主要功能有:信息浏览、家长注册、用户登录、管理员登录、密码找回服务、学校论坛、信息查询、留言和平台管理等。・信息浏览与查看:所有用户可以浏览学校信息,查看教育新闻和教育文摘。・家长注册:家长进入注册页面后输入相关信息进行注册。家长注册后不可直接登录,由管理员确认家长身份后,管理员把家长注册时产生的随机密码发送到家长注册的电子信箱中后,家长才可以利用这个随机密码进行登录,家长登录后可再做密码等信息的修改。・用户登录:家长、教师和学生通过输入正确的帐号、口令和选择身份登录互动平台。登录后可以查看个人资料、修改个人资料、修改密码、设置安全码,安全码在密码找回时使用。班主任登录后可以查询到自己班级的学生家长和学生所发表的论坛主题,使得班主任可以有针对性地回.48.复主题。●管理员登录:管理员进入管理员登录界面后输入正确的用户名和密码,就可以登录管理界面,对平台进行维护。●密码找回服务:家长、教师和学生可以通过输入自己设置的安全码来找回自己的密码。●学校论坛:家长、教师或学生要先成功登录互动平台,然后才可以进入学校论坛。家长、教师和学生可以通过学校论坛进行相互之间的交流和讨论。论坛可以区别发表主题的用户的身份,这样便于家长、教师和学生之间有针对性的交流。●信息查询:已注册的家长和学校的教师登录后可以进入查询系统对学生基本信息、教师基本信息、学生各科成绩、教师代课信息和家长信息进行查询;学生登录后可以进入查询系统对学生基本信息、教师基本信息、学生各科成绩、教师代课信息进行查询。・留言:所有用户可以给学校发表留言。・平台管理:采用组件技术,管理员登录后进入管理界面对数据库中的各种数据进行管理。管理员所管理的数据如下图4.2所示:平台管理学校数据管理平台数据管理论坛数据管理留言管理1r1T1r1r学校相关信息的添加、删除和编辑平台上教育新闻、教育文摘等的添加、删除和编辑;管理员的添加和删除论坛信息的删除留言信息的删除图4.2管理员所管理的数据・49-4.6数据库设计我们依据数据库的设计思想,从设计方法、进行数据划分、数据的一致性和完整性、数据库性能调整和数据类型的选择等方面来考虑设计平台的数据库。4.6.1数据库的设计思想数据库设计时从以下的几个方面予以考虑:1.设计方法一般数据库设计方法有两种,即属性主导型和实体主导型。属性主导型从归纳数据库应用的属性出发,在归并属性集合(实体)时维持属性间的函数依赖关系。实体主导型则先从寻找对数据库应用有意义的实体入手,然后通过定义属性来定义实体。一般现实世界的实体数在属性数1/10以下时,宜使用实体主导型设计方法。面向对象的数据库设计是从对象模型出发的,属于实体主导型设计。本平台的数据库采用面向对象的方法来设计。这种主导型设计方法的效果归纳如下:・数据库结构清晰,便于实现。OOP由于实现了应用模块对象对数据库对象的完全映射,数据库逻辑模型可以自然且直接地模拟现实世界的实体关系。系统用户所处的当前物理世界、系统开发者所抽象的系统外部功能,与支持系统功能的内部数据库(数据结构)一一对应,所以用户、开发者和数据库维护人员可以用一致的语言进行沟通。・数据库对象具有独立性,便于维护。除了数据库表对象与应用模块对象一一对应外,在逻辑对象模型中我们没有设计多重继承的泛化关系,所以这样得到的数据库结构基本上是由父表类和子表类构成的树型层次结构,表类间很少有继承以外的复杂关系,是一个符合局部化原则的结构,从而使数据库表数据被破坏的影响控制在局部范围且便于修复,给系统投入应用后的数据库日常维护工作带来便利。・需求变更时程序与数据库重用率高,修改少。在映射应用对象时,除关系映射规范化后可能出现一对多的表映射外,大多数应用对象与表对象是一一对应的。我们可以把规范化处理后的、由一个应用对象映射出来的多个表看成一个数据库对象。因此当部分应用需求变更时,首先,系统修改可以不涉及需求不变更的部分。其次,变更部分的修改可以基本上只限于追加或删除程序模块或追加新库、表,而基本上不必修改原有程序代码或原有数据库表的定义,从而大大减少了工作量,降低了工作难度。2,进行数据划分数据划分的主要目的是通过减小表的大小,加快表的扫描,提高性能。有垂直划分和水平划分两种方法。垂直划分根据列将一个表分为两个或多个表,把不常用的列放入另外的表中,以减少主要表的大小。水平划分则是根据日期,把现在的数据和历史的数据划分开,或者根据部门、地理位置等进行划分。3.数据的一致性和完整性为了保证数据库的一致性和完整性,设计入员往往会设计过多的表问关联,尽可能的降低数据的冗余。表间关联是一种强制性措施,建立后,对父表和子表的插入、更新、删除操作均要占用系统的开销,另外,不用[dentify属性字段作为主键与子表关联。如果数据冗余低,数据的完整性容易得到保证,但增加了表间连接查询的操作,为了提高系统的响应时间,合理的数据冗余也是必要的。另外针对比较简单的字段的规则,我们都把它放在客户端进行先期校验,然后再更新数据库。在过程中捕捉可能出现的错误。使用SQLServer本身自带的规则和约束也可以用来防止系统操作人员误输入造成数据的错误。但是,不必要的规则和约束也会占用系统的不必要的开销,而且不利于数据库的迁移。我们在设计阶段根据系统操作的类型、频度、速度、网络负载和三层负载平衡加以均衡考虑,采取了现有的这种方式。4.数据库性能调整在计算机硬件配置和网络设计确定的情况下,影响到应用系统性能的因素不外乎为数据库性能和客户端程序设计。我们采用两步法进行数据库设计:首先进行逻辑设计,而后进行物理设计。数据库逻辑设计去除了所有冗余数据,提高了数据吞吐速度,保证了数据的完整性,清楚地表达数据元素之间的关系。而对于多表之间的关联查询・(尤其是大数据表,有几十个字段)时,其性能将会降低,同时也提高了客户端程序的编程难度。因此,我们在物理设计时折中考虑,根据业务规则,确定对关联表的数据量大小、数据项的访问频度,对此类数据表频繁的关联查询采取了适当提高数据冗余的设计。s.数据类型的选择Text和Image宇段属指针型数据,主要用来存放二进制大型对象。这类数据的操作相比其它数据类型较慢,因此要避开使用。使用varchar、nvarchar等数据类型来代替char数据类型来表示关于教职工的备注等类似的信息。4.6.2互动平台数据库的设计在数据库设计阶段采用PowerDesigner9.5进行数据库的概念模型设计,自动产生SQL的数据库表,系统涉及的表主要有:家长信息表:保存学生家长的基本信息。教职工信息表:保存学校教职工的基本信息。学生信息表:保存在校学生的基本信息。学生科目成绩表:保存学生各科与各种考试的成绩。班级信息表:保存班级基本信息。科目表:保存所有课程名称。代课信息表:保存班级、科目和代课教师的对应信息。考试信息表:保存各种考试的名称。论坛主题信息表:保存已经发表的论坛主题信息。论坛主题回复信息表:保存已经发表的论坛主题的回复信息。新闻表:保存平台上教育新闻的基本信息。文章表:保存平台上教育文摘的基本信息。管理员表:保存平台管理员基本信息。数据库表的关系如图4.3所示:图4.3数据库中表的关系图4.7平台的安全性设计平台的安全性主要是从以下两个方面来考虑的:Intemet互联网的安全性,这个主要通过在服务器上安装防火墙软件来实现:Intranet内部网络安全性,主要通过在系统的设计中来实现。1.用户身份认证为了保证平台数据在存储时和网络传输时不被未经授权的用户访问或解读,利用用户帐号来标明用户身份,经系统鉴别用户的合法性后,再利用用户口令进一步核实身份。为避免不法者利用穷举法得到用户帐号和用户口令,系统强制用户帐号和用户口令的位数大于6位:为保证用户口令的安全性,在用户口令提交的过程中不采用明文形式。具体做法是:先对用户帐号、用户口令进行加密后再传送,服务器接受以后对其进行解密。这样既可以简化其复杂性,又可以保证其安全性,使客户和服务器可以在一种防窃听、防干扰或防消息伪造的方式下通信。2.授权控制经身份认证的合法用户根据自己的权限来访问平台,因此用户的授权管理机制甚为重要,其严密性将直接影响整个平台的安全性,这里从功能出发,将整个系统细分为若干个可以分配的最小权限单元,这些权限具体表现在对数据库中所涉及的数据操作的划分上。然后再运用角色的概念,结合平台各种用户的使用要求,为平台创建不同的等级,为每个等级赋予不同的权限,以此来简化权限管理工作。3.监视跟踪日志系统具有综合性数据记录功能和自动分类检索能力。完整的日志不仅要包括用户的各项操作,而且还要包括网络中数据接收的正确性、有效性以及合法性的检查结果,为日后网络安全分析提供可靠的依据。许多应用程序的日志记录只是用于事后监督,其实对日志的分析还可用于预防入侵,提高网络安全性。在本平台中,从用户登录到退出系统这段时间中所执行的操作包括:登录失败操作,对数据库的操作以及平台的功能使用等等。因此,在平台开发过程中,设计了完整的日志记录功能。另外,还可以利用现有的网络监视软件进行曰志记录和信息跟踪。4.系统备份和故障恢复系统的备份和故障恢复是实现信息系统安全运行的重要技术之一,也是确保信息系统因各种不可预测事件受到破坏时,能尽快投入再复用的重要保证。按照信息系统所受到的破坏程度,需要采取不同的恢复措施,对备份的要求也有所不同。对于平台也有着同样的备份和恢复的要求。在该平台中,定期对重要数据进行备份,可以通过专用的备份设备进行备份,当平台遭到破坏时,可以重新安装,并恢复数据,不造成有用信息的丢失。另外,系统平台选用的就是安全性较高的Windows2000Server,并且系统补丁做了最新升级,并且把系统管理员的密码设置的比较复杂,关掉了Windows2000Server中不必要的服务,使得安全性大大加强。对于IIS(InteractInformationServer),我们也给IIS5.0安装了最新的安全补丁。对于数据库服务器SQLServer,我们也及时地安装了升级补丁。对于作为Web服务器的计算机,因为它有真实的IP地址,外界可以访问到,我们也将给它安装防火墙软件,监控自己的端口,监视和抵御外来攻击。4.8本章小结本章主要介绍了构建数字化教学中家长与学校互动平台的分析与设计。平台从总体设计到每个细微之处的描述都结合了教育信息化的理念、从当前中小学的实际情况出发,力求设计一个功能完善的、扩展性好的、占用资源少的、安全可靠的、实用性强的、使用效率高的家长与学校互动平台。第五章家长与学校互动平台的实现家长学校互动平台前端采用基于MicrosoftWindows平台和IntemetExplorer浏览器,主要考虑的是它的普及性和易用性,实现该系统的主要工具包括:●开发环境:MicrosoftWindows2000Server,它不但提供了高性能的系统平台,而且它所附带的组件IIS5.0是一个功能强大的Web服务器,是一个与server完全集成的标准事务性Web服务器,使得在Web上建设和发布应用更加轻松;.NETFramework1.1,它的目的是使开发者更容易建立网络应用程序和网络服务。・开发工具:VisualStudio.NET2003,服务器端采用的脚本语言是ASP.NET,组件开发工具是c#。5.1利用数据绑定技术控制数据源中列的显示本平台采用数据绑定技术来指定数据源中想要显示的列,利用ASP.NET提供的DataGrid控件实现。DataGrid控件封装了与浏览器版本相关的HTML逻辑,把绑定到它的数据通过HTML表现出来,这种特点使得程序开发人员可以针对这个对象模型编程,无须考虑各种浏览器版本的差别和不一致性。下面通过家长信息管理来说明利用数据绑定来指定数据源中想要显示的列。在家长信息表中所有的列有:编号、家长ID、口令、姓名、性别、年龄、联系地址、电话、电子信箱、子女学号和安全码,但是只想显示家长ID、姓名、性别、电子信箱、予女学号和安全码这几列。这些列是通过BoundColumn类的实例添加到DataGrid控件的Columns集合中。BoundColumn代表DataGrid中的一个绑定到数据字段的栏,DataField代表绑定的数据表的宇段名,BindGrid函数将数据绑定到DataGrid。例如:在家长信息表管理页面AdminTableParents.aspx中显示家长的帐号这一列:●<asp。datagridid=”DataGridl”runat=“server”AutoGenerateColumns2”False”DataKeyField=”编号”PageSize=”17”AllowSorting=”True”AllowPaging=“True”CellPadding=”3”BackColor=”#F4FFF4”BorderWidth=’’lpx”BorderColor=”Black”Width=”100%”><Columns><asp:BoundColumn<HeaderStyleDataField=”家长ID”HeaderText=-”帐号”>Width=”10%”></HeaderStyle></asp:BoundColumn>’同样的方法用于显示姓名、性别、电子信箱、子女学号和安全码这些列</Columns>在家长信息表管理页面AdminTableParents.aspx所对应的AdminTableParentsaspx.CS文件中,BindGrid函数如下:privatevoidBindCrrid0{ParentsTablest=newParentsTable0:DataGridl.DataSource=st.QueryAll0:DataGridl.DataBind0:)5.2中间层组件的实现由于平台中对数据访问与操作较多,所以在平台实现中自编写了三个组件:SchoolDbCom,用于学校数据的访问与操作;BBSDbCom,用于论坛数据的访问与操作;WebDbCom,用于平台数据的访问与操作。以组件封装了对这些数据的访问与操作的功能。在本平台中通过调用自定义编写的组件来实现对数据的访问与操作。组件位于中间层。受MTS管理,通过组件与数据库建立连接。组件是在应用服务器上用c释开发并生成ActiveXDLL,并在MTS中建立软件包,导入该组件以及指定包和方法的安全级别。相应.aspx文件对应的C撑文件中对组件进行引用:usingSchoolDbCom,usingBBSDbCom,usingWebDbCom。例如,在自编写SchoolDbCom组件中定义了一个StudentsTable类:publicclassStudentsTable:SchoolDBView,其中包括了对学生信息进行浏览、添加、删除、编辑、更新等操作。那么在学生信息管理页面AdminTableStudents.aspx所对应AdminTableStudents.aspx.cs文件开头引用该组件:usingSchoolDbCom,在相应浏览、添加、删除、编辑或更新等的函数中调用这个类:StudentsTableSt=newStudentsTable0,从而可以实现对学生信息的浏览、添加、删除、编辑或更新等功能。5.3学校论坛的实现实现学校论坛主要是想为家长、教师和学生创造一个相互交流与讨论的空间。ASP.NET可以提供良好的用户界面,而且前面章节介绍了它有许多优良特性,效率也比较高,所以我们使用它开发基于Web的网上讨论系统。家长、教师和学生在网上讨论的内容都要存在数据库中,这样可以方便的对这些数据进行管理。要访问数据库,首先需要建立与数据库的连接。在ASP.NET中使用ADO.NET可以方便的实现对数据库的操作,而且前面章节里也介绍了ADO.NET有许多优于ADO的特性。学校论坛在学校数据库SchoolDB.mdb中主要有两个数据表,一个是论坛主题信息表,用来存储所有的论坛主题信息:一个是论坛主题回复信息表,用来存储所有的关于论坛主题的回复信息。自定义编写了一个BBSDbCom组件用于论坛数据的访问与操作。进入学校论坛以前,家长、教师或学生要先成功登录互动平台,然后才可以进入学校论坛。进入学校论坛后,家长、教师或学生可以分页浏览论坛中所有的主题,发起新的论坛主题或有选择性地参与某个已经存在的论坛主题的讨论。分页浏览已经存在的讨论主题时,页面显示论坛主题的标题、作者、作者的身份、回复次数、点击次数以及发表日期和时间。如果要发表新的论坛主题,点击页面上“发表新主题”的链接,进入主题发表页面,输入新的论坛主题和内容后点击“提交”即可。●如果要参与某个已经存在的论坛主题的讨论,则点击该论坛主题的标题,就可以进入这个论坛主题的单独页面,显示该论坛主题的标题。若该论坛主题已经有回复信息,那么该论坛主题的单独页面还会分页显示出该主题以往的回复信息的作者及其身份、回复的日期和时间以及回复内容。若要回复该主题,点击“回复该主题”的链接,就可进入该主题的回复页面,填写好回复的内容点击“提交”即可回复。在学校论坛中点击论坛主题的作者名就可以链接到该作者的电子邮件地址,与作者取得联系。5.4利用DOM技术实现留言功能平台的留言本供所有用户使用,功能有查看留言和填写新留言。填写新留言时用户必须填写姓名,可选择填写用户来自哪里、用户的主页、用户的E—mail地址和留言内容。互动平台利用DOM技术来获取留言信息,实现描述如下:<%DimstrSourceFile=Server.mappath(…/’)&“/school/board/List.xml”’获取XML文件的路径,这里根据虚拟目录不同而不同DimobjXMLAsnewXmlDocument0objXML.10ad(strSourceFile)’把XML文件读入内存DimobjRootsite=objXML.documentElement.selectSingleNode(”NewList”)’选取NewList节点%><%whileStarNodes>=EndNodes’从起始节点到结束节点之间读取节点数据Dimusername=objRootsite.childNodes.item(StarNodes).childNodes.item(1).IrmerText’获得用户名’同样的方法用于获得用户来自哪里、留言时间、用户的主页、用户的E.mail地址和留言内容。%>这里使用了XML的DOM来读取数据,显然objRootsite对象所对应的节点为<NewList>。objRootsite.childNodes.item(StarNodes)所对应的节点就是<list>节点。因为不只一个<list>节点,所以用了item()来识别当前节点数据,随着StarNodes的递减,<list>节点跟着往上移,一个个读取<list>节点数据。objRootsite.childNodes.item(StarNodes).childNodes.item(1).InnerTcxt所对应的节点为具体的每个节点的文本值,这里(1)所对应的就是userngH-fle用户名,因为<list>节点的予节点才是我们真正所要的。5.5本章小结本章介绍了互动平台在开发过程中所采用的关键技术和互动平台的主要功能的具体实现。第六章总结与展望6.1本文总结我们结合教育信息化的理念,基于浏览器/服务器结构,结合新兴的ASP.NET技术、ADO.NET数据访问技术、c群、组件技术和XML技术构造了数字化教学中家长与学校互动平台。实践证明,具有如下特点:1.本平台基于教育信息化的理念,在设计上结合我国数字化教学的发展现状,从当前中小学的实际情况出发,注重了家长这个角色的需求,弥补了现有的数字化教学软件中对于家长与学校互动的内容涉及很少的不足,针对家长、教师和学生三方的相互交流,构建功能完善的家长与学校互动的平台。家长可以通过互联网随时登录家长与学校互动平台来了解子女在校情况,教师和学生也可以通过互动平台与家长进行交流,及时相互沟通,并且可以使得家长参与到校外的自主教育活动中,从而使家庭教育达到一定的高度,提高教育质量,共同培养孩子。同时,学校也将从中获益。2.平台采用了模块化设计、分布式结构、集中式管理和先进的技术,本平台实现了信息浏览与查询、网上讨论、留言等多种功能,并且为管理员提供了基于角色的信息管理功能,是一个功能完善的、扩展性好的、占用资源少的、使用效率高的、安全可靠的家长与学校之间相互交流的平台。3.平台通过用户身份认证、授权控制、监视跟踪以及系统备份和故障恢复等技术,保证了平台的安全。4.平台在构思设计、提高吸引力和亲和力等方面都做了大量的工作,使得平台界面友好、层次清晰、操作简便、实用性强。6.2工作展望当然,我们构建的互动平台尚有不足,我认为可以在如下几个方面进行改进:●1.数字化教学中家长与学校互动平台是一个完整的系统工程,以后还需要不断的完善。2.组件设计开发是一个很大的领域,由于开发量大,时间短,平台功能复杂,因此在整个平台的组件设计上有待进一步完善。3.加强平台的实时交互性,使得家长、教师和学生之间可以实时交流。4.在平台的维护上还有一些工作可以深入进行。5.在平台的安全性方面仍然有一些工作可以进一步深入进行。参考文献[1]刘微.教育信息化应被看做一个过程.htIp://www.edu.cn/20020llO/3017070.shtml2002—01.10.[2]祝智庭.教育信息化与教育改革,h址p://www,wby。cn/cms/data/html/doc/2003一to/05/24919/index.html,2003.10-05.[3]张新明,李国祥.国内外教育信息化和教育手段现代化的发展战略比较.hap://www.jyedu.org/jiyuan/Doeumenls/jyjxyj/jr蛆s/xxjs/F72272cB70.htm,2003・08-21.[4]刘卫忠,徐重阳,蔷薇.多层客户机//]1i务器结构分析.http://www.yesky.com/20000617/81487.shtml,2000・06-17.[5]李维著.Delphi5,x—AD0/MTs/coM+高级程序设计篇.北京;机械工业出版社,2000.[62[美]JeffreyRichter著.李建忠译.Microsoft.NET框架程序设计(修订版).北京:清华大学出版社,2003.3-34.[7][美]AngshumanChakraborti,RoopendraJeerSandhu,UdayKranti著.王自亮,唐云深,赵世华,等译..NETFramework专业项目实例开发.北京:中国水利水电出版社,2003.[8]许迸标编著.VisualStudio.NET高手攻略.北京:人民邮电出版社.2003.卜12.[9][美]JeffFerguson,BrianPattemon著.盖江南,朱海绫,王勇,等译.c#宝典.北京:电子工业出版社,2002.7一11.[10]刘烨,吴中元编著.C#编程及应用程序开发教程.北京:清华大学出版社,2003.4-10.[11]廖信彦编著.ASP.net交互式Web数据库程序设计.北京:中国铁道出版社,2003.9—10.[12]陈钟.刘强,张高,等编著.c#编程语言程序设计与开发.北京:清华大学出版社,2003.10—11.[13]恒逸资讯。孙三才,许薰尹著.精通c#与ASP.net程序设计.北京:中国铁道出版社,2003.[14]‘陈娴,刘开文,王蓉玲,等编著.ASP.NET项目开发实践.北京:中国铁道出版社,2003.1—66.[15][美]RichardLeinecker著.齐岷,张力译.ASP.NET实用全书.北京:电子工业出版-63・社.2003.2—147.[16]但正刚编著,ASP.NET高级编程.北京:清华大学出版社,2002.47-162,[17][美]MridulaParihar著.王勇,盖江南,尚红昕,等译.ASP.NET宝典.北京:电子工业出版社,2002.[18][美]HershBhasin著.高健,英宇译。ASP。NET专业项目实例开发.北京:中国水利水电出版社,2002.55—69.[19][美]ScottMitchell,SteveWalther著.汤涛译.ASP.NET权威指南.北京:中国电力出版社.2003,[20][美]JoeMartin,BrettTomson著.万松明,张滨义译.循序渐进ASP.NET教程.北京:人民邮电出版社,2002.4-5.[2{]孟军,王宝学编著.精通ASP.NET网络编程.北京:人民邮电出版社,2002.5-7.[22][美]sanjeevRohilla,SenthilNathan,SurbhiMalho”著.陈君,王宝良译.ADO.NET专业项目实例开发.北京:中国水利水电出版社,2003.卜100.e23][荚]ScottAllen,SyedFahadGilani著.郝启堂,张哲峰译.c#数据库入门经典.北京;清华大学出版社,2003.49—70.[24][美]ShawnWildermuth著.周靖译.ADO.NET实用指南——面向Intemet世界的数据访问技术.北京:清华大学出版社,2003.[25][美]DavidSceppa著.梁超,张莉,贺垫译.ADO.NET技术内幕.北京:清华大学Matsik著.张哲峰,黄翔宇译.ASP.NET数据库入门经出版社,2003.[26][美]JohnKauffman,Brian典——c#编程篇.北京:清华大学出版社,2003.71—77.[27][美]PaulDickinson著.张晓明,邓少鹃译.ADO.NET高级编程.北京:中国电力出版社。2003.108—134.[283[美]JohnSharp,JohnJagger著.朱峰奎译.MierosoRVisualc#.NET程序设计.北京:北京大学出版社,2002,l一17.E293[美]MickeyWilliams著.冉晓曼,罗邓,郭炎译.Visualc#.NET技术内幕.北京:清华大学出版社,2003.[30][美]AshRofail,YasserShohoud著.邱仲潘译.COM与COM+从入门到精通.北京:电子工业出版社,2000.【31]【美]约翰・斯万科著.徐颖译.COM编程精彩实例.北京:中国电力出版社,-64.2001.1—73.[32][美]DonBox著.潘爱民译.COM本质论.北京:中国电力出版社,2001.[33][美]DaleRogerson著.杨秀章,江英译.COM技术内幕——微软组件对象模型.北京:清华大学出版社,1999.[34]潘爱民著.COM原理与应用.北京:清华大学出版社,1999.9-172.[35][美]Cony,Mayfield.Cadman著.刘云孔雷译.COM/DCOM编程指南.北京:清华大学出版社,2000.[36][美]PradeepTapadiya著.冯延晖,刘晓铭,赵淦森,等译.COM+编程.北京:中国电力出版社,2002.187—218.[37][美]MarkMichadis著.宋丽红译.COM+编程指南.北京:机械工业出版社,2002.[38][美]DavidS.Platt著.潘爱民译.深入理解COM+.北京:清华大学出版社,2000.[39][美]DonBox,AaronSkonnard,JohnLam著.卓栋涛译.XML本质论.北京:中国电力出版社,2003.卜71.[40][美]ElliotteRustyHarold著.杜大鹏译.XML实用大全.北京:中国水利水电出版社,2000.[41][美]KevinDick著.邓尚贤译.XML:管理者指南——构筑XML的企业级应用(第2版).北京:清华大学出版社,2003.1卜14.[42][美]CharlesF.Goldfarb,PaulPrescod著.张晓晖,王艳斌,赵伟明,等译.XML手册(第四版).北京:电子工业出版社,2003,12—13.[43][美]PeterG.Aitken著.谢君英译.微软XML技术指南.北京:中国电力出版社,2003.156—178.[44][美]ElliotteRustyHarold,W.ScottMeans著.孔小玲,商艳莉译.XML技术手册,北京:中国电力出版社,2001.[45]周绪,管丽娜,白海波编著.SQL版社,2001.81—105.Server2000中文版入门与提高.北京:清华大学出[46]张莉。王强,赵文叻,等编著.SQLServer数据库原理及应用教程.北京:清华大学出版社,2003.137—167.一65-致谢首先衷心感谢我的导师冯宏伟副教授。感谢他在我三年的研究生学习生活里给予我的关怀、帮助和教诲。本文是在冯老师的支持、鼓励和精心指导下完成的,论文完成过程中的每一步进展都凝聚着导师的心血。冯老师严谨求实的治学态度、渊博的知识、精益求精的工作作风和宽厚待人的长者风范,给我留下了深刻的印象,并且时刻感染着我、激励着我、鞭策着我,使我在前行的道路上不敢有丝毫的松懈,并将永远是我学习的楷模。感谢周明全教授、耿国华教授和所有的研究生任课老师对我的教诲和关心。老师们给予的知识是我修身立命的根本,使我受益终身。感谢计算机科学系的研究生秘书候红老师和安娜老师,三年来她们也给予我各方面的关怀和帮助。感谢我的同学,我们相伴一起走过了这三年的历程,在与他们的交流过程中,我获得了不少启迪,学习到了很多知识,感谢他们给予我的帮助。特别感谢王长缨博士、孙蕾博士、王怡博士和毕金龙同学,感谢他们在我论文撰写时给予的帮助。最后,我要感谢我的父母。是他们分担了我应尽的责任和义务,给了我无尽的动力和勇气,使我能安心地实现自己的求学梦想。-66.附录(攻读硕士学位期间所发表的论文)1.段竹,冯宏伟,TIFF图像文件读取算法讨论,西北大学学报(自然科学版),2003年6月第33卷增刊,7卜74页。2.段竹,冯宏伟,数据整形技术在提高检索记录集效率中的应用,微机发展,2004年9月。
因篇幅问题不能全部显示,请点此查看更多更全内容