Web Services Architecture and Programming

Size: px
Start display at page:

Download "Web Services Architecture and Programming"

Transcription

1 Web Services Architecture and Programming Working remotely and distributable Association For Information Security Nikolay Nedyalkov

2

3 What are Web Services? Depends on whom you ask A revolutionary new way of building distributed applications The natural evolution of distributed programming APIs Sockets RPC Distributed Objects Web Services To simplify application integration and interoperability Main ideas Applications structured as lightweight components, which expose services Example: A Weather component, which offers a GetTemperature service Input parameter: Zip code Output response: An integer that represents the temperature Services discovered, described, and interacted with using standard protocols UDDI, WSDL, SOAP, all of which make heavy use of XML Goal: Provide a simple application-to-application interface just like the web has provided a simple human-to-application interface Specifications such as HTML and HTTP, servers and browsers

4 Why Study Web Services? Most new applications have a distributed component Accessible across wide-area networks Themselves need to access other services across networks Need to understand what is involved in writing distributed programs Both from the point of view of what is in use/proposed earlier Sockets, Remote Procedure Calls, Distributed Objects Standard protocols, data formats such as HTTP and XML As well as how these approaches have evolved Web services architecture Protocols such as SOAP, WSDL, UDDI, Easier to construct, more interoperable Are we giving up anything.

5 Agenda Precursors/Alternatives to Web Services Networking fundamentals Sockets RPC SUNRPC XMLRPC Distributed Objects RMI.NET Remoting Web Services Architecture Overview Web Services Architecture Details SOAP, WSDL, UDDI, State Management, Intermediaries, GXA

6 What This Presentation is About Understanding the general issues that must be addressed while constructing distributed applications from component pieces Discovery: How do components learn about each other? [UDDI] Description: How does a component learn about another s interface? [WSDL] What services does it provide? Interaction: How are these services invoked? [SOAP] How are messages transferred from one component to another? [HTTP, TCP] How do we encode service parameters, return values in these messages? [XML] How do the components at either end know which encoding to use? Understanding how different approaches deal with these issues Sockets, Remote Procedure Calls, Distributed Objects, Web Services Getting some practical experience in using these approaches

7 Microsoft s.net Framework

8 Communication in Distributed Applications

9 Network Programming Builds on top of networking protocols (primarily: UDP, TCP, HTTP) Lowest-level API just provides user-level abstractions for TCP and UDP Sockets: Application-level end-point of communication Operations often described by drawing analogy of a telephone Call (Connection) setup Conversation (Sending and receiving data packets) Hangup (Disconnection)

10 Sockets API What does the API include? A data structure, called a socket, that serves as an application-level endpoint for networking operations A set of functions for operating on this data structure Operation Create a socket Specify the kind of communication operation (e.g., TCP, UDP) Setup the socket In case of a protocol like TCP, establish the underlying connection Which requires OS involvement, hence involves a system call Use the socket Provides a file-like interface: read and write bytes against the socket Close the socket Release any OS resources, free up memory used by the structure

11 Programming With The Sockets API Byte streams, no boundaries preserved Send s and Recv s can line up arbitrarily Therefore, need a convention about data format Agreeing on this convention is one of the hardest things For our StringServer app: <length> <sequence of bytes> For HTTP packets: server parses client requests HTTP standard defines the format of these requests Your networking programs need to work in heterogeneous environments Byte-order (Endian-ness) matters: network byte order is big-endian HostToNetworkOrder, NetworkToHostOrder functions Errors can arise because of a number of reasons Connect request to a socket that is not being listened to, early close, disconnected hosts,

12 Remote Procedure Calls (RPC) Writing distributed applications using the Sockets API is complicated Program needs to explicitly send/receive messages Violates programming transparency Local application components Remote application components RPC: Remote Procedure Call Original goal: Provide complete programming transparency Interaction with procedures on remote hosts as if they were local However, needed to deal with several issues Different memory spaces, Parameter passing, Binding, Failures Now: A higher-level abstraction for distributed programming Provides near-transparency

13 RPC History Original idea described in a 1983 paper by A. Birell and B. J. Nelson Several implementations Xerox SunRPC: widely used (NFS) DEC DCE (OpenGroup): basis for Microsoft s implementation of RPC in COM XML-RPC same underlying ideas, but leverages web standards

14 Overall Structure of RPC Client process blocks for duration of the call Just like in a local procedure call Asynchronous RPC: early reply from server RPC package is at the session layer Can work with different transports Shared Memory, UDP or TCP has to be specified at setup time Message passing completely hidden from programmer

15 Understanding RPC: Local Procedure Calls Steps in a local procedure call Caller pushes parameters, return address on a stack Control transferred to procedure Procedure returns values in registers, removes return address and passes control back Call-by-value Call-by-reference Caller cleans up stack frame How can we emulate these in a network setting? Parameter passing across address spaces Pointers are not valid across machines Binding Static: compile/link time (as in the local procedure case) Dynamic: using an intermediary service, requires registration and lookup Dealing with failures Client and server crashes

16 Understanding RPC: Client and Server Stubs We want to make RPC s look like local procedure calls Client stubs allow callers to make remote calls that look like local calls Server stubs allow callees to respond to remote calls as if they were from a local caller

17 Issue 1: RPC Parameter Passing Client and server stubs need to ensure that parameters are correctly passed between address spaces Value parameters Big-endian versus little-endian issues Different sizes of types on different machines E.g., int is 32-bits on x86 platforms and 64-bits on Itanium Reference parameters (pointers) Pointers are invalid, so entire data structure must be sent What happens if client process updates the structure being pointed to? What should you do with an IN-OUT parameter? Thus, a need for standard data types and structures ( wire format )

18 Interface Definition Language (IDL) One way for client and server stubs to agree upon parameter passing is to employ a higher-level definition of the procedure s interface Definition in a separate language: Interface Definition Language (IDL) Restricted set of data types Encoding of these data types into messages is standardized call-by-value is straightforward call-by-reference implemented using copy of structure/restore Example struct DateTime { long date; long time; }; DateTime getdatetime( void );

