PROGRAMACIÓ WEB
    INTERNET

Internet és una immensa xarxa d'ordinadors interconnectats, compartint informació, a la qual s'hi pot afegir qualsevol altre ordinador en qualsevol moment. És una xarxa real, amb estructura física, formada per cables que arriben a tot arreu, soterrats o submergits, atravessant oceans, connectant continents ... Els principals nusos d'aquesta xarxa són llocs costaners. Els cables són de fibra òptica. Els bits es codifiquen en forma de centelleigs lluminosos. Viatgen a la velocitat de la llum. Intentem anar per parts.

Connexió entre dos ordinadors

Dos ordinadors es poden connectar entre sí i compartir els seus arxius. Conceptualment això sembla una idea força senzilla, però segurament no ho és tant. Un ordinador pot accedir als "seus" arxius perquè estan guardats en unitats d'emmagatzematge directament connectades a l'ordinador, identificades amb una lletra, i on els arxius estan ordenats en carpetes i subcarpetes seguint un esquema perfectament establert. L'ordinador "sap" molt bé com "moure's" per aquest lloc, mitjançant unes instruccions expressament construïdes per això. Però un altre ordinador ja no és el mateix. Aquest altre ordinador tindrà les seves pròpies unitats d'emmagatzematge, amb la mateixa estructura. Però l'ordinador en sí no té aquesta estructura. Un ordinador directament connectat a un altre no sabrà com moure's dins d'ell. Necessitarà un altre conjunt d'instruccions. És el que anomenem protocol.

El protocol, és a dir, la relació entre dos ordinadors, es pot establir en base a diferents supòsits teòrics. Però sempre parlarem d'un client i un servidor. El client serà l'ordinador que li "demana" informació a l'altre. El servidor és l'ordinador que facilita la "seva" informació al client.

Una possible forma de relació, al menys des d'un punt de vista conceptual, seria la que podríem denominar "basada en la confiança". El Servidor deixa entrar al Client, li dóna la clau del "magatzem" i li diu: "Tú mateix. Estàs a casa teva. Tria i remena."

Una altra possible forma de relació, sempre seguint amb el mateix enfocament teòric-conceptual, podria ser una "basada en la desconfiança". El Servidor no deixa passar al Client de la porta y le diu: "¿Qué és el que has dit que vols? Espera un moment." Y va éll a buscar-lo al "magatzem" y al cap d'una estona torna i li entrega la "comanda" al Client.

També podríem imaginar una altra situació, que podríem anomenar "parasitària", en la que el "client" (en aquest cas entre cometes) entrés en el "servidor" (també entre cometes en aquest cas), sense que aquest ho sabés, i, utilitzant els recursos propis del "servidor", rebusqués entre els seus arxius.

Jo no sé si en realitat les coses van més o menys així o són molt diferents, però en qualsevol cas hi ha d'haver un protocol definit, i probablement n'hi pugui haver més d'un.


Connexió entre varis ordinadors

Suposem ara que el que volem fer és connectar entre si varis ordinadors, i no només un amb un altre. Podem fer això amb diferents finalitats i de diferents maneres. La manera més simple seria una estructura "centre-radial", com un pop, on el cap seria un servidor comú pels altres ordlnadors, que estarien en els tentacles. Els ordinadors perifèrics podrien no tenir dades "propies" i actuar com a simples terminals "de consulta". Accedirien a la informació, que estaria tota en el "cap del pop", mitjançant sengles relacions client-servidor.

Però també podríem voler utilitzar aquesta estructura senzilla tipus "pop" d'una altra manera. Ens podria interessar que els ordinadors perifèrics tinguessin cada un d'ells les seves pròpies dades, i que les poguessin compartir amb tots els altres ordinadors. Hauríem d'establir relacions client-servidor entre dos ordinadors perifèrics situats en tentacles diferents. La "petició" hauria de passar necessàriament pel "cap del pop", el qual hauria de redirigir la petició al tentacle corresponent. El "cap del pop" podria limitar-se únicament a aquesta funció, sense ser un magatzem de dades. En aquesta situació els ordinadors individuals haurien de tenir necessàriament un nom identificatiu inequívoc. La "petició" hauria de portar "escrit al front" el nom de l'ordinador al qual anés dirigida, perquè el "cap del pop" la pogués redirigir de manera adecuada. El "cap del pop" estaria fent de "router". Però el "cap del pop" podria tenir també la doble funció: de "router" i de magatzem de dades. Llavors el protocol hauria d'incloure la possibilitat, per part del mateix "cap de pop", de reconéixer si la "petició" anava dirigida a ell o si l'ha de reenviar.

