miércoles, 19 de octubre de 2011

Ventajas y Desventajas


En un mundo tecnológico de constantes cambios, se espera que las empresas provean más con menos recursos. SOA provee a las empresas de desarrollo de software la habilidad de responder rápida y eficientemente a las solicitudes de servicio. Sin embargo, SOA no es compatible con todas las aplicaciones.



Ventajas

La Arquitectura Orientada a Servicios - SOA Service Oriented Architecture - es una manera de diseñar e implementar los procesos de negocios, obteniendo una gran flexibilidad en su mantención y Evolución. Se basa en una forma natural de pensar los procesos, atomizando el conocimiento sin adicionar conceptos propiamente informáticos, hasta el momento de su implementación física. Una de las principales características de SOA es que resuelve los problemas de conectividad y permite una real reusabilidad masiva y una gran independencia de las plataformas, rentabilizando las ya existentes.
Podemos citar como ventajas de SOA:
  • Reduce el nivel de acoplamiento.
  • Clara definición de roles de desarrollo.
  • Definición de seguridad más clara.
  • Fácil testeo.
  • Mejora la mantención.
  • Favorece la reutilización.
  • Favorece el desarrollo en paralelo.
  • Permite fácil escalabilidad.
  • Permite un mapeo directo entre los procesos y los sistemas.
  • Permite un monitoreo preciso.
  • Permite la interoperabilidad.
Por todo, SOA es muy utilizado como una arquitectura tecnológica para la implementación de sistemas que requieren gran conectividad e Integración de dispositivos remotos, como POS; al igual que por los sistemas de logística que incorporan Tecnologías mobile, así como en los procesos financieros en general, que involucran múltiples formatos y versiones de DBMS, por indicar un factor. Más aún, las nuevas versiones de los principales ERP y CRM del mercado ya migraron a SOA.



Desventajas

  • SOA depende de la implementación de estándares. Sin estándares, la comunicación entre aplicaciones requiere de mucho tiempo y código.
  • SOA no es para: aplicaciones con alto nivel de transferencia de datos, aplicaciones que no requieren de implementación del tipo request/response y para aplicaciones que tienen un corto periodo de vida.
  • Incrementalmente se hace difícil y costoso el ser capaz de cumplir con los protocolos y hablar con un servicio.
  • Implica conocer los procesos del negocio, clasificarlos, extraer las funciones que son comunes a ellos, estandarizarlas y formar con ellas capas de servicios que serán requeridas por cualquier proceso de negocio.
  • En la medida en que un servicio de negocio, vaya siendo incorporado en la definición de los procesos de negocio, dicho servicio aumentara su nivel de criticidad. Con lo cual cada que se requiera efectuar una actualización en dicho servicio (por ejemplo, un cambio en el código, una interfaz nueva, etc.), deberá evaluarse previamente el impacto y tener mucho cuidado con su implementación. Sin embargo, parte de la problemática anterior, puede ser solventada en virtud a un buen diseño del servicio.

6 comentarios:

Louis dijo...

Muchas gracias, me ayudaste con un trabajo que tenia que hacer ;)

Leonardo26 dijo...

Ahora, la pregunta es... tenemos una arquitectura web..
cuando deberiamos optar por una arquitectura web y cuando por una SOA????

Leonardo26 dijo...

Ahora, la pregunta es... tenemos una arquitectura web..
cuando deberiamos optar por una arquitectura web y cuando por una SOA????

Unknown dijo...

Excelente aporte al conocimiento

enrique hdz dijo...

Muy buen trabajo, concreto. Disculpa tengo esta situación tu que aconsejarias. Tengo que actualizar dos campos uno en una tabla otro en otra tabla, cada tabla en bd distintas ambas en mysql y ambas en el mismo servidor. Qué aconsejas hacer un servicio para cada tabla o uno solo que con un stored procedure actualice las dos tablas?.
Gracias de antemano

PATRICK dijo...

CUAL SERIA LA APLICACIÓN POR EL CUAL NO RECOMENDARÍAS SOA

Publicar un comentario