Patent Publication Number: US-8990406-B2

Title: System and method for information sharing using near proximity communication

Description:
FIELD 
     The subject technology relates in general to information sharing, and more particularly to information sharing using near proximity communication. 
     BACKGROUND 
     With the advancement of network technologies and rapid development of many social networks (e.g., Facebook, LinkedIn, MySpace, Twitter, Google+, etc.), people may share information in a verity of methods. For example, via email, one can attach files intended to be shared including a host of documents and media files (e.g., image files, audio files, video files, etc.) to an email message or provide links to the online sources of information by including one or more uniform resource locator (URLs) that point to the online sources. Sharing information via social networks is also very popular and effective for a number of purposes, for example, people may readily share various media files and even have their peers informed about their whereabouts and kind of activities they are enjoying. 
     Using mobile phones, money can be transferred from one account to another account. Mobile phones can also be used as credit card readers for transferring money from a credit card account of a credit card holder to an account associated with another person. A credit card holder may also setup a mobile phone to store the credit card information and use the mobile phone, instead of the credit card to perform transactions with a machine such as an automated teller machine (ATM). 
     SUMMARY 
     In one aspect of the disclosure, a non-transitory machine-readable medium may comprise instructions stored therein and executable by one or more processors to facilitate performing a method for facilitating sharing source data. The method may comprise supporting communication based on a first communication protocol between a first device and a remote device. The communication may be associated with a source data, and may be based on detection of presence of a second device within five feet of the first device. The method may facilitate receiving a first token, associated with the source data. Encoding the first token to enable communication using a near proximity communication (NPC) protocol may be facilitated. Communication of the first token to the second device, located within five feet of the first device, may be facilitated using the NPC protocol to en The second device may be unable to access the source data without using the first token. The NPC protocol may be different from the first and second communication protocols, and the first communication protocol may be the same or different from the second communication protocol. The NPC protocol may support a data transfer rate that is not greater than a data transfer rate supported by the first communication protocol or a data transfer rate supported by the second communication protocol. The NPC protocol may be a wireless communication protocol that supports automatic connection between at least two devices located within five feet. The first device may be an NPC-enabled device adapted to detect presence of the second device within five feet of the first device, and the first device may be a communication end point device. 
     In another aspect of the disclosure, a non-transitory machine-readable medium may comprise instructions stored therein and executable by one or more processors to facilitate performing a method for facilitating sharing source data. The method may comprise facilitating receiving a token associated with the source data. Encoding the token to enable communication using a near proximity communication (NPC) protocol may be facilitated. Communication of the token to a second device, located within five feet of a first device, may be provided using the NPC protocol to enable the second device to access the source data utilizing a communication protocol. The second device may be unable to access the source data without using the token. 
     The NPC protocol may be a wireless communication protocol that supports automatic connection between at least two devices located within five feet. The first device may be an NPC-enabled device adapted to detect presence of the second device within five feet of the first device, and the token may be a non-public token. 
     In yet another aspect of the disclosure, an apparatus for facilitating sharing source data may comprise a processor operable to facilitate receiving a token associated with the source data stored in the apparatus or another device. The processor may be operable to facilitate encoding a token to enable communication using a near proximity communication (NPC) protocol. An NPC interface may be operable to provide for communication, using the NPC protocol, to a first device located within five feet of the apparatus, the token to enable the first device to access the source data utilizing a communication protocol. The first device may be unable to access the source data without using the token. The NPC protocol may support a data transfer rate that is not greater than a data transfer rate supported by the communication protocol. 
     The NPC protocol may be a wireless communication protocol that supports automatic connection between two or more devices located within five feet of one another. The apparatus may comprise an NPC-enabled device adapted to detect presence of the first device within five feet of the apparatus, and the source data may be non-public data. 
     In yet another aspect of the disclosure, a method for facilitating sharing source data may comprise supporting communication based on a first communication protocol between a first device and a remote device. The communication may be associated with a source data and may be based on detection of presence of a second device within five feet of the first device. Receiving of a first token associated with the source data may be facilitated. Encoding the first token to enable communication using a near proximity communication (NPC) protocol may be facilitated. Communication of the first token to the second device, located within five feet of the first device, may be facilitated using the NPC protocol to enable the second device to access the source data utilizing a second communication protocol. The second device may be unable to access the source data without using the first token. The NPC protocol may be different from the first and second communication protocols, and the first communication protocol may be the same or different from the second communication protocol. The NPC protocol may support a data transfer rate that is not greater than a data transfer rate supported by the first communication protocol or a data transfer rate supported by the second communication protocol. The NPC protocol may be a wireless communication protocol that supports automatic connection between at least two devices located within five feet. The first device may be an NPC-enabled device adapted to detect presence of the second device within five feet of the first device, and the first device may be a communication end point device. 
     In yet another aspect of the disclosure, a method for facilitating sharing source data may comprise facilitating receiving a token associated with the source data. Encoding the token to enable communication using a near proximity communication (NPC) protocol may be facilitated. Communication of the token to a second device, located within five feet of a first device, may be facilitated, using the NPC protocol to enable the second device to access the source data utilizing a communication protocol. The second device may be unable to access the source data without using the token. The NPC protocol may be a wireless communication protocol that supports automatic connection between at least two devices located within five feet of one another. The first device may be an NPC-enabled device adapted to detect presence of the second device within five feet of the first device, and the token is non-public token. 
     In yet another aspect of the disclosure, a non-transitory machine-readable medium comprising instructions stored therein and executable by one or more processors to facilitate performing a method for facilitating sharing source data may comprise facilitating receiving, at a first device, a first token associated with the source data, from a second device located within five feet of the first device, using a near proximity communication (NPC) protocol. The method may also support generation of the first token based on detection of presence of the first device within five feet of the second device. The first token may be an encoded first token for near proximity communication. The first token may be a non-public token and may be based on the source data for sharing. The receipt of the first token may be based on the detection. Decoding the first token may be facilitated. Communication based on a first communication protocol to a third device to download the source data using the decoded first token may be provided. The first device may be an NPC-enabled device, having an NPC interface, to allow presence of the first device to be detected by the second device when the first device is within five feet of the second device. The second device may be an NPC-enabled device, and the NPC protocol may support a data transfer rate that is not greater than a data transfer rate supported by the first communication protocol. The NPC two or more devices located within five feet of one another. 
     In yet another aspect of the disclosure, an apparatus for facilitating sharing source data may comprise a processor operable to facilitate receiving a first token associated with the source data from a first device, located within five feet of the apparatus using an NPC protocol. The first token may be based on detection of presence of the apparatus within five feet of the first device, and the first token may be an encoded first token for near proximity communication. The first token may be a non-public token and may be based on the source data for sharing. The processor may be operable to facilitate decoding the first token. The processor may be operable to provide for communication based on a first communication protocol to a second device to download the source data using the decoded first token. The apparatus may be an NPC-enabled device, having an NPC interface, to allow presence of the apparatus to be detected by the first device when the apparatus is within five feet of the first device. The first device may be an NPC-enabled device, in addition, the NPC protocol may support a data transfer rate that is not greater than a data transfer rate supported by the first communication protocol. The NPC protocol may be a wireless communication protocol that may support automatic connection between at least two devices located within five feet. 
     In yet another aspect of the disclosure, a method for facilitating sharing source data may comprise facilitating receiving, at a first device, a first token associated with the source data, from a second device located within five feet of the first device, using a near proximity communication (NPC) protocol. The NPC protocol may support generation of the first token based on detection of presence of the first device within five feet of the second device. The first token may be an encoded first token for near proximity communication and may be a non-public token. The first token may be based on the source data for sharing, wherein the receipt of the first token is based on the detection. Decoding the first token may be facilitated. Communication based on a first communication protocol to a third device to download the source data using the decoded first token may be provided for. The first device may be an NPC-enabled device, having an NPC interface, to allow presence of the first device to be detected by the second device when the first device is within five feet of the second device. The second device is an NPC-enabled device, and the NPC protocol may support a data transfer rate that is not greater than a data transfer rate supported by the first communication protocol. The NPC protocol may be a wireless communication protocol that supports automatic connection between two or more devices located within five feet of each other. 
     It is understood that various configurations of the subject technology will become readily apparent to those skilled in the art from the disclosure, wherein various configurations of the subject technology are shown and described by way of illustration. As will be realized, the subject technology is capable of other and different configurations and its several details are capable of modification in various other respects, all without departing from the scope of the subject technology. Accordingly, the summary, drawings and detailed description are to be regarded as illustrative in nature and not as restrictive. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
         FIGS. 1A-1D  are conceptual block diagrams of examples of systems for sharing information using a near proximity communication (NPC) protocol. 
         FIGS. 2A-2C  are conceptual block diagrams of examples of systems for sharing information using the NPC protocol. 
         FIGS. 3A-3B  are diagrams of examples of tokens including metadata associated with source data shared using the NPC protocol. 
         FIG. 4  is a block diagram of an example of a source data that can be shared using the NPC protocol. 
         FIG. 5  is a conceptual block diagram of an example of a device for sharing information using the NPC protocol. 
         FIG. 6  is a conceptual block diagram of an example of a device for receiving shared information using the NPC protocol. 
         FIGS. 7A-7C  are flowcharts illustrating exemplary methods for sharing information using the NPC protocol. 
         FIGS. 8A-8B  are flowcharts illustrating exemplary methods for sharing information using the NPC protocol. 
         FIGS. 9A-9B  are flowcharts illustrating exemplary methods for downloading a source file using the information shared based on the NPC protocol. 
         FIG. 10  is a conceptual block diagram of an example of a device or server. 
         FIG. 11  is a block diagram representing an example of an apparatus for sharing information using NPC protocol. 
         FIG. 12  is a block diagram representing an example of an apparatus for sharing information using NPC protocol. 
         FIG. 13  is a block diagram representing an example of an apparatus for sharing information using NPC protocol. 
     
    
    
     DETAILED DESCRIPTION 
     The detailed description set forth below is intended as a description of various configurations of the subject technology and is not intended to represent the only configurations in which the subject technology may be practiced. The appended drawings are incorporated herein and constitute a part of the detailed description. The detailed description includes specific details for the purpose of providing a thorough understanding of the subject technology. However, it will be apparent to those skilled in the art that the subject technology may be practiced without these specific details. In some instances, well-known structures and components are shown in block diagram form in order to avoid obscuring the concepts of the subject technology. Like components are labeled with identical element numbers for ease of understanding. 
     Often information is shared between devices using email or one or more social networks. Certain information may be transmitted among multiple devices using near field communications (NFC). For example, for a credit card transaction, a handheld device such as a mobile phone may be used to function as a credit card substitute, and exchange the credit card information between the mobile phone and an automated teller machine (ATM). In another example of NFC usage, two handheld devices including required NFC hardware and applications may exchange business card information between the two handheld devices. The information shared in such NFC exchanges is generally limited to the information stored in a first device (e.g., a credit card or business card information stored in a mobile phone) and is directly transferred to the second device. The sizes of data files transferred are restricted by the limited data rate of the available NFC technology (e.g., currently 106 Kbits/s-424 Kbits/s) and the practical time duration that the two device are kept touching or in close proximity of each other (e.g., less than twenty centimeters or less than five centimeters). 
     In an aspect of the subject technology, a source data intended to be shared between the first and the second devices may be stored on a remote device and have a desired size not limited by the aspects of the subject technology. The type of the source data is also not limited by the aspects of the subject technology. For example, the source data may comprise data files including media data, connection settings information, device management information, device configuration information and so forth, which can be downloaded by the second device from the remote device by using a token communicated from the first device to the second device using a near proximity communication (NPC) protocol. The NPC protocol may facilitate communication between two devices, which are physically located within approximately five feet of each other, and the two devices may be connected automatically without user intervention or input, and the set-up time for connection is quick (e.g., less than one second). In one example, NPC is not operable outside the five feet range so that if the devices are moved away from each other more than five feet, then the devices are not detectable from each other and cannot communicate with each other using NPC protocol. The data transfer rate in NPC protocol may vary with technology and is not limited by aspects of the subject technology and may include, but is not limited to data rates applicable to NFC protocol. 
       FIGS. 1A-1D  are conceptual block diagrams of examples of systems for sharing information using a near NPC protocol. Systems  100 A- 100 B include a first device  110  (hereinafter “device  110 ”) one or more second devices  120  (herein after “device  120 ”), and one or more remote devices  130  and  140 . Device  110  and device  120  may comprise handheld devices (e.g., mobile phones, personal data assistants (PDAs), tablet computers, laptop computers, etc.). Remote devices  130  and  140  may comprise servers including cloud servers, desktop computers, or portable devices such as laptop computers, tablets, personal data assistants (PDAs), mobile phones and the like. In an aspect, a “remote” device, or a device “remote” to a system or another device, may be a device that is not directly connected to the system or the other device. For example, the remote devices  130  and  140  are remote to both device  110  and device  120 , because remote devices  130  and  140  are not directly connected to device  110  and device  120 , but may be connected indirectly through a network which can include, for example, another server, or the Internet. In particular, device  120  may not have authorized access to remote devices  130  and  140 . 
     A user of device  110  may decide to share, with device  120  or other devices, a source data  135  stored in a source device. In one aspect, a source device may be a remote device such as one or more remote devices  130  and  140  or one or more other remote devices. In another aspect, a source device may be a local device such as device  110  or another local device. In a scenario that source device is a remote device, once the user of device  110  decides to share the source data  135  stored in the source device with device  120 , device  110  may request and obtain information (e.g., metadata) associated with accessing the source data  135  by device  120  (e.g., a token  150 ) from the remote device. Device  110  may encode token  150  to enable communication of the token  150  using the NPC protocol and may communicate token  150  to device  120  using the NPC protocol. For example, the user of first device  110  may position device  110  near device  120  (e.g., at a distance less than five feet, such as a few inches) to enable transfer of token  150  from device  110  to device  120 . Device  120  may then use token  150  to obtain authorized access to remote device  130  and download source data  135  (see  FIG. 1B ). 
     In one aspect, once token  150  is transferred to device  120 , device  110  and device  120  are no longer required to be in close proximity, and devices  110  and  120  can be moved away from each other, for example, for more than five feet, and device  120  can still obtain/download the source data using one or more of the various communication protocols described herein. 
     In a scenario that device  110  is the source device (relevant arrows are not shown in  FIG. 1A  for simplicity), the metadata associated with accessing the source data  135  by device  120  (e.g., token  150 ) can be generated by device  110  and stored in device  110  and can be readily accessed and encoded to enable communication of the token  150  using the NPC protocol to device  120 . Device  120  may then use token  150  to download source data  135  from device  110  (relevant arrows are not shown in  FIG. 1B  for simplicity). In both scenarios, device  120  may download source data  135  by using one or more communication protocols, for example, a peer-to-peer (P2P) protocol, an interactive connectivity establishment (ICE) protocol, a session initiation protocol, a Bluetooth protocol (BT), a wireless fidelity (Wi-Fi) protocol, an extendable messaging and presence protocol (XMPP), a push protocol, or a non-industry standard communication protocol). Even an NPC protocol can be used if the source data is sufficiently small. When downloading source data  135 , device  120  does not need be in close proximity of device  110 , unless source data  135  is downloaded using an NPC protocol. 
     In an aspect, device  120  may comprise a mobile device provided to a new employee of a business entity (e.g., a company, corporation, organization, firm, etc.) and device  110  may be a mobile device used by an information technology (IT) person of the business entity. The IT person may use device  110  to setup or configure device  120  of a number of new employees by merely positioning device  110  near device  120  of each new employee to transfer information necessary to setup and configure device  120  of the new employee and even communicate commands to perform the setup and configurations of the device  120 . The IT person may also use the same technique to update information on device  120  of employees when needed. The configuration of device  120  may comprise providing authentication and connection information for connection to a private network, servers and other computers of the business unit. The IT person may also use device  110  to communicate to device  120 , using NPC protocol, and a file including metadata relating to a source file that may be located in device  110  or a remote device  130 . The new employee may use the metadata to access device  110  using bluetooth or WiFi or device  130  using WiFi or through a proxy server as will be described herein. 
     In another aspect, the remote devices  130  and  140  may represent a number of computing devices or servers of the business entity. The IT person may intend to enable one or more users of devices  120  (e.g., a new employee such as IT technician) to log on to one or more of the remote devices  130  and  140  and perform a host of actions such accessing files and performing device setup, device configuration, or other activities on any of remote devices  130  or  140 . The IT person may position device  110  near device  120  of the IT technician and transfer token  150  to device  120  using the NPC protocol. Token  150  can provide authorized access by the user of device  120  to remote devices  130  and/or  140 . 
     In an aspect, token  150  may be requested and obtained from one of the remote devices, for example, remote device  130 . Device  120  may use token  150  to access device  130  and download source data  135 . Although,  FIGS. 1A-1D , for simplicity, show that source data  135  is stored in remote device  130 , in general, source data  135  may be stored on one or more other remote devices  140  and token  150  may provide access information for connection to the device  140  that holds source data  135  and download permission to download source data  135 . In  FIG. 1B , for simplicity, only one device  120  is shown. In case of multiple devices  120 , for each device  120 , device  110  requests and receives from remote device  130  a respective token  150 , which may include particulars of that device  120  and can be expirable. 
     In systems  100 C and  100 D, devices  110  and  120  are coupled to remote devices  130  and  140  (which may be behind a firewall) via a proxy server  160  (hereinafter “proxy  160 ”). Proxy  160  can establish various modes of communications (e.g., P2P communication through ICE protocol) over a network (e.g., the Internet) between devices that could not reach others directly otherwise. Accordingly, as shown in  FIG. 1C , device  110  may request and obtain information associated with accessing the source data  135  by device  120  (e.g., a token  150 ) from the remote device  130  through proxy  160 , and communicate token  150  to device  120  by using the NPC protocol, as mentioned above. Device  120 , may then access remote devices  130  and/or  140  via proxy  160 , by using token  150  (for simplicity, only one device  120  is shown and coupling to remote devices  140  via proxy server  160  is not shown in  FIG. 1D ). In case source data  135  is stored in device  110  (relevant arrows are not shown in  FIG. 1D  for simplicity), device  120  may access the source data  135  via proxy  160  or by using other communication protocols such as BT protocol. When downloading source data  135 , device  120  may not need be in close proximity of device  110 . 
       FIGS. 2A-2C  are conceptual block diagrams of examples of systems  200 A,  200 B and  200 C for sharing information using the NPC protocol. System  200 A includes device  110 , one or more devices  120 , network  150 , remote device  130 , server  230 , and cloud server  240 . In an aspect, device  110  may instruct remote device  130  to transmit source data  135  of  FIG. 1  to another remote device such as a server  230  or a cloud server  240 . Device  110  may subsequently request and obtain, for each device  120 , a token (e.g., token  150 ), which is created in real time, from remote device  130 . Device  110  may communicate token  150  to each device  120  using NPC protocol. Device  120  may be coupled to remote device  130 , server  230 , and cloud server  240 , via network  250 . Token  150  may comprise metadata including information that enables device  120  to connect to any of server  230  or cloud server  240  that has received the source data  135  transmitted by remote device  130 , and to download source data  135 . 
     In order to access the source data, each device  120  (for simplicity, only one device  120  is shown in  FIG. 2B ) may use metadata included in token  150  to connect to any of server  230  or cloud server  240 , via network  250 , and download source data  135 . Network  250  may include, for example, any one or more of a personal area network (PAN), a local area network (LAN), a campus area network (CAN), a metropolitan area network (MAN), a wide area network (WAN), a broadband network (BBN), the Internet, and the like. Further, the network  250  can include, but is not limited to, any one or more of network topologies, including a bus network, a star network, a ring network, a mesh network, a star-bus network, tree or hierarchical network, and the like. 
     In one example, system  200 C includes device  210 , one or more devices  220 , a web server  260  (e.g., associated with pocketcloud.com), a remote server  270  (e.g., a native access translate (NAT) Traversal server), and source device  280  (optional), coupled via network  250 . Device  210  may receive token  150  of  FIGS. 1A-1D  from remote server  270  (or source device  280 ) via network  250 . In an aspect, source data  135  may be stored in device  210  and device  110  may generate token  150 . As mentioned above, device  210  may encode token  150  to enable communication of token  150  to one or more devices  220  via NPC protocol. Device  220  may use token  150  to access source device  280  or remote device  270 , via network  250 , to obtain source data  135 . In case source data  135  is stored in device  210 , token  150  includes access information associated with device  210 , and device  220  may access device  210  via network  250  or other modes of communication using communication protocols such as BT protocol, P2P protocol and the like. 
     In some aspects, token  150  may be encoded in the form of a uniform resource locator (URL) (e.g., HTTP URL) to allow device  220  to access source data  135  via a website (e.g., pocketcloud.com) represented by the URL of token  150 . The HTTP URL can be launched through any Web browser without the need for any specialized application. The HTTP URL may point to a Web application that contains necessary JavaScript code to detect whether a suitable application (e.g., a remote access application or a PocketCloud application) is installed locally on device  220  or not. If the local application is installed on device  220 , the local application can be launched by the Web browser. The local application may proceed to download source data  135  from, e.g., source device  280 , remote device  270  or device  210 , depending on the information encoded in token  150 , which includes identification information of the device that stores source data  135 . If the application is not installed locally on device  220 , the Web browser may communicate back to the Web Server (e.g., Web server  260 ) and request the Web server to obtain source data  135  from the device that stores the source data  135  (e.g., one of source device  280 , remote device  270  or device  210 ). This may allow the Web browser to subsequently download the file from the Web server  260  without the need of the Web application (e.g., the native application). 
       FIGS. 3A-3B  are diagrams of examples of tokens  150  including metadata associated with source data  135  of  FIG. 1A  shared using the NPC protocol. As mentioned above, source data  135  to be shared by user of device  110  of  FIG. 1A  with users of devices  120  of  FIG. 1A  may be stored in remote devices  130  or  140  of  FIGS. 1A-1D . For this scenario, token  150  may comprise a number of metadata. For example, token  150  may comprise, among other things, information relating to the source devices such as an identifier  310  and authentication information  320  associated with any of source devices (e.g., device  130  or  140 , device  110  or devices  270 ,  280  and  220  of  FIG. 2C ) that holds the source data  135 . Token  150  may also comprise information pertaining to the source data  135 , for example, an identifier  330  and a path  340 . The identifier  330  may identify a file that contains source data  135  among other files, and path  340  may show a path in the file system of the source device that points to the file containing source data  135 . Token  150  may be encoded in the form of a URL  342  (e.g., HTTP URL), which can be launched through any Web browser without the need for any specialized application. 
     In another scenario discussed with respect to  FIGS. 2A-2B  above, the source data is transmitted from device  130  of  FIGS. 2A-2B  to one or more remote servers (e.g., server  230  or cloud server  240  of  FIGS. 2A-2B ). Token  150 , in this scenario, may comprise among other things, information relating to the remote servers such as an identifier  350  and authentication information  360  associated with any of server  230  or cloud server  240  that holds the source data  135 . Token  150  may also comprise information pertaining to the source data  135 , for example, an identifier  370  and a path  380 . The identifier  370  may identify a file that contain source data  135  among other files stored in the remote servers (e.g., server  230  or cloud server  240 ), and path  380  may show a path in the file system of the remote servers that points to the file that contains source data  135 . Token  150  may be issued by the remote device  130  with an expiration time (including date), after which the remote device  130  may not accept token  150  as being valid. Token  150  may also uniquely represent, or be uniquely associated with, one or more of the following: the source data  135 , the device  120 , the user of the device  120 , and a time related to creation or usage of token  150 . In one aspect, token  150  is generated based on, or as a function of (e.g., a hash function), one or more of the following: the source data  135 , the identity of device  120 , the identity of the user of the device  120 , and a time related to creation or usage of token  150 . Token  150  may be a non-public, unique token. Token  150  may be a secure (or encrypted) token. In one aspect, token  150  is temporary and not permanent, and does not exist until the presence of device  120  is detected and the source data is identified. In one aspect, token  150  is generated only after the presence of device  120  is detected by device  110 . In one aspect, token  150  is generated only after the source data  135  for sharing is identified or selected by device  110 . 
       FIG. 4  is a block diagram of an example of source data  135  that can be shared using the NPC protocol. Although the metadata relating to the source data  135  (i.e., token  150  of  FIGS. 3A-3B ) may be limited in size such that the token  150  can be communicated using NPC protocol, no limitation regarding the size or the type of information in the shared source data  135  is exerted by the subject technology. For example, source data  135  may comprise, among other information, media files  410 , source path information  420 , remote desktop connection information  430 , security information  440 , device management information  450 , and device configuration information  460 . Media files may include, for example, audio files  412  (e.g., music, recorded voice and recorded sounds, etc.) video files  414  (e.g., files containing frames of images such as video clips), audio-video files  416  (e.g., movies, video clips with sound), images  418  (e.g., personal picture, graphic arts, images of various objects, advertisement images, etc.) or other files such as text files including PDF files. Source path information  420  may include, for example, a directory name  422 , a folder name  424 , a subfolder name  426  and a file name  428 . Source path information  426  may provide for a user of device  120  of  FIGS. 1A-1D  to access a remote device and update a file. For example, an IT person may use path information  426  to update or make changes to certain files in an employee&#39;s computer. 
     Remote desktop connection information  430  may include, for example, an Internet Protocol (IP) address  432 , a user name  434 , and a file name  436 . Remote desktop connection information  430  may facilitate for a mobile device user (e.g., user of device  120 ) to remotely connect to desktop of a remote computer (e.g., a personal computer) and access a file identified by the file name  436 . Security information  440  may include, for example, a network security information  422  (e.g., a security tokens such as shared secrets and the like) and a security coding information  444  (e.g., cryptographic information such as public-keys and the like). Security information enables the user of device  120  to access secured remote computers or servers. 
     Device management information  450  may include, for example, color depth  452 , resolution  454 , and desktop settings  456 . Device management information  450  may be useful for a user of a mobile device (e.g., device  120 ) and may enable the user to modify various features (e.g., resolution, color, or other settings) of, for example, his/hers desktop computer, remotely, from the mobile device. Device configuration information  460  may include, for example, network configuration information  462 , peripheral device configuration information  464 , and client-server configuration information  466 . A user of a mobile device (e.g., device  120 ) may use network configuration information  462  to configure a device (e.g., the mobile device a remote device such a desktop computer) for connection to a network (e.g., PAN, a LAN, a CAN, a MAN, a WAN, etc.). Peripheral device configuration information  464  may, for instance, be used by the user of device  120  to configure a device (e.g., device  120 , or a remote device such as a remote computer) for connection to a printer (e.g., a dedicated printer or a network printer) or a television for connection to another device such as digital video recorder (DVR). Client server configuration information  466  may provide a user of device  120  to configure a number of remote computers as clients or servers. 
       FIG. 5  is a conceptual block diagram of an example of a device  110  of  FIGS. 1A-1D  or device  210  of  FIG. 2C  for sharing information using the NPC protocol. In the following, for simplicity, references are made to devices  110  and  120 . Such references may also be valid for devices  210  and  220  of  FIG. 2C . Device  110  may include an NPC interface  510 , storage  520 , a processor  530 , a first network interface  512 , a second network interface  514 , a display  540 , and a memory  550  coupled to one another via a bus  555 . It should be understood that communication means other than busses can be utilized with the disclosed configurations. The memory may store various software modules such as a validation module  552 , a remote desktop module  554 , a security module  556 , an encoder  558 , an identification module  560 , a decoder module  562 , and an interface module  570 . NPC interface module  510  may facilitate communication, using NPC protocol, between device  110  and one or more devices  120  of  FIGS. 1A-1D , where a token  150  of  FIGS. 3A-3B  encoded via encoder  558  is communicated from device  110  to device  120 . In an aspect, device  110  may use first network interface  512  to communicate with a source device such as device  110 , device  220 , or a remote device (e.g., remote devices  130  or  140  of  FIGS. 1A-1D , or devices  270  or  280  of  FIG. 2C ) using a first communication protocol (e.g., HTTP protocol or another protocol) to connect to the source device via a network (e.g., network  250  of  FIGS. 2A-2B ). In another aspect, device  110  may use second network interface  514  to communicate with the remote device  130  using a second communication protocol (e.g., P2P protocol, an ICE protocol, a session initiation protocol, a BT protocol a Wi-Fi protocol, an XMPP, a push protocol, or a non-industry standard communication protocol). When using second network interface  514 , device  110  may connect to the source device through a proxy server  160  of  FIGS. 1C-1D . 
     When a first user (e.g., the user of device  110  or  210 ) decides to share a source data  135  of  FIG. 4  with a second user (e.g., a user of device  120 ), the first user may start an application in device  110 . The application may comprise remote desktop module  554  and identification module  560 . Remote desktop module  554  may be configured to facilitate providing for display a desktop representation of a remote device on a display  540  of device  110 . Remote desktop module  554  may facilitate providing for display various files on the source device that may be selected for sharing. The identification module  560  (e.g., in conjunction with remote desktop module  554 ) may be configured to facilitate searching for or selecting source data  135  and identifying source data  135  and providing an identification information of source data  135 . The identification information may comprise, for example, one or more identifiers (e.g., a device name, an IP address, etc.) of the source device, a path in a file system of the source device, or a file name that identifies a file that contains the source data  135 . The first or second network interfaces  512  or  514  may facilitate connection to the source device, and communicating the identification information to the source device. The source device may create token  150  in real time and provide token  150  to device  110 , which can be received by one of the first or second network interfaces  512  or  514 . In an aspect, the provided token  150  sent over proxy server (e.g., proxy server  160 ) using a communication protocol (e.g., XMPP, or ICE) is encoded based on the communication protocol. At device  110 , decoder  562  may decode the encoded token  150 , before encoder  558  facilitates encoding token  150  to enable communication of token  150  via NPC protocol. The NPC interface  510  may communicate the encoded token  150  to device  120 , when the user of device  110  (or device  120 ) positions devices  110  and  120  close to each other (e.g., within five feet). 
     When device  120  as described in more detail with respect to  FIG. 6 , connects to the source device (e.g., remote devices  130  or  140  of  FIGS. 1A-1D , devices  270  and  280  of  FIG. 2C , device  110  or device  220 ) and attempts to access source data  135 , the source device, for example, may obtain an identifier of device  120  or a user of the device  120  and inform device  110  of the attempt. At device  110 , security module  556  may facilitate one or more security measures. For example, security module  556  may cause first or second network interfaces  512  or  514  to receive the identifier of device  120  or the user of the device  120  from the source device. Validation module  552  may validate the identifier by displaying the identifier using display  540  and receiving approval from the user of device  110 . Security module  556  may subsequently cause first or second network interfaces  512  or  514  to communicate the approval to the source device to enable authentication of device  120  or the user of device  120 . In one aspect, security module  445  may cause first or second network interfaces  512  or  514  to communicate to the source device information that can identify device  120  or the user of device  120 , to enable the source device to authenticate device  120  or the user of device  120  when device  120  attempts to access source device to download source data  135 . 
     The interface module  570  may provide user interfaces for communication of various information to the user of device  110 . For example, a user interface provided by interface module  570  and displayed on display  540  may be configured to receive inputs from the user of device  110 , for example, the approval discussed above with respect to the security measures. Display  540  may include a liquid crystal display (LCD) or a touch sensitive display. Processor  530  may be a general-purpose processor (e.g., a central processing unit (CPU)), a graphics processing unit (GPU), a microcontroller, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Programmable Logic Device (PLD), a controller, a state machine, gated logic, discrete hardware components, or any other suitable entity that can perform calculations or other manipulations of information. Processor  530  may execute various applications and software modules stored in memory  550 , for example, validation module  552 , remote desktop module  554 , security module  556 , encoder  558 , etc. In one aspect, some of the applications or modules may be implemented as firmware. 
     In some aspects, various application and software modules such as validation module  552 , remote desktop module  554 , security module  556 , encoder  558 , and the like may be stored on storage  520 , which may include one or more machine-readable media. Storage  520  may include a Random Access Memory (RAM), a flash memory, a Read Only Memory (ROM), a Programmable Read-Only Memory (PROM), an Erasable PROM (EPROM), registers, a hard disk, a removable disk, a CD-ROM, a DVD, or any other suitable storage device. The machine-readable medium may be a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. The term “machine-readable medium” shall also be taken to include any non-transitory medium that is capable of storing, encoding or carrying a set of instructions for execution by the machine and that cause the machine to perform any one or more of the methodologies of the embodiments discussed herein. The term “machine-readable medium” shall accordingly be taken to include, but not be limited to, storage mediums such as solid-state memories, optical media, and magnetic media. Non-transitory medium includes volatile and non-volatile memories. 
     Still referring to  FIG. 5 , in one aspect, utilizing NPC interface (e.g.,  510 ), and device  110  may detect presence of device  120 , for example, automatically without user intervention. For instance, the operating system of device  110  may include an NPC communication module  581  that can monitor and detect presence of NPC-enabled devices. Upon detection of presence of device  120 , the NPC communication module  581  may initiate the application (e.g., the application described with reference to  FIGS. 5 ,  7 A and  8 A) for sharing information, for example, automatically without user intervention. Identification module  560  of the application may enable a user of device  110  to identify or select source data for sharing (e.g., identification or selection of a source device(s) and a file(s) therein) by, for example, providing for display a graphical user interface to allow the user to select a source data among a plurality of source data or allow the user to enter information that identifies the source data (e.g., type in the name of the file). Based on the detection of the presence of device  120 , identification module  560  may also determine an identifier of device  120 . In one example, if multiple devices  120  are detected, then identification module  560  may provide for display the devices that are detected to allow the user of device  110  to select one or more of the detected devices for sharing the source data. 
     In one aspect, device  110  is a hardware device (including software) and is a communication end point device. Device  110  may be, for example, a device handled by an end user. Device  110  typically has a user interface module/device (e.g., items  570 ,  540 ) to provide/receive information to/from a user. In one aspect, device  110  is not a router or an access point that simply routes data transmissions initiated by another hardware device. As a communication end point device, device  110  may initiate a data communication. Device  110  (e.g., utilizing items  560 ,  570 ) may initiate sharing of a source data, for example, based on a user action at device  110  (e.g., based on the selection of the source data and/or selection of device  120 ). In one aspect, device  110  (e.g., utilizing items  560 ,  570 ) may determine the final end destinations of a data communication. For example, item  560  of device  110  may decide that the final end destinations of a data communication are devices  110  and  130  for requesting and receiving a token. Upon receiving and processing the token, device  110  may decide the final end destinations of a data communication are devices  110  and  120  for sending and receiving the processed token, and device  110  may initiate this transaction with device  120 . 
     Device  110  may also initiate a remote desktop session between device  110  (as a first end point) and device  130  (as a second end point) to provide for display at device  110  a representation of the entire desktop of device  130  (or a representation of files or folders on device  130 ), to allow accessing any and all files on device  130  (or allow accessing files that the user of device  110  is permitted to access), and to exchange the request for, and receipt of, a token. 
     In one aspect, device  120  is a hardware device (including software) and is a communication end point device. For example, upon receiving a token, device  120  (e.g., item  652  in  FIG. 6 ) may determine that the final end destinations of a data communication are devices  120  and  130  for requesting and downloading the source data and may initiate the downloading transaction. 
     In one aspect, device  130  is a hardware device (including software) and is a communication end point device. For example, device  130  may be the final destination point to receive a request from device  110  to generate a token for the identified source data. Device  130  may be the final destination point to receive a request from device  120  to provide the source data to device  120 . 
     In one aspect, source data  135  may be non-public information (e.g., information stored on a source device that is not generally accessible to the public without specific permission). A non-public source device may be a server that is not an HTTP server. 
     In one aspect, each of items  510 ,  520 ,  530 ,  555 ,  512 ,  514  and  540  comprises hardware, and each of items in memory  550  comprises software. In one aspect, each of items  510 ,  520 ,  530 ,  555 ,  512 ,  514  and  540  may comprise hardware and software. Item  510  may comprise software such as items  558 ,  562  and/or  581 . Each of items  512  and  514  may comprise software such as items  558 ,  562  and/or  582 . 
       FIG. 6  is a conceptual block diagram of an example of a device  120  of  FIGS. 1A-1D  or device  220  of  FIG. 2C  for receiving shared information using the NPC protocol. In the following, for simplicity, references are made to devices  110  and  120 . Such references may also be valid for devices  210  and  220  of  FIG. 2C . Device  120  may include an NPC interface  610 , storage  620 , a processor  630 , a first network interface  612 , a second network interface  614 , a display  640 , and a memory  650  coupled to one another via a bus  655 . It should be understood that communication means other than busses can be utilized with the disclosed configurations. Memory  650  may store various applications and software modules such as a download module  654 , a remote desktop module  654 , a decoder module  656 , an interface module  658 , an encoder  672 , an NPC communication module  681 , and a network communication module  682  including a Web browser and an application (e.g., a remote access application, PocketCloud application). NPC interface  610  may facilitate communication, using NPC protocol, between devices  120  and device  110  of  FIGS. 1A-1D , where an encoded (i.e. based on NPC protocol) token  150  of  FIGS. 3A-3B  is communicated from device  110  to device  120 , when device  120  is positioned near (e.g., within five feet) of device  110 . Decoder  656  may decode the encoded token  150 . The decoded token  150  may subsequently (prior to an expiration date of token  150 ) be used by device  120  to access source data  135  of  FIG. 4  stored on one of the source devices (e.g., remote devices  130  or  140  of  FIGS. 1A-1D , devices  270  and  280  of  FIG. 2C , device  110 , or device  220 ). FIGs. 
     Download manager  562  may facilitate accessing the source device and downloading source data  135  using decoded token  150  within a time period prior to the expiration time of token  150 . Download manager  562  may cause first network interface  512  to access the source device, via a network (e.g., network  250  of  FIGS. 2A-2B ), using a communication protocol such as HTTP In one aspect, download manager  562  may cause first network interface  614  to access the source device, via a proxy server (e.g., proxy server  160  of  FIGS. 1C-1D ), using a communication protocol such as XMPP or ICE. Remote desktop module  654  may be configured to facilitate displaying a desktop representation of a source device on a display  640  of device  120 . Interface module  658  may provide user interfaces for communication of various information to the user of device  120 . For example, a user interface provided by interface module  658  and displayed on display  640  may be configured to receive inputs from the user of device  120 , for instance, a location in device  120 , where the user wishes to store the downloaded source data  135 . 
     In some aspects, token  150  may include a HTTP URL to allow device  220  to access source data  135  via a website (e.g., pocketcloud.com) represented by the URL of token  150 . The HTTP URL can be launched through the Web browser without the need for any specialized application. The HTTP URL may point to a Web application that contains necessary JavaScript code to detect whether an appropriate application (e.g., remote access application, PocketCloud application) is installed on device  220  or not. If the application is installed locally on device  220 , the local application can be launched by the Web browser. The local application may proceed to download source data  135  from the source device. If the necessary application is not installed locally on device  220 , the Web browser may communicate back to the Web Server (e.g., Web server  260  of  FIG. 2C ) and request the Web server to obtain source data  135  from the device that stores the source data. This may allow the Web browser to subsequently download the file from the Web server  260  without the need of the Web application (e.g., the native application). 
     Display  640  may include a liquid crystal display (LCD) or a touch sensitive display. Processor  630  may be a general-purpose processor (e.g., a central processing unit (CPU)), a graphics processing unit (GPU), a microcontroller, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Programmable Logic Device (PLD), a controller, a state machine, gated logic, discrete hardware components, or any other suitable entity that can perform calculations or other manipulations of information. Processor  630  may execute various applications and software module stored in memory  650 , for example, download manager  652 , remote desktop module  654 , decode  656 , and interface module  658 . In one aspect, some of the applications or modules may be implemented as firmware. In some aspects, various applications and software modules such as download manager  652 , remote desktop module  654 , decode  656 , and interface module  658  may be stored on a storage  620 , which may include one or more machine-readable media. Storage  620  may include a Random Access Memory (RAM), a flash memory, a Read Only Memory (ROM), a Programmable Read-Only Memory (PROM), an Erasable PROM (EPROM), registers, a hard disk, a removable disk, a CD-ROM, a DVD, or any other suitable storage device The machine-readable medium may be a single medium or multiple media (e.g., a centralized or distributed database, and/or associated caches and servers) that store the one or more sets of instructions. 
     In one aspect, each of items  610 ,  620 ,  630 ,  655 ,  612 ,  614  and  640  comprises hardware, and each of items in memory  650  comprises software. In one aspect, each of items  610 ,  620 ,  630 ,  655 ,  612 ,  614  and  640  may comprise hardware and software. Item  610  may comprise software such as items  672 ,  656  and/or  681 . Each of items  612  and  614  may comprise software such as items  672 ,  656  and/or  682 . 
       FIGS. 7A-7B  are flowcharts illustrating exemplary methods  700 A and  700 B for sharing information using the NPC protocol. Method  700 A is implemented at device  110  of  FIGS. 1A-1D  or device  210  of  FIG. 2C . In the following, for simplicity, references are made to devices  110  and  120  of  FIGS. 1A-1D . Such references may also be valid for devices  210  and  220  of  FIG. 2C . Method  700  A begins at operation  710 , where device  110  supports communication based on a first protocol (e.g., HTTP or XMPP) between device  110  and the source device (e.g., remote devices  130  or  140  of  FIGS. 1A-1D , devices  270  and  280  of  FIG. 2C , device  110 , or device  220 ). For example, identification module  560  may determine or provide identification information of the source data, and interface  512  or  514  may receive the identification information directly or indirectly through one or more other items such as network communication module  582  (that may provide software support for item  512  and/or  514 ) and/or encoder  558 . Interface  512  or  514  may then facilitate transmission of the identification information from device  110  to the source device, utilizing the first protocol. Hence, at least one of items  560 ,  512 ,  514  and/or other items (e.g.,  582 ) may support communication based on the first protocol between devices  110  and  130 . Information may be encoded into the first protocol utilizing items such as  558  and/or  582 . 
     At operation  720 , device  110  facilitates receiving token  150  of  FIGS. 3A-3B  that is associated with source data  135  of  FIG. 4 . For example, interface  512  or  514  may receive token  150 , which may then be received by one or more items such as items  582 ,  562 ,  558  for processing. Hence, at least one of items  512 ,  514 ,  582 ,  562 ,  558  and/or other items may facilitate receiving token  150 . 
     Device  110  (e.g., encoder  558  and/or other items such as item  581 ) may initiate encoding, or encode, token  150  to enable communication of token  150  using the NPC protocol (operation  730 ). At operation  740 , device  110  may provide for communication of token  150  to one or more devices  120  located within five feet of device  110 . Token  150  may be communicated using the NPC protocol. For example, encoder  558  and/or NPC communication module  581  may allow token  150  to be provided to NPC interface  510 , which may (directly or indirectly) initiate sending token  150  to device  120 . Hence, at least one of items  558 ,  581 ,  510  and/or other items may provide for communication to device  120  the encoded token  150 . In one aspect, once device  110  identifies or selects a source data, all of the operations shown in  FIG. 7A  may be carried out automatically without user intervention. 
     Method  700 B is implemented at device  120  and begins at operation  750 , where device  120  facilities receiving token  150  from device  110 , using the NPC protocol, when device  120  is located within five feet of device  110 . In one example, at least one of items  610 ,  656 ,  681  and/or other items may perform or facilitate performing operation  750 . Device  120  may subsequently decode token  150 , which was encoded for communication based on NPC protocol (operation  760 ). In one example, at least one of items  656 ,  681  and/or other items may perform or facilitate performing operation  760 . At operation  770 , device  120  may provide for communication, based on a communication protocol (e.g., e.g., P2P protocol, an ICE protocol, a session initiation protocol, a BT protocol a Wi-Fi protocol, an XMPP, a push protocol, a non-industry standard communication protocol, or HTTP), to the source device to download source file  135  using decoded token  150 . In one example, at least one of items  612 ,  614 ,  672 ,  682  and/or other items may perform or facilitate performing operation  770 . 
     In one advantageous example, some or all of the operations shown in  FIG. 7B  are performed automatically without user intervention. 
       FIGS. 8A-8B  are flowcharts illustrating exemplary methods  880 A and  800 B for sharing information using the NPC protocol. Method  800 A may be implemented at device  110  of  FIGS. 1A-1D . In the following, for simplicity, references are made to devices  110  and  120  of  FIGS. 1A-1D . Such references may also be valid for devices  210  and  220  of  FIG. 2C . Method  800 A begins at operation  810 , where a user of device  110  starts an application on device  110  to share a source data with a user of device  120  of  FIGS. 1A-1D . At operation  815 , using the application, the user of device  110  searches and locates (or selects from a list) source data  135  of  FIG. 4  stored on a source device (e.g., remote devices  130  or  140  of  FIGS. 1A-1D , devices  270  and  280  of  FIG. 2C , device  110 , or device  220 ). Device  110  may receive metadata (e.g., token  150  of  FIGS. 3A-3B ) related to source data  135  and save the metadata on device  110  (operation  820 ). At operation  825 , device  110  may encode metadata for NPC transfer with an expiration date. The encoded metadata is subsequently shared with device  120  using the NPC protocol (operation  830 ). 
     Method  800 B may be implemented at device  120  and begins at operation  840 , where the user of device  120  starts an application for receiving the encoded metadata from device  110 , which is located within five feet of device  120 . At operation  845 , device  120  may listen for an NPC record received from device  110 , which includes the metadata. Device  120  may decode the metadata (operation  850 ) and at operation  855 , push the metadata to the application&#39;s download queue. The application may comprise download manager  652  of  FIG. 6 , a Web browser or a Web application. At operation  860 , download manager  652  may facilitate downloading source data  135  using the metadata. In some aspects, the source data  135  may be downloaded through the Web browser using a URL included in token  150  or through the Web application. 
       FIGS. 9A-9B  is flowchart illustrating an exemplary method  900  for downloading a source file using the information shared based on the NPC protocol. Method  900 A includes portions  940 ,  950  and  970 . Portion  940  may be implemented at device  110  of  FIG. 1A-1D  or device  210  of  FIG. 2C . In the following, for simplicity, references are made to devices  210  and  220  of  FIG. 2C . Such references may also be valid for devices  110  and  120  of  FIG. 1A-1D . Portion  950  may be implemented at device  120  or  220 , and portion  970  may be implemented by device  260  of  FIG. 2C  or any of devices  130  or  140  of  FIGS. 1A-1D . Portion  940  begins with operation  942 , where at device  210  a file is selected by the user of device  210  to share with device  210 . At operation  944 , NPC communication starts between device  210  and  220 , as described in more detail above. Using the NPC communication, metadata encoded in URL, including information such as, source device identification (SID), source file details (FD), and token  150 , is communicated to device  220  using the NPC protocol (operation  946 ). 
     Portion  950  of method  900 A begins at operation  952 , where NPC information (e.g., the metadata) is received by device  220 . Device  220  may use the Web browser to access a web server  260  (operation  954 ). Server  260 , at operation  974 , the URL points to Web application that contains necessary JavaScript to detect a local Web application. At operation  956 , the Web application detects whether the local Web application (e.g., PocketCloud application) is installed on device  220 . At control operation  958 , if the PocketCloud application is installed on device  220 , control is passed to operation  960 , where the PocketCloud application is launched at device  220  and the SID, FD, and token  150  are passed to the PocketCloud application. Subsequently, at operation  962 , PocketCloud application downloads the source data  135  of  FIG. 1A-1D  form the source device (e.g., remote devices  130  or  140  of  FIGS. 1A-1D , devices  270  and  280  of  FIG. 2C , device  110 , or device  220 ). 
     Otherwise, if the PocketCloud application is not installed in device  220 , control is passed to operation  964 , where a request is made to web server  260  (e.g., a PocketCloud server) to download source file  135 . Subsequently, at operation  972 , server  260  may access source data  135  from the source device. Finally, the Web browser downloads the source file  135  from the web server  260  to device  220  (operation  966 ). 
     In method  900 B, after the operation starts, download manager  652  of  FIG. 6 , at control operation  910 , may inquire one of first network interface  612  or second network interface  614  of  FIG. 6  to find out whether a connection is made between device  120  and a source device (e.g., remote devices  130  or  140  of  FIGS. 1A-1D , devices  270  and  280  of  FIG. 2C , device  110 , or device  220 ). If the connection is made, the control is transferred to control operation  920 , otherwise the download manger  652  keeps inquiring. At control operation  920 , device  120  may determine whether there are any files pending to be downloaded. If there is no pending file, control is transferred back to control operation  910 . Otherwise, at operation  930 , download manager  652  downloads source file  135  using the shared metadata (e.g., token  150  of  FIGS. 3A-3B ). 
       FIG. 10  is a conceptual block diagram of an example of a device or server. System  1000  may comprise remote devices  130  or  140  of  FIGS. 1A-1D  or server  230  or cloud server  240  of  FIGS. 2A-2B , or any device  260 ,  270 ,  280 . System  1000  may be device  110 ,  120 ,  210  or  220 . System  1000  may be device  110  or device  120 . System  1000  includes a processing system  1002 , which may include one or more processors or one or more processing systems. A processor  530  or  630  may be processing system  1002 , and a processor can be one or more processors. The processing system  1002  is capable of communication with a receiver  1006  and a transmitter  1009  through a bus  1004  or other structures or devices. It should be understood that communication means other than busses can be utilized with the disclosed configurations. Processing system  1002  can generate token  150  of  FIGS. 3A-3B . In some aspects, processing system  1002  may generate audio, video, multimedia, and/or other types of data to be provided to the transmitter  1009  for communication. In addition, audio, video, multimedia, and/or other types of data can be received at the receiver  1006 , and processed by the processing system  1002 . 
     The processing system  1002  may include a general-purpose processor or a specific-purpose processor for executing instructions and may further include a machine-readable medium  1019 , such as a volatile or non-volatile memory, for storing data and/or instructions for software programs. The instructions, which may be stored in a machine-readable medium  1010  and/or  1019 , may be executed by the processing system  1002  to control and manage access to the various networks, as well as provide other communication and processing functions. The instructions may also include instructions executed by the processing system  1002  for various user interface devices, such as a display  1012  and a keypad  1014 . The processing system  1002  may include an input port  1022  and an output port  1024 . Each of the input port  1022  and the output port  1024  may include one or more ports. The input port  1022  and the output port  1024  may be the same port (e.g., a bi-directional port) or may be different ports. 
     The processing system  1002  may be implemented using software, hardware, or a combination of both. By way of example, the processing system  1002  may be implemented with one or more processors. A processor may be a general-purpose microprocessor, a microcontroller, a Digital Signal Processor (DSP), an Application Specific Integrated Circuit (ASIC), a Field Programmable Gate Array (FPGA), a Programmable Logic Device (PLD), a controller, a state machine, gated logic, discrete hardware components, or any other suitable device that can perform calculations or other manipulations of information. 
     A machine-readable medium can be one or more machine-readable media. Software shall be construed broadly to mean instructions, data, or any combination thereof, whether referred to as software, firmware, middleware, microcode, hardware description language, or otherwise. Instructions may include code (e.g., in source code format, binary code format, executable code format, or any other suitable format of code). 
     Machine-readable media (e.g.,  1019 ) may include storage integrated into a processing system such as might be the case with an ASIC. Machine-readable media (e.g.,  1010 ) may also include storage external to a processing system, such as a Random Access Memory (RAM), a flash memory, a Read Only Memory (ROM), a Programmable Read-Only Memory (PROM), an Erasable PROM (EPROM), registers, a hard disk, a removable disk, a CD-ROM, a DVD, or any other suitable storage device. In addition, machine-readable media may include a transmission line or a carrier wave that encodes a data signal. Those skilled in the art will recognize how best to implement the described functionality for the processing system  1002 . According to one aspect of the disclosure, a machine-readable medium is a computer-readable medium encoded or stored with instructions and is a computing element, which defines structural and functional interrelationships between the instructions and the rest of the system, which permit the instructions&#39; functionality to be realized. Instructions may be executable, for example, by a client terminal or server or by a processing system of a client terminal or server. Instructions can be, for example, a computer program including code. 
     A network interface  1016  may be any type of interface to a network (e.g., an Internet network interface) or a proxy server using XMPP, and may reside between any of the components shown in  FIG. 10 . For the example of a remote device  130  of  FIGS. 1A-1D , the network interface  1016  may be used to communicate with device  110  or  120 , for example, to receive identification information and an approval from device  110  and an identifier of device  120  or the user of device  120  from device  120  and to communicate token  150  to device  110  or source data  135  to device  120  over network  250  or via proxy server  160  of  FIGS. 1C-1D . 
     A device interface  1018  may be any type of interface to a device and may reside between any of the components shown in  FIG. 10 . A device interface  1018  may, for example, be an interface to an external device (e.g., USB device) that plugs into a port (e.g., USB port) of the system  1000 . 
     A transceiver block  1007  may represent one or more transceivers, and each transceiver may include a receiver  1006  and a transmitter  1009 . A functionality implemented in a processing system  1002  may be implemented in a portion of a receiver  1006 , a portion of a transmitter  1009 , a portion of a machine-readable medium  1010 , a portion of a display  1012 , a portion of a keypad  1014 , or a portion of an interface  1016 , and vice versa. 
     The subject technology may provide mechanisms and methodology of transferring information between two or more separate devices to facilitate file sharing, remote desktop connection settings and device management settings, by the mechanism of NPC protocol. The above information transfer may otherwise occur locally through device-to-device communications such as with a WiFi or bluetooth connection. The subject technology may also facilitate the final transfer through an intermediary cloud based server infrastructure. The subject technology may be viewed as a simple mechanism for transferring complex information from one device to another. The complex information transfer might include, for example, file sharing, which may involve sharing source path information (e.g., remote path information), remote desktop connection details, security information, device management, setup information, etc. 
     In one aspect, the subject technology can provide various advantages, including without limitation the following: quick initial information transfer concerning connection information or file information between two distinct devices using a hardware device based approach of NPC (e.g., less than 0.1 second in setup time); transfer of remote desktop connection information without requiring user interaction (specifically text entry); and transfer device management information without requiring user interaction (specifically text entry or manual setup). 
     The two devices may advantageously utilize the built-in NPC hardware to perform the sharing of information. For example, a mobile application may provide the mechanism to choose the file or connection setting that is meant to be shared. The application may communicate over NPC from one device to another. The application may handle the final retrieval of and application of the NFC payload information (e.g., file transfer information, remote connection details, and device management details). A cloud based server infrastructure may contain software to allow for the downloading of file data that is being shared, connection information for a remote desktop or desktops, or device management information. A WiFi connection can provide the transport necessary to download the file, connection information, or device management information. A bluetooth connection can provide the transport necessary to download the file, connection information, or device management information. 
     In one aspect, various elements of the subject technology may comprise: two devices (e.g., smart phones) with built-in NPC support hardware; a mobile application utilizing the framework of the subject technology; (optional) cloud based server infrastructure; (optional) Wi-Fi connection; (optional) Bluetooth connection; and (optional) P2P connection. In one aspect, the subject technology may utilize a number of steps, for example, the steps for sharing a source file between two devices, as follows: an application in the first device is used to find a file to share with a second device; the file is optionally uploaded to a remote cloud-based server if the file is to be shared remotely; a file containing the meta information of the sharing information can be transmitted by NPC to the second device; the second device runs a software to read the encoded data by NPC; the second device uses this meta information to either download directly through bluetooth, WiFi, P2P or from a cloud based server infrastructure housing the shared file. 
     In one aspect, a method for transmitting remote desktop connection information may include the following steps: an application is used to find a remote desktop connection or group of connections to share; a file containing the meta information of the remote desktop connection details can be transmitted by NPC; the second device runs a software to receive the meta information over NPC; the second device uses this meta information directly to read the encoded information to reproduce the remote desktop connection settings, or download directly through bluetooth, WiFi, P2P or from a cloud-based server infrastructure housing a file containing extended remote desktop connection information. 
     In one advantageous example, various operations described herein may be performed automatically without user intervention, except that, for example, a process may require a user to identify/select a source data for sharing, to select one or more devices  120 , and/or to approve/authenticate device  120  or its user so that device  120  can access the source data. 
     In one aspect, a communication protocol may comprise one or more communication protocols. In one aspect, a first communication protocol can be the same as a second communication protocol utilized by the same or different devices. In one aspect, a first communication protocol can be different from a second communication protocol utilized by the same or different devices. In one aspect, a notation such as a first device/item can be the same as a second device/item. In one aspect, a notation such as a first device/item can be different from a second device/item. 
     Illustration of Method/Machine-Readable Storage Medium/Apparatus for Facilitating Sharing Information Among Multiple Devices Using NPC Protocol (Described as Clauses) 
     Various examples of aspects of the subject technology are described as numbered clauses (1, 2, 3, etc.) for convenience. These are provided as examples, and do not limit the subject technology. Identifications of the figures and reference numbers are provided below merely as examples and for illustrative purposes, and the clauses are not limited by those identifications. 
     Examples of Encoding Clauses 
     1. A non-transitory machine-readable medium (e.g.,  520 ,  550 ,  FIG. 5 ) comprising instructions stored therein, the instructions executable by one or more processors (e.g.,  530 , FIG.  5 ) to facilitate performing a method for facilitating sharing source data (e.g.,  700 A,  FIG. 7A ), the method comprising: 
     supporting communication based on a first communication protocol between a first device and a remote device, wherein the communication is associated with a source data, and the communication is based on detection of presence of a second device within five feet of the first device (e.g.,  710 ,  FIG. 7A ); 
     facilitating receiving a first token, associated with the source data (e.g.,  720 ,  FIG. 7A ); 
     facilitating encoding the first token to enable communication using a near proximity communication (NPC) protocol (e.g.,  730 ,  FIG. 7A ); and 
     providing for communication to the second device, located within five feet of the first device, the first token using the NPC protocol to enable the second device to access the source data utilizing a second communication protocol, wherein the second device is unable to access the source data without using the first token (e.g.,  740 ,  FIG. 7A ), 
     wherein the NPC protocol is different from the first and second communication protocols, wherein the first communication protocol is the same or different from the second communication protocol, 
     wherein the NPC protocol supports a data transfer rate that is not greater than a data transfer rate supported by the first communication protocol or a data transfer rate supported by the second communication protocol, 
     wherein the NPC protocol is a wireless communication protocol that supports automatic connection between at least two devices located within five feet, 
     wherein the first device is an NPC-enabled device adapted to detect presence of the second device within five feet of the first device, 
     wherein the first device is a communication end point device. 
     2. The non-transitory machine-readable medium of clause 1, wherein the method comprises identifying the source data, to initiate sharing of the source data, based on a user action at the first device. 
     3. The non-transitory machine-readable medium of clause 1, wherein the method comprises identifying, at the first device, the source data for sharing, wherein the supporting communication comprises providing for communication, from the first device utilizing the first communication protocol to the remote device through a proxy server, identification information of the source data based on the identifying the source data, wherein the NPC protocol comprises a near field communication (NFC) protocol. 
     4. The non-transitory machine-readable medium of clause 1, wherein the method comprises identifying the source data for sharing, 
     wherein the supporting communication comprises providing for communication, to the remote device, identification information of the source data, wherein the identification information comprises at least one of an identifier of the remote device, a path in a file system of the remote device, or a file name, 
     wherein the supporting communication comprises providing for communication, to the remote device, a request for the first token, 
     wherein the facilitating receiving comprises facilitating receiving the first token in response to the request. 
     5. The non-transitory machine-readable medium of clause 1, wherein the method comprises identifying the source data for sharing, 
     wherein the supporting communication comprises facilitating providing identification information of the source data to the remote device to enable generation of the first token in real time in response to the facilitating providing identification information of the source data, 
     wherein the facilitating receiving the first token comprises facilitating receiving the first token, at the first device, utilizing the first communication protocol, from the remote device via a proxy server, in response to the facilitating providing identification information of the source data, 
     wherein the method comprises, prior to the encoding, decoding the first token received utilizing the first communication protocol, 
     wherein the providing for communication to the second device the first token comprises providing for communication from the first device to the second device the first token, 
     wherein the method comprises providing for communication from the first device to the second device other information for accessing the source data, wherein the other information comprises location of the source data, wherein a size of the first token and the other information for communication to the second device is less than a size of the source data, wherein the source data comprises more than one mega bytes, 
     wherein the encoding comprises encoding of the first token at the first device. 
     6. The non-transitory machine-readable medium of clause 1, wherein the method comprises at least one of a first security measure and a second security measure, 
     wherein the first security measure comprises: 
     facilitating receiving, from the remote device, information identifying at least one of the second device or a user of the second device, in response to the second device attempting to access the source data; and 
     providing for communication to the remote device, an approval following validation of the received information by a user of the first device, 
     wherein the second security measure comprises: 
     providing for communication to the remote device, information identifying at least one of the second device or the user of the second device, to enable the remote device to authenticate the second device or the user of the second device when the second device attempts to access the source data. 
     7. The non-transitory machine-readable medium of clause 1, wherein the method comprises one or more of a first method, a second method, a third method or a fourth method, 
     wherein the first method comprises:
         providing a request, directed to the remote device, to transmit the source data to a first server comprising a cloud server to enable the second device to access the source data via the first server;       

     wherein the second method comprises:
         providing a request, directed to the remote device, to transmit the source data to a second server comprising a cloud server and to send a second token to the first device;   providing for communication to the second device, located within five feet of the first device, the second token using the NPC protocol to enable the second device to access the source data transmitted to the second server;       

     wherein the third method comprises:
         facilitating transmitting the source data to a third server comprising a cloud server to enable the second device to access the source data via the third server;       

     wherein the fourth method comprises:
         facilitating generating a third token;   facilitating transmitting the source data from the first device to a fourth server;   providing for communication to the second device, located within five feet of the first device, the third token using the NPC protocol to enable the second device to access the source data via the fourth server.       

     8. The non-transitory machine-readable medium of clause 1, wherein the first token comprises a metadata comprising at least some of an identifier of a source device, authentication information associated with the source device, an identifier of the source data, or a path of the source data, wherein the source device is a device where the source data is stored, wherein the source device is the first device or the remote device. 
     9. The non-transitory machine-readable medium of clause 1, wherein the source data comprises at least one of a media file, a document, remote path information, remote desktop connection information, security information, device management information, or device configuration information. 
     10. The non-transitory machine-readable medium of clause 9, wherein: 
     the media file comprises at least one of an audio file, a video file, an audio-video file, or an image, 
     the remote path information comprises at least one of a directory name, a folder name, a sub-folder name, or a file name, 
     the remote desktop connection information comprises at least one of an Internet Protocol (IP) address, a username, or a password, 
     the security information comprises at least one of network security information or security coding information, 
     the device management information comprises at least one of a color depth, a resolution, or a desktop setting, and 
     the device configuration comprises at least one of a network configuration, a peripheral device configuration, or a client-server configuration. 
     11. The non-transitory machine-readable medium of clause 1, wherein the first token is expirable and is a representation unique to one or more of the following: the source data, the second device, a user of the second device, and a time related to creation or usage of the first token, wherein the method comprises at least one of a first method and a second method, 
     wherein the first method comprises: 
     facilitating receiving a second token associated with second source data; 
     encoding the second token to enable communication using the NPC protocol; and 
     providing for communication to a third device, located within five feet of the first device, the second token using the NPC protocol, to enable the third device to access the second source data utilizing a third communication protocol, 
     wherein the first communication protocol is the same or different from the third communication protocol, 
     wherein the second token is a representation unique to one or more of the following: the second data, the third device and time related to creation or usage of the second token, 
     wherein the second method comprises: 
     facilitating receiving, at the first device, a third token associated with the source data; 
     encoding, at the first device, the third token to enable communication using the NPC protocol; and 
     providing for communication to a fourth device, located within five feet of the first device, the third token using the NPC protocol, to enable the fourth device to access the source data utilizing a fourth communication protocol, 
     wherein the first communication protocol is the same or different from the fourth communication protocol, 
     wherein the third token is a representation unique to one or more of the following: the source data, the third device, a user of the third device, and time related to creation or usage of the third token. 
     12. The non-transitory machine-readable medium of clause 1, wherein the first device is a mobile device comprising one or more displays, one or more processors, one or more network interfaces, and the non-transitory machine-readable medium, wherein a first one of the one or more network interfaces is configured to support communication based on the first communication protocol, wherein a second one of the one or more network interfaces is configured to support communication based on the NPC protocol, wherein the second device is a mobile device, wherein the remote device is a computing device behind a firewall, wherein the first token does not exist prior to identifying the source data to be shared, wherein the first token is creatable in real time and expirable, wherein each of the first and second communication protocols comprises one or more communication protocols. 
     13. A non-transitory machine-readable medium (e.g.,  520 ,  550 ,  FIG. 5 ) comprising instructions stored therein, the instructions executable by one or more processors (e.g.,  530 ,  FIG. 5 ) to facilitate performing a method for facilitating sharing source data (e.g.,  700 C,  FIG. 7C ), the method comprising: 
     facilitating receiving a token associated with the source data (e.g.,  780 ,  FIG. 7C ); 
     facilitating encoding the token to enable communication using a near proximity communication (NPC) protocol (e.g.,  782 ,  FIG. 7C ); and 
     providing for communication to a second device, located within five feet of a first device, the token using the NPC protocol to enable the second device to access the source data utilizing a communication protocol, wherein the second device is unable to access the source data without using the token (e.g.,  784 ,  FIG. 7C ), 
     wherein the NPC protocol is a wireless communication protocol that supports automatic connection between at least two devices located within five feet, 
     wherein the first device is an NPC-enabled device adapted to detect presence of the second device within five feet of the first device, 
     wherein the token is non-public. 
     14. The non-transitory machine-readable medium of clause 13, wherein the method comprises identifying the source data, to initiate sharing of the source data, based on a user action at the first device, 
     wherein the NPC protocol is different from the communication protocol, 
     wherein the NPC protocol supports a data transfer rate that is not greater than a data transfer rate supported by the communication protocol. 
     15. The non-transitory machine-readable medium of clause 13, wherein the source data is stored in the first device, wherein the method comprises facilitating generating the token associated with the source data stored on the first device, wherein the facilitating encoding facilitates receiving the token prior to encoding. 
     16. The non-transitory machine-readable medium of clause 13, wherein the communication protocol comprises at least one of a peer-to-peer protocol, an interactive connectivity establishment protocol, a session initiation protocol, the NPC protocol, a Bluetooth protocol, a wireless fidelity (Wi-Fi) protocol, an extendable messaging and presence protocol (XMPP), a push protocol, or a non-industry standard communication protocol. 
     17. The non-transitory machine-readable medium of clause 13, wherein the facilitating encoding the token comprises facilitating encoding the token in a form of a uniform resource locator (URL) to allow the second device to access the source data via a website represented by the URL of the token. 
     18. The non-transitory machine-readable medium of clause 13, wherein the method comprises a security measure comprising: 
     facilitating receiving information identifying at least one of the second device or a user of the second device, in response to the second device attempting to access the source data; 
     validating the received information by a user of the first device; and 
     authenticating the second device or the user of the second device before allowing the second device to access the source data. 
     19. The non-transitory machine-readable medium of clause 13, wherein the providing for communication allows the second device to access the source data via a third device, 
     wherein the first device supports communication between the first device and the third device to facilitate receiving the token from the third device or to facilitate the second device to access the source data, 
     wherein the token comprises a metadata comprising at least some of an identifier of the first device, authentication information associated with the first device, an identifier of the source data, a path of the source data, wherein the token enables downloading the source data, wherein the source data is for at least setup, configuration, or management of the second device or one or more computers. 
     20. An apparatus for facilitating sharing source data (e.g.,  110 ,  FIG. 5 ), the apparatus comprising: 
     a first network interface (e.g.,  512 ,  FIG. 5 ) configured to support communication based on a first communication protocol between the apparatus and a remote device; 
     an encoder (e.g.,  558 ,  FIG. 5 ) configured to facilitate receiving a first token associated with a source data; 
     the encoder configured to facilitate encoding the first token to enable communication using a near proximity communication (NPC) protocol; and 
     an NPC interface (e.g.,  510 ,  FIG. 5 ) configured to provide for communication, using the NPC protocol, to a first device (e.g.,  120 ,  FIG. 6 ) located within five feet of the apparatus, the first token to enable the first device to access the source data utilizing a second communication protocol, wherein the first device is unable to access the source data without using the first token, 
     wherein the NPC protocol is different from the first and second communication protocols, wherein the first communication protocol is the same or different from the second communication protocol, 
     wherein the NPC protocol supports a data transfer rate that is not greater than a data transfer rate supported by the first communication protocol or a data transfer rate supported by the second communication protocol, 
     wherein the NPC protocol is a wireless communication protocol that supports automatic connection between at least two devices located within five feet. 
     21. The apparatus of clause 20, further comprising: 
     an identification module configured to identify the source data and to provide an identification information of the source data, to facilitate sharing of the source data, based on a user action at the apparatus; and 
     a second network interface configured to support communication, based on the first communication protocol, from the apparatus to the remote device through a proxy server, the identification information, wherein the first communication protocol comprises an extendable messaging and presence protocol (XMPP), wherein the NPC protocol comprises a near field communication (NFC) protocol, wherein the identification information comprises at least one of an identifier of the remote device, a path in a file system of the remote device, or a file name. 
     22. The apparatus of clause 20, further comprising an identification module configured to identify the source data and provide an identification information of the source data, to facilitate sharing of the source data, based on a user action at the apparatus, wherein the first network interface is further configured to support communication, based on the first communication protocol, from the apparatus to the remote device, of the identification information, wherein the identification information comprises at least one of an identifier of the remote device, a path in a file system of the remote device, or a file name. 
     23. The apparatus of clause 20, further comprising an identification module configured to identify the source data and to facilitate providing of an identification information of the source data, to support sharing of the source data, based on a user action at the apparatus, 
     wherein the first network interface is configured to support communication for providing the identification information of the source data to the remote device to enable generation of the first token in real time in response to the communication for providing identification information of the source data, 
     wherein the first network interface is further configured to facilitate receiving the first token, at the apparatus from the remote device via a proxy server, utilizing the first communication protocol, in response to the communication for providing identification information of the source data, 
     wherein the apparatus comprises, a decoder to decode, prior to the encoding, the first token received utilizing the first communication protocol, 
     wherein the first network interface is further configured to provide for communication from the apparatus to the first device the first token, 
     wherein the first network interface is further configured to provide for communication from the apparatus to the first device other information for accessing the source data, wherein the other information comprises location of the source data, wherein a size of the first token and the other information for communication to the first device is less than a size of the source data, wherein the source data comprises more than one mega bytes, 
     wherein the encoder is further configured to encode the first token at the apparatus. 
     24. The apparatus of clause 20, further comprising a security module configured to facilitate at least one of a first security measure and a second security measure, 
     wherein the first security measure comprises: 
     facilitating receiving, via the first network interface, from the remote device, information identifying at least one of the first device or a user of the first device, in response to the first device attempting to access the source data; and 
     providing for communication, via the first network interface, to the remote device, an approval following validation of the received information by a user of the apparatus, 
     wherein the second security measure comprises: 
     providing for communication, via the first network interface, to the remote device, information identifying at least one of the first device or the user of the first device, to enable the remote device to authenticate the first device or the user of the first device when the first device attempts to access the source data. 
     25. The apparatus of clause 20, wherein the first network interface is further configured to facilitate providing a request, directed to the remote device, to transmit the source data to a server comprising a cloud server and to send a second token to the apparatus, and wherein the NPC interface is further configured to provide for communication to the first device, located within five feet of the apparatus, the second token using the NPC protocol, to enable the first device to access the source data transmitted to the server. 
     26. The apparatus of clause 25, wherein the first or the second token comprises a metadata comprising at least some of an identifier of the remote device, an identifier of the server, authentication information associated with the remote device, authentication information associate with the server, an identifier of the source data stored in the remote device, a path of the source data stored in the remote device, an identifier of the source data transmitted to the server, or a path of the source data transmitted to the server. 
     27. The apparatus of clause 25, wherein the source data comprises at least one of a media file, a document, remote path information, remote desktop connection information, security information, device management information, or device configuration information, and wherein: 
     the media file comprises at least one of an audio file, a video file, an audio-video file, or an image, 
     the remote path information comprises at least one of a directory name, a folder name, a sub-folder name, or a file name, 
     the remote desktop connection information comprises at least one of an Internet Protocol (IP) address, a username, or a password, 
     the security information comprises at least one of network security information or security coding information, 
     the device management information comprises at least one of a color depth, a resolution, or a desktop setting, and 
     the device configuration comprises at least one of a network configuration, a peripheral device configuration, or a client-server configuration. 
     28. The apparatus of clause 20, wherein the first token is expirable and is a representation unique to one or more of the following: the source data, the first device, a user of the first device, and time related to creation or usage of the first token, and wherein the apparatus is configured to support a plurality of first devices, by providing for receiving from the remote device a plurality of first tokens, and providing for communicating, using the NPC protocol, each token of the plurality of first tokens to one of the plurality of the first devices, wherein each token of the plurality of first tokens is a representation unique to one or more of the following: the source data, the one of the plurality of the first devices, a user of the one of the plurality of the first devices, and a time related to creation or usage of the token of the plurality of first tokens. 
     29. The apparatus of clause 20, wherein the apparatus is a mobile device and further comprises one or more displays, one or more processors, one or more non-transitory machine-readable medium, wherein the first device is another mobile device, wherein the remote device is a computing device behind a firewall, wherein the first token does not exist prior to identifying the source data to be shared, wherein the first token is creatable in real time and expirable, wherein each of the first and second communication protocols comprises one or more communication protocols. 
     30. An apparatus (e.g.,  110 ,  FIG. 5 ) for facilitating sharing source data, the apparatus comprising: 
     a processor (e.g.,  530 ,  FIG. 5 ) operable to facilitate receiving a token associated with the source data stored in the apparatus or another device; 
     a processor (e.g.,  530 ,  FIG. 5 ) operable to facilitate encoding a token to enable communication using a near proximity communication (NPC) protocol; and 
     an NPC interface (e.g.,  510 ,  FIG. 5 ) operable to provide for communication, using the NPC protocol, to a first device (e.g.,  120 ,  FIG. 6 ) located within five feet of the apparatus, the token to enable the first device to access the source data utilizing a communication protocol, wherein the first device is unable to access the source data without using the token, 
     wherein the NPC protocol supports a data transfer rate that is not greater than a data transfer rate supported by the communication protocol, 
     wherein the NPC protocol is a wireless communication protocol that supports automatic connection between at least two devices located within five feet, 
     wherein the apparatus comprises an NPC-enabled device adapted to detect presence of the first device within five feet of the apparatus, 
     wherein the source data is non-public. 
     31. The apparatus of clause 30, further comprising an identification module operable to identify the source data, to initiate sharing of the source data, based on a user action at the apparatus, 
     wherein the NPC protocol is different from the communication protocol. 
     32. The apparatus of clause 30, wherein the source data is stored in the apparatus, wherein the processor is operable to facilitate generating the token associated with the source data prior to facilitating encoding the token. 
     33. The apparatus of clause 30, wherein the communication protocol comprises at least one of a peer-to-peer protocol, an interactive connectivity establishment protocol, a session initiation protocol, a Bluetooth protocol, a wireless fidelity (Wi-Fi) protocol, an extendable messaging and presence protocol (XMPP), a push protocol, or a non-industry standard communication protocol. 
     34. The apparatus of clause 30, wherein the processor is operable to facilitate encoding the token in a form of a uniform resource locator (URL) to allow the first device to access the source data via a website represented by the URL of the token. 
     35. The apparatus of clause 30, wherein the NPC interface is operable to provide for communication to the first device the token to allow the first device to access the source data via a second device, 
     wherein the apparatus supports communication between the apparatus and the second device to facilitate receiving the token from the second device or to facilitate the first device to access the source data, 
     wherein the token comprises a metadata comprising at least some of an identifier of the apparatus, authentication information associated with the apparatus, an identifier of the source data, a path of the source data, wherein the token enables downloading the source data, wherein the source data is for at least setup, configuration, or management of the first device or one or more computers. 
     36. A method (e.g.,  700 A,  FIG. 7A ) for facilitating sharing source data, the method comprising: 
     supporting communication based on a first communication protocol between a first device and a remote device, wherein the communication is associated with a source data, and the communication is based on detection of presence of a second device within five feet of the first device (e.g.,  710 ,  FIG. 7A ); 
     facilitating receiving a first token associated with the source data (e.g.,  720 ,  FIG. 7A ); 
     facilitating encoding the first token to enable communication using a near proximity communication (NPC) protocol (e.g.,  730 ,  FIG. 7A ); and 
     providing for communication to the second device, located within five feet of the first device, the first token using the NPC protocol to enable the second device to access the source data utilizing a second communication protocol, wherein the second device is unable to access the source data without using the first token (e.g.,  740 ,  FIG. 7A ), 
     wherein the NPC protocol is different from the first and second communication protocols, wherein the first communication protocol is the same or different from the second communication protocol, 
     wherein the NPC protocol supports a data transfer rate that is not greater than a data transfer rate supported by the first communication protocol or a data transfer rate supported by the second communication protocol, 
     wherein the NPC protocol is a wireless communication protocol that supports automatic connection between at least two devices located within five feet, 
     wherein the first device is an NPC-enabled device adapted to detect presence of the second device within five feet of the first device, 
     wherein the first device is a communication end point device. 
     37. The method of clause 36, wherein the method comprises identifying the source data, to initiate sharing of the source data, based on a user action at the first device. 
     38. The method of clause 36, wherein the method comprises identifying, at the first device, the source data for sharing, wherein the supporting communication comprises providing for communication, from the first device utilizing the first communication protocol to the remote device through a proxy server, identification information of the source data based on the identifying the source data, wherein the first communication protocol comprises an extendable messaging and presence protocol (XMPP), wherein the NPC protocol comprises a near field communication (NFC) protocol. 
     39. The method of clause 36, wherein the method comprises identifying the source data for sharing, 
     wherein the supporting communication comprises providing for communication, to the remote device, identification information of the source data, wherein the identification information comprises at least one of an identifier of the remote device, a path in a file system of the remote device, or a file name, 
     wherein the supporting communication comprises providing for communication, to the remote device, a request for the first token, 
     wherein the facilitating receiving comprises facilitating receiving the first token in response to the request. 
     40. The method of clause 36, wherein the method comprises identifying the source data for sharing, 
     wherein the supporting communication comprises facilitating providing identification information of the source data to the remote device to enable generation of the first token in real time in response to the facilitating providing identification information of the source data, 
     wherein the facilitating receiving the first token comprises facilitating receiving the first token, at the first device, utilizing the first communication protocol, from the remote device via a proxy server, in response to the facilitating providing identification information of the source data, 
     wherein the method comprises, prior to the encoding, decoding the first token received utilizing the first communication protocol, 
     wherein the providing for communication to the second device the first token comprises providing for communication from the first device to the second device the first token, 
     wherein the method comprises providing for communication from the first device to the second device other information for accessing the source data, wherein the other information comprises location of the source data, wherein a size of the first token and the other information for communication to the second device is less than a size of the source data, wherein the source data comprises more than one mega bytes, 
     wherein the first communication protocol comprises an extendable messaging and presence protocol (XMPP), 
     wherein the encoding comprises encoding of the first token at the first device. 
     41. The method of clause 36, wherein the method comprises at least one of a first security measure and a second security measure, 
     wherein the first security measure comprises: 
     facilitating receiving, from the remote device, information identifying at least one of the second device or a user of the second device, in response to the second device attempting to access the source data; and 
     providing for communication to the remote device, an approval following validation of the received information by a user of the first device, 
     wherein the second security measure comprises: 
     providing for communication to the remote device, information identifying at least one of the second device or the user of the second device, to enable the remote device to authenticate the second device or the user of the second device when the second device attempts to access the source data. 
     42. The method of clause 36, wherein the method comprises: 
     providing a request, directed to the remote device, to transmit the source data to a server comprising a cloud server and to send a second token to the first device; 
     providing for communication to the second device, located within five feet of the first device, the second token using the NPC protocol to enable the second device to access the source data transmitted to the server. 
     43. The method of clause 42, wherein the first or the second token comprises a metadata comprising at least some of an identifier of the remote device, an identifier of the server, authentication information associated with the remote device, authentication information associate with the server, an identifier of the source data, a path of the source data, an identifier of the source data transmitted to the server, or a path of the source data transmitted to the server, and wherein the first and the second token enable downloading the source data, wherein the source data is for at least setup, configuration, or management of one or more computers. 
     44. The method of clause 36, wherein the source data comprises at least one of a media file, a document, remote path information, remote desktop connection information, security information, device management information, or device configuration information. 
     45. The method of clause 44, wherein: 
     the media file comprises at least one of an audio file, a video file, an audio-video file, or an image, 
     the remote path information comprises at least one of a directory name, a folder name, a sub-folder name, or a file name, 
     the remote desktop connection information comprises at least one of an Internet Protocol (IP) address, a username, or a password, 
     the security information comprises at least one of network security information or security coding information, 
     the device management information comprises at least one of a color depth, a resolution, or a desktop setting, and 
     the device configuration comprises at least one of a network configuration, a peripheral device configuration, or a client-server configuration. 
     46. The method of clause 36, wherein the first token is expirable and is a representation unique to one or more of the following: the source data, the second device, a user of the second device, and a time related to creation or usage of the first token, wherein the method comprises at least one of a first method and a second method, 
     wherein the first method comprises: 
     facilitating receiving a second token associated with second source data; 
     encoding the second token to enable communication using the NPC protocol; and 
     providing for communication to a third device, located within five feet of the first device, the second token using the NPC protocol, to enable the third device to access the second source data utilizing a third communication protocol, 
     wherein the first communication protocol is the same or different from the third communication protocol, 
     wherein the second token is a representation unique to one or more of the following: the second data, the third device and time related to creation or usage of the second token, 
     wherein the second method comprises: 
     facilitating receiving, at the first device, a third token associated with the source data; 
     encoding, at the first device, the third token to enable communication using the NPC protocol; and 
     providing for communication to a fourth device, located within five feet of the first device, the third token using the NPC protocol, to enable the fourth device to access the source data utilizing a fourth communication protocol, 
     wherein the first communication protocol is the same or different from the fourth communication protocol, 
     wherein the third token is a representation unique to one or more of the following: the source data, the third device, a user of the third device, and time related to creation or usage of the third token. 
     47. The method of clause 36, wherein the first device is a mobile device comprising one or more displays, one or more processors, one or more network interfaces, and the method, wherein a first one of the one or more network interfaces is configured to support communication based on the first communication protocol, wherein a second one of the one or more network interfaces is configured to support communication based on the NPC protocol, wherein the second device is a mobile device, wherein the remote device is a computing device behind a firewall, wherein the first token does not exist prior to identifying the source data to be shared, wherein the first token is creatable in real time and expirable, wherein each of the first and second communication protocols comprises one or more communication protocols. 
     48. A method for facilitating sharing source data (e.g.,  700 C,  FIG. 7C ), comprising: 
     facilitating receiving a token associated with the source data (e.g.,  780 ,  FIG. 7C ); 
     facilitating encoding the token to enable communication using a near proximity communication (NPC) protocol (e.g.,  782 ,  FIG. 7C ); and 
     providing for communication to a second device, located within five feet of a first device, the token using the NPC protocol to enable the second device to access the source data utilizing a communication protocol, wherein the second device is unable to access the source data without using the token (e.g.,  784 ,  FIG. 7C ), 
     wherein the NPC protocol is a wireless communication protocol that supports automatic connection between at least two devices located within five feet, 
     wherein the first device is an NPC-enabled device adapted to detect presence of the second device within five feet of the first device, 
     wherein the token is non-public. 
     49. The method of clause 48, wherein the method comprises identifying the source data, to initiate sharing of the source data, based on a user action at the first device, 
     wherein the NPC protocol is different from the communication protocol, 
     wherein the NPC protocol supports a data transfer rate that is not greater than a data transfer rate supported by the communication protocol. 
     50. The method of clause 48, wherein the source data is stored in the first device, wherein the method comprises facilitating generating the token associated with the source data stored on the first device, wherein the facilitating encoding facilitates receiving the token prior to encoding. 
     51. The method of clause 48, wherein the facilitating encoding the token comprises facilitating encoding the token in a form of a uniform resource locator (URL) to allow the second device to access the source data via a website represented by the URL of the token. 
     52. The method of clause 48, wherein the providing for communication allows the second device to access the source data via a third device, which is a remote device, 
     wherein the first device supports communication between the first device and the third device to facilitate receiving the token from the third device or to facilitate the second device to access the source data. 
     53. The method of clause 48, wherein the method for facilitating sharing allows a distance between the first device and the second device to be more than five feet after the operation of providing for communication to the second device the token, and the method allows the access to the source data regardless of the distance. 
     54. An apparatus for facilitating sharing source data (e.g.,  1100 ,  FIG. 11 ), the apparatus comprising: 
     means for supporting communication based on a first communication protocol between a first device and a remote device, wherein the communication is associated with a source data, and the communication is based on detection of presence of a second device within five feet of the first device (e.g.,  1110 ,  FIG. 11 ); 
     means for facilitating receiving a first token associated with the source data (e.g.,  1120 ,  FIG. 11 ); 
     means for facilitating encoding the first token to enable communication using a near proximity communication (NPC) protocol (e.g.,  1130 ,  FIG. 11 ); and 
     means for providing for communication to the second device, located within five feet of the first device, the first token using the NPC protocol to enable the second device to access the source data utilizing a second communication protocol, wherein the second device is unable to access the source data without using the first token (e.g.,  1140 ,  FIG. 11 ), 
     wherein the NPC protocol is different from the first and second communication protocols, wherein the first communication protocol is the same or different from the second communication protocol, 
     wherein the NPC protocol supports a data transfer rate that is not greater than a data transfer rate supported by the first communication protocol or a data transfer rate supported by the second communication protocol, 
     wherein the NPC protocol is a wireless communication protocol that supports automatic connection between at least two devices located within five feet, 
     wherein the first device is an NPC-enabled device adapted to detect presence of the second device within five feet of the first device, 
     wherein the first device is a communication end point device. 
     55. An apparatus for facilitating sharing source data (e.g.,  1300 ,  FIG. 13 ), the apparatus comprising: 
     means for facilitating receiving a token associated with the source data (e.g.,  1310 ,  FIG. 13 ); 
     means for facilitating encoding the token to enable communication using a near proximity communication (NPC) protocol (e.g.,  1320 ,  FIG. 13 ); and 
     means for providing for communication to a second device, located within five feet of a first device, the token using the NPC protocol to enable the second device to access the source data utilizing a communication protocol, wherein the second device is unable to access the source data without using the token (e.g.,  1330 ,  FIG. 13 ), 
     wherein the NPC protocol is a wireless communication protocol that supports automatic connection between at least two devices located within five feet, 
     wherein the first device is an NPC-enabled device adapted to detect presence of the second device within five feet of the first device, 
     wherein the token is non-public. 
     56. A hardware apparatus comprising means adapted for performing a method associated with any one of the foregoing clauses. 
     57. An apparatus comprising means for performing a method associated with any one of the foregoing clauses. 
     58. An apparatus comprising one or more processors configured to perform a method associated with any one of the foregoing clauses. 
     59. An apparatus comprising one or more processors and a machine-readable medium, the machine-readable medium comprising instructions executable by one or more processors to perform a method associated with any one of the foregoing clauses. 
     Examples of Decoding Clauses 
     1. A non-transitory machine-readable medium (e.g.,  620 ,  650   FIG. 6 ) comprising instructions stored therein, the instructions executable by one or more processors (e.g.,  630 ,  FIG. 6 ) to facilitate performing a method for facilitating sharing source data, the method (e.g.,  700 B,  FIG. 7B ) comprising: 
     facilitating receiving, at a first device, a first token associated with the source data, from a second device located within five feet of the first device, using a near proximity communication (NPC) protocol, which supports generation of the first token based on detection of presence of the first device within five feet of the second device, wherein the first token is an encoded first token for near proximity communication, wherein the first token is a non-public token, wherein the first token is based on the source data for sharing, wherein the receipt of the first token is based on the detection (e.g.,  750 ,  FIG. 7B ); 
     facilitating decoding the first token (e.g.,  760 ,  FIG. 7B ); 
     providing for communication based on a first communication protocol to a third device to download the source data using the decoded first token (e.g.,  770 ,  FIG. 7B ), 
     wherein the first device is an NPC-enabled device, having an NPC interface, to allow presence of the first device to be detected by the second device when the first device is within five feet of the second device, 
     wherein the second device is an NPC-enabled device, 
     wherein the NPC protocol supports a data transfer rate that is not greater than a data transfer rate supported by the first communication protocol, 
     wherein the NPC protocol is a wireless communication protocol that supports automatic connection between at least two devices located within five feet. 
     2. The non-transitory machine-readable medium of clause 1, further comprising facilitating accessing the source data by the first device, after a time period to allow the third device to receive from the second device an approval by a user of the second device for the access of the source data. 
     3. The non-transitory machine-readable medium of clause 1, further comprising: 
     facilitating receiving a second token associated with the source data from the second device located within five feet of the first device using the NPC protocol, wherein the second token is an encoded second token for near proximity communication; 
     facilitating decoding the second token; and 
     providing for communication based on a second communication protocol to a server comprising a cloud server to download the source data using the decoded second token, after the source data is transmitted to the server, in response to a request from the second device. 
     4. The non-transitory machine-readable medium of clause 1, wherein the source data comprises at least one of a media file, a document, remote path information, remote desktop connection information, security information, device management information, or device configuration information. 
     5. The non-transitory machine-readable medium of clause 3, wherein the first token or the second token comprises a metadata comprising at least some of an identifier of the third device, an identifier of the server, authentication information associated with the third device, authentication information associate with the server, an identifier of the source data, a path of the source data, an identifier of the source data transmitted to the server, or a path of the source data transmitted to the server, wherein the first token and the second token are expirable and are representations unique to one or more of the following: the source data, the first device, a user of the first device, and time related to creation or usage of the first token or the second token. 
     6. The non-transitory machine-readable medium of clause 3, further comprising: 
     providing for communication based on the first communication protocol to the third device to download the source data within a time period prior to an expiration of the first token; and 
     providing for communication based on the second communication protocol to the server to download the source data within a time period prior to an expiration of the second token. 
     7. The non-transitory machine-readable medium of clause 3, wherein the first device is a mobile device comprising one or more displays, one or more processors, one or more network interfaces, and the non-transitory machine-readable medium, wherein a first one of the one or more network interfaces is configured to support communication based on the first communication protocol or the second communication protocol, wherein a second one of the one or more network interfaces is configured to support communication based on the NPC protocol, wherein the second device is a mobile device, wherein the third device is a computing device behind a firewall, wherein the first token and the second token do not exist prior to identifying the source data to be shared, wherein the first token and the second token are creatable in real time and are expirable, wherein each of the first and second communication protocols comprises one or more communication protocols. 
     8. The non-transitory machine-readable medium of clause 1, wherein the third device is a remote device, wherein the source data is stored in the remote device, wherein the NPC protocol is different from the first communication protocol. 
     9. The non-transitory machine-readable medium of clause 1, wherein the source data is stored in the second device. 
     10. The non-transitory machine-readable medium of clause 1, wherein the decoded first token comprises a uniform resource locator (URL), wherein the providing for communication comprises facilitating opening the URL on a web browser to allow a determination as to whether the first device is enabled to facilitate downloading the source data using the decoded first token. 
     11. The non-transitory machine-readable medium of clause 10, 
     wherein if the first device is enabled to facilitate downloading, then the method comprises facilitating downloading the source data based on the decoded first token, 
     wherein if the first device is not enabled to facilitate downloading, then the method comprises providing for communication to the third device a request to download the source data and facilitating receiving the source data based on the request. 
     12. The non-transitory machine-readable medium of clause 1, wherein the decoded first token comprises a uniform resource locator (URL), wherein the URL comprises an identifier of a device storing the source data, a path of the source data stored in the device, and authentication information. 
     13. The non-transitory machine-readable medium of clause 1, wherein the first communication protocol comprises at least one of a peer-to-peer protocol, an interactive connectivity establishment protocol, a session initiation protocol, the NPC protocol, a Bluetooth protocol, a wireless fidelity (Wi-Fi) protocol, an extendable messaging and presence protocol (XMPP), a push protocol, or a non-industry standard communication protocol. 
     14. An apparatus for facilitating sharing source data (e.g.,  120 ,  FIG. 6 ), the apparatus comprising: 
     a processor (e.g.,  630 ,  FIG. 6 ) operable to facilitate receiving a first token associated with the source data from a first device (e.g.,  110 ,  FIG. 5 ), located within five feet of the apparatus using an NPC protocol, wherein the first token is based on detection of presence of the apparatus within five feet of the first device, wherein the first token is an encoded first token for near proximity communication, wherein the first token is a non-public token, wherein the first token is based on the source data for sharing; 
     the processor (e.g.,  630 ,  FIG. 6 ) operable to facilitate decoding the first token; 
     the processor (e.g.,  630 ,  FIG. 6 ) operable to provide for communication based on a first communication protocol to a second device to download the source data using the decoded first token, 
     wherein the apparatus is an NPC-enabled device, having an NPC interface, to allow presence of the apparatus to be detected by the first device when the apparatus is within five feet of the first device, 
     wherein the first device is an NPC-enabled device, 
     wherein the NPC protocol supports a data transfer rate that is not greater than a data transfer rate supported by the first communication protocol, 
     wherein the NPC protocol is a wireless communication protocol that supports automatic connection between at least two devices located within five feet. 
     15. The apparatus of clause 14, wherein the processor is operable to facilitate accessing the source data by the apparatus, after a time period to allow the second device to receive from the first device an approval by a user of the first device for the access of the source data. 
     16. The apparatus of clause 14, wherein the processor is operable to facilitate receiving a second token associated with the source data from the first device located within five feet of the apparatus using the NPC protocol, wherein the second token is an encoded second token for near proximity communication; wherein the processor is operable to facilitate decoding the second token; and wherein the processor is operable to provide for communication based on a second communication protocol to a server comprising a cloud server to download the source data using the decoded second token, after the source data is transmitted to the server, in response to a request from the first device. 
     17. The apparatus of clause 14, wherein the source data comprises at least one of a media file, a document, remote path information, remote desktop connection information, security information, device management information, or device configuration information. 
     18. The apparatus of clause 16, wherein the first token or the second token comprises a metadata comprising at least some of an identifier of the second device, an identifier of the server, authentication information associated with the second device, authentication information associate with the server, an identifier of the source data, a path of the source data, an identifier of the source data transmitted to the server, or a path of the source data transmitted to the server, wherein the first token and the second token are expirable and are representations unique to one or more of the following: the source data, the apparatus, a user of the apparatus, and a time related to creation or usage of the first token or the second token. 
     19. The apparatus of clause 16, wherein: 
     the processor is operable to provide for communication based on the first communication protocol to the second device to download the source data within a time period prior to an expiration of the first token; and 
     the processor is operable to provide for communication based on the second communication protocol to the server to download the source data within a time period prior to an expiration of the second token. 
     20. The apparatus of clause 16, wherein the apparatus is a mobile device comprising one or more displays, one or more processors, one or more non-transitory machine-readable media, wherein the second device is a computing device behind a firewall, wherein the first token and the second token do not exist prior to identifying the source data to be shared, wherein the first token and the second token are creatable in real time and are expirable, and wherein the first and the second token enable downloading the source data, wherein the source data is for at least setup, configuration, or management of one or more computers, and wherein each of the first and second communication protocols comprises one or more communication protocols. 
     21. The apparatus of clause 14, wherein the second device is a remote device, wherein the source data is stored in the remote device, wherein the NPC protocol is different from the first communication protocol. 
     22. The apparatus of clause 14, wherein the source data is stored in the first device. 
     23. The apparatus of clause 14, wherein the decoded first token comprises a uniform resource locator (URL), wherein the processor is operable to facilitate opening the URL on a web browser to allow a determination as to whether the apparatus is enabled to facilitate downloading the source data using the decoded first token. 
     24. The apparatus of clause 23, 
     wherein if the apparatus is enabled to facilitate downloading, then the processor is operable to facilitate downloading the source data based on the decoded first token, 
     wherein if the apparatus is not enabled to facilitate downloading, then the processor is operable to provide for communication to the second device a request to download the source data and facilitate receiving the source data based on the request. 
     25. A method for facilitating sharing source data (e.g.,  700 B,  FIG. 7B ), comprising: 
     facilitating receiving, at a first device, a first token associated with the source data, from a second device (e.g.,  110 ,  FIG. 5 ) located within five feet of the first device, using a near proximity communication (NPC) protocol, which supports generation of the first token based on detection of presence of the first device within five feet of the second device, wherein the first token is an encoded first token for near proximity communication, wherein the first token is a non-public token, wherein the first token is based on the source data for sharing, wherein the receipt of the first token is based on the detection (e.g.,  750 ,  FIG. 7B ); 
     facilitating decoding the first token (e.g.,  760 ,  FIG. 7B ); 
     providing for communication based on a first communication protocol to a third device to download the source data using the decoded first token (e.g.,  770 ,  FIG. 7B ), 
     wherein the first device is an NPC-enabled device, having an NPC interface, to allow presence of the first device to be detected by the second device when the first device is within five feet of the second device, 
     wherein the second device is an NPC-enabled device, 
     wherein the NPC protocol supports a data transfer rate that is not greater than a data transfer rate supported by the first communication protocol, 
     wherein the NPC protocol is a wireless communication protocol that supports automatic connection between at least two devices located within five feet. 
     26. The method of clause 25, further comprising facilitating accessing the source data by the first device, after a time period to allow the third device to receive from the second device an approval by a user of the second device for the access of the source data. 
     27. The method of clause 25, further comprising: 
     facilitating receiving a second token associated with the source data from the second device located within five feet of the first device using the NPC protocol, wherein the second token is an encoded second token for near proximity communication; 
     facilitating decoding the second token; and 
     providing for communication based on a second communication protocol to a server comprising a cloud server to download the source data using the decoded second token, after the source data is transmitted to the server, in response to a request from the second device. 
     28. The method of clause 25, wherein the source data comprises at least one of a media file, a document, remote path information, remote desktop connection information, security information, device management information, or device configuration information. 
     29. The method of clause 27, wherein the first token or the second token comprises a metadata comprising at least some of an identifier of the third device, an identifier of the server, authentication information associated with the third device, authentication information associate with the server, an identifier of the source data, a path of the source data, an identifier of the source data transmitted to the server, or a path of the source data transmitted to the server, wherein the first token and the second token are expirable and are representations unique to one or more of the following: the source data, the second device, a user of the second device, and time related to creation or usage of the first token or the second token. 
     30. The method of clause 27, further comprising: 
     providing for communication based on the first communication protocol to the third device to download the source data within a time period prior to an expiration of the first token; and 
     providing for communication based on the second communication protocol to the server to download the source data within a time period prior to an expiration of the second token. 
     31. The method of clause 25, wherein the third device is a remote device, wherein the source data is stored in the remote device, wherein the NPC protocol is different from the first communication protocol. 
     32. The method of clause 25, wherein the source data is stored in the second device. 
     33. The method of clause 25, wherein the decoded first token comprises a uniform resource locator (URL), wherein the providing for communication comprises facilitating opening the URL on a web browser to allow a determination as to whether the first device is enabled to facilitate downloading the source data using the decoded first token. 
     34. The method of clause 33, 
     wherein if the first device is enabled to facilitate downloading, then the method comprises facilitating downloading the source data based on the decoded first token, 
     wherein if the first device is not enabled to facilitate downloading, then the method comprises providing for communication to the third device a request to download the source data and facilitating receiving the source data based on the request. 
     35. An apparatus for facilitating sharing source data (e.g.,  1200 ,  FIG. 12 ), comprising: 
     means for facilitating receiving, at a first device, a first token associated with the source data, from a second device (e.g.,  110 ,  FIG. 5 ) located within five feet of the first device, using a near proximity communication (NPC) protocol, which supports generation of the first token based on detection of presence of the first device within five feet of the second device, wherein the first token is an encoded first token for near proximity communication, wherein the first token is a non-public token, wherein the first token is based on the source data for sharing, wherein the receipt of the first token is based on the detection (e.g.,  1210 ,  FIG. 12 ); 
     means for facilitating decoding the first token (e.g.,  1220 ,  FIG. 12 ); 
     means for providing for communication based on a first communication protocol to a third device to download the source data using the decoded first token (e.g.,  1230 ,  FIG. 12 ), 
     wherein the first device is an NPC-enabled device, having an NPC interface, to allow presence of the first device to be detected by the second device when the first device is within five feet of the second device, 
     wherein the second device is an NPC-enabled device, 
     wherein the NPC protocol supports a data transfer rate that is not greater than a data transfer rate supported by the first communication protocol, 
     wherein the NPC protocol is a wireless communication protocol that supports automatic connection between at least two devices located within five feet. 
     36. A hardware apparatus comprising means adapted for performing a method associated with any one of the foregoing clauses. 
     37. An apparatus comprising means for performing a method associated with any one of the foregoing clauses. 
     38. An apparatus comprising one or more processors configured to perform a method associated with any one of the foregoing clauses. 
     39. An apparatus comprising one or more processors and a machine-readable medium, the machine-readable medium comprising instructions executable by one or more processors to perform a method associated with any one of the foregoing clauses. 
     In one aspect, any of the clauses herein may depend from any one of the independent clauses or any one of the dependent clauses. In one aspect, any of the clauses (e.g., dependent or independent clauses) may be combined with any other clauses (e.g., dependent or independent clauses). In one aspect, a claim may include some or all of the words (e.g., steps, operations, means or components) recited in a clause, a sentence, a phrase or a paragraph. In one aspect, a claim may include some or all of the words recited in one or more clauses, sentences, phrases or paragraphs. In one aspect, some of the words in each of the clauses, sentences, phrases or paragraphs may be removed. In one aspect, additional words or elements may be added to a clause, a sentence, a phrase or a paragraph. In one aspect, the subject technology may be implemented without utilizing some of the components, elements, functions or operations described herein. In one aspect, the subject technology may be implemented utilizing additional components, elements, functions or operations. 
     In one aspect, any methods, instructions, code, means, logic, components, blocks, modules and the like (e.g., software or hardware) described or claimed herein can be represented in drawings (e.g., flow charts, block diagrams), such drawings (regardless of whether explicitly shown or not) are expressly incorporated herein by reference, and such drawings (if not yet explicitly shown) can be added to the disclosure without constituting new matter. For brevity, some (but not necessarily all) of the clauses/descriptions/claims are explicitly represented in drawings, but any of the clauses/descriptions/claims can be represented in drawings in a manner similar to those drawings explicitly shown. For example, a flow chart can be drawn for any of the clauses, sentences or claims for a method such that each operation or step is connected to the next operation or step by an arrow. In another example, a block diagram can be drawn for any of the clauses, sentences or claims having means-for elements (e.g., means for performing an action) such that each means-for element can be represented as a module for element (e.g., a module for performing an action). 
     Those of skill in the art would appreciate that items such as the various illustrative blocks, modules, elements, components, methods, operations, steps, and algorithms described herein (e.g., components of, or operations on, client  102  or server  104 / 304 ) may be implemented as hardware, computer software, or a combination of both. 
     To illustrate the interchangeability of hardware and software, items such as the various illustrative blocks, modules, elements, components, methods, operations, steps, and algorithms have been described generally in terms of their functionality. Whether such functionality is implemented as hardware or software depends upon the particular application and design constraints imposed on the overall system. Skilled artisans may implement the described functionality in varying ways for each particular application. 
     In one aspect, “means,” a block, a module, an element, a component or a processor may be an item (e.g., one or more of blocks, modules, elements, components or processors) for performing one or more functions or operations. In one aspect, such an item may be an apparatus, hardware, or a portion thereof. In one example, an item may have a structure in the form of, for example, an instruction(s) for performing the function(s) or operation(s), where the instruction(s) are encoded or stored on a machine-readable medium, on another device, or on a portion thereof, where an instruction(s) may be software, an application(s), a subroutine(s), or a portion thereof. In an example, an item may be implemented as one or more circuits configured to perform the function(s) or operation(s). A circuit may include one or more circuits and/or logic. A circuit may be analog and/or digital. A circuit may be electrical and/or optical. A circuit may include transistors. In an example, one or more items may be implemented as a processing system (e.g., a digital signal processor (DSP), an application specific integrated circuit (ASIC), a field programmable gate array (FPGA), etc.). Those skilled in the art will recognize how to implement the instructions, circuits, and processing systems. 
     A reference to an element in the singular is not intended to mean “one and only one” unless specifically so stated, but rather “one or more.” For example, a client may refer to one or more clients, a server may refer to one or more servers, an operation may refer to one or more operations, and a signal, message, or communication may refer to one or more signals, messages, or communications. 
     Unless specifically stated otherwise, the term “some” refers to one or more. Pronouns in the masculine (e.g., his) include the feminine and neuter gender (e.g., her and its) and vice versa. Headings and subheadings, if any, are used for convenience only and do not limit the invention. 
     The word “exemplary” is used herein to mean “serving as an example or illustration.” Any aspect or design described herein as “exemplary” is not necessarily to be construed as preferred or advantageous over other aspects or designs. In one aspect, various alternative configurations and operations described herein may be considered to be at least equivalent. 
     A phrase such as an “aspect” does not imply that such aspect is essential to the subject technology or that such aspect applies to all configurations of the subject technology. A disclosure relating to an aspect may apply to all configurations, or one or more configurations. An aspect may provide one or more examples. A phrase such as an aspect may refer to one or more aspects and vice versa. A phrase such as an “embodiment” does not imply that such embodiment is essential to the subject technology or that such embodiment applies to all configurations of the subject technology. A disclosure relating to an embodiment may apply to all embodiments, or one or more embodiments. An embodiment may provide one or more examples. A phrase such an embodiment may refer to one or more embodiments and vice versa. A phrase such as a “configuration” does not imply that such configuration is essential to the subject technology or that such configuration applies to all configurations of the subject technology. A disclosure relating to a configuration may apply to all configurations, or one or more configurations. A configuration may provide one or more examples. A phrase such a configuration may refer to one or more configurations and vice versa. 
     In one aspect of the disclosure, when actions or functions are described as being performed by an item (e.g., modifying, intercepting, redirecting, determining, obtaining, creating, operating, deleting, removing, receiving, providing, generating, converting, displaying, notifying, accepting, selecting, controlling, transmitting, reporting, sending, or any other action or function), it is understood that such actions or functions may be performed by the item directly or indirectly. In one aspect, when a module is described as performing an action, the module may be understood to perform the action directly. In one aspect, when a module is described as performing an action, the module may be understood to perform the action indirectly, for example, by facilitating, enabling or causing such an action. 
     In one aspect, unless otherwise stated, all measurements, values, ratings, positions, magnitudes, sizes, and other specifications that are set forth in this specification, including in the claims that follow, are approximate, not exact. In one aspect, they are intended to have a reasonable range that is consistent with the functions to which they relate and with what is customary in the art to which they pertain. 
     In one aspect, the term “coupled” or the like may refer to being directly coupled. In another aspect, the term “coupled” or the like may refer to being indirectly coupled. 
     Various items may be arranged differently (e.g., arranged in a different order, or partitioned in a different way) all without departing from the scope of the subject technology. In one aspect of the disclosure, the elements recited in the accompanying claims may be performed by one or more modules or sub-modules. 
     It is understood that the specific order or hierarchy of steps, operations or processes disclosed are an illustration of exemplary approaches. Based upon design preferences, it is understood that the specific order or hierarchy of steps, operations or processes may be rearranged. Some of the steps, operations or processes may be performed simultaneously. Some or all of the steps, operations, or processes may be performed automatically, without the intervention of a user. The accompanying method claims, if any, present elements of the various steps, operations or processes in a sample order, and are not meant to be limited to the specific order or hierarchy presented. 
     The disclosure is provided to enable any person skilled in the art to practice the various aspects described herein. The disclosure provides various examples of the subject technology, and the subject technology is not limited to these examples. Various modifications to these aspects will be readily apparent to those skilled in the art, and the generic principles defined herein may be applied to other aspects. 
     All structural and functional equivalents to the elements of the various aspects described throughout this disclosure that are known or later come to be known to those of ordinary skill in the art are expressly incorporated herein by reference and are intended to be encompassed by the claims. Moreover, nothing disclosed herein is intended to be dedicated to the public regardless of whether such disclosure is explicitly recited in the claims. No claim element is to be construed under the provisions of 35 U.S.C. §112, sixth paragraph, unless the element is expressly recited using the phrase “means for” or, in the case of a method claim, the element is recited using the phrase “step for.” Furthermore, to the extent that the term “include,” “have,” or the like is used, such term is intended to be inclusive in a manner similar to the term “comprise” as “comprise” is interpreted when employed as a transitional word in a claim. 
     The Title, Background, Summary, Brief Description of the Drawings and Abstract of the disclosure are hereby incorporated into the disclosure and are provided as illustrative examples of the disclosure, not as restrictive descriptions. It is submitted with the understanding that they will not be used to limit the scope or meaning of the claims. In addition, in the Detailed Description, it can be seen that the description provides illustrative examples and the various features are grouped together in various embodiments for the purpose of streamlining the disclosure. This method of disclosure is not to be interpreted as reflecting an intention that the claimed subject matter requires more features than are expressly recited in each claim. Rather, as the following claims reflect, inventive subject matter lies in less than all features of a single disclosed configuration or operation. The following claims are hereby incorporated into the Detailed Description, with each claim standing on its own as a separately claimed subject matter. 
     The claims are not intended to be limited to the aspects described herein, but is to be accorded the full scope consistent with the language claims and to encompass all legal equivalents. Notwithstanding, none of the claims are intended to embrace subject matter that fails to satisfy the requirement of 35 U.S.C. §101, 102, or 103, nor should they be interpreted in such a way. Any unintended embracement of such subject matter is hereby disclaimed.