Web services allow applications to communicate and share data over the Internet, regardless of operating system or programming language. With Web services, not only can applications share data, but they can also invoke capabilities from other applications without regard to how other applications were built. Sharing data through ex. XML allows them to be independent of each other while simultaneously giving them the ability to loosely link themselves into a collaborating group that performs a particular task. Web services offer a direct means for applications to interact with other applications. Applications hosted internally, as well as on remote systems, can communicate via the Internet by using XML and SOAP messages.