Patent ID: 12199735

In the drawings, like reference numbers generally indicate identical or similar elements. Additionally, generally, the left-most digit(s) of a reference number identifies the drawing in which the reference number first appears.

SUMMARY

Provided herein are embodiments for performance-based link management systems that solve issues of existing systems (such as sub-network availability and latency performance) by utilizing parallel links.

An embodiment includes a method for utilizing parallel links in a performance-based link management system. The method includes receiving a generated message, determining a type of the received message, whether the type is an air traffic control message or a non-air traffic control message. Based on the type of message, the method selects communication links comprising a plurality of parallel transmission links or a serial link. The method copies the generated message and transmits the copied message using the selected communication links, and waits to receive an acknowledgement indicating receipt of the transmitted message. Upon identifying the acknowledgement, the method deletes any of the copied messages not yet retransmitted.

Another embodiment includes a system having a router processor that is operable to receive a generated message. The router processor determines the type of the generated message, whether the type is an air traffic control message or a non-air traffic control message. Based on the type of message, the router processor selects communication links comprising a plurality of parallel transmission links or serial links. The router processor then copies the generated message and transmits the copied message using the selected communication links via a transmitter. The router processor waits to receive an acknowledgement of the transmitted message and upon identifying the acknowledgement from a receiver, any of the copied messages not yet retransmitted are deleted.

A further embodiment includes a tangible computer-readable medium having stored therein instructions for execution by one or more processors to perform a method for utilizing parallel links in a performance-based link management system. The method includes receiving a generated message, determining a type of the received message, whether the type is an air traffic control message or a non-air traffic control message. Based on the type of message, the method selects communication links comprising a plurality of parallel transmission links or a serial link. The method copies the generated message and transmits the copied message using the selected communication links, and waits to receive an acknowledgement indicating receipt of the transmitted message. Upon identifying the acknowledgement, the method deletes any of the copied messages not yet retransmitted.

Further features and advantages of the embodiments disclosed herein, as well as the structure and operation of various embodiments, are described in detailed below with reference to the accompanying drawings. It is noted that the invention is not limited to the specific embodiments described herein. Such embodiments are presented herein for illustrative purposes only. Additional embodiments will be apparent to a person skilled in the relevant art based on the teachings contained herein.

DETAILED DESCRIPTION

Embodiments of performance-based link management (PBLM) address existing issues with ATC communication customizable protocols. As ATC communication currently exists, existing ATC communication protocol stacks, including FANS, ATN OSI, Internet Protocol Suite (IPS), and Internet Protocol (IP) Tunneling, are not performance-based. In addition, these existing ATC communication protocol stacks use serial link transmission for both ATC and non-ATC traffic, i.e., transmitting a message using one link at a time, and moving to the next link when the previous link exhausts the link's retries. By using the performance-based link management system, the ATC messages are simultaneously transmitted using parallel links based on ATC performance requirements, e.g., Required Availability, and Required Communication Technical Performance (RCTP), using the pre-existing transceivers on the aircraft and at the ground-based controller with updates to their configuration.

Embodiments enable a performance-based link management system to utilize parallel links in order to more quickly and effectively transmit and receive ATC messages. There are advantages for using simultaneous parallel links in ATC communication. One advantage is significantly increasing the sub-network availability. Sub-network availability refers to the availability of the transceiver radios (i.e., whether the transceiver radios are not transmitting, receiving messages or in a deactivated state). Another advantage for using simultaneous parallel links is reducing the sub-network technical delay multi-fold. The sub-network technical delay refers to the network latency of the transmission data links. Another advantage for using simultaneous parallel links is robustness to sub-network Denial-of-Service (DoS) attacks. In a parallel communication network, single link Denial-of-Service attack may degrade the network latency performance, but the message may still transmit to the message's desired destination.

FIG.1illustrates an embodiment of an air traffic control communication system100for providing a plurality of parallel data links between an aircraft102and ground station110. Air traffic control communication system100includes aircraft102, the aircraft's PBLM system104, satellite106, the ground station's PBLM system108, the ground station110, and a plurality of parallel links between the aircraft's PBLM system104and the ground station's PBLM system108. Each of the aircraft's PBLM system104and the ground station's PBLM system108may be implemented using one or more processors, according to an embodiment. Although the aircraft's PBLM system104and the ground station's PBLM system108are shown to be external to the aircraft102and ground station110, respectively, the aircraft's PBLM system104is housed inside of aircraft102and ground station's PBLM system108is housed inside of ground station110.

