|
Description  |
|
|
FIELD
OF THE INVENTION
This invention relates to displaying data on a client computer and, more particularly, relates to displaying the data in a ticker display pane.
BACKGROUND AND SUMMARY OF THE INVENTION
Graphical user interfaces provide an icon-oriented and/or menu-driven environment for allowing a user to interact with an operating system running on a user's computer. Many graphical user interfaces include a windowing environment and a
desktop. A windowing environment presents the user with specially delineated areas called windows on a display, each of which is dedicated to a particular application program, file or document. The windows can typically be re-sized, moved around on the
display, and stacked so as to overlay other windows. The windowing environment allows windows to be increased to a full-screen display or minimized, meaning the window is reduced to and denoted by an icon.
The desktop displays icons representing programs, files and resources available to the user. As such, the desktop acts as a launching point for running application programs, opening documents or files, and initiating operating system services.
The desktop cannot be minimized or closed. Instead, the desktop always remains as a full-screen background display upon which windows overlay.
The desktop in many graphical user interfaces is based on a desktop metaphor, wherein the desktop is a graphical work surface analogous to a surface of a desk. Similarly, windows overlay the desktop in the graphical user interface analogous to
papers or files laying on top of the desk.
One area that may use a graphical user interface is Internet-based applications. The Internet is a worldwide collection of cooperating computer networks. A user typically accesses the Internet through a "client" computer. The client computer
communicates with a "server" computer on a remote computer network using telephone, ISDN, or T1 lines or similar physical connections. The server computer may download content (e.g., images, text, application programs, etc.) to the client computer for
viewing or execution by the user.
The client and server computers communicate through software protocols, such as File Transfer Protocol (FTP), Simple Mail Transfer Protocol (SMTP), Hypertext Transfer Protocol (HTTP), Gopher, etc. Currently HTTP is the most widely used protocol
and is used for accessing the World Wide Web.
The World Wide Web is a portion of the Internet consisting of server computers, also referred to as "sites," which make multi-media documents (often referred to as content) in HTML format generally available for downloading or retrieval by
individuals having a computer with Internet access. The documents are generally created in Hypertext Markup Language (HTML) and displayed on a user's computer. HTML documents support embedded hyperlinks that reference other locations (folder, FTP site,
other HTML documents, etc.) The user's computer retrieves and displays documents associated with the other location when the user activates a hyperlink by clicking on the hyperlink or pressing an appropriate keystroke.
Uniform Resource Locators (URL) are used in conjunction with hyperlinks to identify the referenced location. URLs typically define a protocol to be used, a domain name of a server computer, a port address to be used for communication, and a
directory path to access a desired document. Thus, when a user activates a hyperlink, the user's computer uses a URL to establish communication with a server computer designated in the URL and displays a document retrieved from the server.
HTML also allows graphical images to be embedded in HTML documents. When a graphical image is embedded in an HTML document, the dimensions or size of the embedded graphical image may be defined with HTML statements. For example, the size of an
embedded graphical image may be defined in HTML by <IMG SRC="file.gif" WIDTH=X HEIGHT=Y>, where IMG is an HTML tag referencing an embedded image, SRC="file.gif" defines the location and name of the file containing the graphical image embedded in
the HTML document, (e.g., a Graphics Information file or *.GIF) and X,Y are the respective width and height of the graphical image measured in pixels.
Software object components also may be used with HTML documents for displaying executable content, such as for animations or information processing. Currently, most Internet browsers support embedded software object components in the form of
ActiveX controls, Java applets, and Visual Basic Scripts. These software object components are embedded into HTML documents using the <Insert> or <Object> HTML tags.
The above-described protocols and HTML documents are the underlying structure for many Internet-based applications. One such Internet-based application achieving wide-spread success is called Internet broadcasting. Internet broadcasting
effectively turns a computer into a high-tech television set, allowing a client computer to change "channels" for displaying news, sports scores, stock charts, weather updates and other kinds of information which are downloaded from the Internet. The
information displayed for the channels is dynamically updated, such as through scheduled or manually initiated downloads.
One provider of an Internet broadcasting application is PointCast Inc. PointCast provides an Internet broadcast application on its Internet site (http://www.pointcast.com) that a user can download to the user's computer. The Internet broadcast
application executes as a windowed application on the user's computer. In the application's window, the Pointcast application displays a channel viewer. The channel viewer contains different panes for organizing and reading news. One pane lists a
collection of channels encompassing such topics as companies, industries, life styles, news, and sports. When a user activates a channel, a second pane is displayed showing a list of current stories relating to the selected channel. If a user activates
a story, the full text for that story is displayed on a third pane. The PointCast application also includes what is called a "SmartScreen" that is triggered after a preset period of inactivity (as in a screen saver). SmartScreen launches a collection
of headlines, sports scores, and stock tickers.
The PointCast application has several drawbacks. For example, all of the content displayed is delivered from a single server computer called the Internet broadcasting server (e.g., the PointCast server), rather than directly from content
providers that create the content. Thus, the information provided is only as up-to-date as the Internet broadcasting server. Additionally, if a user is interested in viewing content that is not available on the Internet broadcasting server, there is no
means for integrating that content into the Internet broadcast. For example, content from other Internet server computers, Intranet server computers, server computers on Local Area Networks (LAN), and the client computer itself, cannot be integrated
into the broadcast. The content displayed also lacks hyperlinks referencing documents on other server computers and allowing a user to obtain more information about an item displayed in the Internet Broadcast.
Additionally, the PointCast application is displayed in one of many possible open windows. Returning to the desktop metaphor, a user may find it difficult to find documents, such as papers or files, lying on top of a desk when the desk is
cluttered with such documents. Similarly, in windows environments wherein a user can have a plurality of windows opened simultaneously, the user may lose track of which window a particular application is displayed. Being opened in a window, the
PointCast application is susceptible to this problem.
The present invention provides a ticker display pane as part of a desktop on a client computer. The desktop is called an "active" desktop because data is animated (e.g., scrolling) in the ticker display pane. The ticker data is updated
automatically by retrieving the data directly from content providers. The ticker data also may contain hyperlinks and be sourced from multiple servers on multiple networks.
In one aspect of the invention, a client computer provides a ticker display pane as part of the desktop for displaying data, such as stock prices, sport scores, and messages. The data is displayed in a substantially continuous sequence of
discrete data items that are animated in the ticker display pane. For example, the data items may scroll across the ticker display pane or flash onto the display pane all at once, filling the display pane. Because the ticker display pane is part of or
integrated into the desktop, the user does not need to open a separate window to display the data items. Additionally, the user always knows the location of the ticker display on the desktop, as opposed to the ticker display being lost as one of many
possible open windows.
In another aspect of the invention, the data is retrieved from one or more source computers (i.e., multiple providers), which may be located on different computer networks. For example, server computers may be Internet, Intranet or LAN server
computers. Additionally, information from multiple topic areas, such as sports, entertainment, stocks, and intercorporate messages can be integrated into the substantially continuous sequence of data items. In this aspect of the invention, the ticker
display pane may or may not be part of the desktop (e.g., the ticker may be in a separate window).
In another aspect of the invention, the data retrieved contains hyperlinks, thereby allowing a user to select a hyperlink to retrieve and display another document (e.g., folder, HTTP or FTP site, other HTML documents, etc.) designated by the
hyperlink.
In yet another aspect of the invention, a source identifier may be integrated into the desktop. The source identifier displays an image associated with the source of the data items currently displayed on the ticker display. The source
identifier may include a hyperlink. Upon activating the hyperlink (e.g., clicking on the source identifier), the system retrieves and displays a document on a server computer associated with the hyperlink. The source identifier may further be an HTML
page allowing the content provider to place advertisements and other information in a display space for the source identifier.
Thus, using the present invention, rich multimedia data is dynamically integrated directly into the desktop on a client computer. The data may be provided from multiple server computers on multiple networks, such as Internet servers, Intranet
servers, LAN servers, etc. Further, the data may include hyperlinks allowing the user to browse to related documents on a computer network. Finally, the data displayed is the most up-to-date content, since it is provided directly from the content
providers.
Additional features and advantages of the invention will be made apparent from the following detailed description of an illustrated embodiment which proceeds with reference to the accompanying drawings.
BRIEF DESCRIPTION OF THE DRAWINGS
FIG. 1 is a block diagram of a computer system that may be used to implement a method and apparatus embodying the invention for displaying a ticker display pane.
FIG. 2 is a block diagram illustrating objects conforming to a component object model used in the present invention.
FIG. 3 is an illustration of a graphical user interface according to one aspect of the invention including a desktop with a ticker display pane for displaying a plurality of data items.
FIG. 4 is an illustration of a network having a plurality of workstations capable of sending messages therebetween for display on the ticker display pane.
FIG. 5 is an illustration of a personal options page for allowing users to control which messages sent by other users on a computer network are displayed on the ticker display pane.
FIG. 6 is an illustration of a posting options page for allowing a user to select which recipients will receive data posted by the user.
FIG. 7 is an illustration of a desktop viewer sequencing through data provided from Internet servers, Intranet servers, LAN servers and the client computer.
FIG. 8 is a known browser environment on a client computer for connecting to and interacting with an Internet server computer.
FIG. 9 is an illustration of a known windows user interface including a desktop window.
FIG. 10 is an illustration of a desktop window according to one aspect of the invention with a desktop viewer for displaying a document on a first pane of the desktop window and desktop icons being displayed on a second pane of the desktop
window.
FIG. 11 is an illustration of a browser for displaying additional information about the document displayed in the desktop viewer of FIG. 10.
FIG. 12 is an illustration of a window in a channel guide according to the invention for customizing which documents are displayed in the desktop viewer of FIG. 10.
FIG. 13 is a block diagram showing a system architecture for displaying the desktop window of FIG. 10 on the client computer.
FIG. 14 is an illustration of using multiple channel guides from multiple serves to display documents in the desktop viewer of FIG. 10.
FIG. 15 is an illustration of using multiple servers for allowing a user to customize which documents from a content provider are displayed in the desktop viewer of FIG. 10.
FIG. 16 is an illustration of the desktop viewer sequencing through documents provided by multiple content providers.
FIG. 17 is an illustration of the desktop viewer sequencing through documents provided by multiple content providers with special effects inserted into one of the documents.
FIG. 18 is a flowchart for implementing the desktop window of FIG. 10.
FIG. 19 is a flowchart showing additional steps performed by the system for implementing the desktop window of FIG. 10.
FIG. 20 is an illustration of a screen saver according to the invention using the channel guide of FIG. 7.
FIG. 21 is an illustration of a special effects screen saver HTML page for incorporating special effects into a screen saver document.
FIG. 22 is an illustration of a channel guide listing multiple channels. Selecting a News channel displays the window shown in FIG. 7.
DETAILED DESCRIPTION OF THE ILLUSTRATED EMBODIMENTS
1. Computer Overview
Referring to FIG. 1, an operating environment for an illustrated embodiment of the present invention is a computer system 20 with a computer 22 that comprises at least one high speed processing unit (CPU) 24, in conjunction with a memory system
26, an input device 28, and an output device 30. These elements are interconnected by at least one bus structure 32.
The illustrated CPU 24 is of familiar design and includes an ALU 34 for performing computations, a collection of registers 36 for temporary storage of data and instructions, and a control unit 38 for controlling operation of the system 20. The
CPU 24 may be a processor having any of a variety of architectures including Alpha from Digital, MIPS from MIPS Technology, NEC, IDT, Siemens, and others, x86 from Intel and others, including Cyrix, AMD, and Nexgen, and the PowerPc from IBM and Motorola.
The memory system 26 generally includes high-speed main memory 40 in the form of a medium such as random access memory (RAM) and read only memory (ROM) semiconductor devices, and secondary storage 42 in the form of long term storage mediums such
as floppy disks, hard disks, tape, CD-ROM, flash memory, etc. and other devices that store data using electrical, magnetic, optical or other recording media. The main memory 40 also can include video display memory for displaying images through a
display device. Those skilled in the art will recognize that the memory 26 can comprise a variety of alternative components having a variety of storage capacities.
The input and output devices 28, 30 also are familiar. The input device 28 can comprise a keyboard, a mouse, a physical transducer (e.g., a microphone), etc. The output device 30 can comprise a display, a printer, a transducer (e.g., a speaker),
etc. Some devices, such as a network interface or a modem, can be used as input and/or output devices.
As is familiar to those skilled in the art, the computer system 20 further includes an operating system and at least one application program. The operating system is the set of software which controls the computer system's operation and the
allocation of resources. The application program is the set of software that performs a task desired by the user, using computer resources made available through the operating system. Both are resident in the illustrated memory system 26.
In accordance with the practices of persons skilled in the art of computer programming, the present invention is described below with reference to acts and symbolic representations of operations that are performed by computer system 20, unless
indicated otherwise. Such acts and operations are sometimes referred to as being computer-executed. It will be appreciated that the acts and symbolically represented operations include the manipulation by the CPU 24 of electrical signals representing
data bits which causes a resulting transformation or reduction of the electrical signal representation, and the maintenance of data bits at memory locations in memory system 26 to thereby reconfigure or otherwise alter the computer system's operation, as
well as other processing of signals. The memory locations where data bits are maintained are physical locations that have particular electrical, magnetic, or optical properties corresponding to the data bits.
2. Object Overview
Referring to FIG. 2, the illustrated embodiment of the invention utilizes objects or controls which conform to the component object model (COM) of Microsoft Corporation's OLE. For a detailed discussion of OLE see Inside OLE, Second Edition by
Kraig Brockschmidt, Microsoft Press, Redmond, Wash. 1995. A brief overview of objects in OLE and associated terminology is provided below before discussing the details of the illustrated embodiment.
An object is an instance of a programmer-defined type referred to as a class, which exhibits the characteristics of data encapsulation, polymorphism and inheritance. Data encapsulation refers to the combining of data (also referred to as
properties of an object) with methods that operate on the data (also referred to as member functions of an object) into a unitary software component (i.e., the object), such that the object hides its internal composition, structure and operation and
exposes its functionality to client programs that utilize the object only through one or more interfaces. An interface of the object is a group of semantically related member functions of the object. In other words, the client programs do not access
the object's data directly, but must instead call functions on the object's interfaces to operate on the data.
Polymorphism refers to the ability to view (i.e., interact with) two similar objects through a common interface, thereby eliminating the need to differentiate between two objects. Inheritance refers to the derivation of different classes of
objects from a base class, where the derived classes inherit the properties and characteristics of the base class (which for purposes of OLE are the interfaces of the base class).
OLE's COM specification defines binary standards for objects and their interfaces which facilitate the integration of software components. According to the COM specification, a typical object 50 is represented in the computer system 20 (FIG. 1)
by an instance data structure 52, a virtual function table 54, and member functions 56-58. The instance data structure 52 contains a pointer 60 to the virtual function table 54 and data 62 (also referred to as data members, or properties of the object). A pointer is a data value that holds the address of an item in memory. The virtual function table 54 contains entries 66-68 for the member functions 56-58. Each of the entries 66-68 contains a reference to the code 56-58 that implements the
corresponding member function.
The pointer 60, the virtual function table 54, and the member functions 56-58 implement an interface of the object 50. Client programs interact with the object 50 by obtaining a pointer (referred to as an interface pointer) to the pointer 60 of
the virtual function table 54. OLE includes a type definition of an interface pointer which allows client programs to call member functions on the interface by name through the interface pointer and provides type checking on the function's arguments, as
expressed in the following code (in the C++ programming language):
Interfaces conventionally are given names beginning with a capital "I". Objects can include multiple interfaces which are implemented with one or more virtual function tables. The member function of an interface is denoted as
"IInterfaceName::FunctionName."
The object 50 conforming to the COM specification exhibits data encapsulation by exposing its interfaces (semantic groupings of its member functions) to client programs. The client programs interact with the object 50 by calling the member
functions 56-58 on a particular interface of the object, but do not directly manipulate the object's data. The object 50 also exhibits polymorphism and inheritance in that the object 50 can provide interfaces in common with a base class and other
similar objects, so that client programs can interact with each of the objects in the same manner by calling member functions of the interface that the objects have in common.
3. Graphical User Interface with a Windowing Environment and a Desktop
Referring to FIG. 3, a graphical user interface environment 100 according to the present invention is shown. The graphical user interface is displayed on the computer display 30 (FIG. 1) and includes a windowing environment for displaying
windows 102 and a desktop 104. The windowing environment shown is that of the Microsoft Windows.RTM. 95 or Windows NT 4.0 operating systems, but the invention is equally applicable to other windowing environments.
The illustrated graphical user interface is displaying two windows 106, 108 overlaying the desktop 104 in a front-to-back order. Each window represents a separate application, file or document. Window 108 is the front-most window, and, as such,
is the window which accepts user input. The user can switch other windows to the front by clicking with a mouse or other pointer device, or by inputting certain key combinations. This allows the user to work with multiple application programs, files
and documents. Windows 106 and 108 each have minimize and maximize buttons, such as buttons 110 and 112 on window 106, so that the windows can be reduced to an icon or expanded to full-screen, filling the graphical user interface display.
The illustrated desktop includes desktop icons, such as a "My Computer" icon 120, a "Network Neighborhood" icon 122 and an "Internet Explorer" icon 124. Other desktop icons are typically displayed on the desktop 104, but are not shown for
purposes of simplicity. The icons represent programs, files and resources available to the user. The desktop icons are illustrative only and entirely different icons may be used.
The desktop 104 also includes a task bar 130 which extends the length of the desktop at a bottom-most portion thereof. The task bar 130 includes a start button 132 and a clock 134. Upon clicking the start button 132, a menu (not shown) appears
containing user-selectable commands, such as for running programs, shutting down the computer, and displaying folders. Icons or buttons (not shown) representing currently running applications are also displayed in the task bar.
Elements on the desktop 104, such as the desktop icons 120, 122 and 124, can be moved to other locations on the desktop by dragging and dropping with a mouse or other pointer device, but cannot be minimized any further. Applications which are
open in the windows 106, 108, on the other hand, can be minimized. To "minimize" an application means to remove all windows associated with that application from the display such that only an icon or other graphical element remains displayed in the task
bar representing the application. Minimized applications are still active and may run in the background. The desktop remains as a full-screen display when all applications or programs are minimized or closed.
The desktop 104 includes a viewer 140 which is a hypertext viewer used to display hypertext data, such as HTML data. The viewer 140 views a ticker HTML document for displaying a ticker display pane 142 and a source identifier 144. The ticker
display pane displays a plurality of discrete data items, such as data items 150, 152, 154 and 156 within the desktop. The source identifier 144 identifies a content provider that is currently sourcing or providing the data items being displayed.
The discrete data items can be displayed in the ticker display pane using a variety of techniques. In each technique, the data items are animated meaning they appear in motion during a portion of their display. For example, the data items can
rotate into the ticker display pane from the bottom or the top thereof. Or the data items can flash onto the ticker display pane, meaning a first set of data items is displayed all at once for the full width of the display area and then a second set is
displayed all at once on the display overriding the first set, etc.
In the illustrated ticker display pane 142, the data items are scrolling from right to left across the ticker display pane. Multiple data items are displayed simultaneously on the ticker display pane. The ticker display pane 142 contains a
first end 170 and a second end 172. The data items automatically move from right to left across the ticker display pane portion of the viewer scrolling onto the ticker display pane from the first end 170 and scrolling off of the second end 172. The
illustrated ticker display pane is currently displaying sports scores with data item 156 moving onto and data item 150 moving off of the ticker display pane. The data items scroll across the display at a default speed, but the user may select variable
speeds through a control menu (not shown).
Although shown moving right to left, data items may alternatively move from left to right. The ticker display pane also may be oriented in any desired direction on the desktop, such as vertically, rather than horizontally on the desktop.
Whether vertically or horizontally, when scrolling, the data items are considered moving across the desktop.
The data items are typically sourced from multiple content providers. The data is displayed in a substantially continuous sequence with data items displayed one after another until all of the data from a current content provider is completed.
As the last data item from the current content provider moves off the left end of the ticker display pane, data items from the next content provider begin to move onto the ticker display pane from the right end, and the source identifier 144 is updated
accordingly. When the last data item from the last content provider is displayed, data items from the first content provider are redisplayed and the cycle repeats. Thus, the data is sequentially displayed in a substantially continuous and seamless
manner. The term "substantially continuous" is used to account for minor transitions that occur between content providers. This term includes a continuous display as well, wherein no transitions exist between content providers.
The data may be downloaded from the content providers through regularly scheduled downloads. Alternatively, the user may choose to update information when the user selects a proper keystroke or chooses a menu item. The data may also be
downloaded during idle time, such as when a user is reading currently downloaded data.
The data displayed in the viewer can relate to different topics of information, such as sports, business, weather, stock information, etc. The different topics correspond to user-selected channels chosen from the channel guide (described further
below). Messages from other users on a computer network also can be displayed. As will be further described below, the substantially continuous sequence of data items can include data items provided by multiple servers on multiple networks, such as LAN
servers, Intranet servers and Internet servers. The client computer also can source data items for display in the ticker display pane.
The length of the data items is variable, and the data items displayed may include hyperlinks for retrieving and displaying documents related to the data item. For example, selecting data item 152 may provide more information about the New York
vs. Baltimore game.
The source identifier 144 displays the source of the currently displayed data items. For example, data items 150, 152, 154, and 156 are the current data items being displayed and are sourced from ESPN. When the viewer finishes displaying the
data items for ESPN, a new logo appears for a new content provider sourcing the data items. The source identifier can be a graphic with a hyperlink embedded therein for allowing a user to retrieve and display a document associated with the source
identifier (e.g., ESPN home page) upon activation of the hyperlink. The source identifier alternatively may be an HTML page for allowing the provider to place advertisements and other information.
The desktop also includes an option button 160 for customizing content provided in the viewer. Activating the option button 160 results in an option menu being displayed. From the options menu a user can select the channel guide allowing a user
to select different content providers to source data items to the ticker display pane.
The channel is divided into channels (not shown). The channels correspond to different topics of information, such as sports, entertainment, etc and/or different content providers. The channel guide provides a list of content providers relating
to a desired channel and allows a user to choose which content providers will display data in the viewer 140.
Further details of how the channel guide operates are described in a patent application entitled "SYSTEM AND METHOD FOR INTEGRATING A DOCUMENT INTO A DESKTOP WINDOW ON A CLIENT COMPUTER", filed Dec. 6, 1996 and having an application Ser. No.
08/760,931, which is hereby incorporated by reference.
The viewer 140, icons 120, 122, 124 and the option button 160 are all integrated into the desktop meaning they are a part of the desktop. Thus, the ticker display pane and the data items are displayed on the desktop as opposed to being displayed
in an application window. Alternatively, the ticker display pane may be in a separate application window. When in a separate window, the ticker display pane may be minimized like any other window.
4. Network Messages Displayed on the Ticker Display Pane
FIG. 4 shows a system 180 having a server computer 182 and a plurality of computer workstations 184, 186 coupled together by a network 188. The network 188 can be an Internet, Intranet, or a LAN. Other types of networks may also be used.
Additionally, computer workstations from other networks can be connected to the network 188 through server computer 182. The computer workstations may be connected to the network using a variety of hardware, such as a modem, an ethernet network
connector, or a token-ring network connector.
The computer workstation 184 is shown with a graphical user interface displaying a desktop 192 (details of the desktop shown in FIG. 3 are not illustrated for simplicity). The desktop includes a ticker display pane 194 for displaying messages
sent over the system 180 and a source identifier 196. The ticker display pane may be a part of the desktop or, alternatively, the ticker display pane may be in a window.
Using the system 180, a user on computer workstation 186 can "post" a message, meaning send a message to other computer workstations on the system. In the illustrated system, a message is posted from computer workstation 186 stating "meeting in
5 minutes." The message is transferred to computer workstation 184 through server 182 and displayed on the ticker display pane 194.
The message displayed on computer workstation 184 is integrated into a scrolling sequence of data items provided from other content providers, as described above. For purposes of illustration, the source identifier 196 is updated to indicate the
name of the user sending the message.
The computer workstation 184 also can post messages on the ticker display pane 194. To post messages, software running on the computer workstation 184 can interact with other applications, such as standard mail or scheduling applications (e.g.,
Lotus Notes.RTM., Groupwise.RTM. or Microsoft Mail.RTM.). Alternatively, dedicated software for ticker displays can be used for mail or scheduling. In either case, a scheduling application can post reminders at desired times (e.g., "meeting at 3:00")
on the ticker display pane. Additionally, if high priority e-mail messages are received, a mes | | |