Presentation is loading. Please wait.

Presentation is loading. Please wait.

Streaming Support for.NET Remoting over Peer-to-Peer Environments.

Similar presentations


Presentation on theme: "Streaming Support for.NET Remoting over Peer-to-Peer Environments."— Presentation transcript:

1 Streaming Support for.NET Remoting over Peer-to-Peer Environments

2 Software Architecture Add streaming ability while keeping the advantages of.NET Remoting Add streaming ability while keeping the advantages of.NET Remoting Some components are inserted into conventional.NET Remoting architecture Some components are inserted into conventional.NET Remoting architecture Custom proxy Custom proxy Streaming controller Streaming controller Streaming buffer Streaming buffer Continuous buffer Continuous buffer Loader Loader Loader

3 Aggregation Mechanism When is it possible? When is it possible? When there are multiple related streaming sources in the network When there are multiple related streaming sources in the network Why do we need aggregation? Why do we need aggregation? Load balancing and sharing Load balancing and sharing Resource provided by a single node is not enough Resource provided by a single node is not enough To gather different streams and aggregate them into a single stream before presenting to application layer To gather different streams and aggregate them into a single stream before presenting to application layer We provided some APIs for developers to customize their aggregation mechanism We provided some APIs for developers to customize their aggregation mechanism First we focus on how to retrieve “ same data stream ” from different servers efficiently First we focus on how to retrieve “ same data stream ” from different servers efficiently

4 Notations A set of supplying nodes A set of supplying nodes S = {s i | i = 1 … n} S = {s i | i = 1 … n} A set of data blocks A set of data blocks D = {d j | j = 1 … m} D = {d j | j = 1 … m} For each supplying node s i For each supplying node s i Supplying bandwidth: r i of s i Supplying bandwidth: r i of s i A set of data blocks existed in s i : Blocks(s i ) A set of data blocks existed in s i : Blocks(s i ) Completeness of data in s i : Completeness(s i ) Completeness of data in s i : Completeness(s i ) The amount of content: k i The amount of content: k i Bandwidth requirement: Req[d j ] Bandwidth requirement: Req[d j ] Bandwidth Allocation Table: BAT mxn Bandwidth Allocation Table: BAT mxn

5 Weight Evaluation In our proposed algorithm, we evaluate weight of each available source to decide their priorities In our proposed algorithm, we evaluate weight of each available source to decide their priorities 3 factors are considered: 3 factors are considered: The supplying bandwidth The supplying bandwidth The completeness of the stream The completeness of the stream The amount of content The amount of content Completeness(s i ) = size(Blocks(s i )) / size(D) Completeness(s i ) = size(Blocks(s i )) / size(D) Weight(s i ) = α* r i + β* Completeness(s i ) + γ*(1/ k i ) Weight(s i ) = α* r i + β* Completeness(s i ) + γ*(1/ k i ) local global

6 Aggregation Algorithm function BandwidthAllocation(S) // Evaluate weight of each data source for i = 1 to n do Weight(s i ) =α* r i + β* Completeness(s i ) + γ*(1/ k i ) sort the list S by weight of each data source in decreasing order // Bandwidth allocation for i = 1 to n do // for each node for j = 1 to m do // for each block in node s i if Req(d j ) > 0 and IsContained(d j, Blocks(s i )) BAT(i, j) = MIN(r i, Req[d j ]) Req[d j ] = Req(d j ) – BAT(i, j) if every element in Req is 0 break // Break the for loop

7 s1s1 s2s2 s3s3 20Kb/s 40Kb/s If Weight(s i ) = (1/20)* r i + (1)* Completeness(s i ) + (0)*(1/ k i ) γβα Weight(s 1 ) = 1+0.67+0 = 1.67 Weight(s 2 ) = 1+0.67+0 = 1.67 Weight(s 3 ) = 2+1+0 = 3 s1s1 s2s2 s3s3 Sort by weight in decreasing order 20Kb/s 40Kb/s Allocate bandwidth 20 0 0 40 s1s1 s2s2 s3s3 20Kb/s 40Kb/s Bandwidth requirement = 60Kb/s

8 Experiment The simulation result The simulation result

9 Software APIs A simple streaming client A simple streaming client

10 Software APIs (Cont.) IScheduler and IOperator provides interfaces for users to customize aggregation scheduling policies and operations IScheduler and IOperator provides interfaces for users to customize aggregation scheduling policies and operations

11 Progress What is done What is done Simulation of proposed aggregation algorithm Simulation of proposed aggregation algorithm Specification of APIs Specification of APIs Working on.. Working on.. Implementation of aggregation mechanism Implementation of aggregation mechanism


Download ppt "Streaming Support for.NET Remoting over Peer-to-Peer Environments."

Similar presentations


Ads by Google