Transferring data items amongst computing devices using metadata that identifies a location of a transferred item

A first data item is transmitted from a source device to a receiving device with metadata that identifies a location where the data item resides on the source device. The receiving device generates a subsequent request for data items that reside at the location specified by the metadata provided with the first data item. The receiving device generates an output that is based on the data items received from the source device.

BACKGROUND

Near-device pairing can utilize various types of connection mediums, such as communication mediums provided through Infrared, Bluetooth, or Near Field Communications (NFC). The various forms of near-device pairing can be used to share data items, such as records, images, documents, music files or other types of data items.

DETAILED DESCRIPTION

Embodiments described herein provide for transferring data items amongst computing devices using metadata that identifies a location of a transferred item.

Under examples described herein, computing devices can be connected using near-device pairing, such as through NFC, for purpose of transferring data items. Embodiments recognize that the proximity of the two devices when connected (e.g., tapped together or brought to within10cm) provides a layer of security that can be leveraged to automate, or otherwise facilitate, the transfer of multiple data items between two computing devices.

Still further, embodiments enable a receiving device to display or otherwise output content based on multiple data items that are received from a source device. Examples are described herein in which the receiving device is able to display the multiple data items without need for the user to individually select and transmit each of the multiple data items from the source device. For example, a user can select an initial data item for transfer from a source device. The receiving device and source device can then exchange communications and data so that other data items are transferred from the source device with minimal or no additional user input.

Some embodiments described herein enable data items to be transferred from a source device to a receiving device using a sequenced set of data transmissions, in which a first data item is initially transmitted with metadata that identifies a location where that data item resides on the source device. The receiving device generates a follow-on request for data items. The data items that are identified for the request reside on the source device at the location specified by the metadata that is associated with the first data item. The source device transmits the data items to the receiving device, and the receiving device generates an output that is based on the data items received from the source device.

Among other benefits, embodiments such as described enable the receiving device to not just display a single data item from the source device, but to enable display and interaction with multiple data items that may originally reside with the source device. Thus, for example, rather than have a source and receiving device display a common data item (e.g., same picture), the source device can display one data item, and the receiving device can display multiple data items stored on the source device. Still further, some embodiments enable the user to interact with the receiving device in order to select data items that originally reside with the source device.

According to some embodiments, a source computer responds to a user command to transfer a data item to a receiving device. Metadata is associated with the data item to identify a location of the data item that is to be transferred. The data item is transmitted from the source device to the receiving device using an NFC link, with the associated metadata, from the source device to the receiving device. Subsequent to transmitting the data item, the source device responds to a request from the receiving device by transmitting one or more additional data items that are provided at the location of the transferred data item.

Still further, some embodiments receive a data item, and metadata associated with the data item, from a source device using a near field communication (NFC) link. The metadata identifies a location on the source device where the data item is provided. A request is transmitted to the source device that specifies the location identified by the metadata. One or more additional data items are received from the source device. The receiving device then outputs content that is based on the received data item and one or more additional data items.

Still further, some embodiments provide for a source device and a receiving device that operate to transfer data items from the source device to the receiving device, and to output content that is based on the received data items.

One or more embodiments described herein provide that methods, techniques and actions performed by a computing device are performed programmatically, or as a computer-implemented method. Programmatically means through the use of code, or computer-executable instructions. A programmatically performed step may or may not be automatic.

System Description

FIG. 1illustrates an example system for transferring data items amongst computing devices, according to one or more embodiments. A system such as described byFIG. 1can be implemented amongst two computing devices that are brought in proximity (e.g.,10cm) or contact with one another so as to trigger a near-device pairing. In some embodiments, the near-device pairing can be provided with a near field communication (NFC) link. More specifically, a system10can be implemented between a first computing device that is the source of data items (“source device100”) and a second computing device that receives the data items (“receiving device150”). Each of the source and receiving devices100,150can be anyone of a possible number of computing devices, such as, for example, a mobile computing device (e.g., cellular telephony device), tablet, laptop, media player, camera, television, printer, audio/media system, projector or other computing device. In variations, one device (e.g., the receiving device150) can correspond to a vendor machine, such as a kiosk or vending machine. In various examples described, the role of the computing devices in being source or receiving can be reversed for other data item transfers.

