6/13/2015b.ramamurthy1 system models bina ramamurthy (based on slides from cdk text)

35
03/27/22 B.Ramamurthy 1 System Models Bina Ramamurthy (Based on Slides from CDK text)

Post on 19-Dec-2015

212 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 1

System Models

Bina Ramamurthy(Based on Slides from CDK text)

Page 2: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 2

Fundamental Issues

There is no global time.All communications are by means of messages.Message communication may be affected by network delays and can suffer from a variety of failures and security attacks.How does one express a solution/process for handling an issue? One of the ways is to establish a model.

Page 3: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 3

System Models

Interaction model deals with performance and setting time limits in a distributed system, say, for message delivery.Failure model gives specification of faults and defines reliable communication and correct processes.Security model specifies possible threats and defines the concept of secure channels.Architectural model defines the way in which the components of the system interact with one another and the way in which they are mapped onto the underlying network of computers.

Page 4: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 4

Architectural Model

Abstracts the functions of the individual components. Defines patterns for distribution of data and workload.Defines patterns of communication among the components.Example: Definition of server process, client process and peer process and protocols for communication among processes; definition client/server model and its variations.

Page 5: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 5

Software and hardware service layers in distributed systems

Applications, services

Computer and network hardware

Platform

Operating system

Middleware

Page 6: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 6

MiddlewareLayer of software whose purpose is to mask the heterogeneity and to provide a convenient programming model for application programmers.Middleware supports such abstractions as remote method invocation, group communications, event notification, replication of shared data, real-time data streaming. Examples: CORBA spec by OMG, Java RMI, MS’s DCOM. We will look at RMI in this discussion.

Page 7: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 7

Clients invoke individual servers

Server

Client

Client

invocation

result

Serverinvocation

result

Process:Key:

Computer:

EX: browser, web client

EX: Web server

EX: 1. File server, 2. Web crawler

Page 8: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 8

A service provided by multiple servers

Server

Server

Server

Service

Client

Client

EX: akamai, altavista, Sun’s NIS (data replication)

Page 9: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 9

Web proxy server and caches

Client

Proxy

Web

server

Web

server

serverClient

Proxy servers + cache are used to provide increased Availability and performance. They also play a major role Firewall based security. http://www.interhack.net/pubs/fwfaq/

Page 10: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 10

A distributed application based on peer processes

Coordination

Application

code

Coordination

Application

code

Coordination

Application

code

Ex: distributed Whiteboard Application;EJB-based?

Page 11: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 11

Web appletsa) client request results in the downloading of applet code

Web server

ClientWeb serverApplet

Applet code

Client

b) client interacts with the applet

EX: Look at Object by value in CORBA

Page 12: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 12

Spontaneous networking in a hotel

Internet

gateway

PDA

service

Music service

serviceDiscovery

Alarm

Camera

Guestsdevices

LaptopTV/PC

Hotel wirelessnetwork

EX: Jini, blue tooth protocol, UDDI

Page 13: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 13

Remote Method Invocation

Remote Method Invocation (RMI) is Java’s implementation of object-to-object communication among Java objects to realize a distributed computing model.RMI allows us to distribute our objects on various machines, and invoke methods on the objects located on remote sites.Source code for the demo is a modified version of code in Chapter 20 of Deitel & Deitel’s text Java : How to Program.

Page 14: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 14

RMI-based Distributed System

XYZImplementation

4.

Client Host Server Host

XYZClient Stub Skeleton

XYZinterface

uses implements1.

2.3. 3.5.

Page 15: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 15

Steps in RMI-based Application

1. Design the interface for the service.2. Implement the methods specified in

the interface.3. Generate the stub and the skeleton.4. Register the service by name and

location.5. Use the service in an application.

Page 16: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 16

Compile and Register Commands

Client Host Server Host

XYZClient Stub Skeleton

XYZinterface

uses implements1.

2.3. 3.5.XYZImplementation

rmic

rmiregistryStores object by nameFinds object by name

Page 17: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 17

More Details

Once the object (or service) is registered, a client can look up that service.A client (application) receives a reference that allows the client to use the service (call the method).Syntax of calling is identical to a call to a method of another object in the same program.

