SlideShare une entreprise Scribd logo
1  sur  37
Télécharger pour lire hors ligne
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.

Contenu connexe

Tendances

Intrusion detection system ppt
Intrusion detection system pptIntrusion detection system ppt
Intrusion detection system pptSheetal Verma
 
Quantum Key Distribution
Quantum Key DistributionQuantum Key Distribution
Quantum Key DistributionShahrikh Khan
 
Seminar Report on Quantum Key Distribution
Seminar Report on Quantum Key DistributionSeminar Report on Quantum Key Distribution
Seminar Report on Quantum Key DistributionShahrikh Khan
 
Quantum Cryptography
Quantum CryptographyQuantum Cryptography
Quantum CryptographySwasat Dutta
 
Quantum Cryptography presentation
Quantum Cryptography presentationQuantum Cryptography presentation
Quantum Cryptography presentationKalluri Madhuri
 
Overview of Visible Ops Handbook
Overview of Visible Ops HandbookOverview of Visible Ops Handbook
Overview of Visible Ops HandbookDimas Ramadhani
 
Flooding attack manet
Flooding attack manetFlooding attack manet
Flooding attack manetMeena S Pandi
 
Quantum Cryptography
Quantum CryptographyQuantum Cryptography
Quantum CryptographyNARESHGOTMAL
 
Access Control for Windows
Access Control for Windows Access Control for Windows
Access Control for Windows ayousif
 
What is Zero Trust
What is Zero TrustWhat is Zero Trust
What is Zero TrustOkta-Inc
 
PowerPoint Presentation On Ethical Hacking in Brief (Simple)
PowerPoint Presentation On Ethical Hacking in Brief (Simple)PowerPoint Presentation On Ethical Hacking in Brief (Simple)
PowerPoint Presentation On Ethical Hacking in Brief (Simple)Shivam Sahu
 
Ceh v5 module 20 buffer overflow
Ceh v5 module 20 buffer overflowCeh v5 module 20 buffer overflow
Ceh v5 module 20 buffer overflowVi Tính Hoàng Nam
 
Frank Opelka- Value Based Health Care
Frank Opelka- Value Based Health CareFrank Opelka- Value Based Health Care
Frank Opelka- Value Based Health CareLevi Shapiro
 
Quantum cryptography
Quantum cryptographyQuantum cryptography
Quantum cryptographySukhdeep Kaur
 

Tendances (20)

Intrusion detection system ppt
Intrusion detection system pptIntrusion detection system ppt
Intrusion detection system ppt
 
Quantum cryptography
Quantum cryptographyQuantum cryptography
Quantum cryptography
 
Quantum Key Distribution
Quantum Key DistributionQuantum Key Distribution
Quantum Key Distribution
 
Seminar Report on Quantum Key Distribution
Seminar Report on Quantum Key DistributionSeminar Report on Quantum Key Distribution
Seminar Report on Quantum Key Distribution
 
Quantum Cryptography
Quantum CryptographyQuantum Cryptography
Quantum Cryptography
 
Quantum Cryptography presentation
Quantum Cryptography presentationQuantum Cryptography presentation
Quantum Cryptography presentation
 
Quantum cryptography
Quantum cryptographyQuantum cryptography
Quantum cryptography
 
Overview of Visible Ops Handbook
Overview of Visible Ops HandbookOverview of Visible Ops Handbook
Overview of Visible Ops Handbook
 
Fortigate Training
Fortigate TrainingFortigate Training
Fortigate Training
 
Flooding attack manet
Flooding attack manetFlooding attack manet
Flooding attack manet
 
Quantum Cryptography
Quantum CryptographyQuantum Cryptography
Quantum Cryptography
 
ip spoofing
ip spoofingip spoofing
ip spoofing
 
Access Control for Windows
Access Control for Windows Access Control for Windows
Access Control for Windows
 
OSI Security Architecture
OSI Security ArchitectureOSI Security Architecture
OSI Security Architecture
 
What is Zero Trust
What is Zero TrustWhat is Zero Trust
What is Zero Trust
 
PowerPoint Presentation On Ethical Hacking in Brief (Simple)
PowerPoint Presentation On Ethical Hacking in Brief (Simple)PowerPoint Presentation On Ethical Hacking in Brief (Simple)
PowerPoint Presentation On Ethical Hacking in Brief (Simple)
 
Ceh v5 module 20 buffer overflow
Ceh v5 module 20 buffer overflowCeh v5 module 20 buffer overflow
Ceh v5 module 20 buffer overflow
 
Frank Opelka- Value Based Health Care
Frank Opelka- Value Based Health CareFrank Opelka- Value Based Health Care
Frank Opelka- Value Based Health Care
 
Quantum cryptography
Quantum cryptographyQuantum cryptography
Quantum cryptography
 
Edge Computing
Edge ComputingEdge Computing
Edge Computing
 

En vedette

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.06kellogh
 
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 IoTAllSeen 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/LinuxSamsung 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
 
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 ThingsAllSeen Alliance
 
