Developing Web Browser Recording Tools Using Server-Side Programming Technology Chris J. Lu Ph.D. National Library of Medicine NLM, NIH, Bldg. 38A, Rm. 7N-716, 8600 Rockville Pike Bethesda, MD 20894, USA lu@nlm.nih.gov Anantha Bangalore National Library of Medicine NLM, NIH, Bldg. 38A, Rm. 9L-927, 8600 Rockville Pike Bethesda, MD 20894, USA bangal@nlm.nih.gov Tony Tse National Library of Medicine NLM, NIH, Bldg. 38A, Rm. 7N-715, 8600 Rockville Pike Bethesda, MD 20894, USA tse@nlm.nih.gov Abstract: It is always a challenge to present Web applications at a facility with no Internet connection. Traditional presentation methods such as transparencies or slides are inadequate for demonstrating dynamic Web applications. Currently, virtual-live demonstrations of Web applications are created with static HTML (Hypertext Markup Language) files. However, preparing such presentations is tedious and requires much manual labor for downloading HTML and other files and modifying them for proper linkages. Demo Server (DS) is a tool that automates this process. Developed using Java Servlets and Apache Web Server on the Sun Solaris platform, DS records various types of browsing activities and saves a set of HTML files for presentation automatically. This paper addresses both system level design concepts and key technical implementation details. 1. Introduction Even as the Internet becomes popular in research, commerce, and daily life, many places still do not have the infrastructure for connecting to the Internet. Presenting Internet applications in such places becomes challenging. A common work-around is to access a set of static and locally stored HTML files through a Web browser. A great deal of work is involved in preparing files for such canned demos. Initially, a scenario is sketched, the site is browsed, and all pages are downloaded and saved as HTML files. All hyperlinks and HTML action attributes must be modified and tested in all of the HTML files. Moreover, all image and JavaScript files need to be downloaded for accurate display. Finally, all URLs (Uniform Resource Locator) need to be inspected. The entire process must be repeated each time the scenario is modified. Clearly, such an approach is tedious and not cost-effective.