|
|
|
|
Strumenti |
11-07-2020, 18:19 | #1 |
Senior Member
Iscritto dal: Jun 2009
Messaggi: 5143
|
Comunicazione Python e altri linguaggi
Dovendo far comunicare Python, Java o Kotlin e Swift, JSON e SSL può essere una buona soluzione?
Grazie in anticipo |
12-07-2020, 13:58 | #2 |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
|
12-07-2020, 14:35 | #3 |
Senior Member
Iscritto dal: Jun 2009
Messaggi: 5143
|
diciamo, inviarsi dati in maniera sincrona o asincrona, ma soprattutto in maniera sicura
|
12-07-2020, 15:27 | #4 | |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
Se non c'è problema che siano programmi diversi, completamente separati, ovviamente puoi usare vari meccanismi di IPC. Ma se, ipoteticamente, volessi creare un solo programma, usando più linguaggi, la cosa non è possibile in linea generale. |
|
12-07-2020, 17:17 | #5 |
Senior Member
Iscritto dal: Jun 2009
Messaggi: 5143
|
condivido il Tuo parere
nel dettaglio ad esempio, un server con Python elabora dati in specifiche situazioni o su richiesta di app o applicazioni su client, invia dati una situazione di questo tipo |
13-07-2020, 07:51 | #6 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 3087
|
Ovviamente il tutto dipende dalle necessità specifiche, ma se la metti così io metterei in ascolto python su porta 80 con https e aspetterei le chiamate http in cui mi passono ciò che mi serve (JSON o XML potrebbe essere il formato). In questo modo puoi usare il protocollo http per le risposte.
My 1/2 cent |
13-07-2020, 08:59 | #7 | |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Già usare il termine server, significa che hai stabilito un'architettura per il sistema. E hai deciso di avere un programma Python, che funge da server, raggiungibile via socket.
Quote:
E' necessario un canale di comunicazione a larga banda o sono accettabili gli overhead di comunicazioni tipici delle comunicazioni su socket? |
|
13-07-2020, 09:11 | #8 |
Senior Member
Iscritto dal: Jun 2009
Messaggi: 5143
|
girano su macchine diverse
sia rispondendo a domande sia attivamente in ogni caso, mi sembra di intuire che la pensate indicativamente come me JSON essendo uno standard dovrebbe "risolvere" un pò di problemi |
13-07-2020, 09:47 | #9 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 3087
|
Json è uno standard su come inviare i dati. Ma lo è anche xml per dire, anche CSV se proprio.
Se poi ti piace Json, usalo! |
13-07-2020, 10:18 | #10 | |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
Quote:
Non è il più efficiente però! Come codifica per il trasferimento dati via rete, è tutto sommato anche la più indicata. Se il trasferimento avviene via file, pipe, memoria condivisa o altro, e c'è necessità di una codifica più compatta ed efficiente, è meglio guardare a codifiche binarie. |
|
19-07-2020, 13:11 | #11 |
Senior Member
Iscritto dal: Mar 2010
Messaggi: 2400
|
Se hai più componenti che devono comunicare tra loro, che sia sicuro o non sicuro, che sia sincrono o asincrono, che sia streaming o batch, vuoi essere agnostico rispetto a linguaggi e tecnologie.
Devi poter aggiungere, rimuovere, aggiornare o sostituire ciascun componente senza rogne sapendo che tutto il resto del sistema non è a conoscenza della modifica. Non conosco il tuo use case, ma a naso ti direi di usare delle code (Kafka) per interconnettere i vari sistemi se si parla di un flusso di dati (streaming o meno) che deve passare attraverso i vari componenti in una pipeline di processamento e/o un Key/Value store (Redis, Ignite, Aerospike...) se la stessa roba deve essere acceduta più volte, magari in concorrenza. A questo punto ti definisci la tua architettura decidendo che semantica di delivery ti serve e una volta definita l'architettura usi il linguaggio e le tecnologie che preferisci per ciascun componente tanto son tutti microservizi e ciaone
__________________
MoBo: Asus Rampage II Extreeme || CPU: Xeon w3690 @ 3.6 GHz|| RAM: Patriot Viper 3x2GB 1600Mhz + 3x2GB Kingston || VGA: Zotac GTX 980 AMP! Omega || PSU: Enermax Libery 620w || SSD: Samsung 830 128GB || HDD: nMila GB || CASE:NZXT H440 NB1: rMB PRO 2019 i9 32GB || NB2: Apple rMB 12" m7 || NB3: MSI GS73 7RE |
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 18:33.