Table of Contents

Open all
Close all
Foreword by Matthias Steiner
15
Preface
17
Target Group and Prerequisites
17
Structure of the Book
18
Conventions
20
Using Code Examples
21
Acknowledgments
21
Special Contributors
22
Friends and Family
22
Final Thanks
23
Part I: Foundations
25
1 Introduction to SAP HANA Cloud Platform
27
1.1 Introducing SAP HANA Cloud Platform
27
1.2 The Cloud Computing Revolution
29
1.2.1 What Is Cloud Computing?
29
1.2.2 Understanding the Cloud Computing Service Models
30
1.2.3 Some Historical Perspective
35
1.3 A Strategic “Glue” Component for SAP
37
1.3.1 Challenges of the Hybrid Landscape
37
1.3.2 Where SAP HANA Cloud Platform Fits In
38
1.4 Summary
39
2 Getting Up and Running
41
2.1 Obtaining an SAP HCP Account
41
2.1.1 Understanding the SAP HCP Account Concept
41
2.1.2 Registering for a Free Developer Account
44
2.2 What’s in the Box?
47
2.2.1 Application Runtime Containers
47
2.2.2 SAP HCP Enablement Services
53
2.2.3 Higher-Level Services
54
2.3 Installing SAP HCP Development Tools
55
2.3.1 Setting Up the Eclipse IDE
56
2.3.2 Downloading the SAP HCP SDK
63
2.3.3 Installing the SAP JVM
68
2.4 Summary
71
Part II: Core Development Concepts
73
3 Developing Java Applications
75
3.1 Overview
76
3.2 Creating Java Web Applications
77
3.2.1 Creating a Dynamic Web Project in Eclipse
77
3.2.2 Building the Servlet-Based Controller
82
3.2.3 Creating the View Layer Using JSPs
84
3.2.4 Testing the Application Locally
86
3.3 Working with EJBs
90
3.3.1 Refactoring for EJBs
90
3.3.2 Implementing Business Logic in an EJB
93
3.3.3 Incorporating EJBs into Servlets and JSPs
95
3.4 Debugging and Tuning Java Applications
98
3.4.1 Debugging a Java Web Application
99
3.4.2 Profiling Java Web Applications
102
3.5 Next Steps
107
3.6 Summary
107
4 Managing and Deploying Java Applications
109
4.1 Overview
109
4.2 Deploying Java Applications
112
4.2.1 Deployment Using the Eclipse IDE
112
4.2.2 Deployment Using the Console Client
123
4.2.3 Monitoring Deployments
128
4.2.4 Logging and Tracing Concepts
132
4.3 Source Code Management
138
4.3.1 Introduction to Git and GitHub
139
4.3.2 Getting Started with EGit
139
4.3.3 Defining a Git Repository on GitHub
142
4.3.4 Cloning a Git Repository in Eclipse
145
4.3.5 Adding Projects to Change Control
148
4.3.6 Checking in Changes
150
4.3.7 Where to Go From Here
153
4.4 Build Automation with Apache Maven and Ant
153
4.4.1 Getting Started with Apache Maven
154
4.4.2 Working with Apache Ant
163
4.5 Continuous Integration with Jenkins
165
4.5.1 Introducing Jenkins
166
4.5.2 Installing Jenkins on SAP HCP
166
4.5.3 Moving toward Continuous Integration
167
4.6 Summary
168
5 Developing Native SAP HANA Applications
171
5.1 Overview
172
5.2 Getting Started
174
5.2.1 Creating a Trial SAP HANA Instance
174
5.2.2 Working with Eclipse and the SAP HANA Tools
176
5.2.3 Working with the SAP HANA Web-Based Development Workbench
182
5.3 Creating an SAP HANA XS Project in Eclipse
184
5.4 Building the Application Data Model
188
5.4.1 Defining a Persistence Model Using Core Data Services
189
5.4.2 Exposing the Data Model as an OData Service
192
5.4.3 Consuming the Data Model from Server-Side JavaScript
195
5.5 Developing the Application UI
196
5.6 Finishing Touches
198
5.6.1 Creating the Application Descriptor File
198
5.6.2 Defining the Application Access File
200
5.6.3 Defining a Security Role for Display Access
201
5.7 Deployment and Testing
204
5.7.1 Activating the SAP HANA XS Project
204
5.7.2 Assigning the Display Role to a User Account
206
5.7.3 Importing Test Data
207
5.7.4 Launching the Application
211
5.8 Summary
214
6 Consuming Cloud Services
217
6.1 Overview
217
6.2 Using the Persistence Service
219
6.2.1 Conceptual Overview
220
6.2.2 Managing Database Schemas
221
6.2.3 Working with the Java Persistence API
227
6.2.4 Working with Java Database Connectivity
243
6.2.5 Database Management Concepts
249
6.3 Using the Connectivity Service
260
6.3.1 Conceptual Overview
260
6.3.2 Working with Destinations
262
6.3.3 Case Study: Calling On-Premise RFC Functions
267
6.3.4 Case Study: Consuming a RESTful Web Service
275
6.3.5 Case Study: Sending an E-Mail Message
278
6.4 Using the Document Service
282
6.4.1 Conceptual Overview
283
6.4.2 Working with the OpenCMIS API
284
6.4.3 Consuming the Document Service Externally
287
6.5 Summary
288
7 Developing HTML5 Applications
289
7.1 Overview
289
7.2 Getting Started
291
7.2.1 Defining a New HTML5 Application
291
7.2.2 Accessing the Git Repository
292
7.2.3 Working with the SAP Web IDE
293
7.2.4 Activating the HTML5 Application Content in the SAP HCP Cockpit
307
7.2.5 Testing the Finished Product
309
7.3 Advanced Concepts
310
7.3.1 Working with the Application Descriptor
310
7.3.2 Integrating SAPUI5 Content
311
7.3.3 Accessing External Resources
313
7.3.4 Configuring Application Security
316
7.3.5 Putting It All Together
319
7.4 Summary
323
8 Securing Cloud Applications
325
8.1 Overview
325
8.2 Introduction to Java EE Security Concepts
327
8.2.1 Understanding the Java EE Security Model
327
8.2.2 Technical Underpinnings
329
8.3 Implementing Declarative Security with Java
330
8.3.1 Configuring Authentication
331
8.3.2 Defining Security Roles and Constraints
333
8.3.3 Role Assignment in the SAP HCP Cockpit
335
8.4 Implementing Programmatic Security in Java
338
8.4.1 Checking Authorizations Programmatically
338
8.4.2 Working with the User Management API
340
8.4.3 Working with the Authentication API
342
8.4.4 Working with the Password Storage API
344
8.4.5 Protecting Against Cross-Site Scripting Attacks
345
8.5 Authentication and Authorization with SAML 2.0
349
8.5.1 SAML Overview
350
8.5.2 Configuring Trusted Identity Providers
352
8.5.3 Implementing Assertion-Based Group Mapping
357
8.6 Protecting Web Resources with OAuth 2.0
363
8.6.1 What Is OAuth?
363
8.6.2 Understanding the OAuth Authorization Flow
366
8.6.3 Securing Web Resources with OAuth
368
8.6.4 Developing and Configuring OAuth Clients
372
8.7 Summary
379
Part III: Advanced Concepts
381
9 Working with SAP HANA Cloud Portal
383
9.1 Introduction
383
9.1.1 What Is SAP HANA Cloud Portal?
384
9.1.2 Architectural Overview
385
9.1.3 How Is SAP HANA Cloud Portal Used?
389
9.2 Understanding SAP HANA Cloud Portal’s Content Model
390
9.3 Developing Content for SAP HANA Cloud Portal
391
9.3.1 Creating OpenSocial Widgets
391
9.3.2 Utilizing SAP HANA Cloud Portal Features
398
9.3.3 Adapting Preexisting Web Applications
404
9.3.4 Adding a Widget to the Portal’s Content Catalog
405
9.4 Case Study: Building a Custom Portal Site
407
9.4.1 Creating a Site in the Site Directory
407
9.4.2 Setting Up the Site’s Page Hierarchy
418
9.4.3 Adding Content to the Pages
422
9.4.4 Publishing and Testing the Site
428
9.5 Next Steps
431
9.6 Summary
431
10 Introduction to SAP HANA Cloud Integration
433
10.1 Overview
433
10.2 Use Cases
436
10.3 Getting Started with the Eclipse IDE
438
10.3.1 Installing SAP HANA Cloud Integration Plug-Ins
438
10.3.2 Configuring Eclipse
440
10.4 Implementing a Simple SOAP-to-SOAP Scenario
442
10.4.1 Creating an Integration Flow
442
10.4.2 Configuring Sender and Receiver Systems
444
10.4.3 Importing WSDL Files from SAP PI or Your Local File System
445
10.4.4 Creating a Parameters File
446
10.4.5 Mapping between Sender and Receiver Systems
446
10.4.6 Configuring Sender and Receiver Communication Channels
448
10.4.7 Deploying the Integration Project
449
10.4.8 Monitoring
449
10.5 Introduction to the Web UI for SAP HANA Cloud Integration
450
10.5.1 The Discover Section (Integration Content Catalog)
451
10.5.2 The Design Section
454
10.5.3 The Run Section
457
10.5.4 The Monitor Section
458
10.6 Summary
460
11 Extension Scenarios with SAP HANA Cloud Platform
461
11.1 The Need for Software-as-a-Solution Extensions
462
11.2 The Architecture of an Extension
464
11.2.1 Extension Application Frontend Layer
468
11.2.2 Extension Application Backend Layer
473
11.2.3 Extension Application Connectivity Layer
476
11.3 Integration Points for Extending SAP Cloud Solutions
478
11.3.1 Custom Business Objects and Views
479
11.3.2 Workflows
480
11.3.3 Roles and Permissions
480
11.3.4 API Clients
480
11.3.5 Rules
481
11.3.6 Configurable UIs
481
11.3.7 Custom Code
481
11.3.8 Home Page Tile Configuration
482
11.3.9 Navigation Configuration
483
11.4 Extending SuccessFactors with SAP HCP Applications
483
11.4.1 SuccessFactors Administration Layers
484
11.4.2 Account Onboarding
485
11.4.3 Deploying Your First SuccessFactors Extension
489
11.4.4 SuccessFactors Extension Administration
490
11.4.5 SuccessFactors APIs
493
11.4.6 Creating Custom MDF Objects and Consuming Them from SAP HCP
498
11.4.7 Creating Custom Home Page Tiles Hosted on SAP HCP
498
11.4.8 Managing Custom Navigation Entries
502
11.4.9 Troubleshooting SuccessFactors Extension Applications
503
11.5 Summary
508
The Authors
509
Index
511