Top Banner
1 G52IWS: Distributed Computing Chris Greenhalgh
24
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: 1 G52IWS: Distributed Computing Chris Greenhalgh.

1

G52IWS: Distributed Computing

Chris Greenhalgh

Page 2: 1 G52IWS: Distributed Computing Chris Greenhalgh.

2

Contents

Distributed Computing Pre-WS Distributed Computing Platforms

CORBA Java RMI Message-Oriented Middleware

Common Challenges & relation to Web Services Supporting protocols

HTTP DNS TCP

See “Developing Java Web Services” chapter 1See W3C HTTP specifications; see IETF DNS RFCs; See G51WPS notes

Page 3: 1 G52IWS: Distributed Computing Chris Greenhalgh.

3

Distributed Computing

ApplicationInternet

Object

TCP/IP

Object

TCP/IP

ObjectTCP/IP

After “Developing Java Web Services” figure 1.1

“Objects” / services / servers / ports

Page 4: 1 G52IWS: Distributed Computing Chris Greenhalgh.

4

The Importance of Distributed Computing

Higher performance though concurrency Collaboration between multiple applications Higher reliability and availability with

replicated services Scalability through replication Extensibility through dynamic (re)configuration Higher productivity, shorter development

cycles and reduced cost through decomposition & re-use

Page 5: 1 G52IWS: Distributed Computing Chris Greenhalgh.

5

Client-Server Applications

Server(e.g. database)

Application

TCP/IP

After “Developing Java Web Services” figure 1.2

Application

TCP/IP

Application

TCP/IP

Clients

Page 6: 1 G52IWS: Distributed Computing Chris Greenhalgh.

6

Client-Server

1 – simple model or building block of distributed computing Single server exposes common facilities to multiple clients Each client make explicit requests to the server(s) according

the client’s requirements/logic

2 – minimal (“two tier”) approach to distributed application development Complex client with extensive business logic intermingled

with presentation & user interaction Simple server (e.g. database) for coordination/persistence

(singular server?!)

Page 7: 1 G52IWS: Distributed Computing Chris Greenhalgh.

7

Common Object Request Broker Architecture (CORBA)

CORBA Object Request Broker (ORB)

Client Stubs Server Skeletons

Clients Server objects

C C++ Java C C++ Java

IDL IDL IDL

After “Programming Java Web Services” figure 1.3Networking

Page 8: 1 G52IWS: Distributed Computing Chris Greenhalgh.

8

CORBA Features

Open standard from the Object Management Group (OMG)

OS, programming language and platform independent interfaces defined in CORBA IDL (Interface

Definition Language) Rich set of services and features

e.g. lifecycle, events, naming, transactions, security Location transparency through location-

independent object references

Page 9: 1 G52IWS: Distributed Computing Chris Greenhalgh.

9

CORBA features cont.

Network transparency using the IIOP (Internet Inter-ORB Protocol)

Remote callback support with asynchronous messages

Dynamic invocation interface for run-time interface discovery

Page 10: 1 G52IWS: Distributed Computing Chris Greenhalgh.

10

CORBA issues

High initial investment in training, application porting etc.

Availability of CORBA services still limited in most implementations

Scalability may be limited due to tightly coupled distributed object model (e.g. Direct object invocations)

Page 11: 1 G52IWS: Distributed Computing Chris Greenhalgh.

11

Java Remote Method Invocation

Java client RMI Stubs Java RMIServer

RMISkeleton

Remote Ref. Layer

Remote Ref. Layer

JRMP

After “Developing Java Web Services” figure 1.4

Page 12: 1 G52IWS: Distributed Computing Chris Greenhalgh.

12

Java RMI Features

Developed by Sun Microsystems Allows distributed Java application development

with invocation of methods on remote Java objects i.e. Java objects in other Java Virtual Machines

(VMs) Exploits Java Serialization and Java Remote

Method Protocol (JRMP) Stub “intercepts” the client request and passes over

