Cloud Computing and SOA Convergence in Your Enterprise: A Step ...
Cloud Computing and SOA Convergence in Your Enterprise: A Step ...
Cloud Computing and SOA Convergence in Your Enterprise: A Step ...
Create successful ePaper yourself
Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.
120 Chapter 6 Work<strong>in</strong>g from <strong>Your</strong> Services to the <strong>Cloud</strong>s<br />
component should not take down other components <strong>in</strong> the system, such as a<br />
cloud platform outage stopp<strong>in</strong>g the process<strong>in</strong>g of key on-premise enterprise<br />
applications. Therefore, loose coupl<strong>in</strong>g creates architectures that are more resilient.<br />
Moreover, loose coupl<strong>in</strong>g also better lends itself to creat<strong>in</strong>g failover<br />
subsystems, mov<strong>in</strong>g from one <strong>in</strong>stance of a component to another without affect<strong>in</strong>g<br />
the other components, which is very important when us<strong>in</strong>g cloud<br />
comput<strong>in</strong>g platforms.<br />
It should be noted, however, that not all tight coupl<strong>in</strong>g is bad. In some<br />
cases, it makes sense to more tightly couple components, such as when the<br />
dependencies are critical to the design. An example would be two services<br />
that cannot work apart <strong>and</strong> must function as one, <strong>and</strong> thus are better tightly<br />
coupled—for <strong>in</strong>stance, a transactional service that requires the remote databases<br />
to be up <strong>and</strong> runn<strong>in</strong>g for the service to work correctly. These services<br />
should be tightly coupled, <strong>and</strong> it is not a bad th<strong>in</strong>g to do so. You have to look<br />
at your requirements <strong>and</strong> determ<strong>in</strong>e the degree of coupl<strong>in</strong>g required <strong>in</strong> your<br />
architecture, <strong>and</strong> it may not always be loose coupl<strong>in</strong>g.<br />
Are You Loosely Coupled<br />
Now that we know the basic differences between a tightly <strong>and</strong> loosely coupled<br />
architecture, as well as the advantages, perhaps it is a good idea to break down<br />
loose coupl<strong>in</strong>g <strong>in</strong>to a few basic patterns: location <strong>in</strong>dependence, communication<br />
<strong>in</strong>dependence, security <strong>in</strong>dependence, <strong>and</strong> <strong>in</strong>stance <strong>in</strong>dependence.<br />
Location <strong>in</strong>dependence means that no matter where the service exists, the<br />
other components that need to leverage the service can discover it with<strong>in</strong><br />
a directory <strong>and</strong> leverage it through the late b<strong>in</strong>d<strong>in</strong>g process. This comes<br />
<strong>in</strong> h<strong>and</strong>y when you are leverag<strong>in</strong>g services that are consistently chang<strong>in</strong>g<br />
physical <strong>and</strong> logical locations, especially services outside of your organization<br />
that you may not own, such as cloud-delivered resources. <strong>Your</strong><br />
risk calculation service may exist on-premise on Monday <strong>and</strong> with<strong>in</strong> the<br />
cloud on Tuesday, <strong>and</strong> it should make no difference to you.<br />
Dynamic discovery is key to this concept, mean<strong>in</strong>g that call<strong>in</strong>g components<br />
can locate service <strong>in</strong>formation as needed <strong>and</strong> without hav<strong>in</strong>g to<br />
b<strong>in</strong>d tightly to the service. Typically, these services are private, shared, or<br />
public services as they exist with<strong>in</strong> the directory.<br />
Communications <strong>in</strong>dependence means that all components can talk to<br />
each other no matter how they communicate at the <strong>in</strong>terface or protocol