首页>参考读物>计算机科学与技术>软件与程序设计

SAP HANA平台应用开发
作者 : 刘刚 著
丛书名 : SAP系列丛书
出版日期 : 2016-04-18
ISBN : 978-7-111-53471-6
定价 : 79.00元
扩展资源下载
扩展信息
语种 : 简体中文
页数 : 404
开本 : 16
原书名 :
原出版社:
属性分类: 店面
包含CD :
绝版 : 未绝版
图书简介

本书一共分三个部分,每个部分包含若干章节,每个章节都侧重讲解整个SAP HANA某个技术点或是体系架构的一个部分,并不需要读者按照顺序一章一章的进行阅读,有一定HANA基础的读者,可以直接跳到你所需要了解的技术章节进行学习,前后章节之间并没有太大的关联性。
第一部分
  主要包含一、二、三、四章节,该部分的内容主要是讲解SAP HANA的基本介绍、信息建模的几种方式和综合应用和应用方式,并且介绍了SAP HANA的软硬件的选择和估算等内容。
第二部分
  主要包含五、六、七、八、九等章节,该部分主要讲解的关于SAP HANA的应用开发和XS项目开发、如何进行模型优化和调优分析、高级ABAP on HANA新开发方式、以及一些SAP HANA对于数据处理的高级特性、语义分析、文本检索、以及HANA数据库自己的独有的SQLScript语言等内容,该部分的所有章节均配以代码示例和操作步骤进行详细讲解。
第三部分
  主要包含十、十一、十二、十三、以及附录的一问一答等章节。主要是对SAP HANA的系统管理和日常运维的一些高级话题进行深入的阐述,像系统管理、高可用的集中方案和示例,并使用很多示例的方式手把手进行配置和操作进行讲解。

图书特色

至今SAP HANA已推出5年,全球客户应用规模已超过1万家。这和SAP HANA能够极速解决客户的海量数据运算难题有关,也和SAP最近这些年卯足了劲持续提升、每2个月发布一个新Revision、快速发布HANA新功能的投入密不可分。
从市场上客户应用HANA的案例来看,已从早期利用HANA做BI商务智能应用、加速ERP报表应用、加速BW数据仓库,进化到ERP on HANA、S/4 HANA这一新生态。
从技术平台角度来看,SAP HANA也从一个单纯的高性能内存数据库,慢慢演变成了一个新应用的开发和部署平台,即SAP HANA XS(Extended Application Server)。从一开始仅支持XSJS到现在支持XSJS、Node、Java、C++、Container技术等,SAP HANA越来越开放,越来越面向互联网,并且成为SAP HCP(HANA Cloud Platform)公有云的应用服务平台。因此,我们有必要在已经了解SAP HANA、HANA建模、存储过程开发等知识的基础上,进一步学习在SAP HANA平台上设计、开发、部署、管理我们的企业应用。

图书前言

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研究院的张凯,是他帮助作者提升了本书的格调;还要感谢小黑屋七人众的吐槽支持。

上架指导

计算机\程序设计

封底文字

在SAP HANA已经推出5年之际,目前全球客户应用规模已经超过1万家。这和SAP HANA能够极速解决客户的海量数据运算难题,也和SAP最近这些年卯足了劲持续提升、以每2个月发布一个新Revision、快速的发布HANA新功能的投入密不可分。
从市场上客户应用HANA的案例来看,也从早期利用HANA做BI商务智能应用、加速ERP报表应用、加速BW数据仓库进化到ERP on HANA、S/4 HANA这一新生态。
从技术平台角度来看,SAP HANA也从一个单纯的高性内存能数据库,慢慢演变成了一个新应用的开发和部署平台,即SAP HANA XS(Extended Application Server)。从一开始仅仅支持XSJS到现在支持XSJS、Node、Java、C++、Container技术等,越来越开放,越来越面向互联网,并且成为了SAP HCP(HANA Cloud Platform)公有云的应用服务平台。因此,我们有必要在已经所了解的SAP HANA、HANA建模、存储过程开发等话题上进一步的去学习在SAP HANA平台上如何设计、开发、部署、管理我们的企业应用。

作者简介