RMI/JMRP to server skeleton and hence to server object

Page 13: 1 G52IWS: Distributed Computing Chris Greenhalgh.

13

Java RMI Features cont.

Includes a simple registry for non-persistent naming/lookup of remote services

Interoperates with CORBA using RMI-IIOP (RMI over IIOP) as an alternative to JRMP

Page 14: 1 G52IWS: Distributed Computing Chris Greenhalgh.

14

Java RMI Issues

Limited to the Java Platform (excepting bridging to CORBA/RMI-IIOP)

Tend to be tightly coupled via remote object references

No specific session management support Each Remote Method Invocation is handled

independently

Page 15: 1 G52IWS: Distributed Computing Chris Greenhalgh.

15

Message-Oriented Middleware (MOM)

Application A

Persistence

Adapter API Application BMOMinfrastructureAdapter API

After “Developing Java Web Services” figure 1.6

Messages sent & received

(& transactions contexts)

Page 16: 1 G52IWS: Distributed Computing Chris Greenhalgh.

16

MOM Features

Loosely coupled asynchronous communication based on messages

Messages typically sent via queues MOM infrastructure supports reliable delivery,

transactions, security. Often used for Enterprise Application

Integration Various technology options, including OBM

MQSeries, TIBCO, SunONE Message Queue, Java Message Service (JMS) API

Page 17: 1 G52IWS: Distributed Computing Chris Greenhalgh.

17

MOM Issues

APIs are often proprietary and language-specific

Message formats are often proprietary MOM infrastructure is often designed to be

managed by a single organisation/entity

Page 18: 1 G52IWS: Distributed Computing Chris Greenhalgh.

18

Common Challenges in Distributed Computing

Maintenance of client/server stubs in heterogeneous environments

Quality of Service goals such as scalability, performance & availability take a lot of work

Interoperability between different protocols is almost impossible (e.g. RMI to DCOM) Led to disjoint communities with little/no

interoperability Typically work well with a local network:

not firewall friendly, or easy to access over the Internet

Page 19: 1 G52IWS: Distributed Computing Chris Greenhalgh.

19

Relation to Web Services

Similar concerns – distributed applications Growing emphasis on composition and re-use Growing emphasis on platform-neutral and

inter-organisational distribution Increasingly sophisticated architectural &

interactional models Multi-tier designs within and across organisations Distributed messaging and complex choreography

as well as client-server approaches

Page 20: 1 G52IWS: Distributed Computing Chris Greenhalgh.

20

Supporting standards

HTTP DNS TCP/IP

Page 21: 1 G52IWS: Distributed Computing Chris Greenhalgh.

21

HTTP

Simple text-based request/response protocol over TCP/IP Main request types: POST, GET

End-point identified by http: URL Host Optional non-default port (default 80) Path Optional fragment reference and arguments

See G51WPS notes on HTTP

Page 22: 1 G52IWS: Distributed Computing Chris Greenhalgh.

22

DNS

Simple binary request/response over UDP Request: asks questions about a domain name

e.g. “What is the IP address of www.nottingham.ac.uk”

Response: returns known information and/or refers request to another DNS server which

is more likely to know Used for host part of HTTP URLs to identify

server IP address See G51WPS notes on TCP/IP

Page 23: 1 G52IWS: Distributed Computing Chris Greenhalgh.

23

TCP/IP

The Internet Protocol suite An open standard of the Internet Engineering

Task Force (IETF). Includes

IP – host-to-host delivery, globally UDP – unreliable datagram delivery service TCP – reliable byte stream delivery service to a

particular host (IP address) and TCP port ICMP – control and management messages

See G51WPS notes on TCP/IP

Page 24: 1 G52IWS: Distributed Computing Chris Greenhalgh.

24

Summary

Its still distributed computing… With added:

Inter-organisational emphasis Interoperability Platform/language neutrality Business requirements XML