Understand Full-Stack Development with Mobile Back-End Tools

从本质上讲,MBT 是一组工具,可让您无需编写一行代码即可生成功能齐全的 OData Web 服务。 这些工具旨在透明地将 OData 模型转换为持久性,并提供透明的 OData 功能,包括开箱即用的增量计算。

除了过度简化之外,MBT 作为 SAP 移动服务的一项功能,是一组工具,旨在解决移动应用程序同步离线功能时可能出现的若干挑战。

因此,它们提供(可选)功能,例如目标集成(作为缓存)、下载跟踪、客户端过滤器和进一步的自定义。

MBT 可作为 Visual Studio Code 的市场扩展或作为 SAP Business Application Studio 的一部分在“SAP 移动应用程序”的预设中使用。

本教程及其任务将向您介绍移动后端工具缓存数据库的可能用法。 它旨在通过技术引入技术提供简化方案,同时保持对试用用户的要求。

您可以在 SAP 业务技术平台 (BTP) 或本地(在 Apache Tomcat、TomEE 或 Eclipse Virgo 上)运行如此生成的 OData 服务。

如果您计划在 SAP BTP 中运行生成的服务:

  • SAP Business Application Studio 将是大多数开发人员的更好选择,因为它允许您在设计时和运行时利用相同的环境。

  • CSDL 图形建模器仅在 SAP Business Application Studio 中可用。

  • 作为云解决方案的 SAP Business Application Studio 将使用 SAP Mobile Services 的预设开箱即用,并且不需要手动设置开发环境以及与操作系统无关。

如果您计划在本地架构中运行生成的服务:

  • 您仍然可以通过 SAP Cloud Connector 将其连接到 SAP Mobile Services,但您可能希望在本地架构中生成和开发服务,利用移动后端工具的 Visual Studio Code 扩展

  • 对于 Visual Studio Code,您需要在本地设置自己的环境。

下图描绘了移动解决方案上下文中基于 MBT 的服务的示例架构:

在本教程的任务中,目标系统作为公开可用的 HTTP 目标连接。 在实际场景中,如果是云系统,您可能会以类似的方式连接系统,如果是内部部署系统,则可以通过 SAP Cloud Connector 连接系统。

Role of CSDL and database

OData 定义模型和操作的声明方式的工作方式允许 OData 操作和实际数据库上的操作之间的映射。

因此,通常 MBT 的中心起点是元数据文件,分别是 Common Schema Definition Language (CSDL) 文件。 在 SAP Business Application Studio 中,MBT 可以利用 CSDL 图形建模器来简化 OData 模型的使用。

一方面,MBT 提供可运行的任务,生成数据库持久性或持久性描述符 (SQL),反映整个 OData 模型。 另一方面,MBT 可以基于现有的数据库表构建透明的 OData 服务。

根据运行时支持不同的数据库类型。 以下数据库可能例如 在某些环境中与工具一起使用(Derby 和 H2 仅用于测试,请参阅文档和/或产品可用性矩阵以获取官方支持声明):

  • SAP ASE

  • Apache Derby

  • H2 database

  • SAP HANA

  • Azure SQL or Microsoft SQL Server

  • Oracle Database

  • PostgreSQL

  • SAP SQL Anywhere

Benefit of caching mobile app data

在企业环境中构建的大多数应用程序都不是独立的用例,而是必须集成到现有的生态系统、数据和业务流程中。 因此,MBT 提供将 OData 服务上的操作链接和映射到另一个接口上的操作。

通常,在开发新的移动应用程序时,您必须选择最适合您的架构的技术。 因此,您可以在源系统上构建新服务、将数据复制到另一个系统或缓存数据的相关部分以方便使用移动消费。

如果您想在遗留接口之上构建服务,如果您想减少引用系统上的负载,或者如果您想添加更高效的增量功能以获得更好的客户端应用程序用户体验,而无需修改后台,这可能会派上用场 -端接口。

Benefit of client registrations

在 MBT 中,除了用户身份之外,客户端注册还反映了一种特定的离线数据存储。 这种识别允许在基于时间戳的计算之外进行精确的更改确定,特别是与客户端过滤器结合使用。

客户端注册要求服务包含一个实体,离线商店在该实体上使用 uuid 进行注册。 此 ID 必须与 HTTP 标头 Client-Instance-ID 中的任何即将到来的用户请求一起发送。

What is a Client Filter?

许多用例应允许用户选择可以将哪些数据下载到客户端数据库中。

这可以例如是地理、组织或历史要求。 因此,MBT 允许在特定离线商店的自定义下载查询中利用 ClientFilter 注释的实体。

注册到服务后,客户端因此可以将一个或多个实体上传到过滤器实体,以管理从其他实体下载的数据。

例子:

在特定日期在特定区域工作的销售代表可以上传过滤器,以仅检索过去两年内该特定区域客户的销售订单的客户数据。

