SOA

**SOA** é o acrónimo inglés para o concepto *Service Oriented Architecture* (**Arquitectura orientada ós servizos** en galego). Este concepto é empregado na arquitectura de programación, que define o emprego de servizos para darlle soporte e solución ós requisitos dos negocios e empresas.
## Características 
O obxectivo da arquitectura SOA é a creación de sistemas electrónicos que se poidan escalar, e que mostren o negocio da organización o máis fielmente posible. Para iso defínese un estándar de definición e invocación dos servizos, o que facilita a interacción entre os diferentes sistemas propios ou cos sistemas externos á compañía.

SOA define as seguintes capas de programación ou tipos de servizos:

* Servizos básicos - Sistemas desenvolvidos sobre calquera arquitectura ou tecnoloxía, xeograficamente dispersos e baixo calquera figura de propiedade.
* De exposición de funcionalidades - Onde as funcionalidades da capa de aplicacións son expostas en forma de servizos (servizos web). 
* De integración de servizos - Facilitan o intercambio de datos entre os elementos da capa de aplicacións orientada a procesos empresariais internos ou de colaboración.
* De composición de procesos - Que define o proceso en termos de negocio e as súas necesidades, e que varía en función do negocio.
* De liberación - onde os servizos son despregados ós usuarios finais. SOA proporciona unha metodoloxía e un marco de traballo para documentar as capacidades de negocio e poder dar soporte ás actividades de integración e consolidación.

## Deseño e Desenvolvemento SOA 
A metodoloxía de modelado e deseño para as aplicacións SOA coñécese coma análise e deseño orientado ós servizos.

A arquitectura orientada ós servizos é tanto un marco de traballo para o desenvolvemento do software coma un marco de traballo de implantación.

Para que un proxecto SOA teña éxito, os programadores do software teñen que orientarse cara esta mentalidade de crear servizos comúns para a implantación tecnolóxica dos procesos de negocio.

O desenvolvemento de sistemas empregando SOA require un compromiso con este modelo en termos de planificación, ferramentas e infraestrutura. Cando a maioría de usuarios e programadores falan dunha arquitectura orientada ós servizos, están falando dun conxunto de servizos residentes en Internet ou nunha Intranet.

Existen diversos estándares relacionados cos servizos web. Por exemplo:
* XML
* HTTP
* SOAP
* WSDL
* UDDI

Non obstante un sistema SOA non necesariamente teñen que empregar estes estándares para ser "orientado ós servizos", mais é aconsellado o seu uso.

Nun ambiente SOA, as conexións da rede propia fan accesibles os recursos propios a outros participantes da rede, coma se fosen servizos independentes, ós cales téñense acceso dunha maneira estandarizada. A maioría das definicións SOA identifican a utilización de servizos Web (empregando SOAP e WSDL) na súa implantación, de todas as maneiras pódese implantar SOA empregando calquera tecnoloxía baseada en servizos.

## Linguaxes de programación de alto nivel 
As linguaxes de programación de alto nivel coma BPEL o W-coordination levan o concepto de servizo un paso máis adiante, ó proporcionar métodos de definición e soporte para os fluxos de traballo e procesos de negocio.
## Beneficios 
Os beneficios que pode obter unha organización que adopte SOA son:

* Redúcense os tempos de realización de cambios en procesos de negocio.
* Facilítase a evolución tecnolóxica dos modelos de negocio.
* Facilítase traballar con modelos de negocio de colaboración (socios, provedores, clientes)
* Poder substituír ou adaptar elementos da capa de aplicacións SOA sen afectar ós procesos de negocio habituais.
* Facilítase a integración de tecnoloxía incompatíbeis.

## Véxase tamén 
### Bibliografía 
* Norbert Bieberstein et al. Service-Oriented Architecture Compass, Pearson 2006,