Hi there,

I'm new to web development, planing to develop my first J2EE-based Rich Internet Application, and have some fundamental questions to application architecture.

The back-end will run on a Linux machine, serving multiple (5 to 25) Windows PCs via Intranet.

Front-end will be an interactive UI for executing work flows that run on the server; for viewing scalable diagrams and data tables of the results, for requesting data as Excel and Word files, for uploading data from Excel files. The UI will be realised in the web browser using HTML(5) with CSS and JavaScript.
  • - Will these technologies be sufficient for complex and interactive UI, since I want to avoid Browser plug-ins and Applets? (OK, this is not directly a back-end question)
  • - How can I "tame" JavaScript (e.g. automated generation of HTML, CSS and JavaScript by J2EE back-end), as it feels confusing to create a mix of three different front-end syntaxes besides Java on the back-end.

Back-End: communication with multiple clients, central application logic (including a computational-expensive comparison algorithm as part of user-requested work flows), hosting and access to data in DB
  • - My first thought was to use J2EE with Tomcat for realising the whole back-end - but will this be sufficient to communicate with the clients, i.e. take care of all the session administration and HTML/CSS/JavaScript-generation? Or do I add another layer of complexity, e.g., PHP?
  • - As performance (up to 25 clients might simultaneously request computational-expensive sub-routines), platform-independence (might run on Windows servers in future) and extensibility are important issues, I decided for Java. But would DJANGO or Ruby-on-Rails or PHP or something else be a sufficiently fast alternative to?
  • - How can I find out about the minimal hardware requirements of the server?