Web 2.0 Development For the Single Java Developer

Have you searched for an application development tool that is open source, java, and based on web 2.0 standards? Has all the technology features and requirements of integrating multiple products into a cohesive development tool suite made the technological decision more difficult then it needs to be?

I recently decided to start my own business after years of working for companies like IBM & Dell. As an independent consultant, I needed a software development tool that could maximize my productivity and utilize my experience.

This article outlines my technical requirements and decision-making process.

Requirements for a Web 2.0 Development Tool
Some of the features of a web 2.0 development tool might be: easy and rich interactions with external services via web services, rich and easy to use UI widgets, a web-based development solution that runs in the major browsers (zero install footprint), seamless integration between the client and server, usage of standard debugging tools (ie FireBug and Eclipse), based on standard Java technologies such as Spring, JaxWS, Acegi and Hibernate.

In order to be productive as a single java developer team I would like to be sheltered from all the low level setup and integration of the various technologies. I would like to have an application development environment that combines the best of breed web 2.0 development technologies into one development environment tool that helps me be productive while delivering cutting edge solutions.

A few features I personally require:

  • Web 2.0 UI: The developers tool is written with the tool
  • Rich UI Widgets: UI widgets like Dojo for a Rich Internet Application (RIA)
  • Web Browser Runtime: zero install footprint with no proprietary plugin
  • Security System based on Spring Acegi: proven and robust security solution
  • Seamless database integration: easy to build web forms for CRUD operation of the database schema
  • Java support: full support of Java programming on the server: – I don’t want to have to learn YAL (Yet Another Language)
  • Ease of deployment: support open source severs like Tomcat and JBoss
  • Open Source: active community with source code readily available – a solution whose design is based on established standards

Selecting an Easy to Use Web 2.0 Development Tool
Since I want to write a web-based application that may be inter or intranet website or both, I would like the developer application to be built with the same technology that I will use. This is why I want the development tool to be web-based. For the UI, the very UI tools that are used in the final deployable web-based application should be the same components used in the developers tool. If the final end product I develop utilizes Dojo widgets then my developer tool should use those same Dojo widgets. I think some call that “eating your own dog food”!

I did some personal research into what javascript client library would be the best for me to learn. I decided that it would be Dojo for various reasons one of which was I really liked the way it looked! But when I was learning Dojo, I was a little overwhelmed with how much there was to learn and all the moving parts. With the incorporation of Dojo into the development tool that learning curve could be reduced tremendously and I like that idea.

I would like a drag and drop development tool that runs in a browser that hides the complexity of working with Javascript toolkits like Dojo. I also want it to make setting up security such as snap that it’s hard to believe you’re running on top of something like Spring Acegi.

If you’ve ever setup Spring Security with Acegi you know how difficult it can be. I think that Spring Acegi rocks and would like to have a development tool that supports it seamlessly. By that I mean having Acegi integrated into the developer tool and requiring from the developer a few definitions such as which table has the user id and password to enable security.

Database access can be the hardest part. The integration of the database schema should be evident when building UI components – the components should understand the keys (both primary and foreign), the data types, how to present to the UI and how to scroll and such. I should be able to create a functional sophisticated CRUD (Create Read Update Delete) pattern UI in minutes with no coding!

The deployment of the application should be a single mouse click – the requested war or ear should be generated and placed in a specific directory for easy retrieval. There should be no maintenance of ANT or Maven build scripts. My web-based deployable artifact should be generated quickly and be deployed it to any of the popular web servers: Tomcat, JBoss, GlassFish, WebLogic and WebSphere.

Leave a Reply

Your email address will not be published. Required fields are marked *