3 November 2014 AllSeen Alliance ‹#› Data-driven API breakout session DOMINIQUE CHANET Qeo LLC a subsidiary of Technicolor SA.

Slides:



Advertisements
Similar presentations
Oyster, Edinburgh, May 2006 AIFB OYSTER - Sharing and Re-using Ontologies in a Peer-to-Peer Community Raul Palma 2, Peter Haase 1 1) Institute AIFB, University.
Advertisements

Web Services Architecture An interoperability architecture for the World Wide Service Network.
Language Specification using Metamodelling Joachim Fischer Humboldt University Berlin LAB Workshop Geneva
Service-Based Paradigm Anchoring the Indefinable Field Of Pervasive Computing Presenter: Vijay Dheap.
Gateway Agent Product & Architecture
DD MM YYYY AllSeen Alliance 1 Data-Driven API WG Progress Report Dominique Chanet Technicolor – Qeo, LLC.
UNDERSTANDING JAVA APIS FOR MOBILE DEVICES v0.01.
Extensible Networking Platform IWAN 2005 Extensible Network Configuration and Communication Framework Todd Sproull and John Lockwood
Service Oriented Architectures in Heterogeneous Environments
Page 1 Building Reliable Component-based Systems Chapter 16 - Component based embedded systems Chapter 16 Component based embedded systems.
1 JBus, A Platform Independent Publish/Subscribe Bus for CWave 2000 M.S. Thesis Defense Joseph W. Longson March 30, 2000.
1 Objectives To introduces the concept of software Design. To introduce the concept of Object- Oriented Design (OOD). To Define various aspects about object.
ATSN 2009 Towards an Extensible Agent-based Middleware for Sensor Networks and RFID Systems Dirk Bade University of Hamburg, Germany.
SNAL Sensor Networks Application Language Alvise Bonivento Mentor: Prof. Sangiovanni-Vincentelli 290N project, Fall 04.
22 September 2014 AllSeen Alliance 1 Lighting Service Framework (LSF)
Community Manager A Dynamic Collaboration Solution on Heterogeneous Environment Hyeonsook Kim  2006 CUS. All rights reserved.
Distributed Architecture Philosophy Why asynchronous messaging?
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 18 Slide 1 Software Reuse 2.
Chapter 6– Artifacts of the process
Games Development 2 Entity / Architecture Review CO3301 Week
New Direction Proposal: An OpenFabrics Framework for high-performance I/O apps OFA TAC, Key drivers: Sean Hefty, Paul Grun.
THE NEXT STEP IN WEB SERVICES By Francisco Curbera,… Memtimin MAHMUT 2012.
CS378 - Mobile Computing App Project Overview. App Project Teams of 2 or 3 students Develop an Android application of your choosing subject to instructor.
T Network Application Frameworks and XML Web Services and WSDL Sasu Tarkoma Based on slides by Pekka Nikander.
McLean VA, May 3, 2010 SG Systems Systems Requirements Specification Approach Overview.
On P2P Collaboration Infrastructures Manfred Hauswirth, Ivana Podnar, Stefan Decker Infrastructure for Collaborative Enterprise, th IEEE International.
Software Models (Cont.) 9/22/2015ICS 413 – Software Engineering1 -Component-based software engineering -Formal Development Model.
Active Monitoring in GRID environments using Mobile Agent technology Orazio Tomarchio Andrea Calvagna Dipartimento di Ingegneria Informatica e delle Telecomunicazioni.
SOFTWARE DESIGN AND ARCHITECTURE LECTURE 09. Review Introduction to architectural styles Distributed architectures – Client Server Architecture – Multi-tier.
Comments on doing a CIM Project
COMP 6471 Software Design Methodologies Winter 2006 Dr Greg Butler
PERVASIVE COMPUTING MIDDLEWARE BY SCHIELE, HANDTE, AND BECKER A Presentation by Nancy Shah.
Ontology Summit 2015 Track C Report-back Summit Synthesis Session 1, 19 Feb 2015.
Abierman-netconf-mar03 1 NETCONF BOF 56th IETF San Francisco, California March 17, 2003 Discussion: Admin:
Eurostat Expression language (EL) in Eurostat SDMX - TWG Luxembourg, 5 Jun 2013 Adam Wroński.
Ocean Observatories Initiative Data Management (DM) Subsystem Overview Michael Meisinger September 29, 2009.
1 Mobility Support by the Common API for Transparent Hybrid Multicast draft-irtf-samrg-common-api-03 Project Matthias Wählisch,
Context Workshop. Diepenbeek 22 january 2004 Agenda Introduction Work methodology Context description Description frameworks Conclusion Questions.
What’s MPEG-21 ? (a short summary of available papers by OCCAMM)
FDT Foil no 1 On Methodology from Domain to System Descriptions by Rolv Bræk NTNU Workshop on Philosophy and Applicablitiy of Formal Languages Geneve 15.
Ontology Mapping in Pervasive Computing Environment C.Y. Kong, C.L. Wang, F.C.M. Lau The University of Hong Kong.
Behavioural Design Patterns Quote du jour: ECE450S – Software Engineering II I have not failed. I've just found 10,000 ways that won't work. - Thomas Edison.
API Crash Course CWU Startup Club. OUTLINE What is an API? Why are API’s useful? What is HTTP? JSON? XML? What is a RESTful API? How do we consume an.
WIGOS Data model – standards introduction.
Service Oriented Architecture + SOAP -Robin John.
Doing a CIM Project. 22 CIM Design Center  A rule I learned about applying technology:  Understand the design center of the technology.  Use extreme.
Internet of Things. IoT Novel paradigm – Rapidly gaining ground in the wireless scenario Basic idea – Pervasive presence around us a variety of things.
Update on 3GPP RAN3 Multi-RAT joint coordination
Advanced Web Technologies Lecture # 5 By: Faraz Ahmed.
Component Patterns – Architecture and Applications with EJB copyright © 2001, MATHEMA AG Component Patterns Architecture and Applications with EJB Markus.
1. 2 Purpose of This Presentation ◆ To explain how spacecraft can be virtualized by using a standard modeling method; ◆ To introduce the basic concept.
17 Feb 2015 AllSeen Alliance1 Security 2.0 Planning inputs PETER HUYGE Qeo LLC a subsidiary of Technicolor SA.
ODATA DESIGN PRINCIPLES July 26, BUILD ON HTTP, REST OData is a RESTful HTTP Protocol Build on HTTP Entities modeled as Resources Relationships.
SOA & Event Driven Architecture Steve Else, Ph.D., Certified Enterprise Architect, SOA COP Srinidhi Boray, Certified Enterprise Architect, Ingine, Inc.
Introduction to Service Orientation MIS 181.9: Service Oriented Architecture 2 nd Semester,
IEEE MEDIA INDEPENDENT HANDOVER DCN: Title: Proposed Presentation for 3GPP Date Submitted: September,
Course on persistent identifiers, Madrid (Spain) Information architecture and the benefits of persistent identifiers Greg Riccardi Director Institute for.
EMI is partially funded by the European Commission under Grant Agreement RI Common Authentication Library Daniel Kouril, for the CaNL PT EGI CF.
Web Design Principles 5 th Edition Chapter 3 Writing HTML for the Modern Web.
Discussion on oneM2M and OSGi Interworking Group Name: ARC Source: Jessie, Huawei, Meeting Date: Agenda Item:
Software Architecture Patterns (3) Service Oriented & Web Oriented Architecture source: microsoft.
IoT R&I on IoT integration and platforms INTERNET OF THINGS
Service Oriented Architecture (SOA) Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
Update on 3GPP RAN3 Multi-RAT joint coordination
Ieva Juodelytė IT 3 kursas 4 grupė
Avi Barel Director of Business Development ULE Alliance Wolfgang John
Versioning in Adaptive Hypermedia
ONAP Architecture Principle Review
Presentation transcript:

