1NinjaScript Presentation CS264December 2, 1998 NinjaScript A Dataflow Language for Composing Network Services in Ninja Andrew Begel.

Slides:



Advertisements
Similar presentations
Message Passing Vs Distributed Objects
Advertisements

Communication Topics Jason Hill –
What is RMI? Remote Method Invocation –A true distributed computing application interface for Java, written to provide easy access to objects existing.
Dr. Kalpakis CMSC 621, Advanced Operating Systems. Fall 2003 URL: Distributed System Architectures.
RPC Robert Grimm New York University Remote Procedure Calls.
U NIVERSITY OF M ASSACHUSETTS, A MHERST Department of Computer Science Emery Berger University of Massachusetts Amherst Operating Systems CMPSCI 377 Lecture.
COS 461 Fall 1997 Where We Are u so far: networking u rest of semester: distributed computing –how to use networks to do interesting things –connection.
Fast Communication Firefly RPC Lightweight RPC  CS 614  Tuesday March 13, 2001  Jeff Hoy.
Remote Procedure CallCS-4513, D-Term Remote Procedure Call CS-4513 Distributed Computing Systems (Slides include materials from Operating System.
The road to reliable, autonomous distributed systems
Technical Architectures
Advanced Java Class Network Programming. Network Protocols Overview Levels of Abstraction –HTTP protocol: spoken by Web Servers and Web Clients –TCP/IP:
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
3D Object Retrieval Client-Server Project
Connecting LANs, Backbone Networks, and Virtual LANs
By: Joel Rodriguez.  International student from Mexico  Delicias, Chihuahua Mexico  Spanish  Sports and Music.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Web technologies: HTTP, CGI, PHP,Java applets)
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
Cli/Serv.: JXTA/151 Client/Server Distributed Systems v Objective –explain JXTA, a support environment for P2P services and applications ,
Secure Web Applications via Automatic Partitioning Stephen Chong, Jed Liu, Andrew C. Meyers, Xin Qi, K. Vikram, Lantian Zheng, Xin Zheng. Cornell University.
SEED Infotech Pvt. Ltd. 1 Networking in Java. SEED Infotech Pvt. Ltd. 2 Objectives of This Session Describe issues related to any type of network using.
A presentation by Dr. Robin Upton ( ). Available for download at Attribution – NonCommercial - ShareAlike.
+ A Short Java RMI Tutorial Usman Saleem
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
By Matt Deakyne, Adam Krasny, and Derek Meek. History of ICE ICE stands for Internet Communications Engine Object-oriented middleware allowed programmers.
11 September 2008CIS 340 # 1 Topics To examine the variety of approaches to handle the middle- interaction (continued) 1.RPC-based systems 2.TP monitors.
1 Module Objective & Outline Module Objective: After completing this Module, you will be able to, appreciate java as a programming language, write java.
Outline Overview Video Format Conversion Connection with An authentication Streaming media Transferring media.
Syzygy Design overview Distributed Scene Graph Master/slave application framework I/O Device Integration using Syzygy Scaling down: simulators and other.
Implementing Remote Procedure Calls Authored by Andrew D. Birrell and Bruce Jay Nelson Xerox Palo Alto Research Center Presented by Lars Larsson.
COP 4930 Computer Network Projects Summer C 2004 Prof. Roy B. Levow Lecture 3.
Integrating Digital Libraries by CORBA, XML and Servlet Integrating Digital Libraries by CORBA, XML and Servlet Wing Hang Cheung, Michael R. Lyu and Kam.
DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S
RMI remote method invocation. Traditional network programming The client program sends data to the server in some intermediary format and the server has.
IT 344: Operating Systems Winter 2008 Module 19 Networking & Remote Procedure Call (RPC) Chia-Chi Teng CTB 265.
CSE 451: Operating Systems Winter 2015 Module 22 Remote Procedure Call (RPC) Mark Zbikowski Allen Center 476 © 2013 Gribble, Lazowska,
COP 5611 Operating Systems Spring 2010 Dan C. Marinescu Office: HEC 439 B Office hours: M-Wd 2:00-3:00 PM.
Networking Fundamentals. Basics Network – collection of nodes and links that cooperate for communication Nodes – computer systems –Internal (routers,
 Problem Definition  Presented by Sushant and Alex Overview of the problem space Scenario Issues Example (plant care example) Discussion conclusion open.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
Graphene So what’s the most efficient way to spam all your Facebook friends? Team Adith Tekur (System Architect/Tester) Neha Rastogi (System Integrator)
Remote Procedure CallCS-502 Fall Remote Procedure Call (continued) CS-502, Operating Systems Fall 2007 (Slides include materials from Operating System.
McGraw-Hill©The McGraw-Hill Companies, Inc., 2004 Connecting Devices CORPORATE INSTITUTE OF SCIENCE & TECHNOLOGY, BHOPAL Department of Electronics and.
GBT SCA overview Slide 1-5 Work status Slide 6-10 Shuaib Ahmad Khan.
ISDS 4120 Project 1 DWAYNE CARRAL JR 3/27/15. There are seven layers which make up the OSI (Open Systems Interconnection Model) which is the model for.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
Nguyen Thi Thanh Nha HMCL by Roelof Kemp, Nicholas Palmer, Thilo Kielmann, and Henri Bal MOBICASE 2010, LNICST 2012 Cuckoo: A Computation Offloading Framework.
Client-server communication Prof. Wenwen Li School of Geographical Sciences and Urban Planning 5644 Coor Hall
Mobile IP THE 12 TH MEETING. Mobile IP  Incorporation of mobile users in the network.  Cellular system (e.g., GSM) started with mobility in mind. 
Java Distributed Computing
Java Distributed Object System
Review for Final, Fall 2010 Close book, Close notes
Java Distributed Computing
What is RMI? Remote Method Invocation
Knowledge Byte In this section, you will learn about:
Network and Distributed Programming in Java
CSE 451: Operating Systems Winter 2006 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Creating a Distributed System with RMI
CSE 451: Operating Systems Autumn 2003 Lecture 16 RPC
CSE 451: Operating Systems Winter 2007 Module 20 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
CSE 451: Operating Systems Winter 2004 Module 19 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Creating a Distributed System with RMI
CSE 451: Operating Systems Spring 2012 Module 22 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Autumn 2009 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
Creating a Distributed System with RMI
CSE 451: Operating Systems Autumn 2010 Module 21 Remote Procedure Call (RPC) Ed Lazowska Allen Center
CSE 451: Operating Systems Winter 2003 Lecture 16 RPC
Creating a Distributed System with RMI
CSE 451: Operating Systems Messaging and Remote Procedure Call (RPC)
Presentation transcript:

1NinjaScript Presentation CS264December 2, 1998 NinjaScript A Dataflow Language for Composing Network Services in Ninja Andrew Begel

2NinjaScript Presentation CS264December 2, 1998 Overview What is Ninja? What’s the problem? How can NinjaScript help? NinjaScript implementation Future Work

3NinjaScript Presentation CS264December 2, 1998 What is Ninja? A distributed systems architecture created by Brewer, Joseph, Katz, Kubi, and lots of graduate students Fault-tolerant, highly-available services exist in the network ether (takes ideas from HotBot) Currently based on Java with JavaRMI for communications.

4NinjaScript Presentation CS264December 2, 1998 What is the problem? We want to create applications that use many services. Existing systems like CORBA, DCOM, ILU, or JavaRMI provide client-server connections between pairs of nodes. That’s not enough!

5NinjaScript Presentation CS264December 2, 1998 Pathways are the answer. We want to develop compositions of multiple services. Individual connections have no knowledge of the bigger picture. Benefits from the path metaphor: –Can ask questions about the path: congestion, bottlenecks, bandwidth, latency, admission control, security –Language Benefits: Optimizations (pipelining, commutative services), Debugging

6NinjaScript Presentation CS264December 2, 1998 NinjaScript It’s a path-based programming language! Think of a big graph with a start node and some finish nodes. Several language metaphors wrapped up in one. –Lambda Calculus –Multiple, Conditional Outputs –Late Binding –Subroutines –Soft State –Type Safety

7NinjaScript Presentation CS264December 2, 1998 An Example Program Voice-Activated Light Switch The basic path. (To all other nodes, the interpreter is a black box.)

8NinjaScript Presentation CS264December 2, 1998 The Interpreter The internals of the interpreter. It has a subroutine call to the base station and ultimately outputs a command to the light switch.

9NinjaScript Presentation CS264December 2, 1998 Implementation Path program is description of nodes and edges of a graph. Nodes will run services that implement published interfaces. Edges have properties such as reliability, in- order/out-of-order transmission, buffering, flow control.

10NinjaScript Presentation CS264December 2, 1998 Path Threads A path thread consists of a 4-tuple –unique ID –graph description: nodes (service name, bootstrap code) edges (source, sink, properties) start node and finish nodes –current state of execution (state, IP address, method signature) –data payload (function arguments)

11NinjaScript Presentation CS264December 2, 1998 Node Operation Upon receiving a packet, check the unique ID. If it’s new, create a new thread, else restore the old thread to respond to the data. Unpack the packet data, and check the payload for function arguments. Unpack these and store in the thread. Invoke the method identified by the current state.

12NinjaScript Presentation CS264December 2, 1998 Node Operation (2) After the method returns its arguments, package them up in a new data payload. Consult the graph description to determine the next state. If this is a finish node, exit. Otherwise, package up a new packet and send it to the next nodes.

13NinjaScript Presentation CS264December 2, 1998 Extra Features (not done yet) Subroutines Conditional Output –Enables more specific control over which outputs go where, if they go anywhere at all. Soft State –Path local –Node global

14NinjaScript Presentation CS264December 2, 1998 Future Work Make the whole thing work. Incorporate multi-language service support in the compiler backend. Create alternate graphical front-end. Integrate existing transport layers (IIOP, RMI) and alternate transport protocols. Develop new node code format (currently using Solaris Sparc shared libraries). Develop path-based optimization, debugging and diagnostic tools. Support paths as first-class objects (exception handling).