Sacadas de mi estudio en Java,
-cuando tenga más conocimientos le colocaré un título más apropiado-
:)
control de
versiones
CVS
Subversion
Git
Mercurial
Perforce
Clearcase
"herramienta de
compilación"
Ant
Maven
gestor de artefactos
Gradle
marcos de
microservicios
modernos
Nota:
Spring Boot y Eclipse MicroProfile, implementan aplicaciones como archivos JAR ejecutables que se pueden implementar directamente en un contenedor de software, como Docker, y en una herramienta de orquestación de contenedores, como RedHat OpenShift.
Spring Boot
Eclipse MicroProfile
contenedores y
máquinas virtuales
Docker
Nota:
crea contenedores como máquinas virtuales extremadamente livianas y modulares
Mejor integración con HTTP que como lo hace un servicio SOAP (no
requiere XML o definiciones WSDL), utilizan estándares muy conocidos
como HTTP, SML, URI y MIME
mensajes en distintos formatos: HTML, XML, texto sin formato y JSON
sin estado (no recuerda el cliente, ni lo que hizo en el pasado)
ideales para los contextos más nuevos, como el Internet de las cosas,
desarrollo de aplicaciones móviles y la informática sin servidor
Por lo general se usa REST/JSON
Definición de campos o servicio con Swagger o RAML, pero no es obligatorio
puede tener y es esperado un caché para mejorar el rendimiento
(opcional) se puede incluir un código bajo demanda para ser ejecutado por el cliente
SOAP
mensajes de respuesta solo en XML y protocolo SOAP, definición del
servicio con WSDL, sin caché
Como es un protocolo, impone reglas integradas que aumentan la
complejidad y la sobrecarga
ofrecen seguridad y cumplimiento de las operaciones integrados que coinciden con muchas
de las necesidades empresariales, pero que también los hacen más pesados.
Se usa SOAP/XML.
Para aplicaciones móviles y web tiene mal rendimiento. Usado solo en backend
"Arquitecturas" API
Nota:
"revisar el tema de comunicación servicio-servicio, podria revisar RSocket o GRPC"
unidireccional
Nota:
apenas el servidor entregue la respuesta, el cliente cierra la sesión.
REST
Nota:
principio de arquitectura de software usada en web service
SOAP
GraphQL
Manera más flexible de consultar y manipular datos
Pero, mayor complejidad al lado del server
gRPC
Gran rendimiento para comunicar
microservicios
Usa HTTP/2 y protocol Buffer para intercambiar
datos binarios
Bidireccional
Long Polling
Era la primera opción que se usó, era extender el tiempo de
conexión la solicitud HTTP... y esperar.
WebSockets
Nota:
Es el más usado
No es una solicitud HTTP simple, es con handshake
los navegadores ya soportan handshake
Semi-bidireccional
Server-Sent events
(SSE)
inicialmente el cliente se registra, desde ese
momento es el server el que envía información
WebHooks
Nota:
de alguna manera es unidireccional.
En servidor es el que envia datos a unos clientes ya registrados
microservicios
comunicación de los servicios
lenguaje de la interfaz
pública
WHDL
Nota:
lenguaje de la interfaz pública para los servicios web. Es una descripción basada en XML de los requisitos funcionales necesarios para establecer una comunicación con los servicios web.
protocolo
UDDI
Nota:
protocolo para publicar la información de los servicios web. Permite comprobar qué servicios web están disponibles
frameworks
Jersey
para crear RESTful Web Services
en JAVA. simplifica todavía más el
uso de JAX-RS extendiéndola y
dándole más funcionalidades
SpringBoot
para crear
microservicios
cliente de pruebas de
servicios
SoapUI
Postman
contenedores o motores
de servicios web
Axis2
para SOAP
Códigos HTTP de
respuesta
200 ok.
201 recurso creado.
204 solicitud exitosa.
Respuesta sin contenido
(vacía).
401 no autorizado.
403 acceso prohibido.
404 recurso no encontrado.
405 Método no permitido.
Métodos HTTP
para indicar
intensión
GET, POST,
DELETE,
PUT, PATCH,
OPTIONS
Persistencia de datos
Hibernate
persiste objetos en la base de
datos o los recupera como
objeto