基于CS模式的辅助教学系统方案_第1页
基于CS模式的辅助教学系统方案_第2页
基于CS模式的辅助教学系统方案_第3页
基于CS模式的辅助教学系统方案_第4页
基于CS模式的辅助教学系统方案_第5页
已阅读5页,还剩76页未读 继续免费阅读

下载本文档

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

文档简介

1、. . . . 分类号: 单位代码: 密 级: 学 号: 硕 士 学 位 论 文论文题目: 基于C/S模式的辅助教学系统的设计与实现作 者 姓 名专 业软件工程指导教师 专业技术职务 2006年 03 月 1日79 / 81原创性声明和关于论文使用授权的说明原创性声明本人重声明:所呈交的学位论文,是本人在导师的指导下,独立进行研究所取得的成果。除文中已经注明引用的容外,本论文不包含任何其他个人或集体已经发表或撰写过的科研成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本声明的法律责任由本人承担。论文作者签名: 日期:关于学位论文使用授权的声明本人完全了解大学有关保留、使用

2、学位论文的规定,同意学校保留或向国家有关部门或机构送交论文的复印件和电子版,允许论文被查阅和借阅;本人授权大学可以将本学位论文的全部或部分容编入有关数据库进行检索,可以采用影印、缩印或其他复制手段保存论文和汇编本学位论文。 (论文在解密后应遵守此规定)论文作者签名:导师签名:日期:目 录目录I摘要IVABSTRACTIV第一章引言61.1课题背景61.2项目介绍71.3主要工作8第二章相关知识与技术分析92.1分布式应用系统的结构92.1.1客户机/服务器模式92.1.2构建多层分布式应用系统的方法122.1.3多层结构使用的技术132.2开发环境Delphi简介162.2.1 MIDAS技术

3、162.2.2 Delphi开发的三层分布式应用系统的结构172.2.3 Delphi下三层C/S应用程序实现的原理192.2.4 MIDAS的应用程序工作流程202.2.5有关组件212.2.6自定义应用服务器222.2.7调用服务器上的接口232.3 系统采用的相关技术252.3.1远程调用方式252.3.2系统的容错技术和网络负载平衡技术252.3.3系统安全性技术26第三章网上答疑系统的设计与实现283.1概述283.2系统的软件结构设计293.3系统数据库设计303.4系统主要功能模块的实现333.4.1用户管理模块333.4.2答疑板模块333.4.3在线答疑模块353.5 FAQ

4、查询算法363.5.1提问与解答容的量化分析363.5.2 FAQ、关键词与信息提取373.5.3实例分析393.6系统安全41第四章网上作业系统的设计与实现424.1概述424.2系统的软件结构设计424.3系统数据库设计434.4作业处理过程464.5 其他功能模块504.6防止某些恶意行为的功能51第五章网上考试系统的设计与实现525.1概述525.2系统的软件结构设计535.3系统数据库设计545.4学生考试子系统的实现585.4.1考试环境设计585.4.2考试流程595.4.3考试时钟的设置与时间限制605.5教师管理子系统的实现615.5.1题库管理模块615.5.2试卷管理模块

5、615.5.3自动评卷模块625.5.4成绩管理模块625.5.5用户管理模块635.6系统组卷方法635.6.1计算机组卷的原则635.6.2试卷生成方法645.6.3随机组卷法655.6.4智能组卷法685.7系统安全74结束语76致77参考文献78摘 要目前,随着互联网时代的到来,信息技术的快速发展,已经渗透到社会的各个领域,引起人们社会生产方式、工作方式、学习方式和生活方式的重大变革。基于Internet平台开发的各种辅助教学系统,已成为一种新兴的教学媒体,学生可以根据自己的实际情况来安排自己的学习时间、共享优秀的教育资源和教育方法。本文主要论述了基于三层客户/服务器结构的分布式应用系

6、统的实现方法和技术;阐明了利用Delphi的MIDAS技术开发多层分布式应用系统的方法;最后阐述了基于C/S模式的辅助教学系统的设计和实现,并对其实现过程中的关键技术进行了详细的讨论。基于C/S模式的辅助教学系统包括网上作业系统、网上答疑系统和网上考试系统三个子系统。系统实现上采用三层客户/服务器模式,三层客户/服务器结构将系统的表示逻辑、业务逻辑和数据逻辑分开,从而使系统具有良好的性能和安全性。系统后台数据库采用SQL Server2000, Delphi作为前台应用开发工具,中间层与数据库采用ODBC连接。系统利用Delphi提供的MIDAS中的Tsimple ObjectBroker组件

7、,提高了系统的容错性,并使系统具有负载平衡能力。关键词:客户/服务器、MIDAS、网上作业、网上答疑、网上考试RESEARCH AND IMPLEMENTATION OF ASSISTANT TEACHING SYSTEMBASING ON C/S PATTERNABSTRACTFor the present, Basing on the computer aided instruction system of Internets terrace development, and has become one kindof new and developing teaching medium,

