Presentation 3: Designing Distributed Objects. Ingeniørhøjskolen i Århus Slide 2 af 14 Outline Assumed students are knowledgeable about OOP principles.

Slides:



Advertisements
Similar presentations
©Ian Sommerville 2004Software Engineering, 7th edition. Chapter 9 Distributed Systems Architectures Slide 1 1 Chapter 9 Distributed Systems Architectures.
Advertisements

Distributed Objects and Remote Invocation
CMPT 401 Summer 2007 Dr. Alexandra Fedorova Lecture XVIII: Concluding Remarks.
Distributed Systems 1 Topics  What is a Distributed System?  Why Distributed Systems?  Examples of Distributed Systems  Distributed System Requirements.
Tam Vu Remote Procedure Call CISC 879 – Spring 03 Tam Vu March 06, 03.
Distributed Object & Remote Invocation Vidya Satyanarayanan.
CS-550: Distributed File Systems [SiS]1 Resource Management in Distributed Systems: Distributed File Systems.
MIS 385/MBA 664 Systems Implementation with DBMS/ Database Management Dave Salisbury ( )
Chapter 13 (Web): Distributed Databases
Presentation 7 part 1: Web Services Introduced. Ingeniørhøjskolen i Århus Slide 2 Outline Definition Overview of Web Services Examples Next Time: SOAP.
Objektorienteret Middleware Presentation 2: Distributed Systems – A brush up, and relations to Middleware, Heterogeneity & Transparency.
PZ13B Programming Language design and Implementation -4th Edition Copyright©Prentice Hall, PZ13B - Client server computing Programming Language.
CMPT 300: Final Review Chapters 8 – Memory Management: Ch. 8, 9 Address spaces Logical (virtual): generated by the CPU Physical: seen by the memory.
Advanced Comm. between Distributed Objects 1 Advanced Communication Among Distributed Objects  Outline  Request synchronization  Request multiplicity.
Distributed Systems Architectures
Tutorials 2 A programmer can use two approaches when designing a distributed application. Describe what are they? Communication-Oriented Design Begin with.
Software Engineering and Middleware: a Roadmap by Wolfgang Emmerich Ebru Dincel Sahitya Gupta.
CMPT 300: Final Review Chapters 8 – Memory Management: Ch. 8, 9 Address spaces Logical (virtual): generated by the CPU Physical: seen by the memory.
Designing Distributed Objects 1 Distributed Objects  Objective  Understand the difference between local and distributed objects and how to correctly.
EEC-681/781 Distributed Computing Systems Lecture 3 Wenbing Zhao Department of Electrical and Computer Engineering Cleveland State University
Software Engineering and Middleware A Roadmap Author: Wolfgang Emmerich Presented by: Sam Malek.
Communication in Distributed Systems –Part 2
1 Chapter 4 Threads Threads: Resource ownership and execution.
Session-02. Objective In this session you will learn : What is Class Loader ? What is Byte Code Verifier? JIT & JAVA API Features of Java Java Environment.
Virtual Network Servers. What is a Server? 1. A software application that provides a specific one or more services to other computers  Example: Apache.
Chapter 51 Threads Chapter 5. 2 Process Characteristics  Concept of Process has two facets.  A Process is: A Unit of resource ownership:  a virtual.
Chapter 2 Architectural Models. Keywords Middleware Interface vs. implementation Client-server models OOP.
CSC 456 Operating Systems Seminar Presentation (11/13/2012) Leon Weingard, Liang Xin The Google File System.
1 소프트웨어공학 강좌 Chap 9. Distributed Systems Architectures - Architectural design for software that executes on more than one processor -
1 G52IWS: Distributed Computing Chris Greenhalgh.
Distributed File Systems
1 Chapter 2. Communication. STEM-PNU 2 Layered Protocol TCP/IP : de facto standard Our Major Concern Not always 7-layered Protocol But some other protocols.
CS551 - Lecture 17 1 CS551 Object Oriented Middleware (VI) Advanced Topics (Chap of EDO) Yugi Lee STB #555 (816)
Distributed File Systems Overview  A file system is an abstract data type – an abstraction of a storage device.  A distributed file system is available.
New features for CORBA 3.0 by Steve Vinoski Presented by Ajay Tandon.
Distributed Database Systems Overview
Oracle's Distributed Database Bora Yasa. Definition A Distributed Database is a set of databases stored on multiple computers at different locations and.
CSC 480 Software Engineering Lecture 18 Nov 6, 2002.
1 Distributed Databases BUAD/American University Distributed Databases.
Eduardo Gutarra Velez. Outline Distributed Filesystems Motivation Google Filesystem Architecture The Metadata Consistency Model File Mutation.
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.
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.
CS 501: Software Engineering Fall 1999 Lecture 12 System Architecture III Distributed Objects.
Presentation 3: Designing Distributed Objects. Ingeniørhøjskolen i Århus Slide 2 af 32 Outline Assumed students are knowledgeable about OOP principles.
Topic Distributed DBMS Database Management Systems Fall 2012 Presented by: Osama Ben Omran.
OOMI Callbacks. Slide 2 of 11 © Ingeniørhøjskolen i Århus Outline Motivation –Using TTS as example CORBA Callbacks Issues & solutions Alternative solutions.
Some Ideas for a Revised Requirement List Dirk Duellmann.
Manish Kumar,MSRITSoftware Architecture1 Remote procedure call Client/server architecture.
Presentation: RMI Continued 2 Using The Registry & Callbacks.
1 Chapter 2. Communication. STEMPusan National University STEM-PNU 2 Layered Protocol TCP/IP : de facto standard Our Major Concern Not always 7-layered.
Presentation 3: Designing Distributed Objects. Ingeniørhøjskolen i Århus Slide 2 af 16 Outline Assumed students are knowledgeable about OOP principles.
© Oxford University Press 2011 DISTRIBUTED COMPUTING Sunita Mahajan Sunita Mahajan, Principal, Institute of Computer Science, MET League of Colleges, Mumbai.
W4118 Operating Systems Instructor: Junfeng Yang.
Lecture 5: RPC (exercises/questions). 26-Jun-16COMP28112 Lecture 52 First Six Steps of RPC TvS: Figure 4-7.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
1 Distributed Systems Architectures Distributed object architectures Reference: ©Ian Sommerville 2000 Software Engineering, 6th edition.
Object Interaction: RMI and RPC 1. Overview 2 Distributed applications programming - distributed objects model - RMI, invocation semantics - RPC Products.
Chapter 1 Characterization of Distributed Systems
Object-Oriented Network Communication (OOMI)
CSC 480 Software Engineering
3. Distributed Systems – Architecture Models Part 1
Distributed Systems - Comp 655
DISTRIBUTED COMPUTING
Inventory of Distributed Computing Concepts
Outline Announcements Lab2 Distributed File Systems 1/17/2019 COP5611.
Specialized Cloud Architectures
Outline Review of Quiz #1 Distributed File Systems 4/20/2019 COP5611.
Lecture 7: RPC (exercises/questions)
Presentation transcript:

Presentation 3: Designing Distributed Objects

Ingeniørhøjskolen i Århus Slide 2 af 14 Outline Assumed students are knowledgeable about OOP principles and UML … Local vs. Distributed Objects –How do local and distributed objects differ

Local versus Distributed Objects

Ingeniørhøjskolen i Århus Slide 4 af 14 Motivation You all have experience with designing local objects that reside in the run-time environment of an OO programming language such as: –C++ –C# –Java Designing distributed objects is different! In the next section we will –Explain the differences. –Try to avoid some serious pitfalls

Ingeniørhøjskolen i Århus Slide 5 af 14 Local vs. distributed Objects Differences between local and distributed objects in: –Life cycle –References (to objects) –Activation/Deactivation –Migration –Persistence –Latency of Requests –Concurrency –Communication –Security

Ingeniørhøjskolen i Århus Slide 6 af 14 Object Lifecycle If we look at local vs distributed objects lifecycles we see that: –OOPL objects reside in one virtual machine. From creation to deletion –Distributed objects might be created on a different machines Not possible to use OOPL’s creation operators Need to design features for it Should be independent of server location –Distributed objects might be copied or moved (migrated) from one machine to another To avoid overloading of a server This will not happen with local objects –Deletion by garbage collection does not work in a distributed setting. Too difficult to maintain referential integrity –Lifecycle needs attention during the design of distributed objects.