Page 18: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 18

Parameter Marshalling

Transfer of parameters (or marshalling) is done by the RMI.Complex objects are streamed using Serialization.RMI model of networking for distributed system involves only Java.No need to learn IDL or any other language.

Page 19: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 19

Case Study : Temperature Service

Lets create a distributed system using RMI model for networking (remote access).Basically this program will download the weather (temperature) information from the site:

http://iwin.nws.noaa.gov/iwin/us/traveler.html

Page 20: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 20

Defining Remote Interface

import java.rmi.*;// the interface extends Remote interface// any class implementing Remote can be

accessed remotely security permittingpublic interface TemperatureServer extends

Remote{ // specify methods that can be called

remotely // each method “throws RemoteException”}

Page 21: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 21

RemoteException

Any time you depend on outside entities there is a potential for problems in communication, networking, server crash etc.Any exception due to these should be handled by the services.This feature imparts robustness to the application.Java mandates this feature for any RMI service.

Page 22: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 22

Implementing the Remote Interface

import java.rmi.*;import java.rmi.server.*;import java.net.*;// others as neededTemperatureServerImpl extends UnicastRemoteObject

implements TemperatureServer {

Page 23: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 23

TemperatureServerImpl

This class’s constructor calls a private method which in turn:

1. Connects to the url specified2. Streams into a buffer the page

referenced.3. Parses the buffer to get the required

data.4. Creates an array of weather information.

Page 24: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 24

TemperatureServerImpl (contd.)

It implements the service method getWeatherInfo which simply returns the weather data gathered.The main method instantiates an object for the service, and registers it with rmiregistry.

Page 25: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 25

Streaming URLs

Using the openStream of java.net.URL class you can stream in the file spefied by an universal resource locator(url).It can be streamed into a buffer where it can be analyzed for information.Any number of urls can be streamed in.Unicast Communication : When you are interested in a particular remote site you will direct your net connection to that particular site using unicast.

Page 26: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 26

Server Object Name

Syntax for the server object name is://host:port/remoteObjectName

Default port number for rmiregistry is 1099For local host the object name:

//localhost/TempServerFor a remote host//127.0.0.1/TempServer

Page 27: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 27

Name Binding

rebind method binds a server’s object name to the object’s name as it is in the registry.Clients use the name in the registry.There is also a bind() method.But rebind is better since it binds the most recently registered object.

Page 28: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 28

WeatherInfo class

It is very traditional class for keeping the information about the temperature at a single location.It has data fields : cityName, temperature, and description and get methods for these.An array of objects of this class is used in the server implementation.

Page 29: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 29

Temperature Client

import java.rmi.*; // import other packages

constructor calls a private method getRemoteTemp which takes care of lookup of remote object and access.In this application it also displays the information.

Page 30: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 30

Temperature Client (contd.)

The main method in this client can get the IP address of the remote host as a command line argument.Command line argument is an array of String of items in the command line after the name of the application.

Page 31: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 31

Client Details

The name of the server object along with the IP of the remote location is used in Naming class’s lookup method to get an object reference.This object reference is then used for remote method calls.Observe that there is no difference between the local and remote call.

Page 32: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 32

WeatherItem class

Is used in the Graphical display of the weather information.

Page 33: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 33

Preparing the Application

1. Compile all the class using javac.2. Generate the stub and the

skeleton: rmic -v1.2

TemperatureServerImpl3. Then start the registry (this will be

running as a daemon)rmiregistry &

Page 34: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 34

Preparing the Application

4. Run the server which will register with the RMI registry.

Java TemperatureServerImpl &5. Run the client.Java TemperatureClient &or java TemperatureClient {IPAddress}java TemperatureClient 192.168.0.150

Page 35: 6/13/2015B.Ramamurthy1 System Models Bina Ramamurthy (Based on Slides from CDK text)

04/18/23 B.Ramamurthy 35

Summary

We discussed the various models of distributes systems.Java RMI was used to illustrate the distributed system concepts.Temperature examples shown illustrates some of the distributed system model discussed and all the important RMI features.