In an embodiment, in the air traffic control communication system100, when the aircraft's PBLM system104transmits ATC or the non-ATC messages, the aircraft's PBLM system104enables the configuration for the parallel links based on the ATC performance requirements, e.g., Required Availability, and/or RCTP. In an embodiment, the ground station's PBLM system108also enables the configuration for the parallel links based on the ATC performance requirements when transmitting ATC or non-ATC messages. In an alternative embodiment, air traffic control communication system100may be configured in an oceanic environment. In alternative embodiments, the aircraft may be on the runway, may be flying to the aircraft's final destination at a particular altitude, or may be climbing upwards or descending. Further, another embodiment includes a mobile vehicle environment.

In an embodiment, the aircraft's PBLM system104may enable the use of a Satellite Communications (SATCOM) link105to transmit either the ATC or non-ATC messages to the satellite106. The satellite106transmits the received ATC or non-ATC messages from link105to the ground station's PBLM system108over SATCOM link107. In an embodiment, the aircraft's PBLM system104may enable the use of a POA link109to transmit the ATC or non-ATC messages to the ground station's PBLM system108. In an embodiment, the aircraft's PBLM system104may enable the use of a VDL-M2 link111to transmit ATC or non-ATC messages to the ground station's PBLM system108. In an embodiment, the ground station's PBLM system108may use the same SATCOM, POA, and VDL-M2 link to transmit ATC or non-ATC messages to the aircraft's PBLM system104.

The aircraft's PBLM system104may not be limited to the ACARS sub-networks of SATCOM link105, SATCOM link107, POA link109, and/or VDL-M2 link111. In embodiments, the aircraft PBLM system104may use different sub-networks such as but not limited to Inmarsat, Iridium, and different variations of HFL. The ground station's PBLM system108may not be limited to the ACARS sub-networks of SATCOM link105, SATCOM link107, POA link109, and/or VDL-M2 link111. In an embodiment, the ground station PBLM system108may use different sub-networks such as but not limited to Inmarsat, Iridium, and HFDL. The aircraft's PBLM system104and the ground station's PBLM system108may have the same or different number of parallel links for a particular embodiment. To meet the requirement of S1 DCP for a required 0.9999 availability, the number of parallel links needed may be at least 3, in an embodiment. In alternative embodiments, more or less links may be used per particular applications based on external requirements or environmental configurations.

An advantage to using parallel links for transmission in the air traffic control communication system100includes increasing the sub-network availability. To understand how parallel links increase the sub-network availability, assume n simultaneous parallel links are used to transmit a message. Assume the availabilities of the n simultaneous parallel links are denoted by A1, A2. . . An. The overall availability A of the n simultaneous parallel links may be calculated by using the product operator as follows:

A=1-∏ni=1(1-Ai)(1)

In Equation 1, assume the availability A of each link is the same, i.e., 0.99. In this case, the unavailability is 1−A, or 0.01. The availability of two parallel links (where n=2) is 0.9999. This reduces the unavailability 100 times or to 10−4. The availability for three parallel links is 0.999999, which reduces the unavailability 10000 times or to 10−6. This shows a direct relationship between the number of links and the availability. In order to meet the requirements of the DCP S1 report, the sub-network availability has to meet a required availability of 0.9999. If three parallel links or more are used, as shown using Equation 1, this requirement is met.

Another advantage of using simultaneous links may be the ability of the simultaneous links to defeat DoS attacks. DoS attacks are attempts to make a machine or network resource unavailable to the machine's intended users. The DoS attack will affect the ability for ATC communication to transmit information over single links. However, by using n parallel links even in the midst of DoS attacks, the messages can still reliably reach the message's destination.

FIG.2illustrates components within the aircraft's PBLM system104in the aircraft102, according to an example embodiment. In an embodiment, PBLM system200may incorporate features to transmit application messages and receive message data in parallel. These features include remote avionic applications201and a communication system203. Generally, applications pass data to an antenna via a router. In an embodiment, the router appears as equipment known as a Communications Management Unit (CMU)208in the communications system203. The CMU208utilizes a processor210which may be configured to parallelize the applications' messages to each of the suitable transmission mediums (SATCOM, POA, VDL-M2) through the transceivers212and antennas214. The CMU208has the capability to transmit data to the ground station110and receive data from the ground station's PBLM system108. The components of the PBLM system200illustrate the architecture of a conventional ACARS platform in the aircraft102.

