The Joys of Working with Distributed Component Systems Prof. Rushikesh K Joshi Department of Computer Science and Engineering Indian Institute of Technology,

Slides:



Advertisements
Similar presentations
Design by Contract.
Advertisements

RPC Robert Grimm New York University Remote Procedure Calls.
©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.
Distributed Object & Remote Invocation Vidya Satyanarayanan.
Securing the Broker Pattern Patrick Morrison 12/08/2005.
CORBA - Common Object Request Broker Architecture.
(c) Andy Berry ( SOA – Benefits and Risks Presentation to ESUG 2005 Conference Andy Berry –
Variability Oriented Programming – A programming abstraction for adaptive service orientation Prof. Umesh Bellur Dept. of Computer Science & Engg, IIT.
Distributed Systems Architectures
A Mad Tea-Party Group members: Joanna Jean Shu-Hsien.
Software Testing and Quality Assurance
1 Quality Objects: Advanced Middleware for Wide Area Distributed Applications Rick Schantz Quality Objects: Advanced Middleware for Large Scale Wide Area.
© 2005 Prentice Hall8-1 Stumpf and Teague Object-Oriented Systems Analysis and Design with UML.
16: Distributed Systems1 DISTRIBUTED SYSTEM STRUCTURES NETWORK OPERATING SYSTEMS The users are aware of the physical structure of the network. Each site.
What is Poetry?.
Computer Science 340 Software Design & Testing Design By Contract.
How to use this document to create “Narrative Input”: 1.Print “slides” in color. 2.Cut out the pictures and text. 3.Glue the picture to one side of a construction.
6-2 Reasoning and Proof. "Then you should say what you mean." the March Hare went on. "I do," Alice hastily replied; "at least -- at least I mean what.
The following is a conditional statement: If I go to the mall, then I use my credit card. If I use my credit card, I must be at the mall. What do you think.
Object Oriented Programming with JAVA Arash N. Kia AlZahra University Definitions – Part 1.
An analysis of exam results in the Object-Oriented Programming course at „Politehnica” University of Timisoara Ioan Jurca.
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 4 Slide 1 Slide 1 Architectural Design.
CS 390- Unix Programming Environment CS 390 Unix Programming Environment Topics to be covered: Distributed Computing Fundamentals.
SAMANVITHA RAMAYANAM 18 TH FEBRUARY 2010 CPE 691 LAYERED APPLICATION.
Advanced Computer Networks Topic 2: Characterization of Distributed Systems.
SE-02 COMPONENTS – WHY? Object-oriented source-level re-use of code requires same source code language. Object-oriented source-level re-use may require.
Chapter 2 Reasoning in Geometry 2.2 Introduction to Logic.
Distributed Objects and Middleware. Sockets and Ports Source: G. Coulouris et al., Distributed Systems: Concepts and Design.
Tanenbaum & Van Steen, Distributed Systems: Principles and Paradigms, 2e, (c) 2007 Prentice-Hall, Inc. All rights reserved RPC Tanenbaum.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
The Crocodile by Lewis Carroll Included: A brief excerpt from the poem and rigorous question set activities promoting higher level-thinking development.
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.
Mad Hatter’s Tea Party 12th June 2013 “I can't go back to yesterday because I was a different person then.” ― Lewis Carroll, Alice in WonderlandLewis CarrollAlice.
Mood & Tone Mood is the feeling that a story creates in the reader.
MDA & RM-ODP. Why? Warehouses, factories, and supply chains are examples of distributed systems that can be thought of in terms of objects They are all.
Poetry Created by Educational Technology Network
CPSC 871 John D. McGregor Module 8 Session 1 Testing.
The following is a conditional statement: If it is Saturday, then I do not go to school. What do you think the hypothesis is? What do you think the conclusion.
SWE 4743 Abstract Data Types Richard Gesick. SWE Abstract Data Types Object-oriented design is based on the theory of abstract data types Domain.
G.v. Bochmann, revised Jan Comm Systems Arch 1 Different system architectures Object-oriented architecture (only objects, no particular structure)
Modeling with Filter Objects in Distributed Systems Rushikesh K. Joshi Department of Computer Science & Engineering Indian Institute of Technology, Bombay.
1 Middleware and future telecom ’platform’ By Lill Kristiansen, ntnu.
Alice’s Adventures in Wonderland Figurative Language.
The Mad Hatter’s Tea Party: an Example of Effective Syntax.
A PC Wakes Up A STORY BY VICTOR NORMAN. Once upon a time…  a PC (we’ll call him “H”) is connected to a network and turned on. Aside: The network looks.
©Ian Sommerville 2000, Tom Dietterich 2001 Slide 1 Distributed Systems Architectures l Architectural design for software that executes on more than one.
Poetry a genre like no other... Roses are red....
From Use Cases to Implementation 1. Structural and Behavioral Aspects of Collaborations  Two aspects of Collaborations Structural – specifies the static.
Object Design More Design Patterns Object Constraint Language Object Design Specifying Interfaces Review Exam 2 CEN 4010 Class 18 – 11/03.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
 Aim: How do we think like a mathematician? Do Now: July 16, Name all the geometric relationships found in the image below. (i.e. EB ≅ CH) 2.
Chapter 2 Reasoning and Proof 2.1 Conditional Statements.
From Use Cases to Implementation 1. Mapping Requirements Directly to Design and Code  For many, if not most, of our requirements it is relatively easy.
A service Oriented Architecture & Web Service Technology.
CPSC 372 John D. McGregor Module 8 Session 1 Testing.
Topic 4: Distributed Objects Dr. Ayman Srour Faculty of Applied Engineering and Urban Planning University of Palestine.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Mood & Tone Mood is the feeling that a story creates in the reader.
Mood & Tone Mood is the feeling that a story creates in the reader.
DISTRIBUTED COMPUTING
6th English – Unit 1 CROCODILE
Alice in Wonderland does Geometry?
Architectures of distributed systems Fundamental Models
Architectures of distributed systems Fundamental Models
COMPONENTS – WHY? Object-oriented source-level re-use of code requires same source code language. Object-oriented source-level re-use may require understanding.
The Mad Hatter’s Tea Party:
Architectures of distributed systems Fundamental Models
The Mad Hatter’s Tea Party:
Presentation transcript:

The Joys of Working with Distributed Component Systems Prof. Rushikesh K Joshi Department of Computer Science and Engineering Indian Institute of Technology, Bombay

What are we discussing today? Some facets of system design in the domain of component systems Our approach will be through scattered examples from standards to services to implementation of standards The link between them is that they form a part of the issues which are addressed by component systems in various layers

`What IS a Caucus-race?' said Alice; not that she wanted much to know, but the Dodo had paused as if it thought that SOMEBODY ought to speak, and no one else seemed inclined to say anything. `Why,' said the Dodo, `the best way to explain it is to do it.' (And, as you might like to try the thing yourself, some winter day, I will tell you how the Dodo managed it.) From Alice’s Adventures in Wonderland

“The best way to explain is to do it” Understanding by Doing

Refining our Understanding of a System Understanding and Implementations at user level are not enough to truly appreciate the architecture that makes it possible to express and execute high level ideas Try implementing small bits and fractional pieces of the system that you want to understand When I showed this slide to a student, he asked me whether it has something to do with prototyping. I am not talking of prototyping of your applications, it’s about understanding some design aspects of lower layers which form the basis of expression and execution of your applications.

But who is to give the prizes?' quite a chorus of voices asked. `Why, SHE, of course,' said the Dodo, pointing to Alice with one finger; and the whole party at once crowded round her, calling out in a confused way, `Prizes! Prizes!' Alice had no idea what to do, and in despair she put her hand in her pocket From Alice’s Adventures in Wonderland

“And the whole party at once crowded round her, calling out in a confused way, `Prizes! Prizes!' Distribution Vs. Centralization

Realizing a Framework for a Distributed Component System Components Component Framework Bus: A set of protocols How to implement them? Single vs. Coordinating Distributed Servers Load sharing and Fault tolerance

Coordinating Daemons M1 M2 M3 objects Orb daemon

Libraries and Daemon Processes object CORBA libraries A CORBA daemon CORBA libraries Another CORBA daemon Another CORBA Service A CORBA Service

"Twinkle, twinkle, little bat! How I wonder what you're at!" You know the song, perhaps?' `I've heard something like it,' said Alice. `It goes on, you know,' the Hatter continued, `in this way:-- "Up above the world you fly, Like a tea-tray in the sky. Twinkle, twinkle--"‘ From Alice’s Adventures in Wonderland

‘How I Wonder What You are At!' Sending Messages to remote Objects, without having to know ‘where’ they go..

Client Observe the Location Transparency // This is a client //... main () { Library * iitb_lib ; //... iitb_lib = Library :: bind (“IITB_LIB”); Book b = iitb_lib->list_a_book (“OOP”) }

Designing Surrogate/Proxy Objects ClientProg Account deposit () AccountProxy deposit () remoteAcc->deposit RealAccount deposit () remoteAcc

The General Proxy Pattern Client subject operation () Proxy operation() realSubj->operation RealSubject operation () realSubj

Design Aspects to Note about the Proxy Both real and proxy objects confirm to an abstract superclass Thus, they both implement the same interface However, their implementations are different A client can handle a remote object through the proxy as if it’s available locally. Internally, the proxy object carries out the communication with the remote object An IDL compiler generates the require proxy code and helper functions

`How doth the little crocodile Improve his shining tail, And pour the waters of the Nile On every golden scale! `How cheerfully he seems to grin, How neatly spread his claws, And welcome little fishes in With gently smiling jaws!‘ From Alice’s Adventures in Wonderland

‘ How neatly spread his claws, And welcome little fishes in With gently smiling jaws!’ Receiving and ‘Digesting’ Message to Objects held inside a Server

An Example Server //…. Class Library_Skeleton { ….}; // generated for you Class Library_Impl : public Library_Skeleton {…}; main ( ) { Library *lib ; lib = new Library; orb->object_is_ready (lib); orb->implementation_is_ready (lib); }

Designing a service loop and dispatcher Service loop: While true receiveAMessagePacket identify the object dispatch the messagePacket to the object return the returned result And In the object: decode the packet call local method return results

Found WHAT?' said the Duck. `Found IT,' the Mouse replied rather crossly: `of course you know what "it" means.' `I know what "it" means well enough, when I find a thing,' said the Duck: `it's generally a frog or a worm. The question is, what did the archbishop find?' From Alice’s Adventures in Wonderland

“I know what ‘it’ means enough when I find a thing ” Designing Generic Services

The basis: Generalization A Specialization Generalization Yet Another Specialization Another Specialization

An Example of a Generic Service Send in Take out narrow Implemented by

Then you should say what you mean,' the March Hare went on. `I do,' Alice hastily replied; `at least--at least I mean what I say- -that's the same thing, you know.' `Not the same thing a bit!' said the Hatter. `You might just as well say that "I see what I eat" is the same thing as "I eat what I see"!' `You might just as well say,' added the March Hare, `that "I like what I get" is the same thing as "I get what I like"!' `You might just as well say,' added the Dormouse, who seemed to be talking in his sleep, `that "I breathe when I sleep" is the same thing as "I sleep when I breathe"!' `It IS the same thing with you,' said the Hatter, and here the conversation dropped, and the party sat silent for a minute From Alice’s Adventures in Wonderland

‘I say what I mean’ ‘I mean what I say’ Applying Contracts in Design and Implementation

Applying Contracts Syntactic Behavioral (e.g. Meyer’s Design by contract) –Preconditions –Postconditions –Invariants Orthogonal contracts

Syntactic Contracts Interfaces –JAVA interfaces –C++ Pure Abstract Classes –CORBA IDLs –COM interfaces which are closed for modification Typically captures set of messages in terms of member function names, parameters, their types and their directions, blocking/non-blocking type

Mayer’s Design by Contract TM Preconditions to be ensured by client Postcondition to be satisfied by supplier What are the benefits? Class invariants An Example in Eiffel

Further Readings OMG’s CORBA standard Programmer’s manual for MICO Eric Gamma et al.’s book on Design Patterns Design Patterns in CORBA, try to inspect the code generated by IDL compiler OMG’s CORBA Naming Service Specification Bertrand Mayer’s book on Object Oriented Software Construction And of course..Lewis Carroll’s Alice’s Adventures in Wonderland