Anem a complicar la cosa una mica més. Imaginem que els tentacles del pop es ramifiquen. I les ramificacions també, vàries vegades. En comptes d'un "pop", tindríem un "raïm". Al final de cada branca hi hauria un ordinador, que seria una Unitat Vinculada Autònoma. Els ordinadors individuals serien les UVAs del raïm (perdó). En aquesta estructura, si un ordinador es vol comunicar amb un altre, el missatge haurà de pujar pel tronc, superant bifurcacions, fins a trobar la bifurcació en la que haurà de canviar de direcció i llavors baixar per la branca adequada, triant en cada nova bifurcació la branca corresponent fins arribar al seu destí. En aquesta estructura cada ordinador haurà d'estar també inequívocament identificat i el missatge també haurà de portar "escrit al front" el seu destí. I en cada bifurcació hi haurà d'haver un mecanisme capaç de redirigir la seqüència de zeros i uns de manera adequada.


Connexió entre varis grups d'ordinadors

Suposem ara que volem connectar entre sí diversos "raïms", pels seus troncs principals. Si ho fem també de manera "centre-radial" el que tindrem serà simplement un raïm més gros. Pero la estructura "centre-radial" no es l'única manera connectar diversos punts entre sí.

Els "raïms" els uniriem formant una xarxa, una mica en plan "tots connectats amb tots", encara que tampoc caldria que absolutament tots els "raïms" estiguessin connectats amb absolutament tots els altres. Una estructura així s'anomena tècnicament un grafo.

Per entendre bé què és un grafo imaginem un full de paper en el que dibuixem una sèrie de punts: uns 20 o 30 punts distribuits aleatòriament por tot el full. Ara es tractaria d'unir els punts amb línies rectes, sense cap criteri especial. Cumplint únicament dues condicions: que no quedi cap punt "solt" i que cap punt rebi només una línia. És a dir, tots els punts haurien de rebre dues o més línies. A més a més, les línies no s'haurien de creuar. Si dues línies es creuessin, això definiria un altre punt. El resultat final seria un grafo. Queda clar que a partir d'un mateix conjunt de punts poden obtenir-se diferents grafos.

Ara imaginem que aquesta estructura que hem dibuixat en un pla la fem tridimensional. Tendriem una estructura polièdrica, que també seria un grafo. En ella els punts serien vèrtexs i les línies arestes. Seria com un conjunt de "caps de pop" connectats entre sí. Sobre aquesta estructura podem imaginar diferents "jocs". Per exemple, traçar un "camí de arestes" que recorri todos los vèrtexs sense repetir-ne cap. O buscar el camí més curt entre dos vèrtexs distants. Es fàcil imaginar que hi pugui haver algoritmes matemàtics que puguin resoldre aquests "jocs".

D'aquesta estructura tipus "entramat" "penjarien" els raïms, que estarien així interconnectats a través d'aquesta estructura. En los vèrtexs del grafo hi hauria grans ordinadors amb capacitat de emmagatzemar informació per ser compartida i per reconéixer si han de tramitar las "peticions" que els hi arribin o si les han de redirigir als "caps de pop" veïns. D'aquesta manera, qualsevol "petició" sempre arribaria al seu destí, encara que alguna "aresta" estigués momentàniament interrompuda.

Aquest "entramat superior" és Internet. També conegut com a "red de redes". O, si voleu, "xarxa de raïms". Una ret d'abast universal i disponibilitat permanent. Una Permanentement Activa Ret de RAïms. Els ordinadors individuals són les UVAs dels raïms que penjen de la PARRA (perdó una altra vegada).

En els "caps de pop" estan els "servidors d'internet", és a dir, grans macroordinadors, amb ingents quantitats d'informació en les seves unitats d'emmegatzament, disposada a ser facil.litada a qualsevol ordinador connectat que la demani. Però el concepte de "servidor" no és tan simple. La paraula "servidor" s'utilitza indistintament per a designar dues coses diferents. Una cosa és el "magatzem" d'informació per a ser compartida. Aquesta és la idea que generalment tenim de "servidor". Però passa que no és el mateix "servir" un arxiu, que un conjunt de dades, o una pàgina web, o un correu electrònic. Per a cada un d'aquests "serveis" fa falta un protocol diferent. Doncs bé, un "servidor" és també (i més pròpiament) el conjunt d'instruccions per oferir un servei determinat. Un magatzem d'informació no podrà oferir res sense algun d'aquests "programes servidor". I en necessitarà un per a cada servei que vulgui oferir.


