没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记114(2005)3-23www.elsevier.com/locate/entcs密涅瓦一种基于代理的活动文档框架Markus Reitz1 Christian Stenzel2软件技术集团德国摘要作为下一代文档技术的主动文档可以解决传统信息发布技术的系统集成问题。Minerva框架的目的是作为这些活动文档模型和应用程序的测试平台和实现基础。除此之外,Minerva以同质的方式结合了面向组件的插件机制、灵活和可扩展的用户交互以及平台独立性。Minerva文档基于信息的非线性排序,具有持久性、一致性、角色概念、有状态信息的概念,以及使用在EASYCOMP项目期间开发的组件技术的高度可扩展保留字:活动文档,有状态性,多用户能力,多态外观1介绍几个世纪以来,古腾堡发明的印刷技术是在短时间内将大量信息分发给大量人的唯一方法。技术的改进提高了生产过程的成本效益,但核心概念保持不变:任何类型的信息都是静态表示的;1 电子邮件地址:reitz@informatik.uni-kl.de2 电子邮件:c. t-online.de1571-0661 © 2004 Elsevier B. V.根据CC BY-NC-ND许可证开放访问。doi:10.1016/j.entcs.2004.02.0654M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)3作者在某个时间点这就是出现以下问题的原因:(1) 用户与负责信息管理和呈现的系统之间的交互是不可能的。(2) 文件是无国籍的。因此,当基于“快照”的系统被用于此目的时,动态内容,即其外观在文档或会话寿命期间改变的时间相关内容,可能不能被充分地呈现由于这些问题是系统的固有问题,是核心概念的直接后果这些解决方案摆脱了静态信息呈现的死胡同。在过去的二十年里,计算机技术已经塑造了正在出现的信息社会,并且现在是我们日常生活中不可分割的一部分。不断增长的计算能力允许实现像Vannevar Bush [6],Douglas Engelbart [7]或Ted Nelson [10]这样的有远见的想法。由Tim Berners Lee在上个世纪90年代初发明的万维网的突破[4]从根本上改变了信息检索和使用的方式。它可以被视为动态信息系统的第一个(粗略的)近似。未来的系统将扩展这些原则,以完全解决上述问题,克服快照系统的局限性[3]。目前,活动文档的领域是永久的Linux。因此,开发模块化和可扩展的框架,支持新概念和技术的快速原型具有最高优先级。有趣的是,没有或只有少数框架可以用于此目的。对于本文的其余部分,我们使用术语活动文档来表示文档,它提供了高级概念,包括多态外观、有状态性、多用户能力和系统-用户交互。这些概念将在本文后面加以解释Minerva框架的目的是作为未来活动文档模型和应用程序的测试床和在框架功能的帮助下,开发人员能够将他们的工作集中在要实现的新方面,而不会浪费时间实现标准功能。该框架提供的核心文件管理功能以及灵活、模块化和基于组件的方法,使其他功能能够快速集成,从而改进了整体功能集。正如下面几节所示,动态性的需求很自然地导致了基于组件的方法。利用这一点M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)35静态动态传统信息表示WWW实现的超文本未来信息系统过去现在将来Fig. 1.万维网是从静态信息系统向动态信息系统过渡过程中的一个中间步骤.从理论上讲,组件与文本的编织可以看作是一个合成过程。Minerva框架还能够使用不在呈现文档的同一台计算机上的功能来处理文档。因此,可以建立一种抽象平台,这在移动或基于Web的场景中使用活动文档时特别有用“网络即文档”的范式本文其余部分的结构如下。第二部分简要介绍了活动文档技术的历史和现状,以及活动文档概念是如何随着计算机技术的发展而发展的我们将指出,仍然存在着一个差距之间的用户需求的可扩展性和平台无关的文档和文档组合技术,和功能的最先进的文档框架,即使他们是面向组件的。第3节确定了我们认为有助于克服这些缺点的概念在第4节中,我们将更详细地介绍Minerva框架,并展示如何通过它实际实现所识别的一般概念。因此,我们将重点放在非线性和有状态文档表示上。此外,我们提出的框架中使用的技术,使文件访问分布式功能。最后,我们得出了一些初步的结论,从我们的经验与框架,并给出了未来的应用和扩展阶段的展望2活动文档技术主动文档技术是近几年的研究热点。然而,由此引发的从应用程序的过渡-6M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)3以任务为中心的观点还没有真正在主流软件中得到验证。用户不是扩展文字处理机以获得完成某项任务所需的功能,而是不得不接受并以某种方式规避所使用的文字处理系统的限制。软件系统仍然是单一的,也就是说,功能只能通过改变大量的代码来引入。由于更改点可能分布在整个系统中,因此此任务繁琐且容易出错。在上个世纪90年代,标准PC机的可用处理能力达到了可以应付基于多媒体的活动文档系统的高要求的水平苹果电脑公司作为活动文档技术领域的研究先驱,OpenDoc [1]发明了第一个商业技术,它提供了创建和使用活动文档所需的概念和技术然而,由于一些困难,随着MacOS X的引入,OpenDoc的支持被放弃了虽然OpenDoc定义的抽象文档模型是独立于操作系统的,但许多固有的平台依赖性使跨平台活动文档的开发变得复杂。OpenDoc文档中使用的每个组件都负责在文档中的正确位置正确呈现。尽管有一个平台独立的文档模型,一个平台独立的绘图模型,将允许统一访问不同平台上的图形硬件并不存在。因此,组件的渲染部分必须在每个平台上重新实现,这不必要地增加了OpenDoc组件的总体开发时间。微软相对较早地意识到需要强大的组件模型和对活动文档的支持。从OLE(对象链接和嵌入)开始,它支持粗粒度级别的文档组合,微软细化和概括了必要的功能集。结果是通用组件模型COM、DCOM[5]以及最新的COM+,它可以一般地用于软件开发任务,也可以用于实现活动文档系统。与苹果专注于活动文档的方法相反,微软似乎将这项技术视为进一步开发组件系统的起点,而不是组件技术必须为之奠定基础的目标。由于COM+对Windows的依赖性,COM+是最常用的组件模型之一。然而,它不是平台独立的,因此不是通用的组件模型,因此不适合符合我们要求的活动文档类型。Java编程语言在Web浏览器applet领域之外的通用软件开发任务中M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)37创造了对组件模型的需求。JavaBean规范[12]针对一般的软件开发任务。结合SWING,SUN的3活动文档框架正如最后一段所示,组件技术对于一般软件开发过程的重要性早已被主要的IT公司所认识。不幸的是,只有一小部分的创造性被削减到积极的文件与苹果公司之一,这是少数几家公司的研究这一主题激烈。由于忽略了主动文档概念,最先进的组件模型[13]非常通用(CORBA,COM+,JavaBean),并且与有助于构建此类系统的高阶概念分离。尽管如此,组件技术对于灵活和可扩展的活动文档框架是必不可少的从概念的角度来看,使用现行文件应导致最佳的信息利用。信息社会面临着信息爆炸和信息过载的问题,我们认为,主动文件技术可以为这一问题提供适当的解决办法。优化意味着在适当的情况下增强现有技术,并在必要时引入新技术和概念。因此,本节列举了传统文档技术的缺点,并确定了有助于克服这些问题的主动文档框架实现所必需的关键概念3.1经典文献技术深入研究当今信息呈现系统(主要是书籍)的缺点,揭示了传统技术的以下问题:• 信息的线性排序,不支持• 静态内容(→快照属性)• 无状态文档存储• 依赖于众所周知的数据类型,没有可扩展性来应对未来的需求• 缺少跨一致性(热更新功能)• 没有或有限的环境意识8M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)3几个世纪以来,具有与时间无关的表示的信息占主导地位。如今,连续的和时间相关的数据量正在不断增加。古腾堡3.2活动文档框架当使用计算机技术用于文档渲染目的时,可以消除上述缺点。可编程性带来的灵活性优于传统印刷技术中使用的多态性由基于计算机的文档产生的附加值导致了一种新的文档类型:超文档。多态文件。 多态文档是具有状态表示的文档,即数据本身及其呈现方式取决于• 当前文档用户,• 当前用户的先前文档使用模式(即使用历史)。多态性可用于实现用户偏好和个性化文档。状态性有状态的文档表示与多态的概念密切相关。有状态性有助于在连续的用户会话或分离不同的用户组上保持多态性请注意,有状态性意味着多态性,但反之亦然。另一方面,有状态性意味着持久性。可能有不止一个级别的有状态性:可以考虑用户和文档之间的1:1关系,或者一个场景,其中为每个用户和每个文档维护多个状态非线性虽然超文本的概念,即非线性,在90年代初由Tim Berners-Lee引入WWW而取得突破,但信息片段通过一种网络连接的想法要古老得多。万尼瓦尔·布什(Vannevar Bush)在1945年撰写的文章M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)39--图二.活动文档是两个阶段的复杂数据结构,其中两个阶段的元素可以彼此交互。页面可能依赖于其他页面,导致非线性导航功能,或者可能依赖于组件,导致多态性。组件被嵌入到页面中,即它们的环境中,并且可以与它或其他组件交互,从而产生动态的、用户特定的文档行为。这台机器叫Memex。受布什工作的启发以非线性方式管理信息优于几个世纪以来经典信息存储介质(例如书籍)所遵循的线性方法。非线性允许根据不同读者的个人偏好使用文档,而不是遵循作者定义的文档的预定路径而没有任何选择。考虑到这些因素,非线性是多态文档的重要组成部分。结合状态保持文档使用的概念和能够进行用户交互的嵌入式组件,可以在软件系统的帮助下实现多态文档组件网络当在软件的帮助下实现多态文档时,不同的部分(例如页面,段落,文件等) 可以通过组件识别。这些对象之间的依赖关系和可能的交互作用形成了一个图形结构(参见图2)的情况。因此,多态文档由一个相互作用的对象组成。从这个角度来看,一个支持框架的算法,它操纵的图形表示的文件。组件作为构建块虽然早期HTML版本的功能集并不适合所有用途,但HTML仍然是Web语言。的数量越来越多10M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)3术语表术语表图三. 作为环境感知组件示例的术语表。使用两种不同的技术将额外要求纳入现有设计:(1) 通过扩展HTML本身(2) 通过使用特殊的插件来呈现新的数据类型(SVG,Flash等)其结果是一个不均匀的和难以处理的技术集团,这使跨平台文档的创建这强调了这样一个事实,即唯一不变的是变化,未来的文档管理系统必须提供处理任意数据类型的机制。基于组件的方法,其中组件被用作构建活动文档的构建块,似乎是一个很有前途的解决方案,这个问题。由于在这样的文档系统中使用了定义良好的组件接口,持久性问题也可以很容易地解决。环境意识目前的组件模型只有有限的环境意识,这是一个属性,这是必不可少的主动文档系统。 环境感知是指组件的能力 视察 它们的本地上下文并在必要时触发操作。例3.1(环境感知组件)假设一个文档由几个页面组成. 每页词汇表列出了重要的关键词及其相应的解释,可以通过实例化一个特殊组件来实现此外,当移动或复制到另一个页面时,该组件必须自适应(参见图3)。为了满足这些要求,需要了解周围环境。查询嵌入页面的关键字和解释将获得所需的功能。M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)311在我们看来,单个组成部分之间的明确联系或组成部分与文本某些部分之间的联系不足以解决上述问题。这类有限的环境交互还包括例如当前电子表格应用程序中的图表组件和数据区域之间的连接。因此,必须设计一个强有力的环境意识基本概念的扩展。4从理论到实践:密涅瓦与COTS(货架组件)方法相比,活动文档技术的理论概念尚未得到同等强度的研究。由于该领域中的Linux,目前不值得提供完整的参考实现。一个以独立于平台的方式聚合最常见功能的框架是快速发展的重要前提有趣的是,没有或只有少数框架可以用于此目的。Minerva试图通过为未来的活动文档应用程序开发提供一个有用的测试环境来缩小这一差距。Minerva框架试图成为一种部分参考实现,以满足未来文档系统的上述要求。需要强调的是,Minerva不是一个完全开放的活动文档解决方案,而是一个已经实现了典型模块的构建工具包。程序员可以使用这些功能,但不是被迫的。模块可以被替换,但不是必须的。以下段落概述了核心功能,除了组件Web的一般管理功能外,这些功能对于活动文档开发人员来说是必不可少的。4.1非线性文件单独定义信息网络中的每一条可能路径是一项复杂的任务,因此容易出错。Minerva框架采用了一种稍微不同的方法。显式路径定义被使用所谓的进入和退出条件的隐式路径定义所取代。文档由任意数量的页面组成,这些页面是非线性导航的构建块。 这些页面中的每一个都与其单独的进入和退出条件相关联。如果用户想要进入页面,必须检查相应的进入条件。只有当条件满足时才授予访问权限,即评估为true。 同样的原则也适用于退出条件: 仅当且仅当关联的退出条件的计算结果为12M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)3见图4。使用非线性的概念会产生几个不同的文档路径,每个路径代表一个不同的文档视图。最初可访问的页面以灰色标记真的通过使用这个概念,作者被迫采取一种观点,这种观点集中在页面的局部上下文上,其约束必须被定义(参见。图4)。相反,使用全局上下文,即可能的文档路径的显式枚举,通常更复杂,并且在设计较大的文档时不适用。从这个角度来看,Minerva框架所遵循的概念被设计成更具可伸缩性,因此更可行。导航约束为了在文档中定义真实世界的进入和退出条件,需要一种将简单表达式与复杂表达式相结合由于可以分层嵌套元素标记(易于解析),因此XML被用作进入和退出条件的文本表示。为了能够表达任何布尔函数,运算符and,or和not使用众所周知的语义定义。应该作为pa处理的变量这些运算符的参数由表示XML表示法中运算符的开始和结束标记包围。可用变量目前,Minerva框架支持三种类型的变量:组件名称使用组件的名称,可以查询其当前的连接状态。因此,如果关联组件处于一致性状态,则此变量的值为true,否则其值为false。用于实际计算一致性状态的方法在组件的实现中确定。例如,如果用户选择了正确的答案,则多项选择组件是一致的。不仅组件可以通过它们的(唯一)ID引用:每个页面都有一个唯一的名称,因此也可以通过这种机制引用M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)313如果页面的所有组件都处于一致状态,则相应变量的计算结果为true除了它们唯一的名称之外,每个页面都拥有一个可以使用众所周知的点标记法引用的访问属性。如果用户已经访问了相应的页面,则该属性为true,而在任何其他情况下,该属性为falseVisitable attribute存在于每个页面组件中的第二个属性称为visitable。关联页面的入口条件与其可访问属性之间存在直接对应关系:如果相应的入口条件为真,则为真,如果入口条件的评估结果为假,则为假。与访问过的属性一样,访问使用点表示法执行。可以使用这些变量的运算符的语法和语义如下:<并且> v0v1. vn和>当且仅当所有封闭变量的计算结果均为true时,and运算符的结果为true,否则其值为false。<或> v0v1. vn或>如果至少有一个封闭变量的计算结果为true,则or运算符的结果为true,否则其值为false。 v0v1... vn 如果没有一个封闭变量的计算结果为true,则not运算符的结果为true,否则其值为false。为了简洁起见,已经建立的关系运算符equal(=)、greater(>)、greateror equal(≥)、lesser()和lesser or equal(≤)也可以使用XML表示法来表示。这些运算符允许简短的公式定义,因为关系运算符可以替代对变量进行置换的公式。14M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)3例4.1(快捷方式)表达式v1 v2 v3 是冗长表达式的捷径<或><和>v1v2/和><和>v1v3/和><和>v2v3/和><或>使用这个构造工具包,所有适合进入和退出条件的布尔函数都可以轻松构建。在读者使用文档期间,框架负责监控和评估属于文档的所有页面的进入和退出条件。实际可到达的页面列表,即那些进入条件为真的页面,根据需要确定并呈现给用户用于导航目的。从这个角度来看,系统充当路径查找器,引导用户在文档中“旅行”。例4.2(入口条件)考虑以下入口条件:<和>P1.visitedP2.visitedP1:MC1和>P1和P2指的是页面,P1:MC1表示嵌入到页面P1中的多项选择组件的一致性状态。 如果满足以下条件,则可以进入属于此进入条件的页面:• 用户访问了页面P1• 用户访问了页面P2• 多项选择组件处于一致性状态,即用户已选择正确答案显示条件除了可以用于控制每页级别上的信息的可访问性的进入和退出条件之外,Minerva还提供了可以用于控制页面元素的信息呈现的另一种类型的条件。所谓的显示条件控制文本区域的可见性,这些文本区域已经使用相关领域已知的样式概念进行了标记。M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)315传统的文字处理系统。与进入和退出条件的情况一样,显示条件使用已经引入的XML表示法来表示。4.2组件模型将或多或少的活动组件嵌入到页面的文本中的能力是将基于框架的文档与经典(纸)表示区分开的主要特征。要嵌入到页面中,基于Minerva的组件只需要实现一个特殊的接口。任何符合此接口的组件都可以使用和操作,其状态由框架设施保存和恢复。当使用这个功能时,组件开发人员不需要知道任何关于框架内部的东西--除了使用SWING GUI之外。在接口级处理组件意味着实现黑盒组件模型3。接口类别仔细观察框架组件必须实现的接口,可以发现存在几个功能组,即:类别:(1) 配置管理(2) ID和命名空间管理(3) 组件一致性条件的管理(4) 持久性(5) 视图管理(见下一节)组件配置Minerva框架可用的组件的公共接口也意味着组件的公共方面的配置过程。组件的这些插入到文档中的每个组件都有一个ID,它允许其他组件或框架的其他部分明确地引用该组件。当使用框架所提供的机制时,系统会注意唯一性,避免在文档使用过程中可能导致问题的名称冲突。常见配置3虽然大部分框架功能可以分配给黑盒组件模型概念,但仍存在一些面向灰盒的部分。例如,组件开发人员可以使用预定义的扩展钩子动态扩展组件的标准运行时配置对话因此,Minerva使用的组件模型是黑盒和灰盒组件模型的混合。16M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)3嵌入式视频组件属性文本嵌入式表图五.基于框架的文档编辑器正在运行。组件几乎可以嵌入文本的任何位置。对话框是组件一致性条件的定义,将在下一段中为了尽可能地灵活,框架提供的公共配置对话框必须针对特定的附加组件属性进行扩展。钩子的概念,即自定义代码和Minerva框架之间定义良好的交互点,用于满足这一要求。定义额外的属性编辑器允许一个灵活但部分由框架控制的对话框,这减少了整体组件开发时间。这类似于JavaBean使用的属性编辑器的概念,它允许输入组件特定的值和数据类型。与此相反,Minerva遵循的概念不是每个属性的概念,而是一个组件的变量和不变属性成分一致性构件一致性的概念是多态文档的基础。通过定义二值一致性(即,一致性状态为真和假),组件可以将信息传播到周围的shell,在这种情况下,是组件所属的嵌入页面或文档一致性状态可以由任何其他组件或由其反应可以取决于该查询的结果的框架设施来查询从开发者的角度来看内部一致性由组件开发人员定义,主要关注组件的内部方面。4.只关注内部因素不是必须的。在某些情况下,M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)317外部一致性由文档作者定义,是内部一致性状态和附加的用户定义约束的叠加。从概念的角度来看,一致性的外部状态可以通过cexternal=cuser−defined·cinternal来计算。从框架用户的角度来看,即文档作者或文档读者,组件的一致性状态等同于其外部一致性约束。在用于定义页面条件的约束中,使用唯一的完全限定组件名称5引用此外部一致性。由于组件的一致性状态可以是页面条件的一部分该机制允许实现非常复杂的多态文档。假设有一个多项选择组件,其内部一致性状态取决于用户从一组可能的答案中选择。组件是一致的,即一致性查询结果为true,当且仅当 如果用户已经从可用的答案池中选择了正确的答案。 通过将这种多项选择组件的状态包括到页面的显示条件中,数学课程可以根据用户的选择呈现全文或仅呈现定义。用户定义的组件一致性约束用户定义的组件一致性约束可以用于逻辑地对组件进行分组假设用户必须回答一组多项选择组件通过使一个组件的一致性依赖于其他组件的一致性状态,该组件可以充当主组件,即其一致性状态被视为所有从组件的一致性的聚合的组件。文档作者不需要列出所有的多项选择组件,只需引用主组件就可以得到相同的结果。4.3热更新功能-视图当插入到文本中时,组件能够在插入位置显示其数据。在某些情况下,仅在一个地方显示数据是不够的。为了规避这个限制,Minerva引入了所谓的多视图概念,这与OpenDoc中使用的概念类似。一个组件可以与任意用户定义数量的附加组件相关联。一致性的内部状态可以取决于其他,即,外部的,约束。5完整的限定组件名称由组件的环境标识符组成即嵌入页面的ID,后面是唯一组件ID,两者之间用冒号分隔。例如,嵌入到页面P1中的组件C1的完整限定名称是P1:C1。18M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)3视图,即文档中组件可以显示其数据的附加位置。请注意,这些额外的视图可以位于文档中的任何地方-与原始插入位置没有空间依赖性在我们的案例研究中使用的多视图组件的一个例子是公式组件,它除了显示其文本表示外,还支持在文档中的任何地方绘制图形可视化的可能性。组件的状态及其关联视图之间的一致性4.4状态保留文档用法由于Minerva文档的多态行为是由会话感知和非线性引起的,该框架必须提供适当的机制来区分不同的文档用户,即不同的文档会话。如果用户决定结束当前文档会话,则必须使用序列化机制拍摄并存储嵌入文本中的所有组件的状态的快照以及关于已访问页面的信息(所谓的历史信息)当读者再次开始使用文档时,系统将检查会话数据的可用性。如果现有,则使用此数据重建上次使用时的文档状态。除了能够恢复文档的最后一个有效状态之外,这种机制还可以用于在用户和作者之间建立反馈循环。人们可以想到几种情况:(1) 通过分析会话信息,作者能够跟踪文档的使用情况。通过该过程获得的知识可以用于根据用户的使用模式来优化文档(2) 会话信息可用于支持教师-学生场景中的角色分配学生处理作为文档的一部分的调查问卷,并将其会话信息发送回教师。教师可以读取会话信息并分析问卷数据。(3) 通过使用注释(请参阅下一段了解更多细节),学生可以在使用作者创建的文档时遇到问题时请求帮助。4.5注释管理利用注释将文本片段与额外的个人信息相关联是处理书籍时的一个众所周知的比喻。转移M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)319注释文本注释导航面板见图6。基于框架的查看器应用程序。 当鼠标移动到相应区域时,插入到文本中的注释将显示为工具提示。超文本环境的这一特征为框架增加了额外的功能,并且由于众所周知的行为而有助于增加可接受性。注释可以与文档的任何文本部分相关联。为了插入注释,用户选择文本片段并输入所需的注释。每当鼠标光标移动到这样一个标记的文本区域上时,就会显示相关的注释。4.6网络就是文件通过为Minerva框架提供可扩展的插件机制,在部署面向组件(意味着动态链接)的软件时出现了一个众所周知的问题忽视这个问题意味着要求文档的每个用户安装所有必要的软件,以确保正确的功能。与其他处理活动文档的方法不同,Minerva框架提供了处理此问题的方法。它使文档的作者能够指定文档组件正常工作所需的服务的位置。有了这些信息,文档查看器就可以透明地访问这些服务。根据HTML的精神,活动文档可以分布在计算机网络上,因此文档的不同部分存储在不同的服务器上。从这个角度来看,我们在网络上分发文档功能的概念是对分发文档内容的补充20M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)3抽象平台与主机操作系统可用于满足特定功能请求的应用程序相反,基于主动文档的方法应尽可能少地依赖于文档托管系统上的软件。作为第一种方法,框架本身没有实现的功能只能使用框架机制作为间接访问。由于不能直接访问依赖于操作系统的功能,而是通过定义良好且稳定的接口进行访问,因此该框架实现了一种抽象平台。然而,抽象平台的概念在其最简单的体现中需要在本地系统上存在所有附加软件。如果所需的附加软件默认是操作系统的一部分,则此假设很容易实现。在所有其他情况下,这一要求至少是有问题的。这方面的一个示例是Minervaframework的LATE X -组合。此组件用于学习课程的上下文中,使用rtoinputtamathematicalforormulausinggLATEXsyntax. 这一形式可以被变换成图像,该图像使用上述视图机制来显示。 为了呈现用户输入的公式,组件必须利用标准LATEX的存储空间。为了使这种方法能够更好地托管这种活动的数据,安装了LATEX定义并可供用户使用,这只是一种错觉。远程特征相反,请求应该透明地委托给网络中的服务器,这些服务器能够处理请求并将结果发送回requireuster. 在LATEX组件的情况下,服务器处理即将到来的请求,并发送回结果图形表示,然后可以由发起组件或其关联组件显示 意见.在执行LATEX命令的过程中,需要的指令被传送到服务器,服务器执行任务并发回结果。有几个星座可能出现这种代表团为了能够满足所有这些请求并尽可能地灵活,基于客户机的组件概念由服务器端的模块补充,如图7所示。使用远程功能的每个组件都与部署在网络中某个服务器上的模块相关联。只要网络连接可用,组件和模块之间的虽然最初操作系统和主机上的所有软件形成M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)321远程服务器模块插件服务管理器可用服务可用服务当地见图7。本地插件和处理传入服务请求的远程模块之间交互的示意图。远程服务器通信管理模块小程序显示活动文档关联组件嵌入当地图8.第八条。基于网络的文档中使用的概念的说明抽象平台,我们在Minerva实现中采用的方法,可以将网络视为抽象平台。抽象平台的概念使我们能够实现一个文档查看器作为传统的Java小程序。这样,可以在任何支持Java的浏览器中查看活动的Minerva文档,而无需安装文档使用的任何所需系统服务。因此,与使用自包含软件包的分发方法相比,文档和文档呈现软件的部署极其简单applet和服务之间的通信模式如图8所示。22M. 赖茨角Stenzel/Electronic Notes in Theoretical Computer Science 114(2005)35评价和结论正如我们在前面的章节中所看到的,Minerva框架是开发活动文档的适当基础。该框架通过可扩展的插件机制建立了一个面向构件的文档模型因此,Minerva文档实际上可以被描述为一个组件网络。抽象平台的概念,在客户端上的组件和相应的模块在服务器端上分布在网络上允许减少平台的依赖性到最低限度。在该框架的帮助下,我们实现了一个独立的应用程序,用于开发和使用活动文档。上述applet可以用作对计算机科学讲座的课程材料的移动访问。已经开发的组件的功能是足够的经常发生的任务典型的本科生讲座。这包括一个或多个组件,其中该组件能够充分显示LATEX矩阵,数学符号,Jython6和BeanShell7的集成,一个函数选择题和多项选择题测试。在后一个组件的帮助下,我们能够实现半自动分级在线考试。我们使用Minerva框架创建的大多数文档都集中在电子学习领域。我们计划将Minerva框架和一般的活动文档更紧密地整合到本科生教育为此,我们将传统的演讲稿转换为可供学生使用的活动文档。通过使用框架确认我们感谢欧洲联盟作为EASYCOMP项目(IST-1999-14191)的一部分提供的财政支助。我们要感谢Arnd Poetzsch-He Schweiter的有益的意见和建议。Jython是Python 2.1的一个完全兼容的实现,它还允许使用Python和Java编程语言的合成关于Jython的更多细节见[8],关于Python编程语言的细节见[117我们使用BeanShell作为用户输入的Java代码的解释器尽管如此,BeanShell远不止是一个简单的解释器。弱类型、交互模式等。可以帮助开发人员快速开发应用程序原型。更多信息见[2]。
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 4
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 收起
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
会员权益专享
最新资源
- zigbee-cluster-library-specification
- JSBSim Reference Manual
- c++校园超市商品信息管理系统课程设计说明书(含源代码) (2).pdf
- 建筑供配电系统相关课件.pptx
- 企业管理规章制度及管理模式.doc
- vb打开摄像头.doc
- 云计算-可信计算中认证协议改进方案.pdf
- [详细完整版]单片机编程4.ppt
- c语言常用算法.pdf
- c++经典程序代码大全.pdf
- 单片机数字时钟资料.doc
- 11项目管理前沿1.0.pptx
- 基于ssm的“魅力”繁峙宣传网站的设计与实现论文.doc
- 智慧交通综合解决方案.pptx
- 建筑防潮设计-PowerPointPresentati.pptx
- SPC统计过程控制程序.pptx
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功