模型-视图-控制器扩展普遍的多客户端 用户界面外文翻译资料

 2022-12-07 05:12

英语原文共 8 页,剩余内容已隐藏,支付完成后下载完整资料


Pers Ubiquit Comput (2005) 9: 100–107
DOI 10.1007/s00779-004-0314-7

模型-视图-控制器扩展普遍的多客户端
用户界面

摘要:地址的实现普遍使用开发Java Web应用程序方法,该方法基于模型-视图-控制器(MVC)设计模式。我们结合MVC方法与层次结构,基于任务的状态转换模型来区别应用程序的状态和视图状态任务。更准确地说,我们建议添加一个与设备无关的TaskStateBean和一个特殊设备ViewStateBeanfor为每个任务状态扩展到J2EE服务工作者设计模式。此外,我们建议代表任务状态和视图状态转换模型的有限状态自动加载XML文件。本文表明,该应用程序的任务状态和视图状态之间的区别更加直观和方便,而不是复杂的、多任务的,如改变设备的“动态”。

关键词:普适计算,流体计算,模型-视图-控制器(MVC)设计模式,设备独立性

1.介绍

模型-视图-控制器设计模式的使用(MVC,见[1])在用户界面开发中是很常见的。然而,一个重要的实践目标在应用程序设计中无处不在。数量和规模发展到能支持设备同时,最小化代码冗余不一定要通过使用一个基于mvc的开发方法。尤其特别是,应用程序开发的一个典型的问题是提供client-adapted用户接口[2]。例如,一个对话框,适合到一个在个人电脑(如Web页面。复杂的表单)分散成几个子会话的设备小屏幕尺寸(如。、PDA或手机)。基于mvc方法允许这样的支持适应没有重写整个用户界面代码。体系结构的分解的结果为模型、视图和控制器是与设备无关的和特定于设备的代码解耦成分离组件。为了支持额外的设备,只有视图(对于更复杂的应用程序,有时必须重写或者至少重写控制器)改编。然而,这可能导致许多“相似”视图和控制器组件部分的代码冗余。

J2EE应用程序的一种广泛使用的基于mvc模式是服务人员设计模式[3]。它涵盖了许多方面的实际利益包括实现一个客户端(主要是桌面浏览器)Javabased Web应用程序。尽管它建议使用一个显式存储在一个状态转换模型XML文件中,这个模型并不完全满足的需求普遍的应用在不同的屏幕流在不同的设备上。只有全球JSP转换等状态转换指定,因此用不同的设备屏幕流需要自己的屏幕流模型,因此,可能是一组不同的JSP文件。因此,有必要为相似设备和屏幕流模型之间引入一个更抽象的任务(如[4]中描述)模型中所有设备的共同点。面对这个问题,我们建议使用两级层次模型分别对javabean来存储信息(与设备无关的)任务流的状态和状态(特定于设备的)视图的应用程序的流程。

本文扩展了服务工作者设计模式来支持Web应用程序,无需多设备通过引入任务型两级层次状态转换模型。

剩下的只是如下组织:第二节对现有工作在UI开发的范围普适计算进行了探讨。第三节考虑基于任务的开发方法,描述了一个基于任务的实现算法普遍的Web应用程序,并提供一个合适的定义术语“任务。“在第四节,我们探讨一下服务人员设计模式的观点普适计算。我们将介绍一个扩展,更详细地描述了一个普遍的应用程序的实现方法,说明几个UML图和代码示例。在第五节,我们将额外讨论设计时和运行时利益之间的分离,应用程序的任务和其视图状态;更多的是,我们考虑的可能会促进开发过程,能力改变设备及讨论其他相关领域的适用性的普适计算方法。

2相关工作

普遍的应用程序的特定需求被广泛讨论(2,4—7)。尤其是,巴纳瓦尔等。[4]描述一个严格的编程模型分别对待任务逻辑与用户交互。他们建议首先创建一个优于任务的模型,该模型涵盖了程序结构用户交互和应用程序逻辑的抽象,然后继续创建一个下属导航模型覆盖的视图元素。对于还没有基于模型的方法主要的编程工具或支持的设计模式。我们建议发展战略的根本是基于这个该发展方法。

有几个普适计算的项目旨在设计一个高级UI设计语言抽象的用户交互(见(8、9)以及IBM的皮马人项目)中的任何一个方法进行相似:建模阶段抽象的用户交互的各自的语言紧随其后的是半自动一代特殊设备编码。虽然我们的论文描述了一个自动化的发展过程中少见,在随后的两级分层状态转换模型部分可能是由这些语言来使用支持先进的运行时特征描述。在本文的后面。此外,两个javabean在章节中指定。第四节可以通过各自的高级语言创建代码。

