Embodiments relate generally to providing previews of program material, and more particularly to providing a sequence of automatic, interactive previews of media items in a set of content assets.
Conventional motion picture theaters have long played a sequence of film previews prior to the beginning of a movie showing, as an advertising mechanism. The set and order of previews shown are fixed by the operator of each movie theater, for all viewers, and cannot be changed for individual users based on their interests or preferences. Furthermore, no mechanism exists for the viewer to take action on the displayed previews, aside from making a mental note that they might be interested in seeing a particular film being previewed.
Program material including audio or video programs can be experienced on a variety of navigation and playback devices, including digital video recorder (DVR) devices, digital video disc (DVD) devices, computer-implemented video and audio playback devices, mobile multimedia devices, and set top box devices. A set top box (STB) can be deployed at a user's household to provide the user with the ability to control delivery of video programming distributed from a provider.
Historically, traditional video on demand (VOD) systems have used nested menus to facilitate navigation through video assets, such as pay-per-view movies, sporting events, and other video assets, that are available on an ‘media preview/viewing basis.’ More recently, cable and satellite systems have added a search functionality to VOD systems, thus enabling users to find certain video assets by keyword searches.
While such techniques make it possible for a user to discover video assets of personal interest, they are nonetheless cumbersome to navigate, in that a user considering multiple assets for purchase or viewing, who wishes to preview multiple items, must typically undertake several steps in order to separately and manually preview each asset. For example, using conventional VOD systems, in order to view previews of assets appearing in a single set (such as within a single VOD menu category, such as “Comedy,” or within a single set of search results), a user must typically select a first asset, then click a button to initiate a preview, and then when the preview is completed, or when they don't want to see any more of the preview, the user must subsequently click one or more buttons to navigate to a second asset and repeat the process.
Internet-based video and DVD providers, such as HULU™ and NETFLIX™, have developed various user interface mechanisms to improve the process of finding and discovering content, yet if they facilitate viewing previews at all, they still have not made it any easier to view a sequence of previews for a set of assets of interest to a particular viewer, or to usefully act upon those previews while the sequence of previews continue to play. Accordingly, an overall user experience can be degraded for users of conventional VOD systems and Internet-based providers having delays associated with requiring sequential, manual previews of content assets.
What is needed are systems, methods, and computer program products that enable viewers to generate a set of media of potential interest, and to easily view previews of the media. What is further needed are systems, methods, and computer program products that provide the ability to easily act upon media previews without interrupting preview playback.
Embodiments of the invention comprise methods, systems, and computer program products that generate a set of assets of potential interest to a viewer. In an embodiment, a system incorporates conventional menus, genres, keyword searches, and keyword clouds in order to generate a set of media content. Embodiments incorporate additional techniques such as a mood-based search, ‘stream of consciousness’ navigation, predicted ratings based on user characteristics in a user profile, and measures of similarity between media items (i.e., media assets). By using such techniques, a user is enabled to generate a set of media items of potential interest. In an embodiment, the system ranks or orders the media items based on predicted relevance or interest level for the viewer. In another embodiment, the system may enable the user to sort or manually order the assets.
In one embodiment, upon generating the set, system provides the ability to begin playback of a sequence of previews for the identified assets. In another embodiment, the system may automatically begin this playback. In either of these embodiments, the system automatically and substantially continuously plays back the preview for the next asset in the set, after the preview for a prior asset in the set completes. This automatic playback process may continue cyclically at the beginning of the set, once the end of the set has been reached. Alternatively, the system may terminate automatic playback upon completing the preview for the last media item in the set.
According to an embodiment, the system provides the user the ability to manually navigate amongst previews, while the sequence is playing. For example, the system may provide a next and a last control, that enable the user to skip to the next preview in the set, before completing the current preview, or to skip back to the prior preview, respectively. The system may also provide the ability to skip directly to non-contiguous previews in the set, for example, by enabling the user to manually select a new asset to preview from the set.
In an embodiment, while a preview is playing, the system enables the user to perform useful actions related to the asset currently being previewed. Some of these actions may terminate the sequence of previews. For example, the system may provide an “Order” action which, if executed during a preview, automatically terminates the preview in order to begin the process of purchasing and viewing the associated asset. As would be apparent to those skilled in the art, the term “Order” refers to ordering media assets, including, but not limited to pay per view (i.e., rentals) and free assets. Thus, an Order action to order an asset does not imply a purchase of an asset.
Some of the available actions, however, may be executed without interrupting the preview playback sequence. For example, the system may provide an “Info” action enables to the user to display a written synopsis, cast, etc. of the asset currently previewing, without interrupting the playback of the sequence of previews.
The system may also provide an “Add to cart” or “Add to wish list” action that automatically adds the asset associated with the current preview to a set for later use by the user, without interrupting the playback of the sequence of previews. Thus, a user may be enabled to watch a continuous sequence of previews, selectively choosing and instructing the system to recall those that he is interested in viewing at some time, without interrupting the sequence of previews.
In a system where some or all of the previews are for available future programming, the system may provide a “Record” action, enabling the user to schedule future recording(s) of the asset (or assets, in the case of a series) associated with the current preview.
In addition, the system may enable the user to generate new sets of assets related to the current preview. For example, the system may enable the user to generate a set of assets that are similar to the asset associated with the current preview, or with a particular cast member, director or writer in common. The system may enable the user to view one or more of these related sets, before choosing to terminate the current sequence of previews (in order to begin a new sequence of previews for a selected related set).
In one embodiment, certain actions may be configured to terminate the current preview and skip directly to the next preview in the sequence. For example, an “Add to cart” action may be configured to automatically skip to the next preview after adding the asset associated with the current preview to the user's cart.
Additional embodiments of the invention include a system implementing a variety of additional actions, including offline actions such as ordering rental or purchase DVDs for shipment or purchase of theater tickets. The system may also handle a variety of media types in addition to video, including, but not limited to, audio, mixed media, and interactive media such as video games.
The accompanying drawings are included to provide further understanding, are incorporated in and constitute a part of this specification, and illustrate embodiments that, together with the description, serve to explain the principles of the invention. In the drawings:
The present embodiments will now be described with reference to the accompanying drawings. In the drawings, like reference numbers may indicate identical or functionally similar elements.
The following detailed description of the present invention refers to the accompanying drawings that illustrate exemplary embodiments consistent with this invention. While the present invention is described herein with reference to illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those skilled in the art with access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope of the invention and additional fields in which the invention would be of significant utility. Therefore, the detailed description is not meant to limit the invention. Rather, the scope of the invention is defined by the appended claims.
Glossary
The following definitions are offered for purposes of illustration, not limitation, in order to assist with understanding the discussion of various embodiments that follows.
As used herein, in an embodiment, the term set top box (STB) refers to a device deployed at a viewer's household or business (such as a subscriber or customer premise) to provide the viewer with the ability to control delivery of video programming from a provider. The viewer can issue control commands to the STB, for example, powering on the STB, tuning to a specific channel, and tuning to other specific channels over time. A customer can also send and receive data to and from the provider, for example, via an Internet connection. A viewer may simultaneously, but separately, interact with the Internet and video programming. For example, a viewer can access the Internet in response to video programming, either separately through a computing device with Internet connectivity, or through a browser-enabled STB.
Embodiments of the present invention also can be applied to various navigation devices and platforms used to preview and select media content. Such navigation devices can be components of platforms including personal computers, mobile telephones, personal digital assistants (PDAs), tablets (e.g., Apple IPAD™), laptops, a portable media devices such as an Apple IPOD™, Internet Protocol (IP)-based telephones using voice over IP (VOIP), digital video recorders (DVRs), remote-storage DVRs, video media preview/viewing systems, interactive TV systems, and other systems capable of receiving and displaying media content and/or utilizing a network connection such as the Internet. A non-limiting example of a navigation device is the Apple TV device. References to a STB should therefore be interpreted to include these navigation devices and other similar systems involving display of media previews and content, and viewer input.
As used herein, in embodiments, the terms “viewership” and “viewer” broadly refers to individual viewers, individual users of an STB, a device used to preview a program, an STB, and/or households. Thus, viewership and community rating information or data can include data related to groups of users, STBs, households, navigation devices, or viewing devices.
Unless specifically stated differently, in an embodiment, a user is interchangeably used herein to identify a human user, a subscriber, a customer, a viewer, a software agent executing on behalf of a user, or a group of users and/or software agents. Users may be members of user populations (i.e., groups or sets), wherein the sets are related to a specific provider, type or tier of service subscribed to, a geographic area (i.e., users in a certain country, region, postal code, and/or state/province) or demographic grouping (i.e., users of a certain age range, income range, or gender. Besides a human user who is a member of a set, an STB, software application, or agent may be a member of a set. Accordingly, unless specifically stated, the term “user” as used herein does not necessarily pertain to a human being. A user may be represented by a user ID or account number. A user may also be represented by unique ID of a STB associated with the user. Users can have login credentials associated with them. Login credentials can include, but are not limited to, a user name, a password, and a personal identification number (PIN).
Unless specifically stated differently, in an embodiment, the terms “media asset” and “media item” are interchangeably used herein to identify any media asset, including but not limited to, subscription video on demand (SVOD) assets, pay-per-view video on demand (VOD) assets (i.e., rental assets such as movies), currently-airing or future-scheduled linear broadcast programs, free assets, a film or live production shown in theaters, physical media items such as DVDs, and software programs such as video games.
Additional acronym definitions are provided in Table 1. The acronym definitions listed in Table 1 are provided for the purpose of illustration, not limitation, in order to assist with understanding the discussion of various embodiments that follows.
While the present invention is described herein with reference to illustrative embodiments for particular applications, it should be understood that the invention is not limited thereto. Those skilled in the art with access to the teachings provided herein will recognize additional modifications, applications, and embodiments within the scope of the invention and additional fields in which the invention would be of significant utility.
Content server 102 includes a media server 108 and a processor 112 coupled to memory 114. In the example embodiment depicted in
As shown in
In an embodiment, content server 102 is a Video-media preview/viewing (VOD) server providing VOD sessions to clients 104. Content server 102 can also provide subscription on demand (SVOD) sessions to clients 104. Content server 102 may also be a video game server. It is to be appreciated that the content server 102 could provide any type of audio/visual media. Media preview/viewing sessions as described herein refer to any content that is, generally, available for delivery to an individual client device 104, with delivery initiated upon a recommendation from recommendation engine 111 or an explicit request from that client device 104. Media preview/viewing sessions may also be referred to as a “session” herein. Content server 102 may also be referred to as a “server” herein. As depicted in
According to example embodiments, client 104a may be a personal computer, a laptop computer, a tablet computer, an electronic book reading device, an Apple IPAD™, a portable media device such as an Apple IPOD™, a WiFi device, a cellular device, a smart phone, or any other computational device that can receive previews and program material from content server 102 via network 106 either through wires or wirelessly. For example, display device 120a may be an integrated display within a mobile phone.
According to an embodiment, system 100 displays a UI (shown in
In an embodiment, client device 104b is a cable set top box (STB) connected to a display device 120b. In this embodiment, display device 120b may be a television or monitor connected to STB 104b.
Network 106 may be one of or a combination of a cable network such as Hybrid Fiber Coax, Fiber To The Home, Data Over Cable Service Interface Specification (DOCSIS), Internet, Wide Area Network (WAN), WiFi, Local Area Network (LAN), ATM or any other wired or wireless network. Content server 102 includes media server 108 that may provide content such as video over cable network, video over internet, video games over a cable network, video games over the internet or any other type of media over any type of network. Media server 108 may store and stream media including but not limited to photos, video, music and video games. For example, VOD assets may be stored on and streamed from media server 108.
Arrangements according to the present invention can provide automatic, action-enabled previews enabling improved user interaction with program material. The previews can be associated with a set of programs selected based on user input, such as selection by keyword, or genre, or selection of all available programs. Alternatively, the previews can be associated with program material that is recommended, by recommendation engine 111, to a user based upon program material previously ordered via a navigation device such as client 104a or STB 104b. The recommended previews can be associated with demographic information for the user and/or a user profile stored in a user profile database (not shown). The user profile database may be stored locally within content server 102 or remotely. An interactive interface displayed on display devices 120a, 120b . . . 120n enable users of the respective client devices to take actions with respect to previews while program material associated with the previews is presented on the display devices.
According to an embodiment of the invention, media/video explorer (MVX) module 109 on content server 102, upon receiving a request 122 from a client device 104 to preview one or more media assets, initiates a video on demand session to display action-enabled previews of a plurality of media assets within an interactive interface on display device 120 of client device 104. In an embodiment, media server 108 uses the session to stream previews of media for display via display devices 120 of client devices 104. In an alternative embodiment, multiple video on demand sessions may be used, such as a separate session for each preview.
According to an embodiment, selection module 110 is configured to perform predictive filtering of preview assets (i.e., previews) as an aspect of recommendation engine 111. In an embodiment, filtering performed by selection module 110 is based strictly on explicit user selection, rather than any prediction. In another embodiment, selection module selects all assets, either in a specified category or list, or available in the entire system, without performing any filtering. As depicted in the exemplary embodiment of
In an embodiment, media server 108 serves (i.e., plays out) preview assets and media associated with the preview assets as requested by MVX module 109. The preview assets requested by MVX module 109 can optionally be based in part on previews identified by recommendation engine 111 and selection module 110. That is, media server 108 does not to act as a controller or coordinator of which previews are recommended, selected and played in system 100. Instead, MVX module 109 controls and coordinates which previews are selected and played in system 100. According to an embodiment, recommendation engine 111, in conjunction with selection module 110, can coordinate which previews are played by media server 108.
In an embodiment of the invention, the list of previews is merely a list maintained by MVX module 109. According to this embodiment, when one preview ends, the next preview on the list is automatically requested. However, if a user manually requests to jump to the next, or a different, preview, then MVX module 109 will immediately terminate the current preview and jump to the next or requested preview.
In the exemplary embodiment illustrated in
In an embodiment, MVX module 109 automatically starts streaming and playing previews associated with a set of media assets. For example, MVX module 109 may start previewing a set of media assets upon detecting a period of inactivity within an interactive interface displayed on display device 120. In another embodiment, MVX module 109, in conjunction with selection module 110 and recommendation engine 111 sends previews to the client device 104 user using a given client device 104 based upon the user's previous preview/media viewing sessions/purchases. In an embodiment, MVX module 109 starts previewing media assets in response to determining that a user using client device 104 has initiated a session within a UI displayed on display device 120. In one embodiment, the period of time is a random period of time. In another example, the period of time is a pre-determined period of time. In a further example, the period of time is determined by MVX module 109. In a further example, the period of time is determined by MVX module 109 based on a number of recommended previews identified by recommendation engine 111.
In an example, memory 124 of content server 102 stores instructions on content server 102 that when executed by processor 123 of content server 102, cause processor 123 to perform the steps in the flowchart of
In an embodiment, client device 104 sends a request for a preview or a media asset associated with a preview being viewed to content server 102. In an embodiment, client device 104 receives user input via an interactive GUI displayed on display device 120 of client device 104 to determine if the user would like client device 104 to view a preview associated with a media asset in full screen mode. Alternatively, previews may be automatically streamed to a client device 104 associated with a user or household based on that user's or that households media preferences, user/household profile information, and/or order history.
In an example embodiment, memory 128 of client device 104 may store instructions locally that when executed by processor 126 of client device 104, cause processor 126 to perform the steps in the flowchart of
With reference to
According to an embodiment, the initial list may optionally be sorted according to a variety of criteria, including according to predicted level of interest to user, based on user profile information and a recommendation engine. In an alternative embodiment, the system may initially restrict the list represented by the filmstrip 240 to a subset of available media assets.
A user, using an input device (not shown) may refine the list of media assets by selecting one or more keywords from the word cloud 232. As shown in home screen 200, the word cloud 232 contains various keyword terms associated with the list of media assets. Selecting any given term from word cloud 232 limits the list of media assets to only those assets associated with the selected term. If more than one term is selected, only those assets associated with every selected term are included in the list. The count 244 of matching assets is updated as terms are selected from word cloud 232.
As shown in the exemplary embodiment of
With continued reference to
In another embodiment, the list may include assets matching any of the selected terms. Terms made available for selection may reflect any criteria, including genre, age (i.e., new release vs. library title), format (high definition/HD vs. standard definition/SD), and popularity. In an alternative embodiment, a selection may be made from a conventional list of options, rather than word cloud 232, and the system may enable only single term selection, rather than multiple term selection. Terms may also be organized in a hierarchy, as in a conventional VOD navigation system. Any system of selecting a subset of assets may be used, so long as it results in producing a list of media assets of potential interest.
At any time, the user may begin previewing the current list of assets, including immediately upon entering the application, when the list includes all available assets. In the exemplary system, this can be achieved by using a remote control input device to navigate to poster art 246 representing one of the media assets and pressing a selection button on the remote control, or by navigating to the right arrow 242 on the display and either selecting or arrowing further right using the remote control device.
In the exemplary preview screen 300 interface provided in
In accordance with embodiments of the invention, ratings information 358 can comprise a Motion Picture Association of America (MPAA) rating (e.g., “PG-13”—see
While a preview is playing in preview window 348, the user may undertake a variety of actions relevant to the media asset associated with the preview, or to select among previews. In the exemplary system, the user may advance to a preview of the next asset in the list by pressing a particular key on a remote control input device (not shown). The user may alternatively move back to the preview of the prior asset in the list by pressing another particular key on the remote control. The user may additionally jump to the preview for any other asset in the list by navigating through the filmstrip 240 to highlight the poster art 246 associated with the desired asset, and pressing a selection button on the remote control. In the exemplary interface, absent further user input, the system will automatically advance to the preview for the next asset in the list (and circularly back to the top of the list, in the case of the last asset in the list), when the current preview ends.
While a preview is playing in preview window 348, the user may also take actions with respect to the asset associated with the preview. For example, the user may click the “Add to Cart” button 356, to save the asset for fast retrieval at a later time. In accordance with an embodiment of the invention, the exemplary interface 300 does not interrupt playback of the preview (or sequence of previews) in response to this action. In an alternative embodiment, the system might immediately advance to the next preview upon the user adding the currently-previewing asset to their movie cart. A user may select full screen preview link 355 to view the preview in full screen mode (see
In an alternative embodiment, if the interface displayed previews for future-scheduled linear broadcast programs, the system might include a “Record” button to allow easy scheduling of a future recording, on a DVR or network DVR system. The system might also include a “Showings” button to display the various times at which the linear program is scheduled to be broadcast, and to allow selection of a specific broadcast for recording. In an alternative embodiment where the interface also displays currently-airing media, the system might include a “Tune” button (not shown), allowing the user to immediately tune the airing program associated with the preview.
In another alternative embodiment, if the preview playing is associated with a film or live production being shown in theaters, preview screen 300 may enable users to purchase one or more tickets to see the performance. Alternatively, if physical media, such as a DVD is associated with the preview, the system may enable users to purchase a copy of the asset on physical media such as DVD.
In the exemplary interface, the user may also initiate ordering the asset being previewed for immediate viewing by clicking the “Order” button 350. While initiating an order need not immediately terminate the preview process, successfully completing an order does terminate the preview process with playback of the ordered media asset.
The exemplary interface for preview screen 300 additionally allows the user to display information about the currently airing preview by clicking the “Info” button 352. This action displays the information screen of
In the exemplary interface, the sequence of previews continues within the information screen. Absent user intervention, when the current preview ends, the system automatically advances to the preview for the next asset in the list. In addition, the user may manually advance to the next preview or skip back to the previous preview using buttons on a remote control, as previously described for the preview screen of
Returning to the preview screen of
With continued reference to preview screen 300 of
The related content screen 400 of
As shown in
By selecting, using an input device, left arrow 442, a user can return to the previous screen. In the exemplary embodiment shown in
Cart interface 500 of
The movie cart screen enables the user to select a previously saved asset, for ordering, or for other actions including reviewing the asset information and previewing the asset. By navigating to the poster art 246 for an asset in the movie cart, and pressing a selection button on a remote control input device (not shown), the user can display an information screen, as shown in
As described below in Table 2 and illustrated in
According to an embodiment of the invention, in response to determining that full screen preview link 355 was selected in the preview screen (see
In the exemplary embodiment of
Table 2 describes general screens and UI elements within the MVX UI discussed above with reference to
Table 4 provides an example of predictive filtering based upon keywords, in accordance with an embodiment of the invention. In an embodiment of the invention, selection module 110 is configured to use the visible keyword combinations listed in Table 4 below. As shown in Table 4, selection module 110 can identify a plurality of results (media asset titles) to be recommended by recommendation engine 111 based upon the visible keyword combinations and matches to meta data indicating attributes of media assets.
More particularly, flowchart 800 illustrates the steps by which a method for recommending and presenting action-enabled previews in a video preview system is performed, according to an embodiment of the present invention.
The method begins at step 802 where MVX module 109 is invoked. After MVX module 109 launches, the method proceeds to step 804.
In step 804, an evaluation is made regarding whether a tutorial has been shown via a given navigation device (an STB in the example of
In step 806, MVX module 109, upon invocation, auto-launches the tutorial. In the embodiment shown in
In step 808, a home screen, such as home screen shown in
The home screen displayed in step 808 includes a listing 244 and poster art 246 for a sequence of previews. In an embodiment, the sequence of previews is determined by recommendation engine 111 in conjunction with selection module 110. After the home screen is displayed, control is passed to step 810.
In step 810, in response to detecting selection of a keyword (e.g., “FUNNY”) or a poster art 246 icon/thumbnail, control is passed to step 812, where a filter is determined for the selected keyword or poster art 246.
In step 812, word cloud 232 and listing 244 are culled based on the selection in step 810. In the example of
In step 814, a process is performed to determine an appropriate word cloud 232, listing 244 and associated poster art 246 for a related screen.
In step 814, according to an embodiment, the process:
In step 816, filtering based upon keywords can performed. In accordance with an embodiment of the invention, this step is performed as described above with reference to Table 4 above. For example, selection module 110 can use the visible keyword combinations listed in Table 4 during step 816. In one embodiment, predictive filtering can be employed to accomplish step 816. As shown in Table 4, selection module 110 can identify a plurality of media asset titles to be recommended by recommendation engine 111 based upon the visible keyword combinations and matches to meta data indicating attributes of media assets. After predictive filtering is completed, control is passed to step 818.
In step 818, a related screen is displayed. In an embodiment, the related screen includes the data items described above with reference to related content screen 400 of
Various aspects of the present invention can be implemented by software, firmware, hardware, or a combination thereof.
Computer system 900 includes one or more processors, such as processor 904. Processor 904 can be a special purpose or a general-purpose processor. Processor 904 is connected to a communication infrastructure 906 (for example, a bus, or network).
Computer system 900 also includes a main memory 908, preferably random access memory (RAM), and may also include a secondary memory 910. Secondary memory 910 may include, for example, a hard disk drive 912, a removable storage drive 914, flash memory, a memory stick, and/or any similar non-volatile storage mechanism. Removable storage drive 914 may comprise a floppy disk drive, a magnetic tape drive, an optical disk drive, a flash memory, or the like. The removable storage drive 914 reads from and/or writes to a removable storage unit 918 in a well-known manner. Removable storage unit 918 may comprise a floppy disk, magnetic tape, optical disk, etc. which is read by and written to by removable storage drive 914. As will be appreciated by persons skilled in the relevant art(s), removable storage unit 918 includes a non-transitory computer readable storage medium having stored therein computer software and/or data.
In alternative implementations, secondary memory 910 may include other similar means for allowing computer programs or other instructions to be loaded into computer system 900. Such means may include, for example, a removable storage unit 922 and an interface 920. Examples of such means may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM, or PROM) and associated socket, and other removable storage units 922 and interfaces 920 which allow software and data to be transferred from the removable storage unit 922 to computer system 900.
Computer system 900 may also include a communications interface 924. Communications interface 924 allows software and data to be transferred between computer system 900 and external devices. Communications interface 924 may include a modem, a network interface (such as an Ethernet card), a communications port, a PCMCIA slot and card, or the like. Software and data transferred via communications interface 924 are in the form of signals, which may be electronic, electromagnetic, optical, or other signals capable of being received by communications interface 924. These signals are provided to communications interface 924 via a communications path 926. Communications path 926 carries signals and may be implemented using wire or cable, fiber optics, a phone line, a cellular phone link, an RF link or other communications channels
Computer system 900 may additionally include computer display 930. According to an embodiment, computer display 930, in conjunction with display interface 902, can be used to display the interactive UI depicted in
In this document, the terms “computer program medium,” “non-transitory computer readable medium,” and “computer usable medium” are used to generally refer to media such as removable storage unit 918, removable storage unit 922, and a hard disk installed in hard disk drive 912. Signals carried over communications path 926 can also embody the logic described herein. Computer program medium and computer usable medium can also refer to memories, such as main memory 908 and secondary memory 910, which can be memory semiconductors (e.g. DRAMs, etc.). These computer program products are means for providing software to computer system 900.
Computer programs (also called computer control logic) are stored in main memory 908 and/or secondary memory 910. Computer programs may also be received via communications interface 924. Such computer programs, when executed, enable computer system 900 to implement the present invention as discussed herein. In particular, the computer programs, when executed, enable processor 904 to implement the processes of the present invention, such as the steps in the methods illustrated by flowchart 800 of
The invention is also directed to computer program products comprising software stored on any computer useable medium. Such software, when executed in one or more data processing device, causes a data processing device(s) to operate as described herein. Embodiments of the invention employ any computer useable or readable medium, known now or in the future. Examples of computer useable mediums include, but are not limited to, primary storage devices (e.g., any type of random access memory), secondary storage devices (e.g., hard drives, floppy disks, CD ROMS, ZIP disks, tapes, magnetic storage devices, optical storage devices, MEMS, nanotechnological storage device, etc.), and communication mediums (e.g., wired and wireless communications networks, local area networks, wide area networks, intranets, etc.).
While various embodiments of the present invention have been described above, it should be understood that they have been presented by way of example only, and not limitation. It will be understood by those skilled in the relevant art(s) that various changes in form and details may be made therein without departing from the spirit and scope of the invention as defined in the appended claims. It should be understood that the invention is not limited to these examples. The invention is applicable to any elements operating as described herein. Accordingly, the breadth and scope of the present invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.