Documente Academic
Documente Profesional
Documente Cultură
Henrique Pinto
Global HANA COE
Disclaimer
This presentation outlines our general product direction and should not be relied on in making a
purchase decision. This presentation is not subject to your license agreement or any other agreement
with SAP. SAP has no obligation to pursue any course of business outlined in this presentation or to
develop or release any functionality mentioned in this presentation. This presentation and SAP's
strategy and possible future developments are subject to change and may be changed by SAP at any
time for any reason without notice. This document is provided without a warranty of any kind, either
express or implied, including but not limited to, the implied warranties of merchantability, fitness for a
particular purpose, or non-infringement. SAP assumes no responsibility for errors or omissions in this
document, except if such damages were caused by SAP intentionally or grossly negligent.
PDF: http://goo.gl/CUAKXz
HANA Instance: 05 HANA Port: 8005
ABAP Instance: 00 ABAP Port: 8000 SID: HPM Client: 001
Session: A
Server A: 54.196.174.61
Server B: 54.204.120.85
Password: HANARocks2013 / HANARocks2014
Applications
Industry | LoB | Consumer | Analytics | Social | Cloud | Mobile
& Tools
Unified Administration |
Lifecycle Management
Processing Engine
Security Services
Event Processing | Planning | Calculation | Predictive Analytics
Services
Database Services
Transactions | Analytics | Partitioning
Compression | Availability | Encryption
Integration Services
Mobile | XaaS | High-volume Replication | Real-time Replication | Hadoop
More than a DB its a true platform Re-imagined, Transformative Supports any application
Converged OTLP + OLAP Transactions, analytics, predictive, sentiment and spatial 60% of HANA use cases are outside of the SAP Landscape
Embedded business logic processing transformed for real-time business operations 440+ Startups are developing on HANA
Completely re-imagined
SAP HANA
Application development following a layered approach
XS
UI rendering completely in the client (browser, mobile apps) Control flow logic
Server-side procedural logic in JavaScript
All artifacts stored in the SAP HANA repository
Data Calculation logic
Presentation logic
Calculation logic
Data
Presentation logic
HANA
Calculation logic
Data
Client
Presentation logic
HANA
Calculation logic
Data
Client
Presentation logic
HANA
Calculation logic
Data
Client
Presentation logic
Calculation logic
Data
Client
Presentation logic
HANA
XS
Control flow logic
Calculation logic
Data
On-Premise Cloud
Private Cloud (managed service) Public Cloud (PaaS)
ABAP
extension of on-premise apps extension of managed apps (ABAP + extension of on-premise / managed
(ABAP + Java + HANA Native Java + HANA Native Development) on apps on PaaS
Development) 'dedicated hardware
2013 SAP AG or an SAP affiliate company. All rights reserved. 16
HANA as a development architecture
ABAP in Eclipse HANA Studio Web IDE River (web) Bring your
Professional Flexible & Simplicity Simplicity & Own Tool
Developers Complete Integration Openness
Professional
Professional Developers LOBs & Biz Ecosystem
Developers Experts
Eclipse Orion on XS
On Premise Cloud
2013 SAP AG or an SAP affiliate company. All rights reserved. 17
HANA Cloud Platform development architecture
Application Consumption
Browser
Application Services
XS
Native Device
Development
Load Balancer
Services
Database
Repository
Development Experience
Eclipse IDE
Neo Cloud Management
Display
client rendered UI UI rendering client
UIS
UI Rendering completely in the
SAPUI5
Client
XSJS XSODATA
Server-side procedural logic in XSXMLA
JavaScript
SINA
All artifacts stored in the SAP HDBTable HDBRole
HANA Repository
CDS/HDBDD
SQLScript AFL
SQL
Views
UIS
XSODATA SAPUI5
Low coding OData REST XSJS XSODATA
service generation framework XSXMLA
Create/Update/Deletion CDS/HDBDD
UIS
Specialized Service SAPUI5
Frameworks XSODATA
XSJS
XSXMLA XML for Analytics XSXMLA
CDS/HDBDD
SQLScript AFL
SQL
Views
UIS
Server Side JavaScript SAPUI5
(XSJS) XSODATA
XSJS
Light weight procedural logic XSXMLA
Openness SINA
HDBTable HDBRole
Reuse
CDS/HDBDD
One Language Client and
SQLScript AFL
Server Side SQL
Views
Widespread Knowledge
2013 SAP AG or an SAP affiliate company. All rights reserved. 25
Development model
CDS/HDBDD
Structures: HDBStructure
SQLScript AFL
Sequences: HDBSequence SQL
Views
Roles: HDBRole
2013 SAP AG or an SAP affiliate company. All rights reserved. 26
Development model
UIS
CDS Core Data Services SAPUI5
Data Definition Language XSJS XSODATA
CDS/HDBDD
SQLScript AFL
SQL
Views
UIS
Data Intensive Logic
SAPUI5
SQLScript / SQL
XSJS XSODATA
HANA Views
XSXMLA
Attribute
SINA
Analytical
Calculation HDBTable HDBRole
Completely client-side UI
Distributed Configuration
N active servers in one cluster
M standby server(s) in one cluster XS Node 1
Shared Storage
XS Node 2
Approach
Operational
XS Engine service can run on all nodes of the XS Node 3
SAP HANA system XS Node 4
SAP Web Dispatcher deployed in front of SAP HANA
Round-robin load balancing approach XS Standby Node
Benefits
Maximized concurrency for requests going through XS
Distributed Configuration
N active servers in one cluster
M standby server(s) in one cluster XS Node 1
Shared Storage
XS Node 2
Approach
Operational
XS Engine service can run on all nodes of the XS Node 3
SAP HANA system XS Node 4
SAP Web Dispatcher deployed in front of SAP HANA
Round-robin load balancing approach XS Standby Node
Benefits
Redundancy provides for uninterrupted service (HA)
- Basic Authentication
- Form-based authentication
Core Data Services (Data Definition Language) New Source Code Based Editor
UIS
CDS Core Data Services SAPUI5
Data Definition Language XSJS XSODATA
CDS/HDBDD
SQLScript AFL
SQL
Views
Activating an Application
Site no longer requires a
project refresh
Requirements:
Server must be running in developer_mode
On the client side set a cookie name
sapXsDevWorkspace to the name of your
Repository workspace
Requirements:
Server must be running in developer_mode
On the client side set a cookie name
sapXsDevWorkspace to the name of your
Repository workspace
UIS
CDS Core Data Services SAPUI5
Data Definition Language XSJS XSODATA
CDS
SQLScript AFL
SQL
Views
Associations define
relationships between
Entities (tables)
Added graphical
representation of the
HDBDD Entities and their
associations
completely browser
based IDE for
lightweight creation and
editing of development
objects and debugging
without the need for
SAP HANA Studio
Direct URL:
/sap/hana/xs/editor/
Automatic generation of
.xsapp and .xsaccess files
Set Breakpoints
from the editor
Interactive server
side debugger
running in-place in
the browser
Direct URL:
/sap/hana/xs/catalog/
Direct URL:
/sap/hana/xs/security/
Direct URL:
/sap/hana/xs/trace/
SP6 SP7
SP6 SP7
SP6 SP7
Access tables and views from the GUI with minimal effort
How? create an ".xsodata" service definition at design time:
service {
"hello.odata::otable" as Entries;
}
Repo
Database
Studio-based editor/debugger
var conn = $.db.getConnection();
var pstmt = conn.prepareStatement( "select * from DUMMY" );
var rs = pstmt.executeQuery();
$.response.contentType = "text/plain";
if (!rs.next()) { XS
$.response.setBody( "Failed to retrieve data" );
$.response.status = $.net.http.INTERNAL_SERVER_ERROR;
} else { UIS RDL OData XSJS XMLA
$.response.setBody("Response: " + rs.getString(1)); HANA
}
rs.close(); pstmt.close(); conn.close(); SQL Views SQLScript MDX
Repo
Database
Introducing River
(SAP HANA SPS7 Earlier Adopter)
Creating an application
T1 T2 T3
V2
V1 cv
T1 T2 T3
data
model V2
(DB)
V1 cv
trigger
sp
T1 T2 T3
sp
T1 T2 T3
business
logic (MVC)
control
sp
T1 T2 T3
business
logic (MVC)
control
data model
sp
T1 T2 T3
business view
logic (MVC)
control
data model
sp
T1 T2 T3
UI
mob
app app
business view
logic (MVC)
control
data model
sp
T1 T2 T3
UI
mob
app app
business
logic
control
sp
T1 T2 T3
3. Deploy
browser HANA DB
OData
River web
browser
Editor
XSJS
(Cloud) activate River
Repository package & deploy
compiler Auth
.rdl
workspace, roles
business app Studio save tables
developers views
DB objects
studio
River Editor
SScript stored
(on-premise) procedures
Activation
.rdl
%
x
Demo scenario: "River Airlines"
Implementation
Flight
flight id, from/to,
list of seats
Passenger
passenger details,
flight & seat reservation
Seat
status
City
Associations
entity Flight {
keys key flightId: String(8);
flightNum: String (3);
cityFrom: Association to City;
cityTo: Association to City;
depDate: LocalDate;
Primitive types, depTime: LocalTime;
enumerations, flightSeats: Association[0..*] to Seat via backlink flight;
structured types }
entity Seat {
key flight: Association to Flight;
id: SeatNum;
isExitRow: Boolean default false; Default Values
Status: enum {free; reserved;};
}
entity Seat {
flight: Association to Flight;
seatNum: SeatNum;
isExitRow: Boolean default false;
seatStatus: SeatStatus;
}
entity Flight {
flightSeats: Association[0..*] to Seat via backlink flight;
FlightId SeatNum
temp16
entity Seat {
flight: Association to Flight; __FlightId Status
seatNum: SeatNum;
isExitRow: Boolean default false; Seat
seatStatus: SeatStatus;
}
entity Flight {
flightSeats: Association[0..*] to Seat via backlink flight; __temp16 = select T1. from Flights as T0
inner join "flights.Seat" as T1
}
action GetEmptySeats() : Seat [] {
}
return select * from this.flightSeats
where Seat.Status = SeatStatus.free; = on (T0."flightId" = "T0:flightSeats"."flight.flightId")
where "FlightId" = 12345;
entity Seat {
action save() accessible by Flight;
entity employee {
Entity
Data
Model
HANA
Database
UI integration
Expose RDL entities and actions instantly via OData
Productivity, cloud
XS integrated development experience