Distributed Systems Java RMI Chat System Project documentation

Size: px
Start display at page:

Download "Distributed Systems Java RMI Chat System Project documentation"

Transcription

1 PatrickNeubauer,TenzinDakpa DistributedSystems FreeUniversityofBolzano RMIChatSystemdocumentation Distributed Systems Java RMI Chat System Project documentation Projectdocumentationcontent: Al g o r i t h m D e s i g n 2 o Descriptionofsequence/flowchart o U M L d i a g r a m o Classes Testing 6 o Bugs o Performance C o m p a r i s o n w i t h the TCP i m p l e m e n t a t i o n 7 Installationandusageguide 8 usageoftheserver usageofclient.html A p p e n d i x : o S o u r c e c o d e (/sourcepdfs) Server.java ServerInterface.java ChatObject.java ChatObjectInterface.java Client.java o JavaDocPages(/dist/javadoc/index.html) page1

2 PatrickNeubauer,TenzinDakpa DistributedSystems FreeUniversityofBolzano RMIChatSystemdocumentation Algorithmdesign Thechatsystembasicallyretainsthesamebroadoutlineofthealgorithmonwhichwehad madetheprevioustcpimplementation.however,byusingrmi,weareabletoreduce workloadontheserver,whichinthetcpversionhadtoanalyzeeachmessagefromclients andparseitintoeithercommandsorregulartextmessage. Interfaces: TheinterfacesextendsRemoteClass. Server:ServerInterface Theserverinterfacesprovidesthreefollowingmethods. 1. Jointheserver:join() 2. Sendmessagetootherusers:send() 3. Disconnectfromtheserver:disconnect() Client:ChatObjectInterface Theclientinterfaceprovidesasinglemethod,whichwrapstheoldfunctionalityofthe previoustcpversion. Itbasicallymakestheclientdisplayamessageorsignalittoquit: handle(); Class Server:Server TheclassServerextendstheUnicastRemoteObjectandimplementstheserver interface.thisistheoneandonlyexecutablefortheserver. Client:ChatObject Aswehaverealizedthemainclientapplicationasanapplet,wehadtoimplementthe UnicastRemotObjectinthisClass.Thisclasswrapsaroundtheappletclasstoprovidethe remotefunctionalitytotheclient.thechatobjectinterfaceisimplementedinthisclass. Client:Clientapplet ClientappletreusedtheoldcodesfromtheTCPimplementation.Ithasbeenslightly updatedtomeldwiththechatobjectclasstoprovideremoteimplementation. Descriptionofsequence/flowchart: Server 0. Startrmiregistry. 1. Registertheserveras RMICHAT 2. Waitforclientstocallitsconnect()RMImethod. 3. ThismethodgivestotheserveraremotestuboftheClient. 4. Onsuccessfulconnectionaddthisclientstubtothelistofconnectedclientsandsend awelcomemessagetotheclientusingthermimethodoftheclientremoteobject. ChatObject.handle( Welcome ) 5. Waitforclienttocallthenextserverrmimethodsend(Stringmessage)thismethod page2

3 PatrickNeubauer,TenzinDakpa DistributedSystems FreeUniversityofBolzano RMIChatSystemdocumentation takesthestringpassedasparameterandbroadcastittoalltheclientregisteredin theserver. 6. Waitforclienttocallthelastserverrmimethoddisconnect()whichremovesthe referenceoftheremoteclientintheserverslistofclient. 7. Whentheserveradministratororderstheservertoshutdown,closetheprogram.(as courtesy,informconnectedclientthatserverwillshutdown.notimplemented.) Client 0. Getthehostaddressoftheserverfromtheuser. 1. Lookupandgettheserverstubusingthelookup.Thisgivestheserverremote referencetotheclient. 2. CreateaChatObject.Itistheremoteobjectoftheclient. 3. Calltheserverrmimethodconnect()andsenditsownstub(ChatObject)sothatthe servercanusethemethodspresentlocallyontheclient. 4. Theserverwillsendawelcomemessagetotheclientiftheclienthasbeen succesfullyconnected. 5. Theclientcannowchatwithotherusers.Typethemessageandclickonthesend buttontocallthermimethodserver.send(stringmessage).theeffectofthis methodhasbeendescribedearlier. 6. Theclientcandisconnectfromtheserverbysendingthermimethod Server.disconnect().Ontheserversidetheclientstubisremovedfromthelistof clients,whichwillstoptheclientfromreceivinganynewmessage. 7. Asourclienthasbeenrealizedasanapplet,wesimplydisablethecontrolofthe appletandasktheusertoclosethewebpage. RMICHATSYSTEMPROGRAMSEQUENCEGRAPH: page3

4 PatrickNeubauer,TenzinDakpa DistributedSystems FreeUniversityofBolzano RMIChatSystemdocumentation UMLdiagram: UMLdiagramforserver: page4

5 PatrickNeubauer,TenzinDakpa DistributedSystems FreeUniversityofBolzano RMIChatSystemdocumentation UMLdiagramforclient: Classes: Therearetheflowingclassesbeingusedfromtheserver: Server.java ServerInterface.java Therearetheflowingclassesbeingusedfromtheclient: ChatObject.java ChatObjectInterface.java Client.java page5

