One of these concepts is the idea of Service Oriented Architecture or SOA. This is the latest paradigm of software design. The idea driving this is that software is no longer confined to a single program on a single machine, but, thanks to the internet, can be distributed across several different machines in modules or services that can be reused in different applications. The framework for this has been spec'ced out by august international authorities and shared so that everyone knows what to expect. WCF is Microsoft's particular tool for using this framework. I live in Redmond so knowing Microsoft's tools is a good way to stay employed.
But as I said I am still beginning. Today I read about the patterns and background of SOA. For example, all services consist of ABC:
- An Address, where you can find the service. This is specified as a URI
- A Binder, which determines how the messages are wrapped up and transported. For example, HTTP is a common binder
- And a Contract, which says what's available, what form message and data will take, and so on.
There are standard types of services:
- Request and response - this is probably the most common type. I give the service a zip code and it givecs me the weather.
- One-way - the client shoots data at the server. Useful if you want to make the application look fast and don't mind the lack of feedback. I'm still working on an example.
- Duplex - The client wakes up the service, then acts like a service itself and the service of the first part quieries the service of the second part (the original client) for addtion data.
- Subscribe/Publish - this starts off as one-way with the client subscribing to the service. Later the services publishes data which is sent to each subscriber.
There were others, but the Wife wants me to carry groceries in from the car.