Sommario

introduzione

Questa pagina contiene tutte le informazioni necessarie agli sviluppatori per contribuire alla piattaforma Hotmaps o per capire come funziona.

To Top

Integrazione del set di dati

L'integrazione di nuovi set di dati pubblici viene gestita come segue:

  1. i set di dati devono essere inviati a un repository git ( aggiungi i tuoi set di dati su GitLab )
  2. ogni notte uno script integra i dataset nuovi / aggiornati nella piattaforma DEV
  3. se tutto ha funzionato bene, il set di dati è ora disponibile sulla piattaforma DEV e gli sviluppatori possono integrarlo nel loro codice
  4. Una volta terminata la codifica, le nuove funzionalità vengono aggiunte alla piattaforma di produzione tramite una nuova versione

Integrazione dei dati

Se un set di dati fallisce durante l'integrazione, viene creato un problema su Taiga (piattaforma di gestione del progetto). Il problema mostra l'errore sollevato e lo sviluppatore dovrebbe risolverlo e spingere nuovamente il suo lavoro su Git in modo che lo script possa provare a integrarlo di nuovo la sera successiva.

Il codice sorgente dello script di integrazione è disponibile a questo link: Integrazione dati

To Top

Aggiungi i tuoi set di dati su GitLab

Per aggiungere set di dati all'elenco dei set di dati pubblici, devono essere inviati a un nuovo repository Git su GitLab. Ecco l'organizzazione GitLab in cui devono essere inviati i set di dati : Set di dati su GitLab .

Una volta al giorno i repository vengono controllati per nuovi commit e integrati in tal caso. Il processo di integrazione verifica se i dati sono conformi o meno alla specifica.

Ecco le specifiche: Hotmaps_Data-upload-on-Gitlab_2017-12-04_V4.pdf

To Top

Elenco dei principali repository

Il codice dell'applicazione si trova su GitHub sotto l' organizzazione Hotmaps . Questa organizzazione possiede diversi repository

  • Hotmaps-toolbox-client contiene il frontend della nostra applicazione. È un progetto angolare (JavaScript)
  • Hotmaps-toolbox-service contiene l'API per la nostra applicazione. È basato su Flask (Python)
  • modulo di calcolo di base è il modello di base che puoi utilizzare per creare i tuoi moduli di calcolo per Hotmap
  • un elenco di moduli di calcolo

To Top

Come contribuire al codice

Se vuoi aggiungere del codice a Hotmaps hai due possibilità: se vuoi aggiornare direttamente l'interfaccia o il backend, devi modificare il client o il repository del servizio del toolbox. Se vuoi aggiungere il tuo modulo di calcolo, puoi creare il tuo repository seguendo il readme del repository base_calculation_module

Se vuoi eseguire del lavoro sul repository Git, non lavorare direttamente con il ramo master. Crea un nuovo ramo dal ramo di sviluppo, fai il tuo lavoro su questo ramo e quando la tua funzionalità viene testata, puoi unire il tuo lavoro con il ramo di sviluppo come mostrato nel grafico seguente.

Git_workflow

Per inviare qualcosa ad alcuni repository Hotmaps devi essere un membro del team Hotmaps, se non lo sei puoi ancora eseguire un fork del nostro strumento per sviluppare il tuo strumento.

Puoi trovare ulteriori informazioni su come lavorare in questi documenti:

To Top

Descrizione dell'infrastruttura IT

ReverseProxy_architecture_latest

Tutti i servizi e i componenti vengono utilizzati tramite il proprio contenitore Docker. Tutti questi contenitori sono definiti in un unico file docker-compose. L'immagine sopra rappresenta l'architettura IT di Hotmaps.

Alcune organizzazioni partner limitano la comunicazione solo alla porta 80. Per evitare i problemi causati da questa limitazione, è stata realizzata la creazione di un proxy inverso. Questo proxy inverso offre un unico punto di ingresso e quindi distribuisce la richiesta inviata dal cliente al servizio interessato. Il proxy inverso è composto da tre componenti:

  1. Server proxy inverso: funge da punto di ingresso univoco e distribuisce le richieste ai servizi giusti.
  2. Proxy-gen: è un servizio che mappa automaticamente tutti i servizi nel proxy inverso. Pertanto, non è necessario aggiungere manualmente un nuovo servizio alla configurazione del proxy
  3. lets-encrypt: è un servizio che consente l'utilizzo del protocollo SSL. È necessario per attivare il protocollo https. I certificati SSL sono firmati da un indirizzo e-mail configurato in questo servizio.

Esistono tre reti:

  • hotmaps_nginx consente al proxy inverso di comunicare con l'API, il frontend e il GeoServer. Consente principalmente di distribuire una richiesta al servizio corretto tra i tre.
  • hotmaps_backend permette la comunicazione tra tutti i componenti del backend: API, frontend, GeoServer e il database PostgreSQL.
  • hotmaps_cm-net consente la comunicazione tra ogni modulo di calcolo e l'API.

