Introduction to Ice Copyright © 2005-2010 ZeroC, Inc. Ice Programming with Java 1. Introduction to Ice.

Slides:



Advertisements
Similar presentations
Building Distributed Applications using JAVA - RMI
Advertisements

Remote Procedure Call (RPC)
Remote Procedure Call Design issues Implementation RPC programming
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
Copyright © 2001 Qusay H. Mahmoud RMI – Remote Method Invocation Introduction What is RMI? RMI System Architecture How does RMI work? Distributed Garbage.
Distributed Object & Remote Invocation Vidya Satyanarayanan.
CORBA - Common Object Request Broker Architecture.
On Using Ice Middleware in the IARnet Framework Oleg Sukhoroslov Institute for Systems Analysis, RAS, Moscow Distributed Computing Systems Laboratory.
CS490T Advanced Tablet Platform Applications Network Programming Evolution.
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Lecture 5: Distributed Objects.
Practical Issues of RPCCS-4513, D-Term Remote Procedure Call Practical Issues CS-4513 Distributed Computing Systems (Slides include materials from.
Communication in Distributed Systems –Part 2
.NET Mobile Application Development Remote Procedure Call.
Distributed Systems Architecture Presentation II Presenters Rose Kit & Turgut Tezir.
Chapter 26 Client Server Interaction Communication across a computer network requires a pair of application programs to cooperate. One application on one.
CSIT 320 (Blum)1 Client-Server Interaction Based on Appendix 1 in Computer Networks and Internets, Comer.
1 Chapter Client-Server Interaction. 2 Functionality  Transport layer and layers below  Basic communication  Reliability  Application layer.
Understanding the CORBA Model. What is CORBA?  The Common Object Request Broker Architecture (CORBA) allows distributed applications to interoperate.
FALL 2005CSI 4118 – UNIVERSITY OF OTTAWA1 Part 4 Other Topics RPC & Middleware.
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Information Management NTU Interprocess Communication and Middleware.
DISTRIBUTED COMPUTING PARADIGMS. Paradigm? A MODEL 2for notes
Dr. John P. Abraham Professor University of Texas Pan American Internet Applications and Network Programming.
1. I NTRODUCTION TO N ETWORKS Network programming is surprisingly easy in Java ◦ Most of the classes relevant to network programming are in the java.net.
TIMICO Introduction to ICE. 1-1 Agenda To provide an example of a non-standards driven and single vendor controlled middleware technology and discuss.
Spring/2002 Distributed Software Engineering C:\unocourses\4350\slides\DefiningThreads 1 RMI.
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
IS473 Distributed Systems CHAPTER 5 Distributed Objects & Remote Invocation.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
GLOBE DISTRIBUTED SHARED OBJECT. INTRODUCTION  Globe stands for GLobal Object Based Environment.  Globe is different from CORBA and DCOM that it supports.
Chapter 5: Distributed objects and remote invocation Introduction Remote procedure call Events and notifications.
Server-Side Java Mapping Copyright © ZeroC, Inc. Ice Programming with Java 6. Server-Side Java Mapping.
Distributed Objects & Remote Invocation
1 Client-Server Interaction. 2 Functionality Transport layer and layers below –Basic communication –Reliability Application layer –Abstractions Files.
Remote Procedure CallCS-502 Fall Remote Procedure Call (continued) CS-502, Operating Systems Fall 2007 (Slides include materials from Operating System.
Eric Tryon Brian Clark Christopher McKeowen. System Architecture The architecture can be broken down to three different basic layers Stub/skeleton layer.
The Client-Server Model And the Socket API. Client-Server (1) The datagram service does not require cooperation between the peer applications but such.
Server-Side C++ Mapping Copyright © ZeroC, Inc. Ice Programming with C++ 6. Server-Side C++ Mapping.
Remote Procedure Call RPC
1 Chapter 38 RPC and Middleware. 2 Middleware  Tools to help programmers  Makes client-server programming  Easier  Faster  Makes resulting software.
Computer Science Lecture 3, page 1 CS677: Distributed OS Last Class: Communication in Distributed Systems Structured or unstructured? Addressing? Blocking/non-blocking?
E81 CSE 532S: Advanced Multi-Paradigm Software Development Venkita Subramonian, Christopher Gill, Ying Huang, Marc Sentany Department of Computer Science.
1 Distributed Systems Distributed Object-Based Systems Chapter 10.
Distributed objects and remote invocation Pages
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
Computer Science Lecture 4, page 1 CS677: Distributed OS Last Class: RPCs RPCs make distributed computations look like local computations Issues: –Parameter.
Distributed Computing & Embedded Systems Chapter 4: Remote Method Invocation Dr. Umair Ali Khan.
Liang, Introduction to Java Programming, Fifth Edition, (c) 2005 Pearson Education, Inc. All rights reserved Chapter 29 Remote Method.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved DISTRIBUTED SYSTEMS.
Topic 3: Remote Invocation Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
Distributed Web Systems Distributed Objects and Remote Method Invocation Lecturer Department University.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Common Object Request Broker Architecture (CORBA)
The Internet Communications Engine (Ice)
MCA – 405 Elective –I (A) Java Programming & Technology
CORBA Alegria Baquero.
Distribution and components
Client-Server Interaction
Ch > 28.4.
Programming Models for Distributed Application
DISTRIBUTED COMPUTING
CORBA Alegria Baquero.
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
Distributed Systems Bina Ramamurthy 11/30/2018 B.Ramamurthy.
Distributed Systems Bina Ramamurthy 12/2/2018 B.Ramamurthy.
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
Distributed Systems Bina Ramamurthy 4/22/2019 B.Ramamurthy.
Last Class: Communication in Distributed Systems
Presentation transcript:

Introduction to Ice Copyright © ZeroC, Inc. Ice Programming with Java 1. Introduction to Ice

Introduction to Ice Copyright © ZeroC, Inc. 1-1 Lesson Overview This lesson covers: –the motivation for using Ice –the fundamentals of the Ice architecture –the Ice object model This lesson also provides an overview of the major Ice components (including some components not covered in this course). By the end of this lesson, you will have a basic understanding of the Ice architecture and how Ice helps you to develop distributed applications.

Introduction to Ice Copyright © ZeroC, Inc. 1-2 What is Ice? An object-oriented distributed middleware platform. Ice includes: –object-oriented RPC mechanism –language-neutral specification language (Slice) –language mappings for various languages: C++, Java, C#, Python, Objective-C, Ruby and PHP (Ruby and PHP for the client-side only) –support for different transports (TCP, SSL, UDP) with highly-efficient protocol –external services (server activation, firewall traversal, etc.) –integrated persistence (Freeze) –threading support

Introduction to Ice Copyright © ZeroC, Inc. 1-3 Clients and Servers A client–server system is any software system in which different parts of the system cooperate on an overall task. –A server is an entity that, on request, provides a service (such as a computation) to clients. Servers are passive. –A client is an entity that requests services from servers. Clients are active. –Client and server often run on separate machines, but might also run on the same machine or be linked into a single process. Frequently, clients and servers are not “pure” clients and servers. –A server might act as a client, and a client might act a server. –Client and server are therefore roles that have a well-defined meaning only for the duration of a single request. The initiating side is, by definition, the client; the responding side is, by definition, the server.

Introduction to Ice Copyright © ZeroC, Inc. 1-4 Ice Objects An Ice object is a conceptual entity, that is, an abstraction. An Ice object: –can exist in the local or a remote address space –responds to operation invocations –can have multiple redundant instantiations –has one or more interfaces (facets), and has a single most-derived default interface (the default facet) –provides operations that can accept in-parameters, and can return out-parameters and/or a return value –has a unique object identity

Introduction to Ice Copyright © ZeroC, Inc. 1-5 Proxies Clients contact Ice objects via proxies. A proxy is a handle that uniquely denotes an Ice object. A proxy is the local ambassador for a (possibly remote) Ice object. When a client invokes an operation on a proxy, the Ice run time: 1.Locates the Ice object 2.Activates the object’s implementation within the server 3.Transmits in-parameters to the object 4.Waits for the operation to complete 5.Returns any out-parameters and the return value to the client (or an exception in case of an error)

Introduction to Ice Copyright © ZeroC, Inc. 1-6 Stringified Proxies Proxies can be converted to and from strings. SimplePrinter:default -h host.xyz.com -p This is a proxy for an object with identity SimplePrinter. The object’s server runs on host.xyz.com and listens on port for incoming requests. The server can be contacted using the configured default protocol. (If no default protocol is configured, the protocol defaults to TCP). Because such a proxy directly contains the endpoint at which the server can be found, it is known as a direct proxy. The general form of stringified direct proxies is: : [:...] Endpoints have the general form: [-h ] [-p ] [-t timeout] [-z]

Introduction to Ice Copyright © ZeroC, Inc. 1-7 Servants A servant is a server-side programming-language artifact that provides the concrete representation of an abstract Ice object. Servants are said to incarnate Ice objects. –Typically, servants are object instances with methods that correspond to the operations supported by an Ice object. –Servants are written by you, the developer. –When a client invokes an operation, the Ice run time takes care of invoking the corresponding method on the servant. –The method bodies on a servant provide the behavior of the corresponding Ice object. –A single servant can incarnate a single Ice object, or simultaneously incarnate several Ice objects. –A single Ice object can have multiple servants (typically in different servers, for redundancy).

Introduction to Ice Copyright © ZeroC, Inc. 1-8 At-Most-Once Semantics The Ice run time guarantees at-most-once semantics. A single operation invocation by a client is guaranteed to: –either invoke the operation exactly once –or invoke the operation not at all It is impossible for a single invocation of a client to result in the operation being invoked more than once. At-most-once semantics are important if an operation is not idempotent. You can mark individual operations as idempotent to relax the strict at-most-once semantics.

Introduction to Ice Copyright © ZeroC, Inc. 1-9 Method Invocation and Dispatch Ice supports: Oneway and twoway synchronous method invocation Oneway and twoway asynchronous method invocation (AMI) Batched oneway invocation Datagram invocation Batched datagram invocation Synchronous method dispatch Asynchronous method dispatch (AMD)

Introduction to Ice Copyright © ZeroC, Inc Client and Server Structure

Introduction to Ice Copyright © ZeroC, Inc Ice Services Ice provides a number of services: Persistence service (Freeze) Replication, load balancing, server activation service (IceGrid) Application server (IceBox) Publish–subscribe service (IceStorm) Software distribution and patching service (IcePatch2) Firewall traversal and session management (Glacier2) Freeze is a library; the other services are implemented as stand-alone processes.