LEARNをざっくり要約してみた。
AllJoynの概要
- オープンソースのフレームワーク
- ブランドやトランスポート、OSなどの枠を超えて、近隣のデバイスを発見し、お互いに直接通信することができる。
- クラウド側の仕様(または実装)は含まれない。
Proximal Network
- AllJoynフレームワークは、以下に示す複雑さをハンドリングすることができ、物理的なトランスポートの詳細を抽象化する。利用者はシンプルなAPIを使うだけでよい。
- デバイス間のセッション生成
- デバイス間のセキュアな通信
- グループセッションや、1体1の通信を含む、複数のセッション接続をサポートする。
Flexible
- RTOSからリッチなOSまで、マルチプラットフォームで動作するようにデザインされている。
- 複数の言語バインディングを提供する。
- Transports
- Wi-Fi, Ethernet, Serial, Power Line (PLC)
- Bindings
- C, C++, Obj-C, Java
- Platforms
- RTOS, Arduino, Linux, Android, iOS, Windows, Mac
- Transports
- Security
- peer-to-peer encryption (AES128) and authentication (PSK, ECDSA)
Common language for Internet of Things
- AllJoynは、異なるOSで動作する異なる言語で記述されたアプリケーションや、異なるブランドのデバイスが、お互いに対話するための糊付けとなる共通言語を提供することを目的としている。
- AllSeen Allianceは、共通のサービスの実装、特定のユースケースを満たすためのインタフェースを規定する。例えば、以下のようなサービス。
- 開発者は、上記のサービスを利用することにより、AllJoynのエコシステムの中、デバイスやアプリケーションに互換性を持たせることができる。
Optional Cloud
- AllJoynのフレームワークは、ローカルネットワーク上で動作するフレームワークであり、クラウドへの接続機能は提供しない。(ローカルネットワークで実現可能なことは、ローカルネットワークで実現するというポリシーぽい。)
- クラウドへの接続が必要な場合は、Gateway Agent を介して接続する。
- このアプローチの利点は、インターネットへの接続をGateway Agentのみに制限することにより、多数のデバイスがインターネットへ接続することを抑止し、脅威となり得る可能性を減らすことができることである。