
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 <OBJECT> Specification 34 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 <EMBED> tag 12 2.2 Example alas weblet HTML to display an MPEG animation 12 2.3 DTD of the Hot Java <APPLET> tag 19 2.4 The Java Platform Architecture for browsers 23 2.5 DTD of the Java Script <SCRIPT> tag 27 2.6 Example Java Script event handling program and document 29 2.7 DTD of the Active FORMs tag 30 2.8 Example Active FORMs script that constrains the data in a form field 31 2.9 DTD of the <OBJECT> tag 36 2.10 Example of the <OBJECT> tag 37 2.11 ActiveX's use of the <OBJECT> tag 38 2.12 ActiveX's extension to the <SCRIPT> tag 39 2.13 Netscape's Live Script architecture 41 2.14 Example HTTP access log produced by NCSA's "httpd" server . 43 2.15 Syntax of the Set-Cookie HTTP header. 48 3.1 DTD of iHTML's implementation of the World Wide Web Consor­ tium's <OBJECT> tag 56 3.2 Example markup to embed an iHTML applet 56 3.3 Example markup to create an iHTML document script 57 3.4 A simple HTML document 58 3.5 Parse tree of the document in figure 3.4 59 3.6 High-level architecture of the iHTML system, showing the three main components and communication between them 61 LIST OF FIGURES (Continued) Figure Page 4.1 A minimal applet-level script written in Python 73 4.2 A minimal document-level script written in Python 79 4.3 Dynamic construction of the HTML parse tree shown in Figure 3.5 83 5.1 Architecture of the usage statistics collection programs. 89 5.2 Architecture of the usage retrieval program. 92 5.3 Architecture of the usage display program. 95 7.1 Organization of the iHTML library's IHGlobalInfo structure 123 7.2 Transforming a list of HTML nodes into an actual tree 126 7.3 Algorithm to transform a list of HTML nodes into a true tree structure127 7.4 Initialization implementation of the Python URL class 130 7.5 Language environment used by the Python module 132 7.6 Code context used by the Python module 133 7.7 The code and widget structures used by the text language module . 135 8.1 DTD of the proposed <CALL> tag 139 8.2 Example use of the proposed <CALL> tag 139 LIST OF TABLES Table Page 2.1 The four possible execution levels of an Active FORMs script 31 2.2 Messages between browser (client) and plug-in (server) in Eolas's Web API 33 4.1 Summary of the Container class's public interface 74 4.2 Summary of the Widget class's public interface 76 4.3 Summary of the Document class's public interface 78 4.4 Browser capability information available 79 4.5 Summary of the HTMLCursor type's public interface 81 4.6 Summary of the RawURL class's public interface 84 4.7 Summary of the Event type's public interface 86 4.8 Standard event class and code types. 87 4.9 Python environment information available through the ihBrowser and ihPython modules. 88 5.1 Initial characters indicating the type of a line when communicating with the usage server 90 5.2 Commands recognized by the usage server. 91 5.3 Usage information sequence sent by the usage server. 91 6.1 Functions in a browser's HTML parse tree services 102 6.2 Functions in a browser's document services 103 6.3 Functions in a browser's URL services 104 6.4 Functions in a browser's event services 105 6.5 Functions in a browser's user interface services 107 6.6 Functions in a browser's shared library services 108 6.7 Functions in a browser's miscellaneous services 109 6.8 Functions in the iHTML library's document services 110 LIST OF TABLES (Continued) Table Page 6.9 Functions in the iHTML library's language services 111 6.10 Functions in the iHTML library's buffer services 112 6.11 Functions in the iHTML library's doubly-linked list services 113 6.12 Functions in the iHTML library's miscellaneous services 114 6.13 Fields defined by the IHLanguage structure 115 6.14 Functions in a language module's HTML parse tree services 116 6.15 Functions in a language module's environment services 117 6.16 Functions in a language module's script services 118 6.17 Functions that are part of a language module's user interface services 119 INTERACTIVE HTML 1.
Details
-
File Typepdf
-
Upload Time-
-
Content LanguagesEnglish
-
Upload UserAnonymous/Not logged-in
-
File Pages370 Page
-
File Size-