Abstract:
Disclosed is a method that includes determining an identifier of an access terminal authorized to use an access point, and transmitting a service redirection message including the identifier. The method also includes transmitting a parameter that instructs the access terminal to wake up during the particular time slot in the repeating interval.

Description:
BACKGROUND 
       [0001]    This disclosure relates to attracting access terminals. 
         [0002]    Cellular wireless communications systems are designed to serve many access terminals distributed in a large geographic area by dividing the area into cells, as shown in  FIG. 1 . At or near the center of each cell  102 ,  104 ,  106 , a radio network access point  108 ,  110 ,  112 , also referred to as a base transceiver station (BTS), is located to serve access terminals  114 ,  116  (e.g., cellular telephones, laptops, PDAs) located in the cell. Each cell is often further divided into sectors  102   a - c ,  104   a - c ,  106   a - c  by using multiple sectorized antennas. A BTS is identified by one or more of several properties, which may include the phase offset of its pilot signal (PN offset), a frequency, an IP address, or a SectorID. In each cell, that cell&#39;s radio network access point may serve one or more sectors and may communicate with multiple access terminals in its cell. 
         [0003]    The 1xRTT protocol has been standardized by the Telecommunication Industry Association (TIA) in the TIA-2000.1 through TIA-2000.6 series of specifications, which are incorporated herein by reference. 
         [0004]    The 1xEV-DO protocol has been standardized by the Telecommunication Industry Association (TIA) as TIA/EIA/IS-856, “CDMA2000 High Rate Packet Data Air Interface Specification,” 3GPP2 C.S0024-0, Version 4.0, Oct. 25, 2002, which is incorporated herein by reference. Revision A to this specification has been published as TIA/EIA/IS-856A, “CDMA2000 High Rate Packet Data Air Interface Specification,” 3GPP2 C.S0024-A, Version 2.0, July 2005. Revision A is also incorporated herein by reference. Revision B to this specification has been published as TIA/EIA/IS-856-B, 3GPP2 C.S0024-B and is also incorporated herein by reference. Other wireless communication protocols can also be used. 
       SUMMARY 
       [0005]    In general, in one aspect, a method includes determining an identifier of an access terminal authorized to use an access point, and transmitting a service redirection message including the identifier. 
         [0006]    The following are embodiments within the scope of this aspect. 
         [0007]    The service redirection message is transmitted during a particular time slot of a repeating interval. The method also includes transmitting a parameter that instructs the access terminal to wake up during the particular time slot in the repeating interval. 
         [0008]    The method also includes transmitting the service redirection message consecutively in each of several frequencies. Transmitting the message includes transmitting the message within a first beacon signal at a first frequency, and transmitting the message within a second beacon signal at a second frequency. 
         [0009]    The service redirection message is transmitted at the same time within each of the first and second beacon signals, relative to the start time of each respective beacon signal. The method also includes receiving a registration request from the access terminal, and providing network access to the access terminal. The identifier is a mobile station identification number, for example, an IMSI. The identifier is stored in a memory of the access point. The service redirection message instructs the access terminal to operate on a frequency used by the access point. The method also includes transmitting a second service redirection message including an identifier of a second access terminal not authorized to use the access point. 
         [0010]    The second message is transmitted in response to receiving a registration request from the second access terminal, the request including the identifier of the second access terminal. The second message instructs the second access terminal to operate on a frequency used by a second access point. 
         [0011]    In another aspect, an apparatus includes an access point including a processor and a memory, the processor programmed to determine an identifier of an access terminal authorized to use an access point, and transmit a service redirection message including the identifier. 
         [0012]    The following are embodiments within the scope of this aspect. 
         [0013]    The processor is also programmed to transmit a parameter that instructs the access terminal to wake up during the particular time slot in the repeating interval. The service redirection message is transmitted consecutively in each of several frequencies. The processor is also programmed to transmit the service redirection message within a first beacon signal at a first frequency, and transmit the service redirection message within a second beacon signal at a second frequency. The service redirection message is transmitted at the same time within each of the first and second beacon signals, relative to the start time of each respective beacon signal. The processor is also programmed to receive a registration request from the access terminal, and provide network access to the access terminal. 
         [0014]    The processor is also programmed to transmit a second service redirection message including an identifier of a second access terminal not authorized to use the access point. The second message is transmitted in response to receiving a registration request from the second access terminal, the request including the identifier of the second access terminal. The second message instructs the second access terminal to operate on a frequency used by a second access point. The access point comprises a private access point. 
         [0015]    In another aspect, a computer readable medium includes instructions to cause an access point to determine an identifier of an access terminal authorized to use an access point, and transmit a service redirection message including the identifier. 
         [0016]    The following are embodiments within the scope of this aspect. 
         [0017]    In some embodiments within the scope of this aspect, the medium includes instructions in which the service redirection message is transmitted during a particular time slot of a repeating interval. Also, the medium includes instructions to also cause an access point to transmit a parameter that instructs the access terminal to wake up during the particular time slot in the repeating interval. 
         [0018]    In another aspect, a method includes, at an access terminal, receiving a service redirection message, locating an identifier of the access terminal in the service redirection message, and changing a mode of operation based on the service redirection message. 
         [0019]    The following are embodiments within the scope of this aspect. 
         [0020]    Receiving the service redirection message includes waking up for a period of time including a particular time slot of a repeating interval, and receiving the service redirection message. The method also includes receiving an instruction to wake up during the particular time slot in the repeating interval. Changing the mode of operation comprises operating on a frequency and PN offset specified by the service redirection message. The method also includes requesting registration with an access point that transmitted the service redirection message. 
         [0021]    In another aspect, an apparatus includes an access terminal including a processor programmed to receive a service redirection message, locate an identifier of the access terminal in the service redirection message, and change a mode of operation based on the service redirection message. 
         [0022]    In another aspect, a method of directing a selected access terminal to use a particular access point, includes transmitting a service redirection message formatted according to a 1xRTT protocol specification for a global service redirection message, the service redirection message being addressed specifically to the access terminal. 
         [0023]    In another aspect, a method includes, receiving, at an access terminal, a first beacon signal from a first access point having a service redirection message including an identifier, and switching the access terminal to a operating frequency of the first access point if, based on the identifier, the access terminal is authorized to use the first access point. 
         [0024]    In embodiments within the scope of this aspect, the method of claim also includes receiving a second beacon signal from a second access point, having a substantially similar timing pattern as the first beacon signal, and switching the access terminal to at least one of the first access point and the second access point based on the service redirection message. The method of claim also includes receiving a second beacon signal from a second access point, the second beacon signal and the first beacon signal being staggered in time, and reusing a PN offset corresponding to the first beacon signal as a PN offset for the second beacon signal. 
         [0025]    Implementations may include one or more of the following features. Advantages include increased efficiency. Overhead messaging is reduced because the macro network need not attract unwanted access terminals and then redirect them back to the macro base stations. Precise timing of unicast messages based on the access terminals&#39; identities improves the efficiency of the beacon signals by reducing its duty cycle while also improving the time taken by the access terminals to perform idle handoff. Other features and advantages of the invention will be apparent from the description and the claims. 
     
    
     
       DESCRIPTION 
         [0026]      FIGS. 1 ,  2 , and  3  show block diagrams of a radio network. 
           [0027]      FIG. 4  shows a flow chart. 
           [0028]      FIGS. 5A-5C  show messages. 
       
    
    
       [0029]    Referring to  FIG. 1 , a radio access network (RAN), or a macro network  100  uses a 1xRTT or EV-DO protocol to transmit voice or data packets, respectively, between an access terminal, e.g., access terminals  114  and  116 , and radio network access points, e.g., access points  108 ,  110 ,  112  (generally  108 ). In the 1xRTT protocol, the access terminals are generally referred to as mobile stations. Both access terminals and mobile stations are within the scope of this disclosure. 
         [0030]    The access points  108  are connected over a backhaul connection  118  to radio network control/packet data serving nodes (RNC/PDSN)  120 , which may be one or more physical devices at different locations. Although this description uses terminology from CDMA standards (including 1xRTT, Ev-DO, and cdma2000), the same concepts are applicable to other communication methods, including GSM, UMTS, HSDPA, LTE, WiMax, WiBro, or WiFi. 
         [0031]    As shown in  FIG. 2 , in some examples, a user&#39;s home  200  can be within a cell  102  of the macro network  100  ( FIG. 1 ). Accordingly, access terminals, e.g., access terminals  206 ,  208  and  210  (generally  206 ) are generally deployed within the cell  102 . A radio network access point  202  can be installed in the user&#39;s home  200  in a similar manner as a WiFi® access point. Such a radio network access point  202  is referred to as a private access point or a femto access point. 
         [0032]    The private access point  202  can use an available high-speed internet connection, such as DSL or cable modem  204 , as the backhaul with part of the RNC/PDSN functionality implemented in the private access point  202 . Such a private access point  202  can be installed anywhere that it is advantageous to do so, for example, in an office, a public space, or a private residence. When this description refers to a private access point being in a “home,” that encompasses any such location. 
         [0033]    One respect in which a private access point  202  can be considered different from a picocell access point, i.e., an access point that is typically deployed in a similar manner as a private access point  202 , is that the private access point  202  is generally intended to provide access only for the user who installs it in his home or those he authorizes, while a picocell serves a similar venue but provide access to any subscriber of the network. In some examples, a private access point  202  can be integrated into a cable modem or other network hardware, such as a router or WiFi access point. 
         [0034]    When an authorized access terminal  206  is present inside the home  200  (or anywhere within range of the private access point  202 , e.g. an access terminal  208  near the home  200 ), it can use the private access point  202  rather than a regular cellular radio network access point such as access point  108  to place or receive voice calls and data connections, even if the access terminal  206  is otherwise within the cell  102  for that access point  108 . 
         [0035]    An unauthorized access terminal, e.g., an access terminal  210 , is not permitted to use the private access point  202  even though the private access point  202  can provide a better signal to the access terminal  210  than the access point  108 . We sometimes refer to the standard access point  108  as a macro access point or macro BTS (base transceiver station) to distinguish it from the private access point  202 , as it provides direct access to the RAN  100  ( FIG. 1 ). 
         [0036]    The private access points  202  can be deployed in a number of carrier configurations. In some examples, the private access points  202  operate at a frequency that is different from the frequency at which a macro BTS  108  operates. We refer to the frequency at which the macro BTS  108  operates as the macro frequency, and the frequency at which a private access point  202  operates as the femto frequency. In such a configuration, each private access point  202  needs a way to attract access terminals  206  that are currently operating on the macro network  100  and that have an air link with the private access point  202  that is strong enough for proper operation. In addition, it is more efficient to attract only those access terminals that are authorized to use the private access point  202  in question than to attract all nearby access terminals. 
         [0037]    Typically, an access terminal  206  is attracted to a target private access point  202  by a beacon signal, e.g., beacon signal  306  in  FIG. 3 , transmitted at the macro frequency. The beacon signal is sent periodically for short periods of time. In a typical beacon signal, a global service redirection message (global SRDM, or GSRDM) is transmitted at the macro frequency that directs all access terminals  206  to use the femto frequency. 
         [0038]    Subsequently, any access terminal  206 ,  208  or  210 , receiving the GSRDM attempts to access the target private access point  202 , but only an authorized access terminal, e.g., access terminals  206 , is allowed to do so. Unauthorized access terminals, e.g., access terminals  208 ,  210 , are either redirected back to the macro frequency or go back to the macro frequency themselves though a process of system determination. 
         [0039]    In some examples, as shown in  FIG. 3 , the private access point  202  uses unicast service redirection messages (unicast SRDMs), e.g., unicast SRDMs  308 ,  310 ), to attract only authorized access terminals, e.g., access terminals  206 ,  302 . The private access point  202  periodically transmits a beacon signal  306  at the macro frequency. 
         [0040]    The access point  202  transmits the unicast SRDMs  308 ,  310  as part of its periodic beacon signal  306  transmission. The unicast SRDMs  308  and  310  are transmitted to all access terminals  206 . However, the unicast SRDMs  308  and  310  are addressed to only the authorized access terminals  302  and  304 , respectively, and are not addressed to the unauthorized access terminals  208  and  210 . 
         [0041]    Transfer of an access terminal  206  from one access point  202  to another is typically referred to as handoff. We distinguish two types of handoffs from a macro BTS  108  to a private access point  202 , based on the state of the access terminal  206  at the time of the handoff. We refer to idle handoff, in which the access terminal  206  does not have an active voice or data call, as rove-in. We refer to active handoff, in which the access terminal  206  does have an active call or data call, as hand-in. 
         [0042]    According to the cdma2000 1x Layer 3 specification, an SRDM message, e.g., unicast SRDM  308  or  310 , is sent on a logical forward common signaling channel (f-csch) or forward dedicated signaling channel (f-dsch) and can be transmitted over the physical paging channel (PCH) or forward link common control channel (F-CCCH). The unicast SRDMs  308 ,  310  are typically addressed to authorized access terminals  206 ,  302 , based on the access terminal&#39;s  206 ,  302  mobile subscriber identity (IMSI). In some examples, the private access point  202  knows the IMSI of each of the authorized access terminals  206 ,  302 , e.g., each of the phones and PDAs that are part of a home plan, or within an office network. 
         [0043]    In some examples, the unicast SRDMs  308 ,  310  are implemented for a network by 1xRTT protocols using a process  400  shown in  FIG. 4 . In general, a macro BTS&#39;s  108  frequency and PN-offset pair are denoted as (fx, PNx). A private access point&#39;s  202  frequency and PN-offset pair are denoted as (fx, PNxf). In this notation, fx denotes the carrier frequency, PNx denotes the pseudonoise (PN) offset of a macro BTS  108 , and PNxf denotes the PN offset of a private access point  202 . Thus, in the example of  FIG. 4 , a selected macro BTS&#39;s  108  operational frequency and PN-offset pair is (f 1 , PN 1 ), and a selected private access point&#39;s  202  operational frequency and PN-offset is (f 3 , PN 3   f ). 
         [0044]    The private access point  202  transmits its beacon signal  306  on a selected frequency and PN offset pair, e.g., (f 1 , PN 1   f ), so that access terminals  206  on the macro network  100  using the same frequency f 1  will receive it. In the flow chart  400 , dashed lines  402  and  404  indicate the progress of an authorized access terminal, e.g. access terminal  206 , and dashed lines  410  and  412  indicate the progress of an unauthorized access terminal, e.g., access terminal  208 . 
         [0045]    In a first scenario  401 , all access terminals  206  are idle  416  on the macro network  100  using (f 1 , PN 1 ). The access terminals  206  then detect  418  a beacon signal  306  in (f 1 , PN 1   f ), alerting the access terminals  206  to the presence of the private access point  202 , and switch to monitoring the beacon signal  306 . 
         [0046]    In some examples, the access terminals  206  receives  420  a payload data unit (PDU) including a unicast SRDM, e.g., unicast SRDM  308 , directing a change from the frequency f 1  corresponding to (f 1 , PN 1   f ) to the frequency f 3 . In some situations, the frequency f 3  corresponds to (f 3 , PN 3   f ) that has the PN offset, PN 3   f , of the strongest signal at the frequency f 3 . The access terminals then each evaluate  422  whether the IMSI in the unicast SRDM  308  matches their own. 
         [0047]    Along path  410 , an unauthorized access terminal  208 , finds that there is no match. As a result, the beacon signal  306  turns off  425 . The access terminal  208  then performs  424  an idle hand-off to (f 1 , PN 1 ). In this manner, the access terminal  208  is returned to the macro network  100 , i.e., returned to the beginning of the process  400 . 
         [0048]    Along path  402 , on the other hand, an authorized access terminal  206 , finds a match to its IMSI in the unicast SRDM  308 . Accordingly, the access terminal  206  proceeds to switch  428  to a new frequency and PN offset pair, i.e., (f 3 , PN 3   f ). The access terminal  206  then requests  430  to be registered with the private access point  202 . 
         [0049]    If the private access point  202  grants  432  registration, the access terminal  206  assumes an idle state  438  at the selected frequency and PN offset pair, (f 3 , PN 3   f ). In some situations, the private access point  202  does not grant registration to the access terminal  206 . In such situations, the access terminal  206  receives another PDU with a unicast SRDM, e.g.,  310  directing it to another frequency, fx. 
         [0050]    In another scenario  435 , the access terminals  210  and  302  detect  436  that a predetermined frequency and PN offset pair, e.g., (f 3 , PN 3   f ), is the strongest frequency within range. This may happen, for example, if the access terminals  206  are turned on at a location served by the private access point  202 , where the (f 3 , PN 3   f ) signals are stronger than, for example, (f 1 , PN 1 ) signals from a macro BTS  108  in the macro network  100 . 
         [0051]    Accordingly, the access terminals  210  and  302  request  430  to be registered without waiting for the unicast SRDMs  308 ,  310 . In some examples, there are no unicast SRDMs  308 ,  310  on the service frequency, i.e., the macro frequency. This is different from scenario  401  in which the access terminals  206  and  208  were sent beacon signals  306  having unicast SRDMs  308 ,  310  with authorized access terminal IMSIs. 
         [0052]    Along path  404 , the authorized access terminal  302  has its request granted  432  and idles  438  on the selected frequency and PN offset pair, (f 3 , PN 3   f ). Along path  41 , the unauthorized access terminal  210  has its request rejected or may receive a PDU from the private access point  300  including a unicast SRDM  308  directing it to change to a predetermined macro frequency, e.g., fi. 
         [0053]    In some examples, the private access point  202  knows what macro BTS  108  the access terminal  210  is configured to use and redirects the access terminal  210  to that macro BTS&#39;s  102  frequency and PN offset pair, e.g., (f 1 , PN 1 ). In some examples, the private access point  202  is configured to direct the access terminal  210  to a predetermined frequency and PN offset pair corresponding to a predetermined sector  102 . 
         [0054]    In some systems, an SRDM requires an acknowledgement (ACK). Accordingly, in some examples, to accommodate for a private access point  202  that does not have listening capability on the reverse link frequency paired to the frequency used for the beacon signal  306 , the ARQ_REQ bits in the PDU containing the SRDM are disabled so that an access terminal  206  receiving the SRDM does not send an ACK. 
         [0055]    In some examples, the process  400  has an efficiency that is comparable to a process that, for example, broadcasts a GSRDM, because the process  400  attracts only authorized access terminals  206 ,  302  and does not attract unauthorized access terminals  208 ,  210 . This reduces overhead messaging in the macro network  100  by not attracting unwanted access terminals and then having to redirect the access terminals back to a macro BTS  108 . 
         [0056]    In the idle state, an access terminal  206  periodically wakes up at predetermined times to listen for messages targeted to the access terminal  206 . In some examples, at the predetermined times, the access terminal  206  also updates its knowledge of its environment. 
         [0057]    In some examples, as shown in  FIGS. 5A-C , a unicast SRDM message, e.g., unicast SRDM  308   a  or unicast SRDM  308   b , is timed to be synchronized to the wake-up time of an authorized access terminal  206 . This reduces the duty cycle of the beacon signal  306  while improving the time taken by each access terminal  206  to perform idle handoff to the private access point  202 . 
         [0058]    In some examples, as shown in  FIG. 5A , an access terminal  206  transmits a beacon signal  306  periodically. For example, beacon signal intervals  306   a - d  occur every 5.12 seconds. The beacon signal intervals  306   a - d  are referred to as the ON state of the beacon signal  306 . Each of the beacon signal intervals  306   a - d  are further comprised of a predetermined number of intervals, e.g., 4 intervals of 1.28 seconds each, denoted by A, B, C, and D in  FIG. 5B . 
         [0059]    In some examples, the pilot and sync channels  522  are transmitted continuously during a beacon signal interval, .g.,  306   a . Accordingly, the pilot and sync channels  522  are transmitted continuously during the entire period denoted by the intervals A-D for the beacon signal  306   a.    
         [0060]    In some examples, a configuration message  526 , such as, for example, a system parameters message, an access parameters message, a neighbor list message, or a CDMA channel list message, is transmitted at the beginning of each interval A, B, C, and D. In some implementations, the configuration message  526  can include a combination of more than one of the above messages. 
         [0061]    In some examples, a SLOT_CYCLE_INDEX parameter is set in the configuration message  526  so that an access terminal  206  is required to wake-up every 1.28 s. In implementations where no configuration message  526  is transmitted, a periodic general paging message  528  is transmitted. In some examples, the periodic paging message  528  and the configuration message  526  are transmitted simultaneously in the same time slot. 
         [0062]    In some examples, the unicast SRDMs  308   a - b  for individual access terminals  206  are transmitted at predetermined times that the access terminals  206  are expected to wake up. Accordingly, as shown in  FIG. 5C , an idle access terminal  206  (e.g., AT i ) wakes up at some point in its assigned 80 ms paging channel slot, e.g., during a time slot t —i  corresponding to an unicast SRDM  308   a.    
         [0063]    Each unicast SRDM  308   a - b  is repeated in one or more of the intervals A, B, C, D. In some examples, the unicast SRDMs  308   a - b  for an access terminal  206  waking up in a slot t_i, i.e., ATi, is transmitted in the next successive slot, i.e., slot t_(i+1), since the access terminal  206  will remain awake for at least two slots. This is advantageous in situations where the number of access terminals  206  waking up in a predetermined time interval is greater than the number of unicast SRDMs  308  that can be accommodated in the time interval. Also, in case of overload, the number of 1.28 s periods, e.g., A, B, C and D, can be extended to accommodate all the access terminals  206  that need to be redirected. 
         [0064]    As described above, in some examples, a private access point  202  has prior knowledge of authorized access terminals&#39; 206, 302 identities. Accordingly, the private access point  202  is able to compute the access terminals&#39; 206 wake-up times accurately. 
         [0065]    The timings of the beacon signals are further coordinated for private access points located next to each other. In some examples, a beacon signal  306  corresponding to a selected private access point, e.g., private access point  202 , has an identical timing pattern as a beacon signal corresponding to another private access point (not shown). Accordingly, an unauthorized access terminal  206  in the vicinity of the private access point  202  sees both beacon signals simultaneously and will attempt to rove-in to only one of the private access point, for example, private access point  202 . 
         [0066]    In some examples, the beacon signals corresponding to two or more adjacent private access points are staggered in time, i.e., the beacon signals do not overlap. This makes the operation of the private access points possible even when there is a constraint on the availability of PN offsets for the beacons signals. Accordingly, in these examples, adjacent private access points would reuse the same PN offset for the beacon signals, since the beacon signals do not overlap in time. 
         [0067]    The method described above relates to the cdma2000 1xRTT standard. It can also be tailored other wireless standards. For example, the method can be adapted to the 1xEv-DO system if the identity of the access terminal in the DO system, namely its UATI (universal access terminal identifier) can be ascertained. In contrast to the 1xRTT system in which the IMSI used for unicast addressing is a permanent value associated with a specific access terminal, in the DO standard, the UATI is a temporary identity that changes with every session. Thus, some additional steps are taken to find the UATI of the authorized access terminals. Once the UATI is available to the private access point, the private access point can transmit the unicast redirect message to a DO access terminal. 
         [0068]    Although the techniques described above employ the 1xRTT and cdma2000 air interface standard, the techniques may also be applicable to other CDMA and non-CDMA air interface technologies in which messaging can be used to communicate information, including 1xEv-DO, WCDMA, (including HSDPA, HSUPA, HSPA), and LTE. 
         [0069]    The techniques described herein can be implemented in digital electronic circuitry, or in computer hardware, firmware, software, or in combinations of them. The techniques can be implemented as a computer program product, i.e., a computer program tangibly embodied in an information carrier, e.g., in a machine-readable storage device or in a propagated signal, for execution by, or to control the operation of, data processing apparatus, e.g., a programmable processor, a computer, or multiple computers. A computer program can be written in any form of programming language, including compiled or interpreted languages, and it can be deployed in any form, including as a stand-alone program or as a module, component, subroutine, or other unit suitable for use in a computing environment. A computer program can be deployed to be executed on one computer or on multiple computers at one site or distributed across multiple sites and interconnected by a communication network. 
         [0070]    Method steps of the techniques described herein can be performed by one or more programmable processors executing a computer program to perform functions of the invention by operating on input data and generating output. Method steps can also be performed by, and apparatus of the invention can be implemented as, special purpose logic circuitry, e.g., an FPGA (field programmable gate array) or an ASIC (application-specific integrated circuit). Modules can refer to portions of the computer program and/or the processor/special circuitry that implements that functionality. 
         [0071]    Processors suitable for the execution of a computer program include, by way of example, both general and special purpose microprocessors, and any one or more processors of any kind of digital computer. Generally, a processor will receive instructions and data from a read-only memory or a random access memory or both. The essential elements of a computer are a processor for executing instructions and one or more memory devices for storing instructions and data. Generally, a computer will also include, or be operatively coupled to receive data from or transfer data to, or both, one or more mass storage devices for storing data, e.g., magnetic, magneto-optical disks, or optical disks. Information carriers suitable for embodying computer program instructions and data include all forms of non-volatile memory, including by way of example semiconductor memory devices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks, e.g., internal hard disks or removable disks; magneto-optical disks; and CD-ROM and DVD-ROM disks. The processor and the memory can be supplemented by, or incorporated in special purpose logic circuitry. 
         [0072]    To provide for interaction with a user, the techniques described herein can be implemented on a computer having a display device, e.g., a CRT (cathode ray tube) or LCD (liquid crystal display) monitor, for displaying information to the user and a keyboard and a pointing device, e.g., a mouse or a trackball, by which the user can provide input to the computer (e.g., interact with a user interface element, for example, by clicking a button on such a pointing device). Other kinds of devices can be used to provide for interaction with a user as well; for example, feedback provided to the user can be any form of sensory feedback, e.g., visual feedback, auditory feedback, or tactile feedback; and input from the user can be received in any form, including acoustic, speech, or tactile input. 
         [0073]    The techniques described herein can be implemented in a distributed computing system that includes a back-end component, e.g., as a data server, and/or a middleware component, e.g., an application server, and/or a front-end component, e.g., a client computer having a graphical user interface and/or a Web browser through which a user can interact with an implementation of the invention, or any combination of such back-end, middleware, or front-end components. The components of the system can be interconnected by any form or medium of digital data communication, e.g., a communication network. Examples of communication networks include a local area network (“LAN”) and a wide area network (“WAN”), e.g., the Internet, and include both wired and wireless networks. 
         [0074]    The computing system can include clients and servers. A client and server are generally remote from each other and typically interact over a communication network. The relationship of client and server arises by virtue of computer programs running on the respective computers and having a client-server relationship to each other. 
         [0075]    Other embodiments are within the scope of the following claims and other claims to which the applicant may be entitled. The following are examples for illustration only and do not limit the alternatives in any way. The techniques described herein can be performed in a different order and still achieve desirable results 
         [0076]    Other implementations are within the scope of the following claims and other claims to which the applicant may be entitled.