Les direccions IP

Per que tot aquest conjunt d'ordinadors interconnectats pugui funcionar de forma eficaç és necessari que cada un dels centenars de milers d'ordinadors individuals estigui identificat de manera inequívoca. Això es fa mitjançant la direcció IP (Internet Protocol). La direcció IP no és més que un número, basat en 32 bits, que, per tant, pot arribar a l'ordre dels 1.200 millons. Es representa amb 4 números, separats per punts, que poden oscil·lar entre 0 i 255. És a dir, les direccions IP poden anar des de "0.0.0.0" fins a "255.255.255.255". Alguns valors no estan disponibles doncs estan reservats per a significats específics. La disposició de la IP en 4 números permet un cert ordenament jeràrquic de les IPs.

En realitat, la direcció IP no identifica a un ordinador concret, sino a una connexió a Internet. I el que estigui connectat a aquesta connexió podrà ser un ordinador o qualsevol altre dispositiu: impresora, mòdem, etc. Un ordinador que no estigui connectat a Internet no té cap IP. En rebrà una en el moment en que es connecti (una que estigui lliure en aquell moment). Quan l'ordinador es desconnecti d'Internet alliberarà la seva IP, que quedarà disponible per el sistema. Quan l'ordinador es torni a connectar rebrà de nou una IP que, amb tota probabilitat, serà diferent que la rebuda anteriorment. Ès el concepte de IP dinàmica.

Alguns ordinadors necessiten que la seva IP sigui sempre la mateixa, com per ejemple els servidors d'Internet. No sé si aquest valor invariable de la IP depèn simplement del fet de que aquests ordinadors no es desconnecten mai o si hi ha algun altre mecanisme pel qual tindrien sempre la mateixa IP encara que es desconnectessin. En qualsevol cas, parlem de IP fixa.

Un altre concepte és el de IP pública i privada. Això està relacionat amb el fet de que la identificació de cada ordinador individual es fa en dos nivells. Per una banda hi ha un número que identifica el "raïm" dins de la "parra". És la IP pública. No hi pot haver dos "raïms" amb la mateixa IP. I després hi ha el número que identifica la "UVA" dins el "raïm". És la IP privada. No hi pot haver dos "UVAS" amb una mateixa IP dins d'un mateix "raïm", però, en canvi, sí que hi pot haver diferents "UVAS" amb una mateixa IP si estan en "raïms" diferents.


El hosting

Dins d'aquest "entramat" tu pots tenir un espai propi. En un disc dur d'un servidor d'Internet pots tenir una carpeta on posar "les teves coses", que així podràs consultar des de qualsevol ordinador. Això es pot fer a través de vàries plataformes, per tots conegudes, com, per exemple, el Drive de Google. Però també es pot fer d'una manera més personal. En qualsevol cas, sempre dependràs d'altres persones. Hi ha moltes empreses, propietàries de servidors a Internet, que et "cedeixen" espai en els seus discs durs. Algunes ofereixen aquest servei gratuïtament, però la qualitat del servei es paga. Alguns dels paràmetres que influeixen en el preu són l'espai de emmagatzematge, la fiabilitat de l'accés, la possibilitat i quantia d'accessos múltiples simultanis, les còpies de seguretat o el suport tècnic.

La "direcció" del teu lloc a Internet estarà formada por la IP del servidor i després tots els noms de carpetes i subcarpetes fins a arribar a la "teva". Això pot ser un nom molt llarg i difícil de recordar. És necessari establir un nom propi per a aquest "lloc nostre". Òbviament, no hi podrà haver noms repetits. Per facilitar aixó es van crear els "dominis", de tal manera que hi por haver noms repetitis si estan en dominis diferents, però no hi por haver noms repetits dins d'un mateix domini. Els dominis es corresponen amb països, organitzacions o temàtiques. Però tot i així, a l'hora de triar un nom pel nostre lloc, será molt difícil saber si el nom no está ja sent utilitzat per un altre lloc. Per aquest motiu existeix el DNS (Sistema de Noms de Domini), que no accepta un nou nom fins no haver comprovat que no n'hi hagi cap d'igual. A més a més (crec) el DNS garantitza l'accés al lloc encara que canviï la IP (por allò de les IPs dinàmiques).