With reference toFIG. 1, source device100operates one or more applications110, and maintains a memory management system120to organize or otherwise structure its stored data items (e.g., files, folders, directories). In the example provided byFIG. 1, memory management120includes one or more directories122, each of which provide access to data items that can be opened and/or outputted on the source device100and/or transferred to the receiving device150. Examples of such data items include images, video clips, audio clips (e.g., voice message or song), records, or documents (e.g., word processing, web pages). As an example, source device100may maintain a collection of images, organized by photo album directories, in memory. The source device100can also include one or more communication resources130, including for example, an NFC interface132, and local wireless interface (e.g., Bluetooth, Infrared (IR), Wireless Fidelity or WiFi (802.11a, 802.11b, 802.11g, 802.11n) etc.)134.

Similarly, receiving device150includes the communication resources160, including an NFC interface162and local wireless communication interface164(e.g., Bluetooth, Infrared (IR), Wireless Fidelity or WiFi (802.11a, 802.11b, 802.11g, 802.11n) etc.). For purpose of illustrating an embodiment, the receiving device150includes one or more applications180that generate output content165based on data items155that are received from the source device100via communication resources160(e.g., over NFC link148). As described in greater detail, the receiving device150can also include functionality for generating a subsequent request172for additional data items125, after receiving data an initial transmission for a first data item.

In operation, the application110operates to receive command input105from a user, and to transfer a user-selected, first data item115(as specified by the command input105) maintained in the device memory to the receiving device150. Accordingly, the command input105may select the first data item115to transfer. The command input105may contemporaneously also initiate the establishment of the communication link for transferring the data item. In particular, the command input105can be generated as part of an NFC environment. For example, the source and receiving devices100,150can include NFC capabilities, which include software layers and functionality which are integrated into the operating system of each of the respective devices (e.g., user-interface, middleware etc.). Thus, an NFC link148can be established by, for example, bringing the respective NFC interfaces132,162of the source and receiving devices100,150in sufficient proximity to enable the NFC link148to be established. The establishment of the NFC link148can be done prior to or after the command input105specifying the NFC transfer is received. In some variations, the establishment of the NFC link148can be in response to the command input105. Still further, the establishment of the NFC link148and the command input105to select and transfer one of the data items115can be performed at one time. For example, a user can open a picture on the source device100, then tap the source device with the receiving device150in order to provide the command to transfer the opened image to the receiving device.

Accordingly, the command input105can include or correspond to a selection of a specified first data item115. For example, the user can operate application110(e.g., photo-viewing application, document viewer) to scan one of the directories122and select the specified data item115. Alternatively, the user can create or store the specified first data item115, and then select to share the data item via the NFC link148.

Accordingly, in response to receiving the command input105, an embodiment provides that application110operates to establish a communication link with the receiving device150. As described with various embodiments, the communication link can be NFC link148. A communication handler140represents functionality that, on source device100, interfaces the application with communication interfaces, such as NFC interface132. The communication handler140can be provided as, for example, separate functionality (e.g., as separate application), as part of the device operating system, and/or as part of the one or more of the applications110that use the communication interfaces. According to some embodiments, the communication handler140includes functionality for generating a set of metadata117for use in transferring the first data item115. In an embodiment, communication handler140is provided on the source device100as a separate component from the application110. In variations, the application110can include functionality represented by the communication handler140. The communication handler140can generate metadata117that identifies a location119of the selected data item115on the source device100. The location119can be provided by, for example, a link, and can map to, for example, one of the directories122maintained by the memory management120. As an example, the metadata117can correspond to an NFC tag that identifies one or more attributes of the selected first data item115, including the file location of the data item115. Other attributes, such as the date the first data item115was created or modified, permissions or restrictions of the first data item115, etc. can also be included with the set of metadata117(e.g., NFC tag).

