Home Page

Back to Papers


Introduction - Why WAP?

WML

XML

The Oracle XDK

An Example Application

Our first XSQL Page

Browser Sensitivity

A WML Stylesheet

WML Output

An HTML Stylesheet

Conclusion and Resources

Please note this page has moved to http://oracledoug.com/wap5.html. You will be redirected in 5 seconds but it would be better to update your bookmarks ;-)

An Example Application

I developed a simple prototype for a WAP-enabled web-site recently over a couple of weekends, including designing and populating the database and installing and configuring the XSQL servlet, which gives an indication of how simple the tools are to use.

This prototype screen is the search facility for a IT recruitment web site that would store a candidate's search criteria and would allow the user to view the most recent job postings of interest. An essential aspect of the application is that up to date data would need to be retrieved dynamically. This would allow an IT consultant operating in the very dynamic UK consultancy market to look for work whilst enjoying their vacation on the beach. So, at the very least, even if the project was abandoned, I'd be able to use the application personally!

A critical aspect of design for mobile devices is that, because screen real estate and bandwidth are so limited on a mobile phone, the presentation should be basic, easy to navigate and concentrate on the key information. This has been raised as a criticism of WAP, but I suggest that there are certain applications where a basic user interface is an advantage.

UTL_HTTP - A Brief Interlude

To get the site up and running in the shortest available time I would need to have access to a database of live job requirements. The recruitment site most commonly used by UK contractors is http://www.jobserve.com for it's large number of requirements and it's elegant design that uses the minimum number of extraneous frills. The site offers a daily comma-delimited text file containing all of the job requirements posted that day and I used SQL*Loader to load this in the early stages of the project.

The only problem with relying on this file was that the requirements might be up to a day old, which would defeat some of the purpose of using a mobile service - instantaneous access to current data. Then I remembered that Jobserve has a dynamically updated page containing requirements posted today, with the most recently posted listed first, at http://www.jobserve.com/asp/instants.asp. By using the UTL_HTTP.REQUEST_PIECES function supplied with the Oracle server to read this page, I would be able to update the data contained in the database in near real time and provide up to date information on demand. Some people call this screen scraping; some people call this data theft; I call it creative prototyping, but I would not recommend that others take this approach! (Despite the fact that it proved very effective.)

Interestingly, because the job_id is included within the link on the Instants page, I was able to establish that each job was unique and then submit an additional request for the job details screen, passing the job_id as a parameter. Then all of the job, agency and agent details could be gathered and loaded into the database.

There is insufficient space to include a full listing of the PL/SQL Package I developed to do this, but it's an interesting example of how useful UTL_HTTP can be. If you are interested, send me an email at the address listed at the end of the paper and I'll be happy to send you a copy.

The resulting database contained a number of tables containing information about jobs, candidates, recruitment agencies and individual agents, but our examples will be limited to the simple JOB table

Example 1 - JOB Table (subset of real columns used)

JOB_ID NUMBER NOT NULL TITLE VARCHAR2(40) NOT NULL LOCATION VARCHAR2(80) SKILLS VARCHAR2(255)

Previous


Technical Papers Utilities and Scripts Book Reviews Links
My Resume Fun & Games Email Home