The invention pertains to digital media handling and, more particularly, for example, to the transfer of digital media objects, e.g., digital files embodying creative works. The invention has application, by way of non-limiting example, in the (re)sale, lending, streaming or other transfer of digital music, digital books, games, apps or programs, and other digital media objects.
U.S. patent application Ser. No. 13/406,237 and corresponding PCT Patent Application Serial No. PCT/US2012/026,776 (now, Publication No. WO 2012/116365), the teachings of all of which are incorporated by reference herein, discloses inter alia methods, apparatus and systems suitable for the (re)sale or other transfer of digital media objects which methods and apparatus include, inter alia, atomically transferring ownership of those objects so that at no instant in time are copies of them available to both buyer and seller—but, rather, may be available only to the seller prior to sale and only to the buyer after sale. While those techniques are effective, further improvements are desirable as to acquisition of digital media objects by sellers in the first instance, e.g., from servers of digital media sellers and distributors whence they may have been originally downloaded.
An object of this invention is to provide improved methods, apparatus and systems for digital commerce.
A related object is to provide such methods, apparatus and systems as facilitate the (re)sale, lending, streaming or other transfer of digital music, digital books and other digital media objects.
A further related object is to provide such methods, apparatus and systems as facilitate acquisition of digital media objects by sellers in the first instance, e.g., from servers of digital media sellers and distributors whence they may have been originally downloaded.
The foregoing are among the objects attained by the invention, which provides in some aspects a digital commerce system that includes a first digital data device, a second digital data device and a third digital data device, each of which is connected to a network that provides at least intermittent communications coupling between the second digital data device and each of the first and third digital data devices. Redirection logic executing on at least the second digital data device effects storage on the third digital data device of a digital media object downloaded from the first digital data device to the second digital data device. The redirection logic accomplishes that in such a manner that storage of the digital media object on the third digital data device is effected before storage of that digital media object on the second digital data device (if stored to the second digital data device at all). In related aspects of the invention, redirection logic executing on at least the second digital data device circumvents storage of the downloaded digital media object at least until that object has been stored on the third digital data device.
Further related aspects of the invention provide a digital commerce system, e.g., as described above, wherein the first digital data device and third digital data device are server devices, and wherein the second digital data device is a client device. In further related aspects of the invention, the first digital data device is a digital media server, e.g., of the type employed by electronic music, electronic book and other digital media sellers and distributors. The client device, moreover, can execute digital media client software that requests, at the behest of a user of the second digital data device, download of a digital media object comprising such music, books or other digital media from the first digital data device.
Still further related aspects of the invention provide a digital commerce system, e.g., as described above, wherein the first digital data device responds to a request from the second digital data device for a digital media object by packetizing the object and sending the resultant packets to the second digital data device. Those packets embody, according to related aspects of the invention, respective portions of the digital media object.
Other related aspects of the invention provide a digital commerce system, e.g., as described above, wherein the digital media client executing on the second digital data device responds to packets received from the first digital data device by issuing calls to write those packets to a file on the second digital data device. Redirection logic executing on the second digital data device effects interception of file system operation calls, including calls to write packets to the file, issued by that media client. Such interception is effected by the redirection logic, for example, via cooperation with the operating system and/or filesystem of the second digital data device.
Still other related aspects of the invention provide a digital commerce system, e.g., as described above, wherein the redirection logic executing on the second digital data device transmits the intercepted calls to the third digital data device, e.g., along with packets, data and/or other information that accompanied the intercepted calls (as made by the digital media client). The redirection logic can, according to some aspects of the invention, supplement or alter the intercepted calls transmitted to the third digital device, e.g., in accord with a protocol for cooperation with redirection logic executing on the third digital data device.
Related aspects of the invention provide a digital commerce system, e.g., as described above, wherein the redirection logic executing on the second digital data device transmits packets received with the intercepted calls to the third digital data device. That logic can continue so doing until the last packet embodying a portion of the digital media object has been received by the second digital data device from the first digital data device and has been transmitted to the third digital data device. In other aspects, the redirection logic executing on the second digital data device effects downloading of the digital media object or a copy thereof from the third digital data device to the second digital data device after the last packet embodying a portion of the digital media object has been transmitted to the third digital data device.
Yet still other aspects of the invention provide methods paralleling operation of the digital commerce systems described above.
The foregoing and other aspects of the invention are evident in the drawings and in the text that follows.
A fuller appreciation of the invention and embodiments there may be attained by reference to the drawings, in which:
The digital data devices 12-22 may be connected for communications permanently, intermittently or otherwise by a network, here, depicted by “cloud” 24, which may comprise an Internet, metropolitan area network, wide area network, local area network, satellite network, cellular network, and/or a combination of one or more of the foregoing, as adapted in accord with the teachings hereof. And, though shown as a monolithic entity in the drawing, in practice, network 24 may comprise multiple independent networks or combinations thereof.
Client digital data devices 12-16 operate in the conventional manner known in the art as adapted in accord with the teachings hereof with respect to the transfer of “digital media objects” embodying creative works, such as by way of non-limiting example, digital songs, videos, movies, electronic books, stories, articles, documents, still images, video games, other software, and/or combinations of the foregoing—just to name a few. The client digital data devices typically comprise desktop computers, portable computers, tablet computers, smart phones, personal digital assistants or other computer apparatus of the type commercially available in the marketplace, as adapted in accord with the teachings hereof, though other devices such as mainframe computers, minicomputers, workstations may be employed as client digital data devices as well (again, so long as adapted in accord with the teachings hereof).
As used herein a digital media object (or DMO) refers to a collection of bits or other digital data embodying a creative work, such as, for example, a song, video, movie, book, game, computer app or program, just to name a few. Those bits are usually organized as a computer file, but they can be organized in other ways, e.g., in object-oriented class instances, structs, records, collections of packets, and so forth. The bits of a DMO at any time can be represented on some physical storage, either volatile or non-volatile, but they always represent the same creative work (excluding, as persons of ordinary skill in the art will appreciate, tags and other metadata, e.g., reflecting DMO ownership, distribution source(s), title and other biographical information, and so forth).
By way of further non-limiting example, client digital data devices 12-16 hereof may operate—albeit, as adapted in accord with the teachings hereof—in the manner of “computer 22” (by way of example) described in co-pending, commonly-assigned U.S. patent application Ser. No. 13/406,237, filed Feb. 27, 2012, and corresponding PCT Patent Application Serial No. PCT/US2012/026,776 (now, Publication No. WO 2012/116365), all entitled “Methods And Apparatus For Sharing, Transferring And Removing Previously Owned Digital Media” (collectively, “Applicant's Prior Applications”) and, more particularly, by way of non-limiting example, in
Server 18 is a server device of the type employed by a service operator of the type that facilitates the (re)sale, lending, streaming or other transfer of digital music, digital books or other digital media objects. By way of non-limiting example, it may operate in the manner of the ReDigi™ commercial marketplace currently operating at www.redigi.com, as adapted in accord with the teachings hereof Alternatively, or in addition, it may operate in the manner of “remote server 20” described in
Servers 20-22 are server devices of the type employed by electronic music, electronic book and other digital media sellers and distributors of the type known in the marketplace, such as Amazon's same-named retail web site, Apple's iTunes website, to name just a few. In the illustrated embodiment, those servers download (e.g., upon purchase or otherwise) to devices 12-18 music files, digital books, video files, games and other digital media objects. Such downloads can be accomplished in the conventional manner known in the art—though, they can also be accomplished utilizing other file transfer techniques, as well. The server digital data devices 20-22 typically comprise mainframe computers, minicomputers, or workstations of the type commercially available in the marketplace, though other devices such as desktop computers, portable computers, tablet computers, smart phones, personal digital assistants or other computer apparatus may be employed as server digital data devices 20, 22, as well. In the illustrated embodiment, the servers 20, 22 are assumed be of the type commercially available and operating in the marketplace. In some embodiments, those servers are modified in accord with the teachings hereof.
Although servers 20-22 are shown, here, as solitary devices, and are also shown as being distinct from the Internet “cloud,” each of those servers is assumed to include intermediate nodes of the Internet infrastructure and/or of a content delivery system forming part of the conventional network via which the respective servers deliver digital media to client devices. Thus, by way of non-limiting example, illustrated servers 20-22 are assumed to include nodes of Akamai, Level 3 Communications, Limelight, Mirror Image Internet, or other content delivery systems utilized by those respective servers 20, 22 to deliver content. Put another way, the servers 20, 22 are each assumed to include all nodes (e.g., other servers, switches, etc.), e.g., in illustrated network 24 or otherwise, within which the DMOs may be permissibly cached and/or stored without violation of copyright in those DMOs and/or which nodes are not under the control of client devices are 12-16 or server 18.
Although servers 18 and 20-22 are drawn separately in the illustrated embodiment, it will be appreciated that in some embodiments their functions and that, moreover, they may be operated by a single party—for example, that serves both as a seller or distributor of digital media, as well as a service operator that facilitates the (re)sale, lending, streaming or other transfer of such media. Likewise, though shown separately, here, in some embodiments the functions of any of the client devices 12-16 may be combined with those of any of servers 18-22.
Illustrated system 10 is configured to move digital media objects between digital data devices 12-22 to facilitate their (re)sale, lending, streaming or other transfer. More particularly, it is configured to redirect to server 18 (i.e., a server of the type employed by a service operator) DMOs downloaded from servers 20, 22 (i.e., servers of the type employed by a digital media sellers and distributors) in a manner that
Redirection of those downloads to server 18 in accord with the teachings hereof can be employed in connection operation of the system 10 in the manner described in Applicant's Prior Applications, e.g., in which ownership of a DMO on server 18 (which, as noted, can operate in the manner of “remote server 20” described in
Redirection of those downloads to server 18 in accord with the teachings hereof can be employed in connection the operation of the system 10 in other manners, as well, e.g., as where the server 18 is utilized as “cloud” storage for a DMO acquired from servers 20, 22, regardless of whether the user plans to sell or otherwise transfer the DMO to another. Such cloud storage can be utilized, for example, by client devices such as “chrome books,” which comprise disk-less or relatively disk-less computing devices.
As used above and throughout this application, the phrase “in the first instance” is relative as between the server 18 and a client device 12-16 to which a DMO has otherwise been transferred by servers 20, 22. Thus, for example, the phrase reflects that a given DMO, e.g., requested by a user of a client device 16 is stored in the first instance as between client device 16 and server 18 on the latter. The phrase is not intended to exclude the possibility that the DMO might be cached or stored on intermediate nodes of the Internet infrastructure and/or of a content delivery system en route from servers 20, 22 to client device 16 as discussed above.
Redirecting downloaded DMOs to server 18 for storage there in the first instance (as between the server 18 and a client devices 12-16) on purchase or other initial acquisition can be advantageous over prior art systems, in which the downloaded DMOs are, first, stored to respective ones of the client devices on purchase or other initial acquisition and then are, subsequently, uploaded from the client devices 12-16 to server 18.
In the illustrated embodiment, such redirection of downloaded DMOs to server 18 for storage there in the first instance on purchase or other initial acquisition by users of devices 12-16 can be effected by redirection manager software 26 operating independently on client digital data devices 12-16 and server 18, though, more typically, is effected by cooperative action of such a software module 26 executing on server 18 and each of the affected client devices 12-16.
In some embodiments, the redirection manager software 26 comprises part of the “management system” or “management software” shown in
In other embodiments, the redirection manager software 26 is a stand-alone module and/or forms part of the operating system, filesystem, middleware, application layer, or other layers of the software stack of the respective devices 12-18. And, though in the illustrated embodiment the redirection manager software module 26 does not execute on servers 20, 22, in other embodiments it may execute there, as well, in order to further facilitate redirection of downloaded DMOs to server 18 for storage there in the first instance on purchase or other initial acquisition by users of devices 12-16
The redirection manager 26 typically interoperates with other software executing on the respective devices. Thus, for example, the redirection manager software 26 executing on the client devices 12-16 typically interoperates with digital media client software, web browsers and/or other functionality (shown here, collectively, as element 28 and referred to, collectively, below as “digital media client” software) that are utilized to at least initiate purchase and/or other acquisition of DMOs from the servers 20, 22. The redirection manager software 26 may also interact with the operating system, file system, or other components of the respective devices.
Construction and operation of the redirection manager software 26 executing on the client device 16 and server 18, respectively, will be readily evident to those skilled in the art in view of the drawings and the accompanying text, as will modifications to the operating system, filesystem, digital media client 28, and/or other components of client 16 in order to effect the illustrated interception/hijacking and redirection. In regard to file creation, storage and other operations, it will be appreciated that the disk drives depicted with devices 16, 18 and 20 in
Here, by way of example, the server 20 is assumed to be of the type operated by Apple, Inc. in connection with its iTunes e-commerce ecosystem. In that ecosystem, music files, digital books, video and other DMOs are purchased or otherwise acquired from iTunes digital media server 20 by a user of client device 16, who makes purchase or acquisition requests by way of special-purpose client software (i.e., the iTunes digital media client) executing on device 16. Those skilled in the art will appreciate that the teachings of
By way of overview, in the embodiment of
In essence, redirection of the DMO packets from the client device 16 to the server 18 has the effect of turning the client device 16 into a “switch” along the way to server 18. As those skilled in the art will appreciate, when servers transmit packets over the Internet, those packets pass through many intermediate switches (or routers). The client device 16, here, is at least initially acting just like another intermediate switch.
Referring to
With respect to the sequence of operations depicted in
The foregoing is more fully depicted in
Referring back to
Simultaneously, the digital media client 28 gets packets from the operating system of device 16 into its own local buffer. The digital media client 28 issues calls to the filesystem (or other functionality) of device 16 to (i) write those packets to a temporary file on disk, and (ii) append each batch of packets to the end of the file, e.g., by executing operations in the nature of:
Create File (“Song.Partial”)
Repeat Until Last Packet Received
The redirection manager 26 executing on device 16 operating independently and/or in cooperation with the operating system and/or filesystem of that device 16, intercepts/hijacks file system operations (e.g., create, rename, write, read operations) made to the folder or directory on device 16 associated with the digital media client 28. This includes file system operations in the nature of CreateFile and Append_To_File calls made by the digital media client 28. This redirection manager 26 transmits those intercepted calls and accompanying packets, data and other information to server 18. The redirection manager 26 executing on device 16 may supplement or alter those calls in connection with their transmission to server 18, e.g., in accord with a protocol for cooperation with the counterpart redirection manager 26 executing on the server 18.
In some embodiments, the redirection manager 26 executing on device 16 effects such interception/hijacking of calls made by the digital media client 28 through use of an interrupt-handling mechanism provided with the operating system of that device that cedes control to the redirection manager 26 on the occurrence of calls affecting a download folder or directory to which the digital media client 28 is expected to write newly received DMO packets from server 20. In other embodiments, the redirection manager 26 is invoked by a pseudo-filesystem that intercepts and passes to the redirection manager 26 selected such calls, e.g., file system calls that affect files in digital media client download folder, and that releases other calls to the regular filesystem of device 16. In still other embodiments, e.g., where the digital media client 28 comprises a web browser or web browser-like application, the redirection manager 26 is invoked when the browser or browser-like application is invoked by the user to download DMOs from selected sites, e.g., as discerned, for example, from the DOMs (document object model) of webpages of those sites. Those skilled in the art will appreciate these and other mechanisms may be used to intercept filesystem calls in accord with the teachings hereof.
Thus, for example, in response to intercepted Create File and Append_To_File calls, the redirection manager 26 executing on device 16 may effect the following actions:
If File Action is Create File:
If File Action is Append_To_File:
By intercepting these and other file system calls by the digital media client 28, the redirection manager 26 prevents the packets from being stored by that digital media client 28 to device 16, e.g., in the temporary file Song.Partial or otherwise.
In some embodiments, e.g., those in which the DMO and its packets are downloaded from the iTunes digital media server 20 (or other servers that act in a similar manner in regards relevant hereto), the digital media client 26 executing on the client device 16 permits selected file system calls by the digital media client 28 to be executed by the file system of device 16 in addition to redirecting those calls (or altered/supplemented versions thereof) to the server 18. Those selected calls are the Create File call and certain ones of the Append_To_File calls, among others. The specific ones of those calls permitted to be executed on the file system of device 16 are those necessary to permit the digital media client 28 to execute and are determined empirically.
The redirection manager may be activated for the foregoing purposes at the request of the user of the client digital data device 12-16 to which the download would otherwise occur, e.g., as where that user responds to a prompt by redirection manager 26 (or otherwise) querying the user whether the download of a newly purchased DMO should be directed to server 18. Alternatively or in addition, such a request may be initiated by other software executing on the client digital data device, e.g., as where a web browser, a digital media client application (e.g., iTunes) or file system software executing on that client 16 generates a request to the redirection manager 26 in connection with filesystem operations directed to a specific folder or directory on the device 16 and/or in connection with an in-process purchase and/or download from a server 20. Still further, alternatively or in addition, such a request may be initiated by the server 20 from which the download is to be made, e.g., in connection with preparing the DMO for transfer.
The redirection manager 26 executing on server 18 responds to the intercepted CreateFile call by creating a file and associating it with an account on server 18 owned by the user of client device 16. That redirection manager 26 responds to the intercepted Write_To_File calls by storing packets transmitted with those calls to the newly opened file In embodiments where it is employed in connection with operation of a system of the type described in Applicant's Prior Applications, the redirection manager 26 executing on device 18 invokes the management software described in those prior applications to perform the same actions as it would usually perform upon upload of a file from a client device.
With reference to
Referring to
As shown in that drawing, the server 20 continues to send packets embodying respective portions of the song file over network 24 to client device 16. Likewise, the operating system and digital media client 28 of the client device 16 continue to receive those packets and store them in a buffer and in the temporary file Song.Partial, respectively. Moreover, the redirection manager 26 executing on device 16 continues to send intercepted file system calls to the server 18.
Referring to
Referring to
Close File(“Song.Partial”)
Rename(“Song.Partial”, “Song”)
Upon intercepting those calls, the redirection manager 26 executing on client device 16 sends an “upload complete” packet (or other message) to its counterpart redirection manager 26 on server 18:
If File Action is Close_File:
While, in some embodiments, it may be necessary to transmit the intercepted Rename operation to server 18, in the illustrated example this is unnecessary due to the cooperative protocol between the redirection managers 26 (which calls for transmission of the DMO title—in this case, the song title—at the outset of the redirection process; see, the discussion above in connection with
Although not required in all embodiments of the invention, in some embodiments, it may be desirable to transfer the DMO (or a copy thereof) to the client device 16 after completion of the upload to server 18, i.e., after the DMO has been stored to the server 18. This can be by default or upon request of the user of device 16 (e.g., as where he/she indicates, when utilizing the digital media client 28 to request download of the DMO from server 20, that he/she wishes to have the DMO (or a copy thereof) stored to device 16 after the downloaded DMO has been stored to server 18).
Referring to
If File Action is Rename:
Once the DMO (or copy) is downloaded to client 16, the redirection manager 26 executing on that device can notify the digital media client 28 so that the song (or other DMO) appears to the user of client 16 as if it had been downloaded to client device 16 in the first instance.
Other embodiments utilize different methodologies to store a copy of the DMO to the client device 16 after completion of its upload to server 18. In those embodiments, in addition to transferring to server 18 packets received from server 20 (e.g., as shown in
As used herein, “unusable” refers to a form whence the DMO cannot be assembled from the retained packets without a key or other information that is generally unavailable to device 16 or the user thereof.
Only after completion of the upload to server 18 of the packets from server 20 does redirection manager 26 executing on device 16 render the retained, unusable packets usable and, more particularly, does the redirection manager convert those unusable packets into a useable form and assemble a copy of the DMO therefrom. The redirection manager 26, then, stores that copy of the DMO on the device 16.
In some of the aforementioned embodiments, the redirection manager 26 executing on device 16 renders the retained packets in unusable form by encrypting them, e.g., with a public key, e.g., provided by counterpart redirection manager 26 executing on server 18 at the outset of the redirection process; provided by server 20; or provided by some other source. After completion of the upload to server 18 of the packets from server 20, the redirection manager 26 executing on device 16 obtains a corresponding private key from the same source and uses it to decrypt the unusable packets into a useable form, whence it assembles a copy of the DMO and stores it on device 16.
In others of the aforementioned embodiments, the redirection manager 26 executing on device 16 renders the retained packets in unusable form by deleting selected ones of them, e.g., the first packet of the DMO, every other packet from the DMO, every third packet of the DMO; and so forth. After completion of the upload to server 18 of the packets from server 20, the redirection manager 26 executing on device 16 (re-)obtains the deleted packet(s), e.g., from its counterpart manager 26 executing on server 18 (or from some other source), and combines them with the retained, unusable packets to render useable, whence the manager 26 executing on device 16 assembles a copy of the DMO and stores it on device 16.
As above, once that copy of the DMO is stored on client 16, the redirection manager 26 executing on that device notifies the digital media client 28 so that the song (or other DMO) appears to the user of client 16 as if it had been downloaded to client device 16 in the first instance.
Described above and shown in the drawings are systems and methods meeting the objects set forth herein, among others. It will be appreciated that the embodiments here are mere examples of the invention, and that others employing changes hereto fall within the scope of the invention. Thus, for example, it will be appreciated that, although the example shown in
By way of further example, although the embodiment of
By way of still further example, although the embodiments of
By way of yet still further example, although the embodiments of
This claims the benefit of filing of U.S. Patent Application Ser. Nos. 61/595,563, filed Feb. 6, 2012, and 61/642,983, filed May 4, 2012, both entitled “Systems And Methods For Music Resale, Transfer And Streaming With Direct To Cloud Storage,” the teachings of both of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
61595563 | Feb 2012 | US | |
61642983 | May 2012 | US |
Number | Date | Country | |
---|---|---|---|
Parent | 14800134 | Jul 2015 | US |
Child | 15494036 | US | |
Parent | 13760823 | Feb 2013 | US |
Child | 14800134 | US |