Web Services Architecture and Programming
|
|
- Irma Franklin
- 5 years ago
- Views:
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 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 informationDistributed 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 informationRemote 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 informationOutline. 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 informationDistributed 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 informationCHAPTER - 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 informationOperating 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 informationDistributed 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 informationChapter 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 informationCSE 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 informationRemote 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 informationDistributed 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 informationXML 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 informationLast 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 informationCS 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 informationMiddleware. 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 informationRemote 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 informationCommunication. 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 informationMTAT 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 informationVerteilte 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 informationDistributed 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 informationC 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 informationCSCI-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 informationRemote 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 informationToday 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 informationINTRODUCTION 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 informationSimple 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 informationCommunication. 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 informationCSCI-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 informationOverview. 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 informationRMI: 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 information5 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 informationIntroduction 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 informationSAI/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 informationDS 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 informationIntroduction 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 informationCSCI-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 informationKTH 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 informationRemote 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 informationRPC 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 informationLesson 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 informationDISTRIBUTED 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 informationDistributed 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 informationBy 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 informationLecture 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 informationLecture 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 informationMessage 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 information416 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 informationCommunication 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 informationRPC. 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 informationRPC 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 information416 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 informationCOMMUNICATION 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 informationDistributed 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 informationLecture 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 informationA 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 informationTwo 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 informationPresentation 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 informationRPC 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 informationContents. 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 informationIntroduction 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 informationCS 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 informationCOMMUNICATION 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 informationCS603: 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 informationIntroduction 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)
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 informationToday: 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 informationNetworks 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 informationStructured 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 informationDistributed 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 informationCS454/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 informationIntroduction 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 informationDistributed 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 informationDistribution 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 information03 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 informationMODELS 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 informationDistributed 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 informationDesarrollo 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 informationRemote 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 informationExternal 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 informationDr. 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 informationXML 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 informationLecture 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 informationDistributed 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 informationMODELS 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 information1.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 informationa. 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 informationREST 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 informationImplementing 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 informationInterprocess 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 informationCHAPTER 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 informationLecture 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 informationNetworked 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 informationDistributed 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 informationDistributed 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 informationReST 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 informationdescribe 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 informationChapter 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 informationREMOTE 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 informationChapter 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