Tuesday, June 17, 2008

Service Infrastructure

A good infrastructure is key to a successful SOA implementation. So what exactly is infrastructure? Infrastructure typically refers to the functional and non functional requirements of a service that are not a part of the business logic itself. In other words features such as brokered communication, mediation, security, administration and monitoring all qualify as infrastructure. The infrastructure may also be responsible for providing transaction management, resource management, provisioning, etc.

So how much infrastructure do we need? The answer: It depends. It's like asking how many features are needed before we ship a version of a product. The answer: It depends. Some features are crucial while others are nice to have. There are many factors to consider before investing in infrastructure. Remember the purpose of technology is to help the business profit [1]. One of the biggest considerations is build vs buy. I will cover the build vs buy debate in a future blog.

What is available from Microsoft? Microsoft currently has the .Net Framework 3.5, Visual Studio 8 and BizTalk Server 2006 R2 and is investing some of the top engineering talent in its OSLO initiative. Microsoft WCF is definitely a major leap in technology for building distributed applications on the Windows platform. However it's not immune to any poor design choices employed by a SOA practitioner.

When building SOA applications a good design discipline is separating infrastructure components from business/application components. It sounds like a no-brainer, but believe me I have seen many implementations that muddy the waters by not separating them. Keeping them separate allows for the infrastructure and business logic to change at different rates.

In my next blog, I will present a reference architecture and discuss service invocation. Cheers!

0 comments: