The AllJoyn SDK Concepts[alljoyn application exposes its functionality to objects through APIs, and most applications expose only one object, and sometimes the parent object is automatically generated (when the applied object is not root) ; object can inherit one or more interfaces]
Exposing functionality
AllJoyn applications expose their functionality via APIs implemented in objects
–most applications would expose only a single object
–object hierarchies is supported if required by appli cation model
? AllJoyn would create parent objects automatically if Application object is not the root
objects implement one or More Interfaces
–these is the APIs that can is discovered using about
interfaces is composed of Members, which fall to three categories
–methods–classic OO object Interaction
–signals–asynchrono US event notification
? Can be broadcast, multicast, or point-to-point
? Can also send a sessionless signal:a broadcast Signal that doesn ' t require an application session to be delivered
–PR Operties–data members
? These is accessed by built-in Get/set methods
All of the information can be introspected remotely
AllJoyn SDK Concepts
Bus Attachment is required to interact with/over the bus
–they is the application ' s presence on the AllJoyn Bus
–they provide the root (/) of the object hierarchy
Objects is published to local Bus Attachment
–object path names look like file paths
? e.g./games/chess
Proxy Objects
–local representation of a remote object
Signal handlers is registered with the Bus Attachment
–registered by applications to take action when a signal is
Received
Sessions
–flow Controlled connections between applications
–can be point-to-point or multipoint
AllJoyn SDK Concepts
Method Calls and Signals
Method Calls is made by using Proxy Objects
–this results in a method call message being sent to the object the proxy object represents
–method handler is invoked to execute Method and generate the reply
, Haven method Reply is sent by the object back to the proxy object
Signals is emitted by Objects and consumed by Signal handlers
–sessionless signals work the same-to-the-a-do-not require the application to create a session
? They is broadcast and is delivered to any apps interested in receiving sessionless signals
? Only a single instance of a signal would be sent, i.e. if the same signal was emitted multiple times, only the last would be Delivered
–useful for sending isochronous data, such as state updates
AllJoyn SDK Concepts
Object Model
As stated earlier, the Object model is similar for all language bindings
–create a busattachment to connect to the bus
–create businterface(s) that'll be implemented by Busobjects
–create and register busobject(s) with the busattachment
– busobjects handle remote method calls and emit signals
–applications call methods on remote objects using proxybusobjects
–applications register Signal handlers with busattachment
Security Concepts
Design of Security Framework
authentication and encryption are designed to be App-to-app
–trust Relationship established Betwee n the applications*
? There is no trust relationship established on the device level
, Haven Router are not involved other than to route the MES Sages
–device pairing not required unless the transport requires it
Security is enabled per Interface
–authentication and key exchange initiated on demand
–applications can has a mixture of secured interfaces an D Open Interfaces
security-enabled interface
–authentication is required to make method calls
–authentication required to receive signals
–all messages is encrypted
? Regardless of authentication mechanism, encryption always uses same AES-128 CCM algorithm
* Applications could Be firmware of embedded device
Security Model – Authentication and Encryption
Built-in authentication mechanisms
four mechanisms supported
–mechanism negotiated using SASL protocol
–mechanism chosen by APPL Ication developer
–most mechanisms adapted from TLS protocols per RFC 5256
simple Pin-code pairing
–specifically for Thin Client applications, lack resources to support big-number arithmetic
pin-code S RP
–pairing with a single-use password using Secure Remote password protocol
Logon SRP –user name and password using Secure Remote password protocol
–password required every time peers connect
certificate-based
–rsa Public key authentication and certificate-based
–trust relationship Lasts while certificate valid
Base Services
AllJoyn Base Services for fundamental use cases
• Standard AllJoyn building blocks for generically useful services
–onboarding
–notifications
–control Panel
–config
• accelerate application and device development
Onboarding Service
Onboarding
Provides a standard-to-get devices onto a WiFi Network
–onboarder is an application running on a smart device
–onboardee is the device to being added to the WiFi network
Basic Flow
–onboarder discovers device, needs to be onboarded
–connects to it, and provides configuration information
–onboardee verifies it can connect
? Informs Onboarder that it had been successful or not
Onboarding Service
Notification Service Framework
AllJoyn notifications Service Framework
simple, standardized interface for Sending and receiving human-readable messages
–contents is text
? Possible To reference image, audio, video:application can fetch media using reference
–works across devices, Operatin G Systems and connection types
? WiFi, Ethernet, PLC, etc ...
–producer (Sender) can assign-notification
–consumer (receiver) can configure preferences on types of Notifications it receives
Examples
–refrigerator could send a notification that freezer door have been left open for more than 2 minutes
? This could is rendered on any producer:mobile device, TV, set top box, etc ...
–washing Machine can send a notification if wash cycle is complete
Notification Service
Control Panel Service Framework
Control Panel Service Framework
Infrastructure for exposing user interfaces for devices remotely
–model is there is a controller and a Controllee
–controlee exposes it ' s UI using the framework,
–controller renders the UI and sends control commands back to Controllee base on UI input
–defined such that any control application using the framework can render a Controllee exposed UI
? That's a generic app can control any of the type of devices that exposes controls using the This framework
Examples
–after receiving a notification that the oven have been on broil for 5 minutes a user could bring up the ovens
Control Panel and change the setting to ' bake at ' to keep the food warm
–a user could check the current values of A refrigerator (including current temperature) and modify the
Settings to make things hotter or colder as needed.
Control Panel Service Framework Example
Control Panel Service High Level Architecture
[Genuine Please search: beautifulzzzz (see the Landlord Blog Park Official blog, enjoy a high quality of life)]
[If you also like the smart hardware things, can make a friend ~]
[If you are ambitious, can unite each hero's heroes, can also leave a message ~]
AllJoyn Continuous Update ... \ (^o^)/~
[AllJoyn] 2, IoT open source software framework AllJoyn Research (ii)--Preliminary understanding