|
Description  |
|
|
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,377, titled EXTENSIBLE, REPLACEABLE
NETWORK COMPONENT SYSTEM;
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,671, titled EMBEDDING INTERNET
BROWSER/BUTTONS WITHIN COMPONENTS OF A NETWORK COMPONENT SYSTEM, and
U.S. patent application Ser. No. 08/435,880, titled 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.
FIELD OF THE INVENTION
This invention relates generally to computer networks and, more
particularly, to an architecture and tools for building Internet-specific
services.
BACKGROUND OF THE INVENTION
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 perform 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 format 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 for
information having a particular data format using a particular protocol to
actually acquiring information of a different format in accordance with a
different protocol.
For example, the file transfer protocol (FTP) service facilitates the
transfer and sharing of ties across the Internet. 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 available on the
Internet include JPEG images, MPEG movies and .mu.-law sound files.
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 perform 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 information service 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, sound, movies or various other types of data in
the form 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. Armed with such a general naming convention that spans the
entire network 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 information on the Interact. One follows a
list-approach to information 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 information available on Internet servers. For
example, TurboGopher is a text-based browser application for client
computers operating in accordance with the Gopher protocol. Additionally,
each of these applications has a unique way of viewing and accessing the
information on server computers.
Typically, a computer includes an operating system and application software
which, collectively, control the operations of the computer. The
applications are preferably task-specific and independent, e.g., a word
processor application edits text, 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. This is primarily because the applications are designed as
monolithic, autonomous modules that generally do not interact efficiently.
Netscape Navigator.TM. ("Netscape") is an example of a monolithic Web
browser application that is configured to interact with many of the
previously-described protocols, including HTTP, Gopher and FTP. However
when instructed to invoke an application that uses one of these protocols,
Netscape "translates" the protocol to hypertext. Such awkward 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.
Each of these information services provides a mechanism for specifying an
address or path to access a particular network resource; in Netscape, a
command open location may be specified to "transport" a user to that
resource location and in TurboGopher, the command another Gopher allows a
user to type Gopher-specific address information to transport the user to
the specified location. These resource specifying mechanisms, however, are
not generally configured to interact with applications other than their
own, primarily due to the monolithic nature of the Netscape and
TurboGopher applications. Thus, it is difficult to replace these
mechanisms with similar mechanisms provided by other developers;
furthermore, the monolithic nature of the applications generally precludes
extension of the functions and behaviours of these mechanisms other than
by those developers associated with the respective services.
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 application programs
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 execution of
the application programs.
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 ram, provides a list of
command options that can be selected merely by pointing to them with the
mouse-controlled 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.
Command options in the menus typically act on one or more objects. If an
application requires more information to carry out a command, a dialog box
may be employed. A dialog box is a special type of window that elicits
information from the user, such as requiring the user to check items or
fill in the blanks, typically through the use of a graphical object that
the user can manipulate with the mouse. Such an object is called a control
and, by manipulating the control, the user can take an immediate action or
change a setting to modify a future action. A modal dialog box requires
that the user respond to the elicitation prior to performing other
actions.
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.
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 a document-based
computing system that enables users to replace and extend modules
configured to provide services directed to information available on
computer networks.
SUMMARY OF THE INVENTION
Briefly, the invention comprises a connection dialog component of an
extensible and replaceable network-oriented component system that enables
a user to specify address information of a particular resource coupled to
a computer network. The connection dialog component is preferably a
compound document that is manifested as a dialog box having a list of
selectable service types with associated dialog view components. Each
dialog view component has at least one field for receiving appropriate
address information provided by a user to successfully connect to the
particular network resource.
In accordance with the invention, the network-oriented system includes a
novel application programming interface (API) for the connection dialog
component that facilitates integration with an underlying software
component architecture. Such a highly-modular cooperating
layered-arrangement between the network component system and the component
architecture allows the connection dialog component to be replaced by
other connection dialog-type components, while ensuring that these latter
components "seamlessly" interact with existing components and component
editors of the system.
Furthermore, the API allows other service developers to insert service type
references and associated dialog view components into the connection
dialog component without affecting operation of the novel network
component system. For example, the novel connection dialog may provide
access to a predetermined number of service types, with each type of
service having its own dialog "view". A service developer may provide
another type of service to the connection dialog component and this
service type would have its own dialog view.
In the illustrative embodiment, the connection dialog component and dialog
view components are objects of the network-oriented component system that
is preferably embodied as a customized framework having a set of
interconnected abstract classes. Specifically, a CyberService class, a
CyberExtension class, a CyberContainerExtension class and a
CyberConnectExtension class collectively define a connection dialog
component object for receiving address information and accessing a network
resource relating to that information. The address information is
preferably a pointer, e.g., a uniform resource locator (URL), for
referencing any resource resident on the computer networks. In response to
a user typing the address information into the appropriate dialog
field(s), the dialog view object examines the specified information and
proceeds to "open" and display the resource as a document.
Advantageously, the invention involves the component approach to network
navigation tools; any service having a corresponding component adapted to
the network-oriented component system can utilize the connection dialog
for accessing network addresses. Moreover, the connection dialog component
may be efficiently extended, replaced and modified within the network
component system. Although monolithic application programs such as
Netscape and TurboGopher have functional equivalents to the connection
dialog, i.e., tools for specifying addresses of network resources, each of
these applications' address specifying mechanism is solely their own and,
thus, cannot be replaced or extended or modified.
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 a 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 an illustration of basic primitives for defining the layout of a
compound document;
FIG. 6 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. 7 is a schematic illustration of the interaction between a component,
a component layer and a window manager in accordance with the invention;
FIG. 8 is a schematic diagram showing an illustrative dialog item in
accordance with the invention;
FIG. 9 is a simplified class hierarchy diagram illustrating classes
CyberExtension, CyberContainerExtension and CyberConnectExtension used to
construct a replaceable and extensible connection dialog component object
in accordance with the invention;
FIG. 10 is a simplified class hierarchy diagram illustrating a base class
CyberService, and its associated subclasses, in accordance with the
invention;
FIG. 11 is a schematic illustration of the connection dialog as manifested
on a computer screen according to the invention; and
FIGS. 12A, 12B, 12C and 12D are schematic diagrams of illustrative dialog
boxes associated with services specified by the novel connection dialog
component according to the 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 theft 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, 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 computer 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. 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.RTM.
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.RTM. 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.RTM.
System 7.RTM., IBM OS2.RTM., or the Microsoft.RTM. Windows.RTM. operating
systems.
As noted, the present invention is based on a modular document computing
arrangement as provided by an underlying software component 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
Apple-talk 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 having a
connection dialog component 475 that allows a user to specify an address
of a particular resource coupled to computer networks, such as the
Interact. As described further herein, this technology includes novel
application programming interfaces (APIs) that facilitates integration
with the underlying component architecture layer 430 and allows the
connection dialog component to be replaced, extended or modified by other
connection dialog-type components. The 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 component
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. An internal layout element of the component
architecture layer 430 is used to organize these contents of a compound
document and, further, to distinguish boundaries between editors. The
layout element, in turn, comprises three data structures which form
primitives for defining the layout of such a document. Referring to FIG.
5, these structures include a canvas, a frame and a transformation.
Specifically, the canvas 502 is a data structure which represents the
overall context of the document. It includes a description of coordinate
space and a mechanism for capturing a series of graphical commands into an
image or representation. Examples of canvasses are a bit or pixel map on a
computer screen, a page description language for a printer and a display
list for a computer display. The frame 504, on the other hand, is a data
structure which serves as a shared information repository between a
"container" component and an embedding component.
A transformation is a data structure which represents a set of geometric
descriptions that are applied to graphical commands. In the example of
FIG. 5, the transformation is depicted as an offset 506 from a reference
point, e.g., the upper left-hand corner of the canvas 502. Other types of
transformations include scaling, rotation, skews and distortions. In
general, the transformation is a geometric description of the location and
orientation of the frame 504 on the canvas 502. Preferably, this
description can be two-dimensional or three-dimensional in nature.
Referring again to FIG. 4, the network component layer 450 extends the
functionality of the underlying component architecture layer 430 by
defining key integrating network-oriented components 480, such as the
connection dialog component 475. As noted, a feature of the invention is
the ability to easily extend, replace or modify the connection dialog
component of the layered computing arrangement 400 with a different
connection dialog-type component to provide a user with a customized
network-related service offering. This feature is made possible by the
cooperating relationship between the network component layer 450 and its
underlying component architecture layer 430. The integrating components
communicate and interact with these various components of the system in a
"seamlessly integrated" manner to provide basic tools for navigating the
Internet computer networks.
FIG. 4 also illustrates the relationship of applications 490 to the
elements of the layered computing arrangement 400. Although they reside in
the same "user space" as the components 460 and network components 480,
the applications 490 do not interact with these elements and, thus,
interface directly to the operating system layer 420. Because they are
designed as monolithic, autonomous modules, applications (such as previous
Internet browsers) often do not even interact among themselves. In
contrast, the components of the arrangement 400 are designed to work
together via the common component architecture layer 430 or, in the case
of the network components, via the novel network component layer 450.
Specifically, the invention features the provision of the extensible and
replaceable network-oriented component system which, when invoked, causes
actions to take place that enhance the ability of a user to interact with
the computer to obtain information available over computer networks such
as the Internet. The information is manifested to a user via a window
environment, such as the graphical user interface provided by System 7 or
Windows, that is preferably displayed on the screen 235 (FIG. 2) as a
graphical display to facilitate interactions between the user and the
computer, such as the client 200. This behavior of the system is brought
about by the interaction of the network components with a series of system
soil ware routines associated with the operating system 420. These system
routines, in turn, interact with the component architecture layer 430 to
create the windows and graphical user interface elements, as described
further herein.
The window environment is generally part of the operating system software
420 that includes a collection of utility programs for controlling the
operation of the computer 200. The operating system, in ram, interacts
with the co | | |