SOA is an architectural style that promotes loose coupling between services. A SOA divides applications into distinct services that can be reused. Web services are a popular implementation of SOA using open standards like XML, SOAP, WSDL and UDDI. WSDL describes the services available while UDDI publishes service locations. SOAP is used to exchange XML messages between services. REST is an alternative architectural style where resources are accessed via URIs and representations are exchanged using HTTP methods.