I am building a web application where I want to distribute the code in various tiers like UI, Business logic and database. Here are my desired features which explain my usage scenario:
I tried out RMI but drawbacks were Java lock-in and no support for load balancing and fail over features. I have considered JMS but realize that even though the features like load balancing, failover of MOM are very tempting, it doesn't seem suitable for real time request-response type application to me(Correct me if you think I am wrong).
Please suggest me good popular, suitable framework(s) that best suit in this use case scenario.
Update:
Exploring SOA, I come across the two prominent options SOAP and REST. As I mention, I have to make a choice interms a communication methodology to use internally between the modules/layers in my application. Is there an obvious/popular choice to make between them when looking for quick request-response and high scalability, load balancing, failover scenario? I don't intend to convert this post into REST vs. SOAP discussion, but if quick lite comparison can help in this case. I am also open for any third alternative if it's there in SOA which I am missing. Some examples from real world deployment scenarios will also help.
Let's dig into your architectural requirements: