OBJECT element fall-back and object system versioning issues

W3C HTML Working Group,

I have a question/suggestion concerning the WD-Object working
draft at:

http://www.w3.org/pub/WWW/TR/WD-object-970218.html

One of the features that the APPLET tag currently lacks but needs
very much is the ability for a browser to select/find an 
implementation of the applet based on the latest version of the Java
API that it supports.  In general, the object system implemented in the
browser needs to be able to load the object implementation based on
the version of the object system that is available in the browser.
This allows the HTML author and/or object software author to provide
the end-user with highly optimized (and more robust) objects that
are tuned for the browser run-time at hand.  Code for earlier versions
of the object system operates under older models/mechanisms and code
for later versions takes advantage of new features.

The key is to have separate codebases for the different versions of
the applet/object. A courageous attempt to handle this problem for the
cases of JDK 1.0 and JDK 1.1 was published by JavaSoft under:

http://www.javasoft.com/products/jdk/1.1/compatible/

The idea presented is to use the fact that JDK 1.0 browsers supposedly
aren't aware of the APPLET ARCHIVE attribute.  Unfortunately,
this recommendation does not work perfectly, since it interferes with
the use of ZIP file archives in certain JDK 1.0 browsers.

Using the OBJECT element and the TYPE attribute, it appears to be
possible to have separate codebases referenced for each object system
API version, but only if implemented properly by all the browsers.  The
following example illustrates the manner in which I envision such a
cross-version applet being embedded using the OBJECT element:

<OBJECT CODETYPE="application/x-java-vm-jdk-2-0"
        CODEBASE="http://www.foobar.com/classes/myapplet/jdk20/"
        CLASSID="com.foobar.myapplet.StartClass"
        HEIGHT=100 WIDTH=100
>
  <OBJECT CODETYPE="application/x-java-vm-jdk-1-2"
          CODEBASE="http://www.foobar.com/classes/myapplet/jdk12/"
          CLASSID="com.foobar.myapplet.StartClass"
          HEIGHT=100 WIDTH=100
  >
    <OBJECT CODETYPE="application/x-java-vm-jdk-1-1"
            CODEBASE="http://www.foobar.com/classes/myapplet/jdk11/"
            CLASSID="com.foobar.myapplet.StartClass"
            HEIGHT=100 WIDTH=100
    >
      <APPLET CODEBASE="http://www.foobar.com/classes/myapplet/applet/"
              CODE="com/foobar/myapplet/StartClass.class"
              HEIGHT=100 WIDTH=100
      >
      </APPLET>
    </OBJECT>
  </OBJECT>
</OBJECT>

My questions are:

  1) Did the HTML working group intend to address the object system
     API versioning problem in this manner?

  2) If so, why isn't the nomenclature of the CODETYPE mentioned in the
     WD-Object spec?  My concern is that without mention of this type
     of functionality as normative in the spec, not all of the browsers
     will implement the fall back scheme uniformly.

  3) If not, how can the object system (Java applet in my case)
versioning
     issues be addressed using the OBJECT element?

In general, I would like to point out the importance of being able to
provide differing object implementations for the various object system
versions (ie. JDK versions).  Also, I would appreciate any information
that you might have on how this can be supported using the proposed
OBJECT element.

Thanks,

Brian
brian@maxtech.com

Received on Saturday, 17 May 1997 23:53:06 UTC