更多Jerry的原创文章,尽在:“汪子熙”:

SAP BTP 上使用 Mobile Back-End Tools(MBT)进行全栈开发的方法概述相关推荐

  1. SAP HANA Cloud 学习教程之二: 如何往SAP BTP 上 HANA Cloud 实例的数据库表里插入数据

    这个教程的前一篇文章,SAP HANA Cloud 学习教程之一: 如何在 SAP BTP 上创建 SAP HANA Cloud 实例,我们已经成功在 SAP BTP HANA Cloud Servi ...

  2. 在 SAP BTP 上体验 SAP HANA Cloud 试用版本

    这是 Jerry 2021 年的第 58 篇文章,也是汪子熙公众号总共第 335 篇原创文章. 我们在 SAP 官方网站 help.sap.com 输入关键字 SAP HANA 之后: 会看到很多搜索 ...

  3. SAP新一代全栈开发工具:SAP Business Application Studio

    作为SAP从业者,我们能够清楚地感受到这些年SAP技术进化的趋势. SAP前端开发技术的进化方向,从SAP GUI,到能在浏览器里运行的ABAP Webdynpro / WebClient UI,再到 ...

  4. java的虚拟机不支持在鲲鹏上_屌炸天,Oracle 发布了一个全栈虚拟机 GraalVM,支持 Python!...

    前阵子,Oracle 发布了一个黑科技 "GraalVM",号称是一个全新的通用全栈虚拟机,并具有高性能.跨语言交互等逆天特性,真有这么神奇? GraalVM 简介 GraalVM ...

  5. 全栈开发工程师微信小程序-上(中)

    全栈开发工程师微信小程序-上(中) width: 750rpx; 复制代码 750rpx代表与屏幕等宽,rpx的缩写responsive pixel,这个单位是可以根据屏幕大小进行自适应调整的像素单位 ...

  6. python 全栈开发,Day86(上传文件,上传头像,CBV,python读写Excel,虚拟环境virtualenv)

    python 全栈开发,Day86(上传文件,上传头像,CBV,python读写Excel,虚拟环境virtualenv) 一.上传文件 上传一个图片 使用input type="file& ...

  7. 【线上峰会】如何一天掌握物联网全栈开发之道

    当移动红利时代结束,人才需求接近饱和的同时,传感技术.云计算.大数据.人工智能的日益成熟,并与智能家居.智慧城市相融合,将我们带入了真正智能化的物联网时代.那么,作为开发者的我们,又该如何顺势而为? ...

  8. 全栈开发工程师微信小程序 - 上

    全栈开发工程师微信小程序-上 实现swiper组件 swiper 滑块视图容器. indicator-dots 是否显示面板指示点 false indicator-color 指示点颜色 indica ...

  9. 全栈开发工程师微信小程序-上

    全栈开发工程师微信小程序-上 实现swiper组件 swiper 滑块视图容器. indicator-dots 是否显示面板指示点 false indicator-color 指示点颜色 indica ...

最新文章

  1. bootstrap-动画过渡
  2. 拓扑学+计算机,吴国平: 拓扑学到底有多重要? 在数学中占据多高的地位?
  3. thinkphp路由的作用
  4. solidity事件详解
  5. 艾伟也谈项目管理,我是如何带领团队开发项目的
  6. 数据流InputStream转字符串
  7. python keyerror_盘点Python 初学者最容易犯的10大错误!你中招了吗?
  8. 【JSP】JSP基础学习记录(二)—— JSP的7个动作指令
  9. 如何在Vue项目中使用vw实现移动端适配
  10. 使用HTML5,CSS3和jQuery增强网站用户体验
  11. 加载自己保存训练模型OSError: Unable to open file (unable to open file: name = ‘./model/LeNet_model‘, errno = 2
  12. Subversive-connectors 下载地址
  13. 普通的Shader-序列帧相关
  14. 电视端Android TV应用移植开发常见问题QA-Android TV 应用开发
  15. kali攻击手机_kali linux入侵安卓手机
  16. word07 去掉标题前的黑点
  17. 多种类型的统计图介绍
  18. 二叉树层次遍历(借助队列实现)
  19. 超简单的位运算---再也不用担心看不懂题解了
  20. linux断电并重启命令,Linux系统关机重启相关命令

热门文章

  1. PHP删除数组中空值的方法介绍
  2. 技术 | Python从零开始系列连载(二十九)
  3. 2017年 JavaScript 框架回顾 -- React生态系统
  4. RESTful Web Service
  5. Exchange2010之典型安装
  6. 设计模式之 中介者模式
  7. 分享下多年积累的对JAVA程序员成长之路的总结
  8. QLineEdit限制数据类型——只能输入浮点型数
  9. linux安装redis集群+常见报错
  10. bzoj1096 [ZJOI2007]仓库建设