brief overview of.net remoting.net remoting is a java rmi-like remote method invocation mechanism...

Post on 21-Dec-2015

223 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

TRANSCRIPT

Brief Overview of .NET Remoting

• .NET Remoting is a Java RMI-like remote method invocation mechanism

• Infrastructure of .NET Remoting is highly customizable

• The ability of .NET Remoting can be easily extended by customization

Streaming .NET Remoting

• Extend .NET Remoting to provide network streaming ability– Keep the object-oriented

characteristic of .NET Remoting

– Hide network communication details

– Provide the ability to communicate simultaneously with multiple supplying peers

Streaming .NET Remoting

• Pushing– Push streaming data from

server to client automatically

• Forwarding– Each client can forward

streaming data to other client to reduce server load

• Aggregation– Clients aggregate data

from different servers to make it meaningful

S

C

C

S

S

C

Pushing Mechanism

• Ordinary .NET Remoting– Client need to actively pull

data from server– There is a round-trip latenc

y caused by each pull

Pushing Mechanism

• Pushing from server to Client– Client passively receive

data from its buffer– With pushing, we can

reduce times of request– Client need only to

send 1 request containing the schedulea the beginning of thestreaming session

Aggregation

• Clients schedule what and how servers should send at the beginning of a streaming session

• Clients should be capable of how to aggregate data from different servers

S

C

S

S

C

Forwarding Mechanism

• When a client request for a specific stream in the network, other subscribers of the stream can forward to it

• Server load can be reduced

C

S

C

C

C

S

C

C

Our Implementation

Components

• Custom Proxy– Inherits from RealProxy of

.NET Remoting– Intercepts method invocati

ons from upper level and pass them to Streaming Controller

– Has the ability to create more than one Remoting connections

Components

• Streaming Controller– Receive Remoting messages in

tercepted by Custom Proxy– Distribute method invocation m

essages to many servers in the network

– Schedule how servers should partition or process their data before sending

– Responsible for aggregation of data from lower layer

Components

• Continuous Buffer– Buffer data from upper layer– Automatically push data from server-side to

client-side– Client retrieve data without make method calls

every time

Components

• Push Manager– Push manager understands

the schedule plan from the client

– Periodically loads streaming data by calling the remote object instance

– It will write data to continuous buffer to wait to be sent

Progress

• What is done– Basic prototype of Streaming .NET Remoting– Pushing mechanism is supported

• TODO– Aggregation– Forwarding

top related