What is SOA?
SOA stands for service oriented architecture. Before we define SOA let's first define a service. In the real world, a service is what we pay for and we get the intended service. For instance you go to a restaurant and order food. Your order first goes to the counter and then it goes to the kitchen where the food is prepared and finally the waiter serves the food.
So in order to order an item from a restaurant you need three logical departments / services to work together (counter, kitchen, and waiter).
In the same manner in software world, these services are termed as business services. They are self contained and logical. So let’s first define a business service, SOA definition will be just an extension of that.
What a Message is
You know better than me. During an entire day we send and receive hundreds of messages in our mobile. Ha Ha..Yes, a message in WCF is very similar to messages in the real world. In the previous paragraph we explained how two applications will talk? People decided to communicate with messages. Now, the question is what will be the language of the message. The language can be anything, except the requirement is for both to understand the language. Hm..There are few languages that only two people can understand. Young guys hope you got it. Ha.. Ha.. So, we were explaining message formats. The format can be XML, JSON or even a plain CSV file. Here is a simple diagram to understand the concept of messages.
Now, there is no need to call a Java class from a C# class. When they want to talk with each other they just send a message to each other. In the Next programming industry though it's fine and cool to communicate via messages but there should be some standardization of those messages. Then, when people try to exchange data between two programs they send the standardized message to get it done. In future articles we will focus more on message standards.
What a Service is
Again we are familiar with the term service. "It's a logical encapsulation of self-contained business functionality". What does that mean? It means that the service is (each and every service) logically encapsulated within some other container (WCF server) and those services are self-contained.
Let's now think about a Petrol filling service in a filling station. There might be various service like:
A Car can fill up with either Petrol or Diesel.
There is a facility for checking air pressure.
A small puncher shop is there within the filling station.
The filling station is providing three services that are logically encapsulated within one filling station and they are self contained. In other words, if one service becomes damaged then we can replace it by a new one without effecting another.
Before ending the first presentation we would like to clarify one concept regarding services. If you think that services are nothing but a class or object then you are wrong in theory.
Services are not classes or namespaces or objects. It's just self-contained business functionality.