Mobile Agent. Summer Project Report. Indian Institute of Technology Kanpur Department of Computer Science and Engineering

Size: px
Start display at page:

Download "Mobile Agent. Summer Project Report. Indian Institute of Technology Kanpur Department of Computer Science and Engineering"

Transcription

1 Mobile Agent Summer Project Report Indian Institute of Technology Kanpur Department of Computer Science and Engineering B V V Srirajdutt Sourav Khandelwal Prateek Mishra 1

2 Abstract In computer science, a mobile agent is a composition of computer software and data which is able to migrate (move) from one computer to another autonomously and continue its execution on the destination computer.the use of internet and the World-Wode-Web has become widespread in the recent years and mobile agent technology has proliferated at an equally rapid rate. In our project, we aim to implement our mobile agent framework. The implementation has been done in Java language to ensure platform independence among agent applications. The design goals have focused on providing complete coverage of flexible agent mobility, support for agent interaction and reliable agent transmission. 1 Motivation A mobile agent has the unique ability to transport itself from one system in a network to another in the same network. This ability allows it to move to a system containing an object with which it wants to interact and then take advantage of being in the same host or network as the object. Our interest in mobile agents is not motivated by the technology but rather by the benefits agents provide for the creating distributed systems. There are at least seven main benefits, or good reasons, to start using mobile agents. They reduce the network load. They overcome network latency. They encapsulate protocol. They execute asynchronously and autonomously. They adapt dynamically They are heterogeneous. They are robust and fault-tolerant. 2 Introduction and Overview A Mobile Agent, namely, is a type of software agent, with the feature of autonomy, social ability, learning, and most importantly, mobility. More specifically, a mobile agent is a process that can transport its state from one environment to another, with its data intact, and be capable of performing appropriately in the new environment. Mobile agents decide when and where to move. Movement is often evolved from RPC methods. Just as a user directs an Internet browser to visit a website (the browser merely downloads a copy of the site or one version of it in the case of dynamic web sites), similarly, a mobile agent accomplishes a move through

3 data duplication. When a mobile agent decides to move, it saves its own state, transports this saved state to the new host, and resumes execution from the saved state. A mobile agent is a specific form of mobile code. However, in contrast to the Remote evaluation and Code on demand programming paradigms, mobile agents are active in that they can choose to migrate between computers at any time during their execution. This makes them a powerful tool for implementing distributed applications in a computer network. An open multi-agent systems (MAS) is a system in which agents, that are owned by a variety of stakeholders, continuously enter and leave the system. 3 Potential Application These are some of the potential application of mobile agents. Each exploits the benefits of using mobile agent in some way. E-Commerce: Personal Assistance: Secure Brokering: Distributed Information Retrieval: Telecommunication Networks Services: Workflow Application and Groupware: Monitoring and Notification: Information Dissemination: Parallel Processing: 4 Implementation Details Our Agent infrastructure implementation consists of a set of Java classes for server execution, client execution, agent initiation, agent handling and agent Interaction. Each node in the system consists of a number of interating component servers that would be executing one or more Java Virtual Machines. The description of the agent architecture is described in the flow chart below in Fig. 1. 2

4 Figure 1: Agent System Flow Chart Description The following steps are involved in our implementation - Reading Configuration List Setup Class List Setup Server List Setup Agent List Setup Dead Agent List Setup Service List Setup Communication List Setup Starting Services Server Class Load Server Client Proxy Agent Proxy Console 3

5 4.1 Reading Configuration This stage involves reading various configuration like on which interface the agent has to bind, path where agent classes can be found, ports on which its server and class load server has to run, range of ip addresses to scan for locating peer nodes, and load which this node can bear. 4.2 List Setup This stage involves initializing many lists which are used by the agent system in course of agent execution in the system. Some are essential for smooth running of framework while others are necessary for debugging Class List Setup This stage involves making list of all agent classes with its path and time of modification. If a foreign agent comes to this node and its class definition is not found in this list or its version is newer than that in the list, then it s definition is requested. Once the agent class definition comes, it is added to the list. The ClassList storing the agent class information present on the local node AgentName ClassPath Date WordCount.class C:/mobileAgents/WorCount.class GenMatrix.class C:/mobileAgents/Agent2.class Server List Setup This stage involves the checking of connections between various nodes.every node tries to connect with other node which are already not connected. Once connected, it adds the remote node to its Server List for further communication.this connection setup stage also involves authentication through java SSL sockets. It also maintains two list for monitoring out and in packet count for each node. Servers IP OutCount InCount Agent List Setup This stage involves maintaining a list of all the agents running on the current node. The list maintains list of all the agents - the class Name, the unique ID of the agent, its source and destination. Also the references to the Object and Thread of the corresponding Agent Manager are maintained here. Agent List is basically a list of all the Agent Manager threads running i.e., the list of all the agents that are currently running on this system and the corresponding references to access them. 4

6 AgentID AgentName Object Reference Thread Reference Source Destination 4360 Hello Thread WordCount Thread Dead Agent List Setup This stage involves maintaining a list of all agent which once executed on this node. It is basically used to keep log of all activities on the current node. It is also used in case of retract. If some node tries to retract a agent(which is now dead) which it once sent to this node, then this agent is moved form dead agent list to that node. AgentID AgentName Source Destination 4360 Hello WordCount Service List Setup This stage involves maintaining list of all services provided by all agents. whenever a agent starts it can decide which services it is going to provide. AgentName AgentID Methods Hello 4360 null WordCount 1939 wc,string,int 4.3 Starting Services This stage involves starting of all the services and related threads which will run on this node. These services are required by the agent system for the agent initiation, mobility and agent interaction Server This Server listens for any incoming connection. If connection is accepted, then it creates a Server Proxy thread which later sends this packet to agent proxy for analysis Class Load Server This servers listens for request coming from some node for agent class definition. If it has the corresponding class definition in the Class List, then it sends it to the requesting node. Here a file transfer takes place. The request actually comes from the Class Load Client, which is forked whenever a class definition is not found locally. 5