The CMU208gathers information relating to the airline from the remote avionic applications201. The remote avionic applications201pass application specific information to the CMU208in which to transmit, according to an embodiment. The remote avionic applications201may include an Aircraft Conditioning Monitor System (ACMS) module202used for monitoring and controlling the status of the onboard systems and equipment, as well as variations in the flight conditions and to the operation of the flight equipment. The remote avionic applications201may also include an Air Traffic Control module (ATC)204which is capable of receiving and transmitting any pertinent information for air traffic control. Lastly, a Central Maintenance Computer System (CMCS) module206may be used for collecting and analyzing complete maintenance information. The CMCS module206collects, consolidates and reports issues to aid flight crew and maintenance personnel in maintenance procedures.

According to an example embodiment, the PBLM system200may also include transceivers212-1through212-n, in which those transceivers212may use SATCOM, Very High Frequency (VHF), and High Frequency (HF) data links. These transceivers212and antennas214operate over different frequency ranges and may transmit and receive in parallel to increase reliability. Parallel transmission and reception may help with latency, provider abort delays, and increase the availability of each of the transceivers212. The antennas214are attached to each of the transceivers212, where the antennas214range from 1 to n, one antenna for each transceiver212. Because the CMU208may be configured to pass the data messages from the remote avionic applications201to transceivers212inFIG.2, the antennas214connected to each transceiver212may be both passive and active antennas214, in which they both receive and transmit the data, respectively, according to an embodiment. In an embodiment, one transceiver212-1may be connected to one antenna214-1to transmit the data and a separate antenna214-2may be connected to the same transceiver212-1for receiving data.

FIG.3illustrates an embodiment of the performance-based link management system108.FIG.3is similar toFIG.2, but shows a Ground Station Command Center302instead of the remote avionics application201. The Ground Station Command Center302creates the application data to transmit. The application data may include instructions to ping the aircraft to ensure a healthy ACARS communication link, voice and text messages to the aircraft pilots, according to embodiments.

FIG.4illustrates a method400for transmitting an ATC message or a non-ATC message in the performance-based link management system200/300, according to an example embodiment. Method400may be performed with multiple embodiments of the performance-based link management system200/300, including within air traffic control communication system100. Process400may be performed by processing logic that may include hardware, software, or a combination thereof. In an embodiment, steps inFIG.4may not need to be performed in the order shown, as one skilled in the art would understand. In an embodiment, method400may be adjusted to transmit ATC and non-ATC messages in parallel if the applications generated the ATC and non-ATC message simultaneously.

In step402, the remote avionic application201generates a message to transmit. In an embodiment, either the ACMS202, the ATC204, or the CMCS206may generate a message to transmit. The message may be created based on a specific need of the aircraft102.

In step404, the performance-based link management system200/300determines whether the generated message is an ATC message or a non-ATC message. In an embodiment, an Airline Operation Center (AOC) message is a type of non-ATC message. An AOC message may include information regarding fuel weight and balance information of the aircraft102. An AOC message may also indicate whether the aircraft102is out of the gate, whether the aircraft is taking off from the ground, whether the aircraft is on the ground, or whether the aircraft is in the gate. Generally, these AOC messages do not need to meet the safety and performance requirements of ATC messages, and instead track the aircraft102's status. Air traffic control communication utilizes ATC messages comprising required performance metrics. ATC messages are generally communicated between the aircraft102and the ground station110, according to an embodiment.

If the message is an ATC message, step406is performed. In step406, the CMU208may select a number of parallel links to transmit the ATC message. The selection of parallel links may be based on a number of factors, according to an embodiment. These factors may include airline requirements, the RCTP, the number of transceivers available, the availability requirement, etc. As an example of airline requirements, a given airline may designate particular links for ATC and non-ATC messages. As an example of transceivers being available, links may be selected if their corresponding transceivers are not in use. An example of an availability requirement and/or RCTP may be a requirement set by a government regulation. Calculation of the number of parallel links required to meet those factors may be performed in an offline process and will be explained in a further detail below.

If it is determined in step404the message is a non-ATC message, then step408is performed. In step408, the CMU208may select a traditional serial link to save costs and bandwidth to transmit the non-ATC message. The reason to use the traditional serial link for a non-ATC message is that non-ATC messages are not as critical to aircraft102safety as ATC messages.

