Map based seed vacuum control

A method including adjusting a changeable component of a seed planting machine when switching from a first variety of seed to a second variety of seed during planting, wherein the adjusting is based on a location of the planting machine.

FIELD OF THE DISCLOSURE

The present application relates generally to techniques for planting seeds by a seed planter, and in particular is directed to improved vacuum seed meters for multiple variety planting operations.

BACKGROUND

Seed planters may be used to automatically plant seeds into rows of a field. Whether towed or part of the tractor or other machine, seed planters dispense seeds at a controlled rate into one or more seed furrows or rows as the planter moves along a field. Seed planters typically have several planting or row units in a spaced-apart arrangement such that several rows can be simultaneously planted.

The planting or row units may include one or more seed hoppers that hold seeds. A seed hopper holds a seed supply that feeds a seed meter. In turn, a seed meter may control a rate at which seeds are dispensed as the seed planter traverses a field. Each planting or row unit may also include other equipment, such as a furrow opener and/or a furrow closer, or other equipment.

Attention is turned to the seed meter in particular. Seed meters may use a variety of different mechanical principles to control how seeds are dispensed, but generally all seed meters are designed to dispense seeds at a controlled rate, often one seed at a time. However, seed meters will have occasional errors, for example, “doubles” in which multiple seeds are dispensed when only one seed is intended to be dispensed, or “skips” in which no seed is dispensed when a seed is intended to be dispensed.

One particular type of seed meter is known as a vacuum seed meter. A vacuum seed meter may use a vacuum to control how seeds are taken from a hopper seed pool and are dispensed from the meter. In one specific example, a vacuum seed meter may use a vacuum to gently pull and hold individual seeds to a seed disk. The disk then rotates, and at a designated place during rotation, the seed is released from the seed disk and dispensed for planting. A vacuum seed meter may include a double eliminator configured to remove doubles at individual seed apertures of the seed disk. Vacuum seed meters may plant a wide variety of crops and seed types by, for example, changing seed disks.

Multiple variety planting is a planting operation in which multiple varieties of seed are to be dispensed in a field. Typically the varieties of seed are of the same plant species, but the varieties have different characteristics. For example, one variety of corn may be more disease resistant but have a lower yield than a second variety of corn. If a particular part of a field has had a history of disease, then the disease resistant variety may be planted in that particular part of the field, but the higher yield variety may be planted in other parts of the field. A drought resistant variety of corn may be desired for planting in a third part of the field where water is expected to be scarce. One possible goal of multiple variety planting is to maximize the total overall yield of a field.

Thus, multiple variety planting utilizes a map-based prescription that indicates what varieties of seed are to be planted in corresponding different portions of a field. The physical characteristics of the different seed varieties, may suggest that the seed meter be adjusted differently for the different varieties. However, since adjustment of the meters will be difficult or impossible to accomplish while planting, the meter may be adjusted to an acceptable, but not optimal, setting and left there for all seed varieties. Thus, devices and methods are desired that allow a seed meter, including vacuum seed meters in particular, to automatically implement changes to the seed meter in order to optimize planting of different varieties of seed at different times during a multiple variety planting operation.

SUMMARY

The illustrative embodiments include a first method. The method includes adjusting a changeable component of a seed planting machine when switching from a first variety of seed to a second variety of seed during planting, wherein the adjusting is based on a location of the planting machine.

The illustrative embodiments include a second method. The second method includes planting a first variety of seed in a first location of a field of land using a planting machine, the planting machine comprising a component, the component having a first setting configured to improve a first performance of the planting machine when planting the first variety of seed, wherein the first performance is gauged relative to the planting machine planting the first variety of seed using other settings of the component. The second method also includes sensing that the planting machine will reach or has reached a second location of the field, different than the first location, wherein a second variety of seed, different than the first variety of seed, is to be planted in the second location. The second method also includes responsive to sensing, automatically adjusting the component of the planting machine to a second setting, the second setting configured to improve a second performance of the planting machine while planting the second variety of seed, wherein the second performance is gauged relative to the planting machine planting the second variety of seed using other settings of the component. The second method also includes planting the second variety of seed in the second location of the field using the component at the second setting.

The illustrative embodiments also provide for a multiple variety planter. The multiple variety planter includes a planting machine comprising an adjustable component, the adjustable component being adjustable between a first configuration and a second configuration, the first configuration set to maximize planting efficiency of a first variety of seed relative to other varieties of seeds, the second configuration set to maximize planting efficiency of a second variety of seed relative to other varieties of seeds. The multiple variety planter also includes a controller in communication with the automatic seed planter, the controller configured to automatically adjust the adjustable component between the first configuration and the second configuration based on a particular location of the automatic seed planter in a field of land comprising a plurality of different locations that include the particular location.

The illustrative embodiments provide for a third method. The third method includes adjusting a vacuum level applied to a vacuum seed meter of a seed planting machine based on an attitude of the seed planting machine.

The features, functions, and advantages can be achieved independently in various embodiments of the present invention or may be combined in yet other embodiments in which further details can be seen with reference to the following description and drawings.

DETAILED DESCRIPTION

The illustrative embodiments recognize and take into account that available multiple variety seed meters are not automatically optimized for the different variety seeds when changing what variety of seed is dispensed during a multiple variety planting operation. The illustrative embodiments provide for a seed meter configured to automatically adjust to optimize planting of a particular seed variety within a particular location of a field during a multiple variety planting operation. In an illustrative embodiment, the term “automatically adjust” means the machine makes adjustments to the seed meter in real time while planting seed, with no input from the operator.

The illustrative embodiments recognize and take into account that multiple variety planting operations typically use a map-based prescription that indicates what specific variety of seed is to be planted in a corresponding specific portion of a field. The illustrative embodiments thus provide for a seed meter that automatically adjusts in order to dispense a specific variety of seed based on a location of the seed planting machine within the field. Specifically, the illustrative embodiments may automatically adjust a double eliminator, a vacuum level, or both in order to most efficiently dispense a specific variety of seed at a particular portion of a field. The settings of the double eliminator and the vacuum level may be made based on a size and shape of a seed of a particular seed variety.

Thus, the illustrative embodiments provide for an optimal adjustment of a row unit meter system for variable variety planting situations. To accomplish this goal, the illustrative embodiments may include two parts that work with a map-based prescription system. The first part stores vacuum and double eliminator settings in map data with the variety locations. The second part provides for a method to adjust the row units for vacuum setting and double eliminator setting as the planter transverses the field. Vacuum control may be accomplished by a closed loop control system based on the vacuum sensor and control of a tractor selective control valve (SVC). The double eliminator (DE) setting may be controlled with a linear actuary used to correctly position the position of the double eliminator. Other control methods are possible.

Attention is now turned to the Figures.FIG. 1shows a seed planter attached to a tractor, in accordance with an illustrative embodiment. Tractor100may traverse field102as part of a planting operation, including a multiple variety planting operation. Tractor100may tow seed planting machine104, which plants seeds in field102as tractor100moves. Seed planting machine104may include a vacuum seed meter, as shown inFIG. 2.

FIG. 2shows an example of one type of vacuum seed meter, in accordance with an illustrative embodiment. Vacuum seed meter200may be used in a seed planting machine, such as seed planting machine104ofFIG. 1. Such a seed planting machine may include multiple vacuum seed meters, such as vacuum seed meter200. Vacuum seed meter200ofFIG. 2is only an example of a wide variety of vacuum seed meters. Thus, the arrangement of vacuum seed meter200inFIG. 2does not necessarily limit the claimed inventions.

Vacuum seed meter200includes seed disk208having multiple apertures, such as aperture202. Vacuum system204may draw air through these apertures and create a partial vacuum within housing206. As a result, seeds fed to vacuum seed meter200from a hopper are drawn to be held against the apertures. A double eliminator (not shown) may then be used to reduce the incidence of doubles, which again is the dispensing of two seeds where only one seed is desired to be dispensed.