7 4.3.3 Client Proxy Reads packets from Client Buffer and accordingly creates a Object and Thread of Client class which will later send the packet Agent Proxy Agent Proxy class is the heart of the system and handles all the activities other than the ones that involving Agent Interaction. The class is responsible to receive and analyze all the activities and perform the operations as needed. It receives Packets or commands from Server and Console through a buffer and accordingly sets the action that the particular Agent Manager has to do. It is responsible for creating new objects and threads when an agent is to begin execution on this node. It is also responsible to update the corresponding Agent List, Dead Agents List etc Console Users interact with a Agent System by developing agent application programs. These agent application programs are implemented as Java objects. The system listens on the console for any input from the user. Once user gives a line of input, it parses the input and accordingly if necessary forks a Console Proxy thread giving it a packet which later forwards the received packet to agent proxy for further analysis. 5 Data Structures Packet Communication Packet Packet Queue 5.1 Packet This is the standard structure that is used for the transfer of all the information of agents from one node to other. All the information is serialized to save the current state of the agent execution and the serialized byte code is moved to the foreign node as a packet where the saved information is retrieved from the packet. Packet Source Destination ClassName ActionName ClassID Object Redirect 5.2 Communication Packet This is the standard structure used for agent interaction. 6

8 5.3 Packet Queue The PacketQueue is used to buffer the packets that are created in the system. Four different Packet Queues are used in the system for different purposes: Agent Buffer - Buffers the agents started to be handled by agent manager Client Buffer - Buffers the agents to be moved to the remote server Console and Server Buffer - Buffers the packets coming from console and server 6 Agent Mobility Since the agent objects are composed of a combination of code and data, object mobility means the network transportation of both code and data. The Client Proxy handles the mobility of the agents to foreign servers. Beyond providing for just the mobility of code and data, the agent system provides for the transmission of state information detailing where the agent has been and state of the variables in execution and where it is going and what it still has to do. Mobility of an agent s data was accomplished using the Java Object Serialization facility. Transfer an agent state is a matter of serializing an agent s data down into a format suitable for network transmission, transmitting the data in this format, and then deserializing the data back into the original agent. This is very similar to the mechanism used by Java Remote Method Invocation (RMI) for passing an object by value between distributed objects. RMI itself does not provide for true object mobility as it provides for no mobility of an object s code and in fact requires that the code for any objects passed by value be pre-installed on both sides of the network connection. Java s Object Serialization features provide an almost transparent mechanism by which Java objects can be serialized into data streams and provided suitable technology for implementing agent mobility. The problem of transmitting an Agent s code is solved in a manner similar to the way in which a web browser loads a Java applet. A browser will typically implement a special Java class called a called a ClassLoader. The Java virtual machine makes a callback into the ClassLoader object whenever the system attempts to load the bytecodes for a Java class. In response to this callback, the ClassLoader implemented within the browser makes an HTTP request to a web browser in order to retrieve the file on the server containing the bytecodes for the class. The Java language provides a mechanism for converting the contents of this file into an actual Java class from which objects can be instantiated. Our Agent infrastructure uses a very similar mechanism to support mobility of code. As an agent travels around a network its bytecodes and the bytecodes of any objects it creates and stores in its member variables are loaded via a special ClassLoader. This ClassLoader packages theses bytecodes into a special data structure whose location and information is passed with the agent. During the deserialization of the agent, the bytecodes for the agent and its related classes can be retrieved from this data structure and are used to instantiate a new copy of the agent. Following is the description of the mobility of the agent in our agent system. The agent framework maintains four lists on every system the framework is running: 7

9 ServerList ClassList AgentList ServiceList The functions of these lists have been discussed before.the ServerList gives the information about the possible systems on which the agent framework is currently active. The local node initiates the mobility of the agent to any of the active servers. The Agent List maintains all the required information of the agentthe classname, the unique ID of the agent generated by using the Hash class, its source and destination. The agent manager handling the agent suspends the corresponding agent which was in execution and saves the state of the agent along with the details obtained from the agent list in a packet. This packet is put into the client buffer which is then handled by the client proxy. The Client Proxy reads the packets from the client buffer and accordingly creates a Object and Thread of client class. The client establishes the connection with the destination server where the packet is to be moved. On the other hand, the server also is listening to the port for establising the connection. Once the connection is established,client moves the packet corresponding to the agent to the destination server and the server starts the server proxt thread which handles the packet from the client. Server proxy reads the packet recieved from the client and adds it in the agent buffer. It also looks for the agent class executable in the ClassList of its local system. If the executable is not present or an older version of the executable is present, then it is loaded from the client machine with the help of ClassLoadServer and the classlist is updated. The agent is then handled by the agent manager in the foreign system and the AgentList of the destination node is updated. 7 Testing Users interact with the agent system by developing the agent application programs. These agent application programs are implemented as Java objects. We have built some small agent applications inorder to test the working of the agent system. Matrix Multiplication agent application is one of the agent application which has been used to test the entire working of the agent system. The goal is to multiply of two significantly large matrices in a distributed fashion. The two matrices are divided into small sub matrices and send as agents to the active servers in the network where they execute locally in the foreign system and returns the results. All the agents after execution and returns back to the originating system with the corresponding results of the multiplication. 8