19 Translating IDL to Wire Format Two options Implicit typing Both the sender and receiver know in advance the type and ordering of data (interface fully defines encoding) E.g., XDR (external Data Representation), NDR (Network Data Repr.) Specifies what byte order is used, what the basic types are, how they are transferred on the wire E.g., string type is transferred as an int (length) followed by the ASCII bytes Explicit typing Encoding includes two things a specification of the type and its encoding, and the value in that encoding E.g., ASN.1 (Abstract Syntax Notation 1), BER (Basic Encoding Rules)

20 Issue 2: RPC Binding Static RPC server must be running at a well-known port number Interaction between clients and servers as in the sockets API Dynamic Use an intermediate program called a nameserver Nameserver must be running at a well-known port Permits binding of server program to port number to be deferred Server: RPC server registers with nameserver Nameserver allocates a port, and associates it with the server Server listens to a socket bound to this port Client: RPC client looks up the server by contacting the nameserver Nameserver returns port where server is listening Client sends request to specified port

21 Dynamic Binding Illustrated

22 Issue 3: Dealing with Failures (State Management) Client cannot locate the server Lost request Server crashes Problem: can crash after processing of request, or before Solutions: at least once - retry until a reply is received requires idempotence (server must generate same reply) at most once - return immediately, client rebinds to new server ID Client crashes and restarts Problem: computation finished, but client crashed before return (orphan) Solutions: RPC at the client gives a new incarnation ID to the client Client has to rebind to the service Server uses client id to distinguish this instance from the previous one

23 SunRPC Most common implementation of RPC and built into most UNIX OSes Used for Network File System (NFS) XDR is used for data description and encoding More about this in the next slides A compiler, rpcgen, translates SunRPC IDL to C, automatically generating Client and server stubs Client and server sample code Header files containing XDR data structure declarations A daemon program, portmapper, that provides nameserver functionality Port # 111

24 Example: A SunRPC Program

25 Example sources Generated test files date_proc.c 1-src.jpg date.x 2-src.jpg date.h 3-src.jpg rdate.c 4-src.jpg date_clnt.c 5-src.jpg date_svc.c 6,7,8,9-src.jpg

26 external Data Representation (XDR) A standard for the description and encoding of data Corresponds to the Presentation layer of the ISO protocol stack Representation of all items requires a multiple of 4 bytes of data Padding of 0-3 bytes to ensure this condition XDR data types integer, unsigned integer, enumeration, boolean, 64-bit signed an unsigned integers, single- and double-precision floating point, fixed-length opaque data Encoding contains only data, no additional information Big-endian byte order Variable-length opaque data, string 4-byte length, followed by the bytes making up the data

27 XDR (cont d)

28 Example of XDR Encoding

29 DCE RPC Distributed Computing Environment RPC Open Group standard (also standardized CORBA) DCE: RPC + security, namespace, and network time services Most implementations provide rpcgen-like stub compiler Underlying model for Microsoft s COM implementation Data description and encoding: Network Data Representation (NDR) Key difference from XDR is the receiver-makes-right model Sender encodes data in format most suited to own architecture Supplies information about encoding in an architecture tag Receiver uses information about encoding to interpret stream Benefit: No translation on homogeneous architectures (LANs)

30 (Review) Remote Procedure Calls A procedure-call like request-reply abstraction built on top of lower-level networking protocols

31 XML-RPC A procedure-call like request-reply abstraction built on top of lower-(higher-)level networking protocols

32 XML XML is a standard for describing structured documents Uses tags to define structure: <tag> </tag> demarcates an element Tags have no predefined semantics except when document refers to a specific namespace Elements can have attributes, which are encoded as name-value pairs A well-formed XML document corresponds to an element tree

33 XML-RPC Wire Format Scalar values Represented by a <value><type> </type></value> block

34 XML-RPC Wire Format (cont d)

35 XML-RPC Request HTTP POST message URI interpreted in an implementation-specific fashion Method name passed to the server program POST /cgi-bin/xmlrpc/sumanddiff.pl HTTP/1.1 Content-Type: text/xml User-Agent: XML-RPC.PERL Content-Length: 278 Expect: 100-continue Connection: Keep-Alive Host: localhost:8080 <?xml version="1.0"?> <methodcall> <methodname>sumanddifference</methodname> <params> <param><value><i4>40</i4></value></param> <param><value><i4>10</i4></value></param> </params> </methodcall>

36 XML-RPC Response HTTP Response Lower-level error returned as an HTTP error code Application-level errors returned as a <fault> element (next slide) HTTP/ OK Date: Mon, 22 Sep :52:34 GMT Server: Microsoft-IIS/6.0 Content-Type: text/xml Content-Length: 467 <?xml version="1.0"?> <methodresponse> <params> <param><value> <struct> <member><name>sum</name><value><i4>50</i4></value></member> <member><name>diff</name><value><i4>30</i4></value></member> </struct> </value> </param> </params> </methodresponse>

