wiki:programmersguide/tcp

Version 10 (modified by jano.simas, 10 years ago) (diff)

--

Comunicação TCP

A comunicação da aplicação web e as instâncias dos serviços deve ser feita através do protocolo TCP.

As mensagens devem ser compostas por 3 partes:

  • Tamanho da mensagem (inteiro de 4 bytes)
  • Sinal (inteiro de 4 bytes)
  • Mensagem [opcional]

O Tamanho da mensagem deve ser calculado como: tamanho do sinal + tamanho dos dados.

Sinais disponíveis

0 TERMINATE_SIGNAL Desliga o serviço
1 STATUS_SIGNAL Requisição de informações sobre o serviço
2 DATA_SIGNAL Envio de dados
3 START_SIGNAL Inicializa um processo (Coleta, análise,...)
4 ERROR_SIGNAL Sinal utilizado para que o serviço envie mensagens de erro para a aplicação Web

Mensagem

O envio de dados deve ser feito através de um objeto JSon composto por arrays de cada tipo de dado.

A mensagem deve ser antecedida pelo cabeçalho: x00 x00 x01 x01

As tags de tipos de dados aceitos :

  • DataProviders
  • DataSeries
  • Collectors
  • Analysis

Exemplo de mensagem

{
    "DataProviders": [
        {
            "active": true,
            "class": "DataProvider",

            "data_provider_type": "",
            "description": "Testing provider",
            "id": 1,
            "intent": 0,
            "name": "Provider",
            "project_id": 1,
            "uri": "file:///home/user/MyDevel/dpi/terrama2-build/data/PCD_serrmar_INPE"
        }
    ],
    "DataSeries": [
        {
            "class": "DataSeries",
            "data_provider_id": 1,
            "datasets": [
                {
                    "active": true,
                    "class": "DataSet",
                    "data_series_id": 0,
                    "format": {
                        "mask": "fires.csv",
                        "srid": "4326",
                        "timezone": "+00"
                    },
                    "id": 1
                }
            ],
            "description": "",
            "id": 1,
            "name": "DataProvider queimadas local",
            "semantics": "OCCURRENCE-mvf"
        }
    ]
}