Project

General

Profile

INUIT datasource - Proposition d'ajouts post-v0.3.x

===== Propositions du 19.01.2016 =====

Propositions pour les prédictions

Référence : http://inuit.iict.ch/1/doc/spec2.html

----- Proposition 1 : Conserver le format actuel, se baser sur le temps "maintenant" -----

Le format des endpoints cars et roads ne change pas, on se base (côté Front-End) sur le temps "maintenant" pour déterminer si les données reçues sont des prédictions ou non.

Avantage : Le plus simple ! (En tout cas pour le côté client.)

Problème : Obliger de se baser sur le temps "maintenant" réel, pas la possibilité de le "déplacer".

----- Proposition 2 : Rajouter un flag "predicted" et se baser sur ce dernier -----

Le format des endpoints cars et roads se voient dotés d'un champ "predicted" supplémentaire, indiquant s'il s'agit d'une prédiction (true) ou non (false).

Avantage : On peut "déplacer" le début du temps des prédictions, ce qui est plus pratique si on souhaite faire des simulations.

Problème : Les endpoints cars et roads renvoient "inutilement" en boucle 1 champ qui au final pourrait être réduit à 1 champ demandé une seule fois (et non pas inclus dans chaque car/road). Voir proposition 3 ci-dessous !

----- Proposition 3 : Nouvel endpoint "simulations" -----

Créer un nouvel endpoint pour les simulations, qui contiendrait simplement les configurations des différentes simulations. On les rendrait optionnelles pour éviter les erreurs, avec des valeurs par défaut côté client en cas d'absence de configuration.

Le nom et les champs de l'endpoint proposé sont bien sûrs sujets à discussions.

Proposition de schéma :

{
    "$schema": "http://json-schema.org/draft-04/schema#",
    "title": "Simulation",
    "description": "A simulation configuration object for CrowdStreams simulations",
    "type": "object",
    "properties" : {
        "simulationId": {
            "description": "unique simulation id",
            "type": "number" 
        },
        "predictedTimestampThreshold": {
            "description": "time threshold since when the datasource will return predictions instead of actual values (null equals \"use current time as threshold\")",
            "type": "number" 
        }              
    } 
}

Avantage : Nouvel endpoint prêt pour d'autres configurations futures, on récupère une seule fois l'information sans "polluer" les endpoints cars et roads

Problème : Probablement le moins simple à implémenter. Peut-être "trop gros" pour une ligne de configuration par simulation.