|Publication number||US20050010694 A1|
|Application number||US 10/910,002|
|Publication date||Jan 13, 2005|
|Filing date||Aug 2, 2004|
|Priority date||Dec 8, 2000|
|Also published as||US6976075, US20020073234|
|Publication number||10910002, 910002, US 2005/0010694 A1, US 2005/010694 A1, US 20050010694 A1, US 20050010694A1, US 2005010694 A1, US 2005010694A1, US-A1-20050010694, US-A1-2005010694, US2005/0010694A1, US2005/010694A1, US20050010694 A1, US20050010694A1, US2005010694 A1, US2005010694A1|
|Inventors||David Ma, Jing Lu|
|Original Assignee||Clarinet Systems, Inc.|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (7), Referenced by (98), Classifications (26), Legal Events (1)|
|External Links: USPTO, USPTO Assignment, Espacenet|
This is a continuation in part of co-pending and commonly assigned U.S. patent application Ser. No. 09/733,312, entitled Method and Apparatus for Facilitating Communication between a Personal Data Assistant and a Computer, filed Dec. 8, 2000; and a continuation in part of co-pending and commonly assigned U.S. patent application Ser. No. 09/772,451, entitled Method and Apparatus for Facilitating Communication Between a Wireless Device and Disparate Devices or Systems, filed Jan. 29, 2001.
The invention relates generally to communication with a portable cellular telephone (cell phone) and, more particularly, to a method and interface for communicating data such as digital photography data between a cellular phone and a computer.
A wireless device such as a cell phone is generally a portable device configured to store data and perform basic functions for a user to make telephone calls, as well as view, receive, transmit, store and consume data. Different types of cell phones are well known in the consumer electronics industry and are currently in widespread use. Conventional popular devices include functions such as downloading information from the Internet via the cellular network, where the cellular network makes a contact with an Internet website, then downloads website information to the cell phone via the cellular network, rather then allowing the cell phone to contact the Internet directly. Modern cellular telephones may be configured much like personal data assistants (PDAs), providing any or all of the conventional functions of PDAs. These cell phones may offer internal software applications such as an address book for keeping names and addresses, a calendar for keeping schedules and important dates, a notebook for keeping notes, an Internet application for accessing the Internet to send and receive E-mail and other services, specialized applications for communicating with computer servers over a cellular network and other applications.
In another example, a cellular telephone may be used to download or upload information, such as photos or text messages. In operation, a user can connect with the cellular network to send photos and messages. Once a photo is created, it can be sent to other users via the cellular network. The cellular provider for the phone typically charges for each upload, particularly for photos, and involves connection with a cellular network that can be slow, cumbersome and expensive. Therefore, a user needs to connect to the cellular network in order to upload text or photos.
Using a conventional system, the cell phone application would typically open up a communication link to a cellular network by sending a signal via the cellular network to which the user subscribes. To send information to a disparate system, it would need to sent information to the cellular network by specifying the destination computer's Internet Protocol (IP) address or other identification. Requiring the cell phone user or the cell phone itself to know the destination computer's IP address is burdensome on the cell phone and, more importantly, requires the cell phone to either contain a large amount of IP addresses or to be reconfigured for every destination to which the user of the cell phone wishes to communicate.
Therefore, it would be useful to develop a device and method for more efficiently transferring data between a cell phone and a computer server that is less burdensome on the digital memory storage and the data processor of the cell phone. This would also enable a cellular phone to upload data, such as photos and other data, without needing to access the Internet, avoiding the dependence on the cellular network support in order to operate the function. As will be seen, the invention provides such a device and method that accomplishes these goals in an elegant manner.
The invention is directed to a system and method for transmitting digital photography data signals from a wireless device, such as a cellular phone, to a computing device, without the need for any cellular telephone network, bypassing the cumbersome and expensive use of the cellular telephone network in uploading digital photos. The system includes an interface configured to receive the data packet having one header format and transmitted from the computer server, convert the associated header from the second header format to the first header format and then transmit the data packet having the reformatted header to the cell phone. The use of such a communication interface reduces the amount of overhead data required to send photo data to and from the cell phone, and obviates the use of the cellular network. The invention may be extended to include the execution of other complex operations for the cell phone for which the cell phone may not have the memory or processing capacity. The invention is applicable to all types of cell phones, including cellular telephones configured as cell phones and many other types of devices.
The invention provides communication interface for enabling communicating between a portable cellular telephone (cell phone) and a device connected to a network such as computer server. Typical communication between the cell phone and other devices is not interactive, but rather relatively simple downloads and uploads of data packets. Therefore, according to the invention, complex header protocols required for universal communication with other devices, including devices that communicate via the Internet, are not necessary. To this end, a communication interface is provided for performing the complex header protocols for the cell phone, with the communication interface acting as an interface between the cell phone and other conventional devices. The communication interface may have an IP address associated with the cell phone so that it may send and receive transmissions of data on its behalf. This way, any device connected to the Internet can send the cell phone data. The interface may then intercept such data transmissions and process them according to the invention. Thus, the cell phone may operate entirely transparent to the devices that transmit data packets to it.
Additionally, the use of a simplified header format for transferring and receiving data packets and a system that can communicate using the simplified format is provided. The simplified header may simply have basic information pertaining to the data being sent, such as size, sequence of data if transferred among a number of packets, destination address, identification of the communication interface, or different combinations and permutations of such information. A packet may be sent with simply a destination address and accompanying data. In using the simplified format, less memory capacity is required of the cell phone as well as less processing capacity to prepare and send the data packets. The interface may be configured to communicate with cell phone by receiving data from the cell phone and sending data to the cell phone under a simplified header format, the simplified format being simplified relative to conventional TCP/IP/PPP header format. The interface may include a storage device for storing data and a wireless data transceiver for receiving data packets from and transmitting data packets to the cell phone, where the data packets are configured under the simplified format. Accordingly, the cell phone may include a similar transceiver configured to receive data packets from and transmit data packets to the interface.
According to the invention, the interface may also be configured to communicate with a device connected to a network, such as a computer server, that is configured to send, receive and process data formatted under a second header format that may be different than the simplified format. The interface may act as a central header translator that is configured to receive digital data to and from the cell phone configured under a first header format, then translate the first header format to a second header format. The interface may then send the data configured under a second header format to the computer server. In operation, the device may receive the data transmitted to it by the cell phone and convert it from the first header format to the second header format. The device may then transmit the reformatted data packet to the computer server for processing. The device may then receive the processed data transmitted from the computer server, convert the data packet back to the first header format, then transmit the again reformatted data packet back to the cell phone.
In one embodiment, the invention is employed for use with a communication interface for communication between a wireless mobile phone and the communication interface, the communication interface being configured to communicate with other devices communicating with a network such as the Internet and configured to facilitate data communication between the mobile phone and other devices connected to the network, a computer readable medium having stored thereon a plurality of sequences of instructions. The sequences of instructions include instructions that, when executed by a processor, cause said processor to perform the steps of receiving a data packet from a mobile phone having digital photograph data and a header configured under a first format with the communication interface, re-configuring the received data packet under a second format with the communication interface, and transmitting the re-configured data packet to a destination device. The processor may further perform the steps of receiving a packet of photograph related data from the mobile phone and storing the data received from the mobile phone, then forwarding the data to a website server to enable the publication of the photographs on a website. This may be done as an attachment to an email to enable the publication of the photographs on a website. The process may further include forwarding the data to a website server to enable the photographic data to be emailed to an email address. Alternatively, the process may further include forwarding the data to a website server to be sent to another wireless device. Additionally, the process may further include forwarding the data to a website server to be sent to a cell phone. The process may further include forwarding the data to a website server to be sent to a cell phone via a multimedia messaging service, or forwarding the data to a website server to be sent to a cell phone via an email message. The process may further include a communication interface configured to receive infrared signals from a cellular phone configured to transmit data packets, wherein the step of receiving the data packet further includes receiving a data packet having digital photographic data. In either embodiment, the step of receiving the data packet further includes receiving a data packet having a header configured under the Bluetooth protocol.
In another embodiment, the invention is intended for use in a communication interface for communication between a wireless mobile telephone and a communication interface, a computer readable medium having stored thereon a plurality of sequences of instructions, said sequences of instructions including instructions that, when executed by a processor, cause said processor to perform the steps of establishing a communication link with the mobile phone by receiving a data packet from the mobile phone having a command, retrieving commands from the data packet and performing a photo download operation according to the commands from the mobile phone. In this embodiment, the process may further include the steps of requiring a login before performing a photo download operation according to the commands from the mobile phone, wherein the login operation is performed by beaming an infrared signal to an interface or by other means. The login operation may be performed according to a Bluetooth protocol, by way of a magnetic identification card, by way of a bar code identification reading, by way of a radio frequency identification protocol. The step of receiving the data packet further includes receiving a data packet having a header containing data information including whether to upload data from or download data to the mobile phone. The step of receiving the data packet may further include receiving a data packet having a header containing data information including whether to upload data from or download data to the mobile phone, the method further may include storing a response to the command in a storage location. The step of receiving the data packet may further include receiving a data packet having a header containing data information including whether to upload data from or download data to the mobile phone, and may include storing a response to the command in a storage location, receiving another data packet from the mobile phone having a command indicating a download operation and downloading the stored response to the mobile phone.
Many other devices and methods are possible in light of the disclosure below, where the invention is defined by the appended claims and any equivalents.
In one embodiment, the signal transmitter, separate and distinct from the telephone antenna, is configured to send a signal to the interface 116, where the signal transmits data that electronically defines a photograph. Utilizing the innovative signal transmitter, a user can beam a signal to a communication interface.
The cell phone may be configured to communicate via a signal 112 with a similar transceiver connected to an antenna or signal beamer 114, which is/are connected to communication interface 116. The interface transceiver may be configured to operate in the same manner as the cell phone's transceiver. One purpose of the communication device is to provide a mechanism for enabling efficient and improved communication between the cell phone and another device. This is accomplished by reducing the amount of data sent by and received from the cell phone as well as the computations required for such data transactions in the normal use and operation of the cell phone. The communication interface may include a header processor 118 that is configured to manage header information that is transmitted between the cell phone and the communication interface. One way that it may accomplish this is by reducing the amount of header data that is typically transferred to the cell phone by reformatting and simplifying the conventional TCP/IP/PPP header to a smaller, efficient and more manageable header. This obviates the cell phone's need to process and store the conventional header. The communication interface may also be configured to receive data that is transferred from the cell phone in this simplified format, reducing the amount of header data transmitted by the cell phone. As a result, this also reduces the amount of processing required by the cell phone to transmit such data, such as the processing that is typically required to transmit data using conventional headers. This is described in more detail below. The common format for conventional data communications with cell phones is the TCP/IP/PPP protocol. When communicating between a cell phone and a computer, the TCP/IP/PPP protocol is typically used. When communicating between a computer and other conventional devices, a TCP/IP is typically be used. Other standard data formats configured for universal communication may be used, but would not depart from the spirit and scope of the invention. This conversion may involve the conventional communication operations discussed above. One of the advantages of the invention over the prior art, however, is that these operations can be performed by a communication interface rather than the cell phone, relieving it of this burden.
Still referring to
In operation, the cell phone 102 may process data, convert the data into a signal 112 and transmit the signal to the communication device 116. The data is sent in separate packets, which may be of uniform or varying size. These packets may include a header having a predetermined format that is a specialized format configured to optimize the data transfer. The communication device may then convert the header format of the received data to a conventional TCP/IP header. This allows the data to be transferred along conventional channels, such as the network 122, to conventional devices, such as computer 126. The computer can then process the data and then return it along the reverse path back to the cell phone.
This system optimizes the operation of the cell phone in several steps. One step is the transfer of data from the cell phone to the communication interface. As discussed in the background, conventional devices communicate using the conventional protocol, which requires a large amount of processing prior to transmitting data. This processing also generates more data that must be transmitted along with the large header as well as the actual data. The communication interface takes this burden off of the cell phone by converting the simplified header to a formal conventional TCP/IP or other header. The data can then be processed or sent to other devices in remote locations, such as the computer 126. At this location, the computer is able to perform complex operations on the data that may be overly burdensome for the cell phone. For example, a user of a cell phone may want financial projections on a transaction. The user could send the basic information to the computer via the communication interface. The computer, having extensive processing power, could perform the complex operations and then transmit the result data back to the cell phone via the communication interface for use by the cell phone's user. According to the invention, these new features provided by the system effectively give virtually limitless remote processing power to the cell phone, and actually reduce the processing and data storage burden on the cell phone at the same time.
In order to understand the operation of the invention, it is useful to understand the components in more detail. Referring first to
The cell phone may include a main memory 204 having software code and data stored therein. The software code may be executed by the CPU 202, and may govern the operations and functions of the cell phone. The cell phone may also include cache memory 206 for storing data frequently used by the CPU. In some applications, the cell phone may be configured to store software from the main memory into the cache memory in order to give the CPU easier access to the data for execution. Graphical user interface code 210 may be executed by the CPU to control the cell phone's display 104 (
The processing code may include header processing code 216 configured to change headers among different formats according to the invention. As discussed above, the invention provides a method and apparatus for optimized transmission of data between the cell phone and a communication interface. The cell phone simply sends data packets having reduced headers in order to reduce the computation needed to prepare and send the data. The data is simply sent with minimal information. The header information may include the IP addresses of the cell phone and the destination device for identifying the source and destination of the information. The header may also include the file name, the file size, the sequence of the data packet in relation to other data that has been sent, and other information related to the data, of different combinations and permutations of such information. Of course, the packet may also include the data itself, which may be referred to as payload data.
The header accompanying data within a packet may be configured according to a standard protocol such as the IrDA Object Exchange Standard, or IrOBEX, developed by the Infrared Data Association™, a copy of which is attached. The invention, however, is not limited this protocol, but extends to other configurations that allow a data packet to be configured with limited header information. Such a data packet may include the minimal amount of information that is required to transmit data from the cell phone to the communication interface, such as the name of the file being transferred and the beginning and end of the data. Importantly though, according to the invention, the header used for transmission between the communications interface and the cell phone is much more simple than complicated header information such as that required under the TCP/IP/PPP protocol data, which is commonly used in conventional data transmission applications. This simplified header saves much computation in the transmission of data from the cell phone.
For example, in the data transmission operation between the cell phone and the communication interface, a first packet may be sent that identifies the name and size of the data file to be transferred. A second packet may then be sent having a header that identifies what part of the whole file is being transferred and the size of the particular portion being transmitted within the second packet, specifying the beginning and the end of the portion being transferred. However many packets that are needed to transfer the data are transmitted until the entire file has been completely transferred. The final packet may then specify the end of the file, indicating that the entire packet has been transferred to the destination. The transmission of data in this manner may be done in both directions, from the cell phone to the communications interface as well as from the communications interface to the cell phone. In either case, the transmission of data is greatly simplified in order to lighten the processing load on the cell phone. This method also reduces the amount of storage space is needed in the cell phone and greatly reduces the transmission time of data transmissions. This also relieves the cell phone from having to keep a TCP/IP/PPP protocol stack in its memory.
Still referring to
The interface includes a main memory 304 for providing main storage of data and software code required for the operation of the interface. Transmit code 314 may be included to allow the interface to perform transmit and receive functions when the code is executed by the CPU. According to the invention, the code can be designed to configure the interface to sent and transmit data having a simplified header, without any TCP/IP/PPP headers, with similarly configured cell phones.
The interface may also include processing code 316, which, according to the invention, configures the CPU to perform data processing and instruction execution when the CPU executes the code. The code may include header processing code 318. The processing code includes executable software code for performing the header format configurations. These configurations may be used in facilitating communication between the cell phone and the computer. Header format code 320 is configured to process headers of data packets by configuring them with the proper format according to the intended destination of the data packet.
For example, a data packet originating from the cell phone and destined for the computer may have a simplified header as discussed above. The CPU may reconfigure this data packet when it executes the cell phone format code 322. This code would allow the CPU to separate the data from the header so that it can be reconfigured. The translation and configuration format code 326 may then translate the header information pertaining to the data transmission from the simplified format to TCP/IP format. The reconfigured data packet can then be retransmitted to the computer using the transmit and receive code 314. If communicating with another cell phone, the communication interface may retransmit a data packet with a simple header to another cell phone. Or, if the packet is destined for other cell phones that are not so configured, it may transmit data using a TCP/IP/PPP header. This would make the communication device universally compatible with multiple communication devices.
Similarly, a data packet originating from a computer 126 and destined for the cell phone 102 may have a header configured in the TCP/IP format. The TCP/IP code 324, when executed by the CPU, would allow the header to be separated from the data. The header can then be reformatted from the TCP/IP header format to the simplified format by executing the translation and configuration format code 326 with the CPU. The newly configured data packet can then be transmitted to the cell phone whey the CPU executes the transmit and receive code 314.
The computer, 126, may be any type of data processing device such as a personal computer, wireless data communication device, or any other device that communicates by sending data packets configured with headers having TCP/IP format. According to the invention, a cell phone is able to communicate with such computers via the communication interface without having to deal with TCP/IP and TCP/IP/PPP header format operations. Referring to
In an alternative embodiment of the invention, the computer may include the functions of the communication interface 116. The computer would then include substantially all of the processing code 316 and transmit and receive code 314,
The computer may further include data processing code 414 that includes code that configures the CPU to perform data processing tasks. The code includes parsing code 416. The parsing code may cause the header to be parsed out from a data packet when the CPU executes the TCP/IP header code 418. Data may also be parsed out from a data packet by executing the data parsing code 420 with the CPU. Once the data is separated from the header, the computer may store the data in data storage 426 and process the data by executing the application data processing code of application code 422.
The application code may be code configured under any one of a number of applications wherein data may be used, processed or otherwise consumed. These applications may be used as remote operations to the cell phone, giving it extra processing power that can be performed by the computer. For example, the user of a cell phone may wish to attach and send a document or other large data attachment to an email for transmission via the Internet. The cell phone being limited in size and, consequently, limited in memory and data processing capacity, it would be a large burden for it to have the document stored and processed in the cell phone. According to the invention, in response to a request sent from the cell phone, a document stored on the computer is capable of being attached to an email and transmitted to an email recipient. The capacity of the computer may be utilized in numerous ways to offer expanded memory and processing capacity to the cell phone remotely. This capacity may also be provided to the cell phone by the communication interface 116. The interface may be equipped in the same manner as the computer as described herein to provide remote processing and data storage functions.
The computer may also include a database 428 containing data for use by the computer 126. According to the invention, the cell phone may be able to access the database attached to the computer by sending data packets containing instructions to do so. Using this technique, the cell phone is able to perform processing and transmission of data that would normally be burdensome to the cell phone performing these tasks by itself.
In operation, the presence of the communication interface allows the cell phone to greatly simplify data transmission as well as computations that are regularly performed by the cell phone in normal use. According to the invention, the communication interface also greatly expands the cell phone's capabilities without requiring any improvements in processing capacity or data storage capacity. Referring to
In practice, an implementation of one embodiment of the invention included a cell phone sending data using an OBEX formatted header, a header format that is much more simple than the TCP/IP/PPP protocol, to a communication interface. The implementation was tested, resulting in a data transfer of 5.5 kilobytes per second. This is an almost 300% improvement of an equivalent data transfer using TCP/IP/PPP headers in the data packets transmitted from and sent to the cell phone. This result is an example of the utility of the invention in practical use.
In another embodiment, the invention provides a useful device and method to use a hand held wireless device, such as a cellular phone, to upload and download photographic information without needing to access the cellular telephone network. In many conventional mobile devices, cellular phones, cell phones and other devices, the web browser used to access the Internet typically uses HTTP protocol to access the Internet. Conventional IR and/or Bluetooth equipped cell phone or cell phone support the OBEX protocol. The invention defines algorithms for mobile devices to access the Internet using the OBEX protocol instead of the cellular network to upload such data and information from a wireless device and download to a device.
In one conventional application, photographic information can be uploaded and downloaded from a cellular telephone via the cellular network, and the pictures can be transmitted via the cellular network for a charge. Utilizing the invention, any cellular network can be bypassed, and photos can be uploaded via a network, such as the Internet, and can be utilized in many ways.
In one embodiment, photos can be uploaded to an interface that forwards photo information to a web server configured to share photos with friends, make prints and allow others to log on to a web browser to view the photos. A user may also send photos to a particular server, either a personal home or business system, or a commercial system that provides services, such as www.yahoo.com™.
In another embodiment, a user can send photos to others via an email. Receiving parties can view the photo from a file attachment to an email, from a network address or website via a link, or by other methods. Utilizing the invention, these and other features may be performed without the need for the cellular phone network.
In yet another embodiment, a user can send photos from Internet to a phone or phones using a multimedia messaging service. Utilizing the invention, the user (sender) bypasses cell network to upload photos. Although the Internet server has to use multimedia messaging service through cell network to reach the receiver's cell phone, the Internet server is likely to receive volume discount since it is a mass cell network user.
In operation, a user contacts a website in Step 702 and registers in at the website in step 704. A service provider may have a web server on the Internet for people to register information such as:
After user makes the uploading selection, the user can start beaming photos (using either IR or Bluetooth and OBEX PUT protocol) to the kiosk access point. Referring to
The kiosk access point translates the “OBEX PUT” to a number of HTTP POST commands to either our web server or the photo upload server (www.ofoto.com for example). The HTTP POST commands contains enough info about the user (account name and password and more) to access either our web server or the photo upload server (www.ofoto.com for example). The underlying code in the kiosk is configured to perform the following steps:
As a further background, HTTP is the protocol used by a client (web browser for example) to access the resources of a remote server. It uses URL, the name or IP address of the remote machine and a file name to identify the resource. As an example, the syntax of a URL can be:
As still further background, all of the IR and Bluetooth enabled cell phones support IrOBEX, which is a protocol developed by IrDA (www.irda.org) and later adopted by Bluetooth. The design of the protocol is to enable easy object exchange between two IR or Bluetooth devices, where the object could be a business card, calendar and so on. The IrMC specification defines a group of objects that are supported using the OBEX protocol, vCard for business card and vCalendar for calendar for example.
OBEX defines a number of commands. Among them, the PUT command is to send an object to another OBEX enabled device. Another command, GET, is to instruct the other device to retrieve an object from its local storage and send it back. For the object of the PUT command, it is a file of the local storage (file system or memory). For the object of the GET command, it is a file of the other devices local storage. For example, a client issues an OBEX PUT command with file name my_card.vcf means the client is sending a vCard file my_card.cvf to another device. Another example, a client issues an OBEX GET command with file name your_card.cvf means it is telling the other device to send a file called “your_card.cvf” to the client.
In one embodiment, the invention provides a method for employing an algorithm generally as follows: OBEX PUT→HTTP PUT or HTTP POST. This algorithm defines how to map OBEX PUT command to either HTTP PUT or HTTP POST. A client issues an OBEX PUT command and the algorithm translates it to either HTTP PUT or HTTP POST. The client is usually a mobile device, cell phone, cell phone and so on. The execution of the algorithm resides in an IR or Bluetooth access point. The mobile device communicates with the access point by either IR or Bluetooth using the OBEX protocol. The access point communicates with a web server on the Internet using HTTP protocol. The name header of the OBEX PUT command could be a URL such as http://www.abcd.com/cards/my_card.cvf.
If the client is issuing an OBEX PUT and wishes to do a HTTP PUT, a straight mapping is used. The file name that accompanies the OBEX PUT command will be used in the HTTP PUT request. For example, the client issues “OBEX PUT my_card.cvf” the algorithm translates it to “HTTP PUT my_card.cvf”.
OBEX Operation: OBEX PUT OBEX Name Header: http://www.abcd.com/cards/my_card.cvf OBEX body: none
Will be translated into
HTTP Method: HTTP PUT HTTP URL String: http://www.abcd.com/cards/my_card.cvf HTTP payload: none
If the client issuing an OBEX PUT and wishes to do a HTTP POST, the algorithm specifies that the client should put a special character in front of the URL string, a # sign, for example. This special character, # sign, is not limited to one character and can either be inserted in the front of the URL string or attached at the end of the string. The main purpose of this is not to disturb the original URL string and be able to let the OBEX Server to distinguish the difference from a standard URL string. The file name is usually a program on the web server that the client wishes to execute. For example, if the URL is www.abcd.com/demo/login.asp, it means the client wishes to log into the application server and the server executes the program login.asp. In this example, the client issues an OBEX PUT command and the name header contains “#http://www.abcd.com/login.asp”; the body of the object is “name=john&password=letmein”.
OBEX Operation: OBEX PUT OBEX Name Header: #http://www.abcd.com/login.asp OBEX Body: name=john&password=letmein
Will be translated into
HTTP Method: HTTP POST HTTP URL String: http://www.abcd.com/login.asp HTTP Payload: name=john&password=letmein
According to the invention, another algorithm is used for response handling. HTTP methods can generate a response sent to the requesting client. The issuer (client) of the HTTP method receives the response from the server indicating either success or failure or data the client intended to get. For example, the response of the “HTTP GET a_song.mp3” command is “MP3” music. If HTTP POST is used, the client is expecting response back from the server. Unlike HTTP, there is no way for OBEX PUT command issuer to receive the response from the server since OBEX PUT sends data only.
According to the invention, an algorithm specifies how to receive the response from HTTP server using OBEX. In order to receive the HTTP response from the server, the client issuing the OBEX POST command is required to issue an “OBEX GET RESPONSE” command, where RESPONSE is the file name to get, all capital letters, to the access point. Upon receiving the “OBEX GET RESPONSE” command the access point sends the response from HTTP server to the client.
OBEX Operation: OBEX PUT OBEX Name Header: #http://www.abcd.com/login.asp OBEX Body: name=john&password=letmein
Will be translated into
HTTP Method: HTTP POST HTTP URL String: http://www.abcd.com/login.asp HTTP Payload: name=john&password=letmein
And, the response from the web server can be retrieved by the mobile device using OBEX GET RESPONSE:
OBEX Operation: OBEX GET OBEX Name Header: RESPONSE OBEX Body: none
OBEX Operation: OBEX GET OBEX Name Header: cfs://get/response OBEX Body: none
In this example, the file login.asp is the script on the application server authenticating users. The web server receiving the HTTP POST command verifies the user name and password and sends the account information back. The account information is stored in the access point temporarily. The client issues the following OBEX GET command to the access point and thus receiving the account information:
For example, scheme, host and path could be
Scheme http, https, ftp, smtp, . . . Host www.yahoo.com; www.abc.com; www.cnn.com; . . . Path Directory_1/directory_2/directory_3/ . . . /login.asp
The combined length of scheme+host+path could be very long. The problem is that it may be difficult for some mobile devices to support the long URL string. This is because a URL uses a large amount of space for use in the name header to be transmitted in an OBEX command. And, another problem is that the URL could change over time. For example, if for some reason the web server decides to move the login.asp in the above example to somewhere else, the client application in the mobile device needs to be notified the change. Otherwise, the client application will not be able to login once login.asp is moved.
According to one embodiment, the algorithm defines an application ID, a special character, such as the ! sign, a # sign, or any particular character that is not used in the <user>:<password>@<host>:<port>, followed by a number of characters, six numbers for example, that maps to a specific URL. In the example of mobile device and access point, the mapping is stored in the access point. Upon seeing the ! sign followed by a known 6 characters, the access point translates it into an URL. For example, let's say “ABCD35” is a known application ID to the access point and the corresponding URL is “www.abcd.com/dir—1/dir—2”. When mobile device sends an OBEX PUT command with file name “http://!ABCD35/login.asp”, the access point will then translate it into a HTTP PUT request: http://www.abcd.com/dir—1/dir—2/login.asp.
Referring again back to
The invention may include the utilization of dedicated processors, webservers configured to receive and route browser requests, application servers, state servers and other types of computer processors. These devices may be configured to communicate amongst each other and may be connected to one or more networks, including a Local Area Network (LAN), an intranet and the Internet. These networks may also include the use of wireless as well as wire line connections in order to communicate. However, it will be appreciated by those skilled in the art that such implementations of devices and systems are but few illustrations of the utility of the invention, and that the invention may have greater applicability and utility in many other applications where efficient routing and processing of data within one or more networks is involved. Equivalent structures embodying the invention could be configured for such applications without diverting from the spirit and scope of the invention. Although the embodiments described and illustrated herein are in the context of devices and systems for exchanging data among users of a computer system or network and users of cell phones, the invention extends to other applications where similar features are useful. The invention may include personal computers, application servers, state servers or Internet webservers that are designed and implemented on a computer and may be connected to a network for communication with other computers to practice the invention. A system configured to operate according to the invention may include a plurality of personal computers and cell phones connected to the Internet via individual modems or other communication means such as wireless communications.
The invention may also involve a number of functions to be performed by a computer processor, such as a microprocessor. The microprocessor may be a specialized or dedicated microprocessor that is configured to perform particular tasks by executing machine-readable software code that defines the particular tasks. The microprocessor may also be configured to operate and communicate with other devices such as direct memory access modules, memory storage devices, Internet related hardware, and other devices that relate to the transmission of data in accordance with the invention. In devices such as cell phones, it is important that processors are physically small enough to help keep the cell phone itself small, yet powerful enough to be able to perform the tasks required to make the cell phone useful for sending, receiving and using data. It is these goals that a device embodying the invention may achieve.
The software code utilized in the cell phones and other devices utilizing the invention may be configured using software formats such as Java, C++, XML (Extensible Mark-up Language) and other languages that may be used to define functions that relate to operations of devices required to carry out the functional operations related to the invention. The code may be written in different forms and styles, many of which are known to those skilled in the art. Different code formats, code configurations, styles and forms of software programs and other means of configuring code to define the operations of a microprocessor in accordance with the invention will not depart from the spirit and scope of the invention, which is defined by the appended Claims.
Within the different types of devices, such as specialized computer servers and cell phones, that utilize the invention, there exist different types of memory devices for storing and retrieving information while performing functions according to the invention. Cache memory devices are often included in such computers for use by the central processing unit as a convenient storage location for information that is frequently stored and retrieved. Similarly, a persistent memory is also frequently used with such computers for maintaining information that is frequently retrieved by a central processing unit, but that is not often altered within the persistent memory, unlike the cache memory. Main memory is also usually included for storing and retrieving larger amounts of information such as data and software applications configured to perform functions according to the invention when executed by the central processing unit. These memory devices may be configured as random access memory (RAM), static random access memory (SRAM), dynamic random access memory (DRAM), flash memory, and other memory storage devices that may be accessed by a central processing unit to store and retrieve information. The invention is not limited to any particular type of memory device, nor any commonly used protocol for storing and retrieving information to and from these memory devices respectively. In devices such as cell phones, it is important that such memory devices are physically small enough to help keep the cell phone itself small, yet contain enough storage space required to make the cell phone useful for sending, receiving and using data. It is these goals that a device embodying the invention may achieve.
The invention is directed to a method and apparatus for efficiently exchanging data from a cellular telephone according to commands via a URL between a wireless device and a data interface configured to receive such data. The interface may be a conventional data processing device such as a computer server, and may include a means for sending data signals between a cellular telephone and such an interface, . In one embodiment, a communication interface is configured to exchange digital data configured with a first header format such as OBEX, and to translate commands configured in the OBEX protocol to commands configured according to the HTTP protocol. The communication interface is also configured to exchange digital data with remote devices via a network, such as the Internet. Although this embodiment is described and illustrated in the context of the use and operation of a cellular telephone or similar wireless device, the scope of the invention extends to other applications where convenient and efficient data transmission is desired. Furthermore, while the foregoing description has been with reference to particular embodiments of the invention, it will be appreciated that these are only illustrative of the invention and the changes may be made to those embodiments without departing from the principles of invention, the scope of which is defined by the appended Claims and any equivalents.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US6011962 *||May 7, 1997||Jan 4, 2000||Fuba Automotive Gmbh||Circuit for testing the function of mobile receiving installations|
|US6330244 *||Jan 16, 1998||Dec 11, 2001||Jerome Swartz||System for digital radio communication between a wireless lan and a PBX|
|US6662231 *||Jun 30, 2000||Dec 9, 2003||Sei Information Technology||Method and system for subscriber-based audio service over a communication network|
|US6728546 *||Aug 26, 1999||Apr 27, 2004||Legerity, Inc.||Computer peripheral base station for a cordless telephone|
|US6941376 *||Jun 28, 2001||Sep 6, 2005||American Express Travel Related Services Company, Inc.||System and method for integrating public and private data|
|US6947396 *||Dec 1, 2000||Sep 20, 2005||Nokia Mobile Phones Ltd.||Filtering of electronic information to be transferred to a terminal|
|US6968365 *||Nov 30, 2000||Nov 22, 2005||Telefonaktiebolaget L M Ericsson (Publ)||Device and a method for operating an electronic utility device from a portable telecommunication apparatus|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US7310520 *||Dec 30, 2002||Dec 18, 2007||Sk Teletech Co., Ltd.||File construction for mobile communication device including machine-language-code execution segment and file execution method using the same|
|US7796742||Apr 21, 2005||Sep 14, 2010||Seven Networks, Inc.||Systems and methods for simplified provisioning|
|US7813484 *||Mar 5, 2003||Oct 12, 2010||Telecommunication Systems, Inc.||All-HTTP multimedia messaging|
|US7865175 *||Dec 14, 2006||Jan 4, 2011||At&T Intellectual Property I, L.P.||Apparatus, system and method for forwarding data sent to a wireless device to another address|
|US7958270||Jun 9, 2006||Jun 7, 2011||Laurent Frederick Sidon||Distribution of files from mobile devices|
|US8010082||Oct 19, 2005||Aug 30, 2011||Seven Networks, Inc.||Flexible billing architecture|
|US8064583 *||Sep 21, 2006||Nov 22, 2011||Seven Networks, Inc.||Multiple data store authentication|
|US8069166||Feb 27, 2006||Nov 29, 2011||Seven Networks, Inc.||Managing user-to-user contact with inferred presence information|
|US8078158||Jun 26, 2008||Dec 13, 2011||Seven Networks, Inc.||Provisioning applications for a mobile device|
|US8107921||Jan 11, 2008||Jan 31, 2012||Seven Networks, Inc.||Mobile virtual network operator|
|US8116214||Nov 30, 2005||Feb 14, 2012||Seven Networks, Inc.||Provisioning of e-mail settings for a mobile terminal|
|US8127342||Sep 23, 2010||Feb 28, 2012||Seven Networks, Inc.||Secure end-to-end transport through intermediary nodes|
|US8166164||Oct 14, 2011||Apr 24, 2012||Seven Networks, Inc.||Application and network-based long poll request detection and cacheability assessment therefor|
|US8190701||Nov 1, 2011||May 29, 2012||Seven Networks, Inc.||Cache defeat detection and caching of content addressed by identifiers intended to defeat cache|
|US8204953||Nov 1, 2011||Jun 19, 2012||Seven Networks, Inc.||Distributed system for cache defeat detection and caching of content addressed by identifiers intended to defeat cache|
|US8209709||Jul 5, 2010||Jun 26, 2012||Seven Networks, Inc.||Cross-platform event engine|
|US8243890||Aug 16, 2010||Aug 14, 2012||Telecommunication Systems, Inc.||All-HTTP multimedia messaging|
|US8291076||Mar 5, 2012||Oct 16, 2012||Seven Networks, Inc.||Application and network-based long poll request detection and cacheability assessment therefor|
|US8316098||Nov 20, 2012||Seven Networks Inc.||Social caching for device resource sharing and management|
|US8326985||Nov 1, 2011||Dec 4, 2012||Seven Networks, Inc.||Distributed management of keep-alive message signaling for mobile network resource conservation and optimization|
|US8356080||Jan 15, 2013||Seven Networks, Inc.||System and method for a mobile device to use physical storage of another device for caching|
|US8364181||Dec 10, 2007||Jan 29, 2013||Seven Networks, Inc.||Electronic-mail filtering for mobile devices|
|US8412675||Feb 24, 2006||Apr 2, 2013||Seven Networks, Inc.||Context aware data presentation|
|US8417823||Nov 18, 2011||Apr 9, 2013||Seven Network, Inc.||Aligning data transfer to optimize connections established for transmission over a wireless network|
|US8438633||Dec 18, 2006||May 7, 2013||Seven Networks, Inc.||Flexible real-time inbox access|
|US8468126||Dec 14, 2005||Jun 18, 2013||Seven Networks, Inc.||Publishing data in an information community|
|US8484314||Oct 14, 2011||Jul 9, 2013||Seven Networks, Inc.||Distributed caching in a wireless network of content delivered for a mobile application over a long-held request|
|US8494510||Dec 6, 2011||Jul 23, 2013||Seven Networks, Inc.||Provisioning applications for a mobile device|
|US8539040||Feb 28, 2012||Sep 17, 2013||Seven Networks, Inc.||Mobile network background traffic data management with optimized polling intervals|
|US8549587||Feb 14, 2012||Oct 1, 2013||Seven Networks, Inc.||Secure end-to-end transport through intermediary nodes|
|US8561086||May 17, 2012||Oct 15, 2013||Seven Networks, Inc.||System and method for executing commands that are non-native to the native environment of a mobile device|
|US8583083||Jan 4, 2011||Nov 12, 2013||At&T Intellectual Property I, L.P.||Apparatus, system and method for forwarding data sent to a wireless device to another address|
|US8621075||Apr 27, 2012||Dec 31, 2013||Seven Metworks, Inc.||Detecting and preserving state for satisfying application requests in a distributed proxy and cache system|
|US8635339||Aug 22, 2012||Jan 21, 2014||Seven Networks, Inc.||Cache state management on a mobile device to preserve user experience|
|US8682289||Feb 14, 2012||Mar 25, 2014||Telecommunication Systems, Inc.||Prepaid short message services revenue capture|
|US8693494||Mar 31, 2008||Apr 8, 2014||Seven Networks, Inc.||Polling|
|US8700728||May 17, 2012||Apr 15, 2014||Seven Networks, Inc.||Cache defeat detection and caching of content addressed by identifiers intended to defeat cache|
|US8738050||Jan 7, 2013||May 27, 2014||Seven Networks, Inc.||Electronic-mail filtering for mobile devices|
|US8750123||Jul 31, 2013||Jun 10, 2014||Seven Networks, Inc.||Mobile device equipped with mobile network congestion recognition to make intelligent decisions regarding connecting to an operator network|
|US8761756||Sep 13, 2012||Jun 24, 2014||Seven Networks International Oy||Maintaining an IP connection in a mobile network|
|US8774844||Apr 8, 2011||Jul 8, 2014||Seven Networks, Inc.||Integrated messaging|
|US8775631||Feb 25, 2013||Jul 8, 2014||Seven Networks, Inc.||Dynamic bandwidth adjustment for browsing or streaming activity in a wireless network based on prediction of user behavior when interacting with mobile applications|
|US8782222||Sep 5, 2012||Jul 15, 2014||Seven Networks||Timing of keep-alive messages used in a system for mobile network resource conservation and optimization|
|US8787947||Jun 18, 2008||Jul 22, 2014||Seven Networks, Inc.||Application discovery on mobile devices|
|US8793305||Dec 13, 2007||Jul 29, 2014||Seven Networks, Inc.||Content delivery to a mobile device from a content service|
|US8799410||Apr 13, 2011||Aug 5, 2014||Seven Networks, Inc.||System and method of a relay server for managing communications and notification between a mobile device and a web access server|
|US8805334||Sep 5, 2008||Aug 12, 2014||Seven Networks, Inc.||Maintaining mobile terminal information for secure communications|
|US8805425||Jan 28, 2009||Aug 12, 2014||Seven Networks, Inc.||Integrated messaging|
|US8811952||May 5, 2011||Aug 19, 2014||Seven Networks, Inc.||Mobile device power management in data synchronization over a mobile network with or without a trigger notification|
|US8812695||Apr 3, 2013||Aug 19, 2014||Seven Networks, Inc.||Method and system for management of a virtual network connection without heartbeat messages|
|US8818330||Sep 5, 2013||Aug 26, 2014||Telecommunication Systems, Inc.||Prepaid short message services revenue capture|
|US8831561||Apr 28, 2011||Sep 9, 2014||Seven Networks, Inc||System and method for tracking billing events in a mobile wireless network for a network operator|
|US8832228||Apr 26, 2012||Sep 9, 2014||Seven Networks, Inc.||System and method for making requests on behalf of a mobile device based on atomic processes for mobile network traffic relief|
|US8838744||Jan 28, 2009||Sep 16, 2014||Seven Networks, Inc.||Web-based access to data objects|
|US8838783||Jul 5, 2011||Sep 16, 2014||Seven Networks, Inc.||Distributed caching for resource and mobile network traffic management|
|US8839412||Sep 13, 2012||Sep 16, 2014||Seven Networks, Inc.||Flexible real-time inbox access|
|US8843153||Nov 1, 2011||Sep 23, 2014||Seven Networks, Inc.||Mobile traffic categorization and policy for network use optimization while preserving user experience|
|US8849902||Jun 24, 2011||Sep 30, 2014||Seven Networks, Inc.||System for providing policy based content service in a mobile network|
|US8861354||Dec 14, 2012||Oct 14, 2014||Seven Networks, Inc.||Hierarchies and categories for management and deployment of policies for distributed wireless traffic optimization|
|US8862657||Jan 25, 2008||Oct 14, 2014||Seven Networks, Inc.||Policy based content service|
|US8868753||Dec 6, 2012||Oct 21, 2014||Seven Networks, Inc.||System of redundantly clustered machines to provide failover mechanisms for mobile traffic management and network resource conservation|
|US8873411||Jan 12, 2012||Oct 28, 2014||Seven Networks, Inc.||Provisioning of e-mail settings for a mobile terminal|
|US8874761||Mar 15, 2013||Oct 28, 2014||Seven Networks, Inc.||Signaling optimization in a wireless network for traffic utilizing proprietary and non-proprietary protocols|
|US8886176||Jul 22, 2011||Nov 11, 2014||Seven Networks, Inc.||Mobile application traffic optimization|
|US8903954||Nov 22, 2011||Dec 2, 2014||Seven Networks, Inc.||Optimization of resource polling intervals to satisfy mobile device requests|
|US8909192||Aug 11, 2011||Dec 9, 2014||Seven Networks, Inc.||Mobile virtual network operator|
|US8909202||Jan 7, 2013||Dec 9, 2014||Seven Networks, Inc.||Detection and management of user interactions with foreground applications on a mobile device in distributed caching|
|US8909759||Oct 12, 2009||Dec 9, 2014||Seven Networks, Inc.||Bandwidth measurement|
|US8914002||Aug 11, 2011||Dec 16, 2014||Seven Networks, Inc.||System and method for providing a network service in a distributed fashion to a mobile device|
|US8918503||Aug 28, 2012||Dec 23, 2014||Seven Networks, Inc.||Optimization of mobile traffic directed to private networks and operator configurability thereof|
|US8966066||Oct 12, 2012||Feb 24, 2015||Seven Networks, Inc.||Application and network-based long poll request detection and cacheability assessment therefor|
|US8977755||Dec 6, 2012||Mar 10, 2015||Seven Networks, Inc.||Mobile device and method to utilize the failover mechanism for fault tolerance provided for mobile traffic management and network/device resource conservation|
|US8984581||Jul 11, 2012||Mar 17, 2015||Seven Networks, Inc.||Monitoring mobile application activities for malicious traffic on a mobile device|
|US8989728||Sep 7, 2006||Mar 24, 2015||Seven Networks, Inc.||Connection architecture for a mobile network|
|US9002828||Jan 2, 2009||Apr 7, 2015||Seven Networks, Inc.||Predictive content delivery|
|US9009250||Dec 7, 2012||Apr 14, 2015||Seven Networks, Inc.||Flexible and dynamic integration schemas of a traffic management system with various network operators for network traffic alleviation|
|US9021021||Dec 10, 2012||Apr 28, 2015||Seven Networks, Inc.||Mobile network reporting and usage analytics system and method aggregated using a distributed traffic optimization system|
|US9043433||May 25, 2011||May 26, 2015||Seven Networks, Inc.||Mobile network traffic coordination across multiple applications|
|US9043731||Mar 30, 2011||May 26, 2015||Seven Networks, Inc.||3D mobile user interface with configurable workspace management|
|US9047142||Dec 16, 2010||Jun 2, 2015||Seven Networks, Inc.||Intelligent rendering of information in a limited display environment|
|US9049179||Jan 20, 2012||Jun 2, 2015||Seven Networks, Inc.||Mobile network traffic coordination across multiple applications|
|US9055102||Aug 2, 2010||Jun 9, 2015||Seven Networks, Inc.||Location-based operations and messaging|
|US9060032||May 9, 2012||Jun 16, 2015||Seven Networks, Inc.||Selective data compression by a distributed traffic management system to reduce mobile data traffic and signaling traffic|
|US9065765||Oct 8, 2013||Jun 23, 2015||Seven Networks, Inc.||Proxy server associated with a mobile carrier for enhancing mobile traffic management in a mobile network|
|US9077630||Jul 8, 2011||Jul 7, 2015||Seven Networks, Inc.||Distributed implementation of dynamic wireless traffic policy|
|US9084105||Apr 19, 2012||Jul 14, 2015||Seven Networks, Inc.||Device resources sharing for network resource conservation|
|US9100873||Sep 14, 2012||Aug 4, 2015||Seven Networks, Inc.||Mobile network background traffic data management|
|US9131397||Jun 6, 2013||Sep 8, 2015||Seven Networks, Inc.||Managing cache to prevent overloading of a wireless network due to user activity|
|US20020142765 *||Mar 30, 2001||Oct 3, 2002||Rhoads Monte J.||Network appliance wireless configuration interface|
|US20050105561 *||Nov 12, 2004||May 19, 2005||Curitel Communications, Inc.||Apparatus and method for automatically running multimedia data received in mobile communication terminal|
|US20060047837 *||Jun 14, 2004||Mar 2, 2006||Jukka-Pekka Rissanen||Arrangement for informing application capabilities by an object exchange protocol|
|US20060084410 *||Oct 19, 2005||Apr 20, 2006||Jay Sutaria||Flexible billing architecture|
|US20070027920 *||Feb 24, 2006||Feb 1, 2007||Billy Alvarado||Context aware data presentation|
|US20070087729 *||Dec 14, 2006||Apr 19, 2007||Bellsouth Intellectual Property Corporation||Apparatus, system and method for forwarding data sent to a wireless device to another address|
|US20130290455 *||Jun 21, 2013||Oct 31, 2013||Research In Motion Limited||System and method for image inclusion in e-mail messages|
|US20140113592 *||Oct 17, 2013||Apr 24, 2014||Ching-Fang Wu||Process Method for System Login in Light-Operated Manner, Light-Operated Electronic Equipment and Mobile Electronic Device for Controlling Electronic Equipment with Light|
|US20150172931 *||Dec 18, 2013||Jun 18, 2015||Qualcomm Incorporated||Tcp enhancement with limited licensed channel usage for wireless networks|
|USRE45348||Mar 16, 2012||Jan 20, 2015||Seven Networks, Inc.||Method and apparatus for intercepting events in a communication system|
|U.S. Classification||709/250, 709/246|
|International Classification||H04L29/06, H04L12/56, H04L12/28|
|Cooperative Classification||H04L69/04, H04W4/18, H04W28/06, H04W88/02, H04N2201/0086, H04W80/00, H04N1/00106, H04N1/001, H04W12/06, H04N1/00307, H04W84/042, H04N1/00312, H04N2201/0024, H04N2201/0039, H04W76/02|
|European Classification||H04W12/06, H04N1/00C7F, H04W76/02, H04L29/06C5, H04N1/00B3, H04N1/00B4B|
|Aug 2, 2004||AS||Assignment|
Owner name: CLARINET SYSTEMS, INC., CALIFORNIA
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:MA, DAVID YIN-SHUR;LU, JING;REEL/FRAME:015663/0317
Effective date: 20040729