IBM苏黎世研究实验室设计了一个方法命名为“流体计算”[10]使用单个应用程序同时使用多个设备。我们的地址改变设备的方法也可以扩展为支持流体计算行为。总的来说,本文的贡献也证明了MVC方法的组合应用程序的任务状态的分离及其观点状态。结果是一个实用的基于任务的实现普遍基于java的Web应用程序的指导方针。


3基于任务的开发方法

作为发展中普遍应用的一般方法,无需多设备功能,如巴纳瓦尔等。这里我们[4]建议建模用户交互(即前任务逻辑,屏幕流)。应用程序的任务流,我们定义它,必须与它的屏幕流不失一般性,而是常见的设备。因此,我们需要重新定义或者至少缩小术语的定义任务,以便让它满足我们要求。定义的一个任务,如伯格曼等。[11],是一个单位工作要由用户执行的。这个定义,然而,没有指定任务的颗粒度与子任务。一个任务,我们使用它,必须要符合以下要求:——它不能是太细粒度中的一个步骤后续任务,而是当前任务的一部分却不影响应用程序的功能。例如,所有文本字段的搜索,面具用户可以填写,不需要任何额外的系统交互,必须一定属于同一任务。——它不能太粗粒度的,这样存在一步两步在单个任务与要求输入数据产生的输出另一个步骤在相同的任务。例如,搜索面具和一个搜索引擎的结果列表查询应该属于单独的任务。换句话说,一个任务必须包括的步骤从用户和逻辑上属于彼此系统的观点。这个定义的目的是任务可能会显示在一个视图中,也就是说是在一个Web页面。

3.1例子

在这一节中讨论的数据库应用程序基于web的内部网应用程序的典型例子:a公司想让公司员工目录(图1)可以从各种客户机平台上,例如,一个典型的桌面浏览器和PDA(HTML浏览器)。在桌面电脑,由于其丰富的屏幕大小,只有三个网站的应用程序可能包括:搜索面具,结果列表,和一个额外的更多详细,员工个人信息页面。尽管它可能是只有一个经验法则,在这个例子中,每个三个桌面浏览器的网站应该代表一个根据前面的任务定义:整个搜索面具作为入口点,结果显示列表目录查询的结果,详细的员工个人信息页面显示的结果查询所选的员工展示更大目录的属性数量。也就是说,任务流在桌面浏览器和屏幕流是相同的。然而,任务流和屏幕流可能会有所不同,因为它有限的屏幕大小。在示例中,只显示降低可能是明智的搜索面具作为切入点和唯一的一个子集作为最常用的输入字段(如,只有第一个和最后一个名字和部门代码)和一个额外的“扩大面具”按钮,将显示所有搜索字段。这个点击“扩展面具”按钮只有改变应用程序的视图状态,而不是它的任务状态。处于扩张状态,用户将预期向下滚动,以找到所有搜索字段。我们将在后续部分中引用这个例子。

3.2任务型为普遍的设计周期

计算应用该开发方法必须的想法现在放到一个更具体的和实用的发展方针。作为一个隐含的定义术语“任务”结合任务型开发方法,我们建议的发展普遍的Web应用程序应该进行如下:
1、模型应用程序的任务流来表达用户需求,例如,使用一个UML活动图。
2、因为这些任务应该遵守以上定义,这些任务是由一个单一的视图组件。创建一个视图组件(如,一个空的JSP文件)设备和每个任务。
3、对于每一个目标设备和为每一个任务,检查设备的功能允许一个任务和一个视图之间的一对一的关系。换句话说, 确定它是可行的和合理的任务在特定设备上作为一个单独的视图组件。
4、所示。如果这是对一个特定的视图组件,查看流量和这个页面的任务流是相同的也没有变化。
5、如果不是这种情况,被分配的任务几个视图状态。也就是说,任务必须的一部分分组单独的屏幕上,甚至排除在外完全。,与一个非常手机屏幕尺寸和很少的内存限制。

6、使用可用的另外视图状态信息让用户的切换从一个视图相同的任务到另一个地方。在J2EE Web应用程序环境中,这可能是通过添加完成嵌入式Java代码到一个给定的JSP文件(代表任务状态)。这个文件检索视图状态信息,从而决定哪段(如JSP文件,“下降”或“扩大”部分)来显示。此外,视图状态改变按钮必须提供,如。通过插入一个“扩大面具”按钮。
7、优化特定于设备的陈述,例如,通过调整字体大小或定义CSS文件。这种方法的优点是全球任务状态和视图之间的明确的分离状态,都在设计(网页设计团队可以创建复杂的视图流结构不影响团队执行任务流和业务逻辑)和在运行时(我们将显示在教派。5)。见图2为该算法如何变换为前面提到的应用程序状态和状态转换员工搜索的例子。

4设计模式的实现

