SlideShare a Scribd company logo

Accessing REST & Backend as a Service (BaaS) - Developer Direct - Mobile Summer School - 2014 - Lesson 6

Accessing REST Web Services and Backend as a Service (BaaS) from a native mobile app on Android and iOS using C++ or Object Pascal.

1 of 22
Download to read offline
Lesson 6:
Accessing	
  REST	
  and	
  Backend	
  as	
  a	
  
Service	
  (BaaS)	
  Cloud	
  Services	
  
Jim	
  McKeeth	
  
Lead	
  Developer	
  Evangelist	
  –	
  Embarcadero	
  
jim.mckeeth@embarcadero.com	
  
http://delphi.org/	
  
Mobile	
  App	
  Development	
  
▪  Lesson	
  1	
  –	
  Hello	
  World!	
  My	
  First	
  Multi-­‐Device	
  App	
  
▪  Lesson	
  2	
  –	
  Turning	
  up	
  the	
  Style	
  and	
  Data!	
  
▪  Lesson	
  3	
  –	
  Accessing	
  Local	
  Storage	
  and	
  Databases	
  
▪  Lesson	
  4	
  –	
  Building	
  Multi-­‐tier,	
  Multi-­‐device	
  Apps	
  using	
  DataSnap	
  REST/JSON	
  
▪  Lesson	
  5	
  –	
  Connecting	
  Mobile	
  and	
  Desktop	
  using	
  App	
  Tethering	
  
▪  Lesson	
  6	
  –	
  Accessing	
  REST	
  and	
  BaaS	
  Cloud	
  Services	
  
Replay	
  links	
  and	
  lesson	
  slides	
  will	
  appear	
  on	
  David’s	
  blog	
  
http://blogs.embarcadero.com/davidi/	
  
Lesson	
  6	
  Agenda	
  
▪  REST	
  Client	
  Library	
  
▪  REST	
  Debugger	
  
▪  Backend	
  as	
  a	
  Service	
  (BaaS)	
  
▪  Samples	
  and	
  Snippets	
  
▪  Continue	
  development	
  of	
  the	
  mobile	
  business	
  app	
  
▪  Review,	
  Homework	
  and	
  Next	
  Time	
  
▪  Q&A	
  
REST	
  Client	
  Library	
  
▪  Framework	
  for	
  accessing	
  REST-­‐based	
  web	
  services	
  
▪  The	
  framework	
  focuses	
  on	
  JSON	
  as	
  the	
  representation	
  format.	
  XML	
  is	
  not	
  
explicitly	
  supported.	
  
▪  The	
  framework	
  includes	
  components	
  and	
  is	
  built	
  around	
  3	
  main	
  components:	
  
–  The	
  client	
  -­‐	
  TRESTClient	
  
–  The	
  request	
  -­‐	
  TRESTRequest	
  
–  The	
  response	
  –	
  TRESTResponse	
  
▪  Most	
  REST	
  services	
  require	
  authentication.	
  Components	
  are	
  provided	
  for	
  
–  Simple	
  authentication	
  –	
  TSimpleAuthenticator	
  
–  HTTP	
  basic	
  authentication	
  –	
  THTTPBasicAuthenticator	
  
–  OAuth1	
  and	
  OAuth2	
  authentication	
  –	
  TOAuth1Authenticator	
  and	
  TOAuth2Authenticator	
  
REST	
  Client	
  Library	
  Components	
  
▪  TRESTClient	
  -­‐	
  manages	
  the	
  HTTP	
  connection	
  to	
  the	
  service,	
  deals	
  with	
  HTTP	
  
headers	
  and	
  proxy	
  servers,	
  and	
  receives	
  the	
  response	
  data.	
  
▪  TRESTRequest	
  -­‐	
  holds	
  all	
  parameters	
  and	
  settings	
  that	
  form	
  the	
  actual	
  HTTP	
  
request	
  to	
  a	
  Web	
  service.	
  When	
  connected	
  to	
  a	
  client-­‐component,	
  it	
  can	
  be	
  
executed	
  (even	
  at	
  design	
  time).	
  
▪  TRESTResponse	
  -­‐	
  holds	
  all	
  the	
  returned	
  data	
  from	
  a	
  Web	
  service.	
  The	
  returned	
  
data	
  includes	
  the	
  HTTP	
  status	
  code,	
  error	
  messages	
  (if	
  any	
  exist),	
  and	
  the	
  returned	
  
JSON	
  data.	
  
▪  TRESTResponseDataSetAdapter	
  –	
  takes	
  the	
  returned	
  JSON	
  data	
  and	
  converts	
  it	
  
to	
  a	
  form	
  a	
  DataSet	
  can	
  use	
  –	
  for	
  example	
  TDataSet	
  and	
  TFDMemTable.	
  
▪  Authenticator(s)	
  -­‐	
  most	
  services	
  require	
  an	
  authentication	
  before	
  they	
  can	
  be	
  used.	
  
The	
  authenticator	
  components	
  are	
  used	
  to	
  apply	
  the	
  specific	
  authentication	
  
methods	
  that	
  are	
  required	
  by	
  the	
  REST	
  service.	
  An	
  authenticator	
  is	
  attached	
  to	
  the	
  
client	
  and	
  is	
  automatically	
  executed	
  on	
  each	
  executed	
  request.	
  You	
  can	
  create	
  
custom	
  authenticators	
  using	
  the	
  TCustomAuthenticator	
  class.	
  
REST	
  Debugger	
  
▪  Included	
  on	
  the	
  Tools	
  Menu	
  
▪  Use	
  it	
  to	
  making	
  queries	
  to	
  test	
  and	
  
debug	
  REST	
  queries	
  before	
  applying	
  them	
  
to	
  your	
  own	
  REST	
  applications.	
  
▪  The	
  interface	
  has	
  four	
  pages	
  that	
  contain	
  
the	
  main	
  request	
  information,	
  
the	
  resource	
  and	
  the	
  parameters	
  request,	
  
the	
  authentication	
  methods,	
  and	
  the	
  
option	
  to	
  use	
  proxy	
  to	
  connect	
  to	
  the	
  
server.	
  

Recommended

The Top 10 Things Oracle UCM Users Need To Know About WebLogic
The Top 10 Things Oracle UCM Users Need To Know About WebLogicThe Top 10 Things Oracle UCM Users Need To Know About WebLogic
The Top 10 Things Oracle UCM Users Need To Know About WebLogicBrian Huff
 
Web ,app and db server presentation
Web ,app and db server presentationWeb ,app and db server presentation
Web ,app and db server presentationParth Godhani
 