刘刚 著:资深Hadoop技术工程师,对Hadoop整个生态系统的技术都有比较深入的研究,尤其精通HDFS和Hadoop应用开发相关的技术。国内最活跃Hadoop社区Easyhadoop的核心人物和讲师,开源框架EasyHDFSWeb和EasyHDFSControl的作者。就职于国内最大CDN厂商,北京蓝汛通信技术有限责任公司,作为Hadoop高级工程师开发了ChinaCache 日志分析系统,系统承担每日几十TB的更新量,运算量和hadoop集群的维护。在海量数据分析和处理领域积累了丰富经验。




图书目录

前言
第1章 SAP HANA和XS开发 1
1.1 SAP HANA系统的组件 2
1.1.1 数据库服务的组件 3
1.1.2 应用服务和辅助组件 4
1.2 进入XS应用开发的新篇章 5
1.2.1 XS原生应用和Fiori Apps 6
1.2.2 XS应用开发架构 8
第2章 熟悉HANA开发环境 10
2.1 环境准备 10
2.1.1 SAP HANA服务器软件及硬件 10
2.1.2 SAP HANA客户端软件 12
2.2 第一次亲密接触 14
2.2.1 几个系统用户 14
2.2.2 连接到SAP HANA系统 15
2.3 熟悉SAP HANA工作台 18
2.3.1 视角切换 18
2.3.2 SAP HANA系统运行期对象 21
2.3.3 常用的三个按钮 24
2.3.4 创建表和上传数据 25
2.4 用户、角色和授权管理 31
2.4.1 用户管理 32
2.4.2 角色管理 35
2.4.3 关于授权 40
第3章 信息建模 43
3.1 准备工作和TPC-H 44
3.2 属性视图 45
3.3 分析视图 63
第4章 建模进阶和SQLScript 72
4.1 计算视图 72
4.1.1 基本工作界面 72
4.1.2 计算操作 75
4.2 计算视图—可视化方式 80
4.3 SQLScript 85
4.3.1 表类型 85
4.3.2 存储过程 86
4.3.3 计算引擎函数CE Function 94
4.4 计算视图—脚本方式 95
第5章 HANA XS原生应用 99
5.1 XS路线图 101
5.2 XS应用开发 102
5.2.1 XS应用程序 102
5.2.2 XS项目开发流程 103
5.3 永远的“Hello, World” 105
5.3.1 XS项目的开发视图 105
5.3.2 创建XS资源库的本地工作区 109
5.3.3 创建“Hello,World”的XS项目 111
5.3.4 访问控制部分 114
5.3.5 运行程序 117
5.3.6 项目协同开发 118
5.4 从设计期到运行期 125
5.4.1 设计期对象的扩展名 126
5.4.2 可视化向导方式 127
第6章 深入XS开发 129
6.1 XS应用的开发流程 129
6.2 XS应用的访问控制 131
6.2.1 应用描述文件 133
6.2.2 应用访问控制文件 134
6.2.3 应用权限定义文件 142
6.3 XS项目开发规范 146
6.3.1 分门别类 146
6.3.2 Package和开发规则 147
6.3.3 对象如何引用 150
6.4 数据库对象 151
6.4.1 创建Schema定义 151
6.4.2 创建Table定义 152
6.4.3 创建Table Type定义 157
6.4.4 创建Sequence定义 158
6.4.5 创建SQL View定义 159
6.4.6 创建Role定义 161
6.4.7 存储过程 165
6.4.8 创建HANA模型视图 168
6.4.9 数据自动加载 169
6.5 用CDS开发Table定义 172
6.5.1 CDS定义和组成 173
6.5.2 CDS文件分解 175
6.5.3 hdbtable还是CDS 182
6.5.4 示例:创建一个CDS 182
第7章 XS应用的后台服务 185
7.1 支持XS应用的数据服务 185
7.2 OData服务—数据读取 187
7.2.1 XS开发中的OData 187
7.2.2 快速定义OData服务 188
7.2.3 OData服务定义 191
7.2.4 OData访问操作 201
7.2.5 OData辅助工具 201
7.3 OData服务—自定义出口数据更新 204
7.3.1 OData服务的自定义出口 204
7.3.2 创建操作 207
7.3.3 更新操作 208
7.3.4 删除操作 209
7.3.5 关于数据传递 211
7.4 OData高效架构设计实践 212
7.4.1 OData CUD程序架构设计 212
7.4.2 导入SHINE应用 214
7.4.3 测试源代码介绍 217
7.4.4 OData调用存储过程—方式B 219
7.4.5 OData调用XSJS—方式C.1 221
7.4.6 OData调用XSJS—方式C.2 225
7.4.7 OData调用XSJS—方式C.3 229
7.4.8 开发XS应用的最佳方案 231
第8章 XSJS高级应用 236
8.1 Node和XSJS 236
8.2 XSJS的API分类 238
8.3 处理Request和Response 240
8.4 访问HANA数据库 244
8.4.1 旧数据库API 244
8.4.2 新数据库API 246
8.4.3 使用自定义DB访问连接 249
8.5 使用XS DB Utilities 251
8.6 调用Web服务—SOAP 254
8.7 发送电子邮件 257
8.8 创建XS定时运行的作业 261
8.8.1 创建XS Job 261
8.8.2 XS Job访问关系 264
8.8.3 配置XS Job和执行计划 265
8.9 Java访问XS Web服务 269
第9章 XS应用项目开发示例 272
9.1 示例项目的结构设计 272
9.2 创建XS项目 274
9.3 数据模型实现 276
9.4 主数据初始化 280
9.5 UI5界面和OData、HANA模型绑定 282
9.5.1 UI界面—客户信息 282
9.5.2 UI界面—整体业务分析 287
9.6 从UI到后台逻辑 291
9.6.1 UI5触发HTTP请求 291
9.6.2 OData处理请求的出口定义 292
9.6.3 处理POST请求 293
9.6.4 处理DELETE请求 295
9.7 访问控制和权限 296
9.7.1 访问时的自动校验 296
9.7.2 UI界面如何检查应用权限 298
9.7.3 应用权限封装为角色 301
9.8 应用部署 302
第10章 应用权限设计与开发 304
10.1 用户设计和DB交互 305
10.1.1 前端用户使用同一个DB账号 305
10.1.2 前端用户使用自己账号 309
10.1.3 匿名访问 311
10.2 数据访问和隔离设计 312
10.2.1 数据读取的隔离 312
10.2.2 数据更新,INVOKER还是DEFINER 318
10.2.3 真实Role或虚拟Role 320
10.3 应用运行期的用户和权限处理 326
10.3.1 从XS应用层面创建用户 327
10.3.2 程序中实现对用户的授权 329
第11章 XS自动化传输和部署 332
11.1 产品管理 332
11.1.1 一些前提操作 333
11.1.2 管理Delivery Unit 335
11.1.3 管理Product 340
11.2 CR修改管理 342
11.3 自动化传输管理 344
11.3.1 注册系统 346
11.3.2 传输路径 348
11.3.3 传输DU—启用CR模式 350
11.4 应用部署和分包策略 352
第12章 XS运维和开发协同 354
12.1 XS应用运维、协同开发和传输 354
12.1.1 简约3系统架构 354
12.1.2 传统6系统架构 355
12.1.3 传输时代码锁定,覆盖失败 357
12.1.4 运维传输的常见问题 359
12.2 访问账号的权限和角色设计 361
12.3 XS服务器的一些重要参数 364
第13章 XS系统高可用 366
13.1 HANA高可用方案 367
13.1.1 数据库备份 368
13.1.2 存储复制 369
13.1.3 节点自动故障切换 371
13.2 系统复制方案 371
13.2.1 Redo日志的复制模式 374
13.2.2 如何执行切换 377
13.3 系统复制的配置示例 378
13.3.1 系统复制—HANA工作台 379
13.3.2 系统复制—使用命令行 383
13.4 浏览器访问的重定向 385
附录A SAP HANA快问快答 387

教学资源推荐
作者: Harvey M.Deitel,Paul J.Deitel
作者: 【美】梁勇(Y.Daniel Liang) 著
作者: [美] 凯·霍斯特曼(Cay Horstmann) 著
参考读物推荐
作者: [美]史蒂夫·霍夫曼(Steve Hoffman) 斯里纳特·佩雷拉(Srinath Perera)著
作者: 李晨 著
作者: Cay S.Horstmann, Gary Cornell
作者: [印度]纳拉扬·普鲁斯蒂(Narayan Prusty) 著