SlideShare a Scribd company logo
Paloma Maisterra, Alex Gonzalez
March 2014
Introduction to AllJoyn
Overview
• AllJoyn is an open sourced framework to enable proximity based peer to
peer mobile networking.
• It provides an abstraction layer with a clean API to the underlying networks
stacks (wireless, bluetooth) which is relatively easy to extend with new
network implementations (takers for zigbee?).
• AllJoyn provides service advertisement and discovery abstraction, as well
as various application to application security mechanisms and a Remote
Method Invocation abstraction.
Use Cases
OnBoarding
The problem:
• Small embedded devices need to connect to a local wireless network but
lack a proper user interface.
• Adding a user interface just to, for example, input wireless authentication,
is wasteful.
The solution:
• The embedded devices run a small AllJoyn thin client and use an AllJoyn
router to “onboard” the local wireless network.
Audio/data distribution
The problem:
• Data is either centrally stored (media server) or distributed (several media
devices) but need to be accessed by all devices.
The solution:
• Embedded devices running the AllJoyn thin client can access a central
media storage server running an AllJoyn router and can access each other’
s data.
Control Panel/Configuration
The problem:
• Small embedded devices that need to configured and managed but lack a
user interface or a web server.
The solution:
• The embedded devices run an AllJoyn thin client that can be managed
using a remote control panel on another UI capable device running the
AllJoyn router.
Notification
The problem:
• Devices without a display need to inform the user of
events.
The solution:
• They ran an AllJoyn client and use another AllJoyn
device with a display for event notification.
(the eternal) Smart home example
• What about telling the coffee maker you want a coffee
when you arrive home?
• Controlling your home security from your Smartphone?
• The fridge reminding you what you must buy?
• Adjusting the temperature,or the lighting?
• Sharing media with other devices?
TextMessage:Carol
Smart energy example
AllJoyn Thin CLient
Router/Gateway
History
AllJoyn
• A software framework that allows devices and systems
to autonomously discover and interact with nearby
products regardless of brand, transport layer, platform or
operating system.
• Open source licensed, Apache 2.0 (source)
• Originally developed by and being contributed to the
Alliance by Qualcomm Innovation Center, Inc.
• Initial set of capabilities include:
o Service discovery (learning about the features and
functions of other nearby devices)
o Onboarding to add a device to the user’s network
o User notifications
o A common control panel for creating rich user
experiences
o Audio streaming for simultaneous playback on
multiple speakers.
• First Allseen alliance framework release is 14.02 (SDKs)
• Releases every 4 months, (April/June/October).
• The AllJoyn framework is written in C++ and has bindings
for the following languages:
o Java (inc. Android)
o Objective C
o Unity
o Javascript
o C
• The AllJoyn thin client (in C) for embedded devices
includes Linux, Windows 7, Arduino, ThreadX and more.
Allseen Alliance
• Recently formed, around 4 montsh old.
• Consortium of companies that collaborate on the AllJoyn framework development, including:
o Qualcomm
o Cisco
o Panasonic
o Sharp
o LG
o HTC
• Structured in a set of working groups, currently core, base services and development tools.
Products
• LG smart TV
• Muzzleys is integrating Alljoyn in their cloud
• ITTIA DB SQL supports Alljoyn, which allows to monitor, control, and
distribute stored data.
• Musiac’s multi room music system
• Android featured apps
Architecture
High level architecture
• An AllJoyn network is composed of routing nodes and leaf nodes. Leaf
nodes can only connect to routing nodes, and routing nodes connect to
other routing nodes to form a mesh of stars.
• Nodes form a distributed software bus that enables to publish, discover
and use APIs. Applications that expose APIs are services, if they consume
them, clients, and if they do both peers.
High level architecture
AllJoyn Bus
• This is the most basic abstraction providing a fast lightweight way to move marshalled
messages around a distributed system.
• The bus formation is ad hoc, based on application or service discovery. The wire protocol is an
extended backwards compatible d-bus protocol which can run over any medium, WiFi, WiFi
direct, ethernet, PLC, bluetooth etc.
• When a session is created the bus is extended. Peers are notified on join and leave events and
can interact via their APIs or with multicast events.
Bus extension
Advertisement and Discovery
• When a service is started it reserves a well known name in the bus and
advertises it existence. This advertisement will be different on the different
underlying technologies, UDP multicast over WiFi, pre-association service
advertisement on WiFi direct or bluetooth service discovery message.
• Client applications may declare their interest in receiving advertisements
by initiating a discovery operation.
Alljoyn Interfaces
● The published interfaces are discovered and introspected remotely using the About service
framework and they are formed by three types of members:
○ Methods: which can be called and return a result.
○ Signals: broadcast, multicast or point to point asynchronous event notifications. Also sessionless.
○ Properties: Accessed by getter and setter methods.
● They can contain basic and complex data types defined by the dbus specification:
● Interfaces can be defined in XML, or inline code, C++, Java, C...
AllJoyn Software components
• AllJoyn has two main components, AllJoyn applications (leaf nodes) and the router (routing
node). Both are implemented with the AllJoyn client library which comes in two flavours,
standard client, for applications running on high level OSes, and thin client, for deeply
embedded devices (device firmware).
• The standard client is implemented in C++ and has bindings for various other languages, while
the thin client is a C implementation and it depends on a routing node running off the device
itself. The client library is represented by the AllJoyn SDK API.
• Routers are built using the standard client library so they must run on a high level OS. It can
either run standalone (only supported under Linux) or integrated on an AllJoyn application.
Routers perform bus management and message routing tasks.
AllJoyn Bus implementation
The Daemon
• The part of the bus running on a device is called a bus segment. Each
segment needs an AllJoyn daemon, which are background processes
which act as representatives of the AllJoyn bus.
• In order for the clients and servers to communicate with the bus daemon,
they contain a representative of the bus called bus attachment.
The Daemon
AllJoyn Bus Implementation
Bus attachments, interfaces and objects
• The bus attachment is a local language specific object that represents the AllJoyn bus to a
client, server or peer. It lives in each process that needs to communicate with the bus.
• A bus interface is a group of bus methods, properties and signals along with their associated
type signatures.
• This org.alljoyn.Bus interface is implemented in bus objects. As there might be multiple bus
objects on a bus attachment, an object path is used to differentiate them, for example
/org/alljoyn/bus/1.
• Remote bus objects are accessed through proxy bus objects which are local representatives of
the remote bus object.
Alljoyn Bus Structure
AllJoyn Sessions
• Sessions are created between client and servers before they can interact.
• A server half association has the form [options,bus name,session port]
• And the client’s [options, unique name, session ID]
• A session will join these two half associations in [options, bus name,
unique name, session ID]
• The final options are negotiated in the session negotiation, as well as
security checks.
Sessions
So the service advertises:
[reliable IP , org.alljoyn.samples.chat.1 , 42]
Asumming there is a bus attachment :2.1 on a remote daemon wanting
to connect:
[reliable IP , org.alljoyn.samples.chat.1 , :2,1 , 1025]
The session ID 1025 is assigned by the system.
Session structure
Code Flow Example
The framework usage is the same independently of the language binding used:
1. Create a BusAttachment.
2. Register listeners.
3. Create a BusInterterface.
4. Optionally perform 1 or more of the following:
a. Create and register a BusObject that implements 1 or more BusInterfaces.
b. Register Signal handlers.
c. Advertise and/or Discover.
d. Create a Session.
e. Join a Session.
5. Remove listeners.
6. Release the BusAttachment.
AllJoyn Base Services
● Build on top of the allJoyn framework for accelerated application development.
● They all use the About feature for advertisement and discovery.
● Each service framework will need to setup AllJoyn and the About feature.
● They are:
● Notification Service Framework: Sends and receives text messages, with the possibility of
referencing media, with priority and filtering.
● Onboarding Service Framework: Standard way to get devices into a Wifi network. The
onboarder device discovers a device that needs to be onboarded (onboardee), it connects to
it, provides configuration information, and the onboardee verifies the connection.
● Audio Service Framework
● Control Panel Service Framework
SDKs
Developing from SDKs
Supported operating systems include:
• Android (Java,needs SDK and NDK installed)
• iOS and OSX (Objective C)
• Windows and Linux (C++)
• Windows and Linux thin client (C)
Resources
• Video webminars
• Documentation
o Environment setup guides:
▪ Android
▪ Thin Client (Arduino, Linux,
Windows, embedded OSes)
▪ Objective C (iOS and OSX)
▪ Java (Linux, Windows)
▪ Unity
▪ C++ (Windows , Linux)
o Development guides:
▪ Java
▪ Troubleshooting guide
▪ Thin Client
• Getting started
• Building an application
Service frameworks
• About feature
o Getting started (Java)
o Usage guide (Java, C, Objective C, C++)
o Best practises
o Interface specification
• Audio service
o Getting Started (Java, C++)
o Usage guide (C++)
o Best practises
o Interface specification
• Configuration service
o Getting Started (Java)
o Usage guide (Java, C, Objective C, C++)
o Best practises
o Interface specification
• Control panel
o Getting Started (Java)
o Usage guide (Java, C, Objective C, C++)
o Best practises
o Interface specification
• Notification
o Getting Started (Java)
o Usage guide (Java, C, Objective C, C++)
o Best practises
o Interface specification
• Onboarding
o Getting Started (Java)
o Usage guide (Java)
o Best practises
o Interface specification
Framework APIs
Framework APIs:
• Java (Android, Linux, Windows 7)
• C++ (Android, Linux, Windows 7)
• C (Linux, Arduino, Thin Client, )
• Objective C (iOS and OSX)
• Javascript (Linux, WIndows 7)
• C# (Unity)
Q & A
Thanks for listening
This presentation is shared with an Attribution-NonCommercial-ShareAlike 3.0 Unported license.

