None.
Not applicable.
Not applicable.
Mobile virtual network operators (MVNO) are organizations that provide mobile phone services but may not have their own licensed frequency allocation of radio spectrum or the physical infrastructure required to provide wireless telephone services. Mobile virtual network operators may contract to distribute wireless services provided by telecommunications service providers that have licensed frequency and physical infrastructure. Mobile virtual network operators function as distributors of wireless services and may set their own pricing structures. The proliferation of mobile virtual network operators has been facilitated by regulatory intervention designed to lower the barriers for market entry and ultimately increase competition. Some telecommunications service providers have made strategic decisions to extend their existing operations by distributing their services to target niche or under-served market segments through a second or perhaps multiple brands. Some telecommunications service providers believe that there is merit in operating a wholesale mobile virtual network operator business unit to complement their retail model. These providers have therefore either embraced mobile virtual network operator partners or launched their own branded mobile virtual network operator.
Branding is a general marketing term that applies to many products and may be considered to be the process of distinguishing a product or products of a given brand from those of other brands. Branding may be accomplished using names, terms, graphic images, design methods, aural cues, or any other feature that distinguishes. In the context of electronic devices, for example mobile phones, branding information may comprise a distinctive splash screen that displays when an application is loading, a background theme that displays behind application icons, a distinctive wall paper, a distinctive aural alert that may be sounded when events associated with fundamental functions of the device occur, and/or other distinctive cues. Branding information may comprise customized controls and/or switches. Branding information may comprise a short code that references a voice mail service. Branding information may comprise preferred universal reference locators (URLs) that may be provided as pre-loaded favorites in a web browser. Branding information may comprise a link to a preferred on-line application store. Branding information may also include other media and settings.
In an embodiment, a mobile phone that is delivered by an original equipment manufacturer in an unbranded state is disclosed. The mobile phone comprises a near-field-communication radio transceiver, a memory, a processor, and an application stored in the memory. When executed by the processor, the application reads brand information, using the near-field-communication radio transceiver, from a radio frequency identity (RFID) tag coupled to the mobile phone during an order fulfillment process in a distribution center of a communication service provider and, based on the brand information, loads brand firmware into the memory, whereby the mobile phone presents a branded look and feel.
In an embodiment, a method of providing branding firmware to a portable electronic device after manufacturing of the portable electronic device is disclosed. The method comprises receiving the portable electronic device in a distribution center, wherein the distribution center is a different location from the location where the portable electronic device is manufactured and providing a component having branding information to the portable electronic device in the distribution center. The method further comprises scanning the component to determine a brand identification, wherein the scanning is performed by an electronic scanner in the distribution center, selecting branding firmware based on the brand identification, wherein the selecting is performed by a computer, and wirelessly transmitting the branding firmware to the portable electronic device in the distribution center.
In an embodiment, a mobile electronic device branded firmware provisioning system is disclosed. The system comprises a data store comprising a plurality of different branded firmware, each branded firmware associated with a different communication service provider brand, a wireless communication network, and a server computer. The server computer receives a request from a mobile electronic device for one of the branded firmware, retrieves a copy of the requested branded firmware from the data store, and transmits the copy of the requested branded firmware to the mobile electronic device wirelessly via the wireless communication network.
These and other features will be more clearly understood from the following detailed description taken in conjunction with the accompanying drawings and claims.
For a more complete understanding of the present disclosure, reference is now made to the following brief description, taken in connection with the accompanying drawings and detailed description, wherein like reference numerals represent like parts.
It should be understood at the outset that although illustrative implementations of one or more embodiments are illustrated below, the disclosed systems and methods may be implemented using any number of techniques, whether currently known or not yet in existence. The disclosure should in no way be limited to the illustrative implementations, drawings, and techniques illustrated below, but may be modified within the scope of the appended claims along with their full scope of equivalents.
Electronic devices may be delivered by an original equipment manufacturer (OEM) in an initially unbranded state and then provisioned by a purchaser, for example a wireless communication service provider, to execute different branded firmware after the manufacturing process has been completed. Provisioning different branded firmware to initially unbranded electronic devices may enable large volume purchases of a base model of electronic device, thereby obtaining the large volume price discounts customarily provided by original equipment manufacturers. The present disclosure teaches a variety of systems and methods for automatically provisioning branding to electronic devices. Such automated branding may reduce both the amount of labor hours expended in branding as well as reduce the skill level needed to perform branding, both of which may reduce labor costs associated with branding.
For example, a base model of mobile phone may be delivered by an original equipment manufacturer to a wireless carrier. The wireless carrier may modify some of the base models by installing a first battery cover associated with a first brand and installing a second battery cover associated with a second brand. After installing the branded battery covers, the wireless carrier may wirelessly transmit a first branded firmware to the mobile phones having the first battery cover and may wirelessly transmit a second branded firmware to the mobile phones having the second battery cover, thereby causing the originally unbranded mobile phones to present differentiated branding. The present disclosure contemplates a number of different approaches to performing this post-manufacturing branding. Alternatively, other branded components that are coupled to the mobile phone during an order fulfillment process may be used to provision different branded firmware to the mobile phone, for example a component inserted into a port of the mobile phone, a component that is clipped or snapped into place on a surface of the mobile phone, or some other component installed during order fulfillment. It may be understood that branded battery covers are a specific instance of or a specific member among a plurality of members of the set of branded components.
In an embodiment, the branded battery cover or other branded component may comprise a radio frequency identity (RFID) tag coupled to and/or adhered to the branded battery cover. When a battery is installed in an initially unbranded electronic device, the branded battery cover is installed onto the initially unbranded electronic device, and the initially unbranded electronic device is powered on, a self-branding application stored in a memory of the initially unbranded electronic device executes. Alternatively, some other component that is installed into the mobile phone or clipped to or snapped into place on a surface of the mobile phone may comprise a radio frequency identity tag coupled to the component. When the component is installed into, clipped to, or snapped into an initially unbranded electronic device, when the electronic device powers on, the self-branding application stored in the memory of the initially unbranded electronic device executes.
The self-branding application reads branding information from the RFID tag coupled to and/or adhered to the branded battery cover. The branding information read from the RFID tag may be limited to an identification of a brand, for example Brand A Wireless Carrier, and the self-branding application may subsequently use this brand identity to access and to download branding firmware from a wireless local area network. The self-branding application may then install the downloaded branding firmware in a memory of the electronic device. Alternatively, the branding firmware associated with a plurality of different brands may be stored in the memory of the electronic device in an inactive or dormant state. When the brand identity is determined by reading the RFID tag, the self-branding application may then use the brand identity to select the appropriate branding firmware from among the plurality of stored branding firmware and make the selected branding firmware active.
Alternatively, the branding information read from the RFID tag may include an identification of a brand as well as some branding graphics. The self-branding application may install the branding graphics firmware in the memory of the electronic device and then use the brand identity to access and to download additional branding firmware from the wireless local area network. Alternatively, the branding information read from the RFID tag may include an identification of a brand as well as references and/or links to branding firmware. The self-branding application may then use the references and/or links to access and to download branding firmware. The self-branding application may then install the downloaded branding firmware in the memory of the electronic device. Alternatively, the branding information read from the RFID tag may include all branding firmware, and the self-branding application may read the branding information from the RFID tag and install the branding firmware in the memory of the electronic device.
The memory of the electronic device may include a branding register or other memory location that indicates whether the electronic device has installed a complete set of branding firmware or not. When the electronic device powers on and boots, the self-branding application may execute and check the state of the branding register. If the branding register indicates the electronic device has already installed branding firmware, the self-branding application may terminate. On the other hand, if the branding register indicates the electronic device has not installed branding firmware, the self-branding application may execute as described briefly above. If an electronic device is to be rebranded, this may be accomplished by resetting the branding register and installing a branded battery cover having an RFID tag with different branding information. When the electronic device powers on and boots after the register reset, the self-branding application runs and rebrands the electronic device.
The self-branding application may incorporate instructions for completing downloading and/or installing branding firmware in the event that a preferred branding firmware installation procedure does not succeed for some reason. For example, in an embodiment, the above described branding procedure may preferably completed in a distribution center prior to shipping of the electronic device to a retail store and/or to an end-user. Due to unexpected conditions, however, the desired downloading and installation of branding firmware may not have been completed in the distribution center. The self-branding application may detect this and attempt to complete branding firmware access, download, and installation using alternative procedures. For example, the self-branding application may alternatively access and download branding firmware via a cellular wireless network.
In an embodiment, the branded battery cover or other component features a brand graphic such as a logo or other distinctive graphic, and an electronic scanner in a distribution center reads and identifies the brand based on the scan of the brand graphic. Alternatively, the electronic scanner may read the RFID tag coupled to the battery cover or other component and identify the brand based on the scan of the RFID tag, for example in the case of an electronic device that lacks a near-field-communication radio transceiver and hence is unable to read the RFID tag itself. The electronic scanner may transmit the brand identity to the electronic device, and the self-branding application in the electronic device may use this brand identity to access, download, and install branding firmware along lines suggested above. It will be appreciated that a variety of other self-branding procedures and operations are also contemplated by the present application.
In an embodiment, a mobile phone or other portable communication device may be shipped from an original equipment manufacturer with unbranded firmware stored in non-volatile memory, for example in EPROM memory. Later, for example in an order fulfillment center, a branding process may install branding information and/or branding firmware into a different portion of memory of the mobile phone or portable communication device, for example in a flash memory area. The unbranded firmware contains instructions to load the branding information and/or branding firmware from the flash memory. This process may result in an originally generic and/or unbranded mobile phone or portable communication device being branded and/or associated with a specific brand. If the flash memory is erased and/or reset, the phone is substantially returned to its initial unbranded, generic state and upon reboot, this device will again go through the branding process.
Turning now to
The electronic device 80 may be provided as an initially unbranded device that is suitable for provisioning as any of a plurality of different branded electronic devices by installing appropriate branded firmware into a memory of the electronic device 80 and/or by selecting one of a plurality of pre-installed branded firmware and activating the selected branded firmware. In an embodiment, the electronic device 80 may be provided in an initially unbranded state to a distribution center 84 of a wireless carrier, and the branding process may begin by installing a battery into and attaching a branded battery cover 82 to the electronic device 80. The electronic device 80 may be a mobile phone, a personal digital assistant (PDA), a media player, a gaming device, or other electronic device.
Turning now to
It is contemplated that the self-branding application may read a variety of different branding information in different embodiments. In an embodiment, the RFID tag 83 may only identify the brand. In this case the self-branding application would then access and download branding firmware and/or branding content from some other source by providing the brand identity. Alternatively, a plurality of different branding firmware packages may be pre-loaded in a memory of the electronic device 80 in an inactive and/or dormant state, and the self-branding application may select one of the branding firmware packages using the brand identification read from the RFID tag 83 and make the selected branding firmware package active.
Alternatively, the RFID tag 83 may identify the brand and additionally store some but not all branding firmware and/or branding content. For example, the RFID tag 83 may further comprise branding graphics firmware and/or content such as branded application splash screens, branded backgrounds, and other branded graphics firmware and/or content. The RFID tag 83 may provide references and/or links to branding firmware and/or branding content, for example uniform resource locators (URLs) for completing a hypertext transport protocol (HTTP) access and/or an internet protocol address and a filename for completing a file transfer protocol (FTP) access. The self-branding application would then access and download additional branding firmware and/or branding content from some other source by providing the brand identity and/or by following references and/or links provided by the RFID tag 83. Alternatively, the RFID tag 83 may identify the brand and store all needed branding firmware and/or branding content. The self-branding application in this case would download all the needed branding firmware and/or branding content directly from the RFID tag 83.
After downloading branding firmware and/or branding content, the self-branding application may store the firmware and/or content in a memory of the electronic device 80. When the self-branding application has completed branding the electronic device 80, the self-branding application may set a branding flag or branding status in the memory of the electronic device 80. The self-branding application may be designed to execute and complete branding if the branding flag and/or branding status indicates the electronic device 80 is unbranded and to terminate and/or to not execute if the branding flag and/or branding status indicates the electronic device 80 is already branded. This behavior may be used to promote convenient rebranding of the electronic device 80. For example, the electronic device 80 could be rebranded by first setting the branding flag and/or branding status to the unbranded value, second replacing the branded battery cover 82a with a different branded battery cover 82a having an RFID tag 83 containing different branding information, and then powering on the electronic device 80, at which point the electronic device 80 would execute the self-branding application as described above and rebrand based on the different branding information contained in the RFID tag 83.
It is understood that branding firmware and/or branding content may comprise a wide variety of items. This may include various branded graphics including but not limited to application splash screens, backgrounds, themes, wallpapers, icons, and images. This may include branded application executable instructions. This may include customized controls and switches. This may include interfaces such as a link to a branded on-line store. This may include an interface to a branded voicemail application such as a pre-loaded short code. This may include preferred universal reference locators that may be provided as pre-loaded favorites in a web browser or elsewhere on a presentation screen of the electronic device 80. This may include other media and settings. This may include a branded interface and applications pack as discussed further below. In the interest of being concise, hereinafter brand identity, branding firmware, and/or branding content will be referred to collectively as branding information.
An interface and applications pack (IAP) comprises at least one of a media file, an application, a web widget, and a network service and may be used to customize the communication experience of using an electronic device. In an embodiment, the interface and applications pack comprises at least two of these enumerated elements. In another embodiment, the interface and applications pack comprises at least three of these enumerated elements. An interface and applications pack may be viewed as an aggregated set of applications, web widgets, network services, ring tones, ringback tones, alerting tones, wallpapers, interface controls, and other content targeted for the electronic device. In some contexts, the interface and applications pack may be referred to as an ID pack.
As an example, but not by way of limitation, an interface and applications pack may be produced by an enterprise such as a retail outlet or a media business to promote its business interests to wireless communication service subscribers. The interface and applications pack, when active on a electronic device, may provide a control to select a store mapping web widget that provides a map of the location of products within a retail store, where the map of the store is dynamically downloaded by the web widget based on a physical location of the electronic device and based on known locations of the retail stores operated by the enterprise. The map web widget may provide a control to select a search utility for finding the location of a specific product within a store.
The interface and applications pack may provide an application that automatically generates an electronic coupon and posts a notification about the coupon in a notifications display area of the electronic device. The application may generate the coupon and post the related notification based on determining that the physical location of the electronic device is in the proximity of a known retail store operated by the enterprise. Alternatively, the application may generate the coupon based on the passage of a period of time without the subscriber of the electronic device making a purchase from the enterprise and based on the day of the week, for example a Saturday when the subscriber of the electronic device has most often made purchases from the enterprise in the past. In an embodiment, the application may determine when the electronic device is in a retail store operated by the enterprise, establish a communication link with a corresponding application executing on a server in the retail store, and receive information about purchases made by the subscriber of the electronic device. This purchase information may be used in the process of generating coupons described above.
The interface and applications pack may provide controls to access a network application that promotes participation in relevant social media, for example to participate in a home improvement discussion forum sponsored by the subject retail store, to post photographs of home improvement projects the user has completed, and to post descriptions of the materials used and/or innovations applied to overcome peculiar problems. The interface and applications pack may provide controls to select videos posted to the home improvement social media site, for example video showing fundamental techniques of using tools.
The interface and applications pack may provide media files that define wall papers and themes that change the look and sounds of the electronic device. For example, the interface and application pack may include an audio file that defines an aural alert associated with receiving a short message service (SMS) message that is the sound of hammering. For example, the interface and application pack may include a picture file that defines the background of the display of the electronic device to be a photographic view of picturesque mountains seen through a 2×4 frame structure for a storage shed. These examples are provided to suggest the scope and power of the ID pack construct, but it is understood that a great variety of implementations of the ID pack are contemplated by the present disclosure. The interface and applications pack may include alerting tones that are played when selected events occur to alert a user, for example to alert the user that a simple message service (SMS) message has been received or to alert the user to an event or the approach of an event germane to the subject interface and applications pack.
The interface and applications pack may provide interface controls for selecting functionality provided as part of the interface and applications pack as well as for selecting functionality that may be provided by the electronic device independently of the interface and applications pack. For example, the interface and applications pack may provide a control for invoking an address book widget that is provided by the firmware of the electronic device or for invoking a voice call dialing functionality. Interface controls provided by the interface and applications pack that invoke functions provided by the electronic device itself, for example provided in firmware of the electronic device, may be referred to as encapsulated controls. Such encapsulation of controls by the interface and applications pack may promote a more complete adaptation of the communication experience.
The interface and applications pack further comprises an automatic self-installation routine that provides a user-friendly means to “stand up” the interface and applications pack for the electronic device. The self-installation routine may download applications, web widgets, ring tones, wallpapers, and other content to the electronic device. The self-installation routine may include instructions to automatically configure the device's home screens such as shortcuts, bookmarks, and widget placement. In an embodiment, a portion of the self-installation routine may execute partly in the network to provision and/or initialize network services, ringback tones, and other network-provided functionality associated with the interface and applications pack. For example, a portion of the self-installation routine may initialize and/or provision voice-mail changes. The portion of the self-installation routine that executes on the electronic device may invoke the portion of the self-installation routine that executes in the network. In an embodiment, a portion of the self-installation routine may be provided by a utility built into the basic firmware or software library of the electronic device and another portion of the self-installation routine may be provided as part of the specific interface and applications pack.
The interface and applications pack is experienced, at one level of abstraction, as a unity. For example, when a user selects an ID pack for installation on the electronic device, the user may perform a single selection action, and the self-installation routine may perform a number of separate and distinct actions to stand-up the selected ID pack that are not observed by the user. When the user selects an ID pack to be active, a currently active ID pack may be deactivated and the various distinct components of the selected ID pack may be brought into operation as a single global action, mediated by the automatic self-installation routine. The unity of experience may be further promoted by interactions among the several components of the ID pack. For example, selection of controls in a web widget of the ID pack may invoke playback of audios stored in media files of the ID pack; for example, execution of an application of the ID pack may trigger a modification of the wallpaper presented as a backdrop for the display of the electronic device.
An interface and applications pack may be tested to assure that the aggregation of media files, applications, web widgets, and network services interact appropriately with each other and do not impair other functionality of the electronic device. The testing may verify that the interface and applications pack interoperates with a range of different electronic devices, standard firmware, and/or standard applications. In an embodiment, the service provider may impose a constraint that interface and applications packs be provided to the electronic device from a controlled content source so that the service provider can exercise oversight and quality control of interface and applications packs. For further details about interface and applications packs, see patent application.
Turning now to
The electronic device 80 may establish a wireless link with the wireless access point 114 and communicate via the wireless access point 114 and via the network 104 to request the branding support application 108 to download one of the branding firmware packages 112 based on a brand identity provided in the request. The branding support application 108 may access the data store 110, retrieve a copy of the selected branding firmware package 112, and transmit the copy of the selected branding firmware package 112 to the electronic device 80. The electronic device 80 may also access and retrieve some branding information using a file transfer protocol (FTP) request from a source accessible from the network 104. The electronic device 80 may also access and retrieve some branding information using a hypertext transport protocol (HTTP) request comprising links to branding information via the network 104. In an embodiment, the electronic device 80 may determine a brand identity from the RFID 83 and initiate the wireless link with the wireless access point 114 as part of a branding procedure promoted by execution of a self-branding application on the electronic device 80.
In an embodiment, the system 100 may further comprise an optional electronic scanner 102. The electronic scanner 102 may read the branding identity from the RFID tag 83, for example in the circumstance where the electronic device 80 lacks a radio suitable for reading the RFID tag 83 itself, communicates this information to the branding support application 108, and the branding support application 108 transmits this information to the electronic device 80 via the wireless access point 114. The branding support application 108 may further select one of the branding firmware packages 112 based on the brand identity and transmit a copy of the selected branding firmware package 112 to the electronic device via the wireless access point 114. The optional electronic scanner 102 alternatively may read optical information from the electronic device, for example the optional electronic scanner 102 may capture an image of a branded graphic from the second branded battery cover 82b. The optional electronic scanner 102 may transmit the scanned image of the branded graphic to the branding support application 108. The branding support application 108 may execute an image processing routine to match the scanned image or a portion of the scanned image to a dictionary of valid brand identities. The branding support application 108 may then select one of the branding firmware packages 112 based on the brand identity and transmit a copy of the selected branding firmware package 112 to the electronic device 80 via the wireless access point 114. When the electronic device 80 has received the branding firmware package 112, the electronic device 80 may load and/or activate the branding firmware. The electronic device 80 may also use links and/or references provided by the branding support application 108 to access and retrieve branding information via the wireless access point 114 and the network 104.
Turning now to
Under some circumstances, the electronic device 80 may miss branding when in the distribution center 84 and may be shipped to its destination in its initially unbranded state. For example, due to a defect in the training process a new employee may pack the battery and branded battery cover 82 in the retail sale package of the electronic device 80 but fail to power on the electronic device 80. Under this circumstance, the electronic device 80 may not be branded.
In an embodiment, the self-branding application executing on the electronic device 80 may be programmed to attempt to establish communication links to complete branding according to a hierarchy of preferences. The self-branding application executing on the electronic device 80 may first attempt to connect to the wireless access point 114 described above with reference to
Turning now to
At block 204 a battery cover comprising branding information is provided to the electronic device. In block 204, a battery may be installed into the electronic device and the battery cover may be attached to the electronic device. In some contexts the battery cover may be referred to as a branded battery cover. The branding information may comprise any of the branding information described above. The branding information may merely be a branded graphic that may be scanned to determine a brand identity. Alternatively, the branding information may be a radio frequency identity (RFID) tag that contains the brand identity and optionally further branding information. It is understood that in some embodiments another component may be plugged into, attached to, or snapped into the electronic device that comprises branding information. In general, a battery cover may be understood to be a member of this larger set of components.
At block 206, the battery cover or other component is optionally scanned to determine the brand identity. This may comprise taking a digital image of a branded graphic on the battery cover or other component and analyzing the digital image to determine the brand identity based on the branded graphic. Alternatively, this may comprise reading information from a radio frequency identity tag coupled to the battery cover or the electronic device itself to determine the brand identity.
At block 208, the electronic device optionally self-determines a brand identity by reading information from a radio frequency identity tag coupled to the battery cover, to another component, or to the electronic device itself using a near-field-communication radio transceiver of the electronic device. The electronic device may further read additional branding information from the radio frequency identity tag and load this branding firmware and/or branding content into a memory of the electronic device.
At block 210, branding firmware is selected based on the brand identification determined in block 206 and/or block 208 described above. At block 212, branding firmware and/or branding content is wirelessly transmitted to the electronic device. The branding firmware and/or branding content may comprise any of the different kinds of branding firmware and/or branding content described above.
The DSP 502 or some other form of controller or central processing unit operates to control the various components of the electronic device 400 in accordance with embedded software or firmware stored in memory 504 or stored in memory contained within the DSP 502 itself. In addition to the embedded software or firmware, the DSP 502 may execute other applications stored in the memory 504 or made available via information carrier media such as portable data storage media like the removable memory card 520 or via wired or wireless network communications. The application software may comprise a compiled set of machine-readable instructions that configure the DSP 502 to provide the desired functionality, or the application software may be high-level software instructions to be processed by an interpreter or compiler to indirectly configure the DSP 502.
The DSP 502 may communicate with a wireless network via the analog baseband processing unit 510. In some embodiments, the communication may provide Internet connectivity, enabling a user to gain access to content on the Internet and to send and receive e-mail or text messages. The input/output interface 518 interconnects the DSP 502 and various memories and interfaces. The memory 504 and the removable memory card 520 may provide software and data to configure the operation of the DSP 502. Among the interfaces may be the USB port 522 and the infrared port 524. The USB port 522 may enable the electronic device 400 to function as a peripheral device to exchange information with a personal computer or other computer system. The infrared port 524 and other optional ports such as a Bluetooth interface or an IEEE 802.11 compliant wireless interface may enable the electronic device 400 to communicate wirelessly with other nearby handsets and/or wireless base stations.
The keypad 528 couples to the DSP 502 via the interface 518 to provide one mechanism for the user to make selections, enter information, and otherwise provide input to the electronic device 400. Another input mechanism may be the touch screen LCD 530, which may also display text and/or graphics to the user. The touch screen LCD controller 532 couples the DSP 502 to the touch screen LCD 530. The GPS receiver 538 is coupled to the DSP 502 to decode global positioning system signals, thereby enabling the electronic device 400 to determine its position.
It is understood that by programming and/or loading executable instructions onto the computer system 780, at least one of the CPU 782, the RAM 788, and the ROM 786 are changed, transforming the computer system 780 in part into a particular machine or apparatus having the novel functionality taught by the present disclosure. It is fundamental to the electrical engineering and software engineering arts that functionality that can be implemented by loading executable software into a computer can be converted to a hardware implementation by well known design rules. Decisions between implementing a concept in software versus hardware typically hinge on considerations of stability of the design and numbers of units to be produced rather than any issues involved in translating from the software domain to the hardware domain. Generally, a design that is still subject to frequent change may be preferred to be implemented in software, because re-spinning a hardware implementation is more expensive than re-spinning a software design. Generally, a design that is stable that will be produced in large volume may be preferred to be implemented in hardware, for example in an application specific integrated circuit (ASIC), because for large production runs the hardware implementation may be less expensive than the software implementation. Often a design may be developed and tested in a software form and later transformed, by well known design rules, to an equivalent hardware implementation in an application specific integrated circuit that hardwires the instructions of the software. In the same manner as a machine controlled by a new ASIC is a particular machine or apparatus, likewise a computer that has been programmed and/or loaded with executable instructions may be viewed as a particular machine or apparatus.
The secondary storage 784 is typically comprised of one or more disk drives or tape drives and is used for non-volatile storage of data and as an over-flow data storage device if RAM 788 is not large enough to hold all working data. Secondary storage 784 may be used to store programs which are loaded into RAM 788 when such programs are selected for execution. The ROM 786 is used to store instructions and perhaps data which are read during program execution. ROM 786 is a non-volatile memory device which typically has a small memory capacity relative to the larger memory capacity of secondary storage 784. The RAM 788 is used to store volatile data and perhaps to store instructions. Access to both ROM 786 and RAM 788 is typically faster than to secondary storage 784. The secondary storage 784, the RAM 788, and/or the ROM 786 may be referred to in some contexts as computer readable storage media and/or non-transitory computer readable media.
I/O devices 790 may include printers, video monitors, liquid crystal displays (LCDs), touch screen displays, keyboards, keypads, switches, dials, mice, track balls, voice recognizers, card readers, paper tape readers, or other well-known input devices.
The network connectivity devices 792 may take the form of modems, modem banks, Ethernet cards, universal serial bus (USB) interface cards, serial interfaces, token ring cards, fiber distributed data interface (FDDI) cards, wireless local area network (WLAN) cards, radio transceiver cards such as code division multiple access (CDMA), global system for mobile communications (GSM), long-term evolution (LTE), worldwide interoperability for microwave access (WiMAX), and/or other air interface protocol radio transceiver cards, and other well-known network devices. These network connectivity devices 792 may enable the processor 782 to communicate with the Internet or one or more intranets. With such a network connection, it is contemplated that the processor 782 might receive information from the network, or might output information to the network in the course of performing the above-described method steps. Such information, which is often represented as a sequence of instructions to be executed using processor 782, may be received from and outputted to the network, for example, in the form of a computer data signal embodied in a carrier wave.
Such information, which may include data or instructions to be executed using processor 782 for example, may be received from and outputted to the network, for example, in the form of a computer data baseband signal or signal embodied in a carrier wave. The baseband signal or signal embedded in the carrier wave, or other types of signals currently used or hereafter developed, may be generated according to several methods well known to one skilled in the art. The baseband signal and/or signal embedded in the carrier wave may be referred to in some contexts as a transitory signal.
The processor 782 executes instructions, codes, computer programs, scripts which it accesses from hard disk, floppy disk, optical disk (these various disk based systems may all be considered secondary storage 784), ROM 786, RAM 788, or the network connectivity devices 792. While only one processor 782 is shown, multiple processors may be present. Thus, while instructions may be discussed as executed by a processor, the instructions may be executed simultaneously, serially, or otherwise executed by one or multiple processors. Instructions, codes, computer programs, scripts, and/or data that may be accessed from the secondary storage 784, for example, hard drives, floppy disks, optical disks, and/or other device, the ROM 786, and/or the RAM 788 may be referred to in some contexts as non-transitory instructions and/or non-transitory information.
In an embodiment, the computer system 780 may comprise two or more computers in communication with each other that collaborate to perform a task. For example, but not by way of limitation, an application may be partitioned in such a way as to permit concurrent and/or parallel processing of the instructions of the application. Alternatively, the data processed by the application may be partitioned in such a way as to permit concurrent and/or parallel processing of different portions of a data set by the two or more computers. In an embodiment, virtualization software may be employed by the computer system 780 to provide the functionality of a number of servers that is not directly bound to the number of computers in the computer system 780. For example, virtualization software may provide twenty virtual servers on four physical computers. In an embodiment, the functionality disclosed above may be provided by executing the application and/or applications in a cloud computing environment. Cloud computing may comprise providing computing services via a network connection using dynamically scalable computing resources. Cloud computing may be supported, at least in part, by virtualization software. A cloud computing environment may be established by an enterprise and/or may be hired on an as-needed basis from a third party provider. Some cloud computing environments may comprise cloud computing resources owned and operated by the enterprise as well as cloud computing resources hired and/or leased from a third party provider.
In an embodiment, some or all of the functionality disclosed above may be provided as a computer program product. The computer program product may comprise one or more computer readable storage medium having computer usable program code embodied therein to implement the functionality disclosed above. The computer program product may comprise data structures, executable instructions, and other computer usable program code. The computer program product may be embodied in removable computer storage media and/or non-removable computer storage media. The removable computer readable storage medium may comprise, without limitation, a paper tape, a magnetic tape, magnetic disk, an optical disk, a solid state memory chip, for example analog magnetic tape, compact disk read only memory (CD-ROM) disks, floppy disks, jump drives, digital cards, multimedia cards, and others. The computer program product may be suitable for loading, by the computer system 780, at least portions of the contents of the computer program product to the secondary storage 784, to the ROM 786, to the RAM 788, and/or to other non-volatile memory and volatile memory of the computer system 780. The processor 782 may process the executable instructions and/or data structures in part by directly accessing the computer program product, for example by reading from a CD-ROM disk inserted into a disk drive peripheral of the computer system 780. Alternatively, the processor 782 may process the executable instructions and/or data structures by remotely accessing the computer program product, for example by downloading the executable instructions and/or data structures from a remote server through the network connectivity devices 792. The computer program product may comprise instructions that promote the loading and/or copying of data, data structures, files, and/or executable instructions to the secondary storage 784, to the ROM 786, to the RAM 788, and/or to other non-volatile memory and volatile memory of the computer system 780.
In some contexts, the secondary storage 784, the ROM 786, and the RAM 788 may be referred to as a non-transitory computer readable medium or a computer readable storage media. A dynamic RAM embodiment of the RAM 788, likewise, may be referred to as a non-transitory computer readable medium in that while the dynamic RAM receives electrical power and is operated in accordance with its design, for example during a period of time during which the computer 780 is turned on and operational, the dynamic RAM stores information that is written to it. Similarly, the processor 782 may comprise an internal RAM, an internal ROM, a cache memory, and/or other internal non-transitory storage blocks, sections, or components that may be referred to in some contexts as non-transitory computer readable media or computer readable storage media.
While several embodiments have been provided in the present disclosure, it should be understood that the disclosed systems and methods may be embodied in many other specific forms without departing from the spirit or scope of the present disclosure. The present examples are to be considered as illustrative and not restrictive, and the intention is not to be limited to the details given herein. For example, the various elements or components may be combined or integrated in another system or certain features may be omitted or not implemented.
Also, techniques, systems, subsystems, and methods described and illustrated in the various embodiments as discrete or separate may be combined or integrated with other systems, modules, techniques, or methods without departing from the scope of the present disclosure. Other items shown or discussed as directly coupled or communicating with each other may be indirectly coupled or communicating through some interface, device, or intermediate component, whether electrically, mechanically, or otherwise. Other examples of changes, substitutions, and alterations are ascertainable by one skilled in the art and could be made without departing from the spirit and scope disclosed herein.