SlideShare a Scribd company logo
Rapid Prototyping with Grails and HANA
Cloud Platform
Marc Lester Tan/SAP Mobility Innovation Center, APJ
January 11, 2014
Agenda

HANA Cloud Platform

 Overview of HANA Cloud Platform
Grails
 Overview of Grails
 Hello World

Demo

© 2011 SAP AG. All rights reserved.

2
HANA Cloud Platform
HANA Cloud Platform

•

Platform as a Service (PaaS)

•

Runs on JVM

•

HANA or MaxDB

•

Integration with backend systems

•

Development Tools for Eclipse

•

Free for Developers

© 2011 SAP AG. All rights reserved.

4
Development Environment

•

Platform SDK

•

Platform Tools

•

Console Client

© 2011 SAP AG. All rights reserved.

5
Development Environment

•

Platform SDK

•

Platform Tools

•

Console Client

© 2011 SAP AG. All rights reserved.

6
Development Environment

•

Platform SDK

•

Platform Tools

•

Console Client

© 2011 SAP AG. All rights reserved.

7
Platform Services and Utilities

•

Authentication

•

SAP UI5 – open-source @ sap.github.io/openui5/

•

Persistence Service

•

Connectivity Service

•

Document Service

•

Logging

•

Cloud Environment Variables

© 2011 SAP AG. All rights reserved.

8
Platform Services and Utilities

•

Authentication

•

SAP UI5 – open-source @ sap.github.io/openui5/

•

Persistence Service

•

Connectivity Service

•

Document Service

•

Logging

•

Cloud Environment Variables

© 2011 SAP AG. All rights reserved.

9
Platform Services and Utilities

•

Authentication

•

SAP UI5 – open-source @ sap.github.io/openui5/

•

Persistence Service

•

Connectivity Service

•

Document Service

•

Logging

•

Cloud Environment Variables

© 2011 SAP AG. All rights reserved.

10
Platform Services and Utilities

•

Authentication

•

SAP UI5 – open-source @ sap.github.io/openui5/

•

Persistence Service

•

Connectivity Service

•

Document Service

•

Logging

•

Cloud Environment Variables

© 2011 SAP AG. All rights reserved.

11
Platform Services and Utilities

•

Authentication

•

SAP UI5 – open-source @ sap.github.io/openui5/

•

Persistence Service

•

Connectivity Service

•

Document Service

•

Logging

•

Cloud Environment Variables

© 2011 SAP AG. All rights reserved.

12
Platform Services and Utilities

•

Authentication

•

SAP UI5 – open-source @ sap.github.io/openui5/

•

Persistence Service

•

Connectivity Service

•

Document Service

•

Logging

•

Cloud Environment Variables

© 2011 SAP AG. All rights reserved.

13
Platform Services and Utilities

•

Authentication

•

SAP UI5 – open-source @ sap.github.io/openui5/

•

Persistence Service

•

Connectivity Service

•

Document Service

•

Logging

•

Cloud Environment Variables

© 2011 SAP AG. All rights reserved.

14
Grails
What is Grails?

•

Full stack web application framework

•

Runs on JVM

•

Open-source @ github.com/grails/grails-core/

•

Uses Groovy programming language

•

Follows Convention-over-Configuration paradigm

•

Lots and lots of plugins!

© 2011 SAP AG. All rights reserved.

16
Key Features of Grails

•

It includes easy to use ORM layer built on Hibernate

•

Expressive view technology called GSP (Groovy Server Pages)

•

Controller layer built on Spring MVC

•

Scripting environment based on Groovy-based Gant

•

Embedded Tomcat server configured for on-the-fly reloading

•

DI provided by the built-in Spring container

© 2011 SAP AG. All rights reserved.

17
Hello World
你好世界
Hallo Welt
Simple Web App
•

Tool to manage Tech Events in Singapore

•

Develop using Grails

•

Deploy on Local and Remote HCP

•

Use MaxDB

•

