---
title: "为移动应用程序提供高效的后端服务，实现移动应用的协同功能"
date: "2018-03-19"
categories: 
  - "mobile"
  - "mobile-development"
  - "mobiletogether"
tags: 
  - "backend-servers-for-mobile-apps"
  - "mobiletogether"
  - "server"
  - "server-services"
description: 探索如何利用后端服务器上的 MobileTogether 服务来增强移动应用程序的功能，通过自动化诸如数据库查询和通知等任务，而无需用户界面。
---
Status: #blog

Tags:  #backend-servers-for-mobile-apps #mobiletogether #server #server-services

Categories: [mobile-development](/blog/zh/category/mobile-development.md) | [mobile-development](/blog/zh/category/mobile-development.md) | [mobile-development](/blog/zh/category/mobile-development.md)
# 为移动应用程序提供高效的后端服务，实现移动应用的协同功能

MobileTogether Server 高级版的服务在后端服务器上运行，为移动应用程序提供支持，其执行过程与任何运行在移动设备上的应用程序相互独立，并且基于多种触发条件。MobileTogether 服务可以为移动应用程序提供后台功能，或者执行完全自动化的独立操作，而无需任何用户与移动应用程序进行交互。例如，一个 MobileTogether 服务可以在指定时间生成报告，并将报告通过电子邮件发送给服务器管理员。或者，一个服务可以根据某些外部条件查询数据库，并执行操作，例如发送通知或电子邮件。

MobileTogether Server 服务是一组部署到服务器上的 MobileTogether Designer 操作，这些操作被打包成一个专门的解决方案文件。

[![](/blog/images/ServicesMT_Server_Advanced_blog.jpg)](ServicesMT_Server_Advanced_blog.jpg)

<!--more-->

MobileTogether 服务在后端服务器上为移动应用提供支持，虽然它们与移动应用共享一些功能，但本身不具备用户界面。例如，这些服务可以使用与移动应用完全相同的各种数据来源，包括 XML、HTML 或 JSON 数据结构、HTTP/FTP 请求、数据库或 XQuery 树。

