Una eina PDF al costat del servidor puja el teu fitxer als ordinadors de qui l’ofereix, el processa allà i et torna el resultat. Una eina al costat del client, en canvi, baixa el programa al teu navegador, i el programa processa el fitxer al teu propi dispositiu. En el primer cas viatja el document; en el segon, només el codi.

Aquesta sola diferència decideix qui pot arribar a veure el teu fitxer. També explica per què els dos tipus d’eina es noten diferents, fallen de maneres diferents i serveixen per a feines diferents. Aquesta explicació repassa pas a pas què passa realment en cadascun.

Què passa en una eina al costat del servidor

  1. Tries un fitxer. La pàgina l’envia per internet al servidor de qui ofereix l’eina, normalment com una pujada HTTPS.
  2. El servidor el guarda, com a mínim al disc o a la memòria mentre dura la feina, sovint en una cua amb fitxers d’altres persones.
  3. Un programa del servidor, com una biblioteca de PDF, un convertidor o un motor de reconeixement de text, fa la feina.
  4. El resultat també es guarda, i la pàgina et dona un enllaç per baixar-lo.
  5. Tots dos fitxers s’esborren més endavant, segons les normes de conservació de qui ofereix l’eina.

Abans aquest era l’únic disseny pràctic. Els navegadors eren lents, i les biblioteques que podien llegir i reescriure PDF només funcionaven en servidors. Els navegadors d’avui executen codi complex de pressa, i les biblioteques de PDF de codi obert escrites en JavaScript poden fer la majoria de feines de cada dia dins d’una pestanya.

L’HTTPS protegeix el pas 1 de qui escolti la connexió. Els passos 2 a 5 depenen de qui ofereix l’eina: la seva seguretat, l’accés del seu personal, les seves còpies de seguretat i les seves obligacions legals al país on hi ha els servidors. La majoria ho gestiona de manera responsable, però t’has de refiar que ho faci.

Què passa en una eina al costat del client

  1. Obres la pàgina de l’eina. El navegador baixa la pàgina i el seu JavaScript, com en qualsevol web.
  2. Tries un fitxer. La File API del navegador el llegeix del teu disc a la memòria de la pestanya. No s’envia res.
  3. El codi que s’executa a la pestanya fa la feina. Les parts pesades sovint s’executen en un Web Worker, un fil en segon pla, perquè la pàgina continuï responent.
  4. El resultat es crea a la memòria i te’l dona com a baixada, a través d’un enllaç temporal que apunta a la memòria del teu propi navegador.
  5. Quan tanques la pestanya, la memòria s’allibera. No hi ha res per esborrar enlloc més, perquè no s’ha enviat res.

Les eines PDF de Kopitiam funcionen així. Fan servir pdf.js, el motor de PDF de codi obert de Mozilla, per llegir i dibuixar les pàgines, amb l’analitzador executant-se en un Web Worker. Fan servir pdf-lib, una altra biblioteca de codi obert, per crear el PDF nou. Totes dues funcionen dins de la teva pestanya.

Al costat del client no vol dir que la pàgina no faci cap petició a la xarxa. Continua carregant codi, fonts i, en una web gratuïta, anuncis. El que compta és que els bytes del teu fitxer no formin mai part de cap petició.

Per què les eines al costat del client poden funcionar sense connexió

Un cop el programa és al teu navegador, no necessita la xarxa per funcionar. Per això funciona la prova sense connexió: carregues l’eina, apagues el wifi i l’eina continua treballant. Si de debò pugés el fitxer, fallaria de seguida.

Hi ha detalls que val la pena saber. Kopitiam engega el worker del motor de PDF tan bon punt s’obre la pàgina d’una eina, i no quan deixes anar un fitxer, així que les eines continuen funcionant si la connexió es talla després que la pàgina s’hagi carregat. Algunes funcions menys habituals carreguen codi addicional la primera vegada que les fas servir, com el motor de fonts per al text en alfabets no llatins. És codi que ve cap a tu, no el teu fitxer que surt.

Els límits reals del processament al costat del client

Fer la feina al teu dispositiu té costos, i una eina honesta te’ls hauria d’explicar.

  • Memòria. Tot el fitxer és a la memòria de la pestanya, sovint en més d’una còpia mentre es processa. Un escaneig de 200 MB en pot necessitar diverses vegades més. Els navegadors limiten la memòria per pestanya, i els mòbils encara més.
  • Velocitat. La feina la fa el teu portàtil o el teu mòbil, no un centre de dades. Convertir 400 pàgines en imatges, o tornar a comprimir totes les fotos d’un escaneig llarg, triga força més en un dispositiu antic.
  • Bateria i escalfament. Una feina llarga en un mòbil fa treballar de valent el processador durant una estona.
  • Feines difícils. Algunes tasques són molt més fàcils amb programari de servidor, com el reconeixement de text en arxius escanejats grans o la conversió de fitxers d’Office complexos amb la maquetació exacta. Moltes eines que per la resta funcionen al costat del client envien aquestes feines concretes a un servidor.

A la pràctica, el límit de mida d’una eina al costat del client és el teu dispositiu i no un número en una pàgina de preus. Kopitiam no té cap límit de mida de fitxer al codi, així que un fitxer molt gran o funciona o es queda sense memòria. Dividir primer un fitxer gran, o fer servir un navegador d’ordinador en lloc d’un mòbil, normalment ho resol.

Pensa en un escaneig de 40 MB que has de reduir per enviar-lo per correu, amb una connexió mòbil lenta. Una eina al costat del servidor ha de pujar els 40 MB sencers abans de començar, i després has de baixar el resultat, així que la major part de l’espera és la xarxa. Una eina al costat del client s’estalvia totes dues transferències, però és el teu mòbil qui fa la compressió, i això pot trigar una estona en un escaneig llarg. Cap de les dues és sempre més ràpida: depèn de la teva connexió i del teu dispositiu.

Híbrids, i afirmacions que cal llegir amb atenció

No totes les eines són purament d’un tipus o de l’altre. Veuràs uns quants patrons:

  • Sobretot local, una part al servidor. Les feines senzilles es fan al navegador, mentre que la conversió o el reconeixement de text es pugen. Busca una declaració per a cada eina, no una de general per a tota la web.
  • Pujada xifrada. El fitxer es puja, però xifrat durant la transmissió i en repòs. És millor que res, però el servidor igualment el desxifra per treballar-hi.
  • Local amb desament al núvol. La feina és local, però el resultat es guarda al teu compte perquè el puguis obrir més tard. És una còpia al servidor, a propòsit.
  • Aplicacions d’escriptori. Un programa instal·lat també funciona al costat del client, però també pot enviar fitxers o dades d’ús a casa seva. La seva política de privadesa continua important.

Com comprovar quina fas servir

Obre les eines per a desenvolupadors del navegador (F12 a la majoria de navegadors d’ordinador), vés a la pestanya Xarxa i passa un fitxer de prova per l’eina. Una eina al costat del servidor mostra una petició de més o menys la mida del fitxer que surt quan comences. Una eina al costat del client només mostra peticions petites, com anuncis o avisos d’analítica, i cap que creixi amb el fitxer. Fer la mateixa feina amb el wifi apagat és la versió ràpida de la mateixa prova.

Quina triar

Per a contractes, nòmines, informes mèdics i documents d’identitat escanejats, al costat del client és la millor opció per defecte: no hi ha cap còpia enlloc més que es pugui filtrar o conservar. Per a un fullet públic o una carta de restaurant, qualsevol de les dues va bé. Quan necessites una cosa que un navegador no fa bé, com el reconeixement de text en un arxiu de 2.000 pàgines, una eina al costat del servidor de bona reputació i amb una política de conservació clara és una opció raonable, per a aquell fitxer i no com a costum.