The fundamental principles of Service Oriented Architecture (SOA) are exposed functionality, document messaging, loose coupling and platform independence.
XML provides the transparency and application independence and uses metatags to “declare” the meaning and function of data. The premise of XML is to convert program-dependent data into self-describing, program-independent data. This applies not only to content, but also to instructions for processing the content.
XML Schema provides semantic consistency and interoperability. XML Schema is a specification that formally defines an extensive array of data type primitives and structural components for creating XML documents. It serves as a dictionary of abstract elements, attribute entities and organizational rules. Creating XML documents that conform to a schema “dictionary” has a significant advantage: the meaning, function and use of a document’s content is comprehensive to, and operable by, any XML-enabled application that can access the document’s underlying schema. The XML Schema even serves as the basis of Web services protocols.
The Web services protocols, Simple Object Access Protocol (SOAP) and Web Services Definition Language (WSDL) provide the capabilities and messaging facilities required to bind and execute programmatic functionality anywhere, on any platform, without the need for custom code. The significance of the Web services specifications is that they provide a workable architecture for building complex, interoperable computing processes over the Internet.
SOAP is an XML-based messaging protocol used to encode documents for transporting over a network. A “SOAP client” inserts an XML document into a SOAP envelope and posts it using HTTP (referred to as marshalling) to a “SOAP listener” that accepts the delivery.
Web Services Definition Language (WSDL) is a specification for describing, communicating and invoking programmatic functionality through a message exchange or remote procedure call. A WSDL document resides at a URL location and is linked to the actual program module located elsewhere.