More Related Content

What's hot

INTRODUCTION TO WIRELESS COMMUNICATION
INTRODUCTION TO WIRELESS COMMUNICATIONINTRODUCTION TO WIRELESS COMMUNICATION
INTRODUCTION TO WIRELESS COMMUNICATION
SANDIP BURNWAL
 
Pn sequence
Pn sequencePn sequence
Pn sequence
Darshil Shah
 
zigbee
 zigbee  zigbee
zigbee
anand thati
 
Gsm.....ppt
Gsm.....pptGsm.....ppt
Gsm.....ppt
balu008
 
Cellular communication
Cellular communicationCellular communication
Cellular communication
Prashant Gajendra
 
Cmos testing
Cmos testingCmos testing
Cmos testing
Rajani Kumar Reddy
 
AVR ATmega32
AVR ATmega32AVR ATmega32
AVR ATmega32
Prashant Tiwari
 
GSM Module
GSM ModuleGSM Module
GSM Module
Mohsen Sarakbi
 
PAPR reduction techniques in OFDM.pptx
PAPR reduction techniques in OFDM.pptxPAPR reduction techniques in OFDM.pptx
PAPR reduction techniques in OFDM.pptx
ssuserca5764
 
Mimo in Wireless Communication
Mimo in Wireless CommunicationMimo in Wireless Communication
Mimo in Wireless Communication
kailash karki
 
