Report of the case study in Sistemi Distribuiti A simple Java RMI application

Size: px
Start display at page:

Download "Report of the case study in Sistemi Distribuiti A simple Java RMI application"

Transcription

1 Report of the case study in Sistemi Distribuiti A simple Java RMI application Academic year 2012/13 Vessio Gennaro Marzulli Giovanni Abstract In the ambit of distributed systems a key-role is played by the communication among cooperating processes. The Java remote method invocation (RMI) system represent an evolution of the classical remote procedure call (RPC) mechanism riformulated in the terms of the object-oriented paradigm which enables programmers to create distributed Java technology-based applications. The advantages of using this approach reside in its simplicity and the possibility to run applications on different platforms. The aim of this work is to implement a simple Java RMI application in order to show its internal behaviour and its well-known effectiveness. 1 Introduction Distributed systems require entities which reside in different address spaces, potentially on different machines, to communicate. Commonly, programming languages provide a basic communication mechanism: sockets [3]. While flexible and sufficient for general communication, the use of sockets requires the design of protocols which is cumbersome and can be error-prone. An alternative to sockets is remote procedure call (RPC). RPC [3] systems abstract the communication interface to the level of a procedure call. Thus, instead of having to deal directly with sockets, programmers have the illusion of calling a local procedure when, in practice, the arguments of the call are packaged up and shipped off to the remote target of the call. However, RPC was not designed for the object-oriented programming and, consequently, does not translate well into distributed object systems where communication between program-level objects residing in different address spaces is needed. In order to match the semantics of object invocation, distributed object systems require remote method invocation or RMI. In such systems, programmers have the illusion of invoking a method of an object, when in fact the invocation may act on a remote object (one not resident in the caller s address space). Various RMI systems exist but they fall short of seamless integration due to their interoperability requirement with many languages. For instance, CORBA [4] presumes a heterogeneus, multi-language environment and thus must have a language neutral object model. In contrast, the Java RMI system [2, 5] assumes the homogeneus environment of the Java Virtual Machine (JVM), and the system can therefore follow the Java object model whenever possible. In order to show its internal behaviour and its well-known effectiveness, the aim of this work is to implement a simple Java RMI application in which a client sends to a server an array-list of real values and the server returns its mean, variance and standard deviation. 2 Java object model Java [1] is a strongly-typed object-oriented language with a C-like syntax. The main characteristic of Java is portability, i.e. the property of being platform-independent, which means that programs written in the Java language must run similarly on any hardware 1

2 or operating system platform. This is achieved by compiling code to an intermediate representation called bytecode, instead of directly to specific machine code. Bytecode instructions are analogous to machine code, but they are intended to be interpreted by a virtual machine written specifically for the host hardware. Clearly, portability is a highly desirable quality in a distributed system scenario because it allows to free programmers from worrying about the underlying architecture of the different machines cooperating in a distributed computation. Another interesting feature of Java is its separation of the notion of interface and class. An interface in Java describes a set of methods for an object, but provides no implementation. A class, on the other hand, can describe as well as implement methods. A class may also include fields to hold data, but interfaces cannot. Furthermore, a class may implement any number of interfaces. It is important to understand that there is no other legal way in which a process can have access to the data of an object which instantiates a class except by invoking the public methods of its interfaces. This separation is crucial in distributed systems because it allows programmers to place interfaces on one machine, i.e. on the client, and the real object on another, i.e. on the server. 3 Java RMI architecture RMI applications often comprise two separate programs, a server and a client. A typical server program creates some remote objects, makes references to these objects accessible and waits for clients to invoke methods on these objects. A typical client program obtains a remote reference to one or more remote objects on a server and then invokes methods on them. Distributed object applications need to do the following: locate remote objects: applications can use various mechanisms to obtain references to remote objects. For example, an application can register its remote objects with RMI s simple naming facility, the RMI registry. Alternatively, an application can pass and return remote object references as part of the remote invocation (in this case study it was used this second approach, as we will see in 5); communicate with remote objects: details of the communications are handled by RMI. To programmers remote communication looks similar to regular Java method invocations; load class definitions for objects that are passed around: because RMI enables objects to be passed back and forth, it provides mechanisms, called dynamic code loading, for loading an object s class definition as well as for transmitting an object s data. Like any other Java application, a distributed application built by using Java RMI is made up of interfaces and classes. The interface declare methods. The classes implement the methods declared in the interfaces. Objects with methods that can be invoked across Java Virtual Machines are called remote objects. An object becomes remote by implementing a remote interface which has the following characteristics: it extends the interface java. rmi.remote; each method of the interface declares java. rmi.remoteexception in its throws clause, in addition to any application-specific exceptions. The RMI system consists of three basic layers (as shown in Figure 1): stub/skeleton; remote reference layer; transport. Rather than making a copy of the implementation object in the receiving JVM, RMI passes a remote stub for a remote object. The stub acts as the local representative, or proxy, for the remote object and basically is, to the client, the remote reference. Similarly, the skeleton is the server-side counterpart of the stub. The stub/skeleton layer does not deal with specifics of 2

3 Figure 1: Java RMI architecture any transport, but transmits data to the remote reference layer via the abstraction of marshall streams. Marshall streams employ a mechanism which enables Java objects to be transmitted between address spaces. The remote reference layer is responsible for carrying out the semantics of the type of invocation. For example, this layer is responsible for handling unicast or multicast invocation to a server. Each remote object implementation chooses its own invocation semantics whether communication to the server is unicast, or the server is part of a multicast group (to accomplish server replication). Finally, the transport layer is responsible for connection set-up with remote locations and connection management. A transport defines what the concrete representation of an end-point is, so multiple transports may exist. The design and implementation also allow multiple transports per address space (so both TCP and UDP can be supported in the same address space). Thus, client and server transports can negotiate to find a common transport between them. 4 Creating distributed applications by using RMI Using RMI to develop a distributed application involves these general steps: designing and implementing the components of the application; compiling sources; making classes network accessible; starting the application. The first step includes: defining the remote interfaces: a remote interface specifies the methods that can be invoked remotely by a client. Clients program to remote interfaces, not to the implementation classes of those interfaces. The design of such interfaces includes the determination of the types of objects that will be used as the parameters and return values for these methods. Note that, in contrast to primitive types, it is possible to pass objects with arbitrary structure and complexity, provided that these objects are serializable, i.e. they implement the interface Serializable. Serialization consists in the automatic transformation of objects and structures into sequences of byte manipulated with various streams of the java.io package. implementing the remote objects; implementing the client. As with any Java program, it can be used the javac compiler to compile the source files. The source files contain the declarations of the remote interfaces, their implementations, any other server classes and the client classes. Note that with versions prior to Java 5.0, an additional step was required to build stub classes, by using the rmic compiler. However, this step is no 3