已经熟悉跨平台开发工具 MobileTogether Designer 的开发者， [快速移动应用开发](https://www.altova.com/zh/mobiletogether/app-development) (RMAD) 将能够利用其经验，快速设计服务方案。

通过在“MobileTogether 设计器”文件菜单中选择“新建服务”，可以创建一个“MobileTogether 服务器”服务。这将打开一个简化版的“设计器”。由于服务不需要任何移动应用程序界面，因此用于页面和用户控件的辅助窗口将处于非活动状态。

让我们创建一个服务，该服务会查询销售数据库，以获取每日销售产品的数量，将查询结果转换为结构化的XML数据，然后将包含XML数据的邮件发送给销售管理员，并将通知发送给选定的公司高管。我们将使用MobileTogether公司销售演示应用程序中包含的销售数据库，该应用程序会随着MobileTogether Designer的自动安装而安装，并部署在MobileTogether演示服务器上。

我们的服务需要进行数据库查询，并且需要一个XML结构，就像下面的“页面源代码”截图所示

[![移动协作服务器服务的数据来源](/blog/images/MobileTogether-service-data-sources.png)](MobileTogether-service-data-sources.png)

该服务还包含一个名为“触发器”的结构，该结构将存在于 MobileTogether 服务器上。 我们将在部署该服务时，进一步定义这些触发器。

一旦完成了“页面来源”（Pages Sources）的设置，我们就可以定义“MobileTogether 操作”（MobileTogether Actions），这些操作将在服务运行时执行。通常用于创建移动应用页面布局的“设计面板”（Design Pane），现在包含一个大型按钮，点击该按钮可以打开“服务操作树”（Service Action Tree），我们将在其中定义服务的各项操作。以下截图展示了所有可用于 MobileTogether Server 服务的可用操作列表：

[![移动协作服务器服务可执行的操作](/blog/images/MobileTogether-service-actions.png)](MobileTogether-service-actions.png)

请注意，所有与页面导航、用户界面或用户功能相关的“MobileTogether”操作都已显示为灰色，以表明这些功能在移动应用程序的后端服务器上不可用。

MobileTogether Server 服务执行一系列操作，这些操作可能包含多个步骤，并且可以执行复杂的条件逻辑（例如，如果-则-否则），调用在单独的动作组中定义的子程序等。

我们的销售报告服务执行以下操作：该服务首先执行数据库查询，然后循环处理查询结果，并更新 XML 结构。最后，它会调用操作组，以发送电子邮件和推送通知。

[![移动应用程序后端服务器所执行的操作](/blog/images/actions-for-MobileTogether-service-running-1.png)](actions-for-MobileTogether-service-running-1.png)

以下是针对指定收件人的“发送邮件”操作组

[![为该服务设置电子邮件通知群组](/blog/images/send-email-for-MobileTogether-service.png)](send-email-for-MobileTogether-service.png)

该邮件功能允许我们将 XML 数据作为附件发送，而无需在任何其他位置保存任何临时文件。

以下是用于推送通知的操作组。我们可以通过用户的 MobileTogether 用户名，向三位用户发送推送通知。

[![](/blog/images/send-notification-for-MobileTogether-service.png)](send-notification-for-MobileTogether-service.png)

推送通知功能还可以让我们向 MobileTogether 解决方案发送数据。由于“公司销售”应用程序本身会针对销售数据库执行一系列查询，因此我们不需要为此推送发送任何数据。

移动应用后端服务器的服务可以通过“移动应用设计器”文件菜单中的“部署”选项进行部署。服务部署对话框中包含一个特殊选项，用于打开“移动应用服务器”的网页界面，并定义触发器，这些触发器将执行该服务

[![MobileTogether 服务提供编辑触发器的选项](/blog/images/MobileTogether-deploy-and-edit-triggers.png)](MobileTogether-deploy-and-edit-triggers.png)

有三种类型的触发器可以执行该服务：定时器、文件系统变化（例如，监控的热文件夹或文件），以及HTTP触发器。为了进行初步测试，我们可以定义一个定时器，使其只执行一次该服务：

[![用于测试的 MobileTogether 服务触发器](/blog/images/MobileTogether-testing-trigger-1.png)](MobileTogether-testing-trigger-1.png)

计时器启动执行过程，服务器日志视图显示执行成功。位于顶部的“已完成”条目表明执行成功，而紧随其下的条目则详细记录了执行过程，从数据库查询开始。

[![MobileTogether 日志，用于服务测试执行](/blog/images/MobileTogether-log-for-test-execution.png)](MobileTogether-log-for-test-execution.png)

为了节省空间，我们截取了部分屏幕截图，但它实际上涵盖了整个流程，直到生成电子邮件和发送通知。

以下是邮件附件，以窗口形式在 Altova XMLSpy [XML 编辑器](https://www.altova.com/zh/xmlspy-xml-editor) 中显示：

[![MobileTogether服务生成的电子邮件附件的XML视图](/blog/images/xml-file-attachment-1.png)](xml-file-attachment-1.png)

以下是发送到安卓设备和iPhone上的通知示例：

[![Android设备上的通知](/blog/images/MobileTogether-notification-android.png)](MobileTogether-notification-android.png)

[![关于iPhone的通知](/blog/images/MobileTogether-notification-ios.png)](MobileTogether-notification-ios.png)

当任何接收者点击通知时，公司销售应用程序将会启动，并提供当天销售情况的详细信息。

[![MobileTogether 公司的销售演示应用程序](/blog/images/CompanySales-app.png)](CompanySales-app.png)

测试结果完全符合我们的预期，因此我们可以定义一个新的触发器，每天在工作时间结束后执行该服务

[![为移动应用程序后端服务器提供的服务的生产环境触发器](/blog/images/production-trigger.png)](production-trigger.png)

亲自体验一下，如何在后端服务器上轻松定义移动应用的各项服务，并通过使用免费的[MobileTogether Designer](https://www.altova.com/zh/mobiletogether/download)，构建拥有[众多高级功能](https://www.altova.com/zh/mobiletogether/features)的、跨平台的移动应用。
