Syncing with a local paired device to obtain data from a remote server using point-to-point communication

A computer-implemented method may comprise requesting, by a first mobile computing device, a logical data object stored at an address location on a wide area network (WAN); receiving, by the first mobile computing device, the requested logical data object from the address location on the WAN and storing the received logical data object in the first mobile computing device. A logical data object request may then be received from a second mobile computing device. Responsive to the logical data object request, a copy of the stored logical data object of the logical data object stored at the address location on the WAN may be sent from the first mobile computing device to the second mobile computing device using a peer-to-peer communication protocol. The sent copy of the stored logical data object may be devoid of data or data files referred to by the stored logical data object.

BACKGROUND

Downloading the contents and/or structure of a database or other logical data object to a tablet, phone or other mobile computing device from a remote server over a wide area network (WAN) can be a lengthy and bandwidth-intensive task. Moreover, there are times in which it may be desired to transfer or replicate data from one device to another device. However, downloading permissions, authentication information, schema and data from a remote server over a WAN can be burdensome, in terms of computational resources, time and bandwidth.

DETAILED DESCRIPTION

FIG. 1is a block diagram of a method, devices and systems according to one embodiment. As shown therein, reference numeral102denotes a data storage device coupled to a WAN106including, for example, the Internet. The data storage device102may comprise, for example, a network attached storage (NAS), a storage area network (SAN), a server or other computing device at an address location on the WAN106. The data storage device102may store, for example, a database104, a configuration file, an XML file or any other logical data structure. For example, the database may comprise a collection of pictures and videos of a user of a mobile computing device or may comprise, for example, a Customer Relationship Management (CRM) database, in the case in which an embodiment is deployed in the enterprise arena. Herein, for brevity and simplicity's sake, reference will be made below to a “database” as an exemplary logical data structure, it being understood that the term “database” is expressly intended herein to encompass any form of such logical data structures. A mobile or other computing device110may be coupled to a local area network (LAN)108, as may be mobile or other computing device112. Mobile computing devices110,112may be coupled to the LAN108as well as to the WAN106.

According to one embodiment, one of the mobile computing devices, such as mobile computing device110, may store a complete copy of the database104, a partial copy thereof or may only store the schema of the database104. The schema of the database104stored by the mobile computing device110, for example, may include the logical organization (e.g., file structure) of the database104, as well as references (e.g., fully qualified paths) to the data, files and other logical data constructs stored in the database104. There may be instances in which a second mobile computing device, such as shown at112inFIG. 1, wishes to obtain or access the database104. Such may be the case when mobile computing device112is a new mobile computing device or is newly issued to the user. Such may also be the case when mobile computing device simply has not previously accessed the database104.

One embodiment enables a peer-to-peer, point-to-point or otherwise direct transfer of database or other logical data structure from a first mobile computing device such as mobile computing device110to a second mobile such as mobile computing device112within the LAN108. Indeed, after proper authentication and/or permissions (if any) are established, such a transfer may be carried out over the LAN108, at LAN speeds or may be carried out using a peer-to-peer, point-to-point or other fast communication protocol. Herein, it is assumed that data transfers may be carried out faster between mobile devices110and112and with less latency than is typical over the WAN106.

According to one embodiment, the mobile computing devices110,112may be paired, so as to establish authentication, trust and/or permission and data such as a database schema may be carried out from one of the mobile computing device110,112to the other of the mobile computing devices112using a peer-to-peer communication protocol, without involvement of a device outside of the LAN108. According to one embodiment, such peer-to-peer communication may be effectuated or facilitated by any of a number of, for example, short distance data transfer protocols, such as Bluetooth, Near Field Communication (NFC) and the like. According to one embodiment, the database schema that is transferred between the mobile computing devices110,112may only comprise the schema itself; namely the logical structure of the database and references to the files or other data structures contained therein, to the exclusion of the database data or database files themselves. Thereafter, when the user of the mobile computing device having received the database schema, shown at114inFIG. 1, wishes to access the data referred to by the just-received database schema114, access thereto may be requested and obtained from the mobile computing device from which it received the database schema, if this mobile computing device has the data, is still present and accessible within the same LAN108or is still coupled to the requesting computing device using the peer-to-peer communication protocol. Alternatively, access the data referred to by the just-received database schema114may be requested and obtained from a remote location on the WAN106, such as from NAS102.

