5.3 KiB
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