Web Server Technologies I: HTTP & Getting Started
Web Server Technologies I: HTTP & Getting StartedWeb Server Technologies I: HTTP & Getting Started
Web Server Technologies I: HTTP & Getting StartedPort80 Software
 
Application server vs Web Server
Application server vs Web ServerApplication server vs Web Server
Application server vs Web ServerGagandeep Singh
 
Web Server Technologies II: Web Applications & Server Maintenance
Web Server Technologies II: Web Applications & Server MaintenanceWeb Server Technologies II: Web Applications & Server Maintenance
Web Server Technologies II: Web Applications & Server MaintenancePort80 Software
 
Oracle UCM: Web Site Performance Tuning
Oracle UCM: Web Site Performance TuningOracle UCM: Web Site Performance Tuning
Oracle UCM: Web Site Performance TuningBrian Huff
 

More Related Content

What's hot

Alfresco As SharePoint Alternative - Architecture Overview
Alfresco As SharePoint Alternative - Architecture OverviewAlfresco As SharePoint Alternative - Architecture Overview
Alfresco As SharePoint Alternative - Architecture OverviewAlfresco Software
 
2009 - Microsoft IIS Vs. Apache - Who Serves More - A Study
2009 - Microsoft IIS Vs. Apache - Who Serves More - A Study2009 - Microsoft IIS Vs. Apache - Who Serves More - A Study
2009 - Microsoft IIS Vs. Apache - Who Serves More - A StudyVijay Prasad Gupta
 
LinkedIn - A highly scalable Architecture on Java!
LinkedIn - A highly scalable Architecture on Java!LinkedIn - A highly scalable Architecture on Java!
LinkedIn - A highly scalable Architecture on Java!manivannan57
 
Useful Rails Plugins
Useful Rails PluginsUseful Rails Plugins
Useful Rails Pluginsnavjeet
 
Application server
Application serverApplication server
Application servernava rathna
 
Creating Flexible Data Services For Enterprise Soa With Wso2 Data Services
Creating Flexible Data Services For Enterprise Soa With Wso2 Data ServicesCreating Flexible Data Services For Enterprise Soa With Wso2 Data Services
Creating Flexible Data Services For Enterprise Soa With Wso2 Data Servicessumedha.r
 
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1... Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...WebStackAcademy
 
Developing a provider hosted share point app
Developing a provider hosted share point appDeveloping a provider hosted share point app
Developing a provider hosted share point appTalbott Crowell
 
Web Server Hardware and Software
Web Server Hardware and SoftwareWeb Server Hardware and Software
Web Server Hardware and Softwarewebhostingguy
 
Web Server And Database Server
Web Server And Database ServerWeb Server And Database Server
Web Server And Database ServerMahbubur Rahman
 
APACHE WEB SERVER FOR LINUX
APACHE WEB SERVER FOR LINUXAPACHE WEB SERVER FOR LINUX
APACHE WEB SERVER FOR LINUXwebhostingguy
 
Web Server-Side Programming Techniques
Web Server-Side Programming TechniquesWeb Server-Side Programming Techniques
Web Server-Side Programming Techniquesguest8899ec02
 
The World Needs an Alternative to SharePoint
The World Needs an Alternative to SharePointThe World Needs an Alternative to SharePoint
The World Needs an Alternative to SharePointAlfresco Software
 
Web Server - Internet Applications
Web Server - Internet ApplicationsWeb Server - Internet Applications
Web Server - Internet Applicationssandra sukarieh
 
Silverlight Development & The Model-View-ViewModel Pattern
Silverlight Development & The Model-View-ViewModel PatternSilverlight Development & The Model-View-ViewModel Pattern
Silverlight Development & The Model-View-ViewModel PatternDerek Novavi
 

What's hot (20)

Web Servers (ppt)
Web Servers (ppt)Web Servers (ppt)
Web Servers (ppt)
 
Alfresco As SharePoint Alternative - Architecture Overview
Alfresco As SharePoint Alternative - Architecture OverviewAlfresco As SharePoint Alternative - Architecture Overview
Alfresco As SharePoint Alternative - Architecture Overview
 
gofortution
gofortutiongofortution
gofortution
 
2009 - Microsoft IIS Vs. Apache - Who Serves More - A Study
2009 - Microsoft IIS Vs. Apache - Who Serves More - A Study2009 - Microsoft IIS Vs. Apache - Who Serves More - A Study
2009 - Microsoft IIS Vs. Apache - Who Serves More - A Study
 
LinkedIn - A highly scalable Architecture on Java!
LinkedIn - A highly scalable Architecture on Java!LinkedIn - A highly scalable Architecture on Java!
LinkedIn - A highly scalable Architecture on Java!
 
Useful Rails Plugins
Useful Rails PluginsUseful Rails Plugins
Useful Rails Plugins
 
Application server
Application serverApplication server
Application server
 
Creating Flexible Data Services For Enterprise Soa With Wso2 Data Services
Creating Flexible Data Services For Enterprise Soa With Wso2 Data ServicesCreating Flexible Data Services For Enterprise Soa With Wso2 Data Services
Creating Flexible Data Services For Enterprise Soa With Wso2 Data Services
 
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1... Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
Web Component Development Using Servlet & JSP Technologies (EE6) - Chapter 1...
 
SharePoint Topology
SharePoint Topology SharePoint Topology
SharePoint Topology
 
Developing a provider hosted share point app
Developing a provider hosted share point appDeveloping a provider hosted share point app
Developing a provider hosted share point app
 
Web Server Hardware and Software
Web Server Hardware and SoftwareWeb Server Hardware and Software
Web Server Hardware and Software
 
Web Server And Database Server
Web Server And Database ServerWeb Server And Database Server
Web Server And Database Server
 
Benefits of Hypermedia API
Benefits of Hypermedia APIBenefits of Hypermedia API
Benefits of Hypermedia API
 
Alfresco Architecture
Alfresco ArchitectureAlfresco Architecture
Alfresco Architecture
 
APACHE WEB SERVER FOR LINUX
APACHE WEB SERVER FOR LINUXAPACHE WEB SERVER FOR LINUX
APACHE WEB SERVER FOR LINUX
 
Web Server-Side Programming Techniques
Web Server-Side Programming TechniquesWeb Server-Side Programming Techniques
Web Server-Side Programming Techniques
 
The World Needs an Alternative to SharePoint
The World Needs an Alternative to SharePointThe World Needs an Alternative to SharePoint
The World Needs an Alternative to SharePoint
 
Web Server - Internet Applications
Web Server - Internet ApplicationsWeb Server - Internet Applications
Web Server - Internet Applications
 
