Come può il PHP inviare un file all'API Java?

2

Attualmente sto lavorando a un progetto per costruire un sistema di valutazione online come codeforces . È qui che qualcuno può caricare un file per una soluzione di programmazione e il nostro sistema compilerà il codice e genererà l'output e infine invierà il risultato che la soluzione sia corretta o meno.

Il front-end sarà costruito in PHP e il motore di compilazione sarà in Java Rest api. Ciò richiederà una richiesta http, in cui la richiesta contiene il file da compilare. Il file è come A.cpp che verrà compilato da java api e la risposta come risultato (giusto / sbagliato).

Ora la mia domanda riguarda il file che viene inviato da PHP a Java API. Come può il PHP inviare un file all'API Java? Ci sarà una percentuale difile server necessaria? O ho bisogno di un file server? Se ho bisogno di un file server qual è il vantaggio che otterrò? In realtà non ho capito il motivo di un file server.

Grazie.

    
posta Muztaba Hasanat 22.07.2016 - 21:03
fonte

1 risposta

1

Come può il PHP inviare un file all'API Java

Questo può essere fatto in diversi modi: post HTTP, flusso di dati ecc.

Sarà necessario un file server? O ho bisogno di un file server?

Dipende.

Se ho bisogno di un file server, qual è il vantaggio che otterrò?

I vantaggi di un file server sono la condivisione delle risorse di archiviazione. È come avere una stampante di rete invece di avere una stampante desktop economica. Con un file server, il programma PHP potrebbe caricare il file sorgente sul file server e inviare solo il nome del file in un messaggio all'API Java. Il risultato o il processo potrebbe essere memorizzato nel file server e puoi scaricarlo con un'altra chiamata API. Ciò rende effettivamente il processo asincrono. E i processi asincroni sono più facili da eseguire il debug e pianificare l'elaborazione di massa.

Un altro vantaggio è che può essere gestito da un team che si occupa di backup, tempi di conservazione, ridondanza, ripristino di emergenza, ecc.

Modifica. Perché i processi asincroni sono più facili da eseguire il debug?

  • I due layer non devono essere attivi e funzionanti per testarne uno. Ad esempio, per testare il codice PHP che carica il file sul file server, il livello dell'API Java non deve essere attivo. Per testare l'API Java non devi nemmeno prendere in giro la chiamata PHP. Basta inserire un file nel server e testare il metodo Java che legge il file e lo compila.
  • Fondamentalmente è più facile eseguire il debug e testare un processo di massa che prende una grande quantità di file e lo elabora.
  • Ti faccio un esempio: per una telefonata (una comunicazione sincrona) da passare, ci deve essere una persona nel destinatario per rispondere alla chiamata. D'altra parte quando si invia un'e-mail (una comunicazione asincrona), il destinatario non deve essere connesso a Internet, ma non appena arriva online riceverà una notifica o un messaggio di posta elettronica nella propria casella di posta. Puoi testare separatamente la parte mittente e la parte ricevente senza deriderà.
  • Inoltre, è necessario scrivere meno codice di gestione degli errori, ovvero meno codice da testare e eseguire il debug.
risposta data 22.07.2016 - 21:25
fonte

Leggi altre domande sui tag