37 XML-RPC Fault Handling Another kind of a MethodResponse <?xml version="1.0"?> <methodresponse> <fault> <value><struct> <member> <name>faultcode</name> <value><i4>500</i4></value> </member> <member> <name>faultstring</name> <value><string>arg `a out of range</string></value> </member> </struct></value> </fault> </methodresponse>

38 XML-RPC: Discussion Very simple specification Large number of implementations for every conceivable language No surprises during integration XML wire-format Human readable Somewhat verbose Binary encoding possible, but additional layer of specification HTTP transport Widespread use Firewalls already permit HTTP traffic, so no reconfiguration required Main drawback Leaves a lot unspecified Mapping of URL to server handler State management at the server,

39 XML-RPC Example

40 Distributed Objects Rationale: Object-orientation applied to distributed programming Hiding of differences between local and remote interactions By defining notion of remote/distributed objects Call site looks the same in local and remote case All necessary information encapsulated in the object reference XML-RPC proxies already provide this benefit, unlike SunRPC handles Better support for state management at client and server Object reference identifies necessary state Transmission of object references avoids (expensive) state transfer Closer integration of type system with distributed architecture Compile-time checking of message format, other errors Run-time inspection of object reference to determine appropriate format Example systems: CORBA, DCOM, Java RMI,.NET Remoting

41 Distributed Objects Definitions Object Encapsulates data (state) and operations on that data (methods) External access to object state only via its public methods (interface) An object may implement multiple interfaces An interface can be implemented by multiple objects Distributed object Interface exists separate from the implementation (on separate hosts) Implementation can involve one or more objects When implementation contained in one object: remote object Reasons for splitting implementation across multiple objects Modularity, convenience, security Load-balancing

42 Programming with Distributed Objects Overview

43 CORBA Common Object Request Broker Architecture A language-neutral distributed object architecture Standardized by the Object Management Group (OMG) Same folks who standardized DCE RPC Microsoft s answer to CORBA: DCOM Built on top of Microsoft RPC and COM (Common Object Model) Efficient support for interactions between objects located on the same machine Features Parameter passing: Uses own wire format, called CDR Object implementation: Associated with IDL interface at run time Object binding: Explicit, via separate function calls Object references: Refer to a nameserver, support dynamic invocation Permit queries about implemented interfaces Object persistence: Persistent, Activatable

44 CORBA Architecture

45 CORBA Object Services A standard set of services (also implemented as CORBA objects) that provide commonly-required low-level and basic functionality Collection Service Concurrency Service Event Service Externalization Service Licensing Service Life Cycle Service Naming Service Persistence Service Properties Service Query Service Relationship Service Security Service Time Service Trader Service Transaction Service

46 Java Remote Method Invocation (RMI) Java language-level support for remote objects Parameter passing: Uses own wire format Parameters to RMI methods extend a predefined interface (Serializable) serializing = marshalling Possible to define custom serialization routines Object implementation: Compile-time definition RMI interfaces extend a predefined interface (java.rmi.remote) Implementation class implements RMI interface Typically by extending a predefined class java.rmi.activatable, java.rmi.unicastremoteobject) Client and server stub code automatically generated by invoking rmic Additional exceptions defined for remote interactions

47 Java RMI (cont d) Object binding: Both explicit and implicit Explicit: Using static methods in the java.rmi.naming class Server binds/rebinds name (string) with a nameserver (rmiregistry) Client looks up name with the nameserver Implicit: Whenever a client receives a remote object reference Can invoke methods on it as if it were a local interface What happens if the client does not have the stub classes for the reference? RMI implementation includes a dynamic class-loading feature A reference to the bytecode is sent along with the reference Cannot really do this in a language-neutral fashion Object references (RemoteRef) Stores information about the server name, unique object ID, codebase Distributed GC using reference counts Object persistence: Both transient and persistent objects supported

48 .NET Remoting Provides (almost all of) the functionality of Java RMI Except for activation of a persistent object with the following additional benefits Remoting framework works at the level of the CLR Hence, able to interoperate across all.net languages Extensible wire-formats and transports Comes with Binary Encoding/TCP and SOAP/HTTP Application developers can build their own Multiple activation modes Activation here refers to creation of a new object instance (different from passivating/activating a persistent object) Server Activation Client Activation Lifetime management (GC) of remote objects using leases Involve less traffic as compared to reference counting-based schemes

49 .NET Remoting: Architecture Functionality Server makes available a type at a well-known end-point An operation against this type results in an instance being created (unless one already exists) Client makes a request for the type Obtains a proxy that provides the same interface as the type Method invocations against the proxy are forwarded to the server object Can forward the proxy on to other objects Details What kind of types can be made available using.net remoting? What does an end-point look like? How does a client make a request against an end-point? How are parameters/return values passed in method invocations? What information is contained in a proxy? When are new object instances created at the server? When do these die?

50 Web Services Web Services architecture provides XML-based, language-neutral standards for Discovery [ UDDI, WS-Inspection ] Approximate location-independent nature of object references in distributed object systems by relying on intermediate brokers, who store/categorize/provide information about services Description [ WSDL ] Approximate run-type type inspection by encoding the service types/interface into an XML document that can be interpreted by clients Interaction [SOAP] RPC-like procedure calls + asynchronous invocations Implementation uses standard, interoperable protocols (HTTP) Goes back to stateless nature of RPC systems Simpler to support, particularly when loosely-coupled services come from multiple owners

51 Global XML Web Services Architecture (GXA) An attempt by Microsoft, IBM, BEA, others to define a set of higher-level specifications on top of the core web services specifications Core specifications define client-service and client-broker-service interactions SOAP, WSDL, UDDI GXA specifications build on above to define how groups of web services can interact with each other Need these specifications to allow construction of more complex web service applications E.g., an online book store that requires to interact with a credit card web service to verify the user s credit card number Database updates to the book service

52 GXA Specifications (Still Evolving) WS-Inspection A simpler UDDI-like discovery protocol Caters to scenarios where source can directly announce availability WS-Routing, WS-Referral WS-Security Specifies how security credentials are passed in SOAP messages, how SOAP actors should act on them BPEL4WS Encoding of business process activities First invoke this service, then use its results to invoke other services, WS-Transaction(old), WS-Coordination (September 2003) Atomic actions involving multiple services

53 WS-Routing and WS-Referral WSDL specifies end-to-end connection (from client to service URL) Need for more general structures Peer-to-peer and store-and-forward networking Should be possible to send messages to distributed processing nodes (despite being named by the same URL) WS-Routing Enables specification of a complete message path for the message (including its return path) WS-Referral Permits routing between SOAP nodes on a message path to be dynamically configured Allows delegation of part or all of processing responsibility to other nodes Together, permit use of intermediaries in web services applications Caches, load-balancing agents, transcoders,

54 Introducing SOAP, WSDL, and UDDI SOAP: Simple Object Access Protocol XML-RPC-like request/response protocol + Support for asynchronous invocations Encoding of additional information in the message Security tokens for authentication/encryption, Message route information, WSDL: Web Services Description Language RPC, Distributed Objects-like common structs/interface + Support for asynchronous invocations Possibility of language-neutral (and automatic) interpretation Web-services tools use WSDL description of a service to automatically generate a SOAP-capable proxy UDDI: Universal Description, Discovery, and Integration Defines ways of mapping service characteristics to service providers characteristics generalize names

55 More Information

Communication. Distributed Systems Santa Clara University 2016

Communication. Distributed Systems Santa Clara University 2016 Communication Distributed Systems Santa Clara University 2016 Protocol Stack Each layer has its own protocol Can make changes at one layer without changing layers above or below Use well defined interfaces

More information

Distributed Systems 8. Remote Procedure Calls

Distributed Systems 8. Remote Procedure Calls Distributed Systems 8. Remote Procedure Calls Paul Krzyzanowski pxk@cs.rutgers.edu 10/1/2012 1 Problems with the sockets API The sockets interface forces a read/write mechanism Programming is often easier

More information

Remote Procedure Calls (RPC)

Remote Procedure Calls (RPC) Distributed Computing Remote Procedure Calls (RPC) Dr. Yingwu Zhu Problems with Sockets Sockets interface is straightforward [connect] read/write [disconnect] BUT it forces read/write mechanism We usually

More information

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4

Outline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4 EEC-681/781 Distributed Computing Systems Lecture 4 Department of Electrical and Computer Engineering Cleveland State University wenbing@ieee.org Outline Inter-process communications Computer networks

More information

Distributed Systems. How do regular procedure calls work in programming languages? Problems with sockets RPC. Regular procedure calls

Distributed Systems. How do regular procedure calls work in programming languages? Problems with sockets RPC. Regular procedure calls Problems with sockets Distributed Systems Sockets interface is straightforward [connect] read/write [disconnect] Remote Procedure Calls BUT it forces read/write mechanism We usually use a procedure call

More information

CHAPTER - 4 REMOTE COMMUNICATION

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

More information

Operating Systems. 18. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Spring /20/ Paul Krzyzanowski

Operating Systems. 18. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Spring /20/ Paul Krzyzanowski Operating Systems 18. Remote Procedure Calls Paul Krzyzanowski Rutgers University Spring 2015 4/20/2015 2014-2015 Paul Krzyzanowski 1 Remote Procedure Calls 2 Problems with the sockets API The sockets

More information

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

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

More information

Chapter 4 Communication

Chapter 4 Communication DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 4 Communication Layered Protocols (1) Figure 4-1. Layers, interfaces, and protocols in the OSI

More information

CSE 124 Distributed programming and Remote Procedure Calls (RPC) February 23, 2016, UCSD Prof. George Porter

CSE 124 Distributed programming and Remote Procedure Calls (RPC) February 23, 2016, UCSD Prof. George Porter CSE 124 Distributed programming and Remote Procedure Calls (RPC) February 23, 2016, UCSD Prof. George Porter Announcements Remote Procedure Call (RPC) Distributed programming is challenging Need common

More information

Remote Invocation Vladimir Vlassov and Johan Montelius

Remote Invocation Vladimir Vlassov and Johan Montelius KTH ROYAL INSTITUTE OF TECHNOLOGY Middleware Remote Invocation Vladimir Vlassov and Johan Montelius Application layer Remote invocation / indirect communication Socket layer Network layer ID2201 DISTRIBUTED

More information

Distributed Systems. 03. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Fall 2017

Distributed Systems. 03. Remote Procedure Calls. Paul Krzyzanowski. Rutgers University. Fall 2017 Distributed Systems 03. Remote Procedure Calls Paul Krzyzanowski Rutgers University Fall 2017 1 Socket-based communication Socket API: all we get from the OS to access the network Socket = distinct end-to-end

More information

XML in the Development of Component Systems. XML Protocols: XML-RPC

XML in the Development of Component Systems. XML Protocols: XML-RPC XML in the Development of Component Systems XML Protocols: XML-RPC Protocols Distributed computing Components are deployed on different network nodes Object implementations do not share memory Communication

More information

Last Class: RPCs. Today:

Last Class: RPCs. Today: Last Class: RPCs RPCs make distributed computations look like local computations Issues: Parameter passing Binding Failure handling Lecture 4, page 1 Today: Case Study: Sun RPC Lightweight RPCs Remote

More information

CS 417 9/18/17. Paul Krzyzanowski 1. Socket-based communication. Distributed Systems 03. Remote Procedure Calls. Sample SMTP Interaction

CS 417 9/18/17. Paul Krzyzanowski 1. Socket-based communication. Distributed Systems 03. Remote Procedure Calls. Sample SMTP Interaction Socket-based communication Distributed Systems 03. Remote Procedure Calls Socket API: all we get from the to access the network Socket = distinct end-to-end communication channels Read/write model Line-oriented,

More information

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Middleware Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Outline Web Services Goals Where do they come from? Understanding middleware Middleware as infrastructure Communication

More information

Remote Invocation. Today. Next time. l Overlay networks and P2P. l Request-reply, RPC, RMI

Remote Invocation. Today. Next time. l Overlay networks and P2P. l Request-reply, RPC, RMI Remote Invocation Today l Request-reply, RPC, RMI Next time l Overlay networks and P2P Types of communication " Persistent or transient Persistent A submitted message is stored until delivered Transient

More information

Communication. Overview

Communication. Overview Communication Chapter 2 1 Overview Layered protocols Remote procedure call Remote object invocation Message-oriented communication Stream-oriented communication 2 Layered protocols Low-level layers Transport

More information

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services MTAT.03.229 Enterprise System Integration Lecture 2: Middleware & Web Services Luciano García-Bañuelos Slides by Prof. M. Dumas Overall view 2 Enterprise Java 2 Entity classes (Data layer) 3 Enterprise

More information

Verteilte Systeme (Distributed Systems)

Verteilte Systeme (Distributed Systems) Verteilte Systeme (Distributed Systems) Karl M. Göschka Karl.Goeschka@tuwien.ac.at http://www.infosys.tuwien.ac.at/teaching/courses/ VerteilteSysteme/ Lecture 3: Communication (Part 2) Remote Procedure

More information

Distributed Technologies - overview & GIPSY Communication Procedure

Distributed Technologies - overview & GIPSY Communication Procedure DEPARTMENT OF COMPUTER SCIENCE CONCORDIA UNIVERSITY Distributed Technologies - overview & GIPSY Communication Procedure by Emil Vassev June 09, 2003 Index 1. Distributed Applications 2. Distributed Component

More information

C 1. Recap: Finger Table. CSE 486/586 Distributed Systems Remote Procedure Call. Chord: Node Joins and Leaves. Recall? Socket API

C 1. Recap: Finger Table. CSE 486/586 Distributed Systems Remote Procedure Call. Chord: Node Joins and Leaves. Recall? Socket API Recap: Finger Table Finding a using fingers CSE 486/586 Distributed Systems Remote Procedure Call Steve Ko Computer Sciences and Engineering University at Buffalo N102" 86 + 2 4! N86" 20 +

More information

CSCI-1680 RPC and Data Representation John Jannotti

CSCI-1680 RPC and Data Representation John Jannotti CSCI-1680 RPC and Data Representation John Jannotti Original Slides from Rodrigo Fonseca Today Defining Protocols RPC IDL Problem Two programs want to communicate: must define the protocol We have seen

More information

Remote Procedure Call (RPC) and Transparency

Remote Procedure Call (RPC) and Transparency Remote Procedure Call (RPC) and Transparency Brad Karp UCL Computer Science CS GZ03 / M030 10 th October 2014 Transparency in Distributed Systems Programmers accustomed to writing code for a single box

More information

Today CSCI Communication. Communication in Distributed Systems. Communication in Distributed Systems. Remote Procedure Calls (RPC)

Today CSCI Communication. Communication in Distributed Systems. Communication in Distributed Systems. Remote Procedure Calls (RPC) Today CSCI 5105 Communication in Distributed Systems Overview Types Remote Procedure Calls (RPC) Instructor: Abhishek Chandra 2 Communication How do program modules/processes communicate on a single machine?

More information

INTRODUCTION TO XML-RPC, A SIMPLE XML-BASED RPC MECHANISM

INTRODUCTION TO XML-RPC, A SIMPLE XML-BASED RPC MECHANISM INTRODUCTION TO, A SIMPLE XML-BASED RPC MECHANISM Peter R. Egli INDIGOO.COM 1/11 Contents 1. What is? 2. architecture 3. protocol 4. server implementation in Java 5. Where to use 2/11 1. What is? is a

More information

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer

Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer Simple Object Access Protocol (SOAP) Reference: 1. Web Services, Gustavo Alonso et. al., Springer Minimal List Common Syntax is provided by XML To allow remote sites to interact with each other: 1. A common

More information

Communication. Outline

Communication. Outline COP 6611 Advanced Operating System Communication Chi Zhang czhang@cs.fiu.edu Outline Layered Protocols Remote Procedure Call (RPC) Remote Object Invocation Message-Oriented Communication 2 1 Layered Protocols

More information

CSCI-1680 RPC and Data Representation. Rodrigo Fonseca

CSCI-1680 RPC and Data Representation. Rodrigo Fonseca CSCI-1680 RPC and Data Representation Rodrigo Fonseca Today Defining Protocols RPC IDL Problem Two programs want to communicate: must define the protocol We have seen many of these, across all layers E.g.,

More information

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36 Communication address calls class client communication declarations implementations interface java language littleendian machine message method multicast network object operations parameters passing procedure

More information

RMI: Design & Implementation

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

More information

5 Distributed Objects: The Java Approach

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

More information

Introduction and Overview Socket Programming Lower-level stuff Higher-level interfaces Security. Network Programming. Samuli Sorvakko/Nixu Oy

Introduction and Overview Socket Programming Lower-level stuff Higher-level interfaces Security. Network Programming. Samuli Sorvakko/Nixu Oy Network Programming Samuli Sorvakko/Nixu Oy Telecommunications software and Multimedia Laboratory T-110.4100 Computer Networks October 5, 2009 Agenda 1 Introduction and Overview 2 Socket Programming 3

More information

SAI/ST course Distributed Systems

SAI/ST course Distributed Systems SAI/ST course Distributed Systems 2013, Sep. 26 Oct 01 Lecture 3: Communication Agenda Overview Concepts Organization in layers IPC primitives Direct communication Indirect communication R.H. Mak 27-9-2013

More information

DS 2009: middleware. David Evans

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

More information

Introduction and Overview Socket Programming Higher-level interfaces Final thoughts. Network Programming. Samuli Sorvakko/Nixu Oy

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

More information

CSCI-1680 RPC and Data Representation. Rodrigo Fonseca

CSCI-1680 RPC and Data Representation. Rodrigo Fonseca CSCI-1680 RPC and Data Representation Rodrigo Fonseca Administrivia TCP: talk to the TAs if you still have questions! ursday: HW3 out Final Project (out 4/21) Implement a WebSockets server an efficient

More information

KTH ROYAL INSTITUTE OF TECHNOLOGY. Remote Invocation. Vladimir Vlassov and Johan Montelius

KTH ROYAL INSTITUTE OF TECHNOLOGY. Remote Invocation. Vladimir Vlassov and Johan Montelius KTH ROYAL INSTITUTE OF TECHNOLOGY Remote Invocation Vladimir Vlassov and Johan Montelius Middleware Application layer Remote invocation / indirect communication Socket layer Network layer 2 Request / Reply

More information

Remote Procedure Calls

Remote Procedure Calls CS 5450 Remote Procedure Calls Vitaly Shmatikov Abstractions Abstractions for communication TCP masks some of the pain of communicating over unreliable IP Abstractions for computation Goal: programming

More information

RPC flow. 4.3 Remote procedure calls IDL. RPC components. Procedure. Program. sum (j,k) int j,k; {return j+k;} i = sum (3,7); Local procedure call

RPC flow. 4.3 Remote procedure calls IDL. RPC components. Procedure. Program. sum (j,k) int j,k; {return j+k;} i = sum (3,7); Local procedure call 4.3 Remote procedure calls RPC flow Client process Server process Program i = sum (3,7); Procedure sum (j,k) int j,k; {return j+k; Client stub Program Return Call Unpack Pack result para s Invisible to

More information

Lesson 3 SOAP message structure

Lesson 3 SOAP message structure Lesson 3 SOAP message structure Service Oriented Architectures Security Module 1 - Basic technologies Unit 2 SOAP Ernesto Damiani Università di Milano SOAP structure (1) SOAP message = SOAP envelope Envelope

More information

DISTRIBUTED COMPUTER SYSTEMS

DISTRIBUTED COMPUTER SYSTEMS DISTRIBUTED COMPUTER SYSTEMS Communication Fundamental REMOTE PROCEDURE CALL Dr. Jack Lange Computer Science Department University of Pittsburgh Fall 2015 Outline Communication Architecture Fundamentals

More information

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008

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

More information

By Lucas Marshall. All materials Copyright Developer Shed, Inc. except where otherwise noted.

By Lucas Marshall. All materials Copyright Developer Shed, Inc. except where otherwise noted. By Lucas Marshall All materials Copyright 1997 2002 Developer Shed, Inc. except where otherwise noted. Using XML RPC with PHP Table of Contents Introduction...1 Compiling PHP with XML RPC Support...2 Dissection

More information

Lecture 15: Frameworks for Application-layer Communications

Lecture 15: Frameworks for Application-layer Communications Lecture 15: Frameworks for Application-layer Communications Prof. Shervin Shirmohammadi SITE, University of Ottawa Fall 2005 CEG 4183 15-1 Background We have seen previously that: Applications need to

More information

Lecture 15: Frameworks for Application-layer Communications

Lecture 15: Frameworks for Application-layer Communications Lecture 15: Frameworks for Application-layer Communications Prof. Shervin Shirmohammadi SITE, University of Ottawa Fall 2005 CEG 4183 15-1 Background We have seen previously that: Applications need to

More information

Message Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1

Message Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1 Message Passing vs. Distributed Objects 5/15/2009 Distributed Computing, M. L. Liu 1 Distributed Objects M. L. Liu 5/15/2009 Distributed Computing, M. L. Liu 2 Message Passing versus Distributed Objects

More information

416 Distributed Systems. RPC Day 2 Jan 11, 2017

416 Distributed Systems. RPC Day 2 Jan 11, 2017 416 Distributed Systems RPC Day 2 Jan 11, 2017 1 Last class Finish networks review Fate sharing End-to-end principle UDP versus TCP; blocking sockets IP thin waist, smart end-hosts, dumb (stateless) network

More information

Communication in Distributed Systems

Communication in Distributed Systems Communication in Distributed Systems Sape J. Mullender Huygens Systems Research Laboratory Universiteit Twente Enschede 1 Introduction Functions of Communication Transport data between processes, machines,

More information

RPC. Remote Procedure Calls. Robert Grimm New York University

RPC. Remote Procedure Calls. Robert Grimm New York University RPC Remote Procedure Calls Robert Grimm New York University Assignments! You need (more) time for interoperability testing!! Your server should be running by midnight Sunday! Assignment 3 test case posted!

More information

RPC and RMI. 2501ICT Nathan

RPC and RMI. 2501ICT Nathan RPC and RMI 2501ICT Nathan Contents Client/Server revisited RPC Architecture XDR RMI Principles and Operation Case Studies Copyright 2002- René Hexel. 2 Client/Server Revisited Server Accepts commands

More information

416 Distributed Systems. RPC Day 2 Jan 12, 2018

416 Distributed Systems. RPC Day 2 Jan 12, 2018 416 Distributed Systems RPC Day 2 Jan 12, 2018 1 Last class Finish networks review Fate sharing End-to-end principle UDP versus TCP; blocking sockets IP thin waist, smart end-hosts, dumb (stateless) network

More information

COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC)

COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC) COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC) 1 2 CONVENTIONAL PROCEDURE CALL (a) (b) Parameter passing in a local procedure call: the stack before the call to read. The stack while the called procedure

More information

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan. Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan Reading List Remote Object Invocation -- Tanenbaum Chapter 2.3 CORBA

More information

Lecture 8: February 19

Lecture 8: February 19 CMPSCI 677 Operating Systems Spring 2013 Lecture 8: February 19 Lecturer: Prashant Shenoy Scribe: Siddharth Gupta 8.1 Server Architecture Design of the server architecture is important for efficient and

More information

A short introduction to Web Services

A short introduction to Web Services 1 di 5 17/05/2006 15.40 A short introduction to Web Services Prev Chapter Key Concepts Next A short introduction to Web Services Since Web Services are the basis for Grid Services, understanding the Web

More information

Two Phase Commit Protocol. Distributed Systems. Remote Procedure Calls (RPC) Network & Distributed Operating Systems. Network OS.

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,

More information

Presentation Services. Presentation Services: Motivation

Presentation Services. Presentation Services: Motivation Presentation Services need for a presentation services ASN.1 declaring data type encoding data types implementation issues reading: Tannenbaum 7.3.2 Presentation Services: Motivation Question: suppose

More information

RPC Paradigm. Lenuta Alboaie Andrei Panu

RPC Paradigm. Lenuta Alboaie Andrei Panu RPC Paradigm Lenuta Alboaie (adria@info.uaic.ro) Andrei Panu (andrei.panu@info.uaic.ro) 1 Content Remote Procedure Call (RPC) Preliminaries Characteristics XDR (External Data Representation) Functioning

More information

Contents. Java RMI. Java RMI. Java RMI system elements. Example application processes/machines Client machine Process/Application A

Contents. Java RMI. Java RMI. Java RMI system elements. Example application processes/machines Client machine Process/Application A Contents Java RMI G53ACC Chris Greenhalgh Java RMI overview A Java RMI example Overview Walk-through Implementation notes Argument passing File requirements RPC issues and RMI Other problems with RMI 1

More information

Introduction and Overview Socket Programming Higher-level interfaces Final thoughts. Network Programming. Samuli Sorvakko/Nixu Oy

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 9, 2006 Agenda 1 Introduction and Overview Introduction 2 Socket Programming

More information

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 22: Remote Procedure Call (RPC)

CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring Lecture 22: Remote Procedure Call (RPC) CS 162 Operating Systems and Systems Programming Professor: Anthony D. Joseph Spring 2002 Lecture 22: Remote Procedure Call (RPC) 22.0 Main Point Send/receive One vs. two-way communication Remote Procedure

More information

COMMUNICATION IN DISTRIBUTED SYSTEMS

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

More information

CS603: Distributed Systems

CS603: Distributed Systems CS603: Distributed Systems Lecture 2: Client-Server Architecture, RPC, Corba Cristina Nita-Rotaru Lecture 2/ Spring 2006 1 ATC Architecture NETWORK INFRASTRUCTURE DATABASE HOW WOULD YOU START BUILDING

More information

Introduction to Web Services & SOA

Introduction to Web Services & SOA References: Web Services, A Technical Introduction, Deitel & Deitel Building Scalable and High Performance Java Web Applications, Barish Service-Oriented Programming (SOP) SOP A programming paradigm that

More information

(9A05803) WEB SERVICES (ELECTIVE - III)

(9A05803) WEB SERVICES (ELECTIVE - III) 1 UNIT III (9A05803) WEB SERVICES (ELECTIVE - III) Web services Architecture: web services architecture and its characteristics, core building blocks of web services, standards and technologies available

More information

Today: Distributed Objects. Distributed Objects

Today: Distributed Objects. Distributed Objects Today: Distributed Objects Case study: EJBs (Enterprise Java Beans) Case study: CORBA Lecture 23, page 1 Distributed Objects Figure 10-1. Common organization of a remote object with client-side proxy.

More information

Networks and Operating Systems Chapter 3: Remote Procedure Call (RPC)

Networks and Operating Systems Chapter 3: Remote Procedure Call (RPC) Systems Group Department of Computer Science ETH Zürich Networks and Operating Systems Chapter 3: Remote Procedure Call (RPC) Donald Kossmann & Torsten Höfler Frühjahrssemester 2013 DINFK, ETH Zürich.

More information

Structured communication (Remote invocation)

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

More information

Distributed Systems are Everywhere!" CS162 Operating Systems and Systems Programming Lecture 22 Client-Server" Client-Server" Message Passing"

Distributed Systems are Everywhere! CS162 Operating Systems and Systems Programming Lecture 22 Client-Server Client-Server Message Passing CS162 Operating Systems and Systems Programming Lecture 22 Client- April 18, 2011! Ion Stoica! http://inst.eecs.berkeley.edu/~cs162! Distributed Systems are Everywhere!" We need (want?) to share physical

More information

CS454/654 Midterm Exam Fall 2004

CS454/654 Midterm Exam Fall 2004 CS454/654 Midterm Exam Fall 2004 (3 November 2004) Question 1: Distributed System Models (18 pts) (a) [4 pts] Explain two benefits of middleware to distributed system programmers, providing an example

More information

Introduction to Web Services & SOA

Introduction to Web Services & SOA References: Web Services, A Technical Introduction, Deitel & Deitel Building Scalable and High Performance Java Web Applications, Barish Web Service Definition The term "Web Services" can be confusing.

More information

Distributed Systems Lecture 2 1. External Data Representation and Marshalling (Sec. 4.3) Request reply protocol (failure modes) (Sec. 4.

Distributed Systems Lecture 2 1. External Data Representation and Marshalling (Sec. 4.3) Request reply protocol (failure modes) (Sec. 4. Distributed Systems Lecture 2 1 Today s Topics External Data Representation and Marshalling (Sec. 4.3) Request reply protocol (failure modes) (Sec. 4.4) Distributed Objects and Remote Invocations (5.1)

More information

Distribution and web services

Distribution and web services Chair of Software Engineering Carlo A. Furia, Bertrand Meyer Distribution and web services From concurrent to distributed systems Node configuration Multiprocessor Multicomputer Distributed system CPU

More information

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 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

More information

MODELS OF DISTRIBUTED SYSTEMS

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

More information

Distributed Systems. Web Services (WS) and Service Oriented Architectures (SOA) László Böszörményi Distributed Systems Web Services - 1

Distributed Systems. Web Services (WS) and Service Oriented Architectures (SOA) László Böszörményi Distributed Systems Web Services - 1 Distributed Systems Web Services (WS) and Service Oriented Architectures (SOA) László Böszörményi Distributed Systems Web Services - 1 Service Oriented Architectures (SOA) A SOA defines, how services are

More information

Desarrollo de Aplicaciones en Red. El modelo de comunicación. General concepts. Models of communication. Message Passing

Desarrollo de Aplicaciones en Red. El modelo de comunicación. General concepts. Models of communication. Message Passing Desarrollo de Aplicaciones en Red El modelo de comunicación José Rafael Rojano Cáceres http://www.uv.mx/rrojano 1 2 General concepts As we saw in a Distributed System the logical and physical component

More information

Remote Invocation. Today. Next time. l Indirect communication. l Request-reply, RPC, RMI

Remote Invocation. Today. Next time. l Indirect communication. l Request-reply, RPC, RMI Remote Invocation Today l Request-reply, RPC, RMI Next time l Indirect communication Data representation and marshalling Processes information kept as data structures but sent in msgs as sequence of bytes

More information

External Data Representation (XDR)

External Data Representation (XDR) External Data Representation (XDR) Prof. Chuan-Ming Liu Computer Science and Information Engineering National Taipei University of Technology Taipei, TAIWAN NTUT, TAIWAN 1 Introduction This chapter examines

More information

Dr. Robert N. M. Watson

Dr. Robert N. M. Watson Distributed systems Lecture 2: The Network File System (NFS) and Object Oriented Middleware (OOM) Dr. Robert N. M. Watson 1 Last time Distributed systems are everywhere Challenges including concurrency,

More information

XML Web Service? A programmable component Provides a particular function for an application Can be published, located, and invoked across the Web

XML Web Service? A programmable component Provides a particular function for an application Can be published, located, and invoked across the Web Web Services. XML Web Service? A programmable component Provides a particular function for an application Can be published, located, and invoked across the Web Platform: Windows COM Component Previously

More information

Lecture 5: Object Interaction: RMI and RPC

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

More information

Distributed Information Processing

Distributed Information Processing Distributed Information Processing 6 th Lecture Eom, Hyeonsang ( 엄현상 ) Department of Computer Science & Engineering Seoul National University Copyrights 2016 Eom, Hyeonsang All Rights Reserved Outline

More information

MODELS OF DISTRIBUTED SYSTEMS

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

More information

1.264 Lecture 16. Legacy Middleware

1.264 Lecture 16. Legacy Middleware 1.264 Lecture 16 Legacy Middleware What is legacy middleware? Client (user interface, local application) Client (user interface, local application) How do we connect clients and servers? Middleware Network

More information

a. Under overload, whole network collapsed iii. How do you make an efficient high-level communication mechanism? 1. Similar to using compiler instead

a. Under overload, whole network collapsed iii. How do you make an efficient high-level communication mechanism? 1. Similar to using compiler instead RPC 1. Project proposals due tonight 2. Exam on Tuesday in class a. Open note, open papers b. Nothing else (no internet, no extra papers) 3. Notes from Creator: a. VMware ESX: Carl Waldspurger i. Still

More information

REST Easy with Infrared360

REST Easy with Infrared360 REST Easy with Infrared360 A discussion on HTTP-based RESTful Web Services and how to use them in Infrared360 What is REST? REST stands for Representational State Transfer, which is an architectural style

More information

Implementing a Ground Service- Oriented Architecture (SOA) March 28, 2006

Implementing a Ground Service- Oriented Architecture (SOA) March 28, 2006 Implementing a Ground Service- Oriented Architecture (SOA) March 28, 2006 John Hohwald Slide 1 Definitions and Terminology What is SOA? SOA is an architectural style whose goal is to achieve loose coupling

More information

Interprocess Communication Tanenbaum, van Steen: Ch2 (Ch3) CoDoKi: Ch2, Ch3, Ch5

Interprocess Communication Tanenbaum, van Steen: Ch2 (Ch3) CoDoKi: Ch2, Ch3, Ch5 Interprocess Communication Tanenbaum, van Steen: Ch2 (Ch3) CoDoKi: Ch2, Ch3, Ch5 Fall 2008 Jussi Kangasharju Chapter Outline Overview of interprocess communication Remote invocations (RPC etc.) Message

More information

CHAPTER 7 COM and.net

CHAPTER 7 COM and.net 1 CHAPTER 7 COM and.net Evolution of DCOM Introduction to COM COM clients and servers COM IDL & COM Interfaces COM Threading Models. Marshalling, Custom and standard marshalling. Comparison COM and CORBA.

More information

Lecture 8: February 17

Lecture 8: February 17 CMPSCI 677 Operating Systems Spring 2016 Lecture 8: February 17 Lecturer: Prashant Shenoy Scribe: Ravi Choudhary 8.1 Communications in Distributed Systems This lecture will deal with communication between

More information

Networked Applications: Sockets. End System: Computer on the Net

Networked Applications: Sockets. End System: Computer on the Net Networked Applications: Sockets Topics Programmer s view of the Internet Sockets interface End System: Computer on the Net Internet Also known as a host 2 Page 1 Clients and Servers Client program Running

More information

Distributed Systems Middleware

Distributed Systems Middleware Distributed Systems Middleware David Andersson, 810817-7539, (D) Rickard Sandell, 810131-1952, (D) EDA 390 - Computer Communication and Distributed Systems Chalmers University of Technology 2005-04-30

More information

Distributed Systems Exam 1 Review Paul Krzyzanowski. Rutgers University. Fall 2016

Distributed Systems Exam 1 Review Paul Krzyzanowski. Rutgers University. Fall 2016 Distributed Systems 2015 Exam 1 Review Paul Krzyzanowski Rutgers University Fall 2016 1 Question 1 Why did the use of reference counting for remote objects prove to be impractical? Explain. It s not fault

More information

ReST 2000 Roy Fielding W3C

ReST 2000 Roy Fielding W3C Outline What is ReST? Constraints in ReST REST Architecture Components Features of ReST applications Example of requests in REST & SOAP Complex REST request REST Server response Real REST examples REST

More information

describe the functions of Windows Communication Foundation describe the features of the Windows Workflow Foundation solution

describe the functions of Windows Communication Foundation describe the features of the Windows Workflow Foundation solution 1 of 9 10/9/2013 1:38 AM WCF and WF Learning Objectives After completing this topic, you should be able to describe the functions of Windows Communication Foundation describe the features of the Windows

More information

Chapter 3: Client-Server Paradigm and Middleware

Chapter 3: Client-Server Paradigm and Middleware 1 Chapter 3: Client-Server Paradigm and Middleware In order to overcome the heterogeneity of hardware and software in distributed systems, we need a software layer on top of them, so that heterogeneity

More information

REMOTE PROCEDURE CALLS EE324

REMOTE PROCEDURE CALLS EE324 REMOTE PROCEDURE CALLS EE324 Administrivia Course feedback Midterm plan Reading material/textbook/slides are updated. Computer Systems: A Programmer's Perspective, by Bryant and O'Hallaron Some reading

More information

Chapter 10 Web-based Information Systems

Chapter 10 Web-based Information Systems Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 10 Web-based Information Systems Role of the WWW for IS Initial

More information