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

13
Brief Overview of .NET Rem oting .NET Remoting is a Java RMI-like remo te method invocati on mechanism Infrastructure of . NET Remoting is hi ghly customizable The ability of .NE T Remoting can be easily extended by customization

Post on 21-Dec-2015

220 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Brief Overview of.NET Remoting.NET Remoting is a Java RMI-like remote method invocation mechanism Infrastructure of.NET Remoting is highly customizable

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

Page 2: Brief Overview of.NET Remoting.NET Remoting is a Java RMI-like remote method invocation mechanism Infrastructure of.NET Remoting is highly customizable

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

Page 3: Brief Overview of.NET Remoting.NET Remoting is a Java RMI-like remote method invocation mechanism Infrastructure of.NET Remoting is highly customizable

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

Page 4: Brief Overview of.NET Remoting.NET Remoting is a Java RMI-like remote method invocation mechanism Infrastructure of.NET Remoting is highly customizable

Pushing Mechanism

• Ordinary .NET Remoting– Client need to actively pull

data from server– There is a round-trip latenc

y caused by each pull

Page 5: Brief Overview of.NET Remoting.NET Remoting is a Java RMI-like remote method invocation mechanism Infrastructure of.NET Remoting is highly customizable

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

Page 6: Brief Overview of.NET Remoting.NET Remoting is a Java RMI-like remote method invocation mechanism Infrastructure of.NET Remoting is highly customizable

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

Page 7: Brief Overview of.NET Remoting.NET Remoting is a Java RMI-like remote method invocation mechanism Infrastructure of.NET Remoting is highly customizable

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

Page 8: Brief Overview of.NET Remoting.NET Remoting is a Java RMI-like remote method invocation mechanism Infrastructure of.NET Remoting is highly customizable

Our Implementation

Page 9: Brief Overview of.NET Remoting.NET Remoting is a Java RMI-like remote method invocation mechanism Infrastructure of.NET Remoting is highly customizable

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

Page 10: Brief Overview of.NET Remoting.NET Remoting is a Java RMI-like remote method invocation mechanism Infrastructure of.NET Remoting is highly customizable

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

Page 11: Brief Overview of.NET Remoting.NET Remoting is a Java RMI-like remote method invocation mechanism Infrastructure of.NET Remoting is highly customizable

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

Page 12: Brief Overview of.NET Remoting.NET Remoting is a Java RMI-like remote method invocation mechanism Infrastructure of.NET Remoting is highly customizable

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

Page 13: Brief Overview of.NET Remoting.NET Remoting is a Java RMI-like remote method invocation mechanism Infrastructure of.NET Remoting is highly customizable

Progress

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

• TODO– Aggregation– Forwarding