8、 it surmount the unfavorable factor that student lack of usecomputers time and fall short of teacher resources etc, in addition,student can arrange intimate study timeaccording to the real circumstances of oneself and shared excellent education resources and the educationmethod.This paper mainly giv

9、es account of method and technology of realizing distributed application systembasing on three tier client/server;then narrates the method of developing multi-tiers application by DelphisMIDAS; finally, introduces designation and realization of assistant teaching system basing on Us pattern, anddisc

10、usses in detail key technology of this system.Assistant teaching system basing on Us pattern includes three subsystem: homework system on the net,answer system on the net and examination system on the net. Client/Server system basing on three tiersdivides system into browser logical, application log

11、ical, data logical to make the system high performancehigh safety. System backstage database adopts SQL Server2000,Delphi to develop the tool as the prosceniumapplication, and the intermediate strata adopt ODBC to link with the data base. TSimple0bjectBroker ofMIDAS in Delphi is adopts to improve fa

12、ult-tolerance and load balancing of this system.Keywords:Client/Server, MIDAS, Net-homework, Net-answer, Net-exam第一章 引言1.1课题背景随着社会发展和科技进步,教育在社会生活中扮演着越来越重要的角色,国家和社会对教育的期望也越来越高;为了更好地择业和参与社会垂直流动,拥有更大自我发展前景,人们对受教育的需求也日益强烈。信息技术的快速发展,已经渗透到社会的各个领域,引起人们社会生产方式、工作方式、学习方式和生活方式的重大变革。一种新兴的教育方式现代远程教育CAI正悄然兴起;所谓现代

13、远程教育CAI,就是通过计算机、多媒体与远程通讯技术相结合的形式实现的一种跨地区、跨学校的全新的教育体制与教学模式,它利用技术方式来替代教师和学生面对面的沟通和交流,通过声音、视频、数据流和系统平台等完成教学活动。人们凭借计算机网络这个载体,通过Internet可以从容地走向每一个具有无限扩展空间的“网络课堂”,接受正规化的教育,它不仅是学生自主学习的天地,也是教师尝试运用现代化教学手法生动讲授课程的新途径。现代远程教育与传统的教育相比,打破了地域和时间的限制,使学员可以根据个人情况充分利用远程教学的各种学习资源,比如各种课件、各种自测考试、网上提交作业以与在线答疑等;同样,也使教师完成各种教

14、学任务和教学管理任务时不受严格的地域、时间的限制,提高了效率。在这种教育体制下,工作和学习完全融为一体,上班工作、下班学习的界线被打破,每个人可以在任意时间、任意地点通过网络自由地学习、工作或娱乐,受教育者不仅可以亲耳聆听著名大师的授课,还可以向世界最权威的专家请教,成为真正意义上的开放大学!目前,美国己有60%的高校开展了以互联网为主要手段的远程教育,远程教育开展的学历、学位数己达到4.9万个,基本上覆盖了美国高等学校的所有学科和专业,通过网络学习的人数正以每年3倍的速度增长。德国也有将近10000所学校上网,其中的1/4开设了网络教育课程。英国政府甚至把普与网络化教育作为保证英国人才培养紧

15、跟世界潮流的战略性举措。国的教育已达到200多个,而且仍在以每天一至两个的速度增加。远程教育在我国经历了函授教育、广播电视教育与以信息和网络技术为基础的现代远程教育三个阶段。现代远程教育市场潜力很大,前景广阔,每年以150%的速度快速增长。由于我国的高校步入现代远程教育领域和计算机辅助教学工作起步较晚。在开设的课程种类、课程容质量以与实时交互性等方面都还有很大差距。大多数高校的远程教育服务站点仅仅推出了WWW方式的课件教学服务。但近几年发展很快,已经取得了一大批成果。20世纪80年代初,我国只有少数科研、教学人员着手开展这项工作;到了80年代后期,许多CAI课题列入国家重点科技攻关项目,许多科

16、研机关、企业、学校开发了大量的教学软件;进入90年代,许多基于网络、多媒体环境下的CAI系统研制课题在各高校开始进行,CAI软件取得了突飞猛进的发展。各国政府为迎接信息化社会、知识经济的挑战,对远程教育倍加重视,并制定专门计划加以支持、实施。在我国,教育部现代远程教育资源建设委员会于2000年制定了现代远程教育资源建设技术规,许多高校都己开设了自己的远程教育站点,但由于我国远程教育起步较晚,所以在管理上、技术上还有许多需要改进的地方。高等职业教育作为高等教育的重要形式,在我国起步较晚,在远程教育方面还刚刚开始,远程教育在职业教育中将发挥重要的作用。本文依托职业学院计算机系列课程,研制了基于C/

