OA17174A - Method, system, and apparatus for exchanging data between client devices. - Google Patents

Method, system, and apparatus for exchanging data between client devices. Download PDF

Info

Publication number
OA17174A
OA17174A OA1201400493 OA17174A OA 17174 A OA17174 A OA 17174A OA 1201400493 OA1201400493 OA 1201400493 OA 17174 A OA17174 A OA 17174A
Authority
OA
OAPI
Prior art keywords
client device
data acquisition
search
acquisition request
data
Prior art date
Application number
OA1201400493
Inventor
Tieming Huang
Original Assignee
Tencent Technology (Shenzhen) Company Limited
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Tencent Technology (Shenzhen) Company Limited filed Critical Tencent Technology (Shenzhen) Company Limited
Publication of OA17174A publication Critical patent/OA17174A/en

Links

Abstract

Systems and methods for exchanging data between two client devices are disclosed. A method includes, at a computer system, obtaining, from a first client device, a first data acquisition request, wherein the first data acquisition request includes (i) a device identifier identifying a second client device distinct from the first client device, and (ii) a search parameter identifier; and identifying the second client device, from a plurality of client devices, in accordance with the device identifier. In some implementations, a method further includes, issuing a second data acquisition request to the second device, the second data acquisition request including the search parameter identifier; obtaining, from the second client device, a search parameter associated with the search parameter identifier; obtaining one or more search results associated with the search parameter; and providing at least one search result in the one or more search result to the first client device for display to a user of the first client device.

Description

