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 D
111111111111111111111111111111111111111111111111111111111111111111111111111
USOORE39486E
United States
(12) Reissued Patent
(19)
(10)
Cleron et al.
(45)
(54)
EXTENSIBLE, REPLACEABLE NETWORK
COMPONENT SYSTEM
(75)
Inventors: Michael A. Cleron, Menlo Park, CA
(US); Stephen Fisher, Menlo Park, CA
(US); Timo Bruck, Mountain View, CA
(US)
Patent Number:
US RE39,486 E
Date of Reissued Patent:
Feb. 6,2007
(73)
Assignee: Apple Computer, Inc., Cupertino, CA
(US)
(21)
Appl. No.: 10/408,789
(22)
Filed:
Apr. 3, 2003
(Under 37 CFR 1.47)
Related
Reissue of:
(64) Patent No.:
Issued:
Appl. No.:
Filed:
(51)
(52)
(58)
U.S. Patent Documents
6,212,575
Apr. 3, 2001
08/435,377
May 5,1995
Int. Cl.
G06F 9/00
G06F 9/46
References Cited
U.S. PATENT DOCUMENTS
5,297,249
5,339,430
5,481,666
5,530,852
5,537,526
5,548,722
5,581,686
5,584,035
A
A
A
A
A
A
A
A
*
*
*
*
*
*
*
*
3/1994
8/1994
1/1996
6/1996
7/1996
8/1996
12/1996
12/1996
Bernstein et al.
Lundin et al.
Nguyen et 31.
Meske, Jr. et al.
Anderson
Jalalian
Koppolu et 31.
Duggan et 31.
5/1997 Dickinson
9/1997 Curbow
FOREIGN PATENT DOCUMENTS
EP
GB
°
631 456 A2
2 242 293
*
*
12/1994
1/1990
OTHER PUBLICATIONS
Reinhardt, Andy, "The Network with Smarts" BYTE, Oct.
1994, pp. 51-64.*
Lippman, Stanley B., "C++ Primer" 2nd edition, AddisonWesley, 1991, pp. 394-397. *
Potel et al; The Architecture of the Taligent System; Dr.
Dobbs Journal on CD-ROM, SP 94. *
Rush, Jeff; OpenDoc; Dr. Dobb's Journal on CD-ROM, SP
94.*
Piersol, Kurt; A Close-Up of OpenDoc; AIXpert, Jun.
1994.*
Primary Examiner-William Thomson
(74) Attorney, Agent, or Firm-Fenwick & West LLP
(57)
719/328; 719/329; 709/201;
709/202; 709/203
Field of Classification Search
719/328-329;
709/200-203
See application file for complete search history.
(56)
*
*
(Continued)
(2006.01)
(2006.01)
U.S. Cl.
5,634,129 A
5,669,005 A
ABSTRACT
An extensible and replaceable network-oriented component
system provides a platform for developing networking navigation components that operate on a variety of hardware and
software computer systems. These navigation components
include key integrating components along with components
configured to deliver conventional services directed to computer networks, such as Gopher-specific and Web-specific
components. Communication among these components is
achieved through novel application programming interfaces
(APIs) to facilitate integration with an underlying software
component architecture. Such a high-modular cooperating
layered-arrangement between the network component system and the component architecture allows any existing
component to be replaced, and allows new components to be
added, without affecting operation of the network component system.
20 Claims, 8 Drawing Sheets
r
OPERATING SYSTEM !I2(l
HARDWARE lli!
400
US RE39,486 E
Page 2
OTHER PUBLICATIONS
Schmidt et al; "An object-oriented framework for developing network server daemons", C+++ World Conference, pp.
1-15, Oct. 1993.*
"Leveraging object-oriented frameworks", Taligent white
paper, 1993.*
Andert, Glerk; "Object-Frameworks in the Taligent OS",
IEEE electronic Library, pp. 112-121, 1994.*
Helm et aI, "Integrating infonnation retrieval and domain
specific approaches for browsing and retrieval in object-oriented class libraries", ACM Digital Library, 1991.*
Monnard et al; An object-oriented scripting environment for
the WEBSs electronic book system' ACM Digital Library,
1992.*
NOIT, Henry. "Cyberdog could be a breakthrough if it's Kept
on a leash", MacWeek, Nov. 14, 1994, v8, n45, p. 50.*
Hess, Robert, "Cyberdog to fetch Internet Resources for
Open Doc apps." MacWeek, Nov. 7, 1994, v8, n44, p. 44.*
Harkey et aI, "Object component suites", Datamation, Feb.
15, 1995, v41, n3, p. 44.*
Prosise, Jeff, "Much ado about object", PC Magazine, Feb.
7, 1995, v14, n3, p. 257.*
Bonner, Paul, "Component software: putting the pieces
together", Computer Shopper, Sep. 1994, v14, n9, p. 532.*
Gruman, Galen, "OpenDoc & OLE 2.0", MacWorld, Nov.
'94, vll, nil, p. 96.*
Spiegel, Leo "OLE promises barrier-free computing", InfoWorld, Mar. 6, '95, v17, nlO, p. 53. *
Develop, The Apple Technical Journal, "Building an OpenDoc Part Handler", Issue 19, Sep. 1994, pp. 6-16.*
S.H. Goldberg and J.A. Mounton, Jr. A Base for Portable
Communications Software, IBM Systems Journal, vol. 30
(1991) No.3, Armonk, NY, pp. 259-279.*
E.C. Arnold and D.W. Brown, Object Oriented Software
Technologies Applied to Switching System Architecture and
Software Development Processes, AT&T Bell Laboratories,
Naperville, IL, vol. II, pp. 97-106.*
* cited by examiner
u.s. Patent
Feb. 6,2007
US RE39,486 E
Sheet 1 of 8
a:
w
>
a:
0
~
'r""
"
0
0
C\I
'-:z
w
W
('.J
.,..
a
(f)
-
8
C')
~
w
:::;
()
:::::i
'---
0
0
0
;
I... r--
a:
w
>
a:
w
en
0
0
N
a:
w
>.
a:
w
en
-..
;
IZ
8
w
:J
~
(')
0
0
C\I
Co)
,...
~
c.!l.
LL
a:
w
>
a:
('
w
(f)
8
M
•
a:
w
>
a:
w
CJ)
.
•
!Z'
w
~ ::i
~
-
a
a
0
--
('I')
Co)
r
0
0
r'.
0
0
N
r-
~
Z
W
::i
-Co)
0
.,..
.,..
u.s.
Patent
Feb. 6,2007
.
·.
@
•
I
Kl
I
•
~
~
• .1·
• ..T
·- .
~ 8li ~
0
1
C")
,
....
e
C\J
~
~
~
I
~
CJi
C\I
r--
CD
C\I
N
(J
~
~
jo:..:
~
10=
~
~
a:
.....
C\I
L....
r-
N
l-.
t:::
Wa:
r?
-r- ~r:
0"- ~~
p.:
0
T"""
C\I
a:~
i
~
·°
,.... .Lt ~
---
~~
:!W )
8z
::::>
0
~
:::>
a:
n..
('
0
0
:::;
~
N
r>
-(
LJ
920
918
916
FIG. 9
BASEE XTENSION
l
CVBEREXTENSION
e
=-
....
~
0'1
QO
~
~
W
\C
d
rJl
QO
0
QO
.....
('D
('D
rFJ
......:J
N
o
o
~Cl\
?'
('D
""f'j
~
=
~
~
~
~
•
7J).
•
US RE39,486 E
1
2
EXTENSIBLE, REPLACEABLE NETWORK
COMPONENT SYSTEM
The Telnet service allows users to log onto computers
coupled to the networks, while the network protocol provides a bulletin-board service to its subscribers.
Furthennore, the various data fonnats of the infonnation
available on the Internet include lPEG images, MPEG
movies and fl-Iaw sound files.
Coincided with the design of these services has been the
development of applications for implementing the services
on the client/server architecture. Accordingly, applications
are available for users to obtain files from computers connected to the Internet using the FTP protocol. Similarly,
individual applications allow users to log into remote computers (as though they were logging in from tenninals
attached to those computers) using the Telnet protocol and,
further, to view lPEG images and MPEG movies. As a
result, there exists a proliferation of applications directed to
user activity on the Internet.
A problem with this vast collection of application-specific
protocols is that these applications are generally
unorganized, thus requiring users to plod through them in
order to satisfyingly, and profitably, utilize the Internet. Such
lack of uniformity is time consuming and disorienting to
users that want to access particular types of infonnation but
are forced to use unfamiliar applications. Because of the
enonnous amount of different types of information available
on the Internet and the variety of applications needed to
access those infonnation types, the experience of using the
Internet may be burdensome to these users.
An alternative to the assortment of open applications for
accessing infonnation on the Internet is a "closed" application system, such as Prodigy, CompuServe or America
Online. Each of these systems provide a fill range of
well-organized services to their subscribers; however, they
also impose restrictions on the services developers can offer
for their systems. Such constraint of "new" service development may be an unreasonable alternative for many users.
Two fashionable services for accessing information over
the Internet are Gopher and the World-Wide Web ("Web").
Gopher consists of a series of Internet servers that provide
a "list-oriented" interface to information available on the
networks, the information is displayed as menu items in a
hierarchical manner. Included in the hierarchy of menus are
documents, which can be displayed or saved, and searchable
indexes, which allow users to type keywords and perfonn
searches.
Some of the menu items displayed by Gopher are links to
information available on other servers located on the networks. In this case, the user is presented with a list of
available information documents that can be opened. The
opened documents may display additional lists or they may
contain various data-types, such as pictures or text,
occasionally, the opened documents may "transport" the
user to another computer on the Internet.
The other popular infonnation services on the Internet is
the Web. Instead of providing a user with a hierarchical
list-oriented view of information, the Web provides the user
with a "linked-hypertext" view. Metaphorically, the Web
perceives the Internet as a vast book of pages, each of which
may contain pictures, text, sonnd, movies or various other
types of data in the fonn of documents. Web documents are
written in HyperText Markup Language (HTML) and Web
servers transfer HTML documents to each other through the
HyperText Transfer Protocol (HTTP).
The Web service is essentially a means for naming
sources of information on the Internet. Anned with such a
general naming convention that spans the entire network
Matter enclosed in heavy brackets [ ] appears in the
original patent but forms no part of this reissue specification; matter printed in italics indicates the additions
made by reissue.
CROSS REFERENCE TO RELATED
APPLICATIONS
This invention is related to the following copending U.S.
Patent Applications:
U.S. patent application Ser. No. 08/435,374, titled
REPLACEABLE AND EXTENSIBLE NOTEBOOK
COMPONENT OF A NETWORK COMPONENT SYSTEM.
U.S. patent application Ser. No. 08/435,862, titled
REPLACEABLE AND EXTENSIBLE LOG COMPONENT OF A NETWORK COMPONENT SYSTEM;
U.S. patent application Ser. No. 08/435,213, titled
REPLACEABLE AND EXTENSIBLE CONNECTION
DIALOG COMPONENT OF A NETWORK COMPONENT SYSTEM;
U.S. patent application Ser. No. 08/435,671, titled
EMBEDDING INTERNET BROWSER/BUTTONS
WITHIN COMPONENTS OF A NETWORK COMPONENT SYSTEM; and
U. S. patent application Ser. No. 08/435,880, tilted
ENCAPSULATED NETWORK ENTITY REFERENCE
OF A NETWORK COMPONENT SYSTEM, each of which
was filed on May 5,1995 and assigned to the assignee of the
present invention.
5
10
15
20
25
30
FIELD OF THE INVENTION
This invention relates generally to computer networks
and, more particularly, to an architecture for building
Internet-specific services.
35
BACKGROUND OF THE INVENTION
40
The Internet is a system of geographically distributed
computer networks interconnected by computers executing
networking protocols that allow users to interact and share
information over the networks. Because of such wide-spread
information sharing, the Internet has generally evolved into
an "open" system for which developers can design software
for performing specialized operations, or services, essentially without restriction. These services are typically implemented in accordance with a client/server architecture,
wherein the clients, e.g., personal computers or
workstations, are responsible for interacting with the users
and the servers are computers configured to perfonn the
services as directed by the clients.
Not surprisingly, each of the services available over the
Internet is generally defined by its own networking protocol.
A protocol is a set of rules governing the fonnat and
meaning of messages or "packets" exchanged over the
networks. By implementing services in accordance with the
protocols, computers cooperate to perform various
operations, or similar operations in various ways, for users
wishing to "interact" with the networks. The services typically range from browsing or searching the informationhaving a particular data fonnat using a particular protocol to
actually acquiring infonnation of a different format in accordance with a different protocol.
For example, the file transfer protocol (FTP) service
facilitates the transfer and sharing of files across the Internet.
45
50
55
60
65
US RE39,486 E
3
4
system, developers are able to build information servers that
potentially any user can access. Accordingly, Gopher
servers, HTTP servers, FTP servers, and E-mail servers have
been developed for the Web. Moreover, the naming convention enables users to identifY resources (such as directories
and documents) on any of these servers connected to the
Internet and allow access to those resources.
As an example, a user "traverses" the Web by following
hot items of a page displayed on a graphical Web browser.
These hot items are hypertext links whose presence are
indicated on the page by visual cues, e.g., underlined words,
icons or buttons. When a user follows a link (usually by
clicking on the cue with a mouse), the browser displays the
target pointed to by the link which, in some cases, may be
another HTML document.
The Gopher and Web information services represent
entirely different approaches to interacting with infonnation
on the Internet. One follows a list-approach to infonnation
that "looks" like a telephone directory service, while the
other assumes a page-approach analogous to a tabloid newspaper. However, both of these approaches include applications for enabling users to browse infonnation available on
Internet servers. Additionally, each of these applications has
a unique way of viewing and accessing the information on
the servers.
Netscape Navigator™ ("Netscape")is an example of a
monolithic Web browser application that is configured to
interact with many of the previously-described protocols,
including HTFF, Gopher and FTP. When instructed to
invoke an application that uses one of these protocols,
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 perfonn 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 fonnats it does not "understand". Execution ofthese
functions on a computer requires interruption of processing
and context switching (i.e., saving of state) prior to invoking
the appropriate applications. Thus, if a user operating within
the Netscape application "opens" an MPEG movie, that
browsing application number 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 text, a drawing application edits drawings and a
database application interacts with infonnation 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 infonnation
to a user through a window of a graphical user interface by
drawing images, graphics or text within the window region.
The user, in tum, 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 offonnat, 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 context for manipulation by the
editors. The compound-nature ofthe 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.
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 fonnats needed to access that
information.
Still another object of the invention is to provide a
document-based computing system that enables users to
develop modules for services directed to infonnation available on computer networks.
Still yet another object of the invention is to provide a
platform that allows third-party developers to extend a
layered network component system by building new components that seamlessly interact with the system components.
10
15
20
25
30
35
40
45
50
55
60
65
SUMMARY OF THE INVENTION
Briefly, the invention comprises an extensible and
replaceable network-oriented component system that pro-
US RE39,486 E
5
6
vides a platform for developing network navigation components that operate on a variety of hardware and software
computer system. These navigation components include key
integrating components along with components, such as
Gopher-specific and Web-specific components, configured
to deliver conventional services directed to computer networks. Communication among these components is
achieved through novel application programming interfaces
(APIs) to facilitate integration with an underlying software
component architecture. Such a highly-modular cooperating
layered-arrangement between the network component system and the component architecture allows any existing
component to be replaced, and allows new components to be
added, without affecting operation of the novel network
component system.
According to one aspect of the present invention, the
novel system provides a network navigating service for
browsing and accessing information available on the computer networks. The information may include various data
types available from a variety of sources coupled to the
computer networks. Upon accessing the desired
information, component viewing editors are provided to
modifY or display, either visually or acoustically, the contents of the data types regardless of the source of the
underlying data. Additional components and component
viewing editors may be created in counection with the
underlying software component architecture to allow integration of different data types and protocols needed to
interact with information on the Internet.
In accordance with another aspect of the invention, the
component system is preferably embodied as a customized
framework having a set of interconnected abstract classes
for defining network-oriented objects. These abstract classes
include CyberItem, CyberStream and CyberExtension, and
the objects they define are used to build the novel navigation
components. Interactions among these latter components
and existing components of the underlying software architecture provide the basis for the extensibility and replaceability features of the network component system.
Specifically, CyberItem is an object abstraction which
represents a "resource on a computer-network", but which
may be further expanded to include resources available at
any accessible location. CyberStream is an object abstraction representing a method for downloading information
from a remote location on the computer network, while
CyberExtension represents additional behaviors provided to
the existing components for integration with the network
component system.
The novel network system captures the essence of a
"component-based" approach to browsing and retrieving
network-oriented information as opposed to the monolithic
application-based approach of prior browsing systems. Such
a component-based system has a number of advantages.
First, if a user does not like the way a particular component
operates, that component can be replaced with a different
component provided by another developer. In contrast, if a
user does not like the way a monolithic application handles
certain protocols, the only resource is to use another service
because the user cannot modify the application to perform
the protocol function in a different manner. Clearly, the
replaceability feature of the novel network component system provides a flexible alternative to the user.
Second, the use of components is substantially less disruptive than using helper applications in situations where a
monolithic application confronts differing data types and
formats. Instead of "switching" application layers, the novel
network system merely invokes the appropriate component
and component viewing editor configured to operate with
the data type and format. Such "seamless" integration
among components is a significant feature of the modular
cooperating architecture described herein.
A third advantage of the novel network system is directed
to the cooperating relationship between the system and the
underlying software computer architecture. Specifically, the
novel network components are based on the component
architecture technology to therefore ensure cooperation
between all components in an integrated manner. The software component architecture is configured to operate on a
plurality of computers, and is preferably implemented as a
software layer adjoining the operating system.
10
15
BRIEF DESCRIPTION OF THE DRAWINGS
20
25
30
35
40
45
50
55
60
65
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 component, such as
a personal computer, on which the invention may advantageously operate;
FIG. 3 is a block diagram ofa 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 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 simplified class hierarchy diagram illustrating
a base class CyberItem, and its associated subclasses, used
to construct network component objects in accordance with
the invention;
FIG. 8 is a simplified class hierarchy diagram illustrating
a base class CyberStream, and its associated subclasses, in
accordance with the invention; and
FIG. 9 is a simplified class hierarchy diagram illustrating
a base class CyberExtension, and its associated subclasses,
in accordance with the present invention.
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
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. A LAN is a limited area
network that typically consists of a transmission medium,
US RE39,486 E
7
8
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 Intemet 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 computer networks
250, via a bidirectional bus 222 and to cursor/pointer control
devices, such as 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. Typically, 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
devices, the display monitor, the mass storage unit and the
networks. Moreover, the operating system includes the necessary software drivers to control, e.g., network adapters
within the I/O circuits when performing I/O operations, such
as the transfer of data packets between the client 200 and
server 300.
The computers are preferably personal computers of the
Macintosh® series of computers sold by Apple Computer
Inc., although the invention may also be practiced in the
context of other types of computers, including the IBM®G)
series of computers sold by International Business Machines
Corp. These computers have resident thereon, and are controlled and coordinated by, operating system software, such
as the Apple® System 7®, IBM OS2®, or the Microsoft®
Windows® operating systems.
As noted, the present invention is based on a modular
document computing arrangement as provided by an underlying software components architecture, rather than the
typical application-based environment of prior computing
systems. FIG. 4 is a highly schematized diagram of the
hardware and software elements of a layered component
computing arrangement 400 that includes the novel
network-oriented component system of the invention. At the
lowest level there is the computer hardware, shown as layer
410. Interfacing with the hardware is a conventional operating system layer 420 that includes a window manager, a
graphic system, a file system and network-specific
interfacing, such as a TCP/IP protocol stack and an Appletalk protocol stack.
The software component architecture is preferably implemented as a component architecture layer 430. Although it
is shown as overlaying the operating system 420, the component architecture layer 430 is actually independent of the
operating system and, more precisely, resides side-by-side
with the operating system. This relationship allows the
component architecture to exist on multiple platforms that
employ different operating systems.
In accordance with the present invention, a novel network:oriented component layer 450 contains the underlying
technology for implementing the extensible and replaceable
network component system that delivers services and facilitates development of navigation components directed to
computer networks, such as the Internet. As described
further herein, this technology includes novel application
programming interfaces (APIs) that facilitate communication among components to ensure integration with the
underlying component architecture layer 430. These novel
APIs are preferably delivered in the form of objects in a
class hierarchy.
It should be noted that the network component layer 450
may operate with any existing system-wide component
architecture, such as the Object Linking and Embedding
(OLE) architecture developed by the Microsoft Corporation;
however, in the illustrative embodiment, the component
architecture is preferably OpenDoc, the vendor-neutral,
open standard for compound documents developed by,
among others, Apple Computer, Inc.
Using tools such as viewing editors, the component
architecture layer 430 creates a compound document composed of data having different types and formats. Each
differing data type and format is contained in a fundamental
unit called a computing part or, more generally, a "component" 460 comprised of a viewing editor along with the data
content. An example of the computing component 460 may
include a MacDraw component. The editor, on the other
hand, is analogous to an application program in a conventional computer. That is, the editor is a software component
which provides the necessary functionality to display a
component's contents and, where appropriate, present a user
interface for modifYing those contents. Additionally, the
editor may include menus, controls and other user interface
elements.
According to the invention, the network component layer
450 extends the functionality of the underlying component
architecture layer 430 by defining network-oriented components 480. Included among these components are key inte-
10
15
20
25
30
35
40
45
50
55
60
65
US RE39,486 E
9
10
grating components (such as notebook, log and connection
operating system 510 of a computer 500, which is similar to,
dialog components) along with components configured to
and has equivalent elements of, the client computer 200 of
deliver conventional services directed to computer
FIG. 2. As noted, the network component layer 450 (FIG. 4)
networks, such as Gopher-specific and Web-specific comis integrated with the computer architecture layer 430 to
ponents. Moreover, the components may include FTPprovide a cooperating architecture that allows any compospecific components for transferring files across the netnent to be replaced or extended, and allows new components
works. Telnet-specific components for remotely logging
to be added, without affecting operation of the network
onto other computers, and JPEG-specific and MPEGcomponent system, accordingly, for purposes of the present
specific components for viewing image and movie data
discussion, the layers 430 and 450 may be treated as a single
types and formats.
10 software component layer 506.
A feature of the invention is the ability to easily extend,
The component 502, component layer 506 and operating
or replace, any of the components of the layered computing
system 510 interact to control and coordinate the operations
arrangement 400 with a different component to provide a
of the computer 500 and their interaction is illustrated
user with customized network-related services. As described
schematically by arrows 504 and 508. In order to display
herein, this feature is made possible by the cooperating
relationship between the network component layer 450 and 15 information on a screen display 535, the component 502 and
component layer 506 cooperate to generate and send display
its underlying component architecture layer 430. The intecommands to a window manager 514 of the operating
grating components communicate and interact with these
various components of the system in a "seamlessly intesystem 510. The window manager 514 stores information
grated" manner to provide basic tools for navigating the
directly (via arrow 516) into a screen buffer 520.
20
Internet computer networks.
The window manager 514 is a system software routine
FIG. 4 also illustrates the relationship of applications 490
that is generally responsible for managing windows 544 that
to the elements of the layered computing arrangement 400.
the user views during operation of the network component
Although they reside in the same "user space" as the
system. That is, it is generally the task of the window
components 460 and network components 480, the applicamanager to keep track ofthe location and size of the window
tions 490 do not interact with these elements and, thus, 25 and window areas which must be drawn and redrawn in
interface directly to the operating system layer 420. Because
connection with the network component system of the
they are designed as monolithic, autonomous modules,
present invention.
applications (such as previous Internet browsers) often do
Under control of various hardware and software in the
not even interact among themselves. In contrast, the components of the arrangement 400 are designed to work 30 system, the contents of the screen buffer 520 are read out of
the buffer and provided, as indicated schematically by arrow
together via the common component architecture layer 430
522, to a display adapter 526. The display adapter contains
or, in the case of the network components, via the novel
hardware and software (sometimes in the form of firmware)
network component layer 450.
which converts the information in the screen buffer 520 to a
Specifically, the invention features the provision of the
35 form which can be used to drive a display screen 535 of a
extensible and replaceable network-oriented component sysmonitor 532. The monitor 532 is connected to display
tem which, when invoked, causes actions to take place that
adapter 526 by cable 528.
enhance the ability of a user to interact with the computer to
Similarly, in order to transfer information as a packet over
search for, and obtain, information available over computer
the computer networks, the component 502 and component
networks such as the Internet. The information is manifested
to a user via a window environment, such as the graphical 40 layer 506 cooperate to generate and send network
commands, such as remote procedure calls, to a networkuser interface provide by System 7 or Windows, that is
specific interface 540 of the operating system 510. The
preferably displayed on the screen 235 (FIG. 2) as a graphinetwork interface comprises system software routines, such
cal display to facilitate interactions between the user and the
as "stub" procedure software and protocol stacks, that are
computer, such as the client 200. This behavior ofthe system
is brought about by the interaction of the network compo- 45 generally responsible for forming the information into a
predetermined packet format according to the specific netnents with a series of system software routines associated
work protocol used, e.g., TCP/IP or Apple-talk protocol.
with the operating system 420. These system routines, in
turn, interact with the components architecture layer 430 to
Specifically, the network interface 540 stores the packet
create the windows and graphical user interface elements, as
directly (via arrow 556) into a network buffer 560. Under
described further herein.
50 control of the hardware and software in the system, the
contents of the network buffer 560 are provided, as indicated
The window environment is generally part of the operatschematically by arrow 562, to a network adapter 566. The
ing system software 420 that includes a collection of utility
network adapter incorporates the software and hardware,
programs for controlling the operation of the computer 200.
i.e., electrical and mechanical interchange circuits and
The operating system, in turn, interacts with the components
to provide higher levels functionality, including a direct 55 characteristics, needed to interface with the particular computer networks 550. The adapter 566 is connected to the
interface with the user. A component makes use of operating
computer networks 550 by cable 568.
system functions by issuing a series of task commands to the
operating system via the network component layer 450 or, as
In a preferred embodiment, the invention described herein
is typically the case, through the component architecture
is implemented in an object-oriented programming (OOP)
layer 430. The operating system 420 then performs the 60 language, such as C++, using System Object Model (SaM)
requested task. For example, the component may request
technology and OOP techniques. The C++ and SaM lanthat a software driver of the operating system initiate transguages are well-known and many articles and texts are
fer of a data packet over the networks 250 or that the
available which describe the languages in detail. In addition,
operating system display certain information on a window
C++ and SaM compilers are commercially available from
for presentation to the user.
65 several vendors. Accordingly, for reasons of brevity, the
details of the C++ and SaM languages and the operations of
FIG. 5 is a schematic illustration of the interaction of a
their compilers will not be discussed further in detail herein.
component 502, software component layer 506 and an
US RE39,486 E
11
12
As will be understood by those skilled in the art, OOP
techniques involve the definition, creation, use and destruction of "objects". These objects are software entities comprising data elements and routines, or functions, which
manipulate the data elements. The data and related functions
are treated by the software as an entity that can be created,
used and deleted as if it were a single item. Together, the data
and functions enable objects to model virtually any realworld entity in terms of its characteristics, which can be
represented by the data elements, and its behavior, which
can be represented by its data manipulation functions. In this
way, objects can model concrete things like computers,
while also modeling abstract concepts like numbers or
geometrical designs.
Objects are defined by creating "classes" which are not
objects themselves, but which act as templates that instruct
the compiler how to construct an actual object. A class may,
for example, specifY the number and type of data variables
and the steps involved in the functions which manipulate the
data. An object is actually created in the program by means
of a special function called a "constructor" which uses the
corresponding class definition and additional information,
such as arguments provided during object creation, to construct the object. Likewise objects are destroyed by a special
function called a "destructor". Objects may be used by
manipulating their data and invoking their functions.
The principle benefits of OOP techniques arise out of
three basic principles encapsulation, polymorphism and
inheritance. Specifically, objects can be designed to hide, or
encapsulate all, or a portion of, its internal data structure and
internal functions. More specifically, during program design,
a program developer can define objects in which all or some
of the data variables and all or some of the related functions
are considered "private" or for use only by the object itself.
Other data or functions can be declared "public" or available
for use by other programs. Access to the private variables by
other programs can be controlled by defining public functions for an object which access the object's private data.
The public functions form a controlled and consistent interface between the private data and the "outside" world. Any
attempt to write program code which directly accesses the
private variables causes the compiler to generate an error
during program compilation which error stops the compilation process and prevents the program from being run.
Polymorphism is a concept which allows objects and
functions that have the same overall format, but that work
with different data, to function differently in order to produce consistent results. Inheritance, on the other hand,
allows program developers to easily reuse pre-existing programs and to avoid creating software from scratch. The
principle of inheritance allows a software developer to
declare classes (and the objects which are later created from
them) as related. Specifically, classes may be designated as
subclasses of other base classes. A subclass "inherits" and
has access to all of the public functions of its base classes
just as if these functions appeared in the subclass.
Alternatively, a subclass can override some or all of its
inherited functions or may modifY some or all of its inherited
functions merely by defining a new function with the same
form (overriding or modification does not alter the function
in the base class, but merely modifies the use of the function
in the subclass). The creation of a new subclass which has
some of the functionality (with selective modification) of
another class allows software developers to easily customize
existing code to meet their particular needs.
In accordance with the present invention, the component
502 and windows 544 are "objects" created by the compo-
nent layer 506 and the window manager 514, respectively,
the latter of which may be an object-oriented program.
Interaction between a component, component layer and a
window manager is illustrative in greater detail in FIG. 6.
In general, the component layer 606 interfaces with the
window manager 614 by creating and manipulating objects.
The window manger itselfmay be an object which is created
when the operating system is started. Specifically, the component layer creates window objects 630 that create the
window manager to create associated windows on the display screen. This is shown schematically by an arrow 608.
In addition, the component layer 606 creates individual
graphic interface objects 650 that are stored in each window
object 630, as shown schematically by arrows 612 and 652.
Since many graphic interface objects may be created in
order to display many interface elements on the display
screen, the window object 630 communicates with the
window manager by means of a sequence of drawing
commands issued from the window object to the window
manager 614, as illustrated by arrow 632.
As noted, the component layer 606 functions to embed
components within one another to form a component document having mixed data types and formats. Many different
viewing editors may work together to display, or modifY, the
data contents of the documents. In order to direct keystrokes
and mouse events initiated by a user to the proper components and editors, the component layer 606 includes an
arbitrator 616 and a dispatcher 626.
The dispatcher is an object that communicates with the
operating system 610 to identifY the correct viewing editor
660, while the arbitrator is an object that informs the
dispatcher as to which editor "owns" the stream of keystrokes or mouse events. Specifically, the dispatcher 626
receives these "human-interface" events from the operating
system 610 (as shown schematically by arrow 628) and
delivers them to the correct viewing editor 660 via arrow
662. The viewing editor 660 then modifies or displays, either
visually or acoustically, the contents of the data types.
Although OOP offers significant improvements over other
programming concepts, software development still requires
significant outlays of time and effort, especially if no preexisting software is available for modulation. Consequently,
a prior art approach has been to provide a developer with a
set of preferred, interconnected classes which create a set of
objects and additional miscellaneous routines that are all
directed to performing commonly-encountered tasks in a
particular environment. Such predefined classes and libraries are typically called "frameworks" and essentially provide
a pre-fabricated structure for a working document.
For example, a framework for a user interface might
provide a set of predefined graphic interface objects which
create windows, scroll bars, menus, etc. and provide the
support and "default" behavior for these interface objects.
Since frameworks are based on object-oriented techniques,
the predefined classes can be used as base classes and the
built-in default behavior can be inherited by developerdefined subclasses and either modified or overridden to
allow developers to extend the framework and create customized solutions in a particular area of expertise. This
object-oriented approach provides a major advantage over
traditional programming since the progranliller is not changing the original program, but rather extending the capabilities of that original program. In addition, developers are not
blindly working through layers of code because the framework providers architectural guidance and modeling and, at
the same time, frees the developers to supply specific actions
unique to the problem domain.
10
15
20
25
30
35
40
45
50
55
60
65
US RE39,486 E
13
14
There are many kinds of framework available, depending
on the level of the system involved and the kind of problem
to be solved. The types of frameworks range from high-level
frameworks that assist in developing a user interface, to
lower-level frameworks that provide basic system software
services such as communications, printing, file systems
support, graphics, etc. Commercial examples of applicationtype frameworks include MacApp (Apple), Bedrock
(Symantec), OWL (Borland), NeXT Step App Kit (NeXT)
and Smalltalk-80 MVC (ParcPlace).
While the framework approach utilizes all the principles
of encapsulation, polymorphism, and inheritance in the
object layer, and is a substantial improvement over other
programming techniques, there are difficulties which arise.
These difficulties are caused by the fact that it is easy for
developers to reuse their own objects, but it is difficult for
the developers to use objects generated by other programs.
Further, frameworks generally consist of one or more object
"layers" on top of a monolithic operating system and even
with the flexibility of the object layer, it is still often
necessary to directly interact with the underlying system by
means of awkward procedure calls.
In the same way that a framework provides the developer
with prefab functionality for a document, a system
framework, such as that included in the preferred
embodiment, can provide a prefab functionality for system
level services which developers can modify or override to
create customized solutions, thereby avoiding the awkward
procedural calls necessary with the prior art framework. For
example, consider a customizable network interface framework which can provide the foundation for browsing and
accessing information over a computer network. A software
developer who needed these capabilities would ordinarily
have to write specific routines to provide them. To do this
with a framework, the developer only needs to supply the
characteristic and behavior of the finished output, while the
framework provides the actual routines which perform the
tasks.
A preferred embodiment takes the concept of frameworks
and applies it throughout the entire system, including the
document, component, component layer and the operating
system. For the commercial or corporate developer, systems
integrator, or OEM, this means all of the advantages that
have been illustrated for a framework, such as MacApp, can
be leveraged not only at the application level for things such
as text and graphical user interfaces, but also at the system
level for such services as printing, graphics, multi-media,
file systems and, as described herein, network-specific
operations.
Referring again to FIG. 6, the window object 630 and the
graphic interface object 650 are elements of a graphical user
interface of a network component system having a customizable framework for greater enhancing the ability of a user
to navigate or browse through information stored on servers
coupled to the network. Moreover, the novel network system
provides a platform for developing network navigation
components for operation on a variety of hardware and
software computer systems.
As noted, the network components are preferably implemented as objects and communication among the network
component objects is effected through novel application
programming interfaces (APIs). These APIs are preferably
delivered in the form of objects in a class hierarchy that is
extensible so that developers can create new components
and editors. From an implementation viewpoint, the objects
can be subclassed and can inherit from base classes to build
customized components allow users to see different kinds of
data using different kinds of protocols, or to create components that function differently from existing components.
In accordance with the invention, the customized framework has a set of intercounected abstract classes for defining
network-oriented objects used to build these customized
network components. These abstract classes include
CyberItem, CyberStream and CyberExtension and the
objects they define are used to build the novel network
components. Interactions among these latter components
and existing components of the underlying software architecture provide the basis for the extensibility and replaceability features of the network component system.
In order to further understand the operations of these
network component objects, it may be useful to examine
their construction together with the major function routines
that comprise the behavior of the objects. In examining the
objects, it is also useful to examine the classes that are used
to construct the objects (as previously mentioned the classes
serve as templates for the construction of objects). Thus, the
relation of the classes and the functions inherent in each
class can be used to predict the behavior of an object once
it is constructed.
FIG. 7 illustrates a simplified class hierarchy diagram 700
of the base class CyberItem 702 used to construct the
network component object 602. In general, CyberItem is an
abstraction that may represent resources available at any
location accessible from the client 200. However, in accordance with the illustrative embodiment, a CyberItem is
preferably a small, self-contained object that represents a
resource, such as a service, available on the Internet and
subclasses of the CyberItem base class are used to construct
various network component objects configured to provide
such services for the novel network-oriented component
system.
For example, the class GopherItem 704 may be used to
construct a network component object representing a "thing
in Gopher space", such as a Gopher directory, while the
subclass WebItem 706 is derived from CyberItem and
encapsulates a network component object representing a
"thing in Web space, e.g. a Web page. Similarly, the subclass
NewsGroupItem 708 may be used to construct a network
object representing a newsgroup and the class Article 710 is
configured to encapsulate a network component object representing an article resource on an Internet server.
Since each of the classes used to construct these network
component objects are subclasses of the CyberItem base
class, each class inherits the functional operators and methods that are available from that base class. For example,
methods associated with the CyberItem base class for returning an icon family and a name are assumed by the subclasses
to allow the network components to display CyberItem
objects in a consistent marmer. The methods associated with
the CyberItem base class include (the arguments have been
omitted for simplicity):
GetRefCount 0;
IncrementRefCount 0;
Release 0;
SetUpFromURL 0;
ExternalizeContent 0;
StreamToStorageUnit 0;
StreamFromStorageUnit 0;
Clone 0;
Compare 0;
GetStringProperty 0;
10
15
20
25
30
35
40
45
50
55
60
65
US RE39,486 E
15
16
SetDefaultName 0;
GetURL 0;
GetIconSuite 0;
CreateCyberStream 0;
Open 0;
OpenInFrame 0;
FindWindow O.
In some instances, a CyberItem object may need to spawn
a CyberStream object in order to obtain the actual data for
the object it represents. FIG. 8 illustrates a simplified class
hierarchy diagram 800 of the base class CyberStream 802.
As noted, CyberStream is an abstraction that serves as an
API between a component configured to display a particular
data format and the method for obtaining the actual data.
This allows developers to design viewing editors that can
display the content of data regardless of the protocol
required to obtain that data.
For example, a developer may design a picture viewing
editor that uses the CyberStream API to obtain data bytes
describing a picture. The actual data bytes are obtained by a
subclass of CyberStream configured to construct a component object that implements a particular protocol, such as
Gopher and HTTP. That is, the CyberStream object contains
the software commands necessary to create a "data stream"
for transferring information from one object to another.
According to the invention, a GopherStream subclass 804 is
derived from the CyberStream base class and encapsulates a
network object that implements the Gopher protocol, while
the class WebStream 806 may be used to construct a network
component configured to operate in accordance with the
HTTP protocol.
The methods associated with the CyberStream class, and
which are contained in the objects constructed from the
subclasses, include (the arguments have been omitted for
simplicity):
GetStreamStatus 0;
GetTotalDataSize 0;
GetStreamError 0;
GetStatusString 0;
OpenWithCallback 0;
Open 0;
GetBuffer 0;
ReleaseBuffer 0;
Abort O.
FIG. 9 is a simplified class hierarchy diagram of the base
class CyberExtension 902 which represents additional
behaviors provided to components of the underlying software component architecture. Specifically, CyberExtension
are the mechanisms for adding functionality to, and extending the APIs of, existing components so that they may
communicate with the novel network components. As a
result, the CyberExtension base class 902 operates in connection with a Component base class 906 through their
respective subclasses BaseExtension 904 and BaseComponent 908.
The CyberExtension base class provides an API for
accessing other network-specific components, such as notebooks and logs, and for supporting graphical user interface
elements, such as menus. CyberExtension objects are used
by components that display the contents of CyterItem
objects. This includes browser-like components such as a
Gopher browser or Web browser, as well as JPEG-specific
components which display particular types of data such as
pictures. The CyberExtension objects also keep track of the
CyberItem objects which these components are responsible
for displaying.
In accordance with the invention, the class GopherBrowser 910 may be used to construct a Gopher-like network browsing component and the class WebBrowser 912
may be able to construct a Web-like network browsing
component. Likewise, a TextViewer subclass 918 may
encapsulate a network component configured to display text
and a PictureViewer subclass 920 may construct a component for displaying pictures. The methods associated with
the CyberExtension class include (the arguments have been
omitted for simplicity):
10
ICyberExtension ( );
Components displaying !be contents of CyberItem object
15
20
25
30
35
40
45
50
55
60
65
SetCyberItem ( );
GetCyberItem ();
GetCyberItemWindow ();
IsCyberItemSelected ( );
GetSelectedCyberItems ( );
Notebook and Log Tools
AddCyberItemToLog ( );
ShowLogWindow ( );
IsLogWindowShown ( );
AddCyberItemToNotebook ( );
AddCyberItemsToNotebook ( );
ShowNotebookWindow ( );
IsNotebookWindowShown ( );
SetLogFinger ( );
ClearLogFinger ( );
Notebook and Log Menu Handlers
InstallServicesMenu ( );
AdjustMenus ( );
DoCommand ( ).
In summary, the novel network system described herein
captures, the essence of a "comprehensive-based" approach
to browsing and retrieving network-oriented information as
opposed to the monolithic application-based approach of
prior browsing systems. Advantages of such a componentbased system include the ability to easily replace and extend
components because of the cooperating relationship
between the novel network-oriented component system and
the underlying component architecture. This relationship
also facilitates "seamless" integration and cooperation
between components and component viewing editors when
confronted with differing data types and formats.
While there has been shown and described an illustrative
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
implementing the invention in various applications. These
additional system routines include dynamic link libraries
(DLL), which are program files containing collections of
window enviroument and networking functions designed to
perform specific classes of operations. These functions are
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.
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
oftheir advantages. Therefor, it is the object of the appended
claims to cover all such variations and modifications as
come within the true spirit and scope of the invention.
US RE39,486 E
17
18
What is claimed is:
1. An extensible and replaceable layered component computing arrangement residing on a computer coupled to a
computer network, the layered arrangement comprising:
a software component architecture layer interfacing with
an operating system to control the operations of the
computer, the software component architecture layer
defining a plurality of computing components; and
a network component layer for developing network navigation components that provide services directed to the
computer network, the network component layer
includes application programming interfaces; and
a first class included in the application programming
interfaces to construct a first network navigation object
that represents different network resources available on
the computer network, wherein the network component
layer coupled to the software component architecture
layer in integrating relation to facilitate communication
among the computing and network navigation components.
2. The computing arrangement of claim 1 wherein the
network navigation components are objects.
3. The computing arrangement of claim 1 wherein the
application programming interfaces further comprise a second class for constructing a second network navigation
object representing a data stream for transferring information among objects of the arrangement.
4. The computing arrangement of claim 3 wherein the first
network navigation object is an Item object and the second
network navigation object is a Stream object, and wherein
the Item object spawns the Stream object to obtain information from the network resource that the Item object
represents.
5. The computing arrangement of claim 3 wherein the
application programming interfaces further comprise a third
class for constructing a third network navigation object
representing additional behaviors provided to computing
components of the software component architecture layer to
thereby enable communication between the computing components and the network navigation components.
6. An extensible and replaceable layered component computing arrangement for providing services directed to information available on computer networks, the computing
arrangement comprising:
a processor;
an operating system;
a software component architecture layer coupled to the
operating system to control the operations of the
processor, the software component architecture layer
defining a plurality of computing components; and
a network component layer for creating network navigation components configured to search and obtain information available on the computer networks, the network component layer includes application
programming interfaces; and
means for constructing a network navigation component
that represents different resources available on the
computer network, wherein the network component
layer is integrally coupled to the software component
architecture layer to ensure communication among the
computing and network navigation components.
7. The computing arrangement of claim 6 wherein the
network component layer and software component architecture layer comprise means for embedding components
within one another to form a compound document having
mixed data types and formats.
8. The computing arrangement of claim 6 wherein the
application programming interfaces comprise means for
constructing a network navigation component that implements a protocol.
9. The computing arrangement of claim 6 wherein the
application programming interfaces comprise means for
constructing a network navigation component that provides
additional functionality to existing computing components
to enable communication among the components.
10. The computing arrangement of claim 9 wherein the
computing component comprises a computing part having a
viewing editor and data content.
11. The computing arrangement of claim 10 wherein the
computing component functions to one of transfer files over
the networks, remotely log onto another computer coupled
to the networks and view images on a screen of the computing arrangement.
12. The computing arrangement of claim 10 wherein the
network navigation component comprises a browsing component.
13. The computing arrangement of claim 10 wherein the
network navigation component comprises a component for
one of displaying text and displaying movies on a screen of
the computing arrangement.
14. An extensible and replaceable layered component
computing arrangement residing on a computer adapted to
be coupled on a computer network, the layered arrangement
comprising:
a software component architecture layer interfacing with
an operating system to control the operations of the
computer, the software component architecture layer
defining a plurality of computing components;
a network component layer adapted to be coupled to at
least one network navigation component that provides
a service directed to the computer network, the network
component layer including an application programming interface; and
a number of interconnected abstract classes included in
the application programming interface, at least on
abstract class for defining a network navigation object
that represents a resource available on the computer
network, the network component layer coupled to the
software component architecture layer to facilitate
communication among the network navigation component and at least one computing component.
15. The layered arrangement of claim 14, wherein the
abstract class defines a network navigation object that
represents a method of downloading information from a
remote location on the computer network
16. The layered arrangement of claim 14, wherein the
abstract class defines a network navigation object that
represents additional behaviors provided to the computing
components ofthe software component architecture layerfor
integrating with the network component layer.
17. The layered arrangement of claim 14, wherein the
network navigation object is adapted to browse the computer network
18. The layered arrangement of claim 14, wherein the
network navigation object is adapted to display text on a
computer display.
19. The layered arrangement of claim 14, wherein the
network navigation object is adapted to display images on a
computer display.
20. The layered arrangement of claim 14, wherein the
network navigation object includes software commands for
creating a datastream for transferring information between
objects in the layered component computing arrangement.
10
15
20
25
30
35
40
45
50
55
60
65
* * * * *
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?