B3T10 - JAVA EE/JAKARTA EE Flashcards

LA ARQUITECTURA JAVA EE/JAKARTA EE. CARACTERÍSTICAS DE FUNCIONAMIENTO. ELEMENTOS CONSTITUTIVOS. PRODUCTOS Y HERRAMIENTAS. PERSISTENCIA. SEGURIDAD (20 cards)

1
Q

Definición de Jakarta. No es importante

A

Jakarta Enterprise Edition o Jakarta EE es un conjunto de especificaciones y prácticas que permiten desarrollar, desplegar y gestionar aplicaciones Java multicapa de entorno empresarial.

How well did you know this?
1
Not at all
2
3
4
5
Perfectly
2
Q

Especificaciones Jakarta

A
  • Jakarta
    • Plataforma
    • Perfil Web
    • Perfil core
    • Microprofile
  • Oracle
    • Java Card -> tarjetas inteligentes
    • Java ME -> móviles
    • Java SE -> propósito general
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
3
Q

Arquitectura Jakarta

A
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
4
Q

Jakarta - Nivel de Presentación web

A
  • Jakarta faces (JSF) -> Facelets, componentes de IU incrustados en HTML
  • Jakarta Servlets -> clases que procesan y responden
  • Jakarta Pages (JSP) -> Código Java incrustado en HTML
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
5
Q

Jakarta - Nivel de Lógica de negocio

A
  • EJB ->
  • JAX-RX -> Web Services RESTFUL
  • JAX-WS -> Web Services SOAP
  • SAAJ -> SOAP with Attachments
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
6
Q

Jakarta - Nivel de Acceso a Datos

A
  • JDBC -> API de conectividad
  • JNDI -> API acceso a servicios de directorio (LDAP)
  • JPA -> API de persistencia
  • JTA -> API de transacciones
  • Jakarta Data -> API para simplificar acceso a datos
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
7
Q

Servidores Jakarta

A
  • Un servidor Jakarta EE es un servidor de aplicaciones que implementa las API de la plataforma Java EE y proporciona servicios estándar Jakarta EE (capa web y de negocio).
  • Los server que cumplen Jakarta -> Servidores de aplicaciones certificados
  • Contenedores -> Un contenedor es un proceso donde se ejecutan los componentes. Interfaz entre componentes (servlet, jsp, jsf) y servidor
    • Apache Tomcat -> contenedor de servlets y jsp. Protocolo AJP
    • EJB -> servidor Jakarta EE
  • Interoperabilidad -> Jakarta EE Interoperability (RMI)
  • Servidores
    • GlassFish (Eclipse)
    • WebSphere Liberty (IBM)
    • Payara
    • WildFly (WildFly)
    • JBoss (Red Hat)
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
8
Q

Jakarta RMI

A

Java RMI -> (RMI, Remote Method Invocation) es una tecnología que proporciona comunicación remota entre programas escritos en el lenguaje Java (RPC, Remote Procedure Calls).

  • Interfaz -> en el cliente y el servidor, se registra en rmiregistry y cuando se crea instancia se llama stub
  • Skeleton -> La clase skeleton es una clase generada por RMI, es la responsable de comunicarse con el stub durante la comunicación RMI y, además, debe reconstruir los parámetros para formar los tipos primitivos y objetos (unmarshalling)
  • Transporte -> TCP/IP, protocolo JRMP
  • Java IDL -> IDL, Interface Description Language, permite que dos objetos de diferentes plataformas interactúen
  • PMI/IIOP -> IIO, Internet Inter-ORB Protocol, protocolo de comunicación para CORBA, permite que apps en distintos lenguajes interactúen por RMI
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
9
Q

Servlets

A

Un servlet es una clase de lenguaje de programación Java

  • Ciclo de vida de un Servlet
    • Instanciación e inicialización
    • Gestión de peticiones
    • Destrucción
  • HttpServlet -> doPost / doGet
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
10
Q

JSF

A

Jakarta Faces -> Un conjunto de APIs para representar componentes de IU

  • Componentes UI -> IUForm, IUInput, UIPanel
  • Conversor
  • Validator
  • Renderizador
  • Frameworks que lo implementan
    • Eclipse MojarraTM (Eclipse GlassFish)
    • Apache MyFaces
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
11
Q

JSP

A

Páginas JSP se transforman en servlets para ejecutarse

<%@page import="java.util.*"%>
<html>
    <body>
<%
    out.println("<table border=\"1\">");
    for(int i='a', j=0; i<='z'; i++, j++) {
        out.println("<tr>");
        out.println("<td>"+j+"</td>");
        out.println("<td>"+(char)i+"</td>");
        out.println("</tr>");
    }
    out.println("</table>");
