Paradigmas de Programación

Arquitectura de desarrollo Web Cliente-Servidor

La arquitectura cliente-servidor es la base del internet y de la gran mayoria de aplicaciones y programas que usamos hoy en dia. Se basa en, como su nombre lo indica, un cliente que realiza peticiones a un servidor, esto es el pilar fundamental de todo el internet, toda pagina esta alojada en un servidor al que tu como usuario te conectas, al igual que aplicaciones como redes sociales, tiendas de aplicaciones, tiendas virtuales, aplicaciones de banco, etc.

Que es un paradigma de programacion

Un paradigma de programación es un estilo, enfoque o metodología fundamental para estructurar y resolver problemas mediante código. Define la filosofía de cómo el programador conceptualiza la lógica del software y cómo el lenguaje gestiona las acciones.

Los distintos paradigmas de programacion suelen ser impuestos por cada lenguaje de programación, a su vez un lenguaje puede implementar uno o varios paradigmas al mismo tiempo. Cada uno de estos paradigmas intentan solventar las necesidades de los programadores al momento de escribir codigo, como puede ser, la necesidad de ordenar y modular el codigo o simplemente manejar un software de una manera totalmente distinta a como lo hacen otros paradigmas.

Tipos de paradigmas de programacion

Programación imperativo:

En este tipo de paradigma se detalla cada paso que el programa debe seguir para cumplir con el comportamiento esperado, permitiendo un control exacto de su flujo.

Programación declarativa

Con este paradigma describimos el resultado final, no tenemos que explicar como conseguirlo la computadora determinara cual es el mejor procedimiento para ello.

Conceptos basicos del la arquitectura cliente-servidor

En la arquitectura cliente-servidor un cliente realiza peticiones a otro programa, el servidor, quien le da respuesta. Bajo esa simple premisa se construye por ejemplo toda la web. Este modelo destaca por la centralizacion de la información, ya que, todo se encuentra alojado en el servidor, pero, esto tiene sus matices.

Característica Descripción
Centralizacion

Todo se encuentra alojado en un solo servidor, lo que facilita su manutención y seguridad, en contra, si el servidor cae por cualquier razon, se perdera el acceso a la información hasta que se logre levantarlo nuevamente, proceso que se hace mucho mas facil al ser un solo servidor.

Escalabilidad

Puedes añadir mas clientes facilmente o mejorar la potencia del servidor si hay mucha demanda.

Independencia

El cliente y el servidor no necesitan saber como funciona el otro internamente, solo se comunican pasandose la información que necesitan.

Componentes de la comunicación entre un cliente y un servidor

Componente Descripción
Cliente

Es el dispositivo o aplicación que inicia una petición de servicio (ejemplo: tu navegador web o una aplicación móvil).

Servidor

Es una máquina o programa potente que espera peticiones, las procesa y entrega una respuesta (ejemplo: los servidores de Google o Amazon).

Solicitud (Request)

El mensaje que envía el cliente solicitando algo (una web, un archivo, un dato).

Respuesta (Response)

El mensaje que devuelve el servidor con la información solicitada o un error.

Mensaje

Es la información que viaja por la red, esta dividido en: metadatos ( Es información que no es visible en el mensaje como quien lo envia o a quien va dirijido), el contenido del mensaje y el trailer o footer que comprueba si el mensaje llego correctamente.

Protocolo

Es el componente mas critico a nivel logico, son las reglas que establecen como se empaqueta, envian y reciben los datos. Existen muchisimos protocolos para cada tipo de conexion distinta, ejemplo: TCP/IP, HTTP/HTTPS, FTP, SSH, etc.

Arquitectura de 3 capas: Datos, Negocio y Presentacion:

La arquitectura de tres capas es una evolución del modelo cliente-servidor que busca resolver problemas de escalabilidad y mantenimiento. Su principio fundamental es la separacion de responsabilidades, dividiendo la aplicación en tres niveles logicos y, a menudo fisicos distintos.

Creacion y configuracion de un sitio web:

La creacisón de un sitio web comienza con el entendimiento de que este es, en esencia, un conjunto de archivos digitales alojados en una computadora conectada permanentemente a la red, llamada servidor. Para que este contenido sea accesible, se requiere de un Hosting (alojamiento), que es el espacio físico o virtual donde residen los datos, y un Dominio, que funciona como la dirección legible (ej. google.com) que apunta a la dirección IP técnica de dicho servidor.

La configuración inicial implica vincular estos dos elementos mediante los DNS (Sistema de Nombres de Dominio), que actúan como un directorio que traduce el nombre del dominio en la ubicación exacta del servidor. Una vez establecida la conexión, el servidor se encarga de procesar las peticiones de los usuarios y enviar los archivos correspondientes al navegador del cliente, donde se interpretan para mostrar la interfaz visual.

A continuacion un video tutuorial de Programacion Accesible sobre como crear una pagina web con Github pages al igual que este blog:

Referencias