Table of Contents

Open all
Close all
Preface
19
Structure of the Book
19
Acknowledgments
23
PART I Getting Started
25
1 SAP Cloud Platform: Digital Transformation and Innovation
27
1.1 Digital Enterprise: What and Why of Digital Transformation
27
1.1.1 What Is Digital Transformation?
29
1.1.2 Path to Digital Transformation
30
1.2 The Role of the Cloud in Digital Transformation
31
1.2.1 Cloud Variants
32
1.2.2 How Cloud Supports Digital Transformation
32
1.2.3 Key Considerations
34
1.3 Cloud-Native Applications: The New Paradigm
36
1.3.1 What Are Cloud-Native Applications?
37
1.3.2 Microservice Architecture
37
1.3.3 Container Architecture
38
1.4 Characteristics of Cloud Platforms and Applications
40
1.4.1 Characteristics of Cloud Platforms
41
1.4.2 Development in SAP Cloud Platform
43
1.4.3 Agility in SAP Cloud Platform
44
1.5 Hybrid Systems
45
1.5.1 Multicloud Environments
45
1.5.2 Multitechnology
46
1.6 Summary
46
2 Cloud Foundry and the Neo Environment
47
2.1 Introduction to the Neo Environment
47
2.2 Introduction to Cloud Foundry
48
2.2.1 Characteristics of Cloud Foundry
50
2.2.2 How SAP Cloud Platform Has Adopted Cloud Foundry
52
2.3 Cloud Foundry Services Offered by SAP Cloud Platform
52
2.4 Deployment Based on Development Environment
53
2.4.1 Deployment for the Neo Environment
53
2.4.2 Deployment for the Cloud Foundry Environment
55
2.5 Use Cases Based on Development Environment
57
2.5.1 Application Development with the Neo Environment Use Cases
57
2.5.2 Application Development with the Cloud Foundry Environment Use Cases
58
2.6 Summary
58
3 Microservices
61
3.1 What Is a Microservice?
61
3.2 How Does SAP Cloud Platform Enable Microservices?
63
3.2.1 Microservice Design Considerations
65
3.2.2 Twelve-Factor App
68
3.3 Finding the Right Microservice
68
3.4 Consuming Microservices
69
3.5 Summary
70
PART II Application Development
71
4 Developing Your First Application
73
4.1 Setting Up the Development Environment
73
4.1.1 Creating an Account in SAP Cloud Platform
73
4.1.2 Enabling the Neo and Cloud Foundry Trial Environments
75
4.1.3 Installing the Tools and Software
75
4.1.4 Setting Up Tools and Software
77
4.2 Developing, Deploying, and Testing an Application in the Neo Environment
79
4.2.1 Application Requirements: A Simple Application
79
4.2.2 Required Steps for Development
80
4.2.3 Application Development, Deployment, and Testing
80
4.3 Developing, Deploying, and Testing an Application in the Cloud Foundry Environment
91
4.3.1 Setting Up the Cloud Foundry Server Runtime in Eclipse
92
4.3.2 Deploying and Testing Your Application
94
4.4 Summary
97
5 Backend Application Development
99
5.1 Java Application Development
99
5.1.1 Concept of Multitarget Application Deployment
99
5.1.2 Building a Simple MTA Application with a Java Module
100
5.1.3 New Application Programming Model
103
5.1.4 Steps for Building an Application Using an Application Programming Model
104
5.1.5 Developing an Application Using an Application Programming Model
105
5.2 Python Application Development
115
5.2.1 Why Python?
115
5.2.2 Required Setup
115
5.2.3 Creating a Simple Python Application in SAP Cloud Platform
116
5.2.4 Creating an OData Consumer Application in Python in SAP Cloud Platform
117
5.2.5 Consuming an SAP Cloud Platform Cloud Foundry Service in a Python Application
121
5.2.6 Authorization and Authentication Checks
121
5.3 ABAP in SAP Cloud Platform
121
5.3.1 Benefits of and Use Case for ABAP in SAP Cloud Platform
121
5.3.2 Landscape with ABAP in SAP Cloud Platform
122
5.3.3 ABAP RESTful Programming Model
123
5.3.4 Next Steps
125
5.4 Building Extension Applications for Cloud Solutions
125
5.4.1 Required Setup in the Neo Environment for Extending SAP S/4HANA Cloud
126
5.4.2 Developing a Backend Extension Application for SAP S/4HANA Cloud
127
5.5 Application Development using SAP HANA XS Classic
132
5.5.1 Launching SAP HANA Web-Based Development Workbench
132
5.5.2 Creating Backend Objects using SAP Web IDE
133
5.5.3 Exposing Calculation View as OData Service
137
5.5.4 Consuming OData Service Definition in SAPUI5
140
5.5.5 Testing the Application
142
5.6 Application Development using SAP HANA XS, Advanced Model
143
5.6.1 Configuring in SAP Web IDE
143
5.6.2 Creating a Multi-Target Application (MTA)
145
5.6.3 Creating SAP HANA Database Module
146
5.6.4 Creating Backend Objects
148
5.6.5 Creating a Node.js Module
150
5.6.6 Creating the Application Instance for the JS Application
152
5.7 Migrating Applications from the Neo Environment to Cloud Foundry
153
5.7.1 Preparing XS Classic Artifacts for Migration
154
5.7.2 Preparing the Source System for Migration
154
5.7.3 Steps for Migration of XS Classic to XS Advanced Application
155
5.7.4 Migration Report
158
5.7.5 Deploying the Migrated Application to XS Advanced
160
5.8 Summary
162
6 Frontend Application Development
163
6.1 SAP Fiori Cloud
164
6.1.1 SAP Fiori Cloud Architecture
165
6.1.2 SAP Fiori Cloud Services
166
6.2 SAP Web IDE
167
6.2.1 SAP Web IDE Key Features
168
6.2.2 SAP Web IDE Full Stack Key Features
169
6.2.3 Customizing SAP Fiori Launchpad Using SAP Web IDE Full Stack on SAP Cloud Platform
170
6.3 SAP Build
175
6.3.1 SAP Build Key Features
176
6.3.2 Creating and Sharing a Prototype Using the SAP Build Plugin on SAP Cloud Platform
177
6.4 SAPUI5
186
6.4.1 SAPUI5 Key Features
186
6.4.2 SAPUI5 and Model-View-Controller
187
6.4.3 SAPUI5 Control Libraries
187
6.4.4 Developing an SAPUI5 Application Using SAP Web IDE Full Stack Layout Editor and Storyboard on SAP Cloud Platform
188
6.5 Summary
196
PART III Operating Applications
197
7 Application Lifecycle Management
199
7.1 Git and Its Terminology
199
7.2 Continuous Integration and Continuous Delivery
201
7.2.1 Continuous Integration Best Practices for Java Web Landscapes
203
7.2.2 Continuous Integration Best Practices for SAP HANA XS Landscape
203
7.2.3 Continuous Integration Best Practices for SAP HANA Extended Application Services, Advanced Model, Landscape
204
7.2.4 Continuous Integration Best Practices for SAP Fiori or SAPUI5 on SAP Cloud Platform Landscape
205
7.2.5 Continuous Integration Best Practice for SAP Fiori or SAPUI5 on an ABAP Frontend Server Landscape
205
7.2.6 Jenkins Pipeline: SAP Fiori for SAP Cloud Platform Landscape
206
7.2.7 SAP Cloud Platform Continuous Delivery Service: SAP Fiori Landscape
206
7.3 Continuous Integration Setup Using Travis CI
207
7.4 Solution Export Wizard
213
7.5 Transportation Management Service in Cloud Foundry
214
7.6 Using CTS+ in SAP Cloud Platform
214
7.7 Summary
215
8 Application Security
217
8.1 SAP Cloud Platform Authentication Options
217
8.1.1 Identity Authentication Service
218
8.1.2 Tenant
218
8.1.3 Integration between SAP Cloud Platform and Identity Providers: Trust Settings
218
8.1.4 Solution Overview for User Authentication via SAP Cloud Platform User Store
219
8.1.5 Solution Overview for User Authentication Using Corporate User Store
220
8.1.6 Solution Overview for User Authentication Using a Bring Your Own Identity Provider Scenario
221
8.2 SAP Cloud Platform Single Sign-On
223
8.2.1 Application-to-Application Single Sign-On
223
8.2.2 SAP Assertion SSO
223
8.2.3 Principal Propagation
224
8.3 Access Management in the Cloud Foundry Environment
225
8.3.1 User Account and Authentication Service
226
8.3.2 Web Access
226
8.4 Authorizations for Applications on SAP Cloud Platform in the Cloud Foundry Environment
228
8.4.1 Access Control
229
8.4.2 Security Artifacts for Authorizations
229
8.4.3 Authorization Enforcement
230
8.4.4 Scopes, Role Templates, and Attributes
230
8.5 Web Security for XSA Applications
231
8.5.1 Cross-Origin Resource Sharing
231
8.5.2 Cross-Site Request Forgery
232
8.5.3 Clickjacking
232
8.5.4 Cross-Site Scripting
233
8.5.5 Timeouts for Application User Sessions
233
8.5.6 Securing Node.js Applications
233
8.5.7 Java Application Security
233
8.6 Summary
234
9 Application Monitoring
235
9.1 Monitoring Java Applications
235
9.2 Monitoring Database Systems
239
9.3 Monitoring Cloud Foundry Applications
241
9.3.1 Activating the Application Log
242
9.3.2 Visualizing the Application Log
242
9.4 Monitoring APIs
244
9.4.1 REST APIs for Java Applications in Neo
244
9.4.2 REST APIs for Database Systems and SAP HANA XS
247
9.5 Summary
247
10 DevOps Implementation
249
10.1 DevOps Fundamentals
250
10.1.1 The Core Tenets of DevOps
250
10.1.2 DevOps Inner Circles
254
10.1.3 Implementing Tooling for DevOps
255
10.1.4 Benefits of DevOps
265
10.1.5 DevOps Tools Available in SAP Cloud Platform
266
10.2 DevOps for Hybrid Architectures
267
10.3 Summary
270
11 SAP Leonardo
273
11.1 Design Thinking
274
11.1.1 SAP Leonardo and Design Thinking
274
11.1.2 SAP Build and Design Thinking
275
11.2 Internet of Things
277
11.3 Blockchain
280
11.3.1 SAP Leonardo and Blockchain
281
11.3.2 Blockchain Node Creation
282
11.3.3 Blockchain Application Enablement
282
11.3.4 SAP HANA Integration Service
282
11.4 Machine Learning
284
11.5 Analytics
286
11.5.1 Live Query against SAP Data
287
11.5.2 Data Acquisition or Import Connection
287
11.5.3 Other Features of SAP Analytics Cloud
288
11.6 Big Data
289
11.6.1 Hadoop
289
11.6.2 SAP Leonardo and Big Data
290
11.7 Data Intelligence
291
11.8 Summary
292
PART IV Consuming SAP Cloud Platform Services
293
12 Internet of Things Service
295
12.1 Architecture
298
12.2 SAP Leonardo IoT Service Cockpit
299
12.3 Core Service APIs
300
12.4 SAP IoT Application Enablement
302
12.4.1 The Thing Model
303
12.4.2 Freestyle IoT Application Development
304
12.5 Developing IoT Solutions with SAP Leonardo
305
12.5.1 Device Onboarding
306
12.5.2 Posting Data to the SAP Leonardo IoT Service Cockpit
313
12.5.3 Creating Digital Twins Using Modeler
316
12.5.4 Prerequisite Configuration: Trust Setup
332
12.5.5 Prerequisite Configuration: Destination Setup
337
12.5.6 Prerequisite Configuration: Enabling Features in SAP Web IDE
342
12.5.7 Creating Freestyle IoT Applications
343
12.5.8 Deployment
359
12.6 Summary
365
13 SAP Leonardo Machine Learning Foundation
367
13.1 SAP Leonardo Machine Learning Foundation Features
369
13.2 SAP Leonardo Machine Learning Foundation Services
370
13.2.1 SAP Leonardo Machine Learning Business Services
370
13.2.2 SAP Leonardo Machine Learning Functional Services
372
13.2.3 SAP Leonardo Machine Learning Functional Services: Retraining
374
13.2.4 SAP API Business Hub
375
13.3 Developing an SAPUI5 Application Using the Scene Text Recognition Machine Learning Service
380
13.3.1 Prerequisites
380
13.3.2 Maintaining the Application Resource Root
389
13.3.3 Configuring the SAPUI5 Application
390
13.3.4 Extending the Frontend of Our Application
393
13.3.5 Executing the Application
400
13.3.6 Enabling and Configuring SAP Leonardo Machine Learning
402
13.4 Bring Your Own License Model
406
13.4.1 Prerequisites
407
13.4.2 Executing the REST APIs
407
13.4.3 Creating an HTTP Post Request
409
13.4.4 Checking the Deployment Status
412
13.5 Summary
414
14 Blockchain Service
415
14.1 Overview and Capabilities
415
14.1.1 Benefits
416
14.1.2 Different Types of Blockchain Network
417
14.1.3 Blockchain Frameworks/Platforms
417
14.2 Hyperledger Fabric
418
14.2.1 Key Terms and Architecture
418
14.2.2 Hyperledger Fabric Service Plans in SAP Cloud Platform
419
14.2.3 Setting Up a Hyperledger Fabric Service in SAP Cloud Platform
420
14.2.4 Creating a Channel and Adding It to the Instance Created in the Previous Step
424
14.3 Installing the Chaincode Development Tool
428
14.4 Developing a Blockchain Application
430
14.4.1 Go Programming Basics
431
14.4.2 Key Elements of the Go Language
433
14.4.3 Writing Chaincode (Smart Contract) Logic Using Go
434
14.4.4 Opening an API YAML File
441
14.4.5 Deploying the Chaincode to Hyperledger Fabric
444
14.4.6 Testing the Chaincode
446
14.5 Integrate SAP S/4HANA with the Blockchain Network
448
14.6 Summary
449
PART V Case Studies
451
15 Adopting SAP Cloud Platform
453
15.1 Use Case 1: Supplier Relationships
453
15.2 Use Case 2: Employee Rewards
455
15.3 Use Case 3: Temperature-Sensitive Products
456
15.4 Key Challenges and Lessons Learned
459
15.4.1 Challenges Faced
460
15.4.2 Skill Development
464
15.5 Summary
465
16 Conclusion and Roadmap
467
16.1 The Cloud
467
16.2 Platform as a Service
469
16.3 Neo and SAP Cloud Platform
470
16.4 Microservices
471
16.5 Application Monitoring
473
16.6 Internet of Things
474
16.7 Roadmap
474
16.7.1 SAP Cloud Platform
475
16.7.2 Neo and Cloud Foundry Environments
475
16.7.3 SAP Cloud Platform, Consumption-Based Business Model
476
16.7.4 SAP Cloud Platform Services
477
The Authors
481
Index
483