I want to create an application upon Java technology which can be any of them:
- A standalone desktop application on Swing,
- A webstart application,
- A web application deployed on Apache Tomcat or Google App Engine.
Coming back to type and nature of application, it is a Network based application say such as a Retail Application based on three layers say Employee, Manager and Administrator.
Now things which are sure:
Administratorwill be single for whole application.Managersare appointed for every branch (or say for every store).- Every branch/store will have 4-5
Employees. - Respective
ManagerandEmployeeswill be connected via LAN. - Every branch’s
Managerwill be connected to theAdministratoror vice versa. - The
Administratorapplication will be a web-based app, that can be accessed by admin any where.
Now my confusion is with Employee and Manager consoles, I want to have only one application that can be accessed by both employee and manager as per authentication, as they are on same branch but I am confused with the type of application.
Any type of application could be used in any of the roles.
You need to understand the pros and cons of each approach, and make your own choices. Ultimately, it boils down to a question of whether you want to have to install Java and / or a Java application on the users’ PCs.
A purely web-based UI requires no Java installation, but it means that you will need to use technologies such as HTML, CSS and Javascript to implement much of the UI code.
Swing requires you to install BOTH Java AND the application on the user’s PC. You also need to deal with getting the users to install updates. On the other hand, you don’t need to deal with browser incompatibilities and you can implement just in Java.
WebStart requires you to install ONLY Java, and a tiny JNLP file. Webstart takes care of downloading and caching the application from a central server, and deals with updates too.
No matter what you choose for your UI implementation, you also need some kind of backends to (at least) accept and process requests from the users, and manage the data / databases. You could implement this using GAE or Tomcat or any number of alternatives.