In use, seed disk208may rotate about hub210while vacuum system204draws a vacuum through at least some of the apertures, such as aperture202. Seeds may be dispensed as gravity causes seeds to fall from the apertures when the vacuum is released and through an opening in housing206.

While one disk, seed disk208, is shown inFIG. 2, other types of disks may be substituted for seed disk208. Different disks may have different sizes or arrangements of apertures, may have multiple concentric rings of apertures, and may have other features designed to guide seeds during operation. Selection of the disk to be used may be based on the type of seed and seed variety to be planted.

FIG. 3is a block diagram illustrating zones of a field, wherein a different variety of seed is to be planted in each different zone, in accordance with an illustrative embodiment.FIG. 3shows a map-based prescription for which varieties of seed are to be planted in different zones of field300during a multiple variety planting operation. In an illustrative embodiment, seed planting machine104ofFIG. 1will be used to plant seeds in field300. One or more vacuum seed meters, such as vacuum seed meter200ofFIG. 2, will be used to plant the seeds. The same vacuum seed meters will be used to plant each different variety of seed in the various zones of field300.

Field300includes two zones, zone A302and zone B304. More zones could be present. Each of these zones is to receive a different variety of seed. For example, variety X306is to be planted in zone A302and variety Y308is to be planted in zone B304. Multiple zones of the same type may be present in field300. For example, as shown inFIG. 3, five instances of zone B304may be present. Areas in between these zones are all part of zone A302, in which variety X306is to be planted. Because the arrangement of instances of zone B304shown inFIG. 3are dispersed within another zone, zone A302, manual adjustment of a seed planting machine would be inconvenient, impractical, or impossible.

In an illustrative embodiment, field300is being planted using a single plant species, such as corn, wheat, or some other plant. Each variety is a variety of that single plant species. For example, variety X306may have a very high crop yield of corn, but a lower resistance to disease. Because a higher incidence of disease has historically occurred in zone B304, a relatively lower crop yield but more disease resistant variety of corn, variety Y308, may be planted in zone B304. Likewise, for different reasons, different varieties of corn may be planted in each different zone. Thus, field300shows a map-based prescription for which variety of seed is to be planted in a given zone of field300. This map-based prescription may be designed to maximize the overall total crop yield for field300.

One variety of seed may have different physical characteristics from another variety of seed, such as different size, shape, or weight. Each vacuum seed meter may be adjusted to accommodate these different physical characteristics so that efficiency of planting is optimized for a given variety of seed in a given zone. Maximum planting efficiency may be defined in one example as defined as eliminating all, or substantially all, skips and doubles to maximize the seed spacing consistency. Optimizing planting efficiency is defined as achieving as close to maximum planting efficiency as possible for a given vacuum seed meter or other seed planting machine.

FIG. 4shows a block diagram of a system for automatically controlling a vacuum seed meter, in accordance with an illustrative embodiment. Vacuum seed meter400may be, for example, vacuum seed meter200ofFIG. 2, which in turn may be part of seed planting machine104inFIG. 1. The arrangement of blocks shown inFIG. 4is not necessarily limiting of the claimed inventions, and more and fewer blocks may be present, as described in part below.

Vacuum seed meter control402may control operation of vacuum seed meter400. In particular, vacuum seed meter control402may control the amount of vacuum applied within the vacuum seed meter. However, vacuum seed meter control402may control other aspects of operation of the vacuum seed meter, including but not limited to disk rotation speed or other controllable aspects of a vacuum seed meter.

If a double eliminator is present in vacuum seed meter, then double eliminator control404may control operation of a double eliminator in the vacuum seed meter. In some cases double eliminator control404may be part of vacuum seed meter control402.

In turn, processor406issues commands to control vacuum seed meter control402and, if present, double eliminator control404. Processor406may take as input data from a variety of sources. For example, processor406may take position data from global positioning system408, the position data informing processor406of where the seed planting machine is located. Processor406may also retrieve or receive map data stored on non-transitory computer readable storage medium410. The map data includes a map of a field that may be divided into zones, along with a map-based prescription of what seed varieties are to be planted in a given zone. Processor406may use the position data and the map data to determine when the seed planting machine has changed zones within a field. Upon detecting a change in zone, processor406may order vacuum seed meter control402and double eliminator control404to change settings of the vacuum, the double eliminator, or other parameters of vacuum seed meter400in order to optimize planting of a new and different variety of seed.

Processor406may also take as input data from vacuum sensor412and/or speed sensor414to measure a vacuum within vacuum seed meter400and a speed of the seed planting machine. These data may be used to either verify that vacuum seed meter400is operating as desired for the zone being planted, or to modify operation of double eliminator control404and/or vacuum seed meter control402to optimize planting efficiency of the desired seed variety.

Processor406may communicate with the various other systems described inFIG. 4by means of wireless transceiver416. However, communication also may be established by wired communications, or a combination of wired and wireless communications for different components.

The blocks shown inFIG. 4may be varied, and more or fewer blocks may be present. For example, in some cases a double eliminator may not be desired or available, and thus double eliminator control404may not be present. In another example, other sensors may be used to gather additional data that processor406can use to further modify operation of vacuum seed meter control402. Additional equipment may be present as part of vacuum seed meter400, and additional sensors and controls may be present to control operation of this additional equipment. Further modifications may be made; thus, the features shown inFIG. 4do not necessarily limit the claimed inventions.

FIG. 5illustrates an example of a method for performing a multiple variety planting operation using a control system, in accordance with an illustrative embodiment. The control system may be, for example, the control system shown inFIG. 4. The operations of method500are described as being carried out by a “system”. As used herein, the “system” may be one or more components of the control system shown inFIG. 4. Method500is implemented using one or more physical components, including one or more of a processor, a non-transitory computer readable storage medium, and physical equipment including a seed planting machine.

Method500begins as the system determines a current location of the seed planting machine (operation502). The system then uses a landscape position zone map to determine a zone associated with the current location (operation504). The system sets a vacuum seed meter for the current zone (operation506). The vacuum seed meter may be part of the seed planting machine.

The system then determines whether the zone changes (operation508). If the zone does not change, then the method returns to operation502in order to continue to monitor the zone in which the seed planting machine is located and to continue the setting for the vacuum seed meter of the seed planting machine. However, if the zone does change, then the system accesses a parameter control table to determine one or more optimized settings for the vacuum seed meter for the new zone (operation510). The parameter control table may be a table, or other data not necessarily in table form, that specifies for a given zone one or more settings to be used for the vacuum seed meter, double eliminator, or other parts of a seed planting machine. For example, the parameter control table may specify that for zone A302ofFIG. 3the vacuum pressure may be at or about a specified value, that the double eliminator be adjusted in a particular manner, and/or some other aspect of the seed planting machine be adjusted while performing a planting operation in zone A302.

The system then uses the parameter control table and controllers to adjust one or more settings of the vacuum seed meter to match the parameters of the parameter control table (operation512). Other aspects or components of the seed planting machine may also be adjusted accordingly, if desired. In any case, the system continues the planting operation using the one or more new settings (operation514).

The system may then determine whether the planting operation should continue (operation516). If the planting operation should continue, then the method may return to operation502and continue accordingly. Otherwise, the process may terminate thereafter.

Method500does not necessarily limit the claimed inventions. Alternative methods having more, fewer, or different operations are possible. For example,FIG. 6andFIG. 7provide for alternative methods.

FIG. 6is a flowchart of a method of adjusting a changeable component, in accordance with an illustrative embodiment. Method600ofFIG. 6is an alternative method to controlling a seed planting machine, relative to method500ofFIG. 5. Method600may be implemented using the control system shown inFIG. 4using vacuum seed meter200ofFIG. 2and seed planting machine104ofFIG. 1.

