
- Enterprise Service Bus: ESB "leve" baseado no Apache Synapse
- Web Services Application Server: Web services engine powered by Apache AXIS
- Mashup Server: plataforma baseada em Javascript que promete deploys rápidos de Web Services mashups
/pub/blog/davisilva is a blog that aims to be the central repository of my ideas about SOA (service-oriented architecture), Software Engineering and its trends; a place where I can share interesting articles and useful links. All opinions are mine and do not represent the ideas the company I work.
Um ESB geralmente provê uma camada de abstração acima de um sistema de mensageria corporativa, que permite aos arquitetos de integração explorar todas as possibilidades e benefícios deste messaging system sem a necessidade de escrever código.
Ao contrário da abordagem tradicional da Enterprise Application Integration (EAI), que utiliza a arquitetura monolítica de hub and spoke, os fundamentos do ESB são baseados na decomposição de processos de negócio executando de forma "harmoniosa".
ESB não implmenta service-oriented architecture (SOA) porém oferece as funcionalidades necessárias para implmentar esta arquitetura. ESB não é, necessariamente, baseada apenas em web-services.
Eugene's text starts with a simple question: "Why are ESB needed?". After this there is an interesting comparation between the ESBs from TIBCO (Matrix BusinessWork), SUN (openESB), Progress Software (Sonic ESB), IBM (WebSphere ESB) and, of course, Mule ESB (open-source, MuleSource Inc.).
He points out some advantages of Mule ESB:
* Active open-source community and commercial support available
* State of the art implementation and ability to run under Java 5/6
* Number of relevant features out of the box
* Response time from vendors within 48 hours (average time for the winners was 2 hours)
* Ease of installation and deployment
* Ease of configuration and expansion
* “Codeless” integration with legacy, third-party, and commercial products
* Ability to drop in/pull out without incurring in lock-in or ancillary product dependencies
* Low total cost of ownership
And how Mule ESB enables two or more applications to communicate? Mule implements elegant protocols and standards based on well-defined patterns. Applications communicate with one another by implementing these patterns with a set of predefined components (see figure below):
Eugene continues:
"... - Applications interface with Mule over a transport.
- A transport carries service objects between components (some of the current documentation refers to service objects as “UMOs” or universal message objects; that term is deprecated now).
- The transport is any mechanism for exchanging data between two points
- Mule doesn’t implement or mandate use of particular transports. It offers instead a number of transport providers and the integration engineers or developers get to choose the appropriate one for a given application.
- A transport provider implements a message receiver or dispatcher, a connector that implements a protocol like JMS, TCP, etc., and an optional transformer.
- The transformer may be use to convert service objects from one format to another (XML to native Java, for example).
- Mule routes inbound and outbound data between transports through the service object component, which is responsible for managing component events to and from the component, and for managing pooled resources. ..."
Good reading!