Domanda

Sono stato abbastanza fortunato da non fare alcuno sviluppo web basato su cgi-bin .cgi. Ma generalmente quelli che non sembrano "mancare" quei giorni.

Un progetto a cui ho aderito di recente ha un problema di prestazioni quando si tratta delle pagine che devono comunicare con un sistema legacy che ha un'API basata su CGI-BIN. Tale sistema è COGNOS 7.

Il feedback che ho ricevuto finora è che 'COGNOS è lento' ma altri hanno riportato un grande successo con COGNOS, penso che abbia più a che fare con l'accesso via CGI-BIN e non con le prestazioni di COGNOS in sé e per sé .

Tutto ciò che ha detto quali sono i principali problemi che hanno reso lo sviluppo web basato su CGI-BIN non performante, difficile, ecc ...

È stato utile?

Soluzione

Il problema architettonico fondamentale con i sistemi basati su CGI-BIN è che ogni richiesta HTTP richiede al server di avviare un nuovo processo. Ciò influisce sulle prestazioni in vari modi:

  • È costoso avviare il processo, poiché le pagine del sistema operativo nel programma, impostano il processo, ecc.
  • Le risorse non possono essere condivise tra le richieste, quindi è necessario configurare qualsiasi connessione DB, ecc. con ogni richiesta
  • Lo stato della sessione dell'utente non può essere conservato in memoria, quindi deve essere mantenuto con ogni richiesta

Altri suggerimenti

Per me il più grande dolore con la CGI è che i miei programmi CGI devono "imparare". tutto ogni volta che si avviano. Se funzionassero costantemente, non sarebbe il caso, ovviamente ...

Lo svantaggio principale, IMHO, era lo stesso svantaggio di tutta la codifica di livello inferiore: invece di programmare nel dominio problematico, era necessario programmare nel dominio di implementazione. Il risultato finale era sostanzialmente identico: una risposta HTTP veniva inviata a un client in base a una richiesta HTTP. Tuttavia, ottenere in quel punto era molto più complicato dal punto di vista della programmazione.

Apache ha diverse soluzioni a questo per varie lingue (ad es. mod_perl ) in modo che uno script venga invocato solo una volta, quindi tenuto in memoria per un rapido recupero. Esistono ancora numerosi siti guidati dal protocollo GCI, molti dei quali eseguiti con una latenza ragionevolmente bassa, se ben codificati e configurati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top