Cognitive radio networks
Cognitive radio networksCognitive radio networks
Cognitive radio networks
Ameer Sameer
 
Wireless Channel Modeling - MATLAB Simulation Approach
Wireless Channel Modeling - MATLAB Simulation ApproachWireless Channel Modeling - MATLAB Simulation Approach
Wireless Channel Modeling - MATLAB Simulation Approach
Jayamohan Govindaraj
 
Unit-I Basic Embedded System Notes
Unit-I Basic Embedded System NotesUnit-I Basic Embedded System Notes
Unit-I Basic Embedded System Notes
Dr. Pankaj Zope
 
Mobile Communication
Mobile CommunicationMobile Communication
Mobile Communicationstooty s
 
Propagation Models
Propagation ModelsPropagation Models
Propagation Models
Ayushi Gagneja
 
Digital signal processing
Digital signal processingDigital signal processing
Digital signal processing
sivakumars90
 
OMNITRACKER Core Components
OMNITRACKER Core ComponentsOMNITRACKER Core Components
OMNITRACKER Core ComponentsMichael Dobner
 
Communication protocols - Embedded Systems
Communication protocols - Embedded SystemsCommunication protocols - Embedded Systems
Communication protocols - Embedded Systems
Emertxe Information Technologies Pvt Ltd
 
Generation and detection of psk and fsk
Generation and detection of psk and fskGeneration and detection of psk and fsk
Generation and detection of psk and fsk
deepakreddy kanumuru
 
Wireless body area network
Wireless body area networkWireless body area network
Wireless body area network
Pratik Gondaliya
 

What's hot (20)

INTRODUCTION TO WIRELESS COMMUNICATION
INTRODUCTION TO WIRELESS COMMUNICATIONINTRODUCTION TO WIRELESS COMMUNICATION
INTRODUCTION TO WIRELESS COMMUNICATION
 
Pn sequence
Pn sequencePn sequence
Pn sequence
 
zigbee
 zigbee  zigbee
zigbee
 
Gsm.....ppt
Gsm.....pptGsm.....ppt
Gsm.....ppt
 
Cellular communication
Cellular communicationCellular communication
Cellular communication
 
Cmos testing
Cmos testingCmos testing
Cmos testing
 
AVR ATmega32
AVR ATmega32AVR ATmega32
AVR ATmega32
 
GSM Module
GSM ModuleGSM Module
GSM Module
 
PAPR reduction techniques in OFDM.pptx
PAPR reduction techniques in OFDM.pptxPAPR reduction techniques in OFDM.pptx
PAPR reduction techniques in OFDM.pptx
 
Mimo in Wireless Communication
Mimo in Wireless CommunicationMimo in Wireless Communication
Mimo in Wireless Communication
 
Cognitive radio networks
Cognitive radio networksCognitive radio networks
Cognitive radio networks
 
Wireless Channel Modeling - MATLAB Simulation Approach
Wireless Channel Modeling - MATLAB Simulation ApproachWireless Channel Modeling - MATLAB Simulation Approach
Wireless Channel Modeling - MATLAB Simulation Approach
 
Unit-I Basic Embedded System Notes
Unit-I Basic Embedded System NotesUnit-I Basic Embedded System Notes
Unit-I Basic Embedded System Notes
 
Mobile Communication
Mobile CommunicationMobile Communication
Mobile Communication
 
Propagation Models
Propagation ModelsPropagation Models
Propagation Models
 
Digital signal processing
Digital signal processingDigital signal processing
Digital signal processing
 
OMNITRACKER Core Components
OMNITRACKER Core ComponentsOMNITRACKER Core Components
OMNITRACKER Core Components
 
Communication protocols - Embedded Systems
Communication protocols - Embedded SystemsCommunication protocols - Embedded Systems
Communication protocols - Embedded Systems
 
Generation and detection of psk and fsk
Generation and detection of psk and fskGeneration and detection of psk and fsk
Generation and detection of psk and fsk
 
Wireless body area network
Wireless body area networkWireless body area network
Wireless body area network
 

Viewers also liked

Introduction to the AllJoyn Gateway Agent
Introduction to the AllJoyn Gateway Agent Introduction to the AllJoyn Gateway Agent
Introduction to the AllJoyn Gateway Agent
AllSeen Alliance
 
Security & Identity in AllJoyn 14.06
Security & Identity in AllJoyn 14.06Security & Identity in AllJoyn 14.06
Security & Identity in AllJoyn 14.06
kellogh
 
