Translate...

miércoles, 30 de mayo de 2018

Microservices


Los Microservices es un estilo arquitectónico que estructura una aplicación empresarial como una colección de servicios ligeramente acoplados, con un enfoque de desarrollo de una sola aplicación o modulo. Donde cada una de las aplicaciones o servicios son independientes y cada uno de estos ejecuta su propio proceso.

Están construidos para satisfacer necesidades puntuales del negocio, o cubren un requerimiento puntual de un módulo específico del negocio, en simples palabras es crear programas independientes que hagan una sola cosa, pero que la hagan bien.

Microservicio


La comunicación entre los Microservices debe ser de forma ligera (API's, HTTP) y también la comunicación con otros servicios debe ser de forma asíncrona, ya que como se mencionaba antes cada Microservice tiene su propio proceso de ejecución independiente, dicha forma de comunicación tiene que ser universal para que sea de manera fluida y eficiente.

Características de los Microservices:
  • Totalmente autónomos y abstractos.
  • Como recomendación deben ser Stateless.
  • Poseen funcionalidades limitadas.
  • Organizados por capacidades, módulos o por una especialidad de trabajo.
  • Poliglotas.
  • Soportan la interoperabilidad por mecanismos de comunicación basada en mensajes.

Restricciones acerca de los Microservies:
  • Inexperiencia
  • Poca documentación existente.
  • Oferta del mercado.
  • Nueva tecnología.

martes, 29 de mayo de 2018

Oracle Services Bus (OSB)

Oracle Services Bus (ESB), es una plataforma de desarrollo de la SOA Suite de Oracle que funciona como intermediario de comunicación entre diferentes sistemas heterogéneos, además que está basada en estándares y patrones de diseño de la arquitectura SOA.

OSB


Está diseñado para la virtualización, conectar, mediar y gestionar interconexiones entre servicios, aplicaciones, sistemas e instancias en una red empresarial orientada a servicios.

Además, que permite el control y manipulación flexible de los mensajes, mediante diversas estrategias como son:

  • Validaciones
  • Transformaciones
  • Monitoreo y Supervisión
  • Enrutamiento de mensajes
  • etc.

Características principales del OSB:

  • Ofrece una capa de seguridad (Token’s, SLA’s. Datos Encriptados, Certificados, etc.)
  • Alta flexibilidad para cambios de interfaz
  • Monitoreo y estadísticas de Servicios
  • Transformación de modelos de datos y ruteo de mensajes
  • Manejador de excepciones
  • Escalabilidad 
  • Procesamiento de grandes volúmenes de mensajes
  • Soporte a mensajes NO XML


En mí opinión como desarrollador tengo algunos puntos o recomendaciones de uso del bus de servicios de Oracle como buenas prácticas de uso del mismo, las cuales son las siguientes:

  • Virtualizar Servicios.
  • Agregar un buen manejo de excepciones en cada uno de los servicios visualizados, para tener mejor visibilidad en caso de fallo.
  • Uso del componente Split-Join para agilizar la ejecución de servicios de forma paralela.
  • Utilizar Message Throttling en los servicios de negocio para evitar sobrecarga de los mismos.
  • Agregar validaciones de Schemas para reducir errores de ejecucíon de errores de Datos.
  • Evitar el uso de Transformaciones de mensajes (XSLT, inLinedXML) ya que incrementa el flujo de procesamiento del Proxy, y sustituir por xQuery ya que es más fácil del interpretar para el servidor.
  • Hacer una buena estimación y configurar el TimeOut en los servicios.
  • Agregar un elemento identificador de quien invoco a cada servicio del OSB, para tener visibilidad del Cliente Consumidor del servicio.
  • Configurar SLA's con el fin de identificar el comportamiento irregular de los servicios visualizados.



lunes, 28 de mayo de 2018

Service-Oriented Architecture (SOA)

Cuando hablamos de SOA, nos referimos a una arquitectura de referencia basada en estándares de implementación hacia la orientación a servicios que busca solventar de manera estandarizada la integración de sistemas heterogéneos, con el fin de mejorar la agilidad organizacional y mantener un alineación entre Negocio y TI. 

SOA
Negocio y TI


SOA esta basado en patrones y principios de diseño que se enfocan principalmente a la composición y reutilizaron de Servicios, para la orquestación de procesos de negocio complejos. 

La unidad principal de la arquitectura SOA, son los Servicios que son la unidad fundamental que engloban la lógica del negocio en pequeñas funcionalidades o programas de software que tienen una funcionalidad especifica.