在引入我们的基于任务的设计周期对于普适计算应用程序,现在我们想要讨论一个在J2EE环境设计模式的实现。为了添加无需多设备功能,我们现在拿起分离任务逻辑以及用户的想法交互,因此扩展一个众所周知的设计J2EE模式表示层[3]。


4.1服务的工作模式

服务工作模式是一种设计模式主要解决单一客户的发展Web应用程序。特别是,它将业务逻辑视图组件和允许显式状态转换处理。因此,我们认为合适的在本文中讨论的Web应用程序的类型,即。,典型的瘦客户机内部网应用程序。虽然许多成功的概念也可以使用结合其他J2EE核心模式(http://java.sun.com/blueprints/corej2eepatterns/)或更一般的MVC设计模式,服务工作模式为我们提供了最好的基础扩展促进pervasiv。

服务工作模式的组合前端控制器和视图助手的模式J2EE表示层。更严格的讨论服务工人J2EE设计模式,参见[3]和http://java.sun.com/j2ee/。其主要特性添加到MVC体系结构是组成国家的能力逻辑过渡到一个专用的调度器类比控制器。

调度程序访问一个XML文件定义所有现有状态和同事用户操作状态转换。与现有的基于mvc框架普适计算的Web应用程序(例如,MVCPortlets IBM WebSphere Everyplace Access门户服务器4.2.1)准备,本文中描述的概念不使用多个特定于设备的控制器类。在我们的方法,控制器只有两个职责:通过对每个请求分配器,在需要时,调用合适的业务服务。然而,这些业务服务只是时调用应用程序的任务状态改变。因为所有的设备共同的基本任务状态转换模型,单与设备无关的控制器类是充分的。

4.2扩展服务的工作模式

服务工作模式还没有完全满足普适计算的发展的需要。作为在前一小节提到的,太阳微系统公司的规范服务的工作模式介绍了调度器类处理状态转换。然而,它没有规定如何模型的状态转换逻辑(在XML文件),也不包括的运行时组件实现的描述这个模型。此外,由于服务工作者模式是专为单一设备访问特定于设备的观点必须解决的问题。即使是算法提供的教派。3不给任何实现细节。现在我们将在这些问题上描述一个在更大的实现方法技术细节。

建模的目的与设备无关状态转换逻辑,我们使用一个XML文件命名映射。xml(如http://java.sun.com/的建议图纸/模式/ FrontController.html)。特定于设备的视图逻辑,我们使用一个额外的文件viewmappings命名。xml为每个受支持的设备。描述一个有限状态自动机,定义,行动,和转换。

我们建议实现这些自动机作为两个专用的javabean类:TaskStateBean和ViewStateBean(图3)。两者都是初始化数据上面描述的XML文件。在运行时,他们提供一个getState()和doAction(String)方法。前返回当前状态,后者执行指定的操作,并返回新状态或抛出异常,如果行动是非法的。此外,TaskStateBean可以引用一个devicespecific ViewStateBean每个任务如果视图状态先前的状态完成任务必须被保留。例如,如果用户点击“搜索面具”扩大了他离开的状态,它可能再次扩展状态呈现在用户的回报。

特定于设备的效果图是通过视图组件(JSP文件),是一个特定的设备。存在一个单独的JSP文件为每个任务/设备组合包含视图相关的标记,因此,还必须包括代码访问ViewStateBean信息。所有JSP文件可能被放置加上适当的viewmappings。xml的一个特定于设备的子文件夹(例如/ pda)来提供简单的命名约定。设置总体结构之后,我们现在想讨论了组件交互无花果所示。5,参考上述例子。考虑到PDA用户填写的情况企业员工目录搜索的面具的例子。在这个场景中,TaskStateBean在searchmask状态。jsp和掌上电脑版本的引用ViewStateBean,最初的状态showReducedSearchMask。接下来,用户点击“开始搜索”按钮。这导致创建一个HTTP GET请求操作参数startSearch,然后送到控制器(如,http://host/controller?action=startSearch)。在这一点上,请求对象将富含交付上下文的信息普适计算环境。例如,IBM WebSphere Everyplace Access服务器查找用户代理字符串HTTP头的设备数据库,并将它映射到它的一个预定义的设备类(如。“口袋Internet Explorer”被认为是“PDA”设备)。一个属性表示这段设备类的信息将被添加到请求对象。

控制器读取动作值(“startSearch”),调用(比如一些辅助类来处理查询。,调用LDAP服务),然后调用调度程序显示结果。接下来,分派器调用doAction(startSearch)TaskStateBean为了确定下一步显示JSP文件。在这种情况下,行动会导致任务状态转换,

剩余内容已隐藏,支付完成后下载完整资料


资料编号:[32211],资料为PDF文档或Word文档,PDF文档可免费转换为Word

您需要先支付 30元 才能查看全部内容!立即支付

课题毕业论文、文献综述、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。