前言

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