Task Bag A Distributed System using the.NET Framework and Remoting Frank McCown Old Dominion University Spring 2005 CS 875 Distributed Systems - Final.

Slides:



Advertisements
Similar presentations
RPC Robert Grimm New York University Remote Procedure Calls.
Advertisements

CGS 3763 Operating Systems Concepts Spring 2013 Dan C. Marinescu Office: HEC 304 Office hours: M-Wd 11: :30 AM.
Chess Problem Solver Solves a given chess position for checkmate Problem input in text format.
.Net Remoting Pooja Panjala 06/17/10. Agenda What is.net Remoting? Explanation of terms Architecture Implementation of Remoting Sample example.net Security.
Author: Bill Buchanan. Authentication (to identify the clients of your application) Authorization (to provide access controls for those clients) Secure.
.NET Remoting. .Net Remoting Replaces DCOM (Distributed Component Object Model – a proprietary Microsoft technology for communication among software components.
EEC 688/788 Secure and Dependable Computing Lecture 12 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
1 Advanced Programming Topics - II Objectives:  Background  Remoting  Types of remoting  Marshalling  Farmatters  Channels.
Advanced Comm. between Distributed Objects 1 Advanced Communication Among Distributed Objects  Outline  Request synchronization  Request multiplicity.
Distributed Computing. Spring 2002Computer Networks Applications Networking Master-slave: A large, central computer controls small I/O devices Peer-to-peer.
Comparison of the RMI and the socket APIs
Distributed Systems Tutorial 2 -.NET Remoting. 2 What is Remoting?  Remoting allows you to pass objects or values across servers in different domains.
Server Architecture Models Operating Systems Hebrew University Spring 2004.
EEC 693/793 Special Topics in Electrical Engineering Secure and Dependable Computing Lecture 12 Wenbing Zhao Department of Electrical and Computer Engineering.
Scuola Superiore Sant’Anna Project Assignments Operating Systems.
1 CS 603: Advanced Topics in Distributed Systems Spring 2002 Professor Chris Clifton.
How Does Remote Method Invocation Work? –Systems that use RMI for communication typically are divided into two categories: clients and servers. A server.
An Introduction to Internetworking. Algorithm for client-server communication with UDP (connectionless) A SERVER A CLIENT Create a server-socket (listener)and.
Chapter 15 Remoting Yingcai Xiao. ASP.NET is for building traditional thin- client applications (Web applications). Such applications rely on browsers.
Chapter 26 Client Server Interaction Communication across a computer network requires a pair of application programs to cooperate. One application on one.
Copyright © 2003 ProsoftTraining. All rights reserved. Distributed Object Computing Using Java and CORBA.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
An program As a simple example of socket programming we can implement a program that sends to a remote site As a simple example of socket.
MapReduce: Simplified Data Processing on Large Clusters Jeffrey Dean and Sanjay Ghemawat.
Distributed Shared Memory Using The.NET Framework Thomas Seidmann Department of Computer Science and Engineering Faculty of Electrical Engineering and.
Distributed Communication via ASP.Net Web Services and.Net Remoting By Richard King.
Mostafa Abdollahi Mazandaran University Of Science And Technology January 2011.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
Microsoft Visual Studio 2010 Muhammad Zubair MS (FAST-NU) Experience: 5+ Years Contact:- Cell#:
11 Web Services. 22 Objectives You will be able to Say what a web service is. Write and deploy a simple web service. Test a simple web service. Write.
Distributed Real- Time in the RTSJ Andrew Borg. Presentation RMI – A brief introduction The RTSJ – A (very) brief introduction The DRTSJ – The 3 Levels.
Internet Applications and Network Programming Dr. Abraham Professor UTPA.
Livespace Architecture. Overview Livespace requirements Discussion of issues Livespace Architecture.
Presentation 23.NET Remoting Introduced. Ingeniørhøjskolen i Århus Slide 2 af 20 Outline.NET Framework introduced.NET Remoting strategies Architecture.
Dr. John P. Abraham Professor University of Texas Pan American Internet Applications and Network Programming.
Practical Byzantine Fault Tolerance
 2001 Prentice Hall, Inc. All rights reserved. 1 Chapter 23 — Simple Object Access Protocol (SOAP) and Microsoft BizTalk™ Outline 23.1Introduction 23.2Simple.
Outline Introduction (what’s it all about) Data-centric consistency Client-centric consistency Replica management Consistency protocols.
Java Commodity Grid (Java CogKit) Java CogKits allow developers to use commodity technologies such as Java or Python in programming the Grid based on Globus.
Fault Tolerance in CORBA and Wireless CORBA Chen Xinyu 18/9/2002.
Update on CORBA Support for Babel RMI Nanbor Wang and Roopa Pundaleeka Tech-X Corporation Boulder, CO Funded by DOE OASCR SBIR.
Chapter 12 Review Chad Hagstrom CS 310 Spring 2008.
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
 Course Overview Distributed Systems IT332. Course Description  The course introduces the main principles underlying distributed systems: processes,
S O A P ‘the protocol formerly known as Simple Object Access Protocol’ Team Pluto Bonnie, Brandon, George, Hojun.
Internet Applications (Cont’d) Basic Internet Applications – World Wide Web (WWW) Browser Architecture Static Documents Dynamic Documents Active Documents.
Presentation: RMI Continued 2 Using The Registry & Callbacks.
CSE 486/586, Spring 2012 CSE 486/586 Distributed Systems Replication Steve Ko Computer Sciences and Engineering University at Buffalo.
Distributed Computing in Life Science Research -Presenter: Yijian Yang
Development of a Distributed Task Bag Using CORBA Frank McCown Operating Systems – UALR Dec. 6, 2001.
Presentation 24 Ultra Simple.NET Remoting to CORBA bridge.
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 Java API for distributed computing.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
.NET Remoting. Remoting Introduction The process of programs or components interacting across certain boundaries either different processes or machines.
PERFORMANCE MANAGEMENT IMPROVING PERFORMANCE TECHNIQUES Network management system 1.
Jim Fawcett CSE775 – Distributed Objects Spring 2003
Primary-Backup Replication
Principles of Software Development
using System; namespace Demo01 { class Program
Broker in practice: Middleware
Object-Oriented Network Communication (OOMI)
Presentation 23 .NET Remoting Introduced
Advanced .NET Programming II 10th Lecture
File Transfer and access
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
CNT 4007C Project 2 Good morning, everyone. In this class, we will have a brief look at the project 2. Project 2 is basically the same with project 1.
Task-Farm Distributed Computing
Remote method invocation (RMI)
class PrintOnetoTen { public static void main(String args[]) {
Java Remote Method Invocation
Presentation transcript:

Task Bag A Distributed System using the.NET Framework and Remoting Frank McCown Old Dominion University Spring 2005 CS 875 Distributed Systems - Final Project

Introducing Remoting Framework for remote method invocations in a.NET application Similarities to CORBA and Java RMI Can integrate with non-.NET applications using SOAP over HTTP Replaces Microsoft’s DCOM More: Advanced.NET Remoting by Ingo Rammer and Mario Szpuszta brary/en-us/dndotnet/html/introremoting.asp brary/en-us/dndotnet/html/introremoting.asp

Remoting Example using C# Client Server RemoteHello TCP Binary

Server using System; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Tcp; namespace RemotingSamples { public class Server { public static void Main(string[] args) { ChannelServices.RegisterChannel(new TcpChannel(8085)); RemotingConfiguration.RegisterWellKnownServiceType( Type.GetType("RemotingSamples.RemoteHello,object"), “RemoteHello", WellKnownObjectMode.SingleCall); System.Console.WriteLine(“Server is running. Hit Enter to exit."); System.Console.ReadLine(); }

Remote Object using System; namespace RemotingSamples { public class RemoteHello : MarshalByRefObject { public String SayHello(String name) { return "Hello, " + name; }

Client using System; using System.Runtime.Remoting; using System.Runtime.Remoting.Channels; using System.Runtime.Remoting.Channels.Tcp; namespace RemotingSamples { public class Client { public static void Main(string[] args) { ChannelServices.RegisterChannel(new TcpChannel()); RemoteHello obj = (HelloServer)Activator.GetObject( typeof(RemotingSamples.RemoteHello), "tcp://serverX:8085/RemoteHello"); Console.WriteLine(obj.SayHello(“Bob")); }

Task Bag Overview Distributed system based on master/slave paradigm Master produces Tasks for Workers to complete Task Bag is a repository for Tasks and Results Task Master Worker Task Bag Tasks Results Tasks Worker

Task Bag Operations Task Masters void RegisterMaster(string masterName, TaskMasterCallback callback) void RemoveMaster(string masterName) void AddTask(Task task) int GetResult(string taskId) Workers void RegisterWorker(Worker worker) void RemoveWorker(string workerName) Task GetTask(string workerName) (asynchronous callback) void AddResult(Task task)

Tasks for Task Bag Any problem that can be divided into sub-tasks and solved in parallel: Searching for text in multiple files Finding a set of prime numbers Computing fractal images Performing matrix multiplication Etc.

Matrix Multiplication Each Result[R,C] is computed using row R from A and column C from B X= –8 – ABResult

System Operation Task Master Task BagWorker RegisterMaster RegisterWorker AddTask (1..N) GetTask Task Work on Task Submit Tasks and wait for results AddResult ReceiveMessage (callback) Receive result and display GetTask Task AddResult Startup Notify Master

Task Bag - Task Queue Tasks exist in one of 3 states: Unassigned (waiting for a Worker) Assigned (to a Worker) Complete (waiting for Task Master) Unassigned tasks wait in Task Queue Task Bag Task Incoming Tasks from Task Master Assigned to Worker Task Queue Task

Fault Tolerance Task Masters could die Task Bag keeps solved Tasks until Task Master is able to retrieve later Workers could die Tasks assigned to Workers are reassigned after some timeout period Task Bag could die Multiple replica Task Bags are used as backups if primary dies

Task Bag Backups Passive (primary-backup) replication Front Ends used to communicate to primary Task Bag Worker Task Master FE Task Bag Task Bag Task Bag Primary Backups FE

Passive Replication Operation Example 1. Worker requests for Task 2. FE contacts primary TB with request 3. Primary TB finds Task to assign to Worker 4. Primary TB informs backup TBs of Task assignment (assignment is ACKed) 5. Primary TB returns Task to Worker

Task Bag Goes Down If FE is unable to contact the primary TB, the next TB becomes the primary The new primary TB sends state changes to all backup TBs As new backup TBs come on line, primary TB transfers state to make new backup consistent with primary

Demo Startup Task Bag Startup Front End (same FE can be used for all Workers and Task Masters) Startup Task Master Startup Workers

Conclusion System is extremely robust Care must be taken to start applications in the correct order Software and slides can be obtained at