John Chad Parry

FDR

A browsing interface will be designed for the Palm Vx Series of mobile devices. The system will consist of two main components. First, a proxy server will be built using Java, running in a standalone Java Virtual Machine. Second, software for the client will be created in Java, using the K Virtual Machine. The client machine will have the ability to communicate with the proxy and it will request Web pages through the proxy. The proxy will have the ability to parse and simplify Web pages for easier consumption by the client.

The goal of this project will be to explore ways to overcome the limitations traditionally associated with inexpensive handheld devices. Web browsing with a handheld is problematic because of the reduced screen real estate, the lack of color, the narrow bandwidth, the less-powerful processors, and especially because of the clumsy user input devices. The ability to display a variety of pop-up windows which each contain a small amount of information is one of the solutions that will be presented. The finished product will be able to handle Web page components such as text and text formatting, images and forms.

The proxy server component consists of five components. First, the Liaison module will be responsible for communicating with the handheld client. Second, the Network Valet will service network requests from the Liaison. Third, the HTTP Client will send requests over the Internet and parse responses from Internet servers. Fourth, the Parser will parse Hypertext Markup Language (HTML) documents and construct a document tree. Fifth, the Sieve will filter the document tree for elements that are not suitable for display on a handheld device.

The handheld client component consists of five modules. First, the Location module points the browser to an Internet address specified by the user. Second, the J2ME HTTP Client will communicate over the Internet with the proxy server. Third, the Unmarshal module will interpret the document trees sent from the proxy server as binary streams. Fourth, the Display module will draw the graphical user interface. Fifth, the Event Handlers will respond to user input.