Not applicable.
Not applicable.
This invention relates to the field of computer hardware and software. More particularly, it involves facilitating the use of a central service to allow different entities to provide their digital works of art from the central service to users. It incorporates network activities, authentication techniques, database management, and digital rights management.
With the availability of digital media, content delivery networks have become more readily available to users of the internet. Content delivery networks vary across a wide spectrum from the sophisticated entities that provide various digital works of arts with digital rights management (DRM) to the small developer providing a limited access to digital content with no licensing requirement. Alternatively, there are various entities that make available their digital works of arts to the public, but neither have the platform nor the resources to provide the requisite access. It would be advantageous to these entities to have a means to provide their content to the public without a significant amount of investment in time or money.
Paralleling the situation above, DRM has enabled copyrighted works to be delivered over the internet to potential users who comply with the DRM scheme. The DRM scheme involves registering with the copyright owner and receiving a DRM license in order to download a digital audio, video, or document file that resides within the servers of the copyright owner. As this approach provides a mechanism for users to obtain digital works of art, it may impose a burden on the copyright owner to create and maintain the necessary infrastructure in order to enable this DRM approach. In addition, the volume of users may be so overwhelming that the infrastructure of the copyright owner may become congested and unable to handle the demands imposed on it. For example, a music company may have a website containing access to a popular set of songs. The songs may prove to be so popular that the music company's website may crash trying to service the demands of users that might want the songs. It is well known that the music company is in the business of making music available and selling it in the traditional manner, such as on a CD. Although for some music companies, the digital age has pushed them to offer songs through the internet, and this approach is growing everyday. It is plausible that an overwhelming demand to a website might prove disastrous.
Content delivery networks tend to be either centrally managed or peer-to-peer networks. This results in either a very tight or loose control for the potential user desiring to obtain digital content from a content delivery network. With a centrally managed network, the owner of the network has complete control over the access and manner of dissemination of any digital content. This means that a potential user must work within the guidelines of the content owner in order to obtain the digital content. Unfortunately, the rules and requirements vary from one content delivery network to another. For example, one video company may require a user to provide an extensive amount of personal information while another video company may require only the pre-payment of a fee in order to obtain the digital content. Alternatively, a peer-to-peer network may have very little control or security checks. These networks tend to provide an exchange of information between two computing devices. Digital works of art may be transferred from one user to another without paying a right-to-use fee or obtaining a license.
Content delivery networks may be implemented without a DRM scheme. It is preferential to have this scheme but it is not mandatory. As noted by the peer-to-peer networks, some entities may provide access to their digital works of art without any protective mechanism, or they may provide access to the digital works of art of others. The point here is to convey that DRM is not required when operating a content delivery network.
With various content delivery networks, a complement of software is involved to enable a user to use a content delivery service. There is software operated by a content provider and software that resides on the user's computing device in order to interact with the content delivery network. The user downloads or installs a client software from the content provider. This means that the user may have to install client software from each content provider that the user wants to access. This can become cumbersome for the user. The user has to keep track of the different content providers that the user may access. For the computing device, resources may become constrained with the downloading of different software which may result in software conflicts. Today, if the user wants to download digital music from content provider A, a video from content provider B, and a document from content provider C, the user has to download specific client software from each content provider to interact with their specific content delivery network. As can be seen, disk space and probably processing speed can be impacted. In addition, numerous content providers have written numerous client software programs that vary greatly and operate differently. As one can see, the user may be forced to deal with multiple content providers at once (operating all client software at once on a single computing device). The various client software may impact bandwidth to handle multiple transactions such as downloading software, making download priorities difficult.
For those entities less fortunate, client software, mentioned above, is difficult to develop and maintain. Client software is one of the most important reasons to use content delivery networks. Content providers control access to digital works of arts through the use of client software. Unfortunately, many content providers do not have the expertise to develop client software and do not have the infrastructure to offer digital content to users.
The present invention provides an approach to overcome the limitations stated above. The present invention creates a federated content delivery network that interfaces with multiple business partners to provide digital content to users. It provides a platform to enable content providers to deliver their digital works of arts to the public, especially those content providers that do not have the necessary means to develop client software. Furthermore, it provides a single client software rather than a multitude of client software written by various content providers. With the present invention, the user's computing device may be relieved from the problems discussed above with regards to the download of various client software, and software updates become streamlined to one client software that benefits all content providers. Finally, for those content providers in need, the present invention incorporates a DRM approach for those business partners that require it to protect against piracy and unauthorized uses of digital content.
The present invention provides a flexible approach to allow a central service to obtain digital media over the internet from copyright owners, assignees, or other authorized users and deliver it to users. This disclosure describes, among other things, methods and systems for providing a multi-service federated content distribution network.
A method for providing a central content distribution network is implemented that includes a computing device containing a directory service. The directory service operates to allow a set of service providers to deliver content to clients. The directory service registers the clients to a subset of the service providers and facilitates the delivery of content from a service provider to a client.
A system for operating a federated delivery network is also provided that includes a computing device operable in a network to maintain a central directory service and to maintain network connections to service providers and clients. The central directory service is operable to control which service providers are permitted in the network to provide content to the clients and to maintain a description of the allowed services from the service providers.
A method is also provided for operating a federated delivery network. The method includes maintaining a central directory service at a computing device. The computing device operates with a network connection to service providers and clients. The central directory service controls which service providers are permitted in the network to provide content to the clients. A description is maintained at the computing device with the allowed services from the service providers.
The present invention is described in detail below with reference to the attached drawing figures, which are incorporated herein by reference, and wherein:
The present invention will be better understood from the detailed description provided below and from the accompanying drawings of various embodiments of the invention, which describe, for example, methods and systems for providing a multi-service federated content distribution network. The detailed description and drawings, however, should not be read to limit the invention to the specific embodiments. Rather, these specifics are provided for explanatory purposes that help the invention to be better understood.
The multi-service federated content distribution network provides a flexible directory service that operates on a computing device. The directory service interfaces with other computing devices of two types: Either the computing devices include a group of service providers that want to provide their copyrighted material to users using the directory service; or, the computing devices include a group of users who have connected to the service providers through web browsing and now desire to download content from the service providers. The directory service facilitates activities to both groups. In addition, the directory service implements a federated approach with the service providers based on the service providers' needs.
Having briefly described an overview of the present invention, an exemplary operating environment for the present invention is described below.
Exemplary Operating Environment
Referring to the drawings in general and initially to
The invention is operational with numerous other general purpose or special purpose computing system environments or configurations. Examples of well known computing systems, environments, and/or configurations that may be suitable for use with the invention include, but are not limited to, personal computers, server computers, hand-held or laptop devices, multiprocessor systems, microprocessor-based systems, set top boxes, programmable consumer electronics, network PCs, minicomputers, mainframe computers, distributed computing environments that include any of the above systems or devices, and the like.
The invention may be described in the general context of computer-executable instructions, such as program modules, being executed by a computer. Generally, program modules include routines, programs, objects, components, data structures, etc., that perform particular tasks or implement particular abstract data types. The invention may also be practiced in distributed computing environments where tasks are performed by remote processing devices that are linked through a communications network. In a distributed computing environment, program modules may be located in both local and remote computer storage media including memory storage devices.
With reference to
Computer 110 typically includes a variety of computer-readable media. Computer-readable media can be any available media that can be accessed by computer 110 and includes both volatile and nonvolatile media, removable and non-removable media. By way of example, and not limitation, computer readable media may comprise computer storage media and communication media. Computer storage media includes both volatile and nonvolatile, removable and non-removable media implemented in any method or technology for storage of information such as computer-readable instructions, data structures, program modules or other data. Computer storage media includes, but is not limited to, RAM, ROM, EEPROM, flash memory or other memory technology, CD-ROM, digital versatile disks (DVD) or other optical disk storage, magnetic cassettes, magnetic tape, magnetic disk storage or other magnetic storage devices, or any other medium which can be used to store the desired information and which can be accessed by computer 110. Communication media typically embodies computer-readable instructions, data structures, program modules or other data in a modulated data signal such as a carrier wave or other transport mechanism and includes any information delivery media. The term “modulated data signal” means a signal that has one or more of its characteristics set or changed in such a manner as to encode information in the signal. By way of example, and not limitation, communication media includes wired media such as a wired network or direct-wired connection, and wireless media such as acoustic, RF, infrared and other wireless media. Combinations of any of the above should also be included within the scope of computer-readable media.
The system memory 130 includes computer storage media in the form of volatile and/or nonvolatile memory such as read only memory (ROM) 131 and random access memory (RAM) 132. A basic input/output system (BIOS) 133, containing the basic routines that help to transfer information between elements within computer 110, such as during start-up, is typically stored in ROM 131. RAM 132 typically contains data and/or program modules that are immediately accessible to and/or presently being operated on by processing unit 120. By way of example, and not limitation,
The computer 110 may also include other removable/non-removable, volatile/nonvolatile computer storage media. By way of example only,
The drives and their associated computer storage media discussed above and illustrated in
The computer 110 may operate in a networked environment using logical connections to one or more remote computers, such as a remote computer 180. The remote computer 180 may be a personal computer, a server, a router, a network PC, a peer device or other common network node, and typically includes many or all of the elements described above relative to the computer 110, although only a memory storage device 181 has been illustrated in
When used in a LAN networking environment, the computer 110 is connected to the LAN 171 through a network interface or adapter 170. When used in a WAN networking environment, the computer 110 typically includes a modem 172 or other means for establishing communications over the WAN 173, such as the Internet. The modem 172, which may be internal or external, may be connected to the system bus 121 via the network interface 170, or other appropriate mechanism. In a networked environment, program modules depicted relative to the computer 110, or portions thereof, may be stored in a remote memory storage device. By way of example, and not limitation,
Although many other internal components of the computer 110 are not shown, those of ordinary skill in the art will appreciate that such components and the interconnection are well known. Accordingly, additional details concerning the internal construction of the computer 110 need not be disclosed in connection with the present invention.
When the computer 110 is turned on or reset, the BIOS 133, which is stored in the ROM 131, instructs the processing unit 120 to load the operating system, or necessary portion thereof, from the hard disk drive 141 into the RAM 132. Once the copied portion of the operating system, designated as operating system 144, is loaded in RAM 132, the processing unit 120 executes the operating system code and causes the visual elements associated with the user interface of the operating system 134 to be displayed on the monitor 191. Typically, when an application program 145 is opened by a user, the program code and relevant data are read from the hard disk drive 141 and the necessary portions are copied into RAM 132, the copied portion represented herein by reference numeral 135.
The subject matter of the present invention is described with specificity herein to meet statutory requirements. However, the description itself is not intended to limit the scope of this patent. Rather, the inventors have contemplated that the claimed subject matter might also be embodied in other ways, to include different steps or combinations of steps similar to the ones described in this document, in conjunction with other present or future technologies. Moreover, although the terms “step” and/or “block” may be used herein to connote different elements of methods employed, the terms should not be interpreted as implying any particular order among or between the various steps herein disclosed unless and except when the order of individual steps is explicitly described.
Federated Content Distribution Network
In
In the illustration of
Service providers 240 represents different types of entities that may provide content to the public. The types of entities are represented by service provider 1 through n (n being an integer) and can represent any entity that has ownership rights, assignment rights, or other authorizations to copyrighted media. The entities in service providers 240 may desire to federate with directory service 210 in order to provide a platform to deliver content and DRM licenses to users located at clients 220. With this federated approach, directory service 210 may enable or disable access to any one of the service providers in service providers 240. Likewise, directory service 210 may restrict access to users located at clients 220 for a variety reasons. Some of the reasons that a user may be prohibited from accessing content may be for non-payment of bills, expiration of licenses, failure to observe the terms of use, unauthorized use, etc. At the same time, directory service 210 may be able to inform users in clients 220 of the status of their current license. For example, if client 230 desires to obtain new content and a new DRM license, directory service 210 may inform client 230 that the current DRM license is still valid and that no new license is required. Another scenario may require directory service 210 to inform client 230 that the DRM license is about to expire, and for the payment of a fee, an extended license may be obtained without proceeding through the complete authentication process.
Now turning to
One of the services provided by directory service 210 is to maintain a list of service providers in 212. Service providers, also identified as service providers 240, may federate, as noted in 265, with directory service 210 to provide content and DRM licenses. As noted earlier, the approach is federated since each service provider may have a different relationship with directory service 210. In the commercial world, service provider 250 may be controlled by one corporation while directory service 210 may be controlled by another. Alternatively, both service provider 250 and directory service 210 may be controlled by the same corporate entity.
Along with the list of service providers in 212, a service definitions 214 is maintained in directory service 210. Service definitions 214 is information that pertains to service providers that may be used by the clients. The information may vary in service definitions 214 but it may include identification information of service provider 250, the name of the available service(s), the URL that client 230 and service provider 250 may use for the client-server protocol, the valid domains for service provider 250, the operations that service provider 250 may perform with client 230, and other parameters.
While a user is browsing the internet, the user may locate a website, shown by service provider 250, that has a particular audio file, shown as a content 256, that the user desires to obtain. The user, represented by client 230, makes a request as shown by 260 to service provider 250 to obtain the audio file shown by content 256. Service provider 250 responds to the request made by client 230 by redirecting the request in 262 to directory service 210. This redirection may occur for various reasons. First, service provider 250 may not have developed its own client software or it may lack the infrastructure to handle transactions, like DRM activities. Second, service provider 250 may not want to create an infrastructure with servers and security measures in order to handle transactions when there is an available partner, such as directory service 210, to handle those activities. Third, service provider 250 may also lack the billing and administration system needed to deal with various requests from users identified earlier as clients 220 in
Directory service 210 handles the registration of client 230 on behalf of service provider 250 as one embodiment. Also, as another embodiment, service provider 250 may handle the registration process as shown in 290.
Going back to 270, directory service 210 verifies the registration request with service provider 250, and service provider 250 returns a clientID 274 to directory service 210, if the registration process is successful. ClientID 274 contains various information including a unique ID for client 230 and a secret combination for the DRM challenge if required. One may note that during this phase, the communication between directory service 210 and service provider 250 occurs over a secure communications channel. Another embodiment may employ a non-secure communications channel if desired. Once clientID 274 is received, directory service 210 sends clientID 274 to client 230. Throughout the registration process and the receipt of clientID 274, client 230 contains an ActiveX 236 to facilitate the registration process and receipt of clientID 274. ActiveX 236 is an ActiveX control that is familiar to one of ordinary skill in the art.
During the process of sending clientID 274 to client 230, directory service 210 may send service definitions 278 to client 230. Service definitions 278 may also be sent at an earlier or later time. Service definitions 278 is different from service definitions 214 in that service definitions 278 represents the service definitions for a particular service provider, in this case service provider 250. Service definitions 214 represents all the service providers that may federate with directory service 210. As noted earlier, ActiveX 236 may be involved to facilitate the receipt of service definitions at client 230. ActiveX 236 is locked to service definitions 214 in a software context. With clientID 274 and service definitions 278, client 230 is ready to retrieve content and a DRM license, as shown by 280, from directory service 210. When this occurs, directory service 210 may verify client 230 at 284 with service provider 250. Upon completion of this verification, service provider 250 may deliver content 256 shown by 288 to directory service 210, which in turns delivers content 256 to client 230. Although not discussed here, various protocols and security schemes are employed to enable secure communications between client 230, directory 210, and service provider 250. For example, a public key/private key authentication may be employed to enable the successful transfer and use of the DRM license. Other authentication techniques may be employed as well to meet the needs of the entity that deploys directory service 210.
As discussed earlier, the present invention uses a federated approach to enable service providers to partner with directory service 210. The discussion above mainly focused on an embodiment that illustrated what happens when a service providers relies on directory service 210 to perform most of the tasks on behalf of the service provider. Another relationship may involve client 230 registering directly with service provider 250 as shown by 290 with no involvement of directory service 210. However, directory service 210 may be involved with the delivery of clientID 274 or may not be involved as shown by 292. Furthermore, directory service may be involved with the retrieval of content and the DRM license as shown in 280 or may not be involved as shown by 294 and 296. The point here is to illustrate that service provider 250 has varying degrees of flexibility in using directory service 210. Agreements between directory service 210 and service provider 250 may be made in advance before any services are rendered in order to execute the manner in which activities may occur. Each activity may be selected or withdrawn as it pertains to the involvement of directory service 210 in interfacing with client 230. One scenario may find service provider 250 starting out using all of the services of directory service 210 but gradually reducing those services as service provider 250 grows as an entity. The converse may be implemented as well. Service provider 250 may start out using a few services of directory service 210 and then gradually increase those services to keep pace with growing business needs. For example, the demand for content by users may increase so fast that service provider 250 may be unable to keep pace with fulfilling the demands. Directory service 210 may provide a mechanism to quickly implement a DRM structure to facilitate the needs of service provider 250.
In
As part of the function of the directory service, a list of service providers may be determined along with the access that each may have in regards to the directory service-service provider relationship, shown in a step 420. As discussed in
As directory service 210 operates as part of the computing device, it may register clients on behalf of service providers as shown in a step 430. However, this step may be omitted if the service provider desires to register clients directly. Both examples were illustrated in 270 and 290 in
If all goes well with client 230 being properly registered, the directory service facilitates content delivery as shown in a step 440. This step incorporates a broad set of activities which may vary depending on how one may implement an embodiment of the present invention. As shown in
The illustration in
Now turning to
In a step 520, an ongoing relationship may be established between the directory service and service providers. As discussed in
In a first scenario, a service provider may want maximum flexibility and independence with its relationship with the directory service. The service provider may want to customize as much as possible as to the relationship with the directory service and implement as much as possible on its own. For example, directory service 210 may add an entry describing the service provider with maximum permissions and the URLs to use as is shown by 212 and 214 in
In a second scenario, a service provider may work with a directory service which is part of MSN VIDEO of the MICROSOFT CORPORATION of Redmond, Wash. The directory service may include a complement of servers. MSN VIDEO may implement sign-in, billing, client-server communication, content hosting, and DRM license delivery while the directory service may implement client registration and un-registration.
In a third scenario, a service provider may want to implement the full scenario as outlined in
Finally, in a fourth scenario, a service provider may deploy a similar structure as identified in the third scenario except that the service provider may not have the infrastructure to support a complement of servers. In this case, a user may discover the availability of content at directory service 210 without going to the service provider. The directory service may be equipped to handle all transactions on behalf of the service provider.
In a step 530, service definitions that identify the service providers and their information are maintained at the directory service, as shown in service definitions 214. In a step 540 and a step 550, clients may be registered either with the directory service or directly with the service provider. As shown previously, either approach results in the delivery of clientID 274 to the client.
Although step 520 allows for a variety of relationships between the directory service and the service providers, the directory service can maintain control over the relationship by enabling or disabling access to the service providers as stated in a step 560. Although beyond the scope of this discussion, a non-payment of fees, breach of agreement, or misuse of services may trigger a disable request delivered to the service provider. Likewise, an enable request may result for just as many reasons. Similar to step 560, the directory service may have the authority to un-register clients as indicated by a step 580. Again, many reasons may occur for the directory service to un-register a client such as the expiration of a license, non-payment of fees, or an unauthorized use.
The directory service may also provide content and the DRM license as stated in a step 570. Although shown as an embodiment of the present invention, like others, this step may be omitted and performed directly by the service provider.
As stated in
The details of
From the aforementioned figures, one may appreciate that the present invention provides a common platform using the directory service to accommodate different entities with different needs to pursue their DRM and non-DRM activities.