Silverlight Development & The Model-View-ViewModel Pattern
Silverlight Development & The Model-View-ViewModel PatternSilverlight Development & The Model-View-ViewModel Pattern
Silverlight Development & The Model-View-ViewModel Pattern
 

Viewers also liked

RETAIN FOR BLACKBERRY AUDIT AND ARCHIVING SERVICE (BAAS)
RETAIN FOR BLACKBERRY AUDIT AND ARCHIVING SERVICE (BAAS)RETAIN FOR BLACKBERRY AUDIT AND ARCHIVING SERVICE (BAAS)
RETAIN FOR BLACKBERRY AUDIT AND ARCHIVING SERVICE (BAAS)GWAVA
 
Backend as a Service Comparison
Backend as a Service ComparisonBackend as a Service Comparison
Backend as a Service ComparisonSerhiy Snizhny
 
BaaS Comparison - iOS.mn
BaaS Comparison - iOS.mnBaaS Comparison - iOS.mn
BaaS Comparison - iOS.mnpyro2927
 
mobile Backend-as-a-Service (Baas) explained infographic
mobile Backend-as-a-Service (Baas) explained infographicmobile Backend-as-a-Service (Baas) explained infographic
mobile Backend-as-a-Service (Baas) explained infographicHyker Security
 
Deep Dive: Strategic Importance of BaaS
Deep Dive: Strategic Importance of BaaSDeep Dive: Strategic Importance of BaaS
Deep Dive: Strategic Importance of BaaSApigee | Google Cloud
 
MBaaS (Mobile Backend As a Service)
MBaaS (Mobile Backend As a Service)MBaaS (Mobile Backend As a Service)
MBaaS (Mobile Backend As a Service)Imam Raza
 
Edge API BaaS Deep-Dive: Streamline app development
Edge API BaaS Deep-Dive: Streamline app developmentEdge API BaaS Deep-Dive: Streamline app development
Edge API BaaS Deep-Dive: Streamline app developmentApigee | Google Cloud
 
Backend as a Service - Mobile's new Middleware
Backend as a Service - Mobile's new MiddlewareBackend as a Service - Mobile's new Middleware
Backend as a Service - Mobile's new MiddlewareRahul Krishnan P
 
Mobile Backend as a Service via Cloud Foundry
Mobile Backend as a Service via Cloud FoundryMobile Backend as a Service via Cloud Foundry
Mobile Backend as a Service via Cloud Foundry天青 王
 
Klein mannetje heeft geen huis
Klein mannetje heeft geen huisKlein mannetje heeft geen huis
Klein mannetje heeft geen huisgroep12pius10
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected DevelopmentJim McKeeth
 
Материалы выступления В. Демина
Материалы выступления В. Демина Материалы выступления В. Демина
Материалы выступления В. Демина AcademiaSpb
 
Παρουσίαση Μεταπτυχιακής Εργασίας BPR
Παρουσίαση Μεταπτυχιακής Εργασίας BPR Παρουσίαση Μεταπτυχιακής Εργασίας BPR
Παρουσίαση Μεταπτυχιακής Εργασίας BPR Spyros Gkanatsios
 
Web conferencing
Web conferencingWeb conferencing
Web conferencingmazyooonah
 

Viewers also liked (20)

RETAIN FOR BLACKBERRY AUDIT AND ARCHIVING SERVICE (BAAS)
RETAIN FOR BLACKBERRY AUDIT AND ARCHIVING SERVICE (BAAS)RETAIN FOR BLACKBERRY AUDIT AND ARCHIVING SERVICE (BAAS)
RETAIN FOR BLACKBERRY AUDIT AND ARCHIVING SERVICE (BAAS)
 
Backend as a Service Comparison
Backend as a Service ComparisonBackend as a Service Comparison
Backend as a Service Comparison
 
BaaS Comparison - iOS.mn
BaaS Comparison - iOS.mnBaaS Comparison - iOS.mn
BaaS Comparison - iOS.mn
 
The Rise of BaaS
The Rise of BaaSThe Rise of BaaS
The Rise of BaaS
 
mobile Backend-as-a-Service (Baas) explained infographic
mobile Backend-as-a-Service (Baas) explained infographicmobile Backend-as-a-Service (Baas) explained infographic
mobile Backend-as-a-Service (Baas) explained infographic
 
Deep Dive: Strategic Importance of BaaS
Deep Dive: Strategic Importance of BaaSDeep Dive: Strategic Importance of BaaS
Deep Dive: Strategic Importance of BaaS
 
MBaaS (Mobile Backend As a Service)
MBaaS (Mobile Backend As a Service)MBaaS (Mobile Backend As a Service)
MBaaS (Mobile Backend As a Service)
 
Edge API BaaS Deep-Dive: Streamline app development
Edge API BaaS Deep-Dive: Streamline app developmentEdge API BaaS Deep-Dive: Streamline app development
Edge API BaaS Deep-Dive: Streamline app development
 
Mobile Backend as a Service(MBaaS)
Mobile Backend as a Service(MBaaS)Mobile Backend as a Service(MBaaS)
Mobile Backend as a Service(MBaaS)
 
Backend as a Service - Mobile's new Middleware
Backend as a Service - Mobile's new MiddlewareBackend as a Service - Mobile's new Middleware
Backend as a Service - Mobile's new Middleware
 
Mobile Backend as a Service via Cloud Foundry
Mobile Backend as a Service via Cloud FoundryMobile Backend as a Service via Cloud Foundry
Mobile Backend as a Service via Cloud Foundry
 
concrete5.7のご紹介
concrete5.7のご紹介concrete5.7のご紹介
concrete5.7のご紹介
 
Presentacion tic 2
Presentacion tic 2Presentacion tic 2
Presentacion tic 2
 
Klein mannetje heeft geen huis
Klein mannetje heeft geen huisKlein mannetje heeft geen huis
Klein mannetje heeft geen huis
 
Quality limited
Quality limitedQuality limited
Quality limited
 
Embarcadero's Connected Development
Embarcadero's Connected DevelopmentEmbarcadero's Connected Development
Embarcadero's Connected Development
 
Материалы выступления В. Демина
Материалы выступления В. Демина Материалы выступления В. Демина
Материалы выступления В. Демина
 
Uu no 59_1958
Uu no 59_1958Uu no 59_1958
Uu no 59_1958
 
Παρουσίαση Μεταπτυχιακής Εργασίας BPR
Παρουσίαση Μεταπτυχιακής Εργασίας BPR Παρουσίαση Μεταπτυχιακής Εργασίας BPR
Παρουσίαση Μεταπτυχιακής Εργασίας BPR
 
Web conferencing
Web conferencingWeb conferencing
Web conferencing
 

