Changing The Pace For Mobile Development 

Back To Basics in a Sea of Devices

Author: Pronab Pal, Technical Architect, TCS

About me

  • Longtime java developer[2001+] in Sydney  /Canberra major Banks,IBM,Medicare, IPA etc.pre-Java experience includes Nokia Game platform development.
  • promoter of use-case based development (Australian Innovation Patent)
  • ESB,Webservice specialisation for last 7 years
  • developing platform for mobile back end data interactivity  and context management :
  • Github: [Quadroo Server]
  • https://github.com/TheCuesFlowsToStoryProject/CuesFlow

Devices & Mobile

  • Devices like apple watch, beacons are coming standard part of interaction
  • Device triggers asychronous process in mobile that may call for server coordination e.g sending location specific instructions to passenger going through departure lounge.
  • asynchronous sockets interaction allows this to happen smoothly without tying up UI . 
  • Server also should be able to feed data in small context dependent chunks 

    Mobile Dev State today

 !Continuous improvement in  the UI layer matching GPU units [e.g maturity with material design, lollipop,recognition of physics in human space]

x Service invocation can spill in easily to the UI thread.

[lack of data model]

x No general use of  tcp sockets -still unnecessary  http dependency [http was a web legacy]

x Age old problem of spaggeti-ness.

Carry over web issues:

x sessions continuity, lack of immediate data source to reconnect after a drop out.

x bad sync issues with native and web components with work arounds.

x missing strategy  for  web componenets & native componenets coexistance

X vagueness with microservice -what it can be ?

 

 

Demo :NodeJava  Tunnel

Fast & Simple

Interaction:

Solution Components

  • UCL : uniform context locator for complexity management  & understandaibility
  • Node.js : interactivity through evented async process driver .
  • Context creation and Content access are two async processes, each having user interaction
  • Sockets : event driven 2-Way interaction .
  • Java : strong development model in small chunks [verbs]

UCL & Java Verbs

  • Important to keep the domain context right for interaction
  • JS [Dwis] & Java [quadroo] library for  Domain driver: filght23.delhi.seatE9.breakfast locates the breakfast menu for a partiular passenger ,[flight attendant donot care of name of passenger]
  •  UC.getflightnumber.pnr.app3/1.classAui.class6Sr.Res7

[above is a runtime flow, each of those words come from

a single word pool with ids ]

  • Quadroo server built from ground up to interpret UCLS and act on java verbs  [small chunk of code]
  • GitHub : https://github.com/spicecoder/NodeJavaTunnel

Quadroo Verb Benifit 

Quadroo allows a new java class written with 

specified pattern as below to be deployable right away by simple copying the class in the war file, no extra configuration needed.

Quadroo Verb  pattern:

 

public class ASWord_S extends QuadRR {

public ASWord_S(QuadRR rr) {
		 super(rr);
	 	              ...detail logic here  }

Text

Text

Quadroo Support For UCL 

UCL are based on words in dictionary

Quadroo has built in support for UCL intepretation and

Mongo data base integration

Scripting with  Node factor

Node.js  has brought home 

a new message :

The feedback loop is more important for humans with devices

Service Consumer:"I want a Double Yummy Burger"

Service Desk : Yes here is your number now go &relax!

 

Who is using ?

Linkedin

Paypal & 1000..more:

 https://github.com/joyent/node/wiki/projects,-applications,-and-companies-using-node

A jingle, the node song :

www.youtube.com/watch?v=IkmHStAWXis

 

 

 

 

Back To Basics

RESPONSIVE UI Sleek UI ;Disposable devices

On time Aceess To Single Source of Truth [dynamic context ]

On time notification of truth from Source [sockets]

Content Presented for Action in Context [through async Microservice]

 

 

HTTP/SOAP

*Redundant Payload [xml and http headers etc-legacy]

*expensive[thread bound] network connect

* dedicated mobile resouce

for the time of transaction

*synchronous request 

response ties up resources  

Socket/JSON

* min management  payload

* duplex ,event driven connection

* cheap node.js connections

asynchronous i/o

* mobile resources free during transaction execution

* asynchronous call

Meeting the Complexity

Node.js / javascript is 

BAD for complexity management [both algorithmic and understanability ]E.G:

simple as XML parsing to a multiple depth ..or.. 

'find the next leg of the flight that starts from Delhi or give window seat next to facilities'

 

Java good 

but need more

Java has the wisdom of programming complex algorithm that needs building on abstraction.

Java still needs help in context management in a dynamic world .

UCL is the uniform context language that builds on domain driven words-for managing contexts extends Json

Benefits

  • In Apps Browser/WebView/Native allways in Sync
  • Client profile specific intelligence conversation
  • Response faster because async events+context io
  • Fast simple deployment of java verbs 
  • json + UCL  structure on mobile side
  • better connection usage with GDS
  • Cotravelling: imagine your favourite  magician,author,game player,chef interacting with you on device travelling on the same boat,plane,car etc.
  • Context for every customer respected 
  • Context is persisted for every customer in mongo

Are We  Ready?

 

Numerous Device and beacons will be trying to talk to the App in context, pax's suitcase talks to pax "donot leave me",

beacon is guiding passenger where is the departure gate

Handle bluetooth /near magnetic fields 

We need to manage context of these interaction through the App

How can we embed the solutions  in today infrastructure  ?

 

 

Q&A 

Thank You

Changing The Pace For Mobile Development

By Pronab Pal

Changing The Pace For Mobile Development

Co Travelling In A Small World

  • 737