10 Figure 2: Matrix Multiplication Description 9

11 Agent Execution Commands agent agentname agent agentname start agent agentname stop agent agentname sleep duration agent agentname resume agent agentname suspend agent agentname retract agent agentname move agent agentname move ip agent agentname move ip true agent agentname clone agent agentname clone ip agent agentname clone ip true 8 Conclusion and Future Work The application aimed at has been developed as efficiently as possible and has been tested in the live local network at IIT Kanpur. Subsequently we would like to extend this to include all the improvements that have been mentioned in the above discussion so far. In the coming versions. We would also like to make this more robust so that this can be used as a commercial application. 9 Acknowledgements We would also like to thank the guide Dr. R. K. Ghosh for giving us this wonderful opportunity and his guidance throughout the project and making this learning experience enjoyable for all. References [1] [2] Lange, D., and Oshima, M. Programming and Deploying Java Mobile Agents with Aglets. Addison- Wesley Longman, Reading, Mass., [3] [4] [5] Arjav J. Chakravarti, Xiaojin Wang, Jason O. Hallstrom and Gerald Baumgartner, Implementation of Strong Mobility for Multi-Threaded Agents in Java [6] 10

Network Processing of Mobile Agents, by Mobile Agents, for Mobile Agents

Network Processing of Mobile Agents, by Mobile Agents, for Mobile Agents Network Processing of Mobile Agents, by Mobile Agents, for Mobile Agents Ichiro Satoh National Institute of Informatics / Japan Science and Technology Corporation 2-1-2 Hitotsubashi, Chiyoda-ku, Tokyo

More information

Mobile Code Paradigms

Mobile Code Paradigms Mobile Code Paradigms Sebastian Fischmeister Fischmeister@SoftwareResearch.net Key Aspect & Elements Mobile code is about do you move the data or do you move the code. Elements Data (stored result sets)

More information

An Effective Load Balancing through Mobile Agents using Aglet System

An Effective Load Balancing through Mobile Agents using Aglet System Indian Journal of Science and Technology, Vol 9(48), DOI: 10.17485/ijst/2016/v9i48/107978, December 2016 ISSN (Print) : 0974-6846 ISSN (Online) : 0974-5645 An Effective Load Balancing through Mobile Agents

More information

Chapter 4 Communication

Chapter 4 Communication DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 4 Communication Layered Protocols (1) Figure 4-1. Layers, interfaces, and protocols in the OSI

More information

A tutorial report for SENG Agent Based Software Engineering Course Instructor: Dr. Behrouz H. Far. Mobile Agents.

A tutorial report for SENG Agent Based Software Engineering Course Instructor: Dr. Behrouz H. Far. Mobile Agents. A tutorial report for SENG 609.22 Agent Based Software Engineering Course Instructor: Dr. Behrouz H. Far Mobile Agents Samuel Lee Department of Electrical Engineering University of Calgary Abstract With

More information

Communication. Distributed Systems Santa Clara University 2016

Communication. Distributed Systems Santa Clara University 2016 Communication Distributed Systems Santa Clara University 2016 Protocol Stack Each layer has its own protocol Can make changes at one layer without changing layers above or below Use well defined interfaces

More information

CHAPTER - 4 REMOTE COMMUNICATION

CHAPTER - 4 REMOTE COMMUNICATION CHAPTER - 4 REMOTE COMMUNICATION Topics Introduction to Remote Communication Remote Procedural Call Basics RPC Implementation RPC Communication Other RPC Issues Case Study: Sun RPC Remote invocation Basics

More information

Chapter 5 INTRODUCTION TO MOBILE AGENT

Chapter 5 INTRODUCTION TO MOBILE AGENT Chapter 5 INTRODUCTION TO MOBILE AGENT 135 Chapter 5 Introductions to Mobile Agent 5.1 Mobile agents What is an agent? In fact a software program is containing an intelligence to help users and take action

More information

Distributed Objects and Remote Invocation. Programming Models for Distributed Applications

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

More information

Announcements. me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris

