Report of the case study in Sistemi Distribuiti A simple Java RMI application
|
|
- Gervais Barnett
- 8 years ago
- Views:
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 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 informationA 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 informationRemote 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 informationDivision 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 informationInvocació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 informationLecture 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 informationElements 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 informationLesson: 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 informationSocket = 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 informationChapter 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 informationIMPLEMENTATION 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 informationNetwork 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 informationMiddleware 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 informationCOM 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 informationArchitecture 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 informationAn 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 informationIntroduction 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 informationA 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 informationJini. 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 informationRemote 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 informationWhen 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 informationTransparent 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 informationThe 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 informationArchitectural 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 informationThe 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 informationHow 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 informationCommunication. 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 informationLoad 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 informationChapter 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 informationWeb 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 informationObject-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 informationChapter 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 informationJava 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 informationChapter 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 informationMotivation 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 informationTransparent 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 informationInfrastructure 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 informationLESSON 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 informationMobile 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 informationMail 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 informationOverview 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 informationSocket 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 informationVirtual 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 informationwww.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 informationIntroduktion 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 informationDistributed 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 informationLimi 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 informationInterface 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 informationCrash 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 informationExperimental 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 informationDissertation 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 informationIntroduction 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 informationINTRODUCTION 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 informationCA 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 informationChapter 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 informationGetting 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 informationAutomatic 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 informationLesson 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 informationAsk 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 informationCOMMMUNICATING 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 informationLehrstuhl 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 informationThe 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 informationPerformance 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 informationNetwork 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 informationEJB & 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 informationMigrating 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 informationCharacteristics 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 informationEfficiency 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 informationAgenda. 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 informationModule 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 informationJava 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 informationMIDDLEWARE 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 informationNETWORKING 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 informationDistributed 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 informationPERFORMANCE 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 informationBuilding 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 informationCS555: 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 informationAlternatives 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 information3.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 informationIt 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 informationImplementing 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 informationRemote 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 informationJAVA 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 informationOutline 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 informationJava 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($
! "# $%&'( ) * +,'-( ).) /"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 informationProgramming 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 informationDynamic 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 informationIntroduction 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 informationIntroduction 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 informationThe 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 informationQuestion1-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 informationComputer 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 informationMulti-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 informationMobile 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 informationContents. 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 informationWEB 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 informationMapping 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 information1. 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 informationClassic 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