WO2001031416A2 - System and method for simultaneous display of multiple information sources - Google Patents
System and method for simultaneous display of multiple information sources Download PDFInfo
- Publication number
- WO2001031416A2 WO2001031416A2 PCT/US2000/029850 US0029850W WO0131416A2 WO 2001031416 A2 WO2001031416 A2 WO 2001031416A2 US 0029850 W US0029850 W US 0029850W WO 0131416 A2 WO0131416 A2 WO 0131416A2
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- tile
- tiles
- instructions
- anay
- information
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G5/00—Control arrangements or circuits for visual indicators common to cathode-ray tube indicators and other visual indicators
- G09G5/14—Display of multiple viewports
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2310/00—Command of the display device
- G09G2310/04—Partial updating of the display screen
-
- G—PHYSICS
- G09—EDUCATION; CRYPTOGRAPHY; DISPLAY; ADVERTISING; SEALS
- G09G—ARRANGEMENTS OR CIRCUITS FOR CONTROL OF INDICATING DEVICES USING STATIC MEANS TO PRESENT VARIABLE INFORMATION
- G09G2370/00—Aspects of data communication
- G09G2370/02—Networking aspects
- G09G2370/027—Arrangements and methods specific for the display of internet documents
Definitions
- the present invention relates to methods of presenting information from a variety of sources on a display device. Specifically the present invention describes a graphical user interface for organizing simultaneous display of information from a multitude of sources.
- the user could not, for example, monitor multiple video data streams of sporting or news events; instead, the user could monitor only one video data stream at a time.
- the current art only accesses information when the user requests it.
- the user For example, if a user wants to monitor sources of news information on the Internet using current browser technology, the user must continuously mid manually request the news data from its source to determine whether tire data has been updated. Prior to requesting and subsequently receiving the data, the user has no way of knowing whether the data has been updated, hi any case, the user is unlikely to want to refresh the status of each application by manual intervention himself at the frequency necessary to ensure that the in ormation is up to date.
- a user wishes to view two or more webpages simultaneously, he must run two or more copies of the web-browser program. The act of manually refreshing the content of alternate programs in order to ascertain which have any new material to offer is fundamentally inefficient.
- the user's access to such data is not in real-time or even near real-time because each time the user wants to view the information, he must request it from its source and wait for the source to transmit it to him. Thereafter, he must wait until his communications device has received and processed the infonnation before it is presented.
- a television viewer may wish to know what is being broadcast on several channels at the same time but only care to watch one of them closely
- An Internet user may wish to be continually in touch with somces of data from audio, video, chat -room, video-conferencing and e-mail checker utilities, but not wish all of them to update at the same frequency; the user would be satisfied merely to see at a glance a recent status of each
- chat-room activities entail very little data transmission and can, indeed, be effectively updated on a continuous basis, whereas others require a great deal of bandwidth but could usefully be sampled at a lower rate.
- the current art lacks any technology for controlling the respective refresh rates of several simultaneous information sources.
- a typical communication device such as a 5 peisonal computer, television oi mobile telephone, comprises a display unit connected to a processing unit that can accept information from many diffeient sources
- the signals, data and/or datastreams that are available to such a device are diverse, Q including, for example, HTML content, e-mail, or streaming audio and video
- the softwaie tools that interpret and process the different information sources present each in a different way to the user From a user's petspective, distinctions between the different types of infounation could usefully be removed so that each is viewed 5 a similar way and such that the current presentation associated with any information souice gives an immediate indication of its current content
- the present reality is different, however The user must contend with a wide range of icons and piogram windows that may occupy space on a user's display screen
- Another lack of conformity is the different mode 0 of behavior for programs that address different types of information
- An effort to standardize the ways in which different types of information are presented to the user would be advantageous. Equally, unification of the way m which those types of infonnation aie managed would save time and increase user productivity, for productivity is reduced when 5 users must cope with different attributes of different programs and learn distinct paradigms for different types of information.
- the nature of the application program windows and their respective icons predominantly found on today's computer displays is restrictive.
- the application window typically displays the current content or output of only a single program and program icons convey nothing of the program's cu ⁇ * ent state or content.
- an icon is a static image which is merely characteristic of the program or data represented thereby rather than the program's current state or its infon ⁇ iation content. In the present art, there is no intermediate between a window or an icon.
- a window may be resized as appropriate, it will frequently occupy the full display area, effectively limiting the user to a view of a single program. It may have 15 active areas around its borders such as menu bars, scroll bars, or tool bars designed to allow the user to control aspects of the window's appearance or to set parameters specific to the operation of the program controlling it. Icons, in contrast, offer ease of display when
- GUI's of the present ait are largely restricted to icons and windows diminishes the capacity to organize, manage, and access available infonnation.
- Bookmark hierarchies are presented as cascading textual menus and database technologies arrange information into rigidly defined structures.
- the missing capability is a visual categorization in which an area of the display unit itself becomes the bookmark and the arrangement on the display becomes the categorization, independent of the type of content.
- televisions are beginniug to find application as viewers of non-television Q data, (for example through use of "'Vertical Blanking Interval" technology in which a signal is inserted into the main video signal or through set-top boxes providing limited computer and communications functionality); computers are already finding application for the display of movies, real-time data streams, and the playing of audio data; handheld 5 computing devices and mobile telephones are also being enabled to access the Internet and other information sources.
- display technologies currently lack an interface which is capable of organizing any type of information, presenting such 0 information to the user in a consistent manner and in such a way that all currently open channels are able to indicate their activity on a continual basis and which could run on any device.
- the present invention provides an easy to use graphical interface that facilitates the organization and management of multiple data sources corresponding to a user's needs and interests.
- the present invention comprises a grid of tiles that resides on the user's computer desktop.
- the grid of tiles provides a unifonn, graphical environment in which a user can access, operate, and/or control multiple data sources on electronic devices.
- the graphical environment is unifo ⁇ n with respect to the source of accessed information and can manage multiple streams of content, entirely of the user's choice.
- the invention presents video clips, e-mail messages, television shows, Internet sites, application programs, data files and folders, live video streams, music, radio shows, and any other form of analog signal, digital data or electronically stored infonnation, to the user uniformly and simultaneously, regardless of whether the information is stored locally or available via modem, TI line, infrared, or any other form of communication.
- the user's impression of the interface is also independent of the type of electronic device upon which it is implemented.
- the present invention comprises a method executed by a computer under the control of a program stored in computer memory, said method comprising the steps of: partitioning a visual display of a computer into an array of tiles in a non-overlapping configuration; assigning a first refresh rate to a first tile of said array of tiles and a second refresh rate to a second tile of said array of tiles; updating information presented to said first tile in accordance with said first refresh rate; and updating information presented to said second tile in accordance with said second refresh rate.
- the present invention additionally includes an electronic readable memory to direct an electronic device to function in a specified manner, comprising: a first set of instructions to control simultaneous communication with a plurality of datastreams: a second set of instructions to partition a display into an an * ay of tiles; a third set of instmctions to associate a first datastream of said plurality of datastreams to a fust tile of said array of tiles and a second datastream of said plurality of datastreams to a second tile of said array of tiles; a fourth set of instructions to retrieve data from said first datastream in accordance with a first retrieval rate and retrieve data from said second datastream in accordance with a second retrieval rate; and a fifth set of instructions to present data to said first tile in accordance with said first retrieval rate and present data to said second tile m accordance with said second retrieval rate.
- the application program of the present invention runs on many different devices, including, but not limited to set-top box, personal computer and hand-held device. Ihe gnd and tiles retain the same charactenstics, regardless of operating device. For example, the tiles remain individually configurable and can offer near real-time views of their data content The application therefoie permits the user's interaction with a range of electronic devices to be unified
- Fig 1 shows a representative embodiment of the user tei face of the present invention comprising a grid of tiles as might be depicted on a display screen.
- Fig 2 depicts a system that, in accordance with the present invention, accepts data m at least one form through at least one port and which additionally displays data to a user.
- Fig. 3 shows stylised examples of an icon and an application window as are commonly found in computer display systems of the background art.
- Fig. 4 shows several tiles as might be found in a typical embodiment of the present mvention.
- Fig. 5 shows an exemplary data structure of the tile object within fire graphical user interface of the current invention.
- Fig 6 shows one embodiment of a tile in maikup language
- Fig 7 shows the hieiarchy of software objects underlying the current invention, comprising a gnd object, tile objects and files or application software
- Fig 8 shows an exemplary layout of the display produced by the current invention
- Fig 9 shows an alternative exemplary layout of the display produced by the current invention
- Fig 10 shows an exemplary layout of the display of the current invention wherein a tile contains anolhei instantiation ot a grid
- Fig 11 shows an exemplary layout of the display of the cui ⁇ ent invention including specific examples of tile contents
- Fig 12 show ⁇ the data stnictuie o the gnd object which forms part ot the graphical user 5 lntetface of the current venUon
- Fig 1 shows one embodiment of a grid in markup language
- Fig 14 shows a sequence of windows that demonstrate how a gnd might be set up for initial Q use by a '"wizard" tool in one embodiment o the present invention
- Fig 15 shows an example of the architecture of the computer program m a piefe ⁇ ed embodiment of the present invention
- Fig 16 shows the architecture of the application program and its components m a preferred 5 embodiment of the present invention
- Fig 17 shows the aiclntecture of components ot the computer program m a prefened embodiment ot the present invention
- Fig 18 shows an outline of the widget-set used m a preferred embodiment of the piesent 0 invention
- Fig 19 shows an outline of the metabase according to a preferred embodiment of the present invention
- Fig 20 shows an outline of the XP Core and its interaction with the operating system library 5 m a preferred embodiment of the piesent invention
- Fig 21 shows an overview of the event system utilized in a preferred embodiment of the present invention
- Fig. 22 shows an overview of the connection layers that are responsible foi controlling the download of multiple web-pages from the world wide web
- Fig 23 shows a number of functions used by the bandwidth controller
- Fig 24 is a schematic representation of the relationship between a server and a client device
- Fig 25 shows a series of interactions between a client device and a server
- Fig 26 shows how a user, a server and third party content providers communicate in accoidance with an embodiment of the invention
- Fie 27 shows an embodiment which the application program communicates with one oi moie wireless devices
- Figme 1 shows an lllusnative configuration of the giaph cal user interface of the present invention
- a grid 1 consisting of a 3 by 3 matrix of nine tiles demonstrates some of the different contents that tiles can display.
- Tile 10 points to a database of stock quotes
- Tile 20 displays the active folders an electronic mail utihty.
- Tile 30 displays a portion of an alphabetical list of quoted companies
- an information source may compnse any analog signal, source of digital data or a datastream, including, but not limited to, video, audio, text and graphics
- the information may be m any format, including but not limited to ASCII, bitmap, MP3, JPEG, GIF, TIFF, a mark-up language such as HTML, XML,
- VRML VRML
- HDML formatted text such as rich text format, or binary.
- FIG. 2 is a general representation of a data display system 100 within which the present invention may be implemented
- System 100 compnses a central processing unit
- an input device 106 data connection ports 108-1 through 08-N, a display 110 and a ma memory 112, all connected via bus 116 Residing in the memory 112 is an operating system 120, a file system 122, a cache 124 for temporary storage of information, application programs 128-1 through 128-N and a graphical user interface (GUI) program 126 that is responsible for presenting information on to display 110 Infonnation may enter the system through any one of the ports 108-1 through 108-N which may themselves be connected to a tuner 1 14, or via a network interface 134 to a communications network If a tunei 114 is employed, it may channel input iiom a wireless signal 130 oi a cable network 132
- system 100 is a personal computer such as a desktop workstation or a portable notebook computei.
- the input device 106 may be a keyboaid, mouse, trackpad, trackball, or any combination thereof and the display 110 may be a conventional cathode ray tube (CRT) or active matrix flat-screen display
- CRT cathode ray tube
- the netwoik interface 134 may then be a connection to the internet or to a local area network via a cable and modem or a digital subscnber line.
- system 100 is a mobile phone oi personal digital assistant and the input device 106 may consist of seveial buttons on a keypad, a touch-sensitive screen with a touching device oi a microphone and voice- recognition software.
- the display 110 is preferably an LCD scieen oi an electroluminescent display and ports 108 receive data from radio signals or a portable modem.
- system 100 comprises a set-top box wherein display 110 is a TV screen or monitor and tuner 1 14 accepts input in the form of a wireless signal 130 from broadcast transmissions or cable signals from the cable network 132.
- Input device 106 may be a hand-held remote control apparatus or buttons located on the set -top box or touch-sensitive areas of display 110.
- a graphical user interface is a computer program that resides in memory 112 of some data piocessing system and that provides means for presenting information, input to and output from application programs 128 or content of datastreams from ports 108 on an associated display.
- each datastream is associated with a window.
- the graphical user interface allows a user to control the a ⁇ angement and display format of the dala content in each window.
- a graphical user interface permits a user to specify and alter operating parameters of application programs running on the system though, at any given time, a particular application program will take priority, meaning that a particular window will be displaying continually updating content
- Typical operating parameters that may be changed depend upon the application progiam but include the number of buttons on a tool bar and numbei of visible toolbars, the size of the text displayed and the color of the background
- the gi plucal user interface of the current invention not only permits a user to control the layout of the data content but to prioritize each application program running on the system and each datastream of interest
- a novel feature of the present invention is that the data content of any number of the programs can vary in real time and the rale at which the display of each is updated can be controlled by the user.
- tile objects are introduced and descnbed and contrasted with existing elements of graphical user interfaces.
- a tile presents content from any infonnation source.
- Conventional graphical user interfaces of the background art provide two distinct representations of programs, files and datastreams, as shown in figure 3.
- One representation is an icon 320, the other is a window 340.
- An icon typically occupies only a relatively small proportion of the available display area and is an easily recognizable depiction of the program or file, either through its logo 322 or some characteristic picture with the name 324 of the program visible.
- An icon can be selected by, for example, a touch screen pointer, a cursor controlled by a mouse with a button or by a keyboard stroke or any combination of the foregoing.
- the graphical user interface will provide a window that can be used to communicate further info ⁇ nation to the program or review the associated datastream.
- the window may occupy a substantial percentage of available screen space, usually 90- 100%.
- the window 340 usually comprises a title bar 348 and a display area 354.
- the window 340 can commonly be resized by the user for example by using buttons 352 or a draggable area 356 and has a format which contains many active areas around its borders.
- Examples of active areas include a menu bar 342, a vertical scroll bar 344, a horizontal scroll bar 350 and one or more tool bars 346.
- Each active area may be used to control aspects of the window's appearance or to set parameters specific to the operation of the program associated with it such as text formatting options in a word-processing package or redirection of a web-browser to its stored home location.
- Tiles permit "dynamic bookmarking" of information in that each tile is a viewer of a single information source - including streaming data sources - and can be customized with the user's choice of content.
- a tiie is different from an icon because it provides a real-time or near-real time view of the underlying information in that it contains continually refreshed content.
- a tile is different from a window because a tile will typically be smaller in size, allowing the user to view multiple tiles simultaneously if desired.
- a tile provides an at-a-glance view of the current status of the program or file associated with it but does not necessarily have the large number of active areas associated with windows such as title bar, menu bar and scroll bars. Therefore tiles lead to a reduction in clutter on the display screen because many tiles may be displayed simultaneously without overlapping with one another in the way that windo s must necessarily do.
- Tiles are supenoi to icons because they give an immediate indication of the current state of the file or program and have utility functions associated with them, as described below
- Another advantage of usmg tiles is a umfo ⁇ nity of appearance between tiles which correspond to different programs and datastreams The display content of a tile will differ from application to application though its size and format need not
- a tile is associated with a progiam, file or datastream, in the same way that an icon and a window aie
- a tile may present data any of a numbei of ways
- the tiles may present a miniaturized, "thumbnail” view of the undei lying information, a "'porthole” view of a portion of the undei lying infonnation as viewed at full size, a symbol indicating whether the information has been updated since it was last viewed, or a custom interface designed to allow rapid access to the underlying infonnation
- the way m which a tile displays content may be independently configured foi ach tile
- FIG. 4 illustrates representative tiles
- Tile 402 displays a pictuic or giapluc such as may be stored m a bit-map, IPEG, TIFF oi GIF file, or on a w orld-wide web page
- the content of tile 402 is typically a miniaturized representation of a graphic or still-frame from datastream
- Tile 404 displays a portion of a text document or text of a world-wide web page
- the tile 406 displays a further array of tiles that maybe displayed in full by expanding tile 406 to occupy the full area of the display
- Tile 408 has been configured to link to an electronic mail program
- An alarm setting associated with tile 408 has been configured so that the ale displays an envelope and the message "New Mail 1 " when an unread message has been received by the mail progiam
- Tile 410 displays a name, "FM 101", denoting the title of a broadcast signal, in this case audio, that is associated with the tile
- Tile 412 displays a "thumbnail” of the document viewed in a window such as 340.
- a "thumbnail”, as used herein, is a miniaturized representation of an image tiiat retains sufficient characteristics to permit easy recognition of the image. For example, if the document displayed in a window were a multipage document, tile 412 may display a thumbnail of the first page of the document.
- Tiles are selectable and live. When a tile is selected, whether by mouse click or otherwise, the tile instantly provides the user with access to the underlying information, whether that data be a hierarchical menumg system leading the user to a different level or tiles, a word processing file stored on a local area network, a spreadsheet stored locally on a user's computer, HTML file on the Internet, or a television signal
- the tiles are live in that each contains leal-time or near real-time information.
- a selection operation is associated with a tile. For example, clicking on a tile will cause it to immediately refresh its contents. Selecting tile
- tile 402 causes the most recent frame of the video stream to be displayed by the tile, or, if the picture were obtained from a static graphic file, causes the most recent version of the file to be displayed by the tile Selecting tile 404 or tile 412 causes the most recent version of the document to be displayed.
- double-clicking a tile causes that tile to occupy a substantial fraction of the whole display area.
- double clicking tile 402 or 412 causes the image to be expanded to fit the whole display area
- selecting a tile causes it to occupy an area m the middle of the display that is larger in area than a single tile but does not occupy the full display. If tile 404 were double- clicked, as much of the document as could be displayed m the enlarged tile in regular font size becomes visible.
- Double-clicking tile 408 causes the mailbox window of the e-mail utility to be sufficiently enlarged to allow new messages to be selected and read.
- Double- clicking tile 410 causes the audio stream to become audible over the appropriate channel of the system.
- a representative tile data structure 500 is shown m Figure 5. It is important to understand that the tile itself is an image that at any given instant is resident on the file system. This image is separate and distinct from the application program or file associated with the tile
- the tile data structuie 500 comprises two addresses: a tile address 502 that defines the location on the file system where the tile image is stored; and a target address
- Tiles of the present invention may be assigned at least seven functions, including but not limited to: an initialization function 508 tiiat is responsible for establishing connection with the target addiess 504; a refresh function 510 that handles updates to the tile image stored at the tile address 502, a screen-size function
- a tile is configured so that a right-click of a 2-or 3-button mouse while the cursoi is over the tile would activate the tool-bar function.
- right-clicking on a tile can reveal a menu of options that enable the user to ascertain properties of the tile, such as the bandwidth it is consuming
- the tile is itself a document created in a markup language such as HTML or XML as shown m Figure 6 and is suitable for display in a web-browser.
- a tile occupies a position in a table defined with elements of mark-tip language which will be familiar to one skilled the art.
- Tile-specific attributes are introduced which control the way in which a web-browser displays the tile n the example in Figure 6, the tile has a clickable map, i e , separate areas of the tile produce separate results when clicked Also, this tile has a toolbar, which in one embodiment may appear if the mouse is right-clicked when the cursoi is over tiie tile
- tiles communicate with one another and have conditional content. That is, the content of one tile depends upon the content of another.
- Grid 700 is the top level functionality to which application piograms are subordinate 7.
- he grid can replace the functionality of a user's computer desktop and offers similar and additional featuies.
- Gnd 700 comprises a matrix Q of tiles of which tiles 702, 704, 706, 708 and 710 are representative
- the user can control the grid m such a way that the tiles 702, 704, 706, 708, and 710 present simultaneous information content from a plurality of somces
- the grid controls the layout and priorities of the tiles
- Each tile is associated with a data stream or application program and allows a 5 choice of displayed images, hi particular, different tiles can be associated with different contents
- tile 702 is connected to a web-page viewer 712 such as a biowser Tile 704 is connected to a source of streaming video 714, such as Real Player Tile 706 is connected to an audio player 716 such as a CD-player program or a source of streaming 0 audio such as Real Audio.
- Tile 708 is connected to a file viewer 718 such as a text-editor or a word-processing package.
- Tile 710 is associated with another grid object 720, thereby permitting a "layenng" of information hierarchies
- a grid embodies a similar undei lying data structure to a tile 5
- Each tile is separately associated with a source of information, for example, an application program, datastream or file, any one of which may be another grid object
- a hierarchical structure permits a user to organize programs and infoi ⁇ nalion through the graphical user interface For example, separate categones of infonnation can be displayed on separate grids allowing each grid to be associated with a theme
- a user may specify a presentation of the gnd, consisting ot its dimensions, ( ⁇ e , the numbei of tiles to display and their arrangement), and the programs or files to be associated with each tile
- ⁇ e the numbei of tiles to display and their arrangement
- the programs or files to be associated with each tile A smgle gnd, composed ot multiple tiles, may theiefore present a number of infonnation sources simultaneously
- the gnd and tiles compnse the application through which a usei can view simultaneously information from a multitude of his available sources mcluding multiple 5 sites on the Internet, receive signals from multiple broadcast channels, and open and view multiple files
- the application may be run through conventional computer operating systems, whereupon it overlays the user's desktop and acts as if it were Q a "borderless browser".
- the application resides ovci existing applications without replacing any of them; rather it enables them to be called from the grid itself
- the application, iherefoi e becomes a graphical file manager in which the content of contm ⁇ ously changing files, t e , datastreams, is being displayed in leal-time or near leal- 5 time, depending on the assigned pi lonty Effectively the application replaces the user's desktop with a more visually intuitive dynamic menuing system
- a g ⁇ d of tiles replaces the functionality of the computer
- a tile may refer to a separate grid permits nesting of grids and consequently a hierarchy of organized information sources.
- the grid also understands the interests of the user and acts as a repository for passwords and identifiers to subscription services. In this way, it is not necessary for a user to remember and enter a user name and password to access data requiring such a log-in.
- Internet sites of interest can be "bookmarked” and stored by the grid, each such site possessing its own tile.
- the grid is also nestable in that a tile in one grid may point to a separate grid and tiles in the separate grid may point back to the first grid or to yet more grids. If desired, a user can impose a "theme" on a grid and thereby categorize, group, and/or otherwise manage his data sources.
- the user can group tiles relating to particular subject matters, Internet sites, documents, or otherwise in a ⁇ rid according to some speciality.
- a tile in such a grid could link to another grid to provide a connection between related categories.
- a tile on more than one grid can point to the same information source.
- the grid pennits a regular layout of tiles on the display screen such that the tiles are unifonn in size and shape, as depicted in Figures 8-1 1.
- Each tile is indexed by its position on the grid. For example 802-2-1 is the first tile in the second row. Tiles in the first row of the grid are 802-1-1, 802-1-2, 802-1-3 and so on, to 802-1- .
- Tiles on the second row are 802-2-1, 802-2-2, 802-2-3 and so on, to 802-2-N. And, tiles on the bottom row are 802-M-l, 802-M-2, 802-M-3 and so on to 802-M-N. There are no gaps between the tiles, the tiles are not permitted to overlap and the whole grid is covered by tiles.
- Figure 8 shows one embodiment in which all tiles are the same size and are presented in an array comprising M rows and N columns. There is no particular requirement that the arrangement consists of more than one row and more than one column. On the display of a mobile telephone or smart phone, for example, a single row of tiles may be apposite.
- Figure 9 shows an arrangement in which there is a unit tile size, that of tile 802-1-1, but tile 802-1-2 and tile 802-N-l have each been configured to occupy regions of the grid equal to exact multiples of the unit tile size. Such an arrangement may be useful and important if one or more datastreams is of particular interest but the others are also to be monitored at the same time.
- Figure 10 shows an arrangement of tiles in which Tile 802-M-l is associated with a further grid 1000. The lower half of the figure shows an enlarged perspective of that tile showing a grid with Y columns and X rows.
- FIG 11 shows an arrangement of tiles in which are depicted different application programs associated with three of the tiles.
- Tile 802-2-2 links to a file viewer displaying a specific file;
- tile 802-N-l presents streaming video;
- Tile S02-M-N depicts a page of information on the world wide web.
- Figure 12 shows a schematic data structure of the attributes of one embodiment of grid object 700.
- the architecture shown in Fig. 12 applies to any grid, including a top-level grid 700 shown in Fig. 7 as well as to a grid that is contained within a tile.
- the grid manages the flow of infonnation to the tiles.
- the grid can communicate with the display device in order to determine its current configuration and allocation of resources.
- the grid continually cycles around the currently displayed tiles, one by one, refreshing the content of a tile each time it is accessed. When a given tile is refreshed, the refresh operation is completed before refreshing the next tile in sequence.
- the cycling rate may be set so that the current content of all tiles are reasonably up to date.
- the cycling can be interrupted by a user selecting a given tile, so that that tile alone becomes continuously updated. In this way, the user does noi need to worry about manually refreshing multiple tiles.
- the grid manages the refresh rate of each tile in the grid.
- the user might configure the tiles to refresh only when the underlying data is written to the local hard drive.
- a user might configure tiles containing infrequently updated HTML data from rhe Internet to refresh at a certain time each day.
- a user might configure an active tile to display a television channel at a refresh rate of 29 frames per second, while at the same time configuring inactive tiles to display different channels at a refresh rate of once every five seconds. In this way, a user could monitor many channels until program content of interest appeared in one of the tiles without the burden of actively refreshing each tile.
- the grid itself has an address 1204 that specifies its location within the file system of the device in which the application program program runs.
- the grid has associated with it several utility programs: a configuration wizard 1206 that may be called by the user when setting up a new grid; a tile creation function 1208 utilized hy the configuration wizard when initializing new tiles; a tile amiihilation function 1210 utilized in case of error or when resizing the grid.
- the grid object stores the number of rows 1212 and the number of columns 1214 of tiles that are present.
- the grid also stores a tile list 1216 containing attributes of each respective tile. In particular, the address of each tile, its priority and its refresh rate are stored by the grid program.
- the grid also stores other attributes of tiles such as their respective positions on the grid as given by their column and row number.
- the priority of a tile may be used to determine its refresh rate in one embodiment of the present invention.
- a tile can have a password feature built into it if it is desired to restrict access to the tile's content.
- the grid itself can have a toolbar by which its attributes may be accessed and modified.
- a grid is a special form of a tile. It is a tile that can create and manage an anay of other tiles. Accordingly, its data structure also comprises those elements of a tile data structure shown in Figure 5 in addition to those shown in Fig.
- the address of the parent grid 1202 is stored.
- grid 1000 associated with tile 802-M-l of Figure 10
- the grid can be configured to contain any number of tiles from one to as many as can reasonably fit on tire user's display.
- the grid is a document created in a markup language such as HTML, SGML or XML, Figure 13 and is therefore suitable for display via a web-browser.
- the addresses of the parent grid, the grid itself and each of the tiles is expressed as a Universal Resource Locator (URL).
- URL Universal Resource Locator
- the various functions controlled by the grid are accessible through function calls devised according to methods familiar to one skilled in the art For example, "dynamic HTML", Java applets or simple CGI-scnpts could provide the technological basis for enabling vanous grid utilities.
- the application may be downloaded from a pre-determined web-site and operates in a client-server mode. Users may download preconfigured grids from the predetermined 5 server A grid configuration "wizard" program which guides a user through a step by step set up of a custom-grid may also be downloaded Other web hosts are able to deliver content to end-users via the predetermined server. Some basic functions of tiie grid can be o carried out on the predetermined server and provided to the user.
- the set up of a particular grid is 5 achieved through a grid configurauon prog ⁇ am (“wizard") that is downloaded to the display device from a remote site.
- the grid configuration program permits a user to define and install one or more grids on the client system. When a tile is partitioned into a further anay of tiles, the grid configuration program can also be used.
- One embodiment of the user 0 interface of the grid configuration wizard is shown in Figure 14.
- a first screen displayed by the grid configuration wizard comprises an application program logo 1404, button 1406 to guide the user to the next screen and a number of choices, such as 1408.
- the user is offered the choice of preconfigured, or "standard" grid 5 configurations, selected from a list. Examples of such grids include grids themed by content such as sport-related gnds or by type of data such as gnds whose content is video- based.
- a tiled area 1416 represents the gnd that the user is building.
- Sample tile categories 1418 such as "weather”, “news”, “stocks”, or “sports” are listed.
- a grid can be filled by the "drag and drop” technique in which a selected document 1414 is moved on to the display area of the grid configuration program and automatically becomes a tile.
- a button 1410 offers the user the chance to go back one screen.
- a third screen 1420 displayed by the grid configuration wizard the user can name the grid and, optionally, store it for future reference, for example in an archive of prefened gnds
- the user can elect to finish gnd construction by clicking the "Finish" button 1412, or launch the gnd immediately by activating button 1422
- the grid is automatically constructed on the fly according to the content and tile types specified by the user dunng the set up procedure
- FIG 15. The hierarchy of the software in a prefened embodiment of the present invention is illustrated in Figure 15.
- the software comprises a number of modules.
- an anow connecUng two modules means that one module uses an interface of the other. The anow comes from the module invoking the interface towards the module whose interface is bemg mvoked
- An interface may simply be a function call between the two modules or, for example, a call to a dynamic linked library (DLL).
- DLL dynamic linked library
- the Surfcast application program 1500 takes its underlying data from two sources, metabase 1506 and a system library 1514 that resides on the device on which the application program is running. For example, the application program 1500 may be required to call functions from the system library while it is running. Actual tiles that a user visualizes can be spawned from the metabase 1506.
- Data structures for user tiles 1502 are obtained from the XP core 1504 which itself also utilizes components from the system library 1514.
- the XP core is an abstraction layer for the operating system environment. Tiles that utilize components such as buttons take these components from the widget set 1508.
- a widget is a basic user interface element such as a button or a text input box.
- the metabase also uses an interface of the widget set 1508, and can therefore use functions within the widget set.
- the widget set requests functions from the XP core.
- a URL loader 1510 decides whether content should be obtained afresh by contacting the connection manager 1512, or from content previously stored m cache. Effectively, the URL loader manages the connection manager, and calls functions within it. Underlying all of the application program's operations are functions from the operating system library 1516 that is supplied with the device on which the application program is running.
- the Surfcast application program 1500 in Figure 16, comprises a launcher 1618 and a framework 1620.
- the launcher opens the program from scratch whereas the framework is responsible for managing grids and tiles.
- the user interacts directly with the framework to set up a prefened anangement of tiles on the display.
- the framework initially contains a prescribed set of tiles.
- the framework controls communication between tiles, for example, in the case of conditional content.
- Tiles 1502, Figure 16 are the equivalent of an application in a conventional GUI system. They can be built in C++ using the Surfcast tile builder application program interface (API) usmg XP core classes, or via a utility such as a custom tile editor or via a scnpt file Some predefined tiles are included with the basic Surfcast system including a web browser tile called a surftile 1602, tiles for contacts and commumcations such as a chat tile 1604 and an e-mail tile 1608.
- API Surfcast tile builder application program interface
- Media-player tiles such as a video tile 1606 are also supplied, as are tiles that interface to commonly used desktop programs
- a word tile 1610 interfaces to a word processor
- excel tile 1612 interfaces to a spreadsheet program
- Reg tile 1614 is a general purpose tile that permits a user to define his own tile type
- tiles may additionally be repiesented by markup language files and viewed within a web-browser environment
- the data classes XP core 1504, Figure 16 comprise base classes and utility classes with which tiles and widgets are built
- classes within the XP core descnbe how tiles can communicate with one another and with the overall application program framework 1 20
- XP core classes are generic and portable, thereby permitting cross platform capability
- XP core classes include tileba ⁇ e 1622 for the genenc class that underlies all tiles, tile base view 1624, tile controller 1626, canvas 1628, and classes for event handling 1630
- Tile base view is the base class for all views associated with a visual object
- a controller processes events, for example mouse moves, chcks, keyboard events and external events
- Tile controller is the base class for controllers associated with a tile
- a canvas is an area of screen on which to render some unage, for example a tile
- the metabase 1506, Figure 17, is a local store for platform-specific implementations of the descriptions of tiles, grids and other objects Tiles, grids and content are created, saved and restored via the metabase.
- the metabase contains tile type and content type registnes such as tile registry 1732, and a local database of grids and content such as content store 1734 and grid store 1736 Unknown tile and content types can be obtained from remote servers.
- Tile types are abstracted so that if a grid contains a particular type of tile, for example an e-mail tile, the metabase provides whatever is appropriate for the device the applicaUon is n ning on. Items in the metabase are "persistent", that is they are not saved explicitly but are preserved from session to session
- the widget set 1508, Figure 17, comprises a platform-specific set of visual components that tiles can use Widget set contains the predefined widgets that are included with the system. It can be extended with new widgets. It mcludes such useful widgets as a button 1738, a label 1740, an edit widget 1742 that enables a user to enter text into an editable field and a list widget 1744 that enables a user to select from a set of options. Items within the widget set can be used with tile types such as text input tiles, web browser tiles, and a streaming video tile
- the term widget can also include more complex objects such as a video player that can be inserted mto a tile as easily as a button.
- the URL loader 1510 provides a mechanism for retrieving content.
- the URL loader 1510 interacts with connection manager 1512 for tiles which need to make a network connection. Tiles and the metabase ask for content for a given URL and the content manager will attempt to retneve it.
- the metabase also contacts the connection manager through the URL loader to ascertain whether there is sufficient bandwidth for the transfer.
- the connection manager decides whether the URL loader should furnish tile content from the cache 1746, as would be the case if the content has been recently displayed and stored locally. Alternatively, if the content is not cached, the URL loader supervises loading of content from the location specified by the URL.
- the URL loader also comprises a file manager 1748 for organizing the cached content.
- the URL loader additionally comprises a DOM (data object model) renderer 1750 that administers the parsing of pages in markup languages such as XML and HTML.
- the URL loader may also comprise an implementation of an API for XML rendering such as SAX. In an alternate embodiment, such an API may reside in the XP core module.
- the system library 1514 comprises commonly used utilities within the application program, including, but not limited to, code for string manipulations, file handling and server communication.
- the system library module comprises generic code and can be compiled for any operating system.
- the operating system library 1516 comprises utilities that differ in their implementation from system to system but are needed for operation of the application program.
- utilities that may be found in system library 1516 are those that provide support for threads and synchronization 1752, debugging tools 1754, graphics libranes 1756, further basic string manipulations 1760 and connections 1762.
- useful items in the operating system library include utilities that permit definitions of objects, sockets, input devices and hardware devices. Items in the operating system library are accessible through classes with documented public interfaces.
- the widget set 1508 contains widgets for various functions such as buttons, text labels, etc. Illustrated in Figure 18 is a set of widgets for buttons.
- Figure 18 shows the class hierarchy for the button widget.
- Base classes for widgets are grouped together in box 1809.
- Widget class 1810 is a container for other classes. All widgets use the base class widget 1810 stored in the XP core module and further described later. Accordingly, button 1800 is a specific class inherited from widget 1810.
- Widget view 1812 is a class, also stored in XP core, that defines the look and feel of the widget.
- Button view 1802 inherits from widget view and controls how a button draws itself
- user tile 1816 comprises three objects, tile controller
- Tile view is responsible for drawing the tile and can employ one or more widgets.
- a button is something that a user can click on.
- a button provides button events to a button event consumer.
- a button event consumer is also known as a client, i.e , clients that use buttons implement button event consumer 1808 to be notified of button events.
- a button event consumer may be a "play" function in a video tile.
- the button event consumer interacts with a control stnicture tile controller 1626 associated with a user tile 181 by telling the tile that the button has been activated.
- Button event consumer 1808 is itself a class that inherits from an event consumer class, described later.
- Button controller 1804 controls how button events are processed, for example mouse and keyboard events. It inherits class stnicture from widget controller 1814 stored in
- XP core Not all button events aie recognized by the button controller: for example, a particular key-stroke may have no effect on the state of the button.
- Metabase 1506 is further described with respect to Figure 1 . Anows between the components in Figure 1 denote interfaces The metabase compnses a registry 1900 and store 1902 of tile and gnd types, a content store 1918 and a content and tile link database
- Content store 1918 is a cache that contains content of tiles for the previous session.
- Content tile link database 1 20 copes with descriptions of relationships between tiles and also themes of content for related tiles. This database can also be used in the context of
- the tile type registry 1 00 contains a list of tile and widget types along with information about how to create them and what they are called, along with other information such as pointers to objects from which tiles are created.
- the tile and grid store
- 1 02 contains a library of stored grids and tiles. Tiles can save themselves or be restored.
- grids are just special cases of tiles. Tiles from the tile library can be called and displayed on the screen by asking the registry to load tiles. The tile and grid stoie interfaces to an XML library 1 06.
- Tiles from the tile and grid store can also be saved outside the metabase in a library of markup language files, e g., an XML library 1906.
- metabase tile 1904 which utilizes tile base 1622 from the XP core module. AU tiles inherit from this class
- DLLs can contain additional tiles and widgets that can be created by independent third parties. These can be implemented within the metabase through the tile factory 1916 and tile creator 1 14, both of which interface to the tile type registry 1900.
- the tile factory can be implemented within the metabase through the tile factory 1916 and tile creator 1 14, both of which interface to the tile type registry 1900.
- Tile creator 1914 is the code that does the tile creation at runtime. In general, independent creation of tiles is facilitated by supplying a tile toolkit to third parties.
- Inquiry utility 1912 is an optional means for an outside user to interface to the metabase, for example to ascertain the class structures of stored tile classes.
- the content store 1918 follows a similar pattern to the tile type registry and the tile store.
- the content and tile link database 1920 is a database of information about how tiles and grids are related, and how content is related between them.
- Figure 20 shows a further description of classes found in the XP core and their interaction with the operating system library 1516. As discussed below, some anows between ob j ects within XP core denote inheritance of classes Canvas 1628 descnbes an area of screen that can be drawn to.
- GfxContext 2002 is a set of graphics pnmitives, for example for line-drawing, colors and space filling It is a genenc version that encapsulates and abstracts operating system-specific features inhented from GfxContextFactory 2032 the operating system library 1516 Win32 GfxContext 2034 is an example of a graphics context used with the Windows operating system Other GfxContent 2036 includes alternative platform dependent graphics contexts
- Til ⁇ base 1622 is the base class for all visual objects such as tiles, widgets and gnds The tile class 2010, and widget base class 2016, hent from tile base.
- a widget effectively functions as a special kind of tile that can be placed mside a tile. Widget base
- Tile base view 1624 is the base class for all views associated with a visual object
- a view is what a tile uses to draw itself
- tile view 2012 Also inhenting from tile base view is tile view 2012, the base class for all views associated with tiles and widgetview 1812, the base class for all views associated with widgets Tile base view and tile base interface with canvas 1628.
- Tile base controller 2008 is the base class for all controllers associated with a visual object Inheriting from tile base controller are tile controller 1626, the base class for controllers associated with a tile and widget controller 2020, the base class for all controllers associated with widgets A controller processes all events Tile base interfaces with both tile base view 1624 and tile base controller 2008 Tile base controller interfaces to event system 2022 Finally, event system 2022 communicates between the operating system library 1516 and the tile box controller 2008
- Event system 2022 is further descnbed with respect to Figure 21.
- An event can be any one of a mouse movement event, another mouse event such as a mouse-click, or a keyboard event such as a keystroke.
- event 2112 is the base class.
- Other classes such as mouse movement event 2106, mouse event 2108 and keyboard event 2110 derive from the base class by inhentance.
- the event consumer 2104 is a class responsible for directmg events to the controller.
- the event producer 2102 is interpreting system events into Surfcast events for an event consumer, the boxes 2122, 2124, 2126, 2128, 2130 an
- 2132 are multiplexes handling the case where midtiple clients are affected by multiple types of events. An event is communicated to tile base controller 2008
- each tile When two or more tiles connect to sources of data available over a network, communication must be established in such a way that the rate at which updated data is transmitted to the grid can be controlled.
- a flow control protocol such as TCP is required.
- each tile can communicate with the remote datastream to which it is linked and a determination can be made of available bandwidth at the time of data transfer.
- flow control is not necessary because communication with the server suffices, as is described below.
- a hierarchy of layers manages the simultaneous connection and allocation of resources to different world wide web sites, as shown in Figure 22.
- the layer structure applies to the way in which any given tile downloads content.
- the surf widget communicates with a surf widget controller 2202 a control layer 2201 Also m the control layer is a web browser apphcation program 2204 Examples of such a program mclude Microsoft's Internet Explorer and Netscape's Navigator software
- the surf widget controller 2202 handles the interaction between the surf widget 2200 and the web-browser 2204
- the surf widget controller also passes on requests from the browser to die URL Manager 2206 in the next layer, the URL layer 2205
- the surf widget controller then pipes back the results to be rendered to surf widget
- a typical example of this process in operation would be a user clicks on a hyper-link in a web-page, the web-browser makes a request for that page to surf widget controller 2202, the request gets handed to the URL manager 2206, once the page is loaded, the URL manager 2206 notifies the surt widget controller, which in turn sends the infonnation to the web-browser for rendermg
- the responsibility for obtaining pages of content is that of the URL layer 2205
- the URL manager 2206 issues a request for the page and any subsequent media to the connection manager 2210
- the URL manager keeps track of the requested URL for future use, if it is requested again
- the URL manager also queues up
- a pre-fetch utility such as URL pre-fetch manager 2208 can be implemented It saves the user time if items can be pre-fetched instead of waiting for their download Several strategies can be used to try pre-fetch items for the user. Using a history of a user's previous browsing habits, it is possible to predict what the user will probably want next Another function of a pre-fetch utihty is to penodically check the validity of items in the cache and to make sure they are up to date As would be familiar to one skilled in the art, some of the new HTTP1 1 methods would prove very useful for this, namely the conditional gets Another strategy is to start loading links from the page that a user is browsing, regardless of whether the user has selected the links. Although such an approach could be very wasteful of resources if there are a lot of links and very few are ultimately accessed and also because a lot of Unks tend to be advertisers, in situations where very high capacity bandwidth exists, this approach could be effective.
- connection layer 2209 handles each individual request for download passed to it through the URL manager, regardless of whether it is an HTML page, a graphic or sound file.
- the connection manager 2210 understands the total bandwidth available for allocation, for example, whether the device is connected to a modem or a T-l line. It will also manage the connection to the requested site and maintain its own cache. Before making a network request for an item, connection manager 2210 first checks its cache, the connection manager cache 2212 If the item is not in the cache, the connection manager then passes the request 15 off to the HTTP protocol socket 2214 in the protocol layer 2215 The way m which HTTP protocols and caches work is familiar to one skilled in the art.
- the protocol layer 2215 consists of a suite of different socket types, 2214, 2216 and
- the socket layer 2219 comprises at least one socket 2220
- the socket layer wraps
- the socket keeps track of its bandwidth usage, which can then be queried at the connection layer.
- the socket layer then facilitates bandwidth management.
- the dynamic bandwidth allocation feature involves the URL loader, the connection manager and the bandwidth controller
- URL pass certain parameters to the URL loader which manages all such requests from the tiles. These parameters include the URL itself, the priority of the tile, the minimum bandwidth requirement if any, and the maximum bandwidth requirement, if any.
- the URL loader detects the need for a connection to a network resource, as would be notified to it by the connection manager In the case of dial-up connections, the connection manager is responsible for allocating the modem resource and making the dial-up. Once a connection is made and the network resource is available, the URL loader requests the bandwidth controller to start delivering the required content, talcing into account the additional parameters for each request
- the bandwidth controller 2300 is an object that comprises a number of functions, as shown in Figure 23.
- AddURL 2303 is a function used by tiie URL loader to add an additional connection request to those already considered.
- RemoveURL 2304 is used by URL loader when cancelling or aborting a request.
- GetURLStatus 2306 is used by URL loader to obtain a status report for a given request
- GetStatus 2308 is used to obtain a general status report for the overall bandwidth.
- the bandwidth controller is additionally able to execute a main cycle loop over the outstanding URL requests for the purposes of managing the bandwidth among them
- the step of calculating the bandwidth obtained per request utilizes a function that calculates obtamed bandwidth for each of the managed requests, mcludmg requests that are stalled (or postponed) due to pnority issues This calculation takes place frequently because of the nature of the network
- the bandwidth obtained can vary drastically even dunng the course of the individual network transaction, and therefore a priority based dynamic system must continuously accommodate such fluctuations
- the result of calculating the bandwidth obtained is used both Tor feedback to users and for making decisions in the subsequent steps within the mam cycle loop
- the step of checking for the need to postpone, stall or cancel lower pnority requests is another precautionary mechanism to use for the purposes of adjusting the cunently active connections If outstanding requests are not achieving the desired mimmum bandwidth, or an actual bandwidth in line with the pnority of a given request is not achieved, bandwidth must be made available to the higher pnority requests, by stalling, cancelling or postponing lower pnonty requests
- a throttle feature implemented consistent with the layer nature of the stack can be applied wherein the frequency of issuing requests can be decreased
- a complete cancellation of a request followed by reload from cache is usually the last resort.
- the step of checking for the need to increase higher pnonty requests has the opposite effect If applied, higher pnority requests are increased by means of spawning additional simultaneous requests, or by increasing the throttle mentioned above Both the steps of checking the need to postpone and checking the need to increase a priority can provide feedback to the user in terms of their success or failure. Status parameters can additionally be collected and calculated.
- the step of detecting completed requests and notifying the requestor utilizes a function for handling successful completed requests. Conversely, the step of detecting undehverable requests followed by reissuing or canceling the request i necessary is the mechanism for avoiding undehverable requests, or retrying temporanly unavailable requests
- connection layer may also be called, as maybe necessary for supplying in ormation to the layers above the connection layer
- Figure 24 the user at client device
- the server stores locally a profile comprising user-specific content 2406 that can Teed customized data to the user.
- the user may store pre-defined grid configurations on the server. Additionally, passwords for specific web-sites can be stored along with the user's profile.
- a gri generator 2404 on the server creates a grid of tiles according to user-specified content. Each tile has been created on the server by producing an image from the location specified. For example, tile creator 2408-1 produces a tile from content 2410-1.
- a grid of tiles is downloaded to the user's system.
- the client-server embodiment provides a number of advantages. For example, individual users and the devices they use maybe differentiated. Therefore, the tile-content that the server delivers can be customized according to the rendering device.
- step 2500 each time a user logs on to the server 2402, a "session" is initiated, step 2500.
- the server verifies the user's identity, step 2502 and acknowledges the log-in, step 2506.
- the client registers one or more resources, such as connection bandwidth, cost per transmission unit and properties of local playback device, step 2504.
- the server identifies the client device type, for example, set-top box or personal computer, step 2508.
- the server retneves gnd settings specific to the user, if appropnate. Details of a session, as defined by tile content and priorities can be held over from one session to another, both for the purposes of permitting a user to continue with ongoing work and m order to protect against the adverse consequences of abnormal disconnections Additionally, targeted advertising and messaging can be delivered to subsets of users via the predetermined server.
- the user can request datastreams, step 2518. Any number of datastreams can be requested at once, the conespondmg stream request information which defines parameters for each stream is communicated to the server.
- the requested datastreams are displayed on the client device, step 2520 and, i f the user changes the content of a tile or explicitly requests an update or refresh operation on the tile, step 2522, an update request is sent to the server, step 2524 Once the new content has been received, the grid is rendered anew, step 2526.
- Intensive operations on each displayed tile are also channeled through the predetermined server. For example, refresh operations on a tile generate a refresh request that is sent to the predetermined server. Similarly, requests to thumbnail a given image can be earned out, by request, on the predetermined server and the resulting compressed image
- the Server component may reside locally on the client machine, in which case the Server is known as the "Resource Manager", or it may be a remote server.
- the Server is known as the "Resource Manager", or it may be a remote server.
- aspects of a user's gid profile are transmitted to third parties so that the third parties may then commumcate tile based content directly to the user,
- a user's custom gnd may contain a tile that points to a third party web-site 2604.
- Content 2606 from the 3 , ⁇ party web-site is typically transfened to the server for disemination to the user.
- the server 2602 notifies the 3 * * party web-site that the user requires tiled data by, for example, transmitting user information 2608
- the third party then permits the tile based content of its web-site to be transmitted directly to the user 5
- Servers also allows for the latest versions of tiles to be downloaded and installed across all devices Users are then able to share gnds and tiles with other users
- S ⁇ i ver Side Technology utilized permits users of all client devices, from desktop PC's o to mobile telephones with a consistent expenence.
- An object of the application program of the present invention is that it should operate on a vanety of devices, including mobile telecommunications devices such as 5 cellular phones, handheld web-browsers, palm pilots, personal digital assistants and other devices that can communicate by wireless application protocol (WAP).
- WAP wireless application protocol
- a special version of the application program of the present invention is envisaged for mobile devices.
- the special version embodies so-called 'thin client' technology in which a lot of the operations are perfonned by a server instead of the device itself.
- n-tier architecture is one that is designed generically for a multitude of platforms, for example PC's, PDA's WAP phones and UNIX systems. Accordingly, in order to maximize the use of mobile devices, the application program of the present invention employs an n-tier architecture allowing the majority of the processing to be canied out on the Server with the results being sent to the device for rendenng. This model allows for a reduced size system to be stored on mobile devices, with the system logic residing on remote servers. The features that are moved from client to server will be dependent upon the device in question. For example it is possible to provide client with more features on a personal digital assistant such as a Pal pilot than on a WAP Phone.
- the markup language XML is used to wrap the data that is being transmitted.
- the system of the present invention uses a metabase to store information about the user's cunent grid and tile configurations.
- a synchronization procedure allows the metabase to be stored on a server and queried by any device. In this way it is possible to provide consistent grid and tile implementations independent of the device and its location.
- Figure 27 provides an example of the way in which wireless devices can interact with a server.
- a personal digital assistant (PDA) 2700 or a WAP phone 2702 communicate in a wireless manner with a dial-in bank 2704.
- the dial-in bank communicates data to a server farm 2706 which is connected to the internet 2710, optionally through a firewall 2708.
- another personal digital assistant such as 2714 can communicate with an internet service provider such as 2712, also connected to the internet 2710.
- the server farm 2706 is able to provide content directly to a PDA such as 2700 or indirectly, over the internet, to a PDA such as 2714.
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Computer Hardware Design (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Information Transfer Between Computers (AREA)
- Digital Computer Display Output (AREA)
- Control Of Indicators Other Than Cathode Ray Tubes (AREA)
Abstract
Description
Claims
Priority Applications (5)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
AU25733/01A AU2573301A (en) | 1999-10-29 | 2000-10-30 | System and method for simultaneous display of multiple information sources |
CA002387933A CA2387933A1 (en) | 1999-10-29 | 2000-10-30 | System and method for simultaneous display of multiple information sources |
EP00989192A EP1242856A4 (en) | 1999-10-29 | 2000-10-30 | System and method for simultaneous display of multiple information sources |
IL14909000A IL149090A0 (en) | 1999-10-29 | 2000-10-30 | System and method for simultaneous display of multiple information sources |
JP2001533488A JP2003513350A (en) | 1999-10-29 | 2000-10-30 | System and method for simultaneously displaying multiple information sources |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16252299P | 1999-10-29 | 1999-10-29 | |
US60/162,522 | 1999-10-29 |
Publications (2)
Publication Number | Publication Date |
---|---|
WO2001031416A2 true WO2001031416A2 (en) | 2001-05-03 |
WO2001031416A3 WO2001031416A3 (en) | 2002-01-31 |
Family
ID=22585987
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/US2000/029850 WO2001031416A2 (en) | 1999-10-29 | 2000-10-30 | System and method for simultaneous display of multiple information sources |
Country Status (6)
Country | Link |
---|---|
EP (1) | EP1242856A4 (en) |
JP (1) | JP2003513350A (en) |
AU (1) | AU2573301A (en) |
CA (1) | CA2387933A1 (en) |
IL (1) | IL149090A0 (en) |
WO (1) | WO2001031416A2 (en) |
Cited By (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002342590A (en) * | 2001-05-15 | 2002-11-29 | Superindex Inc | Individual information management system |
JP2005529524A (en) * | 2002-06-07 | 2005-09-29 | エルジー エレクトロニクス インコーポレーテッド | System and method for updating chatting data in an interactive disc player network |
NL1034937C2 (en) * | 2008-01-21 | 2009-07-22 | Mls Trading B V B A | Operating system and method for making resources available via a computer system. |
US20110314044A1 (en) * | 2010-06-18 | 2011-12-22 | Microsoft Corporation | Flexible content organization and retrieval |
CN102508663A (en) * | 2011-11-08 | 2012-06-20 | 深圳市理邦精密仪器股份有限公司 | Graphical interface layout setting device and method for multi-parameter monitor |
GB2521407A (en) * | 2013-12-18 | 2015-06-24 | Displaylink Uk Ltd | Display system |
US9679404B2 (en) | 2010-12-23 | 2017-06-13 | Microsoft Technology Licensing, Llc | Techniques for dynamic layout of presentation tiles on a grid |
US9715485B2 (en) | 2011-03-28 | 2017-07-25 | Microsoft Technology Licensing, Llc | Techniques for electronic aggregation of information |
US10331335B2 (en) | 2010-12-23 | 2019-06-25 | Microsoft Technology Licensing, Llc | Techniques for electronic aggregation of information |
Families Citing this family (31)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
AU2006280934B2 (en) | 2005-08-19 | 2012-06-28 | Google Llc | Software architecture for displaying information content from plug-in modules in a user interface |
US8225231B2 (en) | 2005-08-30 | 2012-07-17 | Microsoft Corporation | Aggregation of PC settings |
US8261209B2 (en) | 2007-08-06 | 2012-09-04 | Apple Inc. | Updating content display based on cursor position |
JP2009089065A (en) | 2007-09-28 | 2009-04-23 | Toshiba Corp | Electronic device and facial image display apparatus |
JP2009104352A (en) * | 2007-10-23 | 2009-05-14 | Nomura Securities Co Ltd | Gadget provision server and gadget provision program |
JP5305280B2 (en) * | 2007-10-23 | 2013-10-02 | 野村證券株式会社 | Gadget provision server |
US20120159395A1 (en) | 2010-12-20 | 2012-06-21 | Microsoft Corporation | Application-launching interface for multiple modes |
US20120166953A1 (en) * | 2010-12-23 | 2012-06-28 | Microsoft Corporation | Techniques for electronic aggregation of information |
US8612874B2 (en) | 2010-12-23 | 2013-12-17 | Microsoft Corporation | Presenting an application change through a tile |
US8689123B2 (en) | 2010-12-23 | 2014-04-01 | Microsoft Corporation | Application reporting in an application-selectable user interface |
US9423951B2 (en) | 2010-12-31 | 2016-08-23 | Microsoft Technology Licensing, Llc | Content-based snap point |
US9383917B2 (en) | 2011-03-28 | 2016-07-05 | Microsoft Technology Licensing, Llc | Predictive tiling |
US9158445B2 (en) | 2011-05-27 | 2015-10-13 | Microsoft Technology Licensing, Llc | Managing an immersive interface in a multi-application immersive environment |
US9658766B2 (en) | 2011-05-27 | 2017-05-23 | Microsoft Technology Licensing, Llc | Edge gesture |
US9104307B2 (en) | 2011-05-27 | 2015-08-11 | Microsoft Technology Licensing, Llc | Multi-application environment |
US20120304132A1 (en) | 2011-05-27 | 2012-11-29 | Chaitanya Dev Sareen | Switching back to a previously-interacted-with application |
US20120304068A1 (en) * | 2011-05-27 | 2012-11-29 | Nazia Zaman | Presentation format for an application tile |
TWI567570B (en) * | 2011-06-15 | 2017-01-21 | 微軟技術授權有限責任公司 | Techniques for generating custom objects representing content files |
US20130057587A1 (en) | 2011-09-01 | 2013-03-07 | Microsoft Corporation | Arranging tiles |
US10353566B2 (en) | 2011-09-09 | 2019-07-16 | Microsoft Technology Licensing, Llc | Semantic zoom animations |
US9557909B2 (en) | 2011-09-09 | 2017-01-31 | Microsoft Technology Licensing, Llc | Semantic zoom linguistic helpers |
US8922575B2 (en) | 2011-09-09 | 2014-12-30 | Microsoft Corporation | Tile cache |
US9244802B2 (en) | 2011-09-10 | 2016-01-26 | Microsoft Technology Licensing, Llc | Resource user interface |
US9146670B2 (en) | 2011-09-10 | 2015-09-29 | Microsoft Technology Licensing, Llc | Progressively indicating new content in an application-selectable user interface |
US20130080968A1 (en) * | 2011-09-27 | 2013-03-28 | Amazon Technologies Inc. | User interface with media content prediction |
KR101275871B1 (en) * | 2011-10-13 | 2013-06-18 | 연세대학교 산학협력단 | System and method for producing homepage in SaaS ENVIRONMENT, A computer-readable storage medium therefor |
US20130218930A1 (en) * | 2012-02-20 | 2013-08-22 | Microsoft Corporation | Xml file format optimized for efficient atomic access |
US9927952B2 (en) * | 2012-05-23 | 2018-03-27 | Microsoft Technology Licensing, Llc | Utilizing a ribbon to access an application user interface |
US20140195918A1 (en) * | 2013-01-07 | 2014-07-10 | Steven Friedlander | Eye tracking user interface |
CN105324743B (en) * | 2013-05-07 | 2019-07-26 | Y·N·萨塔勒夫斯基 | Personalized customizable intelligent explorer |
JP6513185B2 (en) * | 2015-03-30 | 2019-05-15 | パイオニア株式会社 | Display control apparatus, display control method and program for display control |
Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996020470A1 (en) | 1994-12-23 | 1996-07-04 | Philips Electronics N.V. | Single frame buffer image processing system |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2119076T3 (en) * | 1993-01-11 | 1998-10-01 | Canon Kk | DISPLAY DEVICE FOR DISPLAY LINES. |
US5841418A (en) * | 1995-06-07 | 1998-11-24 | Cirrus Logic, Inc. | Dual displays having independent resolutions and refresh rates |
US5796401A (en) * | 1996-08-09 | 1998-08-18 | Winer; Peter W. | System for designing dynamic layouts adaptable to various display screen sizes and resolutions |
-
2000
- 2000-10-30 EP EP00989192A patent/EP1242856A4/en not_active Withdrawn
- 2000-10-30 IL IL14909000A patent/IL149090A0/en unknown
- 2000-10-30 WO PCT/US2000/029850 patent/WO2001031416A2/en active Application Filing
- 2000-10-30 CA CA002387933A patent/CA2387933A1/en not_active Abandoned
- 2000-10-30 AU AU25733/01A patent/AU2573301A/en not_active Abandoned
- 2000-10-30 JP JP2001533488A patent/JP2003513350A/en active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO1996020470A1 (en) | 1994-12-23 | 1996-07-04 | Philips Electronics N.V. | Single frame buffer image processing system |
Cited By (13)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP2002342590A (en) * | 2001-05-15 | 2002-11-29 | Superindex Inc | Individual information management system |
JP2005529524A (en) * | 2002-06-07 | 2005-09-29 | エルジー エレクトロニクス インコーポレーテッド | System and method for updating chatting data in an interactive disc player network |
US7836125B2 (en) | 2002-06-07 | 2010-11-16 | Lg Electronics Inc. | System and method for updating message data in an interactive disc player network |
NL1034937C2 (en) * | 2008-01-21 | 2009-07-22 | Mls Trading B V B A | Operating system and method for making resources available via a computer system. |
WO2009093115A1 (en) * | 2008-01-21 | 2009-07-30 | Mls Trading B.V.B.A. | Operating system and method for making resources available via a computer system |
US20110314044A1 (en) * | 2010-06-18 | 2011-12-22 | Microsoft Corporation | Flexible content organization and retrieval |
US9679404B2 (en) | 2010-12-23 | 2017-06-13 | Microsoft Technology Licensing, Llc | Techniques for dynamic layout of presentation tiles on a grid |
US10331335B2 (en) | 2010-12-23 | 2019-06-25 | Microsoft Technology Licensing, Llc | Techniques for electronic aggregation of information |
US9715485B2 (en) | 2011-03-28 | 2017-07-25 | Microsoft Technology Licensing, Llc | Techniques for electronic aggregation of information |
CN102508663A (en) * | 2011-11-08 | 2012-06-20 | 深圳市理邦精密仪器股份有限公司 | Graphical interface layout setting device and method for multi-parameter monitor |
GB2521407A (en) * | 2013-12-18 | 2015-06-24 | Displaylink Uk Ltd | Display system |
GB2521407B (en) * | 2013-12-18 | 2019-02-27 | Displaylink Uk Ltd | Display system |
US10290288B2 (en) | 2013-12-18 | 2019-05-14 | Displaylink Limited | Display system |
Also Published As
Publication number | Publication date |
---|---|
JP2003513350A (en) | 2003-04-08 |
WO2001031416A3 (en) | 2002-01-31 |
EP1242856A2 (en) | 2002-09-25 |
IL149090A0 (en) | 2002-11-10 |
CA2387933A1 (en) | 2001-05-30 |
EP1242856A4 (en) | 2008-06-04 |
AU2573301A (en) | 2001-05-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6724403B1 (en) | System and method for simultaneous display of multiple information sources | |
US9946434B2 (en) | System and method for simultaneous display of multiple information sources | |
US7376907B2 (en) | System and method for simultaneous display of multiple information sources | |
EP1242856A2 (en) | System and method for simultaneous display of multiple information sources | |
US5838321A (en) | User interface with embedded objects for personal computers and the like | |
US7149982B1 (en) | System and method for saving user-specified views of internet web page displays | |
US6832355B1 (en) | Web page display system | |
US6278448B1 (en) | Composite Web page built from any web content | |
EP1193590B1 (en) | Customizing the display of a mobile computing device | |
US8433996B2 (en) | Hierarchical model for web browser navigation | |
US6658419B2 (en) | System and method for facilitating a windows based content manifestation environment within a WWW browser | |
US6636856B2 (en) | System and method for facilitating a windows based content manifestation environment within a WWW browser | |
US8001456B2 (en) | Methods for maintaining separation between markup and data at a client | |
US20040015981A1 (en) | Efficient high-interactivity user interface for client-server applications | |
US20020199025A1 (en) | System and method to create an application and to manipulate application components within the application | |
US20060284892A1 (en) | Persistent portal | |
CN112257405A (en) | Webpage table editing method, device and equipment and computer readable storage medium | |
US7065713B1 (en) | Apparatus and method for keeping aggregated portions of multiple web sites simultaneously displayed and updated | |
JPH11345204A (en) | Method and system for managing object displayed in graphical user interface |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
AK | Designated states |
Kind code of ref document: A2 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A2 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
DFPE | Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101) | ||
AK | Designated states |
Kind code of ref document: A3 Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CR CU CZ DE DK DM DZ EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ PL PT RO RU SD SE SG SI SK SL TJ TM TR TT TZ UA UG UZ VN YU ZA ZW |
|
AL | Designated countries for regional patents |
Kind code of ref document: A3 Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE BF BJ CF CG CI CM GA GN GW ML MR NE SN TD TG |
|
WWE | Wipo information: entry into national phase |
Ref document number: 149090 Country of ref document: IL |
|
WWE | Wipo information: entry into national phase |
Ref document number: 25733/01 Country of ref document: AU |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2387933 Country of ref document: CA |
|
ENP | Entry into the national phase |
Ref country code: JP Ref document number: 2001 533488 Kind code of ref document: A Format of ref document f/p: F |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2000989192 Country of ref document: EP |
|
WWP | Wipo information: published in national office |
Ref document number: 2000989192 Country of ref document: EP |
|
REG | Reference to national code |
Ref country code: DE Ref legal event code: 8642 |