Announcements.  me your survey: See the Announcements page. Today. Reading. Take a break around 10:15am. Ack: Some figures are from Coulouris Announcements Email me your survey: See the Announcements page Today Conceptual overview of distributed systems System models Reading Today: Chapter 2 of Coulouris Next topic: client-side processing (HTML,

More information

Operating System Support

Operating System Support Operating System Support Dr. Xiaobo Zhou Adopted from Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, Addison-Wesley 2005 1 Learning Objectives Know what a modern

More information

CHAPTER 2. Introduction to Middleware Technologies

CHAPTER 2. Introduction to Middleware Technologies CHAPTER 2. Introduction to Middleware Technologies What is Middleware? General Middleware Service Specific Middleware Client/Server Building blocks RPC Messaging Peer to Peer Java RMI. BHUSHAN JADHAV 1

More information

ROUTE OPTIMIZATION EXTENSION FOR THE MOBILE INTERNET PROTOCOL IN LINUX

ROUTE OPTIMIZATION EXTENSION FOR THE MOBILE INTERNET PROTOCOL IN LINUX ROUTE OPTIMIZATION EXTENSION FOR THE MOBILE INTERNET PROTOCOL IN LINUX M. L. Jiang and Y. C. Tay ABSTRACT The base Mobile Internet Protocol (Mobile IP)[1] provides a means for portable computers to roam

More information

MODELS OF DISTRIBUTED SYSTEMS

MODELS OF DISTRIBUTED SYSTEMS Distributed Systems Fö 2/3-1 Distributed Systems Fö 2/3-2 MODELS OF DISTRIBUTED SYSTEMS Basic Elements 1. Architectural Models 2. Interaction Models Resources in a distributed system are shared between

More information

Introduction to Distributed Systems

Introduction to Distributed Systems Introduction to Distributed Systems Other matters: review of the Bakery Algorithm: why can t we simply keep track of the last ticket taken and the next ticvket to be called? Ref: [Coulouris&al Ch 1, 2]

More information

Chapter 2 System Models

Chapter 2 System Models CSF661 Distributed Systems 分散式系統 Chapter 2 System Models 吳俊興國立高雄大學資訊工程學系 Chapter 2 System Models 2.1 Introduction 2.2 Physical models 2.3 Architectural models 2.4 Fundamental models 2.5 Summary 2 A physical

More information

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

CS555: Distributed Systems [Fall 2017] Dept. Of Computer Science, Colorado State University CS 555: DISTRIBUTED SYSTEMS [RPC & DISTRIBUTED OBJECTS] Shrideep Pallickara Computer Science Colorado State University Frequently asked questions from the previous class survey XDR Standard serialization

More information

Architecture of distributed systems

Architecture of distributed systems Prof. Dr. Claudia Müller-Birn Institute for Computer Science, Networked Information Systems Architecture of distributed systems Oct 25, 2011 Netzprogrammierung (Algorithmen und Programmierung V) Our topics

More information

Architecture of distributed systems

Architecture of distributed systems Prof. Dr. Claudia Müller-Birn Institute for Computer Science, Networked Information Systems Architecture of distributed systems Oct 25, 2011 Netzprogrammierung (Algorithmen und Programmierung V) Our topics

More information

5 Distributed Objects: The Java Approach

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

More information

Communication Paradigms

Communication Paradigms Communication Paradigms Nicola Dragoni Embedded Systems Engineering DTU Compute 1. Interprocess Communication Direct Communication: Sockets Indirect Communication: IP Multicast 2. High Level Communication

More information

An Architecture for Next Generation Mobile Agent Infrastructure

An Architecture for Next Generation Mobile Agent Infrastructure An Architecture for Next Generation Mobile Agent Infrastructure Ichiro Satoh Department of Information Sciences, Ochanomizu University / Japan Science and Technology Corporation Abstract This paper presents

More information

Distributed Systems. The main method of distributed object communication is with remote method invocation

Distributed Systems. The main method of distributed object communication is with remote method invocation Distributed Systems Unit III Syllabus:Distributed Objects and Remote Invocation: Introduction, Communication between Distributed Objects- Object Model, Distributed Object Modal, Design Issues for RMI,

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/58 Definition Distributed Systems Distributed System is

More information

A Report on RMI and RPC Submitted by Sudharshan Reddy B

A Report on RMI and RPC Submitted by Sudharshan Reddy B A Report on RMI and RPC Submitted by Sudharshan Reddy B Abstract: This report mainly explains the RMI and RPC technologies. In the first part of the paper the RMI technology is briefly explained and in

More information

02 - Distributed Systems

02 - Distributed Systems 02 - Distributed Systems Definition Coulouris 1 (Dis)advantages Coulouris 2 Challenges Saltzer_84.pdf Models Physical Architectural Fundamental 2/60 Definition Distributed Systems Distributed System is

More information

Jade: Java Agent DEvelopment Framework Overview

Jade: Java Agent DEvelopment Framework Overview Jade: Java Agent DEvelopment Framework Overview Stefano Mariani s.mariani@unibo.it Dipartimento di Informatica Scienza e Ingegneria (DISI) Alma Mater Studiorum Università di Bologna a Cesena Academic Year

More information

Universal Communication Component on Symbian Series60 Platform

Universal Communication Component on Symbian Series60 Platform Universal Communication Component on Symbian Series60 Platform Róbert Kereskényi, Bertalan Forstner, Hassan Charaf Department of Automation and Applied Informatics Budapest University of Technology and

More information

Software Architecture Patterns

Software Architecture Patterns Software Architecture Patterns *based on a tutorial of Michael Stal Harald Gall University of Zurich http://seal.ifi.uzh.ch/ase www.infosys.tuwien.ac.at Overview Goal Basic architectural understanding

More information

CAS 703 Software Design

CAS 703 Software Design Dr. Ridha Khedri Department of Computing and Software, McMaster University Canada L8S 4L7, Hamilton, Ontario Acknowledgments: Material based on Software by Tao et al. (Chapters 9 and 10) (SOA) 1 Interaction

More information

BEAAquaLogic. Service Bus. JPD Transport User Guide

BEAAquaLogic. Service Bus. JPD Transport User Guide BEAAquaLogic Service Bus JPD Transport User Guide Version: 3.0 Revised: March 2008 Contents Using the JPD Transport WLI Business Process......................................................2 Key Features.............................................................2

More information

Lecture 7: February 10

Lecture 7: February 10 CMPSCI 677 Operating Systems Spring 2016 Lecture 7: February 10 Lecturer: Prashant Shenoy Scribe: Tao Sun 7.1 Server Design Issues 7.1.1 Server Design There are two types of server design choices: Iterative

More information

ROUTE OPTIMIZATION EXTENSITON FOR THE MOBILE INTERNET PROTOCOL IN LINUX

ROUTE OPTIMIZATION EXTENSITON FOR THE MOBILE INTERNET PROTOCOL IN LINUX ROUTE OPTIMIZATION EXTENSITON FOR THE MOBILE INTERNET PROTOCOL IN LINUX ABSTRACT The base Mobile Internet Protocol (Mobile IP) provides a means for portable computers to roam freely, changing its point

More information

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints

Active Endpoints. ActiveVOS Platform Architecture Active Endpoints Active Endpoints ActiveVOS Platform Architecture ActiveVOS Unique process automation platforms to develop, integrate, and deploy business process applications quickly User Experience Easy to learn, use

More information

Structured communication (Remote invocation)

Structured communication (Remote invocation) Prof. Dr. Claudia Müller-Birn Institute for Computer Science, Networked Information Systems Structured communication (Remote invocation) Nov 8th, 2011 Netzprogrammierung (Algorithmen und Programmierung

More information

GUI framework communication via the WWW

GUI framework communication via the WWW GUI framework communication via the WWW Thomas Tilley, School of Information Technology, Griffith University, Australia 4215, T.Tilley@gu.edu.au Peter Eklund, School of Information Technology, Griffith

More information

Communication. Overview

Communication. Overview Communication Chapter 2 1 Overview Layered protocols Remote procedure call Remote object invocation Message-oriented communication Stream-oriented communication 2 Layered protocols Low-level layers Transport

More information

Mobile agent based online bandwidth allocation scheme for multimedia communication

Mobile agent based online bandwidth allocation scheme for multimedia communication Mobile based online bandwidth allocation scheme for multimedia communication S.S.Manvi and P. Venkataram Electrical Communication Engineering Department, Indian Institute of Science, Bangalore-560012 INDIA,

More information

JavaSpaces technology for distributed communication and collaboration. Chih-Yao Hsieh

JavaSpaces technology for distributed communication and collaboration. Chih-Yao Hsieh JavaSpaces technology for distributed communication and collaboration Chih-Yao Hsieh Computer Science and Engineering University of Texas at Arlington chsieh@cse.uta.edu Abstract This paper will give an

More information

DISTRIBUTED COMPUTER SYSTEMS

DISTRIBUTED COMPUTER SYSTEMS DISTRIBUTED COMPUTER SYSTEMS Communication Fundamental REMOTE PROCEDURE CALL Dr. Jack Lange Computer Science Department University of Pittsburgh Fall 2015 Outline Communication Architecture Fundamentals

More information

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction

DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN. Chapter 1. Introduction DISTRIBUTED SYSTEMS Principles and Paradigms Second Edition ANDREW S. TANENBAUM MAARTEN VAN STEEN Chapter 1 Introduction Modified by: Dr. Ramzi Saifan Definition of a Distributed System (1) A distributed

More information

Q.1. (a) [4 marks] List and briefly explain four reasons why resource sharing is beneficial.

Q.1. (a) [4 marks] List and briefly explain four reasons why resource sharing is beneficial. Q.1. (a) [4 marks] List and briefly explain four reasons why resource sharing is beneficial. Reduces cost by allowing a single resource for a number of users, rather than a identical resource for each

More information

A Mobile Agent-Based Framework for Active Networks. Ichiro Satoh

A Mobile Agent-Based Framework for Active Networks. Ichiro Satoh A Mobile -Based Framework for Active Networks Ichiro Satoh Department of Information Sciences, Ochanomizu University 2-1-1 Otsuka Bunkyo-ku Tokyo 112-8610, Japan E-mail: ichiro@is.ocha.ac.jp IEEE Systems,

More information

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004

Middleware. Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Middleware Adapted from Alonso, Casati, Kuno, Machiraju Web Services Springer 2004 Outline Web Services Goals Where do they come from? Understanding middleware Middleware as infrastructure Communication

More information

Threads SPL/2010 SPL/20 1

Threads SPL/2010 SPL/20 1 Threads 1 Today Processes and Scheduling Threads Abstract Object Models Computation Models Java Support for Threads 2 Process vs. Program processes as the basic unit of execution managed by OS OS as any

More information

A DESCRIPTION-BASED HYBRID COMPOSITION METHOD OF MASHUP APPLICATIONS FOR MOBILE DEVICES

A DESCRIPTION-BASED HYBRID COMPOSITION METHOD OF MASHUP APPLICATIONS FOR MOBILE DEVICES Journal of Web Engineering, Vol. 15, No. 3&4 (2016) 277 309 c Rinton Press A DESCRIPTION-BASED HYBRID COMPOSITION METHOD OF MASHUP APPLICATIONS FOR MOBILE DEVICES KORAWIT PRUTSACHAINIMMIT, TAKEHIRO TOKUDA

More information

CMPE150 Midterm Solutions

CMPE150 Midterm Solutions CMPE150 Midterm Solutions Question 1 Packet switching and circuit switching: (a) Is the Internet a packet switching or circuit switching network? Justify your answer. The Internet is a packet switching

More information

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36

Overview. Communication types and role of Middleware Remote Procedure Call (RPC) Message Oriented Communication Multicasting 2/36 Communication address calls class client communication declarations implementations interface java language littleendian machine message method multicast network object operations parameters passing procedure

More information

Scalable Middleware Environment for Agent-Based Internet Applications]

Scalable Middleware Environment for Agent-Based Internet Applications] Scalable Middleware Environment for Agent-Based Internet Applications] Benno J. Overeinder and Frances M.T. Brazier Department of Computer Science, Vrije Universiteit Amsterdam De Boelelaan 1081a, 1081

