我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:满堂彩 > 后方指挥所 >

基于SCORM和RIA的军用战术标图教学系统的研究与实现doc

归档日期:07-12       文本归类:后方指挥所      文章编辑:爱尚语录

  1.本站不保证该用户上传的文档完整性,不预览、不比对内容而直接下载产生的反悔问题本站不予受理。

  基于SCORM和AIR的军用战术标图教学与应用系统的研究与实现 计算机应用技术专业 当前,随着结合了桌面应用与网络应用优点的富客户端(Rich Internet Applications,RIA)技术的出现,互联网的图形领域迎来了一场变革。在众多富客户端技术中最具代表性、发展最为迅速的Flash技术以其完善的系统开发环境、优秀的用户体验以及跨平台跨浏览器等优点成为当前互联网上富客户端技术在各个应用领域的研究重点。 富客户端将是今后web应用的发展方向,Flash作为使用ActionScript语言,实现富客户端的优秀工具,正发挥其出色的作用。Flash集矢量编辑和动画创作为一体,同时能够将图形、图像、音频、动画和深层次的交互动作进行有机地结合,创建出美观和交互性强的效果,从而得到了广大用户的认可和接受,尤其是随着Flash Play播放器的逐步普及,以及Flex软件和Adobe AIR的出现,更使ActionScript3.0语言成为实现富客户端的事实标准。 本文针对当前计算机军用战术标图系统存在的问题,提出以基于Flash为前台,JAVA和PostgreSQL数据库为后台的技术加以解决,论述了搭建基于Flash的数据库军用网络战术标图系统的详细过程。同时,结合SCORM标准,建立了战术标图教学系统,不仅实现了军用战术标图的各项功能,并能实现网上异地同时标绘和网络教学的功能。 本文首先分析了现有军用战术标图系统的应用现状、特点及缺陷;然后从多个方面对SCORM标准、AIR技术,以及富媒体的应用方面进行了介绍,并对基于AIR的军用网络战术标图系统的实现进行了可行性分析,通过分析比较,得出在Flash上实现网络战术标图的可行性结论与优势所在;然后介绍了本系统的设计框架及实现功能。最后介绍了本系统在军队内部的使用情况,并提出了本系统的改进方向。 总体上讲,本系统操作简单快捷,功能齐全,实现了网络化、数据化,它不仅是一个标图系统,更兼具教学功能,在军队内部得到了认可。通过本系统的应用,将促进军队的军事演习及首长机关训练的信息化程度,在一定程度上,改变训练模式,有利于军事训练的信息化进程。 关键字:军用战术标图;SCORM;ActiopScript;富客户端;AIR;Flex SCORM and the AIR-based military tactical Plotting Teaching and Research and Implementation of Application System Major: Computer Application Technique At present, with a combination of desktop applications and network advantages of rich client applications (Rich Internet Applications, RIA) technologies, the Internet ushered in a revolution in the field of graphics. Among the many rich-client technology, the most representative of the most rapidly developing of the Flash technology, with its complete system development environment, excellent user experience, as well as cross-platform cross-browser, etc. become the Internet, rich-client technology in various areas of applications focus of the study. Rich client will be the future direction of development of web applications, Flash as the use of ActionScript language, to achieve an excellent tool for rich client-side is playing its outstanding role. Set of vector editing and Flash animation as a whole, while providing the graphics, images, audio, animation, and the interaction of deep-seated organic combination, create a beautiful and strong interaction effects, which have been recognized and accepted by the majority of users , especially with Flash Play the gradual popularization of the player, as well as Flex software and Adobe AIR The emergence of the so ActionScript3.0 language achieving de facto standard for rich client. In this paper, plotting the current computer systems for military and tactical problems raised as a Flash-based front, JAVA, and PostgreSQL database back-end technology to resolve problems, discusses the database to build Flash-based tactical military network plotting system, the detailed process. At the same time, combined with SCORM standards, the establishment of the tactical Plotting teaching system, not only the system achieved a military tactical Plotting the various functions and enables remote Internet and network while plotting the teaching function. This paper first analyzes the existing military tactical Plotting System status, characteristics and deficiencies; and from the many aspects of the SCORM standard, AIR technology, and rich media applications were introduced, and AIR-based tactical military network standard Figure System conducted a feasibility analysis, through analysis and comparison, that in the Flash on the feasibility of achieving the network tactical Plotting the conclusions and the advantages of; then introduced the system design framework and implementation features. Finally, introducing the system in use within the armed forces and made improvements in the direction of the system. Generally speaking, the system simple and quick operation, complete functions to achieve the network-based, data-oriented, it is not only a plotting system, and both teaching function, has been recognized within the armed forces. Through the application of this system will promote the armys military exercises and training in the leading organs of the degree of information, to a certain extent, change the mode of training is conducive to the process of military training information. Keywords: military tactical Plotting;SCORM;ActiopScript;rich client applications;AIR;Flex 目录 基于SCORM和FLEX的军用战术标图教学系统的研究与实现 III 目录 V 1. 前言 7 1.1 研究背景和意义 7 1.2 军内标图系统应用现状 8 1.3 论文的组织结构 9 1.4 本章小结 10 2 SCORM标准和RIA技术 11 2.1 RIA概述 11 2.1.1 RIA的产生背景 11 2.1.2 RIA技术介绍 13 2.2 Flash和Adobe AIR 15 2.3 Ajax和RIA介绍 18 2.4 SCORM标准 21 2.4.1 SCORM标准简介 21 2.4.2 SCORM的三大组成 22 2.5 本章小结 26 3 军用网络战术标图系统的设计 27 3.1 军事战术标图简介 27 3.1.1 战术标图 27 3.1.2 军队标号 27 3.1.3 军队标号的使用规定 28 3.1.4 军队标号的识别方法 30 3.2 系统框架设计 32 3.2.1 权限系统设计 32 3.2.2 系统框架设计 34 3.3 数据库和访问接口设计 35 3.3.1 数据库设计 35 3.3.2 访问接口设计 38 3.4 SCORM标准平台设计 40 3.4.1 SCORM的总体实现框架 40 3.4.2 SCORM的行为流程设计 41 3.5 Flash数据通信和事件处理机制设计 42 3.5.1 事件机制 42 3.5.2 数据通信 48 3.6 本章小结 55 4 军用网络战术标图系统的实现 56 4.1 SCORM标准教学平台实现 56 4.1.1 平台实现包结构 56 4.1.2 课件树解析生成 58 4.2 系统功能设计 59 4.3 数据库访问技术 61 4.3.1 连接池配置 61 4.3.2 数据访问对象的实现 63 4.4 战术标图教学功能 65 4.4.1 战术标图功能 65 4.4.2 标图教学功能 66 4.5 系统运行环境 67 4.6 本章小结 67 5 总结与展望 68 参考文献 69 作者在硕士期间参加项目与发表论文情况 71 前言 研究背景和意义 战术标图就是将敌我双方军事活动的有关情况,用军标符号和文字标记在地形图、地形略图或者等空间信息载体上的工作。其中,标号是战术标图的依据。它是部队作战指挥、作战模拟和其它与军事相关活动中一种常用的图形符号;而标有战术情况的地形图、略图和地图,通常称为“要图”。所以,标图也可以称为标绘要图。战术标图是拟制军用文书、表达首长决心、传达战场情况、反映战场态势、组织指挥作战、总结作战经验的重要手段。标绘好的要图具有形象直观,概括力强,清晰易读,一目了然等特点,它不仅可以弥补文字材料不易说明的各种复杂情况,而且可以代替繁琐的文字材料成为战斗文书的重要组成部分。因此,战术标图在平时和战时都具有十分广泛及重要的作用。传统的战术标图是参谋人员在传统的纸制地图上,根据规定手工进行的标图作业,这种标图方法在以往的战事中的却发挥了重要的作用,利用它便于分析判断和了解情况,便于计划工作,便于组织指挥战斗,便于拟制文书和编写战斗要报,总结作战经验。但是另一方面这种传统的标图方法也存在一些本身的问题,如方法繁琐、难于储存、修改难度大、无法重复使用等; 随着现代科学技术的迅速发展并广泛应用于军事领域,武器系统和指挥、控制、通信与情报系统都发生着巨大的变化,传统的标图逐渐过渡到借助于信息技术的计算机标绘也是大势所趋。计算机标图是使用计算机在电子地图这样的数字图像上根据传统的标图规定使用规定的符号、图形、文字等形象的表现出军事信息的一种技术。由于计算机操作简单快捷、电子地图更换灵活以及支持纸制输出和网络传输的特点,使用计算机来进行战术标图成为了一种效率更高、效果更好的新方法,使用这种方法来代替传统的标图方法显得很有必要。 另一方面,随着信息技术的发展,教学手段也在发生着巨大的改变,从最初的口口相传到近代的书本传承,再到现在的网络多媒体教学。教学的效率在逐步地提高,同时教学资源的复用率和传播率也在发生着惊人的改变,比如Adobe公司推出的flash以其丰富灵活的展现方式起到了传统教学方式难以企及的教学效果。因此将信息化的教学手段引入到战术标图领域成为了一种事在必行的趋势。通过信息化的手段不仅可以生动地讲解出战术标图的局势,还可以反映出标图过程中指挥人员的宝贵策略思想,而且这种方式还可以对战术标图的过程进行沉淀,形成可积累的教学资源,对全军战术素质的提高具有重要的意义。另外结合现在的Scorm(Sharable Content Object Reference Model)这种先进的教学模型,教学资源不仅可以沉淀下来,还可以高效的共享,甚至可以人性化的对每个学员的学习情况进行跟踪,通过这种模型,再结合现在的多媒体技术,战术标图不仅可以快捷、形象地通过计算机进行展示和讲解,还可以在传统讲解基础上加入诸多有力的辅助工具,提高教学效果,而且可以将教学的成果形成可以共享的资源,通过模型的控制自动的跟踪学习情况,从而有效的开展战术标图的运用和教育。 军内标图系统应用现状 战术标图系统是指挥自动化系统的一个重要组成部分,伴随着中国特色军事变革的步伐,我军基本作战形式和基本训练模式正逐步向一体化转变,对于由多军兵种参与的作战或演习,必然要求各单位共享作战态势,进行战术标图作业,网络战术标图系统提上日程。目前计算机战术标图系统还处于单机作业阶段,由于其不能实现异地同步标绘,故其应用范围受到很大限制,已不能满足一体化联合作战的需求。而且,部队对标图系统的要求还不仅仅局限于功能的实现,对于整个系统在军事演习及作战中的表现形式、简约程度有更高的要求。例如,军事演习时,需要将演习态势实时呈现给在场的观摩人员,这常常需将作战标图以多媒体的形势在投影屏幕上显示,而利用现有的战术标图系统,将达不到异地同步标绘,实现现场显示,以及美观大方的目的。因此,现用的计算机战术标图系统,在表现形式上,与手绘标图存在较大差异,不能实现异地同步实时标绘,而且美观度不能达到军队的要求,因此在很多场合,现行计算机军用标图系统的使用度不是很高,大家反而更倾向于使用传统标图方式。甚至在平时,大家常常都是利用Coreldraw等矢量绘图软件在电脑上画图,这样即费力,又费时。 另一方面,由于战术标图的技术一直停留在传统标图方式上,各种标图资源根本没有办法整合,所以战术标图的教学也相应的停留在传统方式上,这种方式虽然可以讲解相关的规范和步骤,但是相对单调的手段无法收到良好的教学效果,更重要的是许多宝贵的教学资源因无法沉淀而丢失,学习人员也因为缺少必要的学习资料,学习效果大打折扣。 论文的组织结构 基于上述对战术标图背景的探讨,以及现状的分析,可以看出战术标图不仅需要向现代化的多媒体技术过渡,通过信息化的手段来提高标图的效率,还有必要将新的教学手段与战术标图技术进行结合,打造一个结合战术标图运用与教学的综合平台,利用平台来提升战术标图的技术,更利用平台来融合这些宝贵的战术标图教学资源,从而有力地促进全军对战术标图的运用和学习。为此本文主要从这样一个侧面来安排工作,具体的组织结构如下: 第一章介绍了战术标图的背景、意义和应用现状,明确了战术标图信息化的必要性,以及开展结合信息化教学的重要性 第二章对战术标图教学系统中使用的标准和关键技术进行了介绍,主要是介绍了系统实现运用的RIA这种富客户端表现技术,以及先进的共享学习资源模型Scorm,着重对Scorm的三大组成部门进行了阐述。 第三章解释了系统的设计,首先对军事战术标图进行了简介,随后解释了系统的权限设计和框架设计,接着通过数据库关系图的形式展现了数据库的设计,通过类联系图的方式说明了访问接口的设计,然后说明了Scorm标准平台的总体实现框架和行为流程设计,最后对系统中的数据通信和事件处理机制进行了解释。 第四章是系统的实现部分,详细介绍了Scorm标准教学平台的实现方式,包括平台实现包结构和课件树解析流程,然后详细分析了系统的角色权限设计和数据库访问技术实现方法,最后将系统的战术标图和标图教学两大功能模块下面的各小功能进行了详细介绍。 第五章对本文进行了简要的总结,并且提出了未来的展望。 本章小结 本章通过介绍战术标图的背景、现状和意义,明确了战术标图运用和教学信息化的必要性,并且说明了本文的具体组织结构。 RIA技术和SCORM标准 RIA概述 RIA的产生背景 互联网已经日益成为应用程序开发的默认平台,传统的Web应用程序(Web Application)是基于HTML页面、服务器端数据传递的模式。而HTML是适合于文本的,随着Web应用程序复杂性越来越高,传统的Web应用程序已经渐渐不能满足Web浏览者更高的、全方位的体验要求了,这就是被Adobe公司称之为的体验问题(Experience Matters)。此时一种被称为Rich Internet Application(简称ria,中文翻译作丰富互联网应用程序)的具高度互动性和丰富用户体验的网络应用程序出现了。Adobe公司也借此机会开发了相关的技术和开发工具,促进ria的开发和普及。 企业级应用程序经历了几次系统架构方面的重要转变,在此过程中,客户端的表现能力有起有落。图2-1显示了Rich Internet Application的发展过程: 图2-1 Rich Internet Application的发展 基于主机的应用程序:应用程序提供基于文本的非图形化用户界面,只有内部人员才能进行访问。 客户机/服务器(Client/Server,简称C/S)应用程序:二十世纪九十年代随着Windows的出现和客户端处理能力的增强,出现了客户机/服务器应用程序,它们采用图形用户界面,客户端的数据处理能力比较强。但由于客户端应用程序需要进行不断的更新,因此部署与维护成本比较高,应用范围相对较小,只能为少数人所使用。 浏览器/服务器(Browser/Server,简称B/S)应用程序:九十年代中期,互联网飞速发展,出现了浏览器/服务器应用程序,Web的广泛使用解决了C/S应用程序部署、和更新、维护的困难。但由于采用了HTML页面形式的用户界面,客户端的数据处理能力较C/S应用程序有所回落。 C/S架构的缺点主要是部署、更新、维护等问题。B/S架构的缺点主要是受制于HTML的限制,无法像C/S那样使用丰富的效果来展示数据,用户体验比较糟糕。另外,稳定的客户端/服务器连接,也是必要条件,网络中断将使B/S程序无法运行。从C/S到B/S,这两者受限于技术本身的应用分别发展成了胖客户端和胖服务器端的模式,而ria的出现给我们带来重新在客户端和服务器端进行更好的平衡的机会。 RIA技术介绍 计算机进入商业领域已有40多年之久。在此行期间,客户端和服务器端的角色就一直在不断深化。企业及其雇员越来越习惯于将工作交给电脑,商用应用程序的界面外观和体系结构也为了满足新的需求而随之改变。在持续至今的演化过程中,企业始终要求更快、更轻和更丰富的因特网应用程序,既拥有传统桌面程序的丰富媒体,又拥有Web应用程序天生的丰富内容。军队也不例外,它对Web应用的丰富性提出了更高的要求,尤其是在演习过程中,需要将演习进程以标图形式,形象直观地表现出来,并通过网络传送到观摩终端,这个过程是一般的Web应用无法完成的,因此,构建“富客户端”应用,提上了议事日程。 本世纪初,Macromedia(现已并入Adobe)创造了RIA(Rich Internet Applications,富因特网应用程序),简称富客户端,是利用具有很强交互性的富客户端技术来为用户提供一个更高和更全方位的网络体验。RIA是一种Web体验,既华丽,又互动,还不失轻灵活。RIA集成了桌面应用的交互性和传统 Web应用的部署灵活性与成本分析,以创建单一而完整的用户体验。结合了声音、视频和实时对话的综合通信技术,使RIA具有前所未有的网上客户体验。图2-2就是RIA的应用程序模型: 图2-2 RIA的应用程序模型 富客户端技术使创建RIA成为可能,它提供一个运行时的环境以承载被编译的客户端应用程序,该客户端应用程序是一个使用HTTP协议发布的文件。客户端应用程序使用异步的C/S结构连接到现有的应用服务器,这是一种安全的、可升级的、具有良好适应性的面向服务模型,这种模型由当前所采用的Web服务驱动。 RIA 具有的桌面应用程序的特点包括:在消息确认和格式编排方面提供互动用户界面;在无刷新页面之下提供快捷的界面响应时间;提供通用的用户界面特性如拖放式(drag and drop)以及在线和离线操作能力。RIA具有的Web应用程序的特点包括如:立即部署、跨平台、采用逐步下载来检索内容和数据以及可以充分利用被广泛采纳的互联网标准。RIA具有通信的特点则包括实时互动的声音和图像。 客户机在RIA中的作用不仅是展示页面,它可以在幕后与用户请求异步地进行计算、传送和检索数据、显示集成的用户界面和综合使用声音和图像,这一切都可以在不依靠客户机连接的服务器或后端的情况下进行。 富客户端技术正在不断地完善中,但并不意味着会取代HTML。相反它将进一步扩展浏览器功能,使之提供更加高效和友好的用户接口。许多RIA都在浏览器中运行,甚至它本身就是HTML的一部分,所以HTML将继续保持其原有的角色。另外,由于富客户端技术可以支持运动的图象、视频、音频、双向的数据通信和创建复杂的窗体,它为创建应用程序用户接口提供了一个高效而完善的开发环境. RIA开发必须具备三个要素:富客户端技术、服务器技术和开发工具。富客户端技术充分利用本地机器的处理能力来处理数据,而不需要把某些数据发送到服务器处理,充分利用了本地机器的资源。服务器技术提供了一种与富客户端的连接机制,作为RIA的服务器技术必须从现有的服务器技术继承,可以提供一个快速的脚本环境,支持数据库应用开发、双向数据通信、实时数据通信,甚至采用一种新的服务器,例如:ColdFusion Server和Flash Communication Server等。 “富”的概念包含两方面,分别是指它具备丰富的用户界面和丰富的数据模型。 典型的富客户端模型 富客户模型将界面分解成许多的既可以和用户直接交互又可以和服务器进行通信的小单元模块。 这种将应用程序的设计从以一个个相对独立的页面为中心转移到以组件为中心的转变将会使客户层的设计提升到一个新的层次,并且会使客户层变得更加灵活。富客户层不再成为服务器响应的最终端,这同时也使程序的性能得以提高,用户使用的感觉就好像程序不需要和服务器进行通信或者只是偶尔才需要进行通信。 不像传统的模型那样,服务器收到请求后由上至下的创建客户端界面,你不用预测事件的顺序。既然每个组件都是独立的,就没有必要因为一个请求而做出影响整个视图的反应。要使每个组件都具有向服务器传送信息的能力需要每个组建知道如何处理服务器传递回来的信息。在RIA中,客户端和服务器端交互数据是不同步的,这样你就可以控制组件创建信息发送给服务器和处理服务器的响应,可以为更零散的控制去耦和分离程序功能并且组建面向服务的程序结构。 部署RIA的好处在于: 1)RIA可以继续使用现有的应用程序模型(包括J2EE和,因而无需大规模替换现有的Web应用程序。通过Rich Client技术,可以轻松构建更为直观、易于使用、反应更迅速并且可以脱机使用的应用程序。 2)RIA可以帮助企业提供多元化的重要业务效益,包括提高销量、提高品牌忠诚度、延长网站逗留时间、较频繁的重复访问、减少带宽成本、减少支持求助以及增强客户关系等。 Flash和Adobe AIR RIA领域中运行时环境的佼佼者是Adobe Flash平台。Flash平台目前是Ajax在RIA方面的主要竞争者。Flash原本是作为一个播放动画的插件而开发的。随着时间的推移,Flash Player也已经发展了多年,虽然每一个新版本都加入了一些新功能,并且其文件小,所需内存非常小。经过近十年的发展,Flash Player几乎无处不在,因特网上98%的Web浏览器都安装了某个版本的Flash Player。自2002年以来,Macromedia(现在已经归入Adobe旗下)便开始强调Flash不再只是一个动画工具。Flash 6发布以后,Macromedia开始为Flash提供更多的构建应用程序的能力。Macromedia公司发现,把播放器的普及性与其脚本语言(ActionScript)的强大功能组合在一起,开发者可以构建基于浏览器的完整应用程序,还能避开HTML的局限性。 选择Flash Player,开发者还可以摆脱浏览器和平台的不兼容性。Flash Player有许多好的特性,其中之一是,针对每个特定版本的Flash Player所开发的内容和应用程序,通常都能运行于所有支持该版本播放器的平台或浏览器。 过去,建立基于Flash Player的应用程序时,最大的障碍是创作环境,Flash本来的目的是作为用户创建互动内容的动画制作工具。有许多开发者想构建基于Flash Player的RIA,但都因不熟悉工具而受到阻碍。 Adobe公司于2006年年中推出了强大的ActionScript3语言,和支持ActionScript3的新一代的ActionScript引擎——ActionScript Virutal Machine 2 (AVM2),为Flash面向对象编程插上了翅膀。AVM2是一个新的、高度优化地虚拟机,它显著超越了使用AVM1可能达到的性能。ActionScript3在其中执行可以达到前所未有的高效率和高性能。经测试,AVM2执行ActionScript3代码比以前的ActionScript2代码执行效率要快10倍以上。 除了提高的性能和更加有效的内存利用之外,ActionScript3还提供一个编程模型,该模型对于来自其他平台的开发人员来说将非常熟悉。ActionScript3不仅语言更加一致和标准,还拥有数百个新的API用于诸如E4X、正则表达式和二进制套接字等功能。这些新功能使开发者对内容和应用程序有了更好的控制。另外,还增加了类、界面、包、名称空间和强制强类型化变量的可选编译模式,这使得ActionScript3对于大型应用程序开发更有吸引力。 ActionScript3,与ActionScript2和ActionScript1有本质上的不同,是一门功能强大的、面向对象的、具有业界标准素质的编程语言。它象征着Flash Player运行时功能发展中的重要里程碑。ActionScript3是快速构建RIA的理想语言。 ActionScript3有以下优势: 1)对面向对象编程(OOP)语言的完全支持。核心语言基于ECMAScript(ECMA262)标准,对OOP架构深层优化。 2)彻底更新的显示对象系统架构。 3)采用了先进的E4X,使XML成为ActionScript3语言的内建数据类型(native support)。操作直白、简单。与ActionScript2比较,极大地减轻子XML数据处理工作量。 4)全面支持正则表达式。正则表达式也成了ActionScript3的内建数据类型,ActionScript3对字符串的处理能力空前增强。 5)能实现标准的DOM3事件。Flash API全面支持事件机制。 6)支持异常处理机制。异常包括信息全面、易于调试和正理。Flash API全面支持异常正理机制。 尽管Flash Player仍然是开发RIA的一个好平台,但新出现的方案(比如Flex)却极大地简化了开发流程并降低了单独使用Flash Studio开发出的RIA的数量。 Adobe?Integrated?Runtime?(AIR)?是一个跨操作系统的运行时,利用现有的Web开发技术(Flash,Flex,HTML,JavaScript,Ajax)来构建富Internet应用程序,并部署为桌面应用程序。 AIR不只是把一个图标放在桌面上并允许Web应用本地运行,这是一种通过使用Flash、Flex和HTML/JavaScript等技术,在Web应用与本地桌面资源和数据之间牵线拱桥的方法。AIR支持一些强大的新功能,而在Web浏览器内部运行时,绝无可能提供这些功能。 另外,AIR还支持本地数据的持久存储,它利用AIR运行时环境内置的一个SQLite数据库,通过使用为ActionScript、Flex和JavaScript开发人员提供的各种丰富的API,可以轻松地管理SQLite数据库中的信息。 AIR集成了RIA的所有优点,并解决了RIA的主要缺点——无法与用户的操作系统交互。随着20世纪90年代因特网时代的到来,人们开始将桌面应用移植到Web浏览器中运行,以帮助解决桌面应用的分布问题。利用AIR,用户只需点击一个Web页面就可以安装应用,并在每次运行时自动完成更新,这样就能集二者之所长——既提供桌面应用的强大功能和交互性,又具有因特网应用的分布能力。 AIR相对传统的Web应用,具有如下优势: 1)本地运行,类似桌面应用程序。有客户端的优势;可以脱机运行,在需要的时候偶尔连接网络。 2)跨平台,类似java技术,在不同的操作系统上有对应的虚拟机支持,目前已经有windows和mac。 3)开发是基于现有的web技术,如Flash / Flex / ActionScript / HTML / JavaScript / CSS / Ajax /PDF,对于开发人员,不需要学习c、c++、java之类的底层开发语言,不需要学习具体操作系统底层API的开发;这降低了开发门槛,使现有的做web开发的技术人员,依赖其原本就很熟悉的开发模式,稍加训练就可以开发良好丰富的富客户端应用。 4)AIR应用可以直接访问文件系统。 5)AIR应用在浏览器之外运行,所以不存在键盘快捷键不起作用的问题。 6)AIR应用支持从操作系统向应用直接播放元素。 Ajax和DWR介绍 Ajax(Asynchronous JavaScript and XML)是结合了DHTML技术、XML以及JavaScript等编程技术,可以让开发人员构建基于XML技术的Web应用,并打破了使用页面重载的惯例。 Ajax是使用客户端脚本与Web服务器交换数据的Web应用开发方法。这样,Web页面不用打断交互流程进行重新加裁,就可以动态地更新。使用Ajax,用户可以创建接近本地桌面应用的直接、高可用、更丰富、更动态的Web用户界面。 异步JavaScript和XML(AJAX)不是什么新技术,而是指这样一种方法:使用几种现有技术——包括级联样式表(CSS)、JavaScript、XHTML、XML和可扩展样式语言转换(XSLT),开发外观及操作类似桌面软件的Web应用软件。实现Ajax的所有组件都已存在了许多年。AdaptivePath的用户体验战略部门主管兼创办合伙人JesseJamesGarrett今年2月发表在AdaptivePath网站上的一篇文章中杜撰了这个术语。 异步这个词是指AJAX应用软件与主机服务器进行联系的方式。如果使用旧模式,每当用户执行某种操作、向服务器请求获得新数据,Web浏览器就会更新当前窗口。 如果使用AJAX的异步模式,浏览器就不必等用户请求操作,也不必更新整个窗口就可以显示新获取的数据。只要来回传送采用XML格式的数据,在浏览器里面运行的JavaScript代码就可以与服务器进行联系。JavaScript代码还可以把样式表加到检索到的数据上,然后在现有网页的某个部分加以显示。 在面向消费者的诸多应用当中,Google的Gmail和GoogleMaps就是最常见的例子。在Gmail当中,AJAX负责如何开启线程会话,以显示不同邮件的文本内容。而在Maps当中,AJAX允许用户以一种似乎无缝的方式拖拉及滚动地图。 还有雅虎的Flickr像片共享应用和亚马逊网站的A9搜索引擎。另外,雅虎新的Web邮件服务可能很快就会吸引AJAX支持者的莫大关注,这项服务基于雅虎收购Oddpost后得到的技术。 这些UI都充分地使用了后台通道,也被一些开发者称为“Web2.0”,并导致了大家对Ajax应用兴趣的猛涨。 然而,AJAX应用软件厂商越来越把目光瞄准了企业。譬如说,Scalix的WebAccess电子邮件应用软件其实比微软Outlook自己的Web邮件界面更像Outlook。 不过AJAX应用软件的适用领域具有一定的局限性。因为它们利用了一些最新的Web技术,所以只能在某些Web浏览器里面运行——不过AJAX适用的浏览器正越来越多。同样支持AJAX技术的运用框架也越来越多,例如jQuery,prototype,dojo等,本文根据自身需要选择了性能和易用性都良好的DWR开源框架,下面就具体的对该框架进行介绍。 DWR(Direct Web Remoting)是一个开源的类库,可以帮助开发人员开发包含Ajax技术的网站。它可以允许在浏览器里的代码使用运行在Web服务器上的Java函数,就像它在浏览器里一样。DWR包含两个主要的部分,其一是运行在浏览器客户端的Javascript,这部分被用来与服务器通信,并更新页面内容;其二是运行在服务器端的Java Servlet,这部分被用来处理请求并将响应结果发送给浏览器。 DWR采取了一种动态生成基于Java类的Javascript代码的新方法来实现和处理Ajax。这样Web开发人员就可以在Javascript里像使用浏览器的本地代码一样使用Java代码,而实际上这些Java代码是运行在服务器端并且可以自由访问Web 服务器资源的。出于安全的考虑,Web开发者必须适当地配置,决定哪些Java类可以安全地被外部使用。 这个从Java到Javascript的远程功能方法给DWR的用户带来了非常像传统的RPC机制,就像RMI或者SOAP一样,而且拥有无插件运行在Web上的优势。 DWR认为浏览器/服务器协议没有那么重要,其更倾向于保证编程界面的简单自然。对此最大的挑战就是把Ajax的异步特性和正常Java方法调用的同步特性相结合。在异步模式下,结果数据在开始调用之后的一段时间之后才可以访问。DWR解决了这个问题,允许Web开发人员使用一个特殊的方法参数来指定一个函数,以便在数据返回后回调此函数。 图2-3来自DWR的官方文档,展示了DWR如何利用一些类似Javascript的onClick等事件的结果来改变一个下拉列表框的内容。这个事件处理器调用一个DWR生成的Javascript函数,它和服务器端的Java函数是匹配的。DWR接着处理了Java和Javascript之间的所有远程信息,包括转换所有的参数和返回需要的值。接着DWR执行了相应的回调函数(populateList)。这个例子演示了如何使用DWR功能函数来改变网页内容。 图2-3? DWR交互过程 使用DWR可以有效地从应用程序代码中把Ajax的全部请求-响应循环消除掉。这意味着,客户端代码再也不需要直接处理XMLHttpRequest对象或者服务器的响应,不再需要编写对象的序列化代码或者使用第三方工具才能把对象变成XML,甚至不再需要编写servlet代码把Ajax请求调整成对Java对象的调用。 DWR是作为Web应用程序中的servlet部署的。可以把它看做一个黑盒子,这个servlet有两个主要作用:首先,对于公开的每个类,DWR动态地生成包含在Web页面中的Javascript。生成的Javascript包含存根函数,代表Java类上的对应方法并在幕后执行XML HttpRequest。这些请求被发送给DWR,这时它的第二个作用就是把请求翻译成服务器端Java对象上的方法调用,并把方法的返回值放在servlet响应中发送回客户端,编码成Javascript。DWR还提供了帮助执行常见的用户界面任务的Javascript工具函数。 SCORM标准 SCORM标准简介 SCORM 共享内容对象参考模型(Sharable Content Object Reference Model)是由美国国防部ADL(Advanced Distributed Learning)组织所拟定的标准,对于数字内容教材的制作、内容开发提供一套共通的规范。 教材再用与共享是SCORM的核心概念。 SCORM强调的精神是教材可以透过统一的格式跨平台、可以真正的达到可重复使用、追踪学习记录也可以有统一的标准,更能符合学习者的需要。 高级分布式学习(ADL)是美国国防部(DoD)和白宫科技政策局(OSTP)在1997 年11月成立的研究项目。ADL组织通过ADL协同实验室(ADL Co-Lab)为一些DoD活动提供了场所并组织联合代理发起人和项目经理协同工作。ADL组织的使命是为高质量的教育和培训提供途径以满足个体的需求, 经济有效地传递且不受时间地点限制。ADL组织的工作目标主要是促进动态的、有成本效益的学习软件和系统的大规模开发,进而刺激这些产品的市场以满足军事服务和民族劳动力未来的教育和培训需求。ADL组织的具体工作就是ADL规范和指导方针(如SCORM)的发展和贯彻执行。 基于任何可以通过网络传播的内容都能很容易地在其他教学设施中应用而对访问和网络交互没太多要求的假设,SCORM标准描述了一个调配模型,这个调配模型提供一些能被广泛接受和贯彻执行的数字化学习标准。这些标准包括关于学习者学习对象之间的信息交流的应用编程接口(Application Programming Interface ,API)、一个描述这些信息的定义数据模型、一个实现学习内容互操作的内容包装规范、一些用于描述学习内容的标准的元数据元素,以及一些用于组织学习内 容的标准的排序规则。 由于SCORM采用以上标准方法来定义和存取关于学习对象的信息,符合SCORM标准的学习内容对象(Sharable Content Object , SCO)具有高水平的可访问性、适应性、可承受性、持久性、互操作性、重用性等。SCORM标准的使用将会增强LMS运行不同商家工具开发的内容和这些内容的数据转换的能力,增强不同商家开发的LMS运行相同内容以及这些内容在执行时的数据交换的能力,增强多种网络LMS产品/环境访问相同知识库的可执行内容并运行这些内容的能力。这种策略消除了为适合最新的技术平台需要做的许多开发工作,将会使开发者更多地关注有效的学习策略。 SCORM的三大组成 CAM CAM,全称为Content Aggregation Model,指SCORM的内容集合模型。它的目的是提供一个公共的方法,把学习资源组合成学习内容。它还定义了如何确认和描述学习内容,怎么整合成一个课程或课程的一部分,学习内容如何在学习管理系统和内容知识库这样的系统之间移动。许多组织在SCORM的开发方面做出了重要的贡献,如欧洲远程教学和分布式网络联盟(ARIADNE)、航空工业计算机培训委员会(AICC)、电气和电子工程师协会学习技术标准委员会(IEEE LTSC)、教学管理系统全球化学习联盟(IMS)等。 SCORM内容集合模型由下面几个内容组成: 1.?内容模型:定义了一次学习体验的内容组件的命名。 2.?内容包装:定义了一次学习体验的固定动作(内容结构)以及如何在不同的环境中组合学习资源的活动(内容打包)。 3.?元数据:一种详细描述控制模型组件实例的信息的机制。 4.?序列和导航:一组定义规则集的模型,描述了活动的固定次序。 图2-4 CAM的结构 RTE SCORM运行时环境模型定义了:发布内容对象、在LMSs和SCOs之间建立通信机制以及根据LMSs和SCOs之间的通信信息来管理跟踪信息。在SCORM中,内容对象有两种: ?● 可共享内容对象(SCOs), SCOs可以在运行时与LMS通信; ● 素材(Assets),Assets在运行时不与LMS通信;运行时环境主要处理● 将内容对象传递到学习者的浏览器中(例如发布学习内容); ● 在需要时,内容对象如何与LMS互相通信; ● 内容对象的什么信息应该被跟踪以及LMS如何管理这些信息; SCORM的目的是学习资源可以在不同的学习管理系统中重复使用和具有互操作性。要使这些成为可能,必须有公共的方法启动学习资源、公共的机制使学习资源和LMS进行交流,并要有预定义的语言和词汇形成这种交流的基础。实时运行环境(Run-Time Environment)就提供了这种公共机制。实时运行环境有三个方面: 运行(Launch)、应用编程接口(API)和数据模型(Data Model)。 ●( 运行(Launch)处理为LMSs定义了一个通用的方法来启动内容对象。在SCORM中定义了两种内容对象:Assests和SCOs。运行处理确立了在运行的内容对象与LMS之间的通信机制,这种通讯通过公共的API进行标准化。 ● API是内容对象与LMS之间传送的信息的一种通信机制,使用API可以开始、结束、获取、存储数据等动作。 ● 数据模型(Data( Model)主要描述了在SCO与LMS之间传送信息数据的模型,如SCO的跟踪信息,SCO的完成状态、一次测试的成绩等数据。在学习者会话中,LMS必须维护来自SCO数据模型的状态信息。而SCO需要利用这些预先定义的信息,以便在不同的LMS中重复使用。 SN 序列是LMS所应该具备的功能,所谓序列就是对内容对象(SCOs或Assets)的发送次序进行排列,而且能够允许SCO传递导航请求,为学习者提供导航控制能力。包含以下几个主题: 序列的概念和技术(如学习活动,活动树,簇); 序列定义模型(如能被应用在活动上的序列规则的详细内容和需求); 序列行为模型(如LMS所采取行为的描述,该行为由相关的序列规则、学习尝试以及学习内容决定的); 导航控制和需求; 导航数据模型; 使用序列和导航在内容和LMS间通讯是非常容易的,如在运行时基于学习者的选择以及学习进展上提供学习内容。使用序列与导航机制,当学习内容递送的学习者面前时, LMS就能够跟踪学习者的学习进展和学习成绩。 SCORM序列概述 SCORM序列的部分是基于IMS的简单序列(SS)规范所定义的。SCORM SN定义了如何在SCORM环境中应用和扩展IMS SS规范。它定义了一些必须的行为以及在运行时一个符合SCORM结构的LMS必须处理的序列信息。更明确的说,它描述了一个学习活动树中的学习流程和学习分支,这些分支与流程是根据学习者与内容对象互动的结果以及内容作者的序列规则。 SCORM没有规定在运行时LMS何时、何地、怎样创建活动树,以及在内部怎样描绘和管理活动树。 SCORM序列依赖:一个定义好的学习活动结构;活动树;定义好的序列策略,序列定义模型;SCORM序列行为; SCORM导航概述 导航表现为存在的用户接口可以触发导航事件。导航可以由LMS提供,也可以由内容对象自行提供。当一个学习者触发了(导航)事件,LMS将事件转换为导航请求,处理请求,然后或许将下一个学习活动发送给学习者。 SCORM没有规定导航所使用的用户界面(UI)。 本章小结 本章介绍了RIA技术出现的背景、概念以及其技术特性,虽然介绍了RIA领域的代表性技术Flash和Adobe AIR ,然后介绍了本文使用的Ajax技术以及实现该技术的框架——DWR,最后重点介绍了Scorm标准和它的三大组成部分——CAM、RTE和SN。 军用网络战术标图系统的设计 军事战术标图简介 地图在军事中应用最广泛,称作。军事地形学是军人的基本训练科目之一,尤其是对于各级军官和各类侦察人员。各级指挥员还必须学会标绘(简称:标图),更是参谋人员“六会”基本功之一。 战术标图 战术标图是指以军队标号和文字将军事情况标绘在地图上的作业。通过战术标图能把复杂的军事情况简明地显示在地图上,广泛用于军队指挥、军事训练和学术研究。指挥员和参谋人员在准备和实施作战任务中,通常要标绘敌我情况图、首长决心图、作战计划图、协同动作计划图、工作图、行军路线图、作战经过图等。标绘内容一般有:双方兵力部署、阵地编成、作战决心以及作战经过等。标图作业,依据文字材料或口述情况,采用规定的军队标号,结合地形进行。通常先标战斗分界线,然后按先敌方后己方、先本部后友邻、先前沿后纵深、先主要方向后次要方向、先队标后队号的顺序标绘。如果情况过于复杂,标号发生重叠时,应保留重要情况,舍去次要情况,或互相避让。临时增补的标号要附以图例说明。标号不易表达的事项应编写附记。标图要求迅速及时,突出主题,清晰易读,正确反映客观实际。 军队标号 军队标号是队标和队号的总称[]。队标是用以标示部队、机构、武器装备、设施和军队活动的图形;队号是用以标注队标的代字(汉字)和数字。 军队标号是由不同的线画、图形、数字、代字(汉字)和颜色构成的。现行的《中国人民解放军军队标号》是总参谋部分别于1981年3月19日和1987年7月7日颁发的,是全军训练和作战标图的依据。它由使用规定、标号、代字和附录4个部分组成,共有标号540个(组)、代字161个(组)。 军队标号的使用规定 ▲ 标号的颜色 1. 标示我军步兵、装甲(坦克)兵、空降兵、陆军航空兵、防化兵、侦察兵、汽车兵、骑兵、导弹部队以及海军、空军、武装警察部队、民兵的队标用红色;标示我军炮兵、防空兵、工程兵、通信兵、电子对抗兵的队标用黑色;标示我军的队号和附记一律用黑色。 2. 标示敌军情况,用我军同类性质的标号,其颜色一律用蓝色。 3. 标示核、化、生武器时,在红色和蓝色队标轮廓线. 标示不明国籍的舰船、飞机、水面漂浮物和海军海上战斗范围等标号用深绿色。 5. 标示不同阶段(时节)的战斗情况,可分别在其队标上衬以不同颜色或加绘不同式样的点线. 有一种颜色标图是,我军用单纯,敌军用双线. 直立标示的队标。有直立含意和直立特性的队标均应直立标示。如指挥所、观察所、调整哨、电台、雷达队标等。 2. 按实际方向标示的队标。有行动方向和规定方向的队标应按其方向标示;兵器队标应指向主要射击方向;指观所、防空兵器应直立标示(行军纵队中的团以上指挥所,队标旗杆应同行军纵队的轴线垂直,旗面展向行进方向的后方)。 3. 队号书写。多数队号应由左至右直立书写;少数队员按队标的实际方向书写,如行军纵队中的指挥所,有行动方向的部(分)队、预备队、调整线等队标中的代字或汉字。 ▲ 队标的大小和定位 队标依其比例的大小可分为三种: 1. 依比例尺标绘的面状队标。如部队占领(集结)地域,炮兵、防空兵群阵地地域,染毒地域,巡逻空、海域等。 2. 半依比例尺标绘的线状队标。如行军纵队长度,攻击方向深度,地雷场、铁丝网和进攻战斗队形的下面宽度等应依地图比例尺标绘;行军纵队宽度,地雷场、铁丝网和进攻战斗队形的纵深,一般不依地图比例尺标绘。 3. 不依比例尺标绘的点状队标。如各种兵器、车辆、工事、指挥机构、通信设施和预备队等队标,只能以相应队标的定位点标示其位置或活动情况。标绘此类队标时,大小要适宜,彼此要相称。 队标的定位,以其大小的不同可分三种: 一是面状队标,以其轮廓线定位;二是线状队标,以其本身或中心线定位;三是点状队标,以其定位点定位。 标图中图上位置受限时,为了准确标示队标的位置,可在队标正下方或一侧绘一直线或折线,末端指到实际位置。当数个部队、机构或设施的队标位于同一地点不便标绘时,可将这些队标用大括号括起来,或画在方框内,绘一引线末端指到实际位置。 ▲ 队标的实线. 实线。标示军队的实际配置和行动的队标用实线. 虚线。标示计划(预定)、预备的配置和行动,假的配置的队标用虚线,其中假的还应加注“W”字。 ▲ 队号注记 1. 部队番号注记。部队番号的队号通常由序号数字、军兵种(专业)代字和级别代字三部分组成。书写的基本形式是,先序号数字、后军兵种(专业)代字、再级别代字,由左至右横排直立书写;数字比代字高1/5~1/4,队号的下缘取齐; 2. 部队建制(指挥)关系注记 (1)逐级连写法。通常用以注明部队的建制(指挥)关系。书写时,上级队员在前,下级队号在后,按级别顺序依次写出,其大小以最下级队号的大小为准。从队号中能看出建制关系的,可省略中间一级的队号。 (2)分式写法。基本形式是在下级与上级队号之间用斜线隔开,下级队号写在斜线左边,上一级或上数级队号依次写要斜线右边,相邻两级可省略下级代字,但隔级不能省略代字。 (3)图上看不出建制关系时,通常采用逐级连写法或分式法。图上能看出建制关系或兵种(专业)性质时,注全本级队号,可省略下一级兵种(专业)代字,队标上有级别符号时,可省略其级别代字。 3. 并列单位注记。同一建制单位相互无隶属关系的部(分)人,不论级别高低,均可视为并列单位。其队号注记应在并列单位的队号之间以“·”隔开。同兵种并同级别的队号可只写一个级别代字;同级不同兵种的,不能省写级别代字。 4. 配属和欠缺单位注记。用“+”表示配属,“-”表示欠缺。配属、欠缺的单位和数量,均应写在被配属、欠缺单位队号之后的括号内。 5. 数字注记 (1)数量注记。说明火器、车辆、线路、建制单位、装备、设施等数量时,其数字应加括号,字高可等于或小于代字、队标。数量为1时可不注记。表示多余、不足、大约概略数量时,可分别在括号内数字的右上角注以“+”、“-、“≈”符号。 (2)序数注记。表示次序的数字叫序数。书写时应在数字前加“№”,或将数字写在圆圈内。在同一幅要图中,阵地编号的序数注记常用后一种,而在阵地中的有关队标的编号序数注记则用前一种,以免相互混淆。 (3)时间注记。书写时,按年、月、日、时、分的顺序,有阿拉伯数字由左至右依次写出,将年、月、日用“·”隔开,时和分的数字要连写,并在分的数字下缘加一横线小时计,时数、分数不足两位时,以“0”补位。 (4)不同性质或不同单位的数字连写时,以斜线隔开,并加注其性质和单位代字,按由左至右的顺序阅读。 军队标号的识别方法 军队标号很多,在其结构上遵循了一定的规律。 ▲ 队标图形的规律 队标图形主要有三种,如图3-1。 图3-1 1. 几何图形。用规则的几何图形表示部队、机构和武器装备等。如中型坦克、观察所、部(分)队基本队标等。 2. 象形图形。图形与其表示对象的平面或侧面形状相似。如空降兵、汽车、歼击机、导弹队标等。 3. 会意图形。图形与其表示对象的有关意义相应,具有较强的象征性。如战斗队形、战斗行动、战斗分界线队标等。 队标图形的设计,具有简明、形象、易于标绘等特点。 ▲ 队标组合的规律 某些标号设计时是以基本图形同队号注记、级别符号、附加线画、专用符号等组合而成的。其组合规律大体有以下四种: 1. 以基本图形与队号注记组合成同一类型不同级别、不同兵种(专业)的标号。 2. 以基本图形与级别符号组合成同一类型不同级别的队标。 3. 以基本图形与附加线画(图形)组合成同一类型不同类别的队标。 4. 以基本图形与专用符号组合成同一类型不同类别的队标。 ▲ 代字组合的规律 军队标号的代字除少数采用通用代字外,绝大多数是采用其军语名称汉语拼音的第一个大字字母组合而成。如“炮兵”,汉语拼音为Paobing,其代字为“PB”。代字一般按此规律组合,组合后所有代字均不超过三个字母,如出现重复和军语名称偏多时,又有如下组合规律: 1. 增加(换取)代字字母。当出现重复时,就将不常用的军语名称增加军语名称第一个汉字拼音的第二个大写字母。如“大队”与“导弹”重复,都是“DD”,则导弹取“DAD”;又如“中队”与“总队”、“支队”重复,都是“ZD”,则“总队”取“ZOD”,“支队”取“ZHD”。如仍出现重复时,则增加军语名称第二个汉字拼音的第二个大写字母。如“基地”与“舰队”、“机动”重复,都是“JD”,则“舰队”取“JID”,“机动”取“JDO”。换取代字,如“连”与“旅”第一字母重复,则“旅”换取“U”。 2. 缩减代字字母。军语名称汉字过多,代字组合后超过三个字母时,可按两种规律缩减。一种是按习惯叫法取简称。如人民武装部,简称“人武部”代字为“RWB”;加农榴弹炮,简称“加榴炮”代字为“JLP”;合成预备队,简称“合成”代字为“HC”。另一种是采用跳取代字的方法缩减,如摩托化步兵取“MH”;机械化步兵取“JH”;反坦克导弹取“FTD”。 3. 省略代字字母。为了使用方便,一般将军、兵种中的“军”和“兵”的代字省略。省略后,几乎所有的兵种代字均只有两个字母的规律。但有两种例外不能省略军、兵种代字。一种是不能省略军种代字的有陆军航空兵(LH)和海军航空兵(HH)两个兵种。如果省略去不仅违背了兵种是两字字母的规律,而且同海军的代字(H)重复;另一种是不能省略兵种代字的有炮兵(PB)、民兵(MB)和骑兵(QB)三个兵种,如果省去,同样违背了兵种是两个字母的规律,而且分别同排(P)、海里(M)和群(Q)的代字重复。 系统框架设计 权限系统设计 访问安全始终是可信赖的应用系统的重要因素。访问安全可以分为外部访问安全和内部访问安全两大类,外部访问安全主要针对来自于外部用户的恶意攻击,比如sql注入、木马攻击等,而内部访问安全主要是指权限系统,控制用户对业务操作的权限管理与控制。权限系统涉及到三类对象:用户/角色、动作/操作、授权状态,另外动作/操作通常是针对某个特定的对象,因此用户权限系统的基本逻辑为:谁(用户/角色)在什么应用模块上是否具有某项操作(动作)的授权(授权状态:授予-Grant、拒绝-Deny、继承-Revoke)。 帐户与角色 帐户对应于系统中的accounts表,角色对应于系统中的roles表。角色使用权限的基本单位,角色是具有一组相同授权的用户的交集。用户与用户之间没有互相隶属的关系,它只可以隶属于角色,描述他们之间隶属关系的对象,一般称之为“成员关系”,通常它至少包含:用户编号、角色编号,在本系统中表现为privileges(account_id, role_id)。用户编号和角色编号组合具有唯一约束,这里的用户编号唯一的标识一个用户对象,而角色编号则始终对应一个角色对象。 动作定义 在涉及数据库操作的应用中,四个基本操作是查看(Select)、删除(Delete)、新增(Insert)以及更新(Update)。在一个企业应用中当然还会有更多其他的操作,尽管这些操作可能最终都基于这四个基本操作,也可能是其他的非数据操作,而我们始终无法在刚开始就完全固定这些可能的操作,为此,必须能让系统开发人员根据每个具体的应用模块来定义其所属的特定的动作/操作。动作/操作通常具有编号、名称两个属性。动作的概念记录下系统中的operaions表中,该表的两个字段id和name分别对应于动作的两个属性。 应用模块 应用模块是界定角色所具有的权限的位置,它通常具有三个属性:名称,在系统中唯一;标题,描述动作/操作;动作列表,表示该应用模块所可能具有的所有操作。对应于本系统,应用模块体现为departments。表现出了角色具有的是哪个机构上的操作权限。 授权 授权是指用户/角色能对某些操作(动作)是否具有执行的许可。这里的“是否具有执行的许可”实际上指的是授权的三种状态:授予-Grant、拒绝-Deny、继承-Revoke。本系统通过privileges(role_id, department_id, operation)来管理这种操作的授权。 图3-2 授权示意图 系统框架设计 本系统在以往传统的三层设计的基础上进行了一定的扩展,在表现层与业务逻辑层之间加入了OperationManager权限系统来控制操作的安全性,在业务逻辑层与数据库持久层之间加入了Dao作为统一的数据访问接口。当用户通过浏览器发起一个操作请求的时候,为了提高系统的反应速度、加强用户的使用体验,系统并不进行表单(Form)的提交,而是通过DWR的Ajax框架进行远程的请求(RPC,Remote Procedure Call Protocol),通过前台的js直接去调用后台的Operation操作,在这个过程中系统会事先通过OperationManager进行权限检查,先检查是否有这样的操作存在,即操作是否合法,再检查当前用户是否可以执行该操作,一旦有任意一项无法通过,系统会提示错误信息并且返回。如果检查通过,验证了当前用户可以执行这样的操作,系统会开始异步的执行程序,一端是前台的js程序会继续往下执行,另一端后台的operation也会同步执行,并且将执行结果封装为js的对象通过callback返回给前段的js程序。在operation的执行过程中,系统可以利用DaoManage的getDao函数取出需要的Dao对数据库进行操作,并且将操作结果或者返回值返回到operation中,通过operation借助DWR的传输通道传输到前台。通过这个流程可以实现安全、高效、可控的操作控制。 图3-3操作流程图 数据库和访问接口设计 数据库设计 数据库的设计需要满足数据库范式要求,满足这些规范的数据库是简洁的、结构明晰的,同时,不会发生插入(insert)、删除(delete) 和更新(update)操作异常。反之则是乱七八糟,不仅给数据库的编程人员制造麻烦,而且面目可憎,可能存储了大量不需要的冗余信息。数据库范式对于数据库设计很有好处。在数据库设计中,为了更好地应用数据库范式,就必须理解数据库范式: 第一范式:1NF是对属性的原子性约束,要求属性具有原子性,不可再分解; 第二范式:2NF是对记录的惟一性约束,要求记录有惟一标识,即实体的惟一性; 第三范式:3NF是对字段冗余性的约束,即任何字段不能由其他字段派生出来,它要求字段没有冗余。 鲍依斯-科得范式:BCNF对3NF的扩展,即任何字段不存在对任一候选关键字段的传递函数依赖。 良好的数据库设计一般要求规范到BCNF范式。但是没有冗余的数据库设计可以做到,而没有冗余的数据库未必是最好的数据库,有时为了提高运行效率,就必须降低范式标准,适当保留冗余数据。具体做法是:在概念数据模型设计时遵守BCNF范式,降低范式标准的工作放到物理数据模型设计时考虑。降低范式就是增加字段,允许冗余。 PostgreSQL是以加州大学伯克利分校计算机系开发的 POSTGRES,版本 4.2为基础的对象关系型数据库管理系统(ORDBMS)。 POSTGRES 领先的许多概念只是在非常迟的时候才出现在商业数据库中。 PostgreSQL 是最初的伯克利的代码的一个开放源码的继承人。 它支持大部分SQL:2003 标准并且提供了许多其他现代特性:复杂查询、外键、触发器、视图、事务完整性、多版本并发控制 同样,PostgreSQL 可以用许多方法扩展,比如, 通过增加新的:数据类型、函数、操作符、聚集函数、索引方法、过程语言 并且,因为许可证的灵活,任何人都可以以任何目的免费使用,修改,和分发 PostgreSQL,不管是私用,商用,还是学术研究使用。 基于以上PostgreSQL的特点,以及系统本身性能和成本的考虑,本系统采用的数据库是PostgreSQL,系统数据库的设计如下: 图3-4 数据库设计 下面对数据库中的各个表进行说明: users:用户信息表,记录了用户的姓名、性别、机构、是否有效的信息,是系统用户的基础信息表。 accounts:用户帐号信息表,记录了用户帐号的登录明、密码、登录次数等信息,同时表中的user_id字段关联到users表中的id字段,实现了一个用户多个帐号的绑定。 roles:角色信息表,记录了角色的姓名和机构,系统中现有的角色主要是“系统管理员”和“系统用户”两大类,然后数据库设计的良好扩展性可以实现灵活的角色增减、以及相应角色权限的控制。 account_roles:帐号角色关联表,它将系统中的所有用户与特定的角色进行关联,这样也就实现了帐号权限的控制。 operations:操作信息表,为了保证信息的伸缩性,系统设计中各种操作是灵活动态管理的,通过这张表记录了系统中能够进行的所有操作,未在这张表中出现的操作在系统中是不允许的。 privileges:角色操作关联表,存储了角色与能够进行的操作的关联信息,通过对这张表的操作,可以对特定的角色增删对应的操作。 cousewares:课件信息表,记录了系统中所有课件的信息。 maps:地图信息表,记录系统中标图使用到的地图的信息,通过该表的操作对系统中地图进行扩展。与课件信息表关联后,可以将标图的地图信息进行存储。 icons:图标信息表,记录了系统中使用到的图标的信息,同样可以根据系统的需要进行扩展。 courseware_icons:课件图标关联表,将课件与课件中使用到的图标进行关联,通过图标的位置、缩放、旋转等信息,结合课件中关联到的具体地图信息,可以将整个标图的结果存储下来。 courseware_files:课件文件关联表,其中文件是记录了courseware_icons中的同一课件所有图标的放置顺序,通过该文件可以对整个标图过程进行重放。同时一个课件可以关联多个文件,这多个文件就标识出了同一地图上战术标图的多种策略,形成参照对比。 访问接口设计 JDBC(Java Data Base Connectivity,java数据库连接)[23]是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC为工具/数据库开发人员提供了一个标准的API,据此可以构建更高级的工具和接口,使数据库开发人员能够用纯Java API编写数据库应用程序,有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。Java数据库连接体系结构是用于Java应用程序连接数据库的标准方法。JDBC对Java程序员而言是API,对实现与数据库连接的服务提供商而言是接口模型。作为API,JDBC为程序开发提供标准的接口,并为数据库厂商及第三方中间件厂商实现与数据库的连接提供了标准方法。JDBC使用已有的SQL标准并支持与其它数据库连接标准,如ODBC之间的桥接。JDBC实现了所有这些面向标准的目标并且具有简单、严格类型定义且高性能实现的接口。 JDBC 是个“低级”接口,也就是说,它用于直接调用 SQL 命令。在这方面它的功能极佳,并比其它的数据库连接 API 易于使用,但它同时也被设计为一种基础接口,在它之上可以建立高级接口和工具。本系统中使用的ESQL就是对JDBC简单封装后的一种更高级、更友好的数据库访问接口,它使用的是一种更易理解和更为方便的 API,这种API在幕后被转换为诸如 JDBC 这样的低级接口。 在关系数据库的对象/关系映射中,表中的每行对应于类的一个实例,而每列的值对应于该实例的一个属性。于是,程序员可直接对 Java 对象进行操作;存取数据所需的 SQL 调用将在掩盖下自动生成。此外还可提供更复杂的映射,例如将多个表中的行结合进一个 Java 类中。关键代码如下: /** 通过row创建实体umns) { string name = column.ColumnName; object value = row[column]; map.Add(name, value); } return CreateEntityT(map); } ESQL的对外接口只有两个类:ESQL, PreparedESQL。一般的数据库访问通过ESQL进行,如果有批量更新,可以使用PreparedESQL提高性能。通过ESQL对数据库进行查询后,查询结果直接通过 列名-属性名 对应的方式封装到对象中,并且通过对应的转换器将数据库中的数据类型映射成为Java语言中对应的数据类型,类型转换器如下图所示: 图3-5 类型转换类图 SCORM标准平台设计 SCORM的总体实现框架 Scorm系统主要是CAM、RTE和SN三部分组成,因此实现该系统时,根据软件解耦的思想分别对三部分进行了独立设计,这三部分中CAM主要负责内容组织模型的管理,SN主要控制序列和浏览顺序的管理,RTE则搭建一个运行时环境,由于Scorm中有多种数据结构需要处理和储存,为了分离这些数据结构,系统专门将Scorm中所有的数据结构设计为一个子系统——DataManagement数据管理子系统,主要管理已经加载的课件树和所有用户的学习数据。另外因为本系统的Scorm主要是服务于教学,因此Scorm需要是课程管理相结合,为此专门设计了CourseManagement课程管理子系统,这个子系统用于管理Scorm课件。系统的系统设计图下图所示: 图3-6 系统总体设计 SCORM的行为流程设计 用户在使用Scorm平台时主要分为两大类请求:课件管理请求和交互请求,课件管理请求中系统会根据用户是需要注册课件、列出课件还是显示课件来相应的进行处理,而交互过程中,交互动作分为:Start、Resume、Resume/All、Continue、Previous、Choice、Exit和Runtime八大类请求,不同的请求有不同的处理流程,具体如下图所示: 图3-7 行为流程设计 Flash数据通信和事件处理机制设计 事件机制 ActionScript 3事件机制的设计基于W3C DOM Level 3事件模型(Document Object Model Level 3 Events Specification)[24~28]。DOM3事件模型是一套业界标准的事件处理架构。相比前两个版本的ActionScript的事件处理机制,DOM3事件模型提供了一个更为清楚、强大、高效的事件处理机制。对ActionScript 3编程人员来说,在使用上也更加方便和直观。 事件处理机制是ActionScript 3中非常重要的组成部分。虽然,与事件处理机制相关的类是在flash.events.*包中,并不是处于顶级类中,但它的作用、地位、重要程序一点也不输给顶级类。人机交互、网络加载、异步处理,个个都都不开ActionScript 3事件处理机制。在ActionScript 3中没有线程的概念,事件机制就是异步处理的一个重要补充。另外,ActionScript 3中相当数量的API都集成了事件。这使得事件机制和ActionScript 3融为一体,为开发带来了很多方便。 事件处理机制的产生和原理 ActionScript 3采用的这种DOM3事件模型是一种非常优秀的解决方法,可以让交流数据的双方(或多方)脱耦。简单地说,所谓脱耦就是脱离耦合性,即各个对象之间的相互依赖性大大降低。一般,我们交流数据和信息的方式通常是传参数给对象指定的公开方法(即对外接口)。但这带来一个问题:参数的交流太过依赖于参与交流的对象。一旦提供数据的对象对外接口改变,那么迫使所有接收数据的对象改变接受方式。而任意一个接受数据对象接口的改变,也必然导致该对象不能正确接受数据,或者要改变所有其他对象接口。这样,程序的稳健性大大降低。一个好的程序不应该有如此紧密的相互依赖,即所谓的“耦合”。如何让对象各自之间的耦合降低,是一个大课题。在不同的应用环境下,有着不同的解决方式、不同的编程模式,但根据人机UI交互事件、网络加载等事件的特征,ActionScript 3给出了一个很好的解决方案——DOM3事件处理机制。 DOM3事件模型定义了一套标准的生成和处理事件消息的方法,使程序中的对象可以相互交互、通信,保持自身状态和响应变化。通俗地说,数据的提供者只管发出数据对象,只要确保数据对象是flash.events.Event类(或子类)的实例即可。这种数据对象,称为事件(Event)。数据对象的发出者,称为事件发送者(Event dispatcher);接受事件的对象,称为事件侦听者(Event listener)。 DOM3事件模型的优点在于,事件发送者和事件接收者的依赖性大降低。事件发送者只需要发送事件对象,事件侦听者只需要接受事件对象。事件接收者可以改变自已的外事接口,只需要确保发送的事件对象不变即可。事件侦听都也不必关心事件接收者是否变化,只需要保证自已能够正确处理接收到的事件对象即可。 其实,DOM3模型的思维和我们日常生活的思维非常类似。我们以点菜为例,来理解这种思维。 当我们作为客人走入一家饭店时,就等于告诉这家饭店的服务生,过会儿我们要点菜,你要过来服务。当点菜时,我们只要报上所要的菜,服务生自然会记下我们点的菜,并吩咐厨房。在这个事件里,就包含着DOM3事件的流程。 客人是事件发送者(Event Dispatcher),点菜就是客人发送的事件(Event)。服务生就是事件侦听器(Event Listener)。 这个事件包含着3条主要内容:事件的类型、事件的目

  “原创力文档”前称为“文档投稿赚钱网”,本网站为“文档C2C交易模式”,即用户上传的文档直接卖给(下载)用户,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有【成交的100%(原创)】

本文链接:http://olaandolek.com/houfangzhihuisuo/111.html