6 PatrickNeubauer,TenzinDakpa DistributedSystems FreeUniversityofBolzano RMIChatSystemdocumentation Testing: Deployment TheserversuccessfullyrunsonWindowsXP,kubuntu8.04,MacOSX TheclientappletsuccessfullyworksinFirefox3andIE7andSafari. Bugs! Wehavenomajorbugs.Theprogramisfunctional,andmoderatelysafe.Wehaveusedone deprecatedmethodsbelongingtothethreadclass,whichresultsincompilerwarnings. Performancetestingidea Wewouldliketotesttheserverperformanceinthefollowingway.Wedefineastandard testmessage,astringof80chars.wethenmodifyourclientsoastobeabletosendthis testmessageandconfirmthatitreachestheserveranditisechoedbacktotheclient. Eachclienthasauniquetestmessagesothatitwillbeabletoidentifyitsecho. Theclientwillsendafixednumberoftestmessagesandcounthowmanyofthemessagesis receivedback,andcalculatethetimetakenbyeachmessage. Thetestscenario:westarttheserver. Thenweconnect1,5,10,20,30,50clients. Ateachpopulationlevel,wedothetestandplottheaverageresponsetimeandreliabilityin atable,likethefollowing: No.ofClient MessageLoss Latency Messageloss=(messagesent received)/100 Latency=sumoflatencyforeachmessage/noofmessagereceived AsnextwedothesameperformancetestfortheTCPimplementationoftheserver. Finally,wegetanideaofthewholeperformanceofbothsystems. DifferencesfromtheTCPImplementation page6

7 PatrickNeubauer,TenzinDakpa DistributedSystems FreeUniversityofBolzano RMIChatSystemdocumentation Themajordifferencesfromtheprogrammer spointofviewisthattheprogramismuch simplerandeasiertounderstand.abeginnerjavaprogrammercanstartimplementingthis kindofnetworkapplicationwithouthavingtodealwithlowlevelnetworki/olikesockets, tcpprotocolsetc. Regardingreliability:theRMIabstractionofmakingthenetworkinvisiblebetweentheclient andtheservereffectsthereliabilityofthechatserviceinseveralways. ItisdebatablewhetherthisoverheadinwrappingourserviceinRMImethodsjustifythe extracodingwhichmayintroduceadditionalbugs.itisalsonotclearhowefficientlyand safelyrmicanhandlemultiplethreads.thereforwedonotknowhowwellthisserverwill scaleuptosupportlargernumberofclientsreliably.atpresentwehavelimitedourserver toafixedmaximumlimitof50clients. Performance: Ascanbeexpected,theRMIabstractioncomesatacostofhighersystemrequirement(call marshallingandsoon)thenacomparabletcpserver.atpresent,ourrmimethodsdirectly interactwiththeserverobjectandclientobject.thisissignificantlyslowerthensending simpletextmessageaswasdoneinthetcpserver.weareawarethatabetterandmore efficientwayofimplementingtheserverwouldbetothinkoftheserverasanetwork printer.itwouldspoolorqueuethemessage,andatthesametime,asecondthreadwill takemessagefromthequeueandsendittoalltheclient.ontheclientside,therecouldbea localmessage inqueue,whichwillreceivemessagefromtheserverssecondthread.this enabletheservertoreturnquicklyfromthermimethodofsendingmessagetoclient.on theclientside,thermimethodtosendmessageotheserverwillalsoreturnquickly(asit hasonlytoenterthemessageinthequeue)andasimilarsecondthreadwoulddisplaythe messageinthequeue.theseproposalsareaimedatreducingthetimeonthermimethods, astheytakemoretimetoexecutethenlocalmethods.thiswayourperformancegap betweenthermiserverandtcpserverwouldbeminimum. InstallationandUsageGuide: page7

8 PatrickNeubauer,TenzinDakpa DistributedSystems FreeUniversityofBolzano RMIChatSystemdocumentation Forrunningtheserverpleasefollowtheseinstructions: UsageoftheServer: Usethecommandlineandbesurethatyouareinthesamefolderwhereyoufind alsothisdocumentation,theclient.htmlandthefolderfortheclientandthe server. ThenyoucanlaunchtheRMIregistrywiththefollowingcommand(afterthat nothingspecialhappensbutpleasedon tclosethisterminalwindowwhile runningtheserver): o rmiregistry Openanewterminalwindowandtypethefollowingcommandforstartingthe server: o java rmiserver.server Ifyougetapop upwindowinwhichiswritten Serverrunning,pressyestostop theserverstartedcorrectly. Youcanstoptheserverclickonthe Yes button,thentheprogramterminates. Asnextyoucanalsoterminatethermiregistrybychangingtotheterminal windowwherethermiregistrywasstartedandtype^c. Usageof client.html : Useyourwebbrowsertostarttheclient.Besurethatthe client.html fileisina folderthathasasubfolder rmiclient thatcontainsthenecessaryfilesfor launchingtheclient. Thenyoucanlaunchtheclientbyclickingon client.html orexplicitlylaunching itbyyourwebbrowser(ifnotautomaticallyopened). AsnextyouareaskedtoentertheIPoftheserverandyourusername. Thentheappletgetslaunchedandyoucanconnectfinallytotheserverwhich youhaveenteredbyclickingonthe Connect button.besurethattheserveris runningifyouraretestingitonyourlocalmachine. Nowyouareabletosendmessagesbytypingitintotheemptyfieldandclicking on Send buttonforsendingit. Forleavingthechatyoucanclickonthe Bye buttonandthenclosethebrowser window. page8

