Upgrade to Pro — share decks privately, control downloads, hide ads and more …

An Introduction to Unclouded.io

An Introduction to Unclouded.io

Unclouded is a software platform for employing device-to-device communication. Get the SDK at http://unclouded.io to get started.

Nick De Cooman

November 20, 2013
Tweet

More Decks by Nick De Cooman

Other Decks in Programming

Transcript

  1. !4

  2. BENEFITS Low latency, high performance Interact with each other without

    being connected to the cloud Works anywhere, anytime No account registration !5
  3. !7 No central infrastructure to administer connections and interactions Connections

    are unreliable and volatile Fast-changing network topology WHY?
  4. !12

  5. !12

  6. !24 unclouded.broadcast(helloTypeTag2, 16112013); PUBLICATION SUBSCRIPTION unclouded.when(helloTypeTag2, new ServiceListener<Integer>(){ public void

    isDiscovered(Integer value){ … } public void isDisconnected(Integer value){ … } public void isReconnected(Integer value){ … } };
  7. !28 class Counter implements UObject { ! private int n;

    ! public Counter(){ n = 0; } ! public int increase(){ n++; return n; } ! public int getValue(){ return n; } ! };
  8. !28 class Counter implements UObject { ! private int n;

    ! public Counter(){ n = 0; } ! public int increase(){ n++; return n; } ! public int getValue(){ return n; } ! };
  9. !29 Counter counter = new Counter(); unclouded.broadcast(helloTypeTag3, counter); PUBLICATION SUBSCRIPTION

    unclouded.whenever(helloTypeTag3, new ServiceListener<RemoteReference>(){ public void isDiscovered(RemoteReference remoteRef){ … } };
  10. !29 Counter counter = new Counter(); unclouded.broadcast(helloTypeTag3, counter); PUBLICATION SUBSCRIPTION

    unclouded.whenever(helloTypeTag3, new ServiceListener<RemoteReference>(){ public void isDiscovered(RemoteReference remoteRef){ … } };
  11. !30 unclouded.whenever(helloTypeTag3, new ServiceListener<RemoteReference>(){ public void isDiscovered(RemoteReference remoteRef){ Promise promise

    = remoteRef.asyncInvoke("increase"); promise.when(new PromiseListener<Integer>(){ ! public void isResolved(Integer value){ // counter = value } ! public void isRuined(){ // Oops, something wrong happened! } ! }); } };
  12. !32 > > Eve has joined the conversation Bob has

    joined the conversation Me: Hallo Bob: Hallo