Eolas Technologies Incorporated v. Adobe Systems Incorporated et al
Filing
875
***FILED IN ERROR. SEE DOCUMENT 877 FOR CORRECT PLEADING*** MOTION to Seal Document [DEFENDANTS' MOTION FOR SUMMARY JUDGMENT OF INVALIDITY FOR LACK OF WRITTEN DESCRIPTION by Adobe Systems Incorporated, Amazon.com Inc., CDW Corporation, Citigroup Inc., Google Inc., J.C. Penney Company, Inc., Staples, Inc., The Go Daddy Group, Inc., Yahoo! Inc., YouTube, LLC. (Attachments: # 1 Affidavit, # 2 Exhibit A, # 3 Exhibit B, # 4 Exhibit C, # 5 Exhibit D, # 6 Exhibit E, # 7 Exhibit F, # 8 Exhibit G, # 9 Exhibit H, # 10 Exhibit I, # 11 Exhibit J, # 12 Exhibit K, # 13 Exhibit L, # 14 Exhibit M, # 15 Text of Proposed Order)(Reines, Edward) Modified on 8/18/2011 (mll, ).
EXHIBIT A
111111111111111111111111111111111111111111111111111111111111111111111111111
US005838906A
United States Patent
[19]
[11]
Doyle et al.
[54]
[45]
DISTRIBUTED HYPERMEDIA METHOD
FOR AUTOMATICALLY INVOKING
EXTERNAL APPLICATION PROVIDING
INTERACTION AND DISPLAY OF
EMBEDDED OBJECTS WITHIN A
HYPERMEDIA DOCUMENT
[75]
Inventors: Michael D. Doyle, Alameda; David C.
Martin, San Jose; Cheong S. Ang,
Pacifica, all of Calif.
[73]
Appl. No.: 324,443
[22]
Filed:
[51]
[52]
[58]
[56]
Int. CI.
5,838,906
Nov. 17, 1998
OTHER PUBLICATIONS
Stephen Le Hunte, "-Embedded Objects",
HTML Reference Library-HTMLIB v2.1, 1995: n.pag.
Online. Internet.
"A Little History of the world Wide Web", n.pag. Online.
Internet: available http://www.w3.orgiHistory.html.
"NCSA Mosaic Version Information", n.pag. Online. Internet: available http://www.ncsa.uiuc.edu/SDG/Software.
"The second phase of the revolution", WIRED, Oct. 1994,
pp. 116-152.
Assignee: The Regents of the University of
California, Oakland, Calif.
[21]
Patent Number:
Date of Patent:
(List continued on next page.)
Primary Examiner-Dinh C. Dung
Attorney, Agent, or Firm-Townsend and Townsend and
Crew LLP
Oct. 17, 1994
6
C06F 9/44; C06F 15/16;
C06F 17/30
U.S. CI.
395/200.32; 395/200.28;
395/680; 395/685; 345/326; 345/346; 707/501;
707/513; 707/515; 707/516
Field of Search
395/157, 200.03,
395/161, 118, 144, 145, 146, 147, 148,
683, 777, 778, 762, 326, 333, 334, 335,
676, 682, 685, 684, 200.32, 200.33, 200.47-200.49;
707/501, 513, 515, 516; 345/326, 343,
346
References Cited
U.S. PATENT DOCUMENTS
4,815,029 3/1989 Barker et al.
4,847,604 7/1989 Doyle
4,949,248 8/1990 Cam
5,146,553 9/1992 Noguchi et al.
5,202,828 4/1993 Vertelney et al.
5,204,947 4/1993 Bernstein et al.
5,206,951 4/1993 Khoyi et al.
5,274,821 12/1993 Rouquie
5,307,499 4/1994 Yin
5,321,806 6/1994 Meinerth et al.
5,321,808 6/1994 Rupp et al.
5,347,632 9/1994 Filepp et al.
707/516
340/706
395/200.03
707/516
364/419
395/157
395/683
395/705
395/700
395/162
395/164
395/200.09
[57]
ABSTRACT
A system allowing a user of a browser program on a
computer connected to an open distributed hypermedia
system to access and execute an embedded program object.
The program object is embedded into a hypermedia document much like data objects. The user may select the
program object from the screen. Once selected the program
object executes on the user's (client) computer or may
execute on a remote server or additional remote computers
in a distributed processing arrangement. After launching the
program object, the user is able to interact with the object as
the invention provides for ongoing interprocess communication between the application object (program) and the
browser program. One application of the embedded program
object allows a user to view large and complex multidimensional objects from within the browser's window. The
user can manipulate a control panel to change the viewpoint
used to view the image. The invention allows a program to
execute on a remote server or other computers to calculate
the viewing transformations and send frame data to the
client computer thus providing the user of the client computer with interactive features and allowing the user to have
access to greater computing power than may be available at
the user's client computer.
10 Claims, 9 Drawing Sheets
Microfiche Appendix Included
(4 Microfiche, 375 Pages)
(List continued on next page.)
350
I
NCSA MOloic:Docum,nIVie
tlOIII N"
,. Anlll:ltCl"
FIM OptioM NIw
Docu"",ojURl http'
Low
VI"'W
co., Work'lo...
An_taN
:U
DocumlnIT"tVI• uo ' ElIlbryo Proj.(:t-Interoottv.
DoalllHrtwlO t1Hp,/I..... w;lIbran.uc.'.OdU/pllbltll/CKI
Loweol' Work.tCltloo ..._
5,838,906
Page 2
U.S. PATENT DOCUMENTS
5,367,635 11/1994 Bauer et al.
5,390,314 2/1995 Swanson
5,418,908 5/1995 Keller et al.
5,544,320 8/1996 Konrad
5,581,686 12/1996 Koppolu et al.
5,606,493 2/1997 Duscher et al.
5,652,876 7/1997 Ashe et al. .....
395/200.32
395/500
395/200.32
395/200.09
395/340
395/200.32
... 707/516
OlliER PUBLICATIONS
Vetter, Ronald "Mosaic and the World-Wide Web," Computer Magazine, v.27, Iss.lO, pp. 49-57, Oct. 1994.
Wynne et al. "Lean Management, Group Support Systems,
and Hypermedia: a Combination Whose Time Has Come,"
System Sciences, 1993 Anuall Hawaii Int'l Conf., pp.
112-121.
Hansen, Wilfred "Andrew as a Multiparadigm Environment
for Visual Languages," Visual Languages, 1993 IEEE Symposium, pp. 256-260.
Moran, Patrick "Tele-Nicer-slicer-Dicer: A New Tool for
the Visualization of Large Volumetric Data", NCSA Technical Report (TROI4), Aug. 1993.
Berners-Lee "Hypertext Markup Language (HTML)",
HTML Internet Draft, IIIR working Group, Jun. 1993.
University of Southern California's Mercury Project"USC Mercury Project:Interface", Project Milestones, USC
Press Release---{)btained from Internet, http://www.usc.edu/
dept/raiders/.
Hansen, Wilfred "Enhancing documents with embedded
programs: How Ness extends in the Andrew ToolKit", IEEE
Computer Language, 1990 International Conference.
Tani, M., et aI., "Object-Oriented Video: Interaction with
Real-World Objects Through Live Video", May 1992, p.
593-598.
Crowley, T, et aI., "MMConf: An Infrastructure for Building
Shared Multimedia Applications", CSCW 90 Proceedings,
Oct. 1990, p. 329-342.
Davis, H., et aI., "Towards An Integrated Information Environment With Open Hypermedia System", ACM ECHT
Conference, Dec. 1992, pp. 181-190.
Ferrara, F., "The KIM Query System", Abstract, SIGCHI
Bulletin, vol. 6, No.3, Jul. 1994, pp. 30-39.
Gibbs, S., "Composite Multimedia and Active Objects",
OOPSLA '91, pp. 97-112.
Davis, H., et aI., "Microcosm: An Open Hypermedia System", Interchi '93, Apr. 1993, p. 526.
Vaziri, A, "Scientific Visualization in High-Speed Network
Environments", Computer Networks and ISDN Systems 22,
1991, pp. 111-129.
Cullen, J., et aI., "The Use of FTAM to access graphical
pictures across wide area networks", Computer Networks
and ISDN Systems, 1992, pp. 337-383.
Lashkari, YZ., et aI., "PLX: A Proposal to Implement a
General Broadcasting Facility in a Distributed Environment
Running X Windows", Comput. & Graphics, vol. 16, No.2,
pp. 143-149, 1992.
Kirste, T, "Spacepicture-An Interactive Hypermedia Satellite Image Archival System", Comput. & Graphics, vol.
17, No.3, pp. 251-260, 1993.
Coulson, G., et aI., "Extensions to ANSA for Multimedia
Computing", Computers Networks and ISDN Systems 25,
1992, pp. 305-323.
Huynh, Duong Le, et aI., "PIX: An Object-Oriented Network Graphics Environment", Comput. & Graphics, vol. 17,
No. 3,pp. 295-304, 1993.
Berners-Lee, TJ., et aI., The World-Wide Web, Computer
Networks and ISDN Systems 25, 1992, pp. 454-459.
Shackelford, D.E., et aI., "The Architecture and Implementation of a Distributed Hypermedia Storage System", Hypertext '93 Proceedings, Nov. 1993, pp. 1-13.
Labriola, D., "Remote Possibilities", PC Magazine, Jun. 14,
1994, pp. 223-228.
Udell, J., "Visual Basic Custom Controls Meet OLE", Byte
Magazine, Mar. 1994, pp. 197-200.
Sarna, D.E., et aI., "OLE Gains Without (Much) Pain",
Datamation Magazine, Jun. 15, 1994, pp. 31 and 113.
Rizzo, J., "What's OpenDoc?", MacUser magazine, Apr.
1994, pp. 119-123.
Fogarty, K., et aI., "Microsoft's OLE can be network Trojan
Horse", Network World Magazine, Jun. 27, 1994, vol. 11,
No. 26, pp. 1 and 75.
"Cello WWW Browser Release 1.Ola", Article obtained
from the Internet, ftp.law.comell.edu/pub!Ll1/Cello no
DDE, Mar. 16, 1994, pp. 2-9.
"OLE 2.0: Death to Monoliths", Byte Magazine, Mar. 1994,
p.122.
20
10
16
d
•
'JJ.
•
~
~
.....
.....
,22
&
30
~
=
,24
A SOUND ICON
or)~
26
1 26
z
o
~
AND SOME HYPERTEXI
<
32
,40
~"IIIIIQ]]
14
'""'"
~-..J
12
HYPERTEXT IS TEXT THAT HAS ANOTHER OBJECT, PRIMARILY
TEXT, ASSOCIATED WITH IT. WHEN AN OBJECT IS OTHER
TEXT THE DOCUMENT IS SAID TO BE A HYPERMEDIA
DOCUMENT.
7 \ 28
\
'""'"
'0
'0
QIO
'JJ.
=-
~
~
....
'"
o"'"
....,
A HYPERMEDIA DOCUMENT MAY HAVE IMAGE ICONS LIKE THIS:
'0
[&]
Ul
....
AND OTHER OBJECTS EMBEDDED IN IT.
00
~
FIG. I.
PRIOR ART
00
....
\C
=
0\
u.s.
Patent
Nov. 17, 1998
......
L&.I
z:
a::
L&.I
......
z:
Sheet 2 of 9
5,838,906
u.s. Patent
5,838,906
Sheet 3 of 9
Nov. 17, 1998
/150
155
153
o
0
00
159
FIG. 3.
('
I/O
CONTROLLER
181
SYSTEN
MEMORY
(' 180
CENTRAL
PROCESSOR
PRINTER
/184
/'"*182
DISPLAY
ADAPTER
(183
MONITOR
("/86
SERIAL
PORT
KEYBD
FIG. 4.
FIXED
DISK
EXTERNAL
INTERFACE
d
•
'JJ.
•
CLIENT COMPUTER
~
BROWSER
CLIENT
~
.....
.....
210
2/0
--,-,--
I
212
/'
~
=
APPLICATION
(CLIENT>
/'
214
z
o
~
'""'"
~-..J
NETWORK PROTOCOL LAYER
'""'"
'0
'0
QIO
NETWORK
'JJ.
SERVER COMPUTER
NETWORK PROTOCOL LAYER
=-
~
~
....
~
o
....,
'0
Ul
....
00
~
FIG. 5.
00
....
\C
=
0\
r
-
210
BROWSER
CLIENT
d
•
'JJ.
•
(200
_L,200
CUENT COMPUTER
--=..::cL~IE~NT_.:C~0~MP~UT~ER~
r--
APPLICATION
(CLIENT>
~
ADDITIONAL COMPUTER
~
.....
.....
222
~
=
APPLICATION
(DISTRIBUTED)..
/'
.
/'
z
o
~
'""'"
~-..J
NETWORK PROTOCOL LAYER
'""'"
'0
'0
QIO
NETWORK
=::-::..... SERVER ...::.:CO~M.:...::PU:..:...:TE~R
r-_ _-::!!lIo~-=SE::.:..RV:..=E:..:...RCOMPUTER
r
NETWORK PROTOCOL LAYER
ADDITIONAL COMPUT ER
/.,
L... 204
'JJ.
=-
~
~
....
Ul
o
....,
'0
APPLICATION
(DISTRIBUTED)
APPLICATION
(SERVER)
Ul
....
00
~
FIG. 6.
00
....
=
\C
0\
u.s. Patent
Nov. 17, 1998
5,838,906
Sheet 6 of 9
NO
PARSE DOCUMENT
262
EXIT
ASSIGN
ENUMERATED TYPE
FIG. 7A.
ENTER
272
INIT PARAMETERS FOR
DRAWING AREA
274
CREATE INTERNAL
OBJECT
REPRESENTATION OF
HTML EMBED TAG.
276
FIG. 78.
u.s. Patent
Nov. 17, 1998
5,838,906
Sheet 7 of 9
280
ENTER
282
CREATE DRAWING
AREA WIDGET
284
CREATE PIXMAP
290
LAUNCH EXTERNAL
APPLICATION
292
YES
LAU NCH VIDEO
PLAYER
AG. BA.
300
ENTER
REMOVE WINDOW,
PIXMAP AND
INTERNAL OBJECT
REPRESENTATION
~_--L..---t
304
FIG. 88.
d
350
r-
/356
----,\
_
~A'__
A.
(
~
~
.....
.....
NCSA Mosaic: Document Vie
File Opt/ana Navlgo" AnDOtate
Annotate
File Option. Nav ate An""t.
Options Ntwklate
Document ~ Visual
~
=
I
Document Tit Vllual Embryo ProJect· Interactive
ProJectDocumentTitJt
})
~bttp,/Iww~ IJbrary.vo.f.adu/pllb~1@
~~~~~======:=:j Document wt bttp,/Iww~ library. vOlf.adu/publlo/CK\
,-, ,..
Low COlt Worksta...
Worksta ...
•
'JJ.
•
Low COlt Workstation ....
..•.
z
o
~
'""'"
~-..J
DemonstraL ....
•...
Demonstration: Interactive visualization of a 7· week old 3D I'
embryo dntaset.
dntoset.
hi
'""'"
'0
'0
'I
QIO
i
File
/"354
y-.
52
\
x
Clipping Plane
o
I 1=-------1
Range Z
Depth
0.00
Range Z
I
1r:::::::J-----.
=
Scale
1.00
This projir .....
'JJ.
=-
~
~
....
QIO
o
....,
'0
Capacilyl%)
-------------------11100'
This project will serve the dual purpose of.. ....
Ul
....
00
FIG. 9.
~
I snapshot I
snapshot
00
....
\C
=
0\
u.s. Patent
Nov. 17, 1998
5,838,906
Sheet 9 of 9
PANEL
MOSAIC
I
I
I I
INTER-CLIENT
COMMUNICATION
-
-
II
I
I
J
r_
I
IMAGE
DATA
o
RENDERING
REQUESTS
I
I
VISUALIZATION
COMMANDS
II
I
,
i
[QJIQJ[Q]
VIS
IMAGE
SEGMENTS
VRSERVER(S)
FIG. la
I
5,838,906
1
2
DISTRIBUTED HYPERMEDIA METHOD
FOR AUTOMATICALLY INVOKING
EXTERNAL APPLICATION PROVIDING
INTERACTION AND DISPLAY OF
EMBEDDED OBJECTS WITHIN A
HYPERMEDIA DOCUMENT
objects. In this way, the user is able to navigate easily among
data objects. The data objects may be local to the user's
computer system or remotely located over a network. An
early hypertext system is Hypercard, by Apple Computer,
Inc. Hypercard is a standalone system where the data objects
are local to the user's system.
When a user selects a phrase in a hypertext document that
has an associated link to another document, the linked
document is retrieved and displayed on the user's display
screen. This allows the user to obtain more information in an
efficient and easy manner. This provides the user with a
simple, intuitive and powerful way to "branch off' from a
main document to learn more about topics of interest.
Objects may be text, images, sound files, video data,
documents or other types of information that is presentable
to a user of a computer system. When a document is
primarily text and includes links to other data objects
according to the hypertext format, the document is said to be
a hypertext document. When graphics, sound, video or other
media capable of being manipulated and presented in a
computer system is used as the object linked to, the document is said to be a hypermedia document. A hypermedia
document is similar to a hypertext document, except that the
user is able to click on images, sound icons, video icons, etc.,
that link to other objects of various media types, such as
additional graphics, sound, video, text, or hypermedia or
hypertext documents.
FIG. 1 shows examples of hypertext and hypermedia
documents and links associating data objects in the documents to other data objects. Hypermedia document 10
includes hypertext 20, an image icon at 22, a sound icon at
24 and more hypertext 26. FIG. 1 shows hypermedia document 10 substantially as it would appear on a user's display
screen. The user is able to select, or "click" on icons and text
on a display screen by using an input device, such as a
mouse, in a manner well-known in the art.
When the user clicks on the phrase "hypermedia," software running on the user's computer obtains the link associated with the phrase, symbolically shown by arrow 30, to
access hypermedia document 14. Hypermedia document 14
is retrieved and displayed on the user's display screen. Thus,
the user is presented with more information on the phrase
"hypermedia." The mechanism for specifying and locating a
linked object such as hypermedia document 14 is an HTML
"element" that includes an object address in the format of a
Uniform Resource Locator (URL).
Similarly, additional hypertext 26 can be selected by the
user to access hypertext document 12 via link 32 as shown
in FIG. 1. If the user selects additional hypertext 26, then the
text for hypertext document 12 is displayed on the user
screen. Note that hypertext document 12, itself, has hypertext at 28. Thus, the user can click on the phrase "hypermedia" while viewing document 12 to access hypermedia
document 14 in a manner similar to that discussed above.
Documents, and other data objects, can be referenced by
many links from many different source documents. FIG. 1
shows document 14 serving as a target link for both documents 10 and 12. A distributed hypertext or hypermedia
document typically has many links within it that specify
many different data objects located in computers at different
geographical locations connected by a network. Hypermedia
document 10 includes image icon 22 with a link to image 16.
One method of viewing images is to include an icon, or other
indicator, within the text.
Typically, the indicator is a very small image and may be
a scaled down version of the full image. The indicator may
5
NOTICE REGARDING COPYRIGHTED
MATERIAL
A portion of the disclosure of this patent document
contains material which is subject to copyright protection.
The copyright owner has no objection to the facsimile
reproduction by anyone of the patent document or the patent
disclosure as it appears in the Patent and Trademark Office
file or records, but otherwise reserves all copyright rights
whatsoever.
10
15
BACKGROUND OF THE INVENTION
This invention relates generally to manipulating data in a
computer network, and specifically to retrieving, presenting
and manipulating embedded program objects in distributed
hypermedia systems.
Computer networks are becoming increasingly popular as
a medium for locating and accessing a wide range of data
from locations all over the world. The most popular global
network is the Internet with millions of computer systems
connected to it. The Internet has become popular due to
widely adopted standard protocols that allow a vast interconnection of computers and localized computer networks
to communicate with each other. Computer systems connected to a network such as the Internet may be of varying
types, e.g., mainframes, workstations, personal computers,
etc. The computers are manufactured by different companies
using proprietary hardware and operating systems and thus
have incompatibilities in their instruction sets, busses,
software, file formats and other aspects of their architecture
and operating systems. Localized computer networks connected to the Internet may be incompatible with other
computer systems and localized networks in terms of the
physical layer of communication including the specific
hardware used to implement the network. Also, different
networks use differing, incompatible protocols for transferring information and are not able to communicate with each
other without a translation mechanism such as a "gateway".
The Internet provides a uniform and open standard for
allowing various computers and networks to communicate
with each other. For example, the Internet uses Transfer
Control Protocol/Internet Protocol ("TCP/lP") that defines a
uniform packet-switched communication standard which is
ultimately used in every transfer of information that takes
place over the Internet.
Other Internet standards are the HyperText Transmission
Protocol ("HTTP") that allows hypertext documents to be
exchanged freely among any computers connected to the
Internet and HyperText Markup Language ("HTML") that
defines the way in which hypertext documents designate
links to information. See, e.g., Berners-Lee, T. J., "The
world-wide web," Computer Networks and ISDN Systems
25 (1992).
A hypertext document is a document that allows a user to
view a text document displayed on a display device connected to the user's computer and to access, retrieve and
view other data objects that are linked to hypertext words or
phrases in the hypertext document. In a hypertext document,
the user may "click on," or select, certain words or phrases
in the text that specify a link to other documents, or data
20
25
30
35
40
45
50
55
60
65
5,838,906
3
4
be shown embedded within the text when the text is disdisplay (LCD), etc.), local storage (hard disk drive, etc.), and
other components. Typically, small computer 104 is conplayed on the display screen. The user may select the
nected to a larger computer, such as server A at 106. The
indicator to obtain the full image. When the user clicks on
larger computer may have additional users and computer
image icon 22 browser software executing on the user's
computer system retrieves the corresponding full image, 5 systems connected to it, such as computer 108 operated by
user 110. Any group of computers may form a localized
e.g., a bit map, and displays it by using external software
network. A localized network does not necessarily adopt the
called a "viewer." This results in the full image, represented
uniform protocols of the larger interconnecting network
by image 16, being displayed on the screen.
(i.e., Internet 100) and is more geographically constrained
An example of a browser program is the National Center 10 than the larger network. The localized network may connect
for Supercomputing Application's (NCSA) Mosaic software
to the larger network through a "gateway" or "node" impledeveloped by the University of Illinois at Urbana/
mented on, for example, a server.
Champaign, Ill. Another example is "Cello" available on the
Internet 100 connects other localized networks, such as
Internet at http://www.law.comell.edu/. Many viewers exist
server B at 120, which interconnects users 122, 124 and 126
that handle various file formats such as ".TIF," ".GIF," 15 and their respective computer systems to Internet 100.
formats. When a browser program invokes a viewer
Internet 100 is made up of many interconnected computer
program, the viewer is launched as a separate process. The
systems and communication links. Communication links
view displays the full image in a separate "window" (in a
may be by hardwire, fiber optic cable, satellite or other radio
windowing environment) or on a separate screen. This
wave propagation, etc. Data may move from server A to
means that the browser program is no longer active while the 20 server B through any number of intermediate servers and
viewer is active. By using indicators to act as place holders
communication links or other computers and data processing
for full images that are retrieved and displayed only when a
equipment not shown in FIG. 2 but symbolically represented
user selects the indicator, data traffic over the network is
by Internet 100.
reduced. Also, since the retrieval and display of large images
A user at a workstation or personal computer need not
may require several seconds or more of transfer time the user
25 connect to the Internet via a larger computer, such as server
does not have to wait to have images transferred that are of
A or server B. This is shown, for example, by small
no interest to the user.
computer 130 connected directly to Internet 100 as by a
Returning to FIG. 1, another type of data object is a sound
telephone modem or other link. Also, a server need not have
object shown as sound icon 24 within the hypermedia
users connected to it locally, as is shown by server C at 132
document. When the user selects sound icon 24, the user's 30 of FIG. 2. Many configurations oflarge and small computers
computer accesses sound data shown symbolically by data
are possible.
file 40. The accessed sound data plays through a speaker or
Typically, a computer on the Internet is characterized as
other audio device.
either a "client" or "server" depending on the role that the
As discussed above, hypermedia documents allow a user
computer is playing with respect to requesting information
to access different data objects. The objects may be text, 35 or providing information. Client computers are computers
images, sound files, video, additional documents, etc. As
that typically request information from a server computer
used in this specification, a data object is information
which provides the information. For this reason, servers are
capable of being retrieved and presented to a user of a
usually larger and faster machines that have access to many
computer system. Some data objects include executable
data files, programs, etc., in a large storage associated with
code combined with data. An example of such a combination 40 the server. However, the role of a server may also be adopted
is a "self-extracting" data object that includes code to
by a smaller machine depending on the transaction. That is,
"unpack" or decompress data that has been compressed to
user 110 may request information via their computer 108
make it smaller before transferring. When a browser
from server A. At a later time, server A may make a request
retrieves an object such as a self-extracting data object the
for information from computer 108. In the first case, where
browser may allow the user to "launch" the self-extracting 45 computer 108 issues a request for information from server A,
data object to automatically execute the unpacking instruccomputer 108 is a "client" making a request of information
tions to expand the data object to its original size. Such a
from server A. Server A may have the information in a
combination of executable code and data is limited in that
storage device that is local to Server Aor server Amay have
the user can do no more than invoke the code to perform a
to make requests of other computer systems to obtain the
singular function such as performing the self-extraction after 50 information. User 110 may also request information via their
which time the object is a standard data object.
computer 108 from a server, such as server B located at a
remote geographical location on the Internet. However, user
Other existing approaches to embedding interactive pro110 may also request information from a computer, such as
gram objects in documents include the Object Linking and
small computer 124, thus placing small computer 124 in the
Embedding (OLE) facility in Microsoft Windows, by
Microsoft Corp., and OpenDoc, by Apple Computer, Inc. At 55 role of a "server." For purposes of this specification, client
and server computers are categorized in terms of their
least one shortcoming of these approaches is that neither is
capable of allowing a user to access embedded interactive
predominant role as either an information requestor or
program objects in distributed hypermedia documents over
provider. Clients are generally information requestors, while
networks.
servers are generally information providers.
Referring again to FIG. 1, data objects such as distributed
FIG. 2 is an example of a computer network. In FIG. 2, 60
hypermedia documents 10, 12 and 14, image 16 and sound
computer systems are connected to Internet 100, although in
data file 40, may be located at any of the computers shown
practice Internet 100 may be replaced by any suitable
in FIG. 2. Since these data objects may be linked to a
computer network. In FIG. 2, a user 102 operates a small
document located on another computer the Internet allows
computer 104, such as a personal computer or a work
station. The user's computer is equipped with various 65 for remote object linking.
components, such as user input devices (mouse, trackball,
For example, hypertext document 10 of FIG. 1 may be
located at user 110's client computer 108. When user 110
keyboard, etc.), a display device (monitor, liquid crystal
5,838,906
5
6
makes a request by, for example, clicking on hypertext 20
nance Imaging (MRI) and Computed Tomography (CT), are
(i.e., the phrase "hypermedia"), user 110's small client
widely used in the fields of medicine, quality assurance and
computer 108 processes links within hypertext document 10
meteorology to present physicians, technicians and meteoto retrieve document 14. In this example, we assume that
rologists with large amounts of data in an efficient way.
document 14 is stored at a remote location on server B. 5 Because visualization of the data is the best way for a user
Thus, in this example, computer 108 issues a command that
to grasp the data's meaning, a variety of visualization
includes the address of document 14. This command is
techniques and real time computer graphics methods have
routed through server A and Internet 100 and eventually is
been developed. However, these systems are bandwidthreceived by server B. Server B processes the command and
intensive and compute-intensive and often require multiprolocates document 14 on its local storage. Server 14 then
10 cessor arrays and other specialized graphics hardware to
transfers a copy of the document back to client 108 via
carry them out in real time. Also, large amounts of secondary
Internet 100 and server A. After client computer 108
storage for data are required. The expense of these requirereceives document 14, it is displayed so that user 110 may
ments has limited the ability of researchers to readily
view it.
exchange findings since these larger computers required to
Similarly, image object 16 and sound data file 40 may
reside at any of the computers shown in FIG. 2. Assuming 15 store, present and manipulate images are not available to
many of the researchers that need to have access to the data.
image object 16 resides on server C when user 110 clicks on
On the other hand, small client computers in the form of
image icon 22, client computer 108 generates a command to
retrieve image object 16 to server C. Server C receives the
personal computers or workstations such as client computer
command and transfers a copy of image object 16 to client
108 of FIG. 2 are generally available to a much larger
computer 108. Alternatively, an object, such as sound data 20 number of researchers. Further, it is common for these
file 40, may reside on server A so that it is not necessary to
smaller computers to be connected to the Internet. Thus, it
traverse long distances via the Internet in order to retrieve
is desirable to have a system that allows the accessing,
the data object.
display and manipulation of large amounts of data, espeThe Internet is said to provide an "open distributed
cially image data, over the Internet to a small, and relatively
hypermedia system." It is an "open" system since Internet 25 cheap, client computer.
100 implements a standard protocol that each of the conDue to the relatively low bandwidth of the Internet (as
necting computer systems, 106, 130, 120, 132 and 134 must
compared to today's large data objects) and the relatively
implement (TCP/lP). It is a "hypermedia" system because it
small amount of processing power available at client
is able to handle hypermedia documents as described above
computers, many valuable tasks performed by computers
via standards such as the HTTP and HlML hypertext
transmission and mark up standards, respectively. Further, it 30 cannot be performed by users at client computers on the
Internet. Also, while the present open distributed hypermeis a "distributed" system because data objects that are
dia system on the Internet allows users to locate and retrieve
imbedded within a document may be located on many of the
data objects it allows users very little, if any, interaction with
computer systems connected to the Internet. An example of
these data objects. Users are limited to traditional hypertext
an open distributed hypermedia system is the so-called
35 and hypermedia forms of selecting linked data objects for
"world-wide web" implemented on the Internet and disretrieval and launching viewers or other forms of external
cussed in papers such as the Berners-Lee reference given
software to have the data objects presented in a comprehenabove.
sible way.
The open distributed hypermedia system provided by the
40
Thus, it is desirable to have a system that allows a user at
Internet allows users to easily access and retrieve different
a small client computer connected to the Internet to locate,
data objects located in remote geographic locations on the
retrieve and manipulate data objects when the data objects
Internet. However, this open distributed hypermedia system
are bandwidth-intensive and compute-intensive. Further, it
as it currently exists has shortcomings in that today's large
is desirable to allow a user to manipulate data objects in an
data objects are limited largely by bandwidth constraints in
the various communication links in the Internet and local- 45 interactive way to provide the user with a better understanding of information presented and to allow the user to
ized networks, and by the limited processing power, or
accomplish a wider variety of tasks.
computing constraints, of small computer systems normally
provided to most users. Large data objects are difficult to
SUMMARY OF THE INVENTION
update at frame rates fast enough (e.g., 30 frames per
second) to achieve smooth animation. Moreover, the pro- 50
The present invention provides a method for running
cessing power needed to perform the calculations to animate
embedded program objects in a computer network environsuch images in real time does not exist on most
ment. The method includes the steps of providing at least
workstations, not to mention personal computers. Today's
one client workstation and one network server coupled to the
browsers and viewers are not capable of performing the
network environment where the network environment is a
computation necessary to generate and render new views of 55 distributed hypermedia environment; displaying, on the clithese large data objects in real time.
ent workstation, a portion of a hypermedia document
received over the network from the server, where the hyperFor example, the Internet's open distributed hypermedia
media document includes an embedded controllable applisystem allows users to view still images. These images are
cation; and interactively controlling the embedded controlsimple non-interactive two-dimensional images, similar to
photographs. Much digital data available today exists in the 60 lable application from the client workstation via
communication sent over the distributed hypermedia enviform of high-resolution multi-dimensional image data (e.g.,
ronment.
three dimensional images) which is viewed on a computer
while allowing the user to perform real time viewing transThe present invention allows a user at a client computer
formations on the data in order for the user to better
connected to a network to locate, retrieve and manipulate
understand the data.
65 objects in an interactive way. The invention not only allows
the user to use a hypermedia format to locate and retrieve
An example of such type of data is in medical imaging
program objects, but also allows the user to interact with an
where advanced scanning devices, such as Magnetic Reso-
5,838,906
7
8
application program located at a remote computer. InterproFIG. 10 is a diagram of the various processes and data
paths in the present invention.
cess communication between the hypermedia browser and
the embedded application program is ongoing after the
DETAILED DESCRIPTION OF A PREFERRED
program object has been launched. The user is able to use a
EMBODIMENT
vast amount of computing power beyond that which is 5
375 pages of Source code on 4 microfiche Appendices A
contained in the user's client computer.
and B are provided to this specification. The source code
In one application, high resolution three dimensional
should be consulted to provide details of a specific embodiimages are processed in a distributed manner by several
ment of the invention in conjunction with the discussion of
computers located remotely from the user's client computer.
the routines in this specification. The source code in AppenThis amounts to providing parallel distributed processing for 10 dix A includes NCSA Mosaic version 2.4 source code along
tasks such as volume rendering or three dimensional image
with modifications to the source code to implement the
transformation and display. Also, the user is able to rotate,
present invention. Appendix B includes source code implescale and otherwise reposition the viewpoint with respect to
menting an application program interface. The source code
these images without exiting the hypermedia browser softis written in the "c" computer language to run on an
ware. The control and interaction of viewing the image may 15 X-Window platform.
be provided within the same window that the browser is
FIG. 3 is an illustration of a computer system suitable for
using assuming the environment is a "windowing" environuse with the present invention. FIG. 3 depicts but one
ment. The viewing transformation and volume rendering
example of many possible computer types or configurations
calculations may be performed by remote distributed comcapable of being used with the present invention. FIG. 3
20
puter systems.
shows computer system 150 including display device 153,
Once an image representing a new viewpoint is computed
display screen 155, cabinet 157, keyboard 159 and mouse
the frame image is transmitted over the network to the user's
161. Mouse 161 and keyboard 159 are "user input devices."
client computer where it is displayed at a designated position
Other examples of user input devices are a touch screen,
within a hypermedia document. By transmitting only
light pen, track ball, data glove, etc.
enough information to update the image, the need for a high 25
Mouse 161 may have one or more buttons such as buttons
bandwidth data connection is reduced. Compression can be
163 shown in FIG. 3. Cabinet 157 houses familiar computer
used to further reduce the bandwidth requirements for data
components such as disk drives, a processor, storage means,
transmission.
etc. As used in this specification "storage means" includes
Other applications of the invention are possible. For 30 any storage device used in connection with a computer
example, the user can operate a spreadsheet program that is
system such as disk drives, magnetic tape, solid state
being executed by one or more other computer systems
memory, bubble memory, etc. Cabinet 157 may include
connected via the network to the user's client computer.
additional hardware such as input/output (I/O) interface
cards for connecting computer system 150 to external
Once the spreadsheet program has calculated results, the
results may be sent over the network to the user's client 35 devices such as an optical character reader, external storage
devices, other computers or additional devices.
computer for display to the user. In this way, computer
systems located remotely on the network can be used to
FIG. 4 is an illustration of basic subsystems in computer
provide the computing power that may be required for
system 150 of FIG. 3. In FIG. 4, subsystems are represented
certain tasks and to reduce the data bandwidth by only
by blocks such as central processor 180, system memory 181
transmitting results of the computations.
40 consisting of random access memory (RAM) and/or readonly memory (ROM), display adapter 182, monitor 183
Still other applications of the present invention are
(equivalent to display device 153 of FIG. 3), etc. The
possible, as disclosed in the specification, below.
subsystems are interconnected via a system bus 184. AddiBRIEF DESCRIPTION OF THE DRAWINGS
tional subsystems such as a printer, keyboard, fixed disk and
45 others are shown. Peripherals and input/output (I/O) devices
FIG. 1 illustrates examples of hypertext and hypermedia
can be connected to the computer system by, for example
documents and links;
serial port 185. For example, serial port 185 can be used to
FIG. 2 is an example of a computer network;
connect the computer system to a modem for connection to
FIG. 3 is an illustration of a computer system suitable for
a network or serial port 185 can be used to interface with a
use with the present invention;
50 mouse input device. The interconnection via system bus 184
allows central processor 180 to communicate with each
FIG. 4 is an illustration of basic subsystems in the
subsystem and to control the execution of instructions from
computer system of FIG. 3;
system memory 181 or fixed disk 186, and the exchange of
FIG. 5 is an illustration of an embodiment of the invention
information between subsystems. Other arrangements of
using a client computer, server computer and a network;
55 subsystems and interconnections are possible.
FIG. 6 shows another embodiment of the present invenFIG. 5 is an illustration of an embodiment of the invention
tion using additional computers on the network;
using a client computer, server computer and a network.
FIG. 7Ais a flowchart of some of the functionality within
In FIG. 5, client computer 200 communicates with server
the HTMLparse.c file;
computer 204 via network 206. Both client computer 200
FIG. 7B is a flowchart of some of the functionality within 60 and server computer 204 use a network protocol layer to
the HTMLformat.c file;
communicate with network 206. In a preferred embodiment,
FIG. 8Ais a flowchart of some of the functionality within
network 206 is the Internet and the network protocol layers
the HTMLwidget.c file;
are TCP/IP. Other networks and network protocols may be
FIG. 8B is a flowchart of some of the functionality within
used. For ease of illustration, additional hardware and softthe HTML.c file;
65 ware layers are not shown in FIG. 5.
FIG. 9 is a screen display generated in accordance with
Client computer 200 includes processes, such as browser
the present invention; and
client 208 and application client 210. In a preferred
5,838,906
9
10
embodiment, application client 210 is resident within client
to display the multidimensional embryo data on the display
screen to a user of the client computer 200. The user is then
computer 200 prior to browser client 208's parsing of a
able to interactively operate controls to recompute different
hypermedia document as discussed below. In a preferred
views for the image data. In a preferred embodiment, a
embodiment application client 210 resides on the hard disk
or RAM of client computer 200 and is loaded (if necessary) 5 control window is displayed within, or adjacent to, a window generated by browser client 208 that contains a display
and executed when browser client 208 detects a link to
of hypermedia document 212. An example of such display
application client 210. The preferred embodiment uses the
is discussed below in connection with FIG. 9. Thus, the user
XEvent interprocess communication protocol to exchange
is able to interactively manipulate a multidimensional image
information between browser client 208 and application
object by means of the present invention. In order to make
client 210 as described in more detail, below. Another
10 application client 210 integral with displays created by
possibility is to install application client 210 as a "terminate
browser client 208, both the browser client and the appliand stay resident" (TSR) program in an operating system
cation client must be in communication with each other, as
environment, such as X-Window. Thereby making access to
shown by the arrow connecting the two within client comapplication client 210 much faster.
puter 200. The manner of communication is through an
Browser client 208 is a process that a user of client 15 application program interface (API), discussed below.
computer 200 invokes in order to access various data
Browser client 208 is a process, such as NCSA Mosaic,
objects, such as hypermedia documents, on network 206.
Cello, etc. Application client 210 is embodied in software
Hypermedia document 212 shown within client computer
presently under development called "VIS" and "Panel"
200 is an example of a hypermedia document, or object, that
20 created by the Center for Knowledge Management at the
a user has requested access to. In this example, hypermedia
University of California, San Francisco, as part of the Doyle
document 212 has been retrieved from a server connected to
Group's distributed hypermedia object embedding approach
network 206 and has been loaded into, e.g., client computer
described in "Integrated Control of Distributed Volume
200's RAM or other storage device.
Visualization Through the World-Wide-Web," by C. Ang, D.
Once hypermedia document 212 has been loaded into 25 Martin, M. Doyle; to be published in the Proceedings of
client computer 200, browser client 208 parses hypermedia
Visualization 1994, IEEE Press, Washington, D.C., October
document 212. In parsing hypermedia document 212,
1994.
browser client 208 detects links to data objects as discussed
Versions and descriptions of software embodying the
above in the Background of the Invention section. In FIG. 5,
present invention are generally available as hyperlinked data
hypermedia document 212 includes an embedded program 30 objects from the Visible Embryo Project's World Wide Web
link at 214. Embedded program link 214 identifies applicadocument at the URL address ''HTTP://visembryo.
tion client 212 as an application to invoke. In this present
ucsf.edul" .
example, the application, namely, application client 210,
Another embodiment of the present invention uses an
resides on the same computer as the browser client 208 that
application server process executing on server computer 204
the user is executing to view the hypermedia document.
35 to assist in processing that may need to be performed by an
Embedded program link 214 may include additional
external program. For example, in FIG. 5, application server
information, such as parameters, that tell application client
220 resides on server computer 204. Application server 220
210 how to proceed. For example, embedded program link
works in communication with application client 210 residing
214 may include a specification as to a data object that
on client computer 200. In a preferred embodiment, appliapplication client 210 is to retrieve and process.
40 cation server 220 is called VRServer, also a part of Doyle
When browser client 208 encounters embedded program
Group's approach. Since server computer 204 is typically a
link 214, it invokes application client 210 (optionally, with
larger computer having more data processing capabilities
parameters or other information) and application client 210
and larger storage capacity, application server 220 can
executes instructions to perform processing in accordance
operate more efficiently, and much faster, than application
with the present invention.
45 client 210 in executing complicated and numerous instrucAn example of the type of processing that application
tions.
client 210 may perform is multidimensional image visualIn the present example where a multidimensional image
ization. Note that application client 210 is in communication
object representing medical data for an embryo is being
with network 206 via the network protocol layer of client
viewed, application server 220 could perform much of the
computer 200. This means that application client 210 can 50 viewing transformation and volume rendering calculations
make requests over network 206 for data objects, such as
to allow a user to interactively view the embryo data at their
multidimensional image objects. For example, application
client computer display screen. In a preferred embodiment,
client 210 may request an object, such as object 1 at 216,
application client 210 receives signals from a user input
located in server computer 204. Application client 210 may
device at the user's client computer 200. An example of such
make the request by any suitable means. Assuming network 55 input would be to rotate the embryo image from a current
206 is the Internet, such a request would typically be made
position to a new position from the user's point of view. This
by using HTTP in response to a HTML-style link definition
information is received by application client 210 and profor embedded program link 214.
cessed to generate a command sent over network 206 to
Assuming application client 210 has made a request for
application server 220. Once application server 220 receives
the data object at 216, server process 218 ultimately receives 60 the information in the form of, e.g., a coordinate transforthe request. Server process 218 then retrieves data object
mation for a new viewing position, application server 220
216 and transfers it over network 206 back to application
performs the mathematical calculations to compute a new
client 210. To continue with the example of a multidimenview for the embryo image. Once the new view has been
sional visualization application, data object 216 may be a
computed, the image data for the new view is sent over
three dimensional view of medical data for, e.g., an embryo. 65 network 206 to application client 210 so that application
client 210 can update the viewing window currently disAfter application client 210 receives the multidimensional
playing the embryo image. In a preferred embodiment,
data object 216, application client 210 executes instructions
5,838,906
11
12
application server 220 computes a frame buffer of raster
display data, e.g., pixel values, and transfers this frame
buffer to application client 210. Techniques, such as data
compression and delta encoding, can be used to compress
the data before transmitting over network 206 to reduce the
bandwidth requirement.
It will be readily seen that application server 220 can
advantageously use server computer 204's computing
resources to perform the viewing transformation much more
quickly than could application client 210 executing on client
computer 200. Further, by only transmitting the updated
frame buffer containing a new view for the embryo image,
the amount of data sent over network 206 is reduced. By
using appropriate compression techniques, such as, e.g.,
MPEG (Motion Picture Experts Group) or JPEG (Joint
Photographic Experts Group), efficient use of network 206 is
preserved.
FIG. 6 shows yet another embodiment of the present
invention. FIG. 6 is similar to FIG. 5, except that additional
computers 222 and 224 are illustrated. Each additional
computer includes a process labeled "Application
(Distributed)." The distributed application performs a portion of the task that an application, such as application server
220 or application client 210, perform. In the present.
example, tasks such as volume rendering may be broken up
and easily performed among two or more computers. These
computers can be remote from each other on network 206.
Thus, several computers, such as server computer 204 and
additional computers 222 and 224 can all work together to
perform the task of computing a new viewpoint and frame
buffer for the embryo for the new orientation of the embryo
image in the present example. The coordination of the
distributed processing can be performed at client computer
200 by application client 210, at server computer 204 by
application server 220, or by any of the distributed applications executing on additional computers, such as 222 and
224. In a preferred embodiment, distributed processing is
coordinated by a program called "VIS" represented by
application client 210 in FIG. 6.
Other applications of the invention are possible. For
example, the user can operate a spreadsheet program that is
being executed by one or more other computer systems
connected via the network to the user's client computer.
Once the spreadsheet program has calculated results, those
results may be sent over the network to the user's client
computer for display within the hypermedia document on
the user's client computer. In this way, computer systems
located remotely on the network can be used to provide the
computing power that may be required for certain tasks and
to reduce the data bandwidth required by only transmitting
results of the computations.
Another type of possible application of this invention
would involve embedding a program which runs only on the
client machine, but which provides the user with more
functionality than exists in the hypermedia browser alone.
An example of this is an embedded client application which
is capable of viewing and interacting with images which
have been processed with Dr. Doyle's MetaMAP invention
(U.S. Pat. No. 4,847,604). This MetaMAP process uses
object-oriented color map processing to allow individual
color index ranges within paletted images to have object
identities, and is useful for the creation of, for example,
interactive picture atlases. It is a more efficient means for
defining irregular "hotspots" on images than the ISMAP
function of the World Wide Web, which uses polygonal
outlines to define objects in images. A MetaMAP-capable
client-based image browser application can be embedded,
together with an associated image, within a hypermedia
document, allowing objects within the MetaMAP-processed
image to have URL addresses associated with them. When
a user clicks with a mouse upon an object within the
MetaMAP-processed image, the MetaMAP client application relays the relevant URL back to the hypermedia browser
application, which then retrieves the HTML file or hypermedia object which corresponds to that URL.
The various processes in the system of the present invention communicate through a custom API called Mosaic/
External Application Program Interface MEAPI. The
MEAPI set of predefined messages includes those shown in
Table I.
5
10
15
TABLE I
Message Function
Message Name
Messages from server to client:
20
25
30
35
40
45
50
55
1.
2.
3.
Server Update Done
Server Ready
Server Exiting
Messages from client
XtNrefreshNotify
XtNpanelStartNotify
XtNpanelExitNotify
to server:
4.
5.
6.
Area
Area
Area
XtNmapNotify
XtNunmapNotify
XtNexitNotify
Shown
Hidden
Destroyed
The messages in Table I are defined in the file protocol_lib.h
in Appendix B. The functions of the MEAPI are provided in
protocol_lib.c of Appendix B. Thus, by using MEAPI a
server process communicates to a client application program
to let the client application know when the server has
finished updating information, such as an image frame
buffer, or pixmap (Message 1); when the server is ready to
start processing messages (Message 2) and when the server
is exiting or stopping computation related to the server
application program.
For client to server communications, MEAPI provides for
the client informing the server when the image display
window area is visible, when the area is hidden and when the
area is destroyed. Such information allows the server to
decide whether to allocate computing resources for, e.g.,
rendering and viewing transformation tasks where the server
is running an application program to generate new views of
a multi dimensional object. Source code for MEAPI fundamental functions such as handle_client_msg, register_
client, register_client_msg_callback and send_client_
msg may be found in protocol_lib.c as part of the source
code in Appendix B.
Next, a discussion of the software processes that perform
parsing of a hypermedia document and launching of an
application program is provided in connection with Table II
and FIGS. 7A, 7B, 8A and 8B.
Table II, below, shows an example of an HTML tag
format used by the present invention to embed a link to an
application program within a hypermedia document.
TABLE II
60
Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.
Why Is My Information Online?