Aggregate service with file sharing
The aggregate service addresses the complexity of managing multiple cloud storage services and devices by providing a unified interface for file access and management, enhancing user experience and simplifying file sharing and search across various platforms.
Patent Information
- Application Number
- DE102015118676
- Authority / Receiving Office
- DE · DE
- Patent Type
- Patents
- Current Assignee / Owner
- Priority Date
- 2014-10-30
- Filing Date
- 2015-10-30
- Publication Date
- 2025-05-15
- Estimated Expiration
- 2035-10-30
AI Technical Summary
Current cloud storage solutions require separate entitlement/authentication services for each service, making it difficult for users to manage multiple accounts and access files across different devices and cloud services efficiently.
An aggregate service that allows users to access and manage multiple cloud storage services and devices through a single interface, enabling seamless file sharing, search, and transfer across various platforms.
The aggregate service simplifies the process of accessing and managing files across multiple cloud services and devices, reducing the complexity of authentication and file management, and enhancing user experience by providing a unified interface for file access and manipulation.
Smart Images

Figure 00000000_0000_ABST
Abstract
Description
background
[0001] People store information (e.g., images, documents, presentation sheets, music files, videos, etc.) within files and folders on information handling devices (e.g., smartphones, personal computers, laptop computers, tablets, personal digital assistants, electronic readers, etc.). Cloud storage allows users the convenience of storing information using a remote storage location. Users are then able to access the information stored in the remote storage location from multiple information handling devices. Generally, these remote storage locations require the user to either move files from their local machine or save the information directly to the remote storage location.After the files are placed in the remote storage location, the user can access the remote storage location from any information handling device by entering credentials that allow the remote storage device to authenticate the user.
[0002] From US 2009 / 0 240 693 A1 a method is known in which a computer network is used to provide a single access point between a plurality of video and audio devices and a plurality of video and audio content provider systems.
[0003] A virtual database system (VDB) is known from US 2007 / 0 260 628 A1. The VDB enables the consistent integration of map data, often originating from different sources, for delivery to an end user, while ensuring that the entity best able to support a particular data source retains control over the data. Short summary
[0004] The object of the present invention is to enable improved access to data.
[0005] This object is achieved by the subject matter of main claim 1 and the independent claims 10 and 18, which define the present invention.
[0006] Preferred embodiments of the present invention are defined by the subclaims.
[0007] In summary, one aspect provides a method comprising: sending, from a device, input from a user requesting access to data retrievable by an aggregate service device; sending, from the device, input from the user selecting a selection of data from the aggregate service device; and sending a dispatch command; wherein the dispatch command includes information related to dispatching a pointer indicating the selection of the data.
[0008] Another aspect provides a device comprising: a processor; a storage device storing instructions executable by the processor to send input from a user requesting access to data retrievable by an aggregate service device; to send the input from the user selecting a selection of data from the aggregate service device; and to send a dispatch command, the dispatch command including information related to dispatching a pointer indicating the selection of the data.
[0009] Another aspect provides a product comprising: a storage device having code stored therein, the code being executable by the processor and comprising: code that sends input from a user requesting access to data retrievable by an aggregate service device from the device; code that sends input from a user selecting a selection of data from the aggregate service device from the device; and code that sends a dispatch command; wherein the dispatch command includes information related to dispatching a pointer indicating the selection of the data.
[0010] The foregoing summary may contain simplifications, generalizations, and omissions of details; consequently, those familiar with the art will recognize that the summary is illustrative only and is not intended to be limiting in any way.
[0011] For a better understanding of the embodiments, together with other and further features and advantages thereof, reference is made to the following description taken in conjunction with the accompanying drawings. The scope of the invention is indicated in the appended claims. Brief description of the different views of the drawings Fig. 1 shows an example of an information handling device circuit. Fig. 2 shows another example of an information handling device circuit. Fig. Figure 3 shows an example of a file manager system used by the aggregate server. Fig. Figure 4 shows an example diagram of the flow of information from a storage location to a display on a local device. Fig. 5 shows an example of a method of an aggregate service with a user interface. Detailed description
[0012] It will be readily understood that the components of the embodiments generally described herein and shown in the figures may be arranged and constructed in a wide variety of different configurations in addition to the described exemplary embodiments. Thus, the following detailed description of exemplary embodiments as illustrated in the figures is not intended to limit the scope of the embodiments as claimed, but is merely representative of exemplary embodiments.
[0013] Reference throughout this specification to "a single embodiment" or "an embodiment" (or the like) means that a particular feature, structure, or character described in connection with the embodiment is included in at least one embodiment. Thus, the appearances of the phrases "in a single embodiment" or "in an embodiment" or the like in various places in this specification do not necessarily refer to the same embodiment.
[0014] Furthermore, the described features, structures, or characteristics may be combined in any suitable manner in one or more embodiments. In the following description, numerous specific details are provided in order to provide a thorough understanding of the embodiments. However, one skilled in the relevant art will recognize that the various embodiments may be practiced without one or more of the specific details, or with or without methods, components, materials, etc. In other instances, well-known structures, materials, or methods are not shown or described in detail to avoid confusion.
[0015] Due to the rising cost of hard drive storage, increasing broadband speeds, and the public's desire to access their personal data regardless of location, the availability of free or inexpensive cloud storage has grown exponentially over the past few years. Users may use different cloud storage services (e.g., Dropbox, AmazonS3, Google Drive, OneDrive, SugarSync, etc.) for different purposes. For example, a user may have personal cloud storage, work cloud storage, a user may allow others to access a cloud storage account but not others, and the like. Additionally or alternatively, a user may wish to actively maintain multiple cloud storage services / accounts, as each company or cloud storage service offers different benefits.One problem with these multiple cloud storage services is that each service requires its own authorization / authentication service. Additionally, maintaining such separate accounts can be difficult. DROPBOX is a registered trademark of Dropbox, Inc. in the United States and other countries. AMAZON is a registered trademark of Amazon Technologies, Inc. in the United States and other countries. GOOGLE is a registered trademark of Google Inc. in the United States and other countries. ONEDRIVE is a registered trademark of Microsoft Corporation in the United States and other countries. SUGARSYNC is a registered trademark of Sharpcast, Inc. in the United States and other countries.
[0016] Additionally, a user may wish to maintain multiple active accounts on a single cloud service to compartmentalize their files (e.g., to keep work and personal files separate, etc.). If a user has multiple active accounts, managing all of these accounts and the files stored within them can be overwhelming. In addition, authentication credentials (e.g., usernames, passwords, biometric data, etc.) may be different for each cloud storage service. One solution is an application that allows a user to access multiple accounts from a single application. However, these applications generally only allow a user to add a single account from a specific provider. In other words, if a user has multiple accounts with the same cloud storage service (“cloud storage provider”) (e.g.,a Google Drive account for personal use and a Google Drive account for school use, etc.), the user cannot access these multiple accounts from a single application. If the user wishes to view the content of different (e.g., work, home, family, personal, friends, etc.) accounts hosted with the same service provider, the user must typically log out of one current account and log back in using the other account. Therefore, currently available applications / mechanisms for accessing / influencing cloud resources from an information handling device are inefficient. Additionally, due to issues with interactions with cloud storage services (e.g., delays in content delivery, execution when interacting with a cloud resource, etc.), these interactions can result in an overall poor customer experience.
[0017] An additional problem with these applications is that the application generally only provides access to cloud storage services. However, a user may also wish to access files stored on one of their own information handling devices (e.g., home computer, work computer, smartphone, tablet, and the like ("non-local user devices" or "remote devices")) from a different information handling device ("client device" or "local device"). For example, a user may wish to access an image stored on their home PC from their smartphone or tablet.Enabling a user to view all of their personal devices and / or cloud storage services / accounts and the data residing on those devices through a single graphical user interface (GUI) would allow the user to access all of their files, regardless of the device they use to access the information. Additionally, the user could access the information from any location. Currently, no single solution provides everything required for effective interaction with multiple cloud storage services.
[0018] In addition to the challenges of managing large groups of cloud storage services / accounts, users face the problem of rapidly increasing electronic data volumes. Even if a user has access to the desired data, the user may have difficulty locating a specific piece of data. With current solutions, if a user performs a local search and the search fails to locate the desired data, the user cannot simply extend the same search to cloud-based data or data stored on other user devices. Therefore, the user is required to perform multiple searches on each device where the desired data may be stored. Thus, a search solution that offers search functionality across multiple cloud services and / or user devices is needed.
[0019] A user who has stored information on a variety of storage devices (e.g., non-local user devices, local devices, removable devices, cloud storage devices, etc.) may find it difficult to share data with others. This is particularly problematic when a user uses a mobile device with a low storage capacity. For example, a user may wish to post an image to a social media platform. The image may be stored on their home computer, but they are currently using their smartphone. Additionally or alternatively, if a user intends to share a file stored in a remote location (e.g., cloud storage device, non-local user device, etc.), the user may be required to perform difficult and time-consuming steps.For example, the user may be required to locate the remote device or cloud account, enter authentication credentials, open a sharing application, possibly enter authentication credentials within the sharing application, and then locate the data stored on the device with which they want to share. A solution is needed that has the ability to share files located on remote devices or cloud storages through an aggregated console.
[0020] Accordingly, one embodiment provides a method for connecting multiple remote and local devices (e.g., desktops, laptops, smartphones, tablets, etc.) and cloud storage services / accounts / devices to a single aggregate service / application. In one embodiment, when a device (e.g., remote, local, cloud service, etc.) is connected to the aggregate service, the data the aggregate service has access to may be limited by the device connected to the aggregate service. For example, a device may limit access to the data stored on the device through use of permissions and / or account settings on the device (e.g., the user may not share data belonging to another user of the same device). One embodiment allows a user, when connecting a device to the aggregate service, to select which files and folders to share with the aggregate service.For example, a user may select photos but not financial documents stored on the computer to distribute. In another embodiment, the selected data to be shared may be selected by the aggregation service based on a predetermined configuration; for example, the aggregation service may automatically distribute data to user folders (e.g., "My Documents," "My Music," "My Pictures," "My Videos," and the like).
[0021] In an exemplary embodiment, an aggregate service may receive access to a selection of data (e.g., the data selected by the user to be shared) stored on a remote device (e.g., a device connected to the aggregate service information handling device). The selection of data may consist of data accessible by a particular user. In other words, for the aggregate service to receive access to the data (e.g., files, folders, etc.), the user must have access to the files, e.g., via operating system permissions of the remote device. In one embodiment, after receiving access, the aggregate service may record and store analogous data to the data stored on the device. This analogous data may include metadata related to the files on the device (e.g.,the title, abstract, author, keywords, file size, data type, data location, data origin, etc.). In one embodiment, the analog data may be a copy of the data stored on the device. Alternatively or additionally, the analog data may be the actual data stored on the device. This analog data may be stored by the aggregate service to allow a user to see all of their files in one location without actually requiring that the files be stored in that single location, thereby preserving resources and reducing costs for the user.
[0022] In one embodiment, the aggregate service may receive a request from the user to access the aggregate service. Upon receiving this request, the aggregate service may authenticate the user. In one embodiment, this authentication may consist of using credentials entered by the user. Additionally or alternatively, this authentication may be through the use of one or more tokens. These tokens may be derived from the credentials previously entered by the user and may be used to determine which user is requesting access to the aggregate service. Alternatively, these tokens may store the credentials previously entered by the user. Once the user is authenticated, the data contained in the aggregate service may be made available to the user.This provision may include displaying the data on a display device (e.g., computer monitor, smartphone display, tablet display, etc.). Alternatively or additionally, provision may involve transmitting or outputting data in any format.
[0023] According to one embodiment, after a user has entered their permissions and been granted access to the aggregate service, the user may select data located on a device using the aggregate service. The user's ability to select data may be limited to the data to which the user has access. The aggregate service may help facilitate a data transfer associated with the user's selected data. For example, the user may be able to request file transfers from any remote device connected to and known to the aggregate service. For example, the user could transfer a photo located on their home PC to their smartphone for viewing. In an additional embodiment, the user may be able to request a file transfer from a local device to any other (e.g., non-local user device, cloud storage device, etc.)) that is connected to and known by the aggregate service. For example, the user could request a photo to be sent from their work PC to their home PC for long-term storage. In another embodiment, the user may be able to request file transfers between multiple devices connected to and known by the aggregate service using their local device. For example, the user could request to move a photo from their SUGARSYNC account to their phone using their work PC.
[0024] In one embodiment, the remote and local devices connected to the aggregate state may maintain at least one authentication token for accessing the aggregate service. Alternatively or additionally, the aggregate service may maintain at least one authentication token for all known and connected devices (e.g., personal devices, cloud storage services, etc.). This improves the user experience and reduces the number of times a user must provide authentication credentials to regularly access their data. In a particular embodiment, in order for a user to access selected data stored on a remote device (e.g., personal computer, smartphone, tablet, etc.), the remote device may have an open communication connection with the aggregate service. The remote device may establish this open communication connection by providing token(s) orSecurity tokens are maintained by the aggregate service for authentication. These tokens may contain the credentials previously entered by the user or, alternatively, may contain information derived from the credentials previously entered by the user.
[0025] In one embodiment, the token may comprise a refreshed token that maintains authentication credentials for a particular remote device for a period of time (e.g., weeks, days, months, etc.). The refreshed token lifetime or duration of authentication may be predetermined by an embodiment modified by the user or using some other criteria. This allows a user who is more concerned about the security of their electronic data to set a larger, stricter (e.g., shorter) time limit on the accessibility of their data. Furthermore, the refreshed token may be refreshed (i.e., renewed), for example, when the user subsequently requests access to the aggregate service or logs into the remote device. Thus, for example, as long as a user requests access to the aggregate service, the user is required to enter credentials once a month.
[0026] Additionally, one embodiment provides a method wherein the aggregate service receives authentication to access data stored in a cloud storage service / account / device. For example, if the cloud account is connected to the aggregate service, the user may enter their cloud account credentials, thereby enabling the aggregate service to access all or some of the files contained in the cloud account. In one embodiment, the user may grant the aggregate service access to a selection of the data based on a user selection (namely, the data selected by the user to be distributed).
[0027] In one embodiment, user permissions related to the cloud storage service are not verified by the aggregate service and are instead passed directly to the cloud storage service provider. For example, in one embodiment, a user may log into the aggregate service and connect the cloud account to the aggregate service. After opening this connection, the user may be presented with the cloud account / service's authorizing service. The user may then enter their permissions directly into the cloud service authorizing service, and the aggregate service is never privy to this information.In one embodiment, upon successfully completing the credentialing, the aggregate service may present a token for use in any subsequent authentications between the aggregate service and the cloud storage service, thereby providing further identity protection for the user.
[0028] Additionally, one embodiment may enable the user to authenticate access to a plurality of cloud storage systems hosted by a single provider (e.g., a Google account for work, home, family, personal, friends, etc.). In one embodiment, the aggregate service stores data analogous to data from the plurality of cloud storage accounts. This analog data may include, for example, metadata (e.g., title, abstract, author, keywords, file size, data type, data location, data creation, etc.), hierarchical data, and the like. Alternatively or additionally, analog data may include the actual data from the cloud device. For example, the aggregate service may copy the data from the cloud service and store the data in storage within the aggregate service.Alternatively or additionally, the data included within the aggregate service may include the actual data stored in the cloud account. This analog data may be stored by the aggregate service to allow a user to view all of their files stored across all of their devices and cloud storage services in one location. Storing the analog data may enable information already available to the user without actually requiring the data to be stored in a single aggregate location, thereby preserving service resources and minimizing costs.
[0029] In another embodiment, once a user has been granted access to the aggregate service, the aggregate service may provide the analog data. This providing may include displaying the data or may include outputting the data in some formatting. An embodiment may receive a selection of data. For example, the user may select data stored on a cloud storage device. An embodiment may then facilitate a data transfer associated with the selection of the data. For example, the user may request to transfer files from a cloud storage service connected to and known to the aggregate service to a local device. For example, the user may request to transfer a photo located in their Google Drive to their smartphone.In an additional embodiment, a user may request to transfer a file from their local device to any cloud storage service connected to and known by the aggregate service. For example, the user may transfer an image stored on their phone to their Google Drive. In one embodiment, a user may be able to transfer files between multiple cloud storage systems connected to and known by the aggregate service using their local device. For example, a user could request to move a photo from their Google Drive to their Dropbox using their phone.
[0030] In one embodiment, the aggregate service may receive a request from the user to access the aggregate service. Upon receiving this request, the aggregate service may authenticate the user. In one embodiment, this authentication may be performed through the use of credentials entered by the user. Additionally or alternatively, this authentication may be performed through the use of one or more tokens. These tokens may include or be derived from credentials previously entered by the user and may be used to determine which user is requesting access to the aggregate service. For example, one embodiment may provide a token to the local device from the aggregate service so that the user does not have to enter their credentials each time the user wants to access the aggregate service.Once the user is authenticated, the data contained in the aggregate service may be made available to the user, for example, displayed on a display device (e.g., computer monitor, smartphone display, tablet display, etc.). Once the user is authenticated, the user may have the ability to manipulate the data, for example, as described above.
[0031] Managing an abundance of files across a wide variety of platforms (e.g., personal computers, tablets, smartphones, cloud storage services, etc.) can be difficult for a user to organize and maintain. Thus, to enable a user to manage files within the aggregate service or accessible through the aggregate service, an intuitive user interface may be useful. In one embodiment, a graphical user interface having a file manager format may be provided. One embodiment may provide a method for receiving file system data and presenting that data in a user interface, for example, in the form of a file manager application (e.g., Windows Explorer, Mac OS X Finder, Dolphin in KDE, Nautilus in GNOME, etc.).The file manager application can display all the data stored in the aggregate service or accessible through the aggregate service, for example, in a folder structure similar to what a typical user can comfortably handle (e.g., that of a normal operating system). For example, the file manager can show all personal devices connected to the aggregate service, all cloud storage services connected to the aggregate service, and any other storage devices. WINDOWS is a registered trademark of Microsoft Corporation in the United States and other countries. MAC and OS X are registered trademarks of Apple Inc. in the United States and other countries. DOLPHIN is a registered trademark of KDE eV in the United States and other countries. NAUTILUS and GNOME are registered trademarks of the GNOME Foundation in the United States and other countries.
[0032] In another embodiment, the user may be able to manipulate data, for example, dragging and dropping data from one device to another using the interface. For example, the file manager may be able to receive data stored on any of the storage devices (e.g., personal devices, cloud storage devices, removable storage devices, local devices, etc.) using the aggregation service. In one embodiment, the user may request to transfer files from any known remote device connected to the aggregation service or from a cloud storage device to a local device using the file manager. For example, a user may drag files from their Google Drive to their PC desktop.In an additional embodiment, the user may request to transfer a file from their local device to any known remote device connected to the aggregation service or to a cloud storage device. For example, a user may request to transfer an image from their desktop to their Google Drive for storage. In one embodiment, a user may transfer files between remote devices and cloud storage services known to and connected to the aggregation service using their local device. For example, a user could request to transfer a photo from a home PC to their Google Drive using their phone.
[0033] When a user typically uses a mobile device with a low storage capacity, most of their data may be stored using a cloud service or an alternative device. However, a user may wish to utilize the data stored on the alternative storage device (e.g., cloud service, removable storage device, remote device, etc.) while using their mobile device without actually transferring the data to their mobile device. For example, a user may wish to post an image or file stored on their home computer to a social media service using the mobile device. Thus, one embodiment provides the ability to distribute files existing on any of the connected storage devices (e.g., personal devices, cloud storage devices, removable storage devices, local devices of the aggregate service, etc.) in an aggregated console.An embodiment may send a distribution command including, for example, a pointer (e.g., a link or a physical address or location of the requested file) in response to a user selecting a selection of data within the aggregate service. The distribution command, in one embodiment, may then be sent to the aggregate service to indicate how the pointer is to be distributed.
[0034] In one embodiment, the distribution of the pointer may be done automatically based on some predetermined function of an application. Additionally or alternatively, this may be determined by the user (e.g., the user posting a photo on Facebook or Twitter). In one embodiment, the distribution command may include information for attaching the pointer to an electronic communication (e.g., an email or text message). In another example, the distribution command may include information for distributing a hyperlink that may be directly linked to the location of the files. The hyperlink may be intended for public access or may require viewing permissions depending on the user's needs. In one embodiment, the distribution command may include information for using a short-range communication protocol (e.g.,a near-field communication (NFC), a radio frequency identification (RFID), etc.) or a tool such as SHAREit (a Lenovo application) to enable rapid distribution to one or more nearby devices without requiring additional hardware or transmission protocols. In another embodiment, the distribution command may comprise use of an on-device sharing application (e.g., Android share) that allows the user to select a distribution means associated with an existing application (e.g., Google Hangouts, Twitter, Short Message Service (SMS), etc.). FACEBOOK is a registered trademark of Facebook Inc. in the United States and other countries. TWITTER is a registered trademark of Twitter, Inc. in the United States and other countries.
[0035] In one embodiment, once a user has accessed the aggregate service, the user may enter search criteria. An embodiment may search analog data stored on the aggregate service device using the search criteria provided by the user. For example, a user may enter the search phrase "pictures of the Grand Canyon," and an embodiment may then search for the phrase "pictures of the Grand Canyon" within the data stored on the aggregate service device or accessible by the aggregate service device. In one embodiment, the search may be completed using an index. This index may contain details of the data stored on the aggregate service device. For example, an embodiment may monitor the data stored on one or more storage devices.Upon receiving updated data, an embodiment may create an index that details the data, which may then be searched by an embodiment.
[0036] After receiving the results produced by the search, an embodiment may display the search results on a device. An additional embodiment may allow a user to filter or sort the results once the results are displayed. The user's filtering and sorting may be completed using analog data associated with the data as described above or may be completed using the type of device. An embodiment may, once the search is completed, determine the most relevant search results. Once the determination is made, the displayed search results may include a predetermined selection of the most relevant results. This predetermined selection may include a shortage or a user-configured number.Additionally or alternatively, this predetermined selection may be based on analogous data included in the data. For example, the predetermined selection may include only data generated within the last week. An embodiment may receive user input requesting expanded results after displaying a subset of the results. These expanded results may include additional results by returning to the search.
[0037] The illustrated exemplary embodiments are best understood by reference to the figures. The following description is intended as an example only and simply illustrates certain exemplary embodiments.
[0038] While various other circuits, circuits or components are used in information handling devices with respect to a smartphone and / or tablet circuit 100, a Fig. 1, a system-on-chip design is used, for example, in tablets or other mobile computing platforms. Software and processor(s) are combined in a single chip 110. Internal buses and the like depend on different vendors, but essentially all peripheral devices 120 can be mounted on a single chip 110. Processors include internal arithmetic units, registers, cache memories, buses, I / O ports, etc., as are well known in the art. The circuit 100 combines the processor, memory controller, and an I / O control node together in a single chip 110. Also, such systems 100 do not typically use SATA or PCI or LPC interfaces. Common interfaces include, for example, SDIO and I2C.
[0039] There are power management chip(s) 130, e.g., a battery management unit (BMU), which supplies power, for example, via a rechargeable battery 140, which is recharged by connection to a power source (not shown). In at least one design, a single chip, such as 110, is used to provide BIOS-like functionality and DRAM memory.
[0040] The system 100 typically includes one or more of a WWAN transceiver 150 and a WLAN transceiver 160 for connecting to various networks, such as telecommunications networks and wireless Internet devices, e.g., access points. Additionally, devices are usually included, e.g., an image sensor such as a camera, a microphone, a biometric scanner, and the like. The system 100 often includes a touchscreen 170 for data entry and display / playback. The system 100 also typically includes various storage devices, e.g., flash memory 180 and SDRAM 190.
[0041] Fig. Figure 2 shows a block diagram of another example of information handling device circuits, circuits, or components. The example shown in Fig. 2 may correspond to computer systems such as the THINKPAD series of personal computers sold by Lenovo (US) Inc. of Morrisville, NC, or other devices. As is obvious from the description herein, embodiments may include other features or only some features of the features of the example shown in Fig. 2 shown.
[0042] The example of Fig. 2 includes a so-called chipset 210 (a group of integrated circuits or chips that work together, chipsets) with an architecture that may vary depending on the manufacturer (e.g., INTEL, AMD, ARM, etc.). INTEL is a registered trademark of Intel Corporation in the United States and other countries. AMD is a registered trademark of Advanced Micro Devices Inc. in the United States and other countries. ARM is an unregistered trademark of ARM Holding plc in the United States and other countries. The architecture of the chipset 210 includes a core and a memory control group 220 and an I / O control node 250 that exchanges information (e.g., data, signals, instructions, etc.) via a direct management interface (DMI) 242 or an interconnect controller 244. In Fig. 2, the DMI 242 is a chip-to-chip interface (sometimes referred to as a connection between a "northbridge" and a "southbridge"). The core and memory control group 220 include one or more processors 222 (e.g., single- or multi-core) and a memory control node 226 that exchanges information via a front-side bus (FSB) 224; it should be noted that the components of group 220 may be integrated on a chip, replacing the conventional "northbridge"-like structure. One or more processors include internal arithmetic units, registers, cache memories, buses, I / O ports, etc., as are well known in the art.
[0043] In Fig. 2, the memory controller node 226 interfaces with the memory 240 (e.g., to provide support for a type of RAM, which may be referred to as "system memory" or "memory"). The memory controller node 226 further includes a low-voltage differential signal (LVDS) interface 232 for a display device 292 (e.g., a CRT, a flat panel display, a touchscreen, etc.). A block 238 includes some technologies that may be supported via the LVDS interface 232 (e.g., serial digital video, HDMI / DVI, display port). The memory controller node 226 also includes a PCI Express (PCI-E) interface 234 that may support discrete graphics 236.
[0044] In Fig. 2, the ON / OFF control node 250 includes a SATA interface 251 (e.g., for HDDs, SDDs, etc. 280), a PCI-E interface 252 (e.g., for wireless connections 282), a USB interface 253 (e.g., for devices 284 such as a digitizer, a keyboard, a mouse, cameras, telephones, microphones, storage, other connected devices, etc.), a network interface 254 (e.g., LAN), a GPIO interface 255, an LPC interface 270 (for ASICs 271, a TPM 272, a super ON / OFF control node 273, a firmware node 274, BIOS support 275, and various types of memory 276 such as ROM 277, Flash 278, and NVRAM 279), a power management interface 261, a clock generator interface 262, an audio interface 263 (for example for loudspeakers 294), a TCO interface 264, a system management bus interface 265 and an SPI flash 266, which can contain a BIOS 268 and a boot code 290.The ON / OFF control node 250 may have Gigabit Ethernet support.
[0045] Once the system is powered on, it may be configured to execute boot code 290 for the BIOS interface 268, as stored in the SPI flash 266, and thereafter process data under the control of one or more operating systems and application software (stored, for example, in the system memory 240). An operating system may be stored in any of the various locations and accessed, for example, according to the instructions of the BIOS 268. As described herein, a device may have fewer or more features than those provided in the system of the Fig. 2 are shown.
[0046] The information handling device circuit, as used for example in Fig. 1 or Fig. 2 can be used in devices such as tablets, smartphones, personal computing devices in general, and / or electronic devices that a user can use to access information. For example, the circuit shown in Fig. 1 may be implemented in a tablet or smartphone embodiment, whereas the circuit shown in Fig. 2, may be implemented in a personal computer embodiment. In addition, an information handling device circuit as shown in the Fig. 1 and / or Fig. 2 is executed, can be used by an aggregate service.
[0047] Fig. 3 illustrates an example of a user interface provided by an aggregate service. The system 300 is a file manager system. However, an embodiment may represent different types of management systems. On the left side of the user interface, different devices of the aggregate service to which access may be available may be shown. For example, a user who is currently authenticated to the device has access to cloud storage devices 301, removable storage devices 302, local storage devices 303, and remote storage devices 304, and the like. Additionally, a search functionality 305 may be provided. When a user selects a device, the right side of the user interface may display the files, folders, and data present on the selected device. Other layouts are possible. A user may be able to select a device (e.g., 301, 302, 303, 304, etc.) (e.g.,(by highlighting, right-clicking with a mouse, function-clicking, etc.), and options or choices may be provided within the interface. For example, a user may be able to unplug the device by right-clicking on it.
[0048] Fig. 4 illustrates a flow of data from a device to a user. An aggregate service 404, which may be an information handling device comprising circuitry configured in Fig. 1 and / or Fig. 2, may receive access to multiple storage devices. For example, aggregate service 404 may have access to one or more cloud storage devices 401, one or more storage devices on a remote device ("remote storage device") 402, one or more storage devices on a local device ("local storage device") 403, and the like.
[0049] The remote and local storage devices may include storage devices integrated into the device (e.g., hard disk drive, memory, etc.) or may include removable storage devices (e.g., flash memory, external hard disk drive, USB storage devices, memory sticks, etc.). These devices may be connected to the aggregate service 404 using a wired, wireless, or virtual connection. For example, a user may deploy a remote device to communicate with the aggregate service device. The aggregate service may then access the remote device and the data stored on the remote device using a network connection. In one embodiment, the aggregate service 404 may provide an application to a local device 405. This application 405 may then be accessed by a user to access the aggregate service 404.The application 405 may additionally be represented as a user interface, as shown in . Fig. 3 is shown.
[0050] Now referring to Fig. 5, an embodiment may receive an authentication input sent to an aggregate service device at 501. For example, a user may access / open an application that presents the aggregate service. In one embodiment, the aggregate service device may authenticate the user upon receiving the authentication input. This authentication may be used to determine that the user requesting access to the aggregate service device is a user who has access to the storage devices that can communicate with the aggregate service device. The authentication may prompt the user to enter credentials (e.g., username, password, fingerprint data, audio data, video data, image data, etc.), which may be sent to the aggregate service device for authentication.In one embodiment, these credentials may be packaged as a token to be sent to the aggregate service device for authentication. The credentials may, in one embodiment, be compared with credentials stored in the aggregate service device to determine which data and device the user can access.
[0051] Alternatively or additionally, once the credentials are received and authenticated, an embodiment may provide a token(s) to the local device. These token(s) may then allow a user to access the aggregate service without entering credentials. For example, after consecutive access requests to the aggregate service device, the user need not enter credentials; instead, the token(s) may be provided to the aggregate service device for authentication. The token(s) may include the user credentials or, alternatively or additionally, may include information derived from the user credentials. In one embodiment, the token(s) may include an access token that describes what data a user may access.The token(s) may include a refreshed token that continuously refreshes authentication so that the user does not need to log into the aggregate service. The refreshed token may allow the user to remain logged into the aggregate service device for a predefined period of time (e.g., weeks, months, etc.). These tokens may be as described above (e.g., access tokens, renewal tokens, etc.) or they may include other forms of tokens. Additionally or alternatively, an embodiment may use different methods for single sign-on authentication.
[0052] The data accessible by the aggregate service device may include data stored in one or more storage devices (e.g., remote storage devices, cloud storage devices, local storage devices, removable storage devices). For example, the user may have previously deployed at least one storage device that is connected to and communicates with the aggregate service device. For example, one embodiment may receive access to the storage device from the user permitting access. For example, a user from the storage device may set the storage device to communicate with the aggregate service. For example, a user may access the aggregate service using a storage device. The user must enter permissions to access the aggregate service. Once the user enters the permissions, the storage device may receive token(s) from the aggregate service device.This can allow a user to avoid being prompted for permissions for subsequent access to the aggregate service. Additionally, the tokens can allow a storage device to remain connected to the aggregate service device without user input.
[0053] Alternatively or additionally, a user may know the unique identifier (e.g., IP address, MAC address, device name, etc.) of the device and, from the aggregate service, may use the storage device to communicate with the aggregate service. For example, a user may provide credentials for the storage device to the aggregate service, which the aggregate service may use to access the storage device. For example, a user may access the storage device from the aggregate service and be presented with a screen prompting the user to enter the credentials associated with the storage device (e.g., username, password, fingerprint scan, voice recording, etc.). In one embodiment, the credentials may be sent to the storage device. Additionally, tokens may be received from the storage device. This authentication may allow one embodiment to access the storage device.The tokens may enable user authentication without requiring the user to enter credentials. For example, an embodiment may receive access to a token describing the data the user has accessed. An embodiment may additionally or alternatively receive a refreshed token that allows the user to remain logged into the storage device for a predetermined period of time (e.g., weeks, months, etc.).
[0054] Alternatively or additionally, a user may provide credentials to the aggregate service, which the aggregate service may use to access the storage device. Alternatively, a user may access the storage device from the aggregate service and be presented with a screen prompting the user to enter the credentials associated with the storage device (e.g., username, password, fingerprint scan, voice recording, etc.). In other words, the credentials may never be parsed by the aggregate service and are instead sent directly to the storage device. Once a user has provided these credentials, an embodiment may send the credentials to the storage device and receive tokens from the storage device.
[0055] At 502, an embodiment may determine whether the user has provided input that selects a selection of data from the aggregate service device. If the user has not provided such input, an embodiment may take no action at 504 and wait until the user has provided input to select a selection of data. However, if the user has provided such input, an embodiment may send the user's input to select a selection of data via the aggregate service device. The data may be stored by the aggregate service device as analog data to the data on the storage device. The analog data or selection of data may include metadata about the data, for example, the title, abstract, author, keywords, file size, data type, data location, origination dates and time, modified dates and time, and the like.Additionally or alternatively, the analog data or selection of data may include some form of actual data stored within the cloud storage device. For example, one embodiment may copy files from the cloud storage device and store them within a memory of the aggregate service device. The analog data or selection of data may include other types of data that may be used by the aggregate service to display the data, for example, hierarchical data or index data. Alternatively or additionally, the aggregate service device may not store any data, but rather serve as a facilitator between the client device and the storage device.
[0056] The selection of data selected by the user may include a selection of data accessible to the user from a storage device connected to and communicating with the aggregate service device. The data accessible by the aggregate service device may include all data stored on the storage devices, or alternatively, may be limited to data accessible to the user requesting access to the aggregate service device. For example, a user may only be able to access certain files on the storage device due to a set of privileges (e.g., permissions) on the storage device (e.g., the user's login permissions for remote devices only allow access to certain files). Alternatively, or additionally, the data accessible by the aggregate service device may be limited by the user.For example, a user can select, for example when setting up the connection between the storage device and the aggregate service, which data can be accessed by the aggregate service. For example, a user can allow the aggregate service to access music files but not word processing documents. Alternatively or additionally, the data accessible by the aggregate service device can be determined by the aggregate service device. For example, the aggregate service can have misfolders and / or files set for access. For example, the aggregate service can only access folders for which the user is the author. The data accessible by the aggregate service can be different for each storage device. For example, one storage device may allow access to all data, but another storage device may only allow limited access.
[0057] At 503, an embodiment may send a distribution command including information related to distributing a pointer indicating the selection of data selected by the user. This distribution command may, in one embodiment, be directed to the aggregate service device. For example, the distribution command may be sent to the aggregate service device to indicate to the aggregate service device how the pointer indicating the selected data should be distributed. In one embodiment, the pointer may include information including the selection of data. For example, the pointer may include metadata associated with the selected data. Alternatively or additionally, the pointer may include some form of actual data (e.g., a copy, the original, etc.).Alternatively or additionally, the pointer may contain information that includes a link to the selection of data or to a storage location of the selected data.
[0058] In one embodiment, the distribution command may include information for posting or sending the pointer to a social media platform. For example, a user may select data within the aggregate service device relating to an image stored on their home computer. The user may indicate that this image should be posted to the social media platform. Alternatively or additionally, the user may indicate a link to the image to be posted to the social media platform. In one embodiment, a user may select within the aggregate service interface (e.g., as described in Fig.3) may be able to select data and may present an ad that allows the user to select "Post to my social media account." One embodiment may then post that data to the social media account selected by the user.
[0059] In one embodiment, the distribution command may include information for attaching the pointer to an electronic communication (e.g., email, text message, blog post, etc.). In another embodiment, the distribution command may include information for distributing a hyperlink to the location of the data, which in one embodiment may additionally grant access to the data. For example, a user may select data and, in one embodiment, indicate that the pointer should include a hyperlink and also include permissions. One user may then be able to distribute, for example, email, submissions, broadcasts, and the like to the pointer. A second user may then be able to access the hyperlink and be directed to the storage device on which the data is stored.Additionally, because the second user accesses the hyperlink, the storage device may grant that second user access to the specific data included in the hyperlink.
[0060] In one embodiment, the distribution command may include information for using a sharing application on a mobile device. For example, a user may use their mobile device (e.g., smartphone, tablet, e-reader, laptop, personal digital assistant, etc.) to select data within the aggregate service. Once the user has selected the data, they may be able to select an option that opens a sharing application. This application may include a variety of methods in which data is distributed. For example, the application may include options to post data to specific social media accounts, generate a text message including the data, generate an email including the data, or the like. The user may then select the desired distribution method, and the pointer will be distributed in the desired form.
[0061] The distribution command, in one embodiment, may include information for use in a short-range communication protocol (e.g., Bluetooth, near-field communication, etc.) to distribute the pointer to a remote device. For example, a user may select data from the aggregate service device to transmit to another device within a certain distance of the user device. One embodiment may then use a short-range communication protocol to transmit the data to the other device. The second device may be automatically identified by the user device, or the information pertaining to the second device may be manually entered by the user. Additionally or alternatively, the distribution command may include information for use in another method that may be specified by the user for distributing the pointer.
[0062] Accordingly, as illustrated by the example embodiments and figures, one embodiment provides an aggregate service. The aggregate service provides an application that enables a user to access remote devices, cloud storage devices, local storage devices, removable storage devices, and the like. The aggregate service may receive access to these devices by a user connecting the device to the aggregate service, providing a communication link between the devices and the server. One embodiment may enable the aggregate service to be connected not only to one type of storage device, but also to multiple storage devices, including multiple storage devices of the same type (e.g., more than one storage device, more than one cloud storage device, more than one cloud storage device hosted by the same provider, etc.).Once these devices have been connected, an embodiment may provide a user interface that allows a user to access the multiple devices using a single interface. The user may additionally be able to share files and search for files across multiple devices, possibly using the interface. Thus, an embodiment provides an application that allows a user to access multiple storage devices located in multiple locations and easily and seamlessly manipulate the data stored on the storage devices.
[0063] As one skilled in the art will appreciate, various aspects may be embodied in a system, method, or device program product. Accordingly, aspects may take the form of an entire hardware embodiment or an embodiment including software, generally referred to herein as a "circuit," "module," or "system." Furthermore, aspects may take the form of a device program product embodied in one or more device-readable media having device-readable program code embodied therein.
[0064] It should be noted that the various functions described herein may be implemented using instructions stored on a device-readable storage medium, such as a non-signal storage device, and executed by a processor. A storage device may be, for example, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or any suitable combination of the foregoing. More specific examples of a storage medium include the following: a portable computer diskette, a hard disk, random access memory (RAM), read-only memory (ROM), erasable programmable read-only memory (EPROM, or flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing.In the context of this document, a storage device is not a signal, and a “non-transitory” device includes all media except signal media.
[0065] Program code embodied in a storage medium may be transmitted using any suitable medium, including but not limited to wireless, wired, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
[0066] Program code for performing operations may be written in any combination of one or more programming languages. The program code may execute entirely on a single device, partially on a single device as a standalone software package, partially on a single device and partially on another device, or entirely on another device. In some cases, the devices may be connected by any connection or network, including a local area network (LAN) or a wide area network (WAN), or the connection may be through other devices (for example, through the Internet using an Internet service provider), by wireless connection, e.g., near field communication, or by a hard wired connection, such as via a USB connection.
[0067] Example embodiments are described herein with reference to the figures, which illustrate, for example, methods, devices, and program products according to various example embodiments. It will be understood that the actions and functionality may be performed, at least in part, by program instructions. These program instructions may be provided by a processor of a general-purpose information handling device, a special-purpose information handling device, or other programmable data processing device to create a machine, such that the instructions, executed via a processor of the device, perform the specified functions / actions.
[0068] It is worth noting that while certain blocks are used in the figures and a particular arrangement of blocks is illustrated, these are not limiting examples. In certain contexts, two or more blocks may be combined, one block may be divided into two or more blocks, or certain blocks may be rearranged or reorganized as appropriate. The examples expressly illustrated are used for descriptive purposes only and should not be construed as limiting.
[0069] As used herein, the singular “a” and “an” may be construed to include a plural such as “one or more,” unless clearly stated otherwise.
[0070] This disclosure has been presented for purposes of illustration and description, but is not intended to be exhaustive or limiting. Many modifications and variations will be apparent to those skilled in the art. The exemplary embodiments are chosen and described in order to illustrate the principles and practical application, and to enable others skilled in the art to understand the disclosure of various embodiments with various modifications as suited to the particular use contemplated.
[0071] Thus, although illustrated exemplary embodiments have been described herein with reference to the accompanying drawings, it is to be understood that this description is non-limiting and that various other changes and modifications may be made therein by one skilled in the art without departing from the scope and spirit of the disclosure.
Claims
[1] Method comprising: - sending (501) from a device an input from a user requesting access to data retrievable by an aggregate service device; - Sending an input from the user selecting a selection of data from the aggregate service device; and - sending (503) a distribution command; - wherein the distribution command comprises information for using a short-range communication protocol to distribute a pointer indicating the selection of the data to a remote device. [2] The method of claim 1, wherein the distribution command is directed to the aggregate service device. [3] The method of claim 1, wherein the pointer comprises information selected from a group consisting of: the selection of data and a link to the selection of data. [4] The method of claim 1, wherein the distribution command includes information for posting the pointer on a social media. [5] The method of claim 1, wherein the distribution command comprises information for attaching the pointer to an electronic communication. [6] The method of claim 1, wherein the distribution command comprises information for distributing a hyperlink that additionally provides access to the selection of data. [7] The method of claim 1, wherein the distribution command comprises information for using a sharing application, the sharing application allowing the user to select a distribution method. [8] The method of claim 1, wherein the data retrievable from an aggregate service device is retrieved from a device selected from a group consisting of a remote device, a cloud storage device, a removable storage device, and a local device. [9] The method of claim 1, wherein the selection of data is selected from a group consisting of title, abstract, author, keywords, file size, data type, data location, creation data, cloud data, remote device data, and file data. [10] Device comprising: - a processor; - a storage device that stores instructions executable by the processor to: - send (501) an input from a user requesting access to data retrievable by an aggregate service device; - to send an input from the user selecting a selection of data from the aggregate service device; and - to send a distribution command (503); - wherein the distribution command comprises information for using a short-range communication protocol to distribute a pointer indicating the selection of the data to a remote device. [11] The device of claim 10, wherein the distribution command is directed to the aggregate service device. [12] The device of claim 10, wherein the pointer comprises information selected from a group consisting of the selection of data and a link to the selection of data. [13] The device of claim 10, wherein the distribution command includes information for posting the pointer on a social media. [14] The apparatus of claim 10, wherein the distribution command includes information for attaching the pointer to an electronic communication. [15] The device of claim 10, wherein the distribution command comprises information for distributing a hyperlink that additionally provides access to the selection of data. [16] The device of claim 10, wherein the distribution command comprises information for using a sharing application, the sharing application allowing the user to select a distribution method. [17] The device of claim 10, wherein the data retrievable by an aggregate service device is retrieved from a device selected from a group consisting of a remote device, a cloud storage device, a removable storage device, and a local device. [18] Product comprising: - a storage device having code stored therein, the code being executable by the processor and comprising: - a code that sends, from a device, an input from a user requesting access to data retrievable by an aggregate service device; - a code that sends from the device an input from the user selecting a selection of data from the aggregate service device; and; - a code sending a distribution command (503); - wherein the distribution command comprises information for using a short-range communication protocol to distribute a pointer indicating the selection of the data to a remote device.
Citation Information
Patent Citations
System and method for providing a virtual database environment and generating digital map information
US20070260628A1
Service and Method for Providing a Single Point of Access for Multiple Providers' Video and Audio Content
US20090240693A1