17、S模式的辅助教学系统。1.2项目介绍技术手段的大量使用使远程教育与传统教育呈现了更多新的特点和发展趋势。目前,针对计算机课程的网上作业系统、网上答疑系统、网上考试系统已发展的比较成熟,但对于其他课程的网上作业系统、网上答疑系统、网上考试系统却很少,随着互联网时代的到来,互联网为信息和技术的交流提供了更大、更广阔的空间,使信息的地域差别逐渐消失。互联网己经成为一种新的社会媒介,也为计算机课程与其他课程的辅助教学的发展提供了广阔的空间,从而产生了飞速发展的多学科的远程教学,并且参加远程教育的学生与教师也越来越多。本文结合计算机课程教学的特点,研究并实现了基于C/S模式的辅助教学系统。本论文主要研究

18、针对计算机课程的基于C/S(Client/Server,客户机/服务器)模式的辅助教学系统,包括网上作业系统、网上答疑系统、网上考试系统。该项目的基本架构图如下:1.3主要工作为实现该辅助教学系统,完成的主要工作如下:(1)研究了两层、三层客户机/服务器模式,多层使用技术,以与应用三层结构开发软件的思路和方法。(2)研究了Delphi下三层C/S应用程序实现的原理,以与利用Inprise公司的MIDAS技术实现多层分布式应用系统的技术思路和方法。(3)设计与实现了基于C/S模式的辅助教学系统的开发,该系统包括网上答疑系统、网上作业系统和网上考试系统三个子系统。第二章 相关知识与技术分析2.1分

19、布式应用系统的结构2.1.1客户机/服务器模式从逻辑上来说,一个典型的应用可以分成三个组成部分:表示逻辑层、业务逻辑层和数据逻辑层。表示逻辑层:它是应用中直接面向用户的部分,主要完成应用的前端界面处理,即人机界面处理。业务逻辑层:它实现应用的业务规则处理,决定程序的流程。数据逻辑层:它是应用中对数据进行管理的部分,主要完成应用对数据的存取、更新、管理等工作以与访问数据的安全性、完整性、一致性。最初的集中式模型是一种基于主机/终端模式或PC机模式的计算,所有的任务都集中由主机来完成,终端只是作为一种输出设备,应用的三个逻辑层都集中在一台主机或PC机上,每个逻辑层都不能单独存在,如图2-1所示。随

20、着计算机与网络技术的发展以与企业决策的分散化和信息来源与目的的多元化这种集中式模型越来越难以适应现代社会的需要。业务逻辑数据逻辑数据库表示逻辑图2-1集中式管理模式1、三层C/S结构在三层Client/Server计算模型中,表示逻辑位置不变,仍放在Client端,业务逻辑则放在一个独立的中间服务器上,数据逻辑在另一个服务器上。整体结构如图2-2所示。图2-2 Client/Server三层模型表示逻辑业务逻辑数据库表示逻辑数据逻辑客户端网络应用程序数据库服务器 (1)客户端应用程序:提供用户接口,主要功能是操作人员利用界面,输入数据,输出结果,并不具有业务逻辑,或只拥有部分不涉与企业核心的、

21、的应用逻辑。这样客户端就显得很瘦,称为“瘦”客户。(2)应用程序服务器:它是应用的主体,提供业务逻辑、事务调度,并与数据库连接,充当客户与数据库之间的桥梁。(3)远程数据库服务器:即数据库管理系统(DBMS),负责管理对数据的读写和维护,能迅速执行大量数据的更新和检索。现在的主流是通常像Oracle Server. Microsoft SQL Server等关系数据库系统(RDBMS)。二层结构中的三层并不一定与网络上的具体物理位置相对应,它们只是概念上的层,应用服务器和数据库服务器在物理上也可以在同一台服务器上。在实际应用过程中,业务逻辑也可以分为2个以上的层次,或分别放在几个服务器上,因此

22、也可以实现多层C/S结构。三层Client/Server计算模型具有以下优点:(1)在一个共享的中间层封装了企业逻辑,不同客户端应用程序可以共享同一个中间层,而不必由每个客户端应用程序单独实现企业逻辑。(2)客户端应用程序可以做得很“瘦”,因为很多复杂的工作都由应用服务器代劳了,客户端应用程序只需要关注用户界面本身。“瘦”客户端应用程序更易于发布、安装、配置和维护。(3)实现分布式数据处理。把一个应用程序分布在几个机器上运行,可以提高应用程序的性能,通过冗余配置还可以保证不会因为局部故障导致整个应用程序的崩溃。经过合理的布局,通过网络传输的数据量大大减少了,提高了网络效率。(4)有利于安全。将

23、一些敏感数据功能部分封装在中间层,并授予不同访问权限,可以保证对数据的访问限制。(5)可伸缩性好。可按应用要求部署逻辑层次,适用于本地网和广域网。(6)便于开发。客户端、应用程序服务器和数据库并行进行开发,大大加快了系统开发的速度。2、B/S结构Browser/Server (B/S,浏览器/服务器)在本质上也是一种Client/Serve:结构,它是一种由传统的C/S结构发展而来的在Web上的应用。与三层C/S结构不同的是,B/S系统的表示层为Web浏览器,功能层为Web服务器。Web浏览器一般为专用的软件,如Microsoft的IE,它的任务是由Web浏览器向网络上的某一Web服务器提出服

24、务请求,Web服务器对用户身份进行验证后用 协议把所需的文件资料传给客户端,客户机接受传来的文件资料,并把它显示在Web浏览器上。Web服务器也是专用的产品,软件开发人员只需要开发基于Web服务器的应用程序,实际所需要的商业逻辑,它包括了应用中全部的业务处理程序,换句话说,除了输入/输出功能在表示层、数据库在数据层以外,全部的统计、汇总、分析、打印功能全部存放在功能层。相对三层C/S结构而言,B/S结构是一次深刻的变革,它具有如下突出的优点:(1)它简化了客户端。只需安装通用的浏览器软件。这样不但可以节省客户机的硬盘空间和存,而且使安装过程更加简便、网络结构更加灵活。(2)更易于维护、更易于升

25、级。维护人员不再为程序的维护工作奔波于每个客户机之间,而把土要的精力放在服务器上。由于客户端无需专用的软件,当企业对网络应用进行升级时,只需更新服务器端的软件,减轻了系统维护和升级的成本以与工作量。(3)用户操作使用简便。B/S结构的客户端只是一个提供友好界面的浏览器,通过鼠标即可访问文本、图像、声音、电影与数据库等信息,用户无需培训便可直接使用,利于推广。(4)更适合于网上发布消息。B/S结构使用的是Internet的Web技术,因而更适合网上信息的发布,拓展了传统的数据库应用的功能,更适合Internet时代的需要。B/S模式的新颖与流行和在某些方面相对于C/S的巨大改进,使B/S成了MI

26、S系统平台的首选,也使人忽略了B/S不成熟的一面。B/S结构相对C/S结构也有其弱点,主要表现在:(1)交互性弱。在C/S中,客户端有一套完整的应用程序,在出错提示、在线帮助等方面都有强大的功能,并且可以在子程序间自由切换。B/S虽然由JavaScript, VBScript提供了一定的交互能力,但与C/S的一整套客户应用相比就太有限了。(2)安全性低。由于采用开放的TCP/IP协议和解释型的脚本语言编程,其安全性只能靠数据服务器上管理密码来保证。(3)数据处理能力弱。由于Web是一种新兴的技术,现在处在解释脚本语言阶段,无法开发出像用可视化_I几具开发的功能强大的编译型应用程序。此外,由于传

27、统的C/S系统大量存在,积累了大量的信息和应用,将这些应用全部转向B/S系统也是一项长期而艰巨的任务,因此B/S系统并不会立即取代C/S系统而是将与其长期共存。2.1.2构建多层分布式应用系统的方法分布式多层应用的良好而清晰的结构源于对多层应用中各个部分功能分割的正确设计与实现。多层应用的关键在于应用服务器和客户端的设计和实现。1、分布式多层应用的设计原则一般而言,客户端和应用服务器的设计遵循如下的功能分割原则。(1)客户端应用程序主要实现的功能: 处理图形用户界面; 用户的输入处理; 进行简单的计算和检查工作; 调用应用程序服务器提供的服务。(2)应用程序服务器主要实现的功能: 实现现实世界

28、的实体对象的功能; 进行业务逻辑的判断; 协调不同的对象完成共同的工作; 进行计算或提供公共服务。正是因为应用程序服务器担负着如此重要的功能,因此在一个大型的系统中,应用程序服务器不能由一个程序或者服务来完成,而是由若干个程序或者服务共同来完成。2、分布式多层应用的实现方法开发多层应用系统,一般遵循下面的开发步骤:(1)先开发远程服务器,这个应用服务器负责提供数据服务给客户端应用程序使用;(2)开发客户端用户界面应用程序,客户端应用程序会向在第一个步骤建立的应用程序服务器提出要求;(3)连接客户端应用程序和远程服务器。2.1.3多层结构使用的技术目前分布式结构使用的核心技术大致上可以分为两种不

29、同的工业标准,第一种是Microsoft制定的COM / DCOM以与COM+,第二种则是由700多个厂商共同提倡的CORBA(Common Object RequestBroker Architecture)。由于分布式结构的广泛流行,所以现在也有愈来愈多的分布式技术是根据这两种分布式核心技术再加以演进而产生的,例如E(Enterprise JavaBean)等。这两种不同的分布式技术各有不同的优缺点,基本上Micosoft的COM/DCOM/COM+是以Windows为中心的开发环境,而CORBA则是平台中立的分布式技术。CORBA能够执行于Windows,UNIX以与Linux等操作系统

30、之中。但是不管是哪一种分布式技术,基本上这些分布式技术都允许软件开发人员能够在应用程序中轻而易举地使用企业对象所提供的服务。当客户端应用程序在使用企业对象的服务时,这些分布式技术都会让应用程序在调用企业对象时看起来就像是这些企业对象就存在于本地的机器之中一样,应用程序程序员并不需要编写复杂的网络程序代码以便调用事实上是位于远程机器之中的企业对象。基本上这两种分布式技术都是在客户端机器之中以一个特别的对象来仿真真正的远程企业对象。如此以来客户端应用程序就可以调用在客户端机器中仿真的对象来存取远程企业对象的服务,而当客户端仿真对象被应用过程调用时,这个仿真对象再使用特定的通讯协议来真正的调用远程企

31、业对象的服务以满足客户端应用程序的要求。由于有了客户端仿真对象,所以软件开发人员在编写客户端应用程序时便非常的方便,不需要了解或是编写网络通讯协议的程序代码。如此以来可以大幅增加软件开发人员的生产力。虽然COM /DCOM / COM+和CORBA都是使用类似的观念来实现这种远程调用结构,但是这两种分布式技术在仿真对象的名称上却有一些差异。图2-3和2-4分别是这两种分布式结构使用的通讯协议以与在客户端仿真对象,以与服务端仿真对象的名称。除了基本的远程对象调用之外,一般来说分布式技术也会提供一些核心服务来帮助软件开发人员开发分布式应用系统。这些核心服务会依据用户对分布式应用系统的安全强固的要求

32、,安全性和延展性的要求而有所不同。但是有几个最重要的核心服务几乎每个分布式技术都会提供的,这些核心服务分别是:交易管理(transaction management):负责在分布式应用系统中对数据完整性与一致性的保护。在Windows平台中MTS(Microsoft Transaction Server)提供了这个核心服务,在CORBA中则是由OTS(Object Transaction Service)提供。安全服务(Security):在分布式应用系统中安全是很重要的,因为绝对不允许提供服务的企业对象能够被任何人使用,只有经过授权的人才能够使用授权的企业对象。COM/DCOM使用Windo

33、wsNT的安全接口来提供分布式应用系统基本的安全保护,MTS以与COM+则提供了更为简易的接口来提供安全能力。在CORBA中则以安全服务来提供应用系统基本的保护,此外COM/DCOM/COM+和CORBA也允许软件开发人员使用SSL以SecureSocketLayer)对数据进行加密和解密,让只有被授权的人才能够看到应用系统的数据。2.2开发环境Delphi简介2.2.1 MIDAS技术MIDAS (Multi-tier Distributed Application Services Suite多层分布式应用程序服务包)是Delphi用来开发多层应用系统使用的中介透明引擎。它为后端的应用程序

34、服务器和程序员之间提供了一种透明的连接,无论后端的应用程序服务器是COM/DCOM应用程序服务器,MTS中介软件,还是CORBA应用程序服务器,呈现在程序员面前的都是MIDAS提供的一致接口。此外,MIDAS提供了容错能力,负载平衡能力以与高执行效率能力。MIDAS的出现,使构建三层分布式应用变得容易。MIDAS是通过三个主要的中介者(Broker)作为核心技术来实现的,它们是: Remote Data Broker(远程数据中介者):提供客户端存储远程数据的能力。 Constraint Broker(约束中介者):保证所有客户数据的一致性与数据完整性,为开发者提供了一个简单的自动分发数据完整

35、性规则的方法,动态传播规则的特性使得开发者能够很容易地维护大量的应用程序,从而减少网络的流量。 Business Object Broker(企业对象中介者):允许应用系统开发执行企业逻辑的企业对象,并且提供容错能力和负载平衡的能力。MIDAS除了拥有前面讨论的三个中介者提供的功能之外,也具备了两个非常重要的功能。这两个功能是开发关键性多层应用系统不可或缺的能力。目前DCOM并没有建这两种功能。这两个功能是:(1)容错能力(Fault Tolerance):当一台应用程序服务器发生故障时,MIDAS能够立刻找到另外一台可供使用的应用程序服务器提供客户端应用程序使用,而不致让客户端应用程序无法继

36、续执行。(2)负载平衡(Load Balancing):MIDAS能够把客户端应用程序的需求分配到不同的应用程序服务器之中执行,以提升客户端应用程序和应用程序服务器的执行效率。MIDAS应该说是Borland公司推出的一项在多层分布式服务中重要的战略产品,它的优势可以总结为以下几个方面:(1)MIDAS是一个跨平台的中间件产品,允许开发人员使用单一界面和技术来存取各种分布式对象。(2)MIDAS简化了各种分散式对象的开发工作,并且能够大大简化分布式对象异质数据库的工作。(3)MIDAS在未来将会不断强化它的效率和功能。(4)MIDAS为多层分布式结构的应用开发提供了强大的功能,这使得开发者再也

37、无需为越来越庞大的数据与应用发愁了。2.2.2 Delphi开发的三层分布式应用系统的结构Delphi6支持了许多重要的分布式技术,因此软件开发人员可以结合这些分布式技术而开发出先进的分布式应用系统,以与适合各种不同结构的分布式应用系统。例如图2-5是Windows平台下最常使用的分布式结构,它结合Microsoft的NITS以与Web服务器构建出分布式Internet / Intranet的应用系统。在图2-5中软件开发人员可以先在NITS/MIDAS服务器中开发各种企业对象,然后再使用Delphi开发客户端的图形用户接口并且使用中介的企业对象。稍后当企业决定走向Internet/Intra

38、net提供的电子商务系统时,便可以加入Web服务器,然后再串连到原先的MTS/MIDAS应用程序服务器,让Web服务器能够继续使用在应用程序服务器之中的企业对象。图2-5 提供关键技术开发关键性分布式应用系统图25中有许多的关键技术是这种分布式应用系统必须具备的,而Delphi6实现这些技术,又非常容易。例如Delphi6的IntCrnetEXpress组件允许软件开发人员以XML标准语言建制分布式电子商业,并且使用ADO组件配合MTSMIDAS中介技术做出安全强固的分布式应用系统。图26通过CORBA和UNIX应用程序服务器串联如果应用程序服务器是以UNIX平台为主,那么可以使用CORBA分

39、布式技术作为应用系统的骨架。在应用程序服务器中可以执行CORBA或是E应用程序服务器,Delphi6可以作为客户端图形用户按口的开发工具,也可以应用InternetEXpfess组件提供XML的Internet/Intranet解诀方案。图26说明了这种分布式应用系统的结构。从图26中可以看出,在使用CORBA的应用系统中,Delphi6可以作为在Windows平台下非常良好的客户端开发工具,此外由于Delphi也支持CORBA应用系统的开发能力,所以能够非常平顺的和UNIX或是Linux平台之中的CORBA应用程序服务器沟通。例如软件开发人员使用Linux作为应用程序服务器,并且在其中执行C

40、ORBA应用程序服务器提供服务,而客户端则可以执行Delphi建立的图形用户接口应用程序,和在Linux之中的应用程序服务器沟通。2.2.3 Delphi下三层C/S应用程序实现的原理Delphi6实现三层C/S结构的原理如图2-7。应用服务器主要包含一个远程数据模块,它通过数据集组件负责与BDE的联系,并利用TProvider组件提供Provide接口,在客户程序与应用服务器之间传递数据。在三层C/S结构下,几个客户有可能同时与一个应用服务器通讯,应用服务器实际上充当了一个网关的作用。客户程序通常包含两类模块:一类是窗体模块,它们为用户提供数据维护的界面;另一类是数据模块,它一般包括以下几类

41、组件:(1)连接组件,负责连接应用服务器;(2)客户数据集组件,它一般从应用服务器接口获取数据;(3)数据源组件,负责连接数据集组件与数据控制组件。用户界面元素数据源组件连 接组 件客户数据集BDE-cnableDatasetcomponentProviderBeriandDatabaseEngibc窗体 数据模块 应用程序服务器远程数据库数据库服务器图2-7 Delphi下实现三层C/S结构原理图Delphi6的多层数据库应用系统结构主要是由ClientDataSet, RemoteServer, DataSetProvider数据集组件和连接组件构成的。客户端的应用程序在第一次执行时,Re

42、moteServer首先会注册 MIDAS.DLL这个档案,这个档案包含了ClientDataSet使用的IAppServer接口。然后通过组件从MIDAS.DLL取得应用程序服务器中远程数据模块输出的IAppServer接口,根据此接口建立一个DUAL接口,最后使用连接组件连接远程的应用程序服务器。在RemoteServer建立lAppServer接口和连接了远程的应用程序服务器之后,ClientDataSet便会使用RemoteServer取得的IAppServer接口向应用程序服务器要求数据,并存储在Data的属性值之中。当客户端处理数据时,事实上所有的数据都存储于ClientDataS

43、et的一个属性值(Delta)之中,都是暂时存储在存之中。在客户端进行数据处理时不会造成任何网络的负荷,执行速度快。当客户端确定更新数据时,应用程序调用ClientDataSet的ApplyUpdates方法,ApplyUpdates再调用IAppServer接口的ApplyUpdates让应用程序服务器更新数据。此时,网络上传输的只是修改过的数据,网络资源消耗非常小。2.2.4 MIDAS的应用程序工作流程在这种三层应用程序结构中,数据库服务器主要由专门的数据库管理系统实现。Delphi主要用于应用服务器和客户应用程序的开发。一般的处理过程如图2-8所示。(1)用户首先启动客户端程序,客户端

