Hello fellows. In order to have a solid knowledge and preparation to propose what J2EE techonology is the best for a certain situation, I would like to know what would be the best technology for the following scenario: hundreds of Swing-based clients connected directly to an application server (maybe propose connect to the Web server).
Other points to consider: - Sent information is XML - Thousands of transactions (orders) in the server - Good performance is mandatory - Connection protocol could be RMI-IIOP, HTTP over a VPN.
My initial approach is to implement asynchronous (for best performance) JMS message producers on the client side, leverage the JMS service of the application server and finally EJB MDB as JMS consumers to handle the application logic (transform XML and perform database updates).
JMS would be good depending on what the messages being passed consisted of. You could also use EJB or WEB services, especially if the swing clients are being run within an intranet environment. Keep in mind, messaging is good for some things but if the environment is really synchronuous (as in the user is waiting for a response), a messaging might not be ideal.
Also keep in mind messaging systems do not generally guarantee items are processed in the order they arrive so keep this in mind when designing.
Yes, Scott. Direct call to EJB's (using proper delegates and server locator, of course) could be the choice. Web services as well, but it can slow down the performance on the client side from my point of view.
It is not required to have a immediate response from the server, that's why I thought in asynchronous messaging using JMS considering that XML is the message format to be sent. If a requirement here is not mandatory in designing a solution, I would propose changes, as removing XML and call the EJB's directly.