In an illustrative embodiment, method600includes adjusting a changeable component of a seed planting machine when switching from a first variety of seed to a second variety of seed during planting, wherein the adjusting is based on a location of the seed planting machine (operation602). The process may terminate thereafter.

Method600may be modified by adding additional operations or modifying operation602. For example, the component may be a double eliminator configured to prevent multiple seeds from being planted at a particular location. In another example, the seed planting machine comprises a vacuum seed meter, and wherein adjusting the changeable component comprises adjusting a vacuum level applied to the vacuum seed meter.

In another example, the seed planting machine includes a double eliminator and a vacuum seed meter. In this case, operation602may include changing the double eliminator to prevent multiple seeds from being planted at a particular location, and adjusting a vacuum level applied to the vacuum seed meter. In another example, adjusting configures the seed planting machine to maximize performance of planting of the one of the plurality of different varieties of seed.

FIG. 7is a flowchart of a method of planting seeds, in accordance with an illustrative embodiment. Method700ofFIG. 7is an alternative method to controlling a seed planting machine, relative to method500ofFIG. 5or method600ofFIG. 6. Method700may be implemented using the control system shown inFIG. 4using vacuum seed meter200ofFIG. 2and seed planting machine104ofFIG. 1.

Method700may begin by planting a first variety of seed in a first location of a field of land using a planting machine, the planting machine comprising a component, the component having a first setting configured to improve a first performance of the planting machine when planting the first variety of seed, wherein the first performance is gauged relative to the planting machine planting the first variety of seed using other settings of the component (operation702). Next, method700may include sensing that the planting machine will reach or has reached a second location of the field, different than the first location, wherein a second variety of seed, different than the first variety of seed, is to be planted in the second location (operation704).

Next, method700may include, responsive to sensing, automatically adjusting the component of the planting machine to a second setting, the second setting configured to improve a second performance of the planting machine while planting the second variety of seed, wherein the second performance is gauged relative to the planting machine planting the second variety of seed using other settings of the component (operation706). Next, method700may include planting the second variety of seed in the second location of the field using the component at the second setting (operation708). The process may terminate thereafter.

Method700may be modified by replacing, removing, adding, or modifying operations. Thus, method700does not necessarily limit the claimed inventions.

For example, in an illustrative embodiment the component is a double eliminator to prevent multiple seeds from being planted during a given planting operation at a particular location, and wherein automatically adjusting comprises changing the setting of the double eliminator to a second setting. In another example, the component is a vacuum seed meter, and wherein automatically adjusting comprises changing a level of vacuum applied to the vacuum seed meter.

In still another example, the component includes both a double eliminator to prevent multiple seeds from being planted during a given planting operation at a particular location, and a vacuum seed meter. In this case, automatically adjusting includes changing the double eliminator to a second setting changing the level of vacuum applied to the seed meter to a second setting.

FIG. 8is a flowchart of a method of planting seeds, in accordance with an illustrative embodiment. Method800ofFIG. 8is an alternative method to controlling a seed planting machine, relative to method500ofFIG. 5, method600ofFIG. 6, or method700ofFIG. 7. Method800may be implemented using the control system shown inFIG. 4using vacuum seed meter200ofFIG. 2and seed planting machine104ofFIG. 1.

Method800includes adjusting a vacuum level applied to a vacuum seed meter of a seed planting machine based on an attitude of the seed planting machine (operation802). Method800represents an alternative or possibly additional parameter used to control a seed planting machine or vacuum seed meter. For example,FIG. 3illustrates one principle of operation, which is to use a map-based prescription for controlling optimization of which variety of seed is to be planted within a given zone. In addition, an attitude of the seed planting machine may be used to control the vacuum pressure, double eliminator settings, and/or other aspects of a seed planting machine.

