View this PageEdit this PageUploads to this PageVersions of this PageHomeRecent ChangesSearchHelp Guide

Rediseño de captura

Rediseño de la infraestructura de captura de datos


Conclusiones sacadas del desarrollo de radioteldriver

Problemas: baja legibilidad de código


Tiene el problema de tener demasiado código heredado y haber sido escrito sin conocer exactamente cómo funciona... por lo que no se han podido reescribir las partes que no son lógicas. Además se han hecho contrucciones complicadísimas (radiotel_core) para cosas sencillas sólo por no tener claro como incrustarlo en el código existente de mejor manera.

Recomendaciones de trabajo sobre este código:


  • Separar la funcionalidad de comuncación con captura (en varios APIs)
    • Libería básica de comunicación (router)
    • Obediencia a mensajes estándar (control)
    • Helper para accounting estándar (xEstado, GenerarVersionActual())
    • Helper de almacenamiento de estados de los esclavos
  • Separar la parte propia del programa
    • Mensajes específicos de la apli (ninguno en este caso)
    • comunicación con los esclavos

Ejemplos de modularización ya realizada (y con éxito razonable)


LibreríaDescripciónOrigenUsado en
modbustcpComunicación con unidades maestras modbus vía TCP-varios
logproduccionGeneración de ficheros de logCRP/ISACRP/ISA
radioteldriver
radserver
serversocket/clientsocketCreación de clientes y/o servidores TCP, con uso trivial para comunicaciones en texto planoSuperado por simplesocketaacserveraacserver
retroserver
radserver
radioteldriver
parsehelperParseado de ficheros de configuraciónSQLnewmanagersimSQLnewmanagersim
new_manager
CRP/ISA
radioteldriver
softvarFicheros de configuración o variables "runtime" con manejo similar al de las variables de entornoNo reduce suficiente complejidad para ser recomendableradserverradserver
simplesocket/simplestringServidores y clientes TCP/IP. Con Simplestring se implementa buffering y opcionalmente protocolos textuales-netbeuidaemon/comtret
retroserver
tciiclient
tciiserver
tciiwindowatch
tetradrv
...