kill the spinning wheel with golgi - up to 20x faster loading and startup times for apps

4
Kill the Spinning Wheel 20x acceleration in loading and startup times of Apps

Upload: golgi-sdk

Post on 04-Aug-2015

123 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Kill the Spinning Wheel with Golgi - up to 20x faster loading and startup times for Apps

Kill theSpinningWheel20x acceleration in loading and startup times of Apps

Page 2: Kill the Spinning Wheel with Golgi - up to 20x faster loading and startup times for Apps

Golgi accelerates app startup and loading times by up to 20x by managing the complete process of data transport between apps and between apps and servers

• Golgi apps have no spinning wheel because Golgi pushes content to apps in the background and when users startup a Golgi app the content is fresh. Golgi apps are unlike other apps which download their new content on app startup and show the spinning wheel while downloading. This spinning wheel can take many seconds to a minute depending on wireless bandwidth and the size of content being retrieved.

• With changes in connection types and speeds and even broken connections Golgi’s layer ensures app contentisdeliveredbyacombinationofretryandpushnotification,againeliminatingtheloadingtime

• TheGolgiserverfarmisspreadacrossUSA,EuropeandAsia.Thisoffersmaximumspeedinapp-to-appandapp-to-severtransportandensurestheshortestroutebetweenappsandapps/seversisalwaystaken.Thisgeo-basedroutingalsodeliversredundancyandreliability.

• TheGolgiplatformishighlyscalable,withelasticityondemandprocessing.Golgiisbuiltuponaplatform that is already processing over 1B mobile moments every day

Additionaldifferentiatorsaboutourservice:

• GolgiimplementsprogrammerdefineddatatypesandfunctionsbyenablingDeveloperstospecifytheirownservicesusingtheGolgiDefinitionFile(Thriftbased).Golgialsoallowsdeveloperstoupdatetheservicedefinitionwithoutbreakingalreadydeployedapps.Deep-linking:deliveringyourdevelopersspecificcontentintotheirapps

• FlexiblecodeusingGolgiDefinitionFile(Thriftbased)sothatdeveloperscanaddspecificcalls(suchaslocation)totheirupdateswithoutbreakingalreadydeployedapps

• ProvidenativecodegenerationforAndroid,iOSandJavaServers

• ProvideshigherlevelofsecuritywithTSL,compared to the standard SSL standard method that is often used

Page 3: Kill the Spinning Wheel with Golgi - up to 20x faster loading and startup times for Apps

struct Message{ // options of bool, byte, i16, i32 1:required string myMsg // i64, double, string} // easily extensible with backward compatibility service golgiExample{ Message Chat(1:Message myMsg2u)}

Golgi Definition File (Thrift based)

Message myMsg2u = new Message(); // creating new Message ObjectmyMsg2u.setMyMsg(“Hello World”); // setting content of messageString myFriend = “+16501234567”; // developer defined namespaceChat.sendTo(myChatReplyHandler, myFriend, myMsg2u); // Void with Asynchronous Response

Use of Class in Sender (Android Java)

Chat.RequestReceiver myChatHandler = new Chat.RequestReceiver(){ @Override public void receiveFrom(Chat.ResultSender resultSender, Message rxMsg) { System.out.println(rxMsg); // Print out received message Message myReply = new Message(); // Create reply myReply.setMyMsg(“Hello you!”); // Populate reply resultSender.success(myReply); // Send Reply with Success }};Chat.registerReceiver(myChatHandler()); // Register Handler with Golgi

Use of Class in Receiver (Android Java)

Asadeveloper,defineyourdataserviceusingtheGolgiDefinitionFile,whichisbasedonThrift.Thisis a fast and easy way to tell Golgi what you want tocommunicate.GolgiusesthisDefinitionFiletogeneratetype-safenativeAPIcodeforAndroidandiOSenvironmentsforeasyimplementation.SimplyincorporatethesesimpleAPIfunctioncallsintoyourapp and enable Golgi to manage the transportation of your data.

Inamobile-to-mobilescenario,theAppwillmakeaconnection to the Golgi platform and then send the payload. The Golgi platform determines whether theenddeviceisAndroidoriOSandsendsthecorrespondingpushnotificationtowakeitup.TherecipientdevicethenconnectstotheGolgiplatform,receives its data and returns a response. The Golgi

ExampleGolgiCode:

How does it Work?

TheGolgiDefinitionFilespecifiesaservicecalled“Chat”forsendingandreceiving“Messages”betweenappsandserv-ers.TheSendercallsChat.sentTo()tosendthemessageandthereceiversetsupareceiveFrom()inregisterReceiver()toreceivethe“Message”.

InthisspecificexampletheSendersends“HelloWorld”to“+1650123457”,whichisreceivedbythereceiverandthereceiversends“Helloyou!”backtothesender.

platform then connects to the original device and sends it theresult.Amobiletoserverscenarioisverysimilar,butwithapersistentIPconnectionbetweentheGolgiplatformand the external server.

AlltransactionsuseTLSandend-to-endencryptionproviding the highest level of security to safeguard your data. The Golgi server farm is spread across three geographicregions–USA,EuropeandAsiaformaximumredundancy and reliability and App data transport speed andefficiency.

Golgi manages all of the orchestration of data transport and exchange,thepushnotificationsandeverythingneededtogetdatafromoneendpointtoanother,includinghandlingall of the real world problems that may happen in a mobile context–connectionfailure,lackofresponses,etc.

Page 4: Kill the Spinning Wheel with Golgi - up to 20x faster loading and startup times for Apps

GolgiFrontend

USA

Golgi Server Farm

Europe

Geo-based Routing

Golgi

Asia

GolgiFrontend

GolgiFrontend

GolgiServer

GolgiServer

GolgiServer

About Golgi

Golgi(pronouncedGol-G)wasestablishedinJanuary2014,fundedwith$5millionbyOpenmind(www.openmindnetworks.com),aleadingplayerinthemobilecommunicationspace.AtOpenmind,theteamspentover10yearsdeliveringbillionsofmobilemomentstodeviceseveryday,ofteninchallengingwirelessenvironments.Duringaseriesofappdevelopmentprojectsstartingin2010,Openmindrealizedthathavingtore-writeandfine-tunecustomdatatransfercodeforeachappwasfrustrating,timeconsuming,errorproneandlackedextensibility.

Golgi Solution Architecture

GolgiServerFarm

How are we different?

Golgi is unique. We manage data transport for your Apps. We are different because we:

• Implementprogrammerdefineddatatypesandfunctions• Offerdeep-linking;deliveringyourcontentintospecificareas

of your apps • EasilyExtensibleusingGolgiDefinitionFile(Thriftbased)• ProvidenativecodegenerationforAndroid,iOS

andJavaServers• Includestoreandforwardfunctionalityinsteadofpublish/

subscribe as utilized by other toolkits available today

www.golgi.io©CopyrightOpenmindNetworks2014