Java Web Application Development Kick off – Technical Items
Recently I got a chance to start development of a new application. During initial analysis I thought of having a list of constituents for development of a web application. I tried to look on the web for it but couldn’t gather much on it. Then I decided to prepare a list on my own. Once I finished preparing the list, I find it helping me too much in planning and project execution. Here in this blog I am sharing the list and hoping that this would help other as well. In this I have mentioned tools/api/software that can be used but no recommendation of anyone and there could be lots more for a task.
| Requirement | Description | Few Sample Available API/Tool/Software options |
|---|---|---|
| Application Server | Required for - Application Deployment - Could be different for dev and prod environment - if required access LDAP,JNDI And connection pooling features can be used | Tomcat,Jboss, WebLogic, WebSphere…. |
| Auditing | Required for Audit requirement for the application. - Action based auditing - Transaction based auditing | Log4j or slf4j, ApacheCommonLogging. |
| Authentication | Required to Authenticate a used entering into system | LDAP, JAAS, Simple J2EE container based, Database/file storage or authentication information |
| Caching | Required at different layers - Application server level - Application level for session - Application level for populating list/combos | Session based, application server based, custom code |
| Chart/Graph Reports | Required for creating good looking and user friendly reports | Jasper Reports |
| Connection Pooling | Required to improve the performance of database operations in a data centric application | Application server based or api from vendor(primrose and many more) |
| Continuous Integration/Software Configuration | Required for Software Configuration management | Subversion, Team City |
| Data tables | Required for displaying data table on screen with pagination and other actions | Display Tag, GWT, JSF |
| Database | Required for storing application data | MySQL, Oracle, SQL Server, Postgres |
| Defect Tracking | Required for defect tracking | Excel sheets, Sharepoint tasklist, Bugzilla, JIRA |
| Logging | Required for logging - different levels. - different types of output based on log level | Log4j or slf4j, ApacheCommonLogging. |
| MVC | Application request Control and Navigation | JSF, Spring webflow, Struts2, or simple JSP/servlet |
| Page Design/ Inclusion | Page inclusion mechanism | Tiles |
| Encryption | How to encrypt secret information like passwords | Password Hashing or Multiple level of security, or relying of external system like LDAP for the same. |
| Persistence | Required to persist the data in application (ORM or Normal JDBC) | Hibernate, JPA, Ibatis, Spring JDBC Template |
| Project build/make | Automatic build and distribution of application | Maven, Ant, Gradle |
| Tabular Reports | Reports | Jasper Reports |
| UI Components and pages | UI design | JSPs, Flex |
| Unit test | Automated unit testing | Junit , HttpUnit |
| WebServices | Exposing application funtionality via web services | RESTful webservices,SOAP based Web Services Spring remoting, Axis2, Xfire |
| XML Processing | XML handling | JAXP (SAX, DOM), JAXB |
Suggestions to improve this list are welcome.
From http://sudhirmongia.blogspot.com/2010/12/java-web-application-development-kick.html
(Note: Opinions expressed in this article and its replies are the opinions of their respective authors and not those of DZone, Inc.)





Comments
Tomasz Nurkiewicz replied on Wed, 2010/12/29 - 7:22am
Auditing/Logging: Logback
Authentication: Spring security
Connection Pooling: DBCP/C3P0
Continuous Integration/Software Configuration: Git, Hudson, Bamboo
Unit test: TestNG, FEST, Mockito. HttpUnit is not actually intended for unit testing
WebServices: Apache CXF
However, great sum-up, hope to see it one day in more expanded version.
Jonathan Fisher replied on Wed, 2010/12/29 - 1:49pm
in response to: nurkiewicz
Sudhir Mongia replied on Wed, 2010/12/29 - 10:25pm
Pavan Dhanapuneni replied on Sat, 2011/01/08 - 9:17am