Services
A service comprises a stand-alone unit of functionality available via
a formally defined interface.
A services requires three fundamental aspects : implementation;
elementary access details; and a contract. (Ben Margolis with Joseph
Sharpe: SOA for the Business Developer)
Services should follow the following principles
- Abstraction
- Autonomy
- Composability
- Discoverability
- Formal contract
- Loose coupling
- Reusability
- Statelessness
HTTP (short demo)
In theory, there is no difference between theory and practice. In
practice, there is.
– Attributed to Jan L. A. van de Snepscheut
Short demo of TCP and HTTP
- TCP using netcat
- HTTP server and client using netcat
- Interaction between netcat and a real HTTP server (WEBrick)
- Interaction between netcat and a real HTTP server (nginx) using the
OpenWeatherMap service
- Not all webservers are compliant (or enforce) to standards
- An
example of how to write a GET request using the Go programming
language