This page describes the mapping between JMS concept of JBoss Messaging and MINA concept.
It is planned for JBoss Messaging 2.0 to use MINA as the transport layer between JMS clients and server peers
Tracked by JBMESSAGING-544.
This integration is discuted on the design forum
Requirements
support for TCP/IP, HTTP (with or without SSL)
message can be sent by either server or client
send heartbeat sent by clients (see DIRMINA-350)
send one-way message
send one-way message and be called back later
send message and block until a response is received
define a wireformat based on JBoss Messaging Core API (JMS agnostic)
+----------------+ +------+ | Core Messaging | | MINA | +----------------+ +------+ IoConnector IoAcceptor (client) (server) \1 /1 \ / 1 1 \1 /* Connection --------------------------- IoSession |1 TCP/IP [SSL] | HTTP[S] |* Session |1 | |* Consumer
Compared to JMS, Producer and Browser features are handled by Core Session.
1 IoSession per JBM Connection
When an IoSession receives a MINA message, it must forward it to the proper Core Objects
-> each Core objects must have a unique ID
MINA messages sent by Core Messaging Client:
Connection
start/stop
set the client ID
send a transaction
Session
ack/cancel delivery(ies)
add/delete temporary destination
unsubscribe from a topic
send a Message
Consumer
change throttle rate
Connection/Session/Consumer/Browser
close
MINA messages sent by Core Messaging server
ConnectionFactory
receive an updated cluster topology view
Consumer
receive a Message
MINA blocking messages sent by Core Messaging Client
ConnectionFactory
create Connection
get cluster topology view
Connection
create Session
get client ID
get ID block
get prepared transactions
Session
create Producer/Consumer/Browser/Destination
Browser
has next message
next message
next message block
Connection/Session/Consumer/Browser
closing
Comments