358 lines
5.3 KiB
Markdown
358 lines
5.3 KiB
Markdown
# Arquitectura Java EE/Jakarta EE y plataforma .NET
|
|
## Componentes, persistencia y seguridad. Características, lenguajes y desarrollo de interfaces
|
|
|
|
---
|
|
|
|
# 1. Esquema general del tema
|
|
|
|
- Arquitectura Java EE / Jakarta EE
|
|
- Servidor de aplicaciones
|
|
- APIs principales
|
|
- Persistencia (JDBC, ORM, JPA)
|
|
- Seguridad
|
|
|
|
- Plataforma .NET
|
|
- Componentes
|
|
- Persistencia
|
|
- Seguridad
|
|
|
|
- Comparativa Java EE vs .NET
|
|
|
|
- Desarrollo de interfaces
|
|
- Tecnologías front-end
|
|
- Comunicación cliente-servidor
|
|
|
|
---
|
|
|
|
# 2. Arquitectura Java EE / Jakarta EE
|
|
|
|
## 2.1. Definición
|
|
|
|
Plataforma de desarrollo para aplicaciones empresariales en Java.
|
|
|
|
- Java EE (Oracle)
|
|
- Jakarta EE (Eclipse Foundation)
|
|
|
|
Permite crear aplicaciones:
|
|
- Web
|
|
- Distribuidas
|
|
- Escalables
|
|
|
|
Se ejecuta sobre un servidor de aplicaciones.
|
|
|
|
Ejemplos:
|
|
- WildFly
|
|
- GlassFish
|
|
- WebLogic
|
|
|
|
---
|
|
|
|
## 2.2. Servidor de aplicaciones
|
|
|
|
Software que proporciona servicios a aplicaciones empresariales:
|
|
|
|
Funciones:
|
|
- Ejecución de aplicaciones web
|
|
- Gestión de transacciones
|
|
- Seguridad
|
|
- Gestión de conexiones a base de datos
|
|
- Gestión de sesiones
|
|
|
|
Idea clave:
|
|
El servidor implementa las APIs de Jakarta EE.
|
|
|
|
---
|
|
|
|
## 2.3. APIs principales
|
|
|
|
### Servlet
|
|
|
|
Gestiona peticiones HTTP.
|
|
|
|
- Métodos: GET, POST, PUT, DELETE
|
|
- Base del desarrollo web en Java
|
|
|
|
Flujo:
|
|
Cliente → Servlet → Respuesta
|
|
|
|
---
|
|
|
|
### JSP (JavaServer Pages)
|
|
|
|
- Páginas HTML con código Java incrustado
|
|
- Generación dinámica de contenido
|
|
|
|
Uso actual:
|
|
Limitado, sustituido por frameworks modernos.
|
|
|
|
---
|
|
|
|
### EJB (Enterprise JavaBeans)
|
|
|
|
Componentes de lógica de negocio.
|
|
|
|
Características:
|
|
- Gestión automática de transacciones
|
|
- Seguridad
|
|
- Concurrencia
|
|
|
|
Uso actual:
|
|
Menor en aplicaciones modernas.
|
|
|
|
---
|
|
|
|
### JSF (JavaServer Faces)
|
|
|
|
Framework de interfaces web basado en componentes.
|
|
|
|
---
|
|
|
|
### JPA (Java Persistence API)
|
|
|
|
API estándar para persistencia.
|
|
|
|
Permite:
|
|
- Mapear objetos a tablas
|
|
- Consultas orientadas a objetos
|
|
|
|
---
|
|
|
|
### JTA (Java Transaction API)
|
|
|
|
Gestión de transacciones distribuidas.
|
|
|
|
Propiedades ACID:
|
|
- Atomicidad
|
|
- Consistencia
|
|
- Aislamiento
|
|
- Durabilidad
|
|
|
|
---
|
|
|
|
## 2.4. Persistencia
|
|
|
|
### JDBC
|
|
|
|
Acceso directo a base de datos mediante SQL.
|
|
|
|
Patrón asociado:
|
|
DAO (Data Access Object)
|
|
|
|
Ventajas:
|
|
- Control total
|
|
|
|
Desventajas:
|
|
- Mucho código manual
|
|
|
|
---
|
|
|
|
### ORM (Object Relational Mapping)
|
|
|
|
Mapeo objeto-relacional:
|
|
- Tablas → Clases
|
|
- Registros → Objetos
|
|
|
|
Tecnologías:
|
|
- JPA (estándar)
|
|
- Hibernate (implementación)
|
|
|
|
Lenguaje:
|
|
JPQL (Java Persistence Query Language)
|
|
|
|
---
|
|
|
|
## 2.5. Documentación
|
|
|
|
- JavaDoc: documentación del código Java
|
|
- Swagger / OpenAPI: documentación de APIs REST
|
|
|
|
---
|
|
|
|
## 2.6. Seguridad
|
|
|
|
Tipos de seguridad:
|
|
|
|
### Seguridad declarativa
|
|
- Configuración mediante ficheros o anotaciones
|
|
- Basada en roles
|
|
|
|
### Seguridad programática
|
|
- Implementada mediante código
|
|
|
|
---
|
|
|
|
### Spring Security
|
|
|
|
Framework para seguridad en aplicaciones Java:
|
|
|
|
Funciones:
|
|
- Autenticación
|
|
- Autorización
|
|
- Control de accesos
|
|
- Protección CSRF
|
|
|
|
---
|
|
|
|
# 3. Plataforma .NET
|
|
|
|
## 3.1. Definición
|
|
|
|
Plataforma de Microsoft para desarrollo de aplicaciones.
|
|
|
|
Permite crear:
|
|
- Aplicaciones web
|
|
- Aplicaciones de escritorio
|
|
- Servicios
|
|
|
|
Actualmente:
|
|
.NET moderno es multiplataforma.
|
|
|
|
---
|
|
|
|
## 3.2. Componentes
|
|
|
|
- CLR (Common Language Runtime)
|
|
- Framework de clases base
|
|
- ASP.NET para aplicaciones web
|
|
|
|
---
|
|
|
|
## 3.3. Lenguajes
|
|
|
|
- C# (principal)
|
|
- VB.NET
|
|
- F#
|
|
|
|
---
|
|
|
|
## 3.4. Persistencia
|
|
|
|
### ADO.NET
|
|
|
|
Acceso directo a bases de datos.
|
|
|
|
### Entity Framework
|
|
|
|
ORM de .NET equivalente a JPA/Hibernate.
|
|
|
|
---
|
|
|
|
## 3.5. Seguridad
|
|
|
|
Características:
|
|
- Integrada en el framework
|
|
- Basada en roles
|
|
|
|
Métodos de autenticación:
|
|
- Windows Authentication
|
|
- JWT
|
|
- OAuth
|
|
|
|
---
|
|
|
|
# 4. Comparativa Java EE vs .NET
|
|
|
|
| Característica | Java EE / Jakarta EE | .NET |
|
|
|----------------|---------------------|------|
|
|
| Propietario | Eclipse Foundation | Microsoft |
|
|
| Lenguaje | Java | C# |
|
|
| Servidor | WildFly, GlassFish | IIS, Kestrel |
|
|
| ORM | JPA / Hibernate | Entity Framework |
|
|
| Multiplataforma | Sí | Sí |
|
|
| Seguridad | Spring Security | Integrada |
|
|
|
|
Conclusión:
|
|
Ambos son frameworks empresariales equivalentes.
|
|
|
|
---
|
|
|
|
# 5. Características comunes
|
|
|
|
- Arquitectura en capas:
|
|
- Presentación
|
|
- Negocio
|
|
- Persistencia
|
|
|
|
- Aplicaciones distribuidas
|
|
- Escalabilidad
|
|
- Seguridad integrada
|
|
- Uso de servicios web
|
|
|
|
---
|
|
|
|
# 6. Desarrollo de interfaces
|
|
|
|
## 6.1. Front-end
|
|
|
|
Tecnologías principales:
|
|
- HTML
|
|
- CSS
|
|
- JavaScript
|
|
|
|
Frameworks:
|
|
- Angular
|
|
- React
|
|
- Vue
|
|
|
|
---
|
|
|
|
## 6.2. Back-end
|
|
|
|
Java:
|
|
- Jakarta EE
|
|
- Spring
|
|
|
|
.NET:
|
|
- ASP.NET
|
|
|
|
---
|
|
|
|
## 6.3. Comunicación cliente-servidor
|
|
|
|
Protocolos:
|
|
- HTTP / HTTPS
|
|
|
|
Formatos:
|
|
- JSON
|
|
- XML
|
|
|
|
Arquitecturas:
|
|
- REST
|
|
- SOAP
|
|
|
|
---
|
|
|
|
## 6.4. Tipos de aplicaciones
|
|
|
|
- Aplicaciones web tradicionales
|
|
- SPA (Single Page Applications)
|
|
- Aplicaciones móviles con API backend
|
|
|
|
---
|
|
|
|
# 7. Conceptos importantes de examen
|
|
|
|
- Servlet: gestión de peticiones HTTP
|
|
- JSP: páginas dinámicas (uso limitado hoy)
|
|
- JPA: estándar de persistencia
|
|
- Hibernate: implementación de ORM
|
|
- Entity Framework: ORM de .NET
|
|
- Spring Security: seguridad en Java
|
|
|
|
---
|
|
|
|
# 8. Miniresumen final
|
|
|
|
Java EE/Jakarta EE y .NET son plataformas de desarrollo empresarial.
|
|
|
|
Java EE usa:
|
|
- Servlets, JSP, EJB, JPA
|
|
|
|
.NET usa:
|
|
- ASP.NET, C#, Entity Framework
|
|
|
|
Ambos:
|
|
- Arquitectura multicapa
|
|
- Seguridad integrada
|
|
- Persistencia mediante ORM o acceso directo
|
|
- Desarrollo de aplicaciones web y servicios |