SOA addresses the disadvantages of N-Tiered Architecture. Functionality is delivered as a service. Interface descriptions are platform independent, unlike object based architecture.
A service is a reusable component that can be used as a building block for other, independent functionality.
Web services are business logic on a network (internet or intranet), accessed using XML / JSON, over HTTP / SMTP.
We use XML because it’s Open Standard, allows data to be self describing, and is extensible. Example XML:
person>
<firstname>John</firstname>
<lastname>Smith</lastname>
<person> </
We can also use JSON for exactly the same reasons. This might be considered easier to read for some:
{
"person": {
"firstname": "John",
"lastname": "Smith"
}
}
An honerable mention should be YML / YAML, which is a subset of JSON that allows more flexible formatting. It’s much more human readable, but requires a lot more effort to be parsed by a computer:
person: {
firstname: John,
lastname: Smith
}