According to one embodiment, a mobile computing device such as shown at110inFIG. 1may request, over its network interface, logical data object from an address location on the WAN106. According to one embodiment, the logical data object may comprise a schema such as, for example, a schema of a database. For example, mobile computing device110may request a selected database or other schema from a NAS102on the WAN106. The NAS102may then transfer, and the mobile computing device110may receive, the requested schema. The received schema may then be stored by and within the mobile device110. Full or partial contents of the database104may also be requested, transferred to and stored by the mobile computing device110. The database schema received and stored by the mobile computing device110may also comprise the address of the NAS102and references (e.g., paths and/or pointers) to the data, files or other logical data constructs stored or referred to by the database104. For example, the schema of database104may be transferred upon request to the mobile computing device110, whereupon the data, files and other logical data constructs contained or referred to by the database104may thereafter be transferred to the mobile computing device110in the background or on demand. Herein, reference is made to “schema”, although it is to be understood that the term may be replaced by the more generic phrase “logical data object”. Also, repeated reference is made herein to “mobile” computing devices. However, it is to be understood that embodiments may be implemented with most any computing devices, whether mobile or not.

Another mobile computing device, say mobile computing device112on LAN108, may desire to access the database104. Mobile computing device110could request and gain access to the database104, provided sufficient credentials are presented, by accessing the NAS102over the WAN106. Such request and access may, however, be quite slow, as being carried out over a potentially slow, unreliable public network. However, rather than accessing the database104over the WAN106, according to one embodiment, mobile computing device112may, as shown at (1) inFIG. 1, send a message to mobile computing device110, requesting the schema of the database104from it, instead of from the NAS102. Such a schema request may be made to the mobile computing device110upon discovery thereof on the LAN108, upon pairing therewith in a peer-to-peer manner through the mutual exchange of authentication, trust and permission information and upon determining that the mobile computing device110, in fact, stores a copy of the database schema. Any of a number of discovery protocols may be employed to determine the presence of an eligible mobile computing device on the LAN108from which the database schema may be requested. Examples of such discovery protocols include Bluetooth Service Discovery Protocol (SDP), DNS Service Discovery (DNS-SD), Dynamic Host Configuration Protocol (DHCP), Internet Storage Name Service (iSNS), Jini for Java objects, Service Location Protocol (SLP); Session Announcement Protocol (SAP) used to discover RTP sessions; Simple Service Discovery Protocol (SSDP) a component of Universal Plug and Play (UPnP); Universal Description Discovery and Integration (UDDI) for web services; Web Proxy Autodiscovery Protocol (WPAD); WS-Discovery (Web Services Dynamic Discovery); XMPP Service Discovery (XEP-0030) or \XRDS (eXtensible Resource Descriptor Sequence), to name but a few possibilities.

Responsive to the schema request from mobile computing device112, mobile computing device110may retrieve the requested schema from its local storage and may send a copy thereof to requesting mobile computing device112, as suggested at (2) inFIG. 1. This schema may be transferred from mobile computing device110to mobile computing device112using peer-to-peer communications, at speeds characteristic of point-to-point communications, which may be higher than communications over the WAN106. The mobile computing device112, having received the requested database schema114from mobile communication device110, may store the received schema in its memory or in a local, readily-accessible memory.

At this stage, according to one embodiment, mobile computing device112stores a copy of the schema of the database104. Therefore, mobile computing device112has full access to the structure of the database104, but not to the data contained or referred to therein. For example, mobile device112does not yet store any of the files or other data contained or referred to by the received schema of database104. According to one embodiment, mobile computing device112may then request one or more selected files or other logical data constructs referred to in the schema from mobile device110, if mobile device110is still in peer-to-peer communication with mobile device112or otherwise accessible to the mobile computing device112, such as over LAN108. If mobile computing device110is indeed still I peer-to-peer communication with the mobile computing device112or can re-establish such communication, it may respond to such request and provide the requested file, data or other logical data structure to the mobile computing device112, provided that mobile computing device110actually stores the requested data, file(s) or other logical data structure(s). Such transfer of data from mobile computing device110to mobile device112may be effectuated using a peer-to-peer communication protocol, and may take place entirely within LAN108.

If, however, mobile device110is no longer reachable on the LAN108or, in fact, does not store a local copy of the requested data, file(s) or other logical data structure(s), mobile computing device112may request the same from remote computing device102, over the WAN106. This request is shown inFIG. 1at (3). The remote computing device102(a NAS in the example being developed herewith) may then access the requested data, file(s) and/or other logical data structure stored in database104and provide the same to mobile computing device112, as shown at (4) inFIG. 1, provided that mobile computing device possesses the requisite permissions and/or other credentials to access such data. The data so received from the NAS102may then be stored in accordance with the schema in a memory local or accessible to mobile computing device112.

