《SAP HANA平台应用开发》目录— 导读

本文涉及的产品
访问控制,不限时长
简介:


f4dfa5df93fccd833e97071cde09b21fa8c82ca6

前  言
SAP on Cloud
云端的SAP是SAP公司对未来的一个展望。SAP公司以及其软件产品、业务模式将会变成什么样、未来是什么,此时此刻没有人说得清楚。但是,SAP公司目前所有的业务发展、主流技术路线都非常明确地指向一个方向—云计算。
为了实现这个目标,SAP公司花了五六年的时间,耗费超过300亿美元进行收购(Ariba、Hybris、SucessFactor、Concur这样的SaaS公司及Sybase)和新产品研发(已经发布的有HANA企业云、HANA云平台、S/4 HANA及全新的XS 2.0应用服务器),就是为了打造一个敏捷平台,从而为将来的数字经济服务。而这个敏捷平台就是SAP HANA,目前全球已经有超过7200家公司使用它,而且其客户量每年都以超出想象的速度在增加。这不是一个愿景,而是正在发生的事情。
在过去几十年的发展中,SAP公司的核心平台一直都是NetWeaver ABAP和NetWeaver Java(Java从2004年才被纳入NetWeaver体系),而且作为SAP公司立身之本的企业商务套件及一些主流技术产品,基本上都是基于这两个平台的。
SAP NetWeaver是比Java历史更为悠久、成熟、健壮和稳定的平台,但其也有自身的不足。首先,SAP NetWeaver虽然一直在追着互联网的脚步(从早期的ITS,到BSP技术,再到WebDynpro和Personas做Web化的应用),但是始终受制于自身平台,无法跳出平台进行思考,太多的成功和贡献反而成为了它的历史包袱。其次,由于这个平台的不开放性,不太适合主流的Web应用部署和移动开发,同时Java受制于专利和一些竞争对手的法律限制。最重要的是,这个平台不适合部署在云端,云端部署要求应用要轻、要可面向微服务、可扩展性和兼容性强。
因此,SAP需要寻求一个新应用服务平台作为云计算架构中PaaS层面的应用支撑,这个责任就落在了SAP HANA XS身上。之所以称其为HANA XS而不是SAP XS,是因为XS刚开始发布时,是被当作一个轻量级Web服务组件被集成到SAP HANA中的,并且能够利用SAP HANA全部计算能力。
从XS的2.0版本开始,HANA XS将会从HANA数据库软件包中剥离出来,真正成为一个平台即服务的平台。如果基于云部署,HANA XS底层的数据库也是SAP HANA。如果用户选择的是本地部署,那么和以前一样,XS依然和SAP HANA安装在一起,这种部署的灵活性,使得SAP HANA XS部署应用系统时更方便,可不中断现有系统的基础架构,而且可以立即适应企业的环境。
通过XS服务器端的JavaScript技术,可充分利用内存计算及UI5技术,并且可以Fiori Apps作为应用的发布形式,最终提供UI5+XS+HANA这样全新的技术组合,从而将应用非常轻松地部署到云平台之上,为用户提供极佳的使用体验和部署策略。这就是未来SAP应用系统的样子。
为什么需要阅读本书
本书的前传篇《SAP HANA实战》主要是以构建一个商务智能的项目为出发点去讲解SAP HANA系统安装配置、数据ETL、信息建模、BI集成应用及系统管理的。但是,笔者总觉得还少了点什么,因此就有了写这本书的念头,所以本书应该算是《SAP HANA实战》的兄弟篇,书中仅针对基于SAP HANA XS原生应用开发来进行讲解,其他的话题一概不涉及。
本书不包含任何关于BW on HANA、S/4 HANA、BI on HANA和ETL、数据复制、ABAP、R的话题,也没有讲解SAP HANA的系统安装、配置升级管理等话题,如果读者对这些话题感兴趣,可以参考《SAP HANA实战》一书。
早期的SAP HANA应用主要作为企业BI商务智能的平台,然后推动ERP on HANA,接下来再升级到S/4 HANA这一步。但是,大力提升上层应用的运行效率仅是它最基本的功能,而且SAP也正在依托HANA这个平台进行更大的自我创新。例如:
SAP HANA已经从本地单节点、集群部署走向云部署,并且推出了HANA企业云及HANA云平台,公有云平台支持Java(目前使用的SAP JVM、XS 2.0版本将使用TomEE来支持Java运行)、HANA、HTML5的应用开发,而XS 2.0也将主要应用在云部署上,并且还将支持Node.js、C++的开发。
在S/4 HANA大计划中,Simple Finance、Simple Logistics都基于SAP HANA,并且原有的大部分业务操作全部用Fiori App来替换,并应用HANA模型以简化数据结构,同时应用了大量XSJS代码。
在S/4 HANA中,SAP NetWeaver架构已经发生实质性的变化:SAP GUI客户端→SAP NetWeaver应用服务器→数据库的四层架构(之前是三层架构),即浏览器→SAP NetWeaver前端服务器→SAP Netweaver后端服务器→数据库,而后端服务器仅作为核心业务逻辑继续存在,并持续被优化。
全面拥抱HTML5(UI5),在服务器端大量采用JavaScript、HANA信息模型等,而这些东西都是基于SAP HANA XS的,并且逐步向XS上迁移。
由此可见,依托SAP HANA XS进行原生应用开发,是SAP将来新应用的开发技术路线。虽然XS平台支持HANA原生、Node.js、Java、C++四种应用开发,以及自定义容器,但毫无疑问,HANA原生应用(即XSJS、UI5、Fiori Apps、CDS、Modeling)将是未来采用的最主要的方式,因此本书所有的章节都是围绕着HANA原生应用开发展开的。
本书主要内容
本书逻辑上可分成五个部分,读者可以根据下面的简介来选择性阅读。
第一部分:包含第1、2章,主要讲解SAP HANA服务器的各个组件、原生项目的开发架构、SAP HANA工作台的主要操作、创建用户、创建表、赋予权限等。
第二部分:包含第3、4章,主要介绍信息建模、SQLScript相关知识。这部分相对独立,但后续的XS项目示例中会应用这部分知识。
第三部分:包含第5~8章,讲解了HANA原生应用开发过程涉及的绝大部分内容,包含XS项目的创建、核心数据服务、访问控制、XSJS、OData和UI5集成等内容。
第四部分:包含第9~11章,这部分主要通过一个具体案例来说明HANA XS原生应用的开发过程及所涉及的全部对象。在介绍过程中,一步一步不断增加新特性,使这个例子成为一个完整和考虑周全的系统,最后还将一个XS应用部署和传输到另外一个HANA系统,并重点介绍了修改控制、传输等细节内容。
第五部分:包含第12、13章及附录。主要讲解HANA应用上线后如何进行运维、团队如何进行协同开发,以及如何实现系统的高可用。在附录部分,提供了作者很多年的经验和心得。
本书面向的读者
本书是一本面向应用开发的纯技术书,瞄准基于SAP HANA原生应用开发的所有细节内容,只要你对SAP HANA、XS、UI5、HANA原生应用开发感兴趣,本书都将是你的最佳选择。
目前还在从事ABAP开发的读者,通过本书可轻松进入HANA应用开发领域,还可以尝试将一些已经在做的项目用XS来实现,并将其作为一个解决方案发布到HANA云平台,从而成为一个HANA云应用的开发者。
阅读过《SAP HANA实战》的读者则可以从本书中学到HANA原生应用开发的内容,并且在新的HANA项目中不断应用这些技术。
HANA系统管理员则可以从本书中学到HANA应用自动化传输、配置和协同开发、高可用等相关知识。
勘误和支持
本书基于SAP HANA SPS10 Revision 95版本进行讲解。在本书的撰写过程中,SAP HANA版本也在不断升级,每次推出新的SPS版本,或者有比较大的变化(例如XS 2.0的架构更新),作者都花了相当多的时间去更新书中的内容。
由于受限于作者本身的知识,书中某些内容可能阐述得不是非常精确,如果大家在阅读中发现有一些错误,敬请谅解。
特别感谢
感谢机械工业出版社华章公司杨福川的大力支持,编辑姜影、孙海亮的耐心帮助,因为有了他们本书才得以顺利出版;感谢SAP研究院的张凯,是他帮助作者提升了本书的格调;还要感谢小黑屋七人众的吐槽支持。

