[关闭]
@sambodhi 2021-10-12T23:10:58.000000Z 字数 4090 阅读 430

面向移动开发者的 iPaaS

image.png

作者 | Anjana Fernando
译者 | Sambodhi
策划 | 闫园园

是否在考虑开发下一款大型的移动应用?对于目前快节奏的行业,移动应用何时上市是至关重要的。决定它是安卓还是 iOS 应用只是其中一个问题。如今,大多数应用都需要一个后端系统来执行操作。诸如远程数据存储/同步、认证和用户通信等功能需要有一套后端服务。

那么,我们如何为移动应用程序开发这些后端系统呢?要完成这一点有两种主要的模式。第一种是进行直接集成。

image.png

图 1:移动后端直接集成

使用这种方法时,移动应用直接与 Web 服务器进行通信,而 Web 服务器托管了一组用于服务所需请求的 Web 服务。对简单的应用来说,这非常好,所有的业务逻辑都是独立于其他外部服务的,这些功能是自包含的。但如果我们有许多其他外部服务,而移动应用中的功能需要这些服务,那该怎么办呢?在此情况下,我们可以使用移动开发的中介模式(mediated pattern)。

image.png

图 2:移动后端中介集成

第二种方法是中介层(mediation layer)。中介层可以有效地执行与多个服务集成时所需的典型操作,例如数据映射、路由和转换。在云计算转型的今天,几乎所有的主流功能都可以作为软件即服务(SaaS)产品提供。从消息传递、数据库到识别管理,都有以云服务形式提供的服务。若能在云中获得大部分集成服务,那么下一个合乎逻辑的步骤就是在云中提供中介层功能。这就是集成平台即服务(iPaaS)发挥作用的地方。iPaaS 能够有效地集成云和企业内部的服务与混合云的功能,从而为前端的移动应用提供干净的 API 接口。

下面让我们深入了解一下现代 iPaaS 在移动应用开发方面的典型需求。

通信协议

HTTP/JSON

在移动开发中,最常使用的通信方式是通过 HTTP 的 JSON。因此,iPaaS 必须对 JSON 数据处理、验证和转换能力提供丰富的支持。另外,在提供全双工持久连接时,对 HTTP/2 的支持是一个加分项,这可以让我们进行更高效的并发请求处理,从而减少应用的延迟。除了 HTTP API 外,对 API 定义的支持对于诸如 OpenAPI 等技术也非常重要。通过这种方式,对 API 的正确描述就可以提供给应用来使用。

WebSocket

WebSocket 是一种通过 TCP 连接实现全双工通信的通信协议。这主要用于 Web 应用环境,使用建立的 HTTP 连接将其自身升级到 WebSocket 连接。在这之后,客户端和服务器可以进行双向通信,而无需 HTTP 协议的开销。事实上,在移动应用开发的背景下,如果移动应用是基于 Web 浏览器技术的,那么 WebSocket 将是与服务器有效通信的关键。

SSE

对于不能有效地使用 WebSocket 的情况,例如,提供服务器端通知机制的一个选择是服务器端事件(Server-Side Events,SSE),原因是负载平衡和 HTTP 代理服务器的使用复杂性,以及在大多数事件从服务器发送到客户端的情况。

这一优势在于,与轮询机制相比,可以通过一个已建立的连接发送多个消息,而不是其他方法中产生的专用请求和 HTTP 头。对于 SSE,客户端到服务器的通信仍然是通过普通的 HTTP 请求来完成的,因为相对于服务器推送事件来说,这些请求的频率并不高。它也是移动开发中的一个重要用例,应该在 iPaaS 中支持这种通信模式。

网络钩子

网络钩子(WebHook)基本上被用作远程 API 的回调(CallBack)机制。它并非用于移动应用和服务器之间的通信,而是用于后端系统中与其他外部系统集成的服务。举例来说,在问题跟踪系统中检查更新,或者在有人编辑你的文档时得到通知;这些事件将通过网络钩子通知后端,这些消息可以转发给移动应用。在现代服务中,网络钩子是一种在实现回调机制中经常使用的技术,因此,应该在 iPaaS 中得到支持。

AsyncAPI

如果说 OpenAPI 是针对同步的 HTTP API,那么 AsyncAPI 就是针对事件驱动的通信。AsyncAPI 满足了长期以来对消息传递端点、协议和消息模式的正式定义的空白需求。所以,除了 iPaaS 中支持的基于事件的通信机制之外,还应该支持 As 云南菜 API 来增强它的功能。

