Mostrando entradas con la etiqueta SOA. Mostrar todas las entradas
Mostrando entradas con la etiqueta SOA. Mostrar todas las entradas

martes, 30 de julio de 2013

En la Ciudad de México 6to Simposio Internacional de SOA, Tecnología de Nube + Servicio.

clip_image002

En los días 5 y 6 de noviembre del 2013 se desarrollará en la Ciudad de México la Conferencia más Grande del Mundo Dedicada a SOA, Computación en Nube y Tecnologías Modernas de Servicio. El evento de este año atrae a oradores, conferencistas, autores y expertos de la industria de alrededor del mundo para promover el compartir de conocimientos y la experiencia en los campos cada vez más amplios de tecnología de servicio. Los temas incluirán Arquitectura Orientada al Servicio (SOA-Service Oriented Architecture), Computación en Nube, Datos Grandes, Virtualización Contemporánea, Planeación de Capacidad, Web Semántico, y muchos más

Los temas que se estarán abordando son los siguientes:

  • Patrones y arquitecturas para la Computación en la Nube.
  • Herramientas y buenas prácticas para Big Data.
  • Tecnologías emergentes e innovadoras para servicios.
  • Arquitecturas para aplicaciones móviles.
  • Arquitectura y diseño de Apis.
  • Modelos y prácticas para SOA y la Orientación a Servicios.
  • Seguridad de datos en aplicaciones hosteadas en la Nube.
  • Virtualización e Infraestructura de Servicios.
  • Arquitectura Empresarial basada en la Nube.
  • Casos de estudio reales.
  • Frameworks de gobierno para proyectos SOA y de Computación en la Nube.

Más información en http://www.servicetechsymposium.com/es/

{ Leer Más }


lunes, 10 de junio de 2013

Las APIs en el entorno de TI actual.

clip_image002

El tema de las APIs siempre ha sido sumamente interesante para los desarrolladores, pero ahora lo es más debido al empuje de SOA y la Computación en la Nube en el mercado de las soluciones de integración empresarial.

Los escenarios de uso son variados, así como los diferentes roles interesados como pueden ver en la imagen de esta entrada.

Diariamente se publican artículos y noticias relacionadas con nuevos enfoques y herramientas para usar las APIs.

Revisando algunas podemos ver lo siguiente:

  1. La empresa WSO2 ha sacado una nueva versión de WSO2 API Manager. Esta herramienta permite el concepto de multitenant, como el resto de herramientas de la suite lo que se combina muy bien con los temas de la computación en la nube. De esta manera usando una misma herramienta se pueden simular varias para cada uno de los clientes o desarrolladores. En este enlace se puede ver más información al respecto. Se puede usar tanto en un servidor local como para entornos de nubes privadas, híbridas y públicas; y permite el acceso federado a las APIs que se gestionen con ella. Lo interesante es que las empresas que la quieran usar pueden crear sus tiendas de API, tal como la tienda de Apple o Google Marketplace, permitiendo un acceso seguro y controlado a las APIs además de una gestión del cobro por acceso. Y todo por 0 $. Por si esto fuera poco permite la gestión integral del ciclo de vida de las APIs así como un análisis de su uso y comportamiento a través de métricas y SLA. Si quieren saber más los invitamos a este webinar la próxima semana.
  2. SOA Software, otra empresa en el mercado de las tecnologías relacionadas con SOA y la computación en la nube ha sacado su herramienta “API Management” para Windows Azure Cloud, permitiendo la gestión de las API en ambientes Microsoft. Para más información pueden ver este enlace. La idea sigue siendo la misma, usar las potencialidades de la Nube para que los desarrolladores puedan colgar sus APIs, gestionarlas y controlar el acceso a las mismas.
  3. Por otra parte, el sitio de noticias de la tecnología SearchSOA nos deja este artículo donde podrán ver varias de las cosas que se ha mencionado en los puntos anteriores:
    • Gestión de APIs.
    • Seguridad y entrega de funcionalidades.
    • La propuesta de una nueva forma de arquitecturas de aplicaciones que usen APIs.
    • Diseño de soluciones basadas en APIs.

Se hace evidente que algo se está “cocinando” en el mercado de las TI que está cambiando la forma en que los desarrolladores deben enfocar el desarrollo del software actual. ¿Usted qué opina?

{ Leer Más }


viernes, 17 de mayo de 2013

Servicios de datos con WSO2 para resolver el acceso a datos.

En la entrada Introducción a Spring JDBC como solución a los problemas de uso e JDBC en proyectos productivos veíamos cómo podíamos implementar el acceso a datos usando Spring JDBC y luego en la entrada Sustituyendo la capa de persistencia de Spring JDBC por Spring + Hibernate hacíamos lo mismo pero usando Spring + Hibernate + Anotaciones.

En esta entrada entonces quiero ilustrarles un posible problema y la solución que se le puede dar.

