You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 18 Next »

Component Matrix

ServiceMix defines several types of components:

  • JBI SE : standard JBI Service Engine
  • JBI BC : standard JBI Binding Component
  • LW SE : LightWeight Service Engine
  • LW BC : LightWeight Binding Component

Lightweight components are components that can be configured using activation specs in the servicemix.xml configuration file.
Standard JBI components can be deployed at run-time and accept service units deployments. These components may in addition provide a way to configure them in a lightweight fashion.
Note that the servicemix-lwcontainer is a standard JBI component which is able to deploy lightweight components so that you can add / remove lightweight components at run-time.

A component can act as two different roles with respects to JBI MessageExchanges. In a given exchange, the originator component is said to be the consumer and the target component is said to be the provider.

The JBI spec defines service invocation as an instance of an interaction between a service consumer and a service provider. The following are the four service invocation patterns are required to be supported by any JBI implementation:

  • One-Way: consumer issues a request to provider with no error (fault) path provided.
  • Reliable One-Way: consumer issues a request to provider. Provider may respond with a fault if it fails to
    process request.
  • Request-Response: consumer issues a request to provider, with expectation of response. Provider may
    respond with a fault if it fails to process request.
  • Request Optional-Response: consumer issues a request to provider, which may result in a response.
    Consumer and provider both have the option of generating a fault in response to a message received during
    the interaction.

The WSDL 2.0 Extensions spec defines a Message Exchange Pattern (MEP) as: "the sequence and cardinality of abstract messages listed in an operation." JBI uses this concept to define interactions between two nodes: the consumer node, and the provider node. The pattern is defined in terms of message type (normal or fault), and message direction. MEPs always reflect the provider's point of view. For example, in a request-response interaction, the MEP is in-out, which reflects the flow of messages as seen by the provider. From the consumer's perspective, the direction of message flow is reversed, but the MEP used by the NMR in its interactions with the consumer will always reflect the provider's perspective. This is a conventional practice when dealing with WSDL MEPs.

Below is a matrix of ServiceMix components and the JBI MEPs supported by each.

 

Type

Description

Role

MEPs

Class name

Cache

LW SE

Used for caching service invocations to avoid unnecessary load on expensive services.

Mixed

In-Out

o.a.s.components.cache.CacheComponent

Drools

LW SE

 

Mixed

In-Only

o.a.s.components.drools.DroolsComponent

Email

LW BC

 

Provider

In-Only

o.a.s.components.email.MimeMailSender

 

 

 

Provider

In-Only

o.a.s.components.email.SimpleMailSender

 

 

 

Consumer

In-Only

o.a.s.components.email.MimeMailPoller

File

LW BC

 

Provider

In-Only

o.a.s.components.file.FileSender

 

 

 

Consumer

In-Only

o.a.s.components.file.FilePoller

FTP

LW BC

 

Provider

In-Only

o.a.s.components.net.FTPPoller

 

 

 

Consumer

In-Only

o.a.s.components.net.FTPSender

Groovy

LW SE

This component allows Groovy scripts to be used as endpoints, transformers, or services.  This allows you to combine the power of the Groovy scripting language with the ServiceMix JBI container.

Provider

In-Only or In-Out depending on the Groovy Script sent to the Groovy SE.

 

HTTP

LW BC

 

 

 

 

Jabber

LW BC

 

 

 

 

JAX WS

 

 

 

 

 

JCA

LW SE

Allows the Java Connector Architecture to be used for efficient thread pooling, transaction handling and consumption on JMS or other Resource Adapters

Consumer

In-Only

 

JMS

LW BC

 

 

 

 

PXE

JBI SE

BPEL Engine

 

 

 

Quartz

LW SE

A component for job scheduling

Consumer

In-Only

 

Reflection

LW SE

The Reflection API represents, or reflects, the classes, interfaces, and objects in the current Java Virtual Machine.  This API is handy if you are writing developement tools such as debuggers, class browsers, and GUI builders.

Consumer

In-Only

o.a.s.components.reflection.proxyIntOnlyBinding

Reflection

LW SE

 

Consumer

In-Out

o.a.s.components.reflection.proxyIntOutBinding

RSS

LW BC

 

 

 

 

SAAJ

LW BC

 

 

 

 

Scripting

LW SE

A component to allow any JSR 223 compliant scripting engine to be used to easily create a component , perform a transformation, or be an expression language.

Provider

In-Only or In-Out depending on the Groovy Script sent to the Groovy SE.

 

servicemix-http

JBI BC

HTTP binding

Consumer / Provider

In-Only / In-Out

 

servicemix-jms

JBI BC

JMS binding

Consumer / Provider

In-Only / In-Out

 

servicemix-jsr181

JBI SE

Hosts annotated POJOs

Provider

In-Only / In-Out

 

servicemix-lwcontainer

JBI SE

Hosts lighweight components

n.a.

n.a.

 

servicemix-sca

JBI SE

Container for SCA modules

Consumer / Provider

 

 

servicemix-wsn2005

JBI SE

WS-Notification

Consumer / Provider

n.a.

 

servicemix-eip

JBI SE

EIP patterns

Consumer / Provider

n.a.

 

Validation

LW SE

 

 

 

 

XFire

LW

 

 

 

 

XPath Routing

LW SE

Used to perform content based routing in an ESB.  This means you route messages around your service bus based on the message properties of the content of the message.  When integrating systems accross language boundries its common to use XML as a universal message format; so XPath is an ideal tool to perform content based routing and transformation.

Mixed

Recieves an In-Only exhange and sends an In-Only message to another component.

 

XSLT

LW SE

The XsltComponent will preform an XSLT transformation of an inbound Normalized Message and generate an output message as a Normalized Message.

Mixed

MEP is In-Only, as the consumer it is also In-Only.  This Component can also have an In-Out exchange pattern, which is the main pattern for this component.

 

XSQL

LW BC

 

 

 

 

Validation

LW SE

Email support via JavaMail(http://java.sun.com/products/javamail/).[

http://servicemix.codehaus.org/maven/servicemix-components/

apidocs/org/apache/servicemix/components/email/MimeMailSender.html]

Mixed

As the Provider, the MEP is In-Only, as the consumer it is also In-Only.  This component can also have an In-Out exchange pattern, which is the main pattern for this component.

 

VFS

LW BC

 

 

 

 

WSIF

LW BC

 

 

 

 

  • No labels