Service Oriented Architectures & Web Services

SOA addresses the disadvantages of N-Tiered Architecture. Functionality is delivered as a service. Interface descriptions are platform independent, unlike object based architecture.

Service

A service is a reusable component that can be used as a building block for other, independent functionality.

Diagram of a Service Oriented Architecture

Web Services

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
}

Advantages of Web Services

Glossary