An Open Source Project for the IoT
An Open Source Project for the IoTAn Open Source Project for the IoT
An Open Source Project for the IoT
AllSeen Alliance
 
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxIoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
Samsung Open Source Group
 
IoTivity: From Devices to the Cloud
IoTivity: From Devices to the CloudIoTivity: From Devices to the Cloud
IoTivity: From Devices to the Cloud
Samsung Open Source Group
 
Jornada Formativa Qualcomm y Movilforum: Alljoyn
Jornada Formativa Qualcomm y Movilforum: AlljoynJornada Formativa Qualcomm y Movilforum: Alljoyn
Jornada Formativa Qualcomm y Movilforum: Alljoynvideos
 
Welcome
WelcomeWelcome
Welcome
AGILE IoT
 
Open Source and The Internet of Things
Open Source and The Internet of ThingsOpen Source and The Internet of Things
Open Source and The Internet of Things
AllSeen Alliance
 
The tools & technologies behind Resin.io
The tools & technologies behind Resin.ioThe tools & technologies behind Resin.io
The tools & technologies behind Resin.io
GreeceJS
 
AllSeen Alliance Overview
AllSeen Alliance OverviewAllSeen Alliance Overview
AllSeen Alliance Overview
AALForum
 
Programming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.ioProgramming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.io
Günter Obiltschnig
 
IoTivity on Tizen: How to
IoTivity on Tizen: How toIoTivity on Tizen: How to
IoTivity on Tizen: How to
Samsung Open Source Group
 
Tizen Connected with IoTivity
Tizen Connected with IoTivityTizen Connected with IoTivity
Tizen Connected with IoTivity
Samsung Open Source Group
 
Quem não poupa não tem...
Quem não poupa não tem...Quem não poupa não tem...
Quem não poupa não tem...
hcbmelo
 
Building Universal Windows Apps with AllJoyn
Building Universal Windows Apps with AllJoynBuilding Universal Windows Apps with AllJoyn
Building Universal Windows Apps with AllJoyn
AllSeen Alliance
 
Connected Lighting: The Next Frontier in the Internet of Everything
Connected Lighting: The Next Frontier in the Internet of EverythingConnected Lighting: The Next Frontier in the Internet of Everything
Connected Lighting: The Next Frontier in the Internet of Everything
Qualcomm Developer Network
 
Programming the Internet of Things: Why Devices Need APIs
Programming the Internet of Things: Why Devices Need APIsProgramming the Internet of Things: Why Devices Need APIs
Programming the Internet of Things: Why Devices Need APIs
AllSeen Alliance
 
OCF/IoTivity for Healthcare/Fitness/Wearable
OCF/IoTivity for Healthcare/Fitness/WearableOCF/IoTivity for Healthcare/Fitness/Wearable
OCF/IoTivity for Healthcare/Fitness/Wearable
Jonathan Jeon
 
Programming IoT Gateways in JavaScript with macchina.io
Programming IoT Gateways in JavaScript with macchina.ioProgramming IoT Gateways in JavaScript with macchina.io
Programming IoT Gateways in JavaScript with macchina.io
Günter Obiltschnig
 
IoTivity 오픈소스 기술
IoTivity 오픈소스 기술IoTivity 오픈소스 기술
IoTivity 오픈소스 기술
Wonsuk Lee
 

Viewers also liked (20)

Introduction to the AllJoyn Gateway Agent
Introduction to the AllJoyn Gateway Agent Introduction to the AllJoyn Gateway Agent
Introduction to the AllJoyn Gateway Agent
 
Security & Identity in AllJoyn 14.06
Security & Identity in AllJoyn 14.06Security & Identity in AllJoyn 14.06
Security & Identity in AllJoyn 14.06
 
An Open Source Project for the IoT
An Open Source Project for the IoTAn Open Source Project for the IoT
An Open Source Project for the IoT
 
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/LinuxIoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
IoTivity Tutorial: Prototyping IoT Devices on GNU/Linux
 
IoTivity: From Devices to the Cloud
IoTivity: From Devices to the CloudIoTivity: From Devices to the Cloud
IoTivity: From Devices to the Cloud
 
Jornada Formativa Qualcomm y Movilforum: Alljoyn
Jornada Formativa Qualcomm y Movilforum: AlljoynJornada Formativa Qualcomm y Movilforum: Alljoyn
Jornada Formativa Qualcomm y Movilforum: Alljoyn
 
Welcome
WelcomeWelcome
Welcome
 
Open Source and The Internet of Things
Open Source and The Internet of ThingsOpen Source and The Internet of Things
Open Source and The Internet of Things
 
The tools & technologies behind Resin.io
The tools & technologies behind Resin.ioThe tools & technologies behind Resin.io
The tools & technologies behind Resin.io
 
AllSeen Alliance Overview
AllSeen Alliance OverviewAllSeen Alliance Overview
AllSeen Alliance Overview
 
Programming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.ioProgramming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.io
 
IoTivity on Tizen: How to
IoTivity on Tizen: How toIoTivity on Tizen: How to
IoTivity on Tizen: How to
 