44、程序将试图连接应用程序服务器,如果应用程序服务器还没有运行,客户端程序将激活应用程序服务器,并从中获得一个IProvider接口,客户提出的数据查询和更新请求都是通过它来实现的。(2)客户程序向应用程序服务器发出数据请求。(3)应用程序服务器收到请求后,从远程数据库服务器检索并获取数据,并根据选择的通讯协议将数据封装打包后传输给客户端程序。(4)客户端程序收到数据封包后,进行数据包的分解,然后显示或进行处理。(5)用户对数据进行更新后,将数据连同数据变更日志一起封装成数据包,上传到应用程序服务器中请更新数据。(6)应用程序服务器收到客户端程序的申请后,就向远程数据库服务器申请更新数据。(7)如

45、果出错,应用程序服务器就把出错的记录返回给客户端程序去核对。客户端程序核对并修改了数据后,既可以放弃此次更新,也可以再次提交数据更新请求。图2-8多层应用程序流程说明错误客户端初始化连接并激活服务器获得IPRrovide客户向服务器请求数据服务器接受请求并运行检索客户接受并显示数据客户方编辑修改数据,数据打包后提交服务器服务器向远程数据库服务器更新数据处理数据结 束正确将错误结果返回客户方从上面的执行过程可以知道,客户端应用程序的工作只是简单的前台应用处理,而把复杂的数据管理功能交给了应用程序服务器,体现了分布式处理和集中式处理的结合与优点。2.2.5有关组件(1)远程数据模块(Remote

46、Data Module)它与普通的数据模块有些相似,不同的是它可以作为COM服务器或CORBA服务器,让客户程序访问它的接口。它提供了IDataBroker接口,客户程序与应用服务器连接,就通过IDataBroke接口获得IProvider接口。(2)提供器组件有两种提供器组件:TProvider, TDatasetProvider。这两个元件用在应用服务器上,主要作用是提供IProvider接口,通过它直接控制数据包中所包含的信息,响应客户数据请求,更新数据,定位记录,并将数据打包后传送给客户。(3)客户数据集组件(TClientDataset )它是一个从TDataset继承下来的,通常用

47、于客户端。它最大的特点是不依赖BDE,但它需要一个动态库(即DBCLIENTDLL)的支持。它支持诸如编辑、查询、浏览、修改、过滤等功能。由于TClientDataset在存中建立了数据的本地副本,使数据操作的执行速度非常快。(4)MIDAS连接组件客户与应用服务器之间,可以根据选用通讯协议的不同,使用不同的连接方式。Delphi6提供了四种连接组件。分别是:TDCOMConnection按DCOM方式连接。不需要专门的运行期软件,但需安装DCOM95程序。TSOCKETConnection按TCPIIP方式连接。应用服务器必须运行一个专门的运行期软件SCKTSRVR.EXE. SCKTSRV

48、R.EXE只适合于Windows NT,可以作为一个服务在后台运行。TWebConnection使用 协议连接到远程应用服务器;客户机必须安装Wininet.dil。服务器必须安装IIS4或更高版本,或Netscape企业版3.6或更高版本。TWebConnection所连接的Web服务器必须安装 srvr.dll ( srvr.dl)与Delphi一同发布)。TCORBAConnection按CORBA方式连接。需要ORB的支持。2.2.6自定义应用服务器远程数据模块是应用服务器的核心部件,它提供了应用服务器和客户程序通讯的接口。为了使客户能方便地访问数据模块,可以对数据模块接口进行扩展,添

49、加一些方法让客户程序调用。要向接口中添加属性和方法,首先应打开类型库编辑器;利用工具栏上的New Method或NewProperty命令,加入新的方法或属性,并设置有关属性;再用Interface Repository注册接口。对于基于DCOM的远程数据模块来说,新的成员将出现在接口的实现单元和类型库的描述文件中。2.2.7调用服务器上的接口一般来说,对于应用程序服务器提供的服务,客户端应用程序有数种不同的调用方法,分别是:Later Binding调用方式、Early Binding调用方式、Dispatch Table调用方式。下面分别加以介绍:1、Later Binding调用方式La

50、ter Binding是最方便的调用方式,但这是最没有效率的方式。使用方法是:利用客户端连接组件的AppServer属性获得远程应用程序服务器,再调用其中的方法。例如:DCOMConnectionI.AppServer.GetSystemInfo(vTime,vRDM,vThread);AppServer属性回传的是一个Variant类型的变量,当程序透过Variant调用远程方法时,Delphi会以IDispatch接口动态的和远程应用程序服务器通信,组合调用方法和参数,最后再进行调用。所以这种调用方式需要执行非常多的额外工作,效率低。2、Early Binding调用方式Later Bin