3 November 2014 AllSeen Alliance ‹#› Data-driven API breakout session DOMINIQUE CHANET Qeo LLC a subsidiary of Technicolor SA

3 November 2014 AllSeen Alliance ‹#› IoT is many things to many people By 2020, 200bn devices are projected to be connected (source: Intel) That’s 26 smart objects per person Remote Control Telemetry BORING

3 November 2014 AllSeen Alliance ‹#› IoT is many things to many people By 2020, 200bn devices are projected to be connected (source: Intel) That’s 26 smart objects per person Reactive Things Observes its environment Draws conclusions & acts

3 November 2014 AllSeen Alliance ‹#› IoT is many things to many people By 2020, 200bn devices are projected to be connected (source: Intel) That’s 26 smart objects per person Reactive Things Observes its environment Draws conclusions & acts INTERESTING

3 November 2014 AllSeen Alliance ‹#› Motivation Data Models Interaction with AllJoyn Core Current Status

3 November 2014 AllSeen Alliance ‹#› 26 smart objects

3 November 2014 AllSeen Alliance ‹#› up to 650 observer-subject pairs

3 November 2014 AllSeen Alliance ‹#› mobile / battery operated / wireless

3 November 2014 AllSeen Alliance ‹#› Classic AllJoyn interaction model (discover-connect-query) does not scale.

