基于HTML5的移动终端中间件平台开发
【摘要】:随着无线通信技术的飞速发展和移动设备的普及,移动应用越来越广泛。根据不同的特点,现有的移动应用程序需要较长的开发周期,取决于各种移动设备。本文提出了一种基于HTML5移动中间件基础上的传统中间件和移动中间件。移动中间件采用B/C/S架构和盾牌,移动设备的硬件和软件之间的差异,使开发人员能够开发出适用于移动终端平台,按照MVC模式的应用。与其他技术相比,基于HTML5的移动中间件具有开发周期短、成本低、难度低以及良好的可扩展性。
【关键字】:移动中间件;HTML5;B/C/S;跨平台
一、简介
随着信息化进程的加快,各种无线接入技术的快速发展,通过iPad等移动终端、PDA等移动设备的互联网接入和数据交换越来越受用户欢迎。传统的办公模式已不能满足企业或政府部门的要求,适用于各种终端平台的移动中间件研究与设计已成为移动互联网领域的一个重要课题。做为未来十年中最前沿的Web开发技术,HTML5[1,2] 将成为主流的Web应用程序开发模式[3]。随着基于移动浏览器和大量移动Web开发平台推出的WebKit内核的发展,Web应用和大量的开发者基础交付形式已经成为市场关注的焦点,它允许从本地系统平滑迁移至移动平台[4,5]。
中间件[6,7,8]意味着平台之间的通用服务(硬件和操作系统)和应用。这些服务具有标准的程序接口和协议[9,10]。对于不同的操作系统和硬件平台,他们可以有不同的实现接口和协议规范。所提供的编程接口的中间件定义一个高层次的应用环境,这是相对稳定的。然而底层的计算机硬件和系统软件已经改变了,我们只需要更新中间件和中间件外部接口的定义,应用软件大多数情况下不需要再修改,从而保护重要的投资在应用软件的开发和维护[11,12,13]。
本文提出的移动中间件平台,采用了一个,B/S/C混合结构,支持开发人员在移动设备里通过一个极快的速度下载所有的网页。在运行过程中,他们可以与服务器通过Ajax技术交互,从而创造出了一个C/S结构或局部甚至独立于网络的应用。此外,根据Android实现的底层特征,可以将系统功能划分为对应的JavaScript接口。开发者只需调用这些接口在网页中实现相应的功能。研究结果表明,这种移动中间件可以使开发者使用HTML5 + CSS3 + JavaScript以及丰富的第三方组件来开发移动应用,并在软件生命周期的开发等,部署,管理和维护的各个方面,这可以降低门槛,提高效率,有助于延长它应用于移动终端的快速低成本、低风险,同时采取了移动终端的新功能的优势进行业务创新。
二、中间件技术研究
A、中间件技术的现状
克服了复杂网络应用中常见的问题,中间件技术开始发展壮大起来。这些问题可以归纳为四个方面:
从计算环境的角度看:中间件所面临的是一个复杂且不断变化的计算环境,这要求中间件技术应该具有足够的灵活性和可扩展性;
从资料管理的角度看:管理系统和数据库管理系统的有限类型和数量有限。然而对于统计,服务和应用程序等资源来说,中间件需要管理的资源是丰富的,资源的边界扩展是不同的;
从应用程序支持的角度看:中间件需要提供整个生命周期的整体运行模式,即分布式应用程序开发、集成、部署和运行管理;
从应用的角度看:使用中间件来完成的应用往往是复杂的企业,其中有一个复杂的相互关系。例如,客户关系管理系统需要整合多个内部应用,同时供应链管理涉及到不同企业的整合。
因此,由于网络应用的复杂性,特别是其分布式、异构、自治的特点,从而决定了中间件技术和产品的形态多样性。学术界已经提出了相应的移动中间件技术,以满足移动计算的要求。这些中间件技术的应用不同的策略,以满足移动中间件的要求尽可能。移动中间件的体系结构、特点和局限性,可以分为以下四类:基于反射的中间件、上下文感知中间件、基于事件的中间件和基于消息的中间件。
B、存在问题的研究
中间件系统必须遵循的原则和当前的情况有很大的距离。最流行的中间件服务使用私有的接口和协议,这使得它很难在不同厂商之间进行交互操作。而且中间件服务只适用于某些平台的实现,从而限制了异构系统之间的移植。此外,应用程序开发人员还需要承担风险,建立自己的应用程序,因为这些服务往往需要重写他们的系统,随着技术的发展。中间件服务,以提高分布式计算的抽象程度,应用程序开发人员需要面对许多困难的设计选择。
由于移动终端处理能力的限制,支持移动应用的中间件必须是轻量级的,不能占用太多的系统资源。然而,目前传统的中间件是重量级的,缺乏灵活性,难以满足移动应用的要求。因此,从它的系统里把移动应用程序平滑迁移目前面临的挑战。
实践表明,在技术水平上,将现有的中间件平台移植到移动网络上是可行的。然而,由于平台的性能差异,不能支持移动应用的自适应和异步交互,需要花费大量的成本进行开发和维护。因此,探讨基于HTML5的移动终端中间件平台有特别的意义。新的解决方案将在下面的章节中讨论。
三、基于HTML5的移动中间件基础
A、设计原则
在HTML5的移动中间件采用基于Android的实现机制,开发人员可以使用HTML网页作为软件的界面Android的开发模式。WebView控件实现javascript和java代码之间的通信,使Android软件的界面可以利用HTML网页技术。移动JavaScript异步JavaScript和XML(AJAX)[14]可以提高动态移动网站的互动性,减少对移动网络的影响和提高智能手机和其他设备,配备先进的移动浏览器[15]它的可用性。同时,该平台支持开发人员将所有的网页通过一个极快的速度下载到移动设备。在运行过程中,他们可以与服务器通过Ajax技术来创建一个C/S结构或局部甚至独立于网络的应用。
B、设计体系
在本文中,移动终端应用中间件平台的解决方案,如图1所示。
图1: 对移动终端应用中间件平台架构
中间件,位于客户端/服务器的操作系统,管理计算机资源和网络通信,用来连接2个独立的应用程序或系统。连接的系统,即使它们有不同的接口,都能够通过中间件交换信息。一个关键的方法来执行中间件是通过信息传输。有了中间件,应用程序可以在多平台或操作系统环境中工作。
移动中间件分为五层。除了核心层,剩下的四层集中在不同的功能方向和领域:
CSI(核心系统基础设施层)此层致力于建立一个可扩展的、标准的、高效的系统基础设施,以及集成WebKit内核的第三方框架或组件。
增强层的标准用户界面:本层集中于表示层的扩展。它使开发人员能够建立更适合终端特性的用户界面。
ADF(推进装置的功能)层:这层涉及到移动终端设备相关的功能的使用,并支持业务创新,以终端的新功能的优势。
偏微分方程(专业、设备扩展层:这层关系)的进一步探索,对移动设备的相关功能的扩展和延伸。
EMA(企业管理体系的延伸)层:层的关注对象的企业扩张和用于建立系统管理框架中,设备管理、远程控制和服务器方面的整合或合作。
C、技术架构
• 移动中间件的系统架构图
基于HTML5的底部移动中间件是系统的核心层,使用的是WebKit内核集成第三方组件;下一层是用户界面层,可以根据终端特性建立富有表现力的用户界面;第三层为设备层,支持开发商通过对终端的特点进行业务创新;前两层的JavaScript接口层和企业管理层,这是用于服务器端和自定义的JavaScript引擎以及第三方框架的整合。开发商可以合理地使用它们来调用系统提供的业务功能的JavaScript接口的实现。中间件的系统架构图如图2所示。
图2 移动中间件的系统架构图
• 移动中间件的启动过程
移动中间件的启动过程主要涉及以下四类:dratekmapabcactivity,drateklayout,dratekbrowser和dratekurl。当中间件开始工作时,它会读(dratekmapabcactivity)在AndroidManifest.xml文件中定义的主要活动。它会调用oncreate()方法从其父类中扩展以完成初始化运行时的创建工作。然后系统会从上下文中创建一个布局对象,这将加载的应用程序定义的dratekurl类然后加载这个地址为移动设备浏览器的地址索引。系统会调用 init() 初始化方法先行登记,由中间件定义为浏览器的接口列表插件JavaScript对象。最后,它会调用inituseragent()方法来初始化该设备的用户代理标头和主要活动将调用load()方法来加载从上下文得到的意图。