Grails on HANA – coming soon!
(https://hibernate.atlassian.net/browse/HHH-8228)

© 2011 SAP AG. All rights reserved.

19
Create the Web Application and Domain Class
$ grails create-app TechEvents
| Created Grails Application at /Users/i071571/Documents/sapinsidetrack/TechEvents

$ grails create-domain-class com.sap.techevents.Event
| Created file grails-app/domain/com/sap/techevents/Event.groovy
| Created file test/unit/com/sap/techevents/EventTests.groovy

© 2011 SAP AG. All rights reserved.

20
Modify the Domain Class
package com.sap.techevents
class Event {
String name
String description
Date eventDate
Date dateCreated
Date lastUpdated

static constraints = {
name blank: false
description blank: true
eventDate blank: false
}
}
© 2011 SAP AG. All rights reserved.

21
Build the Controllers, Views and Run the App
$ grails generate-controller com.sap.techevents.Event
| Packaging Grails application.....
| Finished generation for domain class com.sap.techevents.Event
$ grails generate-views com.sap.techevents.Event
| Compiling 1 source files....
| Finished generation for domain class com.sap.techevents.Event

$ grails run-app
| Server running. Browse to http://localhost:8080/TechEvents

© 2011 SAP AG. All rights reserved.

22
Local Testing and Deployment
•

Add MANIFEST.MF that contains only Manifest-Version: 1.0

•

Add _Events.groovy in scripts folder

•

In _Events.groovy, copy the MANIFEST.MF to staging directory

•

In _Events.groovy, modify web.xml generation to include JNDI bindings for
database

•

In grails-app/conf/DataSource.groovy, modify the production dataSource
to:
dbCreate = "update"
jndiName = "java:comp/env/jdbc/DefaultDB"
dialect = "org.hibernate.dialect.SAPDBDialect"

© 2011 SAP AG. All rights reserved.

23
Local Testing and Deployment
•

In grails-app/conf/DataSource.groovy, modify the development dataSource
to:

dbCreate = "create-drop" // one of 'create', 'createdrop', 'update', 'validate', ''
//url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000"
jndiName = "java:comp/env/jdbc/DefaultDB"
dialect = "org.hibernate.dialect.DerbyDialect"
•

Copy com.sap.security.core.server.csi_1.0.1.jar from
$HCP_SDK_HOME/repository/plugins to lib folder

•

$ grails dev war

© 2011 SAP AG. All rights reserved.

24
Local Testing and Deployment
•

Install HCP Local Server

$ neo.sh install-local
•

Copy generated WAR file to HCP Local Server pickup folder

$ cp target/TechEvents-0.1.war /Applications/Dev/neo-java-web-sdk1.43.20.3/server/pickup/
•

Run HCP Local Server

$ neo.sh start-local
•

Monitor log file to check if deployment is successful

$ tail -f /Applications/Dev/neo-java-web-sdk-1.43.20.3/server/log/ljs_trace.log

© 2011 SAP AG. All rights reserved.

25
Local Testing and Deployment
•

Create a WAR file for Production Environment

$ grails prod war
•

Deploy WAR File to HANA Cloud

$ neo.sh deploy -u SCN_USER –a ACCOUNT_NAME -b APP_NAME -h
HOST_NAME -s target/TechEvents-0.1.war
•

Start/Restart Application instance in HCP Cockpit

© 2011 SAP AG. All rights reserved.

26
Resources

•

HANA Cloud Portal

•

HANA Cloud Platform Developer Resources

•

HCP Content Overview

•

OpenUI5

•

Grails

•

Groovy

•

TechEvents Source Code

© 2011 SAP AG. All rights reserved.

27
Thank You!

Marc Lester Tan
w: marctan.com

More Related Content

What's hot

Beyond 12 Factor - Developing Cloud Native Applications
Beyond 12 Factor - Developing Cloud Native ApplicationsBeyond 12 Factor - Developing Cloud Native Applications
Beyond 12 Factor - Developing Cloud Native Applications
Container Solutions
 
Cloud Native APIs: The API Operator for Kubernetes
Cloud Native APIs: The API Operator for KubernetesCloud Native APIs: The API Operator for Kubernetes
Cloud Native APIs: The API Operator for Kubernetes
WSO2
 
How to Scale Operations for a Multi-Cloud Platform using PCF
How to Scale Operations for a Multi-Cloud Platform using PCFHow to Scale Operations for a Multi-Cloud Platform using PCF
How to Scale Operations for a Multi-Cloud Platform using PCF
VMware Tanzu
 
Manage Java Applications in an Open Hybrid Cloud
Manage Java Applications in an Open Hybrid CloudManage Java Applications in an Open Hybrid Cloud
Manage Java Applications in an Open Hybrid Cloud
Isaac Christoffersen
 
Cloud Foundry Technical Overview
Cloud Foundry Technical OverviewCloud Foundry Technical Overview
Cloud Foundry Technical Overview
cornelia davis
 
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
Red Hat Developers
 
Devops: Enabled Through a Recasting of Operational Roles
Devops: Enabled Through a Recasting of Operational RolesDevops: Enabled Through a Recasting of Operational Roles
Devops: Enabled Through a Recasting of Operational Roles
cornelia davis
 
Pivotal CF on AWS
Pivotal CF on AWSPivotal CF on AWS
Pivotal CF on AWS
Lawrence Crowther
 
Twelve-Factor application pattern with Spring Framework
Twelve-Factor application pattern with Spring FrameworkTwelve-Factor application pattern with Spring Framework
Twelve-Factor application pattern with Spring Framework
dinkar thakur
 
Product Release Webinar- WSO2 Developer Studio 3.5
Product Release Webinar- WSO2 Developer Studio 3.5Product Release Webinar- WSO2 Developer Studio 3.5
Product Release Webinar- WSO2 Developer Studio 3.5WSO2
 
Cloud-Native .NET
Cloud-Native .NETCloud-Native .NET
Cloud-Native .NET
VMware Tanzu
 
12 factor app
12 factor app12 factor app
12 factor app
Luís Bianchin
 
Containerized application
Containerized applicationContainerized application
Containerized application
Shadrach Jabonir
 
Two Years with SAP HANA Express
Two Years with SAP HANA ExpressTwo Years with SAP HANA Express
Two Years with SAP HANA Express
HP Seitz
 
Platform as a service
Platform as a servicePlatform as a service
Platform as a service
Shadrach Jabonir
 
Kubernetes - training micro-dragons without getting burnt
Kubernetes -  training micro-dragons without getting burntKubernetes -  training micro-dragons without getting burnt
Kubernetes - training micro-dragons without getting burnt
Amir Moghimi
 
The twelve factor app
The twelve factor appThe twelve factor app
The twelve factor app
Ravi Okade
 
Java projekt bemutató - Accenture Technology Meetup
Java projekt bemutató - Accenture Technology MeetupJava projekt bemutató - Accenture Technology Meetup
Java projekt bemutató - Accenture Technology Meetup
Accenture Hungary
 
PaaS Solutions Comparison
PaaS Solutions ComparisonPaaS Solutions Comparison
PaaS Solutions Comparison
GlobalLogic Ukraine
 
MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021
Ieva Navickaite
 

What's hot (20)

Beyond 12 Factor - Developing Cloud Native Applications
Beyond 12 Factor - Developing Cloud Native ApplicationsBeyond 12 Factor - Developing Cloud Native Applications
Beyond 12 Factor - Developing Cloud Native Applications
 
Cloud Native APIs: The API Operator for Kubernetes
Cloud Native APIs: The API Operator for KubernetesCloud Native APIs: The API Operator for Kubernetes
Cloud Native APIs: The API Operator for Kubernetes
 
How to Scale Operations for a Multi-Cloud Platform using PCF
How to Scale Operations for a Multi-Cloud Platform using PCFHow to Scale Operations for a Multi-Cloud Platform using PCF
How to Scale Operations for a Multi-Cloud Platform using PCF
 
Manage Java Applications in an Open Hybrid Cloud
Manage Java Applications in an Open Hybrid CloudManage Java Applications in an Open Hybrid Cloud
Manage Java Applications in an Open Hybrid Cloud
 
Cloud Foundry Technical Overview
Cloud Foundry Technical OverviewCloud Foundry Technical Overview
Cloud Foundry Technical Overview
 
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
IPaaS 2.0: Fuse Integration Services (Robert Davies & Keith Babo)
 
Devops: Enabled Through a Recasting of Operational Roles
Devops: Enabled Through a Recasting of Operational RolesDevops: Enabled Through a Recasting of Operational Roles
Devops: Enabled Through a Recasting of Operational Roles
 
Pivotal CF on AWS
Pivotal CF on AWSPivotal CF on AWS
Pivotal CF on AWS
 
Twelve-Factor application pattern with Spring Framework
Twelve-Factor application pattern with Spring FrameworkTwelve-Factor application pattern with Spring Framework
Twelve-Factor application pattern with Spring Framework
 
Product Release Webinar- WSO2 Developer Studio 3.5
Product Release Webinar- WSO2 Developer Studio 3.5Product Release Webinar- WSO2 Developer Studio 3.5
Product Release Webinar- WSO2 Developer Studio 3.5
 
Cloud-Native .NET
Cloud-Native .NETCloud-Native .NET
Cloud-Native .NET
 
12 factor app
12 factor app12 factor app
12 factor app
 
Containerized application
Containerized applicationContainerized application
Containerized application
 
Two Years with SAP HANA Express
Two Years with SAP HANA ExpressTwo Years with SAP HANA Express
Two Years with SAP HANA Express
 
Platform as a service
Platform as a servicePlatform as a service
Platform as a service
 
Kubernetes - training micro-dragons without getting burnt
Kubernetes -  training micro-dragons without getting burntKubernetes -  training micro-dragons without getting burnt
Kubernetes - training micro-dragons without getting burnt
 
The twelve factor app
The twelve factor appThe twelve factor app
The twelve factor app
 
Java projekt bemutató - Accenture Technology Meetup
Java projekt bemutató - Accenture Technology MeetupJava projekt bemutató - Accenture Technology Meetup
Java projekt bemutató - Accenture Technology Meetup
 
PaaS Solutions Comparison
PaaS Solutions ComparisonPaaS Solutions Comparison
PaaS Solutions Comparison
 
MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021MuleSoft Manchester Meetup #4 slides 11th February 2021
MuleSoft Manchester Meetup #4 slides 11th February 2021
 

Similar to SAP Inside Track Singapore 2014

Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
VMware Tanzu
 
GIDS_15FactorWorkshop.pdf
GIDS_15FactorWorkshop.pdfGIDS_15FactorWorkshop.pdf
GIDS_15FactorWorkshop.pdf
RichHagarty
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
VMware Tanzu
 
Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaS
CloudBees
 
SAP HANA Native Application Development
SAP HANA Native Application DevelopmentSAP HANA Native Application Development
SAP HANA Native Application Development
SAP Technology
 
B3 getting started_with_cloud_native_development
B3 getting started_with_cloud_native_developmentB3 getting started_with_cloud_native_development
B3 getting started_with_cloud_native_development
Dr. Wilfred Lin (Ph.D.)
 
Breaking the Monolith
Breaking the MonolithBreaking the Monolith
Breaking the Monolith
VMware Tanzu
 
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
Igalia
 
Getting Started with Platform-as-a-Service
Getting Started with Platform-as-a-ServiceGetting Started with Platform-as-a-Service
Getting Started with Platform-as-a-Service
CloudBees
 
The Power of Java and Oracle WebLogic Server in the Public Cloud (OpenWorld, ...
The Power of Java and Oracle WebLogic Server in the Public Cloud (OpenWorld, ...The Power of Java and Oracle WebLogic Server in the Public Cloud (OpenWorld, ...
The Power of Java and Oracle WebLogic Server in the Public Cloud (OpenWorld, ...
jeckels
 
SAPUI5/OpenUI5 - Continuous Integration
SAPUI5/OpenUI5 - Continuous IntegrationSAPUI5/OpenUI5 - Continuous Integration
SAPUI5/OpenUI5 - Continuous Integration
Peter Muessig
 
Best practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on CloudBest practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on Cloud
Oleg Posyniak
 
What's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for BusinessWhat's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for Business
Chris Schalk
 
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12cDeveloping Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Bruno Borges
 
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
HUJAK - Hrvatska udruga Java korisnika / Croatian Java User Association
 
IBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the CloudIBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the Cloud
Andrew Coleman
 
Progress core product group strategy and roadmap - PUG Baltic Annual Conferen...
Progress core product group strategy and roadmap - PUG Baltic Annual Conferen...Progress core product group strategy and roadmap - PUG Baltic Annual Conferen...
Progress core product group strategy and roadmap - PUG Baltic Annual Conferen...
Alen Leit
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
Grace Jansen
 
Change management in hybrid landscapes
Change management in hybrid landscapesChange management in hybrid landscapes
Change management in hybrid landscapes
Chris Kernaghan
 

Similar to SAP Inside Track Singapore 2014 (20)

Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud EnvironmentsTools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
Tools and Recipes to Replatform Monolithic Apps to Modern Cloud Environments
 
GIDS_15FactorWorkshop.pdf
GIDS_15FactorWorkshop.pdfGIDS_15FactorWorkshop.pdf
GIDS_15FactorWorkshop.pdf
 
.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp.NET Cloud-Native Bootcamp
.NET Cloud-Native Bootcamp
 
Getting Started with PaaS
Getting Started with PaaSGetting Started with PaaS
Getting Started with PaaS
 
SAP HANA Native Application Development
SAP HANA Native Application DevelopmentSAP HANA Native Application Development
SAP HANA Native Application Development
 
B3 getting started_with_cloud_native_development
B3 getting started_with_cloud_native_developmentB3 getting started_with_cloud_native_development
B3 getting started_with_cloud_native_development
 
Breaking the Monolith
Breaking the MonolithBreaking the Monolith
Breaking the Monolith
 
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
HTML5 Apps on AGL Platform with the Web Application Manager (Automotive Grade...
 
Getting Started with Platform-as-a-Service
Getting Started with Platform-as-a-ServiceGetting Started with Platform-as-a-Service
Getting Started with Platform-as-a-Service
 
SamSegalResume
SamSegalResumeSamSegalResume
SamSegalResume
 
The Power of Java and Oracle WebLogic Server in the Public Cloud (OpenWorld, ...
The Power of Java and Oracle WebLogic Server in the Public Cloud (OpenWorld, ...The Power of Java and Oracle WebLogic Server in the Public Cloud (OpenWorld, ...
The Power of Java and Oracle WebLogic Server in the Public Cloud (OpenWorld, ...
 
SAPUI5/OpenUI5 - Continuous Integration
SAPUI5/OpenUI5 - Continuous IntegrationSAPUI5/OpenUI5 - Continuous Integration
SAPUI5/OpenUI5 - Continuous Integration
 
Best practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on CloudBest practices for developing your Magento Commerce on Cloud
Best practices for developing your Magento Commerce on Cloud
 
What's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for BusinessWhat's new in App Engine and intro to App Engine for Business
What's new in App Engine and intro to App Engine for Business
 
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12cDeveloping Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
Developing Java EE Applications on IntelliJ IDEA with Oracle WebLogic 12c
 
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...Javantura v4 - Support SpringBoot application development lifecycle using Ora...
Javantura v4 - Support SpringBoot application development lifecycle using Ora...
 
IBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the CloudIBM InterConnect 2015 - IIB in the Cloud
IBM InterConnect 2015 - IIB in the Cloud
 
Progress core product group strategy and roadmap - PUG Baltic Annual Conferen...
Progress core product group strategy and roadmap - PUG Baltic Annual Conferen...Progress core product group strategy and roadmap - PUG Baltic Annual Conferen...
Progress core product group strategy and roadmap - PUG Baltic Annual Conferen...
 
JCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptxJCON_15FactorWorkshop.pptx
JCON_15FactorWorkshop.pptx
 
Change management in hybrid landscapes
Change management in hybrid landscapesChange management in hybrid landscapes
Change management in hybrid landscapes
 

Recently uploaded

Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
Alan Dix
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
Cheryl Hung
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
Jemma Hussein Allen
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
Ana-Maria Mihalceanu
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
ControlCase
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
Sri Ambati
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
ThousandEyes
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Tobias Schneck
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
DianaGray10
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
Paul Groth
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
Safe Software
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
DianaGray10
 

Recently uploaded (20)

Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdfFIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
FIDO Alliance Osaka Seminar: The WebAuthn API and Discoverable Credentials.pdf
 
Epistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI supportEpistemic Interaction - tuning interfaces to provide information for AI support
Epistemic Interaction - tuning interfaces to provide information for AI support
 
Key Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdfKey Trends Shaping the Future of Infrastructure.pdf
Key Trends Shaping the Future of Infrastructure.pdf
 
The Future of Platform Engineering
The Future of Platform EngineeringThe Future of Platform Engineering
The Future of Platform Engineering
 
FIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdfFIDO Alliance Osaka Seminar: Overview.pdf
FIDO Alliance Osaka Seminar: Overview.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
Monitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR EventsMonitoring Java Application Security with JDK Tools and JFR Events
Monitoring Java Application Security with JDK Tools and JFR Events
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 
PCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase TeamPCI PIN Basics Webinar from the Controlcase Team
PCI PIN Basics Webinar from the Controlcase Team
 
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
GenAISummit 2024 May 28 Sri Ambati Keynote: AGI Belongs to The Community in O...
 
Assuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyesAssuring Contact Center Experiences for Your Customers With ThousandEyes
Assuring Contact Center Experiences for Your Customers With ThousandEyes
 
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdfFIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
FIDO Alliance Osaka Seminar: Passkeys and the Road Ahead.pdf
 
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
Kubernetes & AI - Beauty and the Beast !?! @KCD Istanbul 2024
 
Connector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a buttonConnector Corner: Automate dynamic content and events by pushing a button
Connector Corner: Automate dynamic content and events by pushing a button
 
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMsTo Graph or Not to Graph Knowledge Graph Architectures and LLMs
To Graph or Not to Graph Knowledge Graph Architectures and LLMs
 
Essentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with ParametersEssentials of Automations: Optimizing FME Workflows with Parameters
Essentials of Automations: Optimizing FME Workflows with Parameters
 
UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4UiPath Test Automation using UiPath Test Suite series, part 4
UiPath Test Automation using UiPath Test Suite series, part 4
 

SAP Inside Track Singapore 2014

  • 1. Rapid Prototyping with Grails and HANA Cloud Platform Marc Lester Tan/SAP Mobility Innovation Center, APJ January 11, 2014
  • 2. Agenda HANA Cloud Platform  Overview of HANA Cloud Platform Grails  Overview of Grails  Hello World Demo © 2011 SAP AG. All rights reserved. 2
  • 4. HANA Cloud Platform • Platform as a Service (PaaS) • Runs on JVM • HANA or MaxDB • Integration with backend systems • Development Tools for Eclipse • Free for Developers © 2011 SAP AG. All rights reserved. 4
  • 5. Development Environment • Platform SDK • Platform Tools • Console Client © 2011 SAP AG. All rights reserved. 5
  • 6. Development Environment • Platform SDK • Platform Tools • Console Client © 2011 SAP AG. All rights reserved. 6
  • 7. Development Environment • Platform SDK • Platform Tools • Console Client © 2011 SAP AG. All rights reserved. 7
  • 8. Platform Services and Utilities • Authentication • SAP UI5 – open-source @ sap.github.io/openui5/ • Persistence Service • Connectivity Service • Document Service • Logging • Cloud Environment Variables © 2011 SAP AG. All rights reserved. 8
  • 9. Platform Services and Utilities • Authentication • SAP UI5 – open-source @ sap.github.io/openui5/ • Persistence Service • Connectivity Service • Document Service • Logging • Cloud Environment Variables © 2011 SAP AG. All rights reserved. 9
  • 10. Platform Services and Utilities • Authentication • SAP UI5 – open-source @ sap.github.io/openui5/ • Persistence Service • Connectivity Service • Document Service • Logging • Cloud Environment Variables © 2011 SAP AG. All rights reserved. 10
  • 11. Platform Services and Utilities • Authentication • SAP UI5 – open-source @ sap.github.io/openui5/ • Persistence Service • Connectivity Service • Document Service • Logging • Cloud Environment Variables © 2011 SAP AG. All rights reserved. 11
  • 12. Platform Services and Utilities • Authentication • SAP UI5 – open-source @ sap.github.io/openui5/ • Persistence Service • Connectivity Service • Document Service • Logging • Cloud Environment Variables © 2011 SAP AG. All rights reserved. 12
  • 13. Platform Services and Utilities • Authentication • SAP UI5 – open-source @ sap.github.io/openui5/ • Persistence Service • Connectivity Service • Document Service • Logging • Cloud Environment Variables © 2011 SAP AG. All rights reserved. 13
  • 14. Platform Services and Utilities • Authentication • SAP UI5 – open-source @ sap.github.io/openui5/ • Persistence Service • Connectivity Service • Document Service • Logging • Cloud Environment Variables © 2011 SAP AG. All rights reserved. 14
  • 16. What is Grails? • Full stack web application framework • Runs on JVM • Open-source @ github.com/grails/grails-core/ • Uses Groovy programming language • Follows Convention-over-Configuration paradigm • Lots and lots of plugins! © 2011 SAP AG. All rights reserved. 16
  • 17. Key Features of Grails • It includes easy to use ORM layer built on Hibernate • Expressive view technology called GSP (Groovy Server Pages) • Controller layer built on Spring MVC • Scripting environment based on Groovy-based Gant • Embedded Tomcat server configured for on-the-fly reloading • DI provided by the built-in Spring container © 2011 SAP AG. All rights reserved. 17
  • 19. Simple Web App • Tool to manage Tech Events in Singapore • Develop using Grails • Deploy on Local and Remote HCP • Use MaxDB • Grails on HANA – coming soon! (https://hibernate.atlassian.net/browse/HHH-8228) © 2011 SAP AG. All rights reserved. 19
  • 20. Create the Web Application and Domain Class $ grails create-app TechEvents | Created Grails Application at /Users/i071571/Documents/sapinsidetrack/TechEvents $ grails create-domain-class com.sap.techevents.Event | Created file grails-app/domain/com/sap/techevents/Event.groovy | Created file test/unit/com/sap/techevents/EventTests.groovy © 2011 SAP AG. All rights reserved. 20
  • 21. Modify the Domain Class package com.sap.techevents class Event { String name String description Date eventDate Date dateCreated Date lastUpdated static constraints = { name blank: false description blank: true eventDate blank: false } } © 2011 SAP AG. All rights reserved. 21
  • 22. Build the Controllers, Views and Run the App $ grails generate-controller com.sap.techevents.Event | Packaging Grails application..... | Finished generation for domain class com.sap.techevents.Event $ grails generate-views com.sap.techevents.Event | Compiling 1 source files.... | Finished generation for domain class com.sap.techevents.Event $ grails run-app | Server running. Browse to http://localhost:8080/TechEvents © 2011 SAP AG. All rights reserved. 22
  • 23. Local Testing and Deployment • Add MANIFEST.MF that contains only Manifest-Version: 1.0 • Add _Events.groovy in scripts folder • In _Events.groovy, copy the MANIFEST.MF to staging directory • In _Events.groovy, modify web.xml generation to include JNDI bindings for database • In grails-app/conf/DataSource.groovy, modify the production dataSource to: dbCreate = "update" jndiName = "java:comp/env/jdbc/DefaultDB" dialect = "org.hibernate.dialect.SAPDBDialect" © 2011 SAP AG. All rights reserved. 23
  • 24. Local Testing and Deployment • In grails-app/conf/DataSource.groovy, modify the development dataSource to: dbCreate = "create-drop" // one of 'create', 'createdrop', 'update', 'validate', '' //url = "jdbc:h2:mem:devDb;MVCC=TRUE;LOCK_TIMEOUT=10000" jndiName = "java:comp/env/jdbc/DefaultDB" dialect = "org.hibernate.dialect.DerbyDialect" • Copy com.sap.security.core.server.csi_1.0.1.jar from $HCP_SDK_HOME/repository/plugins to lib folder • $ grails dev war © 2011 SAP AG. All rights reserved. 24
  • 25. Local Testing and Deployment • Install HCP Local Server $ neo.sh install-local • Copy generated WAR file to HCP Local Server pickup folder $ cp target/TechEvents-0.1.war /Applications/Dev/neo-java-web-sdk1.43.20.3/server/pickup/ • Run HCP Local Server $ neo.sh start-local • Monitor log file to check if deployment is successful $ tail -f /Applications/Dev/neo-java-web-sdk-1.43.20.3/server/log/ljs_trace.log © 2011 SAP AG. All rights reserved. 25
  • 26. Local Testing and Deployment • Create a WAR file for Production Environment $ grails prod war • Deploy WAR File to HANA Cloud $ neo.sh deploy -u SCN_USER –a ACCOUNT_NAME -b APP_NAME -h HOST_NAME -s target/TechEvents-0.1.war • Start/Restart Application instance in HCP Cockpit © 2011 SAP AG. All rights reserved. 26
  • 27. Resources • HANA Cloud Portal • HANA Cloud Platform Developer Resources • HCP Content Overview • OpenUI5 • Grails • Groovy • TechEvents Source Code © 2011 SAP AG. All rights reserved. 27
  • 28. Thank You! Marc Lester Tan w: marctan.com

Editor's Notes

  1. The SDK contains all the libraries that you needed to compile web applications. It also includes the local server for testing and console client for deployment and server operations.
  2. SAP HANA Cloud Platform Tools package enables you to:Develop and deploy Web applicationsConfigure connectivity destinationsView and configure logs and log filesManage user roles and groupsProfile Web applications locallyBuild and adapt Web applications using SAPUI5
  3. SAP HANA Cloud Platform console client enables development, deployment and configuration of an application outside the Eclipse IDE as well as continuous integration and automation tasks.
  4. by default, SAP HANA Cloud Platform is configured to use SAP ID service as identity provider (IdP), as specified in SAML 2.0. You can configure trust to your custom IdP, to provide access to the cloud using your own user database.
  5. platform’s official UI framework. This is now open-source at sap.github.io/openui5/
  6. provide relational persistence with JPA and JDBC
  7. use it to connect Web applications to Internet, make on-demand to on-premise connections to Java and ABAP on-premise systems and configure destinations to send and fetch e-mail.
  8. use the service to store unstructured or semistructured data in your application. It follows the OASIS Content Management Interoperability Services standards @ www.oasis-open.org
  9. implement a logging API if you want to have logs produced at runtime
  10. use system environment variables that identify the runtime environment of the application. Some of thevariables that you can get are hostname, region, landscape and account name.