The earlier post of mind map focused on WCF. The below is more on integration topology, with more contents covering Java related technologies.
Integration Topologies
- Message Broker (Hub-and-Spoke)
- Technology Stacks
- Client Library Implementation
- Communication Protocol
- Broken Implementation
- ActiveMQ
- Communication Protocol
- OpenWirev1
- OpenWirev2
- STOMP
- REST
- WS-Notification
- XMPP
- Jabber
- Client Lib - Spark
- AMQP (incubation)
- RSS, Atom
- Container
- Axis Support
- Geronimo
- J2EE
- JBoss Integration
- JCA Container
- JNDI Support
- Resource Adapter
- Spring Support
- Sun JNDI
- Tomcat
- WebLogic Integration
- Client Lib
- ActiveMQ C++ Clients
- Ajax
- C Integration
- CMS
- NMS
- Perl
- PHP
- Pike
- Python
- Ruby
- Coding
- ConnectionFactory
- Connection
- Session
- Destination <= createTopic
- Destination <= createQueue
- MessageProducer <= createProducer
- setDeliveryMode
- send(Message)
- IMessage <= createMessage
- MessageConsumer <= createConsumer
- Message Bus
- ServiceMix
- JBI
- a pluggable architecture for a container that hosts service producer and consumer components
- Services connect to the container
via binding components (BC) - or hosted inside the container
as part of a service engine (SE) - Message Delivery
- NMR Normalized Message Router
- MEP Message Exchange Patterns
- In Only
- Robust In Only
This pattern is for reliable one-way message exchanges. The consumer initiates with a message to which the provider responds with status. If the response is a status, the exchange is complete, but if the response is a fault, the consumer must respond with a status.
- In Out
- In Optional-Out
- A standard two-way message exchange where the providers response is optional.
- Lifecycle
- JMX
- installation, deployment, monitoring and lifecycle concerns amongst BCs and SEs
- More Info on JBI...
JBI is an architecture for integration systems specifying plug-in components that interoperate by exchanging messages, rather than by interacting directly. This decoupling increases flexibility because each component needs to know how to interact with the JBI bus only and not with n number of other components. JBI components provide services, consume services, or sometimes both. There are two types of components: Service Engines (SE) and Binding Components (BC). The SEs provide business logic and transformation services. The BCs provide connectivity for applications that are external to the JBI. The separation of business and processing logic from communication logic makes the implementation of components much less complex.
The mediated message exchange between components is provided by the Normalized Message Router (NMR). The NMR routes normalized messages between service providers and consumers. A normalized message consists of two parts: the message content (payload) and the message metadata. The message metadata contains information such as security information, that can affect the processing of the message as it routes through the JBI. Messages flowing into the JBI, via binding components, are translated into a normalized (neutral) format, then routed to their destination. Prior to final delivery the normalized message is translated into the appropriate format for the recipient. A message can be routed through several JBI components depending on what processing is needed.
- Enterprise Service Bus
Implementation Camp
- multiple protocol
- purely on SOAP/HTTP
Marketing Attributes
- distributed processing
- intelligence routing
- visibility - into messages for content-based routing
- security
- dynamic data transformation
- business process orchestration
- reliability
- transactionality
- Event Driven Architecture
- quality of service (QoS) features
- message persistence
- guaranteed delivery
- failure handling
- transaction support
- comparison
- EDA
- decoupled, scalability and reliabilty required for high transaction production environments
- SOA
- synchronous request/response communication (usually)
Infrastructure Characteristic
- distributed - to remove geographical constraints
- message-based - to promote loose coupling
- open standards-based - to preserve investment and encourage partipicipation
- reliable - to meet the requirements of mission-critical business operations
Design Requirement
- Standard Based
- Flexible
- Deployment
- standalone
- embedded in an application component
- as part of the services supported by an application server
- Component Reuse
- Scripting Language
- Embedded Rule Engine
- Reliability
- network outages
- system failure
- Breadth of Connectivity
- two-way reliable web service
- MoM (Message Oriented Middleware)
Enterprise Need
- Disparate Application
- Disparate Platform
- Disparate Business Process
- Non compatible data format
- Non compatible communication protocol
- Need: Enterprise Integration
- Past Solutions
- Enterprise Application Integration
- Service Oriented Architecture
- Web Services (already a past ???)
- Evaluation of Past Solutions
- Vendor Solution
- Custom Solution
- high maintenance, host cost
The ESB addresses the disadvantages of existing solutions by
creating a standard infrastructure for integration.
Point-to-point solutions, where each of n components requires n-1
interfaces for full communication, are replaced by a bus solution
where each component requires a single interface to the bus for
global communication
Debate: is it relevant?
Microsoft's ESB Offering
- Application Platform
- WIndows Server
- .NET Framework 3.0
- Core: BizTalk Server
- Advertised Features
- Industry Leading Web Services Support
- Intelligent Routing
- Message Transformation
- Itinerary Processing
- Legacy and LOB Application Adaptation
- Service Orchestration
- Metadata Lookup
- Exception Management
- Distributed Deployment
- Centralized Management
- Business Rule Engine
- Business Activity Monitoring
- Web Service
- POJO (Plain Old Java Object) Exposed as Web Service
- Axis2
- Transport Receiver - transport related processing
- Dispatching - find service and operation
- AddressingBasedDispatcher
- RequestURIBasedDispatcher
- SOAPActionBasedDispatcher
- SOAPMessageBodyBasedDispatcher
- Message Receiver - last handler of the chain
- Configuration
- ServiceGroup
- Service
- Operation
- Service Scope
- Request Scope
- SOAP Session Scope
- Transport Session Scope
- Application Scope
- Data shared among services
- Session maintained using context
- JAX-WS Java API for XML Web Services
- JAXB Java Architecture for XML Binding
- Microsoft WSE, also WCF
- Publish/Subscribe
Of course, this is collected facts or believed facts. There is no judgement or recommendation. You have to do your own research, hands on verification before believing. As usual : )
Posted
Oct 03 2007, 10:23 AM
by
blackinkbottle