Ingeniørhøjskolen i Århus Slide 7 af 14 Object References References to objects in OOPL are usually pointers to memory addresses –sometimes pointers can be turned into references (C++) –sometimes they cannot (Smalltalk,Java) References to distributed objects are more complex –Location information (which server, how to communicate) –Security information (now not anymore a protected process) –References to object types (might differ – which server is in control – adminstrators forgetting to synchronize) èReferences to distributed objects are bigger (e.g 40 bytes with Orbix small footprint – 304 with Sun’s ORB) – èAs opposed to 4 bytes for 32 bit references on OOPL VM’s èBut often ranging from (depending on features) èToo virtual memory consuming for clients holding references

Ingeniørhøjskolen i Århus Slide 8 af 14 Latency of Requests Performing a local method call requires a couple of hundred nanoseconds. An network object request requires between 0.1 and 10 milliseconds. –And possible more depending on the network –And the size of the objects èInterfaces of distributed objects need to be designed in a way that –operations perform coarse-grained tasks –do not have to be requested frequently Therefore: –Be vary of turning everything into objects –Use Façade patterns instead – and decouple

Ingeniørhøjskolen i Århus Slide 9 af 14 Activation/Deactivation Objects in OOPL are in virtual memory between creation and destruction. This might be inappropriate for distributed objects –They are bigger than local objects (take up more space) –Combined with sheer number of objects … –Results in problems with capacity of server (virtual memory) –Also: objects might not be used for a long time –And: some hosts might have to be shut down without stopping all applications Distributed object implementations are –brought into main memory (activation) –discarded from main memory (deactivation)

Ingeniørhøjskolen i Århus Slide 10 af 14 Activation/Deactivation (cont’d) Several questions arise –Explicit vs. implicit activation (transparent for the programmer) –When to deactivate objects Need to persist the state –Association between objects and processes –How to treat concurrent requests Even across servers Who decides answers to these questions? –Designer –Programmer –Administrator –Middleware – but designer must provide persistence facilities

Ingeniørhøjskolen i Århus Slide 11 af 14 Persistence Stateless vs. statefull objects Statefull objects have to save their state between –object deactivation and –object activation onto persistent storage Can be achieved by –externalization into file system –mapping to relational database –object database To be considered during object design Statefull objects are more expensive to make redundant –Need to replicate more between servers More of this in volume 2

Ingeniørhøjskolen i Århus Slide 12 af 14 Communication Method invocations of OOPL objects most often synchronous –Because it is fast, efficient and intuitive for the programmer –Blocks calling object Alternatives for distributed objects: –synchronous requests Nice – but not always performant due to latency Blocks the calling object for to long –oneway requests –deferred synchronous requests –asynchronous requests Who decides on request –Designer of server? –Designer of client? More on this at a later point

Ingeniørhøjskolen i Århus Slide 13 af 14 Failures Distributed object requests are more likely to fail than local method calls –More points of failures Server(s) Client Network Different request reliabilities are available for distributed objects –Exactly-once semantics are too demanding on latency –Instead: At-most-once only makes the call once – but inform of some failing (Exception) (the call may have succeed, but the line is cut before an ack is received) –CORBA and RMI uses “At-most-once” but may use “maybe” –Others may be implemented, which we shall look at later Clients have an obligation to validate that servers have executed request –Meaning: has to check for exceptions –Need to use transactions (all or nothing) – with roll back capabilities More on this later