Conceptos Fundamentales de Desarrollo Web: ORM, Servicios y Arquitecturas Modernas
Enviado por Chuletator online y clasificado en Informática y Telecomunicaciones
Escrito el en
español con un tamaño de 5,8 KB
Fundamentos de Acceso a Datos y Controladores
DbContext y Manejo de Acciones
- DbContext: Representa la conexión a la base de datos, gestionando entidades, relaciones y reglas de persistencia.
- En métodos asíncronos, la firma como
async Task<ActionResult<Movie>>implica el uso de la palabra claveawaitpara operaciones no bloqueantes.
Tipos de Retorno en Controladores
IEnumerable<Movie>: Se utiliza típicamente en operaciones GET generales para retornar únicamente la colección de datos.IActionResult: Retorna mensajes HTTP (ej. 200 OK, 404 Not Found).ActionResult<T>: Permite retornar tanto datos (el tipo T) como mensajes HTTP.
Conceptos de Gestión de Datos
El procesamiento y la gestión de bases de datos involucran varios aspectos clave:
- Procesamiento de datos: Implica manipular datos según la lógica de negocio.
- Gestión de BD: Incluye operaciones fundamentales como consultar y actualizar registros.
- Escalabilidad: Capacidad para manejar crecientes cantidades de carga y datos.
- ORM (Object-Relational Mapping): Técnica para mapear objetos de programación a tablas de bases de datos relacionales.
Servicios Web y Estándares de Comunicación
Definición de Servicio Web
Un servicio web es un componente de software diseñado para permitir la comunicación entre aplicaciones a través de la web, utilizando protocolos como HTTP/HTTPS.
Características Principales
- Interoperabilidad.
- Comunicación a través de la web.
- Desacoplamiento entre cliente y servidor.
- Accesibilidad.
Tipos de Servicios Web
- SOAP: Utiliza WSDL (Web Services Description Language) para la descripción del contrato.
- REST: Basado en HTTP, comúnmente utilizando formatos como JSON o XML.
- GraphQL.
Estándares Relevantes
La comunicación y descripción de servicios se rigen por diversos estándares:
- WSDL (Web Services Description Language).
- UDDI (Universal Description, Discovery, and Integration).
- XML (Extensible Markup Language).
- REST (Representational State Transfer).
- WS-Security (Web Services Security).
- OAS (OpenAPI Specification, anteriormente Swagger).
- HTTPS (HyperText Transfer Protocol Secure).
- JSON (JavaScript Object Notation).
Seguridad en Aplicaciones Web
Mecanismos de Autenticación y Autorización
La seguridad moderna se apoya en protocolos robustos para la gestión de identidades y la protección de datos:
- OAuth 2.0: Protocolo de autorización que permite el acceso a recursos protegidos sin compartir credenciales de usuario directamente.
- OpenID Connect (OIDC): Es una capa de autenticación construida sobre OAuth 2.0. Permite iniciar sesión utilizando credenciales de proveedores externos (ej. Google, Facebook).
- JWT (JSON Web Tokens): Mecanismo estándar para transmitir información de autenticación e identidad de forma segura entre las partes.
- HTTPS (SSL/TLS): Esencial para asegurar que los datos transmitidos estén cifrados, previniendo ataques de tipo "man-in-the-middle" (MITM).
Estructura de un JWT
Un JWT se compone de tres partes separadas por puntos:
- Header: Contiene el tipo de token y el algoritmo de firma utilizado.
- Payload: Contiene la información (claims) sobre la entidad y metadatos.
- Signature: Se genera combinando el header, el payload y una clave secreta, asegurando la integridad del token.
Arquitectura de Microservicios
Características Fundamentales
La arquitectura de Microservicios promueve la división de una aplicación grande en servicios más pequeños e independientes:
- Desacoplamiento entre componentes.
- Definición clara de comunicaciones entre servicios.
- Tamaño pequeño y específico (centrado en un dominio de negocio).
- Despliegue y gestión autónomos.
Desafíos y Beneficios Arquitectónicos
Desafíos Comunes
- Complejidad de gestión de múltiples servicios.
- Gestión de la comunicación entre servicios (latencia, fallos).
- Monitoreo y trazabilidad a través de límites de servicio.
- Costos operacionales potencialmente mayores.
Beneficios Arquitectónicos
- Desacoplamiento funcional.
- Mayor Escalabilidad independiente por servicio.
- Permite el Desarrollo independiente de equipos.
- Mejora en la Resiliencia del sistema global.
- Necesidad de Orquestación y gestión centralizada.