3 November 2014 AllSeen Alliance ‹#› AllJoyn as a universal data bus Data you offer is more important than the services you provide reactive things versus remote controlled things Publish-subscribe paradigm push versus pull model Loosely coupled more resilient to adverse network conditions Strongly typed data well-defined, formalised, standardised data models Total abstraction of the communication layer lets developers focus on business logic, not communication logic

3 November 2014 AllSeen Alliance ‹#› Data-driven API temperature Observer Provider #1 Consumer #1 Consumer #2 humidity

3 November 2014 AllSeen Alliance ‹#› Data-driven API Observer Provider #1 Consumer #1 Consumer #2 temperature humidity The data space is organised in topics. Topics have well-defined data types. The data space is organised in topics. Topics have well-defined data types.

3 November 2014 AllSeen Alliance ‹#› Data-driven API temperature Observer Provider #1 Consumer #1 Consumer #2 humidity Local cache keeps track of latest state of each discovered object.

3 November 2014 AllSeen Alliance ‹#› Data-driven API temperature Observer Provider #1 Consumer #1 Consumer #2 humidity State updates are propagated transparently from provider to consumer.

3 November 2014 AllSeen Alliance ‹#› Data-driven API temperature Observer Provider #1 Consumer #1 Consumer #2 humidity Provider #2 Peer discovery is abstracted to object discovery.

3 November 2014 AllSeen Alliance ‹#› Motivation Data Models Interaction with AllJoyn Core Current Status

3 November 2014 AllSeen Alliance ‹#› Types of data Represents state of physical or logical entities in the problem domain. Persistent: as long as an entity exists, it is in a certain state. Observers keep track of latest state of each discovered object. Latest state remains discoverable by late joiners. STATE Represents ephemeral occurrences (e.g. a keypress). Every event counts. Discrete: only valid at one point in time. No support for late joiners: if you weren’t there to observe an event, you missed it for good. EVENT

3 November 2014 AllSeen Alliance ‹#› AllJoyn Interface is the data model An interface is a collection of related data and behaviour. Every bus object that implements an interface serves as an instance on the associated topic.

3 November 2014 AllSeen Alliance ‹#› AllJoyn Interface is the data model Properties represent an object’s observable state. Hence, we use them to model STATE data.

3 November 2014 AllSeen Alliance ‹#› AllJoyn Interface is the data model Signals model ephemeral occurrences. Hence, we use them to model EVENT data.

3 November 2014 AllSeen Alliance ‹#› AllJoyn Interface is the data model Methods model behaviour. Allows for seamless interoperability with service-oriented AllJoyn applications.

3 November 2014 AllSeen Alliance ‹#› The current interface definition language is too limited.

3 November 2014 AllSeen Alliance ‹#› The current interface definition language is too limited. Machine-readable, not human-readable. What does “q” mean? Array of some kind of struct that represents something. AllJoyn has five different kinds of signals, each with their own semantics. Which one is intended here?

3 November 2014 AllSeen Alliance ‹#› type="a[ObjectDescription]" type="sessionless" type="a[ObjectDescription]" The current interface definition language is too limited.

3 November 2014 AllSeen Alliance ‹#› Leverage code generator to turn formal XML definition into code. codegen Door.xml DoorInterface.cc DoorProxy.cc Manual type definition and message marshalling are tedious and error prone. The code generator can do these things on your behalf.

3 November 2014 AllSeen Alliance ‹#› Common data models must be standardised. Universally available data must be universally understood. Data models for common concepts must be standardised. Canonical data models for light bulbs, various sensors, … Beyond data models: modeling style, physical units, … e.g. temperature: Kelvin, Fahrenheit or Celsius? The Alliance must take the lead in such a standardisation. Change of approach: centralised versus working group centric.

