Service Oriented Architecture (SOA) is a very important concept of our age of big systems and applications. In these big systems and organizations there are different platforms, different operating systems(OS) and communication between these parts is difficult and so important.The solution to this commnunication problem is using services between servers.For example,imagine a situation in Facebook.SOA,Service Oriented ArchitectureFacebook has several servers and each server group has profile information of different people. (I don't know Facebook's organization details but our scenario is most probably correct::))) Also assume that different server groups have different operating systems and different architectures.So the question: how these servers can communicate effectively when you see friend list that each one's profile comes from a different server?The easiest way is using services and construct a Service Oriented Architecture between these servers.How? Using a universal, flexible language (SOAP,XML,both etc.) to communicate.Additinally by sending this information on HTTP wires that is common in almost all systems, problem is solved.Therefore, all server groups send information to a master server via services and master server prepare the list by joining them.However, some extra information other than profile info, in our example , is needed in other words metadata, because XML is so flexible so how to use it in receiving end of the communication can't be known without this guidelines.By using this SOA architecture there is no need to worry about the new server groups, they all can be added to system easily.MICROSOFT's solution in SOA area is WCF(Windows Communication Foundation) (there is also XML based ASP.NET webservice but to build a fully functional service layer, WCF is needed) WCF is a framework and involves other past MICROSOFT SOA technologies (like COM,DCOM,MSMQ etc.) In next post, I will show how to build and consume a WCF service.