"timfox" wrote : To kick off the discussion, here are my initial comments on
Jeff's wiki:
|
| In the diagram where you map MINA objects to JMS objects, we should remember that the
JMS layer is a thin layer on the front.
|
| MINA needs to map to a JMS agnostic layer (which may look a bit like JMS).
|
| I'm thinking like the following:
|
|
| | JMS Agnostic MINA
| | --- -------- ----
| |
| | IoConnector IoAcceptor
| | \ /
| | \ IoSession/
| | Connection----Connection------------------
| | | |
| | | |
| | Session Session
| | / \ \
| | Producer Consumer Consumer
| |
| I think Connection Session and Consumer are good abstractions for generic messaging
| But Producer and Browser only live on the JMS side.
| Producing messages and browsing can be methods on the agnostic Session class.
Looks great to me.
"timfox" wrote : Actually, currently the *only* messages we send asynchronously
are:
|
| 1) consumer change rate
| 2) messages send (for non persistent messages)
|
| All the rest are synchronous.
|
| We could consider making the following asynchronous:
|
| 1) Cancel delivery
| 2) Start/stop connection
|
| In terms of how to correlate requests and responses to give synchronous calls, it
should be fairly simple to do something like the following:
|
| 1) Send message with "request id" in message.
| 2) Block thread and put in map with key of request id.
| 3) When response comes back, look at request id.
| 4) Lookup thread in map with that request id and wake it up.
|
| Some kind of wait/notify should do the trick.
MINA 2.x provides exactly what you want as a filter. Please take a look at here:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/min...
"timfox" wrote : Finally one other thing to think about is how MINA is going to
support SSL and HTTP.
MINA already has support for SSL including StartTLS. It's known to be very reliable.
SSL is provided as a filter so just inserting a new SSL filter will enable SSL
immediately. No sweat.
MINA recently imported AsyncWeb source code into its sandbox, and it should be included
into the official distribution after some polishing. MINA has an infra for implementing
protocol codec and AsyncWeb provides HTTP codec on top of it. Therefore, you can build
your own lightest-weight web server very easily. Please take a look at this example:
http://svn.apache.org/viewvc/mina/sandbox/asyncweb/example/src/main/java/...
Please feel free to contact me or the MINA team whenever you need some support related
with MINA including questions like 'does feature XXX supported in MINA?' Actually
we got most, and want to add as much as possible harmonizing all the features with each
other.
View the original post :
http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4101788#...
Reply to the post :
http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&a...