The source device100generates a first data transmission145, corresponding to the first data item115and its associated metadata117, to the receiving device150using the NFC link148. The NFC interface162of the receiving device150operates to receive the first data transmission145that is assimilated into data item155and associated metadata157. The assimilated data item155and metadata157can correspond to the data item115and associated metadata117selected for transmission on the source device100. The data item155can be a rendition or duplicate of the data item115. Likewise, the metadata157can correspond to or be based on the metadata117generated on the source device100. The first data transmission145can communicate the data item155and metadata at one time, (e.g., in one session), or separately (e.g., in successive transmissions).

The communication handler170of the receiving device150includes functionality that handles the incoming data item155and metadata157. In an embodiment, the communication handler170associates the incoming data item155to an application. For example, the communication handler170can associate the data item155to an application based on data type and/or the application that is running on the receiving device.

In embodiments, the communication handler170includes logic to programmatically generate one or more requests172for additional data items125. The requests172can be communicated to the source device100using the communication resources160(e.g., the NFC interface162). The communication handler140of the source device100can process and respond to the request172. In one implementation, the request172is identifiable on the source device100as being a response to the first data transmission145which communicated the first data item115. For example, the request172can be associated with the first data transmission145because the source and receiving devices100,150are linked via NFC. Because the source device100can identify the request172to the first data item115, the source device can also identify the location119of the first data item115for purpose of identifying other data items at that location for possible communication to the receiving device150. In variations, the request172can include data that identifies the first data item115and/or the first data item's location (based on location data that can be optionally included in the first data transmission145).

In an embodiment, the request172can also specify additional selection criterion, such as data type, or other attributes. For example, the request172can specify additional criteria that includes the file type of the first data item115. In variations, the additional criteria can be generated or imposed on the source device100, independently of the request172, based on the source device's knowledge of the first data item115.

The communication handler140of the source device100can include functionality to generate the response (e.g., subsequent data transmissions149) to the request172. In one embodiment, the communication handler140can scan the location119of the first data item115for one or more additional data items125that satisfy criteria for responding to the request172. The criteria can specify data items by location (e.g., being in the same directory or folder as the first data item115), as well as optionally by type or other attribute.

The communication handler140can identify a set of one or more additional data items125as a response to the request172. A subsequent data transmission149corresponding to the set of data items125can be communicated to the receiving device150. In one implementation, the data transmission149is communicated via the NFC link148, or via a subsequently established NFC link. In variations, the data transmission149is communicated via an the alternative local wireless interface134to the corresponding interface164of the receiving device150. For example, the source device100can establish a Bluetooth link with the receiving device150for purpose of communicating the subsequent data transmission149.

The receiving device processes the subsequent data transmission149in order to identify additional data items175that correspond to the set of additional data items125residing on the source device100. For example, the subsequent data transmission149can result in the communication handler170of the receiving device150establishing data items that are reductions (e.g., thumbnails), renditions or duplications of the set of additional data items125.

The first established data item155and the additional data items175are communicated to the application180for output. In some implementations, the application180coincides with the same application that executes on the source device100when the first data item155is transmitted. In variations, however, the source and receiving device may operate different applications. In an embodiment, the application180can generate an output content165that renders the data items155and the additional data items175. Various formats, styles or processes can be used to render the data items155,175. For example,FIG. 3illustrates an example in which the first data item is rendered as a primary image that occupies a majority of the display surface, which the data items in the subsequently obtained set are displayed as reductions that occupy, for example, a bar provided over a region of the display surface. In variations, the data items can require audio output (e.g., songs), rather than (or in addition to) visual output.

Still further, in some implementations, the individual data items can be displayed with features to enable the individual images to be selectable. For example, the user may be able to interact with the receiving device150to select one of the additional data items175, which can be reductions, for full viewing or transfer. The interaction can cause a follow on request174to the source device for another data transmission that provides a copy of the selected data item.