目  录
前言

第1章 SAP HANA和XS开发
1.1 SAP HANA系统的组件
1.1.1 数据库服务的组件
1.1.2 应用服务和辅助组件
1.2 进入XS应用开发的新篇章
1.2.1 XS原生应用和Fiori App
1.2.2 XS应用开发架构
第2章 熟悉HANA开发环境
2.1 环境准备
2.1.1 SAP HANA服务器软件及硬件
2.1.2 SAP HANA客户端软件
2.2 第一次亲密接触
2.2.1 几个系统用户
2.2.2 连接到SAP HANA系统
2.3熟悉SAP HANA工作台
2.3.1 视角切换
2.3.2 SAP HANA系统运行期对象
2.3.3 常用的三个按钮
2.3.4 创建表和上传数据
2.4 用户、角色和授权管理
2.4.1 用户管理
2.4.2 角色管理
2.4.3 关于授权
第3章 信息建模
3.1 准备工作和TPC-H
3.2 属性视图
3.3 分析视图
第4章 建模进阶和SQLScript
4.1 计算视图
4.1.1 基本工作界面
4.1.2 计算操作
4.2 计算视图—可视化方式
4.3 SQLScript
4.3.1 表类型
4.3.2 存储过程
4.3.3 计算引擎函数CE Function
4.4 计算视图—脚本方式
第5章 HANA XS原生应用
5.1 XS路线图
5.2 XS应用开发
5.2.1 XS应用程序
5.2.2 XS项目开发流程
5.3 永远的“Hello, World”
5.3.1 XS项目的开发视图
5.3.2 创建XS资源库的本地工作区
5.3.3 创建“Hello,World”的XS项目
5.3.4 访问控制部分
5.3.5 运行程序
5.3.6 项目协同开发
5.4 从设计期到运行期
5.4.1 设计期对象的扩展名
5.4.2 可视化向导方式
第6章 深入XS开发
6.1 XS应用的开发流程
6.2 XS应用的访问控制
6.2.1 应用描述文件
6.2.2 应用访问控制文件
6.2.3 应用权限定义文件
6.3 XS项目开发规范
6.3.1 分门别类
6.3.2 Package和开发规则
6.3.3 对象如何引用
6.4 数据库对象
6.4.1 创建Schema定义
6.4.2 创建Table定义
6.4.3 创建Table Type定义
6.4.4 创建Sequence定义
6.4.5 创建SQL View定义
6.4.6 创建Role定义
6.4.7 存储过程
6.4.8 创建HANA模型视图
6.4.9 数据自动加载
6.5 用CDS开发Table定义
6.5.1 CDS定义和组成
6.5.2 CDS文件分解
6.5.3 hdbtable还是CDS
6.5.4 示例:创建一个CDS
第7章 XS应用的后台服务
7.1 支持XS应用的数据服务
7.2 OData服务—数据读取
7.2.1 XS开发中的OData
7.2.2 快速定义OData服务
7.2.3 OData服务定义
7.2.4 OData访问操作
7.2.5 OData辅助工具
7.3 OData服务—自定义出口数据更新
7.3.1 OData服务的自定义出口
7.3.2 创建操作
7.3.3 更新操作
7.3.4 删除操作
7.3.5 关于数据传递
7.4 OData高效架构设计实践
7.4.1 OData CUD程序架构设计
7.4.2 导入SHINE应用
7.4.3 测试源代码介绍
7.4.4 OData调用存储过程—方式B
7.4.5 OData调用XSJS—方式C.1
7.4.6 OData调用XSJS—方式C.2
7.4.7 OData调用XSJS—方式C.3
7.4.8 开发XS应用的最佳方案
第8章 XSJS高级应用
8.1 Node和XSJS
8.2 XSJS的API分类
8.3 处理Request和Response
8.4 访问HANA数据库
8.4.1 旧数据库API
8.4.2 新数据库API
8.4.3 使用自定义DB访问连接
8.5 使用XS DB Utilities
8.6 调用Web服务—SOAP
8.7 发送电子邮件
8.8 创建XS定时运行的作业
8.8.1 创建XS Job
8.8.2 XS Job访问关系
8.8.3 配置XS Job和执行计划
8.9 Java访问XS Web服务
第9章 XS应用项目开发示例
9.1 示例项目的结构设计
9.2 创建XS项目
9.3 数据模型实现
9.4 主数据初始化
9.5 UI5界面和OData、HANA模型绑定
9.5.1 UI界面—客户信息
9.5.2 UI界面—整体业务分析
9.6 从UI到后台逻辑
9.6.1 UI5触发HTTP请求
9.6.2 OData处理请求的出口定义
9.6.3 处理POST请求
9.6.4 处理DELETE请求
9.7 访问控制和权限
9.7.1 访问时的自动校验
9.7.2 UI界面如何检查应用权限
9.7.3 应用权限封装为角色
9.8 应用部署
第10章 应用权限设计与开发
10.1 用户设计和DB交互
10.1.1 前端用户使用同一个DB账号
10.1.2 前端用户使用自己账号
10.1.3 匿名访问
10.2 数据访问和隔离设计
10.2.1 数据读取的隔离
10.2.2 数据更新,INVOKER还是DEFINER
10.2.3 真实Role或虚拟Role
10.3 应用运行期的用户和权限处理
10.3.1 从XS应用层面创建用户
10.3.2 程序中实现对用户的授权
第11章 XS自动化传输和部署
11.1 产品管理
11.1.1 一些前提操作
11.1.2 管理Delivery Unit
11.1.3 管理Product
11.2 CR修改管理
11.3 自动化传输管理
11.3.1 注册系统
11.3.2 传输路径
11.3.3 传输DU—启用CR模式
11.4 应用部署和分包策略
第12章 XS运维和开发协同
12.1 XS应用运维、协同开发和传输
12.1.1 简约3系统架构
12.1.2 传统6系统架构
12.1.3 传输时代码锁定,覆盖失败
12.1.4 运维传输的常见问题
12.2 访问账号的权限和角色设计
12.3 XS服务器的一些重要参数
第13章 XS系统高可用
13.1 HANA高可用方案
13.1.1 数据库备份
13.1.2 存储复制
13.1.3 节点自动故障切换
13.2 系统复制方案
13.2.1 Redo日志的复制模式
13.2.2 如何执行切换
13.3 系统复制的配置示例
13.3.1 系统复制—HANA工作台
13.3.2 系统复制—使用命令行
13.4 浏览器访问的重定向
附录A SAP HANA快问快答