Distributed Applications Programming. Lab 4

Distributed 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 information

Info 408 Distributed Applications programming 2 nd semester of Credits: 5 Lecturer: Antoun Yaacoub Ph.D.

Info 408 Distributed Applications programming 2 nd semester of Credits: 5 Lecturer: Antoun Yaacoub Ph.D. Lebanese University Faculty of Sciences I Master 1 degree Computer Sciences Info 408 Distributed Applications programming 2 nd semester of 2018-2019 Credits: 5 Lecturer: Antoun Yaacoub Ph.D. Info 408 Distributed

More information

Remote Method Invocation

Remote 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 information

Distributed Applications Programming. Lab 7

Distributed Applications Programming. Lab 7 Lebanese University Info 408 - Distributed Applications Programming Faculty of Sciences 2012-2013 Section I Antoun Yaacoub Info 408 Distributed Applications Programming Lab 7 Chat Server with RMI - Part

More information

ECE 462 Object-Oriented Programming using C++ and Java. Multi-Player Game using Network

ECE 462 Object-Oriented Programming using C++ and Java. Multi-Player Game using Network ECE 462 Object-Oriented Programming g using C++ and Java Multi-Player Game using Network Yung-Hsiang Lu yunglu@purdue.edu d YHL Multi-Player Game 1 Demonstration YHL Multi-Player Game 2 YHL Multi-Player

More information

Reflection/RMI 4/28/2009

Reflection/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 information

INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY

INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY [Kumar, 2(3): March, 2013] ISSN: 2277-9655 IJESRT INTERNATIONAL JOURNAL OF ENGINEERING SCIENCES & RESEARCH TECHNOLOGY Performance Comparison of Physical Clock Synchronization Algorithms Z. Mahesh Kumar

More information

Remote Method Invocation R.M.I.

Remote Method Invocation R.M.I. Distributed Computing Remote Method Invocation R.M.I. Gheorghe Aurel Pacurar Distributed Computing using RMI Remote Method Invocation (RMI) allows object-to-object communication between different Java

More information

Advanced Topics in Operating Systems

Advanced Topics in Operating Systems Advanced Topics in Operating Systems MSc in Computer Science UNYT-UoG Dr. Marenglen Biba 8-9-10 January 2010 Lesson 10 01: Introduction 02: Architectures 03: Processes 04: Communication 05: Naming 06:

More information

Message Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1

Message Passing vs. Distributed Objects. 5/15/2009 Distributed Computing, M. L. Liu 1 Message Passing vs. Distributed Objects 5/15/2009 Distributed Computing, M. L. Liu 1 Distributed Objects M. L. Liu 5/15/2009 Distributed Computing, M. L. Liu 2 Message Passing versus Distributed Objects

More information

Chapter 2 Architectures. Software Architectures

Chapter 2 Architectures. Software Architectures Chapter 2 Architectures Software architectures of distributed systems System architectures of distributed systems 1 Software Architectures Software architecture describes how the software components are

More information

TTool Training. III. Using TTool

TTool Training. III. Using TTool TTool Training III. Using TTool Ludovic Apvrille ludovic.apvrille@telecom-paris.fr Eurecom, Office 223 Ludovic Apvrille - UML - 2005. Slide #1 I. Introduction TTool: main features Installing TTool Diagramming

More information

5 Distributed Objects: The Java Approach

5 Distributed Objects: The Java Approach 5 Distributed Objects: The Java Approach Main Points Why distributed objects Distributed Object design points Java RMI Dynamic Code Loading 5.1 What s an Object? An Object is an autonomous entity having

More information

Object-Oriented Systems Design RMI

Object-Oriented Systems Design RMI Object-Oriented Systems Design RMI Michael Hauser November 2001 Workshop: AW3 Module: EE5029A Tutor: Mr. Müller Course: M.Sc Distributes Systems Engineering Lecturer: Mr. Prowse CONTENTS Contents 1 Aims

More information

CS 455/655 Computer Networks Fall Programming Assignment 1: Implementing a Social Media App Due: Thursday, October 5 th, 2017 (1pm)

CS 455/655 Computer Networks Fall Programming Assignment 1: Implementing a Social Media App Due: Thursday, October 5 th, 2017 (1pm) CS 455/655 Computer Networks Fall 2017 Programming Assignment 1: Implementing a Social Media App Due: Thursday, October 5 th, 2017 (1pm) To be completed individually. Please review Academic Honesty noted

More information

CS 126 Lecture S5: Networking

CS 126 Lecture S5: Networking CS 126 Lecture S5: Networking Outline Introductions Connectivity Naming and addressing Abstractions and layering Example: socket programming Conclusions CS126 24-1 Randy Wang Review: Technology Advances

More information

CS 126 Lecture S5: Networking

