One of the most famous scientists of the 20th century wasErwin Hubble(of the Hubbletelescope fame). Hubble is famous for photographs he took back inthe early 1920s. These photographs were of a diffuse blob of light inthe Andromeda constellation. Hubble noticed that the picture of theblob had a variable pulsar that allowed him to estimate how far awaythe blob was. The blob turned out to be the Andromedagalaxy, and Hubble estimated that it was about 1 million lightyears away from us; today this has been corrected to 2.7 millionlight years, but what is a couple of million light years betweenfriends. Suddenly the universe got much much bigger. Just to give abit of perspective here, the galaxy where we live is called the MilkyWay and is 100,000 (0.1 million) light years in diameter.Andromeda is our nearest galactic neighbor and is a similar size tothe Milky Way. So whereas Galileobefore him showed us that we live in a heliocentric universe, Hubbleshowed us just how big the universe really is.
So in honor ofHubble, when NASA built the world's biggest telescope they named itafter him. To cover the gamut of the electromagnetic spectrum, thetelescope would orbit the Earth. Needless to say this was not asimple feat. The telescope was engineered to state of the artprecision by the leading optical and space aerospace engineeringcompanies. The subsystems where delivered by NASA's space shuttle andassembled in situ by its astronauts.
Within weeks of its final assembly Hubble begin to show seriousproblems with image it was capturing; the images were fuzzy. Theengineers huffed and they puffed, they fiddled with the knobs andbuttons and the images remained fuzzy. It turns out that the mirror,the center piece of any telescope, had been polished to the wrongshape. Needless to say this was a very costly mistake to correct anddid not help NASA's credibility.
This is an age old problem: how do wemanage complexity? The solution gets much harder as the number ofmoving parts and their complexity increases. A service orientedarchitecture (SOA) suffers from the same problem as did the Hubbletelescope project; not managing this complexity can be very costly.Consider the IBM SOA reference architecture. The IBM SOA referencearchitecture demonstrates how services can be classified in a typicalenterprise.
SOA is about identifying what services are core to a business.Once these business services have been identified, business processdecomposition reveals what IT services are needed to provision thesebusiness services. The input and output messages of these IT servicesand the domain objects that these services manipulate also need to bespecified. From an IT perspective these services can be modeled asuse cases and the functional and nonfunctional requirements of theseuse cases can be traced. With all the moving parts how can the complexity of this kind of environment be managed? In particular howcan we build out these services to ensure that the nonfunctionalrequirement of these services are satisfied?
Patterns are a way to help manage this complexity. Patterns are arepeatable solution to a problem in context, and typically aredescribed by a pattern specification. Pattern specifications includea forces section which outlines when the pattern should be used.Feasibility for a solution is ultimately determined by nonfunctionalrequirements, examples of which are scalability, performance,security, transactionality, maintainability, and interoperability. Bymapping these nonfunctional requirements to the forces section in thepattern specification, we achieve traceability and accountability interms of the architectural decisions and minimize the potentialexposure to fiascoes like that of the Hubble's mirror.
Give this approach to service implementation consider thefollowing vision for patterns:
Given a set of functional andnonfunctional requirements, IT architects versed in patterns canrepeatability produce architectures compliant with softwaredevelopment best practices and design principles.
A patterns-based approach todevelopment of services for SOAs provides architectural consistency,accountability and traceability in terms of the decisions made.
The Hubbletelescope was repaired by subsequent space shuttle missions. Therepaired telescope pointed her solar panels towards the sun, themachinery turned and her mirror looked out past the stars in our ownMilky Way, past Andromeda in our local galactic cluster, past theSombrerogalaxy (30 million light years away) on the southern boundariesof the Virgogalactic cluster out into HubbleDeep Field in the constellation Ursa Major, giving us some of the most stunning pictures of alltime and showing us just how big this place really is.[Read More]