09.02.2015 Views

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 ...

SHOW MORE
SHOW LESS

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

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!