利用了各种已发布的 Web 来源,以及来自某个企业托管的关系数据库的数据。您会看到,IBM® Worklight V5 是构建这类针对各种移动平台的基于 mashup 的混合应用程序的理想平台。
IBM Worklight V5 提供了一个开放、全面、先进的移动应用程序平台,可帮助您高效地开发、运行和管理 HTML5、混合和原生应用程序。
使用基于标准的技术和工具、移动优化的中间件、各种安全机制以及集成的管理和分析功能,Worklight 简化了跨多种移动平台(包括 iOS、Android、BlackBerry 和 Windows® Phone)的应用程序开发生命周期。作为一个基于 Eclipse 的可视开发环境,Worklight 使用开放技术(比如 HTML5、Apache Cordova 和 JavaScript)和流行的 JavaScript 框架(比如 Dojo、jQuery 和 Sencha Touch)帮助您加速移动应用程序的开发、测试和交付。
要确定在开发移动应用程序时使用哪些技术,您需要理解移动 Web、混合和原生应用程序的不同开发方法的性质:
移动 Web 应用程序可在几乎任何设备上运行,因为它们与设备的任何原生特性(比如本地文件存储、推送通知等)没有任何关系。这些应用程序通常基于 HTML5 与 CSS 和 JavaScript 的协作。使用这些既定的技术有助于降低您的开发成本,因为您可重用可用的技能,无需原生平台开发人员的帮助。单一的部署、维护和测试生命周期并不太
复杂。此外,您无需担忧如何在专用的应用商店中启动应用程序,这可能减少您的潜在收入并使应用程序维护更加棘手。 混合应用程序由 HTML5、CSS 和 JavaScript 组成,能够访问移动设备的原生特性。它们不仅提供了移动 Web 应用程序的所有
优点(包括应用程序在许多平台上执行的能力),还可利用许多原生的设备特性。此方法通常利用一个框架来 “虚拟化” 原生设备功能。这样的抽象是通过 JavaScript 桥提供的,比如 Apache Cordova(PhoneGap 框架的前身)。这种组合最大限度地增强了用户体验,在跨广泛的平台开发应用程序上提供了最高的灵活性和可伸缩性。不同的形状规格和设备功能可通过皮肤解决。 原生应用程序在您希望利用设备的所有原生特性以及原生观感时很有用。在需要内存密集型、复杂的设备功能时,通常推荐使用此方法。
但是,因为必须开发、维护和测试针对不同设备的原生代码,
所以此方法通常更昂贵且扩展性更差。
混合应用程序方法采纳了 Worklight 融合这两个领域的最佳成果而形成的强大功能,主要支持使用 HTML5、CSS 和 JavaScript 编写的应用程序,但也支持在移动客户端运行时中通过 Cordova 全面访问设备功能。Cordova 是一个移动框架,支持您将设备上的一个嵌入式 WebView 或 Webkit 的单一代码库原生地用于所有智能电话。
在本文中,我们将利用许多 Worklight 特性来创建一个混合应用程序,该应用程序混合了来自客户端和服务器端上的多个来源的数据、演示和功能。文中提供了样例代码,以便您在自己的环境中测试示例。
Worklight 架构
本文中描述的场景使用了多个 Worklight 组件(参见图 1):
IBM Worklight Studio 是一个基于 Eclipse 的 IDE,支持您执行所有必要的编码和集成任务来开发全功能的应用程序。 IBM Worklight Server 是应用程序、外部服务和企业后端基础架构之间的一个基于 Java 的网关。Worklight Server 包含的安全特性为连接、多来源数据提取和操作、身份验证、Web 和混合应用程序的直接更新、分析和操作管理功能提供了支持。Worklight Server 可在 Java EE 应用服务器(比如
WebSphere Application Server)上作为一个专用应用程序运行。出于本文的目的,我们将使用 Worklight Studio 随带的轻量型的 Jetty HTTP 服务器。 IBM Worklight 设备运行时组件 为一般环境和各种针对性的环境提供了 SDK 和客户端移动应用程序运行时。它还签入了服务器集成功能的客户端部分。 IBM Worklight Console 是一个基于 Web 的 UI,专用于持续监视和管理 Worklight Server 及其部署的应用程序、适配器和推送功能。
图 1. 主要的 Worklight 组件
对于此场景,您可以设想自己必须提供来自多个来源的信息,而所有这些信息都与一个特定位置相关。这可能是来自现场办事处或地理区域的与销售相关的信息,所有信息以各种不同的格式提供。为了简便起见,我们仅利用著名的公共互联网来源。
所有代码(HTML、CSS 和 JavaScript)将在 Worklight Studio 中开发,然后部署到 Worklight 服务器。Worklight 提供了一个适配器集成框架来连接后端系统,向移动应用程序提供数据或从中获取数据,并在此数据上执行任何必要的服务器端逻辑。Worklight Console 对控制应用程序很有帮助,也可以将它用作一个发布点。
样例应用程序的基本控制流如图 2 所示。
图 2. 控制流
移动 Web 应用程序是从 Worklight Server 加载的。 作为初始 HTML 文件的一部分,创建了一个自定义小部件,以便调用 Google Maps API 来呈现地图,最初通过 HTML5 地理位置特性定位用户当前的位置。 该应用程序调用服务器端适配器来提供一组位置。 服务器端 LocationAdapter 通过 JDBC 从 DB2® 数据库检索一个位置数组并将它发送回移动客户端。 只要用户选择一个新位置,地图上的位置就会更新,并会通过 NewsAdapter 检索相关信息。 NewsAdaptor
首先从 Google News Feed 收集数据。 然后它会使用链接调用 StockAdapter 从 Yahoo! Finance 检索股票数据并扩充这两部分数据。
让我们看看构建此应用程序所需的两个主要部分:客户端和服务器部分,然后在移动模拟器上运行它们。