为啥 Worklight 应用程序需要 Worklight Server?

Posted

技术标签:

【中文标题】为啥 Worklight 应用程序需要 Worklight Server?【英文标题】:Why do worklight apps need a Worklight Server?为什么 Worklight 应用程序需要 Worklight Server? 【发布时间】:2013-03-03 22:45:36 【问题描述】:

我在 IBM worklight for android 上开发了一个应用程序。我必须使用 Web 服务,但我需要 worklight 服务器。我想知道为什么在 worklight 上开发的应用程序需要 worklight 服务器。我不是在没有 worklight 服务器的情况下开发应用程序吗?

【问题讨论】:

【参考方案1】:

IBM Worklight 提供的各种功能都需要 Worklight Server。例如:

Adapters 允许您通过 HTTP、SQL DB、JMS 和 IBM Cast Iron 从 REST 和 SOAP API 获取数据。它们位于 Worklight Server 上,并且始终将 JSON 发送回客户端,无论原始服务返回什么(例如 XML)。您可以在Getting Started Modules 中找到更多信息。但是,这不会阻止您在不使用 Worklight Server 的情况下从客户端执行正常的 AJAX 请求。我发布了一个执行简单 AJAX 请求 here 的示例。另一个特点是您可以使用 Java(而不是 javascript)代码在这些适配器中提供功能。

Direct Updates - 一旦您将 Worklight 混合应用程序部署到 Worklight 服务器,当安装了该应用程序的现有移动设备与服务器联系时,他们将收到有更新的通知。用户选择升级后,将从 Worklight Server 下载资源(html、CSS、JS)文件,他/她将拥有更新的应用程序,而无需通过 Apple 或 Google 的应用程序商店。还有一种方法可以禁用对 Worklight 混合应用程序的访问。

安全 - 有各种依赖于 Worklight Server 的安全功能。例如:Custom Device Provisioning和各种类型的Authentication。数据存储功能需要与 Worklight Server 进行某种程度的通信,例如:JSONStore 和 Encrypted Cache。

不需要使用 Worklight Server,但它会限制您的应用程序可以利用的功能数量。

【讨论】:

当您在设备上使用您的应用程序时,是否有必要保持 Worklight 服务器始终运行? 如果您想在我的回答中利用上面列出的功能(即适配器、直接更新、安全性),您必须让 Worklight Server 保持运行状态。【参考方案2】:

没有 WL 服务器的应用程序只是一个 PhoneGap/Cordova 应用程序。 WL 的全部意义在于让服务器后端提供更新、用户访问控制和安全数据通信,例如使用适配器与可能位于防火墙后面的服务器连接。

如果您不需要服务器,那么您可能并不真正需要 WL。如果您确实使用 WL,只需使用适配器与 Web 服务器通信。

【讨论】:

对于未来的读者:“没有 WL 服务器的应用程序只是一个 PhoneGap/Cordova 应用程序”。这是有道理的,但它过于简化了。 IBM Worklight 还提供了许多客户端库,例如 JSONStore,它们在 Worklight 应用程序之外不存在。开发人员还可以利用 Worklight 生态系统提供的各种工具。 @cnandreu 你说得对,有 WL 独有的客户端 API,也许我应该在我的回复中添加更多上下文。但是,我认为大多数人都会同意 WL 的主要好处是服务器组件,以及它为传统混合应用程序添加的功能。尤其是在为企业客户/用户构建时。 我不确定我会写 WL 的主要好处是服务器组件,它是一个重要的组件,但并不比工作室或运行时环境(客户端库)更重要。 【参考方案3】:

Worklight Server 是移动设备的运行时容器 您在 Worklight Studio 中开发的应用程序。它不是应用程序 Java™ Platform, Enterprise Edition (JEE) 意义上的服务器。它的作用 作为 Worklight 应用程序包的容器,实际上是一个 Web 应用程序的集合(可选地打包为 EAR 文件) 在传统应用服务器之上运行。

Worklight Server 旨在集成到企业中 环境并利用其现有资源和基础设施。这 集成基于作为服务器端软件的适配器 负责引导后端企业系统的组件和 为用户设备提供基于云的服务。您可以使用适配器 从信息源检索和更新数据,并允许用户 执行事务并启动其他服务和应用程序。

您可以将 Worklight Server 用于以下任务:

为数十万用户提供交易能力,让他们能够直接访问后端系统和基于云的服务。

使用标准 Worklight Studio 工具配置、测试和部署描述性 XML 文件以连接到各种后端系统。

直接更新已部署的混合应用程序和 Web 应用程序,无需通过不同的应用商店(受供应商的服务条款约束)。

自动将分层数据转换为 JSON 格式,以实现最佳交付和消费。

通过统一的推送通知架构增强用户交互。

定义多个数据源的复杂混搭以减少总体流量。

与组织现有的安全和身份验证机制集成。

http://pic.dhe.ibm.com/infocenter/wrklight/v6r0m0/index.jsp

【讨论】:

以上是关于为啥 Worklight 应用程序需要 Worklight Server?的主要内容,如果未能解决你的问题,请参考以下文章

notificationTokenNotUpdatedOnServer - Worklight

无法扩展 GCMIntentService 以修改原生 Android 客户端的通知视图 [Worklight 7.0 + Android]

Worklight 服务器 URL 设置在 iphone 应用程序上不可见

Worklight 6.1 部署到 Windows Phone 8:AUTHENTICATION_ERROR,deviceId null

Worklight HTTP 适配器 - 简单的 Web 服务示例问题

IBM Worklight - 为啥在 worklight.js 中使用 sql 查询以及它在应用程序中的用途