In step410, the CMU208transmits the non-ATC message or the ATC message by the serial or the parallel links based on the decision made by step404, according to an embodiment. The CMU208routes the message to transceivers212, which transmits the message via antennas214, according to an embodiment.

FIG.5illustrates a method500for receiving an ATC or a non-ATC message in the performance-based link management system200/300, according to an example embodiment. Method500may be performed with multiple embodiments of the performance-based link management system200/300, including within air traffic control communication system100. Process500may be performed by processing logic that may include hardware, software, or a combination thereof. In an embodiment, steps inFIG.5may not need to be performed in the exact order shown, as one skilled in the art would understand. In an embodiment, method500may be adjusted to receive ATC and non-ATC messages in parallel if the ATC and non-ATC messages are transmitted simultaneously.

In step502, the performance-based link management system200/300may receive data via antennas214, according to an embodiment. In step504, the CMU208determines if the data is an ATC or a non-ATC message.

Step506is performed if the data is not an ATC message. In step506, the performance-based link management system200/300sends the non-ATC message to the Ground Station Command Center302by way of the CMU208. Once the CMU208receives the message, the CMU208sends the message to ACMS202, ATC204, CMCS206, or the Ground Station Command Center302, where the received non-ATC message may be acted upon accordingly, according to an embodiment.

In step508, the performance-based link management system200/300may send an acknowledgement across the selected links to increase the chance of receipt by the transmitting entity. Acknowledgements are the hand-shaking mechanism used to give the transmitting and receive sides knowledge that the message, either ATC or non-ATC, has been transmitted and received successfully.

If it is determined in step504that the data is an ATC message, then step512is performed. Step512verifies if the ATC message is a duplicate of a previously received ATC message. According to an embodiment, the ATC messages are prepended with a sequence number in-order to keep track of each ATC message transmitted at the transmission side. Prepending a sequence number gives security to transmissions of ATC messages. Also, it is possible from this sequence number to determine if a received ATC message is a duplicate of a previously received ATC message. This is further described below.

If the ATC message is a duplicate, then the message may be discarded and filtered in step514by CMU208. This ensures the same ATC message is not processed multiple times by the performance-based link management system200/300.

If the ATC message is not a duplicate, step518is performed. In step518, the CMU208updates the states for each link. The CMU208keeps track of the states for each of the links on the received side of the performance-based link management system200/300. The CMU208monitors each link by storing each received sequence number and comparing the current received sequence number to previously received sequence numbers. The CMU208discards any duplicate ATC message if the current received sequence number matches any of the previously received sequence numbers.

In step520, the received ATC message may be sent to the remote avionic applications201or the Ground Station Command Center302by way of the CMU208.

In step522, the performance-based link management system200/300may send back an acknowledgement across the selected links, according to an embodiment. The acknowledgements may be sent back across all of the selected links so the transmitting side that transmitted the received ATC message may have a better chance of receiving the acknowledgment, instead of transmitting the acknowledgement over one link.

FIG.6illustrates a more detailed method of method400for transmitting an ATC message in the performance-based link management system200/300, according to an example embodiment. Specifically,FIG.6illustrates step403ofFIG.4in greater detail. The method ofFIG.6may be performed with multiple embodiments of the performance-based link management system200/300, including within air traffic control communication system100and method400. The method ofFIG.6may be performed by processing logic that may include hardware, software, or a combination thereof. In an embodiment, steps inFIG.6may not need to be performed in the exact order shown, as one skilled in the art would understand.

In step602, the CMU208may select a number of parallel links to use to transmit the ATC message. The selection of parallel links may be based on a number of factors, according to an embodiment. These factors may include but are not limited to airline requirements, the RCTP, the number of transceivers available and the availability requirement. Calculation of the number of parallel links required to meet these factors may be done in an offline step and will be explained further below.

In step604the CMU208may prepend a sequence number to the ATC message being transmitted. A sequence number may be prepended to each ATC message in order to reliably keep track of each ATC message transmitted. When a new message is generated, the sequence number may be incremented by one.

In step606, the CMU208may create n copies of the ATC message. The CMU208may queue the n copied ATC messages for transmission.

