AN ABSTRACT OF THE THESIS OF
Dianne Hackborn for the degree of Master of Science in Computer Science presented on January 13, 1997. Title: Interactive HTML. Redacted for Privacy Abstract approve Cherri Pancake
As the World Wide Web continues to grow, people clearly want to do much more with it than just publish static pages of text and graphics. While such increased inter- activity has traditionally been accomplished through the use of server-side CGI scripts, much recent research on Web browsers has been on extending their capabilities through the addition of various types of client-side services. The most popular of these extensions take the form of plug-ins, applets, and "document scripts" such as Java Script. However, because these extensions have been created in a haphazard way by a variety of independent groups, they suffer greatly in terms of flexibility, uniformity, and interoperability. Inter- active HTML is a system that addresses these problems by combining plug-ins, applets, and document scripts into one uniform and cohesive architecture. It is implemented as an external C library that can be used by a browser programmer to add client-side services to the browser. The IHTML services are implemented as dynamically loaded "language mod- ules," allowing new plug-ins and language interpreters to be added to an iHTML browser without recompiling the browser itself. The system is currently integrated with NCSA's X Mosaic browser and includes language modules for a text viewer plug-in and Python language interpreter. This thesis examines the iHTML architecture in the context of the historical development of Web client-side services and presents an example of iHTML's use to collect usage information about Web documents. Interactive HTML
by
Dianne Hackborn
A THESIS
submitted to
Oregon State University
in partial fulfillment of the requirements for the degree of
Master of Science
Completed January 13, 1997 Commencement June 1997 Master of Science thesis of Dianne Hackborn presented on January 13, 1997
APPROVED:
Redacted for Privacy
Majo rofessor, representing Computer Science
Redacted for Privacy
Chair of the Department of CO-mputer Science
Redacted for Privacy
Dean of the Gr uate School
I understand that my thesis will become part of the permanent collection of Oregon State University libraries. My signature below authorizes release of my thesis to any reader upon request. Redacted for Privacy
Dianne Hackborn, Author TABLE OF CONTENTS Page
1 INTRODUCTION 1
1.1 Motivation 2
1.1.1 Current Service Structure 2
1.1.2 Limitations of Existing Service Structure 3
1.2 Interactive HTML 6
1.3 Users 7
1.4 Guide to This Thesis 9
2 RELATED WORK 10
2.1 Plug-ins 10
2.1.1 Eolas's Web lets 11
2.1.2 Netscape's Plug-ins 13
2.2 Applets 16
2.2.1 Sun's Hot Java 17
2.2.2 Applets in Other Languages 20
2.2.3 The Java Platform 22
2.3 Document Scripts 24
2.3.1 The Common Client Interface 24
2.3.2 Netscape's Java Script 26
2.3.3 Active FORMs 30
2.4 Combining Client-side Services 32
2.4.1 Eolas's Web API 32
2.4.2 HTML
2.4.3 Microsoft's ActiveX 37
2.4.4 Netscape's Live Script 40 TABLE OF CONTENTS (Continued) Page
2.5 Collecting Document Usage Statistics 42
2.5.1 HTTP Hit Statistics 43
2.5.2 Gathering Consumer Statistics 44
2.5.3 HTTP Cookies 47
2.5.4 Intra-document Usage Statistics 48
3 OVERVIEW OF INTERACTIVE HTML 53
3.1 iHTML Concepts 53
3.1.1 File and Script Types 54
3.1.2 HTML Syntax 55
3.1.3 HTML Parse Trees 57
3.1.4 URL Extensions 58
3.2 General Architecture 60
3.2.1 Browser Services 62
3.2.2 iHTML Services 64
3.2.3 Language Services 66
3.3 Security and Protection Issues 67
4 SCRIPT DEVELOPER INTERFACE 70
4.1 Applet-level Scripts 70
4.1.1 The Application Class 71
4.1.2 Program Structure 72
4.1.3 Graphics Rendering and Widgets 72
4.2 Document-level Scripts 76 TABLE OF CONTENTS (Continued) Page
4.2.1 The Document Class 77
4.2.2 Program Structure 78
4.2.3 Manipulating HTML Markup 80
4.3 Common Scripting Services 83
4.3.1 Retrieving URLs 83
4.3.2 Events 85
4.3.3 Environment Information 87
5 COLLECTING USAGE STATISTICS 89
5.1 Retrieving User Interaction 92
5.2 Dynamically Displaying Results 94
6 LANGUAGE DEVELOPER INTERFACE 97
6.1 Introduction 97
6.1.1 Language Modules and MIME Content Types 98
6.2 iHTML Programming Interface 100
6.2.1 Browser Services 101
6.2.2 iHTML Library Services 108
6.3 Language Module Interface 113
6.3.1 HTML Parse Trees 116
6.3.2 Environment 116
6.3.3 Scripts 117
6.3.4 User Interface 118
7 IMPLEMENTATION DETAILS 120 TABLE OF CONTENTS (Continued) Page
7.1 iHTML Library Implementation 120
7.1.1 Managing Language Modules 121
7.1.2 Document Scripts and Applets 122
7.2 Integration with X Mosaic 124
7.2.1 HTML Parse Trees 125
7.2.2 Widget and Event Handling 128
7.3 Language Modules 129
7.3.1 Script Environment and Protection 131
7.3.2 Widget Interface 134
8 CONCLUSIONS 136
8.1 Existing Limitations 137
8.2 Lessons Learned 141
BIBLIOGRAPHY 145
APPENDICES 150
APPENDIX A Python Script Developer Manual 151
APPENDIX B Language and Browser Developer Manual 232 LIST OF FIGURES Figure Page
1.1 Combining plug-ins and applets 7
1.2 The users of the iHTML system 8
2.1 DTD of the alas
2.2 Example alas weblet HTML to display an MPEG animation 12
2.3 DTD of the Hot Java
2.4 The Java Platform Architecture for browsers 23
2.5 DTD of the Java Script
That's all, folks.