7. Applications

Pushlets allow many types of web applications to be developed. Since the framework also allows for clients to upload events (through the Postlet), possible applications are not just passive pushing of data. Each application can be categorized according to:

Also since live events are made available to JavaScripting, this allows also scriptable plug-ins to receive live updates. For example you may script your Macromedia Flash or VRML World application.

Below is a range of applications. On the Pushlets website several simple demos are provided.

7.1. Monitoring

Various data sources may be monitored live such as stocks, weather, votes, flight arrivals and systems.

See a real-world FX stocks/news application that I worked on at www.rabotreasuryweb.com (IE only).

I also discovered other real-time stock/news sites that are deploying Pushlets or a variant:

www.marketnews.com.

7.2. Gaming

From a two-user tic-tac-toe up and chess up to more elaborate Risk and Monopoly.

7.3. Distributed Model View Controller (MVC)

This refers to a design pattern often found in user interface frameworks such as Java Swing and Microsoft MFC. In the distributed variant a Model (often the data) resides on a server while clients hold the Views and Controls. Through the Controls the Model is modified. The Model will then notify all attached Views who will subsequently refresh themselves.

Many applications may have a web front-end through which data on the server is updated by multiple users. Examples are reservation systems and bookings. If one client makes an update, the others won't see the update unless they continuously refresh their pages. In some cases this is a simple and workable solution, but there are also cases where users need to be synchronized with the update as it happens. This type of application is easily done with Pushlets pushing a URL as the single event. When a client receives the URL it will refresh the page with it.

One notable example are the much discussed Enterprise JavaBeans (EJBs). Although Java clients are able to talk directly to an EJB (through RMI or CORBA), more often servlets and JSPs are used as a front-end. In this case notification becomes much harder. With Pushlets an EJB could notify its attached web-clients whenever its state changes.

7.4. Web Presentations

Also known as WebTours or like I dubbed once: "Are you being surfed ?". This is actually an application from which I derived Pushlets. I abandoned PowerPoint for making Java course content and developed a content management framework based on XML with presentation (slides etc) in HTML. Since in many situations the classroom had no beamer but all students a networked computer, I developed a simple application (WebPres) that allowed me to change HTML slides with all students automatically following them in their browsers.

7.5. User Assistance

This type of application can also be useful in situations like call centers, banks or help-desks or e-commerce web applications in general. When I phone in with a question the agent may surf me to URLs with solutions, offers or other information.

A real-world application where this example of Pushlet-technology is currently used is a foreign-exchange trading application I helped developing at one of my clients. See the result at www.rabotreasuryweb.com (IE only).

Using a back-end of EJBs and a JSP front-end, clients can buy or sell foreign currencies. An "AutoTrader" object automates the offering process. If somehow the automatic offering fails or the client requests a human dealer, a "Dealer Intervention" takes place, whereby a dealer is notified and enters a new offer which is pushed to the client browser using Pushlet technology.

7.6. Community Tools

Various applications where multiple users can join in a live session. I originally had a prototype of the framework where a multi-user session was realized as a collection of HTTP Session objects. I am planning to extend the Pushlet framework with these capabilities. For now I have a simple web-chat and what I call WCQ (in Dutch this sounds almost like We Seek You), a simple ICQ-like desktop window where you can monitor the presence of friends.

Other applications in this area include live forums and shared document editing.