%>
    </body>
</html>
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
12
Q

EJB

A

Es una clase, del lado del servidor que encapsula la lógica de negocios de una aplicación.

  • La aplicación debe ser escalable
  • La transacción debe garantizar la integridad de los datos
  • Variedad de clientes en la aplicación
  • BEANS
    • Sesión -> para un cliente
      • Stateful -> conserva sus valores de instancia. No puede implementar un WS
      • Stateless -> no conserva los valores de instancia. Puede implentar un WS
      • Singleton -> un bean de sesión singleton se instancia una vez por aplicación
    • Dirigido por Mensajes -> recibir mensajes asincronos. JMS en lugar de eventos
    • Entidad -> vista de los datos de la base de datos. Nosotros no lo gastamos, funcionamos con ORM
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
13
Q

Servicios Jakarta

A
  • Arquitectura
    • Jakarta Activation (en Java EE, JAF, JavaBeans Activation Framework)
    • Jakarta Annotations
    • Jakarta Batch
    • Jakarta Concurrency
    • Jakarta Concurrency
    • Jakarta Config
    • Jakarta Context Dependency Injection (CDI)
    • Jakarta Dependency Injection
    • Jakarta Deployment
    • Jakarta Interceptors
    • Jakarta Management
    • Jakarta MVC
    • Jakarta WebSocket
    • JNDI
  • Presentación
    • Jakarta Faces.
    • Jakarta Pages.
    • Jakarta Servlet.
  • Negocio
    • Jakarta Enterprise Beans
  • Mensajes y comunicaciones
    • Jakarta Mail (en Java EE, JavaMail)
  • JSON
    • Jakarta JSON Binding (JSON-B)
    • Jakarta JSON Processing (JSON-P)
  • Persistencia
    • Jakarta NoSQL
    • JPA
    • JTA
    • JDBC
  • Interoperabilidad
    • Jakarta Connectors (en Java EE, Java EE Connector)
    • Jakarta RPC
    • Jakarta XML RPC (en Java EE, JAX-RPC, Java API for XML-based RPC)
  • Seguridad
    • Jakarta Authentication (en Java EE, JASPIC, Java Authentication)
    • Jakarta Authorization (en Java EE, JACC)
    • JAAS (Java Authentication and Authorization Service)
  • Web Services
    • JAXR -> acceso a UDDI y a XML registries
    • JAX - RS
    • JAX - WS
    • SAAJ -> SOAP + Attachement
  • XML
    • JAXB
    • JAXP -> procesado de XML a través de DOM / SAX
      • SAX -> procesado hacia delante mediante eventos.
      • DOM -> árbol de elementos
    • StAX -> Alternativa a las otras dos
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
14
Q

Persistencia

A
  • JDBC
  • JNDI -> datos en directorios (LDAP)
  • ORM -> a través de frameworks que implementen JPA.
    • Especificación que proporciona a los desarrolladores de Java un recurso de mapeo de objeto/relacional (ORM)
    • persistence.xml -> conexión con base de datos
    • POJO (Plain Old Java Object) -> Podemos establecer una relación entre una tabla y una clase POJO y entre un registro de la tabla y un objeto de la clase POJO.
    • Mapeo con anotaciones o un documento XML de mapeo
      • @Entity -> clase
      • @Table
      • @Id
      • @Column
      • OneToOne/Many -> Fetch EAGER/LAZY
EntityManagerFactory emfactory =
    Persistence.createEntityManagerFactory("JPA");
EntityManager entitymanager = emfactory.createEntityManager( );
entitymanager.getTransaction( ).begin( );

//CREACIÓN DEL OBJETO A PERSISTIR

entitymanager.persist(OBJETO);
entitymanager.getTransaction( ).commit();

entitymanager.close( );
emfactory.close( );

Los métodos que oferta un EntityManager son:
- persist(): almacena el objeto en la base de datos.
- find(): búsqueda de un objeto en la base de datos.
- remove(): elimina el objeto de la base de datos.
- flush(): sincronización de los cambios contra la base de datos.

Framewoks de persistencia

  • Hibernate
  • Apache OpenJPA
  • SpringData
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
15
Q

Seguridad

A
  • Java Cryptography Architecture (JCA) -> Bouncy Castle
  • Java Authentication and Authorization Service (JAAS)
  • Java Secure Sockets Extension (JSSE) -> TLS y DTLS, comunicaciones seguras de Internet
  • Simple Authentication and Security Layer (SASL) -> especifica un protocolo para la autenticación y el establecimiento opcional de una
    capa de seguridad entre las aplicaciones cliente y servidor.
  • Tecnologías
    • Jakarta Security.
    • Jakarta Authentication.
    • Jakarta Authorization.
