面向最终用户的REST客户端应用程序开发外文翻译资料
2021-12-13 22:22:29
英语原文共 15 页
面向最终用户的REST客户端应用程序开发
摘要:
在Web 2.0的环境下,能够使用HTML5和REST Web服务来开发客户端应用程序。
然而,我们需要进行使用REST Web服务实现跨平台智能手机应用程序开发的可能性研究。 因此,我们使用PhoneGap开发了基于REST的跨平台应用程序。 应用程序
部署在Android,Windows Phone和iOS平台上; 随后我们评估了它的可用性。
我们观察到可以通过使用html5技术和PhoneGap实现基于REST的跨平台智能手机应用程序,并且这些可以扩展为REST服务组合工具。 此外,应用程序的可用性在本机平台上不受影响,并且很容易进行适配。
1.简介
智能手机在生活中扮演着非常重要的角色,被用于教育,医疗保健和商业领域,仅举几个应用领域。智能手机可被描述为具有增强功能的移动电话,例如触摸屏,智能和警觉性。基于本次研究的目的,我们可以认为智能手机具有如上所述的功能[5];因此,我们将智能手机定义为能访问互联网并运行各种移动操作系统,如谷歌的Android,微软的Windows Phone和Apple的iOS。
在操作系统之上,配备了智能手机软件开发工具包(SDKs),增强了智能手机应用软件和配置的一些特性,如可重用性,和互操作性。智能手机应用本身可以广泛使用,根据它们生成的软件的开发环境,可以分为原生应用和跨平台的应用。原生应用属于一类针对特定的操作系统而开发的应用程序。他们可以无障碍地访问设备硬件并支持相应移动操作环境中可用的所有用户界面和接口[29]。另一方面,跨平台应用程序可以是专用的移动端Web应用程序,通用移动端Web应用程序(也称为移动网站)和hybrid app[29]
在这项研究中,通过跨平台,我们了解到那些专用的移动Web应用程序,是旨在模仿原生应用程序的程序。但实际上这些程序是在Web浏览器上执行。 这一类应用程序基于Web浏览器,使用基本的Web技术进行实现 - HTML5,JavaScript和层叠样式表(CSS)。
跨平台智能手机应用程序也可以是通过组合(混搭)REST Web服务实现的基于REST的应用程序。REST Web服务属于面向服务体系结构(SOA)实现技术系列的。它是一种客户机-服务器体系结构,旨在使用uri在组合应用程序的组件之间进行基于HTTP的无状态通信[37]。在生产效率和上市时间方面,跨平台智能手机应用程序优于本地应用程序。然而,跨平台智能手机应用程序在部署到特定平台上时面临用户体验的挑战[29]。
可用性在[21]被定义为指定用户在特定使用环境中使用其来实现特定目标的有效性,效率和满意度。 评估基于REST的跨平台智能手机应用程序的可用性也是至关重要的。 因此,在本文中,我们评估基于REST的跨平台智能手机应用程序在各自的部署操作平台上的可用性,这是我们以前工作的一个扩展[15]
本文的结构如下。跨平台智能手机应用程序开发、基于REST的应用程序开发以及与HTML5面向可用性实现相关的问题分别在第2、3和4节中讨论。第5节详细比较了基于REST的跨平台应用程序在不同平台上的可用性。在第6节中,我们讨论我们的发现。最后,我们在第7节中得出结论。
2.跨平台智能手机应用
智能手机操作系统具有丰富的库和内置功能。但是,无论他们的基本架构和编程语言支持如何变化,他们仍然需要努力去创建始终如一的高用户体验。如Henning等人的研究指出[18],拥有多种操作系统的零散智能手机市场的激增使得原生移动应用程序的开发成为一项具有挑战性且成本高昂的工作。为了改善这一点,研究领域和工业界设想出了跨平台开发的方法。
跨平台环境的本质是旨在构建独立于平台的应用程序的软件开发环境的一个子集。跨平台应用程序开发环境基于“一次编写,随处运行“的一般原则工作。在智能手机应用程序开发领域中,Dalmasso 等人。 [42] 描述了跨平台移动应用程序开发工具可用的通用架构。 但是,正如Henning等人所指出的那样。 [18] ,各种硬软件平台不可避免地使移植性成为移动应用程序开发人员的麻烦。可移植性主要取决于运行时支持和不同平台实现相同外观和功能的可行性。
有几种跨平台智能手机应用程序开发环境的实现尝试。例如,Java ME通过配置和配置文件支持跨平台开发。 Damianos和Economou [14]将配置描述为具有类似处理器和内存限制,用户界面要求和连接功能的设备的最小Java VM功能和库集,而配置文件包含专用于特定设备的独特特征的库。
在相关工作中,Groslash;nli等人。 [40]研究了移动应用程序开发生态系统的优点和缺点,并指出开发人员支持已经提高了开发工具的性能,这些工具提供了更高性能的第三方抽象库。但是,跨平台开发环境正受到不同实现,不成熟的平台支持以及各种设备和浏览器的挑战。相比之下,Windows Phone,iOS和Android等平台特定的产品可以与各自的操作系统紧密集成。此外,Groslash;nli等人的工作。 [40]表明,平台特定的开发环境和设备之间的集成比跨平台环境更好。这表明跨平台应用程序开发尚处于早期阶段。
研究[6,14,18]表明,跨平台开发工具正在蓬勃发展。它们旨在解决用户体验,框架的稳定性,易于更新,多平台的开发成本以及应用程序的开发速度。在它们推出后,许多开发人员将程序在发布主要移动平台的需求得到满足,并在整个平台上提供一致的用户体验,而对原始代码的改动很小或没有变化。 PhoneGap,Rhomobile,JQuery Mobile和Xamarin是一些可用的跨平台移动应用程序开发工具。
在本文所描述的工作中,我们使用phonegap是因为它的普及[6,35]。PhoneGap是一个开源跨平台智能手机应用程序开发工具,由AdobeSystems Inc.根据Apache许可证开发。它提供了一个工具链,只使用HTML5、JavaScript和CSS构建本地移动应用程序[6,35]。PhoneGap非常受用户欢迎,主要是因为它的灵活性、简单的体系结构和易用性。其体系结构主要由Web应用程序、PhoneGap和操作系统以及本机应用程序编程接口(API-图1)组成。PhoneGap是一个“包装器”,允许开发人员将用已知编程语言编写的应用程序封装到本机应用程序中〔35〕。也就是说,使用PhoneGap开发的应用程序既不是纯基于Web的,也不是纯本地的,因此一些布局的呈现是通过Web视图而不是操作系统的本地语言完成的;因此,在某些函数中缺乏对HTML的支持。PhoneGap不提供自己的IDE(集成开发环境)来开发应用程序,但是开发人员必须用一个IDE编写源代码,并将其代码移植到其他的IDE中,例如Eclipse for Android和Xcode for iOS。到目前为止,PhoneGap允许为Windows Phone、Android、iOS、BADA、Symbian和 WebOS 操作系统 创建应用程序 。
通常,PhoneGap 和其他跨平台开发工具在JavaScript API的帮助下能够利用设备功能,并生成用于显示的HTML代码。 但是,生成的代码需要移植到特定的操作系统(如Windows Phone,Android和iOS)中,以便使它们像本机应用程序一样运行。在下一节中,我们将概述这些操作系统及其相应的集成开发环境。
2.1 Windows Phone
Windows Phone是微软倡导的智能手机操作系统。在最新版本的Windows Phone中,智能手机应用程序由支持多种语言(如Microsoft.net环境中的C语言)的框架上的代码编写。Windows Phone主要由Windows Phone SDK以及Visual Studio上的Silverlight和XNA加载项一起构建。XNA用于2D和3D游戏开发,而Silverlight则用于开发功能强大且引人入胜的界面。为Windows Phone创建的程序被封装到Xap文件中,Xap文件是打包的Silverlight应用程序 [40] 。
2.2 Android
Android基于Linux内核,并作为开源系统平台开发。 除了操作系统以外,Android还提供了一个开发环境,使用Google的Java库编写应用代码,以及用于运行智能手机应用程序的 Dalvik 虚拟机 [9] 。 开发环境支持丰富的多媒体、使用2D和3D图形库,用于持久存储的定制SQL引擎,以及3G,4G和WLAN网络功能 [40]。Eclipse和IntelliJ IDEA是Android软件开发工具的两个主要供应商。
Figure PhoneGap体系结构的接口层。
2.3 Apple iOS
iOS是许多Apple设备(包括iPhone)的操作系统。它的应用程序是用面向对象的编程语言编写的,这种语言叫做Objective-C,它是C语言的一种扩展 ; 他们使用名Cocoa Touch的库。 iOS开发需要使用运行Mac OS的计算机或VMware。 Xcode [1] 是编写iOS应用程序最常用的集成开发环境。它包括编辑器,分析工具,iOS模拟器和SDK [40]。最近,Apple发布了一种新的编程语言Swift,可能会导致平台环境发生变化,但目前Objective-C和Swift都同样受到支持。
总之,跨平台应用开发方法使得对提升移动应用开发人员的生产率有着显著的贡献。但是,如何在目标平台上实现相同的外观和感觉,以及应用程序(包括基于REST的应用程序)的相同功能,仍然需要进一步讨论,本文将着重讨论这一点。
3.基于REST的跨平台智能手机应用程序
由Fielding [37] 引入的REST Web服务 是一种客户端 - 服务器体系结构,旨在减少与HTTP的状态通信,并包含以下原则:
- 概念实体和功能被建模为由通用资源标识符(URI)标识的资源。
- 通过标准化的HTTP操作(get、post、put和delete)访问和操作资源
- 系统组件与这些标准接口操作进行通信,并交换这些资源的表述(即json/xml格式的数据)。
在REST中,一个资源可以有多个表示;并且通过遵循资源之间的链接,通过资源表示的不同状态进行通信。
3.1 rest服务的特点
RESTWeb服务从资源的角度查看应用程序的数据和功能。它们是声明性的,因为它们关注资源本身的描述,而不是描述如何执行操作[4,34]。RESTWeb服务很容易访问,因为表示资源的URI可以被任何应用程序共享和重用,并且是自描述的。因此,RESTWeb服务被广泛用于构建Web2.0应用程序和混合应用程序[4,34]。与网页一样,它们支持代理和网关中的缓存。由于JSON是一种轻量级的、直接受JavaScript内部支持的、人类可读的数据交换语言,因此我们将JSON用于REST Web服务的客户机-服务器通信[7,33 ]。一般来说,上面提到的一组原则鼓励REST应用程序简单、轻量级。因此,REST方法被认为是构建灵活、可扩展和松散耦合的面向服务的体系结构系统的一个很好的替代方法,这也是本文研究的基础。
3.2 rest服务组成
在REST Web服务模型中,是从资源的角度来看系统的。因此,服务组合将重点放在相关联的Web资源的Web2.0集成和其他Web服务之间的状态转移 [13]。Zhao和Doshi[19]将这种组合描述为一个Web应用程序,它将来自多个源的数据组合成一个集成的应用程序,在这个应用程序中,数据可以通过不同的协议(如http、rss、atom和rest web服务)来自本地数据库或来自Internet的其他源。当REST Web服务组合涉及更新或操作数据源时,从远程源获取数据是受限的。
3.3 智能手机上的REST服务
现代智能手机传感器丰富,具有较高的处理能力、更大的存储容量和更大的屏幕尺寸,以及更强的连接性和各种API;所有这些都指导着未来智能手机应用程序的开发。此外,今天的许多智能手机应用程序都是个性化的[31]。但是,只有当它们与一个或多个服务器通信并访问数据时,它们才能做一项有用的工作。实现这种通信的最佳方法是通过Web服务的组合(混合)。为此,REST Web服务可用于为智能手机通信和构建其他复合Web服务、混合智能手机应用程序[17,39]。上述智能手机功能与REST服务的功能相结合,使智能手机能够捕获和处理大量信息。例如,他们可以利用用户社区和软件从业者来扩展智能手机的功能,以便能够运行许多最先进的应用程序,如点对点社交网络、基于位置的服务、协作环境和数据交换[17]。然而,此类应用程序的用户体验取决于智能手机的屏幕大小[8]。考虑到智能手机功能的增强,因此预测智能手机将用于开发REST Web服务并非不合理[17]。也就是说,在智能手机上开发带有REST服务的应用程序的可能性将使智能手机变成一台小型开发计算机,可以无处不在地浏览和触摸代码。然而,在小屏幕设备上使用REST Web服务需要增强服务的可用性;然而,据我们所知,真正的智能手机设备还没有被用作软件开发或基于REST的服务组合环境。
因此,在本文中,我们说明了构建基于REST的跨平台智能手机应用程序的可能性,该应用程序将扩展为用于智能手机的最终用户跨平台REST服务组合(混合)工具。
4.HTML5和REST服务的可用性
以前的工作(如[10])表明,HTML5在REST服务的组成中用于提供更好的用户体验。因此,在本节中,我们将描述可用性、HTML5技术以及影响RESTWeb服务可用性的因素相关的基本问题。
4.1 可用性
可用性是ISO 9126软件质量模型的六个质量
资料编号:[5424]