82 lines
5.8 KiB
Markdown
82 lines
5.8 KiB
Markdown
## Bloque 3 Tema 5. Arquitectura Java EE/Jakarta EE y plataforma .NET. Componentes, persistencia y seguridad. Características, lenguajes y desarrollo de interfaces.
|
|
|
|
Este tema estudia las dos grandes plataformas de desarrollo empresarial: Java EE con su sucesor Jakarta EE, y la plataforma .NET de Microsoft.
|
|
|
|
---
|
|
|
|
## 1. Arquitectura Java EE y Jakarta EE
|
|
|
|
Java EE, o Java Enterprise Edition, era la plataforma de Oracle para el desarrollo de aplicaciones empresariales en Java. En 2017 Oracle donó la plataforma a la Eclipse Foundation, que la renombró como Jakarta EE. Permite crear aplicaciones web, distribuidas y escalables que se ejecutan sobre un servidor de aplicaciones.
|
|
|
|
Un servidor de aplicaciones es el software que proporciona los servicios necesarios a las aplicaciones empresariales: ejecución de aplicaciones web, gestión de transacciones, seguridad, gestión del pool de conexiones a base de datos y gestión de sesiones. El servidor de aplicaciones implementa las APIs de Jakarta EE. Los ejemplos más conocidos son WildFly, GlassFish y WebLogic.
|
|
|
|
Las APIs principales de Jakarta EE son las siguientes.
|
|
|
|
Los Servlets gestionan peticiones HTTP mediante los métodos GET, POST, PUT y DELETE. Son la base del desarrollo web en Java y definen el flujo de petición del cliente al servlet y de vuelta a la respuesta.
|
|
|
|
Las JSP o JavaServer Pages son páginas HTML con código Java incrustado que generan contenido dinámico en el servidor. Su uso ha disminuido en favor de frameworks modernos.
|
|
|
|
Los EJB o Enterprise JavaBeans son componentes de lógica de negocio con gestión automática de transacciones, seguridad y concurrencia. Su uso también ha declinado en las aplicaciones modernas.
|
|
|
|
JSF o JavaServer Faces es el framework estándar de Jakarta EE para desarrollar interfaces web basadas en componentes.
|
|
|
|
JPA o Java Persistence API es la API estándar para la persistencia de datos en Java. Permite mapear objetos Java a tablas de base de datos y realizar consultas orientadas a objetos mediante JPQL, el Java Persistence Query Language.
|
|
|
|
JTA o Java Transaction API gestiona las transacciones distribuidas garantizando las propiedades ACID.
|
|
|
|
---
|
|
|
|
## 2. Persistencia en Java
|
|
|
|
La persistencia es la capacidad de almacenar y recuperar datos de forma permanente.
|
|
|
|
JDBC o Java Database Connectivity es el acceso directo a la base de datos mediante SQL. Ofrece control total sobre las consultas pero requiere mucho código manual. Se asocia con el patrón de diseño DAO, o Data Access Object.
|
|
|
|
El ORM u Object Relational Mapping es el mapeo objeto-relacional que transforma tablas en clases y registros en objetos. La API estándar es JPA y su implementación más popular es Hibernate. Las consultas se escriben en JPQL en lugar de SQL nativo.
|
|
|
|
La documentación de APIs REST se gestiona con Swagger u OpenAPI. El código Java se documenta con JavaDoc.
|
|
|
|
---
|
|
|
|
## 3. Seguridad en Java EE
|
|
|
|
La seguridad en Java EE puede ser declarativa o programática. La seguridad declarativa se configura mediante ficheros o anotaciones y está basada en roles sin necesidad de código. La seguridad programática se implementa directamente en el código para casos más complejos.
|
|
|
|
Spring Security es el framework más popular para seguridad en aplicaciones Java. Proporciona autenticación, autorización, control de accesos y protección contra CSRF o Cross-Site Request Forgery.
|
|
|
|
---
|
|
|
|
## 4. Plataforma .NET
|
|
|
|
.NET es la plataforma de Microsoft para el desarrollo de aplicaciones. Permite crear aplicaciones web, de escritorio y servicios. En su versión moderna, .NET es multiplataforma y puede ejecutarse en Windows, Linux y macOS.
|
|
|
|
Los componentes principales de .NET son el CLR o Common Language Runtime, que es la máquina virtual que ejecuta el código compilado a un lenguaje intermedio llamado CIL; el framework de clases base o BCL, que proporciona las librerías fundamentales; y ASP.NET, que es el framework para el desarrollo de aplicaciones web.
|
|
|
|
Los lenguajes de .NET son C#, que es el lenguaje principal; VB.NET; y F#, que es un lenguaje funcional.
|
|
|
|
La persistencia en .NET se gestiona con ADO.NET, que es el acceso directo a bases de datos equivalente a JDBC; y con Entity Framework, que es el ORM de .NET equivalente a JPA e Hibernate.
|
|
|
|
La seguridad en .NET está integrada en el framework, se basa en roles y soporta múltiples métodos de autenticación como Windows Authentication, JWT y OAuth.
|
|
|
|
---
|
|
|
|
## 5. Comparativa Java EE y .NET
|
|
|
|
Tanto Java EE como .NET son plataformas empresariales maduras con componentes equivalentes. Java EE usa JPA e Hibernate para la persistencia; .NET usa Entity Framework. Java EE usa Spring Security para la seguridad; .NET tiene seguridad integrada. El lenguaje principal de Java EE es Java; el de .NET es C#. Java EE se ejecuta en la JVM; .NET se ejecuta en el CLR. Ambas son multiplataforma en sus versiones modernas.
|
|
|
|
---
|
|
|
|
## 6. Desarrollo de interfaces
|
|
|
|
Las tecnologías de desarrollo de interfaces se dividen en front-end y back-end.
|
|
|
|
El front-end es la parte que se ejecuta en el navegador del usuario. Se desarrolla con HTML para la estructura del contenido, CSS para la presentación y el diseño, y JavaScript para el comportamiento y la interactividad. Los frameworks de front-end más usados son Angular, React y Vue.
|
|
|
|
La comunicación entre cliente y servidor se realiza principalmente mediante llamadas HTTP con intercambio de datos en formato JSON para las APIs REST o XML para los servicios SOAP.
|
|
|
|
---
|
|
|
|
## Miniresumen final del tema
|
|
|
|
Jakarta EE es la plataforma empresarial Java que se ejecuta sobre servidores de aplicaciones como WildFly. Sus APIs principales son Servlet, JSP, EJB, JSF, JPA y JTA. La persistencia en Java usa JDBC para acceso directo o JPA e Hibernate como ORM. .NET es la plataforma de Microsoft con CLR, C#, ASP.NET y Entity Framework. Spring Security y la seguridad declarativa por roles son los enfoques habituales en ambas plataformas.
|