In step608, the CMU208routes the n copied ATC messages to the plurality of n parallel links chosen by step602. More specifically, at step608, the CMU208may route each of the n messages to the transceiver212, according to an embodiment. The transceiver212may modulate, convert to RF, and send the up-converted ATC message to each of the n antennas214.

In step610, the performance-based link management system200/300waits a predetermined amount of time for an acknowledgement. This predetermined amount of time may be set based on the airline requirements, the availability requirements, the sub-network latency delay requirement, or any combination thereof. If an acknowledgment is received within the predetermined time limit, step612is performed.

In step612, the CMU208stores the acknowledgements for the associated ATC message so that the ATC message is not retransmitted.

In step614, any remaining, not yet transmitted queued copies of the message (from step606) are deleted. It may be the case, however, that one or more copies of the message may be in the process of being transmitted. These duplicate message transmissions are handled by the receiver system in steps512and514, as discussed above.

If an acknowledgement was not received in the predetermined time in step610, the CMU208may check the status of all n links in the parallel link system in step618. In an embodiment, the CMU208will check to see if any link has reached the link's max retry attempt. In an embodiment, the max retry attempt corresponds to the number of times a link will try to transmit the same message. In an embodiment, the max retry attempt number may be policy configurable and may be set based on airplane requirements and the type of message being transmitted. If none of the links have met their max retry attempt, control returns to step608. Otherwise, step620is performed.

In step620, any selected links at their max retry attempt may be made available for the transmission of other ATC or non-ATC messages.

In step622, the CMU208determines if all the selected links are at their max retry attempt. If they are all at their max retry attempt, then no links are available for the current ATC message. Thus, in step624, the CMU208deletes any remaining queued copies of messages from step606. Further, the CMU208releases the selected links for subsequent transmission of other ATC or non-ATC messages.

Otherwise, the CMU208may use the remaining available links to re-transmit the ATC message. Thus, in step628, the CMU208selects the remaining links available for re-transmission. The CMU208updates its system's link states reflecting the parallel links that are now available for other non-ATC/ATC messages and the remaining links that may be used to re-transmit the ATC message.

FIG.7illustrates a more detailed method of method400for transmitting a non-ATC message, according to an example embodiment. Specifically,FIG.7illustrates step405ofFIG.4in greater detail. The method ofFIG.7may be performed with multiple embodiments of the performance-based link management system200/300, including within air traffic control communication system100and method400. The method ofFIG.7may be performed by processing logic that may include hardware, software, or a combination thereof. In an embodiment, steps inFIG.7may not need to be performed in the exact order shown, as one skilled in the art would understand.

In step702, the CMU208may check to see what links are available to transmit. This determination may be based on whether the transceiver212and antenna214are already transmitting or in the process of receiving data.

In step704, the CMU208checks what the link preference may be for transmitting a non-ATC message. In an embodiment, a link preference for transmitting a non-ATC message may be VHF, HF, and SATCOM or any combination thereof. In an embodiment, the link preference for transmitting a non-ATC message may be at the discretion of the airline.

In step706, the CMU208selects the link to transmit the non-ATC message based on the link preference from step704and what links are available in step702.

In step708, the CMU208may prepend a sequence number to the non-ATC message being transmitted. A sequence number may be prepended to each non-ATC message in-order to reliably keep track of each non-ATC message transmitted. When a new message is generated, the sequence number may be incremented by one.

In step710, the CMU208routes the non-ATC message with the prepended sequence number to the preferred available link chosen by step706. More specifically, the CMU208routes the non-ATC message to the transceiver212for transmission.

In step712, the performance-based link management system200/300waits a predetermined amount of time for an acknowledgement. This predetermined amount of time may be set based on the airline requirements, the availability requirements, the sub-network latency delay requirement, or any combination thereof. If the CMU processor210receives the acknowledgment received within the predetermined time limit, the process ends.

If an acknowledgement was not received in the predetermined time in step712, the CMU208may check the status of the preferred link in step716. In an embodiment, the CMU208will check to see if the preferred link has reached the link's max retry attempt. The same requirements for the max retry attempt may apply in step716as described previously in step618. If the preferred link has not yet met the link's max retry attempt, control returns to step710. Otherwise, step718is performed.

In step718, the CMU208makes the preferred link available for the transmission of other ATC or non-ATC messages.

In step720, the CMU208determines if all the preferred links for the airline are being used for other ATC or non-ATC messages. If all the links are being used for other messages, then no links are available for the current non-ATC message and in step722, the process ends.