In an example embodiment, “attitude” refers to a tilt of the seed planting machine relative to a plane perpendicular to the direction of the force of gravity. For example, a seed planting machine has an attitude of zero when it is level, but may have a non-zero attitude when on a slope of a hill. Sometimes, the attitude of the seed planting machine side-to-side may affect how much vacuum is needed to optimize the pick-up of seeds on the seed disk. In this case, adjustment of a meter parameter does not use a map based approach but rather simply a tilt of the seed planting machine may be monitored. However, in a different illustrative embodiment, a zone of a field, such as described with respect toFIG. 3, may be designated because the ground in that zone has a slope. Thus, the illustrative embodiments described with respect toFIGS. 3-7may still be applied to a zone defined because the ground has a slope within that zone.

Nevertheless, method800may be further modified or may have additional operations. For example, the attitude of the seed planting machine may be detected by a sensor. In another illustrative embodiment, the attitude of the seed planting machine may be determined based on a location of the seed planting machine in a field, a map of the field containing information of field contours and a direction of travel of the seed planting machine. In still another illustrative embodiment, adjusting configures the seed planting machine to maximize performance of planting of one of a plurality of different varieties of seed.

In yet another illustrative embodiment, the seed planting machine further includes a double eliminator configured to prevent multiple seeds from being planted at a particular location. In this case, the method may further include adjusting the double eliminator based on the attitude. Additionally, adjusting the vacuum level and adjusting the double eliminator together may configure the seed planting machine to maximize performance of planting of one of a plurality of different varieties of seed.

FIG. 9is a block diagram of a multiple variety planter, in accordance with an illustrative embodiment. Multiple variety planter900may be seed planting machine104ofFIG. 1. Multiple variety planter900may include vacuum seed meter200ofFIG. 2. Multiple variety planter900may include or be in communication with the control system shown inFIG. 4. Multiple variety planter900may be used to implement any of the methods shown inFIG. 5throughFIG. 8.

Multiple variety planter900may include planting machine902. Planting machine may include adjustable component904. Adjustable component904may be adjustable between first configuration906and second configuration908. First configuration906may be set to maximize planting efficiency of a first variety of seed relative to other varieties of seeds. Second configuration908may be set to maximize planting efficiency of a second variety of seed relative to other varieties of seeds.

Multiple variety planter900may also include controller910in communication with planting machine902. Controller910may be configured to automatically adjust adjustable component904between first configuration906and second configuration908based on a particular location of planting machine902in a field of land comprising a plurality of different locations that include the particular location.

Multiple variety planter900may be varied or modified. For example, controller910may be one or more components of the control system shown inFIG. 4. In another example, adjustable component904may be a double eliminator to prevent multiple seeds from being planted in the particular location. In still another example, adjustable component904may be a vacuum control system configured to control a vacuum level applied to a vacuum seed meter configured to dispense seeds during a given planting operation.

In yet another example, adjustable component904may further be a double eliminator. In other words, adjustable component904includes both a vacuum control system and a double eliminator. In this case, the double eliminator may be configured to prevent multiple seeds from being planted in the particular location during a given planting operation. Additionally, both the double eliminator and the vacuum control system are configured to be adjusted as part of the adjustable component being adjusted.

FIG. 10is an illustration of a data processing system, in accordance with an illustrative embodiment. Data processing system1000inFIG. 10is an example of a data processing system that may be used to implement the illustrative embodiments, such as the control system shown inFIG. 4. For example, processor unit1004may be processor406ofFIG. 4and computer readable media1020may be non-transitory computer readable storage medium410ofFIG. 4. Data processing system1000and computer readable media1020ofFIG. 10may be used to implement any of the methods shown inFIG. 5throughFIG. 8. Data processing system1000and computer readable media1020ofFIG. 10may be used as part or all of controller910ofFIG. 9.