How well did you know this?
1
Not at all
2
3
4
5
Perfectly
16
Q

Empaquetamiento y despliegue

A
  • Jakarta/Java Archive (.jar)
  • Web Archive (.war)
  • Enterprise Archive (.ear)
  • Otros formatos basados en .jar son:
    • SAR (Service Archive): similar a EAR; Usado en SOA.
    • RAR (Resource Adapter Archive): Un archivo RAR contiene un
      archivo JAR y opcionalmente un fichero ra.xml.
17
Q

Frameworks. Importante

A
  • Apache Axis2 -> desarrollo SOAP / RESTFUL
  • Apache CXF -> soporta SOAP / RESTFUL
  • Apache Wicket -> desarrollo de aplicaciones web.
  • Jersey ->Eclipse con soporte para servicios web RESTful
  • PrimeFaces: código abierto. Componentes para JSF.
  • RESTEasy: desarrollo RESTful en Java (JAX-RS).
  • Spring
  • Spring Boot -> microservicios
18
Q

Librerías y herramientas. Importante

A
  • iText -> generación de archivos en formato PDF.
  • JasperReports -> permite la generación de informes.
  • JUnit -> biblioteca que evalúa el funcionamiento de nuestro desarrollo mediante pruebas funcionales de clases y métodos.
  • log4j -> implementa un sistema de log (de Apache).
  • Lucene -> biblioteca de Apache que implementa un motor de búsqueda de texto para recuperación de información.
  • JMeter -> herramienta de Apache para realizar pruebas de estrés o rendimiento en Java.
  • Maven -> herramienta de Apache para gestión y construcción de proyectos Java. La configuración del proyecto a través de ficheros XML (pom.xml). Permite la gestión de dependencias clara y sencilla.
  • Spring Cloud -> proporciona herramientas para implementar patrones en sistemas distribuidos como descubrimiento de servicios, circuit breakers, enrutamiento
  • Spring Data -> encargado del acceso a los datos. Uso asociado al framework Spring.
  • Spring Security -> gestiona la seguridad de la aplicación. Uso asociado al framework Spring o también de forma independiente.
  • Thymeleaf -> motor de plantillas Java del lado del servidor que permite la creación de páginas web con representación. Tiene un uso frecuente en combinación con el framework Spring.
  • Velocity -> proyecto de Apache que es un motor de plantillas basado en Java
  • jBPM -> WorkFlow
19
Q

Consideraciones Java básico

A
  • JRE -> Java Runtime Enviroment
  • JVM -> Java Virtual Machine
  • Garbage Collector
  • Tipos de datos primitivos
    • byte
    • short
    • int
    • long
    • float
    • double
    • char
    • boolean
  • Paquetes
    • java.lang -> automatico, String/StringBuffer/StringBuilder/Object
    • java.io
    • java.crypto
    • java.math
    • javax.naming -> JNDI
    • java.net
    • java.sql / javax.sql
    • javax.swing
    • java.rmi
    • java.time -> LocalTime/
    • java.util -> Collection/Map/HashMap/ Set/ List/ ArrayList/ Vector/ Stack/ Iterator
  • API de Java SE 24
  • Clases selladas -> La clase sellada (sealed class) es una característica introducida en Java 15 y mejorada en Java 16 y 17. Una clase sellada es una clase que tiene restricciones en la jerarquía de clases y controla qué clases pueden extender o implementar una clase sellada. Para definir una clase sellada, se utiliza la palabra clave sealed antes de la definición de la clase, seguida de la palabra clave permits y la lista de clases permitidas para extender o implementar la clase sellada.
  • Visibilidad variables/métodos -> ver foto
  • Sobrecarga de métodos -> en la misma clase, mismo nombre, distintos parametros
  • Herencia -> simple de clases y múltiple de interfaces
    • super -> métodos de la superclase
    • override -> sobrescribe métodos de la clase padre
    • abstract -> obliga a los hijos a implementar metodos
  • Interfaces -> interface, obliga a implementar los métodos
  • Excepciones -> evento que interrumpe el flujo
  • Entrada / Salida -> ficheros texto / binario. FileReader/FileWriter/PrintWriter
  • Interfaz de usuario
    • AWT
    • Swing -> javax.swing
  • Ultima versión -> Java 14
20
Q

Excepciones

A
  • Errores -> java.lang.error
  • Runtime -> java.lang.RuntimeException
  • Resto de excepciones -> verificadas
  • Sintaxis
    • throw exception_throwable -> lanza una excepcion
    • nombre_método throws tiposExcepcion -> declaración de excepciones que se pueden lanzar en el método