Introducción a la programación del lado del servidor - 2
Proceso de atención de solicitudes del lado del servidor
Todo lo que suceda dentro del servidor es llamado procesamiento del lado del servidor, o server-side processing. Cuando tu aplicación necesita interactuar con el servidor (por ejemplo, para cargar o guardar datos), ésta realiza una petición del lado del cliente (client-side request) desde el navegador, a través de la red usando invocaciones remotas a métodos (remote procedure call, RPC). Mientras se está procesando una llamada RPC, tu servidor está ejecutando código del lado del servidor.
Los servidores pueden servir a varios dispositivos clientes a la vez, y cada dispositivo cliente envía solicitudes a varios servidores durante el acceso y la navegación por Internet.
Varios clientes y servidores interactúan:
Cada cliente se comunicará con varios servidores, y viceversa.
Supongamos que un usuario está navegando por Internet y escribe "netflix.com" en la barra del navegador. Esto da lugar a una solicitud a los servidores DNS para la dirección IP de netflix.com, y los servidores DNS responden a esta solicitud sirviendo la dirección IP al navegador. A continuación, el navegador del usuario realiza una solicitud a los servidores de Netflix (usando la dirección IP) para el contenido que aparece en la página, como las imágenes en miniatura de las películas, el logotipo de Netflix y la barra de búsqueda. Los servidores de Netflix lo entregan al navegador y este carga la página en el dispositivo del cliente.
Tipos de arquitecturas y servicios webs:
Arquitectura Orientada a Servicios (SOA).
En el desarrollo de aplicaciones modernas, los sistemas ya no se construyen como aplicaciones monolíticas aisladas. Actualmente, las aplicaciones se comunican entre sí, intercambian información y reutilizan funcionalidades mediante servicios.
La Arquitectura Orientada a Servicios (SOA) surge como una solución para construir sistemas flexibles, escalables e interoperables, siendo ampliamente utilizada en entornos empresariales y como base de arquitecturas modernas como los microservicios.
¿Qué es la Arquitectura Orientada a Servicios?
La Arquitectura Orientada a Servicios (Service-Oriented Architecture) es un estilo arquitectónico en el cual las funcionalidades de un sistema se organizan en forma de servicios independientes, accesibles a través de una red.
Definición
SOA es una arquitectura que permite construir aplicaciones a partir de servicios reutilizables, independientes y comunicados mediante protocolos estándar.
Un servicio es una unidad de software que:
- Realiza una función específica del negocio
- Está desacoplada de otros servicios
- Se comunica mediante mensajes
- Puede ser consumida por diferentes aplicaciones
Componentes principales de SOA
Proveedor de servicios (Service Provider)
- Implementa la lógica del servicio
- Publica la funcionalidad disponible
- Define cómo puede ser consumido
Consumidor de servicios (Service Consumer)
- Aplicación o sistema que utiliza el servicio
- No depende de la implementación interna
Registro de servicios (Service Registry)
- Directorio donde se publican los servicios disponibles
- Permite descubrir servicios
- Ejemplo: UDDI
Principios de diseño de los servicios
Para que una arquitectura SOA sea efectiva, los servicios deben cumplir con ciertos principios de diseño.
-
Bajo acoplamiento: Los servicios deben tener pocas dependencias entre sí.
-
Alta cohesión: Cada servicio debe cumplir una función clara y específica.
-
Reutilización: Un servicio debe poder ser utilizado por múltiples sistemas o aplicaciones.
-
Autonomía: Cada servicio controla su propia lógica y datos.
-
Abstracción: Los detalles internos del servicio no son visibles para el consumidor.
-
Descubrimiento: Los servicios deben ser fácilmente identificables y localizables.
-
Interoperabilidad Los servicios deben funcionar entre distintas plataformas y lenguajes.
Simple Object Access Protocol (SOAP)
SOAP es un protocolo de comunicación basado en XML que desencadenó una revolución en el ámbito del desarrollo de software al permitir la interoperabilidad fluida entre sistemas heterogéneos. En esencia, para entender qué es SOAP es necesario acentuar que este actúa como un mensajero universal, permitiendo que aplicaciones en distintos lenguajes y plataformas se comuniquen de manera estándar y estructurada.
Su importancia radica en su capacidad para transmitir datos entre aplicaciones sin importar las diferencias técnicas subyacentes, facilitando así la construcción de sistemas distribuidos y la integración de servicios en un ecosistema cohesivo.
Características:
Formato Basado en XML: SOAP utiliza formato XML como su lenguaje de formato, lo que permite estructurar los datos de manera legible y flexible. Esto facilita la interpretación de la información en diversos sistemas y garantiza la compatibilidad con diferentes lenguajes y plataformas.
Estandarización de Mensajes: una de las principales ventajas que definen qué es SOAP es su definición clara y estándar para el formato de mensajes. Cada mensaje SOAP tiene una estructura consistente que incluye encabezados y cuerpo, lo que simplifica la comprensión y el procesamiento tanto para el remitente como para el receptor.
Protocolo Independiente: SOAP puede ser transportado a través de varios protocolos subyacentes, como HTTP, SMTP y más. Esto lo hace versátil y adaptable a distintos entornos y escenarios de comunicación, lo que contribuye a su utilidad en una amplia gama de aplicaciones.
Soporte para RPC (Remote Procedure Call): SOAP permite la invocación remota de funciones o procedimientos en sistemas distribuidos. Esto facilita la ejecución de acciones en sistemas remotos como si estuvieran siendo ejecutadas localmente, abriendo la puerta a la construcción de servicios distribuidos complejos.
Enfoque en la Seguridad: incorpora mecanismos de seguridad como la firma digital y la encriptación, lo que asegura la confidencialidad e integridad de los datos transmitidos. Esto lo convierte en una elección confiable para aplicaciones que requieren comunicaciones seguras, como sistemas bancarios o de salud.
Flexibilidad de Transporte: puede ser transportado a través de diversos protocolos, lo que permite elegir la opción de transporte más adecuada para el contexto de la aplicación. Esto asegura que SOAP se adapte tanto a entornos de red internos como a comunicaciones a través de Internet.
Compatibilidad con plataformas diversas: Debido a su base en XML y su enfoque en la interoperabilidad, puede ser utilizado en diferentes plataformas y lenguajes de programación. Esto promueve la construcción de sistemas heterogéneos y fomenta la integración de sistemas existentes.
Soporte para Metadatos: SOAP permite incluir metadatos en los mensajes, lo que posibilita describir con detalle el contenido y el propósito del mensaje. Esto facilita la interpretación correcta por parte del receptor y ayuda a evitar malentendidos.
Tecnologías del lado del servidor en la Industria 4.0
Se encargan del procesamiento y análisis de datos:
- Python
- .NET
- Java
- PHP
Tecnologías complementarias
Además de las tecnologías web tradicionales, la Industria 4.0 utiliza:
- APIs REST
- Servicios en la nube
- Bases de datos
- Internet de las Cosas (IoT)