More information

THE IMPACT OF E-COMMERCE ON DEVELOPING A COURSE IN OPERATING SYSTEMS: AN INTERPRETIVE STUDY

THE IMPACT OF E-COMMERCE ON DEVELOPING A COURSE IN OPERATING SYSTEMS: AN INTERPRETIVE STUDY THE IMPACT OF E-COMMERCE ON DEVELOPING A COURSE IN OPERATING SYSTEMS: AN INTERPRETIVE STUDY Reggie Davidrajuh, Stavanger University College, Norway, reggie.davidrajuh@tn.his.no ABSTRACT This paper presents

More information

Architectural Style Requirements for Self-Healing Systems

Architectural Style Requirements for Self-Healing Systems Architectural Style Requirements for Self-Healing Systems Marija Mikic-Rakic, Nikunj Mehta, Nenad Medvidovic Computer Science Department University of Southern California Los Angeles, CA 90089-0781 USA

More information

Web as a Distributed System

Web as a Distributed System Web as a Distributed System The World Wide Web is a large distributed system. In 1998 comprises 70-75% of Internet traffic. With large transfers of streaming media and p2p, no longer a majority of bytes,

More information

Lecture 06: Distributed Object

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

More information

Disconnected Operation in a Mobile Computation System

Disconnected Operation in a Mobile Computation System Disconnected Operation in a Mobile Computation System Marco T. de O. Valente, Roberto da S. Bigonha, Mariza A. da S. Bigonha, Antonio A.F. Loureiro Department of Computer Science University of Minas Gerais