51、ding调用方式是在程序执行时才动态进行远程调用,因此效率低。而Early Binding调用方式是在编译应用程序时便产生所有必要的执行代码,不需要应用程序执行时动态地和远程应用程序服务器通信,所以执行效率要高,也安全,但使用上比较麻烦,且是适用于DCOM通信协议中。例如:(DCOMConnectionl.GetServeras rdmDemo3).GetSystemInfo(vTime,vRDM,vThread);3、Dispatch Table调用方式这是一种即有效率,又不是很麻烦的方法,并且它支持Socket通信协议。当在Delphi中使用可视化Type Library编辑器定义应用程序

52、服务器的服务后,Delphi会在Type Library的wrapper类别中生成Dispatch Table的接口。例如,若应用程序服务器有如下的Dispatch Table接口:IrdmDemo3Disp =dispinterfaceAFC25B93-37E0-1 I D3-AA94-0080C8518D04则采用Dispatch Table调用方式的方法:varaDisp:IrdmDemo3Disp;beginbeginaDisp:=IrdmDemo3Disp(Idispatch(DCOMConnectionl.AppServer);aDisp.GetSystemlnfo(vTime,v

53、RDM,vThread);end;end;二种调用方式的效率不同,据资料介绍,Early Binding比起Late Binding快了100%以上,Dispatch Table的方式比起Late Binding方式快70%。客户程序中的TClientDataset通常通过IProvide接口从远程数据库服务器获取数据。调用IProvider接口有三种方式:(1)通过TClientDataset的Provider属性获取IProvider接口,然后直接访问IProvide接口。(2)通过调用TC I ientDataset的属性和方法,间接调用IProvider接口。因为大部分对IProvid

54、er接口的调用己封装在TClientDataset的属性和方法中。(3)通过MIDAS的连接组件的Appserver属性可以获得应用服务器上的远程数据模块接口,通过此接口可以调用远程数据模块中的方法。2.3 系统采用的相关技术2.3.1远程调用方式在系统的开发过程中,应该考虑系统的执行效率问题。特别是我们的分布式三层系统是运行在网络上,经常会有数据在网络上传送的情况,所以我们主要从减少数据流量来解决这个问题。在使用到业务逻辑层提供的服务时,就需要在程序中调用服务器的方法,而不适当的调用方式往往会降低系统的效率。一般来说,对于应用程序服务器提供的服务,客户端应用程序有三种不同的调用方法,分别是:

55、Later Binding调用方式、Early Binding调用方式、Dispatch Table调用方式。在本系统中采用了支持Socket通信协议,而且即有效率,又不是很麻烦的方法Dispatch Table的调用方式。2.3.2系统的容错技术和网络负载平衡技术在分布式计算环境中开发的系统,除了必须能够正确而且有效率的运作之外,还应该更为强固,不会因为中间层服务器或数据库服务器的故障而导致整个系统无法继续运行。所以,给系统加入容错和负载平衡能力是非常必要的。在Delphi的MIDAS技术中,我们用客户端应用程序和TSimpleObjectBroker组件合作来提供容错和负载平衡能力。1、系

56、统的负载平衡能力负载平衡是指在有多个能提供一样服务的应用程序服务器的情况下,当有许多客户端应用程序需要连接应用程序服务器,MIDAS能够分配不同的客户端应用程序到每个服务器中,以便平衡每一个应用程序服务器的负载。系统利用了Delphi中的TSimpleObjectBroker组件,提供了系统的负载平衡功能。方法是将TSimpleObjectBroker组件的LoadBalanced属性值设为True。2、系统的容错能力在一个执行关键作业的多层应用系统中,系统的稳定度是非常重要的。尤其是当客户端应用程序正在执行一些重要的程序时,不希望因为应用程序服务器的故障而造成多层应用系统无法执行。为提高系统

57、的稳定性,系统利用了Delphi中的TSimpleObjectBroker组件,提供了系统的容错能力。基本上容错能力就是让应用程序服务器在多个机器中执行,当客户端应用程序执行时可以连结到任何一台机器中的应用程序服务器要求服务。如果客户端应用程序服务器连结的应用程序服务器发生问题而无法继续执行,客户端应用程序可以立刻连接到其它机器中的应用程序服务器继续要求新的应用程序服务器提供服务。容错能力的实现方法是当客户端应用程序连接到应用服务器之后,它就可以向应用服务器要求服务。但是当应用程序服务器发生故障时,客户端应用程序如果向应用服务器要求服务,那么客户端应用程序就会产生一个错误例外。这个时候客户端可以调用TSimpleObjectBroke的SetConnectStat

温馨提示

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

评论

0/150

提交评论