As an addition or alternative, one or more follow-on requests174can be generated on the receiving device150, in response to user-input or other events that are provided with the receiving device. For example, as described with other examples, the follow-on requests174can specify operations that are to be performed on select data items that were transferred in the first data transfer145(e.g., first data item115) or second data transfer149(e.g., additional data items125). In variations, the operations can be performed on either the receiving device150, the source device100, or both of the receiving and source devices. The follow-on requests174can include requests for the source device100to perform such operations (e.g., print from the source device), or to have the source device100transmit copies (e.g., larger data size versions) to the receiving device150. The receiving device150can, for example, request a full copy to enable an operation (e.g., print) to be performed from the receiving device150. Thus, for example, the receiving device can display the additional data items175to facilitate user selection and manipulation of a collection of data items that are originally provided on the source device100.

As an alternative example, the source and receiving devices100,150may establish a link using a local radio-frequency or IR interface134,164, respectively. To detect a near-device pairing environment (e.g., devices are brought to within10cm of each other), sensors such as for detecting proximity, depth or location can be used. For example, the source and receiving devices100,150can utilize a proximity sensor, depth sensor, camera or other component to detect when a designated near-device pairing condition is met. Once the condition is met, the devices can operate as described with other examples such as recited with, for example,FIG. 1.

Methodology

FIG. 2illustrates an example method for transferring data items amongst computing devices using an NFC link, according to one or more embodiments. A method such as described with an embodiment ofFIG. 2may be implemented using a system such as described with an example ofFIG. 1. Accordingly, reference may be made to elements ofFIG. 1for purpose of illustrating a suitable element for performing a step or sub-step being described.

On source device100, a command input105is received to transfer the data item115to the receiving device (210). The command input105can be entered by a user. For example, a user can operate application110(e.g., document viewer, photo-viewer) to select the data item115. The application110can include or provide memory management resource120to enable the user to, for example, browse or search and select the data item115. In some implementations, the selection of the data item115can be made in connection with the establishment of the NFC link148. For example, in one implementation, the user can select the data item115and then perform the action for establishing the NFC link148with the receiving device (e.g., the user can tap the two devices together to establish the NFC link148). Alternatively, the NFC link148can be established at the time of selection of data item115.

In response to the user selecting the data item115and establishing the NCF link148, an embodiment provides that the source device generates metadata117, in the form of an NFC tag (220). The NFC tag can identify the location119of the selected data item115. The location119can be specified relative to the structure defined by the memory management resource120of the source device100. For example, the tag can identify a folder or directory of the source device100.

The NFC tag can be associated with the data item115and transmitted to the receiving device150(230). The generation and transmission of the NFC tag can be performed automatically, in response to, for example, the user selecting the data item115for transmission. Alternatively, the NFC tag can be retained on the source device100for responding to follow-on requests172,174from the receiving device150.

On the receiving device, the transmission for the data item and associated NFC tag is received (240). The receiving device150includes resources (e.g., communication handler170) to generate the request172based on information contained in the NFC tag.

The receiving device150generates the request172for additional data items (250). For example, the communication handler170can be triggered by the NFC tag associated with the firs data item to generate the request172. The request can be made for using the established NFC link148, or alternatively, the receiving device can establish a new NFC link to communicate the request172(252). Alternatively, the requests172can be transmitted using an alternative communication medium, such as a local wireless communication port (e.g., Bluetooth) (254).

The request172can be made specific for the location of the data item115(e.g., folder or directory of the data item115). For example, the receiving device150can inpsect the NFC tag to identify the location information for the first data item115, then specify the location information in the request172. In variations, the request172can be processed on the source device100to be specific to the location of the first data item115. For example, the source device100may be programmed to associate the request172from the receiving device with the prior transmission from the source device. When the follow-on request from the receiving device is received, the source device100automatically scans the location of the first data item115.

The source device100responds to the request172by identifying a set of additional items125that are at the location119of the request172(260). In some embodiments, the source device100applies one or more additional criteria in identifying the set of additional data items175for transmission (262). The examples of additional criteria can include determining a same data type of class (263). For example, if the original data item is an image file (e.g., JPEG), then the set of additional data items may be selected in part based on the criteria of their data types being the same (e.g., JPEG) or of a same class (e.g., GIF). The additional criteria can also specify other attributes, such as creation date, author, modification date, permissions etc. (265).