According to one embodiment, the schema provided to mobile computing device112by mobile computing device110may be periodically updated. Such an update may originate from the NAS102when the mobile computing device112connects thereto over the WAN106. However, according to one embodiment, the schema stored by mobile device112may be updated by another mobile computing device in communication therewith. For example, the schema stored in mobile computing device112may be updated by mobile computing device110if the schema stored by mobile computing device110is more recent than the schema stored by mobile computing device112. Alternatively, the schema stored in mobile computing device110may be updated by mobile computing device112if the schema stored by mobile computing device112is more recent than the schema stored by mobile computing device110, thereby reversing the schema and data provider and the schema and data requester roles previously established. This updating may be carried out asynchronously or at scheduled, regular intervals. In this manner, the schema stored by mobile computing device112may be kept synchronized with the schema stored by NAS102and/or the schema stored by mobile computing device110. A publish-subscribe model may be implemented to disseminate changes to selected computing devices within the LAN or coupled to the WAN106. Alternatively, changes may be propagated when a point-to-point connection between mobile computing devices is established. Other messaging schemes may be implemented.

There may be instances in which the computational horsepower or accessible bandwidth of one computing device far eclipses that of another computing device. In that case, the more capable mobile computing device may, after conferring exchanging suitable information with the other mobile computing device, take on the responsibility of requesting an updated schema and/or data from the (for example) NAS102over the WAN. Having obtained such updated schema and/or data, the more capable mobile computing device may then transfer the obtained schema and/or data to its comparatively less capable conferee, using peer-to-peer communication.

To determine which of two schemas is the newest, when a schema is requested or sent from one mobile computing device to another on the LAN108, schema request and/or the schema itself may comprise a timestamp, which indicates when the schema was last modified. For example, when a copy of a schema is requested from another mobile computing device, the recipient of the request may not send the requested schema if its own copy of the schema is older than the copy thereof on the requesting mobile computing device. Similarly, if a mobile computing device is sent (whether requested or not) a schema, it may not replace its currently-stored schema with the just-received copy thereof if the timestamp of the received schema is older than the timestamp of the schema it has stored locally.

According to one embodiment, the second mobile computing device112may send, and the mobile computing device110may receive access rights along the schema request. The access rights may comprise authentication information, trust information, authority information and/or any other information or credentials that are effective to define the rights of the schema requestor. Responsive thereto, the recipient of the access rights and schema request may send only that portion of the schema that is compatible with the access rights received. That may be the entire schema, a portion thereof or no part of the schema.

FIG. 2is a flowchart of a method according to one embodiment. As shown therein, block B21calls for requesting, by a first mobile computing device (such as110inFIG. 1), a schema114of a logical data object (database, files, XML objects, etc.) stored at an address location, such as the address of the NAS102on a WAN106. The mobile computing device110may then receive the requested schema from the address location on the WAN106and may store the received schema in the first mobile computing device110, as shown at B22inFIG. 2. The first mobile computing device110, as shown at B23, may then receive a schema request from a second mobile computing device, such as mobile computing device112inFIG. 1. Thereafter, responsive to the schema request, the first mobile computing device110, as shown at B24, may then send a copy of the stored schema of the logical data object stored at the address location on the WAN from the first mobile computing device110to the second mobile computing device112using peer-to-peer or other point-to-point communication. According to one embodiment, the copy of the stored schema sent to the second mobile computing device112is devoid of (i.e., does not comprise) data or data files referred to by the stored schema. According to one embodiment, the copy of the stored schema sent to the second mobile computing device112may contain some or all of the data referred to by the stored schema

WhereasFIG. 2shows aspects of a method according to one embodiment, from the point of view of a recipient of a schema request,FIG. 3shows aspects of a computer-implemented method according to one embodiment, from the point of view of a mobile computing device making the schema request and receiving the requested schema. Block B31calls for using peer-to-peer or other point-to-point communication, sending a request for a schema from a first mobile computing device such as112inFIG. 1, to a second mobile computing device such as shown at110inFIG. 1. The requested schema, according to one embodiment, may be or comprise a schema of a logical data object stored (e.g., database or other data construct) at a remote address location on a wide area network (WAN). As shown at B32, the mobile computing device112may then receive a copy of the requested schema from the second mobile computing device110using a peer-to-peer communication method and may then store the received copy of the schema in the first mobile computing device112or in a location accessible to the first mobile computing device112. According to one embodiment, after having received the copy of the schema from the second mobile computing device110, the first mobile computing device112may then request data referred to in the stored schema either from the first mobile device110(the sender of the schema) or from an address location on the WAN specified in the stored schema, as shown at B33. Block B33may be carried out immediately after block B32or long thereafter, when one or more files or other data constructs referred to by the schema are required. Block B34then calls for receiving the requested data from the mobile computing device110or the address location on the WAN (e.g., a NAS or other server on the WAN) and storing the received data in the first mobile computing device in accordance with the received and stored schema (e.g., in an appropriate place within the file structure defined by the received schema). The received and stored schema, according to one embodiment, may be devoid of data or data files referred to by the received schema.

