I’m designing a system where I have 2 nodes: 1 node with a web server that serves JSP pages, and forwards requests to web services in another node. In this other node, these webservices forward the eequests to the business logic layer, which then interacts with a DBAcccess layer.
Is JBoss suitable for this layout? Will I have to deploy 2 copies of the JBossAS, one in each node?
Thanks
You have two nodes, meaning two separate machines? [There’s another meaning of the word “node” common in WebSphere-land, just checking we are using same terminology.]
First node need to do servlets and JSPs. Java EE servers do that, JBoss does Java EE, so that’s reasonable use of JBoss. You could use other Java EE servers, but the little you’ve said gives no reason to avoid JBoss. So that’s one copy.
Second node, WebServices and some Business logic and some DB access. Again Java EE does that sort of stuff. There are alternatives, but if you already know JBoss, then why not? If you are using JBoss in node 1 I wouldn’t choose a different Java EE server in node 2. [I don’t have experience for using non-Java EE solutions in this layer – no doubt Spring afficionados could comment.] So if using Java EE here, then JBoss, another instance.
That leads to the question why are separating the nodes? One reason might be to allow you to scale the Presentation and Business tiers separately. Hence in the longer run you might have more than just two JBoss instances.
Strong advice: design from day on on the assumption that you might want to scale in that way. All too easy (for example) to create huge Http Sessions that don’t work well in clusters.