Asumamos que somos los desarrolladores de una aplicación donde una de las entidades es “capítulo” y que hemos creado un DAO para dicha entidad. Esto permite que se pueda acceder desde cualquier lugar de la aplicación a los datos de “capítulo” a través del DAO correspondiente, pero que pasa si otra aplicación por algún motivo justificado necesita acceder a esos mismos datos. ¿Cómo se hace?

Soluciones pueden existir 2 o 3, pero en mi caso quiero exponerles una que he usado bastante y que consiste en crear un servicio de acceso a datos que exponga a través de SOAP o REST un conjunto de operaciones CRUD sobre dicha entidad. Pueden ver esta solución en la siguiente imagen.

image

Como se puede ver en la imagen el “Sistema propio” bien puede optar por acceder a la entidad directamente en la BD o puede hacerlo vía el servicio web. El resto de las aplicaciones tiene ahora acceso a los datos de la entidad “Capitulo” de una forma controlada gracias al uso del AS o el DSS.

Las ventajas de este enfoque son:

  • Se desarrolla más rápido el acceso a la entidad, con tan solo 3 minutos tienes creado un servicio web que cumple con todos los estándares del Stack WS-*.
  • Se puede brindar acceso a los datos de la entidad a otras aplicaciones sin requerir nuevas implementaciones.
  • La aplicación dueña de la entidad puede seguir accediendo de la manera tradicional o empezar a hacerlo desde el servicio web. Aquí si el servicio web cumple con la misma interface con que cumplía la implementación usando JDBC o Hibernate no debe haber problema para hacer el cambio.
  • Al usar la plataforma de WSO2 al servicio se le pueden incorporar facilidades para la autenticación, autorización y auditorias que aseguren un correcto acceso a los recursos.
  • El servicio expuesto es interoperable e independiente de la tecnología, o sea que se puede consumir desde cualquier lenguaje de programación.

Desventajas:

  • Por lo general se dice que el acceso a los servicios es más lento que si se accede directamente a los recursos, y es algo cierto. Lo que se debe determinar es si la latencia introducida afecta la experiencia del usuario final o del sistema. Aquí temas como el cacheo de la información juegan un papel fundamental.
  • A los desarrolladores no les gusta tener fuera de su control funcionalidades del sistema y en este caso el servicio está fuera del sistema en un servidor externo, lo que requiere un acceso diferente a la BD.
  • Si solo se requiere un servicio web para 1 entidad, la solución dada puede ser como el ejemplo de usar un cañón para matar un mosquito. Algunas otras variantes como RMI o incluso Spring Web Services puede ser más interesante de implementar. Aunque si la empresa se encuentra dentro de una iniciativa SOA o en alguna implementación de una solución de integración si tiene mucho sentido implementar un servicio de acceso a datos. Esto último lo pueden ver en la siguiente entrada Introducción a SOA y BPM.

Para aquellos que quieran ver cómo implementar un servicio de acceso a datos usando la suite de WSO2 en solo 3 minutos los invito a que vean este enlace.

El servicio que se crea por esa vía contiene las operaciones CRUD básicas y lo bueno es que luego se puede modificar para ajustarlo a nuestras necesidades. Si alguien quiere hacerlo desde cero y no usar la funcionalidad de “Generate” pues lo puede hacer sin ningún problema.

En otras entradas estaremos viendo más de estos temas.

Palabras claves: servicio web, servicio de acceso a datos, WSO2, AS, DSS, SOAP.

{ Leer Más }


domingo, 5 de mayo de 2013

Introducción a SOA y BPM.

Aun cuando estamos en un blog de desarrollo, por lo que los temas deben ser técnicos en su mayoría, la tendencia actual es la de estrechar la brecha existente entre los departamentos de tecnología de las organizaciones y los especialistas del negocio. Esta brecha ha sido mantenida, y en muchos lados incrementada, por una incorrecta comprensión de la relación entre tecnología y negocio y como esta relación puede ayudar y facilitar la obtención de los objetivos empresariales.

Para nadie es un secreto que mientras mejor funcionen las aplicaciones en una organización y mientras mejor y más rápido esta respondan a los intereses del negocio, pues más ganancias y mayor visibilidad tendrá la organización.

Si partimos entonces de lo anterior debemos asumir que los arquitectos y desarrolladores deben tener una mejor comprensión del negocio de sus empresas y tratar por todos los medios que las arquitecturas estén preparadas para responder a los cambios y exigencias del negocio que siempre busca adaptarse a las necesidades circundantes.

Lo anterior se puede reafirmar a través de este blog [1] donde se deja bien claro que un negocio necesita de una persona técnica con conocimiento pleno del mismo para poder tomar decisiones técnicas oportunas y efectivas.

Por lo general esto no se ha cumplido y eso ha motivado que la situación de muchas empresas sea que tienen múltiples sistemas desarrollados en múltiples plataformas, lenguajes, tecnologías, y que cuando se integran entre sí, esta integración se presenta punto a punto de la siguiente manera.

clip_image001

Fig. 1. Esquema de integración punto a punto que refleja el estado de muchas empresas en la actualidad.

En este sentido y en el área de las tecnologías hay varios paradigmas que han dejado bien claro la certeza de todo lo anterior, me refiero a: SOA y BPM.

Para aquellos que no lo sepan SOA se refiere a “Service Oriented Architecture” y BPM se refiere a “Bussiness Process Management”. En español “Arquitectura Orientada a Servicios” y “Gestion de Procesos de Negocio” respectivamente.

SOA, es un tema de arquitectura que se ha constituido en un paradigma para el diseño de las arquitecturas de las empresas y sistemas. Básicamente busca exponer los recursos del negocio como servicios, independientemente de la aplicación o BD donde residan, que puedan ser consumidos desde la misma empresa y por clientes y socios externos. Debemos entender por recursos del negocio los datos, información y funcionalidades de las aplicaciones que se corresponden con actividades del negocio, y debemos entender por servicio la forma de relación entre un proveedor del recurso y el consumidor de dicho recurso. Esta forma de relación se establece por lo general a través de un contrato entre ambas partes asegurado por acuerdos de nivel de servicio que determina la calidad de los servicios brindados.

Una idea de lo que propone SOA se puede obtener de la siguiente imagen:

clip_image002

Fig. 2. Esquema que muestra la propuesta general detrás de SOA. Crear capas de servicios que sean consumidos por procesos de negocio y expuestos a través de interfaces.

Estas interfaces pueden ser nuevos sistemas compuestos, que se nutren de funcionalidades y datos de sistemas legados ya existentes. También pueden ser interfaces como portlets desplegados en portales empresariales.

BPM por su parte, se encarga de organizar los procesos de negocio de tal manera que respondan a los objetivos y estrategia de negocio de una forma más efectiva y ágil. Se apoya en técnicas de modelado, diseño, modelación, ejecución y pruebas que aplicados a partir de herramientas informáticas agiliza el desarrollo de aplicaciones y acerca este desarrollo al personal no técnico. Al modelar los procesos de negocio se permite que tanto el personal técnico como el no técnico tengan claridad sobre el funcionamiento de estos y si se puede diseñar y simular su funcionamiento entonces se pueden optimizar. Si además estos procesos se pueden modificar de forma fácil y rápida, pues se responde más prontamente a los cambios del negocio y si todo esto se puede llevar al nivel de aplicaciones pues entonces tenemos aplicaciones más cercanas al funcionamiento real del negocio.

clip_image003

Fig. 3. Esquema general detrás de BPM. Diseñar procesos de negocio basados en la estrategia de negocio que consuman información de los sistemas subyacentes y que respondan a los intereses de los stakeholders.

La relación entre SOA y BPM comienza a hacerse clara cuando entendemos que los procesos de negocio se descomponen en actividades y si consideramos estas actividades como recursos del negocio y por lo tanto servicios podemos llegar a la clara conclusión de que SOA permite exponer los recursos del negocio como servicios y estos servicios son consumidos por los procesos de negocio en su implementación dentro de las aplicaciones. Esta relación apoya la idea inicial de reducir la brecha entre tecnología y negocio al lograr que el personal del negocio comprenda mejor el funcionamiento de las aplicaciones y que el personal técnico domine mejor el funcionamiento del negocio.

Una idea general de esta solución se puede apreciar en la siguiente imagen:

clip_image004

Fig. 4. Esquema general de una arquitectura de integración basada en SOA y BPM.

Las funcionalidades relacionadas con BPM están en la parte más alta de la arquitectura SOA nutriéndose de las funcionalidades y datos que esta provee. Por su parte SOA se encarga del acceso a datos y de las soluciones de integración e interoperabilidad entre sistemas proveyendo un acceso limpio desde las soluciones BPM.

Un poco más a detalle podemos decir que las aplicaciones legadas serán accedidas desde servicios de datos o desde soluciones de integración y sus datos y funcionalidades serán consumidas por soluciones basadas en BPM, tal y como se muestra en la siguiente imagen.

clip_image005

Fig. 5. Esquema interno de una solución BPM que utiliza funcionalidades y datos provistos por una solución SOA que brinda acceso mediante servicios a sistemas legados.

Ahora bien, si buscan en internet verán mucho revuelo desde el 2000 hacia acá con estos 2 paradigmas y esto se debe a que al globalizarse el comercio, profundizarse el uso de internet y al haber una explosión de nuevas tecnologías, aplicaciones y formas de realizar negocios las empresas se han enfrentado a un conjunto de problemas relacionados con la integración e interoperabilidad de sus sistemas y con la interacción con sistemas externos. Estos problemas los tocaremos en otra entrada pero baste decir que la solución propuesta por la industria se basa en el en uso de SOA y BPM.

{ Leer Más }


IconIconIcon