In response to receiving request172, source device100sends the identified one or more additional data items175to the receiving device150(270). The additional data item(s) are selected from the location identified from the request172. The additional data items175can be transmitted using the NFC link148(272). As a variation, the additional data items175can be sent to the receiving device150using an alternative local wireless link, such as a Bluetooth interface (274).

On the receiving device150, the additional data items175are received (280). For example, the communication handler170can receive the data items175. The application180can use the first data item155and the additional data items175to output content that utilizes the individual data item (290). An example of the output is illustrated with an example ofFIG. 3.

USAGE EXAMPLES

FIG. 3illustrates an example of two computing devices that transfer data items in accordance with one or more embodiments. In the example ofFIG. 3, a source device corresponds to a mobile computing device310, such a cellular telephony/messaging device or tablet, and the receiving device corresponds to a large form factor device320, such as a personal computer or television. The large form factor device320can provide a large display surface321for a user to view images that originally resides on the mobile computing device310.

Each of the mobile computing device310and large form factor device320include a corresponding NFC interface312,322. In the example shown, an NFC link315can be established between the two devices using their respective NFC interfaces312,322.

In the example shown, the mobile computing device310displays an image or other content prior to the NFC link315being established. Once the NFC link315is established, the two devices display the same content. In addition, the large form factor device320is able to use location information provided with the transmitted NFC tag in order to identify additional content items, which it can display in various forms (e.g., in the form of a channel bar).

More specifically, with reference to the example provided, the source device (e.g., mobile computing device310) transmits a first data item to the receiving device (e.g., large form factor device320). In response to receiving the first data item, the large form factor device320request additional data items that have a common location with the first data item. The mobile computing device310then transmits the additional data items to the large form factor device320.

In the example shown byFIG. 3, the data items may correspond to images or documents. The large form factor device320creates a presentation330that includes the data items the device receives from the source device310. In the example shown, the presentation330displays the first data item as primary content332, and the additional data items as supplemental content334. The additional data items can be presented, for example, in linear form across a segment of the primary content332. In an implementation such as shown, the additional data items can be transmitted from the mobile computing device310in reduced form, so as to have a smaller data size than the original version of the data items on the source device. Each of the images shown in the supplemental content334can be selectable, so that, for example, user input results in the large form factor device320making another selection from the mobile computing device310for a full or larger version of that particular data item.

With reference to the example ofFIG. 3, the mobile computing device310can be used to store, for example, a collection of images or other data items. When the NFC link315is established with the large form factor device, both devices can display the same image at the same time. In addition, embodiments described herein provide that the receiving device320can display multiple additional images, which may not necessarily be on display on the mobile computing device310. As shown with the example ofFIG. 3, the additional images may be displayed in, for example, a linear and reduced form. Furthermore, the presentation can be interactive, to enable the user to select both the primary and the reduced images for additional operations. With user selection of, for example, one of the reduced images, the large form factor device320can make an additional request for that data item, and render the additional data item as the primary content332. In this way, the user can, for example, interact with the large form factor device (or receiving device) in order to select or otherwise perform operations on data items that reside on the mobile computing device (or source device).

According to some embodiments, the sequence of data transmissions that result in the transfer of data items can be performed in a relatively short duration of time, coinciding with the establishment of the NFC link315. For example, the sequence of data transmissions can occur during a duration in which the two devices are brought in proximity and tapped against one another.

ALTERNATIVE USAGE EXAMPLES

While an example ofFIG. 3illustrates an implementation in which images are transferred, variations to the example described can provide for other types of data items to be transferred. For example, in one implementation, the combination of data items can include images/documents and audio. For example, the first data item that is transmitted from the source device may correspond to an image, and one or more of the subsequent data items may correspond to audio files, such as a music file.

In another implementation, the source device may provide the receiving device with a first data item that corresponds to an audio file, such as a music file. The receiving device may request additional music files in response to receiving the additional transmission. In such an example, the additional music files may, for example, be associated on the source device with a common playlist of the first music file that is transmitted. Alternatively, the additional music files that are requested by the receiving device can comprise additional tracks of a compilation (e.g., album). Thus, the metadata that is transmitted with the first music file can identify a playlist or compilation. As another variation, the additional data items can include images, such as album art, which are displayed while the music files are played back.

