Come sottolineato-out da un precedente post in questo thread, una delle opzioni è OpenSplice DDS che è un'implementazione Open Source delle OMG DDS standard (lo stesso standard implementato da NDDS) .
I principali vantaggi di OpenSplice DDS sopra l'altro middleware che si stanno prendendo in considerazione possono essere riassunti come:
- prestazioni
- supporto Rich per QoS (persistenza, di tolleranza agli errori, Tempestività, ecc)
- Data Centricity (ad es. Possibilità di interrogare e filtrare flussi di dati)
Qualcosa che vorrei capire è quali sono i tuoi problemi con IDL. DDS utilizza IDL come modalità indipendente dalla lingua per specificare i tipi di dati utente. Comunque DDS non è limitato a IDL, potresti usare XML, se preferisci. Il vantaggio di specificare i tipi di dati, e disaccoppiamento loro rappresentazione da un linguaggio di programmazione specifico, è che il middleware in grado di:
(1) prendere lontano da voi l'onere di dati di serializzazione,
(2) generare molto tempo/spazio efficiente serializzazione,
(3) assicurare end-to-end di sicurezza tipo,
(4) consentire il filtro contenuto nel complesso tipo di dati (non solo l'header come in JMS), e
(5) enabl l'interoperabilità on the wire tra i vari linguaggi di programmazione (ad es. Java, C/C++, C#, ecc.)
A seconda del sistema o dell'applicazione che si sta progettando, alcune delle proprietà sopra riportate potrebbero non essere utili/pertinenti. In tal caso, puoi semplicemente generare uno, pochi "tipi DDS" che sono i titolari dei dati serializzati.
Se si pensa a JMS, fornisce 5 diversi tipi di argomenti che è possibile utilizzare per inviare i propri dati. Con DDS puoi fare lo stesso, ma hai la flessibilità di definire esattamente i tipi di argomento.
Infine, si potrebbe voler dare un'occhiata a this blog entry su Scala e DDS per una discussione più lunga sul perché i tipi e la tipizzazione statica sono buoni specialmente nei sistemi distribuiti.
-AC
Ho sempre pensato che i dati dovrebbero essere XML, in questo modo è semi-predefinito (tramite uno schema), ma non è legato a una lingua. – David