taiage/bloque3/tema5.md

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