APIs of Enterprise 
mBaaS Platform 
Gustavo Machado 
VP of Engineering 
@machadogj 
gus@kidozen.com
KidoZen 
Integrated platform that provides 
enterprise-ready infrastructure for 
mobile applications: 
• Enables Backend, Management and Lifecycle Capabilities 
• Integration with On-Premise and SaaS Systems 
• Access to Storage, Logging, Identity Management, SMS, Push 
Notification, etc. 
• Public, Hybrid, Private Cloud 
Enterprise 
mBaaS 
Mobile Data 
Virtualization 
Enterprise 
Mobile App 
Center 
Mobile 
Business 
Analytics
Agenda 
■ APIs in Enterprise Mobile Solutions 
■ Samples and Code 
■ Summary
What’s the main element that 
powers the Backend of Mobile Apps?
Mobile Backend APIs 
■ Infrastructure APIs 
■ Mobile APIs 
■ Enterprise APIs 
■ Data APIs 
■ Line of Business APIs
Infrastructure APIs 
■ Security 
■ Storage 
■ Configuration 
■ Logging 
■ PubSub 
■ Etc…
Sample: Authentication 
var app = new KidoZen.KZApplication("https://armonia.kidocloud.com", "vacations"); 
if (active) { 
//get the username & password from a login screen. 
//get provider from auth configuration 
app.Authenticate(username, password, provider).Result; 
} else { 
app.Authenticate().Result; 
} 
if (!app.Authenticated) { 
//... retry authentication 
}
Mobile APIs 
■ Push Notifications 
■ App Crash 
■ Analytics
Sample: Push Notifications 
public override void RegisteredForRemoteNotifications (UIApplication application, 
NSData deviceToken) 
{ 
var channel = "sports"; 
kzApplication.Notification.Subscribe(channel, deviceToken); 
}
Sample: Push Notifications 
public override void RegisteredForRemoteNotifications (UIApplication application, 
NSData deviceToken) 
{ 
var channel = "sports"; 
kzApplication.Notification.Subscribe(channel, deviceToken); 
}
Enterprise APIs 
■ SAP 
■ Sharepoint 
■ DBs 
■ REST / SOAP 
■ etc…
Sample: Invoke Service Operation 
var app = new KZApplication("https://armonia.kidocloud.com", "vacations"); 
//... authenticate here... 
var data = new { "resource":"CalendarListItems","top":"1"}; 
var getResult = app.Service["tellagosharepoint"].Invoke("query", data).Result;
Data APIs 
■ Data Sources 
■ Content Sources / CMS 
■ Visualization
Sample: Query Data Source 
var app = new KZApplication("https://armonia.kidocloud.com", "vacations"); 
//... authenticate here ... 
var ds = app.DataSource["getTeamsVacations"]; 
var data = new { "qty":1} ; 
var getResult = ds.Query(data).Result;
Sample: Query Data Source 
var app = new KZApplication("https://armonia.kidocloud.com", "vacations"); 
//... authenticate here ... 
var ds = app.DataSource["getTeamsVacations"]; 
var data = new { "qty":1} ; 
var getResult = ds.Query(data).Result;
Sample: Query Data Source 
var app = new KZApplication("https://armonia.kidocloud.com", "vacations"); 
//... authenticate here ... 
var getResult = app.DataSource[“getTeamsVacations”].Query(new {“qty”: 1 });
Line of Business APIs 
■ Server-side Code 
■ REST / SOAP
Sample: Server-side Code 
/** 
* Custom connectors are built with javascript. 
*/ 
function MyMathConnector() { 
/** 
* Operations need to accept two parameters, 
* an ‘opts’ object with the params, and a 
* ‘cb’ with a callback function. 
*/ 
this.sum = function (opts, cb) { 
return cb(null, opts.a + opts.b); 
}; 
}
Sample: Server-side Code 
/** 
* Custom connectors are built with javascript. 
*/ 
function MyMathConnector() { 
/** 
* Operations need to accept two parameters, 
* an ‘opts’ object with the params, and a 
* ‘cb’ with a callback function. 
*/ 
this.sum = function (opts, cb) { 
return cb(null, opts.a + opts.b); 
}; 
}
Sample: Invoke Server-side Code 
var app = new KZApplication("https://armonia.kidocloud.com", "vacations"); 
//... authenticate here... 
var data = new { “a": 2,”b": 2}; 
var getResult = app.Service[“my-custom"].Invoke("sum", data).Result;
Summary 
■ We need a lot of APIs 
■ Enterprise choose their APIs strategically 
■ mBaaS should provide these APIs
Thanks! 
Gustavo Machado 
@machadogj 
gus@kidozen.com

APIs of Enterprise mBaaS Platforms

  • 1.
    APIs of Enterprise mBaaS Platform Gustavo Machado VP of Engineering @machadogj gus@kidozen.com
  • 2.
    KidoZen Integrated platformthat provides enterprise-ready infrastructure for mobile applications: • Enables Backend, Management and Lifecycle Capabilities • Integration with On-Premise and SaaS Systems • Access to Storage, Logging, Identity Management, SMS, Push Notification, etc. • Public, Hybrid, Private Cloud Enterprise mBaaS Mobile Data Virtualization Enterprise Mobile App Center Mobile Business Analytics
  • 3.
    Agenda ■ APIsin Enterprise Mobile Solutions ■ Samples and Code ■ Summary
  • 4.
    What’s the mainelement that powers the Backend of Mobile Apps?
  • 5.
    Mobile Backend APIs ■ Infrastructure APIs ■ Mobile APIs ■ Enterprise APIs ■ Data APIs ■ Line of Business APIs
  • 6.
    Infrastructure APIs ■Security ■ Storage ■ Configuration ■ Logging ■ PubSub ■ Etc…
  • 8.
    Sample: Authentication varapp = new KidoZen.KZApplication("https://armonia.kidocloud.com", "vacations"); if (active) { //get the username & password from a login screen. //get provider from auth configuration app.Authenticate(username, password, provider).Result; } else { app.Authenticate().Result; } if (!app.Authenticated) { //... retry authentication }
  • 9.
    Mobile APIs ■Push Notifications ■ App Crash ■ Analytics
  • 11.
    Sample: Push Notifications public override void RegisteredForRemoteNotifications (UIApplication application, NSData deviceToken) { var channel = "sports"; kzApplication.Notification.Subscribe(channel, deviceToken); }
  • 12.
    Sample: Push Notifications public override void RegisteredForRemoteNotifications (UIApplication application, NSData deviceToken) { var channel = "sports"; kzApplication.Notification.Subscribe(channel, deviceToken); }
  • 13.
    Enterprise APIs ■SAP ■ Sharepoint ■ DBs ■ REST / SOAP ■ etc…
  • 16.
    Sample: Invoke ServiceOperation var app = new KZApplication("https://armonia.kidocloud.com", "vacations"); //... authenticate here... var data = new { "resource":"CalendarListItems","top":"1"}; var getResult = app.Service["tellagosharepoint"].Invoke("query", data).Result;
  • 17.
    Data APIs ■Data Sources ■ Content Sources / CMS ■ Visualization
  • 20.
    Sample: Query DataSource var app = new KZApplication("https://armonia.kidocloud.com", "vacations"); //... authenticate here ... var ds = app.DataSource["getTeamsVacations"]; var data = new { "qty":1} ; var getResult = ds.Query(data).Result;
  • 21.
    Sample: Query DataSource var app = new KZApplication("https://armonia.kidocloud.com", "vacations"); //... authenticate here ... var ds = app.DataSource["getTeamsVacations"]; var data = new { "qty":1} ; var getResult = ds.Query(data).Result;
  • 22.
    Sample: Query DataSource var app = new KZApplication("https://armonia.kidocloud.com", "vacations"); //... authenticate here ... var getResult = app.DataSource[“getTeamsVacations”].Query(new {“qty”: 1 });
  • 23.
    Line of BusinessAPIs ■ Server-side Code ■ REST / SOAP
  • 24.
    Sample: Server-side Code /** * Custom connectors are built with javascript. */ function MyMathConnector() { /** * Operations need to accept two parameters, * an ‘opts’ object with the params, and a * ‘cb’ with a callback function. */ this.sum = function (opts, cb) { return cb(null, opts.a + opts.b); }; }
  • 25.
    Sample: Server-side Code /** * Custom connectors are built with javascript. */ function MyMathConnector() { /** * Operations need to accept two parameters, * an ‘opts’ object with the params, and a * ‘cb’ with a callback function. */ this.sum = function (opts, cb) { return cb(null, opts.a + opts.b); }; }
  • 26.
    Sample: Invoke Server-sideCode var app = new KZApplication("https://armonia.kidocloud.com", "vacations"); //... authenticate here... var data = new { “a": 2,”b": 2}; var getResult = app.Service[“my-custom"].Invoke("sum", data).Result;
  • 27.
    Summary ■ Weneed a lot of APIs ■ Enterprise choose their APIs strategically ■ mBaaS should provide these APIs
  • 28.
    Thanks! Gustavo Machado @machadogj gus@kidozen.com