brief overview of.net remoting.net remoting is a java rmi-like remote method invocation mechanism...
Post on 21-Dec-2015
220 views
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