Patent Publication Number: US-8118213-B2

Title: Indirect mobile codes with flexible formats

Description:
CROSS-REFERENCE TO RELATED APPLICATION(S) AND CLAIM OF PRIORITY 
     The present application is related to U.S. Provisional Patent Application No. 61/209,928, filed Mar. 12, 2009, entitled “FLEXIBLE INDIRECT MOBILE CODE FORMATS”. Provisional Patent Application No. 61/209,928 is assigned to the assignee of the present application and is hereby incorporated by reference into the present application as if fully set forth herein. The present application hereby claims priority under 35 U.S.C. §119(e) to U.S. Provisional Patent Application No. 61/209,928. 
    
    
     TECHNICAL FIELD OF THE INVENTION 
     The present application relates generally to wireless communications and, more specifically, to mobile codes used in wireless communications. 
     BACKGROUND OF THE INVENTION 
     Mobile codes are rapidly gaining in popularity as a useful application for wireless technology. Mobile codes may be coded into a printed barcode or a two dimensional barcode, which can be scanned by a camera-equipped handset or other scanning device. The scanning device uses the information contained within a mobile code to obtain a network address of a network entity, such a server on the Internet, that retrieves information associated with the mobile code. Upon retrieving the information, the network entity forwards the information to the scanning device. Such a mobile code is frequently referred to as a direct mobile code because the mobile code contains that network address of the entity that will return the information to the scanning device. 
     An indirect mobile code is a mobile code that does not point directly to a network address, but rather contains information that will lead to a Code Resolution Server (CRS). An indirect mobile code typically contains two parts: an identification code that is specific to the particular item being scanned, and a routing prefix that points to a CRS responsible for resolving the identification code. A mobile device scans an indirect mobile code and forwards the indirect mobile code to a Code Clearing House (CHC). The CHC determines the CRS associated with the routing prefix contained in the indirect mobile code and forwards the identification code in the indirect mobile code to the associated CRS for processing. 
     SUMMARY OF THE INVENTION 
     A method of operating a code clearing house is provided. The method comprises receiving an indirect mobile code from a mobile code client. The indirect mobile code comprises a length field, a routing prefix, and an identification code. The method further comprises determining the routing prefix in the indirect mobile code using the length field. 
     A code clearing house is provided. The code clearing house comprises a receiver configured to receive an indirect mobile code from a mobile code client. The indirect mobile code comprises a length field, a routing prefix, and an identification code. The code clearing house further comprises a processor configured to determine the routing prefix in the indirect mobile code using the length field and to associate the routing prefix with a code resolution server. 
     A mobile code client is provided. The mobile code client is capable of obtaining an indirect mobile code. The indirect mobile code comprises a length field, a routing prefix, and an identification code. The mobile code client is further capable of transmitting the indirect mobile code to a code clearing house. The length field is used by the code clearing house to determine the length of the routing prefix. 
     A code clearing house is provided. The code clearing house comprises a receiver configured to receive an indirect mobile code from a mobile code client, and a first connection to a first code resolution server. The first code resolution server is associated with a first routing prefix. The code clearing house further comprises a second connection to a second code resolution server. The second code resolution server is associated with a second routing prefix. The length of the first routing prefix is longer than the length of the second routing prefix, and the code clearing house is configured to associate the first routing prefix with the first code resolution server and the second routing prefix with the second code resolution server. 
     Before undertaking the DETAILED DESCRIPTION OF THE INVENTION below, it may be advantageous to set forth definitions of certain words and phrases used throughout this patent document: the terms “include” and “comprise,” as well as derivatives thereof, mean inclusion without limitation; the term “or,” is inclusive, meaning and/or; the phrases “associated with” and “associated therewith,” as well as derivatives thereof, may mean to include, be included within, interconnect with, contain, be contained within, connect to or with, couple to or with, be communicable with, cooperate with, interleave, juxtapose, be proximate to, be bound to or with, have, have a property of, or the like; and the term “controller” means any device, system or part thereof that controls at least one operation, such a device may be implemented in hardware, firmware or software, or some combination of at least two of the same. It should be noted that the functionality associated with any particular controller may be centralized or distributed, whether locally or remotely. Definitions for certain words and phrases are provided throughout this patent document, those of ordinary skill in the art should understand that in many, if not most instances, such definitions apply to prior, as well as future uses of such defined words and phrases. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       For a more complete understanding of the present disclosure and its advantages, reference is now made to the following description taken in conjunction with the accompanying drawings, in which like reference numerals represent like parts: 
         FIG. 1  illustrates a mobile code support system for utilizing an indirect mobile code according to an embodiment of the disclosure; 
         FIG. 2  illustrates a mobile code client (MCC) in greater detail according to an embodiment of the disclosure; 
         FIG. 3  illustrates a code clearing house (CCH) in greater detail according to an embodiment of the disclosure; 
         FIG. 4  illustrates a global mobile code registry (GMCR) in greater detail according to an embodiment of the disclosure; 
         FIG. 5  illustrates a code resolution server (CRS) in greater detail according to an embodiment of the disclosure; 
         FIG. 6  illustrates indirect mobile codes having flexible formats according to an embodiment of the disclosure; 
         FIG. 7  illustrates a format for an indirect mobile code according to an embodiment of the disclosure; 
         FIG. 8  illustrates a mobile code support system for utilizing an indirect mobile code having a flexible format according to another embodiment of the disclosure; 
         FIG. 9  illustrates a method of coding a mobile code having a flexible format according to an embodiment of the disclosure; 
         FIG. 10  illustrates a method of operating a mobile code client (MCC) according to an embodiment of the disclosure; and 
         FIG. 11  illustrates a method of operating a code clearing house (CCH) according to an embodiment of the disclosure. 
     
    
    
     DETAILED DESCRIPTION OF THE INVENTION 
       FIGS. 1 through 11 , discussed below, and the various embodiments used to describe the principles of the present disclosure in this patent document are by way of illustration only and should not be construed in any way to limit the scope of the disclosure. Those skilled in the art will understand that the principles of the present disclosure may be implemented in any suitably arranged communications system. 
       FIG. 1  illustrates a mobile code support system  100  for utilizing an indirect mobile code according to an embodiment of the disclosure. The embodiment of the system  100  illustrated in  FIG. 1  is for illustration only. Other embodiments of the system  100  could be used without departing from the scope of this disclosure. 
     As shown in  FIG. 1 , a Mobile Code Client or MCC  101  is a mobile device for capturing an indirect mobile code. MCC  101  may capture an indirect mobile code, for example, by a camera feature on the MCC  101 . Of course, one of ordinary skill in the art will recognize that any means of capturing an indirect mobile code by the MCC  101  could be utilized. Upon capturing an indirect mobile code, the MCC  101  transmits the indirect mobile code to a Code Clearing House or CCH  103  via a network connection  105 . 
     The CCH  103  then reads the routing prefix in the indirect mobile code. If the routing prefix is associated with a Code Resolution Server or CRS  111 , the CCH  103  transmits the identification code in the indirect code directly to the CRS  111  via a network connection  113 . The CRS  111  then returns the data associated with the identification code to the CCH  103 , and the CCH  103  transmits the data to the MCC  101 . In this embodiment, the CCH  103  and the CRS  111  form a code management platform or CMP  119 . Although shown as two separate entities, in some embodiments, the CRS  111  could be contained within the CCH  103 . 
     If the routing prefix is associated with another code resolution server, such as a CRS  121 , the CCH  103  transmits the indirect mobile code to a code clearing house, such as a CCH  115 , associated with the CRS  121  via a network connection  117 . In such a case, the CCH  115  transmits the identification code in the indirect code to the CRS  121  via a network connection  123 . The CRS  121  then returns the data associated with the identification code to the CCH  115 . The CCH  115  then transmits the data to CCH  103 , and the CCH  103  transmits the data to the MCC  101 . In this embodiment, the CCH  115  and the CRS  121  form a CMP  125 . Although shown as two separate entities, in some embodiments, the CRS  121  could be contained within the CCH  115 . 
     If the CCH  103  cannot determine a code resolution server associated with the routing prefix, the CCH  103  transmits the indirect mobile code to a Global Mobile Code Registry or GMCR  107  via a network connection  109 . The GMCR  107  then returns the data associated with the indirect mobile code to the CCH  103 , and the CCH  103  transmits the data to the MCC  101 . 
       FIG. 2  illustrates the mobile code client (MCC)  101  in greater detail according to an embodiment of the disclosure. The embodiment of the MCC  101  illustrated in  FIG. 2  is for illustration only. Other embodiments of the MCC  101  could be used without departing from the scope of this disclosure. 
     As shown in  FIG. 2 , the MCC  101  comprises an antenna  205 , a radio frequency (RF) transceiver  210 , a transmit (TX) processing circuitry  215 , a microphone  220 , and a receive (RX) processing circuitry  225 . The MCC  101  also comprises a speaker  230 , a main processor  240 , an input/output (I/O) interface (IF)  245 , a keypad  250 , a display  255 , a camera  260 , and a memory  270 . The memory  270  further comprises a basic operating system (OS) program  271  and a mobile code reading software  272  that is executed by the main processor  240  to capture an indirect mobile code, for example, by the camera  260 . 
     The radio frequency (RF) transceiver  210  receives from the antenna  205  an incoming RF signal transmitted by a network base station. The radio frequency (RF) transceiver  210  down-converts the incoming RF signal to produce an intermediate frequency (IF) or a baseband signal. The IF or baseband signal is sent to the receiver (RX) processing circuitry  225  that produces a processed baseband signal by filtering, decoding, and/or digitizing the baseband or IF signal. The receiver (RX) processing circuitry  225  transmits the processed baseband signal to the speaker  230  (i.e., voice data) or the main processor  240  for further processing (e.g., web browsing). 
     The transmitter (TX) processing circuitry  215  receives analog or digital voice data from the microphone  220  or other outgoing baseband data (e.g., web data, e-mail, interactive video game data) from the main processor  240 . The transmitter (TX) processing circuitry  215  encodes, multiplexes, and/or digitizes the outgoing baseband data to produce a processed baseband or IF signal. The radio frequency (RF) transceiver  210  receives the outgoing processed baseband or IF signal from the transmitter (TX) processing circuitry  215 . The radio frequency (RF) transceiver  210  up-converts the baseband or IF signal to a radio frequency (RF) signal that is transmitted via the antenna  205 . 
     In some embodiments of the disclosure, the main processor  240  is a microprocessor or microcontroller. The memory  270  is coupled to the main processor  240 . According to some embodiments of the disclosure, a part of the memory  270  comprises a random access memory (RAM) and another part of the memory  270  comprises a Flash memory that acts as a read-only memory (ROM). 
     The main processor  240  executes a basic operating system (OS) program  271  stored in the memory  270  in order to control the overall operation of MCC  101 . In one such operation, the main processor  240  controls the reception of forward channel signals and the transmission of reverse channel signals by the radio frequency (RF) transceiver  210 , the receiver (RX) processing circuitry  225 , and the transmitter (TX) processing circuitry  215  in accordance with well-known principles. 
     The main processor  240  is capable of executing other processes and programs resident in the memory  270 . The main processor  240  can move data into or out of the memory  270  as required by an executing process. In some embodiments, the main processor  240  is configured to receive an indirect mobile code captured by the camera  260  and sends the indirect mobile code to the transmitter (TX) processing circuitry  215  for processing and transmission to a code clearing house. The main processor  240  also is coupled to the I/O interface  245 . The I/O interface  245  provides the MCC  101  with the ability to connect to other devices such as laptop computers and handheld computers. The I/O interface  245  is the communication path between these accessories and the main processor  240 . 
     Main processor  240  also is coupled to the keypad  250  and the display unit  255 . The operator of the MCC  101  uses the keypad  250  to enter data into the MCC  101 . The display  255  may be a liquid crystal display (LCD) capable of rendering text and/or at least limited graphics from web sites. Alternate embodiments may use other types of displays. 
       FIG. 3  illustrates the code clearing house (CCH)  103  in greater detail according to an embodiment of the disclosure. The embodiment of the CCH  103  illustrated in  FIG. 3  is for illustration only. Other embodiments of the CCH  103  could be used without departing from the scope of this disclosure. 
     As shown in  FIG. 3 , the CCH  103  comprises an I/O interface  310 , a main processor  320 , and a memory  330 . The I/O interface  310  provides the CCH  103  with the ability to connect to other devices such as laptop computers and handheld computers. The I/O interface  310  is the communication path between these accessories and the main processor  320 . In a particular embodiment, the I/O interface  310  is a network interface that allows the CCH  103  to receive an indirect mobile code from the MCC  101 . 
     In some embodiments of the disclosure, the main processor  320  is a microprocessor or microcontroller. The memory  330  is coupled to the main processor  320 . The main processor  320  executes a basic operating system (OS) program  331  stored in the memory  330  in order to control the overall operation of the CCH  103 . The memory  330  also comprises a routing prefix database  332  used by the main processor  320  in determining the entity to which an indirect mobile code is to be sent. 
       FIG. 4  illustrates the global mobile code registry (GMCR)  107  in greater detail according to an embodiment of the disclosure. The embodiment of the GMCR  107  illustrated in  FIG. 4  is for illustration only. Other embodiments of the GMCR  107  could be used without departing from the scope of this disclosure. 
     As shown in  FIG. 4 , the GMCR  107  comprises an I/O interface  410 , a main processor  420 , and a memory  430 . The I/O interface  410  provides the GMCR  107  with the ability to connect to other devices such as laptop computers and handheld computers. The I/O interface  410  is the communication path between these accessories and the main processor  420 . In a particular embodiment, the I/O interface  410  is a network interface that allows the GMCR  107  to receive an indirect mobile code from the CCH  103 . 
     In some embodiments of the disclosure, the main processor  420  is a microprocessor or microcontroller. The memory  430  is coupled to the main processor  420 . The main processor  420  executes a basic operating system (OS) program  431  stored in the memory  430  in order to control the overall operation of the GMCR  107 . The memory  430  also comprises a global mobile code database  432  used by the main processor  420  to resolve an indirect mobile code received from CCH  103 . 
       FIG. 5  illustrates the code resolution server (CRS)  111  in greater detail according to an embodiment of the disclosure. The embodiment of the CRS  111  illustrated in  FIG. 5  is for illustration only. Other embodiments of the CRS  111  could be used without departing from the scope of this disclosure. 
     As shown in  FIG. 5 , the CRS  111  comprises an I/O interface  510 , a main processor  520 , and a memory  530 . The I/O interface  510  provides the CRS  111  with the ability to connect to other devices such as laptop computers and handheld computers. The I/O interface  510  is the communication path between these accessories and the main processor  520 . In a particular embodiment, the I/O interface  510  is a network interface that allows the CRS  111  to receive an indirect mobile code from the CCH  103 . 
     In some embodiments of the disclosure, the main processor  520  is a microprocessor or microcontroller. The memory  530  is coupled to the main processor  520 . The main processor  520  executes a basic operating system (OS) program  531  stored in the memory  530  in order to control the overall operation of the CRS  111 . The memory  530  also comprises an identification code database  532  used by the main processor  520  to resolve an identification code received from CCH  103 . 
     Indirect mobile codes that require the routing prefix and the identification code be of a fixed length for all indirect mobile codes captured by an MCC does not allow the CCH to determine the length of either the routing prefix or identification code from the indirect mobile code. Such a restriction creates an artificial limitation on the way routing prefixes and identification codes can be used. Since a routing prefix is mapped to a single code resolution server (operated by a third party vendor, for example), all identification codes associated with that routing prefix are restricted from being used by any other code resolution server. In some cases, the vendor operating the code resolution server may not have the need to host all of the identification codes available for the routing prefix. Also, another vendor may need to host more identification codes than is allowed by the limit imposed by the length of the identification code field. Because the length of the identification codes is fixed, all code resolution servers host the same number of identification codes. 
     This disclosure provides a more flexible and robust way of processing indirect mobile codes by a code clearing house, such as CCH  103 . Specifically, a method and system is disclosed that allows for utilizing indirect mobile codes having routing prefixes and identifications codes of variable lengths. 
       FIG. 6  illustrates indirect mobile codes having flexible formats according to an embodiment of the disclosure. The indirect mobile codes illustrated in  FIG. 6  are for illustration only. Other embodiments of the indirect mobile codes could be used without departing from the scope of this disclosure. 
     As shown in  FIG. 6 , a first indirect mobile code  602  has a total data length  620  of bits to be used for both the routing prefix and the identification code. In this case, the length of a routing prefix  604  and the length of an identification code  606  is set and is not variable in order for a code clearing house to be able to locate the routing prefix and the identification code in the indirect mobile code. Therefore, the number of identification codes hosted by a code resolution server utilizing such an indirect mobile code is set and cannot be changed regardless of the number of identification codes that are actually used or may be needed by the code resolution server. 
       FIG. 6  also shows a second indirect mobile code  608  having a routing prefix  610  and an identification code  612 . In the second indirect mobile code  608 , the routing prefix  610  is shorter in length than the routing prefix  604  utilized in the first mobile code  602 . Having a shorter routing prefix allows more bits to be used for the identification code. Having more bits allocated to the identification code allows more identification codes to be generated and utilized. The second mobile code  608  is particularly useful for code resolution servers that need more identification codes than is available using indirect mobile codes with a fixed-length routing prefix and identification code. 
       FIG. 6  also shows a third indirect mobile code  614  having a routing prefix  616  and an identification code  618 . In the third indirect mobile code  614 , the routing prefix  616  is longer in length than the routing prefix  604  utilized in the first mobile code  602 . Having a longer routing prefix allows less bits to be used for the identification code. Having less bits allocated to the identification code allows less identification codes to be generated and utilized. The third indirect mobile code  614  is particularly useful for code resolution servers that do not need all of identification codes that are available using indirect mobile codes with a fixed-length routing prefix and identification code. The routing prefix  616  can be priced differently than a longer routing prefix because such a routing prefix would host a smaller number of identification codes. 
       FIG. 7  illustrates a format  700  for an indirect mobile code according to an embodiment of the disclosure. The format  700  illustrated in  FIG. 7  is for illustration only. Other embodiments of the format  700  could be used without departing from the scope of this disclosure. 
     As shown in  FIG. 7 , the format  700  contains a version field  701  that is W bits long, a total length field  703  that is X bits long, a routing prefix length field  705  that is Y bits long, and a routing prefix and identification code field  707  that is Z bits long. Because the indirect mobile codes of this disclosure utilize routing prefixes and identification codes that are variable in length, the routing prefix length field  705  is included so that a code clearing house can use the routing prefix length field  705  to determine the routing prefix and the identification code in the routing prefix and identification code field  707 . Of course the length of the routing prefix also may be indirectly determined by providing the length of the identification code instead of the routing prefix length. 
     The disclosed flexible formats for indirect mobile codes allows for a flexible deployment of a mobile code support system with the possibility of several different code resolution servers attached to a network of code clearing houses. 
       FIG. 8  illustrates a mobile code support system  800  for utilizing an indirect mobile code having a flexible format according to another embodiment of the disclosure. The embodiment of the system  800  illustrated in  FIG. 8  is for illustration only. Other embodiments of the system  800  could be used without departing from the scope of this disclosure. 
     As shown in  FIG. 8 , the CCH  103  also is connected to a second CRS  801  via a network connection  803 . In some embodiments, the CRS  801  may be associated with a routing prefix that is of a different length than the routing prefix associated with the CRS  111 . 
     Similarly, the CCH  115  also is connected to a second CRS  805  via a network connection  807 . 
     Although  FIG. 8  shows CCH  103  and CCH  115  being connected to two code resolution servers, one of ordinary skill in the art will recognize that the code clearing houses can be connected to any number of code resolution servers as well as other code clearing houses. 
       FIG. 9  illustrates a method  900  of coding a mobile code having a flexible format according to an embodiment of the disclosure. The method  900  illustrated in  FIG. 9  is for illustration only. Other embodiments of the method  900  could be used without departing from the scope of this disclosure. 
     As shown in  FIG. 9 , the method  900  comprises providing a version field indicating the format type or version in the indirect mobile code (block  901 ). The method  900  further comprises providing a total length field indicating the total length of the code (i.e., the length of the identification code plus the length of the routing prefix) (block  903 ), and providing a routing prefix length field indicating the length of the routing prefix (block  905 ). The actual routing prefix and identification code are also provided (block  907 ). In another embodiment, the length of the identification code can be used instead of the length of the routing prefix at block  905 . 
       FIG. 10  illustrates a method  1000  of operating a mobile code client or MCC according to an embodiment of the disclosure. The method  1000  illustrated in  FIG. 10  is for illustration only. Other embodiments of the method  1000  could be used without departing from the scope of this disclosure. 
     As shown in  FIG. 10 , an MCC obtains an indirect mobile code having a field indicating a length of the routing prefix in the indirect mobile code (block  1001 ) and transmits the indirect mobile code to a code clearing house (block  1003 ). The MCC then receives data associated with the indirect mobile code from the code clearing house (block  1005 ). 
       FIG. 11  illustrates a method  1100  of operating a code clearing house or CCH according to an embodiment of the disclosure. The method  1100  illustrated in  FIG. 11  is for illustration only. Other embodiments of the method  1100  could be used without departing from the scope of this disclosure. 
     As shown in  FIG. 11 , a CCH receives from a mobile code client an indirect mobile code having a length field indicating a length of the routing prefix in the indirect mobile code (block  1101 ). In an alternative embodiment, the length field indicates a length of the identification code in the indirect mobile code at block  1101 . The CCH determines the routing prefix in the indirect mobile code using the length field (block  1103 ). The CCH associates the routing prefix with a code resolution server (block  1105 ), and transmits the identification code in the indirect mobile code to the code resolution server associated with the routing prefix (block  1107 ). The CCH then receives data associated with the identification code from the code resolution server (block  1109 ), and transmits the data to the mobile code client (block  1111 ). 
     Although the present disclosure has been described with an exemplary embodiment, various changes and modifications may be suggested to one skilled in the art. It is intended that the present disclosure encompass such changes and modifications as fall within the scope of the appended claims.