CS 126 Lecture S5: Networking CS 126 Lecture S5: Networking Outline Introductions Connectivity Naming and addressing Abstractions and layering Example: socket programming Conclusions CS126 24-1 Randy Wang Review: Technology Advances

More information

Lecture 5: Object Interaction: RMI and RPC

Lecture 5: Object Interaction: RMI and RPC 06-06798 Distributed Systems Lecture 5: Object Interaction: RMI and RPC Distributed Systems 1 Recap Message passing: send, receive synchronous versus asynchronous No global Time types of failure socket

More information

Distributed Information Systems

Distributed Information Systems Distributed Objects and Remote Invocation Programming Models For Distributed Applications Objectives RPC and RMI. Remote invocation semantics. Implementation of RMI. References DSCD: Chapter 5 Conventional

More information

COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC)

COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC) COMMUNICATION PROTOCOLS: REMOTE PROCEDURE CALL (RPC) 1 2 CONVENTIONAL PROCEDURE CALL (a) (b) Parameter passing in a local procedure call: the stack before the call to read. The stack while the called procedure

More information

BSc. (Hons.) Computer Science with Network Security. Examinations for 2016 / Semester 2

BSc. (Hons.) Computer Science with Network Security. Examinations for 2016 / Semester 2 BSc. (Hons.) Computer Science with Network Security Cohort: BCNS/15A/FT Examinations for 2016 / Semester 2 MODULE: Network Programming MODULE CODE: CAN 2113C Duration: 2 ½ Hours Instructions to Candidates:

More information

Chapter 15: Distributed Communication. Sockets Remote Procedure Calls (RPCs) Remote Method Invocation (RMI) CORBA Object Registration

Chapter 15: Distributed Communication. Sockets Remote Procedure Calls (RPCs) Remote Method Invocation (RMI) CORBA Object Registration Chapter 15: Distributed Communication Sockets Remote Procedure Calls (RPCs) Remote Method Invocation (RMI) CORBA Object Registration Sockets Defined as an endpoint for communcation Concatenation of IP

More information

Remote Method Invocation Benoît Garbinato

Remote 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 information

Remote Method Invocation. Benoît Garbinato

Remote 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 information

EDT 0.8 Stakeholder Meeting SQL JNDI Data Sources

EDT 0.8 Stakeholder Meeting SQL JNDI Data Sources EDT 0.8 Stakeholder Meeting SQL JNDI Data Sources February 8, 2012 Project members: Stakeholder Meeting EDT 0.8 is currently under development For more on EDT 0.8 plans, see http://wiki.eclipse.org/edt:0.8.0_planning

More information

Distributed Programming with RMI. Overview CORBA DCOM. Prepared By: Shiba R. Tamrakar

Distributed Programming with RMI. Overview CORBA DCOM. Prepared By: Shiba R. Tamrakar Distributed Programming with RMI Overview Distributed object computing extends an object-oriented programming system by allowing objects to be distributed across a heterogeneous network, so that each of

More information

JAVA RMI. Remote Method Invocation

JAVA 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 information

Distributed Computing Remote Procedure Call

Distributed 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 information

BSc Computing CSY2026 Modern Networks. Module Tutor: Signed:

BSc Computing CSY2026 Modern Networks. Module Tutor: Signed: Division of Computing BSc Computing CSY2026 Modern Networks Date of Issue: 17/02/2017 Date for Submission: 28/04 2017 (23:59 by e-submission) Agreed Date for late submission: Student Name: Student ID:

More information

CORBA Java. Java. Java. . Java CORBA. Java CORBA (RMI) CORBA ORB. . CORBA. CORBA Java

CORBA Java. Java. Java. . Java CORBA. Java CORBA (RMI) CORBA ORB. . CORBA. CORBA Java CORBA Java?? OMG CORBA IDL C, C++, SmallTalk, Ada Java COBOL, ORB C Ada Java C++ CORBA Java CORBA Java (RMI) JDK12 Java CORBA ORB CORBA,, CORBA? CORBA,,, CORBA, CORBA CORBA Java (, ) Java CORBA Java :

More information

Assignment 2 Team Project: Distributed System and Application

Assignment 2 Team Project: Distributed System and Application Assignment 2 Team Project: Distributed System and Application Dr. Rajkumar Buyya and Dr. Maria Sossa Cloud Computing and Distributed Systems (CLOUDS) Laboratory School of Computing and Information Systems

More information

Lab 2 : Java RMI. request sayhello() Hello interface remote object. local object. response "Hello world"

Lab 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 information

RMI: Design & Implementation

RMI: Design & Implementation RMI: Design & Implementation Operating Systems RMI 1 Middleware layers Applications, services RMI and RPC request-reply protocol marshalling and external data representation Middleware layers UDP and TCP

More information

Java Assignment (BCA/BE Computer)

Java Assignment (BCA/BE Computer) Java Assignment (BCA/BE Computer) Chapter 1: Fundamentals 1. Write short note on Java and its features. 2. Write a program to find largest number in four command line arguments. Use if condition and conditional

More information

PSD1B Advance Java Programming Unit : I-V. PSD1B- Advance Java Programming

