Providing Load Balanced Secure Media Content and Data Delivery in a Distributed Computing Environment
20200351250 ยท 2020-11-05
Inventors
Cpc classification
H04N21/2223
ELECTRICITY
H04L63/0428
ELECTRICITY
H04N7/162
ELECTRICITY
H04N21/2181
ELECTRICITY
H04N21/222
ELECTRICITY
H04L67/1029
ELECTRICITY
H04N21/23476
ELECTRICITY
H04L63/06
ELECTRICITY
H04N21/4532
ELECTRICITY
H04L2463/101
ELECTRICITY
H04N21/454
ELECTRICITY
H04L67/1095
ELECTRICITY
H04L63/0457
ELECTRICITY
H04N21/44055
ELECTRICITY
H04L63/062
ELECTRICITY
H04N21/6581
ELECTRICITY
H04N21/23103
ELECTRICITY
H04N21/8456
ELECTRICITY
H04N21/6587
ELECTRICITY
International classification
H04N21/218
ELECTRICITY
H04N21/222
ELECTRICITY
H04N21/231
ELECTRICITY
H04N21/239
ELECTRICITY
H04N21/258
ELECTRICITY
H04N21/45
ELECTRICITY
H04N21/454
ELECTRICITY
H04N21/6587
ELECTRICITY
H04N21/845
ELECTRICITY
Abstract
A system and method for providing load balanced secure media content and data delivery in a distributed computing environment is disclosed. Media content is segmented and encrypted into a set of individual encrypted segments on a centralized control center. Each individual encrypted segment has the same fixed size. The complete set of individual encrypted segments is staged to a plurality of intermediate control nodes. Individual encrypted segments are mirrored from the staged complete set to a plurality of intermediate servers. Requests are received from clients for the media content at the centralized control center. Each individual encrypted segment in the set is received from one of an intermediate control node and an intermediate server optimally sited from the requesting client. The individual encrypted segments are reassembled into the media content for media playback.
Claims
1. A method of operating an edge server for providing load balanced secure media content delivery in a distributed computing environment wherein the media content is segmented and encrypted into a plurality of individually encrypted segments, comprising: receiving the plurality of individually encrypted segments from a centralized server, the plurality of individually encrypted segments reassemblable into the media content for media playback; receiving a plurality of requests from a client computer optimally proximate to the edge server for at least some of the plurality of individually encrypted segments, each of the plurality of requests requesting a corresponding individually encrypted segment of the plurality of individually encrypted segments; and transmitting the at least some of the plurality of individually encrypted segments to the client computer.
2. The method according to claim 1, wherein at least one of the one or more client computers determines a network throughput prior to requesting the individually encrypted segments.
3. The method according to claim 1, wherein the media content comprises at least one of a video file, an audio file or a video game.
4. The method according to claim 1, wherein each client computer comprises at least one of a personal computer, a mobile phone or set top device.
5. The method according to claim 1, wherein the transmitting the at least some of the plurality of individually encrypted segments is performed in a non-sequential order.
6. The method according to claim 1, further comprising maintaining a master database of user profiles.
7. The method according to claim 1, wherein the individually encrypted segments are variable in size.
8. The method according to claim 1, further comprising pre-sending at least one of the individually encrypted segments to the one or more client computers before a request for retrieving media content is received from the one or more client computers.
9. The method according to claim 1, wherein the media content is encrypted using a content key and at least a part of the content key is transmitted in a digitally signed data structure.
10. An edge server for providing load balanced secure media content delivery in a distributed computing environment wherein the media content is segmented and encrypted into a plurality of individually encrypted segments, the edge server comprising: at least one processor executing instructions stored in memory, the at least one processor operable to receive the plurality of individually encrypted segments from a centralized server, the plurality of individually encrypted segments reassemblable into the media content for media playback; the at least one processor further operable to receive a plurality of requests from a client computer optimally proximate to the edge server for at least some of the plurality of individually encrypted segments, each of the plurality of requests requesting a corresponding individually encrypted segment of the plurality of individually encrypted segments; and the at least one processor even further operable to transmit the at least some of the plurality of individually encrypted segments to the client computer.
11. The network according to claim 10, wherein the media content comprises at least one of a video file, an audio file or a video game.
12. The network according to claim 10, wherein each client computer comprises at least one of a personal computer, a mobile phone or set top device.
13. The network according to claim 10, wherein the at least one processor transmits the at least some of the individually encrypted segments in a non-sequential order.
14. The network according to claim 10, further comprising a master database of user profiles.
15. The network according to claim 10, wherein the individually encrypted segments are variable in size.
16. The network according to claim 10, wherein the at least one processor pre-sends at least one of the individually encrypted segments to the one or more client computers before a request for retrieving media content is received from the one or more client computers.
17. The network according to claim 10, wherein at least one of the one or more client computers determines a network throughput prior to requesting the individually encrypted segments.
18. A method for providing load balanced secure media content delivery in a distributed computing environment, the method comprising: segmenting and encoding media content into a set of encrypted segments, said encrypted segments reassemblable into the media content for media playback; storing the set of encrypted segments at a staging server; mirroring said set of encrypted segments from said staging server onto a plurality of edge servers; authenticating an end user; retrieving a user profile of the authenticated end user; choosing an optimally sited edge server from the plurality of edge servers, based at least in part on a location of a client utilized by the end user; receiving a plurality of individual segment requests from the client at the optimally sited edge server, each individual segment request of the plurality of segment requests requesting transmittal of a corresponding encrypted segment mirrored at the optimally sited edge server; transmitting the requested corresponding encrypted segments from the optimally sited edge server to the client.
19. The method according to claim 18, wherein the client determines a network load prior to sending at least some of the plurality of segment requests.
20. The method according to claim 18, wherein the client determines a network load prior to sending each individual segment request of the plurality of individual segment requests.
21. The method according to claim 18, wherein the media content comprises at least one of a video file, an audio file, or a video game.
22. The method according to claim 18, wherein the client is a module on at least one of a personal computer, a mobile phone, or a set top device.
23. The method according to claim 18, wherein the optimally sited edge server simultaneously serves a plurality of clients, each client requesting individually encrypted segments from a different set of encrypted segments.
24. The method according to claim 18, further comprising maintaining a master database of user profiles.
25. The method according to claim 18, wherein the individually encrypted segments are variable in size.
26. The method according to claim 18, wherein the set of encrypted segments is encrypted using one unique key per individual segment.
27. A network for providing load balanced secure media content delivery in a distributed computing environment, the network comprising: a centralized server comprising at least one processor executing instructions stored in memory, the centralized server configured to: segment and encode media content into a set of encrypted segments, the encrypted segments reassemblable into the media content for media playback; and store the set of encrypted segments; a plurality of edge servers, each comprising at least one processor executing instructions stored in a memory and configured to: receive a copy of the set of encrypted segments, and mirror the set of encrypted segments received; a request processing module comprising at least one processor executing instructions stored in memory, and configured to: authenticate an end user; retrieve a user profile of the authenticated end user; an optimally sited edge server chosen from the plurality of edge servers, based at least in part on a location of a client utilized by the end user, and configured to: receive a plurality of individual segment requests from the client, each individual segment request of the plurality of segment requests requesting transmittal of a corresponding encrypted segment mirrored at the optimally sited edge server; and transmit the requested corresponding encrypted segments from the optimally sited edge server to the client.
28. The network of claim 27, wherein the client determines a network load prior to sending at least some of the plurality of segment requests.
29. The network of claim 27, wherein the client determines a network load prior to sending each individual segment request of the plurality of individual segment requests.
30. The network of claim 27, wherein the media content comprises at least one of a video file, an audio file, or a video game.
31. The network of claim 27, wherein the client is a module on at least one of a personal computer, a mobile phone, or a set top device.
32. The network of claim 27, wherein the optimally sited edge server simultaneously serves a plurality of clients, each client requesting individually encrypted segments from a different set of individually encrypted segments.
33. The network of claim 27, further comprising maintaining a master database of user profiles.
34. The network of claim 27, wherein the individually encrypted segments are variable in size.
35. The network of claim 27, wherein the set of encrypted segments is encrypted using one unique key per individual segment.
36. A network for providing load balanced media content delivery in a distributed computing environment, the network comprising: a centralized server comprising at least one processor executing instructions stored in memory, the centralized server configured to: segment media content into a set of segments, the segments reassemblable into the media content for media playback; and store the set of segments; a plurality of edge servers, each comprising at least one processor executing instructions stored in a memory and configured to: receive a copy of the set of segments, and mirror the set of segments received; a request processing module comprising at least one processor executing instructions stored in memory, and configured to: authenticate an end user; retrieve a user profile of the authenticated end user; an optimally sited edge server chosen from the plurality of edge servers, based at least in part on a location of a client utilized by the end user, and configured to: receive a plurality of individual segment requests from the client, each individual segment request of the plurality of segment requests requesting transmittal of a corresponding encrypted segment mirrored at the optimally sited edge server; and transmit the requested corresponding segments from the optimally sited edge server to the client, wherein the client determines a network load prior to sending at least some of the plurality of segment requests.
37. The network of claim 36, wherein the client determines a network load prior to sending each individual segment request of the plurality of individual segment requests.
38. The network of claim 36, wherein the media content comprises at least one of a video file, an audio file, or a video game.
39. The network of claim 36, wherein the client is a module on at least one of a personal computer, a mobile phone, or a set top device.
40. The network of claim 36, wherein the optimally sited edge server simultaneously serves a plurality of clients, each client requesting individual segments from a different set of individual segments.
41. The network of claim 36, wherein the request processing module is further configured to maintain a master database of user profiles.
Description
DESCRIPTION OF THE DRAWINGS
[0017]
[0018]
[0019]
[0020]
[0021]
[0022]
[0023]
[0024]
[0025]
[0026]
[0027]
[0028]
[0029]
[0030]
[0031]
[0032]
DETAILED DESCRIPTION
[0033]
[0034] The Smart Client 11 initiates the media content delivery process by sending a request to a Neuro Center 15. The Neuro Center 15 centrally manages all requests for media content and is accessible via an internetwork 26, including the Internet, or similar broadband wide area network. The Smart Client 11 interfaces to the internetwork 26 through an Internet Service Provider 25 (ISP) or via direct connection (not shown). The Neuro Center 15 maintains a master database 16 in which individual users are profiled and e-commerce and e-business management data are maintained. Upon validating each client request, the Neuro Center 15 requests the Smart Client 11 to check the network and commence media content delivery. The Neuro Center 15 is further described below with reference to
[0035] The actual media content is stored as individual encrypted segments on Neuro Nodes 17 and 19 and Edge Servers 21a-b and 23a-b. Neuro Node 17 and Edge Servers 21a-b are locally interfaced via an intranetwork 27 and are interfaced to the Neuro Center 15 via a gateway (GW) 28 interfacing to the internetwork 26. Neuro Node 19 and Edge Server 23a-b directly interface to the Neuro Center 15 via the internetwork 26. Other configurations and network topologies are feasible, as would be recognized by one skilled in the art.
[0036] The Neuro Nodes 17 and 19 maintain segment storages 18 and 20, respectively, in which complete sets of individual encrypted segments comprising a complete (or portion of a) media selection are stored. The Edge Servers 21a-b and 23a-b also maintain segment storages 22a-b and 24a-b, respectively, in which mirrored segments are maintained. The Neuro Nodes 17 and 19 selectively copy or mirror segments to the Edge Servers 21a-b and 23a-b to optimally balance the distribution of individual encrypted segments throughout the network. Neuro Nodes 17 and 19 are further described below with reference to
[0037] The individual computer systems, including Neuro Center 15, Neuro Nodes 17 and 19, Edge Servers 21a-b, and 23a-b, and Smart Client 11, are general purpose, programmed digital computing devices consisting of a central processing unit (CPU), random access memory (RAM), non-volatile secondary storage, such as a hard drive or CD ROM drive, network interfaces, and peripheral devices, including user interfacing means, such as a keyboard and display. Program code, including software programs and data, are loaded into the RAM for execution and processing by the CPU and results are generated for display, output, transmittal, or storage.
[0038]
[0039] The requested media content is delivered in individual encrypted segments received from Neuro Nodes 43 and Edge Servers 44. Prior to receiving each segment, Smart Client 41 broadcasts a pulse 47 over the network to determine the load and operational status of the various Neuro Nodes 43 and Edge Servers 44 (step {circle around (3)}). The Smart Client 41 receives pulse responses and segments 48 back from the Neuro Nodes 43 and Edge Servers 44 (step {circle around (4)}). The Neuro Center 42 manages encryption and security in the background to media content delivery.
[0040] The pulse responses indicate the network load and relative status of each network component while each segment contains a portion of the actual requested media content. The Smart Client 41 reassembles the individual encrypted segments and begins media playback upon receiving a sufficient number of segments. The Smart Client 41 decrypts and decompresses each segment and provides a full-featured, full-motion playback. Note the segments need not be received in serial order and can be (and in practice, often are) requested from different Neuro Nodes 43 and Edge Servers 44, depending on network load and component status.
[0041]
[0042] As before, a Smart Client 61 sends a request 66 to a Neuro Center 62 to initiate media content delivery (step {circle around (1)}). The Neuro Center 62 validates the request and sends a response 67 requesting the Smart Client 61 to pulse the network (step {circle around (2)}). The Smart Client 61 broadcasts a pulse 68 over the network to the Neuro Nodes 63, Edge Server 64 and other Smart Clients 65 (step {circle around (3)}). These components send back responses and segments 69 (step {circle around (4)}) as above.
[0043]
[0044]
[0045] The encoding module 102 receives raw media content 112 from a variety of diverse sources, including the Internet, satellite and cable feeds, wireless devices, and next-generation media sources. The raw media content 112 is converted into a standardized form of encoded content 114. In turn, the segmentation module 103 segments the encoded content 114 into sets of individual segments 115 which are then encrypted by the encryption module 104, preferably using a different unique key for each individual segment. The complete sets of individual encrypted segments 115 are then broadcast by the multicasting and broadcasting module 109 to the Neuro Nodes (shown in
[0046] Individual users request media content delivery by sending a play ticket 110, as further described below with reference to
[0047] The pre-casting module 108 is used in a further embedment to stage the initial segments of popular media content to the individual Smart Clients during off-peak times. Finally, the multicasting and broadcasting module 109 sends sets of segments 115, as well as individual encrypted segments 115, to a select subset of network components (multicasting) or to all network components (broadcasting). The Neuro Center 101 monitors network status 113 in the background.
[0048]
[0049] The mirroring module 122 selectively stages individual encrypted segments 128 to Edge Servers and, in a further embodiment, Smart Clients. The segments are distributed throughout the network to maximize load balancing and fault tolerance. The request processing module 123 receives incoming requests from individual Smart Client. The requests are staged in a request queue 126. The multicasting and broadcasting module 124 sends a requested segment 128 if the Neuro Node 121 is optimally sited relative to the requesting Smart Client. Alternatively, a plurality of individual client requests for the same segment 128 can be stored in the request queue 126 and fulfilled en masse by the multicasting and broadcasting module 124. The advantage of staging multiple client requests is network throughput efficiency. The request processing module 123 authenticates each user through a user authentication table 129. The Neuro Node 121 monitors the network status 127 in the background. The codec 125 compresses individual encrypted segments 128 prior to delivery to a Smart Client.
[0050]
[0051] The request processing module 143 receives incoming requests from individual Smart Clients. The requests are staged in a request queue 146. The Edge Server 141 sends a mirrored requested segment 148 if the Edge Server 141 is optimally sited relative to the requesting Smart Client. Alternatively, a plurality of individual client requests for the same mirrored segment 148 can be stored in the request queue 146 and fulfilled en masse by the multicasting and broadcasting module 144. The advantage of staging multiple client requests is network throughput efficiency. The request processing module 143 authenticates each user through a user authentication table 149. The Edge Server 141 monitors the network status 147 in the background.
[0052]
[0053] The user interface module 162 provides controls to select media content for delivery. The request processing module 163 forms a request for media content that is sent to the Neuro Center (shown in
[0054] Each module in the Neuro Center 101, Neuro Node 121, Edge Server 141, and Smart Client 161 is a computer program, procedure or module written as source code in a conventional programming language, such as the C++ programming language, and is presented for execution by the CPU as object or byte code, as is known in the art. The various implementations of the source code and object and byte codes can be held on a computer-readable storage medium or embodied on a transmission medium in a carrier wave. The system operates in accordance with a sequence of process steps, as further described below with reference to
[0055]
[0056] When a customer orders media content from a Neuro Center (shown in
[0057] (1) Certificate serial number (181) for the ticket;
[0058] (2) Customer number (182);
[0059] (3) Creation date and time (183);
[0060] (4) Expiration date and time (184);
[0061] (5) Movie title number (185);
[0062] (6) Number of plays (186)
[0063] (7) Reserved (187)
[0064] (8) Movie key (Part 1) (188); and
[0065] (9) Certificate signature (189).
[0066] The Certificate signature 189 is a digital signature prepared using symmetric public key encryption. The certificate signature 189 ensures the ticket cannot be altered without validation. As well, the movie key part 1188 includes only a portion of the entire movie key, which is split into two pieces between the play ticket 180 and a validation certificate 200 (shown below in
[0067] In the described embodiment, each play ticket 180 has a 96-byte structure containing all information necessary to validate the play ticket. The certificate serial number 181 is used as a record lookup key into the ticket database 118 (shown in
[0068] Before the play ticket 180 is presented for validation by the Neuro Center, the Smart Client checks the certificate signature 189 for validity. The certificate signature 189 includes a checksum of the certificate consisting of the first 64 bytes which are cryptographically signed using the Digital Signature Standard (DSS). If the play ticket 180 has been altered, the certificate signature 189 will not match and the signature validation will fail.
[0069] The number of plays field 186 can contain either a special numeric value indicating the ticket is good for unlimited plays, that is, the user has purchased the media content, or a numeric value indicating the number of plays remaining in a rental of the media content. Unlimited play tickets 180 do not have an expiration date and time 184.
[0070] Generally, all other play tickets 180 are good for only one play. If the number of plays in the play ticket 180 is greater than one, the play ticket 180 must be replaced. When validated, a replacement play ticket 180 is also returned with the number of plays field 186 reduced and a new certificate serial number 181 issued.
[0071]
[0072] (1) Certificate serial number (201) for the validation certificate;
[0073] (2) Customer number (202);
[0074] (3) Creation date and time (203);
[0075] (4) Expiration date and time (204);
[0076] (5) Movie title number (205);
[0077] (6) Reserved (206);
[0078] (7) Movie key (Part 2) (207); and
[0079] (8) Certificate signature (208).
[0080] Like the play ticket 180, the Neuro Node validates each validation certificate 200 using the certificate signature 208. If the certificate signature 208 does not match, the validation certificate 200 is invalid. The validation certificate 200 includes the other remaining portion of the movie key Part 2 207.
[0081] In the described embodiment, each movie key is split into two parts by using a second 128-bit random number generated using the same operations as used to generated the movie key Part 1. The second 128-bit random number is used as a split filter using an exclusive OR operation against the full movie key. The value used to split the key becomes the validation key.
[0082] Play tickets are computed according to the following operation:
K.sub.2=K.sub.MK.sub.1
[0083] where:
[0084] K.sub.M is the Movie Key
[0085] K.sub.1 is the Validation Key (Split Value)
[0086] K.sub.2 is the Play Ticket Key
[0087] The validation key is stored in the ticket database 118, along with the other information necessary to validate the play ticket 180. The play ticket key becomes part of the play ticket 180.
[0088] During the later validation phase, after the play ticket information has been validated against the ticket database 118, a validation certificate 200 is generated and sent to the user. This certificate includes the validation key. The full movie key is recovered by using an exclusive OR of the two values to reverse the split process and recover the original key.
[0089]
[0090] The fixed header of each TCDP data packet contains the following fields:
[0091] (1) Sources (221): port number from which the packet was sent;
[0092] (2) Destination (222): port number to which the packet was directed;
[0093] (3) Packet Length (223): contains a count of octets in the packet, including the header and data;
[0094] (4) Checksum (224): corresponds to the Internet protocol checksum;
[0095] (5) Type (225): identifies the type of packet;
[0096] (6) Data Owner (226): contains a unique identifier for the originator of the data. Together with the sequence number, the contents of this field uniquely define a packet when multiple senders share a common multicast address;
[0097] (7) Sequence Number (227): increments by one for each new packet sent and may be used by the receiver to detect packet loss and to restore packet sequence;
[0098] (8) Header Extensions (228): indicates the presence of a header extension field; and
[0099] (9) Data (229): Variable payload data is appended to the end of the header 220 and may be of any length, including zero, as specified by the type field. Other types and combinations of fields are possible, as would be recognized by one skilled in the art.
[0100]
[0101]
[0102] Thus, complete sets of segments 115 (shown in
[0103] If the play ticket 180 is not valid (block 256), an invalid play ticket message is sent to the user (block 257) and the e-commerce data is updated (block 262). Processing continues with each subsequent user request (block 263), after which the routine returns.
[0104]
[0105] Thus, initially and as required thereafter, individual encrypted segments 128 (shown in
[0106]
[0107] Thus, initially and as required thereafter, individual encrypted segments are received from Neuro Nodes and staged (block 281) as mirrored segments 148 (shown in
[0108]
[0109] Thus, in a further embodiment, individual encrypted mirrored segments 170 (shown in
[0110] The status of the network is determined prior to requesting each individual segment (blocks 298-300) as follows. First, a pulse is sent from the Smart Client (block 298) to the Neuro Nodes, Edge Servers and, in a further embodiment, peer Smart Clients. A pulse report is received back from each of the components (block 299) and an optimal route is determined (block 300) for each of the individual encrypted segments.
[0111] Each individual encrypted segment is requested (block 301) and received (block 302), preferably from an optimally sited network component. If segments sufficient for playback have been received (block 303), playback begins (block 304). Receipt of segments continues (block 305) until media content delivery is complete. Processing media content requests continues (block 306) until the Smart Client terminates.
[0112] In a further embodiment, the Smart Client sends individual encrypted mirrored segments 170 to peer Smart Clients upon request (blocks 307-109) as follows. A user request for an individual encrypted segment is received (block 307). The requested mirrored segment 170 is retrieved (block 308) and sent to the requesting user (block 309). The delivery of mirrored segments 170 from a peer Smart Client enables fuller network resource utilization and improved load balancing characteristics for the network.
[0113] While the invention has been particularly shown and described as referenced to the embodiments thereof, those skilled in the art will understand that the foregoing and other changes in form and detail may be made therein without departing from the spirit and scope of the invention.