“Services” are components, which expose well-defined interfaces, and these interfaces communicate through XML messages. Using SOA, you can build workflow, which uses interfaces of these components. SOA is typically useful when you are crossing heterogeneous technical boundaries, organizations, domain etc.
In .NET, SOA technically uses Web services to communicate with each service, which is crossing boundaries. You can look SOA, which sits on top of web services and provides a workflow.
SOA uses service components, which operate in their own domain boundary. Let us note some points of service:-
- They are independent components and operate in their own boundary and own technology.
- They have well defined interfaces, which use XML and WSDL to describe themselves.
- Services have URL where anyone can find them and clients can bind to theseURL to avail for the service.
- Services have very loosely coupled architecture. In order to communicate to service you only have to know the WSDL. Your client can then generate proxy from the WSDL of the service.
Figure: - SOA Architecture
Above figure describes a broader picture of what service-oriented architecture will look like. The fundamental of SOA is a web service. In above diagram you can see there are two services available. One is the “Credit Card” service and other is “Address Check” web service. Both these services are provided by different company. Now we want to build a functionality, which needs to validate a credit card and check that addresses are proper. In short, we will need functionalities of both the “Credit Card” and “Address Check” service. Also, note the “Credit Card” service has its own business layer and DAL components, which can be in a proprietary language. It is very much possible that the whole Credit card service is made in .NET and the Address check is SAP implementation or JAVA implementation. However, because both the systems provide there functionality using Web services which is nothing but XML message communication. So we have made new service which sits like a FAÇADE on top of both the web service and performs both functionalities in one common service. You will see I have made a third service which sits on top of both the web service and consumes them. Also you can see that the UI part of the systems have access to Business layer and Web service of there system. However, the service which does both these check has only access to the Web service.
Above is the .NET architecture (SOA)interview questions and see following video on concurrent generic collections in C#: -