what are the important principles of SOA


what are the important principles of SOA (Service oriented Architecture)?

✍: Guest


WCF is based on SOA. All big companies are playing big bets on SOA. So how can Microsoft remain behind? So in order to implement SOA architecture easily you need to use WCF.
SOA is based on four important concepts:

Boundaries are well defined In SOA everything is formalized. The client who is consuming the service does not need to know how the implementation of the service is done. If you look at some old methodologies of communication like DCOM. Any changes at server level the client also has to change. So the server and client implementation was so much bound that changes need to be done at all places. In SOA the rule is if you do enhancement you do not need to change anything at the client. SOA based application only understands that there is an end point, contract and bindings.

Services evolve
Change is the law of nature and services will also evolve. In SOA services can be versioned and you can host those services in new end points. For instance you have a service called as gSearchTickets (TicketNumber) gwhich gives details based on TicketNumber and its exposed on end point gep1h. Tomorrow you want make your SearchTickets service more useful by also providing an extra option of allowing him to search by passenger name. So you just declare a new end point gep2h with service gSearchTickets (TicketNumber, Passenger Name)h. So the client who is consuming the service at end point ep1 continues and at the other end we have also evolved our service by adding new end points ep2.
Services share only schemas and contracts Services use Schemas to represent data and contracts to understand behavior. They do not use language dependent types or classes in order to understand data and behavior. XML is used to define schemas and contracts. Due to this there is not heavy coupling between environments.

Service compatibility is policy based Policy describes the capabilities of the system. Depending on policies the service can degrade to match the service for the client. For instance your service needs to be hosted for two types of client one which uses Remoting as the communication methodology while other client uses DCOM. An ideal SOA service can cater to both of them according to there communication policies.

2007-11-04, 4490👍, 0💬