Posts Tagged ‘Programming’
SOA is based on four important concepts:-
1.Boundaries are well defined
- In SOA, everything is formalized.
- The client who is consuming the service does need to know how the implementation of
the service is done.
- In SOA the rule is if we do enhancement we do not need to change anything at
the client.
- SOA based application only understands that there is an end point,
contract and bindings.
2.Services evolves
- SOA service versioned and you can host those services in new end points.
For instance we have a service called as “SearchTickets (TicketNumber) “which
gives details based on TicketNumber and its exposed on end point “ep1”.
Tomorrow we want make our SearchTickets service more useful by also providing an
extra option of allowing to search by passenger name. Some just declare a
new end point “ep2” with service “SearchTickets (TicketNumber,Passenger Name)”.
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.
3. Services share only schemas and contracts
- Services use Schemas to represent data and contracts to understand behavior.
- They’re 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.
4. Service compatibility is policy based
- Policy describes the capabilities of the system.
- Depending on policies the services 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 accordingto there communication policies.