CN106797373B - Metadata assisted rendering of data - Google Patents

Metadata assisted rendering of data Download PDF

Info

Publication number
CN106797373B
CN106797373B CN201580038601.4A CN201580038601A CN106797373B CN 106797373 B CN106797373 B CN 106797373B CN 201580038601 A CN201580038601 A CN 201580038601A CN 106797373 B CN106797373 B CN 106797373B
Authority
CN
China
Prior art keywords
computing system
data
file
raw data
metadata
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201580038601.4A
Other languages
Chinese (zh)
Other versions
CN106797373A (en
Inventor
M.J.诺瓦克
D.库马
G.哈斯尔霍菲
陈俞帆
S.沙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Microsoft Technology Licensing LLC
Original Assignee
Microsoft Technology Licensing LLC
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Microsoft Technology Licensing LLC filed Critical Microsoft Technology Licensing LLC
Publication of CN106797373A publication Critical patent/CN106797373A/en
Application granted granted Critical
Publication of CN106797373B publication Critical patent/CN106797373B/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/10Protocols in which an application is distributed across nodes in the network
    • H04L67/104Peer-to-peer [P2P] networks
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/06Protocols specially adapted for file transfer, e.g. file transfer protocol [FTP]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/50Network services
    • H04L67/56Provisioning of proxy services
    • H04L67/561Adding application-functional data or data for application control, e.g. adding metadata
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L69/00Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
    • H04L69/04Protocols for data compression, e.g. ROHC

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • Library & Information Science (AREA)
  • Information Transfer Between Computers (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

The invention relates to metadata-assisted providing a representation of data (310) on a second computing system (302), while said data (310) is actually present on a first computing system (301): metadata (320, 330) associated with data (310) resident on a first computing system (301) is sent to at least a second computing system (302). The metadata is structured such that, when interpreted by the second computing system, the second system provides a representation that the data is local. The first system then receives a communication from the second computing system stating that the user has interacted with the representation of the data on the second system. Logic operations may be applied to determine how and when to send data to the second system. Based on the determination made by the logical operation, the data is sent to the second system in association with the identifier for the entire data.

Description

Metadata assisted rendering of data
Background
Computing systems and related technology affect many aspects of society. In fact, the ability of computing systems to process information has transformed the way we live and work. Computing systems now commonly perform numerous tasks (e.g., word processing, scheduling, accounting, etc.) that were performed manually prior to the advent of the computing system. More recently, computing systems have been coupled to each other and to other electronic devices, such as telephones and tablet devices, to form both wired and wireless computer networks over which the computing systems and other electronic devices can communicate electronic data.
Many times, a large number of desktop computers, laptops, phones, tablets, etc. are coupled to one another within a cloud-based service/network. For example, a certain household (and the various members of the household having a desktop computer, a tablet, and a smartphone) may couple each of these devices through a cloud-based service/network. The cloud-based service/network may then allow individual family members to access documents, photos, videos, and have them created on each other's devices.
The subject matter claimed herein is not limited to embodiments that solve any disadvantages or that operate only in environments such as those described above. Rather, this background is provided merely to illustrate one exemplary technology area in which certain embodiments described herein may be practiced.
Disclosure of Invention
At least some embodiments described herein relate to the use of logical operations for routing data, derived versions of data, and data transformations. In some embodiments, metadata associated with data resident on a first computing system is sent to at least a second computing system. The metadata is structured such that, when interpreted by the second computing system, the second computing system provides a representation that the data exists locally. The first computing system then receives a communication from the second computing system stating that the user has interacted with the representation of the data on the second computing system. In response to the communication, the first computing system then sends the transformation of the data to at least the second computing system. Other embodiments contemplate the second computing system as: interpreting the metadata to provide an indication that the data is locally present; detecting a user interacting with the performance; and at least one transformation of the data is requested from the first computing system accordingly.
In other embodiments, metadata that includes an identifier and is associated with data resident on a first computing system is sent to at least a second computing system. Logic is then applied to determine how and when to send the derived version of the data to at least a second computing system. Based on the determination made by applying the logical operation, the derived version of the data is sent to at least a second computing system in association with the identifier for the entire data.
This summary is provided to introduce a selection of concepts in a simplified form that are further described below in the detailed description. This summary is not intended to identify key features or essential features of the claimed subject matter, nor is it intended to be used as an aid in determining the scope of the claimed subject matter.
Drawings
In order to describe the manner in which the above-recited and other advantages and features of the invention can be obtained, a more particular description of the invention briefly described above will be rendered by reference to specific embodiments thereof which are illustrated in the appended drawings. Understanding that these drawings depict only typical embodiments of the invention and are not therefore to be considered to be limiting of its scope, the invention will be described and explained with additional specificity and detail through the use of the accompanying drawings, in which:
FIG. 1 illustrates an example computing system in which principles described herein may operate;
FIG. 2 illustrates an environment for making data generated at a first computing system available to computing systems available over a network through a virtual representation of the generated data;
FIG. 3 illustrates a particular example of a computing environment for making data generated at a first computing system available to the computing system over a network through a virtual representation of the generated data;
FIG. 4 illustrates a flow chart of a method for using metadata to prepare at least a portion of data resident on a first computing system for use by other computing systems on a network;
FIG. 5 illustrates a flow diagram of a method for sending at least one transformation of data to at least a second computing system using logical operations; and
FIG. 6 illustrates a flow diagram of a specific example of logical operations that may be applied to determine when at least one derived version of data should be sent to a second computing system.
Detailed Description
At least some embodiments described herein relate to the use of logical operations for routing data, derived versions of data, and data transformations. For example, the logical operations may be based on the habits of the user, the availability of bandwidth, the preferences of the user, and so forth. For example, the logical operations used may include delaying for a prescribed period of time based on past user interaction with similar types of data before sending the derived version of the data. The delay may be the average time it takes for the user to discard unwanted digital pictures and edit wanted digital pictures. The logical operations used may also be dynamically updated according to the user's preferences.
In some embodiments, metadata associated with data resident on a first computing system is sent to at least a second computing system. The metadata is structured such that when interpreted by the second computing system, the second computing system provides an indication that the data is locally present. The first computing system then receives a communication from the second computing system stating that the user has interacted with the representation of the data on the second computing system. In response to the communication, the first computing system then sends the transformation of the data to at least the second computing system. Other embodiments contemplate the second computing system as: the metadata is interpreted to provide a representation that the data is locally present, a user interaction with the representation is detected, and at least one transformation of the data is requested accordingly from the first computing system.
In other embodiments, metadata that includes an identifier and is associated with data resident on a first computing system is sent to at least a second computing system. Logic is then applied to determine how and when to send the derived version of the data to at least a second computing system. Based on the determination made by applying the logical operation, the derived version of the data is sent to at least a second computing system in association with the identifier for the entire data.
Although the subject matter has been described in language specific to structural features and/or methodological acts, it is to be understood that the subject matter defined in the appended claims is not necessarily limited to the described features or the order of acts described herein. Rather, the described features and acts are disclosed as example forms of implementing the claims.
Computing systems are now taking an increasingly diverse variety of forms. The computing system may be, for example, a handheld device, a household appliance, a laptop computer, a desktop computer, a mainframe, a distributed computing system, or even a device not traditionally considered a computing system. In this description and in the claims, the term "computing system" is defined broadly to include any device or system (or combination thereof) that includes at least one physical and tangible processor, and physical and tangible memory, on which computer-executable instructions may be stored that are executable by the processor.
FIG. 1 illustrates an example computing system 100. In its most basic configuration, computing system 100 typically includes at least one processor 102 and memory 104. The memory 104 may be physical system memory, which may be volatile, non-volatile, or some combination of the two. The term "memory" may also be used herein to refer to non-volatile mass storage devices, such as physical storage media. If the computing system is distributed, the processing, memory, and/or storage capabilities may also be distributed.
Each of the computing systems described herein may be interconnected by (or may be part of) a network, such as, for example, a local area network ("LAN"), a wide area network ("WAN"), and even the internet. Thus, the distributed computing system, as well as any other connected computing systems and any of its components, can create message-related data and exchange message-related data over a network (e.g., internet protocol ("IP") datagrams and other higher layer protocols that utilize IP datagrams, such as transmission control protocol ("TCP"), hypertext transfer protocol ("HTTP"), simple mail transfer protocol ("SMTP"), etc.).
As used herein, the term "executable module" or "executable component" may refer to a software object, route, or method that may be executed on a computing system. The different components, modules, engines, and services described herein may be implemented as objects or processes that execute on the computing system (e.g., as separate threads).
In the description that follows, embodiments are described with reference to acts that are performed by one or more computing systems. If such acts are implemented in software, the one or more processors of the associated computing system that performs the acts direct the operation of the computing system in response to having executed computer-executable instructions. For example, such computer-executable instructions may be embodied on one or more computer-readable media forming a computer program product. One example of such an operation involves the manipulation of data. The computer-executable instructions (and the manipulated data) may be stored in the memory 104 of the computing system 100. Computing system 100 may also contain communication channels 108 that allow computing system 100 to communicate with other message processors over, for example, network 110. Computing system 100 may also have a display 112 to display a user interface for a user and, of course, associated input devices (not shown) if the user is to enter data into the computing system.
The embodiments described herein may include or utilize a special purpose or general-purpose computing system including computer hardware, such as, for example, one or more processors and system memory, as discussed in more detail below. System memory may be included in the collective memory 104. The system memory may also be referred to as "main memory" and includes memory locations accessible by the at least one processor 102 over a memory bus, in which case the address locations are referred to as being on the memory bus itself. The system memory is traditionally volatile, but the principles described herein apply in environments where the system memory is partially or even entirely non-volatile.
Embodiments within the scope of the present invention also include physical and other computer-readable media for carrying or storing computer-executable instructions and/or data structures. Such computer-readable media can be any available media that can be accessed by a general purpose or special purpose computing system. Computer-readable media storing computer-executable instructions and/or data structures are computer storage media. Thus, by way of example, and not limitation, embodiments of the invention can include at least two distinctly different types of computer-readable media: computer storage media and transmission media.
Computer storage media is physical storage media that store computer-executable instructions and/or data structures. Physical storage media includes recordable-type storage devices, such as RAM, ROM, EEPROM, solid state drives ("SSDs"), flash memory, phase change memory ("PCM"), optical disk storage, magnetic disk storage or other magnetic storage devices, or any other physical hardware storage medium(s) that may be used to store program code in the form of computer-executable instructions or data structures and that may be accessed and executed by a general-purpose or special-purpose computing system to implement the functions described herein.
Transmission media can include a network and/or data links which can be used to carry program code in the form of computer-executable instructions or data structures and which can be accessed by a general purpose or special purpose computing system. A "network" is defined as one or more data links that enable the transport of electronic data between computing systems and/or modules and/or other electronic devices. When information is transferred or provided over a network or another communications connection (whether hardwired, wireless, or a combination of hardwired or wireless) to a computing system, the computing system may consider the connection as a transmission medium. Combinations of the above should also be included within the scope of computer-readable media.
Moreover, program code in the form of computer-executable instructions or data structures may be transferred automatically from transmission media to computer storage media (or vice versa) upon reaching various computing system components. For example, computer-executable instructions or data structures received over a network or a data link may be cached in RAM within a network interface module (e.g., a "NIC"), and then eventually transferred to computing system RAM and/or to less volatile computer storage media at the computing system. Thus, it should be understood that computer storage media can be included in computing systems that also (or even primarily) utilize transmission media.
Computer-executable instructions comprise, for example, instructions and data which, when executed at one or more processors, cause a general purpose computing system, special purpose computing system, or special purpose processing device to perform a certain function or group of functions. The computer-executable instructions may be, for example, binaries, intermediate format instructions, such as assembly language, or even source code.
Those skilled in the art will appreciate that the invention may be practiced in network computing environments with many types of computing system configurations, including, personal computers, desktop computers, laptop computers, message processors, hand-held devices, multi-processor systems, microprocessor-based or programmable consumer electronics, network PCs, minicomputers, mainframe computers, mobile telephones, wearable devices (e.g., smartwatches), PDAs, tablets, pagers, routers, switches, and the like. The invention may also be practiced in distributed system environments where local and remote computing systems, which are linked (either by hardwired data links, wireless data links, or by a combination of hardwired and wireless data links) through a network, both perform tasks. Thus, in a distributed system environment, a computing system may comprise multiple constituent computing systems. In a distributed system environment, program modules may be located in both local and remote memory storage devices.
Those skilled in the art will also appreciate that the present invention may be practiced in cloud computing environments. The cloud computing environment may be distributed, although this is not necessarily required. When distributed, a cloud computing environment may be internationally distributed within an organization, and/or have components that occupy across multiple organizations. In this description and in the following claims, "cloud computing" is defined as a model that enables on-demand network access to a shared library of configurable computing resources (e.g., networks, servers, applications, and services). The definition of "cloud computing" is not limited to any of the other many advantages that may be derived from such a model when properly deployed.
FIG. 2 illustrates a computing system environment 200 according to principles described herein. The environment 200 includes a first computing system 201, a second computing system 202, and a network 220 interposed between the first and second computing systems. The first computing system 201 is illustrated as storing data 210. The second computing system 202 is shown storing data 220. Network 220 allows at least computing systems 201 and 202 to connect through any of the means described herein. Oval 203 represents any number of additional computing systems connected to computing systems 201 and 202 via network 230. Computing system 201 and computing system 202 (and any number of additional computing systems represented by ellipses 203) are examples of computing system 100.
The data 210 may be any type of data that may be interpreted by a computing system. For example, data 210 may be digital pictures (e.g., jpg or bmp files), documents (e.g., txt or doc files), digital audio (e.g., mp3 files), video files, or any other type of data. Similarly, data 210 may be a single file (e.g., digital picture,. doc,. pdf, etc.) or may be many files (e.g., 2 gigabytes of digital picture, folder, etc.). The data 210 may also be streaming data. Data 220, represented by rectangles with dotted lines, may be any type of data associated with data 210. For example, data 220 may be metadata associated with data 210, a derived version of data 210, a transformation of data 210, the entire data 210, and so forth.
FIG. 3 illustrates a more specific example of a computing environment 300 for practicing the principles described herein, and will be described with respect to the computing environment 200 of FIG. 2. Environment 300 includes a smartphone 301, a laptop 302, a cloud computing system 303, a synchronization engine 304, and a network 305 that allows all of these components to communicate. The smartphone 301 is shown storing data 310. Laptop 302 is shown storing data 320. Cloud computing system 303 is shown storing data 330. The synchronization engine 304 allows data or transformations of data to be synchronized in a manner that will be described in more detail below. Network 305 allows all of the computing systems shown in environment 300 to connect. It should be noted that there may be any number of computing systems connected by network 305, as illustrated by oval 203 in FIG. 2. Similarly, the illustrated computing systems may be known in the art and/or described herein (e.g., smart phones, tablets, desktop computers, laptop computers, cloud computing systems, cameras, etc.).
Because the methods described in the flowcharts of fig. 4-6 may be performed in environment 300, those methods will often be described with reference to fig. 3. In fig. 4 through 6, actions performed by a first computing system (such as first computing system 201 of fig. 2, or computing system 301 of fig. 3) will be listed in the left column of each figure, under the heading "first computing system". On the other hand, actions performed by a second computing system (such as second computing system 202 of FIG. 2, or computing system 302 of FIG. 3) will be listed in the right column of each figure, under the heading "second computing system". The actions associated with the initial synchronization of data (or transformation thereof) from the first computing system to the second computing system are illustrated in solid line boxes. The actions associated with subsequent edits to the data (or transformations thereof) by the second computing system are illustrated in dashed boxes.
In fig. 4 through 6, specific scenarios will now be outlined and used in this description in order to illustrate the principles described herein. In this scenario, a group of users all subscribe to a cloud computing service, which provides a medium for each user's device (computing system) to share data and communicate with each other.
FIG. 4 illustrates a flow chart of a method 400 for using metadata to prepare at least a portion of data resident on a first computing system for availability on other computing systems in the same network. Method 400 begins when one of the users generates data on a first computing system in a network (act 411). In an ongoing scenario, data generation may occur when one of the users takes a digital picture 310 by using the smartphone 301. In certain embodiments, the first computing system may comprise a distributed computing system, such as a smartphone 301 in conjunction with a cloud computing system 303. In other embodiments, the first computing system may be a single computing system, such as smartphone 301. It should also be noted that any of the computing systems in the network may be considered a "first computing system" in the context of data being generated on that particular computing system.
Once the data is generated, the synchronization engine 304 may identify the newly generated data 310, and make edits and add additional information to the metadata 320, 330 of the data. The additional information may include an identifier that allows any computing system in the network to identify the location of the data 310, retrieve the data 310 from the location, and display the data 310 (e.g., IP address, source path, file size, etc.).
Similarly, the additional information may include an interpretation of the metadata already included. For example, a digital picture taken on day 4, 7 months, may be interpreted as taken on a separate day. In other embodiments, the interpretation of metadata that has been included may include the location where the data was generated (e.g., pictures taken near seattle 400Broad St, washington, usa were interpreted as taken at Space Needle), the time when the data was generated (e.g., pictures taken 10: 00a.m. on 25 days 12 months could be interpreted as taken on christmas morning), and so forth.
The metadata 320, 330 may be constructed in the following way, namely: the interpretation of the metadata is shown as a representation of data 310 when it is received and interpreted by computing systems in the network. In other words, once the second computing system receives the metadata, it will appear to the end user as if the data 310 resides locally at the second computing system.
The synchronization engine 304 may comprise hardware, software, or a combination of both. Likewise, the sync engine 304 may comprise components that reside on a single computing system or components that are distributed across multiple computing systems. For example, the synchronization engine 304 may reside solely on the cloud computing system 303, or on the client computing system 301/302. In other embodiments, the synchronization engine 304 may be distributed between the cloud computing system 303 and the customer computing systems 301, 302.
Once the synchronization engine identifies the generated data and adds additional information to the metadata, as described above, the metadata is sent to at least a second computing system (act 412). Typically, the metadata will be sent to each computing system in the network. In an ongoing example, metadata 320, 330 associated with digital picture 310 may be sent from smartphone 301 to laptop 302 and cloud computing system 303.
In some embodiments, the synchronization engine 304 may alert the cloud computing system 303 of the generated data, which causes the cloud computing system to pull metadata from the smartphone 301 and then, as an intermediary, send the metadata to all computing systems in the network. In other embodiments, the smartphone 301 may push metadata to other computing systems in the network through the cloud computing system 303, a peer-to-peer connection, or any other suitable communication method. In yet other embodiments, the synchronization engine 304 can alert at least a second computing system in the network of newly generated data, causing the at least second computing system to pull metadata from the first computing system.
After the metadata is sent, at least the second computing system will receive the metadata (act 421). For example, the second computing system may be a laptop 302 that receives metadata 320 associated with a digital picture 310.
Once the metadata is received, the second computing system then interprets the metadata (act 422). As described above, metadata is constructed in such a manner that: once it is interpreted by the second computing system, the data appears to reside locally on the second computing system (act 423). In the ongoing example, laptop 302 may receive and interpret metadata 320 associated with digital picture 310. The interpreted metadata 320 may then appear to the end user of the laptop 302 as a thumbnail of a locally stored (i.e., locally stored on the laptop 302) copy of the digital picture 310. In some embodiments, the representation of the interpreted metadata may appear as a thumbnail, icon, folder, file name, or any other suitable representation/representation of the data.
FIG. 5 illustrates a method 500 for sending at least one transformation of data to at least a second computing system using logical operations after the metadata of FIG. 4 is sent. Once the metadata is sent, a logical operation is performed at the first computing system to determine when to send at least the derived version of the generated data to at least the second computing system (act 511). It should be noted that derived versions of data 310 (e.g., metadata) may be represented by blocks 320 and 330 of computing systems 302 and 303, respectively. The derived versions 320, 330 of the data 310 may be as much as the entire data 310, as little as the metadata of the data 310, or any amount in between.
In some embodiments, the applied logical operations may be dynamically updated according to user preferences. In other embodiments, the applied logical operations may include delaying for a specified period of time before sending the derived version 320 of the data 310 based on a particular user's past interaction with similar types of data. For example, in an ongoing scenario, the applied logical operations may include a delay before sending at least one derived version of the data 310 that takes into account the average time a particular user (i.e., the user taking the digital picture 310) takes to discard unwanted digital pictures and edit wanted digital pictures. In this way, the system can avoid synchronizing digital pictures that have not been subjected to the usual initial deletion for selecting the best digital picture. As discussed previously, it should be noted that data 310 may also include a number of data files, such as a folder of digital pictures.
In some embodiments, the applied logical operations may determine that the first computing system 301 should push the derived version 320 of the data 310 to at least the second computing system 302. Alternatively, the applied logical operations may determine that the second computing system 302 should pull at least one derived version 320 of the data 310 from the first computing system 301. The exported version may be pulled/fetched using any suitable protocol (e.g., HTTP, FTP, SMB, web services call, etc.). In other embodiments, the second computing system may utilize the cloud computing system 303 as a medium for retrieving the derived version 320 of the data 310.
In some embodiments, the end user generating the data 310 can mark the data with a level of importance. For example, an end user may create a document that someone/everyone in the network is eager to receive, and thus, may mark the document as very important/urgent. The logical operations applied may include rules that depend on the size of the data generated, the type of data generated, which user generated the data, where the data was generated (e.g., the device in which the data was generated, the folder in which the data was generated, etc.), the particular user's habits, whether the user is on Wi-Fi, whether the user is using a paid network data plan, the resources available (e.g., network availability, bandwidth, etc.), the importance of the type of data, etc., or any other suitable logical operation rules. Similarly, the applied logical operations may be dynamically updated in accordance with any of the factors described herein.
In response to application of the logical operation, the first computing system then sends the at least one derived version of the data to the second computing system in association with the identifier for the entire data (act 512). In some embodiments, the manner of associating with the identifier for the entire data includes: derived version 320 of data 310 is included in the same transmission as the metadata. In other embodiments, the manner associated with the identifier for the entire data includes the synchronization engine 304 adding additional information to the derived version 320 of the data 310, which may allow the second computing system to identify the location of the entire data 310.
In some embodiments, derived version 320 of data 310 is a transformation of the entire data. The transformation of the data may include a thumbnail that allows the user to preview the data. In other embodiments, the transform may include a digital picture with a lower resolution than the original digital picture associated with the transform. In yet other embodiments, the transformation may include a digital picture identified within and extracted from the raw data. For example, the raw data 310 may be
Figure GDA0002260525770000091
Figure GDA0002260525770000092
Rendering, and transformation 320 may include keywords that have been identified and extracted from POWERPOINT, thus making the POWERPOINT searchable. This may allow the end user to search the data 310 locally (i.e., without using the network 305 to communicate with other computing systems in the network) and still be able to identify the location (i.e., computing system) where the POWERPOINT resides.
Likewise, derived version/transformation 320 of data 310 may be an augmentation of the data that includes additional data formulated through evaluation of data 310. The evaluation of the data 310 may be computed at a first computing system, a second computing system in the network, or may be distributed among more than one computing system in the network. The augmentation may include inferred data that is estimated to be correct based on the evaluation of the data 310, but that is not believed to be correct based on the evaluation of the data 310. For example, the inferred data may include an estimated identity of the person in the digital picture or an estimated landmark that the person was facing when the digital picture was taken. Inferred data may also include estimated temperature, geographic location, time, optical characteristic identification, product identification, and the like.
It should be noted that any of the embodiments used herein to describe transformed/derived versions of data may be equally applied to the metadata described herein. Similarly, any of the embodiments used herein to describe metadata may likewise be understood as applied to a transformed/derived version of data. For example, the metadata may include augmentations similar to those described above with respect to transformed/derived versions of the data.
The second computing system then receives the transmitted derived version of the entire data (act 521). In an ongoing example, the derived version 320 may be a lower resolution digital picture than the original digital picture 310, for example. In some embodiments, the derived version of the data may be too similar to the entire data to meet the needs of the end user, in which case the user may then retrieve the entire data. For example, the end user may take a full resolution digital picture 310 after receiving a lower resolution digital picture that is insufficient to meet the end user's requirements. The protocol used to retrieve data 310 may be HTTP, FTP, SMB, web services calls, or any other suitable protocol. Although derived version 320 was just described as a lower resolution digital picture, it may be in any of the forms described above.
The derived version 320 may also allow the user to perform the following optional steps: the derived version of the data is used, manipulated, or edited (act 522). In the ongoing example, the end user may edit the lower resolution digital picture 320 on the laptop 302 using the filter. The derived version 320 of the editing/manipulation data 310 may be of any type suitable for the type of data received (e.g., text of a text document is edited, a digital picture is cropped, the pdf is made searchable, etc.).
Once the derived version of the data is edited on the second computing system, the edited data is synchronized to the first computing system (act 513). Although the act of synchronizing is shown in fig. 5 as being performed on the first computing system, the synchronization may be accomplished by any of the computing systems in the network, either individually or in a distributed fashion. In some embodiments, the synchronization engine 304 may identify: the editing has been completed on the second computing system and proceeds to synchronize the edited data back to the first computing system. In other embodiments, cloud computing system 303 may function as a proxy, synchronizing any edits done on computing systems in the network back to the first computing system that originally generated the data, and to any other applicable computing systems in the network.
FIG. 6 illustrates a specific example of logical operations that may be applied to determine when at least one derived version of data should be sent to a second computing system. More specifically, FIG. 6 illustrates a method 600 of logical operations for applying a transformation including determining data to be transmitted in response to a user interaction with a representation of the data described in the method 400 of FIG. 4.
Method 600 begins when a user interaction with metadata/renderings of the entire data on a second computing system (described in method 400) is detected at the second computing system (act 621). In an ongoing scenario, for example, laptop 302 may detect that the user is attempting to open a thumbnail 320 of digital picture 310 on the laptop. In response to the detection of the user interaction, the second computing system then requests at least one transformation of the entire data from the first computing system (act 622).
The first computing system then receives a communication from the second computing system indicating that the user has interacted with the rendering of the entire data (act 611). For example, a first computing system may receive a communication stating that an end user of laptop 302 is attempting to open thumbnail 320 associated with digital picture 310 resident on smartphone 301. In response to receiving the communication, the first computing system then sends at least one transformation of the data 310 to the second computing system (act 612).
In response to the request, the second computing system then receives at least one transformation of the entire data from the first computing system (act 623). In an ongoing example, the transform 320 may simply be a digital picture of slightly lower resolution than the original digital picture 310 generated on the smartphone 301, for example. Although the transform 320 is described in the previous example as a lower resolution digital picture, it may have any of the forms described above.
The transformation 320 may also allow the user to perform optional steps: transformations to use, manipulate, or edit the data (act 624). For example, a user may receive a lower resolution picture 320 at laptop 302 and decide to crop the photo for a particular application. The possible editing/manipulation of the transformation may be of any of the types described above.
Once the transformation 320 of data is edited on the second computing system, the edited data is synchronized back to the first computing system (act 613). As noted above, while the act of synchronizing is shown in FIG. 6 as being performed on the first computing system, the synchronizing may also be performed individually or in a distributed manner by any of the computing systems in the network.
Thus, the principles described herein provide a mechanism for enabling users to see the appearance of data on their respective devices/systems without actually having to synchronize the entire data. Moreover, once the user interacts with the presentation, the synchronization mechanism provides the data (or its transformations) if the data (or its transformations) has not been synchronized to the device/system at the same time. Moreover, logical operation rules may be applied in relation to determining the timing of synchronous operations in order to maximize perceived performance under a given environment.
The present invention may be embodied in other specific forms without departing from its spirit or essential characteristics. The described embodiments are to be considered in all respects only as illustrative and not restrictive. The scope of the invention is, therefore, indicated by the appended claims rather than by the foregoing description. All changes which come within the meaning and range of equivalency of the claims are to be embraced within their scope.

Claims (20)

1. A method implemented at a first client computing system comprising one or more processors for making at least a portion of data on the first client computing system available to at least a second client computing system, the method comprising:
identifying a file that includes raw data available at the first client computing system and that is to be shared with one or more additional computing systems;
generating metadata associated with the file, the metadata comprising: (i) an exported portion of the raw data, and (ii) information identifying the first client computing system as a location of the raw data of the file, the metadata structured such that, when interpreted by the second client computing system, the second client computing system can use the exported portion of the raw data to display a representation of the file as if it actually existed on the second client computing system, and request the raw data of the file from the first client computing system when the representation of the file was accessed at the second client computing system;
sending the metadata to a server computing system configured to send the metadata to the second client computing system;
receiving a request for the raw data from the second client computing system, the request received based on a user request at the second client computing system to access a representation of the file; and
based at least on receiving the request, sending the raw data to the second client computing system.
2. The method of claim 1, wherein the derived portion of the original data comprises an augmentation of the original data, the augmentation comprising additional data formulated by an evaluation of the original data.
3. The method of claim 2, wherein the augmentation comprises inferred data that is estimated to be correct based on the evaluation of the original data, but the inferred data is not believed to be correct based on the evaluation of the original data.
4. The method of claim 3, wherein the inferred data comprises an estimated identity of a person in a digital picture.
5. The method of claim 3, wherein the inferred data comprises an estimated landmark that a person is facing when a digital picture represented by the data was taken.
6. The method of claim 1, wherein the raw data comprises a digital picture.
7. The method of claim 6, wherein the derived portion of the original data comprises a thumbnail image that the second client computing system can display in conjunction with displaying the representation of the file.
8. The method of claim 1, wherein the derived portion of the raw data comprises text extracted from the raw data, and the second client computing system is capable of presenting the text in conjunction with displaying a representation of the file.
9. A computing system, comprising:
one or more processors; and
one or more computer-readable storage media having stored thereon computer-executable instructions executable by the one or more processors to cause the computing system to access data from at least one other computing system, the computer-executable instructions comprising instructions executable to cause the computing system to perform at least the following:
receiving metadata from a server computing system, the metadata having been received by the server computing system from another computing system, the metadata comprising: (i) an export portion of raw data of a file at the other computing system, and (ii) information identifying the other computing system as a location of the raw data of the file;
based at least on receiving the metadata from the server computing system, using the exported portion of the raw data to display the representation of the file as if it actually existed on the computing system, including displaying the exported portion of the raw data with the representation of the file; and
detecting a user interaction with the displayed representation of the document;
in response to detecting the user interaction:
requesting the raw data of the file from the other computing system; and
receiving the raw data of the file from the other computing system in response to the request.
10. The computing system of claim 9, wherein the derived portion of the original data comprises an augmentation of the original data, the augmentation comprising additional data formulated through an evaluation of the original data.
11. The computing system of claim 10, wherein the augmentation comprises inferred data that is estimated to be correct based on the evaluation of the original data, but the inferred data is not believed to be correct based on the evaluation of the original data.
12. The computing system of claim 11, wherein the inferred data comprises an estimated identity of a person in a digital picture.
13. The computing system of claim 11, wherein the inferred data comprises an estimated landmark that a person is facing when a digital picture represented by the data was taken.
14. The computing system of claim 9, wherein the raw data comprises a digital picture, the derived portion of the raw picture comprises a thumbnail of the picture, and displaying the derived portion of the raw data with the representation of the file comprises displaying the thumbnail.
15. The computing system of claim 9, wherein the derived portion of the raw data comprises text extracted from the raw data, and displaying the derived portion of the raw data with the representation of the file comprises displaying the text.
16. The computing system of claim 9, the computer-executable instructions comprising instructions executable to cause the computing system to send one or more changes made to the raw data by the computing system to the other computing system.
17. A computing system, comprising:
one or more processors; and
one or more computer-readable storage media having stored thereon computer-executable instructions executable by the one or more processors to cause the computing system to make at least a portion of data on the computing system available on one or more additional computing systems, the computer-executable instructions comprising instructions executable to cause the computing system to at least:
identifying a file, the file comprising raw data available at the computing system and the raw data to be shared with at least one other computing system;
generating metadata associated with the file, the metadata comprising: (i) an export portion of the raw data, and (ii) information identifying the computing system as a location of the raw data as the file, the metadata structured to, when interpreted by the other computing systems, enable the other computing systems to use the export portion of the raw data to display a representation of the file as if it actually existed on the other computing systems, and to request the raw data of the file from the computing systems when the representation of the file was accessed at the other computing systems;
sending the metadata to a server computing system configured to send the metadata to the other computing systems;
receiving a request for the raw data from the other computing system, the request received based on a user request at the other computing system to access a representation of the file; and
based at least on receiving the request, sending the raw data to the other computing system.
18. The computing system of claim 17, wherein sending the metadata is delayed for a specified period of time based on past user interactions with similar types of data.
19. The computing system of claim 18, wherein the delay comprises an average time a user spends discarding unwanted digital pictures and editing wanted digital pictures.
20. The computing system of claim 17, wherein the derived portion of the original data comprises an augmentation of the original data, the augmentation comprising additional data formulated through an evaluation of the original data.
CN201580038601.4A 2014-07-16 2015-07-13 Metadata assisted rendering of data Active CN106797373B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US14/333025 2014-07-16
US14/333,025 US9560128B2 (en) 2014-07-16 2014-07-16 Sharing a file through a metadata representation of the file
PCT/US2015/040082 WO2016010871A1 (en) 2014-07-16 2015-07-13 Metadata-assisted providing of appearance of data

Publications (2)

Publication Number Publication Date
CN106797373A CN106797373A (en) 2017-05-31
CN106797373B true CN106797373B (en) 2020-04-03

Family

ID=53758539

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201580038601.4A Active CN106797373B (en) 2014-07-16 2015-07-13 Metadata assisted rendering of data

Country Status (4)

Country Link
US (1) US9560128B2 (en)
EP (1) EP3170298B1 (en)
CN (1) CN106797373B (en)
WO (1) WO2016010871A1 (en)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1860788A (en) * 2003-05-16 2006-11-08 比卡萨有限公司 Methods and systems for image sharing over a network
US7315386B1 (en) * 1997-06-30 2008-01-01 Fujifilm Corporation Image communication system and method
CN103024508A (en) * 2011-09-20 2013-04-03 Lg电子株式会社 Digital system and method of processing service data thereof
CN103890749A (en) * 2011-10-18 2014-06-25 迈克菲股份有限公司 Cooperative mobile analytics

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7689510B2 (en) 2000-09-07 2010-03-30 Sonic Solutions Methods and system for use in network management of content
US8527646B2 (en) 2009-04-14 2013-09-03 Avid Technology Canada Corp. Rendering in a multi-user video editing system
WO2010127365A1 (en) 2009-05-01 2010-11-04 Citrix Systems, Inc. Systems and methods for establishing a cloud bridge between virtual storage resources
US8296338B2 (en) 2009-05-05 2012-10-23 Entangled Media Corp. Method for a cloud-based meta-file system to virtually unify remote and local files across a range of devices' local file systems
WO2011021909A2 (en) * 2009-08-21 2011-02-24 Samsung Electronics Co., Ltd. Method and apparatus for providing contents via network, method and apparatus for receiving contents via network, and method and apparatus for backing up data via network, backup data providing device, and backup system
US8880580B2 (en) 2010-07-28 2014-11-04 Admiemobile Llc Systems and methods for establishing and maintaining virtual computing clouds
US9086937B2 (en) 2012-05-16 2015-07-21 Apple Inc. Cloud-based application resource files

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7315386B1 (en) * 1997-06-30 2008-01-01 Fujifilm Corporation Image communication system and method
CN1860788A (en) * 2003-05-16 2006-11-08 比卡萨有限公司 Methods and systems for image sharing over a network
CN103024508A (en) * 2011-09-20 2013-04-03 Lg电子株式会社 Digital system and method of processing service data thereof
CN103890749A (en) * 2011-10-18 2014-06-25 迈克菲股份有限公司 Cooperative mobile analytics

Also Published As

Publication number Publication date
US20160021175A1 (en) 2016-01-21
EP3170298A1 (en) 2017-05-24
CN106797373A (en) 2017-05-31
US9560128B2 (en) 2017-01-31
WO2016010871A1 (en) 2016-01-21
EP3170298B1 (en) 2018-05-09

Similar Documents

Publication Publication Date Title
US11233851B2 (en) System, method, and computer program for enabling a user to access and edit via a virtual drive objects synchronized to a plurality of synchronization clients
JP6694545B1 (en) User interface extender
US10289659B2 (en) Delivery and display of page previews using shadow DOM
US20130226876A1 (en) Synchronizing local clients with a cloud-based data storage system
US9633125B1 (en) System, method, and computer program for enabling a user to synchronize, manage, and share folders across a plurality of client devices and a synchronization server
AU2020203219B2 (en) Sharing unmanaged content using a content management system
US20190205056A1 (en) Transparent data movement between a private cloud and storage ecosystem and another storage system
US10210172B1 (en) File system integration and synchronization between client and server
US8994748B2 (en) Anchors for displaying image sprites, sub-regions and 3D images
US20150350371A1 (en) Caching and syncing mechanisms for a cloud library
WO2022143081A1 (en) Data synchronization method and apparatus
WO2017114190A1 (en) File uploading processing method and device
US20230325460A1 (en) Methods of website generation
US8635270B2 (en) Thread mechanism for media and metadata upload
US9330188B1 (en) Shared browsing sessions
US10853316B1 (en) File versioning for content stored in a cloud computing environment
US9432238B2 (en) Communicating large amounts of data over a network with improved efficiency
CN106797373B (en) Metadata assisted rendering of data
KR101659147B1 (en) Information processing apparatus, and control method therefor
Andriani et al. An architecture for synchronising cloud file storage and organisation repositories
US9304830B1 (en) Fragment-based multi-threaded data processing
WO2024091346A1 (en) Cross-device data transfer based on a request-responding mode

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant