Hi - I've spent the last couple of years on a team building a WAN server for an older LAN product.
The server design was fixed before I joined the team (not to cast blame, just to say that it was in-flight and deemed immutable). The implementation uses JEE technologies (web services via SOAP over HTTP). Scalability of this has been disappointing; we struggle to support 200 simultaneous users. The client that connects to the server is based on the eclipse platform, and is rather greedy of server resources (makes multiple simultaneous requests). Requests can take many minutes to complete; this is due both to the flexible nature of the requests (i.e., the client can ask for huge amounts of data), and to processing that takes place in the LAN component that is ultimately being used. Connections stay open for the duration of these long-running requests. Each request can consume multiple threads in the Java tier. Each client can make multiple requests for a user gesture. In a brief lull between releases, some of us have been casting about for alternatives that would scale better. In particular, that reduce the number of threads running in the Java tier. This has led us to Java NIO, thence to SEDA, and from there to MINA. I have some (possibly naive :-) questions about MINA that I hope someone can answer. First, does it even seem sensible to use MINA to try to implement an HTTP protocol? I've seen references to the asyncWeb project, but it seems like it's perhaps still being baked? Put another way, is anyone building and shipping a commercial product that uses it? Or, does anyone know of another open-sourced HTTP solution built atop of Apache MINA? (We may have the freedom to move away from web services & SOAP, but we'd still be using an HTTP-based protocol.) Second, are there any reasonably-size worked examples out there of using MINA to implement SEDA concepts? I see folks referring to the "excellent MINA documentation", and I confess I feel stupid as a result. :-) Have many more questions, but am curious to see responses to the above first. Thanks, --Steve