In this illustrative example, data processing system1000includes communications fabric1002, which provides communications between processor unit1004, memory1006, persistent storage1008, communications unit1010, input/output (I/O) unit1012, and display1014. Processor unit1004serves to execute instructions for software that may be loaded into memory1006. Processor unit1004may be a number of processors, a multi-processor core, or some other type of processor, depending on the particular implementation. A number, as used herein with reference to an item, means one or more items. Further, processor unit1004may be implemented using a number of heterogeneous processor systems in which a main processor is present with secondary processors on a single chip. As another illustrative example, processor unit1004may be a symmetric multi-processor system containing multiple processors of the same type.

Memory1006and persistent storage1008are examples of storage devices1016. A storage device is any piece of hardware that is capable of storing information, such as, for example, without limitation, data, program code in functional form, and/or other suitable information either on a temporary basis and/or a permanent basis. Storage devices1016may also be referred to as computer readable storage devices in these examples. Memory1006, in these examples, may be, for example, a random access memory or any other suitable volatile or non-volatile storage device. Persistent storage1008may take various forms, depending on the particular implementation.

For example, persistent storage1008may contain one or more components or devices. For example, persistent storage1008may be a hard drive, a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above. The media used by persistent storage1008also may be removable. For example, a removable hard drive may be used for persistent storage1008.

Communications unit1010, in these examples, provides for communications with other data processing systems or devices. In these examples, communications unit1010is a network interface card. Communications unit1010may provide communications through the use of either or both physical and wireless communications links.

Input/output (I/O) unit1012allows for input and output of data with other devices that may be connected to data processing system1000. For example, input/output (I/O) unit1012may provide a connection for user input through a keyboard, a mouse, and/or some other suitable input device. Further, input/output (I/O) unit1012may send output to a printer. Display1014provides a mechanism to display information to a user.

Instructions for the operating system, applications, and/or programs may be located in storage devices1016, which are in communication with processor unit1004through communications fabric1002. In these illustrative examples, the instructions are in a functional form on persistent storage1008. These instructions may be loaded into memory1006for execution by processor unit1004. The processes of the different embodiments may be performed by processor unit1004using computer implemented instructions, which may be located in a memory, such as memory1006.

Program code1018is located in a functional form on computer readable media1020that is selectively removable and may be loaded onto or transferred to data processing system1000for execution by processor unit1004. Program code1018and computer readable media1020form computer program product1022in these examples. In one example, computer readable media1020may be computer readable storage media1024or computer readable signal media1026. Computer readable storage media1024may include, for example, an optical or magnetic disk that is inserted or placed into a drive or other device that is part of persistent storage1008for transfer onto a storage device, such as a hard drive, that is part of persistent storage1008. Computer readable storage media1024also may take the form of a persistent storage, such as a hard drive, a thumb drive, or a flash memory, that is connected to data processing system1000. In some instances, computer readable storage media1024may not be removable from data processing system1000.

Alternatively, program code1018may be transferred to data processing system1000using computer readable signal media1026. Computer readable signal media1026may be, for example, a propagated data signal containing program code1018. For example, computer readable signal media1026may be an electromagnetic signal, an optical signal, and/or any other suitable type of signal. These signals may be transmitted over communications links, such as wireless communications links, optical fiber cable, coaxial cable, a wire, and/or any other suitable type of communications link. In other words, the communications link and/or the connection may be physical or wireless in the illustrative examples.

In some illustrative embodiments, program code1018may be downloaded over a network to persistent storage1008from another device or data processing system through computer readable signal media1026for use within data processing system1000. For instance, program code stored in a computer readable storage medium in a server data processing system may be downloaded over a network from the server to data processing system1000. The data processing system providing program code1018may be a server computer, a client computer, or some other device capable of storing and transmitting program code1018.

In still another illustrative example, processor unit1004may be implemented using a combination of processors found in computers and hardware units. Processor unit1004may have a number of hardware units and a number of processors that are configured to run program code1018. With this depicted example, some of the processes may be implemented in the number of hardware units, while other processes may be implemented in the number of processors.

As another example, a storage device in data processing system1000is any hardware apparatus that may store data. Memory1006, persistent storage1008, and computer readable media1020are examples of storage devices in a tangible form.