Ogni modulo di calcolo ha il proprio contenitore Docker.

To Top

Esegui con Docker

HotMaps utilizza Docker software e Docker-Compose strumento per gestire i contenitori. Un file docker-compose.yml contiene l'intera configurazione dell'architettura Docker (configurazione di contenitori, reti, collegamenti, ...). Ciò consente ai contenitori di essere eseguiti con un semplice comando:

 docker-compose up 

Altre informazioni su docker-compose sono disponibili sul sito Web di Docker: riferimento alla riga di comando di Compose e riferimento al file di composizione .

C'è un solo contenitore che viene eseguito separatamente dagli altri: è il database perché deve rimanere sempre attivo. Ecco perché non si trova nel file di configurazione docker-compose.

To Top

Infrastruttura server

Infrastruttura

Per il momento, il server è ospitato presso l'HES-SO in Svizzera. Sono disponibili 2 macchine: una per lo sviluppo (sviluppo e test) e una per la produzione (l'attuale toolbox, disponibile su www.hotmaps.eu ).

Entrambe le macchine hanno le stesse specifiche:

  • CPU: Intel Xeon E5-2680 v4 (8) a 2,4 GHz)
  • RAM: 16 GB
  • HDD: 500 GB
  • Sistema operativo: Ubutnu 16.04 LTS

Prestazione

Spesso eseguiamo test delle prestazioni sul server di sviluppo per garantire un certo numero di utenti simultanei.

Ad esempio, di seguito sono riportati i risultati della prima versione beta rispetto ai test di rilascio futuri. La nuova versione include alcuni miglioramenti delle prestazioni.

Questo esempio mostra i test delle prestazioni di utenti simultanei che utilizzano la stessa funzione: "curva di durata per selezione ettaro". La linea in grassetto mostra il limite in cui il server inizia a generare errori. La selezione di ettari è un buon esempio in quanto mostra le query che richiedono la maggior parte delle risorse.

Versione beta di marzo 2019

| Numero di utenti simulati | Tempo medio | Mediana | Tempo massimo | Tempo minimo | Percentuale di errori | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 1042 | 1042 | 1042 | 1042 | 0 | | 20 | 3608 | 3858 | 4475 | 2156 | 0 | | 50 | 7337 | 7595 | 11791 | 1568 | 0 | | 100 | 13897 | 13644 | 24492 | 1875 | 0 | | 200 | 27135 | 26380 | 51967 | 3045 | 0 | | 300 | 41237 | 43083 | 73245 | 3223 | 10.67 |

Versione finale (agosto 2020)

| Numero di utenti simulati | Tempo medio | Mediana | Tempo massimo | Tempo minimo | Percentuale di errori | | --------------------- | ------------ | ------ | -------- | -------- | -------------------- | | 1 | 1025 | 970 | 1151 | 956 | 0 | | 20 | 1671 | 1732 | 2085 | 1113 | 0 | | 50 | 3527 | 3622 | 5593 | 982 | 0 | | 100 | 6648 | 6764 | 11854 | 1118 | 0 | | 200 | 12904 | 12801 | 24163 | 1192 | 0 | | 300 | 19521 | 19382 | 38116 | 1060 | 0 |

To Top

READ.ME

Read.ME

To Top

Come definire gli indicatori

Definizione dell'indicatore

To Top

Come citare

Daniel Hunacek, Lucien Zuber, Matthieu Dayer, in Hotmaps Wiki, sezione sviluppatori (settembre 2020)

To Top

Autori e revisori

Questa pagina è stata scritta da Daniel Hunacek, Lucien Zuber e Matthieu Dayer ( HES-SO ).

☑ Questa pagina è stata recensita da Mostafa Fallahnejad ( EEG - TU Wien ).

To Top

Licenza

Copyright © 2016-2020: Daniel Hunacek, Lucien Zuber e Matthieu Dayer

Licenza internazionale Creative Commons Attribution 4.0

Questo lavoro è concesso in licenza con una licenza internazionale Creative Commons CC BY 4.0.

Identificatore licenza SPDX: CC-BY-4.0

Testo della licenza: https://spdx.org/licenses/CC-BY-4.0.html

To Top

Riconoscimento

Vorremmo esprimere il nostro più profondo apprezzamento al progetto Hotmaps di Orizzonte 2020 (contratto di sovvenzione numero 723677), che ha fornito i finanziamenti per svolgere la presente indagine

To Top

This page was automatically translated. View in another language:

English (original) Bulgarian* Czech* Danish* German* Greek* Spanish* Estonian* Finnish* French* Irish* Croatian* Hungarian* Lithuanian* Latvian* Maltese* Dutch* Polish* Portuguese (Portugal, Brazil)* Romanian* Slovak* Slovenian* Swedish*

* machine translated