Similar to Accessing REST & Backend as a Service (BaaS) - Developer Direct - Mobile Summer School - 2014 - Lesson 6

Cloud Foundry Technical Overview
Cloud Foundry Technical OverviewCloud Foundry Technical Overview
Cloud Foundry Technical Overviewcornelia davis
 
Stefaan Ponnet, Fusebox
Stefaan Ponnet, FuseboxStefaan Ponnet, Fusebox
Stefaan Ponnet, Fuseboxnascomgenk
 
Building a SaaS using WSO2 Stratos
Building a SaaS using WSO2 StratosBuilding a SaaS using WSO2 Stratos
Building a SaaS using WSO2 StratosWSO2
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...Mark Leusink
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...Mark Roden
 
Monitoring Application Attack Surface and Integrating Security into DevOps Pi...
Monitoring Application Attack Surface and Integrating Security into DevOps Pi...Monitoring Application Attack Surface and Integrating Security into DevOps Pi...
Monitoring Application Attack Surface and Integrating Security into DevOps Pi...Denim Group
 
RAHUL_Updated( (2)
RAHUL_Updated( (2)RAHUL_Updated( (2)
RAHUL_Updated( (2)Rahul Singh
 
Opal: Simple Web Services Wrappers for Scientific Applications
Opal: Simple Web Services Wrappers for Scientific ApplicationsOpal: Simple Web Services Wrappers for Scientific Applications
Opal: Simple Web Services Wrappers for Scientific ApplicationsSriram Krishnan
 
Hands-On Lab: Improve large network visibility and operational efficiency wit...
Hands-On Lab: Improve large network visibility and operational efficiency wit...Hands-On Lab: Improve large network visibility and operational efficiency wit...
Hands-On Lab: Improve large network visibility and operational efficiency wit...CA Technologies
 
MongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless WorldMongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless WorldMongoDB
 
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...Amazon Web Services
 
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...Lucas Jellema
 
Azure Web App services
Azure Web App servicesAzure Web App services
Azure Web App servicesAlexey Bokov
 
Enabling .NET Apps with Monitoring and Management Using Steeltoe
Enabling .NET Apps with Monitoring and Management Using SteeltoeEnabling .NET Apps with Monitoring and Management Using Steeltoe
Enabling .NET Apps with Monitoring and Management Using SteeltoeVMware Tanzu
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineIMC Institute
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Lou Sacco
 

Similar to Accessing REST & Backend as a Service (BaaS) - Developer Direct - Mobile Summer School - 2014 - Lesson 6 (20)

Progressive Web Apps
Progressive Web AppsProgressive Web Apps
Progressive Web Apps
 
Cloud Foundry Technical Overview
Cloud Foundry Technical OverviewCloud Foundry Technical Overview
Cloud Foundry Technical Overview
 
Stefaan Ponnet, Fusebox
Stefaan Ponnet, FuseboxStefaan Ponnet, Fusebox
Stefaan Ponnet, Fusebox
 
Fs And Self Service
Fs And Self ServiceFs And Self Service
Fs And Self Service
 
Building a SaaS using WSO2 Stratos
Building a SaaS using WSO2 StratosBuilding a SaaS using WSO2 Stratos
Building a SaaS using WSO2 Stratos
 
The future of web development write once, run everywhere with angular js an...
The future of web development   write once, run everywhere with angular js an...The future of web development   write once, run everywhere with angular js an...
The future of web development write once, run everywhere with angular js an...
 
The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...The future of web development write once, run everywhere with angular.js and ...
The future of web development write once, run everywhere with angular.js and ...
 
Monitoring Application Attack Surface and Integrating Security into DevOps Pi...
Monitoring Application Attack Surface and Integrating Security into DevOps Pi...Monitoring Application Attack Surface and Integrating Security into DevOps Pi...
Monitoring Application Attack Surface and Integrating Security into DevOps Pi...
 
RAHUL_Updated( (2)
RAHUL_Updated( (2)RAHUL_Updated( (2)
RAHUL_Updated( (2)
 
Opal: Simple Web Services Wrappers for Scientific Applications
Opal: Simple Web Services Wrappers for Scientific ApplicationsOpal: Simple Web Services Wrappers for Scientific Applications
Opal: Simple Web Services Wrappers for Scientific Applications
 
Hands-On Lab: Improve large network visibility and operational efficiency wit...
Hands-On Lab: Improve large network visibility and operational efficiency wit...Hands-On Lab: Improve large network visibility and operational efficiency wit...
Hands-On Lab: Improve large network visibility and operational efficiency wit...
 
MongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless WorldMongoDB.local Berlin: App development in a Serverless World
MongoDB.local Berlin: App development in a Serverless World
 
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
AWS re:Invent 2016: Deep-Dive: Native, Hybrid and Web patterns with Serverles...
 
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
Castle in the clouds - Building the Connexys SaaS application with Fusion Mid...
 
SharePoint 2013 - What's New
SharePoint 2013 - What's NewSharePoint 2013 - What's New
SharePoint 2013 - What's New
 
Azure Web App services
Azure Web App servicesAzure Web App services
Azure Web App services
 
Enabling .NET Apps with Monitoring and Management Using Steeltoe
Enabling .NET Apps with Monitoring and Management Using SteeltoeEnabling .NET Apps with Monitoring and Management Using Steeltoe
Enabling .NET Apps with Monitoring and Management Using Steeltoe
 
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App EngineJava Web Programming on Google Cloud Platform [1/3] : Google App Engine
Java Web Programming on Google Cloud Platform [1/3] : Google App Engine
 
L19 Application Architecture
L19 Application ArchitectureL19 Application Architecture
L19 Application Architecture
 
Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014Meteor Meet-up San Diego December 2014
Meteor Meet-up San Diego December 2014
 

More from Jim McKeeth

Smart Contracts - The Blockchain Beyond Bitcoin
Smart Contracts - The Blockchain Beyond BitcoinSmart Contracts - The Blockchain Beyond Bitcoin
Smart Contracts - The Blockchain Beyond BitcoinJim McKeeth
 
Rapid Prototyping Mobile IoT Projects with Arduino and Open Hardware
Rapid Prototyping Mobile IoT Projects with Arduino and Open HardwareRapid Prototyping Mobile IoT Projects with Arduino and Open Hardware
Rapid Prototyping Mobile IoT Projects with Arduino and Open HardwareJim McKeeth
 
Day 3 of C++ Boot Camp - C++11 Language Deep Dive
Day 3 of C++ Boot Camp - C++11 Language Deep DiveDay 3 of C++ Boot Camp - C++11 Language Deep Dive
Day 3 of C++ Boot Camp - C++11 Language Deep DiveJim McKeeth
 
Day 5 of C++ Boot Camp - Stepping Up to Mobile
Day 5 of C++ Boot Camp - Stepping Up to MobileDay 5 of C++ Boot Camp - Stepping Up to Mobile
Day 5 of C++ Boot Camp - Stepping Up to MobileJim McKeeth
 
Android Services Skill Sprint
Android Services Skill SprintAndroid Services Skill Sprint
Android Services Skill SprintJim McKeeth
 
Creating Android Services with Delphi and RAD Studio 10 Seattle
Creating Android Services with Delphi and RAD Studio 10 SeattleCreating Android Services with Delphi and RAD Studio 10 Seattle
Creating Android Services with Delphi and RAD Studio 10 SeattleJim McKeeth
 
Building a Thought Controlled Drone
Building a Thought Controlled DroneBuilding a Thought Controlled Drone
Building a Thought Controlled DroneJim McKeeth
 
Deep Dive into Futures and the Parallel Programming Library
Deep Dive into Futures and the Parallel Programming LibraryDeep Dive into Futures and the Parallel Programming Library
Deep Dive into Futures and the Parallel Programming LibraryJim McKeeth
 
The Internet of Things and You - A Developers Guide to IoT
The Internet of Things and You - A Developers Guide to IoTThe Internet of Things and You - A Developers Guide to IoT
The Internet of Things and You - A Developers Guide to IoTJim McKeeth
 
Android voice skill sprint
Android voice skill sprintAndroid voice skill sprint
Android voice skill sprintJim McKeeth
 
Exploring the Brain Computer Interface
Exploring the Brain Computer InterfaceExploring the Brain Computer Interface
Exploring the Brain Computer InterfaceJim McKeeth
 
Introduction to Android Development with Java
Introduction to Android Development with JavaIntroduction to Android Development with Java
Introduction to Android Development with JavaJim McKeeth
 
Hacking iBooks and ePub3 with JavaScript!
Hacking iBooks and ePub3 with JavaScript!Hacking iBooks and ePub3 with JavaScript!
Hacking iBooks and ePub3 with JavaScript!Jim McKeeth
 
Inventing merit badge
Inventing merit badgeInventing merit badge
Inventing merit badgeJim McKeeth
 

More from Jim McKeeth (14)

Smart Contracts - The Blockchain Beyond Bitcoin
Smart Contracts - The Blockchain Beyond BitcoinSmart Contracts - The Blockchain Beyond Bitcoin
Smart Contracts - The Blockchain Beyond Bitcoin
 
Rapid Prototyping Mobile IoT Projects with Arduino and Open Hardware
Rapid Prototyping Mobile IoT Projects with Arduino and Open HardwareRapid Prototyping Mobile IoT Projects with Arduino and Open Hardware
Rapid Prototyping Mobile IoT Projects with Arduino and Open Hardware
 
Day 3 of C++ Boot Camp - C++11 Language Deep Dive
Day 3 of C++ Boot Camp - C++11 Language Deep DiveDay 3 of C++ Boot Camp - C++11 Language Deep Dive
Day 3 of C++ Boot Camp - C++11 Language Deep Dive
 
Day 5 of C++ Boot Camp - Stepping Up to Mobile
Day 5 of C++ Boot Camp - Stepping Up to MobileDay 5 of C++ Boot Camp - Stepping Up to Mobile
Day 5 of C++ Boot Camp - Stepping Up to Mobile
 
Android Services Skill Sprint
Android Services Skill SprintAndroid Services Skill Sprint
Android Services Skill Sprint
 
Creating Android Services with Delphi and RAD Studio 10 Seattle
Creating Android Services with Delphi and RAD Studio 10 SeattleCreating Android Services with Delphi and RAD Studio 10 Seattle
Creating Android Services with Delphi and RAD Studio 10 Seattle
 
Building a Thought Controlled Drone
Building a Thought Controlled DroneBuilding a Thought Controlled Drone
Building a Thought Controlled Drone
 
Deep Dive into Futures and the Parallel Programming Library
Deep Dive into Futures and the Parallel Programming LibraryDeep Dive into Futures and the Parallel Programming Library
Deep Dive into Futures and the Parallel Programming Library
 
The Internet of Things and You - A Developers Guide to IoT
The Internet of Things and You - A Developers Guide to IoTThe Internet of Things and You - A Developers Guide to IoT
The Internet of Things and You - A Developers Guide to IoT
 
Android voice skill sprint
Android voice skill sprintAndroid voice skill sprint
Android voice skill sprint
 
Exploring the Brain Computer Interface
Exploring the Brain Computer InterfaceExploring the Brain Computer Interface
Exploring the Brain Computer Interface
 
Introduction to Android Development with Java
Introduction to Android Development with JavaIntroduction to Android Development with Java
Introduction to Android Development with Java
 
Hacking iBooks and ePub3 with JavaScript!
Hacking iBooks and ePub3 with JavaScript!Hacking iBooks and ePub3 with JavaScript!
Hacking iBooks and ePub3 with JavaScript!
 
Inventing merit badge
Inventing merit badgeInventing merit badge
Inventing merit badge
 

Recently uploaded

OpenChain AI Study Group - North America and Europe - 2024-02-20
OpenChain AI Study Group - North America and Europe - 2024-02-20OpenChain AI Study Group - North America and Europe - 2024-02-20
OpenChain AI Study Group - North America and Europe - 2024-02-20Shane Coughlan
 
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...ISPMAIndia
 
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A..."Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...ISPMAIndia
 
Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024Asher Sterkin
 
Software Testing life cycle (STLC) Importance, Phases, Benefits...
Software Testing life cycle (STLC) Importance, Phases, Benefits...Software Testing life cycle (STLC) Importance, Phases, Benefits...
Software Testing life cycle (STLC) Importance, Phases, Benefits...Flexsin
 
LLMOps with Azure Machine Learning prompt flow
LLMOps with Azure Machine Learning prompt flowLLMOps with Azure Machine Learning prompt flow
LLMOps with Azure Machine Learning prompt flowNaoki (Neo) SATO
 
The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!ISPMAIndia
 
Embracing Change - The Impact of Generative AI on Strategic Portfolio Management
Embracing Change - The Impact of Generative AI on Strategic Portfolio ManagementEmbracing Change - The Impact of Generative AI on Strategic Portfolio Management
Embracing Change - The Impact of Generative AI on Strategic Portfolio ManagementOnePlan Solutions
 
P1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 SmartsheetP1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 SmartsheetMatthewTHawley
 
maximum subarray ppt for killing camp students
maximum subarray ppt for killing camp studentsmaximum subarray ppt for killing camp students
maximum subarray ppt for killing camp studentsssuser82c38d
 
killing camp week 6 problem - maximal matrix.pdf
killing camp week 6 problem - maximal matrix.pdfkilling camp week 6 problem - maximal matrix.pdf
killing camp week 6 problem - maximal matrix.pdfssuser82c38d
 
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이ssuser82c38d
 
No more Dockerfiles? Buildpacks to help you ship your image!
No more Dockerfiles? Buildpacks to help you ship your image!No more Dockerfiles? Buildpacks to help you ship your image!
No more Dockerfiles? Buildpacks to help you ship your image!Anthony Dahanne
 
100 TOOLS TO MEASURE AND ANALYSE YOUR DIGITAL MARKETING EFFORTS
100 TOOLS TO MEASURE AND ANALYSE YOUR DIGITAL MARKETING EFFORTS100 TOOLS TO MEASURE AND ANALYSE YOUR DIGITAL MARKETING EFFORTS
100 TOOLS TO MEASURE AND ANALYSE YOUR DIGITAL MARKETING EFFORTSi-engage
 
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...emili denli
 
Getting Started with Trello for Beginners.pptx
Getting Started with Trello for Beginners.pptxGetting Started with Trello for Beginners.pptx
Getting Started with Trello for Beginners.pptxmavinoikein
 
Open Sprintera (Where Open Source Sparks a Sprint of Possibilities)
Open Sprintera (Where Open Source Sparks a Sprint of Possibilities)Open Sprintera (Where Open Source Sparks a Sprint of Possibilities)
Open Sprintera (Where Open Source Sparks a Sprint of Possibilities)GDSCNiT
 
killingcamp longest common subsequence.pdf
killingcamp longest common subsequence.pdfkillingcamp longest common subsequence.pdf
killingcamp longest common subsequence.pdfssuser82c38d
 
Automation for Bonterra Impact Management (fka Apricot)
Automation for Bonterra Impact Management (fka Apricot)Automation for Bonterra Impact Management (fka Apricot)
Automation for Bonterra Impact Management (fka Apricot)Jeffrey Haguewood
 

Recently uploaded (20)

OpenChain AI Study Group - North America and Europe - 2024-02-20
OpenChain AI Study Group - North America and Europe - 2024-02-20OpenChain AI Study Group - North America and Europe - 2024-02-20
OpenChain AI Study Group - North America and Europe - 2024-02-20
 
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...
Product Manager vs Product Owner – Why Do Companies Still Struggle 23 Years A...
 
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A..."Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
"Discovery and Delivery through Product IntelliGenAI framework" by Ramkumar A...
 
Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024Essence of Requirements Engineering: Pragmatic Insights for 2024
Essence of Requirements Engineering: Pragmatic Insights for 2024
 
Software Testing life cycle (STLC) Importance, Phases, Benefits...
Software Testing life cycle (STLC) Importance, Phases, Benefits...Software Testing life cycle (STLC) Importance, Phases, Benefits...
Software Testing life cycle (STLC) Importance, Phases, Benefits...
 
LLMOps with Azure Machine Learning prompt flow
LLMOps with Azure Machine Learning prompt flowLLMOps with Azure Machine Learning prompt flow
LLMOps with Azure Machine Learning prompt flow
 
The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!The Age of AI: Elevating Experiences & Delivering Customer Value!
The Age of AI: Elevating Experiences & Delivering Customer Value!
 
Embracing Change - The Impact of Generative AI on Strategic Portfolio Management
Embracing Change - The Impact of Generative AI on Strategic Portfolio ManagementEmbracing Change - The Impact of Generative AI on Strategic Portfolio Management
Embracing Change - The Impact of Generative AI on Strategic Portfolio Management
 
P1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 SmartsheetP1 Inspection Types in Municity 5 Smartsheet
P1 Inspection Types in Municity 5 Smartsheet
 
maximum subarray ppt for killing camp students
maximum subarray ppt for killing camp studentsmaximum subarray ppt for killing camp students
maximum subarray ppt for killing camp students
 
killing camp week 6 problem - maximal matrix.pdf
killing camp week 6 problem - maximal matrix.pdfkilling camp week 6 problem - maximal matrix.pdf
killing camp week 6 problem - maximal matrix.pdf
 
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
killingcamp 광고삽입문제 풀이, killingcamp 광고삽입문제 풀이
 
No more Dockerfiles? Buildpacks to help you ship your image!
No more Dockerfiles? Buildpacks to help you ship your image!No more Dockerfiles? Buildpacks to help you ship your image!
No more Dockerfiles? Buildpacks to help you ship your image!
 
eLearning Content Development Company Code and Pixels.pdf
eLearning Content Development Company Code and Pixels.pdfeLearning Content Development Company Code and Pixels.pdf
eLearning Content Development Company Code and Pixels.pdf
 
100 TOOLS TO MEASURE AND ANALYSE YOUR DIGITAL MARKETING EFFORTS
100 TOOLS TO MEASURE AND ANALYSE YOUR DIGITAL MARKETING EFFORTS100 TOOLS TO MEASURE AND ANALYSE YOUR DIGITAL MARKETING EFFORTS
100 TOOLS TO MEASURE AND ANALYSE YOUR DIGITAL MARKETING EFFORTS
 
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...
The Game-Changer_ How Software Development Outsource Can Catapult Your Growth...
 
Getting Started with Trello for Beginners.pptx
Getting Started with Trello for Beginners.pptxGetting Started with Trello for Beginners.pptx
Getting Started with Trello for Beginners.pptx
 
Open Sprintera (Where Open Source Sparks a Sprint of Possibilities)
Open Sprintera (Where Open Source Sparks a Sprint of Possibilities)Open Sprintera (Where Open Source Sparks a Sprint of Possibilities)
Open Sprintera (Where Open Source Sparks a Sprint of Possibilities)
 
killingcamp longest common subsequence.pdf
killingcamp longest common subsequence.pdfkillingcamp longest common subsequence.pdf
killingcamp longest common subsequence.pdf
 
Automation for Bonterra Impact Management (fka Apricot)
Automation for Bonterra Impact Management (fka Apricot)Automation for Bonterra Impact Management (fka Apricot)
Automation for Bonterra Impact Management (fka Apricot)
 

Accessing REST & Backend as a Service (BaaS) - Developer Direct - Mobile Summer School - 2014 - Lesson 6

  • 1. Lesson 6: Accessing  REST  and  Backend  as  a   Service  (BaaS)  Cloud  Services   Jim  McKeeth   Lead  Developer  Evangelist  –  Embarcadero   jim.mckeeth@embarcadero.com   http://delphi.org/  
  • 2. Mobile  App  Development   ▪  Lesson  1  –  Hello  World!  My  First  Multi-­‐Device  App   ▪  Lesson  2  –  Turning  up  the  Style  and  Data!   ▪  Lesson  3  –  Accessing  Local  Storage  and  Databases   ▪  Lesson  4  –  Building  Multi-­‐tier,  Multi-­‐device  Apps  using  DataSnap  REST/JSON   ▪  Lesson  5  –  Connecting  Mobile  and  Desktop  using  App  Tethering   ▪  Lesson  6  –  Accessing  REST  and  BaaS  Cloud  Services   Replay  links  and  lesson  slides  will  appear  on  David’s  blog   http://blogs.embarcadero.com/davidi/  
  • 3. Lesson  6  Agenda   ▪  REST  Client  Library   ▪  REST  Debugger   ▪  Backend  as  a  Service  (BaaS)   ▪  Samples  and  Snippets   ▪  Continue  development  of  the  mobile  business  app   ▪  Review,  Homework  and  Next  Time   ▪  Q&A  
  • 4. REST  Client  Library   ▪  Framework  for  accessing  REST-­‐based  web  services   ▪  The  framework  focuses  on  JSON  as  the  representation  format.  XML  is  not   explicitly  supported.   ▪  The  framework  includes  components  and  is  built  around  3  main  components:   –  The  client  -­‐  TRESTClient   –  The  request  -­‐  TRESTRequest   –  The  response  –  TRESTResponse   ▪  Most  REST  services  require  authentication.  Components  are  provided  for   –  Simple  authentication  –  TSimpleAuthenticator   –  HTTP  basic  authentication  –  THTTPBasicAuthenticator   –  OAuth1  and  OAuth2  authentication  –  TOAuth1Authenticator  and  TOAuth2Authenticator  
  • 5. REST  Client  Library  Components   ▪  TRESTClient  -­‐  manages  the  HTTP  connection  to  the  service,  deals  with  HTTP   headers  and  proxy  servers,  and  receives  the  response  data.   ▪  TRESTRequest  -­‐  holds  all  parameters  and  settings  that  form  the  actual  HTTP   request  to  a  Web  service.  When  connected  to  a  client-­‐component,  it  can  be   executed  (even  at  design  time).   ▪  TRESTResponse  -­‐  holds  all  the  returned  data  from  a  Web  service.  The  returned   data  includes  the  HTTP  status  code,  error  messages  (if  any  exist),  and  the  returned   JSON  data.   ▪  TRESTResponseDataSetAdapter  –  takes  the  returned  JSON  data  and  converts  it   to  a  form  a  DataSet  can  use  –  for  example  TDataSet  and  TFDMemTable.   ▪  Authenticator(s)  -­‐  most  services  require  an  authentication  before  they  can  be  used.   The  authenticator  components  are  used  to  apply  the  specific  authentication   methods  that  are  required  by  the  REST  service.  An  authenticator  is  attached  to  the   client  and  is  automatically  executed  on  each  executed  request.  You  can  create   custom  authenticators  using  the  TCustomAuthenticator  class.  
  • 6. REST  Debugger   ▪  Included  on  the  Tools  Menu   ▪  Use  it  to  making  queries  to  test  and   debug  REST  queries  before  applying  them   to  your  own  REST  applications.   ▪  The  interface  has  four  pages  that  contain   the  main  request  information,   the  resource  and  the  parameters  request,   the  authentication  methods,  and  the   option  to  use  proxy  to  connect  to  the   server.  
  • 7. Cloud  Service  (BaaS)  Integration   ▪  Use  push  notifications  to  engage  your  users   ▪  Access  data  and  object  storage  in  the  cloud   ▪  Provide  user  authentication   ▪  Supports  popular  BaaS  providers  with  a   common  API  component  set   –  Parse   –  Kinvey   –  Additional  providers  to  appear  in  the  future     ▪  App42  has  a  provider  now   https://github.com/shephertz/App42-­‐AppMethod-­‐API    
  • 8. BaaS  =  Backend  as  a  Service   ▪  Most  mobile  apps  need  server  storage  for  data,  images,  files,  etc   –  Build  yourself  (with  DataSnap)   –  Buy  a  scalable  cloud  solution  (with  Cloud  or  BaaS  services)   ▪  BaaS  =  cloud  solution  with  mobile  users  management   –  Services  also  provide  analytics,  push  notifications  (cross  platform  and  more)   ▪  REST  BAAS  framework  offers  you  a  variety  of  actions:   –  Create,  retrieve,  update  and  delete  objects   –  Sign  up,  login,  retrieve,  update  and  delete  users   –  Upload,  download  and  delete  files  or  streams   –  Query  objects  and  users   –  Send  push  notifications   –  Register  for  and  receive  push  notifications  on  a  device  
  • 9. Backend-­‐as-­‐a-­‐Service  Client  Components   ▪  Based  on  REST  Client  architecture  that   was  introduced  in  XE5   ▪  BaaS  clients  for  Kinvey  and  Parse   –  Native  providers  to  use  services  directly   –  Providers  integration  with  framework  for   common  services   –  Framework  works  with  these  providers,   open  for  future  extensions   ▪  Providers  to  connect  to  Parse  and  Kinvey   service   –  TParseProvider   –  TKinveyProvider   –  TCustomProvider  –  to  implement  your  own   integration     ▪  Push  Notifications   –  TPushEvents  –  to  register  your  device/app   to  receive  notifications   –  TBackendPush  –  allows  an  app  (desktop  or   mobile)  to  push  a  notification  to  the   provider  service  that  passes  it  along  to   registered  devices   ▪  Storage   –  TBackendStorage   –  TBackendQuery   –  TBackendFiles   ▪  User  Management   –  TBackendUsers    
  • 10. Backend-­‐as-­‐a-­‐Service  Model   ▪  Supports  abstract  features,  provider  independent   –  Create,  retrieve,  update  and  delete  (JSON)  objects   –  Signup,  login,  retrieve,  update  and  delete  users   –  Upload,  download  and  delete  files  or  streams   –  Query  objects  and  users   –  Send  push  notifications   –  Register  for  and  receive  push  notifications  on  a  device  
  • 11. Push  Notifications  Scenarios   ▪  Send  reminders  to  mobile  apps  even  when  not  active   –  App  to  app  notifications  (via  push  server)   –  Server  to  app  notifications  (triggered  by  server  events)   –  Client  notifications  (for  example  VCL)  to  companion  app   è
  • 12. REST  and  BaaS  Samples   ▪  REST  and  BaaS  mobile  samples   –  REST  –  SurfSpotFinder   –  BaaS  ToDo  List   –  C++   ▪  C:UsersPublicDocumentsEmbarcaderoStudio14.0SamplesCPPMobile  Samples Cloud   ▪  http://sourceforge.net/p/appmethod/code/HEAD/tree/branches/Appmethod_114W/ CPP/Mobile%20Samples/Cloud/   –  Object  Pascal   ▪  C:UsersPublicDocumentsEmbarcaderoStudio14.0SamplesObject  PascalMobile   SamplesCloud   ▪  http://sourceforge.net/p/appmethod/code/HEAD/tree/branches/Appmethod_114W/ Object%20Pascal/Mobile%20Samples/Cloud/   ▪  Always  be  sure  to  update  your  local  samples  from  Sourceforge!  
  • 13. REST  and  BaaS  Demos  
  • 14. Next  Steps  for  our  Business  Mobile  App   ▪  Use  the  REST  Client  Library  components  to  use  a  REST  service  (parts  lookup)   for  the  Parts  table   ▪  Use  BaaS  to  push  notifications  to  the  Marine  Adventures  mobile  app  to  tell   employees  that  an  order  has  shipped,  part  is  backordered  and  inventory  is   getting  low.  
  • 15. Lesson  6  Review   ▪  Quickly  use  REST  Services  using  REST/JSON  and  the  REST  client  library   components   ▪  Extend  your  mobile  and  desktop  applications  into  the  Cloud  using  Backend  as  a   Service  
  • 16. Resources  (1  of  4)   ▪  REST  Client  Library  -­‐  Docwiki   –  http://docwiki.appmethod.com/appmethod/1.14/topics/en/REST_Client_Library   –  http://docwiki.embarcadero.com/RADStudio/XE6/en/REST_Debugger   –  http://docwiki.embarcadero.com/RADStudio/XE6/en/Using_the_REST_Debugger   –  http://docwiki.appmethod.com/appmethod/1.14/codeexamples/en/RESTDemo_Sample   ▪  Tutorial   –  http://docwiki.appmethod.com/appmethod/1.14/topics/en/ Tutorial:_Using_the_REST_Client_Library_to_Access_REST-­‐based_Web_Services     Note:  http://docwiki.appmethod.com/appmethod/1.14/topics/en/...  =  http://docwiki.embarcadero.com/RADStudio/XE6/en/...  
  • 17. Resources  (2  of  4)   ▪  BaaS  –  DocWiki   –  http://docwiki.appmethod.com/appmethod/1.14/libraries/en/REST.Backend   –  http://docwiki.appmethod.com/appmethod/1.14/libraries/en/ REST.Backend.ServiceComponents   –  http://docwiki.appmethod.com/appmethod/1.14/topics/en/Creating_the_Application   ▪  Tutorials   –  http://docwiki.appmethod.com/appmethod/1.14/topics/en/ Mobile_Tutorial:_Using_Remote_Notifications_(iOS_and_Android)   Note:  http://docwiki.appmethod.com/appmethod/1.14/topics/en/...  =  http://docwiki.embarcadero.com/RADStudio/XE6/en/...  
  • 18. Resources  (3  of  4)   ▪  Videos  on  Demand   –  David  I  “BaaS  webinar”  replay   ▪  http://www.embarcadero.com/landing-­‐pages/rad-­‐in-­‐action-­‐baas   –  Sarina  Dupont  “Managing  User  Accounts  and  Storage  with  BaaS”  skill  sprint  replay   ▪  https://www.youtube.com/watch?v=Ct13YWSRP04   –  David  I  “BackendPush  skill  sprint”  replay   ▪  https://www.youtube.com/watch?v=N2_KA3LEWYw   –  Jim  McKeeth  “Integrate  Cloud  Services  with  the  REST/JSON  Client  skill  sprint”  replay   ▪  https://www.youtube.com/watch?v=sp-­‐EDTKy2BU   –  Stephen  Ball  on  Object  Persistence   ▪  http://blogs.embarcadero.com/stephenball/2014/04/23/remote-­‐object-­‐persistence-­‐with-­‐parse-­‐and-­‐kinvey/     ▪  http://blogs.embarcadero.com/stephenball/2014/06/05/apptethering-­‐leaderboard-­‐passing-­‐objects-­‐remotely-­‐ and-­‐using-­‐resources/    
  • 19. Resources  (4  of  4)   ▪  Sites   –  Oauth  Community  Site  -­‐  http://oauth.net/   –  Parse.com  -­‐  https://parse.com/   –  Kinvey.com  -­‐  http://www.kinvey.com/     ▪  Blogs   –  http://blogs.embarcadero.com/   –  David  I  blog  –  “Finding  your  Tethered  Apps”     ▪  http://blogs.embarcadero.com/davidi/2014/04/28/43708   –  Sarina  Dupont  blog  –  Series  of  10  BaaS  tutorials   ▪  http://blogs.embarcadero.com/sarinadupont/2014/06/09/baas-­‐tutorials-­‐to-­‐help-­‐you-­‐get-­‐started-­‐quickly/   ▪  Or  http://embt.co/baastutorials     –  Stephen  Ball  on  Object  Persistence   ▪  http://blogs.embarcadero.com/stephenball/2014/04/23/remote-­‐object-­‐persistence-­‐with-­‐parse-­‐and-­‐kinvey/     ▪  http://blogs.embarcadero.com/stephenball/2014/06/05/apptethering-­‐leaderboard-­‐passing-­‐objects-­‐remotely-­‐ and-­‐using-­‐resources/    
  • 20. Homework  &  More  to  Explore   ▪  Read  the  DocWiki  articles  and  blog  posts  for  REST  Client  Library  and  BaaS   ▪  Watch  the  videos   ▪  Go  through  the  Mobile  Snippets  and  Samples  for  additional  demos   ▪  Try  some  of  the  Mobile  Tutorials   –  Download  the  PDF  ebook  at   http://docs.embarcadero.com/products/rad_studio/radstudioXE6/ Mobile_Tutorials_en.pdf   –  The  individual  mobile  tutorials  are  listed  at   http://docwiki.appmethod.com/appmethod/1.14/topics/en/ Mobile_Tutorials:_Mobile_Application_Development_(iOS_and_Android)   ▪  Enhance  the  Marine  Adventure  mobile  app   Note:  http://docwiki.appmethod.com/appmethod/1.14/topics/en/...  =  http://docwiki.embarcadero.com/RADStudio/XE6/en/...  
  • 22. Thank  You  J   jim.mckeeth@embarcadero.com   http://delphi.org/