La arquitectura orientada a servicios (SOA) define una forma de diseñar aplicaciones mediante la composición de servicios autónomos e independientes. Un servicio es una función reutilizable que interactúa mediante mensajes. Los principios de SOA incluyen que los servicios sean autónomos, distribuibles y desacoplados. Las ventajas de SOA son la alineación con el negocio, la abstracción y la capacidad de descubrimiento de servicios.