|
|
|
![]() |
|
Strumenti |
![]() |
#1 |
Senior Member
Iscritto dal: Jun 2009
Messaggi: 5502
|
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 |
![]() |
![]() |
![]() |
#2 |
Senior Member
Iscritto dal: Jan 2008
Messaggi: 8406
|
|
![]() |
![]() |
![]() |
#3 |
Senior Member
Iscritto dal: Jun 2009
Messaggi: 5502
|
diciamo, inviarsi dati in maniera sincrona o asincrona, ma soprattutto in maniera sicura
|
![]() |
![]() |
![]() |
#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. |
|
![]() |
![]() |
![]() |
#5 |
Senior Member
Iscritto dal: Jun 2009
Messaggi: 5502
|
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 |
![]() |
![]() |
![]() |
#6 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 3220
|
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 |
![]() |
![]() |
![]() |
#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? |
|
![]() |
![]() |
![]() |
#8 |
Senior Member
Iscritto dal: Jun 2009
Messaggi: 5502
|
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 |
![]() |
![]() |
![]() |
#9 |
Senior Member
Iscritto dal: Apr 2005
Messaggi: 3220
|
Json è uno standard su come inviare i dati. Ma lo è anche xml per dire, anche CSV se proprio.
Se poi ti piace Json, usalo! ![]() |
![]() |
![]() |
![]() |
#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. |
|
![]() |
![]() |
![]() |
#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: 22:57.