More information

Grid Computing with Voyager

Grid Computing with Voyager Grid Computing with Voyager By Saikumar Dubugunta Recursion Software, Inc. September 28, 2005 TABLE OF CONTENTS Introduction... 1 Using Voyager for Grid Computing... 2 Voyager Core Components... 3 Code

More information

Introduction & RMI Basics. CS3524 Distributed Systems Lecture 01

Introduction & RMI Basics. CS3524 Distributed Systems Lecture 01 Introduction & RMI Basics CS3524 Distributed Systems Lecture 01 Distributed Information Systems Distributed System: A collection of autonomous computers linked by a network, with software to produce an

More information

Dr Markus Hagenbuchner CSCI319 SIM. Distributed Systems Chapter 4 - Communication

Dr Markus Hagenbuchner CSCI319 SIM. Distributed Systems Chapter 4 - Communication Dr Markus Hagenbuchner markus@uow.edu.au CSCI319 SIM Distributed Systems Chapter 4 - Communication CSCI319 Chapter 4 Page: 1 Communication Lecture notes based on the textbook by Tannenbaum Study objectives:

More information

Dynamic Federation of Partitioned Applications in Ubiquitous Computing Environments

Dynamic Federation of Partitioned Applications in Ubiquitous Computing Environments Dynamic Federation of Partitioned pplications in Ubiquitous Computing Environments Ichiro Satoh National Institute of Informatics 2-1-2 Hitotsubashi, Chiyoda-ku, Tokyo 101-8430, Japan E-mail: ichiro@nii.ac.jp

More information

Introduction and Overview Socket Programming Lower-level stuff Higher-level interfaces Security. Network Programming. Samuli Sorvakko/Nixu Oy

Introduction and Overview Socket Programming Lower-level stuff Higher-level interfaces Security. Network Programming. Samuli Sorvakko/Nixu Oy Network Programming Samuli Sorvakko/Nixu Oy Telecommunications software and Multimedia Laboratory T-110.4100 Computer Networks October 5, 2009 Agenda 1 Introduction and Overview 2 Socket Programming 3

More information

Configuring Tivoli Workload Scheduler in a firewalled network

Configuring Tivoli Workload Scheduler in a firewalled network Configuring Tivoli Workload Scheduler in a firewalled network Understanding how the components connect The purpose of this document is to provide an overview of the connections used in a typical Tivoli

More information

Aglets: a good idea for Spidering?

Aglets: a good idea for Spidering? Aglets: a good idea for Spidering? Nick Craswell Jason Haines Brendan Humphreys Chris Johnson Paul Thistlewaite [ANU] 1. Introduction Many individuals and businesses now rely on the Web for promulgating

More information

System Models. 2.1 Introduction 2.2 Architectural Models 2.3 Fundamental Models. Nicola Dragoni Embedded Systems Engineering DTU Informatics

System Models. 2.1 Introduction 2.2 Architectural Models 2.3 Fundamental Models. Nicola Dragoni Embedded Systems Engineering DTU Informatics System Models Nicola Dragoni Embedded Systems Engineering DTU Informatics 2.1 Introduction 2.2 Architectural Models 2.3 Fundamental Models Architectural vs Fundamental Models Systems that are intended

More information

Object-Oriented Systems Design RMI

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

More information

Distributed Systems. Lehrstuhl für Informatik IV RWTH Aachen. Organisation. Classification of the lecture. Literature

Distributed Systems. Lehrstuhl für Informatik IV RWTH Aachen. Organisation. Classification of the lecture. Literature Organisation Distributed Systems Lehrstuhl für Informatik IV RWTH Aachen Prof. Dr. Otto Spaniol Dipl.-Inform. Dirk Thißen Exercises about all 14 days Wednesday, 15.30 17.00 Room AH III, RWTH Aachen Teacher-centred

More information

An agent-based peer-to-peer grid computing architecture

An agent-based peer-to-peer grid computing architecture University of Wollongong Research Online Faculty of Informatics - Papers (Archive) Faculty of Engineering and Information Sciences 2005 An agent-based peer-to-peer grid computing architecture J. Tang University

More information

A Mechanism for Runtime Evolution of Objects

A Mechanism for Runtime Evolution of Objects A Mechanism for Runtime Evolution of Objects Yasuhiro Sugiyama Department of Computer Science Nihon University Koriyama, Japan sugiyama@ce.nihon-u.ac.jp 1. Runtime Version Management of Objects for Software

More information

Mobile Agent Paradigm in Computer Networks

Mobile Agent Paradigm in Computer Networks Mobile Agent Paradigm in Computer Networks Nguyen Hong Van DSV, Stockholm University, Forum 100, SE-164 40 Kista, Sweden Email: si-hvan@dsv.su.se ABSTRACT : Mobile agent technology has recently emerged

