Apple, Inc. v. Motorola, Inc. et al
Filing
12
AMENDED COMPLAINT for Patent Infringement against Motorola Mobility, Inc., Motorola, Inc., filed by Apple, Inc.. (Attachments: #1 Exhibit A - '949 patent, #2 Exhibit B - '002 patent, #3 Exhibit C - '315 patent, #4 Exhibit D - RE '486 patent, #5 Exhibit E - '354 patent, #6 Exhibit F - '263 patent, #7 Exhibit G - '983 patent, #8 Exhibit H - '705 patent, #9 Exhibit I - '647 patent, #10 Exhibit J - '852 patent, #11 Exhibit K - '131 patent, #12 Exhibit L - '337 patent, #13 Exhibit M - '867 patent, #14 Exhibit N - '721 patent, #15 Exhibit O - '599 patent) (Peterson, James) [Transferred from Wisconsin Western on 12/1/2011.]
EXHIBIT J
111111111111111111111111111111111111111111111111111111111111111111111111111
US005929852A
United States Patent
[75]
345/335 X
[45]
ENCAPSUIATED NETWORK ENTITY
REFERENCE OF A NETWORK
COMPONENT SYSTEM
FOREIGN PATENT DOCUMENTS
WO
A9107719
Inventors: Stephen Fisher; Michael A. Cleron,
both of Menlo Park; Timo Bruck,
Mountian View, all of Calif.
[73]
Assignee: Apple Computer, Inc., Cupertino,
Calif.
[21]
Appl. No.: 09/007,691
[22]
Filed:
Jan. 15, 1998
Related U.S. Application Data
[63]
Continuation of application No. 08/435,880, May 5, 1995,
abandoned.
[51]
[52]
[58]
Int. CI. 6
G06T 1/00
U.S. CI.
345/335
345/335, 339,
Field of Search
345/348, 356; 395/701, 200.47, 200.48,
680, 681, 682, 683, 684
[56]
Jui. 27, 1999
[11]
Fisher et ai.
[54]
References Cited
U.S. PATENT DOCUMENTS
5,202,828 4/1993 Vertelney et al.
5,481,666 1/1996 Nguyen et al.
5,500,929 3/1996 Dickinson
5,530,852 6/1996 Meske, Jr. et al.
5,537,546 7/1996 Sauter
5,548,722 8/1996 Jalalian et al. .
5,574,862 11/1996 Marianetti, II
5,659,791 8/1997 Nakajima et al.
5,724,506 3/1998 Cleron et al.
5,724,556 3/1998 Souder et al.
5,781,189 7/1998 Holleran et al.
395/936 X
395/762
395/160
395/600
395/762
395/200.1
395/200.08
345/302
395/200.01
345/335 X
345/335
5/1991
WIPO.
OTHER PUBLICATIONS
Develop, The Apple Technical Journal, "Building an OpenDoc Part Handler", Issue 19, Sep., 1994, pp. 6-16.
Baker, S. "Mosaic-Surfing at Home and Abroad," Proceedings ACM SIGUCCS User Services Conference XXII, Oct.
16-19, 1994, pp. 159-163.
PCT International Search Report dated Oct. 22, 1996 in
corresponding PCT Case No. PCT/US96/06376.
MacWeek, Nov. 7, 1994, vol. 8, No. 44, Cyberdog to Fetch
Internet Resources for OpenDoc APPS, Robert Hess.
Opinion, MacWeek Nov. 14, 1994, The Second Decade,
Cyberdog Could Be a Breakthrough if it's Kept on a Leash,
Henry Norr.
Primary Examiner-Joseph H. Feild
Attorney, Agent, or Firm-Cesari & McKenna, LLP
[57]
ABSTRACT
A network-oriented component system efficiently accesses
information from a network resource located on a computer
network by creating an encapsulated network entity that
contains a reference to that resource. The encapsulated entity
is preferably implemented as a network component stored
on a computer remotely displaced from the referenced
resource. In addition, the encapsulated entity may be manifested as a visual object on a graphical user interface of a
computer screen. Such visual manifestation allows a user to
easily manipulate the entity in order to display the contents
of the resource on the screen or to electronically forward the
entity over the network.
20 Claims, 14 Drawing Sheets
VIEWING
EDITOR
660
604
COMPONENT LAYER 606
OPERATING
SYSTEM
21.Q
ARBITRATOR
OBJECT
616
GRAPHIC
INTERFACE
OBJECT
2QQ
5,929,852
Patent Number:
Date of Patent:
5,819,090 10/1998 Wolf et al.
[19]
WINDOW
OBJECT
2aQ
WINDOW
MANAGER
ill
u.s.
Patent
5,929,852
Sheet 1 of 14
Jui. 27, 1999
a:
w
>
a:
0
..--
..-..--
"
0
0
~
C\I
~~
Z
W
IZ
W
...J
()
;
0
0
C\I
a:
a:
>
a:
>
a:
w
w
w
w
-
(J)
(J)
•
!
IZ
W
::J
rJ
0
0
()
"'-----
C\I
a:
a:
>
a:
>
a:
w
w
("-
w
o
o
('t)
(J)
•
-
..-..--
0
0
...J
-
0
0
('t)
()
r\..
C\I
('-
IZ
w
::J
()
"'-----
o
o
..--
\
W
r
0
w
(J)
IZ
~
0
C\I
-
0
0
('t)
0
0
--
('t)
(J)
-
...J
()
0
0
w
('--'
..--
0
0
..-..--
u.s.
Patent
Sheet 2 of 14
Jui. 27, 1999
@
•
,
.
~
rr
~
~
!
Mj .
M
M
•
_
+
~
~
"I,...
0
aI~
I
~
~
~
cry
C\I
rco
0
C\I
C\I
~
t---t
",El
11:
V
J.
~ ,...:::!
F"-r-
co
or-
J
t,l
~ ,,::F- ~'li
f'-'. ~f'-" ,..:!
~ ...:.f-'O
~ ~f-"-
~
V
C\I
C\I
.
>
~ ~f-"
~ ...=.f-2.
~ ~f-'.
~ ~~
F ~~
:li
~ ~~ N..!!.
~
~
~~
~ H
J
I
!
'"
~~
'--
0
V
or-
C\I
C\I
~
>a:
a:~
1- 0
Wa:
~~
~W
()
or-
C\I
L...
\-..
I-
:::>
a:
)
Oz
()
()
0
:::::
C\I
C\I
C\I
:::>
a..
-('
co
or-
()
"(
C\I
C\I
or-
C\I
~
LO
C\I
co
cry
C\I
v
r
(
o
o
C\I
"
......
r
C\I
cry
C\I
r rJ
/
"-.
-
>a:
C\I
~
(!J
~
u.
0
0
v
v
C\I
5,929,852
v
C\I
...............
t'- / l
LO
cry
C\I
W
u.s.
Patent
co
a
T"""
>a:
t......
>a:
0
l-..
::::>
()
~(J)
~
T"""
Ct')
lr...
~
~W~
(J)8.
(J)
«
~
Ct')
T"""
Ct')
::::>
a:
C\I
<0
0
::::::
~
-('
()
'J
Ct')
Ct')
5,929,852
Sheet 3 of 14
Jui. 27, 1999
T"""
a..
()
>a:
0
l
C\I
~
W
~
T"""
Ct')
~
a
.
C\I
Ct')
<.!J
C\I
C\I
Ct')
V.
a:~
Wa:
(
a
(
a
a
Ct')
LO
Ct')
~O
~~
~W
Oz
()
u.
NETWORK
COMPONENT
NETWORK
COMPONENT
450 '\..
I
~
~
I
~
NETWORK
COMPONENT
FIG. 4
HARDWARE 410
t
OPERATING SYSTEM 420
COMPONENT ARCHITECTURE LAYER
NETWORK
COMPONENT
LAYER
•
1
------
1
NETWORK
COMPONENT
480
430
~
I
COMPo
/
---
COMPo
'\
APPLIC.
r
I
490
400
APPLIC.
-..-
r
d
=
N
Ul
\C
N
\C
....
00
Ul
....
~
'""'"
o
....,
~
~
~
....
=-
'JJ.
'""'"
'0
'0
'0
~-..J
N
:-
~
=
~
.....
.....
~
~
•
'JJ.
•
514
540
NETWORK
ADAPTER
566
NETWORK
BUFFER
560
....--- 556
510
OPERATING SYSTEM
WINDOW
MANAGER
506
COMPONENT
LAYER
NETWORK
INTERFACE
502
COMPONENT
550
526
520
COMPUTER
NETWORK
DISPLAY
ADAPTER
SCREEN
BUFFER
/500
FIG. 5
532
544
d
=
=-
N
Ul
\C
N
\C
....
00
Ul
....
'~
""'"
o
....,
Ul
....
~
~
'JJ.
'""'"
'0
'0
'0
~-..J
N
:-
~
=
~
~
~
.....
.....
•
'JJ.
•
GRAPHIC
INTERFACE
OBJECT
650
612
662
VIEWING
EDITOR
660
ARBITRATOR
OBJECT
616
FIG. 6
WINDOW
OBJECT
630
608
DISPATCHER
OBJECT
626
COMPONENT LAYER 606
COMPONENT
OBJECT
602
WINDOW
MANAGER
614
OPERATING
SYSTEM
610
d
=
N
Ul
\C
N
\C
....
00
Ul
....
~
'""'"
o
....,
0'1
....
~
~
=-
'JJ.
'""'"
'0
'0
'0
~-..J
N
:-
~
=
~
.....
.....
~
~
•
'JJ.
•
u.s. Patent
Sheet 7 of 14
Jui. 27, 1999
o
,.....
o
l"-
5,929,852
~I
I
en
fB ' C\JI
Or=:
en
w
ex:
~O
0Ot4::
0
0
>
z
f'-
.
(!)
u.
u.s. Patent
Jui. 27, 1999
5,929,852
Sheet 8 of 14
802
/800
~----<--
CYBERITEM
804
806
GOPHERITEM
WEBITEM
ARTICLE
810
FIG. 8
/""900
902
FIG. 9
NEWSGROUpBROWSER
WEBBROWSER
c
r
1008,",,-
1006,,--,.-
GOPHERBROWSER
1000~
1014
1012
1010
~l
BASECOMPONENT
~l
COMPONENT
I
--~
1004
7
PICTUREVIEWER
TEXTVIEWER
l5
L>
~
1020
1018
1016
L
FIG. 10
BASEE XTENSION
CVBER EXTENSION
ARTICLE BROWSER
~ -
1002
d
=
=-
N
Ul
\C
N
\C
....
00
Ul
....
'""'"
~
o
....,
'0
....
~
~
'JJ.
'""'"
'0
'0
'0
~-..J
N
:-
~
=
~
.....
.....
~
~
•
'JJ.
•
u.s. Patent
5,929,852
Sheet 10 of 14
Jui. 27, 1999
o
o
rr-
::2:
::2:(1)
~(.)
W(I)
~O)
II:~
II:~
W
I (I)
~~
0..0.:
Q)
CI.
CI.
o..E
O~
00
C)J::
C)J:::
c:c
~
"
oq0
rr-
c.o
0
rr-
«
T'"""
T'"""
CJ
LL
0
rrr-
oq-
C\I
rrr-
II:
W
::2:
W
Z
C/)
~
0
C/}
0
II:
III
Z
W
~
~
II:
W
I (I)
0..-
02:
II:
X
W
-
u.s. Patent
Jui. 27, 1999
Sheet 11 of 14
5,929,852
f
.------.........".1110
GOPHERBROWSER
~GOPHERITE
~ Home Page
.------......&..,..1120
WEBBROWSER
~ GOPHERITEM
~ Home Page
FIG. 118
1100
u.s. Patent
Jui. 27, 1999
Sheet 12 of 14
5,929,852
f
r----------L".1110
1100
Rpple
GOPHERBROWSER
~ GOPHERITEM
.... Home Page
1106
......------~1120
WEsBROWSER
1130
~GOPHERITE
.... Home Page
FIG.11C
u.s. Patent
Jui. 27, 1999
5,929,852
Sheet 13 of 14
,1100
,.------------''-L..1110
GOPHERBROWSER
III
1106
GOPHERITEM
Happy Face
~ GOPHERITEM
~ Home Page
1140
Home Page
WEsBROWSER
Home Page
Click Me!
Click me too!
Click me first!
~ GOPHERITEM
~ Home Page
FIG.11D
u.s. Patent
Jui. 27, 1999
5,929,852
Sheet 14 of 14
1202
1200'\
START
C)1204
,.
I
USER DOUBLE-CLICKS ON
HOME PAGE ICON
~ 1206
,
GOPHERBROWSER COMPONENT RECEIVES
"DOUBLE-CLICKING" EVENT AND CALLS OPEN
METHOD OF HOME PAGE GOPHER ITEM COMPONENT
1208
S
r
GOPHERITEM COMPONENT CREATES WEBBROWSER
COMPONENT AND PASSES ITSELF TO NEWLY
CREATED CYBEREXTENSION COMPONENT
1210
r
WEBBROWSER COMPONENT NOTIFIED THAT
GOPHER ITEM COMPONENT HAS BEEN ASSIGNED AND
GOPHERITEM COMPONENT INSTRUCTED TO CREATE
GOPHERSTREAM COMPONENT TO DOWNLOAD DATA
5
1r
12 12
GOPHERITEM COMPONENT CALLS OPEN METHOD OF
WEBBROWSER COMPONENT TO DISPLAY DATA ON SCREEN
r
1214
FINISH
FIG. 12
5,929,852
1
2
The Telnet service allows users to log onto computers
coupled to the networks, while the netnews protocol provides a bulletin-board service to its subscribers.
Furthermore, the various data formats of the information
This application is a continuation of U.S. patent appli- 5 available on the Internet include JPEG images, MPEG
movies and ,u-Iaw sound files.
cation Ser. No. 08/435,880, filed May 5, 1995, now abandoned.
Two fashionable services for accessing information over
the Internet are Gopher and the World-Wide Web ("Web").
CROSS-REFERENCE TO RELATED
Gopher consists of a series of Internet servers that provide
APPLICATIONS
10 a "list-oriented" interface to information available on the
networks; the information is displayed as menu items in a
This invention is related to the following copending U.S.
hierarchical manner. Included in the hierarchy of menus are
patent applications:
documents, which can be displayed or saved, and searchable
U.S. patent application Ser. No. 08/435,377, titled
indexes, which allow users to type keywords and perform
EXTENSIBLE, REPLACEABLE NETWORK COMPO15 searches.
NENT SYSTEM;
Some of the menu items displayed by Gopher are links to
U.S. Pat. No. 5,784,619 issued Jul. 21, 1998, titled
information available on other servers located on the netREPLACEABLE AND EXTENSIBLE NOTEBOOK
works. In this case, the user is presented with a list of
COMPONENT OF A NETWORK COMPONENT SYSavailable information documents that can be opened. The
TEM;
20 opened documents may display additional lists or they may
U.S. patent application Ser. No. 08/435,862, titled
contain various data-types, such as pictures or text;
REPLACEABLE AND EXTENSIBLE LOG COMPOoccasionally, the opened documents may "transport" the
NENT OF A NETWORK COMPONENT SYSTEM;
user to another computer on the Internet.
U.S. Pat. No. 5,724,506, issued Mar. 3, 1998, titled
The other popular information service on the Internet is
REPLACEABLE AND EXTENSIBLE CONNECTION 25 the Web. Instead of providing a user with a hierarchical
DIALOG COMPONENT OF A NETWORK COMPOlist-oriented view of information, the Web provides the user
NENT SYSTEM; and
with a "linked-hypertext" view. Metaphorically, the Web
U.S. Pat. No. 5,781,189 issued Jul. 14, 1998, titled
perceives the Internet as a vast book of pages, each of which
EMBEDDING INTERNET BROWSER/BUTTONS
may contain pictures, text, sound, movies or various other
WITHIN COMPONENTS OF A NETWORK COMPO- 30 types of data in the form of documents. Web documents are
NENT SYSTEM, each of which was filed May 5,1995 and
written in HyperText Markup Language (HTML) and Web
assigned to the assignee of the present invention.
servers transfer HTML documents to each other through the
HyperText Transfer Protocol (HTTP).
FIELD OF THE INVENTION
The Web service is essentially a means for naming
35
sources of information on the Internet. Armed with such a
This invention relates generally to computer networks
and, more particularly, to an architecture and tools for
general naming convention that spans the entire network
building Internet-specific services.
system, developers are able to build information servers that
potentially any user can access. Accordingly, Gopher
BACKGROUND OF THE INVENTION
40 servers, HTTP servers, FTPservers, and E-mail servers have
been developed for the Web. Moreover, the naming convenThe Internet is a system of geographically distributed
tion enables users to identify resources (such as documents)
computer networks interconnected by computers executing
on any of these servers connected to the Internet and allow
networking protocols that allow users to interact and share
access to those resources.
information over the networks. Because of such wide-spread
information sharing, the Internet has generally evolved into 45
As an example, a user "traverses" the Web by following
hot items of a page displayed on a graphical Web browser.
an "open" system for which developers can design software
for performing specialized operations, or services, essenThese hot items are hypertext links whose presence are
tially without restriction. These services are typically impleindicated on the page by visual cues, e.g., underlined words,
mented in accordance with a client/server architecture,
icons or buttons. When a user follows a link (usually by
wherein the clients, e.g., personal computers or 50 clicking on the cue with a mouse), the browser displays the
target pointed to by the link which, in some cases, may be
workstations, are responsible for interacting with the users
and the servers are computers configured to perform the
another HTML document.
services as directed by the clients.
The Gopher and Web information services represent
Not surprisingly, each of the services available over the
entirely different approaches to interacting with information
Internet is generally defined by its own networking protocol. 55 on the Internet. One follows a list-approach to information
that "looks" like a telephone directory service, while the
A protocol is a set of rules governing the format and
meaning of messages or "packets" exchanged over the
other assumes a page-approach analogous to a tabloid newsnetworks. By implementing services in accordance with the
paper. However, both of these approaches include applicaprotocols, computers cooperate to perform various
tions for enabling users to browse information available on
operations, or similar operations in various ways, for users 60 Internet servers. Additionally, each of these applications has
wishing to "interact" with the networks. The services typia unique way of viewing and accessing the information on
the servers.
cally range from browsing or searching for information
having a particular data format using a particular protocol to
Netscape Navigator™ ("Netscape") is an example of a
actually acquiring information of a different format in accormonolithic Web browser application that is configured to
dance with a different protocol.
65 interact with many of the previously-described protocols,
For example, the file transfer protocol (FTP) service
including HTTP, Gopher and FTP. When instructed to
facilitates the transfer and sharing of files across the Internet.
invoke an application that uses one of these protocols,
ENCAPSULATED NETWORK ENTITY
REFERENCE OF A NETWORK
COMPONENT SYSTEM
5,929,852
3
4
Netscape "translates" the protocol to hypertext. This translation places the user farther away from the protocol
designed to run the application and, in some cases, actually
thwarts the user's Internet experience. For example, a discussion system requiring an interactive exchange between
participants may be bogged down by hypertext translations.
The Gopher and Web services may further require additional applications to perform specific functions, such as
playing sound or viewing movies, with respect to the data
types contained in the documents. For example, Netscape
employs helper applications for executing applications having data formats it does not "understand". Execution of these
functions on a computer requires interruption of processing
and context switching (i.e., saving of state) prior to invoking
the appropriate application. Thus, if a user operating within
the Netscape application "opens" a MPEG movie, that
browsing application must be saved (e.g., to disk) prior to
opening an appropriate MPEG application, e.g., Sparkle, to
view the image. Such an arrangement is inefficient and
rather disruptive to processing operations of the computer.
Typically, a computer includes an operating system and
application software which, collectively, control the operations of the computer. The applications are preferably taskspecific and independent, e.g., a word processor application
edits words, a drawing application edits drawings and a
database application interacts with information stored on a
database storage unit. Although a user can move data from
one application to the other, such as by copying a drawing
into a word processing file, the independent applications
must be invoked to thereafter manipulate that data.
Generally, the application program presents information
to a user through a window of a graphical user interface by
drawing images, graphics or text within the window region.
The user, in turn, communicates with the application by
"pointing" at graphical objects in the window with a pointer
that is controlled by a hand-operated pointing device, such
as a mouse, or by pressing keys of a keyboard.
The graphical objects typically included with each window region are sizing boxes, buttons and scroll bars. These
objects represent user interface elements that the user can
point at with the pointer (or a cursor) to select or manipulate.
For example, the user may manipulate these elements to
move the windows around on the display screen, and change
their sizes and appearances so as to arrange the window in
a convenient manner. When the elements are selected or
manipulated, the underlying application program is
informed, via the window environment, that control has
been appropriated by the user.
A menu bar is a further example of a user interface
element that provides a list of menus available to a user.
Each menu, in turn, provides a list of command options that
can be selected merely by pointing to them with the mousecontrolled pointer. That is, the commands may be issued by
actuating the mouse to move the pointer onto or near the
command selection, and pressing and quickly releasing, i.e.,
"clicking" a button on the mouse.
In contrast to this typical application-based computing
environment, a software component architecture provides a
modular document-based computing arrangement using
tools such as viewing editors. The key to document-based
computing is the compound document, i.e., a document
composed of many different types of data sharing the same
file. The types of data contained in a compound document
may range from text, tables and graphics to video and sound.
Several editors, each designed to handle a particular data
type or format, can work on the contents of the document at
the same time, unlike the application-based computing environment.
Since many editors may work together on the same
document, the compound document is apportioned into
individual modules of content for manipulation by the
editors. The compound-nature of the document is realized by
embedding these modules within each other to create a
document having a mixture of data types. The software
component architecture provides the foundation for assembling documents of differing contents and the present invention is directed to a system for extending this capability to
network-oriented services.
To remotely access information stored on a resource ofthe
network, the user typically invokes a service configured to
operate in accordance with a protocol for accessing the
resource. In particular, the user types an explicit destination
address command that includes a uniform resource locator
(URL). The URL is a rather long (approximately 50
character) address pointer that identifies both a network
resource and a means for accessing that resource. The
following is an example of a hypothetical URL address
pointer to a remote resource on a Web server:
5
10
15
20
http:/aaaa.bbb.cc/hypertext/DdddEeeee!WWW/Ffffffff.html
25
30
35
40
45
50
55
60
65
It is apparent that having to type such long destination
address pointers can become quite burdensome for users that
frequently access information from remote resources.
Therefore, it is among the objects of the present invention
to simplify a user's experience on computer networks without sacrificing the flexibility afforded the user by employing
existing protocols and data types available on those networks.
Another object of the invention is to provide a system for
users to search and access information on the Internet
without extensive understanding or knowledge of the underlying protocols and data formats needed to access that
information.
Still another object of the invention is to provide users
with a simple means for remotely accessing information
stored on resources connected to computer networks.
SUMMARY OF IRE INVENTION
Briefly, the invention comprises a network-oriented component system for efficiently accessing information from a
network resource located on a computer network by creating
an encapsulated network entity that contains a reference to
that resource. The encapsulated entity is preferably implemented as a network component stored on a computer
remotely displaced from the referenced resource. In
addition, the encapsulated entity may be manifested as a
visual object on a graphical user interface of a computer
screen. Such visual manifestation allows a user to easily
manipulate the entity in order to display the contents of the
resource on the screen or to electronically forward the entity
over the network.
In the illustrative embodiment of the invention, the reference to the network resource is preferably a "pointer",
such as a uniform resource locator (URL), that identifies the
network address of the resource, e.g., a Gopher browser or
a Web page. In addition to storing the pointer, the encapsulated entity also contains information for invoking appropriate network components needed to access the resource.
Communication among the network components is achieved
through novel application programming interfaces (APIs) to
facilitate integration with an underlying software component
architecture. Such a cooperating architecture allows the
encapsulated entity and network components to "transport"
the user to the network location of the remote resource.
5,929,852
5
6
Specifically, the encapsulated entity component is an
object of the network-oriented component system that is
preferably embodied as a customized framework having a
set of interconnected abstract classes. A CyberItem class
defines the encapsulated entity object which interacts with 5
other objects of the network system to remotely access
information from the referenced resource. Since these
objects are integral elements of the cooperating component
architecture, any type of encapsulated network entity may be
developed with consistent behaviors, i.e., these entities may 10
be manifested as visual objects that can be distributed and
manipulated iconically.
Advantageously, the inventive encapsulation technique
described herein provides a user with a simple means for
15
accessing information on computer networks.
BRIEF DESCRIPTION OF THE DRAWINGS
The above and further advantages of the invention may be
better understood by referring to the following description in
conjunction with the accompanying drawings in which:
FIG. 1 is a block diagram of a network system including
a collection of computer networks interconnected by client
and server computers;
FIG. 2 is a block diagram of a client computer, such as a
personal computer, on which the invention may advantageously operate;
FIG. 3 is a block diagram of the server computer of FIG.
1;
FIG. 4 is a highly schematized block diagram of a layered
component computing arrangement in accordance with the
invention;
FIG. 5 is a schematic illustration software of the interaction of a component, a software component layer and an
operating system of the computer of FIG. 2;
FIG. 6 is a schematic illustration of the interaction
between a component, a component layer and a window
manager in accordance with the invention;
FIG. 7 is a schematic diagram of an illustrative encapsulated network entity object in accordance with the invention;
FIG. 8 is a simplified class heirarchy diagram illustrating
a base class CyberItem, and its associated subclasses, used
to construct network component objects in accordance with
the invention;
FIG. 9 is a simplified class heirarchy diagram illustrating
a base class CyberStream, and its associated subclasses, in
accordance with the invention;
FIG. 10 is a simplified class hierarchy diagram illustrating
a base class CyberExtension, and its associated subclasses,
in accordance with the present invention;
FIGS. 11A-11D are highly schematized diagrams illustrating the interactions between the network component
objects, including the encapsulated network entity object of
FIG. 7; and
FIG. 12 is an illustrative flowchart of the sequence of
steps involved in invoking, and accessing, information from
a referenced network resource.
20
25
30
35
40
45
50
55
60
DETAILED DESCRIPTION OF ILLUSTRATIVE
EMBODIMENT
FIG. 1 is a block diagram of a network system 100
comprising a collection of computer networks 110 interconnected by client computers ("clients") 200, e.g., workstations or personal computers, and server computers
("servers") 300. The servers are typically computers having
65
hardware and software elements that provide resources or
services for use by the clients 200 to increase the efficiency
of their operations. It will be understood to those skilled in
the art that, in an alternate embodiment, the client and server
may exist on the same computer; however, for the illustrative embodiment described herein, the client and server are
separate computers.
Several types of computer networks 110, including local
area networks (LANs) and wide area networks (WANs),
may be employed in the system 100. ALAN is a limited area
network that typically consists of a transmission medium,
such as coaxial cable or twisted pair, while a WAN may be
a public or private telecommunications facility that interconnects computers widely dispersed. In the illustrative
embodiment, the network system 100 is the Internet system
of geographically distributed computer networks.
Computers coupled to the Internet typically communicate
by exchanging discrete packets of information according to
predefined networking protocols. Execution of these networking protocols allow users to interact and share information across the networks. As an illustration, in response to
a user's request for a particular service, the client 200 sends
an appropriate information packet to the server 300, which
performs the service and returns a result back to the client
200.
FIG. 2 illustrates a typical hardware configuration of a
client 200 comprising a central processing unit (CPU) 210
coupled between a memory 214 and input/output (I/O)
circuitry 218 by bidirectional buses 212 and 216. The
memory 214 typically comprises random access memory
(RAM) for temporary storage of information and read only
memory (ROM) for permanent storage of the computer's
configuration and basic operating commands, such as portions of an operating system (not shown). As described
further herein, the operating system controls the operations
of the CPU 210 and client computer 200.
The I/O circuitry 218, in turn, connects the computer to
computer networks, such as the Internet networks 250, via a
bidirectional bus 222 and to cursor/pointer control devices,
such as a keyboard 224 (via cable 226) and a mouse 230 (via
cable 228). The mouse 230 typically contains at least one
button 234 operated by a user of the computer. A conventional display monitor 232 having a display screen 235 is
also connected to I/O circuitry 218 via cable 238. A pointer
(cursor) 240 is displayed on windows 244 of the screen 235
and its position is controllable via the mouse 230 or the
keyboard 224, as is well-known. The I/O circuitry 218
receives information, such as control and data signals, from
the mouse 230 and keyboard 224, and provides that information to the CPU 210 for display on the screen 235 or, as
described further herein, for transfer over the Internet 250.
FIG. 3 illustrates a typical hardware configuration of a
server 300 of the network system 100. The server 300 has
many of the same units as employed in the client 200,
including a CPU 310, a memory 314 and I/O circuitry 318,
each of which are interconnected by bidirectional buses 312
and 316. Also, the I/O circuitry connects the computer to
computer networks 350 via a bidirectional bus 322. These
units are configured to perform functions similar to those
provided by their corresponding units in the computer 200.
In addition, the server typically includes a mass storage unit
320, such as a disk drive, connected to the I/O circuitry 318
via bidirectional bus 324.
It is to be understood that the I/O circuits within the
computers 200 and 300 contain the necessary hardware, e.g.,
buffers and adapters, needed to interface with the control
5,929,852
7
8
devices, the display monitor, the mass storage unit and the
component's contents and, where appropriate, present a user
interface for modifying those contents. Additionally, the
network. Moreover, the operating system includes the neceditor may include menus, controls and other user interface
essary software drivers to control, e.g., network adapters
elements. The network component layer 450 extends the
within the I/O circuits when performing I/O operations, such
as the transfer of data packets between the client 200 and 5 functionality of the underlying component architecture layer
430 by defining network-oriented components 480 that
server 300.
seamlessly integrate with these components 460 to provide
The computers are preferably personal computers of the
basic tools for efficiently accessing information from netMacintosh® series of computers sold by Apple Computer
work resources located on, e.g., servers coupled to the
Inc., although the invention may also be practiced in the
computer networks.
context of other types of computers, including the IBM® 10
FIG. 4 also illustrates the relationship of applications 490
series of computers sold by International Business Machines
to the elements of the document computing arrangement
Corp. These computers have resident thereon, and are con400. Although they reside in the same "user space" as the
trolled and coordinated by, operating system software, such
components 460 and network components 480, the applicaas the Apple® System 7®, IBM OS2®, or the Microsoft®
tions 490 do not interact with these elements and, thus,
Windows® operating systems.
15 interface directly to the operating system layer 420. Because
they are designed as monolithic, autonomous modules,
As noted, the present invention is based on a modular
applications (such as previous Internet browsers) often do
document computing arrangement as provided by an undernot even interact among themselves. In contrast, the comlying software component architecture, rather than the typiponents of the arrangement 400 are designed to work
cal application-based environment of prior computing systems. FIG. 4 is a highly schematized diagram of the 20 together and communicate via the common component
architecture layer 430 or, in the case of the network
hardware and software elements of a layered component
components, via the novel network component layer 450.
computing arrangement 400 that includes the novel
Specifically, the invention features the provision of the
network-oriented component system of the invention. At the
network-oriented component system which, when invoked,
lowest level there is the computer hardware, shown as layer
410. Interfacing with the hardware is a conventional oper- 25 causes actions to take place that enhance the ability of a user
to interact with the computer to create encapsulated entities
ating system layer 420 that includes a window manager, a
that contain references to network resources located on
graphic system, a file system and network-specific
computer networks, such as the Internet. The encapsulated
interfacing, such as a TCP/IP protocol stack and an Appleentities are manifested as visual objects to a user via a
talk protocol stack.
30 window environment, such as the graphical user interface
The software component architecture is preferably impleprovided by System 7 or Windows, that is preferably dismented as a component architecture layer 430. Although it
played on the screen 235 (FIG. 2) as a graphical display to
is shown as overlaying the operating system 420, the comfacilitate interactions between the user and the computer,
ponent architecture layer 430 is actually independent of the
such as the client 200. This behavior of the system is brought
operating system and, more precisely, resides side-by-side 35 about by the interaction of the network components with a
with the operating system. This relationship allows the
series of system software routines associated with the opercomponent architecture to exist on multiple platforms that
ating system 420. These system routines, in turn, interact
employ different operating systems.
with the component architecture layer 430 to create the
In accordance with the present invention, a novel
windows and graphical user interface elements, as described
network-oriented component layer 450 contains the under- 40 further herein.
lying technology for creating encapsulated entity compoThe window environment is generally part of the operatnents that contain references to network resources located on
ing system software 420 that includes a collection of utility
computer networks. As described further herein, communiprograms for controlling the operation of the computer 200.
cation among these components is achieved through novel
The operating system, in turn, interacts with the components
application programming interfaces (APIs) to ensure inte- 45 to provide higher level functionality, including a direct
gration with the underlying component architecture layer
interface with the user. A component makes use of operating
430. These novel APIs are preferably delivered in the form
system functions by issuing a series of task commands to the
of objects in a class hierarchy.
operating system via the network component layer 450 or, as
It should be noted that the network component layer 450
is typically the case, through the component architecture
may operate with any existing system-wide component 50 layer 430. The operating system 420 then performs the
architecture, such as the Object Linking and Embedding
requested task. For example, the component may request
(OLE) architecture developed by the Microsoft Corporation;
that a software driver of the operating system initiate transhowever, in the illustrative embodiment, the component
fer of a data packet over the networks 250 or that the
architecture is preferably OpenDoc, the vendor-neutral,
operating system display certain information on a window
open standard for compound documents developed by, 55 for presentation to the user.
among others, Apple Computer, Inc.
FIG. 5 is a schematic illustration of the interaction of a
Using tools such as viewing editors, the component
component 502, software component layer 506 and an
architecture layer 430 creates a compound document comoperating system 510 of a computer 500, which is similar to,
posed of data having different types and formats. Each
and has equivalent elements of, the client computer 200 of
differing data type and format is contained in a fundamental 60 FIG. 2. As noted, the network component layer 450 (FIG. 4)
is integrated with the component architecture layer 430 to
unit called a computing part or, more generally, a "compoprovide a cooperating architecture that allows any encapsunent" 460 comprised of a viewing editor along with the data
lated entity and network component to "transport" the user
content. An example of the computing component 460 may
to the network location of a remote resource; accordingly,
include a MacDraw component. The editor, on the other
hand, is analogous to an application program in a conven- 65 for purposes of the present discussion, the layers 430 and
450 may be treated as a single software component layer
tional computer. That is, the editor is a software component
506.
which provides the necessary functionality to display a
5,929,852
9
10
The component 502, component layer 506 and operating
represented by the data elements, and its behavior, which
system 510 interact to control and coordinate the operations
can be represented by its data manipulation functions. In this
way, objects can model concrete things like computers,
of the computer 500 and their interaction is illustrated
while also modeling abstract concepts like numbers or
schematically by arrows 504 and 508. In order to display
information on a screen display 535, the component 502 and 5 geometrical designs.
component layer 506 cooperate to generate and send display
Objects are defined by creating "classes" which are not
commands to a window manager 514 of the operating
objects themselves, but which act as templates that instruct
system 510. The window manager 514 stores information
the compiler how to construct an actual object. A class may,
directly (via arrow 516) into a screen buffer 520.
for example, specify the number and type of data variables
The window manager 514 is a system software routine 10 and the steps involved in the functions which manipulate the
that is generally responsible for managing windows 544 that
data. An object is actually created in the program by means
the user views during operation of the network component
of a special function called a "constructor" which uses the
system. That is, it is generally the task of the window
corresponding class definition and additional information,
manager to keep track of the location and size of the window
such as arguments provided during object creation, to conand window areas which must be drawn and redrawn in 15 struct the object. Likewise objects are destroyed by a special
connection with the network component system of the
function called a "destructor". Objects may be used by
present invention.
manipulating their data and invoking their functions.
Under control of various hardware and software in the
The principle benefits of OOP techniques arise out of
system, the contents of the screen buffer 520 are read out of
three basic principles: encapsulation, polymorphism and
the buffer and provided, as indicated schematically by arrow 20 inheritance. Specifically, objects can be designed to hide, or
522, to a display adapter 526. The display adapter contains
encapsulate, all, or a portion of, its internal data structure
hardware and software (sometimes in the form of firmware)
and internal functions. More specifically, during program
which converts the information in the screen buffer 520 to a
design, a program developer can define objects in which all
form which can be used to drive a display screen 535 of a
or some of the data variables and all or some of the related
monitor 532. The monitor 532 is connected to display 25 functions are considered "private" or for use only by the
adapter 526 by cable 528.
object itself. Other data or functions can be declared "public" or available for use by other programs. Access to the
Similarly, in order to transfer information as a packet over
private variables by other programs can be controlled by
the computer networks, the component 502 and component
defining public functions for an object which access the
layer 506 cooperate to generate and send network
commands, such as remote procedure calls, to a network- 30 object's private data. The public functions form a controlled
and consistent interface between the private data and the
specific interface 540 of the operating system 510. The
"outside" world. Any attempt to write program code which
network interface comprises system software routines, such
directly accesses the private variables causes the compiler to
as "stub" procedure software and protocol stacks, that are
generate an error during program compilation which error
generally responsible for formating the information into a
predetermined packet format according to the specific net- 35 stops the compilation process and prevents the program
from being run.
work protocol used, e.g., TCP/IP or Apple-talk protocol.
Specifically, the network interface 540 stores the packet
Polymorphism is a concept which allows objects and
directly (via arrow 556) into a network buffer 560. Under
functions that have the same overall format, but that work
control of the hardware and software in the system, the 40 with different data, to function differently in order to procontents of the network buffer 560 are provided, as indicated
duce consistent results. Inheritance, on the other hand,
allows program developers to easily reuse pre-existing proschematically by arrow 562, to a network adapter 566. The
grams and to avoid creating software from scratch. The
network adapter incorporates the software and hardware,
principle of inheritance allows a software developer to
i.e., electrical and mechanical interchange circuits and
characteristics, needed to interface with the particular com- 45 declare classes (and the objects which are later created from
puter networks 550. The adapter 566 is connected to the
them) as related. Specifically, classes may be designated as
subclasses of other base classes. A subclass "inherits" and
computer networks 550 by cable 568.
has access to all of the public functions of its base classes
In a preferred embodiment, the invention described herein
just as if these functions appeared in the subclass.
is implemented in an object-oriented programming (OOP)
language, such as C++, using System Object Model (SOM) 50 Alternatively, a subclass can override some or all of its
inherited functions or may modify some or all of its inherited
technology and OOP techniques.
functions merely by defining a new function with the same
The C++ and SOM languages are well-known and many
form (overriding or modification does not alter the function
articles and texts are available which describe the languages
in the base class, but merely modifies the use of the function
in detail. In addition, C++ and SOM compilers are commer55 in the subclass). The creation of a new subclass which has
cially available from several vendors. Accordingly, for reasome of the functionality (with selective modification) of
sons of brevity, the details of the C++ and SOM languages
another class allows software developers to easily customize
and the operations of their compilers will not be discussed
existing code to meet their particular needs.
further in detail herein.
In accordance with the present invention, the component
As will be understood by those skilled in the art, OOP
techniques involve the definition, creation, use and destruc- 60 502 and windows 544 are "objects" created by the component layer 506 and the window manager 514, respectively,
tion of "objects". These objects are software entities comthe latter of which may be an object-oriented program.
prising data elements and routines, or functions, which
Interaction between a component, component layer and a
manipulate the data elements. The data and related functions
window manager is illustrated in greater detail in FIG. 6.
are treated by the software as an entity that can be created,
In general, the component layer 606 interfaces with the
used and deleted as if it were a single item. Together, the data 65
window manager 614 by creating and manipulating objects.
and functions enable objects to model virtually any realThe window manager itself may be an object which is
world entity in terms of its characteristics, which can be
5,929,852
11
12
created when the operating system is started. Specifically,
services such as communications, pnntmg, file systems
the component layer creates window objects 630 that cause
support, graphics, etc. Commercial examples of applicationthe window manager to create associated windows on the
type frameworks include MacApp (Apple), Bedrock
display screen. This is shown schematically by an arrow
(Symantec), OWL (Borland), NeXT Step App Kit (NeXT)
608. In addition, the component layer 606 creates individual 5 and Smalltalk-80 MVC (ParcPlace).
graphic interface objects 650 that are stored in each window
While the framework approach utilizes all the principles
object 630, as shown schematically by arrows 612 and 652.
of encapsulation, polymorphism, and inheritance in the
Since many graphic interface objects may be created in
object layer, and is a substantial improvement over other
order to display many interface elements on the display
programming techniques, there are difficulties which arise.
screen, the window object 630 communicates with the 10 These difficulties are caused by the fact that it is easy for
window manager by means of a sequence of drawing
developers to reuse their own objects, but it is difficult for
commands issued from the window object to the window
the developers to use objects generated by other programs.
manager 614, as illustrated by arrow 632.
Further, frameworks generally consist of one or more object
As noted, the component layer 606 functions to embed
"layers" on top of a monolithic operating system and even
components within one another to form a compound docu- 15 with the flexibility of the object layer, it is still often
ment having mixed data types and formats. Many different
necessary to directly interact with the underlying system by
viewing editors may work together to display, or modify, the
means of awkward procedure calls.
data contents of the document. In order to direct keystrokes
In the same way that a framework provides the developer
and mouse events initiated by a user to the proper compowith prefab functionality for a document, a system
nents and editors, the component layer 606 includes an 20 framework, such as that included in the preferred
arbitrator 616 and a dispatcher 626.
embodiment, can provide a prefab functionality for system
level services which developers can modify or override to
The dispatcher is an object that communicates with the
create customized solutions, thereby avoiding the awkward
operating system 610 to identify the correct viewing editor
procedural calls necessary with the prior art frameworks. For
660, while the arbitrator is an object that informs the
dispatcher as to which editor "owns" the stream of key- 25 example, consider a customizable network interface framework which can provide the foundation for browsing and
strokes or mouse events. Specifically, the dispatcher 626
receives these "human-interface" events from the operating
accessing information over a computer network. A software
developer who needed these capabilities would ordinarily
system 610 (as shown schematically by arrow 628) and
have to write specific routines to provide them. To do this
delivers them to the correct viewing editor 660 via arrow
662. The viewing editor 660 then modifies or displays, either 30 with a framework, the developer only needs to supply the
characteristic and behavior of the finished output, while the
visually or acoustically, the contents of the data types.
framework provides the actual routines which perform the
Although OOP offers significant improvements over other
tasks.
programming concepts, software development still requires
significant outlays of time and effort, especially if no pre- 35
A preferred embodiment takes the concept of frameworks
and applies it throughout the entire system, including the
existing software is available for modification.
document, component, component layer and the operating
Consequently, a prior art approach has been to provide a
system. For the commercial or corporate developer, systems
developer with a set of predefined, interconnected classes
integrator, or OEM, this means all of the advantages that
which create a set of objects and additional miscellaneous
routines that are all directed to performing commonly- 40 have been illustrated for a framework, such as MacApp, can
be leveraged not only at the application level for things such
encountered tasks in a particular environment. Such preas text and graphical user interfaces, but also at the system
defined classes and libraries are typically called "framelevel for such services as printing, graphics, multi-media,
works" and essentially provide a pre-fabricated structure for
file systems and, as described herein, network-specific
a working document.
For example, a framework for a user interface might 45 operations.
Referring again to FIG. 6, the window object 630 and the
provide a set of predefined graphic interface objects which
graphic interface object 650 are elements of a graphical user
create windows, scroll bars, menus, etc. and provide the
interface of a network component system having a customisupport and "default" behavior for these interface objects.
zable framework for greatly enhancing the ability of a user
Since frameworks are based on object-oriented techniques,
the predefined classes can be used as base classes and the 50 to efficiently access information from a network resource on
computer networks by creating an encapsulated entity that
built-in default behavior can be inherited by developercontains a reference to that resource. The encapsulated entity
defined subclasses and either modified or overridden to
is preferably implemented as a network component of the
allow developers to extend the framework and create customized solutions in a particular area of expertise. This
system and stored as a visual object, e.g., an icon, for display
object-oriented approach provides a major advantage over 55 on a graphical user interface. Such visual display allows a
user to easily manipulate the entity component to display the
traditional programming since the programmer is not changcontents of the resource on a computer screen or to elecing the original program, but rather extending the capabilities of that original program. In addition, developers are not
tronically forward the entity over the networks.
blindly working through layers of code because the frameFurthermore, the reference to the network resource is a
work provides architectural guidance and modeling and, at 60 pointer that identifies the network address of the resource,
the same time, frees the developers to supply specific actions
e.g., a Gopher browser, a Web page or an E-mail message.
unique to the problem domain.
FIG. 7 is a schematic diagram of an illustrative encapsulated
network entity object 700 containing a pointer 710. In one
There are many kinds of frameworks available, depending
embodiment of the invention, the pointer may be a uniform
on the level of the system involved and the kind of problem
to be solved. The types of frameworks range from high-level 65 resource locator (URL) having a first portion 712 that
identifies the particular network resource and a second
frameworks that assist in developing a user interface, to
portion 714 that specifies the means for accessing that
lower-level frameworks that provide basic system software
5,929,852
13
14
resource. More specifically, the URL is a string of approxiwhich is an abstraction that serves as an API between a
component configured to display a particular data format
mately 50 characters that describes the protocol used to
and the method for obtaining the actual data. Specifically, a
address the target resource, the server on which the resource
CyberStream object contains the software commands necresides, the path to the resource and the resource filename.
It is to be understood, however, that other representations of 5 essary to create a "data stream" for transfering information
from one object to another. According to the invention, a
a "pointer" are included within the principles of the
GopherStream subclass 904 is derived from the Cyberinvention, e.g., a Post Office Protocol (POP) account and
Stream base class 902 and encapsulates a network object
message identification (ID).
that implements the Gopher protocol.
In addition to storing the pointer, the encapsulated entity
FIG. 10 is a simplified class hierarchy diagram 1000 of
also contains information 720 for invoking appropriate 10 the base class CyberExtension 1002 which represents addinetwork components needed to access the resource. Comtional behaviors provided to components of the underlying
munication among these network components is achieved
software component architecture. For example, CyberExthrough novel application programming interfaces (APIs).
tension objects add functionality to, and extend the APIs of,
These APIs are preferably delivered in the form of objects in
existing components so that they may communicate with the
15
a class hierarchy that is extensible so that developers can
novel network components, such as the encapsulated entity
create new components. From an implementation viewpoint,
objects. As a result, the CyberExtension base class 1002
the objects can be subclassed and can inherit from base
operates in connection with a Component base class 1006
classes to build customized components that allow users to
through their respective subclasses BaseExtension 1004 and
see different kinds of data using different kinds of protocols,
20 BaseComponent 1008.
or to create components that function differently from existCyberExtension objects are used by components that
ing components.
display the contents of CyberItem objects; this includes
In accordance with the invention, the customized framebrowser-like components, such as a Gopher browser or Web
work has a set of interconnected abstract classes for defining
browser, along with viewer-like components, such as lPEG,
network-oriented objects used to build the customized net- 25 MPEG or text viewers. The CyberExtension objects also
work components. These abstract classes include
keep track of the CyberItem objects which these components
CyberItem, CyberStream and CyberExtension and the
are responsible for displaying. In accordance with the
objects they define are used to build the novel network
invention, the class GopherBrowser 1010 may be used to
components. A description of these abstract classes is proconstruct a Gopher-like network browsing component and
vided in copending and commonly assigned U.S. patent 30 the class WebBrowser 1012 may be used to construct a
application titled Extensible, Replaceable Network CompoWeb-like network browsing component.
nent System, filed May 5, 1995, which application is incorFIGS. llA-llD are highly schematized diagrams illusporated by reference as though fully set forth herein.
trating the interactions between the novel network-oriented
Specifically, the CyberItem class defines the encapsulated
components, including the encapsulated (CyberItem) netentity object which interacts with objects defined by the 35 work entity component according to the invention. It is to be
other abstract classes of the network system to "transport"
understood that the components described herein are objects
the user to the network location, i.e., remotely access
constructed from the interconnected abstract classes. In
information from the referenced resource and display that
general, a user has "double clicked" on an icon of a graphical
information to the user at the computer. Since these objects
user interface 1100 displayed on a computer screen. The
are integral elements of the cooperating component 40 icon represents, e.g., a Gopher directory displayed in a
architecture, any type of encapsulated network entity may be
Gopher browser application. Initially, a GopherBrowser
developed with consistent behaviors, i.e., these entities may
component 1110 displays two icons representing CyberItem
be manifested as visual objects that can be distributed and
components, the icons labeled (GopherItem) Happy Face
manipulated iconically.
1104 and (GopherItem) Home Page 1106. These latter
FIG. 8 illustrates a simplified class hierarchy diagram 800 45 components represent the contents of a Gopher directory
of the base class CyberItem 802 used to construct the
labeled (GopherItem) Apple 1114.
encapsulated network entity component object 602. In
In FIG. llA, the left side of the diagram illustrates a
accordance with the illustrative embodiment, subclasses of
GopherBrowser component 1110 that is displayed on the
the CyberItem base class are used to construct various
computer screen, i.e., the right side of the diagram. The
network component objects configured to provide such 50 GopherBrowser component has a CyberExtension composervices for the novel network-oriented component system.
nent 1112 which keeps track of the GopherItem components.
For example, the subclass GopherItem 804 is derived from
When the user double clicks on the Home Page GopherItem
the CyberItem class 802 and encapsulates a network entity
icon 1106, the GopherBrowser component 1110 receives this
component object representing a "thing in Gopher space",
event and issues a call to an "Open" method of a Home Page
such as a Gopher directory.
55 GopherItem component; this call instructs the GopherItem
Since each of the classes used to construct these network
component 1106 to open itself.
component objects are subclasses of the CyberItem base
Specifically, and referring to FIG. lIB, the GopherItem
class, each class inherits the functional operators and methcomponent 1106 creates a component of the appropriate type
ods that are available from that base class. Accordingly,
to display itself. For this example, the GopherItem prefermethods associated with the CyberItem base class for, e.g., 60 ably creates a WebBrowser component 1120. Once created,
instructing an object to open itself, are assumed by the
the WebBrowser component further creates a CyberExtensubclasses to allow the network components to display
sion component 1122 for storing the Home Page GopherCyberItem objects in a consistent manner.
Item component (now shown at 1124). In accordance with
In some instances, a CyberItem object may need to spawn
the invention, the Home Page GopherItem component is a
a CyberStream object in order to obtain the actual data for 65 network entity containing a pointer that points to the netthe object it represents. FIG. 9 illustrates a simplified class
work address of a Gopher server storing the appropriate Web
hierarchy diagram 900 of the base class CyberStream 902
page.
5,929,852
15
In FIG. llC, the CyberExtension component 1122 then
notifies the WebBrowser component 1120 that it has been
assigned a GopherItem component 1124 to display. The
WebBrowser component 1120 calls a method CreateCyberStream of the GopherItem to create a GopherStream com- 5
ponent 1130 for downloading the appropriate data.
Thereafter, the WebBrowser component 1120 begins asychronously downloading an HTML document from the
appropriate Gopher server (not shown).
Control of the execution of this process then returns to the 10
GopherItem component 1124 in FIG. lID. This component,
in turn, issues a call to an Open method of the WebBrowser
component 1120, which causes the downloaded HTML
document to appear on the screen (now shown at 1140). For
a further understanding of the invention, FIG. 12 provides an 15
illustrative flowchart 1200 of the sequence of steps involved
in invoking, and accessing, information from a referenced
network resource, as described above.
In summary, the network-oriented component system
provides a customizable framework that enables a user to 20
create an encapsulated entity containing a reference to a
network resource on a computer network. Advantageously,
the inventive encapsulation technique allows a user to
simply manipulate visual objects when accessing information on the network. Instead of having to type the destination 25
address of a resource, the user can merely "drag and drop"
the icon associated with entity anywhere on the graphical
user interface. When the user "double clicks" on the icon,
the entity opens up in a window and displays the contents of
the resource at that network location. Since the address is 30
encapsulated within the network reference entity, the user
does not have to labor with typing of the cumbersome
character string.
While there has been shown and described an illustrative 35
embodiment for implementing an extensible and replaceable
network component system, it is to be understood that
various other adaptations and modifications may be made
within the spirit and scope of the invention. For example,
additional system software routines may be used when 40
implementing the invention in various applications. These
additional system routines include dynamic link libraries
(DLL), which are program files containing collections of
window environment and networking functions designed to
perform specific classes of operations. These functions are 45
invoked as needed by the software component layer to
perform the desired operations. Specifically, DLLs, which
are generally well-known, may be used to interact with the
component layer and window manager to provide networkspecific components and functions.
50
The foregoing description has been directed to specific
embodiments of this invention. It will be apparent, however,
that other variations and modifications may be made to the
described embodiments, with the attainment of some or all
of their advantages. Therefore, it is the object of the 55
appended claims to cover all such variations and modifications as come within the true spirit and scope of the
invention.
What is claimed is:
1. A method of efficiently accessing information from a 60
network resource located on a computer network for display
on a computer coupled to the network, the network resource
having one or more associated data types, each data type
being accessible by a corresponding object-oriented software component, the method comprising the steps of:
65
defining at least one network component that integrates
the object-oriented software components needed to
16
access the one or more data types associated with the
network resource;
creating an encapsulated entity component containing a
reference to a location of the network resource on the
computer network, the encapsulated entity component
also identifying the at least one network component
that was defined for the network resource;
storing the encapsulated entity component as a visual
object on the computer;
in response to manipulation of the visual object with a
pointing device, displaying the contents of the network
resource on a screen of the computer by invoking the
object-oriented software components integrated by the
at least one identified network component.
2. The method of claim 1 wherein the step of displaying
comprises the step of invoking a first network component for
displaying the contents of the referenced network resource
on the screen, the first network component comprising a
browsing component.
3. The method of claim 2 wherein the step of displaying
further comprises the step of invoking a second network
component for transfering the contents of the referenced
network resource to the first network component, the second
network component comprising a data stream component.
4. The method of claim 3 further comprising the step of
creating objects for communication among the encapsulated
entity and network components through application programming interfaces.
5. The method of claim 4 wherein the step of creating
comprises the step of constructing the encapsulated entity
component from an Item object defined by an Item object
class.
6. The method of claim 5 wherein the step of creating
comprises the step of spawning a Stream object from the
Item object, the Stream object representing the data stream.
7. Apparatus for efficiently accessing information from a
network resource located on a computer network for display
on a computer coupled to the network, the network resource
having one or more associated data types, each data type
being accessible by a corresponding object-oriented software component, the apparatus comprising:
an object-oriented software component architecture layer
configured to define at least one network component
that integrates the object-oriented software components
needed to access the one or more data types associated
with the network resource; and
an encapsulated network entity component cooperating
with the component architecture layer and containing a
reference to the network resource and an identifier for
the at least one network component that was defined for
the network resource wherein, the encapsulated network entity component is manifested as visual object
on a display screen of the computer and further
wherein, the encapsulated network entity component is
adapted for manipulation by a pointing device of the
computer to display contents of the network resource
on the screen by invoking the object-oriented software
components integrated by the at least one identified
network component.
8. The apparatus of claim 7 further comprising:
an operating system interfacing with the component architecture layer to control the operations of the computer;
and
a network component layer coupled to the component
architecture layer to form a cooperating component
computing arrangement.
5,929,852
17
9. The apparatus of claim 8 wherein the cooperating
component computing arrangement generates the encapsulated network entity.
10. The apparatus of claim 9 wherein the reference to the
network resource is a pointer that identifies the address of
the network resource on a computer network.
11. The apparatus of claim 10 wherein the pointer is a
uniform resource locator.
12. The apparatus of claim 11 wherein the uniform
resource locator has a first portion that identifies the network
resource and a second portion that specifies a means for
accessing that resource.
13. The apparatus of claim 11 wherein the uniform
resource locator is a character string that describes a protocol used to address the network resource, a server on which
the resource resides, a path to the resource and a resource
filename.
14. The apparatus of claim 10 wherein the pointer is a post
office protocol account.
15. Apparatus for efficiently accessing information from a
network resource located on a computer network for display
on a computer coupled to the network, the network resource
having one or more associated data types, each data type
being accessible by a corresponding object-oriented software component, the apparatus comprising:
means for defining at least one network component that
integrates the object-oriented software components
needed to access the one or more data types associated
with the network resource;
means for creating an encapsulated entity component
containing a reference to a location of the network
resource on the computer network, the encapsulated
entity component also identifying the at least one
network component that was defined for the network
resource;
18
means for storing the encapsulated entity component as a
visual object on the computer; and
5
10
15
20
25
30
means, responsive to manipulation of the visual object
with a pointing device, for displaying contents of the
network resource on a screen of the computer by
invoking the object-oriented software components integrated by the at least one identified network component.
16. The apparatus of claim 15 wherein the means for
displaying comprises means for invoking a first network
component for displaying the contents of the referenced
network resource on the screen, the first network component
comprising a browsing component.
17. The apparatus of claim 16 wherein the means for
displaying further comprises means for invoking a second
network component for transfering the contents of the
referenced network resource to the first network component,
the second network component comprising a data stream
component.
18. The apparatus of claim 17 further comprising means
for creating objects for communication among the encapsulated entity and network components through application
programming interfaces.
19. The apparatus of claim 18 wherein the means for
creating comprises means for constructing the encapsulated
entity component from an Item objected defined by an Item
object class.
20. The apparatus of claim 19 wherein the means for
creating comprises means for spawning a Stream object
from the Item object, the Stream object representing the data
stream.
* * * * *
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?