Tizen Connected with IoTivity
Tizen Connected with IoTivityTizen Connected with IoTivity
Tizen Connected with IoTivity
 
Quem não poupa não tem...
Quem não poupa não tem...Quem não poupa não tem...
Quem não poupa não tem...
 
Building Universal Windows Apps with AllJoyn
Building Universal Windows Apps with AllJoynBuilding Universal Windows Apps with AllJoyn
Building Universal Windows Apps with AllJoyn
 
Connected Lighting: The Next Frontier in the Internet of Everything
Connected Lighting: The Next Frontier in the Internet of EverythingConnected Lighting: The Next Frontier in the Internet of Everything
Connected Lighting: The Next Frontier in the Internet of Everything
 
Programming the Internet of Things: Why Devices Need APIs
Programming the Internet of Things: Why Devices Need APIsProgramming the Internet of Things: Why Devices Need APIs
Programming the Internet of Things: Why Devices Need APIs
 
OCF/IoTivity for Healthcare/Fitness/Wearable
OCF/IoTivity for Healthcare/Fitness/WearableOCF/IoTivity for Healthcare/Fitness/Wearable
OCF/IoTivity for Healthcare/Fitness/Wearable
 
Programming IoT Gateways in JavaScript with macchina.io
Programming IoT Gateways in JavaScript with macchina.ioProgramming IoT Gateways in JavaScript with macchina.io
Programming IoT Gateways in JavaScript with macchina.io
 
IoTivity 오픈소스 기술
IoTivity 오픈소스 기술IoTivity 오픈소스 기술
IoTivity 오픈소스 기술
 

Similar to Introduction to AllJoyn

Internet of Everything Development Using AllJoyn
Internet of Everything Development Using AllJoynInternet of Everything Development Using AllJoyn
Internet of Everything Development Using AllJoyn
AllSeen Alliance
 
Design of accessibility framework for mobile devices.
Design of accessibility framework for mobile devices.Design of accessibility framework for mobile devices.
Design of accessibility framework for mobile devices.
AEGIS-ACCESSIBLE Projects
 
Multimedia authoring and user interface
Multimedia authoring and user interface Multimedia authoring and user interface
Multimedia authoring and user interface
nirmalbj
 
Introduction to Nokia Asha software platform 1.0
Introduction to Nokia Asha software platform 1.0Introduction to Nokia Asha software platform 1.0
Introduction to Nokia Asha software platform 1.0
Microsoft Mobile Developer
 
An Instantaneous Introduction to the Alliance Access Grid
An Instantaneous Introduction to the Alliance Access GridAn Instantaneous Introduction to the Alliance Access Grid
An Instantaneous Introduction to the Alliance Access GridVideoguy
 
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginnersAndroid fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginnersBoom Shukla
 
Installing and Configuring the Access Grid Toolkit (AGTk) 2
Installing and Configuring the Access Grid Toolkit (AGTk) 2Installing and Configuring the Access Grid Toolkit (AGTk) 2
Installing and Configuring the Access Grid Toolkit (AGTk) 2Videoguy
 
(Download)
(Download)(Download)
(Download)Videoguy
 
Web services have made the development of mobile Web applications much easier...
Web services have made the development of mobile Web applications much easier...Web services have made the development of mobile Web applications much easier...
Web services have made the development of mobile Web applications much easier...
Respa Peter
 
NewAer Proximity SDK Messaging Overview
NewAer Proximity SDK Messaging OverviewNewAer Proximity SDK Messaging Overview
NewAer Proximity SDK Messaging OverviewDave Mathews
 
Cloud computing v2final
Cloud computing v2finalCloud computing v2final
Cloud computing v2final
alvaro alcocer sotil
 
Cloud Automation and IIOT by Engr.Bilal Mehmood
Cloud Automation and IIOT by Engr.Bilal MehmoodCloud Automation and IIOT by Engr.Bilal Mehmood
Cloud Automation and IIOT by Engr.Bilal Mehmood
EngrBilalMehmood1
 
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
UX Antwerp Meetup
 
Customize and control connected devices
Customize and control connected devicesCustomize and control connected devices
Customize and control connected devices
Codemotion
 
Cutomize and Control Connected Devices
Cutomize and Control Connected DevicesCutomize and Control Connected Devices
Cutomize and Control Connected Devices
Mirco Vanini
 
Internship msc cs
Internship msc csInternship msc cs
Internship msc cs
Pooja Bhojwani
 
WSO2 Enterprise Integrator 101
WSO2 Enterprise Integrator 101WSO2 Enterprise Integrator 101
WSO2 Enterprise Integrator 101
WSO2
 
Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012
Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012
Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012
Ryo Jin
 
Ohio LinuxFest: Crash Course in Open Source Cloud Computing
Ohio LinuxFest:  Crash Course in Open Source Cloud ComputingOhio LinuxFest:  Crash Course in Open Source Cloud Computing
Ohio LinuxFest: Crash Course in Open Source Cloud Computing
Mark Hinkle
 

Similar to Introduction to AllJoyn (20)

Internet of Everything Development Using AllJoyn
Internet of Everything Development Using AllJoynInternet of Everything Development Using AllJoyn
Internet of Everything Development Using AllJoyn
 
