Abstract:
Various communication systems may benefit from techniques and systems for resource allocation. For example, communication systems of the third generation partnership project may benefit from device to device discovery resource allocation methods and systems. A method can include determining that downlink data transmission may cause conflict between uplink control channel transmission and device to device discovery signal transmissions or that uplink shared channel transmissions may conflict with device to device discovery signal transmissions; and requesting a user equipment to report device to device discovery needs based on the determining.

Description:
BACKGROUND 
       [0001]    1. Field 
         [0002]    Various communication systems may benefit from techniques and systems for resource allocation. For example, communication systems of the third generation partnership project may benefit from device to device discovery resource allocation methods and systems. 
         [0003]    2. Description of the Related Art 
         [0004]    Third generation partnership project (3GPP) long term evolution advanced (LTE-A) release 12 or 13 (Rel-12/13) may include features related to device to device discovery and communications. Currently, proximity services (ProSe)/Device-to-Device (D2D) discovery and communication is one issue that is relevant to such standardization. D2D discovery is one of the D2D scenarios that can be considered. 
         [0005]    In 3GPP D2D discovery, at least two types of resource allocation methods are thought to be possible: Type-1 &amp; Type-2 resource allocation. For Type-1 resource allocation, D2D discovery devices, such as a user equipment (UE), conventionally share a common resource pool. Thus, a UE can autonomously select the resource to be used for discovery signal transmission. For Type-2 resource allocation, eNB can conventionally assign a UE-specific resource for discovery signal transmission. Idle mode UEs are supposed to be able to discover other UEs and be discovered by other UEs. Thus, supporting Type-1 resource allocation may be necessary in order for an idle mode UE to obtain resources without the need to enter into Radio Resource Control connected (RRC_connected) state for resource allocation, as with Type-2 resource allocation. 
         [0006]    A D2D discovery signal can be sent on a cellular uplink (UL) subframe (SF). In this discussion, this subframe is referred to as a “D2D SF”. Moreover, cellular and D2D data may not be allowed to be multiplexed in a frequency division multiplexing (FDM) way from one UE perspective. According to such an approach, if a UE sends a discovery signal in a D2D SF, this UE cannot transmit on a physical uplink control channel (PUCCH) or on a physical uplink shared channel (PUSCH) simultaneously in the same SF, namely in the D2D SF. 
         [0007]    If RRC_Connected mode UEs use type-1 resource allocation, a potential issue arises when cellular and D2D traffic co-exist and when a connected mode UE is very heavily scheduled in DL. For example, if one UE has DL data transmission on physical downlink shared channel (PDSCH) in every DL SF, this UE will conventionally consequently send acknowledgment/negative acknowledgment (ACK/NACK or A/N) on PUCCH on every UL SF. The resulting issue is that this UE will conventionally find no place to send discovery message. 
         [0008]    Similarly, if UE is heavily scheduled on PUSCH, UE will conventionally have reduced possibilities for discovery signal transmission. 
         [0009]    One way to address this issue is to set D2D discovery signal transmission with higher priority than cellular data or control. However, with Type-1 resource allocation, the eNB cannot conventionally predict in which UL SF UE will send D2D discovery signal. If D2D discovery signal were set with higher priority, eNB would have to assume that any PUCCH in D2D SF could be unavailable, which would affect cellular services, as there would be DL retransmissions of data for which UEs were not able to send A/N. Likewise, DL would also be affected because of UEs not being able to send channel quality information (CQI) in the normal way. If discovery signal transmissions would prevent utilizing a scheduled PUSCH resource, UL resources would be wasted. 
       SUMMARY 
       [0010]    According to certain embodiments, a method can include determining that an amount of downlink data for a user equipment meets a predetermined threshold. The method can also include requesting the user equipment to report device to device discovery needs based on the amount meeting the predetermined threshold. 
         [0011]    In certain embodiments, a method can include receiving a request to provide a report of device to device discovery needs. The method can also include reporting the device to device discovery needs to a network element. 
         [0012]    An apparatus, according to certain embodiments, can include at least one processor and at least one memory including computer program code. The at least one memory and computer program code can be configured to, with the at least one processor, cause the apparatus at least to determine that an amount of downlink data for a user equipment meets a predetermined threshold. The at least one memory and computer program code can also be configured to, with the at least one processor, cause the apparatus at least to request the user equipment to report device to device discovery needs based on the amount meeting the predetermined threshold. 
         [0013]    An apparatus, in certain embodiments, can include at least one processor and at least one memory including computer program code. The at least one memory and computer program code can be configured to, with the at least one processor, cause the apparatus at least to receive a request to provide a report of device to device discovery needs. The at least one memory and computer program code can also be configured to, with the at least one processor, cause the apparatus at least to report the device to device discovery needs to a network element. 
         [0014]    According to certain embodiments, an apparatus can include means for determining that an amount of downlink data for a user equipment meets a predetermined threshold. The apparatus can also include means for requesting the user equipment to report device to device discovery needs based on the amount meeting the predetermined threshold. 
         [0015]    In certain embodiments, an apparatus can include means for receiving a request to provide a report of device to device discovery needs. The apparatus can also include means for reporting the device to device discovery needs to a network element. 
         [0016]    A non-transitory computer-readable medium can, according to certain embodiments, be encoded with instructions that, when executed in hardware, perform a process. The process can include determining that an amount of downlink data for a user equipment meets a predetermined threshold. The process can also include requesting the user equipment to report device to device discovery needs based on the amount meeting the predetermined threshold. 
         [0017]    A non-transitory computer-readable medium can, in certain embodiments, be encoded with instructions that, when executed in hardware, perform a process. The process can include receiving a request to provide a report of device to device discovery needs. The process can also include reporting the device to device discovery needs to a network element. 
         [0018]    According to certain embodiments, a computer program product can encode instructions for performing a process. The process can include determining that an amount of downlink data for a user equipment meets a predetermined threshold. The process can also include requesting the user equipment to report device to device discovery needs based on the amount meeting the predetermined threshold. 
         [0019]    In certain embodiments, a computer program product can encode instructions for performing a process. The process can include receiving a request to provide a report of device to device discovery needs. The process can also include reporting the device to device discovery needs to a network element. 
         [0020]    According to certain embodiments, a method can include determining that a user equipment&#39;s opportunities to transmit device-to-device discovery signals are lower than a predefined value. The method can also include requesting Type-2 resources or requesting to prioritize the transmitting of the discovery signals. 
         [0021]    In certain embodiments, an apparatus can include at least one processor and at least one memory including computer program code. The at least one memory and computer program code can be configured to, with the at least one processor, cause the apparatus at least to determine that a user equipment&#39;s opportunities to transmit device-to-device discovery signals are lower than a predefined value. The at least one memory and computer program code can also be configured to, with the at least one processor, cause the apparatus at least to request Type-2 resources or request to prioritize the transmitting of the discovery signals. 
         [0022]    An apparatus, according to certain embodiments, can include means for determining that a user equipment&#39;s opportunities to transmit device-to-device discovery signals are lower than a predefined value. The apparatus can also include means for requesting Type-2 resources or requesting to prioritize the transmitting of the discovery signals. 
         [0023]    According to certain embodiments, a computer program product can encode instructions for performing a process. The process can include determining that a user equipment&#39;s opportunities to transmit device-to-device discovery signals are lower than a predefined value. The process can also include requesting Type-2 resources or requesting to prioritize the transmitting of the discovery signals. 
         [0024]    A non-transitory computer-readable medium can, in certain embodiments, be encoded with instructions that, when executed in hardware, perform a process. The process can include determining that a user equipment&#39;s opportunities to transmit device-to-device discovery signals are lower than a predefined value. The process can also include requesting Type-2 resources or requesting to prioritize the transmitting of the discovery signals. 
     
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         [0025]    For proper understanding of the invention, reference should be made to the accompanying drawings, wherein: 
           [0026]      FIG. 1  illustrates a method according to certain embodiments. 
           [0027]      FIG. 2  illustrates another method according to certain embodiments. 
           [0028]      FIG. 3  illustrates a system according to certain embodiments. 
       
    
    
     DETAILED DESCRIPTION 
       [0029]    Certain embodiments may provide a better way of handling device to device discovery signal transmissions, while avoiding multiplexing cellular and D2D data in a frequency division multiplexing way from the standpoint of one user equipment. 
         [0030]    For example, in certain embodiments, when an evolved node B (eNB) finds out a large amount of DL data is to be scheduled for one RRC_Connected mode UE, it can request the UE to report the UE&#39;s own D2D discovery needs. A report may also be requested if eNB finds that the UE is transmitting frequently at PUSCH. 
         [0031]    The eNB can indicate UE to report its D2D discovery needs and can assign an UL resource for sending the report with a predetermined PUCCH reporting format. Alternatively, the eNB may just indicate that the UE is to send a report, without assigning PUCCH resources for such a report. In this case, the UE can send the report on PUSCH. With the report, the UE can request Type-2 resources or ask the eNB to prioritize the UE&#39;s participation in D2D discovery. 
         [0032]    Alternatively, or in addition to the above, when the UE finds out that the UE&#39;s opportunities to transmit discovery signals are lower than a predefined value, due to the frequent PUCCH transmissions or scheduled PUSCH transmissions, the UE may indicate the problematic situation to the eNB through a new higher layer signaling (MAC CE or RRC) carried on PUSCH. Such a predefined value can be a parameter configured by the eNB. The eNB may define such a value as, for example, the number of transmit opportunities during a given interval, which can be deemed to satisfy the minimal discovery requirements for the UE side. 
         [0033]    Thus, the UE may carry following information in a message: the UE may directly request Type-2 resources; or the UE may ask the eNB to prioritize the UE&#39;s participation in D2D discovery; or the request message may be an indication to the eNB and can inform the eNB that the eNB needs to assign UL resources and message format for UE reporting on discovery status. 
         [0034]    When a UE is configured to report or decides to report D2D discovery needs, it can follow the procedures described below. For example, for resource allocation type-1, or common resource allocation, UE may report to the eNB how frequent opportunities it desires to have for discovery signal transmission. UE may, for example, indicate that the UE is satisfied with rare opportunities or that the UE has unexpected discovery needs, beyond the normal discovery signal transmission cycle, or that the discovery needs have ended. 
         [0035]    For resource allocation Type-2, or UE-specific resource allocation, once the UE has discovery needs, the UE can request the eNB to assign the UE-specific resource to the UE. Moreover, once the discovery needs end, the UE can report this to the eNB. 
         [0036]    When eNB receives the report that UE has discovery needs, the eNB can take the UE needs into account by restricting scheduling in some DL subframes in order to increase discovery signal transmission opportunities according to the indicated needs. Also, the eNB may avoid scheduling PUSCH transmission on D2D subframes for a UE with discovery needs. Instead, the eNB may schedule PUSCH transmissions in D2D subframes for UEs without discovery needs. Alternatively, or in addition, the eNB can allocate Type-2 resources if available and if requested by the UE. The eNB can also take the allocated Type-2 resources into account when scheduling DL and PUSCH. 
         [0037]    Certain embodiments can be variously implemented. The following implementations may, therefore, be only examples of many possible implementations. 
         [0038]    Configurations as to the eNB can include various aspects. Initially, all D2D discovery UEs, including idle mode and connected mode UEs, may be configured to use Type-1, for example common resource pool, to send discovery message. Later, the eNB may realize that there is a need to schedule PDSCH in a way that could possibly cause a conflict between UE&#39;s PUCCH and discovery signal transmission. The eNB may, for instance, know that a large amount of data will be transmitted in DL or, based on the statistics of past DL transmissions, deduce that DL transmission will be frequent in the future. Frequent DL transmissions may mean frequent PUCCH transmissions, in order to feedback DL acknowledgement/negative acknowledgment (ACK/NACK or A/N) to the eNB. As a UE cannot transmit PUCCH and discovery signals in the same subframe, depending on the priority of PUCCH and discovery signal transmissions, the UE may have too few opportunities for discovery signal transmission or discovery signal transmissions could block some PUCCH transmissions. When such a problem may potentially appear, the eNB can configure and trigger this connected mode UE to report to the eNB the UE&#39;s D2D discovery request. 
         [0039]    As a UE cannot transmit simultaneously UL data on PUSCH and discovery signals, frequent PUSCH transmissions may cause a similar problem as large amount of DL data. The eNB may deduce from the past PUSCH transmissions that the UE might intend to transmit large amount of UL data also in the future and may trigger the UE to report to the eNB the UE&#39;s D2D discovery request. 
         [0040]    Such procedures can take place with following steps. According to a first step, the eNB can use RRC signaling to indicate a physical layer resource in which the UE can send its report. Such physical layer resource can be a specific PUCCH resource that is located outside of D2D SFs. Any of the current PUCCH formats can be used to carry such reports. The eNB can indicate which format will be used. The format selected for use can depend on which discovery request information the eNB wants to obtain from UE side. 
         [0041]    According to a second step, the eNB can use downlink control information (DCI) in physical downlink control channel (PDCCH) or enhanced PDCCH (ePDCCH) to trigger the UE for reporting with the settings configured in the first step. 
         [0042]    Alternatively to the above two steps, instead of PUCCH, reports can be carried on PUSCH. In this case, DCI could indicate that UE must send a report on PUSCH. 
         [0043]    The eNB can also indicate to the UE whether Type-2 resource allocation can be supported or applied to the connected mode UE. The eNB can make such a decision considering the eNB&#39;s resource utilization status and the UE&#39;s wish. For example, if there are numerous vacant resources in the cell, the eNB can configure Type-2 resource to the connected mode UE. Otherwise, Type-1 resource can be used as a common resource pool for all D2D UEs, including connected mode and idle mode UEs. On the UE side, when the eNB configures the UE to report the discovery request, the UE can assume the default resource allocation type is Type-1 unless the eNB explicitly indicates otherwise in the RRC signaling. Such explicit signaling could typically follow UE reporting its discovery needs. 
         [0044]    When the eNB receives a report indicating an end of discovery needs, it may remove scheduling restrictions it has applied for avoiding situations where UE&#39;s transmissions of cellular and discovery signals would overlap. Also, eNB may release Type-2 resources allocated for the UE, and release the UL resource the eNB had assigned for the UE for D2D discovery request reports. 
         [0045]    UE reporting of a discovery request can have various implementations. For example, for resource allocation Type-1, if PUCCH format 1a, carrying 1 bit, can be configured for UE reporting, with respect to which “1” can represent that the UE has a discovery request and “0” can represent the end of a discovery need. Sometimes more information may be useful as, for example, an eNB may need to know how frequently the UE wants the discovery signal to be sent. In such a case, the eNB may configure PUCCH format 1b, 2 bits, for UE reporting. In that case, “00”, “01”, “10”, and “11” may respectively represent discovery needs have ended, a low frequency discovery request, a medium frequency discovery request, and a high frequency discovery request. More granularity can be included if another PUCCH format, such as format 3, is used or if the report is sent through PUSCH. When the eNB receives such UE reporting, the eNB can restrict scheduling in some DL subframes in order to increase the opportunities of discovery signals transmissions for the reporting UE. 
         [0046]    For resource allocation Type-2, the usage and meaning of PUCCH indication can be the same as with resource allocation Type-1, as described above. A difference can be that when the eNB receives such reporting, the eNB can assign or release a Type-2 resource to a connected mode UE. When deciding how much of the possible resources the eNB will allocate for a UE, the eNB can consider the frequency level of the discovery request from the UE&#39;s reporting. The eNB can use, for example, either RRC signaling or DCI format to assign and/or release the Type-2 resource. 
         [0047]    There can be other implementations of the above approaches. For example, a UE may find out that the UE cannot sufficiently utilize discovery resources due to frequent PUCCH or PUSCH transmissions. In such a case, the UE can indicate the problem to the eNB with a new control message. The control message can be a medium access control (MAC) control element (CE) or an RRC control message. The UE may include such control message in a PUSCH transmission. The resources for sending the request message can be obtained as for any other control message. The message may directly carry information regarding the UE needs, or the message may just be an indication for the eNB that the eNB should assign the UE resources on PUCCH that the UE would use for discovery related signaling. 
         [0048]    Thus, for example, the UE may directly request Type-2 resources. Alternatively, the UE may ask the eNB to prioritize the UE&#39;s participation with respect to D2D discovery. In a further alternative, the request message may be an indication to the eNB and may inform eNB that eNB should assign UL resources and message format for UE reporting on the discovery status. In response to the request message, UE may be assigned UL resource and message format for the reporting. 
         [0049]    Certain embodiments may have various benefits and/or advantages. For example, certain embodiments may address the issue of when D2D discovery signal and PUCCH A/N transmission conflict for an in coverage D2D discovery use case. 
         [0050]      FIG. 1  illustrates a method according to certain embodiments. The method of  FIG. 1  may be performed by, for example, a network element, such as an access point, base station, or evolved Node B. As shown in  FIG. 1 , a method can include, at  110 , determining that an amount of downlink data for a user equipment meets a predetermined threshold. 
         [0051]    The method can also include, at  120 , requesting the user equipment to report device to device discovery needs based on the amount meeting the predetermined threshold. The requesting can be further contingent on the user equipment being a radio resource control connected mode user equipment. The report can be received from the UE at  130 , including an indication of the UE&#39;s discovery needs. 
         [0052]    The method can further include, at  125 , assigning an uplink resource to the user equipment in which to report the discovery needs. A specific format can be specified or assigned together with the uplink resource. 
         [0053]    The method can additionally include, at  135 , receiving an indication that the user equipment has discovery needs. The method can also include, at  140 , restricting scheduling in at least one downlink subframe to increase discovery signal transmission opportunities according to the discovery needs. 
         [0054]    Alternatively, the method can include, at  150 , allocating Type-2 resources to the user equipment when available and requested by the user equipment. Furthermore, the method can include, at  155 , taking the Type-2 resources into account when scheduling on a downlink. 
         [0055]      FIG. 2  illustrates another method according to certain embodiments. The method of  FIG. 2  may be performed by, for example, a user equipment, such as a terminal device, a mobile phone, a personal digital assistant, a personal computer, a tablet computer, a smart meter, or a sensor. 
         [0056]    As shown in  FIG. 2 , a method can include, at  210 , receiving a request to provide a report of device to device discovery needs. The method can also include, at  220 , reporting the device to device discovery needs to a network element. 
         [0057]    The method can further include, at  215 , receiving an assignment of an uplink resource in which to include the report. Thus, the reporting can include initiating sending the report using the uplink resource. The assignment can also indicate a specific format to use in providing the report, and the reporting can include following the assigned format. 
         [0058]    The method can also include, at  230 , requesting Type-2 resources when providing the report. Alternatively, the method can include, at  240 , requesting prioritization of participation by the user equipment in device to device discovery, when providing the report. 
         [0059]    The method can further include, at  250 , determining that opportunities to transmit discovery signals for a user equipment are lower than a predefined threshold. Furthermore, the method can include, at  255 , indicating that the predefined threshold is not met, to the network element. 
         [0060]    The method can additionally include, at  260 , determining that a user equipment has unexpected discovery needs. The method can further include, at  265 , reporting to the network element the unexpected discovery needs. 
         [0061]    The method can also include, at  270 , determining that a user equipment has discovery needs. The method can further include, at  272 , requesting the network element to provide a user equipment specific resource for the discovery needs. Furthermore, the method can include, at  274 , determining that the discovery needs have ended. Additionally, the method can include, at  276 , reporting to the network element that the discovery needs have ended. 
         [0062]    The method of  FIG. 2  can work in coordination with the method of  FIG. 1 . Thus, a method may include both the method of  FIG. 1  and the method of  FIG. 2 . 
         [0063]    Other methods are also possible. For example, a method can include determining that a user equipment&#39;s opportunities to transmit device-to-device discovery signals are lower than a predefined value. The method can also include requesting Type-2 resources or requesting to prioritize the transmitting of the discovery signals. 
         [0064]    The result of the determining can be indicated to an eNB through a higher layer signaling carried on PUSCH. Additionally, the requesting can sent from the user equipment to the eNB via a request message, which also indicates the eNB to assign uplink resources and message format for the user equipment to report discovery status. 
         [0065]      FIG. 3  illustrates a system according to certain embodiments. It should be understood that each block of the flowchart of  FIG. 1 or 2  and any combination thereof may be implemented by various means or their combinations, such as hardware, software, firmware, one or more processors and/or circuitry. In one embodiment, a system may include several devices, such as, for example, network element  310  and user equipment (UE) or user device  320 . The system may include more than one UE  320  and more than one network element  310 , although only one of each is shown for the purposes of illustration. A network element can be an access point, a base station, an eNode B (eNB), server, host or any of the other network elements discussed herein. Each of these devices may include at least one processor or control unit or module, respectively indicated as  314  and  324 . At least one memory may be provided in each device, and indicated as  315  and  325 , respectively. The memory may include computer program instructions or computer code contained therein. One or more transceiver  316  and  326  may be provided, and each device may also include an antenna, respectively illustrated as  317  and  327 . Although only one antenna each is shown, many antennas and multiple antenna elements may be provided to each of the devices. Other configurations of these devices, for example, may be provided. For example, network element  310  and UE  320  may be additionally configured for wired communication, in addition to wireless communication, and in such a case antennas  317  and  327  may illustrate any form of communication hardware, without being limited to merely an antenna. Likewise, some network elements  310  may be solely configured for wired communication, and such cases antenna  317  may illustrate any form of wired communication hardware, such as a network interface card. 
         [0066]    Transceivers  316  and  326  may each, independently, be a transmitter, a receiver, or both a transmitter and a receiver, or a unit or device that may be configured both for transmission and reception. The transmitter and/or receiver (as far as radio parts are concerned) may also be implemented as a remote radio head which is not located in the device itself, but in a mast, for example. It should also be appreciated that according to the “liquid” or flexible radio concept, the operations and functionalities may be performed in different entities, such as nodes, hosts or servers, in a flexible manner. In other words, division of labor may vary case by case. One possible use is to make a network element deliver local content. One or more functionalities may also be implemented as virtual application(s) in software that can run on a server. 
         [0067]    A user device or user equipment  320  may be a mobile station (MS) such as a mobile phone or smart phone or multimedia device, a computer, such as a tablet, provided with wireless communication capabilities, personal data or digital assistant (PDA) provided with wireless communication capabilities, portable media player, digital camera, pocket video camera, navigation unit provided with wireless communication capabilities or any combinations thereof. 
         [0068]    In an exemplary embodiment, an apparatus, such as a node or user device, may include means for carrying out embodiments described above in relation to  FIG. 1 or 2 . 
         [0069]    Processors  314  and  324  may be embodied by any computational or data processing device, such as a central processing unit (CPU), digital signal processor (DSP), application specific integrated circuit (ASIC), programmable logic devices (PLDs), field programmable gate arrays (FPGAs), digitally enhanced circuits, or comparable device or a combination thereof. The processors may be implemented as a single controller, or a plurality of controllers or processors. 
         [0070]    For firmware or software, the implementation may include modules or unit of at least one chip set (for example, procedures, functions, and so on). Memories  315  and  325  may independently be any suitable storage device, such as a non-transitory computer-readable medium. A hard disk drive (HDD), random access memory (RAM), flash memory, or other suitable memory may be used. The memories may be combined on a single integrated circuit as the processor, or may be separate therefrom. Furthermore, the computer program instructions may be stored in the memory and which may be processed by the processors can be any suitable form of computer program code, for example, a compiled or interpreted computer program written in any suitable programming language. The memory or data storage entity is typically internal but may also be external or a combination thereof, such as in the case when additional memory capacity is obtained from a service provider. The memory may be fixed or removable. 
         [0071]    The memory and the computer program instructions may be configured, with the processor for the particular device, to cause a hardware apparatus such as network element  310  and/or UE  320 , to perform any of the processes described above (see, for example,  FIGS. 1 and 2 ). Therefore, in certain embodiments, a non-transitory computer-readable medium may be encoded with computer instructions or one or more computer program (such as added or updated software routine, applet or macro) that, when executed in hardware, may perform a process such as one of the processes described herein. Computer programs may be coded by a programming language, which may be a high-level programming language, such as objective-C, C, C++, C#, Java, etc., or a low-level programming language, such as a machine language, or assembler. Alternatively, certain embodiments of the invention may be performed entirely in hardware. 
         [0072]    Furthermore, although  FIG. 3  illustrates a system including a network element  310  and a UE  320 , embodiments of the invention may be applicable to other configurations, and configurations involving additional elements, as illustrated and discussed herein. For example, multiple user equipment devices and multiple network elements may be present, or other nodes providing similar functionality, such as nodes that combine the functionality of a user equipment and an access point, such as a relay node. The UE  320  may likewise be provided with a variety of configurations for communication other than communication network element  310 . For example, the UE  320  may be configured for device-to-device communication. 
         [0073]    One having ordinary skill in the art will readily understand that the invention as discussed above may be practiced with steps in a different order, and/or with hardware elements in configurations which are different than those which are disclosed. Therefore, although the invention has been described based upon these preferred embodiments, it would be apparent to those of skill in the art that certain modifications, variations, and alternative constructions would be apparent, while remaining within the spirit and scope of the invention. In order to determine the metes and bounds of the invention, therefore, reference should be made to the appended claims.