Domanda

Abbiamo bisogno di prendere dozzine di protocolli diversi da sistemi come sistemi di sicurezza, allarmi antincendio, sistemi di telecamere ecc. e integrarli in un unico protocollo comune.

Vorrei che questo fosse un server di messaggistica a cui molti sistemi potevano abbonarsi e o tramite cui comunicare.

  • polling e non polling "driver" (convertitori di protocollo)
  • gestisci RS232 / RS485 / tcp
  • driver " programmabili " in un linguaggio gestito come Java o C #
  • capacità del motore delle regole

Biztalk si adatta a questo?

Ci sono alternative open source?

Esiste un modo EE Java / Java per farlo?

Da un lato il sistema sarebbe un sistema SCADA dall'altro è una specie di middleware / server di messaggistica.

Ogni pensiero sul modo migliore di procedere sarebbe apprezzato. So che ci sarà una notevole quantità di programmazione da parte del guidatore, per quanto tentata da me, costruire l'intero sistema da zero non sarebbe appropriato.

È stato utile?

Soluzione

Se non ti dispiace lavorare sulla piattaforma Java, c'è un commutatore di protocollo leggero e l'implementazione di Enterprise Integration Patterns in un progetto open source chiamato Apache Camel .

Camel può già parlare la maggior parte dei protocolli e tecnologie comuni come files , email , JMS , < a href = "http://activemq.apache.org/camel/xmpp.html" rel = "nofollow noreferrer"> XMPP e così via, quindi non ci sarebbe alcuna vera codifica richiesta per queste cose.

Per aggiungere nuovi protocolli personalizzati il ??percorso più semplice è quello di basarsi sul componente MINA che si occupa di tutto il networking, la gestione dei socket, il threading e così via (es. NIO contro BIO et al).

Quindi lo si estende semplicemente per aggiungere il proprio codec di protocollo (come eseguire il marshalling / unmarshal dei messaggi sul socket con eventualmente l'utilizzo di frame ecc.)

Il componente HL7 è un esempio di ciò. Ulteriori dettagli sulla scrittura di codec MINA qui .

Quindi una volta che hai il tuo componente cammello (chiamiamolo foo) puoi quindi passare da qualsiasi protocollo a qualsiasi altro protocollo usando semplici URI per implementare qualsiasi Schemi di integrazione aziendale come Router basato sul contenuto , Elenco destinatari , Slip di routing ecc

es. nel codice Java

// route all messages from foo
// to a single queue on JMS
from("foo://somehost:1234").
  to("jms:MyQueue");

// route all messages from foo component
// to a queue using a header
from("foo://somehost:1234").
  recipientList().
    simple("activemq:MyPrefix.${headers.cheese}");

Altri suggerimenti

Eviterei BizTalk per SCADA e RS232 / RS485 perché in genere richiedono soluzioni in tempo reale (o almeno a bassa latenza). BizTalk è ottimizzato per un throughput elevato, ma presenta l'inconveniente di avere un'elevata latenza per impostazione predefinita.

Puoi modificare BizTalk per bassa latenza, ma a questo punto ti accorgerai di bypassare quasi tutto ciò che BizTalk ha incorporato e probabilmente si metterà in mezzo invece di aiutarti.

www.livedata.com

È un po 'caro ma è un motore basato su Python che può prendere un protocollo e sputarne un altro, è già configurato per più protocolli scada come ICCP, modbus, OPC e DNP. Quindi puoi parlare quello che vuoi a valle.

  • Giovanni

Suggerisco OpenSCADA . Il sito Web al momento è un po 'un casino, ma il software è attivamente in uso e in fase di sviluppo attivo. Un obiettivo esplicito è quello di creare un'interfaccia comune, indipendente dalla tecnologia, per i casi d'uso di SCADA (anche se al momento la direzione è più o meno orientata verso java [ma sperimentiamo anche con ikvm per creare una versione .NET]).

Quindi potresti usare OpenSCADA per comunicare con tutto l'hardware " dispositivi e quindi creare un bridge per il resto del middleware oppure creare un bridge OpenSCADA come plug-in all'interno del middleware. Ad esempio, disponiamo già di driver che si collegano ai lettori di schede collegati tramite un server seriale alla LAN.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top