PSD1B Advance Java Programming Unit : I-V. PSD1B- Advance Java Programming PSD1B Advance Java Programming Unit : I-V PSD1B- Advance Java Programming 1 UNIT I - SYLLABUS Servlets Client Vs Server Types of Servlets Life Cycle of Servlets Architecture Session Tracking Cookies JDBC

More information

COMP 6231: Distributed System Design

COMP 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 information

CSE 660 Lab 2 Khoi Pham Thanh Ho April 27 th, 2015

CSE 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 information

Distributed Systems Architecture

Distributed Systems Architecture Distributed Systems Architecture Lab Session 1. Introduction to ZeroC Ice Francisco Moya November 15, 2011 In this session we will learn to use basic Ice tools to develop a very

More information

PROJECT REPORT Thang Tran ( ), Sandeep Wadhwani ( ) and Vineet Kumar ( ) Introduction

PROJECT REPORT Thang Tran ( ), Sandeep Wadhwani ( ) and Vineet Kumar ( ) Introduction PROJECT REPORT Thang Tran (264635), Sandeep Wadhwani (26476122) and Vineet Kumar (26461756) Introduction Zeromq Chat Application Our Zeromq Chat Application provides peer-to-peer instant messaging for

More information

Programming of Interactive Systems

Programming of Interactive Systems Programming of Interactive Systems Introduction and overview Fredrik Kilander Spring 2011 Today s lecture Participants Practical matters Overview of the course Participants Fredrik Kilander (course admin,

More information

Remote Method Invocation in Java

Remote 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 information

Last Class: RPCs. Today:

Last Class: RPCs. Today: Last Class: RPCs RPCs make distributed computations look like local computations Issues: Parameter passing Binding Failure handling Lecture 4, page 1 Today: Case Study: Sun RPC Lightweight RPCs Remote

More information

KTH ROYAL INSTITUTE OF TECHNOLOGY. Remote Invocation. Vladimir Vlassov and Johan Montelius

KTH ROYAL INSTITUTE OF TECHNOLOGY. Remote Invocation. Vladimir Vlassov and Johan Montelius KTH ROYAL INSTITUTE OF TECHNOLOGY Remote Invocation Vladimir Vlassov and Johan Montelius Middleware Application layer Remote invocation / indirect communication Socket layer Network layer 2 Request / Reply

More information

2D1954 Programutvecklingsprojekt Coordinator: Lars Kjelldahl

2D1954 Programutvecklingsprojekt Coordinator: Lars Kjelldahl 2D1954 Programutvecklingsprojekt Coordinator: Lars Kjelldahl System Specification Instant Messaging Client/Server Project Participants: Karin Björkman, d99-kbj@nada.kth.se Linda Doktár, d99-lid@nada.kth.se

More information

CSci Introduction to Distributed Systems. Communication: RPC In Practice

CSci 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 information

Distributed Object Bridges and Java-based Object Mediator

Distributed Object Bridges and Java-based Object Mediator Distributed Object Bridges and Java-based Object Mediator Konstantinos Raptis, Diomidis Spinellis, Sokratis Katsikas An important aspect of research on software objects, components, and component-based

More information

CmsImport Readme Release 1.0 of January, xanders GmbH

CmsImport Readme Release 1.0 of January, xanders GmbH CmsImport Readme Release 1.0 of January, 2008 2008 xanders GmbH CmsImport ReadMe (version of 2008-01-09) page 1 Table of contents 1. Preface...3 2. Requirements...3 3. Installation...3 3.1. Setup of MySQL

More information

Distributed Programming in Java. Distribution (2)

Distributed Programming in Java. Distribution (2) Distributed Programming in Java Distribution (2) Remote Method Invocation Remote Method Invocation (RMI) Primary design goal for RMI is transparency Should be able to invoke remote objects with same syntax

More information

Exam Questions

Exam Questions Exam Questions 600-502 NPDEV Developing with Cisco Network Programmability https://www.2passeasy.com/dumps/600-502/ 1.A stock brokerage firm requires that all trades are executed quickly with a minimal

More information

Questions and Answers. A. RMI allows us to invoke a method of java object that executes on another machine.

Questions and Answers. A. RMI allows us to invoke a method of java object that executes on another machine. Q.1) What is Remote method invocation (RMI)? A. RMI allows us to invoke a method of java object that executes on another machine. B. RMI allows us to invoke a method of java object that executes on another

More information

Deploying the rmireg.war file in BEA WebLogic for Windows

Deploying the rmireg.war file in BEA WebLogic for Windows Deploying the rmireg.war file in BEA WebLogic 9.2.3 for Windows Definition of terms is used for the Maximo home. By default, the Maximo home is C:\IBM\SMP\maximo is used to indicate

More information

Generic architecture

Generic 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 information

DUBLIN CITY UNIVERSITY

DUBLIN CITY UNIVERSITY DUBLIN CITY UNIVERSITY REPEAT EXAMINATIONS 2009/2010 MODULE: COURSE: YEAR: EXAMINERS: TIME ALLOWED: INSTRUCTIONS: EE553 Object-oriented Programming for Engineers MTCC M.Eng. in Telecommunications Eng.

More information

Programming with RMI Reminder

