Databases Reference
In-Depth Information
Loosely-coupling Services
In the previous chapter, we explored how we can take functionality in our existing
applications and expose them as services. When we do this, we often find that the
service interface we create is tightly coupled to the underlying implementation.
We can make our architecture more robust by reducing this coupling. By defining
our interface around our architecture, rather than around our existing application
interfaces, we can reduce coupling. We can also reduce coupling by using a routing
service to avoid physical location dependencies. In this chapter, we will explore
how service virtualization through the Mediator and the Service Bus of the Oracle
SOA Suite can be used to deliver more loosely-coupled services. Loose coupling
reduces the impact of change on our systems, allowing us to deploy new functions
more rapidly into the market. Loose coupling also reduces the maintenance costs
associated with our deployments.
Coupling
Coupling is a measure of how dependent one service is upon another. The more
closely one service depends on another service, the more tightly coupled they are.
There have been a number of efforts to formalize metrics for coupling, and they all
revolve around the same basic items:
Number of input data items: Basically, the number of input parameters
of the service.
Number of output data items: The output data of the service.
Dependencies on other services: The number of services called by this service.
Dependencies of other services on this service: The number of services that
invoke this service.
Use of shared global data: The number of shared data items used by this
service. This may include database tables or shared files.
Temporal dependencies: Dependencies on other services being available at
specific times.
Search WWH ::




Custom Search