Service Oriented Architecture (SOA), es una nueva filosofía de diseño de aplicaciones que propone una alternativa a las tradicionales aplicaciones de negocio monolíticas basadas en objetos.
Habitualmente, las empresas compran sus aplicaciones de negocio a proveedores de software o realizan desarrollos a medida. Como ya hemos mencionado en otras entradas ambas soluciones pueden llegar a ser muy costosas, ya que en gran medida, no permiten reutilización de código y además no siempre evolucionan al mismo ritmo que la organización, ya que su actualización y mejora suponen grandes inversiones.
SOA propone que los procesos de negocio no se traduzcan en aplicaciones clásicas, sino que éstos llamen a los servicios que necesitan para obtener resultados. Por ejemplo, consultar una base de datos, actualizar alguno de los campos consultados, generar un informe y activar una alarma. Estos servicios deben estar débilmente acoplados y ser altamente interoperables, por lo que son muy importantes los protocolos que definen formalmente estos servicios y que permiten la comunicación con ellos y entre ellos.
Los servicios en los que se basa esta arquitectura pueden estar ejecutándose en la propia organización, o por el contrario, pueden contratarse a proveedores de software externos que cobran por su invocación, Software-as-a-Service (SaaS).
Pero en cualquier caso, la reutilización de código es importante, al igual que la flexibilidad del software programado con esta filosofía y las posibilidades de actualización.
Habitualmente, las empresas compran sus aplicaciones de negocio a proveedores de software o realizan desarrollos a medida. Como ya hemos mencionado en otras entradas ambas soluciones pueden llegar a ser muy costosas, ya que en gran medida, no permiten reutilización de código y además no siempre evolucionan al mismo ritmo que la organización, ya que su actualización y mejora suponen grandes inversiones.
SOA propone que los procesos de negocio no se traduzcan en aplicaciones clásicas, sino que éstos llamen a los servicios que necesitan para obtener resultados. Por ejemplo, consultar una base de datos, actualizar alguno de los campos consultados, generar un informe y activar una alarma. Estos servicios deben estar débilmente acoplados y ser altamente interoperables, por lo que son muy importantes los protocolos que definen formalmente estos servicios y que permiten la comunicación con ellos y entre ellos.
Los servicios en los que se basa esta arquitectura pueden estar ejecutándose en la propia organización, o por el contrario, pueden contratarse a proveedores de software externos que cobran por su invocación, Software-as-a-Service (SaaS).
Pero en cualquier caso, la reutilización de código es importante, al igual que la flexibilidad del software programado con esta filosofía y las posibilidades de actualización.
No hay comentarios:
Publicar un comentario