viernes, 18 de noviembre de 2011

Periodo de implementación



IMPLEMENTACIÓN EXISTOSA DE SOA

Tanto para aquellos que parten desde cero, como para los que ya tienen experiencia trabajando con servicios, una implementación exitosa de SOA se logra dividiendo el proyecto en tres fases que se ejecutan de manera consecutiva
  1. Planeación.
  2. Enterprise Application Integration (Integración de Aplicaciones de Empresa).
  3. Business Process Management (Gerenciamiento de Procesos de Negocio).




PRIMERA FASE - PLANEACIÓN
Antes de poder empezar a crear servicios y conectarlos es necesario contestar las siguientes preguntas :

¿Qué es un servicio?
Un servicio representa una función de negocios claramente definida que puede ser invocada remotamente mediante protocolos de comunicación estándar.
- La función SRQT(x) no es un servicio.
- La función LogErr(“Se ha producido un error”) tampoco es un servicio.
Un servicio se define mediante un interfaz explícito (WSDL) que es totalmente independiente de la implementación del servicio.
* WSDL significa “Web Services Description Language”.

¿Qué servicios se requieren?
La respuesta a esta pregunta no la debe dar el área de sistemas, la mejor manera de detectar servicios es
pidiendo a los usuarios de negocio que modelen sus procesos.



¿Qué servicios se deben desarrollar?
Para cada servicio detectado es necesario determinar si debe ser desarrollado desde cero o si es posible exponer la funcionalidad que ya provee un sistema legado como un servicio.
  • Para sistemas legados hay distintas alternativas para exponer la funcionalidad que proveen como servicio Web.
  • Colas de mensajes.
  • Adaptadores.
  • Acceso directo a la base de datos del sistema, etc.

¿Cómo crear nuevos servicios?
Para servicios nuevos es posible utilizar virtualmente cualquier lenguaje de programación, sin embargo, muchos se pueden descartar por ser obsoletos, complejos, propietarios, etc. Es recomendable Java para desarrollar servicios que ofrezcan alta disponibilidad.
Los servicios son programas, por lo tanto se deben desarrollar en base a metodologías aceptadas.
Una de las grandes ventajas de los servicios Web es que permiten realizar fácilmente pruebas unitarias, tanto funcionales como de volumen.

¿Qué protocolo de comunicaciones usar para invocar los servicios?
SOAP (siglas de Simple Object Access Protocol) es un protocolo estándar que define cómo dos objetos en diferentes procesos pueden comunicarse por medio de intercambio de datos.
Un sistema altamente distribuido, debe lograr funcionar a pesar de las fallas que pueden sufrir algunos componentes.
Esto se logra utilizando colas de mensajes para conectar de manera asíncrona los distintos componentes. Sin embargo, en algunos casos, por ejemplo consultas, puede no ser viable usar una comunicación asíncrona y HTTP puede ser entonces una alternativa.
Hay que recordar que es muy fácil exponer un componente Java (por ejemplo un Java Bean) como un servicio que puede ser invocado por varios protocolos de transporte.

¿Cómo administrar los servicios?
Si se dispone de pocos servicios, es posible que los desarrolladores sean quienes conserven los archivos WSDL (Web Services Description Language, un formato XML que se utiliza para describir servicios Web).
Si se cuenta con decenas de servicios, es necesario contar con un repositorio centralizado (UDDI) en el que se publican todos los servicios existentes.
Si la empresa tiene cientos o miles de servicios es necesario un directorio avanzado que permita saber:
  • ¿Quién es responsable de cada servicio?
  • ¿Quién es responsable del desarrollo de cada servicio?
  • ¿Quién es responsable de la calidad de los datos?
  • ¿Qué procesos se ven afectados si no funciona el servicio?

¿Cómo estandarizar los mensajes que van a intercambiar los servicios?
  • UDDI
UDDI (Universal Description, Discovery and Integration) son las siglas del catálogo de negocios de Internet.
El registro en el catálogo se hace en XML. UDDI es una iniciativa industrial abierta (OASIS) entroncada en el contexto de los servicios Web.
El registro de un negocio en UDDI tiene tres partes:
  1. Páginas blancas - dirección, contacto y otros identificadores conocidos.
  2. Páginas amarillas - categorización industrial basada en taxonomías.
  3. Páginas verdes - información técnica sobre los servicios que aportan las propias empresas.
