Casa Endavant pensant El retorn de la informàtica client-servidor?

El retorn de la informàtica client-servidor?

Vídeo: Relación cliente servidor en la informática (Setembre 2024)

Vídeo: Relación cliente servidor en la informática (Setembre 2024)
Anonim

Una de les coses que he trobat interessant en el món del desenvolupament durant els últims mesos és la manera com les aplicacions modernes tornen a situar més informació en el client en lloc del servidor. El model de client-servidor no és res de nou: és la forma en què s’han construït aplicacions tradicionals des de fa anys, amb aplicacions de clients rics que parlen amb aplicacions del servidor. Però a l'era del Web i, fins i tot, al Web 2.0, el focus es va traslladar a les aplicacions web en què la major part de la intel·ligència es trobava al servidor web (normalment en servidors d'aplicacions basats en Java) i el client només era una simple pàgina web a un navegador on cada vegada que feia clic, carregava una pàgina nova.

Però recentment la maduració de HTML5, CSS i, sobretot, JavaScript, porta els desenvolupadors a posar intel·ligència real i processament real a la pròpia pàgina web. En particular, hem vist l’augment de diversos frameworks basats en JavaScript del client que faciliten la creació de front-end intel·ligents que s’executen completament dins d’un modern navegador web. Els navegadors implicats normalment es basen en el motor de Webkit, inclosos Chrome i Safari, però la majoria de les aplicacions semblen funcionar bé en les versions actuals de Firefox i Internet Explorer. Acabeu amb una pàgina web més complexa que canvia dinàmicament, tirant dades del servidor segons calgui.

En particular, semblen cridar l'atenció tres marcs MVC: Backbone.js, Ember.js i Angular.js. (MVC significa model-view-controller - és essencialment l’arquitectura de la computació del client web. El "js" significa JavaScript.) Es tracta bàsicament d’un desacord de l’aproximació AJAX (JavaScript asíncron i XML) popular durant l’última dècada o així, però fent-se molt més madur i gairebé normalitzat. La idea és posar més de l'estat i la intel·ligència al navegador, i després que el navegador es connecti amb les API de REST del servidor.

La columna vertebral és potser el més bàsic i mínim d’aquests marcs; acostuma a diversos llocs populars a diversos llocs. Ember va sorgir d’un marc anomenat Sproutcore que Apple recolzava i és un marc molt més complet dissenyat per permetre’t fer aplicacions d’escriptori. S'utilitza sovint amb Bootstrap: un conjunt de plantilles per a HTML i CSS creades originalment pels empleats de Twitter. Angular és l’alternativa de Google que sembla haver-hi un lloc intermedi: hi ha qui pensa que és una mica més flexible o, almenys, “menys opinat” que Ember, però més comprensiu que Backbone. (Tingueu en compte que Google està pressionant els desenvolupadors a utilitzar Angular per millorar la qualitat de la codificació, però internament en realitat utilitza un conjunt de marcs propietaris diferents.) Fins i tot Microsoft ha afegit enganxaments a Visual Studio per a aquests frameworks.

Al ser el web, hi ha desenes d’alternatives. Un dels més interessants dels que he sentit a parlar darrerament és Meteor, dissenyat per funcionar amb JavaScript tant per part del client com del servidor. Però encara és molt aviat, i no sé encara cap usuari real. Mentrestant, més desenvolupadors estan jugant amb Node.js, sovint utilitzats per a implementacions de JavaScript del costat del servidor.

L’avantatge d’aquests marcs sembla clar. Les aplicacions de clients web rics són més potents que les aplicacions de clients prims on tot funciona al servidor, poden proporcionar una millor interfície d’usuari i ofereixen la possibilitat d’informar-se fora de línia. Mitjançant aquests frameworks podeu crear aplicacions de clients web riques molt més ràpidament del que podríeu, construint-ho tot des de zero i aprofitant les comunitats que es desenvolupen al voltant de cadascuna d’elles.

Potser el més important, podeu crear aplicacions mòbils que s’escalinin a diferents dispositius sense haver d’escriure aplicacions natives específiques. Encara hi ha un bon argument que es pot fer per a les aplicacions natives, que poden abordar més directament les característiques específiques de cada plataforma. No obstant això, molts desenvolupadors han trobat que aquests marcs poden accelerar el desenvolupament multiplataforma de manera espectacular, especialment quan s'utilitzen conjuntament amb PhoneGap, un marc mòbil de codi obert adquirit per Adobe i obert en el projecte Apache Cordova.

Mòbil, per descomptat, aporta les seves pròpies limitacions, inclosa la velocitat dels processadors i, potser, el que és més important, la velocitat de connectivitat -i de vegades falta de-. Un dels motius pels quals els agraden les aplicacions a les pàgines web és que sovint podeu descarregar la funcionalitat bàsica mitjançant Wi-Fi o una connexió ràpida i només obtenir les dades que necessitàveu descarregades, no tot el disseny. Paquets com PhoneGap solucionen aquest problema si introduïu el JavaScript en una aplicació descarregada.

Hi ha, però, altres problemes amb aquests marcs. En definir, fer més informàtica per part del client augmenta la complexitat davant d’una aplicació senzilla només per a servidors, i de fet, alguns dels inconvenients de l’antic model de servidor client es tornen. Els desenvolupadors han de gestionar l'estat d'ambdues parts. El codi en dos llocs significa que cal centrar-se en la seguretat als dos llocs. Com que un equip de desenvolupament sol tenir algunes persones que treballen al client i altres al servidor, obté problemes addicionals de comunicacions. D'altra banda, alguns dels problemes anteriors del client-servidor no es tornen i, en canvi, es mantenen els avantatges del programari web. Es tracta d’un món molt més basat en estàndards i impulsat per la comunitat, de manera que no dependreu tan d’un entorn propietari únic. Si dividiu les porcions del client i del servidor, també podeu tenir una implementació més neta i senzilla del costat del servidor, que només fa processament i no la interfície d'interès, i potser requereixen menys recursos. Tot i així, encara teniu l’avantatge de poder actualitzar tots els clients alhora, ja que normalment el navegador carrega el codi des del servidor quan s’invoca l’aplicació.

Estem veient clarament un pas cap a clients web més intel·ligents, no en tots els casos, sinó en moltes aplicacions noves. És molt més difícil agafar aplicacions més antigues i traslladar-les a aquest model, però també en veiem algunes. No es tracta del vell model client-servidor, però s’acosta molt.

El retorn de la informàtica client-servidor?