families of related or dependent objects
|
|
- Julius Phelps
- 5 years ago
- Views:
Transcription
1 Abstract Factory
2 Intent 'To provide an interface for creating families of related or dependent objects without specifying their concrete classes'
3 Examples of Factories in the Real World: The Bank Go to the bank to make a deposit to your account, you don't walk up to a vault, pull out a drawer with your name on it, drop in your money, shut the drawer and leave. Think about how you originally established, or opened, the account. You probably went to the bank, spoke with an Account Manager, and signed some papers. In return, they gave you some checks, a passbook, or a bank card so you could access your account in the future. The Account Manager is an example of a factory. The person or Automated Teller Machine (ATM) that acts as account manager controls the creation of and/or access to individual accounts.
4 Structure
5
6 Example - Write a Cross Platform Window Toolkit Write a toolkit to allow applications with GUI interfaces to run on multiple platforms (Mac, PC, OS/2, Unix motif ) using the look and feel of each platform We will look at widgets: Windows, Menu's and Buttons Create an interface( or abstract class) for each widget and a concrete class for each platform
7
8 This allows the application to write to the widget interface public void installdisneymenu() { Menu disney = create a menu somehow disney.additem( "Disney World" ); disney.additem( "Donald Duck" ); disney.additem( "Mickey Mouse" ); disney.addgraybar( ); disney.additem( "Minnie Mouse" ); disney.additem( "Pluto" ); etc. How to create the widget?
9 Use Abstract Factory abstract class WidgetFactory { public Window createwindow(); public Menu createmenu(); public Button createbutton(); class MacWidgetFactory extends WidgetFactory { public Window createwindow() { code to create a mac window public Menu createmenu() { code to create a mac Menu public Button createbutton() tt { code to create a mac button
10 class Win95WidgetFactory extends WidgetFactory { public Window createwindow() { code to create a Win95 window public Menu createmenu() { code to create a Win95 Menu public Button createbutton() { code to create a Win95 button Etc.
11 Now to get code that works for all platforms we get: public void installdisneymenu(widgetfactory myfactory) { Menu disney = myfactory.createmenu(); disney.additem( ddi "Disney World" ); disney.additem( "Donald Duck" ); disney.additem( "Mickey Mouse" ); disney.addgraybar( ); disney.additem( "Minnie Mouse" ); disney.additem( "Pluto" ); etc. We just need to make sure that the application for each platform creates the proper factory
12 How Do Factories create Widgets? Method 1) My Factory Method abstract class WidgetFactory { public Window createwindow(); public Menu createmenu(); public Button createbutton(); class MacWidgetFactory extends WidgetFactory { public Window createwindow() { return new MacWidow() public Menu createmenu() { return new MacMenu() public Button createbutton() tt { return new MacButton()
13 How Do Factories create Widgets? Method 2) Their Factory Method abstract class WidgetFactory { private Window windowfactory; private Menu menufactory; private Button buttonfactory; public Window createwindow() { return windowfactory.createwindow() public Menu createmenu(); { return menufactory.createwindow() public Button createbutton() { return buttonfactory.createwindow()
14 How Do Factories create Widgets? Method 2) Their Factory Method class MacWidgetFactory extends WidgetFactory { public MacWidgetFactory() { windowfactory = new MacWindow(); menufactory = new MacMenu(); buttonfactory = new MacButton(); class MacWindow extends Window { public Window createwindow() { //blah etc.
15 How Do Factories create Widgets? Method 2) Their Factory Method When does this make Sense? There might be more than one way to create a widget abstract class WidgetFactory { private Window windowfactory; private Menu menufactory; private Button buttonfactory; public Window createwindow() { return windowfactory.createwindow() public Window createwindow( Rectangle size) { return windowfactory.createwindow( size ) public Window createwindow( Rectangle size, String title) { return windowfactory.createwindow( size, title)
16 public Window createfancywindow() { return windowfactory.createfancywindow() t F d public Window createplainwindow() { return windowfactory.createplainwindow() Using factory method allows abstract class to do all the different ways to create a window. Subclasses just provide the objects windowfactory, menufactory, buttonfactory, etc.
17 How Do Factories create Widgets? Method 3) Prototype class WidgetFactory { private Window windowprototype; private Menu menuprototype; private Button buttonprototype; public WidgetFactory( Window windowprototype, Menu menuprototype, Button buttonprototype) { this.windowprototype = windowprototype; this.menuprototype = menuprototype; this.buttonprototype = buttonprototype; public Window createwindow() { return windowfactory.createwindow()
18 public Window createwindow( Rectangle size) { return windowfactory.createwindow( size ) public Window createwindow( Rectangle size, String title) { return windowfactory.createwindow( createwindow( size, title) public Window createfancywindow() { return windowfactory.createfancywindow() createfancywindow() etc. There is no need for subclasses of WidgetFactory.
19 Applicability A system should be independent of how its products are created, composed and represented A system should be configured with one of multiple families of products A family of related product objects is designed to be used together, th and you need to enforce this constraint You want to provide a class library of products, and you want to reveal just their interfaces, not their implementation
20 Consequences It isolates concrete classes It makes exchanging product families easy It promotes consistency among products Supporting new kinds of products is difficult
21 Implementation Factories as singletons Defining extensible factories
22 Applying the Factory Pattern to RMI A factory implementation is useful when you need one object to control the creation of and/or access to other objects. By using a factory in RMI, you can reduce the number of objects that you need to register with the RMI registry.
23 How Does a Factory Work in RMI? Just like any other RMI program, there are a few basic players a server produces one or more remote objects, each of which implements a remote interface a client accesses a name server (the rmiregistry ) to get a reference to one of the remote objects the rmiregistry which facilitates the client's initial contact with the server
24 How Does a Factory Work in RMI? There are two remote interfaces that the client understands, Factory and Product The FactoryImpl implements the Factory interface The ProductImpl implements the Product interface
25
26 Example : Widgets in a GUI Environment In previous example we saw how an Abstract Factory can be used to create widgets for a GUI environment. By designing the client to use the Abstract Factory interface, different factories can be created to generate different sets of widgets without requiring changes to the clients.
27 WidgetFactory.java This class represents the RMI server interface for creating GUI widgets. The actual RMI server that implements this interface determines which type of Widget objects are returned to the clients. public interface WidgetFactory extends java.rmi.remote { public ScrollBar createscrollbar() throws java.rmi.remoteexception; public Window createwindow() throws java.rmi.remoteexception;
28 ScrollBar.java This interface represents an abstract ScrollBar that would be returned from a WidgetFactory server. public interface ScrollBar extends java.io.serializable{ public String tostring();
29 Window.java This interface represents another GUI component that can be returned from a WidgetFactory. public interface Window extends java.io.serializable { public String tostring();
30 Client.java This class is a simple client of the WidgetFactory that will grab a Window and ScrollBar and display the actual type of object that was loaded. import java.rmi.*; public class Client { public static void main(string[] args){ try { WidgetFactory factory = (WidgetFactory) Naming.lookup("rmi://"+ args[0]+ "/WidgetFactory"); System.out.println("Window: "+factory.createwindow()); System.out.println("ScrollBar: "+factory.createscrollbar()); catch(exception e){ System.err.println("Failure creating widgets: " + e.getmessage());
31 MotifWidgetFactory.java This class is an implementation of the WidgetFactory that will return MotifWidgets. import java.rmi.*; import java.rmi.server.*; public class MotifWidgetFactory extends UnicastRemoteObject implements WidgetFactory { public MotifWidgetFactory() throws RemoteException { super(); try { Naming.rebind("rmi:///WidgetFactory",this); System.out.println("Server ready"); catch (Exception e){ System.err.println( err println("failure setting up WidgetFactory: " + e.getmessage());
32 public static void main(string[] args){ try { new MotifWidgetFactory(); catch(exception e){ System.err.println("Failure creating WidgetFactory: " + e.getmessage()); //Remote methods public Window createwindow(){ return new MotifWindow(); public ScrollBar createscrollbar(){ return new MotifScrollBar();
33 MotifScrollBar.java This class is a Motif representation of a ScrollBar that will be returned by the MotifWidgetFactory. public class MotifScrollBar implements ScrollBar { public String tostring(){ return "MotifScrollBar";
34 MotifWindow.java This class is a Motif representation of a Window that will be returned by the MotifWidgetFactory. public class MotifWindow implements Window { public String tostring(){ return "MotifWindow";
35 AWTWidgetFactory.java This is a second implementation of a WidgetFactory that returns AWT widgets. import java.rmi.*; import java.rmi.server.*; public class AWTWidgetFactory extends UnicastRemoteObject implements WidgetFactory { public AWTWidgetFactory() throws RemoteException{ super(); try { Naming.rebind("rmi:///WidgetFactory",this); System.out.println("Server ready"); catch(exception e){ System.err.println("Failure setting up WidgetFactory: " + e.getmessage());
36 public static void main(string[] args){ try { new AWTWidgetFactory(); catch(exception e){ System.err.println("Failure creating WidgetFactory: " + e.getmessage()); essage()); //Remote methods public Window createwindow(){ return new AWTWindow(); public ScrollBar createscrollbar(){ return new AWTScrollBar();
37 AWTScrollBar.java public class AWTScrollBar implements ScrollBar { public String tostring(){ return "AWTScrollBar";
38 AWTWindow.java public class AWTWindow implements Window { public class AWTWindow implements Window { public String tostring(){ return "AWTWindow";
What are patterns? Design Patterns. Design patterns. Creational patterns. The factory pattern. Factory pattern structure. Lecture 10: OOP, autumn 2003
What are patterns? Design Patterns Lecture 10: OOP, autumn 2003 Many recurring problems are solved in similar ways This wisdom is collected into patterns design patterns - about software design Other kinds
More informationDesign Patterns. Lecture 10: OOP, autumn 2003
Design Patterns Lecture 10: OOP, autumn 2003 What are patterns? Many recurring problems are solved in similar ways This wisdom is collected into patterns design patterns - about software design Other kinds
More informationObject-Oriented Oriented Programming Factory Method Pattern Abstract Factory Pattern. CSIE Department, NTUT Woei-Kae Chen
Object-Oriented Oriented Programming Factory Method Pattern Abstract Factory Pattern CSIE Department, NTUT Woei-Kae Chen Factory Method Pattern Factory Method Pattern Creational pattern Factory Method:
More information» Building a user interface toolkit that supports multiple look and feel standards WINDOWS XP, MAC OS X, Motif, Presentation Manager, X Window
Abstract Factory Pattern Creational Intent Provide an interface for creating families of related or dependent objects without specifying their concrete classes Motivation» Building a user interface toolkit
More informationProvide an interface for creating families of related or dependent objects without specifying their concrete classes
Intent Abstract Factory Pattern Creational Provide an interface for creating families of related or dependent objects without specifying their concrete classes The pattern is not abstract just a poor choice
More informationJAVA RMI. Remote Method Invocation
1 JAVA RMI Remote Method Invocation 2 Overview Java RMI is a mechanism that allows one to invoke a method on an object that exists in another address space. The other address space could be: On the same
More informationCreational Design Patterns
Creational Design Patterns Creational Design Patterns Structural Design Patterns Behavioral Design Patterns GoF Design Pattern Categories Purpose Creational Structural Behavioral Scope Class Factory Method
More informationDistributed Systems. 02r. Java RMI Programming Tutorial. Paul Krzyzanowski TA: Long Zhao Rutgers University Fall 2017
Distributed Systems 02r. Java RMI Programming Tutorial Paul Krzyzanowski TA: Long Zhao Rutgers University Fall 2017 1 Java RMI RMI = Remote Method Invocation Allows a method to be invoked that resides
More informationRemote Method Invocation
Remote Method Invocation RMI Dr. Syed Imtiyaz Hassan Assistant Professor, Deptt. of CSE, Jamia Hamdard (Deemed to be University), New Delhi, India. s.imtiyaz@jamiahamdard.ac.in 1 Agenda Introduction Creating
More information1 interface TemperatureSensor extends java.rmi.remote 2 { 3 public double gettemperature() throws java.rmi.remoteexception; 4 public void
1 interface TemperatureSensor extends java.rmi.remote 2 { 3 public double gettemperature() throws java.rmi.remoteexception; 4 public void addtemperaturelistener ( TemperatureListener listener ) 5 throws
More informationDesign Patterns #3. Reid Holmes. Material and some slide content from: - GoF Design Patterns Book - Head First Design Patterns
Material and some slide content from: - GoF Design Patterns Book - Head First Design Patterns Design Patterns #3 Reid Holmes Lecture 16 - Thursday November 15 2011. GoF design patterns $ %!!!! $ "! # &
More informationRemote Method Invocation in Java
Remote Method Invocation in Java Ajay Khatri Senior Assistant Professor,Department IT Acropolis Institute of Technology & Research ajay.acropolis@gmail.com What is RMI RMI is an API that provides a mechanism
More informationCreational Patterns. Factory Method (FM) Abstract Factory (AF) Singleton (SI) Prototype (PR) Builder (BU)
Creational Patterns Creational Patterns Factory Method (FM) Abstract Factory (AF) Singleton (SI) Prototype (PR) Builder (BU) Factory Method (FM) Intent: Define an interface for creating an object, but
More informationRemote Method Invocation
Non-101samples available here: https://github.com/101companies/101repo/tree/master/languages/aspectj/javarmisamples Remote Method Invocation Prof. Dr. Ralf Lämmel Universität Koblenz-Landau Software Languages
More informationIntroduction and History
Pieter van den Hombergh Fontys Hogeschool voor Techniek en Logistiek September 15, 2016 Content /FHTenL September 15, 2016 2/28 The idea is quite old, although rather young in SE. Keep up a roof. /FHTenL
More informationLecture 21: Design Patterns III
Lecture 21: Design Patterns III Software System Design and Implementation ITCS/ITIS 6112/8112 001 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Nov.
More informationRMI (Remote Method Invocation) Over the year, there have been 3 different approaches to application development:
RMI (Remote Method Invocation) History: Over the year, there have been 3 different approaches to application development: 1. the traditional approach. 2. the client / server approach and 3. the component-
More information03 Remote invocation. Request-reply RPC. Coulouris 5 Birrel_Nelson_84.pdf RMI
03 Remote invocation Request-reply RPC Coulouris 5 Birrel_Nelson_84.pdf RMI 2/16 Remote Procedure Call Implementation client process Request server process client program client stub procedure Communication
More informationComponent-Based Software Engineering
Component-Based Software Engineering Remote Method Invocation Paul Krause Introduction to RMI Lecture 11 - RMI Simple Example - DivideServer Demo of this example Review a more complex example - StudentEnrollment
More informationThe UNIVERSITY of EDINBURGH. SCHOOL of INFORMATICS. CS4/MSc. Distributed Systems. Björn Franke. Room 2414
The UNIVERSITY of EDINBURGH SCHOOL of INFORMATICS CS4/MSc Distributed Systems Björn Franke bfranke@inf.ed.ac.uk Room 2414 (Lecture 3: Remote Invocation and Distributed Objects, 28th September 2006) 1 Programming
More information6.3 Patterns. Definition: Design Patterns
Subject/Topic/Focus: Analysis and Design Patterns Summary: What is a pattern? Why patterns? 6.3 Patterns Creational, structural and behavioral patterns Examples: Abstract Factory, Composite, Chain of Responsibility
More informationRemote Method Invocation
Remote Method Invocation A true distributed computing application interface for Java, written to provide easy access to objects existing on remote virtual machines Provide access to objects existing on
More informationContents. Java RMI. Java RMI. Java RMI system elements. Example application processes/machines Client machine Process/Application A
Contents Java RMI G53ACC Chris Greenhalgh Java RMI overview A Java RMI example Overview Walk-through Implementation notes Argument passing File requirements RPC issues and RMI Other problems with RMI 1
More informationLecture 20: Design Patterns II
Lecture 20: Design Patterns II Software System Design and Implementation ITCS/ITIS 6112/8112 001 Fall 2008 Dr. Jamie Payton Department of Computer Science University of North Carolina at Charlotte Nov.
More information#,!" $* ( #+,$ $$ $# -.,$ / 0' ".12 $ $$ 5/ #$" " " $ $ " # $ / 4 * # 6/ 8$8 ' # 6 $! 6$$ #$ * $ $$ ** 4 # 6 # * 0; & *! # #! #(' 7 / $#$ -.
! " $ %&(& $ $ $* ( +,$ $$ $ -.,$ / 0 ".12 ) ($$ ( 4, /!" ($$ ( 4, / 4 0 ($ $ $ $ $$ 5/ $" " " $ $ " $ / 4 * %!&& $ $$ ** 4 6 7$ 4 0 %!&& $ 88 $ 6 67 $ / ** 7$ 4.12 )*&$& 6/ 8$8 6 $! 6$$ $ * 67$ : $* $
More informationGeneric architecture
Java-RMI Lab Outline Let first builds a simple home-made framework This is useful to understand the main issues We see later how java-rmi works and how it solves the same issues Generic architecture object
More informationLast Class: Network Overview. Today: Distributed Systems
Last Class: Network Overview =>Processes in a distributed system all communicate via a message exchange. Physical reality: packets Abstraction: messages limited size arbitrary size unordered (sometimes)
More informationIJESRT. http: //
IJESRT [Monika,1(4): Jun., 2012] INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY Innovative Techniquee of Message Passing In Loosely Coupled System Monika Arya* Department of Computer
More informationCSci Introduction to Distributed Systems. Communication: RPC In Practice
CSci 5105 Introduction to Distributed Systems Communication: RPC In Practice Linux RPC Language-neutral RPC Can use Fortran, C, C++ IDL compiler rpgen N to generate all stubs, skeletons (server stub) Example:
More informationDistributed Systems COMP 212. Lecture 10 Othon Michail
Distributed Systems COMP 212 Lecture 10 Othon Michail RMI: Remote Method Invocation Allows an object running in one Java virtual machine to invoke methods on an object running in another Java virtual machine.
More informationWritten by: Dave Matuszek
RMI Remote Method Invocation Written by: Dave Matuszek appeared originally at: http://www.cis.upenn.edu/~matuszek/cit597-2003/ 28-May-07 The network is the computer * Consider the following program organization:
More informationBharati Vidyapeeth s Institute of Computer Applications and Management A-4, Paschim Vihar, New Delhi-63.
Bharati Vidyapeeth s Institute of Computer Applications and Management A-4, Paschim Vihar, New Delhi-63. MCA III rd Semester Second Internal: Java Programming (MCA-205) Note: All the questions are compulsory.
More informationObject Interaction. Object Interaction. Introduction. Object Interaction vs. RPCs (2)
Introduction Objective To support interoperability and portability of distributed OO applications by provision of enabling technology Object interaction vs RPC Java Remote Method Invocation (RMI) RMI Registry
More informationHow are classes loaded into the Java Virtual Machine (JVM)? from the local file system (CLASSPATH). by an instance of ClassLoader
36 ClassLoader How are classes loaded into the Java Virtual Machine (JVM)? from the local file system (CLASSPATH). by an instance of ClassLoader... and when? - When they are needed the first time. class
More informationRMI. Remote Method Invocation. 16-Dec-16
RMI Remote Method Invocation 16-Dec-16 The network is the computer Consider the following program organization: method SomeClass call AnotherClass returned object computer 1 computer 2 If the network is
More informationRMI Example RMI. CmpE 473 Internet Programming RMI
CmpE 473 Internet Programming Pınar Yolum pinar.yolum@boun.edu.tr Department of Computer Engineering Boğaziçi University RMI Examples from Advanced Java: Internet Applications, Art Gittleman Remote Method
More informationSoftware Design Patterns. Aliaksei Syrel
Software Design Patterns Aliaksei Syrel 1 Pattern types Creational Patterns Behavioural Patterns Structural Patterns 2 Creational Patterns Creational design patterns deal with object creation mechanisms,
More informationJAC444 - Lecture 11. Remote Method Invocation Segment 2 - Develop RMI Application. Jordan Anastasiade Java Programming Language Course
JAC444 - Lecture 11 Remote Method Invocation Segment 2 - Develop RMI Application 1 Remote Method Invocation In this lesson you will be learning about: Designing RMI application Developing distributed object
More informationLaboratorio di Progettazione di Sistemi Software Design Pattern Creazionali. Valentina Presutti (A-L) Riccardo Solmi (M-Z)
Laboratorio di Progettazione di Sistemi Software Design Pattern Creazionali Valentina Presutti (A-L) Riccardo Solmi (M-Z) Indice degli argomenti Catalogo di Design Patterns creazionali: Abstract Factory
More informationRemote Procedure Call
Remote Procedure Call Suited for Client-Server structure. Combines aspects of monitors and synchronous message passing: Module (remote object) exports operations, invoked with call. call blocks (delays
More informationLab 2 : Java RMI. request sayhello() Hello interface remote object. local object. response "Hello world"
Lab 2 : Java RMI 1. Goals In this lab you will work with a high-level mechanism for distributed communication. You will discover that Java RMI provides a mechanism hiding distribution in OO programming.
More informationApplications. RMI, RPC and events. Request reply protocol External data representation. Operating System
Figure 5.1 Middleware layer Applications RMI, RPC and events Request reply protocol External data representation Middleware layers Operating System Instructor s Guide for Coulouris, Dollimore and Kindberg
More information5.4. Events and notifications
5.4. Events and notifications Distributed event-based systems extend local event model Allowing multiple objects at diff. locations to be notified of events taking place at an object Two characteristics:
More informationDistributed Software Systems
RMI Programming Distributed Software Systems RMI Programming RMI software Generated by IDL compiler Proxy Behaves like remote object to clients (invoker) Marshals arguments, forwards message to remote
More informationDeveloping RMI Based Server (ChatServer)
Introduction Developing RMI Based Server (ChatServer) In the last module, we have learnt about RMI. In this module we will look at how to create an interactive application like chat server using RMI. Demo
More informationCreational Patterns for Variability
Creational Patterns for Variability Prof. Dr. U. Aßmann Chair for Software Engineering Faculty of Informatics Dresden University of Technology Version 06-1.4, Oct 30, 2006 Design Patterns and Frameworks,
More informationDesign Pattern- Creational pattern 2015
Creational Patterns Abstracts instantiation process Makes system independent of how its objects are created composed represented Encapsulates knowledge about which concrete classes the system uses Hides
More informationCS193k, Stanford Handout #12. Threads 4 / RMI
CS193k, Stanford Handout #12 Spring, 99-00 Nick Parlante Threads 4 / RMI Semaphore1 Semaphore1 from last time uses the count in a precise way to know exactly how many threads are waiting. In this way,
More informationModulo II Socket, RMI e Corba
Modulo II Socket, RMI e Corba Prof. Ismael H F Santos April 05 Prof. Ismael H. F. Santos - ismael@tecgraf.puc-rio.br 1 Ementa Sistemas Distribuídos Cliente-Servidor April 05 Prof. Ismael H. F. Santos -
More informationDistributed Systems. 5. Remote Method Invocation
Distributed Systems 5. Remote Method Invocation Werner Nutt 1 Remote Method Invocation 5.1 Communication between Distributed Objects 1. Communication between Distributed Objects 2. RMI 2 Middleware Middleware
More informationhttps://www.lri.fr/~linaye/gl.html
Software Engineering https://www.lri.fr/~linaye/gl.html lina.ye@centralesupelec.fr Sequence 3, 2017-2018 1/50 Software Engineering Plan 1 2 3 4 5 2/50 Software Engineering ground Evolution of Program 3/50
More informationReflection/RMI 4/28/2009
Reflection/RMI 4/28/2009 1 Opening Discussion Solutions to the interclass problem. Do you have any questions about the assignment? Minute Essays Why are heap operations always O(log n)? Java programs connecting
More informationpresentation DAD Distributed Applications Development Cristian Toma
Lecture 8 S4 - Core Distributed Middleware Programming in JEE presentation DAD Distributed Applications Development Cristian Toma D.I.C.E/D.E.I.C Department of Economic Informatics & Cybernetics www.dice.ase.ro
More informationDistributed Computing Remote Procedure Call
Charitha Chanamolu CSE-660 Lab 5 Distributed Computing Remote Procedure Call Script started on Wed 03 May 2017 06:56:09 PM PDT 1. Created a File name rand.x charitha@charitha-linux:~/documents/lab5 [01;32mcharitha@charitha-linux
More informationDesarrollo de Aplicaciones en Red RMI. Introduction. Considerations. Considerations. RMI architecture
session Desarrollo de Aplicaciones en Red José Rafael Rojano Cáceres http://www.uv.mx/rrojano RMI Remote Method Invocation Introduction Java RMI let s work calling remote methods. Underneath it works with
More information55:182/22C:182. Distributed Application Frameworks Java RMI, CORBA, Web Services (SOAP)
55:182/22C:182 Distributed Application Frameworks Java RMI, CORBA, Web Services (SOAP) Broker Architecture Example Java Remote Method Invocation (RMI) Invoking a method which lies in a different address
More informationObject-Oriented Design
Object-Oriented Design Lecturer: Raman Ramsin Lecture 20: GoF Design Patterns Creational 1 Software Patterns Software Patterns support reuse of software architecture and design. Patterns capture the static
More informationDISTRIBUTED OBJECTS AND REMOTE INVOCATION
DISTRIBUTED OBJECTS AND REMOTE INVOCATION Introduction This chapter is concerned with programming models for distributed applications... Familiar programming models have been extended to apply to distributed
More informationDistributed object component middleware I - Java RMI
Prof. Dr. Claudia Müller-Birn Institute for Computer Science, Networked Information Systems Distributed object component middleware I - Java RMI Nov 15th, 2011 Netzprogrammierung (Algorithmen und Programmierung
More informationSingleton Pattern Creational
Singleton Pattern Creational Intent» Ensure a class has only one instance» Provide a global point of access Motivation Some classes must only have one instance file system, window manager Applicability»
More informationDistributed object component middleware I - Java RMI
Prof. Dr. Claudia Müller-Birn Institute for Computer Science, Networked Information Systems Distributed object component middleware I - Java RMI Nov 15th, 2011 Netzprogrammierung (Algorithmen und Programmierung
More informationCS 5523 Operating Systems: Remote Objects and RMI
CS 5523 Operating Systems: Remote Objects and RMI Instructor: Dr. Tongping Liu Thank Dr. Dakai Zhu and Dr. Palden Lama for providing their slides. Outline Distributed/Remote Objects Remote object reference
More informationCOMP 6231: Distributed System Design
COMP 6231: Distributed System Design Remote Invocation and RMI Based on Chapters 5, 7 of the text book and the slides from Prof. M.L. Liu, California Polytechnic State University COMP 6231, Fall 2013 Remote
More informationMaterial and some slide content from: - GoF Design Patterns Book. Design Patterns #1. Reid Holmes. Lecture 11 - Tuesday October
Material and some slide content from: - GoF Design Patterns Book Design Patterns #1 Reid Holmes Lecture 11 - Tuesday October 19 2010. GoF design patterns!"#$%&'()*$+,--&.*' /.&,-("*,0 1-.23-2.,0 4&5,6(".,0
More informationCommunication Basics, RPC & RMI. CS403/534 Distributed Systems Erkay Savas Sabanci University
Communication Basics, RPC & RMI CS403/534 Distributed Systems Erkay Savas Sabanci University 1 Communication Models 1. Remote Procedure Call (RPC) Client/Server application 2. Remote Method Invocation
More informationDesign Patterns. CSE870: Advanced Software Engineering (Design Patterns): Cheng
Design Patterns Acknowledgements Materials based on a number of sources D. Levine and D. Schmidt. Helm Gamma et al S. Konrad Motivation Developing software is hard Designing reusable software is more challenging
More informationThe Authenticator Pattern
The Authenticator Pattern F. Lee Brown, Jr. James DiVietri Graziella Diaz de Villegas CyberGuard Corp. Fort Lauderdale, FL 33309 Eduardo B. Fernandez Dept. of Computer Science and Eng. Florida Atlantic
More informationCourse Snapshot. The Next Few Classes. Parallel versus Distributed Systems. Distributed Systems. We have covered all the fundamental OS components:
Course Snapshot The Next Few Classes We have covered all the fundamental OS components: Architecture and OS interactions Processes and threads Synchronization and deadlock Process scheduling Memory management
More informationDesign Patterns! Acknowledgements!
Design Patterns! Acknowledgements! Materials based on a number of sources! D. Levine and D. Schmidt!. Helm! Gamma et al! S. Konrad! (Cheng) 1 Motivation! Developing software is hard! Designing reusable
More informationWhat is a Pattern? Lecture 40: Design Patterns. Elements of Design Patterns. What are design patterns?
What is a Pattern? Lecture 40: Design Patterns CS 62 Fall 2017 Kim Bruce & Alexandra Papoutsaki "Each pattern describes a problem which occurs over and over again in our environment, and then describes
More informationCourse Snapshot. The Next Few Classes
Course Snapshot We have covered all the fundamental OS components: Architecture and OS interactions Processes and threads Synchronization and deadlock Process scheduling Memory management File systems
More informationOutline. EEC-681/781 Distributed Computing Systems. The OSI Network Architecture. Inter-Process Communications (IPC) Lecture 4
EEC-681/781 Distributed Computing Systems Lecture 4 Department of Electrical and Computer Engineering Cleveland State University wenbing@ieee.org Outline Inter-process communications Computer networks
More informationCSE 660 Lab 2 Khoi Pham Thanh Ho April 27 th, 2015
CSE 660 Lab 2 Khoi Pham Thanh Ho April 27 th, 2015 Comment and Evaluation: This lab focuses on two ways to call a function from Client to Server: Remote Procedure Call (RPC) is basic method in C for Server
More informationDesign Patterns. Softwaretechnik. Matthias Keil. Albert-Ludwigs-Universität Freiburg
Design Patterns Softwaretechnik Matthias Keil Institute for Computer Science Faculty of Engineering University of Freiburg 6. Mai 2013 Design Patterns Gamma, Helm, Johnson, Vlissides: Design Patterns,
More informationCS193k, Stanford Handout #13. HW3 RTable. The goal is to create a typical Table/TableModel setup with the tiny variation that...
CS193k, Stanford Handout #13 Spring, 99-00 Nick Parlante HW3 RTable The goal is to create a typical Table/TableModel setup with the tiny variation that... There are many tables, but just one table model.
More informationDesign Patterns. Software Engineering. Sergio Feo-Arenis slides by: Matthias Keil
Design Patterns Software Engineering Sergio Feo-Arenis slides by: Matthias Keil Institute for Computer Science Faculty of Engineering University of Freiburg 30.06.2014 Design Patterns Literature Gamma,
More informationDistributed Computing
Distributed Computing Computing on many systems to solve one problem Why? - Combination of cheap processors often more cost-effective than one expensive fast system - Flexibility to add according to needs
More informationSOFTWARE PATTERNS. Joseph Bonello
SOFTWARE PATTERNS Joseph Bonello MOTIVATION Building software using new frameworks is more complex And expensive There are many methodologies and frameworks to help developers build enterprise application
More informationDistributed Systems Project 4 Assigned: Friday March 20 Due: Friday April 3, 11:59pm
95-702 Distributed Systems Project 4 Assigned: Friday March 20 Due: Friday April 3, 11:59pm Project Topics: Java RMI and a distributed, Mobile to Cloud application This project has 2 tasks. Task 1 is a
More informationDISTRIBUTED COMPUTING
DISTRIBUTED COMPUTING SYSTEMS 1 REMOTE PROCEDURE CALL RPC-REMOTE PROCEDURE CALL RMI-REMOTE METHOD INVOCATION 2 3 RPC TECHNOLOGY Remote procedure call is a technology that allows computer programs to call
More informationCS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University
CS 555: DISTRIBUTED SYSTEMS [RMI] Frequently asked questions from the previous class survey Shrideep Pallickara Computer Science Colorado State University L21.1 L21.2 Topics covered in this lecture RMI
More informationDistributed Objects SPL/ SPL 201 / 0 1
Distributed Objects 1 distributed objects objects which reside on different machines/ network architectures, benefits, drawbacks implementation of a remote object system 2 Why go distributed? large systems
More informationCSE870: Advanced Software Engineering (Cheng) 1
Design Patterns Acknowledgements Materials based on a number of sources D. Levine and D. Schmidt. Helm Gamma et al S. Konrad Motivation Developing software is hard Designing reusable software is more challenging
More informationRemote Objects and RMI
Outline Remote Objects and RMI Instructor: Dr. Tongping Liu Distributed/Remote Objects Remote object reference (ROR) Remote Method Invocation (RMI) Case study and example: Java RMI Other issues for objects
More informationSoftware Architecture
Software Engineering 8.1. 8. Introduction When, Why and What? Functional vs. Non-functional Coupling and Cohesion Patterns Macro architecture Layered Architecture Pipes and Filters Blackboard Architecture
More informationChapter 4: Processes. Process Concept. Process State
Chapter 4: Processes Process Concept Process Scheduling Operations on Processes Cooperating Processes Interprocess Communication Communication in Client-Server Systems 4.1 Process Concept An operating
More informationFirewall Issues. The possible scenarios: the RMI client, the server, or both can be operating from behind a firewall
Firewall Issues Firewalls are inevitably encountered by any networked enterprise application that has to operate beyond the confines of an Intranet Typically, firewalls block all network traffic, with
More informationJAVA RMI Java, summer semester
JAVA RMI Overview Remote Method Invocation usage of remote object objects in a different VM (on the same computer or over the network) as there would be local objects (almost) calls just take longer time
More informationCMSC 202. Exceptions
CMSC 202 Exceptions Error Handling In the ideal world, all errors would occur when your code is compiled. That won t happen. Errors which occur when your code is running must be handled by some mechanism
More informationDistributed Applications Programming. Lab 4
Lebanese University Info 408 - Distributed Applications Programming Faculty of Science 2018-2019 Section I Antoun Yaacoub ChatRoom with RMI (90 minutes) Info 408 Distributed Applications Programming Lab
More informationSingleton Pattern Creational. » Ensure a class has only one instance» Provide a global point of access
Singleton Pattern Creational Intent» Ensure a class has only one instance» Provide a global point of access Motivation Some classes must only have one instance file system, window manager Applicability»
More informationRMI Case Study. A Typical RMI Application
RMI Case Study This example taken directly from the Java RMI tutorial http://java.sun.com/docs/books/tutorial/rmi/ Editorial note: Please do yourself a favor and work through the tutorial yourself If you
More informationChapter 4 Remote Procedure Calls and Distributed Transactions
Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 4 Remote Procedure Calls and Distributed Transactions Outline
More informationAn Introduction to Patterns
An Introduction to Patterns Robert B. France Colorado State University Robert B. France 1 What is a Pattern? - 1 Work on software development patterns stemmed from work on patterns from building architecture
More informationProvides an interface for creating families of related or dependent objects without specifying their concrete classes.
Tom Hoch The Abstract Factory Provides an interface for creating families of related or dependent objects without specifying their concrete classes. Is one level of abstraction higher than the factory
More informationCommunication and Distributed Processing
Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 4 Remote Procedure Calls and Distributed Transactions Outline
More informationActivation of remote objects
Activation of remote objects The Activatable class Prior to the release of Java 2 SDK, an instance of a UnicastRemoteObject could be accessed from a server program that created an instance of the remote
More informationRemote Method Invocation Benoît Garbinato
Remote Method Invocation Benoît Garbinato 1 Fundamental idea (1) Rely on the same programming paradigm for distributed applications as for centralized applications In procedural languages, we will rely
More informationRemote Method Invocation. Benoît Garbinato
Remote Method Invocation Benoît Garbinato Fundamental idea (1) Rely on the same programming paradigm for distributed applications as for centralized applications In procedural languages, we will rely on
More informationChapter 8. Implementation Support
Chapter 8 Implementation Support Elements of windowing systems Windowing System: windowing system is a system for sharing a computer's graphical display resources/ GUI among multiple applications at the
More information