
	Web Raveler: Outline

1.Introduction

Why Web Raveler is needed?

Status of the internet
- still static medium with limited interaction
- Web pages still like more traditional forms of information - books
- Chatrooms, Web forums, Usenet Newsgroups - Discussion of Web content
separated from actual content
How Web Raveler will make it more interactive.
- Web Raveler will allow for the Internet to fulfill its potential to be an
interactive medium.  Web Raveler serves as a mediator between the user and
the Internet and facilitates the modification of Web content 
Examples.
- Annotation - Adding notes - visible to a group, collaboration and
discussion of Web content

2. Similar products - overview and limitations: 
Ste WBI - http://www.almaden.ibm.com/cs/wbi/

Sam PAW - http://paw-project.sourceforge.net
        - Overview:  Not much in the way of documentation here, but PAW is essentially
	    a simple filtering HTTP proxy with easily editable XML configuration 
	    files.  
        - Limitations:  VERY little useful documentation, especially on the underlying
	    software architecture.  
	    
Cas OreOs - http://www.w3.org/Conferences/WWW4/Papers/56/
            - no longer exists
Ste Netscape Proxy Server - http://wp.netscape.com/proxy/v3.5/
    - The Netscape Proxy Server is a high-performance system designed for
caching and filtering of web content.  It allows system administrators to use
the filtering capabilities to set up firewalls by blocking lists of URLs
and limiting access to specific content types.
    - Drawbacks: Filtering of web content intended for system
administrators and not for the average user/programmer.  Modification of
web content oriented towards filtering of the web.  

Sam The V6 Engine http://pauillac.inria.fr/~lang/Papers/V6
        - Overview:  The V6 Web Engine is designed to separate internet connectivity
	  from user interface, such that, regardless of one's choice of browser, the 
	  underlying Web traffic goes through the same proxy, allowing new functionality
	  to be added to the Web-browsing experience without modifications to, nor dependence
	  on, the browsers themselves.  The V6 Engine uses
	  "virtual hosts" to store internal pages, much like Raveler's "Virtual URLs," and 
	  A multi-language filter interface is planned, but as yet uncompleted, as development
	  seems to have stopped not long after the 1996 paper about the Engine was written. 
	  There is, however, a CGI interface (good idea ?!) which allows "services" to be
	  written for the Engine in any language.
	  
	- Limitations:  This does not seem to be in active development, and features are left 
	    unfinished.  At present, the code is not of much use, since it's written in a
	    seldom-used extention to CAML, and filters must be written in CAML as well. At 
	    present, only the very very very insecure "Basic" authentication method is used.

Cas Mprox - http://home.subnet.at/br1/mprox_thesis/html/index.html
      - mprox was developed by the subnet group. It was designed to make the      Internet a more public space to enable open communication and foster the development of communities.  mprox is HTTP-proxy server implementing a plugin framework that allows for the modification of Web pages.  While no plugin API exists, plugins can be easily written by extending a generic Filter class.  mprox
provides for user sessions, allowing user preferences and configuration
settings to be maintained, and a user interface is displayed at the top
of each page to change user settings.
- Drawbacks: No current development - several proposed improvements, but no
  work done since 2000, plugins can only be written in Java, no group accounts 
http://www.subnet.at/mprox/

Limitations: 
     - A lot of them limit themselves to the filtering of the Web but Web Raveler will allow
       the user to modify contents of web pages through the plugin API.
- They do not allow group account, Web Raveler will offer collaboration through group accounts for example the annotation.
- They only allow plugin writing in a single language, whereas Web Ravler will  give plugin writers the freedom to write plugins in multiple languages (supported languages? Java, C, C++, ...) Mechanism for supporting multiple languages? (CORBA, SOAP, RPC, ...)
- WBI not open source #$(G!9#(B Raveler will be open source
- Some (with the exception of WBI) Not well documented, API not good

3. Conclusion
 Why Web Raveler is better than what has already been developed
 Goals for Web Raveler: 
       - Rich API - make plugin writing easy, provide helpful features for
plugin writers
       - Support for plugins written in multiple languages - increased
flexibility for plugin writers
       - Support for group accounts - provide for group collaboration
       - Support for user accounts - incorporate user preferences and
configuration settings into the functioning of Web Raveler ( relational
database ) 
       - Well-documented, ease of use
       - ? Supported for distributed plugin use (SOAP) ?

Methods?
Timeline?
Preparation?

Bibliography:
O'Reilly HTTP 
SOAP  books
ACM Hypertext book - other ACM papers
WBI papers
Web pages for PAW, Oreo's, Netscape, WBI
Old Web Raveler papers


Web Raveler: A Web Mediation Service 

Sam Martin
Stephane Nyombayire
Cassie Schmitz

	Currently, the World Wide Web is a static medium for information.  Contents of web pages reside on web servers and are retrieved by users without modification.  Thus, the Web is similar to traditional media. Blah, blah, blah. Web Raveler serves as a mediator between the user and the Web and facilitates the modification of Web content.  Web Raveler will allow for the Web to fulfill its potential to be an interactive medium.  

	Web technologies have been developed to perform web mediation services, but they fail to provide all the services that makes the web not suck.  (Bulleted list of existing web technologies)

The Netscape Proxy Server is a high-performance system designed for caching and filtering of web content.  It allows system administrators to use the filtering capabilities to set up firewalls by blocking lists of URLs and limiting access to specific content types.  However, filtering of web content intended for system administrators and not for the average use, and modification of web content is oriented towards filtering of the web.    

PAW, while it had its good points, also sucks.

The V6 Web Engine is designed to separate internet connectivity from user interface, such that, regardless of one's choice of browser, the underlying Web traffic goes through the same proxy, allowing new functionality to be added to the Web-browsing experience without modifications to, nor dependence on, the browsers themselves.  The V6 Engine uses "virtual hosts" to store internal pages, much like Raveler's "Virtual URLs." (explain concept of virtual URL)  A multi-language filter interface is planned, but as yet uncompleted, as development seems to have stopped not long after the 1996 paper about the Engine was written.  There is, however, a CGI interface (good idea ?!) which allows "services" to be written for the Engine in any language.  This does not seem to be in active development, and features are left unfinished.  At present, the code is not of much use, since it's written in a seldom-used extention to CAML, and filters must be written in CAML as well. At present, only the very very very insecure "Basic" authentication method is used.

Mprox was developed by the subnet group. It was designed to make the Internet a more public space by enabling open communication and fostering the development of communities.  Mprox is an HTTP-proxy server implementing a plugin framework that allows for the modification of Web pages.  While no plugin API exists, plugins can be easily written by extending a generic Filter class, but plugins can only be written in Java. Mprox provides for user sessions, allowing user preferences and configuration settings to be maintained, and a user interface is displayed at the top of each page to change user settings.  However, no current development exists. The project has several proposed improvements, but no work has been done since 2000.

Web Browser Intelligence (WBI) developed at IBM is a programmable proxy server designed for easy development and deployment of intermediary applications. WBI's aim is to produce a programming platform that can be used to implement all kinds of intermediaries. Many applications fit the intemediary model of the web programming, such as  personalizing the Web, password & privacy management, content distillation, and protocol extension.  WBI supports a multi-language system with the base code both in Java and C++. WBI also supports the plugin API, plugins may be written in C, C++, or Java and these plugins can operate equivalently with either base. Taking advantages of its intermediary feature, WBI can modify documents allowing annotations, integrations from multiple sources and personalizations.  Unfortunately, WBI is not open source and doesn't not support group usage of any kind, feature that will be included in the Web Raveler architecture.

	Thus, Web Raveler is the only software that will be awesome.