Design of accessibility framework for mobile devices.
Design of accessibility framework for mobile devices.Design of accessibility framework for mobile devices.
Design of accessibility framework for mobile devices.
 
Multimedia authoring and user interface
Multimedia authoring and user interface Multimedia authoring and user interface
Multimedia authoring and user interface
 
Introduction to Nokia Asha software platform 1.0
Introduction to Nokia Asha software platform 1.0Introduction to Nokia Asha software platform 1.0
Introduction to Nokia Asha software platform 1.0
 
An Instantaneous Introduction to the Alliance Access Grid
An Instantaneous Introduction to the Alliance Access GridAn Instantaneous Introduction to the Alliance Access Grid
An Instantaneous Introduction to the Alliance Access Grid
 
Android fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginnersAndroid fundamentals and tutorial for beginners
Android fundamentals and tutorial for beginners
 
Installing and Configuring the Access Grid Toolkit (AGTk) 2
Installing and Configuring the Access Grid Toolkit (AGTk) 2Installing and Configuring the Access Grid Toolkit (AGTk) 2
Installing and Configuring the Access Grid Toolkit (AGTk) 2
 
Android OS
Android OSAndroid OS
Android OS
 
(Download)
(Download)(Download)
(Download)
 
Web services have made the development of mobile Web applications much easier...
Web services have made the development of mobile Web applications much easier...Web services have made the development of mobile Web applications much easier...
Web services have made the development of mobile Web applications much easier...
 
NewAer Proximity SDK Messaging Overview
NewAer Proximity SDK Messaging OverviewNewAer Proximity SDK Messaging Overview
NewAer Proximity SDK Messaging Overview
 
Cloud computing v2final
Cloud computing v2finalCloud computing v2final
Cloud computing v2final
 
Cloud Automation and IIOT by Engr.Bilal Mehmood
Cloud Automation and IIOT by Engr.Bilal MehmoodCloud Automation and IIOT by Engr.Bilal Mehmood
Cloud Automation and IIOT by Engr.Bilal Mehmood
 
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
Kristiaan De Roeck at UX Antwerp Meetup - 30 January 2018
 
Customize and control connected devices
Customize and control connected devicesCustomize and control connected devices
Customize and control connected devices
 
Cutomize and Control Connected Devices
Cutomize and Control Connected DevicesCutomize and Control Connected Devices
Cutomize and Control Connected Devices
 
Internship msc cs
Internship msc csInternship msc cs
Internship msc cs
 
WSO2 Enterprise Integrator 101
WSO2 Enterprise Integrator 101WSO2 Enterprise Integrator 101
WSO2 Enterprise Integrator 101
 
Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012
Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012
Tizen IVI - Rusty Lynch (Intel) - Korea Linux Forum 2012
 
Ohio LinuxFest: Crash Course in Open Source Cloud Computing
Ohio LinuxFest:  Crash Course in Open Source Cloud ComputingOhio LinuxFest:  Crash Course in Open Source Cloud Computing
Ohio LinuxFest: Crash Course in Open Source Cloud Computing
 

Recently uploaded

openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
Shane Coughlan
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
Hornet Dynamics
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
Deuglo Infosystem Pvt Ltd
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
pavan998932
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
TheSMSPoint
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
Adele Miller
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Mind IT Systems
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
Octavian Nadolu
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
Alina Yurenko
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
Philip Schwarz
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
timtebeek1
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
Drona Infotech
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
Aftab Hussain
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
lorraineandreiamcidl
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Crescat
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
Neo4j
 

Recently uploaded (20)

openEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain SecurityopenEuler Case Study - The Journey to Supply Chain Security
openEuler Case Study - The Journey to Supply Chain Security
 
E-commerce Application Development Company.pdf
E-commerce Application Development Company.pdfE-commerce Application Development Company.pdf
E-commerce Application Development Company.pdf
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
Empowering Growth with Best Software Development Company in Noida - Deuglo
Empowering Growth with Best Software  Development Company in Noida - DeugloEmpowering Growth with Best Software  Development Company in Noida - Deuglo
Empowering Growth with Best Software Development Company in Noida - Deuglo
 
What is Augmented Reality Image Tracking
What is Augmented Reality Image TrackingWhat is Augmented Reality Image Tracking
What is Augmented Reality Image Tracking
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Transform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR SolutionsTransform Your Communication with Cloud-Based IVR Solutions
Transform Your Communication with Cloud-Based IVR Solutions
 
May Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdfMay Marketo Masterclass, London MUG May 22 2024.pdf
May Marketo Masterclass, London MUG May 22 2024.pdf
 
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
Custom Healthcare Software for Managing Chronic Conditions and Remote Patient...
 
Artificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension FunctionsArtificia Intellicence and XPath Extension Functions
Artificia Intellicence and XPath Extension Functions
 
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)GOING AOT WITH GRAALVM FOR  SPRING BOOT (SPRING IO)
GOING AOT WITH GRAALVM FOR SPRING BOOT (SPRING IO)
 
Hand Rolled Applicative User Validation Code Kata
Hand Rolled Applicative User ValidationCode KataHand Rolled Applicative User ValidationCode Kata
Hand Rolled Applicative User Validation Code Kata
 
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdfAutomated software refactoring with OpenRewrite and Generative AI.pptx.pdf
Automated software refactoring with OpenRewrite and Generative AI.pptx.pdf
 
Mobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona InfotechMobile App Development Company In Noida | Drona Infotech
Mobile App Development Company In Noida | Drona Infotech
 
Graspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code AnalysisGraspan: A Big Data System for Big Code Analysis
Graspan: A Big Data System for Big Code Analysis
 
OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024OpenMetadata Community Meeting - 5th June 2024
OpenMetadata Community Meeting - 5th June 2024
 
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOMLORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
LORRAINE ANDREI_LEQUIGAN_HOW TO USE ZOOM
 
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
Introducing Crescat - Event Management Software for Venues, Festivals and Eve...
 
GraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph TechnologyGraphSummit Paris - The art of the possible with Graph Technology
GraphSummit Paris - The art of the possible with Graph Technology
 

Introduction to AllJoyn

  • 1. Paloma Maisterra, Alex Gonzalez March 2014 Introduction to AllJoyn
  • 2. Overview • AllJoyn is an open sourced framework to enable proximity based peer to peer mobile networking. • It provides an abstraction layer with a clean API to the underlying networks stacks (wireless, bluetooth) which is relatively easy to extend with new network implementations (takers for zigbee?). • AllJoyn provides service advertisement and discovery abstraction, as well as various application to application security mechanisms and a Remote Method Invocation abstraction.
  • 4. OnBoarding The problem: • Small embedded devices need to connect to a local wireless network but lack a proper user interface. • Adding a user interface just to, for example, input wireless authentication, is wasteful. The solution: • The embedded devices run a small AllJoyn thin client and use an AllJoyn router to “onboard” the local wireless network.
  • 5. Audio/data distribution The problem: • Data is either centrally stored (media server) or distributed (several media devices) but need to be accessed by all devices. The solution: • Embedded devices running the AllJoyn thin client can access a central media storage server running an AllJoyn router and can access each other’ s data.
  • 6. Control Panel/Configuration The problem: • Small embedded devices that need to configured and managed but lack a user interface or a web server. The solution: • The embedded devices run an AllJoyn thin client that can be managed using a remote control panel on another UI capable device running the AllJoyn router.
  • 7. Notification The problem: • Devices without a display need to inform the user of events. The solution: • They ran an AllJoyn client and use another AllJoyn device with a display for event notification.
  • 8. (the eternal) Smart home example • What about telling the coffee maker you want a coffee when you arrive home? • Controlling your home security from your Smartphone? • The fridge reminding you what you must buy? • Adjusting the temperature,or the lighting? • Sharing media with other devices?
  • 10. Smart energy example AllJoyn Thin CLient Router/Gateway
  • 12. AllJoyn • A software framework that allows devices and systems to autonomously discover and interact with nearby products regardless of brand, transport layer, platform or operating system. • Open source licensed, Apache 2.0 (source) • Originally developed by and being contributed to the Alliance by Qualcomm Innovation Center, Inc. • Initial set of capabilities include: o Service discovery (learning about the features and functions of other nearby devices) o Onboarding to add a device to the user’s network o User notifications o A common control panel for creating rich user experiences o Audio streaming for simultaneous playback on multiple speakers. • First Allseen alliance framework release is 14.02 (SDKs) • Releases every 4 months, (April/June/October). • The AllJoyn framework is written in C++ and has bindings for the following languages: o Java (inc. Android) o Objective C o Unity o Javascript o C • The AllJoyn thin client (in C) for embedded devices includes Linux, Windows 7, Arduino, ThreadX and more.
  • 13. Allseen Alliance • Recently formed, around 4 montsh old. • Consortium of companies that collaborate on the AllJoyn framework development, including: o Qualcomm o Cisco o Panasonic o Sharp o LG o HTC • Structured in a set of working groups, currently core, base services and development tools.
  • 14. Products • LG smart TV • Muzzleys is integrating Alljoyn in their cloud • ITTIA DB SQL supports Alljoyn, which allows to monitor, control, and distribute stored data. • Musiac’s multi room music system • Android featured apps
  • 16. High level architecture • An AllJoyn network is composed of routing nodes and leaf nodes. Leaf nodes can only connect to routing nodes, and routing nodes connect to other routing nodes to form a mesh of stars. • Nodes form a distributed software bus that enables to publish, discover and use APIs. Applications that expose APIs are services, if they consume them, clients, and if they do both peers.
  • 18. AllJoyn Bus • This is the most basic abstraction providing a fast lightweight way to move marshalled messages around a distributed system. • The bus formation is ad hoc, based on application or service discovery. The wire protocol is an extended backwards compatible d-bus protocol which can run over any medium, WiFi, WiFi direct, ethernet, PLC, bluetooth etc. • When a session is created the bus is extended. Peers are notified on join and leave events and can interact via their APIs or with multicast events.
  • 19. Bus extension Advertisement and Discovery • When a service is started it reserves a well known name in the bus and advertises it existence. This advertisement will be different on the different underlying technologies, UDP multicast over WiFi, pre-association service advertisement on WiFi direct or bluetooth service discovery message. • Client applications may declare their interest in receiving advertisements by initiating a discovery operation.
  • 20. Alljoyn Interfaces ● The published interfaces are discovered and introspected remotely using the About service framework and they are formed by three types of members: ○ Methods: which can be called and return a result. ○ Signals: broadcast, multicast or point to point asynchronous event notifications. Also sessionless. ○ Properties: Accessed by getter and setter methods. ● They can contain basic and complex data types defined by the dbus specification: ● Interfaces can be defined in XML, or inline code, C++, Java, C...
  • 21. AllJoyn Software components • AllJoyn has two main components, AllJoyn applications (leaf nodes) and the router (routing node). Both are implemented with the AllJoyn client library which comes in two flavours, standard client, for applications running on high level OSes, and thin client, for deeply embedded devices (device firmware). • The standard client is implemented in C++ and has bindings for various other languages, while the thin client is a C implementation and it depends on a routing node running off the device itself. The client library is represented by the AllJoyn SDK API. • Routers are built using the standard client library so they must run on a high level OS. It can either run standalone (only supported under Linux) or integrated on an AllJoyn application. Routers perform bus management and message routing tasks.
  • 22. AllJoyn Bus implementation The Daemon • The part of the bus running on a device is called a bus segment. Each segment needs an AllJoyn daemon, which are background processes which act as representatives of the AllJoyn bus. • In order for the clients and servers to communicate with the bus daemon, they contain a representative of the bus called bus attachment.
  • 24. AllJoyn Bus Implementation Bus attachments, interfaces and objects • The bus attachment is a local language specific object that represents the AllJoyn bus to a client, server or peer. It lives in each process that needs to communicate with the bus. • A bus interface is a group of bus methods, properties and signals along with their associated type signatures. • This org.alljoyn.Bus interface is implemented in bus objects. As there might be multiple bus objects on a bus attachment, an object path is used to differentiate them, for example /org/alljoyn/bus/1. • Remote bus objects are accessed through proxy bus objects which are local representatives of the remote bus object.
  • 26. AllJoyn Sessions • Sessions are created between client and servers before they can interact. • A server half association has the form [options,bus name,session port] • And the client’s [options, unique name, session ID] • A session will join these two half associations in [options, bus name, unique name, session ID] • The final options are negotiated in the session negotiation, as well as security checks.
  • 27. Sessions So the service advertises: [reliable IP , org.alljoyn.samples.chat.1 , 42] Asumming there is a bus attachment :2.1 on a remote daemon wanting to connect: [reliable IP , org.alljoyn.samples.chat.1 , :2,1 , 1025] The session ID 1025 is assigned by the system.
  • 29. Code Flow Example The framework usage is the same independently of the language binding used: 1. Create a BusAttachment. 2. Register listeners. 3. Create a BusInterterface. 4. Optionally perform 1 or more of the following: a. Create and register a BusObject that implements 1 or more BusInterfaces. b. Register Signal handlers. c. Advertise and/or Discover. d. Create a Session. e. Join a Session. 5. Remove listeners. 6. Release the BusAttachment.
  • 30. AllJoyn Base Services ● Build on top of the allJoyn framework for accelerated application development. ● They all use the About feature for advertisement and discovery. ● Each service framework will need to setup AllJoyn and the About feature. ● They are: ● Notification Service Framework: Sends and receives text messages, with the possibility of referencing media, with priority and filtering. ● Onboarding Service Framework: Standard way to get devices into a Wifi network. The onboarder device discovers a device that needs to be onboarded (onboardee), it connects to it, provides configuration information, and the onboardee verifies the connection. ● Audio Service Framework ● Control Panel Service Framework
  • 31. SDKs
  • 32. Developing from SDKs Supported operating systems include: • Android (Java,needs SDK and NDK installed) • iOS and OSX (Objective C) • Windows and Linux (C++) • Windows and Linux thin client (C)
  • 33. Resources • Video webminars • Documentation o Environment setup guides: ▪ Android ▪ Thin Client (Arduino, Linux, Windows, embedded OSes) ▪ Objective C (iOS and OSX) ▪ Java (Linux, Windows) ▪ Unity ▪ C++ (Windows , Linux) o Development guides: ▪ Java ▪ Troubleshooting guide ▪ Thin Client • Getting started • Building an application
  • 34. Service frameworks • About feature o Getting started (Java) o Usage guide (Java, C, Objective C, C++) o Best practises o Interface specification • Audio service o Getting Started (Java, C++) o Usage guide (C++) o Best practises o Interface specification • Configuration service o Getting Started (Java) o Usage guide (Java, C, Objective C, C++) o Best practises o Interface specification • Control panel o Getting Started (Java) o Usage guide (Java, C, Objective C, C++) o Best practises o Interface specification • Notification o Getting Started (Java) o Usage guide (Java, C, Objective C, C++) o Best practises o Interface specification • Onboarding o Getting Started (Java) o Usage guide (Java) o Best practises o Interface specification
  • 35. Framework APIs Framework APIs: • Java (Android, Linux, Windows 7) • C++ (Android, Linux, Windows 7) • C (Linux, Arduino, Thin Client, ) • Objective C (iOS and OSX) • Javascript (Linux, WIndows 7) • C# (Unity)
  • 36. Q & A Thanks for listening
  • 37. This presentation is shared with an Attribution-NonCommercial-ShareAlike 3.0 Unported license.