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.]

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

Disclaimer: Justia Dockets & Filings provides public litigation records from the federal appellate and district courts. These filings and docket sheets should not be considered findings of fact or liability, nor do they necessarily reflect the view of Justia.


Why Is My Information Online?