CUPS è uno spooler di stampa modulare per sistemi operativi di tipo Unix che permette ad un computer di funzionare come un efficace print server. Può accettare lavori di stampa da computer client, elaborarli e inviarli alla stampante richiesta. CUPS è incluso in molte distribuzioni Linux e attualmente è la struttura di stampa di base per la piattaforma Apple Macintosh. Ha un unico compito, e lo svolge piuttosto bene. Le cose vanno decisamente peggio quando tenta di fare tutto per tutti.
Precedentemente noto come Common Unix Printing System, CUPS è un programma di utilità abbastanza semplice e di facile utilizzo, personalizzabile mediante l’uso di filtri. A livello macroscopico è costituito da due sezioni: un server CUPS e un client CUPS, che possono essere installati o meno sullo stesso dispositivo. Il client CUPS costituisce essenzialmente il meccanismo che trasporta lavori di stampa e notifiche tra utente e server. Il server CUPS gestisce le code di stampa, lo stato delle stampanti e il rendering in vari linguaggi PDL (Page Description Language), oltre alle opzioni di finitura. Avendo una conoscenza adeguata del funzionamento interno di server e client CUPS, è possibile scrivere filtri in grado di svolgere innumerevoli attività, come quello creato da me tempo fa e condiviso in video:
https://www.youtube.com/watch?v=WzEhKs_CvJc/
Quand’è più indicato, dunque, l’uso del sistema CUPS e quando, invece, sarebbe meglio una soluzione per la stampa aziendale come VPSX®? Dipende da fattori quali dimensioni e complessità del vostro panorama di stampa, nonché dalla capacità degli addetti all’assistenza tecnica di sviluppare e personalizzare gli script. Per la stampa da server CUPS si possono configurare mediante un’interfaccia Web solo le parti principali delle code di stampa e alcune opzioni. La maggior parte dell’ambiente deve essere creata o configurata manualmente. Ciò richiede un livello di perizia superiore rispetto a una soluzione per la gestione dell’output come VPSX, che offre molte delle funzioni di amministrazione e personalizzazione tramite comode schermate Web.
Il sistema CUPS mostra tutti i suoi limiti quando bisogna gestire la stampa da più sistemi diversi, ognuno con le sue peculiarità. Al contrario, in situazioni come queste il software VPSX e altre soluzioni analoghe si rivelano preziose. Per corroborare questa affermazione farò ricorso a un esempio che io chiamo “del villaggio in riva al fiume”.
In riva a un fiume c’è un villaggio che produce souvenir molto apprezzati dai turisti. Sulla riva opposta del fiume c’è una grande città di interesse turistico, dove gli abitanti del villaggio vendono la loro merce. Per andare in città si può percorrere la strada asfaltata che aggira la diga, lunga una quindicina di chilometri, oppure lo stretto ponte pedonale che attraversa il fiume, lungo solo 300 metri e largo poco più di un metro. A volte è più logico trasportare le merci a piedi attraverso il ponte, ad esempio per consegnare in città solo un piccolo quantitativo di souvenir provenienti da un unico negozio del villaggio. Se, invece, un grande negozio in città richiede grossi volumi di merci da più produttori per rifornire il proprio magazzino e desidera consegne programmate a una certa ora, indipendentemente dalla situazione climatica, allora è più logico usare la strada asfaltata. Perciò, la soluzione “migliore” dipende dalla quantità di merci richieste e dalla frequenza dei viaggi.
Recita un vecchio detto: “Se non hai che un martello, ogni cosa ti sembra un chiodo”. Un server Linux CUPS può rivelarsi un martello efficace in diverse situazioni, ma fatalmente arriva il momento in cui lo strumento più adatto è un cacciavite. A questo punto, inutile tentare di forzare una soluzione chiaramente inadeguata. Alla fine, passereste la maggior parte del tempo a cercare di farla funzionare in situazioni per le quali non era stata concepita.
Vi consiglio inoltre di individuare con attenzione i vostri requisiti di stampa. La soluzione che sceglierete, infatti, è destinata a restare a lungo, anche dopo che ve ne sarete andati per occuparvi di un altro progetto o ricoprire un’altra mansione. A questo proposito, vi lascio con una riflessione tratta da una delle mie vignette preferite sull’implementazione dei progetti:
http://projectcartoon.com/.