taiage/bloque3/tema5.md

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