tags:

views:

639

answers:

4

Ok guys its time to be stupid, I want to start looking at WCF but to be honest before I do I would like to understand more about SOA in general.

I dont really understand the concept of a "Enterprise service bus", and am not sure whether it is a pattern/methodology or piece of software. Additionally, the sam can be said of a "Message Broker".

On top of which how do the big SOA frameworks fit in here i.e. BizTalk, WebSphere etc? For that matter how does WCF fit in?

Im really not up on this stuff so can you please make your answers as simple as possible, and restrain from trying to baffle with science.

+1  A: 

SOA in simple terms decouples your presentation related components from the mechanism that fetches the content.

It sounds very trivial but the idea is that the presentation components should not only be independent of the program that fetches the data but also be agnostic of it.

To achieve this, a "Service" abstraction layer is created which contains the famous "Enterprise Service Bus" (ESB). ESB is the program that is aware of where the services are located, and how to invoke them to relay the data to the requester.

SOA has become more of a standard in enterprise level systems these days than just a choice, for the simple reason that at the data is (rather than "may be") fetched from different sources. E.g. A Login/Authentication service may be centralized LDAP based; An order details may be fetched using JDBC connection to an hosted DB engine; A credit card authorization may be using Payment Gateway Web Services invocation; and so on...

The single most biggest advantage of using this architecture is that there is zero or minimal impact on the core application design if tomorrow the same service is available from a different resource.

a-sak
A: 

It can be tricky to decouple the buzzwords from the reality, I agree.

Here's how I think about it:

SOA is about orienting your business functionality around services. That means thinking in terms of functionality black-boxes with (normally) well-defined interfaces. Often SOA also involves upfront work to make services available - this distinguishes it from more old-faishoned 'integration' - although there is a high degree of cross-over between the two.

An ESB is simply an architectural layer that allows you to connect your services together. Often it adds connectivity, routing, protocol transformation etc. It's optional, but nevertheless a typical component of many SOA projects. It's a pattern, but many software vendors have ESB 'products' that can help to implement the pattern.

These are admittedly vague answers, and some software/services vendors have more specific definitions (as well as a huge variety of technologies to implement them). You'll have to make your own mind up about those.

Disclaimer: I work for IBM as a WebSphere Consultant, but I am not speaking for them in an official capacity.

Andrew Ferrier
A: 

ESB provides a standards-based integration platform that combines messaging, web services, data transformation, and intelligent routing in an event-driven SOA. ESB is one of the important steps in moving towards a complete SOA.

Frameworks like Biztalk Server 2006 alongwith it's ESB Guidance toolkit aim at being an ESB. As you might already know, out of the box, Biztalk provides the messaging, web services and tramsformation capabilites. With the ESB Guidance toolkit(www.codeplex.com/esb), BizTalk can now provide intelligent content based routing and itinerary based processing. This makes the integration architecture much more loosely coupled than the conventional EAI architectures with a heavy weight integration broker.

WCF can serve as a lightweight container for hosting services which consumers can accesses through the ESB.

Giving an analogy from the hardware world, ESB is like a motherboard in your PC, all devices plug in to the board through a bus and its upto the board to figure out how the different devices talk to each other. The devices just have to know the way they can interface with the Bus.

Cheers

A: 

ESBs are basically a fucking scam. Never had a client who's used one to host more than 1 service, even then it was overbloated and complicated.

Pierreten