alljoyn - modrpc/info GitHub Wiki

Table of Contents

Overview

Software Architecture

  • AllJoyn APP code
  • AllJoyn Service Frameworks
    • Basic services
      • Onboarding: provide a consistent way to bring a new device onto the Wi-Fi network
      • Configuration: allows one to configure certain attributes of an application/device, such as its friendly name
      • Notification: allows text-based notifications to be sent and received by devices on the AJ network; also supports audios and images via URLs
      • Control panel: allows devices to advertise a virtual control paneel to be controlled remotely
    • More services
      • Location services
      • Media delivery
  • AllJoyn Core Library: lowest level set of APIs
    • Advertisements and discovery
    • Session creation
      • one session consists of 1) participating devices and 2) ports of these devices
      • BusObject implements some overlay network (private channel)
    • Object creation and handling
    • Interface definition of methods, properties, and signals
      • signals: sessionless and occurrs asynchronously
      • events and actions: similar to reactor
        <interface name="com.example.LightBulb">
          <method name="ToggleSwitch">
             <description>Toggle light switch</description>
          </method>
          <signal name="LightOn" sessionless="true">
             <description>The light has been turned on</description>
          </signal>
        </interface>
  • AllJoyn Router: routes AllJoyn messages between AJ routers and Applications (incl. between different transports)

Programming Models

  • AllSeen Core Framework: proactive, service-oriented model
  • Data-Driven API (DDAPI) : alternative API for AJ Core Framework; reactive model
    • built on top of AJ Core API and is specifically tailored to use casess for the IOT. Instead of AJ Core Framework's service-oriented paradigm, it uses publish/subscribe paradigm.

Basics

⚠️ **GitHub.com Fallback** ⚠️