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