GraphQL

对拥有良好的用户体验来说,响应性是移动应用的关键。当用户行为出发网络星球时,应该在合理的时间内得到响应。所以,我们必须确保网络请求的有效负载尽可能小,而且更重要的是,请求本身的数量必须最小。因为网络往返需要花费大量的时间,所以我们必须保证网络请求的开销最小。

使用 GraphQL 可以解决以上情况。GraphQL 允许您将需要公开的所有数据建模为单个对象图结构。而且,GraphQL 查询语言还可以用于创建从对象图多个点上提取数据的单一查询。不需要执行多个查询,应用可以从单个查询中获得所有数据。与此同时,它确保在查询中只获得所需的数据字段,以避免典型数据服务中出现的过度获取现象。

旧版协议

某些遗留服务仍然可以使用诸如 XML 数据集和 SOAP WS-* 标准的通信技术。所以,中介层还必须支持这些协议和数据格式。

低代码开发

在快速开发环境中,一个图形化的建模系统是可取的。这样就可以实现自记录集成流(self-documenting integration flow), 在这种情况下,图形用户界面代表所定义的动作的清晰画面。这个方法还可以减少人们可能在纯代码环境中遇到的常见错误和效率低下。它对开发新手非常有吸引力,与低级别的代码相比,他们更愿意在更高的抽象上工作。总的来说,这会让所有的开发者有更高的工作效率。

低代码开发本身也有自身的缺陷。有时候,由于能够灵活地定制逻辑,直接代码能够提高效率。你可能希望添加一个自定义的验证逻辑,或使用自定义规则进行复杂转换。最好的方法是使用代码。这种情况很少发生,但是如果出现这种情况,在低代码/无代码的环境中,就会变成一个障碍,或者需要大量的工作。一种可能的解决方案是为开发者提供混合解决方案,也就是低代码和代码解决方案。开发者可以选择他们工作的模式,并相应地进行转换;通过这种方式,我们就拥有了两种方案的优势。

基于人工智能的开发者帮助

很多我们编写的集成和代码都包含一些我们经常遵循的模式。通过观察现有的集成和用户行为,我们就能帮助开发者帮助完成编程操作。

集成模式和模板

有些集成流自然会出现得更频繁。由于这个原因,开发者最终会在他们的项目中创建很多类似的集成流。通过向开发者提供频繁使用和兼容的集成方案模板,我们可以消除这一情况。这样,开发者就可以专注于为模板提供一组参数,并根据需要添加任何额外定制。

该方法将确保开发者能够立即获得解决方案,而不必浪费时间重新实现一个先前已实现的方案。与此同时,这也确保这些模板是经过良好测试的,并已用于生产。

API 治理

对于管理软件开发过程以及生成的工件来说,这是关键的方面。合适的治理过程可以确保版本控制系统能够正确地跟踪代码和其他工件,并且以集中的方式正确管理和跟踪公开的服务。

API 管理系统应该可以用来创建面向系统使用的内部集成流和其他外部服务的管理 API。我们保证了可用的 API 被正确地文档化,并且可以被任何前端应用发现。另外,这允许从一个集中的位置定义和执行进一步的操作,比如 API 监控、流量限制和安全策略。

WSO2 是一家具有超过 15 年开发企业集成和 API 管理解决方案经验的中间件企业。通过这些知识,WSO2 提出了 Choreo 平台——一种由团队设计的智能企业 iPaaS(EiPaaS)解决方案,以满足现代移动和基于网络的开发需求。

现在我们来看看这个平台的一些亮点。

总结

在本文中,我们研究了典型移动应用程序开发的需求——特别是关于处理后端的业务逻辑。iPaaS 的使用通过提供一个中介层来集成和编排需要执行的典型操作,从而极大地减轻了前端开发者的负担。

WSO2 Choreo 作为下一代智能 iPaaS 解决方案就是为了满足这种需求而推出的。其提供了一种直观的代码/低代码混合开发环境,以提供高生产力的体验。

原文链接:

https://wso2.com/choreo/resources/ipaas-for-mobile-developers/#anchor-0

添加新批注
在作者公开此批注前,只有你和作者可见。
回复批注