More information

Andante: A Mobile Musical Agents Infrastructure

Andante: A Mobile Musical Agents Infrastructure Andante: A s Infrastructure Leo Kazuhiro Ueda, Fabio Kon Department of Computer Science Institute of Mathematics and Statistics (IME) University of São Paulo Rua do Matão, 1010 05508-090 São Paulo, SP

More information

Lecture 5: Object Interaction: RMI and RPC

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

More information

Interprocess Communication

Interprocess Communication Interprocess Communication Nicola Dragoni Embedded Systems Engineering DTU Informatics 4.2 Characteristics, Sockets, Client-Server Communication: UDP vs TCP 4.4 Group (Multicast) Communication The Characteristics

More information

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services

MTAT Enterprise System Integration. Lecture 2: Middleware & Web Services MTAT.03.229 Enterprise System Integration Lecture 2: Middleware & Web Services Luciano García-Bañuelos Slides by Prof. M. Dumas Overall view 2 Enterprise Java 2 Entity classes (Data layer) 3 Enterprise

More information

[Course Overview] After completing this module you are ready to: Develop Desktop applications, Networking & Multi-threaded programs in java.

[Course Overview] After completing this module you are ready to: Develop Desktop applications, Networking & Multi-threaded programs in java. [Course Overview] The Core Java technologies and application programming interfaces (APIs) are the foundation of the Java Platform, Standard Edition (Java SE). They are used in all classes of Java programming,

More information

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan.

Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan. Distributed Object-Based Systems The WWW Architecture Web Services Handout 11 Part(a) EECS 591 Farnam Jahanian University of Michigan Reading List Remote Object Invocation -- Tanenbaum Chapter 2.3 CORBA

More information

Middleware Design Framework for Mobile Computing

Middleware Design Framework for Mobile Computing ISSN: 2222-4254 IJES Middleware Design Framework for Mobile Computing Imran Sarwar Bajwa School of Computer Science, University of Birmingham, Birmingham, B15 2TT, UK i.s.bajwa@cs.bham.ac.uk Abstract.

More information

Vortex Whitepaper. Simplifying Real-time Information Integration in Industrial Internet of Things (IIoT) Control Systems

Vortex Whitepaper. Simplifying Real-time Information Integration in Industrial Internet of Things (IIoT) Control Systems Vortex Whitepaper Simplifying Real-time Information Integration in Industrial Internet of Things (IIoT) Control Systems www.adlinktech.com 2017 Table of Contents 1. Introduction........ P 3 2. Iot and

More information

Chapter 2 Distributed Computing Infrastructure

Chapter 2 Distributed Computing Infrastructure Slide 2.1 Web Serv vices: Princ ciples & Te echno ology Chapter 2 Distributed Computing Infrastructure Mike P. Papazoglou mikep@uvt.nl Slide 2.2 Topics Distributed computing and Internet protocols The

More information

Jade: Java Agent DEvelopment Framework Overview

Jade: Java Agent DEvelopment Framework Overview Jade: Java Agent DEvelopment Framework Overview Multiagent Systems LM Sistemi Multiagente LM Stefano Mariani revised by Andrea Omicini s.mariani@unibo.it, andrea.omicini@unibo.it Dipartimento di Informatica:

More information

DISTRIBUTED OBJECTS AND REMOTE INVOCATION

DISTRIBUTED OBJECTS AND REMOTE INVOCATION DISTRIBUTED OBJECTS AND REMOTE INVOCATION Introduction This chapter is concerned with programming models for distributed applications... Familiar programming models have been extended to apply to distributed

More information

TCF. Anyware Technologies-All Right Reserved. Anyware's Implementation of the Target Communication Framework

TCF. Anyware Technologies-All Right Reserved. Anyware's Implementation of the Target Communication Framework TCF Anyware's Implementation of the Target Communication Framework What is it? Why a new TCF implementation? We work on an IDE that require communications with targets. We need the TCF model : notions

More information

CCDP-ARCH. Section 11. Content Networking

CCDP-ARCH. Section 11. Content Networking CCDP-ARCH Section 11 As a designer, content networking technologies allows you to intelligently distribute content throughout the network, thereby reducing WAN bandwidth requirements. For example, a user

More information

Chapter 5: Distributed objects and remote invocation

Chapter 5: Distributed objects and remote invocation Chapter 5: Distributed objects and remote invocation From Coulouris, Dollimore and Kindberg Distributed Systems: Concepts and Design Edition 4, Addison-Wesley 2005 Figure 5.1 Middleware layers Applications

More information

Advanced Topics in Distributed Systems. Dr. Ayman A. Abdel-Hamid. Computer Science Department Virginia Tech

Advanced Topics in Distributed Systems. Dr. Ayman A. Abdel-Hamid. Computer Science Department Virginia Tech Advanced Topics in Distributed Systems Dr. Ayman A. Abdel-Hamid Computer Science Department Virginia Tech Communication (Based on Ch2 in Distributed Systems: Principles and Paradigms, 1/E or Ch4 in 2/E)

More information

AdJava Automatic Distribution of Java Applications

AdJava Automatic Distribution of Java Applications AdJava Automatic Distribution of Java Applications Mohammad M. Fuad and Michael J. Oudshoorn Department of Computer Science University of Adelaide Adelaide 5005, South Australia {Fuad, Michael}@cs.adelaide.edu.au

More information

Motivation for File Integrity

Motivation for File Integrity Motivation for File Integrity Overview Existing Frameworks Intrusion Detection System (IDS) goals include the ability to: characterize and identify computer system attacks, identify occurrences of security

More information

