Come progettare un meta modello per la configurazione? [chiuso]

1

Nel nostro software abbiamo un'architettura client / server in cui il server è effettivamente in esecuzione su un sistema embedded con vari componenti hardware (sensori, ecc.). I diversi sensori e altre funzionalità del sistema stesso possono essere configurati dal cliente. Il client non sa in anticipo quali funzionalità e componenti possono esistere sul server. Client e Server stanno comunicando su una rete. Il client dovrebbe essere facile da usare. I vincoli tecnologici e politici ci impediscono di usare HTML / JS come client (usiamo .NET).

Per farla breve, vogliamo fornire un meta-modello generale per la configurazione che descrive le entità di configurazione, le loro proprietà, le relazioni tra le proprietà, le regole di convalida, ecc.

Tuttavia stiamo realizzando che questo è in realtà un compito piuttosto complesso e mi piacerebbe sentire opinioni, consigli utili e, auspicabilmente, quadri o modelli esistenti che possano essere utilizzati. Al momento stiamo cercando RDF come linguaggio possibile per creare dinamicamente un'ontologia che descriva tutte le relazioni descritte sopra, ma RDF sembra molto complesso per questo.

Qualche idea o suggerimento?

    
posta aKzenT 01.12.2015 - 20:58
fonte

2 risposte

1

Utilizza un dizionario o un elenco di chiavi / valori per codificare gli attributi del sensore. È possibile serializzarlo per inviarlo via cavo e non è necessario conoscere in anticipo il modello di dati (ad esempio i sensori) per farlo funzionare. Includere un campo "Tipo" nell'oggetto contenente il dizionario, in modo da sapere che tipo di sensore è.

public class Sensor
{
    public SensorType SensorType { get; set; }
    public string Description { get; set; }

    // Properties common to all sensors go here
   ...

   // Properties specific to sensor type go into the dictionary.
    public Dictionary<string, string> SensorAttributes { get; set; }
}
    
risposta data 01.12.2015 - 21:14
fonte
0

Perché non utilizzare Configurazione personalizzata .NET ? Ha molto da raccomandare:

  • Definisci la configurazione con qualsiasi livello di complessità, nidificazione, ecc.
  • Le relazioni sono facilmente definite nel codice XML di configurazione e facili da gestire tramite codice .NET.
  • Include la convalida.
  • Se definito in un assembly separato, tale assembly di configurazione può essere utilizzato su qualsiasi numero di progetti.
  • Utilizza la convenzione .NET!
  • A seconda del pubblico, leggere XML può essere molto intuitivo. Grok a colpo d'occhio.
  • Aggiungi un ProtectedConfigurationProvider per memorizzare la configurazione in posizioni alternative o formati. ( Non è solo per la crittografia. )
risposta data 02.12.2015 - 05:14
fonte

Leggi altre domande sui tag