As another example, the larger form factor device320can alternatively be a printer. In operation, the mobile computing device310can generate the NFC link315to transfer a first item for print. A process such as described with various examples herein can be implemented in order to display, on for example, a display screen of the printer, multiple items for print selection on a file folder of the display device. With further reference to the example ofFIG. 1, the print device can receive the first data item (e.g., data item115), then request (e.g., via request172) additional data items (e.g., data items125) from the same file folder (e.g., location119) of the source device. Thus, the first data item can be, for example, printed on the printer (acting as the receiving device150), and the printer can display thumbnail or reduced versions of the additional data items (e.g., data items175) for user selection. The user can then interact with the printer in order to select the additional data items for print. In one implementation, when additional data items are selected for print by the user (interacting with the receiving device), the receiving device can request (e.g., follow-on requests174) full copies of the selected items for purpose of performing additional print operation.

As another example, the receiving device can correspond to a kiosk or vending machine, and a user can link a device to the kiosk or vending machine in order to perform operations such as print, copy etc. As described with other embodiments, the kiosk or vending machine can automatically request additional data items for reduced or thumbnail presentation.

As with many examples described herein, the use of near-device pairing (e.g., through NFC link315ofFIG. 3) provides inherent security feature, in that the operator of the source device is present at the receiving device. Thus, embodiments recognize that the receiving device can be implemented to automatically request additional data items based on an assumption that the link between the two devices is secure, and the user interaction with both devices is with the same user.

Hardware Diagram

FIG. 4illustrates an example hardware diagram for a computer system upon which embodiments described herein may be implemented. For example, in the context ofFIG. 1, the source and receiving devices100,150that comprise system10can each be implemented using a computer system such as described byFIG. 4. According to embodiments, each computing device400can correspond to one of a mobile computing device (e.g., cellular device that is capable of telephony, messaging, and data services), tablet, laptop, netbook, media playback device, smart television, media playback device, projector, camera, or personal computer. The computing device400includes a processor410, memory resources420, a display device430, one or more communication sub-systems440, and an input mechanism450. The communication sub-system440includes a NFC system442. The memory resources can be structured or otherwise provided an organization layer corresponding to, for example, a directory structure424.

The processor410is configured with software and/or other logic to perform one or more processes, steps and other functions described with embodiments, such as described byFIG. 1-3, and elsewhere in this document. Processor410can be configured, with instructions and data stored in the memory resources420, to implement functionality such as described with the source device100or the receiving device150. For example, instructions for generating the metadata (e.g., NFC tag), as described by some embodiments, can be stored in the memory resources420. When implemented for source device100, the processor410can execute instructions to (i) enable a user to select (e.g., via input mechanism450) the data item422, (ii) automatically associate a set of metadata or tag445with the data item422to identify its location (e.g., relative to the directory structure424), (iii) control transmission of the data item422and the metadata424through the NFC interface442, and (iv) identify and send additional data items423to the receiving device in response to receiving the request from the receiving device. When implemented on the receiving device150, the processor410can execute instructions to (i) process the first or initial data item from the source device, (ii) automatically generate the request for452additional data items, and (iii) output content that is based on the received data items.

The processor410can provide content to the display430by executing instructions and/or applications that are stored in the memory resources420. In some embodiments, the content can also be presented on another display of a connected device via a wire or wirelessly. Still further, an audio data item (e.g., music) can be outputted through an audio component460.

Although illustrative embodiments have been described in detail herein with reference to the accompanying drawings, variations to specific embodiments and details are encompassed by this disclosure. It is intended that the scope of embodiments described herein be defined by claims and their equivalents. Furthermore, it is contemplated that a particular feature described, either individually or as part of an embodiment, can be combined with other individually described features, or parts of other embodiments. Thus, absence of describing combinations should not preclude the inventor(s) from claiming rights to such combinations.