1 G52IWS: Distributed Computing Chris Greenhalgh.

Slides:



Advertisements
Similar presentations
Message Passing Vs Distributed Objects
Advertisements

COM vs. CORBA.
Web Services Nasrullah. Motivation about web service There are number of programms over the internet that need to communicate with other programms over.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 12 Slide 1 Distributed Systems Design 2.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Network Programming Chapter 11 Lecture 6. Networks.
Distributed components
Middleware Fatemeh Hendijanifard 1 آزمايشگاه سيستم هاي هوشمند (
Distributed Systems Architectures
Advanced Java Class Network Programming. Network Protocols Overview Levels of Abstraction –HTTP protocol: spoken by Web Servers and Web Clients –TCP/IP:
Introduction to Enterprise JavaBeans. Integrating Software Development Server-side Component Model Distributed Object Architecture –CORBA –DCOM –Java.
CORBA Case Study By Jeffrey Oliver March March 17, 2003CORBA Case Study by J. T. Oliver2 History The CORBA (Common Object Request Broker Architecture)
OCT 1 Master of Information System Management Organizational Communications and Distributed Object Technologies Review For Midterm.
CS 501: Software Engineering Fall 2000 Lecture 16 System Architecture III Distributed Objects.
1. Introducing Java Computing  What is Java Computing?  Why Java Computing?  Enterprise Java Computing  Java and Internet Web Server.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
Middleware Technologies compiled by: Thomas M. Cosley.
2 Systems Architecture, Fifth Edition Chapter Goals Describe client/server and multi-tier application architecture and discuss their advantages compared.
12-1 © Prentice Hall, 2004 Chapter 12: Design Elements Object-Oriented Systems Analysis and Design Joey F. George, Dinesh Batra, Joseph S. Valacich, Jeffrey.
Distributed Systems Architecture Presentation II Presenters Rose Kit & Turgut Tezir.
Common Object Request Broker Architecture CORBA. RMI is a simplified version of CORBA that does fairly well CORBA is all-singing and all-dancing Multiple.
Beyond DHTML So far we have seen and used: CGI programs (using Perl ) and SSI on server side Java Script, VB Script, CSS and DOM on client side. For some.
Web Services Mohamed Fahmy Dr. Sherif Aly Hussein.
©Ian Sommerville 2006Software Engineering, 8th edition. Chapter 12 Slide 1 Distributed Systems Architectures.
Enterprise Java Beans CS-422. Application Servers In the late 1980s and though the mid 1990s a number of corporations (Broadvision, Netscape…) marketed.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
Client Server Technologies Middleware Technologies Ganesh Panchanathan Alex Verstak.
Lecture 3: Sun: 16/4/1435 Distributed Computing Technologies and Middleware Lecturer/ Kawther Abas CS- 492 : Distributed system.
Distributed Communication via ASP.Net Web Services and.Net Remoting By Richard King.
第十四章 J2EE 入门 Introduction What is J2EE ?
Enterprise Java Beans Java for the Enterprise Server-based platform for Enterprise Applications Designed for “medium-to-large scale business, enterprise-wide.
Cli/Serv.: rmiCORBA/131 Client/Server Distributed Systems v Objectives –introduce rmi and CORBA , Semester 1, RMI and CORBA.
Wireless Access and Terminal Mobility in CORBA Dimple Kaul, Arundhati Kogekar, Stoyan Paunov.
Lecture 15 Introduction to Web Services Web Service Applications.
Comparison of Web Services, RMI, CORBA, DCOM Usha, Lecturer MCA Department of Computer Science and Engineering.
1 Distributed Systems Distributed Objects & Remote Invocation II (CORBA VS DCOM) Dr. Sunny Jeong. With Thanks to.
1 Introduction to Middleware. 2 Outline What is middleware? Purpose and origin Why use it? What Middleware does? Technical details Middleware services.
9 September 2008CIS 340 # 1 Topics reviewTo review the communication needs to support the architectures variety of approachesTo examine the variety of.
1 Java RMI G53ACC Chris Greenhalgh. 2 Contents l Java RMI overview l A Java RMI example –Overview –Walk-through l Implementation notes –Argument passing.
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.
Introduction to CORBA University of Mazandran Science & Tecnology By : Esmaill Khanlarpour January
SEMINOR. INTRODUCTION 1. Middleware is connectivity software that provides a mechanism for processes to interact with other processes running on multiple.
SOAP TECHNOLOGY What is SOAP ? SOAP is a simple, lightweight XML protocol for exchanging exchanging structured and typed information on the Web Extensible.
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
Hwajung Lee.  Interprocess Communication (IPC) is at the heart of distributed computing.  Processes and Threads  Process is the execution of a program.
CORBA1 Distributed Software Systems Any software system can be physically distributed By distributed coupling we get the following:  Improved performance.
Distributed Object Frameworks DCE and CORBA. Distributed Computing Environment (DCE) Architecture proposed by OSF Goal: to standardize an open UNIX envt.
CORBA Common Object Request Broker Architecture. Basic Architecture A distributed objects architecture. Logically, an object client makes method calls.
CS 240, Prof. Sarwar Slide 1 CS 240: Software Project Fall 2003 Sections 1 & 2 Dr. Badrul M. Sarwar San Jose State University Lecture #23.
Java Programming: Advanced Topics 1 Networking Programming Chapter 11.
Presented By:- Sudipta Dhara Roll Table of Content Table of Content 1.Introduction 2.How it evolved 3.Need of Middleware 4.Middleware Basic 5.Categories.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
An Introduction to Web Services Web Services using Java / Session 1 / 2 of 21 Objectives Discuss distributed computing Explain web services and their.
1 G52IWS: Web Services Chris Greenhalgh. 2 Contents The World Wide Web Web Services example scenario Motivations Basic Operational Model Supporting standards.
Enterprise Computing Distribution and components.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 Distributed Systems Architectures l Architectural design for software that executes on more than one.
Alan L. Batongbacal CS 4244 / 01 Nov 2000
(C) 2003 University of ManchesterCS31010 Lecture 14: CORBA.
CORBA Antonio Vasquez, John Shelton, Nidia, Ruben.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Internet and Distributed Application Services
CORBA Within the OS & Its Implementation
Inventory of Distributed Computing Concepts and Web services
Lecture 4: RPC Remote Procedure Call Coulouris et al: Chapter 5
Distributed Systems Bina Ramamurthy 11/30/2018 B.Ramamurthy.
Inventory of Distributed Computing Concepts
Lecture 4: RPC Remote Procedure Call CDK: Chapter 5
Inventory of Distributed Computing Concepts
Presentation transcript:

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 1 See W3C HTTP specifications; see IETF DNS RFCs; See G51WPS notes

3 Distributed Computing Application Internet Object TCP/IP Object TCP/IP Object TCP/IP After “Developing Java Web Services” figure 1.1 “Objects” / services / servers / ports

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

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

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?!)

7 Common Object Request Broker Architecture (CORBA)‏ CORBA Object Request Broker (ORB)‏ Client StubsServer Skeletons ClientsServer objects CC++JavaCC++Java IDL After “Programming Java Web Services” figure 1.3 Networking

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

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

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

11 Java Remote Method Invocation Java clientRMI Stubs Java RMI Server RMI Skeleton Remote Ref. Layer JRMP After “Developing Java Web Services” figure 1.4

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

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

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

15 Message-Oriented Middleware (MOM)‏ Application A Persistence Adapter API Application B MOM infrastructure Adapter API After “Developing Java Web Services” figure 1.6 Messages sent & received (& transactions contexts)‏

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

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

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

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

20 Supporting standards HTTP DNS TCP/IP

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

22 DNS Simple binary request/response over UDP Request: asks questions about a domain name  e.g. “What is the IP address of 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

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

24 Summary Its still distributed computing… With added:  Inter-organisational emphasis  Interoperability  Platform/language neutrality  Business requirements  XML