The Regents of the University of California et al v. Staples, Inc.
Filing
1
COMPLAINT FOR PATENT INFRINGEMENT against Staples, Inc. ( Filing fee $ 350 receipt number 0540-3345775.), filed by The Regents of the University of California, Eolas Technologies Incorporated. (Attachments: # 1 5,838,906 Patent, # 2 7,599,985 Patent, # 3 Civil Cover Sheet)(McKool, Mike)
United States Patent
Doyle et al.
[ill
Date of Patent:
1541 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.
[22] Filed:
Oct. 17, 1994
[51] Int. C1.6 .............................. C06F 9/44; C06F 15116;
C06F 17130
[52] U.S. C1. ................................ 3951200.32; 3951200.28;
3951680; 3951685; 3451326; 3451346; 7071501;
7071513; 7071515; 7071516
[58] Field of Search ............................... 3951157, 200.03,
3951161, 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;
7071501, 513, 515, 516; 3451326, 343,
346
References Cited
~561
U.S. PATENT DOCUMENTS
,
,
5,321,806
5,321,808
5,347,632
Barker et al. ........................... 7071516
Doyle ...................................... 3401706
Caro ................................... 3951200.03
Noguchi et al. ........................ 7071516
Vertelney et al. ...................... 3641419
Bernstein et al. ...................... 3951157
Khoyi et al. ............................ 3951683
Rouquie .................................. 3951705
Yin ........................................ 3951700
611994 Meinerth et al. ....................... 3951162
611994 Rupp et al. ............................. 3951164
911994 Filepp et al. ....................... 3951200.09
(List continued on next page.)
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://ww.ncsa.uiuc.edu/SDG/Software.
"The second phase of the revolution", WIRED, Oct. 1994,
pp. 116-152.
[73] Assignee: The Regents of the University of
California, Oakland, Calif.
[21] Appl. No.: 324,443
5,838,906
Patent Number:
[45]
[I91
(List continued on next page.)
Primary E x a m i n e r 4 i n h C. Dung
Attorney, Agent, or Firm-Townsend
Crew LLP
[571
and Townsend and
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)
5,838,906
Page 2
U.S. PATENT DOCUMENTS
5,367,635 1111994 Bauer et al. ....................... 3951200.32
5,390,314 211995 Swanson ................................. 3951500
5,418,908 511995 Keller et al. ....................... 3951200.32
5,544,320 811996 Konrad ............................... 3951200.09
5,581,686 1211996 Koppolu et al. ........................ 3951340
5,606,493 211997 Duscher et al. ................... 3951200.32
5,652,876 711997 Ashe et al. .............................. 7071516
OTHER PUBLICATIONS
Vetter, Ronald "Mosaic and the World-Wide Web," Computer Magazine, v.27, Iss.10, 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 (TR014), 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:Interfacen, Project Milestones, USC
Press Release4btained from Internet, http://m.usc.edu/
deptlraidersl.
Hansen, Wilfred "Enhancing documents with embedded
programs: How Ness extends in the Andrew ToolKit", IEEE
Computer Language, 1990 International Conference.
Tani, M., et al., "Object-Oriented Video: Interaction with
Real-World Objects Through Live Video", May 1992, p.
593-598.
Crowley, T., et al., "MMConf: An Infrastructure for Building
Shared Multimedia Applications", CSCW 90 Proceedings,
Oct. 1990, p. 329-342.
Davis, H., et al., "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. 3&39.
Gibbs, S., "Composite Multimedia and Active Objects",
OOPSLA '91, pp. 97-112.
Davis, H., et al., "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 al., "The Use of FTAM to access graphical
pictures across wide area networks", Computer Networks
and ISDN Systems, 1992, pp. 337-383.
Lashkari, Y.Z., et al., "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 al., "Extensions to ANSA for Multimedia
Computing", Computers Networks and ISDN Systems 25,
1992, pp. 305-323.
Huynh, Duong Le, et al., "PIX: An Object-Oriented Network Graphics Environment", Comput. & Graphics, vol. 17,
No. 3, pp. 295-304, 1993.
Berners-Lee, T.J., et al., The World-Wide Web, Computer
Networks and ISDN Systems 25, 1992, pp. 454-459.
Shackelford, D.E., et al., "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 O L E , Byte
Magazine, Mar. 1994, pp. 197-200.
Sarna, D.E., et al., "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 al., "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.01a", Article obtained
from the Internet, ftp.law.cornell.edu/pub/Lll/Cello no
DDE, Mar. 16, 1994, pp. 2-9.
"OLE 2.0: Death to Monoliths", Byte Magazine, Mar. 1994,
p. 122.
20
f THIS HYPERMEDIA DOCUMENT INCLUDES AN IMAGE ICON
J
/ 10
16
P
/G
30-
f 2 2
AJ~~
A SOUND ICON
a))
AND SOME HYPERTEXT.
# 26
J~~
TEXT, ASSOCIATED WITH IT. WHEW AN OBJECT I S OTHER
TEXT THE DOCUMENT IS SAID TO BE A HYPERMEDIA
DOCUMENT.
\28
14
/A
GYPERTEXTHAS ANOTHER OBJECT, PRIMARILY)
IS TEXT THAT
HYPERMEDIA DOCUMENT MAY HAVE IMAGE ICONS LIKE THl
I AND OTHER OBJECTS EMBEDDED IN IT.
I
F/&
PRIOR ART
U.S. Patent
NOV.17,1998
Sheet 2 of 9
5,838,906
U.S. Patent
Nov. 17,1998
Sheet 3 of 9
CLIENT COMPUTER
f
f
BROWSER
CLIENT
,
1
l
212
HYPERMEDIA DOC
/
/
NETWORK PROTOCOL LAYER
I
SERVER COMPUTER
f
'
/
NETWORK PROTOCOL LAYER
1
SERVER
PROCESS
1
<2l8
\
?220
APPLICATION
(SERVER) )
204
CLIENT COMPUTER
r
[ZOO
\
I
ADDITIONAL COMPUTER
j
CLIENT
I
y
NETWORK PROTOCOL LAYER
c
SERVER COMPUTER
ADDITIONAL COMPUTER
f
NETWORK PROTOCOL LAYER
/
204
LC
v
CD
s
wl
,
,
0
/ 224
w
F/GI 6
\O
CrO
wl
W
CrO
U
U
0
w
rn
U.S. Patent
NOV.17,1998
Sheet 6 of 9
ENTER
5,838,906
7
252
I
PARSE DOCUMENT
ASSIGN
ENUMERATED TYPE
lNlT PARAMETERS FOR
DRAWING AREA
CREATE INTERNAL
OBJECT
REPRESENTATION OF
HTML EMBED TAG.
U.S. Patent
NOV.17,1998
Sheet 7 of 9
CREATE DRAWING
AREA WIDGET
/
CREATE PlXMAP
I
ES
(
ENTER
REMOVE WINDOW,
PlXMAP AND
INTERNAL OBJECT
REPRESENTATION
)
- LAUNCH EXTERNAL
APPLICATION
5,838,906
1I
NCSA Mosaic: Document V i e n
File Options Novlpcrte Annotate
File Options W b d e Annotoh
~ocument V ~ s u a l
~ocument~lt$
Visual Embryo ProJrct interaotive
-
fl
,DMUmOlt
Document U R L http://www.
~
I
1
http://ww~r likar y . ~ ~ 8 t . a d ~ / p ~ b l i ~ / ~ ~ ~
11 Low coal Workstation ..-.
Low coat Workata ...
U
fl I
Demonstrat,
,/ 354
J
This projrc.. . . .
0
I snapshot]
I1 II
Density
I
I
I
U.S. Patent
Nov. 17,1998
Sheet 9 of 9
MOSAIC
PAN EL
-
INTER-CLIENT
COMMUNICATION
I
VISUALIZATION IMAGE
COMMANDS DATA
RENDERING
REQUESTS
1
IHAGE
SEGMENTS
1
2
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,
s 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
NOTICE REGARDING COPYRIGHTED
has an associated link to another document, the linked
MATERIAL
document is retrieved and displayed on the user's display
A portion of the disclosure of this patent document 10 screen. This allows the user to obtain more information in an
efficient and easy manner. This provides the user with a
contains material which is subject to copyright protection.
simple, intuitive and powerful way to "branch off' from a
The copyright owner has no objection to the facsimile
main document to learn more about topics of interest.
reproduction by anyone of the patent document or the patent
disclosure as it appears in the Patent and Trademark Office
Objects may be text, images, sound files, video data,
file or records, but otherwise reserves all copyright rights
documents or other types of information that is presentable
whatsoever.
to a user of a computer system. When a document is
primarily text and includes links to other data objects
BACKGROUND OF THE INVENTION
according to the hvvertext format, the document is said to be
a hypertext document. When graphics, sound, video or other
This invention relates generally to manipulating data in a
computer network, and specifically to retrieving, presenting 20 media capable of being manipulated and presented in a
and manipulating embedded program objects in distributed
computer system is used as the object linked to, the document is said to be a hypermedia document. A hypermedia
hypermedia systems.
Computer networks are becoming increasingly popular as
document is similar to a hypertext document, except that the
a medium for locating and accessing a wide range of data
user is able to click on images, sound icons, video icons, etc.,
media types, such as
from locations all over the world. The most popular global 2s that link
network is the Internet with millions of computer systems
additional graphics, sound, video, text, or hypermedia or
hypertext
connected to it. The Internet has become popular due to
FIG. 1 shows examples of hypertext and hypermedia
widely adopted standard protocols that allow a vast interdocuments and links associating data objects in the ~ O C U connection of computers and localized computer networks
to communicate with each other. Computer systems con- 30 m a t s to other data objects. Hypermedia document 10
nected to a network such as the Internet may be of varying
includes hypertext 20, an image icon at 22, a sound icon at
types, e.g., mainframes, workstations, personal computers,
24 and more hypertext 26. FIG. 1 shows hypermedia docuetc. The computers are manufactured by different companies
ment 10 substantially as it would appear on a user's display
screen. The user is able to select, or "click on icons and text
using proprietary hardware and operating systems and thus
have incompatibilities in their instruction sets, busses, 3s on a display screen by using an input device, such as a
mouse, in a manner well-known in the art.
software, file formats and other aspects of their architecture
and operating systems. Localized computer networks conWhen the user clicks on the phrase "hypermedia," softnected to the Internet may be incompatible with other
ware running on the user's computer obtains the link assocomputer systems and localized networks in terms of the 40 ciated with the phrase, symbolically shown by arrow 30, to
physical layer of communication including the specific
access hypermedia document 14. Hypermedia document 14
hardware used to implement the network. Also, different
is retrieved and displayed on the user's display screen. Thus,
networks use differing, incompatible protocols for transferthe user is presented with more information on the phrase
ring information and are not able to communicate with each
"hypermedia." The mechanism for specifying and locating a
other without a translation mechanism such as a "gateway". 4s linked object such as hypermedia document 14 is an HTML
The Internet provides a uniform and open standard for
"element" that includes an object address in the format of a
allowing various computers and networks to communicate
Uniform Resource Locator (URL).
with each other. For example, the Internet uses Transfer
Similarly, additional hypertext 26 can be selected by the
Control Protocol/Internet Protocol ("TCPDP) that defines a
user to access hypertext document 12 via link 32 as shown
uniform packet-switched communication standard which is
in FIG. 1. If the user selects additional hypertext 26, then the
ultimately used in every transfer of information that takes
text for hypertext document 12 is displayed on the user
place over the Internet.
screen. Note that hypertext document 12, itself, has hypertext at 28. Thus, the user can click on the phrase ''hyperOther Internet standards are the HyperText Transmission
media" while viewing document 12 to access hypermedia
Protocol ("HTTp) that allows hypertext documents to be
exchanged freely among any computers connected to the ss document 14 in a manner similar to that discussed above.
Documents, and other data objects, can be referenced by
Internet and HyperText Markup Language ("HTML") that
defines the way in which hypertext documents designate
many links from many different source documents. FIG. 1
links to information. See, e.g., Berners-Lee, T. J., "The
shows document 14 serving as a target link for both docuworld-wide web," Computer Networks and ISDN Systems
ments 10 and 12. A distributed hypertext or hypermedia
60 document typically has many links within it that specify
25 (1992).
many different data objects located in computers at different
Ahypertext document is a document that allows a user to
geographical locations connected by a network. Hypermedia
view a text document displayed on a display device condocument 10 includes image icon 22 with a link to image 16.
netted to the user's computer and to access, retrieve and
One method of viewing images is to include an icon, or other
view other data objects that are linked to hypertext words or
phrases in the hypertext document. In a hypertext document, 6s indicator, within the text.
the user may "click on," or select, certain words or phrases
Typically, the indicator is a very small image and may be
in the text that specify a link to other documents, or data
a scaled down version of the full image. The indicator may
DISTRIBUTED HYPERMEDIA METHOD
FOR AUTOMATICALLY INVOKING
EXTERNAL APPLICATION PROVIDING
INTERACTION AND DISPLAY OF
EMBEDDED OBJECTS WITHIN A
HYPERMEDIA DOCUMENT
- A
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
to
computer system retrieves the corresponding full image, s Systems ~onnected it, such as computer 108 operated by
llO.
group
form a localized
e.g., a bit map, and displays it by using external software
network. Alocalized network does not necessarily adopt the
called a
hi^ 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
of a browser program is the
Center
than the larger network. The localized network may connect
for Supercomputing Application's (NCSA) Mosaic software 10 to the larger network through a
or
impledeveloped by the University of Illinois at Urbanal
mented on, for example, a server,
&lother
is
On the
Internet 100 connects other localized networks, such as
Internet at http:llwww.law.cornell.edul. Many viewers exist
server at 120, which interconnects users 122, 124 and 126
that handle various file formats such as ".TIF," ".GIF,"
and their respective computer systems to Internet
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
the
image in a separate
(in a
may be by hardwire, fiber optic cable, satellite or other radio
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
server
through any number of intermediate servers and
viewer is active. By using indicators to act as place holders 20 communication links or other computers and data processing
for
images that are retrieved and
when a
equipment not shown in FIG, 2 but symbolically represented
user selects the indicator, data traffic over the network is
by Internet
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
connect to the Internet via a larger computer, such as server
does not have to wait to have images transferred that are of 25
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
type data
is a
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
FIG. 2. Many configurations of large and small computers
computer accesses sound data shown symbolically by data O are possible,
'
40. The accessed
data plays
a
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 d ~ ~ u m e nallow a user
ts
computer is playing with respect to requesting information
to access different data objects. The objects may be text, '5 or providing information. Client computers are computers
images, sound files, video, additional documents, etc. As
that typically request information from a server computer
which provides the information, F~~this reason, servers are
used in this specification, a data object is information
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
by a smaller machine depending on the transaction, ~ h is, ~
is a "self-extracting" data object that includes code to
''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, the first case, where
bmwser may allow the user to ''~aunch"the self-extracting 45 computer 108 issues a request for information from server A,
data object to automatically execute the unpacking instruc108 is a
making a request of information
tions to expand the data object to its original size. Such a
from server A, server may have the information in a
A
combination of executable code and data is limited in that
,torage device that is local to server server A may have
A or
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
information, user110 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
Other existing approaches to embedding interactive proremote geographical location on the Internet. However, user
110 may also request information from a computer, such as
gram objects in documents include the Object Linking and
Embedding (OLE) facility in Microsoft Windows, by
small computer 124, thus placing small computer 124 in the
Microsoft Corp., and OpenDoc, by Apple Computer, Inc. At 5 s role of a "server." For purposes of this specification, client
least one shortcoming of these approaches is that neither is
and server computers are categorized in terms of their
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
keyboard, etc.), a display device (monitor, liquid crystal
located at user 110's client computer 108. When user 110
t
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. s 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 loo
and
is
been developed, However, these systems are bandwidthreceived
server B. Server processes the command and
intensive and compute-intensive and often require rnultiprolocates document l4 On its local storage' Server l4 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
and server A, After client computer
for data are required. The expense
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 IS store, present and manipulate images are not available to
image object 16 resides on server c when user 110 clicks on
many of the researchers that need to have access to the data.
On the other hand, small client computers in the form of
image icon 22, client computer 108 generates a command to
personal computers or workstations such as client computer
retrieve image object 16 to server C. Server C receives the
108 of FIG. 2 are generally available to a much larger
command and transfers a copy of image object 16 to client
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
is desirable to have a system that allows the accessing,
traverse long distances via the Internet in order to retrieve
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 2s 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/IP), It is a "hypermedian system because it
amount of processing power
at 'lient
is able to handle hypermedia documents as described above
Computers, many
tasks performed
via standards such as the HTTP and HTML hypertext
at 'lient computers On the
transmission and mark up standards, respectively. Further, it 30 cannot be performed by
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
objects it allows ~
users very little, if any, interaction with
computer systems connected to the I
~~n example of ~ data~
~
~
~
,
an open distributed hypermedia system is the so-called 35 these data objects. Users are limited to traditional hypertext
and hypermedia forms of selecting linked data objects for
''world-wide
implemented on the I~~~~~~~
and disand ~
cussed in papers such as the B
~
~ reference~ given
~
~
~retrieval L launching viewers or other forms of external
~
software to have the data objects presented in a comprehenabove.
sible way.
The open distributed hypermedia system provided by the
Thus, it is desirable to have a system that allows a user at
Internet allows users to easily access and retrieve different 40
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 s~ortcomings that today's large
in
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 ~
~and local- 45~ Fteractive way to provide the user with a better understandt
~
~
~
t
1% 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.,
three dimensional images) which is viewed on a computer
ronment.
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
An example of such type of data is in medical imaging
the user to use a hypermedia format to locate and retrieve
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 s
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
1n 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 ,,,tines in this specification, ~h~ source code in A
~
This amounts to providing parallel distributed processing for 10 dix A includes NCSA ~~~~i~ 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
,,,ting
an application program interface, me source code
these images without exiting the hypermedia browser softis ,,itten
in the
computer language to run on an
ware. The control and interaction of viewing the image may 15 x-window
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
merit. 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
puter systems.
20 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 inputloutput (110) interface
Once the spreadsheet program has calculated results, the
cards for connecting computer system 150 to external
results may be sent over the network to the user's client 35 devices such as an optical character reader, external storage
computer for display to the user. In this way, computer
devices, other computers or additional devices.
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) andlor 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 subsvstems such as a vrinter, keyboard, fixed disk and
others are shown. ~ e r i ~ h e r aand inp;t/output (110) devices
is
FIG. 1 illustrates examples of hypertext and hypermedia 45
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;
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;
181 Or fixed disk lS6, the exchange
and
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.~
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 HTMLf0rmat.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.~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) s 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
client 210 as described in more detail, below, Another lo object by means of the present invention. In order to make
possibility is to install application client 210 as a "terminate
210
with
created
browser client 208, both the browser client and the appliand stay
(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 'lient 208 is a process that a
of 'lient
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
created by the Center for Knowledge Management at the
a user has requested access to. In this example, hypermedia 20
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
212 has been loaded
Martin, M. Doyle; to be published in the Proceedings of
200, browser
208 parses
" 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 IIIvention section. In FIG. 5 ,
present invention are generally available as hyperlinked data
212
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~llvisembryo,
tion client 212 as an application to invoke. In this present
ucsf,edui",
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 'lient 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
perform processing in
operate more
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 visual1, 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
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
any
means. Assuming
55 input would be to rotate the embryo image from a current
206 is the ~nternet,
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
After application client 210 receives the multidimensional
client 210 can update the viewing window currently displaying 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
together with an associated image, within a hypermedia
display data, e.g., pixel values, and transfers this frame
document, allowing objects within the MetaMAP-processed
buffer to application client 210. Techniques, such as data
image to have URL addresses associated with them. When
compression and delta encoding, can be used to compress
a User clicks with a mouse upon an object within the
the data before transmitting over network 206 to reduce the 5 M ~ ~ ~ M image, P - ~ ~ ~ M ~ P~ ~ ~
A
the M ~ ~ client applicaA
bandwidth requirement.
tion relays the relevant URL back to the hypermedia browser
It will be readily seen that application server 220 can
application, which then retrieves the HTML file or hyperadvantageously use server computer 204's computing
media object which correspon~sto that URL,
resources to perform the viewing transformation much more
The various processes in the system of the present invenquickly than could application client 210 executing on client
10 tion communicate through a custom API called Mosaic1
computer 200. Further, by only transmitting the updated
External Application Program Interface MEAPI. The
frame buffer containing a new view for the embryo image,
MEAPI set of predefined messages includes those shown in
the amount of data sent over network 206 is reduced. By
Table I.
using appropriate compression techniques, such as, e.g.,
MPEG (Motion Picture Experts Group) or JPEG (Joint
TABLE I
Photographic Experts Group), efficient use of network 206 is
preserved.
Message Function
Message Name
FIG. 6 shows yet another embodiment of the present
Messages from server to client:
invention. FIG. 6 is similar to FIG. 5, except that additional
computers 222 and 224 are illustrated. Each additional 20
1. Server Update Done
XtNrefreshNotify
computer includes a process labeled "Application
2. Server Ready
XtNpanelStartNotify
(Distributed)." The distributed application performs a por3. Server Exiting
XtNpanelExitNotify
Messages from client to server:
tion of the task that an application, such as application server
220 or application client 210, perform. In the present.
4. Area Shown
XtNmapNotify
5. Area Hidden
XtNunmapNotify
example, tasks such as volume rendering may be broken up 25
6. Area Destroyed
XtNexitNotify
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
The messages in Table I are defined in the file protocol-1ib.h
additional computers 222 and 224 can all work together to
in ~
~B, me functions of the MEUI are provided in
~
~
~
d
i
perform the task of computing a new viewpoint and frame 30 protocol-1ib.c of Appendix B. Thus, by using MEAPI a
buffer for the embryo for the new orientation of the embryo
server process communicates to a client application program
image in the Present example. The coordination of the
to let the client application know when the server has
finished updating information, such as an image frame
distributed processing can be performed at client computer
200 by application client 210, at server computer 204 by
buffer, or pixmap (Message 1); when the server is ready to
application server 220, or by any of the distributed appli- 35 start processing messages (Message 2) and when the server
cations executing on additional computers, such as 222 and
is exiting or stopping
related to the server
224. In a preferred embodiment, distributed processing is
application program,
~oordinatedby a Program called " V I S represented by
For client to server communications, MEAPI provides for
application client 210 in FIG. 6.
the client informing the server when the image display
Other applications of the invention are possible. For 40 window area is visible, when the area is hidden and when the
example, the user can operate a spreadsheet program that is
area is destroyed. Such information allows the server to
being executed by one or more other computer systems
decide whether to allocate computing resources for, e.g.,
connected via the network to the user's client computer.
rendering and viewing transformation tasks where the server
Once the spreadsheet program has calculated results, those
is running an application program to generate new views of
results may be sent over the network to the user's client 45 a multi dimensional object. Source code for MEAPI fun&computer for display within the hypermedia document on
registermental functions such as handle-client-msg,
the user's client computer. In this way, computer systems
and send-clientclient, register~clientmsg~callback
located remotely on the network can be used to provide the
msg may be found in protocol-1ib.c as part of the source
computing power that may be required for certain tasks and
code in Appendix B.
to reduce the data bandwidth required by only transmitting so
Next, a discussion of the software processes that perform
results of the computations.
parsing of a hypermedia document and launching of an
Another type of possible application of this invention
application program is provided in connection with Table I1
would involve embedding a program which runs only on the
and FIGS. 7A, 7B, 8A and 8B.
client machine, but which provides the user with more
Table 11, below, shows an example of an HTML tag
functionality than exists in the hypermedia browser alone. ss format used by the present invention to embed a link to an
An example of this is an embedded client application which
application program within a hypermedia document.
is capable of viewing and interacting with images which
have been processed with Dr. Doyle's MetaMAP invention
TABLE I1
(U.S. Pat. No. 4,847,604). This MetaMAP process uses
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?