4 longer necessary. Making classes network accessible simply means that client and server must be able to communicate through a network connection and thus they must at least belong to a local ad hoc network. Finally, starting the application includes running the server and the client. 5 Implementation details The application is implemented in Java 6.0 (the source code is attached to this document). It consists of one remote interface, its implementation, a server class and a client class. The remote interface, called Calculator, simply defines the methods that can be invoked remotely. Note that this interface must reside also on the client because it has to know the syntax to invoke the remote methods. import j a v a. rmi. Remote ; import java. rmi. RemoteException ; import j a v a. u t i l. A r r a y L i s t ; p u b l i c i n t e r f a c e C a l c u l a t o r e x tends Remote { void input ( ArrayList<Double> l i s t ) throws RemoteException ; Double average ( ) throws RemoteException ; Double v a r i a n c e ( ) throws RemoteException ; Double standarddeviation ( ) throws RemoteException ; ArrayList<Double> g e t L i s t ( ) throws RemoteException ; The following is the implementation of the remote interface, called CalculatorImpl: import java. rmi. RemoteException ; import j a v a. rmi. s e r v e r. S e r v e r N o t A c t i v e E x c e p t i o n ; import j a v a. rmi. s e r v e r. UnicastRemoteObject ; import j a v a. u t i l. A r r a y L i s t ; p u b l i c c l a s s C a l c u l a t o r I m p l e x tends UnicastRemoteObject implements C a l c u l a t o r { p r i v a t e ArrayList <Double> l i s t ; p u b l i c CalculatorImpl ( ) throws RemoteException { p u b l i c void input ( ArrayList<Double> l i s t ) throws RemoteException { t h i s. l i s t = l i s t ; System. out. p r i n t l n (" Ricevuta l i s t a d i v a l o r i da " + UnicastRemoteObject. g e t C l i e n t H o s t ( ) ) ; catch ( S e r v e r N o t A c t i v e E x c e p t i o n e ) { p u b l i c Double average ( ) throws RemoteException { Double sum = 0. 0 ; f o r ( Double element : l i s t ){ sum += element ; System. out. p r i n t l n (" R i c h i e s t a d i c a l c o l o d e l l a media da " + UnicastRemoteObject. g e t C l i en t H o s t ( ) ) ; catch ( S e r v e r N o t A c t i v e E x c e p t i o n e ) { r e t u r n sum/ l i s t. s i z e ( ) ; p u b l i c Double v a r i a n c e ( ) throws RemoteException { Double sum = 0. 0 ; f o r ( Double element : l i s t ){ sum += element ; Double av = sum/ l i s t. s i z e ( ) ; 4

5 Double var = 0. 0 ; f o r ( Double element : l i s t ){ var += Math. pow ( ( element av ), 2 ) ; var = var /( l i s t. s i z e () 1); System. out. p r i n t l n (" R i c h i e s t a d i v a r i a n z a da " + UnicastRemoteObject. g e t C l i en t H o s t ( ) ) ; catch ( S e r v e r N o t A c t i v e E x c e p t i o n e ) { return var ; p u b l i c Double standarddeviation ( ) throws RemoteException { Double var = t h i s. v a r i a n c e ( ) ; System. out. p r i n t l n (" R i c h i e s t a d i d e v i a z i o n e standard da " + UnicastRemoteObject. g e t C l i en t H o s t ( ) ) ; catch ( S e r v e r N o t A c t i v e E x c e p t i o n e ) { r e t u r n Math. s q r t ( var ) ; p u b l i c ArrayList <Double> g e t L i s t ( ) { System. out. p r i n t l n (" I n v i o l i s t a d i v a l o r i a " + UnicastRemoteObject. g e t C l i en t H o s t ( ) ) ; catch ( S e r v e r N o t A c t i v e E x c e p t i o n e ) { r e t u r n t h i s. l i s t ; This is the Server class. Note that it will be running on port 1099: import j a v a. rmi. r e g i s t r y. L o c a t e R e g i s t r y ; import j a v a. rmi. r e g i s t r y. R e g i s t r y ; p u b l i c c l a s s S e r v e r { p r i v a t e void s t a r t S e r v e r ( S t r i n g host, i n t p o r t ){ System. s e t P r o p e r t y (" j a v a. rmi. s e r v e r. hostname ", h o s t ) ; // c r e a t e on p o r t " p o r t " R e g i s t r y r e g i s t r y = L o c a t e R e g i s t r y. c r e a t e R e g i s t r y ( p o r t ) ; // c r e a t e a new s e r v i c e named c a l c u l a t o r r e g i s t r y. r e b i n d (" c a l c u l a t o r ", new C a l c u l a t o r I m p l ( ) ) ; catch ( Exception e ) { System. out. p r i n t l n (" S e r v e r ready " ) ; p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { S e r v e r s e r v e r = new S e r v e r ( ) ; s e r v e r. s t a r t S e r v e r ( a r g s [ 0 ], I n t e g e r. p a r s e I n t ( a r g s [ 1 ] ) ) ; Finally, this is the Client class. Note that it shows to the user a simple menu in which he can select the next action to execute server-side: import j a v a. i o. BufferedReader ; import j a v a. i o. IOException ; import java. i o. InputStreamReader ; import j a v a. rmi. r e g i s t r y. L o c a t e R e g i s t r y ; import j a v a. rmi. r e g i s t r y. R e g i s t r y ; import j a v a. u t i l. A r r a y L i s t ; p u b l i c c l a s s C l i e n t { p r i v a t e void s t a r t C l i e n t ( S t r i n g host, i n t p o r t ){ 5

6 // f i r e to h o s t : p o r t R e g i s t r y myregistry = L o c a t e R e g i s t r y. g e t R e g i s t r y ( host, p o r t ) ; // s e a r c h f o r c a l c u l a t o r s e r v i c e C a l c u l a t o r impl = ( C a l c u l a t o r ) myregistry. lookup (" c a l c u l a t o r " ) ; boolean e x i t = f a l s e ; // show menu w h i l e (! e x i t ) { System. out. p r i n t l n (" Comandi d i s p o n i b i l i : " ) ; System. out. p r i n t l n ("1 I n s e r i s c i v a l o r i " ) ; System. out. p r i n t l n ("2 Cacola media a r i t m e n t i c a " ) ; System. out. p r i n t l n ("3 Cacola v a r i a n z a " ) ; System. out. p r i n t l n ("4 Cacola d e v i a z i o n e standard " ) ; System. out. p r i n t l n ("5 Stampa v a l o r i i n s e r i t i " ) ; System. out. p r i n t l n ("0 E s c i " ) ; System. out. p r i n t (" I n s e r i s c i comando : " ) ; InputStreamReader reader = new InputStreamReader ( System. in ) ; BufferedReader input = new BufferedReader ( reader ) ; S t r i n g comandinput ; i n t command = 0 ; comandinput = input. readline ( ) ; command = I n t e g e r. p a r s e I n t ( comandinput ) ; catch ( IOException e ){ System. out. p r i n t l n (" S i e v e r i f i c a t o un e r r o r e : " + e. getmessage ( ) ) ; s w i t c h (command){ //command 1 c a s e 1 : { boolean s t o p = f a l s e ; ArrayList<Double> l i s t = new ArrayList ( ) ; w h i l e (! s t o p ) { System. out. p r i n t (" I n s e r i s c i v a l o r e, E " + " per t e r m i n a r e l i n s e r i m e n t o : " ) ; S t r i n g v a l u e ; v a l u e = i n p u t. r e a d L i n e ( ) ; i f ("E". e q u a l s ( v a l u e ) ) stop=true ; e l s e l i s t. add ( Double. parsedouble ( v a l u e ) ) ; catch ( IOException e ) { System. out. p r i n t l n (" S i e v e r i f i c a t o un e r r o r e : " + e. getmessage ( ) ) ; impl. i nput ( l i s t ) ; //command 2 c a s e 2 : { System. out. p r i n t l n (" Media a r t i m e t i c a : " + impl. a v e r a g e ( ) ) ; //command 3 c a s e 3 : { System. out. p r i n t l n (" Varianza : " + impl. v a r i a n c e ( ) ) ; //command 4 c a s e 4 : { System. out. p r i n t l n (" D e v i a z i o n e standard : " + impl. s t a n d a r d D e v i a t i o n ( ) ) ; //command 5 c a s e 5 : { ArrayList <Double> l i s t S e n t = impl. g e t L i s t ( ) ; System. out. p r i n t l n (" V a l o r i i n s e r i t i : " ) ; f o r ( Double element : l i s t S e n t ){ System. out. p r i n t (" " + element ) ; 6

7 //command 0 c a s e 0 : { e x i t = t r u e ; catch ( Exception e ) { System. out. p r i n t l n (" S i e v e r i f i c a t o un e r r o r e : " + e. getmessage ( ) ) ; p u b l i c s t a t i c void main ( S t r i n g [ ] a r g s ) { C l i e n t c l i e n t = new C l i e n t ( ) ; c l i e n t. s t a r t C l i e n t ( a r g s [ 0 ], I n t e g e r. p a r s e I n t ( a r g s [ 1 ] ) ) ; 6 Numerical results The following are screenshots of what happens by running the application on localhost. Remember that localhost 1 is the standard hostname given to the address of the loopback network interface and that it is translated to an IPv4 address in the net block. Figure 2: Starting server Figure 3: Example of running a client 7 Conclusions Java RMI leverages the basic assumptions of platform independence, which is very important in the area of distributed systems where machines are typically different. We can assume 1 Localhost is useful for programmers to test their software on their own machines. 7

8 independence due to the architecture neutrality that the Java Virtual Machine provides. In this case study we have seen a small application that demonstrates how the mechanism is actually simple and effective and how it allows to develop much more complex applications with equal ease. References [1] Oracle. Oracle s Developer Resources for Java Technology. technetwork/java/index.html. [2] Oracle. The Java RMI tutorial. html. [3] A. Tanenbaum, M. Van Steen. Distributed Systems. Pearson-Prentice Hall, 2nd edition, [4] The Object Management Group. Common Object Request Broker: Architecture and Specification. OMG Document Number , [5] A. Wollrath, R. Riggs, J. Waldo. A Distributed Object Model for the Java System. Proceedings of the 2nd conference on USENIX Conference on Object-Oriented Technologies,

Remote Method Invocation

Remote Method Invocation Remote Method Invocation The network is the computer Consider the following program organization: method call SomeClass AnotherClass returned object computer 1 computer 2 If the network is the computer,

More information

A Distributed Object Model for the Java System

A Distributed Object Model for the Java System The following paper was originally published in the Proceedings of the USENIX 1996 Conference on Object-Oriented Technologies Toronto, Ontario, Canada, June 1996. A Distributed Object Model for the Java

More information

Remote Method Invocation in JAVA

Remote Method Invocation in JAVA Remote Method Invocation in JAVA Philippe Laroque Philippe.Laroque@dept-info.u-cergy.fr $Id: rmi.lyx,v 1.2 2003/10/23 07:10:46 root Exp $ Abstract This small document describes the mechanisms involved

More information

Division of Informatics, University of Edinburgh

Division of Informatics, University of Edinburgh CS1Bh Lecture Note 20 Client/server computing A modern computing environment consists of not just one computer, but several. When designing such an arrangement of computers it might at first seem that

More information

Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application http://www.csc.calpoly.edu/~mliu/book/index.

Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application http://www.csc.calpoly.edu/~mliu/book/index. Departament d Arquitectura de Computadors Invocación remota (based on M. L. Liu Distributed Computing -- Concepts and Application http://www.csc.calpoly.edu/~mliu/book/index.html) Local Objects vs. Distributed

More information

Lecture 7: Java RMI. CS178: Programming Parallel and Distributed Systems. February 14, 2001 Steven P. Reiss

Lecture 7: Java RMI. CS178: Programming Parallel and Distributed Systems. February 14, 2001 Steven P. Reiss Lecture 7: Java RMI CS178: Programming Parallel and Distributed Systems February 14, 2001 Steven P. Reiss I. Overview A. Last time we started looking at multiple process programming 1. How to do interprocess

More information

Elements of Advanced Java Programming

Elements of Advanced Java Programming Appendix A Elements of Advanced Java Programming Objectives At the end of this appendix, you should be able to: Understand two-tier and three-tier architectures for distributed computing Understand the

More information

Lesson: All About Sockets

Lesson: All About Sockets All About Sockets http://java.sun.com/docs/books/tutorial/networking/sockets/index.html Page 1 sur 1 The Java TM Tutorial Start of Tutorial > Start of Trail Trail: Custom Networking Lesson: All About Sockets

More information

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast.

Socket = an interface connection between two (dissimilar) pipes. OS provides this API to connect applications to networks. home.comcast. Interprocess communication (Part 2) For an application to send something out as a message, it must arrange its OS to receive its input. The OS is then sends it out either as a UDP datagram on the transport

More information

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications

Chapter 6. CORBA-based Architecture. 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications Chapter 6. CORBA-based Architecture 6.1 Introduction to CORBA 6.2 CORBA-IDL 6.3 Designing CORBA Systems 6.4 Implementing CORBA Applications 1 Chapter 6. CORBA-based Architecture Part 6.1 Introduction to

More information

IMPLEMENTATION OF AN AGENT MONITORING SYSTEM IN A JINI ENVIRONMENT WITH RESTRICTED USER ACCESS

IMPLEMENTATION OF AN AGENT MONITORING SYSTEM IN A JINI ENVIRONMENT WITH RESTRICTED USER ACCESS IMPLEMENTATION OF AN AGENT MONITORING SYSTEM IN A JINI ENVIRONMENT WITH RESTRICTED USER ACCESS Marietta A. Gittens (Dr. Sadanand Srivastava, Dr. James Gil De Lamadrid) {mgittens, ssrivas, gildelam}@cs.bowiestate.edu

More information

Network Communication

Network Communication Network Communication Outline Sockets Datagrams TCP/IP Client-Server model OSI Model Sockets Endpoint for bidirectional communication between two machines. To connect with each other, each of the client

More information

Middleware Lou Somers

Middleware Lou Somers Middleware Lou Somers April 18, 2002 1 Contents Overview Definition, goals, requirements Four categories of middleware Transactional, message oriented, procedural, object Middleware examples XML-RPC, SOAP,

More information

COM 440 Distributed Systems Project List Summary

COM 440 Distributed Systems Project List Summary COM 440 Distributed Systems Project List Summary This list represents a fairly close approximation of the projects that we will be working on. However, these projects are subject to change as the course

More information

Architecture of a Distributed Object Firewall Proxy. Abstract

Architecture of a Distributed Object Firewall Proxy. Abstract NAI Labs #0768 Architecture of a Distributed Object Firewall Proxy July 16, 2000 Gary Lamperillo Gary_Lamperillo@NAI.com NAI Labs - The Security Research Division Network Associates 3415 S. Sepulveda Blvd.

More information

An Overview of Java. overview-1

An Overview of Java. overview-1 An Overview of Java overview-1 Contents What is Java Major Java features Java virtual machine Java programming language Java class libraries (API) GUI Support in Java Networking and Threads in Java overview-2

More information

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture

Introduction to CORBA. 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture Introduction to CORBA 1. Introduction 2. Distributed Systems: Notions 3. Middleware 4. CORBA Architecture 1. Introduction CORBA is defined by the OMG The OMG: -Founded in 1989 by eight companies as a non-profit

More information

A Java-based system support for distributed applications on the Internet

A Java-based system support for distributed applications on the Internet A Java-based system support for distributed applications on the Internet D. Hagimont 1, D. Louvegnies 2 SIRAC Project INRIA, 655 av. de l Europe, 38330 Montbonnot Saint-Martin, France Abstract: We have

More information

Jini. Kurzfassung als Kapitel für die Vorlesung Verteilte Systeme. (unter Nutzung von Teilen von Andreas Zeidler und Roger Kehr)

Jini. Kurzfassung als Kapitel für die Vorlesung Verteilte Systeme. (unter Nutzung von Teilen von Andreas Zeidler und Roger Kehr) Jini Kurzfassung als Kapitel für die Vorlesung Verteilte Systeme Friedemann Mattern (unter Nutzung von Teilen von Andreas Zeidler und Roger Kehr) Jini Infrastructure ( middleware ) for dynamic, cooperative,

More information

Remote Method Invocation

Remote Method Invocation 1 / 22 Remote Method Invocation Jean-Michel Richer jean-michel.richer@univ-angers.fr http://www.info.univ-angers.fr/pub/richer M2 Informatique 2010-2011 2 / 22 Plan Plan 1 Introduction 2 RMI en détails

More information

When the transport layer tries to establish a connection with the server, it is blocked by the firewall. When this happens, the RMI transport layer

When the transport layer tries to establish a connection with the server, it is blocked by the firewall. When this happens, the RMI transport layer Firewall Issues Firewalls are inevitably encountered by any networked enterprise application that has to operate beyond the sheltering confines of an Intranet Typically, firewalls block all network traffic,

More information

Transparent Redirection of Network Sockets 1

Transparent Redirection of Network Sockets 1 Transparent Redirection of Network Sockets 1 Timothy S. Mitrovich, Kenneth M. Ford, and Niranjan Suri Institute for Human & Machine Cognition University of West Florida {tmitrovi,kford,nsuri}@ai.uwf.edu

More information

The Advantages of CorBA For Network Based Training Systems

The Advantages of CorBA For Network Based Training Systems Support of multimedia services for distributed network training applications in CORBA-3 Fausto Rabitti CNUCE-CNR, Via S. Maria, 36, Pisa, Italy Abstract In this paper, fundamental technological issues

More information

Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2. Component 2.1 Component 2.2.

Architectural Patterns. Layers: Pattern. Architectural Pattern Examples. Layer 3. Component 3.1. Layer 2. Component 2.1 Component 2.2. Architectural Patterns Architectural Patterns Dr. James A. Bednar jbednar@inf.ed.ac.uk http://homepages.inf.ed.ac.uk/jbednar Dr. David Robertson dr@inf.ed.ac.uk http://www.inf.ed.ac.uk/ssp/members/dave.htm

More information

The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1

The Java Series. Java Essentials I What is Java? Basic Language Constructs. Java Essentials I. What is Java?. Basic Language Constructs Slide 1 The Java Series Java Essentials I What is Java? Basic Language Constructs Slide 1 What is Java? A general purpose Object Oriented programming language. Created by Sun Microsystems. It s a general purpose

More information

How To Write A Network Operating System For A Network (Networking) System (Netware)

How To Write A Network Operating System For A Network (Networking) System (Netware) Otwarte Studium Doktoranckie 1 Adaptable Service Oriented Architectures Krzysztof Zieliński Department of Computer Science AGH-UST Krakow Poland Otwarte Studium Doktoranckie 2 Agenda DCS SOA WS MDA OCL

More information

Communication. Layered Protocols. Topics to be covered. PART 1 Layered Protocols Remote Procedure Call (RPC) Remote Method Invocation (RMI)

Communication. Layered Protocols. Topics to be covered. PART 1 Layered Protocols Remote Procedure Call (RPC) Remote Method Invocation (RMI) Distributed Systems, Spring 2004 1 Introduction Inter-process communication is at the heart of all distributed systems Communication Based on low-level message passing offered by the underlying network

More information

Load balancing using Remote Method Invocation (JAVA RMI)

Load balancing using Remote Method Invocation (JAVA RMI) Load balancing using Remote Method Invocation (JAVA RMI) Ms. N. D. Rahatgaonkar 1, Prof. Mr. P. A. Tijare 2 1 Department of Computer Science & Engg and Information Technology Sipna s College of Engg &

More information

Chapter 2: Enterprise Applications from a Middleware Perspective

Chapter 2: Enterprise Applications from a Middleware Perspective Chapter 2: Enterprise Applications from a Middleware Perspective In this chapter, we give an introduction to enterprise applications from a middleware perspective. Some aspects have already been outlined

More information

Web Services. Copyright 2011 Srdjan Komazec

Web Services. Copyright 2011 Srdjan Komazec Web Services Middleware Copyright 2011 Srdjan Komazec 1 Where are we? # Title 1 Distributed Information Systems 2 Middleware 3 Web Technologies 4 Web Services 5 Basic Web Service Technologies 6 Web 2.0

More information

Object-Oriented Middleware for Distributed Systems

Object-Oriented Middleware for Distributed Systems Object-Oriented Middleware for Distributed Systems Distributed Systems Sistemi Distribuiti Andrea Omicini after Giovanni Rimassa andrea.omicini@unibo.it Ingegneria Due Alma Mater Studiorum Università di

More information

Chapter 2: Remote Procedure Call (RPC)

Chapter 2: Remote Procedure Call (RPC) Chapter 2: Remote Procedure Call (RPC) Gustavo Alonso Computer Science Department Swiss Federal Institute of Technology (ETHZ) alonso@inf.ethz.ch http://www.iks.inf.ethz.ch/ Contents - Chapter 2 - RPC

More information

Java Network. Slides prepared by : Farzana Rahman

Java Network. Slides prepared by : Farzana Rahman Java Network Programming 1 Important Java Packages java.net java.io java.rmi java.security java.lang TCP/IP networking I/O streams & utilities Remote Method Invocation Security policies Threading classes

More information

Chapter 3. Internet Applications and Network Programming

Chapter 3. Internet Applications and Network Programming Chapter 3 Internet Applications and Network Programming 1 Introduction The Internet offers users a rich diversity of services none of the services is part of the underlying communication infrastructure

More information

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures

Motivation Definitions EAI Architectures Elements Integration Technologies. Part I. EAI: Foundations, Concepts, and Architectures Part I EAI: Foundations, Concepts, and Architectures 5 Example: Mail-order Company Mail order Company IS Invoicing Windows, standard software IS Order Processing Linux, C++, Oracle IS Accounts Receivable

More information

Transparent Redirection of Network Sockets 1

Transparent Redirection of Network Sockets 1 Transparent Redirection of Network Sockets Timothy S. Mitrovich, Kenneth M. Ford, and Niranjan Suri Institute for Human & Machine Cognition University of West Florida {tmitrovi,kford,nsuri@ai.uwf.edu.

More information

Infrastructure that supports (distributed) componentbased application development

Infrastructure that supports (distributed) componentbased application development Middleware Technologies 1 What is Middleware? Infrastructure that supports (distributed) componentbased application development a.k.a. distributed component platforms mechanisms to enable component communication

More information

LESSON 3.6. 98-366 Networking Fundamentals. Understand TCP/IP

LESSON 3.6. 98-366 Networking Fundamentals. Understand TCP/IP Understand TCP/IP Lesson Overview In this lesson, you will learn about: TCP/IP Tracert Telnet Netstat Reserved addresses Local loopback IP Ping Pathping Ipconfig Protocols Anticipatory Set Experiment with

More information

Mobile agents for the database management using Jini

Mobile agents for the database management using Jini 6 th International Conference on Applied Informatics Eger, Hungary, January 27 31, 2004. Mobile agents for the database management using Jini Fabrice Mourlin, Jaouad Skaita LACL University Paris 12, France

More information

Mail User Agent Project

Mail User Agent Project Mail User Agent Project Tom Kelliher, CS 325 100 points, due May 4, 2011 Introduction (From Kurose & Ross, 4th ed.) In this project you will implement a mail user agent (MUA) that sends mail to other users.

More information

Overview of CORBA 11.1 I NTRODUCTION TO CORBA. 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary

Overview of CORBA 11.1 I NTRODUCTION TO CORBA. 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary C H A P T E R 1 1 Overview of CORBA 11.1 Introduction to CORBA 11.2 CORBA architecture 11.3 Client and object implementations 11.4 Object services 11.5 New features in CORBA 3.0 11.6 Summary In previous

More information

Socket Programming. Announcement. Lectures moved to

Socket Programming. Announcement. Lectures moved to Announcement Lectures moved to 150 GSPP, public policy building, right opposite Cory Hall on Hearst. Effective Jan 31 i.e. next Tuesday Socket Programming Nikhil Shetty GSI, EECS122 Spring 2006 1 Outline

More information

Virtual Credit Card Processing System

Virtual Credit Card Processing System The ITB Journal Volume 3 Issue 2 Article 2 2002 Virtual Credit Card Processing System Geraldine Gray Karen Church Tony Ayres Follow this and additional works at: http://arrow.dit.ie/itbj Part of the E-Commerce

More information

www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk

www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 www.virtualians.pk CS506 Web Design and Development Solved Online Quiz No. 01 Which of the following is a general purpose container? JFrame Dialog JPanel JApplet Which of the following package needs to be import while handling

More information

Introduktion til distribuerede systemer uge 37 - fil og webserver

Introduktion til distribuerede systemer uge 37 - fil og webserver Introduktion til distribuerede systemer uge 37 - fil og webserver Rune Højsgaard 090678 1. delsstuderende 13. september 2005 1 Kort beskrivelse Implementationen af filserver og webserver virker, men håndterer

More information

Distributed Network Management Using SNMP, Java, WWW and CORBA

Distributed Network Management Using SNMP, Java, WWW and CORBA Distributed Network Management Using SNMP, Java, WWW and CORBA André Marcheto Augusto Hack Augusto Pacheco Augusto Verzbickas ADMINISTRATION AND MANAGEMENT OF COMPUTER NETWORKS - INE5619 Federal University

More information

Limi Kalita / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3), 2014, 4802-4807. Socket Programming

Limi Kalita / (IJCSIT) International Journal of Computer Science and Information Technologies, Vol. 5 (3), 2014, 4802-4807. Socket Programming Socket Programming Limi Kalita M.Tech Student, Department of Computer Science and Engineering, Assam Down Town University, Guwahati, India. Abstract: The aim of the paper is to introduce sockets, its deployment

More information

Interface Definition Language

Interface Definition Language Interface Definition Language A. David McKinnon Washington State University An Interface Definition Language (IDL) is a language that is used to define the interface between a client and server process

More information

Crash Course in Java

Crash Course in Java Crash Course in Java Based on notes from D. Hollinger Based in part on notes from J.J. Johns also: Java in a Nutshell Java Network Programming and Distributed Computing Netprog 2002 Java Intro 1 What is

More information

Experimental Evaluation of Distributed Middleware with a Virtualized Java Environment

Experimental Evaluation of Distributed Middleware with a Virtualized Java Environment Experimental Evaluation of Distributed Middleware with a Virtualized Java Environment Nuno A. Carvalho, João Bordalo, Filipe Campos and José Pereira HASLab / INESC TEC Universidade do Minho MW4SOC 11 December

More information

Dissertation Title: SOCKS5-based Firewall Support For UDP-based Application. Author: Fung, King Pong

Dissertation Title: SOCKS5-based Firewall Support For UDP-based Application. Author: Fung, King Pong Dissertation Title: SOCKS5-based Firewall Support For UDP-based Application Author: Fung, King Pong MSc in Information Technology The Hong Kong Polytechnic University June 1999 i Abstract Abstract of dissertation

More information

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University

Introduction CORBA Distributed COM. Sections 9.1 & 9.2. Corba & DCOM. John P. Daigle. Department of Computer Science Georgia State University Sections 9.1 & 9.2 Corba & DCOM John P. Daigle Department of Computer Science Georgia State University 05.16.06 Outline 1 Introduction 2 CORBA Overview Communication Processes Naming Other Design Concerns

More information

INTRODUCTION TO JAVA PROGRAMMING LANGUAGE

INTRODUCTION TO JAVA PROGRAMMING LANGUAGE INTRODUCTION TO JAVA PROGRAMMING LANGUAGE Today Java programming language is one of the most popular programming language which is used in critical applications like stock market trading system on BSE,

More information

CA CPT CICS Programmers Toolkit for TCP/IP r6.1

CA CPT CICS Programmers Toolkit for TCP/IP r6.1 PRODUCT BRIEF: CA CPT CICS PROGRAMMERS TOOLKIT FOR TCP/IP CA CPT CICS Programmers Toolkit for TCP/IP r6.1 CA CPT CICS PROGRAMMERS' TOOLKIT FOR TCP/IP PROVIDES CICS PROGRAMMERS WITH AN EASY TO USE SET OF

More information

Chapter 1 Fundamentals of Java Programming

Chapter 1 Fundamentals of Java Programming Chapter 1 Fundamentals of Java Programming Computers and Computer Programming Writing and Executing a Java Program Elements of a Java Program Features of Java Accessing the Classes and Class Members The

More information

Getting Started with the Internet Communications Engine

Getting Started with the Internet Communications Engine Getting Started with the Internet Communications Engine David Vriezen April 7, 2014 Contents 1 Introduction 2 2 About Ice 2 2.1 Proxies................................. 2 3 Setting Up ICE 2 4 Slices 2

More information

Automatic Configuration and Service Discovery for Networked Smart Devices

Automatic Configuration and Service Discovery for Networked Smart Devices Automatic Configuration and Service Discovery for Networked Smart Devices Günter Obiltschnig Applied Informatics Software Engineering GmbH St. Peter 33 9184 St. Jakob im Rosental Austria Tel: +43 4253

More information

Lesson 4 Web Service Interface Definition (Part I)

Lesson 4 Web Service Interface Definition (Part I) Lesson 4 Web Service Interface Definition (Part I) Service Oriented Architectures Module 1 - Basic technologies Unit 3 WSDL Ernesto Damiani Università di Milano Interface Definition Languages (1) IDLs

More information

Ask a network designer what middleware

Ask a network designer what middleware DISTRIBUTED COMPUTING Managing Complexity: Middleware Explained Andrew T. Campbell, Geoff Coulson, and Michael E. Kounavis Ask a network designer what middleware is, and he ll characterize it as part of

More information

COMMMUNICATING COOPERATING PROCESSES

COMMMUNICATING COOPERATING PROCESSES COMMMUNICATING COOPERATING PROCESSES The producer-consumer paradigm A buffer of items can be filled by the producer and emptied by the consumer. The producer and the consumer must be synchronized: the

More information

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware

Lehrstuhl für Informatik 4 Kommunikation und verteilte Systeme. Middleware. Chapter 8: Middleware Middleware 1 Middleware Lehrstuhl für Informatik 4 Middleware: Realisation of distributed accesses by suitable software infrastructure Hiding the complexity of the distributed system from the programmer

More information

The Jini Proxy. 1. Purpose. Esmond Pitt and Neil Belford. White Paper

The Jini Proxy. 1. Purpose. Esmond Pitt and Neil Belford. White Paper 16 September 2001 The Jini Proxy Esmond Pitt and Neil Belford White Paper 1. Purpose 1.1 INTRODUCTION This White Paper describes the Jini Proxy, a standard approach to enabling and controlling Jini rmi

More information

Performance Monitoring and Analysis System for MUSCLE-based Applications

Performance Monitoring and Analysis System for MUSCLE-based Applications Polish Infrastructure for Supporting Computational Science in the European Research Space Performance Monitoring and Analysis System for MUSCLE-based Applications W. Funika, M. Janczykowski, K. Jopek,

More information

Network Programming TDC 561

Network Programming TDC 561 Network Programming TDC 561 Lecture # 1 Dr. Ehab S. Al-Shaer School of Computer Science & Telecommunication DePaul University Chicago, IL 1 Network Programming Goals of this Course: Studying, evaluating

More information

EJB & J2EE. Component Technology with thanks to Jim Dowling. Components. Problems with Previous Paradigms. What EJB Accomplishes

EJB & J2EE. Component Technology with thanks to Jim Dowling. Components. Problems with Previous Paradigms. What EJB Accomplishes University of Dublin Trinity College EJB & J2EE Component Technology with thanks to Jim Dowling The Need for Component-Based Technologies The following distributed computing development paradigms have

More information

Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique

Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique Migrating Legacy Software Systems to CORBA based Distributed Environments through an Automatic Wrapper Generation Technique Hyeon Soo Kim School of Comp. Eng. and Software Eng., Kum Oh National University

More information

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming

Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Characteristics of Java (Optional) Y. Daniel Liang Supplement for Introduction to Java Programming Java has become enormously popular. Java s rapid rise and wide acceptance can be traced to its design

More information

Efficiency of Web Based SAX XML Distributed Processing

Efficiency of Web Based SAX XML Distributed Processing Efficiency of Web Based SAX XML Distributed Processing R. Eggen Computer and Information Sciences Department University of North Florida Jacksonville, FL, USA A. Basic Computer and Information Sciences

More information

Agenda. Distributed System Structures. Why Distributed Systems? Motivation

Agenda. Distributed System Structures. Why Distributed Systems? Motivation Agenda Distributed System Structures CSCI 444/544 Operating Systems Fall 2008 Motivation Network structure Fundamental network services Sockets and ports Client/server model Remote Procedure Call (RPC)

More information

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur

Module 17. Client-Server Software Development. Version 2 CSE IIT, Kharagpur Module 17 Client-Server Software Development Lesson 42 CORBA and COM/DCOM Specific Instructional Objectives At the end of this lesson the student would be able to: Explain what Common Object Request Broker

More information

Java Thin-Client Programming for a Network Computing Environment

Java Thin-Client Programming for a Network Computing Environment Java Thin-Client Programming for a Network Computing Environment JÜRGEN FRIEDRICHS HENRI J I B I N AND THE JALAPENO TEAM / - : / :.. : :. ISBN 0-13-011117-1 PRENTICE HALL PTR, UPPER SADDLE RIVER, NEW JERSEY

More information

MIDDLEWARE 1. Figure 1: Middleware Layer in Context

MIDDLEWARE 1. Figure 1: Middleware Layer in Context MIDDLEWARE 1 David E. Bakken 2 Washington State University Middleware is a class of software technologies designed to help manage the complexity and heterogeneity inherent in distributed systems. It is

More information

NETWORKING FEATURES OF THE JAVA PROGRAMMING LANGUAGE

NETWORKING FEATURES OF THE JAVA PROGRAMMING LANGUAGE 50-20-44 DATA COMMUNICATIONS MANAGEMENT NETWORKING FEATURES OF THE JAVA PROGRAMMING LANGUAGE John P. Slone INSIDE Java s Target Environment, Networking Basics, Java Networking Primitives, Connection-Oriented

More information

Distributed Objects and Components

Distributed Objects and Components Distributed Objects and Components Introduction This essay will identify the differences between objects and components and what it means for a component to be distributed. It will also examine the Java

More information

PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE

PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE PERFORMANCE COMPARISON OF COMMON OBJECT REQUEST BROKER ARCHITECTURE(CORBA) VS JAVA MESSAGING SERVICE(JMS) BY TEAM SCALABLE TIGRAN HAKOBYAN SUJAL PATEL VANDANA MURALI INTRODUCTION Common Object Request

More information

Building a Multi-Threaded Web Server

Building a Multi-Threaded Web Server Building a Multi-Threaded Web Server In this lab we will develop a Web server in two steps. In the end, you will have built a multi-threaded Web server that is capable of processing multiple simultaneous

More information

CS555: Distributed Systems [Fall 2015] Dept. Of Computer Science, Colorado State University

CS555: Distributed Systems [Fall 2015] Dept. Of Computer Science, Colorado State University CS 555: DISTRIBUTED SYSTEMS [MESSAGING SYSTEMS] Shrideep Pallickara Computer Science Colorado State University Frequently asked questions from the previous class survey Daisy chain MapReduce jobs? Multiple

More information

Alternatives to SNMP and Challenges in Management Protocols. Communication Systems Seminar Talk 10 Francesco Luminati

Alternatives to SNMP and Challenges in Management Protocols. Communication Systems Seminar Talk 10 Francesco Luminati Alternatives to SNMP and Challenges in Management Protocols Communication Systems Seminar Talk 10 Francesco Luminati Introduction Structure Network management Management approaches SNMP Alternatives: NetConf

More information

3.5. cmsg Developer s Guide. Data Acquisition Group JEFFERSON LAB. Version

3.5. cmsg Developer s Guide. Data Acquisition Group JEFFERSON LAB. Version Version 3.5 JEFFERSON LAB Data Acquisition Group cmsg Developer s Guide J E F F E R S O N L A B D A T A A C Q U I S I T I O N G R O U P cmsg Developer s Guide Elliott Wolin wolin@jlab.org Carl Timmer timmer@jlab.org

More information

It is the thinnest layer in the OSI model. At the time the model was formulated, it was not clear that a session layer was needed.

It is the thinnest layer in the OSI model. At the time the model was formulated, it was not clear that a session layer was needed. Session Layer The session layer resides above the transport layer, and provides value added services to the underlying transport layer services. The session layer (along with the presentation layer) add

More information

Implementing Java Distributed Objects with JDBC

Implementing Java Distributed Objects with JDBC Implementing Java Distributed Objects with JDBC Pritisha 1, Aashima Arya 2 1,2 Department of Computer Science Bhagwan Mahaveer institute of engineering & technology (BMIET), Deenbandhu Chhotu Ram University

More information

Remote Method Invocation (RMI)

Remote Method Invocation (RMI) Remote Method Invocation (RMI) Remote Method Invocation (RMI) allows us to get a reference to an object on a remote host and use it as if it were on our virtual machine. We can invoke methods on the remote

More information

JAVA 2 Network Security

JAVA 2 Network Security JAVA 2 Network Security M A R C O PISTOIA DUANE F. RELLER DEEPAK GUPTA MILIND NAGNUR ASHOK K. RAMANI PTR, UPPER http://www.phptr.com PRENTICE HALL SADDLE RIVER, NEW JERSEY 07458 Contents Foreword Preface

More information

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies

Outline SOA. Properties of SOA. Service 2/19/2016. Definitions. Comparison of component technologies. Definitions Component technologies Szolgáltatásorientált rendszerintegráció Comparison of component technologies Simon Balázs, BME IIT Outline Definitions Component technologies RPC, RMI, CORBA, COM+,.NET, Java, OSGi, EJB, SOAP web services,

More information

Java Application Developer Certificate Program Competencies

Java Application Developer Certificate Program Competencies Java Application Developer Certificate Program Competencies After completing the following units, you will be able to: Basic Programming Logic Explain the steps involved in the program development cycle

More information

! "# $%&'( ) * ).) "%&' 1* ( %&' ! "%&'2 (! ""$ 1! ""3($

! # $%&'( ) * ).) %&' 1* ( %&' ! %&'2 (! $ 1! 3($ ! "# $%&'( ) * +,'-( ).) /"0'" 1 %&' 1* ( %&' "%&'! "%&'2 (! ""$ 1! ""3($ 2 ', '%&' 2 , 3, 4( 4 %&'( 2(! ""$ -5%&'* -2%&'(* ) * %&' 2! ""$ -*! " 4 , - %&' 3( #5! " 5, '56! "* * 4(%&'(! ""$ 3(#! " 42/7'89.:&!

More information

Programming Languages

Programming Languages Programming Languages Programming languages bridge the gap between people and machines; for that matter, they also bridge the gap among people who would like to share algorithms in a way that immediately

More information

Dynamic Scheduling of Object Invocations in Distributed Object Oriented Real-Time Systems Jørgensen, Bo Nørregaard; Joosen, Wouter

Dynamic Scheduling of Object Invocations in Distributed Object Oriented Real-Time Systems Jørgensen, Bo Nørregaard; Joosen, Wouter Syddansk Universitet Dynamic Scheduling of Object Invocations in Distributed Object Oriented Real-Time Systems Jørgensen, Bo Nørregaard; Joosen, Wouter Published in: Lecture Notes in Computer Science Publication

More information

Introduction to Web Services

Introduction to Web Services Department of Computer Science Imperial College London CERN School of Computing (icsc), 2005 Geneva, Switzerland 1 Fundamental Concepts Architectures & escience example 2 Distributed Computing Technologies

More information

Introduction to Service Oriented Architectures (SOA)

Introduction to Service Oriented Architectures (SOA) Introduction to Service Oriented Architectures (SOA) Responsible Institutions: ETHZ (Concept) ETHZ (Overall) ETHZ (Revision) http://www.eu-orchestra.org - Version from: 26.10.2007 1 Content 1. Introduction

More information

The Java Series Introduction to Java RMI and CORBA. The Java Series. Java RMI and CORBA Raul RAMOS / CERN-IT User Support Slide 1

The Java Series Introduction to Java RMI and CORBA. The Java Series. Java RMI and CORBA Raul RAMOS / CERN-IT User Support Slide 1 The Java Series Introduction to Java RMI and CORBA Raul RAMOS / CERN-IT User Support Slide 1 What are RMI and CORBA for? Usually, in your application, once you instantiate objects, you can invoke methods

More information

Question1-part2 What undesirable consequences might there be in having too long a DNS cache entry lifetime?

Question1-part2 What undesirable consequences might there be in having too long a DNS cache entry lifetime? CSCI 312 - DATA COMMUNICATIONS AND NETWORKS FALL, 2014 Assignment 4 Working as a group. Working in small gruops of 2-4 students. When you work as a group, you have to return only one home assignment per

More information

Computer Networks/DV2 Lab

Computer Networks/DV2 Lab Computer Networks/DV2 Lab Room: BB 219 Additional Information: http://ti.uni-due.de/ti/en/education/teaching/ss13/netlab Equipment for each group: - 1 Server computer (OS: Windows Server 2008 Standard)

More information

Multi-threaded FTP Client

Multi-threaded FTP Client Multi-threaded FTP Client Jeffrey Sharkey University of Minnesota Duluth Department of Computer Science 320 Heller Hall 1114 Kirby Drive Duluth, Minnesota 55812-2496 Website: http://www.d.umn.edu/~shar0213/

More information

Mobile RMI: Supporting Remote Access to Java Server Objects on Mobile Hosts

Mobile RMI: Supporting Remote Access to Java Server Objects on Mobile Hosts Mobile RMI: Supporting Remote Access to Java Server Objects on Mobile Hosts Tom Wall Broadcom Eireann Research Ltd. Dublin, Ireland tom.wall@broadcom.ie Abstract Java Remote Method Invocation (RMI) is

More information

Contents. Java - An Introduction. Java Milestones. Java and its Evolution

Contents. Java - An Introduction. Java Milestones. Java and its Evolution Contents Java and its Evolution Rajkumar Buyya Grid Computing and Distributed Systems Lab Dept. of Computer Science and Software Engineering The University of Melbourne http:// www.buyya.com Java Introduction

More information

WEB SERVICES. Revised 9/29/2015

WEB SERVICES. Revised 9/29/2015 WEB SERVICES Revised 9/29/2015 This Page Intentionally Left Blank Table of Contents Web Services using WebLogic... 1 Developing Web Services on WebSphere... 2 Developing RESTful Services in Java v1.1...

More information

Mapping of Services on Bluetooth Radio Networks

Mapping of Services on Bluetooth Radio Networks Mapping of s on Bluetooth Radio Networks J. Dunlop and N. Amanquah University of Strathclyde -Department of Electronic and Electrical Engineering, Glasgow G1 1XW, Scotland Ph.: +44 141 5482081, Fax:+44

More information

1. Overview of the Java Language

1. Overview of the Java Language 1. Overview of the Java Language What Is the Java Technology? Java technology is: A programming language A development environment An application environment A deployment environment It is similar in syntax

More information

Classic Grid Architecture

Classic Grid Architecture Peer-to to-peer Grids Classic Grid Architecture Resources Database Database Netsolve Collaboration Composition Content Access Computing Security Middle Tier Brokers Service Providers Middle Tier becomes

More information