14

What is service-oriented architecture?

Peter Mortensen
  • 30,738
  • 21
  • 105
  • 131
Jeevan Bhatt
  • 5,881
  • 18
  • 54
  • 82

5 Answers5

21

SOA is way to develop service oriented applications and WCF is technology which can be used to develop service oriented applications. BUT SOA defines strict rules (known as SOA tenets) for applications. If you don't follow these rules you are building services but these services do not conform to SOA.

WCF allows you to develop plenty of types of services. You can develop interoperable SOAP services which conform to SOA or which doesn't. You can develop pure .NET services with non interoperable features and you can develop REST services.

Moreover in SOA service can have different meaning than in WCF. In WCF service is collection of functionality exposed on endpoints. In SOA the service can be whole application (set of WCF like services) - difference between small and big SOA.

SOA tenets are:

  • Boundaries are explicit - service doesn't share anything with other services (even database tables and data can't be shared)
  • Services are autonomous - each service is independent, can be separately deployed and versioned
  • Services share schema and contract, not class - services are described in WSDL, transported data are described in XSD, orchestrations (aggregation) are described in BPEL
  • Services compatibility is based upon policy - WSDL contains WS-Policies to describe configuration needed for interoperability

As you see especially first two tenets can be easily violated when building WCF service.

Ladislav Mrnka
  • 360,892
  • 59
  • 660
  • 670
  • it means we can also create SOA application in web service then why SOA word is only attached with WCF definition? – Jeevan Bhatt Oct 01 '10 at 08:21
  • Yes you can. The word is usually attached to WCF because it replaces ASMX web services and because it offers much more interoperable protocols. – Ladislav Mrnka Oct 01 '10 at 08:44
  • @LadislavMrnka this is pretty old answer, but the first tenet confused me. Does it mean that in SOA there is place for "DataService" which is DAL implemented as a service?? So that other services instead of DB connections use DataService endpoint. – Marshall Apr 11 '18 at 21:18
6

SOA is a way to design a complete solution, it is a set of commonly accepted practices for communication, state management, compatibility, etc. In software architecture specifically, SOA is a set of services (not necessarily Web Services) that are built independently to support a range of client applications. The modular design helps maintenance, business collaboration. SOA also provides some guidelines for development:

  • Constraints over backward compatibility
  • Metadata exposure
  • Discoverability of services

On the other hand, WCF is just a supporting technology that helps you build the services in .NET.

You can create a SOA without WCF, just as creating a bunch of WCF services does not make your architecture a service oriented one.

Johann Blais
  • 9,389
  • 6
  • 45
  • 65
2

Service Oriented Architecture is a software architectural concept where one or more services interact with each other. Here, service means unit of work to accomplish a purpose. For an example, selling online ticket for railways is a service, online hotel booking is a service, procuring online payment is a service etc. Now, let's consider a hotel company sells its rooms online from its own website. In this case the website is using a local service. The same hotel can also sell rooms through a third party travel portal. In the second case the third party travel portal is using a remote service or web service. Selling hotel bookings online through a travel portal is an example of a Service Oriented Architecture. In service oriented architecture two or more parties interact with each other using web services. Among them few are web service providers and few are web service consumers. A software component can be built by following Service Oriented Architecture by using web services. WCF is a technology to build a service.

1

SOA is just a method through which we can interact between different technologies like in .NET and JAVA using Web Services. For this you have to be a knowledge in few things shown as follow.

  1. XML
  2. WSDL
  3. UDDI
  4. SOAP

after knowing these things you can easily apply this SOA

Andro Selva
  • 53,910
  • 52
  • 193
  • 240
1

WCF is a technology which makes building services easier, and it works on all transports not only HTTP so it is more generic than Web Services which works only on Http.

bashmohandes
  • 2,356
  • 1
  • 16
  • 23
  • web service support only http ptotocal and WCF is more generic its ok but i want to know how to figure out which technology supports SOA. How we can say that WCF is SOA and web service is not. Actualy in the definition of WCF most of the sites are using SOA for to define it why ? – Jeevan Bhatt Oct 01 '10 at 06:21