The tools & technologies behind Resin.io
The tools & technologies behind Resin.ioThe tools & technologies behind Resin.io
The tools & technologies behind Resin.ioGreeceJS
 
AllSeen Alliance Overview
AllSeen Alliance OverviewAllSeen Alliance Overview
AllSeen Alliance OverviewAALForum
 
Programming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.ioProgramming IoT Gateways with macchina.io
Programming IoT Gateways with macchina.ioGünter Obiltschnig
 
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 AllJoynAllSeen 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 EverythingQualcomm 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 APIsAllSeen Alliance
 
OCF/IoTivity for Healthcare/Fitness/Wearable
OCF/IoTivity for Healthcare/Fitness/WearableOCF/IoTivity for Healthcare/Fitness/Wearable
OCF/IoTivity for Healthcare/Fitness/WearableJonathan 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.ioGünter Obiltschnig
 
IoTivity 오픈소스 기술
IoTivity 오픈소스 기술IoTivity 오픈소스 기술
IoTivity 오픈소스 기술Wonsuk Lee
 

En vedette (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 오픈소스 기술
 

Similaire à 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 AllJoynAllSeen 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.0Microsoft 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 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 MehmoodEngrBilalMehmood1
 
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 2018UX Antwerp Meetup
 
Customize and control connected devices
Customize and control connected devicesCustomize and control connected devices
Customize and control connected devicesCodemotion
 
Cutomize and Control Connected Devices
Cutomize and Control Connected DevicesCutomize and Control Connected Devices
Cutomize and Control Connected DevicesMirco Vanini
 
WSO2 Enterprise Integrator 101
WSO2 Enterprise Integrator 101WSO2 Enterprise Integrator 101
WSO2 Enterprise Integrator 101WSO2
 
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 2012Ryo 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 ComputingMark Hinkle
 

Similaire à 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
 

Dernier

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...confluent
 
Lecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptLecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptesrabilgic2
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationBradBedford3
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...OnePlan Solutions
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencessuser9e7c64
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfMarharyta Nedzelska
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecturerahul_net
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfYashikaSharma391629
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsSafe Software
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfkalichargn70th171
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfDrew Moseley
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identityteam-WIBU
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprisepreethippts
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZABSYZ Inc
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxAndreas Kunz
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtimeandrehoraa
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesŁukasz Chruściel
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Natan Silnitsky
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Angel Borroy López
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanyChristoph Pohl
 

Dernier (20)

Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
Catch the Wave: SAP Event-Driven and Data Streaming for the Intelligence Ente...
 
Lecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).pptLecture # 8 software design and architecture (SDA).ppt
Lecture # 8 software design and architecture (SDA).ppt
 
How to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion ApplicationHow to submit a standout Adobe Champion Application
How to submit a standout Adobe Champion Application
 
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
Maximizing Efficiency and Profitability with OnePlan’s Professional Service A...
 
Patterns for automating API delivery. API conference
Patterns for automating API delivery. API conferencePatterns for automating API delivery. API conference
Patterns for automating API delivery. API conference
 
A healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdfA healthy diet for your Java application Devoxx France.pdf
A healthy diet for your Java application Devoxx France.pdf
 
Understanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM ArchitectureUnderstanding Flamingo - DeepMind's VLM Architecture
Understanding Flamingo - DeepMind's VLM Architecture
 
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdfInnovate and Collaborate- Harnessing the Power of Open Source Software.pdf
Innovate and Collaborate- Harnessing the Power of Open Source Software.pdf
 
Powering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data StreamsPowering Real-Time Decisions with Continuous Data Streams
Powering Real-Time Decisions with Continuous Data Streams
 
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdfExploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
Exploring Selenium_Appium Frameworks for Seamless Integration with HeadSpin.pdf
 
Comparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdfComparing Linux OS Image Update Models - EOSS 2024.pdf
Comparing Linux OS Image Update Models - EOSS 2024.pdf
 
Post Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on IdentityPost Quantum Cryptography – The Impact on Identity
Post Quantum Cryptography – The Impact on Identity
 
Odoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 EnterpriseOdoo 14 - eLearning Module In Odoo 14 Enterprise
Odoo 14 - eLearning Module In Odoo 14 Enterprise
 
Salesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZSalesforce Implementation Services PPT By ABSYZ
Salesforce Implementation Services PPT By ABSYZ
 
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptxUI5ers live - Custom Controls wrapping 3rd-party libs.pptx
UI5ers live - Custom Controls wrapping 3rd-party libs.pptx
 
SpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at RuntimeSpotFlow: Tracking Method Calls and States at Runtime
SpotFlow: Tracking Method Calls and States at Runtime
 
Unveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New FeaturesUnveiling the Future: Sylius 2.0 New Features
Unveiling the Future: Sylius 2.0 New Features
 
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
Taming Distributed Systems: Key Insights from Wix's Large-Scale Experience - ...
 
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
Alfresco TTL#157 - Troubleshooting Made Easy: Deciphering Alfresco mTLS Confi...
 
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte GermanySuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
SuccessFactors 1H 2024 Release - Sneak-Peek by Deloitte Germany
 

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.