METHOD. SYSTEM. AND APPARATUS FOR EXCHANGING DATA BETWEEN CLIENT DEVICES
RELATED APPLICATION
Thls application daims priority to Chinese Patent Application No. 201210204586.6, entitled •METHOD, SYSTEM, AND APPARATUS FOR EXCHANGING DATA BETWEEN CLIENT DEVICES,’ filed June 20, 2012, which Is incorporated by reference In its entirety.
TECHNICAL FIELD
The disclosed Implémentations relate generally to data exchange technologies, and In particular, to a method, System, and apparatus for exchanging data between client devices.
BACKGROUND
Conventionally two manners are adopted to transmit data from a wireless terminal (for example, a mobile phone) to a Personal computer (PC). In a first manner, a user connecte a PC to a wireless terminal using a data cable; and In a second manner, without using a data cable, a user first uploads data from the wireless terminal to a server and then acquîres the data by submitting a download request from a PC to the server.
In the first manner, a user needs to plug and unpiug a data cable each time, which Is inconvénient, and in the second manner, a user needs to initiate a process Including two requests to acquire data, which Is also cumbersome.
SUMMARY
Accordingly, It Is necessary to provide a method, System, and apparatus for exchanging data between client devlces, which can Implement data exchange between client devices in a simpler way.
Systems, methods, and non-transitory computer readable storage medium comprising instructions for exchanging data between two client devices are disclosed.
In some Implémentations, a method for exchanging data between two client devices, Indudes: at a computer System having a processor and memory for storing one or more programs to be executed by the processor, obtaining, from a first client devîce, a first data acquisition request, wherein lhe first data acquisition request Includes (I) a device identifier identifying a second client device distinct from the first client device, and (ii) a search parameter identifier identifying a search parameter, identifying the second client device, from a plurality of client devlces, lr> accordance with the device identifier, issuing a second data acquisition request to the second device, the second data acquisition request including the search parameter identifier, obtaining, from the second client device, a search parameter in accordance with the search parameter identifier, obtaining one or more search results in accordance with the search parameter; and provîding at least one search resuit in the one or more search resuit to the first client device for display to a user of the first client device.
In some implémentations, a computer System for exchangïng data between two client devices is 5 disclosed. In some implémentations, the computer System comprises one or more processors;
memory; and one or more programs. The one or more programs are stored in the memory and configured to be executed by the one or more processors. In some implémentations, the one or more programs include instructions for: obtaining, from a first client device, a first data acquisition request, wherein the first data acquisition request includes (i) a device identifier identifying a I0 second client device distinct from the first dient device, and (il) a search parameter identifier
Identifying a search parameter; identifying the second dient device, from a piurality of client devices, in accordance with the device identifier; issuîng a second data acquisition request to the second device, the second data acquisition request Including the search parameter Identifier; obtaining, from the second dient device, a search parameter in accordance with the search I5 parameter identifier; obtaining one or more search results in accordance with the search parameter; and providing at least one search resuit in the one or more search resuit to the first client device for display to a user of the first dient device.
In some implémentations, a non-transîtory computer readable storage medium storing Instructions for exchangïng data between two client devices is disclosed. In some Implémentations, on20 transitory computer readable storage medium stores one or more programs, the one or more programs comprising instructions, which when executed by a computer System with one or more processors, cause the computer System to: obtain, form a first dient device, a first data acquisition request, wherein the first data acquisition request Indudes (i) a device identifier identifying a second client device distinct from the first dient device, and (ii) a search parameter Identifier 25 identifying a search parameter; identify the second dient device, from a piurality of dient devices, in accordance with the device identifier, issue a second data acquisition request to the second device, the second data acquisition request including the search parameter identifier; obtain, from the second dient device, a search parameter in accordance with the search parameter identifier; obtain one or more search results in accordance with the search parameter; and providing at least one 30 search resuit In the one or more search resuit to the first dient device for display to a user of the first dient device.
Through the method, System, and apparatus for exchangïng data between client devices, a process that a user accesses data in a second client device with a first dient device is almost the same as a process that the user accesses data in the first client device, both requiring only one step of operation. Compared with the conventional data cable connection or upload and download, the operation process is simpler and use expérience is smoother. To make the foregoing and other objectives, features, and advantages of the présent application more compréhensible, exemplary implémentations are taken in the following with référencé to the accompanying drawings for 5 detailed description.
BRIEF DESCRIPTION OF DRAWINGS
The aforementioned implémentation of the invention as well as additionaf Implémentations will be more clearly understood as a resuit of the following detailed description of the various aspects of the invention when taken in conjunction with the drawings. Like référencé numerals refer to 10 corresponding parts throughout the several views of the drawings.
FIG 1 Is a flow chart of a method for exchanging data between client devices according to a first implémentation of the présent application;
FIG 2 Is another flow chart of the method for exchanging data between client devices according to the first implémentation of the présent application;
FIG 3 is a schematic diagram of a spécifie application example of the method for exchanging data between client devices according to the first implémentation of the présent application;
FIG 4 is a flow chart of a method for exchanging data between cirent devices according to a second implémentation of the présent application;
FIG 5 Is a flow chart of a method for exchanging data between client devices according to a third 20 Implémentation of the présent application;
FIG 6 is a structural block diagram of a system for exchanging data between client devices according to a fourth implémentation of the présent application;
FIG 7 Is a structural block diagram of an apparatus for exchanging data between client devices according to a fifth implémentation of the présent application; and
FIG 8 Is a structural block diagram of an apparatus for exchanging data between client devices according to a sixth implémentation of the présent application;
FIG 9 is a block diagram illustrating a computer system, in accordance with some implémentations; FIGS. 10-11 are block diagrams illustrating example client devices in accordance with some implémentations.
FIG 12 is a block diagram illustrating an example server System, in accordance with some implémentations.
FIG 13 is a flow chart illustrating a method for exchanging data between client devices, in a computer System, in accordance with some implémentations.
FIGS. 14A-14B are flow charte illustrating a method for exchanging data between client devices In a computer System, in accordance with some Implémentations.
DETAILED DESCRIPTION
To further describe the technical measures and fonctions adopted by the présent application for implementing the predetermined objectives, spécifie implémentation manners, structures, features, and fonctions of the method, System, and apparatus for exchanging data between client devices according to the présent application are described in detail in the following with référencé to the drawings and exemplary implémentations.
FIG 1 is a flow chart of a method for exchanging data between client devices according to a first Implémentation of the présent application. The client device Is, for example, a Personal computer, a mobile phone, a tablet computer, and the like. As shown In FIG 1, the method includes the following steps.
Step S110: A first client device sends a first data acquisition request to a server.
Step S120: The server generates a second data acquisition request according to the first data acquisition request, and pushes the second data acquisition request to a second client device.
Step S130: The second client device acquires data according to the second data acquisition request, and uploads the acquired data to the server.
Step S140: The server retums the data uploaded by the second client device or a message digest 20 of the data to the first client device.
For more detailed description, référencé is further made to FIG 2. FIG 2 is a more detailed schematic diagram of the method for exchanging data between client devices shown In FIG 1.
As shown in FIG 2, before Step S110, the method, for example, further includes that a user accesses a network service provided by the server with the first client device. The network service 25 is, for example, in various forms such as an email service, a social networking service such as mlcroblogging (known as “weibo in China), an electronic map service, an information search and retrieval service, an online shopping service, and a video-on-demand service. During the use of a network service, It may be required to perform a user authentication operation to authenticate the identity of a user.
When a user uses the network service, for example, retrieves, browses or publishes Information, a user might need to use data In a second client device. The data, for example, includes an image, an audio file, a video file, a 2D barcode, and data generated during the use of an application. The data generated during the use of the application, for example, include breakpoint information of the application, geographical location Information, and an Interest point recoded during the use of an electronlc map application. The breakpoint Information is, for example, the time a video file or an audio file is played, a spécifie browsing position of a webpage with multiple pages or a browsing progress of an e-book. In other words, a format and a spécifie storage form of the data are not 5 limited.
At this time, the user may select, in a page provided by the server, data in the second client device. Specifically, for example, the sélection may be performed by selecting a particular entrance provided in a network service page. At thls time, the first client device performs Step S110 to send a first data acquisition request to a server.
The first data acquisition request informs the server that data in the second client device needs to be acquired. The first data acquisition request may not explidtly specify the data to be acquired, but may specify a type of the data to be acquired. At this time, the data is determined by the second client device. In addition, the first data acquisition request may further directly specify the data to be acquired, for example, directly specify to acquire a photo taken recently or an audio file 15 or a video file being played or to acquire data in real time. For example, the family members of a tourist visiting the Yellowstone National Park can use this technology to watch the park through the tourist’s smartphone in real time. In another example, the parents of a teenager may use this method to prevent certain applications from being installed on the teenager's smartphone.
The server performs Step S120 after receiving the first data acquisition request. Specifically, in 20 Step S120, the server may, for example, parse the first data acquisition request to acquire Information such as the type of the data to be acquired and whether the data is spedfied. The type of the data includes, for example, an Image, an audio file, a video file, a 2D barcode, and data generated during the use of an application. Next, the server generates a second data acquisition request according to the information such as the type of data to be acquired and whether the data 25 is spedfied. The second data acquisition request conforms to a pre-defined format or is encapsulated by adopting a preset protocol.
Next, the server pushes the second data acquisition request to the second client device. A monitoring module is provided in the second client device and is configured to monitor the second data acquisition request pushed by the server. Muitiple spécifie push manners may be adopted.
For example, the second data acquisition request may be pushed to a mobile phone number through a short message, a multimedia message or service information, pushed to an email box, pushed to an instant messaging account, pushed to other application accounts or directly pushed to a network port monitored by the monitoring module.
Once the second data acquisition request is monitored by the monitoring module, data Is acquired according to the second data acquisition request, namely, Step S130 starts to be performed. Spedfically, when the second data acquisition request spécifiés the type of the data to be acquired and does not directiy specify the data, the second client device may présent, according to the second data acquisition request, data to be selected for sélection by the user, for example, présent an image library sélection interface for the user to select an image or a music library sélection interface for the user to select an audio file. When the second data acquisition request dïrectly spécifiés the data to be acquired, for example, spécifiés a photo taken recently or an audio file being played, the corresponding photo or audio file may be directiy acquired. The second data acquisition request may further require to acquire data In real time, for example, to record a sound segment, a video segment or a photo. At thls time, the second client device correspondingly starts different data acquisition apparatuses, such as a microphone or a caméra to acquire data input in real time. After acquiring the needed data, the second client device uploads the data to the server.
Next, Step S140 is performed. The server retums the data uploaded by the second client device or a message digest of the data to the first client device. The server may directiy retum, to a client, the data uploaded by the second client device, and the client outputs the data or further processes the data. The output includes, for example, to display an image or to play an audio file or a video file. The further processing is, for example, editing or forwarding. However, in some cases, the data uploaded by the second client device does not need to be retumed to the first client device. For exampie, when the user uses an email service, the data uploaded by the second client device is directiy taken as an attachment, and the first client device does not need to dispiay the data, either. In this case, the server may generate a message digest, for example, a file name or a thumbnaü of the data uploaded by the second client device, and retum the generated message digest to the first client device, and the first client device displays the message digest, so that the user confirme that the corresponding data operation is completed.
To describe the method for exchanging data between client devlces more specifically, a spécifie application example is introduced in the following with référencé to FIG. 3.
The first client device is a personal computer (PC), the second client device is a smartphone used by the user, and an email client application runs on the smartphone. In addition, the email client application has an in-built monitoring module, configured to monitor an email conforming to a preset format, namely, the second data acquisition request.
The user accesses, through a browser that runs on the personal computer, the email service provided by the server, and to add a photo in editing a new email, it is selected to upload the photo with a smartphone. At this time, the server pushes the second data acquisition request to the email box of the user. Correspondingly, the second data acquisition request is monitored by the monitoring module in the email client application. At this time, the monitoring module invokes a photo sélection interface for the user to select a photo to be uploaded. After the sélection, the smartphone automatically uploads the selected image to the server. The server receives the uploaded Image, and then retums the Image to the personal computer and displays the image in the browser.
A spécifie application exampie of this implémentation is introduced above in combination with email and a smartphone. The spécifie application scénario of this implémentation Is not iimited to the email service above.
For example, In another application example, a user accesses, through a browser that runs on a Personal computer, an online shopping service provided by the server, and during identîty authentication, it is selected to upload a 2D barcode through the smartphone. At this time, the server pushes the second data acquisition request to a 2D barcode application that runs on the smartphone. Correspondingly, the second data acquisition request is monitored by a monitoring module in the 2D barcode application. At this time, the smartphone automatically uploads the 2D barcode to the server. The server receives the uploaded 2D barcode, and then retums the 2D barcode to the personal computer for identity authentication.
In addition, It may be understood that, it is not iimited to that one same user uses the first client device and the second client device.
For example, in another application example, a first user accesses, through a browser that runs on a personal computer, a network service based on a geographical location and provided in the server, for example, to search for a restaurant or a hôtel nearby. At a spedfied iocation, it is selected to perform upload with a smartphone used by a second user. At this time, the server pushes the second data acquisition request to the smartphone used by the second user. Correspondingly, the smartphone used by the second user automatically uploads the location information thereof to the server. The server receives the location Information and then performs the search and retums a resuit to the personal computer used by the first user.
In addition, It is not Iimited to that a user accesses a network service provided by a server through a browser, either.
For example, in another application example, a user accesses a vldeo-on-demand service through video-on-demand software, and when a video file to be played Is spedfied, it Is selected to continue playing based on the progress in a tablet computer. At this time, the server pushes the second data acquisition request to the tablet computer used by the user. The tablet computer records a resource locator and a play time of the video file being played by the tablet computer, and uploads the resource locator and the piay time to the server. The server retums the resource locator and the play time to the video-on-demand software. At this time, the video-on-demand software may acquire a corresponding video file according to the resource locator and automatically locate to the progress In the tablet computer.
In the method for exchanging data between client devices, a process that a user accesses data In a second client device with a first client device Is almost the same as a process that the user accesses data in the first client device, both requiring only one step of operation. Compared with the conventions! data cable connection or upload and download, the operation process is simpler, and the use expérience Is smoother.
FIG 4 Is a flow chart of a method for exchanging data between client devices according to a second implémentation of the présent application. The client device Is, for example, a personal computer, a mobile phone, a tablet computer, and the like. The method is, for example, performed by a server providing a network service. As shown in FIG 4, the method Includes the following steps.
Step S210: Receive a first data acquisition request sent by a first client device, where the first data acquisition request Informs the server that data needs to be uploaded with a second client device. The first data acquisition request may not explicitly specifÿ the data to be acquired, and at this time, the data is determined by the second client device. In addition, the first data acquisition request may further directly specifÿ the data to be acquired, for example, directly specifÿ to acquire a photo taken recently or an audio file or a video file being played or to acquire data in real time.
Step S220: Generate a second data acquisition request according to the first data acquisition request, where the second data acquisition request is used for enabling the second client device to acquire and upload corresponding data.
Step S230: Push the second data acquisition request to the second client device. Multiple spécifie push manners may be adopted. For example, the second data acquisition request may be pushed to a mobile phone number through a short message, a multimedia message or service Information, pushed to an email box, pushed to an Instant messaging account or directly pushed to a network port monitored by a monitoring module.
Step S240: Receive data uploaded by the second client device.
Step S250: Retum the data uploaded by the second client device or a message digest of the data to the first client device. The server may directly retum, to a client, the data uploaded by the second client device, and the client outputs or further processes the data. The output Includes, for example, to display an image or to play an audio file or a video file. The further processing Is, for example, editîng or forwarding. However, in some cases, the data uploaded by the second client devlce does not need to be retumed to the first client device. For example, when a user uses an email service, the data uploaded by the second client device is directly taken as an attachment, and the first client device does not need to display the data, either. In this case, the server may generate a message digest, for example, a file name or a thumbnail of the data uploaded by the second client device, and retum the generated message digest to the first client device, and the first client device displays the message digest, so that the user confirms that the corresponding data operation is completed.
Through the method for exchanging data between client devices of this implémentation, a process that a user accesses data in a second client device with a first client device Is almost the same as a process that the user accesses data In the first client device, both requiring oniy one step of opération. Compared with the conventional data cable connection or upload and download, the operation process Is simpler, and the use expérience is smoother.
FIG 5 is a flow chart of a method for exchanging data between client devices according to a third implémentation of the présent application. The client device is, for example, a personal computer, a mobile phone, a tablet computer, and the like. As shown in FIG 5, the method Includes the following steps.
Step S310: Monitor a data acquisition request pushed by a server. Multiple spécifie push manners may be adopted. For example, the data acquisition request may be pushed to a mobile phone number through a short message, a multimedia message or service Information, pushed to an email box, pushed to an instant messaging account or directly pushed to a spécifie network port. Therefore, In Step S310, different manners need to be adopted correspondingly. For example, it may be implemented by a monitoring module that runs Independently or a monitoring module that runs depending on other applications.
Step S320: Acquire corresponding data after the data acquisition request is monitored. Spedfically, when the data acquisition request spécifiés a type of data to be acquired and does not directly specify the data, data to be selected may be presented according to the data acquisition request for sélection by a user. For example, an image library sélection interface is presented for a user to select an Image, or a music library sélection Interface is presented for a user to select an audio file. When the data acquisition request directly spécifiés the data to be acquired, for example, spécifiés a photo taken recently or an audio file being played, the corresponding photo or audio file may be directly acquired. The data acquisition request may further require to acquire data In real time, for example, to record a sound segment, a video segment or a photo. At this time, different data acquisition apparatuses, such as a microphone or a caméra, are correspondingly started to acquire data input in real time.
Step S330: Upload the acquired data to the server.
In the method for exchanging data between client devises of this implémentation, through monitoring the data acquisition request pushed by the server, the corresponding data may be uploaded to the server when necessary, and in combination with the processing process of a 5 server, the operation process of accessing data In an client device of this implémentation with other client devices is simpler, and the use expérience Is smoother.
FIG 6 is a structural block diagram of a System for exchanging data between client devices according to a fourth implémentation of the présent application. As shown in FIG 6, an exchange System 400 Includes: a first client device 10, a server 20, and a second client device 30.
The first client device 10 Includes: a data request module 11, configured to send a first data acquisition request to the server.
The server 20 includes: a data request génération module 21, configured to generate a second data acquisition request according to the first data acquisition request; and a push module 22, configured to push the second data acquisition request to the second client device.
The second client device 30 includes: a data acquisition module 31, configured to acqulre data according to the second data acquisition request; and an upload module 32, configured to upload the acquired data to the server.
The data acquisition module 31 may, for example, Include: a présentation unit 311 (referring to FIG 8), configured to présent, according to the second data acquisition request, data to be selected, 20 and an acquisition unit 312 (referring to FIG 8), configured to acquire selected data. In addition, the data acquisition module 31 may be configured to directly acquire corresponding data according to the spécification In the second data acquisition request, and may further be configured to start a data acquisition apparatus In the second client device 30 to acquire data input in real time.
The server 20 further Includes: a retum module 23, configured to retum the data uploaded by the 25 second client device or a message digest of the data to the first client device.
The first client device 10 may further include: an output module 12, configured to display a resuit according to the data or the message digest of the data retumed by the server.
For other details of the exchange System 400, référencé may be further made to FIG 1 to FIG 3 and related description.
In the System for exchanging data between client devices of this Implémentation, a process that a user accesses data in a second client device with a first client device is almost the same as a process that the user accesses data In the first client device, both requiring only one step of operation. Compared with the conventional data cable connection or upload and download, the operation process Is simpler, and the use expérience is smoother.
FIG 7 Is a structural block diagram of an apparatus for exchanglng data between client devlces according to a fifth implémentation of the présent application. As shown In FIG 7, an exchange apparatus 20a Includes a data request génération module 21, a push module 22, a retum module 23, a first receiving module 24, and a second receiving module 25.
The data request génération module 21, the push module 22, and the retum module 23 are the same as those in the fourth implémentation, and référencé may be made together.
The first receiving module 24 is configured to receive a first data acquisition request sent by the first client device; the data request génération module 21 is configured to generate a second data acquisition request according to the first data acquisition request, where the second data acquisition request is used for enabling a second client device to acquire and upload corresponding data; the push module 22 Is configured to push the second data acquisition request to the second client device; the second receiving module 25 is configured to receive data uploaded by the second client device; and the retum module 23 is configured to retum the data uploaded by the second client device or a message digest of the data to the first client device.
For more détails of the exchange apparatus 20a, référencé may be further made to FIG 4 and reiated description.
Through the apparatus for exchanging data between client devices of this Implémentation, a process that a user accesses data in a second client device with a first client device is almost the same as a process that the user accesses data in the first client device, both requiring only one step of operation. Compared with the conventional data cable connection or upload and download, the operation process is simpler, and the use expérience is smoother.
FIG 8 Is a structural block diagram of an apparatus for exchanging data between client devices according to a sixth implémentation of the présent application. As shown in FIG 8, an exchange apparatus 30a includes: a data acquisition module 31, an upload module 32, and a monitoring module 33.
The data acquisition module 31 and the upload module 32 are the same as those In the fourth Implémentation, and référencé may be made together.
The monitoring module 33 Is configured to monitor a data acquisition request pushed by a server, a data acquisition module 31 is configured to acquire corresponding data after the data acquisition request Is monitored by the monitoring module, and the upload module 32 Is configured to upload the acquired data to the server.
The data acquisition module 31 may, for example, Include: a présentation unit 311, configured to présent, according to the second data acquisition request, data to be selected, and an acquisition unit 312, configured to acquire selected data. In addition, the data acquisition module 31 may be configured to directly acquire corresponding data according to the spécification In the second data acquisition request, and may further be configured to start a data acquisition apparatus in the second client device 30 to acquire data input In real time.
In the apparatus for exchanging data between client devices of this implémentation, through monitoring the data acquisition request pushed by the server, the corresponding data may be uploaded to the server when necessary, and in combination with the exchange apparatus in the fifth implémentation, the operation process of accessing data in the exchange apparatus of this implémentation with other client devices Is simpler, and the use expérience is smoother.
In addition, an implémentation of the présent application fùrther provides a computer readable storage medium, which stores a computer exécutable instruction. The computer readable storage medium Is, for example, a non-volatile memory such as an optical disk, a hard disk, or a flash memory.
The computer exécutable instruction is used for enabling a computer or a similar operational apparatus to perform the follow operations.
A first client device sends a first data acquisition request to a server.
The server generates a second data acquisition request according to the first data acquisition request, and pushes the second data acquisition request to a second client device.
The second client device acquires data according to the second data acquisition request, and uploads the acqulred data to the server.
The server retums the data uploaded by the second client device or a message digest of the data to the first client device.
Furthermore, the first client device displays a resuit according to the data uploaded by the second client device or the message digest of the data.
Furthermore, that the second client device acquires data according to the second data acquisition request includes: presentlng, according to the second data acquisition request, data to be selected, and acquiring selected data.
Furthermore, that the second client device acquires data according to the second data acquisition request includes: directly acquiring corresponding data according to the spécification In the second data acquisition request.
Furthermore, that the second client device acquires data according to the second data acquisition request includes: starting a data acquisition apparatus in the second client device to acquire data input in real time.
The computer exécutable instruction is further used for enabling a computer or a simiiar operational apparatus to perform the follow operations.
Receive a first data acquisition request sent by a first client device.
Generate a second data acquisition request according to the first data acquisition request, where the second data acquisition request is used for enabling a second client device to acquire and upload corresponding data.
Push the second data acquisition request to the second client device.
Receive data uploaded by the second client device.
Retum the data uploaded by the second client device or a message digest of the data to the first client device.
Furthermore, the second data acquisition request directly spécifiés data in the second client device. The computer exécutable instruction is further used for enabling a computer or a simiiar operational apparatus to perform the follow operations.
Monitor a data acquisition request pushed by a server.
Obtain corresponding data after the data acquisition request is monitored.
Upload the acquired data to the server.
Furthermore, the acquiring corresponding data after the data acquisition request Is monitored includes: presenting, according to the data acquisition request, data to be selected, and acquiring selected data.
Furthermore, the acquiring corresponding data after the data acquisition request is monitored includes: directly acquiring data according to the spécification in the data acquisition request.
Furthermore, the acquiring corresponding data after the data acquisition request is monitored includes: starting a data acquisition apparatus in the client device to acquire data input in real time.
FIG 9 is a block diagram iliustratlng a computer System 900, in accordance with some Implémentations. The computer system 900 includes a client device 902-A, a communication network 904, a server system 906, and a client device 902-B.
The client device 902-A includes an input device 910, a search request processing module 912, a search results processing module 914, optionaily a search module 924-A, and optionally a media player 916. As described below in connection with FIG. 12, the search module 924-A in the client device 902-A is optional if the client device 902-A receives the search results from the search module 924 in the server System 906. The one or more user input devices 910 include a keyboard, a mouse, a trackpad, and a touchscreen. The search request processîng module 912 détermines and Issues data acquisition request to the server 906 In accordance with a user input (e.g., a userselected search parameter. e.g., the search parameter identifier 903, or a user-specified device identifier, e.g., the device identifier 901). The optional search module 924-A generates search résulte In accordance with a search parameter (e.g., the search parameter 905) obtained from the server 906 or from the client device 902-B. The search résulte processîng module 914 seiectiveiy obtains (e.g., filters), and présents (e.g., displays and formats) search results generated by the client devlce 902-A ,or those received from the server 906. In some Implémentations, the optional media player 916 displays media content (e.g., a YOUTUBE or YOUKU video, or MP3 songs) Included in a search resuit.
In some Implémentations, the communication network 904 is a computing cloud. The communication network 904 optionally includes the Internet, one or more local area networks (LANs), one or more wide area networks (WANs), other types of networks, or a combination of such networks.
In some Implémentations, the server System 906 Includes a device Identification module 920, a device database 922, a search module 924, and a search database 926. The device Identification module 920 uniquely identifies a device (e.g. client 902-B) among a set of devices, in accordance with the device Identifier 901. The device database 922 stores information (e.g., cell phone numbers, email addresses, SIM card numbers, IMEI numbers, MAC address, and device serial numbers) corresponding to a set of devices (e.g., cell phones, tablets, and smartphones, such as APPLE IPADs or IPHONEs). The search module 924 generates search results (e.g., nearby hôtel or restaurant information) In accordance with a search parameter obtained from the client device 902-B (e.g., location of the client 902-B).
In some Implémentations, the search database 926 stores searchable information (e.g., hôtel addresses, video or audio files, restaurant menus, and phone numbers), or Indices thereof. In some implémentations, the search database 926 Is the Internet, of a portion thereof (e.g., content under a spécifie domain, such as “Baidu.com, SOHU.com, or Yahoo.com.cn)·
In some implémentations, the client device 902-B Includes a privacy control module 930, a search parameter obtaining module 934, and a search module 924-B. The privacy control module 932 contrais access to one or more search parameters stored on, generated by ,or obtaînable from, the client 902-B (e.g., location or altitude of the client 902-B, user activity history, browsing history of a user of the client 902-B), in accordance with one or more privacy settings. For example, in response to a request for certain Information generated by the client device 902-B, the privacy control module 932 Is triggered to display the request and associated Information (e.g., from whom or which client device the request cornes from) on its display. The client devlce 902-B does not send the requested information until after receiving an approval from the user of the client device 902-B.
Sometimes, it is necessary for one user to access information relating to another user. For example, a housewife, who sits in front of a desktop at home, may be interested in booking a hôtel for her husband who has a smartphone and is currently on a cross-country road trip from New York City to San Francisco. In this case, the wife needs to know the current location of the husband without disrupting him. The search parameter obtaining module 934 obtains a search parameter in accordance with a search parameter identifier (e.g., obtaining location of the client 902-B in accordance with a location identifier included in a data acquisition request). In some implémentations, the search module 924-B generates search results in accordance with a search parameter (e.g., nearby hôtel or restaurant locations near the location of the client 902-B) obtained from the search parameter obtaining module 934.
FIG. 10 is a block diagram illustrating a first client device (e.g., the client device 902-A), in accordance with some implémentations. The client device 902-A, in some implémentations, inciudes one or more processing units CPU(s) 1002 (also herein referred to as processors), one or more network interfaces 1004, one or more input devices 910, memory 1006, a display 1003, and one or more communication buses 1008 for interconnecting these components. The communication buses 1008 optionally include drcuitry (sometimes called a chipset) that interconnecte and contrats communications between System components. The memory 1006 typically inciudes high-speed random access memory, such as DRAM, S RAM, or other random access solid state memory devices; and optionally inciudes non-volatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. The memory 1006 optionally inciudes one or more storage devices remotely located from the CPU(s) 1002. The memory 1006 or altematively the non-volatile memory device(s) within the memory 1006, comprises a non-transi tory computer readable storage medium. In some implémentations, the memory 1006 or altematively the non-transitory computer readable storage medium stores the following programs, modules and data structures, or a subset thereof:
an operating System 1010, which inciudes procedures for handling various basic System services and for performing hardware dépendent tasks;
a network communication module (or instructions) 1012 for connecting the client device 902-A with other devices (e.g., the server 906 or the client device 902-B) via one or more network interfaces 1004 (wired orwireless), or the communication network 904 (FIG 9);
• a user interface module 1014 for displaylng different user Interface controls (e.g., textboxes or dropdown lists for entering search parameter Identifiera and devlce Identifiera) as well as user data (e.g., search results) In accordance with user Input;
• a search request processing module 912 for generating and Issutng one or more data acquisition requests to the server 906, In accordance with a user input (e.g., a user-selected search parameter or devlce Identifier );
• optionally, a search module 924 for generating search results in accordance with a search parameter (e.g., received from the server 906 or from the client device 902-B);
a search results processing module 914 for sélective obtalning (e.g., filtering) or presenting (e.g., displaylng and formatting thereof) search results generated by the client device 902-A and those received from the server 906;
• optionally, a media player 916 for display media content induded In a search resuit (e.g., a YOUTUBE or YOUKU video, MP3 songs); and data 1016 stored on the client devlce 902-A, which indude:
o a device identifier 901 for uniquely identifying a device from several devlces;
o a search parameter identifier 903 for uniqueiy identifying a search parameter from several parametera; and o one or more search results 901 obtained in response to a data acquisition request issued by a user.
In some Implémentations, the one or more user Input devices 910 indude a keyboard, a mouse, a trackpad, and a touchscreen.
FIG. 11 is a block diagram iliustrating a second dient device (e.g., dient devlce 902-B), In accordance with some Implémentations. The client device 902-A, in some Implémentations, includes one or more processing units CPU(s) 1902 (also herein referred to as processora, one or more network Interfaces 1104, a location Identification device 1105 (e.g., a GPS), one or more Input devlces 1107, memory 1106, a display 1103, and one or more communication buses 1108 for interconnecting these components. The communication buses 1108 optionally Indude drcuitry (sometimes called a chipset) that interconnects and controls communications between System components. The memory 1106 typically includes high-speed random access memory, such as DRAM, SRAM, or other random access solid state memory devlces; and optionally Indudes nonvolatile memory, such as one or more magnetic disk storage devices, optical disk storage devices, flash memory devices, or other non-volatile solid state storage devlces. The memory 1106 optionally Indudes one or more storage devices remotely located from the CPU(s) 1902. The memory 1106 or altematively the non-volatile memory device{s) within the memory 1106, comprises a non-transitory computer readable storage medium. In some Implémentations, the memory 1106 or altematively the non-transitory computer readable storage medium stores the following programs, modules and data structures, or a subset thereof:
an operating System 1110, which includes procedures for handling various basic System services and for performing hardware dépendent tasks;
a network communication module (or instructions) 1112 for connecting the client device 902-B with other devices (e.g., the server 906 or the client device 902-A) via one or more network interfaces 1104 (wired or wireless), or the communication network 904 (FIG 9);
a privacy control module 932 for controlling access to search parameters stored on, generated by, or obtainable from the client 902-B (e.g., location or altitude of the client 902B, user activity hlstory, browsing hlstory of a user of the client 902-B) in accordance with one or more privacy settings (privacy settings 1118-1 ... 1118-n);
• a search parameter obtalning module 934 for obtaining a search parameter In accordance with a search parameter Identifier, e.g., obtaining location (e.g., San Francisco, CA) of the client 902-B by Invoking a data acquisition apparatus 935 (e.g., a GPS module) in the client 902-B in accordance with a location Identifier (e.g., a string “LOCATION);
• optionally, a search module 924-B for generating or otherwise obtaining search results in accordance with a search parameter (e.g., hôtel or restaurant addresses near the location of the client 902-B); and data 1114 stored on the client device 902-B, which Include:
o a device identifier 901 for uniquely identifylng a device from several devices;
o a search parameter identifier 903 for uniquely Identifylng a search parameter 907 from several parameters;
o one or more search results 907 obtained In response to a data acquisition request Issued by a user; and o one or more privacy settings 1116 (1118-1 ... 1118-n) for spedfylng access privilèges (e.g., restricts or enables Write or read access to), or a degree thereof, assigned to other devices (e.g., client 902-A or the server 906) when accesslng one or more search parameters stored on, generated by, or otherwise obtainable from the 902-B; and o location data 1120 for Identifylng an approxlmate or exact location of the client device 906-B with various levels of précision (e.g., 11 Main street, Palo Alto, CA
94306, when a street level location is desired, or Palo Alto, CA, when a city level location Is desired).
In some Implémentations, the location identification device 1105 includes a GPS, an altitude sensor, and a high précision compass. In some Implémentations, the one or more user Input 5 devices 1107 include a keyboard, a mouse, a trackpad, and a touchscreen.
FIG. 12 Is a block diagram illustrating a server System (e.g., the server 906), In accordance with some implémentations. The server 906, in some implémentations, Includes one or more processing units CPU(s) 1202 (also herein referred to as processors, one or more network interfaces 1204, one or more input devices 1204, memory 1206, and one or more communication to buses 1208 for interconnecting these components. The communication buses 1208 optionally
Include circuitry (sometimes called a chipset) that interconnects and contrôle communications between System components. The memory 1206 typically Includes high-speed random access memory, such as DRAM, SRAM, or other random access solid state memory devices; and optionally includes non-volatile memory, such as one or more magnetic disk storage devices, 15 optical disk storage devices, flash memory devices, or other non-volatile solid state storage devices. The memory 1206 optionally Includes one or more storage devices remotely located from the CPU(s) 1202. The memory 1206 or altematively the non-volatile memory device(s) within the memory 1206, comprises a non-transitory computer readable storage medium. In some Implémentations, the memory 1206 or altematively the non-transitory computer readable storage 20 medium stores the following programs, modules and data structures, or a subset thereof:
an operating System 1210, which Includes procedures for handling various basic System services and for performing hardware dépendent tasks;
a network communication module (or Instructions) 1212 for connecting the server 106 with other devices (e.g., the client devices 902-A and 902-B) via one or more network interfaces 1204 (wired or wireless), or the communication network 904 (FIG 9);
• a device identification module for uniquely Identifying a device (e.g. the client 902-B, which is a cell phone) among a set or collection of devices (e.g., a large number of cell phones), In accordance with a device Identifier, a device database 922 for storing Information (e.g., œil phone numbers, email addresses, SIM card numbers, IMEI numbers, MAC address, and device serial numbers), or indices thereof, corresponding to a set of devices (e.g., cell phones, tablets, and smartphones, such as APPLE IPADs or IPHONEs);
a search module 924 for generating or obtaining search results (e.g., nearby COSTCO warehouse locations and hours) in accordance with a search parameter (e.g., in the city of Palo Alto, CA, which Is the client 902-B Is currently located);
a search database 926 for Including searchable Information (e.g., hôtel addresses, video or audio files, restaurant menus, phone numbers, and attorney directories), or Indices thereof; in some Implémentations, the search database 926 Is the Internet, of a portion thereof (e.g., content under a spécifie domain, such as ‘Baidu.com,* ‘SOHU.com,' or “Yahoo.com.cn'); and data 1214 stored on the client devlce 902-B, which Include:
o a device Identifier 901 (e.g., a SIM card number, an IMEI number, a cell phone number, a device name, a user name, a manufacturer-made device serial number) for uniquely Identifying a particule relient device, among several devlces;
o a search parameter Identifier 903 for uniquely Identifying a search parameter (e.g., location) from several parameters (e.g., location, time, pridng, and avaîiabîiity information of several hôtels);
o a search parameter 905 for specifying which search results are most relevant to or desired by a user; and o one or more search results 907 retrieved (e.g., from the search database 926, from the Internet or a portion thereof, or from a user specified network location, Internai or extemal) In accordance with the search parameter 905.
In some Implémentations, one or more of the above identified éléments are stored in one or more of the prevlously mentioned memory devlces, and correspond to a set of Instructions for performing a fonction described above. The above identified modules or programs (e.g., sets of instructions) need not be Implemented as separate software programs, procedures or modules, and thus various subsets of these modules may be combined or otherwise re-arranged In various Implémentations. In some Implémentations, the memory 1006, 1106, or 1206 optionally stores a subset of the modules and data structures identified above. Furthermore, the memory 1006,1106, or 1206 may store additional modules and data structures not described above.
Although FIG. 12 shows a “server System 906, also referred to as a server, FIG 12 is intended more as functional description of the various features which may be présent In server System than as a structural schematic of the implémentations described herein. In practice, and as recognized by those of ordinary skili in the art, items shown separately could be combined and some items could be separated.
FIG 13 is a flow chart illustrating a method for exchanging data between client devices or client devices, In a computer system, in accordance with some implémentations.
in some implémentations, a first client device transmits (1302) a first data acquisition request to a server 106 (e.g., a cloud). In some implémentations, after obtaining (1304) the first data acquisition request, the server 106 (e.g., the cloud) Identifies (1304) a second client device (e.g., a smartphone), among a plurality of devices (e.g., ail ATT smartphones), from which a search parameter (e.g., a location) necessary to or requlre for executing a search (e.g., a search of hôtels within 4 miles of the location) Is to be retrieved. In some Implémentations, to obtain the search parameter, the server 106 (e.g., the cloud) issues (1302) a second data acquisition request to the Identified second client device.
In some Implémentations, the second client device obtains (1310) the second data acquisition request from the server 106 (e.g., the cloud), and retums (1312) the search parameter (e.g., the location) that was not previously avaiiable to but sought after by the server 106 (e.g,, because neither the server 906 nor the first client device 902-Aknew the location of the client device 902-B).
In some implémentations, the server 106 then obtains the search parameter (1314) (e.g., the location of the client 902-B), and obtains search results (1318) In accordance there with. In other implémentations, the server 106 transmits the search parameter (1314) to the first client device 902-A, which obtains (1316) the search results. In some implémentations, search results are generating parti y by the server 106 and partly by the first client device, e.g., so as to achieve load balancing.
In some implémentations, the server 106 formats (1320) for dispiay, at the first client device, at least one search resuit in the one or more search results. in some implémentations, the at least one search resuit Is then displayed (1332) at the first client device, for a user to review,
FIGS. 14A-14B are flow charts Illustrating a method 1400 for exchanging data between client devices or client devices, implemented in a computer system (e.g., at a server or a cloud 906), in accordance with some Implémentations.
In some Implémentations, the computer system first obtains (1402), form a first client device (e.g,, the client 902-A, such as a desktop computer), a first data acquisition request, such as a user request for hôtel addresses. In some Implémentations, a data acquisition request Is a search request, entered through a graphical user interface, such as a web application In a browser, or an Interface for a software application that has a connection with the server or the doud 906.
The first data acquisition request (e.g., the search request) includes (1404) (i) a device Identifier Identifying a second client device distinct from the first client device, and (ii) a search parameter Identifier Identifying a search parameter. For example, the search request for nearly hôtel addresses includes (i) a phone number (e.g., “650-785-5985) and (ii) a string (LOCATION) speclfying that the location of a spécifie cell phone (the cell phone having number 650-785-5982) should be used as a search parameter for searching neariy hôtel addresses. In some implémentations, the computer System Is a computing cloud or a portion thereof (e.g., a server 5 within the cloud or a particular type of service offered by the cloud). For example, the computer
System is a public or private computing cloud, such as an laaS, a PaaS, an SaaS, an NaaS, a DaaS, or a DBaaS, or a portion thereof (e.g., a server within the cloud). In some implémentations, access to the computing cloud Is subscription based (e.g., fee-based) or free. In some Implémentations, the cloud Is an IBM cloud, a DELL cloud, an Amazon cloud, an ORACLE cloud, or to a Google cloud,
After obtaining the first data acquisition request, the computer System first identifies (1408) a second client device, from a plurality of client devices, in accordance with the device Identifier. For example, after receiving the a search request from a user of a desktop computer, the cloud breaks down (e.g., analyzes or parses) the search request, and uses a device Identifier (e.g., a phone 15 number) included in the search request to identify a particular cell phone, among several cell phones or usera assodated therewith. Identifying a particular device among several devices is important, because, sometimes, a user is more interested In search results relevant to a particular device or its user. For example, a housewife looking for hôtels for her husband who Is on an out of town trip Is more interested in knowing the location of her husband’s cell phone (assuming the cell 20 phone is with the husband), than knowing the locations of her childrerïs cell phones.
In some Implémentations, the second client device Is (1410) one selected from the group consisting of: a tablet, a laptop computer, a smartphone, a car radio, and a GPS device, such as an APPLE IPAD or IPHONE, a GOOGLE tablet, or a SAMSUNG cell phone. In some implémentations, the second dient device is a mobile or portable devîce (e.g., a cell phone or a handheld walkie-talkie);
whereas the first client device Is less (or not at ali) mobile or portable—e.g., due to its size (which renders the first dient device difficult or otherwise inconvénient to carry), or due to the way the first client device is conneded with the cloud, such as via a cable or other wired connedion, rather than via a wireless connedion, such as a cell phone or a WIFI network ). In some Implémentations, the first dient device Is a desktop computer, a cloud-enabled industrial printer, an intelligent home 30 appliance (e.g., a kitchen stove, an air conditioner, a refrigerator, or a home security System).
After identifying the second dient device, the computer System issues (1412) a second data acquisition request to the second device, the second data acquisition request Induding the search parameter Identifier. For example, after receiving a request for hôtels near location of a cell phone, the doud send a request to the cell phone to obtain its location.
ln some implémentations, the first client device and the second client device are not directly connected. For example, the client 902-A ls a desktop computer that ls connected to the communication network 104 (e.g., the doud) via a cable line, an ADSL line, or a phone line, but is not directly connected with the dient 902-B, which is a cell phone remotely located from the dient 5 902-A. In some implémentations, the first client device and the second dient device are connected through only the computer System (e.g., the doud). In some Implémentations, there is no direct connection between the client device 902-A ,and the dient device 902-B, e.g., because the client devices 902-A and 902-B share no connection capacity in common. For example, the client 902-A ls a desktop computer without a Bluetooth adaptor; while the dient 902-B is a Bluetooth-enabled 10 tablet.
In other implémentations, although the dient 902-A and the dient 902-B are connected through one or more connections (e.g., via the doud, as well as via a data cable, a WIFI, a Bluetooth, and an infrared connection), a threshold amount (e.g., 90%) or a predefined type (e.g., confidentîal information) of data transmission between the dient 902-A and the dient 902-B takes place through 15 the server 106 (or the cloud), e.g., as so to provide enhanced security (e.g., when the cloud automatically créâtes backup for incomlng and outgoing data) or to protect confidentiality (e.g., when the doud is equipped with and applies advanced encryption/decryption algorithms to incoming and outgoing data).
In some implémentations, the first dient device and the second dient device are located in 20 different geographical areas (1418). For example, the dient 902-A is a desktop computer located in
Palo Alto, California, whereas the dient 902-B is another desktop computer located in New York, NY. For example, the dient 902-A is a printer located in a premier law firm's Houston, TX office, while the client 902-B is a web-camera located In the same law firm's Los Angeles, CA office. In some implémentations, the server 906, or the cloud, provides a connection between the dient 90225 A and the dient 902-B that satisfies a set of predefined user requirements (e.g., connedion speed, pridng, stability, performance, and security).
After issuing the second data acquisition request to the second dient device, the computer System (e.g. the server 106 or the cloud) obtains (1420) from the second dient device, a search parameter In accordance with the search parameter identifier. In some implémentations, the second dient 30 device acquires (1417) the search parameter according to a spécification in the second data acquisition request. For example, In response to a user request to obtain location of the second dient device, the doud obtains the location (e.g., name of a town, a dty, a county or a state) from the second dient device. In response to the second data acquisition request, the second client device Invokes (1419) a data acquisition apparatus in the second dient device to acquire the search parameter In real time. For example, the second client device (e.g., a smartphone) may include a GPS module for determining the current location of the second client device. For another example, in response to a user request to obtain a breakpoint of a video (e.g., an indicator as to which portion of the video a user has not watched by a user) from the second client device (e.g., an 5 Intemet-enabled DVD player), the doud obtains the breakpoint (e.g., the minute and second of a
DVD video, where the user most recently quit watching) from the second dlent device. In yet another example, a person, who watches an on-line video from his/her smartphone on the way home, would iike to switch the play of video to another device at home (e.g., a desktop that has a wired access to the Internet) because, e.g., the device at home may play the video with a better 10 resolution and audio quality. In this case, the device at home sends a request for a breakpoint of the video to a remote server. The remote server then sends a request to the smartphone for information associated with the video being played on the smartphone (e.g., the breakpoint at which the person stops playing the video). Based on the information retumed by the smartphone, the remote server détermines a starting point for playing the video and retums the starting point to 15 the device at home. Using the starting point, the device at home can restart the play of the video.
In some Implémentations, the remote server or the device at home may automatically roll back the starting point from the breakpoint by a predefined amount of time (e.g., 10 seconds) to improve the continuity of the person's video viewing expérience.
In some Implémentations, the search parameter spécifiés (1422) one of the followings: a 20 geographical location, a video breakpoint, an audio breakpoint, a photo, an email, a barcode, or a portion of a media content item. For example, the search parameter (e.g., a breakpoint) spécifiés where a user has left off watching a video, listing to an audio, looklng at an electronic photo album (e.g., a Yahoo FLiCKR album). In another example, the search parameter (e.g., an “unread message flag) indicates which emails in an email stream or an emaii box a user has not reviewed. 25 These approaches are advantageous: they enable a user to résumé where the same or another user stopped most recently, thereby improving efficiency and enhancing viewing expérience (e.g., when watching a video).
As noted above, to protect the privacy of the user of the second client device, the second client device may Include a mechanism seeking the user's approval before releasing any sensitive 30 Information including, e.g., the current location of the second client device or the application currently running on the second client device. In response to the second data acquisition request, the second client device displays (1421) the search parameter and an identifier associated with the first client device (e.g., the name of the user of the first client device included in the first data acquisition request initiated by the user) at the second client device and retums the search parameter to the computer system after an approval from a user of the second client device.
In some Implémentations, the computer System (e.g. the server 106 or the cloud) then obtains (1424) one or more search results In accordance with the search parameter. In some Implémentations, the computer system (e.g. the doud) generates the one or more search results by executlng a search query using the search parameter 905 against the search database 922. In other Implémentations, the client 902-B, when equipped with appropriate processing power, generates the one or more search results (e.g., by executing a search query suing the search parameter 905 against the search database 922 shown In FIG. 9 or against another database résident on or connected with the client 902-B).
In some Implémentations, after obtaining the one or more search results, the computer System (e.g. the server 106 or the cloud) formats (1428) for display, at the first dient device, at least one search resuit In the one or more search results. In some Implémentations, the computer system (e.g. the cloud) applies one or more filtering criteria to the one or more search results, and selectively transmits the filtered search results to the first client device, e.g., so as to conserve bandwidth (e.g., when the connection between the first dient and the doud Is an ADSL connection); or to avoid overioading the first client device when the first dient device (e.g. a ten-year old desktop with an INTEL 486 processor) has Iimited processing power to handle more than a predefined number (e.g., 20, 50, 100, or 200) of search results. In some implémentations, the one or more filtering criteria indude pridng information (e.g., more than 50 dollars per night for an ovemight hôtel stay), availability (e.g., hôtel rooms for a spedfied date or time), user preference (e.g., réservations at a four-star hôtel, at a motel, or at a bed and breakfast accommodation), location constraint (e.g., withln a predefined distance), time constraint (e.g.,. a check-in time requirement), and fadlity constraint (e.g., with or without a swimming pool). In some implémentations, the search parameter assodated with the second client device (e.g., Its location information) is displayed (1430) with the at least one search resuit at the first dient device.
In some implémentations, the computer system automatically transmits the search resuit to the first client device without user intervention, e.g., so as not to require user efforts (additional to the first data acquisition request). These approaches are advantageous, because they reduce burden on a user, both mentally and physically. A user of the first dient device only needs to specify which search parameter is to be selected from which device, and the search results in accordance therewith are then automatically provided to the user, thereby improvîng search effidency and user friendliness.
In some implémentations, the search parameter associated with the second dient device (e.g., its location information) is displayed (1430) with the at least one search resuit at the first client device.
In some Implémentations, the user of the second client device and the first client device is the same person. While receiving data on the second client device from the computer system, the user initiâtes the first data acquisition request from the first client device In order to continue receiving data on the first client device from the computer System. For example, while a user watches a video using her smartphone on her way home, the user may like to continue watching the same video but move from the smartphone that has a smail screen and a slow data download speed to a desktop computer that has a large screen and a fast data download speed once at home, in this case, the user can send a request to migrate the play of the video from the smartphone to the desktop. But instead of replaying the video from the beginning, the desktop continues the play of the video based on the breakpolnt information provided by the smartphone. Sometimes, the desktop may automatically roll back a few seconds from the breakpoint to Improve the continuity of the play of the video stream.
Descriptions above are merely exemplary implémentations of the présent application rather than limiting the présent application in any form. Although the présent application is disclosed in detail above with référencé to the exemplary Implémentations, the présent application is not limited thereto. Any person of ordinary skill in the art may, without departing from the scope of the technlcal solutions of the présent application, make some changes or modifications to the technical contents disclosed above to form équivalent Implémentations with equal changes. Any profile modification, equal change, or modification made to the implémentations above according to the technical essence of the présent application without departing from the content of the technical solutions of the présent application shall ail belong to the scope of the technical solutions of the présent application.
While particular implémentations are described above, It will be understood it Is not intended to limit the Invention to these particular Implémentations. On the contrary, the invention includes alternatives, modifications and équivalents that are within the spirit and scope of the appended daims. Numerous spécifie details are set forth In order to provide a thorough understanding of the subject matter presented herein. But it will be apparent to one of ordinary skill in the art that the subject matter may be practiced without these spécifie details. In other instances, well-known methods, procedures, components, and circuits hâve not been described In detail so as not to unnecessarily obscure aspects of the implémentations.
Although the terms first, second, etc. may be used herein to describe various éléments, these éléments should not be limited by these terms. These terms are only used to distinguish one element from another. For example, first dient device could be termed second dient device, and, simllarly, second client device could be termed first dient device, without departing from the scope of the présent application. First client device and second client device are both client devices, but they are not the same client device.
The terminology used in the description of the invention herein is for the purpose of describing particular Implémentations only and is not intended to be limiting of the Invention. As used in the 5 description of the Invention and the appended claims, the singular forms a, an, and the are
Intended to include the plural forms as well, unless the context cleariy indïcates otherwise. It will also be understood that the term and/or as used herein refers to and encompasses any and ail possible combinations of one or more of the associated iisted items. It will be further understood that the terms Includes, including, comprises, and/or comprising, when used in this 10 spécification, speclfy the presence of stated features, operations, éléments, and/or components, but do not preclude the presence or addition of one or more other features, operations, éléments, components, and/or groups thereof.
As used hereln, the term if* may be construed to mean when or upon or in response to determlning or in accordance with a détermination or ïn response to detecting, that a stated 15 condition precedent is true, depending on the context. Similariy, the phrase if it is determined [that a stated condition precedent Is true] or if [a stated condition precedent is true] or when [a stated condition precedent is true] may be construed to mean upon determinlng or in response to determining or In accordance with a détermination or upon detecting or in response to detecting that the stated condition precedent is true, depending on the context.
Although some of the various drawings lllustrate a number of logical stages In a particular order, stages that are not order dépendent may be reordered and other stages may be combined or broken out. While some reordering or other groupings are specifically mentioned, others will be obvious to those of ordinary skill In the art and so do not présent an exhaustive list of alternatives. Moreover, It should be recognized that the stages could be implemented In hardware, firmware, 25 software or any combination thereof.
The foregolng description, for purpose of explanation, has been described with reference to spécifie Implémentations. However, the Illustrative discussions above are not intended to be exhaustive or to limit the Invention to the précisé forms disclosed. Many modifications and variations are possible in view of the above teachlngs. The implémentations were chosen and described In order to best 30 explaln prindpies of the Invention and Its practlcal applications, to thereby enable others skilled In the art to best utilize the Invention and various Implémentations with various modifications as are suited to the particular use contemplated. Implémentations Include alternatives, modifications and équivalents that are within the splrit and scope of the appended claims. Numerous spécifie details are set forth In order to provide a thorough understanding of the subject matter presented herein.
But it will be apparent to one of ordinary skill in the art that the subject matter may be practiced without these spécifie details. In other instances, well-known methods, procedures, components, and circuits hâve not been described in detail so as not to unnecessariiy obscure aspects of the implémentations.

Claims (19)

  1. WHAT IS CLAIMED IS:
    1. A method for exchanging data between two client devices, comprising:
    at a computer System having a processor and memory for storing one or more programs to be executed by the processor,
    5 obtaîning, from a first client device, a first data acquisition request, wherein the first data acquisition request includes (i) a device identifier identifying a second client device distinct from the first client device, and (ii) a search parameter identifier identifying a search parameteq identifying the second client device, from a plurality of client devices, in accordance with the device identifier, to Issuing a second data acquisition request to the second device, the second data acquisition request Including the search parameter Identifier;
    obtaining, from the second client device, the search parameter In accordance with the search parameter identifier;
    obtaining one or more search results in accordance with the search parameter; and
    15 providing at least one search resuit In the one or more search resuit to the first client device for display to a user of the first client device.
  2. 2. The method of claim 1, wherein the search parameter is assocîated with the second client device and Is displayed with the at least one search resuit at the first client device.
    -
  3. 3. The method of claim 1, wherein, in response to the second data acquisition request, the second
    20 client device displays the search parameter and an identifier associated with the first client device at the second client device and retums the search parameter to the computer System after an approval from a user of the second client device.
  4. 4. The method of claim 1, wherein the second client device acquires the search parameter according to a spécification in the second data acquisition request.
    25
  5. 5. The method of claim 1, wherein, in response to the second data acquisition request, the second client device invokes a data acquisition apparatus in the second client device to acquîre the search parameter in real time.
  6. 6. The method of claim 1, wherein the first client device and the second client device are located in different geographical areas.
    30
  7. 7. The method of claim 1, further comprising: transmitting the at least one search resuit to the first client device automatically, without user intervention.
  8. 8. The method of claim 1, wherein the search parameter is one selected from the group consisting of: a geographical location, a video breakpoint, an audio breakpoint, a photo, an email, a barcode, and a portion of a media content item.
  9. 9. The method of claim 1, wherein, while receiving data on the second client device from the computer System, the computer System receives the first data acquisition request from the first client device Initiated by the user in order to continue receiving data on the first client device from the computer System.
  10. 10. A computer System, comprising:
    one or more processors;
    memory; and one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs Including Instructions for obtaining, from a first client device, a first data acquisition request, wherein the first data acquisition request Includes (i) a device Identifier Identifying a second client device distinct from the first client device, and (ii) a search parameter Identifier Identifying a search parameter;
    Identifying the second client device, from a plurality of client devices, in accordance with the device Identifier;
    Issuing a second data acquisition request to the second device, the second data acquisition request including the search parameter identifier;
    obtaining, from the second client device, a search parameter in accordance with the search parameter Identifier;
    obtaining one or more search results In accordance with the search parameter; and providing at least one search resuit in the one or more search resuit to the first client device for display to a user of the first client device.
  11. 11. The computer System of claim 10, wherein the search parameter associated with the second client device is dîsplayed with the at least one search resuit at the first client device.
  12. 12. The computer System of claim 10, wherein, in response to the second data acquisition request, the second client device dispiays the search parameter and an identifier associated with the first client device at the second client device and retums the search parameter to the computer System afteran approval from a user ofthe second client device.
  13. 13. The computer System of claim 10, wherein the second client device acquires the search parameter according to a spécification in the second data acquisition request.
  14. 14. The computer System of claim 10, wherein, In response to the second data acquisition request, the second dient device invokes a data acquisition apparatus in the second client device to acquire the search para me ter in real time.
  15. 15. The computer system of daim 10, wherein the first dient device and the second citent device are located In different geographical areas.
  16. 16. The computer system of daim 10, wherein the Instructions further indudes instruction for transmitting the at least one search resuit to the first dient device automatically, without user Intervention.
  17. 17. The computer system of daim 10, wherein the search parameter is one selected from the group consisting of: a geographical location, a video breakpoint, an audio breakpoint, a photo, an email, a barcode, and a portion of a media content item.
  18. 18. The computer System of daim 10, wherein, while receiving data on the second client device from the computer system, a user Initiâtes the first data acquisition request from the first dient device in order to continue receiving data on the first dient device from the computer system.
  19. 19. A non-transi tory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a computer system with one or more processors, cause the computer system to:
    obtain, form a first dient device, a first data acquisition request, wherein the first data acquisition request indudes (i) a device identifier identifying a second dient device distinct from the first dient device, and (H) a search parameter identifier identifying a search parameter;
    Identify the second dient device, from a plurality of dient devices, in accordance with the device identifier;
    issue a second data acquisition request to the second device, the second data acquisition request induding the search parameter identifier, obtain, from the second client device, a search parameter in accordance with the search parameter identifier;
    obtain one or more search results In accordance with the search parameter, and format for display at the first dient device at least one search resuit In the one or more search results.
OA1201400493 2012-06-20 2013-05-20 Method, system, and apparatus for exchanging data between client devices. OA17174A (en)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210204568.6 2012-06-20

Publications (1)

Publication Number Publication Date
OA17174A true OA17174A (en) 2016-04-05

Family

ID=

Similar Documents

Publication Publication Date Title
EP2865161B1 (en) Method, system, and apparatus for exchanging data between client devices
JP6290367B2 (en) Presenting messages related to location
US9774656B1 (en) Method for media sharing based on location proximity
US8677502B2 (en) Proximity based networked media file sharing
EP2641184B1 (en) Media file access
US9276883B2 (en) Information collection, storage, and sharing platform
US9826050B2 (en) Photo check-in method, apparatus, and system
JP5620517B2 (en) A system for multimedia tagging by mobile users
US10148762B2 (en) Platform-specific notification delivery channel
AU2018334268A1 (en) Enabling and disabling location sharing based on environmental signals
US20130144968A1 (en) Sharing files on a wireless device
JP2017010546A (en) Social network service-based recommended information provider and method using the provider
KR20140072922A (en) Controlling notification based on power expense and social factors
US9674271B2 (en) Platform for sharing collected information with third-party applications
CN116109734A (en) Picture processing method and device
CN105518738B (en) Rediscovery of historical data
OA17174A (en) Method, system, and apparatus for exchanging data between client devices.
US9961493B1 (en) Geofenced universal URL
US20150193626A1 (en) Method and system for user content view protection
US20230164289A1 (en) Method and apparatus for storing and sending a computer location
US20170195421A1 (en) Cloud data storage system and method thereof