相关实践学习
消息队列+Serverless+Tablestore:实现高弹性的电商订单系统
基于消息队列以及函数计算,快速部署一个高弹性的商品订单系统,能够应对抢购场景下的高并发情况。
云安全基础课 - 访问控制概述
课程大纲 课程目标和内容介绍视频时长 访问控制概述视频时长 身份标识和认证技术视频时长 授权机制视频时长 访问控制的常见攻击视频时长
相关文章
|
SQL 设计模式 前端开发
【置顶】SAP ABAP开发实战——从入门到精通系列目录
本文章为SAP ABAP开发实战——从入门到精通系列的目录以及关于该教程的后续写作计划表
1595 0
【置顶】SAP ABAP开发实战——从入门到精通系列目录
|
SQL 存储 JavaScript
SAP HANA 详细介绍
SAP HANA 详细介绍
947 0
|
大数据
为什么要学习SAP HANA
大数据最近几年是一个比较火的名词,2015年读过一本叫做《大数据时代》的书,航空机票的例子让我记忆犹新。如今工作中接触到SAP HANA,勾起了我心中对大数据的欲望。
109 1
|
存储 缓存 算法
「内存数据库」SAP HANA的不可告人的秘密
「内存数据库」SAP HANA的不可告人的秘密
|
XML JSON 监控
《李斌的笔记》SAP 全部文章目录、快速导航、持续更新
我把自己的全部文章都整理成目录,放在这篇文章中以实现快速导航,这样更方便阅读,本章内容持续更新。
278 0
|
存储 缓存 算法
「首席看HANA」SAP HANA的秘密- 不要告诉任何人
「首席看HANA」SAP HANA的秘密- 不要告诉任何人
|
大数据
《CIO指南:如何使用SAP HANA平台处理大数据》电子版地址
CIO指南:如何使用SAP HANA平台处理大数据
101 2
《CIO指南:如何使用SAP HANA平台处理大数据》电子版地址
|
JSON JavaScript 前端开发
|
开发者