Guía Completa de Tecnologías Backend: REST, SOAP, JSP, DAO y Más
Clasificado en Informática
Escrito el en español con un tamaño de 5,08 KB
Redes basadas en REST
Cliente-servidor: los clientes solicitan representaciones. Sin estado: cada petición debe encapsular toda la información que se requiera para llevar a cabo el proceso. No se puede utilizar información almacenada en el servidor. Cache: las respuestas pueden ser anotadas como cacheables o no cacheables. Interfaz uniforme: HTTP GET, POST, PUT, Delete. Recursos identificados: el sistema se compone de recursos identificados mediante URLs. Representaciones de recursos interconectadas: las representaciones de los recursos se interconectan mediante URLs, permitiendo así al cliente pasar de un estado a otro.
SOAP vs. REST
SOAP: protocolo ligero que define el intercambio de información en un entorno descentralizado y distribuido. Elementos principales: service message, service description, service Discovery, service transport. Problemas: complicado y difícil de utilizar, solo funciona con XML, no se aprovecha de las ventajas que ofrece la estructura web, no firewall friendly.
REST: un estilo de arquitectura software para sistemas distribuidos en red. Mucho más ligero y simple que SOAP, optimizado para web. El elemento básico es el recurso. Encaja con HTTP. Se usa para implementar CRUD.
Componentes JSP
Scriptlets: fragmento de código Java embebidos en la página (<% código Java %>
<jsp:scriptlet> código java </jsp:scriptlet>
). Son añadidos al método de servicio del Servlet generado como resultado de la compilación JSP.
Expresiones: una expresión JSP inserta valores directamente en la página de salida. (<%= java expresión %>
<jsp:expression> java expresión </jsp:expression>
). La expresión Java se evalúa, se convierte a String y se inserta en la página generada. La evaluación se lleva a cabo en tiempo de ejecución, cada vez que el cliente llama a la página.
Declaraciones: permiten definir métodos y atributos que se incluyen en la clase Servlet fuera del método de servicio. (<%! código java %>
<jsp:declaration> código </jsp:declaration>
). El código en la declaración estará disponible para el resto de declaraciones, expresiones y código.
Acciones: sirven para trabajar con beans jsp:useBean
jsp:setProperty
jsp:getProperty
, redirigir e incluir respuestas de otros recursos jsp:forward
jsp:include
, especificar plugins para descargar jsp:param
jsp:plugin
.
Patrones de Diseño y Conceptos Clave
DAO (Data Access Object)
Intermediario entre la aplicación y la base de datos. Sirve para acceder a la base de datos, es el propio DAO que trata los propios objetos y los registros de la base de datos.
JMS (Java Message Service)
Servicio de mensajería: método de comunicación entre componentes software y aplicaciones.
- Queue: estructura de datos donde se almacenan mensajes. Existen de manera independiente de las aplicaciones, las aplicaciones envían y reciben mensajes de colas. Tipos de cola: temporal, en disco, local, remota.
- Queue Manager: gestor de cola que se encarga de transferir los mensajes a la cola correcta (modificar atributos, activar triggers, transferir los mensajes a la cola).
- Topic: publicar mensajes que se entregan a múltiples suscriptores. Varios consumidores requieren la entrega del mensaje. Aquí se envían los mensajes. Existe cierta dependencia temporal: el mensaje se consume solo después de subscribirse al topic y mientras está activo.
Datasource
Factoría de conexiones, el desarrollador no necesita conocer el driver o la URL de la base de datos. Se identifica y describe un origen de datos mediante un conjunto de propiedades (location, db name, protocol), normalmente se define en el servidor de aplicaciones.
Uso:
- Crear un objeto statement a partir de la conexión.
- Usar los métodos de los objetos statement para ejecutar comandos SQL.
- Procesar el conjunto de registros devuelto usando la clase ResultSet.
- Cerrar la conexión.
Creación: se crea en el servidor de aplicaciones Glassfish en resources-jdbc.
RestTemplate
Clase que ofrece Spring para el acceso desde la parte cliente a servicios REST. (Crea una conexión HTTP con la URL de un servicio, parsea y convierte datos de JSON a cualquier otro formato que se necesite).
Estrategias de Fetching en ORM
LAZY: las entidades referenciadas solo se recuperan de la base de datos cuando son accedidas (OneToMany y ManyToMany).
EAGER: las entidades referenciadas se recuperan tan pronto como la entidad que las contiene se instancia (OneToOne y ManyToOne).