AWS Lambda + nodejs Hands-On Training

AWS Lambda + nodejs Hands-On Training AWS Lambda + nodejs Hands-On Training (4 Days) Course Description & High Level Contents AWS Lambda is changing the way that we build systems in the cloud. This new compute service in the cloud runs your

More information

1. What is a Computer Network? interconnected collection of autonomous computers connected by a communication technology

1. What is a Computer Network? interconnected collection of autonomous computers connected by a communication technology Review Questions for exam Preparation (22-07-2017) 1. What is a Computer Network? interconnected collection of autonomous computers connected by a communication technology 2. What is the Internet? "network

More information

Deployment Scenarios for Standalone Content Engines

Deployment Scenarios for Standalone Content Engines CHAPTER 3 Deployment Scenarios for Standalone Content Engines This chapter introduces some sample scenarios for deploying standalone Content Engines in enterprise and service provider environments. This

More information

Distributed Systems Principles and Paradigms

Distributed Systems Principles and Paradigms Distributed Systems Principles and Paradigms Chapter 03 (version February 11, 2008) Maarten van Steen Vrije Universiteit Amsterdam, Faculty of Science Dept. Mathematics and Computer Science Room R4.20.

More information

Java- and CORBA-Based Network Management. Mika Leppinen, Pekka Pulkkinen, and Aapo Rautiainen

Java- and CORBA-Based Network Management. Mika Leppinen, Pekka Pulkkinen, and Aapo Rautiainen Project Reports Java- and CORBA-Based Network Management Mika Leppinen, Pekka Pulkkinen, and Aapo Rautiainen Nokia Research Center Nokia developed the Distributed Computing Platform prototype to support

More information

Process. Program Vs. process. During execution, the process may be in one of the following states

Process. Program Vs. process. During execution, the process may be in one of the following states What is a process? What is process scheduling? What are the common operations on processes? How to conduct process-level communication? How to conduct client-server communication? Process is a program

More information

Distributed Systems. Lehrstuhl für Informatik 4. RWTH Aachen. Organization. Literature. Classification of the lecture

Distributed Systems. Lehrstuhl für Informatik 4. RWTH Aachen. Organization. Literature. Classification of the lecture Organization Distributed Systems RWTH Aachen Dr. Dirk Thißen Prof. Dr. Otto Spaniol 1 Exercises about all 14 days Room AH 5, RWTH Aachen Teacher-centered exercises Contact Dirk Thißen, Room 4226 (Building

More information

Advanced Java Programming. Networking

Advanced Java Programming. Networking Advanced Java Programming Networking Eran Werner and Ohad Barzilay Tel-Aviv University Advanced Java Programming, Spring 2006 1 Overview of networking Advanced Java Programming, Spring 2006 2 TCP/IP protocol

More information

printeract, Xerox Remote Services A step in the right direction

printeract, Xerox Remote Services A step in the right direction printeract, Xerox Remote Services A step in the right direction Diagnose Problems Assess Machine Data Troubleshooting Customer Security Assured 701P42950 PrInteract, Xerox Remote Services Overview About

More information

Advanced Distributed Systems

Advanced Distributed Systems Course Plan and Department of Computer Science Indian Institute of Technology New Delhi, India Outline Plan 1 Plan 2 3 Message-Oriented Lectures - I Plan Lecture Topic 1 and Structure 2 Client Server,

More information

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system

Chapter Outline. Chapter 2 Distributed Information Systems Architecture. Distributed transactions (quick refresh) Layers of an information system Prof. Dr.-Ing. Stefan Deßloch AG Heterogene Informationssysteme Geb. 36, Raum 329 Tel. 0631/205 3275 dessloch@informatik.uni-kl.de Chapter 2 Distributed Information Systems Architecture Chapter Outline

More information

Chapter 1: Distributed Systems: What is a distributed system? Fall 2013

Chapter 1: Distributed Systems: What is a distributed system? Fall 2013 Chapter 1: Distributed Systems: What is a distributed system? Fall 2013 Course Goals and Content n Distributed systems and their: n Basic concepts n Main issues, problems, and solutions n Structured and

More information

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008

Distributed Systems Theory 4. Remote Procedure Call. October 17, 2008 Distributed Systems Theory 4. Remote Procedure Call October 17, 2008 Client-server model vs. RPC Client-server: building everything around I/O all communication built in send/receive distributed computing

More information

On-Line Monitoring of Multi-Area Power Systems in Distributed Environment

On-Line Monitoring of Multi-Area Power Systems in Distributed Environment SERBIAN JOURNAL OF ELECTRICAL ENGINEERING Vol. 3, No. 1, June 2006, 89-101 On-Line Monitoring of Multi-Area Power Systems in Distributed Environment Ramadoss Ramesh 1, Velimuthu Ramachandran 2 Abstract:

More information

Remote Invocation. 1. Introduction 2. Remote Method Invocation (RMI) 3. RMI Invocation Semantics

Remote Invocation. 1. Introduction 2. Remote Method Invocation (RMI) 3. RMI Invocation Semantics Remote Invocation Nicola Dragoni Embedded Systems Engineering DTU Informatics 1. Introduction 2. Remote Method Invocation (RMI) 3. RMI Invocation Semantics From the First Lecture (Architectural Models)...

More information

IIOP: Internet Inter-ORB Protocol Make your code accessible even in future, with the next universal protocol

IIOP: Internet Inter-ORB Protocol Make your code accessible even in future, with the next universal protocol IIOP: Internet Inter-ORB Protocol Make your code accessible even in future, with the next universal protocol My Articles: Home Networking Wearable Computing IIOP Meet My Friend Intelligent Agents We are

More information