Otherwise, the CMU208may select the next preferred link that is available to re-transmit the non-ATC message in step724. The CMU208updates its system reflecting the links that are now available for other non-ATC/ATC messages and the remaining links that may be used to re-transmit the non-ATC message.

FIG.8illustrates a method800for calculating the number of parallel links based on, for example, airline requirements, the RCTP, the number of transceivers available, or any combination thereof, according to an example embodiment. Method800may be performed with multiple embodiments of the performance-based link management system200/300, including within air traffic control communication system100. Process800may be performed by processing logic that may include hardware, software, or a combination thereof. In an embodiment, steps inFIG.8may not need to be performed in the exact order shown, as one skilled in the art would understand.

An advantage for using parallel links for transmission in the performance-based link management system200/300is to reduce sub-network latency. To understand how parallel links reduce sub-network latency, assume the latencies of the n parallel links are denoted by x1, x2, . . . xn. The latency y of n simultaneous parallel links may be the minimum latency of the aggregation of the n simultaneous parallel links. An equation to determine the minimum link latency may be shown as follows.
y=min(x1,x2, . . . ,xn)  (2)
Assume the latencies of the n parallel links, i.e., x1, x2, . . . , xn, are independent random variables. The Cumulative Distribution Function (CDF) of the n parallel links are denoted by FX1(t), FX2(t), . . . FXn(t), wherein the CDF FY(t) of n simultaneous parallel links can be calculated using an equation as follows:

FY(t)=1-∏i=1n[1-FXi(t)](3)
Using the CDF F(t), the (100×p)-th percentile tp, can be calculated as follows:
tp=F−1(p)  (4)
In an embodiment, assuming each single link has the same latency distribution, Equations 3 and 4 indicate that the 99.9thpercentile of latency for a single link is about 95 seconds, whereas the 99.9thpercentile of latency for two parallel links is about 15 seconds. This 6 fold latency reduction from one link to two parallel links greatly reduces the sub-network latency delay. From two parallel links to three parallel links, Equations 3 and 4 indicate the 99.9thpercentile of latency for three parallel links is about 7 seconds, an even greater improvement from the single link. In an embodiment, the probability density function could be used as well to calculate the latency for a particular link, which would further show that parallel links can effectively shorten the network latency for ATC communications.

In an embodiment, step802may be an offline processing step performed by the CMU208. The offline processing step may have requirements to meet in terms of the availability A and the RCTP of the corresponding ATC service. In step804, the number of parallel links required are calculated based on the availability A and latency CDF FY(t) of the selected available parallel links. In an embodiment, the two equations used to calculate the availability are Equation 1 and Equation 3 (above). In an embodiment, once the results are calculated, in order to select the required number of available links, there are three requirements that should be met:
A>AReq(5)
t0.95=FY−1(0.95)<T0.95(6)
t0.999=FY−1(0.999)<T0.999(7)
Equations 5, 6 and 7 represent the requirements needed for calculating the parallel links. In Equation 5, A corresponds to the calculated availability from Equation 1. AReqcorresponds to the required availability set forth by the S1 DCP. In Equation 6, the T0.95may be the required 95thpercentile latency. Also in Equation 5, t0.95may be (100×p)-th percentile for a latency CDF distribution. In Equation 7, the T0.999may be the required 99.9thpercentile latency. Also in Equation 7, t0.999may be the (100×p)-th percentile for a latency CDF distribution. In the above, p may be the percentage of the link's distribution.

In step806, the number of parallel links calculated in step804are stored in a policy table. The policy table may be stored in memory in the CMU208. During transmission of an ATC message as described above, the number of parallel links may be retrieved from the policy table in the database.

FIG.9is an example computer system to that may be used to implement aspects of the systems illustrated inFIGS.1-3, or which may be specially programmed to implement aspects of the methods illustrated inFIGS.4-8.

Various embodiments can be implemented, for example, using one or more well-known computer systems, such as computer system900shown inFIG.9. Computer system900can be any well-known computer capable of performing the functions described herein.

Computer system900includes one or more processors (also called central processing units, or CPUs), such as a processor904. Processor904is connected to a communication infrastructure or bus906.

Computer system900also includes user input/output device(s)903, such as monitors, keyboards, pointing devices, etc., which communicate with communication infrastructure906through user input/output interface(s)902.

