Help with project: Advice on what architecture, application servers to use etc
This is my first post of hopefully many more as I get serious about my java coding and cs education ;-) I am familiar with java at a low level but am getting intimidated by the sheer number of packages and options out there! I could use some help making some big choices
I have an assignment in which I have to build an application for a client and could use some advice on how to design it and what packages to use. The application is to take data from a client, parse it out for storage in a database, arrange it into a report using the jasper reports library and then deliver it back to the client. We are to specify how (ie format and method) we want the client to deliver the data to us and how we deliver it back to them. Security is a primary concern and we are to design the system with this in mind.
So far my thoughts are to create an excel template that the client can enter this data in and then they can upload that to us via a web site/application or perhaps directly to a folder on our server. Then my code checks this server folder for files. When it finds one it processes this data into the database for storage and use, loads it into the jasper report and send it back to the client (either as a download or to a folder they can access on our server).
The challenge is to keep the whole thing secure and upgradable without interruption in operation, ie as in a real business operation. I'll be adding to the project as time goes on in the next few months so making sure I make good choices now means less problems later.
So this brings me to the point: Most of my programs in the past have been of sort that run on a client computer (think hello world and simple apps). In this project I think it would be better to design a Java EE web app that runs on our server to perform the business logic stuff, using EJB etc on a glassfish or tomcat application server. My problem is that I don't know enough about all of this components to decided which ones to use and how they fit together (ie Java EE, EJB, Glassfish or Tomcat or JBoss etc). I've been watching and reading a lot lately to help me decide, but I seem to just be getting more confused.
I don't have much server experience yet, so I've got a long road ahead of me there.
What are your thoughts? How should a newbie tackle a design challenge? Where can I get an overview to help me understand what's out there and the consequences of that decision?
Any insights are welcome (but please be kind; I'm fully aware of the vagueness of my questions but I lack the detailed knowledge to be more concise yet!)