Monday, June 20, 2016

Samsung Chord SDK An Introduction

The Samsung Smart App challenge has motivated me to explore a bit more about the Samsung Chord SDK.

If you want to know more about the SamsungSmart App Challenge, please visit here  or to know more about the Android SDK – Here . There is a growing community for the android developer as well. 

Here is that I understand are the highlights of this SDK:
1.     It is a framework developed by Samsung for networking between devices – making it easy for people without network programming skills.
2.     It is not physical network connection that is created. It is application layer messaging protocol that uses the underlying TCP/IP network. i.e it is different from wi-fi or Bluetooth which work on a physical network protocol.
3.     Samsung also provides an add-in emulator to the standard eclipse development environment to test the networking of your apps.
4.     The Chord SDK allows creating a network of devices allowing for an n:n communication. It supports
a.     Synchronized content sharing
b.     Broadcast of messages to near by devices
c.      Data transfer between devices
d.     Multi-player games
5.     The Security features need improvement as any mobile with the same app on it can join the group or leave the group
6.      Chord supports only Android 4.0 and above


A bit about the architecture of the Chord SDK:

(This diagram is from Samsung SDK documentation.)


The application layer is where our imagination can be used to build innovative apps.

There are a few other basic aspects we need to understand in order to be able to use the Chord SDK.
1.     Channel Manager – This is the part of the software that manages all the mobiles in a network. The various devices are called nodes
2.     Messaging protocol – This is the part of the SDk that helps in exchanging of messages between the nodes
3.     File Transfer Protocol – This is the protocol used for file transfers between the nodes
4.     Discovery protocol -  This is the component that helps in discovering the various devices within range to for the logical group of nodes
5.     ZeroMQ – This is the underlying layer that helps with all the messaging and file transfers

A little bit more about Channels before we get into coding J

Chord has the concept of 2 types of channels for communication:
1.     Public Channel
2.     Private Channel

The Public channel is one one, which any device running the Chord SDk can join.
A private channel is one, which is created by nodes having the same chord SDK based application. 

So, if my mobile has Chord SDK app, I am part of a public channel. If I have an app A and an app B, I can be part of Channel A and Channel B respectively.

In the next article, I will talk about setting up the environment for developing using Chord SDK and later we will develop a simple app using Chord SDK.