UDDI es uno de los estándares básicos de los servicios Web cuyo objetivo es ser accedido por los mensajes SOAP y dar paso a documentos WSDL, en los que se describen los requisitos del protocolo y los formatos del mensaje solicitado para interactuar con los servicios Web del catálogo de registros.
  • Normalización sintáctica
Cuando se trabaja con decenas de sistemas, es normal que no todos manejen el mismo vocabulario. Para algunos, un mismo objeto, por ejemplo “Cliente” se puede representar de manera distinta.
Es importante que durante el modelado de los procesos se intente normalizar la estructura de los objetos de negocios, para simplificar la integración de sistemas y reducir la necesidad de realizar transformaciones en las que se pueden perder datos, al interconectar diversos sistemas.


SEGUNDA FASE - ENTERPRISE APPLICATION INTEGRATION (EAI)

Ruteo y transformación de mensajes
Esta función es realizada por el Bus de Servicios Empresariales (ESB), el es en realidad una infraestructura de comunicaciones seguras que permite conectar los servicios con los que cuenta la organización.
El ESB se crea utilizando colas de mensajes y brokers que transforman y rutean mensajes en base a su contenido.

Seguridad
La seguridad es muy importante en el contexto de los Web Services.
Es posible encriptar los mensajes o el canal de comunicaciones.

  • Es más sencillo encriptar el canal de comunicaciones
  • Encriptar el mensaje, o parte del mensaje utilizando WSSecurity otorga mucha más flexibilidad a los desarrolladores.

La seguridad debe estar centralizada.
La seguridad puede llegar a impactar seriamente al rendimiento de la aplicación.

Monitoreo
Una arquitectura SOA es tan sólida como su eslabón más débil.
Una de las principales misiones del arquitecto es planear desde el diseño de la arquitectura cómo se van a monitorear todos los aspectos de la misma para garantizar una operación tranquila y sin sobresaltos.


Calidad de servicio
Además de poder determinar posibles problemas es necesario hacer todo lo posible para evitar que se produzcan.
La mejor estrategia es que cada componente esté en alta disponibilidad:
  • Portal.
  • Orquestador de procesos.
  • Servidores de aplicaciones (en los que corren los servicios).
  • Bases de datos.
  • Colas de mensajes, brokers, etc.
La calidad de servicio también se refiere a tiempos de respuesta.


TERCERA FASE - BUSINESS PROCESS MANAGEMENT (BPM)

Tras la implementación del Enterprice Service Bus:

  • Separación de la capa de presentación de la lógica de procesos.
  • Desarrollo de aplicaciones basadas de procesos.
  • Monitoreo de procesos.
Separación de la capa de presentación de la lógica de negocios
En un esquema de la segunda fase (EAI), las aplicaciones se comunican entre si pero cada una mantiene su propio interfaz de usuario.
Al pasar a la siguiente fase, se eliminan los clientes de cada aplicación y se consolidan en un portal.
De esta manera la capa de presentación se consolida en el portal, las funciones de negocio en los servidores de aplicaciones y los procesos en el orquestador de procesos.
Esto simplifica el desarrollo y permite lograr mayores niveles de especialización.

Desarrollo de aplicaciones basadas en procesos
Tras una correcta planeación y una segunda fase en la que se desarrollan o exponen servicios, se vuelve posible desarrollar nuevas aplicaciones conectando simplemente los distintos servicios como parte de un proceso de negocios.
Realizar cambios a los procesos se vuelve trivial, porque no hay que modificar código.

Monitoreo de procesos
Al ejecutar procesos, es posible monitorearlos para analizarlos y poder encontrar posibilidades de mejora en los mismos. Con este modelo la dirección puede saber en tiempo real la situación del negocio.




Facilitadores tecnológicos clave de SOA


Capacidad imprescindible para el éxito del SOA

1 comentario:

tod dijo...

amigo puedes volver a publicar los diagramas??

Publicar un comentario