Middleware-Konzepte. Tuple Spaces. Dr. Gero Mühl
|
|
- Lawrence Haynes
- 1 years ago
- Views:
Transcription
1 Middleware-Konzepte Tuple Spaces Dr. Gero Mühl Kommunikations- und Betriebssysteme Fakultät für Elektrotechnik und Informatik Technische Universität Berlin
2 Agenda > Introduction > Linda Tuple Spaces > JavaSpaces Middleware-Konzepte Gero Mühl 2
3 Coordination > Coordination is prevalent in many areas > Economy, Biology, Psychology, Informatics, in daily life > Coordination is managing dependencies between activities Coordination is the additional information processing performed when multiple, connected actors pursue goals that a single actor pursuing the same goal would not perform., (Malone and Crowston) Middleware-Konzepte Gero Mühl 3
4 Linda > Linda is a so-called coordination language > Developed in the early 80s at the University of Yale > Application viewed as a collection of cooperating processes > Eases developing parallel and distributed programs > Tuple space is a multiset of tuples > Tuples are sequences of typed fields > E.g., < Hans, 42> > Processes communicate only by writing and reading tuples in and out of the shared tuple space Space similar to a shared memory or a relational database Middleware-Konzepte Gero Mühl 4
5 Linda (contd.) > Communication is indirect and anonymous Space decoupling > Also called generative communication because the lifetime of a tuple is independent of the process that has written it to the tuplespace Time decoupling Process Process Process Tuple Tuple Process Tuple Tuple Tuple Process Middleware-Konzepte Gero Mühl 5
6 Tuples Space Operations > out out( Peter, 57) > Puts a tuple into the space; non-blocking > eval eval(5, f(5)) > Similar to out > Creates a concurrent process called active tuple that evaluates the function and inserts the resulting (passive) tuple into the space Middleware-Konzepte Gero Mühl 6
7 Tuples Space Operations (contd.) > in in( Peter,?age) > Retrieves and removes a matching tuple from the space > Blocks if there is no matching tuple > Order in which tuples are retrieved is non-deterministic > A template, which consists of actuals and formals, is used for matching > A tuple matches a template iff 1. Both have the same number of fields 2. The actuals in the template equal the values in the tuple 3. The types of all formals equals the type of the proper values > rd rd( Peter,?age) > The same as in except that the tuple remains in the space Middleware-Konzepte Gero Mühl 7
8 Implementing Message Passing and Semaphores > Message passing > Trivial with out and in > Sender: out(receiver_id, sender_id, message) > Receiver: in(receiver_id,?sender_id,?message) > Semaphores > Tuple with one field representing the unique id of the semaphore can be used > Initialization: out(semid) > Give: out(semid) > Take: in(semid) Middleware-Konzepte Gero Mühl 8
9 Implementing Remote Procedure Calls (RPCs) Client out(p, req, cid, out-actuals) in (P, rep, cid,?in-formals) Server in (P, req,?who,?in-formals) body of procedure P out(p, rep, who, out-actuals) > Client and server are decoupled in time and space > More specific example: Client out( Square, req, me, 10) in ( Square, rep, me,?r) Server in( Square, req,?who,?x) r := x*x out( Square, rep, who, r) Middleware-Konzepte Gero Mühl 9
10 Distributed Data Structures > Data structures can be accessed by multiple processes simultaneously > E.g., an array can be represented as a set of 3-tuples > (name, index, value) > Elements can be changed in the following way > in( A, i,?v) v := out( A, i, v) > A matrix can be represented as a set of 4-tuples > (name, line, column, value) > Access to data items (i.e., tuples) is serialized > No concurrent access to individual tuples if in/out is used but deadlocks can occur if processes run concurrently Middleware-Konzepte Gero Mühl 10
11 Linda Implementations > C, C++, Java, Modula2, Pascal, Ada, Prolog, Fortran, Lisp, Eiffel, Smalltalk, ML > Although programming model is simple, there exist many non-trivial problems, especially with distributed tuple spaces > E.g., where are the tuples stored? > Load balancing > eval() implementation > Optimizations Middleware-Konzepte Gero Mühl 11
12 Extensions to Linda > Linda has led to many similar coordination languages > They often define additional operations > inp() non-blocking in(); returns whether tuple was found > rdp() non-blocking rd(); returns whether tuple was found > copy-collect(ts1, ts2, template) copies tuples form one space to another > Blocking operations with timeouts > Multiple tuplespaces > Security mechanisms > Events > More expressive matching algorithms > Fault tolerance > Transactions > Persistence Middleware-Konzepte Gero Mühl 12
13 Linda vs. Database > Linda and databases have much in common > Tuple-oriented model > Relation very similar to a subspace > Linda puts emphasize on coordination > Simple matching using templates > Normally either exact match or don t care for each field > Tuples cannot directly be manipulated in the space > Processes can be created easily > Linda can be implemented on top of a database Middleware-Konzepte Gero Mühl 13
14 Linda vs. Database (contd.) > Databases emphasize storing, manipulating, and querying data (most common is the relational data model RDBMS) > Rich query language (e.g., use of join operator, range queries) > Tuples can directly be manipulated (update statements) > Tuples can be inserted and deleted (insert and delete statements) > No native blocking select statements > Can possibly be emulated with stored procedures and triggers > Many optimizations used (query optimization, indexing techniques) > Good transaction support (data locking, deadlock detection etc.) Middleware-Konzepte Gero Mühl 14
15 Discussion of Linda > Simple model easy to learn > Well suited to implement problems in the area of distributed and parallel computing > Scalability problems due to the in() operation! Middleware-Konzepte Gero Mühl 15
16 JavaSpaces > Part of Jini > Current Specification: Java Spaces2.2 Middleware-Konzepte Gero Mühl 16
17 Linda vs. JavaSpaces Linda Tuplespace Tuple Formal Actual out rd in JavaSpaces JavaSpace Entry Wildcard Value write read take Middleware-Konzepte Gero Mühl 17
18 Linda vs. JavaSpaces (contd.) > JavaSpaces have no eval() operation > New operations > readifexists() non-blocking read() > takeifexists() non-blocking take() > notify() listener is notified if matching tuple is inserted > For blocking operations, a timeout can be specified > Applications can access multiple spaces simultaneously Middleware-Konzepte Gero Mühl 18
19 Implementation of Entries > Entries are Java objects implementing the Entry interface > All fields must be public > Fields can be arbitrary objects but no primitive types > Entry must have an empty constructor > Templates are also entries, but some fields may be null public interface Entry extends java.io.serializable {}; public class SharedVar implements Entry { public String name; public Integer value; public SharedVar() {} // Empty constructor public SharedVar(String n, Integer v) { name = n; value = v; } } Middleware-Konzepte Gero Mühl 19
20 Entry Matching > Space is searched for entries that > have the same type (or subtype) as the template and > which fields comply with the fields of the template > The value of every field in the template which is not null must be equal to the value of the corresponding field of the entry > If a value of a field in the template is null, the value of the corresponding field of the entry does not matter (wildcard) > Fields are tested for equality using their serialized form (array of bytes) > Allows to test fields for equality without requiring a properly implemented equals() method > Prohibits more expressive tests (e.g., less than) Middleware-Konzepte Gero Mühl 20
21 Entry Matching Details > Every Entry is converted to an EntryRep > For every public field, an EntryRep stores the field s value in a MarshalledObject and its name in a String > An MarshalledObject essentially contains a field serialized to an byte[] > Testing two instances of MarshalledObject for equality > If the length of the byte arrays are not equal, they are not equal > Otherwise, the byte arrays are compared byte by byte public class EntryRep implements java.io.serializable { // marshalled fields (null == wildcard) MarshalledObject[] values; // marshalled field names String[] names; } Middleware-Konzepte Gero Mühl 21
22 JavaSpaces Usage Example JavaSpace space = SpaceAccessor.getSpace(); SharedVar sharedvar = new SharedVar( v1, new Integer(10)); space.write(sharedvar, null, Lease.FOREVER); // no TX SharedVar template = new SharedVar(); Template.name = v1 ; SharedVar result = (SharedVar)space.read(template, null, Long.MAX_VALUE); Integer value = result.value; SharedVar result = (SharedVar)space.take(template, null, Long.MAX_VALUE); result.value++; space.write(result, null, Lease.FOREVER); Middleware-Konzepte Gero Mühl 22
23 Using Jini Services: Leasing, Transactions, Events > JavaSpaces are build upon Jini > Space registered as Jini service Jini lookup service used to lookup space > Leasing mechanism > A lifetime can be associated with entries > Entries must be periodically refreshed > Otherwise they are removed from the space > Transactions > Multiple operations across multiple spaces can be bundled into an atomic unit of work > Distributed events > notify() > Implemented using Java RMI Not very scalable! Middleware-Konzepte Gero Mühl 23
24 Bibliography 1. N. Carriero and D. Gelernter. Linda in Context. Communication of the ACM, 32(4): , Apr N. Carriero and D. Gelernter. How to Write Parallel Programs: A Guide to the Perplexed. ACM Computing Surveys, 21(3): , Sept D. Gelernter. Generative Communication in Linda. ACM Transactions on Programming Languages and Systems, 7(1): , Jan Sun Microsystems, Inc. JavaSpaces Service Specification Version 2.0, June Middleware-Konzepte Gero Mühl 24
LINDA. The eval operation resembles out, except that it creates an active tuple. For example, if fcn is a function, then
LINDA Linda is different, which is why we've put it into a separate chapter. Linda is not a programming language, but a way of extending ( in principle ) any language to include parallelism IMP13, IMP14.
Indirect Communication
Indirect Communication Vladimir Vlassov and Johan Montelius KTH ROYAL INSTITUTE OF TECHNOLOGY Time and Space In direct communication sender and receivers exist in the same time and know of each other.
Two Phase Commit Protocol. Distributed Systems. Remote Procedure Calls (RPC) Network & Distributed Operating Systems. Network OS.
A distributed system is... Distributed Systems "one on which I cannot get any work done because some machine I have never heard of has crashed". Loosely-coupled network connection could be different OSs,
CHAPTER - 4 REMOTE COMMUNICATION
CHAPTER - 4 REMOTE COMMUNICATION Topics Introduction to Remote Communication Remote Procedural Call Basics RPC Implementation RPC Communication Other RPC Issues Case Study: Sun RPC Remote invocation Basics
Lecture 5: Object Interaction: RMI and RPC
06-06798 Distributed Systems Lecture 5: Object Interaction: RMI and RPC Distributed Systems 1 Recap Message passing: send, receive synchronous versus asynchronous No global Time types of failure socket
Chapter 1 Coordination Mechanisms in Complex Software Systems
Chapter 1 Coordination Mechanisms in Complex Software Systems Richard Mordinyi and Eva Kühn 1 Abstract. Software developers have to deal with software systems which are usually composed of distributed,
Inter-process communication (IPC)
Inter-process communication (IPC) We have studied IPC via shared data in main memory. Processes in separate address spaces also need to communicate. Consider system architecture both shared memory and
Programming Language Concepts 1982, 1987, Outline. Period
Programming Language Concepts 1982, 1987, 1997 Mehdi Jazayeri Distributed Systems Group Technische Universität Wien mjazayeri@alum.mit.edu http://www.infosys.tuwien.ac.at Outline Computer science environment
SFDV3006 Concurrent Programming
SFDV3006 Concurrent Programming Lecture 6 Concurrent Architecture Concurrent Architectures Software architectures identify software components and their interaction Architectures are process structures
Middleware-Konzepte. Multicast. Dr. Gero Mühl
Middleware-Konzepte Multicast Dr. Gero Mühl Kommunikations- und Betriebssysteme Fakultät für Elektrotechnik und Informatik Technische Universität Berlin Agenda > Introduction > IPv4 Multicast > Reliability
Publish & Subscribe Larry Rudolph May 3, 2006 SMA 5508 & MIT Pervasive Computing MIT SMA 5508 Spring 2006 Larry Rudolph
Publish & Subscribe Larry May 3, 2006 SMA 5508 & MIT 6.883 1 Agents An agent is an autonomous program. It executes code and can communicate with other agents. All the components in a pervasive computing
IT 540 Operating Systems ECE519 Advanced Operating Systems
IT 540 Operating Systems ECE519 Advanced Operating Systems Prof. Dr. Hasan Hüseyin BALIK (5 th Week) (Advanced) Operating Systems 5. Concurrency: Mutual Exclusion and Synchronization 5. Outline Principles
Types II. Hwansoo Han
Types II Hwansoo Han Arrays Most common and important composite data types Homogeneous elements, unlike records Fortran77 requires element type be scalar Elements can be any type (Fortran90, etc.) A mapping
PARALLEL PROGRAM EXECUTION SUPPORT IN THE JGRID SYSTEM
PARALLEL PROGRAM EXECUTION SUPPORT IN THE JGRID SYSTEM Szabolcs Pota 1, Gergely Sipos 2, Zoltan Juhasz 1,3 and Peter Kacsuk 2 1 Department of Information Systems, University of Veszprem, Hungary 2 Laboratory
Logic Programming II & Revision
Logic Programming II & Revision Gerardo Schneider Department of Informatics University of Oslo 1 Some corrections (1) hsiblings(x,y) :- child(x,parent), child(y,parent), X \== Y, child(x,parent1), child(y,parent2),
A Survey of Concurrency Constructs. Ted Leung Sun
A Survey of Concurrency Constructs Ted Leung Sun Microsystems ted.leung@sun.com @twleung 16 threads 128 threads Today s model Threads Program counter Own stack Shared Memory Locks Some of the problems
Chapter 18 Distributed Systems and Web Services
Chapter 18 Distributed Systems and Web Services Outline 18.1 Introduction 18.2 Distributed File Systems 18.2.1 Distributed File System Concepts 18.2.2 Network File System (NFS) 18.2.3 Andrew File System
05 Indirect Communication
05 Indirect Communication Group Communication Publish-Subscribe Coulouris 6 Message Queus Point-to-point communication Participants need to exist at the same time Establish communication Participants need
Distributed Objects and Remote Invocation. Programming Models for Distributed Applications
Distributed Objects and Remote Invocation Programming Models for Distributed Applications Extending Conventional Techniques The remote procedure call model is an extension of the conventional procedure
Programmazione Avanzata e Paradigmi Ingegneria e Scienze Informatiche - UNIBO a.a 2013/2014 Lecturer: Alessandro Ricci
v1.0 20140421 Programmazione Avanzata e Paradigmi Ingegneria e Scienze Informatiche - UNIBO a.a 2013/2014 Lecturer: Alessandro Ricci [module 3.1] ELEMENTS OF CONCURRENT PROGRAM DESIGN 1 STEPS IN DESIGN
Course Content. Object-Oriented Databases. Objectives of Lecture 6. CMPUT 391: Object Oriented Databases. Dr. Osmar R. Zaïane. University of Alberta 4
Database Management Systems Fall 2001 CMPUT 391: Object Oriented Databases Dr. Osmar R. Zaïane University of Alberta Chapter 25 of Textbook Course Content Introduction Database Design Theory Query Processing
Middleware-Integration of Small Devices
Middleware-Integration of Small Devices Michael Mock Fraunhofer-Institute Autonomous Intelligent Systems 53754 St. Augustin michael.mock@ais.fraunhofer.de Stefan Couturier B-IT Bonn-Aachen International
Chapter 5 Concurrency: Mutual Exclusion and Synchronization
Operating Systems: Internals and Design Principles Chapter 5 Concurrency: Mutual Exclusion and Synchronization Seventh Edition By William Stallings Designing correct routines for controlling concurrent
Structured communication (Remote invocation)
Prof. Dr. Claudia Müller-Birn Institute for Computer Science, Networked Information Systems Structured communication (Remote invocation) Nov 8th, 2011 Netzprogrammierung (Algorithmen und Programmierung
T NAF: Jini & EJB
T-110.453 NAF: Jini & EJB Dr. Pekka Nikander Chief Scientist, Ericsson Research NomadicLab Adjunct Professor (docent), Helsinki University of Technology Lecture outline Introduction Jini model Lookup Leases
Linda and TupleSpaces. Prabhaker Mateti
Linda and TupleSpaces Prabhaker Mateti Linda Overview an example of Asynchronous Message Passing send never blocks (i.e., implicit infinite capacity buffering) ignores the order of send Associative abstract
A Formal Definition of RESTful Semantic Web Services. Antonio Garrote Hernández María N. Moreno García
A Formal Definition of RESTful Semantic Web Services Antonio Garrote Hernández María N. Moreno García Outline Motivation Resources and Triple Spaces Resources and Processes RESTful Semantic Resources Example
COMMUNICATION IN DISTRIBUTED SYSTEMS
Distributed Systems Fö 3-1 Distributed Systems Fö 3-2 COMMUNICATION IN DISTRIBUTED SYSTEMS Communication Models and their Layered Implementation 1. Communication System: Layered Implementation 2. Network
Advanced Topics in Operating Systems
Advanced Topics in Operating Systems MSc in Computer Science UNYT-UoG Dr. Marenglen Biba 8-9-10 January 2010 Lesson 10 01: Introduction 02: Architectures 03: Processes 04: Communication 05: Naming 06:
CORBA (Common Object Request Broker Architecture)
CORBA (Common Object Request Broker Architecture) René de Vries (rgv@cs.ru.nl) Based on slides by M.L. Liu 1 Overview Introduction / context Genealogical of CORBA CORBA architecture Implementations Corba
Organization of Programming Languages (CSE452) Why are there so many programming languages? What makes a language successful?
Organization of Programming Languages (CSE452) Instructor: Dr. B. Cheng Fall 2004 1 Why are there so many programming languages? Evolution -- we've learned better ways of doing things over time Socio-economic
COORDINATION MODELS AND LANGUAGES
GEORGE A. PAPADOPOULOS Department of Computer Science University of Cyprus Nicosia, Cyprus FARHAD ARBAB Department of Software Engineering CWI Amsterdam, The Netherlands Abstract A new class of models,
Distributed Middleware. Distributed Objects
Distributed Middleware Distributed objects DCOM CORBA EJBs Jini Lecture 25, page 1 Distributed Objects Figure 10-1. Common organization of a remote object with client-side proxy. Lecture 25, page 2 Distributed
Abstract Memory The TupleSpace
Abstract Memory The TupleSpace Linda, JavaSpaces, Tspaces and PastSet Tuple Space Main idea: Byte ordered memory is a product of hardware development, not programmers needs Remodel memory to support the
Outline. Interprocess Communication. Interprocess Communication. Communication Models: Message Passing and shared Memory.
Eike Ritter 1 Modified: October 29, 2012 Lecture 14: Operating Systems with C/C++ School of Computer Science, University of Birmingham, UK Outline 1 2 3 Shared Memory in POSIX systems 1 Based on material
An Activation Record for Simple Subprograms. Activation Record for a Language with Stack-Dynamic Local Variables
Activation Records The storage (for formals, local variables, function results etc.) needed for execution of a subprogram is organized as an activation record. An Activation Record for Simple Subprograms.
DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES
DISTRIBUTED COMPUTER SYSTEMS ARCHITECTURES Dr. Jack Lange Computer Science Department University of Pittsburgh Fall 2015 Outline System Architectural Design Issues Centralized Architectures Application
CSCI 3155: Principles of Programming Languages Exam preparation #1 2007
CSCI 3155: Principles of Programming Languages Exam preparation #1 2007 Exercise 1. Consider the if-then-else construct of Pascal, as in the following example: IF 1 = 2 THEN PRINT X ELSE PRINT Y (a) Assume
RMI: Design & Implementation
RMI: Design & Implementation Operating Systems RMI 1 Middleware layers Applications, services RMI and RPC request-reply protocol marshalling and external data representation Middleware layers UDP and TCP
A Strategic Comparison of Component Standards
A Strategic Comparison of Component Standards Prof. Dr. Wolfgang Pree Department of Computer Science cs.uni-salzburg.at Copyright Wolfgang Pree, All Rights Reserved Contents What is a component? COM ::
Performance Throughput Utilization of system resources
Concurrency 1. Why concurrent programming?... 2 2. Evolution... 2 3. Definitions... 3 4. Concurrent languages... 5 5. Problems with concurrency... 6 6. Process Interactions... 7 7. Low-level Concurrency
Chapter 13 Topics. Introduction. Introduction
Chapter 13 Topics Introduction Introduction to Subprogram-Level Concurrency Semaphores Monitors Java Threads C# Threads Statement-Level Concurrency Copyright 2006 Pearson Addison-Wesley. All rights reserved.
CSE Traditional Operating Systems deal with typical system software designed to be:
CSE 6431 Traditional Operating Systems deal with typical system software designed to be: general purpose running on single processor machines Advanced Operating Systems are designed for either a special
NFS: Naming indirection, abstraction. Abstraction, abstraction, abstraction! Network File Systems: Naming, cache control, consistency
Abstraction, abstraction, abstraction! Network File Systems: Naming, cache control, consistency Local file systems Disks are terrible abstractions: low-level blocks, etc. Directories, files, links much
Overview. Distributed Systems. Distributed Software Architecture Using Middleware. Components of a system are not always held on the same host
Distributed Software Architecture Using Middleware Mitul Patel 1 Overview Distributed Systems Middleware What is it? Why do we need it? Types of Middleware Example Summary 2 Distributed Systems Components
DS 2009: middleware. David Evans
DS 2009: middleware David Evans de239@cl.cam.ac.uk What is middleware? distributed applications middleware remote calls, method invocations, messages,... OS comms. interface sockets, IP,... layer between
Fifth Generation CS 4100 LISP. What do we need? Example LISP Program 11/13/13. Chapter 9: List Processing: LISP. Central Idea: Function Application
Fifth Generation CS 4100 LISP From Principles of Programming Languages: Design, Evaluation, and Implementation (Third Edition, by Bruce J. MacLennan, Chapters 9, 10, 11, and based on slides by Istvan Jonyer
Today: More Case Studies DCOM
Today: More Case Studies DCOM Jini Lecture 24, page 1 DCOM Distributed Component Object Model Microsoft s object model (middleware) Lecture 24, page 2 DCOM: History Successor to COM Developed to support
Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008
Distributed Systems Theory 4. Remote Procedure Call October 17, 2008 Client-server model vs. RPC Client-server: building everything around I/O all communication built in send/receive distributed computing
Chapter 5 Concurrency: Mutual Exclusion. and. Synchronization. Operating Systems: Internals. and. Design Principles
Operating Systems: Internals and Design Principles Chapter 5 Concurrency: Mutual Exclusion and Synchronization Seventh Edition By William Stallings Designing correct routines for controlling concurrent
Interconnection of Distributed Components: An Overview of Current Middleware Solutions *
Interconnection of Distributed Components: An Overview of Current Middleware Solutions * Susan D. Urban, Suzanne W. Dietrich, Akash Saxena, and Amy Sundermier Arizona State University Department of Computer
main read Identical static threads Dynamic threads with Concurrent and
CHAPTER 3: CONCURRENT PROCESSES AND PROGRAMMING Chapter outline Thread implementations Process models The client/server model Time services Language constructs for synchronization Concurrent programming
Operating System Support
Operating System Support Dr. Xiaobo Zhou Adopted from Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, Addison-Wesley 2005 1 Learning Objectives Know what a modern
Thanks! Review. Course Goals. General Themes in this Course. There are many programming languages. Teaching Assistants. John Mitchell.
1 CS 242 Thanks! Review John Mitchell Final Exam Wednesday Dec 8 8:30 11:30 AM Gates B01, B03 Teaching Assistants Mike Cammarano TJ Giuli Hendra Tjahayadi Graders Andrew Adams Kenny Lau Vishal Patel and
Middleware for Heterogeneous and Distributed Information Systems Sample Solution Exercise Sheet 5
AG Heterogene Informationssysteme Prof. Dr.-Ing. Stefan Deßloch Fachbereich Informatik Technische Universität Kaiserslautern Middleware for Heterogeneous and Distributed Information Systems Sample Solution
Remote Method Invocation Benoît Garbinato
Remote Method Invocation Benoît Garbinato 1 Fundamental idea (1) Rely on the same programming paradigm for distributed applications as for centralized applications In procedural languages, we will rely
Reminder from last time
Concurrent systems Lecture 5: Concurrency without shared data, composite operations and transactions, and serialisability DrRobert N. M. Watson 1 Reminder from last time Liveness properties Deadlock (requirements;
Distributed KIDS Labs 1
Distributed Databases @ KIDS Labs 1 Distributed Database System A distributed database system consists of loosely coupled sites that share no physical component Appears to user as a single system Database
Outline. Chapter 4 Remote Procedure Calls and Distributed Transactions. Remote Procedure Call. Distributed Transaction Processing.
Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 4 Remote Procedure Calls and Distributed Transactions Outline
Early computers (1940s) cost millions of dollars and were programmed in machine language. less error-prone method needed
Chapter 1 :: Programming Language Pragmatics Michael L. Scott Early computers (1940s) cost millions of dollars and were programmed in machine language machine s time more valuable than programmer s machine
Exploiting Differentiated Tuple Distribution in Shared Data Spaces
Exploiting Differentiated Tuple Distribution in Shared Data Spaces Giovanni Russello 1, Michel Chaudron 1, Maarten van Steen 2 1 Eindhoven University of Technology 2 Vrije Universiteit Amsterdam Abstract.
Data Informatics. Seon Ho Kim, Ph.D.
Data Informatics Seon Ho Kim, Ph.D. seonkim@usc.edu HBase HBase is.. A distributed data store that can scale horizontally to 1,000s of commodity servers and petabytes of indexed storage. Designed to operate
Programming Languages
Chapter 1 :: Introduction Programming Language Pragmatics Michael L. Scott Programming Languages What programming languages can you name? Which do you know? 1 Introduction Why are there so many programming
Homework #2 Nathan Balon CIS 578 October 31, 2004
Homework #2 Nathan Balon CIS 578 October 31, 2004 1 Answer the following questions about the snapshot algorithm: A) What is it used for? It used for capturing the global state of a distributed system.
Multiprocessors 2007/2008
Multiprocessors 2007/2008 Abstractions of parallel machines Johan Lukkien 1 Overview Problem context Abstraction Operating system support Language / middleware support 2 Parallel processing Scope: several
22c:111 Programming Language Concepts. Fall Types I
22c:111 Programming Language Concepts Fall 2008 Types I Copyright 2007-08, The McGraw-Hill Company and Cesare Tinelli. These notes were originally developed by Allen Tucker, Robert Noonan and modified
SOFTWARE ARCHITECTURE 6. LISP
1 SOFTWARE ARCHITECTURE 6. LISP Tatsuya Hagino hagino@sfc.keio.ac.jp slides URL https://vu5.sfc.keio.ac.jp/sa/ 2 Compiler vs Interpreter Compiler Translate programs into machine languages Compilers are
5 Distributed Objects: The Java Approach
5 Distributed Objects: The Java Approach Main Points Why distributed objects Distributed Object design points Java RMI Dynamic Code Loading 5.1 What s an Object? An Object is an autonomous entity having
Multithreading and Interactive Programs
Multithreading and Interactive Programs CS160: User Interfaces John Canny. Last time Model-View-Controller Break up a component into Model of the data supporting the App View determining the look of the
An Overview of the BLITZ System
An Overview of the BLITZ System Harry H. Porter III Department of Computer Science Portland State University Introduction The BLITZ System is a collection of software designed to support a university-level
Introduction and Overview Socket Programming Higher-level interfaces Final thoughts. Network Programming. Samuli Sorvakko/Nixu Oy
Network Programming Samuli Sorvakko/Nixu Oy Telecommunications software and Multimedia Laboratory T-110.4100 Computer Networks October 16, 2008 Agenda 1 Introduction and Overview Introduction 2 Socket
03 Remote invoaction. Request-reply RPC. Coulouris 5 Birrel_Nelson_84.pdf RMI
03 Remote invoaction Request-reply RPC Coulouris 5 Birrel_Nelson_84.pdf RMI 2/23 Remote invocation Mechanisms for process communication on a Built on top of interprocess communication primitives Lower
A Model For Describing and Executing Test Cases Using XML and Jini/JavaSpaces
MASTER OF SCIENCE THESIS A Model For Describing and Executing Test Cases Using XML and Jini/JavaSpaces By Roland Ljungh Stockholm, November 2000 Examiner and Adviser: Björn Pehrson and Vladimir Vlassov
Lecture 5: RMI etc. Servant. Java Remote Method Invocation Invocation Semantics Distributed Events CDK: Chapter 5 TVS: Section 8.3
Lecture 5: RMI etc. Java Remote Method Invocation Invocation Semantics Distributed Events CDK: Chapter 5 TVS: Section 8.3 CDK Figure 5.7 The role of proxy and skeleton in remote method invocation client
Database Management
Database Management - 2011 Model Answers 1. a. A data model should comprise a structural part, an integrity part and a manipulative part. The relational model provides standard definitions for all three
The Google File System (GFS)
1 The Google File System (GFS) CS60002: Distributed Systems Antonio Bruto da Costa Ph.D. Student, Formal Methods Lab, Dept. of Computer Sc. & Engg., Indian Institute of Technology Kharagpur 2 Design constraints
CUDA GPGPU Workshop 2012
CUDA GPGPU Workshop 2012 Parallel Programming: C thread, Open MP, and Open MPI Presenter: Nasrin Sultana Wichita State University 07/10/2012 Parallel Programming: Open MP, MPI, Open MPI & CUDA Outline
Subprograms. Akim D le Étienne Renault Roland Levillain EPITA École Pour l Informatique et les Techniques Avancées
Subprograms Akim Demaille Étienne Renault Roland Levillain first.last@lrde.epita.fr EPITA École Pour l Informatique et les Techniques Avancées June 1, 2017 Subprograms 1 Routines 2 Argument passing 3 Functions
Distributed Systems. Lehrstuhl für Informatik IV RWTH Aachen. Organisation. Classification of the lecture. Literature
Organisation Distributed Systems Lehrstuhl für Informatik IV RWTH Aachen Prof. Dr. Otto Spaniol Dipl.-Inform. Dirk Thißen Exercises about all 14 days Wednesday, 15.30 17.00 Room AH III, RWTH Aachen Teacher-centred
Types. Chapter Six Modern Programming Languages, 2nd ed. 1
Types Chapter Six Modern Programming Languages, 2nd ed. 1 A Type Is A Set int n; When you declare that a variable has a certain type, you are saying that the values the variable can have are elements of
The Provers of ESC/Java2
Original version by Joseph Kiniry, with assistance from Cesare Tinelli and Silvio Ranise beginning on 21 June 2004. Current editor Joseph Kiniry. This document describes the provers used by ESC/Java2.
Chapter 4 Remote Procedure Calls and Distributed Transactions
Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 4 Remote Procedure Calls and Distributed Transactions Outline
CABRI, LETIZIA LEONARDI, AND FRANCO ZAMBONELLI
MOBILE AGENTS MARS: A Programmable Coordination Architecture for Mobile Agents GIACOMO CABRI, LETIZIA LEONARDI, AND FRANCO ZAMBONELLI University of Modena and Reggio Emilia Traditional distributed applications
So what does studying PL buy me?
So what does studying PL buy me? Enables you to better choose the right language but isn t that decided by libraries, standards, and my boss? Yes. Chicken-and-egg. My goal: educate tomorrow s tech leaders
Lime: A Coordination Model and Middleware Supporting Mobility of Hosts and Agents
Lime: A Coordination Model and Middleware Supporting Mobility of Hosts and Agents AMY L. MURPHY University of Lugano, Switzerland GIAN PIETRO PICCO Politecnico di Milano, Italy and GRUIA-CATALIN ROMAN
CSE 504. Expression evaluation. Expression Evaluation, Runtime Environments. One possible semantics: Problem:
Expression evaluation CSE 504 Order of evaluation For the abstract syntax tree + + 5 Expression Evaluation, Runtime Environments + + x 3 2 4 the equivalent expression is (x + 3) + (2 + 4) + 5 1 2 (. Contd
Concepts in Programming Languages
Concepts in Programming Languages Marcelo Fiore Computer Laboratory University of Cambridge 2012 2013 (Easter Term) 1 Practicalities Course web page: with lecture
! Broaden your language horizons! Different programming languages! Different language features and tradeoffs. ! Study how languages are implemented
Course Goal CMSC 330: Organization of Programming Languages Introduction Learn how programming languages work Broaden your language horizons! Different programming languages! Different language features
Data Types. (with Examples In Haskell) COMP 524: Programming Languages Srinivas Krishnan March 22, 2011
Data Types (with Examples In Haskell) COMP 524: Programming Languages Srinivas Krishnan March 22, 2011 Based in part on slides and notes by Bjoern 1 Brandenburg, S. Olivier and A. Block. 1 Data Types Hardware-level:
Names, Scopes, and Bindings II. Hwansoo Han
Names, Scopes, and Bindings II Hwansoo Han Scope Rules A scope is textual region where bindings are active A program section of maximal size Bindings become active at the entry No bindings change in the
Topic I. Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003.
Topic I Introduction and motivation References: Chapter 1 of Concepts in programming languages by J. C. Mitchell. CUP, 2003. Chapter 1 of Programming languages: Design and implementation (3RD EDITION)
CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University
CS 555: DISTRIBUTED SYSTEMS [RPC & DISTRIBUTED OBJECTS] Shrideep Pallickara Computer Science Colorado State University Frequently asked questions from the previous class survey XDR Standard serialization
CSC 326H1F, Fall Programming Languages. What languages do you know? Instructor: Ali Juma. A survey of counted loops: FORTRAN
What languages do you know? CSC 326H1F, Programming Languages The usual suspects: C, C++, Java fine languages nearly the same Perhaps you've also learned some others? assembler Basic, Visual Basic, Turing,
EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization
EECS 144/244: Fundamental Algorithms for System Modeling, Analysis, and Optimization Dataflow Lecture: SDF, Kahn Process Networks Stavros Tripakis University of California, Berkeley Stavros Tripakis: EECS
Properties of an identifier (and the object it represents) may be set at
Properties of an identifier (and the object it represents) may be set at Compile-time These are static properties as they do not change during execution. Examples include the type of a variable, the value
! Design constraints. " Component failures are the norm. " Files are huge by traditional standards. ! POSIX-like
Cloud background Google File System! Warehouse scale systems " 10K-100K nodes " 50MW (1 MW = 1,000 houses) " Power efficient! Located near cheap power! Passive cooling! Power Usage Effectiveness = Total
TYPES, VALUES AND DECLARATIONS
COSC 2P90 TYPES, VALUES AND DECLARATIONS (c) S. Thompson, M. Winters 1 Names, References, Values & Types data items have a value and a type type determines set of operations variables Have an identifier
Languages october 22, 2017 Éric Lévénez <http://www.levenez.com/lang/> FORTRAN III end-1958 FORTRAN II FORTRAN I october 1956
1954 1957 FORTRAN november 1954 FORTRAN I october 1956 FORTRAN II 1957 FORTRAN III end-1958 B-O 1957 Flow-Matic 1958 COBOL 1959 JOVIAL 1959 IAL 1958 ALGOL 58 1958 Lisp 1958 Lisp 1 1959 Languages october
MODELS OF DISTRIBUTED SYSTEMS
Distributed Systems Fö 2/3-1 Distributed Systems Fö 2/3-2 MODELS OF DISTRIBUTED SYSTEMS Basic Elements 1. Architectural Models 2. Interaction Models Resources in a distributed system are shared between
Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads.
Executive Summary. It is important for a Java Programmer to understand the power and limitations of concurrent programming in Java using threads. Poor co-ordination that exists in threads on JVM is bottleneck