3 November 2014 AllSeen Alliance ‹#› Standardised data models will evolve over time. v1 v2 v3 Linear Evolution

3 November 2014 AllSeen Alliance ‹#› Standardised data models will evolve over time. v1 v2 v3 Linear Evolution v1 v2 v3 Vendor Extensions v1.ACME v2.ACME

3 November 2014 AllSeen Alliance ‹#› Standardised data models will evolve over time. v1 v2 v3 Linear Evolution v1 v2 v3 Vendor Extensions v1.ACME v2.ACME Providers and consumers of all different versions of the data model must interoperate in a foolproof and elegant way.

3 November 2014 AllSeen Alliance ‹#› This is not what we think of as “foolproof and elegant”. if (version == 3) {... } else if (version > 4) { if (version == 5) {... } else if (IS_ACME_EXTENDED()) {... }... } if (version == 3) {... } else if (version > 4) { if (version == 5) {... } else if (IS_ACME_EXTENDED()) {... }... }

3 November 2014 AllSeen Alliance ‹#› The Alliance needs to formulate a clear vision on data model evolution. Are vendor extensions allowed? If not, how do we convince vendors to use the standardised interfaces instead of rolling their own proprietary versions? Is there a deprecation strategy for older interface versions? Some AllJoyn-enabled products have >20yr life cycles. How do application developers deal with peers that offer different versions of the same interface? We desperately want to avoid version number spaghetti. What is the nature of an Interface? There are 2 factions: an ADT that is subject to SOLID principles a formally defined set of messages that can be exchanged between peers, where the definition of these messages can evolve over time according to well-understood rules

3 November 2014 AllSeen Alliance ‹#› Motivation Data Models Interaction with AllJoyn Core Current Status

3 November 2014 AllSeen Alliance ‹#› DDAPI is a helper library on top of AllJoyn Core. Application business logic communication logic type description & marshaling AllJoyn Core

3 November 2014 AllSeen Alliance ‹#› DDAPI is a helper library on top of AllJoyn Core. Application business logic DDAPI communication logic Generated Code type description & marshaling AllJoyn Core codegen

3 November 2014 AllSeen Alliance ‹#› DDAPI applications work together well with plain AllJoyn applications if those applications are well-behaved = don’t rely on ad hoc behaviours use About for object announcement emit PropertiesChanged signals use sessioncast signals don’t do funky stuff in session setup AllJoyn needs best practices, conventions that define when to use what parts of its toolbox. DDAPI proposes and implements these conventions.

3 November 2014 AllSeen Alliance ‹#› The best DDAPI is no DDAPI. Having two competing APIs for AllJoyn is a Bad Idea™. Long-term goal is to integrate DDAPI into Core. Short term, the DDAPI working group contributes ideas and code back to Core. -better discovery and peer presence detection -raising the bar for data model design -extensions to the Interface definition language -re-thinking session setup -AllJoyn usage best practices -…

3 November 2014 AllSeen Alliance ‹#› Motivation Data Models Interaction with AllJoyn Core Current Status

3 November 2014 AllSeen Alliance ‹#› Where are we today? Data-driven API C++ version: API more or less complete experimental version based on R14.06 in Alliance git repositories working hard on a production-ready version based on R14.12 with better interoperability with plain AllJoyn applications Other language bindings in next releases Interface Definition Language Extensions Initial enhancements (named types) will be introduced for R14.12 release of devtools/codegen Subsequent evolutions (optional fields, enumerations, data model evolution support, …) for next releases Code Generator DDAPI/C++ code generator for the experimental DDAPI version is available on a feature branch in the Alliance git repositories version that coincides with the DDAPI R14.12 release is underway

3 November 2014 AllSeen Alliance ‹#› Our lasting legacy must not be an API, but a vision. Make Alliance members think outside of the ad hoc and remote control use cases. Stimulate the definition of best practices and conventions for the idiomatic, expected use of AllJoyn in IoT contexts. Foster the development of new, unexpected uses for smart devices and the data they share over AllJoyn.

3 November 2014 AllSeen Alliance ‹#› Thank you Follow us on For more information on AllSeen Alliance, visit us at: allseenalliance.org & allseenalliance.org/news/blogs