In another illustrative implementation, some organizations have many computing devices that are coupled to LAN having a single shared WAN connection such as, for example, libraries or schools. It is not uncommon for such a shared WAN connection to be sub-par (low bandwidth), as is common in rural areas or other areas of the world. In such an environment, a user of one of the computing devices on the LAN may access a search engine homepage. Responsive thereto, the search server may download many files (images, stylesheets, javascript files and the like) to the user's computing device. These downloaded files, however, are the same for all users of this search engine. Rather than each computing device requesting the same files from the search engine server over the WAN, these files may be requested from the single computing device within the LAN. The single computing device from which the files were requested may then serve up these files on demand to the requesting computing devices utilizing intra-LAN communication or a peer-to-peer communication channel. In this manner, rather than each computing device requesting the same files from the slow WAN connection, these devices may, instead requested them from a local computing device utilizing the LAN or a peer-to-peer communication channel to fetch the data instead of using up the limited bandwidth on the WAN connection.

As another example, a first computing device may check the weather forecast. Another nearby second computing device may also check the same weather forecast. However, rather than requesting the same data from the weather forecast server, such weather data may be requested from the first computing device who already has the desired forecast stored. In this manner, the weather forecast server endpoint need not again be accessed by the second another computing device that is nearby the first computing device. Other implementations and applications may occur to those of skill in this art.

FIG. 4illustrates a block diagram of a computing device400with which an embodiment may be implemented. Computing device400may comprise, for example, a NAS, a SAN, a host, server and/or other electronic devices. Computing device400may comprise a bus401or other communication mechanism for communicating information, and a processor402coupled with bus401for processing information. The processor may be configured to carry out the functionality shown and described relative toFIGS. 1, 2 and 3. Computing device400may further comprise a random access memory (RAM)404or other dynamic storage device404(referred to as main memory), coupled to bus401for storing information and instructions to be executed by processor402. Main memory404also may be used for storing temporary variables or other intermediate information during execution of instructions by processor402. Computing device400may also comprise a read only memory (ROM) and/or other static storage device406coupled to bus401for storing static information and instructions for processor402. A data storage device407, such as a magnetic, solid state and/or optical disk, may be coupled to bus401for storing information and instructions. A network interface device408, such as a modem or network (such as Ethernet, for example) card may also be coupled to the bus401to provide access to a network, such as shown at106and108nFIG. 1.

The computing device400may also be coupled via bus401to a display device421for displaying information to a computer user. Other user interface mechanisms may be provided, as shown at422and423for communicating direction information and command selections to processor402. One embodiment is related to the use of a computing device400configured for providing and/or receiving a schema object over a LAN, as shown and as described herein. According to one embodiment, the processing described herein may be carried out by one or more computing devices400in response to processor(s)402executing sequences of instructions contained in memory404. Such instructions may be read into memory404from another computer-readable and non-transitory medium, such as data storage device407and/or from a remotely located server. Execution of the sequences of instructions contained in memory404may causes processor(s)402to implement the methods and functionality described above. In alternative embodiments, hard-wired circuitry may be used in place of or in combination with software instructions to implement an embodiment. Thus, the described embodiments are not limited to any specific combination of hardware circuitry and software.

The functionality and structures shown and described relative toFIGS. 1-4enable a peer-to-peer or point-to-point transfer that allows a user to access a remote database or other data construct quickly and without necessarily downloading a full copy thereof. Device configuration and preferences may be transferred at peer-to-peer speeds, thereby enabling a user to synchronize a new or other device with an existing device more quickly than was previously possible. Significantly, faster transfer of data from one device to another device are made possible, without accessing the WAN (e.g., the Internet). Moreover, in addition of direct, point-to-point transfers of schemas from one device to another, embodiments enable transfers of permissions and/or other credentials to access, for example, a remote database from one device to another device using, for example, a point-to-point or peer-to-peer communication protocol.

While certain embodiments of the disclosure have been described, these embodiments have been presented by way of example only, and are not intended to limit the scope of the disclosure. Indeed, the novel methods, devices and systems described herein may be embodied in a variety of other forms. Furthermore, various omissions, substitutions and changes in the form of the methods and systems described herein may be made without departing from the spirit of the disclosure. The accompanying claims and their equivalents are intended to cover such forms or modifications as would fall within the scope and spirit of the disclosure. For example, those skilled in the art will appreciate that in various embodiments, the actual physical and logical structures may differ from those shown in the figures. Depending on the embodiment, certain steps described in the example above may be removed, others may be added. Also, the features and attributes of the specific embodiments disclosed above may be combined in different ways to form additional embodiments, all of which fall within the scope of the present disclosure. Although the present disclosure provides certain preferred embodiments and applications, other embodiments that are apparent to those of ordinary skill in the art, including embodiments which do not provide all of the features and advantages set forth herein, are also within the scope of this disclosure. Accordingly, the scope of the present disclosure is intended to be defined only by reference to the appended claims.