Cosa c'è dietro »

Zend - The PHP Company

Zend Platform Download Server Approfondimenti

Additional Products:
Zend Core |
Zend Studio |
Zend Guard

Zend Download Server è in grado di sollevare Apache dal compito di gestire l’invio di file di grandi dimensioni, lasciandolo più libero di gestire le più complesse richieste PHP. In questo modo, Zend Download Server può aumentare fino a 10 volte la velocità di trasferimenti di file simultanei!

Zend Download Server può operare in due modalità: manuale e trasparente. Nella modalità manuale l’utente richiama manualmente la funzione PHP zend_send_file(), passandole il nome del file di cui effettuare il download. Una chiamata di zend_send_file() inizia immediatamente il download del file e termina l’esecuzione dello script PHP.

Nella modalità trasparente, invece, si preconfigurano i file da trasferire mediante Zend Download Server inserendoli nel file di configurazione del server web (per esempio aggiungendo la riga “AddType application/x-httpd-php .mpeg”) e si specificano i tipi mime da gestire nel file zend_mime_types.ini. Si può anche configurare la direttiva min_file_size (usando l’interfaccia di amministrazione di Zend Download Server). In questo modo, i file del tipo specificato e la cui dimensione è superiore a min_file_size saranno gestiti automaticamente.



Funzionamento di Zend Download Server

Zend Download Server è sostanzialmente un processo indipendente creato all’avvio di Zend Platform (quando si avvia Apache). Normalmente si riceve da un client web la richiesta di download di un file dal server web, e il server provvede a gestire la richiesta. Il processo è illustrato dal seguente diagramma::

Zend Download Server Diagramm

Ora supponi che un client web invii la richiesta di download di un file usando Zend Download Server (tramite una chiamata esplicita a una funzione dell’API, oppure usando le impostazioni della modalità trasparente). Apache riceve la richiesta, ma invece di gestirla direttamente (cosa che causerebbe un carico per il server) usa un pipe (un metodo di comunicazione IPC - interprocesso) per passare il descrittore di file della connessione al daemon Zend Download Server. Zend Download Server, in risposta, usa ‘select’, che in pratica è una chiamata di sistema usata per operazioni di I/O asincrone. La chiamata di sistema select rimane inattiva finché si verifica una condizione su un descrittore di file, oppure un timeout, o viene ricevuto un segnale. Nel nostro caso Zend Download Server esamina il parametro restituito dalla chiamata select, determina quale descrittore di file è cambiato e poi usa un socket con una porta appropriata (>1024) per elaborare la richiesta. In tal modo, il compito di gestire il download del file è reindirizzato a un altro processo, che usa un socket dedicato senza interferire con il processo di Apache. Il diagramma seguente illustra il meccanismo


Zend Download Server Diagramm


Si può anche specificare il numero massimo di client concorrenti che possono usare Zend Download Server, e impostare altre opzioni tramite l’interfaccia utente. Per ulteriori informazioni, consulta il Zend Download Server White Paper (in inglese).

Torna alla pagina delle funzionalità