1. Technical Field
The invention relates to virtualization. More particularly, the invention relates to a method and apparatus for quick access to virtual applications.
2. Description of the Prior Art
In computing, virtualization is a broad term that refers to the abstraction of computer resources. One useful definition is a technique for hiding the physical characteristics of computing resources from the way in which other systems, applications, or end users interact with those resources. This term has been widely used since the 1960s or earlier, and has been applied to many different aspects and scopes of computing, from entire computer systems to individual capabilities or components. The common theme of all virtualization technologies is the hiding of technical detail, through encapsulation. Virtualization creates an external interface that hides an underlying implementation, e.g. by multiplexing access, by combining resources at different physical locations, or by simplifying a control system.
One application of virtualization technology is to provide direct access to applications without waiting for the host operating system (OS) to load. This is advantageous for users that want, quick access to an application, e.g. the Internet. Thus, one goal in virtualization technology is to provide a program and corresponding interface that minimize the time between starting a computer and displaying a user interface.
Currently, a user presses the power button or a hot-key to boot the virtualization software and the user is presented with a screen that contains a list of all applications. If the user wants to access a particular website, for example, the user must select the Internet application, wait for it to load, and then enter the desired Uniform Resource Locator (URL). As a result, even though the user does not have to wait for the operating system to load, the user may still find this process too time consuming.
The invention comprises a first electronic programming guide (EPG1) that displays a user interface (UI) mere seconds after the user turns on the computer. The EPG UI displays icons representing applications. The applications can include virtual appliances, which are self-contained programs. In one embodiment, virtual appliances are downloaded from a file server. In another embodiment, the applications are stored locally.
In one embodiment, the icon is static. In another embodiment, the icon is dynamic. Dynamic icons include short pieces of animation and video clips. Dynamic icons are downloaded from a server that obtains information from the icon owner, e.g. advertiser. In one embodiment, an icon comprises instructions for launching a browser pre-loaded with a URL. These icons provide an opportunity for monetization by requiring a fee for display or a fee for a click-through.
The icons include websites, applications, advertisements, etc. If a company pays to have their icon displayed, they can pay a flat fee or they can subscribe to have the icon displayed for a certain period of time. In one embodiment, icons are displayed according to start and end dates. Advertisements are timed for certain events, for example, to generate interest in an upcoming movie.
Once the user selects an icon from the EPG UI, the EPG1 passes the instructions to an EPG2, which loads and launches the appropriate application. If the selected application is not accessible locally, then it is downloaded, e.g. over the Internet from a file server. The user can also elect to boot the host OS from the hard disk, if a host OS and hard disk are installed, or to power-off the system.
The client 100 includes a computer-readable medium 110, e.g. random access memory (RAM), coupled to a processor 120. The processor 120 executes computer-executable program code stored in memory 110. Other embodiments of a computer-readable medium 110 include, but are not limited to, an electronic, optical, magnetic, or other storage or transmission device capable of coupling to a processor, e.g. flash drive, CD-ROM, DVD, magnetic disk, memory chip, ROM, etc.
The invention provides the user with all the functionality associated with a host OS, without having to wait for the host OS to load. The invention comprises three components: a boot loader, EPG1, and EPG2.
The boot loader is an embedded OS that is integrated into the system boot firmware, e.g. basic input/output system (BIOS). The boot loader suspends the host OS and installs the necessary drivers for network access and graphics displays from the boot read only memory (ROM). The boot loader retrieves the EPG1 from the BIOS ROM or other storage media and launches the EPG1.
The EPG1 comprises a user interface (UI) that displays icons as graphical representations of the virtual applications. When the user selects an icon, EPG1 loads the EPG2. In one embodiment, the EPG2 is a Linux-based environment that resides on a mass storage device. The mass storage device is typically either a hard drive or a flash memory embedded on the motherboard. The EPG2 can also load from an external device, e.g. a flash drive.
The client 100 should support a dynamic host configuration protocol (DHCP), which allows a client 100 on a local network to assign temporary IP addresses to other clients. The software stack comprises a portion that is maintained in BIOS flash memory 200 and a portion that is downloaded 210.
The BIOS boot loader 215 loads and executes the master boot region (MBR) from a ROM/Flash disk. If a hidden partition area (HPA) is present and supported by the BIOS, the BIOS executes the HPA content. In another embodiment, control is transferred to the boot loader 225 by incorporating pre-boot eXecution Environment (PXE) protocols into the boot loader and replacing the standard network interface card option ROM with a virtualization option ROM. This reduces the amount of BIOS customization and overall ROM space required.
In one embodiment, the boot loader 215 loads the EPG1 from the BIOS flash. The embedded OS provides the necessary services (SATA, USB, etc.) for loading the EPG1. In another embodiment, the EPG1 is downloaded from a file server 235 across a network 240. The network 240 comprises the Internet. In another embodiment, the network 240 is a local area network (LAN), a wide area network (WAN), a home network, etc. In one embodiment, the network 240 is implemented via wireless connections.
The EPG1 UI contains icons for favorite websites and applications. The URL associated with the icon is called the landing page.
When a user clicks on one of the icons for a website, for example the CNN icon, the EPG1 boots the EPG2 and passes the parameter specifying request to the EPG2, which launches an application, e.g. a web browser that automatically loads the landing page. The user can choose among other favorites, e.g. Yahoo Mail, facebook, ESPN, Amazon, the Weather Channel, Google Maps, etc. Alternatively, the user can select an icon for an application such as Skype, choose to load the host OS, e.g. Windows, or turn off the computer 305.
The number of icons contained in the icon section 300 is a function of the amount of screen space and the need to avoid overcrowding. The problem of overcrowding is especially significant when icon owners pay money to have their icon displayed. The more icons displayed, the lower the value of each individual icon.
In one embodiment, the icon contains an image associated with the publisher of the landing page, e.g. CNN 315. In another embodiment, the icon is an animated icon, for example, in
In one embodiment, a user has permission to configure this page with favorite icons. Although this decreases monetization opportunities, it provides the user with a potentially more useful format. Thus, in one embodiment the UI contains default icons and the user can replace some or all of them if so desired. The user modifies the icons either while the EPG2 is running or while the host OS, e.g. Windows is running.
A user is much more likely to click on an icon that directly loads a landing page, rather than load the browser and then type in the website, especially when the user only has a few minutes. Thus, charging for display of the icon is an excellent opportunity for monetization. The value of the icons is even greater when powering on the computer automatically loads the icon page.
In one embodiment, a company pays a one-time fee for permanent display of an icon. The cost can be a function of the position of the icon, i.e. the first position costs more than the second, etc.
In another embodiment, a company pays a subscription fee for display of an icon for a set period of time. This is a particularly useful model for advertisements. For example, a production company reserves an icon space for the month before a new movie is released to generate interest in the movie. In another example, the icon can provide a preview for a television show that airs weekly. Thus, each week, the icon contains a clip for the show to air that week. In one embodiment, these icons are displayed according to a data stamp, which has a start date and, in one embodiment, has an ending date as well.
Another opportunity for monetization is in landing rights. When a user clicks on an icon for a website and arrives at the landing page, the system charges the publisher a fee. Landing rights provide the advantage of a recurring revenue stream.
To enable revenue for landing rights, the landing page must be able to distinguish between a user running the virtualized browser and a traditional browser. Alternatively, the publisher can provide a unique landing page for people using the virtualized browser that mirrors the content on their homepages.
The boot loader is started 405. The boot loader searches for files on the hard drive, flash memory, and any attached external devices. If the files necessary for starting the EPG1 are not available on the client 100, the client 100 downloads 415 the files from the file server 235. The file server 235 is administered by the company that provides the software or the original equipment manufacturer (OEM). Once the files are located, the bootloader 100 loads 420 the EPG1 into memory. The EPG1 checks 425 whether any of the icons have an applicable start date and displays 430 the EPG UI with the corresponding icons.
The user can perform a variety of functions, including selecting 435 an icon, selecting an appliance, or shutting down the computer. The EPG1 launches 440 the EPG2. The EPG1 passes 445 the instruction to launch the application to the EPG2. The EPG2 determines whether the application is available on the client 100. In one embodiment, the applications are stored as files on a mass storage partition. If the application files are not stored on the client, the application is downloaded 450 from the file server 235. The downloaded application can be cached in local storage media such that, the next time it is needed, the application is directly accessible from memory.
The EPG2 determines whether the icon is for a landing page. If not, the EPG2 launches 455 the selected application. If yes, the EPG2 launches 460 the browser. In one embodiment the browser is Mozilla Firefox. In another embodiment, the browser is any other browser, e.g. Internet Explorer, Netscape, Safari, etc. The browser loads 465 the corresponding landing page, i.e. the URL.
These steps apply to both icons that are animated without activation and video clips. In one embodiment, the EPG1 does not play back video because it would be too demanding for the embedded OS. As a result, the video clips are a series of animated gifs that are downloaded while the user is in Windows or while the EPG2 is active.
These steps only apply to the first time the icons are available. Thus, the next time that the EPG1 is loaded, the icons are retrieved along with the other files used for displaying the UI.
In one embodiment, an analytics server 510 monitors the number of times that a user clicks on an icon for a landing page. When the user selects 645 an icon representing a landing page, the client 100 reports 680 the click-through to the analytics server 510.
Although the invention is described herein with reference to the preferred embodiment, one skilled in the art will readily appreciate that other applications may be substituted for those set forth herein without departing from the spirit and scope of the present invention. Accordingly, the invention should only be limited by the Claims included below.
This patent application is a continuation-in-part of U.S. patent application Ser. No. 12/200,758, Method and Apparatus for Virtualization of Appliances, filed Aug. 28, 2008, which is a continuation of U.S. Pat. No. 7,441,113, Method and Apparatus for Virtualization of Appliances, filed Jul. 2, 2007 and which claims priority to U.S. provisional patent application Ser. No. 60/806,915, Method and Apparatus for Virtualization of Applications, filed Jul. 10, 2006; U.S. provisional patent application Ser. No. 60/890,121, Instant On Appliances, filed Feb. 15, 2007; and U.S. provisional patent application Ser. No. 60/975,724, Quick Searching Facility for a Virtualized Environment, filed Sep. 27, 2007, the entirety of each of which is incorporated herein by this reference thereto.
Number | Date | Country | |
---|---|---|---|
60806915 | Jul 2006 | US | |
60890121 | Feb 2007 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 11772700 | Jul 2007 | US |
Child | 12200758 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 12200758 | Aug 2008 | US |
Child | 12369226 | US |