Resumen Integral de Arquitectura de Software, Redes y Sistemas
1. Ingeniería de Software y Modelado
Diagramas UML
- Estructura: Clases, componentes, objetos, estructura, despliegue y paquetes.
- Comportamiento: Actividad, casos de uso, máquina de estados, interacción, secuencia, comunicación y tiempos.
Metodologías de Desarrollo de Software
- Cascada: Lineal y secuencial, con fases definidas (requisitos, diseño, implementación, pruebas y mantenimiento). El cambio es difícil al pasar de fase.
- Agile: Iterativo e incremental. Fomenta la colaboración, la adaptabilidad y la entrega temprana.
- Scrum: Metodología ágil con equipos autoorganizados y entregas iterativas mediante sprints de tiempo fijo. Roles: Scrum Master, Product Owner y equipo de desarrollo. Utiliza técnicas como Planning Poker.
- Kanban: Gestión visual del trabajo con columnas variables. Fomenta la eficiencia y limita el trabajo en curso (WIP) sin iteraciones fijas.
- eXtreme Programming (XP): Enfocada en la calidad del software y la colaboración cercana del equipo. Utiliza pruebas unitarias, integración continua y desarrollo guiado por pruebas (TDD).
- Espiral: Para proyectos complejos y largos. Planificación y desarrollo iterativo con fuerte enfoque en la gestión de riesgos.
- Desarrollo Guiado por Comportamiento (BDD): Centrado en el comportamiento esperado por el usuario, con pruebas escritas en lenguaje natural.
Mantenimiento de Software
- Correctivo: Corregir errores del software.
- Adaptativo: Adaptar cambios del entorno.
- Perfectivo: Mejorar el software sin cambiar su funcionalidad.
- Evolutivo: Añadir nuevas características y funcionalidades al software.
Métrica v3
- Procesos principales: Planificación, desarrollo y mantenimiento.
- Interfaces: Gestión de proyectos, aseguramiento de la calidad, seguridad y gestión de riesgos.
- Fases de desarrollo: Estudio de viabilidad del sistema, análisis del sistema de información, diseño del sistema de información, construcción del sistema de información, e instalación y aceptación del sistema.
2. Sistemas Operativos y Linux
Estructura de Directorios en Linux
/bin: Aplicaciones binarias esenciales./boot: Archivos de arranque del equipo./dev: Ficheros de dispositivos./etc: Archivos de configuración./home: Directorios personales de los usuarios./initrd: Proceso de arranque inicial./lib: Librerías del sistema./media: Particiones y medios extraíbles./opt: Aplicaciones de terceros./proc: Directorio virtual con información del estado del sistema./sbin: Binarios del sistema importantes (administración)./sys: Archivos de configuración del sistema./tmp: Archivos temporales./usr: Archivos y aplicaciones para usuarios./var: Archivos variables (logs, colas, etc.).
Comandos Esenciales en Linux
ls: Lista archivos y directorios.mkdir: Crea un nuevo directorio.cd: Cambia de directorio.cp: Copia archivos o directorios.rm: Elimina archivos o directorios.mv: Mueve o renombra archivos.locate: Busca archivos rápidamente.fsck: Comprueba y repara errores en el sistema de ficheros.getfacl: Muestra las listas de control de acceso (ACL) de un archivo.chown: Cambia el propietario de un archivo.chgrp: Cambia el grupo propietario de un archivo.chmod: Cambia los permisos de un archivo o directorio.e2fsck: Escanea sistemas de archivos ext2, ext3 y ext4.who -r: Indica el nivel de ejecución actual del sistema.
Niveles de Ejecución (Runlevels)
- 0: Detención / Apagado.
- 1: Modo de usuario único (mantenimiento).
- 2: Usuario múltiple sin red.
- 3: Multiusuario completo sin interfaz gráfica (modo texto).
- 4: Definible por el usuario.
5:Usuario múltiple con interfaz gráfica y ejecución estándar.- 6: Reinicio del sistema.
Sistemas de Ficheros
- FAT / NTFS: Windows.
- ext4: Linux.
- APFS: Apple.
3. Redes y Comunicaciones
Modelo OSI (7 Capas)
- Física: Cables, conectores, tarjetas de red.
- Enlace de datos: Subcapa MAC, direccionamiento físico.
- Red: Firewalls, direcciones IP, routers.
- Transporte: TCP, UDP.
- Sesión: ASP, RCP, SCP.
- Presentación: Cifrado, compresión y traducción de datos.
- Aplicación: POP, SMTP, FTP, HTTP.
Modelo TCP/IP (4 Capas)
- Aplicación: HTTP, FTP, Telnet, NTP, DHCP, DNS.
- Transporte: TCP, UDP.
- Internet: IP, ICMP, ARP.
- Network Interface: Ethernet, Wireless.
Protocolos IP
- IPv4: Direcciones de 32 bits (4 bytes). Cabecera con campos como versión, longitud, tipo de servicio, longitud total, identificación, flags, fragmento, TTL, protocolo, checksum y direcciones IP de origen y destino.
- IPv6: Direcciones de 128 bits (16 bytes). Cabecera simplificada con versión, clase de tráfico, etiqueta de flujo, longitud de carga útil, siguiente cabecera, límite de salto y direcciones IP de origen y destino.
4. Bases de Datos y SQL
Sentencias SQL
- DDL (Data Definition Language):
CREATE TABLE,DROP TABLE,ALTER. - DML (Data Manipulation Language):
SELECT,INSERT,UPDATE,DELETE. - DCL (Data Control Language):
GRANT,REVOKE. - TCL (Transaction Control Language):
COMMIT,ROLLBACK,SAVEPOINT,START TRANSACTION.
SGBD: Niveles de Aislamiento y Propiedades ACID
- Read Uncommitted: Permite lecturas sucias (Suc), no repetibles (Rep) y fantasmas (Fant).
- Read Committed: Previene lecturas sucias; permite no repetibles y fantasmas.
- Repeatable Read: Previene lecturas sucias y no repetibles; permite fantasmas.
- Serializable: Previene todas las anomalías (ninguna).
- Snapshot / RYOW: Niveles avanzados basados en versiones de datos.
- ACID: Atomicidad (
commit/rollback), Consistencia (todas las reglas), Aislamiento (control de concurrencia enSELECT), Durabilidad (commitpersistente).
5. Ciberseguridad y Centros de Datos
Dimensiones de Seguridad (Magerit v3)
- Disponibilidad: Accesibilidad de los servicios cuando se necesitan.
- Integridad: Completitud y corrección de los datos.
- Confidencialidad: Acceso a la información exclusivamente por personas autorizadas.
- Autenticidad: Garantía de que una entidad es quien dice ser.
- Trazabilidad: Capacidad de rastrear las acciones realizadas por cada usuario.
Tipos de Ciberataques
- Phishing: Engaño para que el usuario revele sus credenciales.
- Ransomware: Secuestro de datos mediante cifrado para exigir un rescate económico.
- Deepfake / Bombing: Suplantación de identidad en videoconferencias.
- DNS Spoofing: Alteración de registros DNS para redirigir tráfico maliciosamente.
- MitM (Man-in-the-Middle): Interceptación de comunicaciones entre dos partes.
- Troyano: Malware oculto dentro de un software aparentemente legítimo.
- Cross-Site Scripting (XSS): Inyección de JavaScript malicioso desde el navegador para robar datos.
- Rootkits: Herramientas de software para obtener acceso privilegiado no autorizado.
- Whaling: Ataque de phishing dirigido a directivos o altos cargos ("peces gordos").
- Smishing: Phishing realizado a través de mensajes de texto (SMS).
Normativa y Estándares de CPD (TIA 942 y TIER)
- TIA 942: Guía para el diseño de Centros de Procesamiento de Datos (CPD). Estandariza 4 subsistemas: telecomunicaciones, arquitectura, sistemas eléctricos y sistemas mecánicos.
- TIER (Uptime Institute): Mide la fiabilidad y tolerancia a fallos del centro de datos:
- Nivel I: 99.67% de disponibilidad.
- Nivel II: 97.49% de disponibilidad.
- Nivel III: 99.982% de disponibilidad.
- Nivel IV: 99.995% de disponibilidad.
Auditoría según ISO/IEC 802
- Básica: Autoevaluación cada 2 años.
- Media / Alta: Auditoría formal cada 2 años.
6. Administración, Normativa y Herramientas
Legislación y Administración Electrónica
- Ley Orgánica 3/2018 de Protección de Datos (LOPD): Derechos ARSOPUL (Acceso, Rectificación, Supresión u olvido, Limitación del tratamiento, Portabilidad y Oposición).
- RD 203/2021: Reglamento de actuación y funcionamiento del sector público por medios electrónicos (plazos: 10 días, 15 sucesivos, 6 meses, 1 año, verificación de sede cada 5 años).
- Expediente Electrónico: Compuesto por documentos, índice, firma electrónica y metadatos.
Herramientas CCN-CERT
Conjunto de herramientas de ciberseguridad para la administración y el Esquema Nacional de Seguridad (ENS):
- ADA (Análisis avanzado de malware), Amparo (Seguridad y conformidad ENS), ANA (Automatización y normalización), Carla (Protección y trazabilidad de datos), Carmen (Ataques avanzados), Clara (Auditoría cumplimiento ENS), Claudia (Amenazas complejas), Microclau (Vacuna), Elena (Cibervigilancia), Emma (Visibilidad y control), Gloria (Gestión de logs), Ines (Informes estado ENS), Iris (Estadísticas ciberseguridad), Loreto (Seguridad en la nube), Lucía (Gestión de tickets), Marta (Análisis avanzado de ficheros), Moni (Eventos e información), Olvido (Borrado seguro), Pilar (Gestión de riesgos), Reyes (Ciberamenazas), Rocío (Dispositivos en red), Vanesa (Streaming).
7. Control de Versiones y Virtualización
Git y Control de Versiones
- GIT (Global Information Tracker): Sistema de control de versiones distribuido con rastreo completo de cambios. Permite la creación de ramas (
git branch) y fusiones (git merge). Los cambios se guardan mediante commits. GitHub actúa como plataforma de almacenamiento remoto de repositorios.
Virtualización y Contenedores
- Tipos de Hipervisores:
- Tipo 1 (Bare-metal): Se ejecuta directamente sobre el hardware sin sistema operativo anfitrión. Ejemplos: VMware ESXi, OpenStack, KVM, LXC, Hyper-V, Citrix.
- Tipo 2 (Hosted): Se ejecuta sobre un sistema operativo anfitrión. Ejemplos: VMware Workstation, VirtualBox, QEMU.
- Virtualización en la Nube: AWS, PowerVM, Oracle VM, Azure.
- Contenedores: Docker, Kubernetes, Linux-VServer, LXC, OpenVZ, Podman, RKT.
Conceptos de Rendimiento y Recuperación
- RTO (Recovery Time Objective): Tiempo objetivo de recuperación ante desastres (clasificado desde menos de 4 horas hasta más de 5 días).
- Pilas de Desarrollo:
- MEAN: MongoDB, Express, AngularJS, Node.js.
- MERN: MongoDB, Express, React, Node.js.
- LAMP: Linux, Apache, MySQL, PHP.
8. Arquitecturas de Software
Arquitectura JavaEE / JakartaEE
- Presentación: Interacción con el usuario (páginas y servicios web). Tecnologías: Servlets, JSP, JSF, JAX-RS, HTML, CSS, JavaScript.
- Lógica de Negocio: Implementación de la lógica empresarial. Tecnologías: EJB, CDI, Spring, JTA.
- Persistencia: Gestión de datos y comunicación con bases de datos. Tecnologías: JPA, JDBC, Hibernate, JMS.
- Integración: Conexión con sistemas externos y comunicación entre componentes. Tecnologías: JMS, JCA, JAX-RS, JAX-WS, REST, SOAP.
- Seguridad: Administración de autenticación y autorización. Tecnologías: JAAS, JASPIC, OAuth, JWT.
- Acceso a Recursos: Gestión de recursos externos. Tecnologías: JNDI, DataSource.
- Presentación de Datos: Formateo de datos para el usuario final. Tecnologías: JSP, JSF, AJAX.
Arquitectura por Capas en .NET
- Presentación: Interfaz de usuario (UI/UX). Tecnologías: Windows Forms, ASP.NET, Xamarin, Blazor, WPF.
- Lógica de Aplicación: Flujo de control y reglas de negocio. Tecnologías: C#, .NET Core/.NET Framework, ASP.NET MVC, Entity Framework.
- Acceso a Datos: Gestión del almacenamiento de datos. Tecnologías: Entity Framework, ADO.NET, Dapper, LINQ.
- Servicios: Funcionalidades reutilizables para la aplicación. Tecnologías: ASP.NET Web API, WCF, gRPC.
- Seguridad: Protección de datos, autenticación y autorización. Tecnologías: ASP.NET Identity, OAuth, JWT, SSL/TLS.
- Infraestructura: Recursos comunes y configuración. Tecnologías: Log4Net, Serilog, configuración de .NET, Unity (inyección de dependencias).
- Pruebas: Evaluación de calidad y rendimiento. Tecnologías: xUnit, NUnit, MSTest.
- Datos Externos: Integración con sistemas y protocolos externos (HTTP, REST, SOAP, bases de datos externas).