Programming with RMI Reminder Programming with RMI Reminder (Sources: Gordon S Blair, Paul Grace) Aims After completing the following you should get a reminder of: 1. the fundamental concepts of Java Remote Method Invocation; 2. the

More information

RPC flow. 4.3 Remote procedure calls IDL. RPC components. Procedure. Program. sum (j,k) int j,k; {return j+k;} i = sum (3,7); Local procedure call

RPC flow. 4.3 Remote procedure calls IDL. RPC components. Procedure. Program. sum (j,k) int j,k; {return j+k;} i = sum (3,7); Local procedure call 4.3 Remote procedure calls RPC flow Client process Server process Program i = sum (3,7); Procedure sum (j,k) int j,k; {return j+k; Client stub Program Return Call Unpack Pack result para s Invisible to

More information

Lecture 5: RMI etc. Servant. Java Remote Method Invocation Invocation Semantics Distributed Events CDK: Chapter 5 TVS: Section 8.3

Lecture 5: RMI etc. Servant. Java Remote Method Invocation Invocation Semantics Distributed Events CDK: Chapter 5 TVS: Section 8.3 Lecture 5: RMI etc. Java Remote Method Invocation Invocation Semantics Distributed Events CDK: Chapter 5 TVS: Section 8.3 CDK Figure 5.7 The role of proxy and skeleton in remote method invocation client

More information

JAC444 - 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. 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 information

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications Distributed Objects and Remote Invocation Programming Models for Distributed Applications Extending Conventional Techniques The remote procedure call model is an extension of the conventional procedure

More information

Lecture 17 Java Remote Method Invoca/on

Lecture 17 Java Remote Method Invoca/on CMSC 433 Fall 2014 Sec/on 0101 Mike Hicks (slides due to Rance Cleaveland) Lecture 17 Java Remote Method Invoca/on 11/4/2014 2012-14 University of Maryland 0 Recall Concurrency Several opera/ons may be

More information

Creating and Analyzing Software Architecture

Creating and Analyzing Software Architecture Creating and Analyzing Software Architecture Dr. Igor Ivkovic iivkovic@uwaterloo.ca [with material from Software Architecture: Foundations, Theory, and Practice, by Taylor, Medvidovic, and Dashofy, published

More information

Simple Mobile Agent System

Simple Mobile Agent System Java-Based Simple Mobile Agent System Hyon S. Kim CSS499 Project Report Table of Contents 1. About UW Mobile Agent... 3 a.project Topic... 3 b.technologies used... 3 2. Background Knowledge... 4 a.serialization...

More information

CUSTOMER PORTAL. Introduction and Guide

CUSTOMER PORTAL. Introduction and Guide CUSTOMER PORTAL Introduction and Guide CUSTOMER PORTAL The portal was built with you in mind - through it, you have 24/7 access to manage your account. This guide will help you get started. Using the portal,

More information

Contents. Java RMI. Java RMI. Java RMI system elements. Example application processes/machines Client machine Process/Application A

Contents. 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 information

ToMaTo. Topology Management Tool

ToMaTo. Topology Management Tool ToMaTo Topology Management Tool Dennis Schwerdel University of Kaiserslautern, Germany Department of Computer Science Integrated Communication Systems ICSY http://www.icsy.de Introduction ToMaTo is a topology-oriented

More information

Info 408 Distributed Applications programming 2 nd semester of Credits: 5 Lecturer: Antoun Yaacoub Ph.D.

Info 408 Distributed Applications programming 2 nd semester of Credits: 5 Lecturer: Antoun Yaacoub Ph.D. Lebanese University Faculty of Sciences I Master 1 degree Computer Sciences Info 408 Distributed Applications programming 2 nd semester of 2018-2019 Credits: 5 Lecturer: Antoun Yaacoub Ph.D. RMI Serialization

More information

Software Requirement Specification

Software Requirement Specification Software Requirement Specification Publish/Subscribe System Group-03 Atul Jangra 2010CS50277 Dushyant Behl 2010CS50282 Shantanu 2010CS50295 Utkarsh 2010CS50299 1 1. Introduction Table of Content 1.1 Purpose...

More information

Sockets and RMI. CS151 Chris Pollett Dec. 5, 2005.

Sockets and RMI. CS151 Chris Pollett Dec. 5, 2005. Sockets and RMI CS151 Chris Pollett Dec. 5, 2005. Outline Echo Server with Multiple Clients Client pull/server push Remote Method Invocation Proxy Pattern Echo Server with Multiple Clients public class

More information

Multi-Access Positioning System M.A.P.S

Multi-Access Positioning System M.A.P.S Multi-Access Positioning System M.A.P.S UCD Multi-Access Positioning System EEC173B Winter 2006 Ting (Randy) Chang Michael Hsu Alex Sung George Louie (MIA) 1 Introduction and Motivation Introduction Cartography

More information

Fall CSEE W4119 Computer Networks Programming Assignment 1 - Simple Chat Application

Fall CSEE W4119 Computer Networks Programming Assignment 1 - Simple Chat Application Fall 2011 - CSEE W4119 Computer Networks Programming Assignment 1 - Simple Chat Application Prof. Gil Zussman due: 10/26/2011, 11 AM, EST 1 Introduction This programming assignment is to implement a simple

More information

Middleware Labs: Java RMI

Middleware Labs: Java RMI Middleware Labs: Java RMI Petr Tůma Vojtěch Horký Antonín Steinhauser Department of Distributed and Dependable Systems March 6, 2014 General Information Labs Every other week 5 labs total, 5 middleware

More information

Desarrollo de Aplicaciones en Red RMI. Introduction. Considerations. Considerations. RMI architecture

Desarrollo 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 information

Outline. Introduction to Java. What Is Java? History. Java 2 Platform. Java 2 Platform Standard Edition. Introduction Java 2 Platform

Outline. Introduction to Java. What Is Java? History. Java 2 Platform. Java 2 Platform Standard Edition. Introduction Java 2 Platform Outline Introduction to Java Introduction Java 2 Platform CS 3300 Object-Oriented Concepts Introduction to Java 2 What Is Java? History Characteristics of Java History James Gosling at Sun Microsystems

More information

Lecture 15: Frameworks for Application-layer Communications

Lecture 15: Frameworks for Application-layer Communications Lecture 15: Frameworks for Application-layer Communications Prof. Shervin Shirmohammadi SITE, University of Ottawa Fall 2005 CEG 4183 15-1 Background We have seen previously that: Applications need to

More information

Lecture 15: Frameworks for Application-layer Communications

Lecture 15: Frameworks for Application-layer Communications Lecture 15: Frameworks for Application-layer Communications Prof. Shervin Shirmohammadi SITE, University of Ottawa Fall 2005 CEG 4183 15-1 Background We have seen previously that: Applications need to

More information

Introduction to Distributed Object Technologies: CORBA, RMI &.NET Introduction to the Design Project

Introduction to Distributed Object Technologies: CORBA, RMI &.NET Introduction to the Design Project The University of Western Australia School of Electrical, Electronic & Computer Engineering Real-time Distributed Computer Systems 423 Laboratory - 2003 Introduction to Distributed Object Technologies:

More information

Middleware Labs: Java RMI

Middleware Labs: Java RMI Middleware Labs: Java RMI Petr Tůma Vojtěch Horký Antonín Steinhauser Vladimír Matěna March 6, 2018 General Information Labs Web Every other week 5 labs total, 5 middleware technologies Tuesday, 17.20

More information

Introduction to Distributed Systems. Fabienne Boyer, LIG,

Introduction to Distributed Systems. Fabienne Boyer, LIG, Introduction to Distributed Systems Fabienne Boyer, LIG, fabienne.boyer@imag.fr What is a distributed system? Set of software components Running in separate address spaces Communicating through a network

More information

Grid Computing. Java Remote Method Invocation (RMI) RMI Application. Grid Computing Fall 2006 Paul A. Farrell 9/5/2006

Grid Computing. Java Remote Method Invocation (RMI) RMI Application. Grid Computing Fall 2006 Paul A. Farrell 9/5/2006 Grid Computing Paradigms for Distributed Computing 2 RMI Fall 2006 Traditional paradigms for distributed computing The Grid: Core Technologies Maozhen Li, Mark Baker John Wiley & Sons; 2005, ISBN 0-470-09417-6

More information

Web Design and Applications

Web Design and Applications Web Design and Applications JEE - Session Beans Gheorghe Aurel Pacurar JEE - Session Beans What is a session bean? A session bean is the enterprise bean that directly interact with the user and contains

More information

CC755: Distributed and Parallel Systems

CC755: Distributed and Parallel Systems CC755: Distributed and Parallel Systems Dr. Manal Helal, Spring 2016 moodle.manalhelal.com Lecture 7: Remote Method Invocation (RMI) 1 RMI Y Daniel Liang, Introduction to JAVA Programming, 9th Edition,

More information

Middleware and Web Services Lecture 3: Application Server

Middleware and Web Services Lecture 3: Application Server Middleware and Web Services Lecture : Application Server doc. Ing. Tomáš Vitvar, Ph.D. tomas@vitvar.com @TomasVitvar http://vitvar.com Czech Technical University in Prague Faculty of Information Technologies

More information

Port Utilization in SocialMiner

Port Utilization in SocialMiner Utilization in Utilization Table Columns, page 1 Utilization, page 2 Utilization Table Columns The columns in the port utilization tables in this document describe the following: A value representing the

More information

IBM IBM WebSphere Portal V5, Application Development.

IBM IBM WebSphere Portal V5, Application Development. IBM 000-348 IBM WebSphere Portal V5, Application Development http://killexams.com/exam-detail/000-348 QUESTION: 87 Which of the following classes can be used to encode an image URL? A. PortletRequest B.

More information

Are Sockets a Good Programming Paradigm? EDA095 Remote Method Invocation. The Remote Procedure Call Model. The Remote Procedure Call Architecture

Are Sockets a Good Programming Paradigm? EDA095 Remote Method Invocation. The Remote Procedure Call Model. The Remote Procedure Call Architecture Are Sockets a Good Programming Paradigm? EDA095 Remote Method Invocation Pierre Nugues Lund University http://www.cs.lth.se/home/pierre_nugues/ April 21, 2010 To request a service from a server, sockets

More information

Oracle Fusion Middleware

Oracle Fusion Middleware Oracle Fusion Middleware What's New in Oracle WebLogic Server 11g Release 1 (10.3.5) E13852-07 April 2011 Welcome to Oracle WebLogic Server. The following sections describe new and changed functionality

More information

Fundtech JRE 1.7 Update 45 Issues and Resolution

Fundtech JRE 1.7 Update 45 Issues and Resolution Fundtech JRE 1.7 Update 45 Issues and Resolution 10/17/2013 Summary of Issues Oracle released JRE 1.7 update 45 in the late morning of 10/15/2013. Changes in this version of the JRE created the following

More information

Distributed systems. Programming with threads

Distributed systems. Programming with threads Distributed systems Programming with threads Reviews on OS concepts Each process occupies a single address space Reviews on OS concepts A thread of (execution) control has its own PC counter, stack pointer

More information

REMOTE METHOD INVOCATION INTRODUCTION TO RMI, A JAVA API FOR RPC-STYLE INVOCATION OF REMOTE OBJECT METHODS

REMOTE METHOD INVOCATION INTRODUCTION TO RMI, A JAVA API FOR RPC-STYLE INVOCATION OF REMOTE OBJECT METHODS RMI Remote Method RMI Invocation REMOTE METHOD INVOCATION INTRODUCTION TO RMI, A JAVA API FOR RPC-STYLE INVOCATION OF REMOTE OBJECT METHODS Peter R. Egli 1/19 Contents 1. What is RMI? 2. Important RMI

More information

Sage 200 Online. System Requirements and Prerequisites

Sage 200 Online. System Requirements and Prerequisites Sage 200 Online System Requirements and Prerequisites v2013 Copyright statement Sage (UK) Limited, 2013. All rights reserved. If this documentation includes advice or information relating to any matter

More information

Last Class: Network Overview. Today: Distributed Systems

Last 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 information

Remote Invocation Vladimir Vlassov and Johan Montelius

Remote Invocation Vladimir Vlassov and Johan Montelius KTH ROYAL INSTITUTE OF TECHNOLOGY Middleware Remote Invocation Vladimir Vlassov and Johan Montelius Application layer Remote invocation / indirect communication Socket layer Network layer ID2201 DISTRIBUTED

More information

03 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 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 information

Using the Gateway Exchange Protocol

Using the Gateway Exchange Protocol Using the Gateway Exchange Protocol Session 2 Stephen C. Wills August 13, 2013 1 Subscribing to Measurements 2 Primary Data Flow Publication APIs Subscription APIs 3 Primary Data Flow (cont.) Publication

More information

EDA095 Remote Method Invocation

EDA095 Remote Method Invocation EDA095 Remote Method Invocation Pierre Nugues Lund University http://www.cs.lth.se/pierre_nugues/ March 31, 2011 Covers: Elliotte Rusty Harold, Java Network Programming, 3 rd ed., Chapter 18, pages 610

More information

Lecture 06: Distributed Object

Lecture 06: Distributed Object Lecture 06: Distributed Object Distributed Systems Behzad Bordbar School of Computer Science, University of Birmingham, UK Lecture 0? 1 Recap Interprocess communication Synchronous and Asynchronous communication

More information

Enterprise Chat and Upgrade Guide, Release 11.6(1)

Enterprise Chat and  Upgrade Guide, Release 11.6(1) Enterprise Chat and Email Upgrade Guide, Release 11.6(1) For Unified Contact Center Enterprise August 2017 Americas Headquarters Cisco Systems, Inc. 170 West Tasman Drive San Jose, CA 95134-1706 USA http://www.cisco.com

More information

This document was written and prepared by Dale Ritchie in Cisco s Collaboration Infrastructure Business Unit (CIBU), Oslo, Norway.

This document was written and prepared by Dale Ritchie in Cisco s Collaboration Infrastructure Business Unit (CIBU), Oslo, Norway. Cisco TelePresence Management Suite Provisioning Extension Why upgrade to Cisco TMSPE? White Paper August 01 This document was written and prepared by Dale Ritchie in Cisco s Collaboration Infrastructure

More information

Chapter 3: Naming Page 38. Clients in most cases find the Jini lookup services in their scope by IP

Chapter 3: Naming Page 38. Clients in most cases find the Jini lookup services in their scope by IP Discovery Services - Jini Discovery services require more than search facilities: Discovery Clients in most cases find the Jini lookup services in their scope by IP multicast/broadcast Multicast UDP for

More information

Cisco Unified Web and Interaction Manager Solution Reference Network Design Guide

Cisco Unified Web and  Interaction Manager Solution Reference Network Design Guide Cisco Unified Web and E-Mail Interaction Manager Solution Reference Network Design Guide For Unified Contact Center Enterprise Release 9.0(1) January 2013 Americas Headquarters Cisco Systems, Inc. 170

More information

CSS 533 Program 2: Distributed Java Space Servers Professor: Munehiro Fukuda Due date: see the syllabus

CSS 533 Program 2: Distributed Java Space Servers Professor: Munehiro Fukuda Due date: see the syllabus CSS 533 Program 2: Distributed Java Space Servers Professor: Munehiro Fukuda Due date: see the syllabus 1. Purpose This assignment implements a collection of distributed Java Space servers, which exercises

More information