Computer system900also includes a main or primary memory908, such as random access memory (RAM). Main memory908may include one or more levels of cache. Main memory908has stored therein control logic (i.e., computer software) and/or data.

Computer system900may also include one or more secondary storage devices or memory910. Secondary memory910may include, for example, a hard disk drive912and/or a removable storage device or drive914. Removable storage drive914may be a floppy disk drive, a magnetic tape drive, a compact disk drive, an optical storage device, tape backup device, and/or any other storage device/drive.

Removable storage drive914may interact with a removable storage unit918. Removable storage unit918includes a computer usable or readable storage device having stored thereon computer software (control logic) and/or data. Removable storage unit918may be a floppy disk, magnetic tape, compact disk, DVD, optical storage disk, and/any other computer data storage device. Removable storage drive914reads from and/or writes to removable storage unit918in a well-known manner.

According to an exemplary embodiment, secondary memory910may include other means, instrumentalities or other approaches for allowing computer programs and/or other instructions and/or data to be accessed by computer system900. Such means, instrumentalities or other approaches may include, for example, a removable storage unit922and an interface920. Examples of the removable storage unit922and the interface920may include a program cartridge and cartridge interface (such as that found in video game devices), a removable memory chip (such as an EPROM or PROM) and associated socket, a memory stick and USB port, a memory card and associated memory card slot, and/or any other removable storage unit and associated interface.

Computer system900may further include a communication or network interface924. Communication interface924enables computer system xx00 to communicate and interact with any combination of remote devices, remote networks, remote entities, etc. (individually and collectively referenced by reference number xx28). For example, communication interface924may allow computer system900to communicate with remote devices928over communications path926, which may be wired and/or wireless, and which may include any combination of LANs, WANs, the Internet, etc. Control logic and/or data may be transmitted to and from computer system900via communication path926.

In an embodiment, a tangible apparatus or article of manufacture comprising a tangible computer useable or readable medium having control logic (software) stored thereon is also referred to herein as a computer program product or program storage device. This includes, but is not limited to, computer system900, main memory908, secondary memory910, and removable storage units918and922, as well as tangible articles of manufacture embodying any combination of the foregoing. Such control logic, when executed by one or more data processing devices (such as computer system900), causes such data processing devices to operate as described herein.

Based on the teachings contained in this disclosure, it will be apparent to persons skilled in the relevant art(s) how to make and use the invention using data processing devices, computer systems and/or computer architectures other than that shown inFIG.9. In particular, embodiments may operate with software, hardware, and/or operating system implementations other than those described herein.

It is to be appreciated that the Detailed Description section, and not the Summary and Abstract sections (if any), is intended to be used to interpret the claims. The Summary and Abstract sections (if any) may set forth one or more but not all exemplary embodiments of the invention as contemplated by the inventor(s), and thus, are not intended to limit the invention or the appended claims in any way.

While the invention has been described herein with reference to exemplary embodiments for exemplary fields and applications, it should be understood that the invention is not limited thereto. Other embodiments and modifications thereto are possible, and are within the scope and spirit of the invention. For example, and without limiting the generality of this paragraph, embodiments are not limited to the software, hardware, firmware, and/or entities illustrated in the figures and/or described herein. Further, embodiments (whether or not explicitly described herein) have significant utility to fields and applications beyond the examples described herein.

Embodiments have been described herein with the aid of functional building blocks illustrating the implementation of specified functions and relationships thereof. The boundaries of these functional building blocks have been arbitrarily defined herein for the convenience of the description. Alternate boundaries can be defined as long as the specified functions and relationships (or equivalents thereof) are appropriately performed. Also, alternative embodiments may perform functional blocks, steps, operations, methods, etc. using orderings different than those described herein.

References herein to “one embodiment,” “an embodiment,” “an example embodiment,” or similar phrases, indicate that the embodiment described may include a particular feature, structure, or characteristic, but every embodiment may not necessarily include the particular feature, structure, or characteristic. Moreover, such phrases are not necessarily referring to the same embodiment. Further, when a particular feature, structure, or characteristic is described in connection with an embodiment, it would be within the knowledge of persons skilled in the relevant art(s) to incorporate such feature, structure, or characteristic into other embodiments whether or not explicitly mentioned or described herein.

The breadth and scope of the invention should not be limited by any of the above-described exemplary embodiments, but should be defined only in accordance with the following claims and their equivalents.