Abstract | Full Paper | PDF | Printer friendly format

Page 1 of 5
| Next |

Promoting Distributed GIServices Using Mobile Agent Technology

Saeid M. Kalantari
M.Sc. Student, Dept. of GIS Eng.
Email: sm_kalantary@yahoo.com

Ali A. Alesheikh
Ali A. Alesheikh
Assistant Professor, Dept. of GIS Eng.
Email:alesheikh@kntu.ac.ir

Ahmad Talebzadeh
Application and GIS director of Iranian Remote Sensing Center
Email: talebzadeh_a@yahoo.com

Address: Faculty of Geodesy and Geomatics Eng., K.N. Toosi University of Technology
Vali Asr St., Vanak Sq., Tehran, Iran,
Post Box: 15875-15433
Tel: +98 21 877 9473-5, Fax: +98 21 878 6213



1. Distributerd Systems
A distributed system is one in which components located at networked computers communicate and coordinate their actions only by passing messages. This definition leads to the following characteristics of distributed systems: concurrency of components, and independent failures of components. Three examples of distributed systems are given:
  • The Internet;
  • An intranet, which is a portion of the Internet managed by an organization;
  • Mobile and ubiquitous computing.
The sharing of resources is a main motivation for constructing distributed systems. Resources may be managed by servers and accessed by clients, or they may be encapsulated as objects and accessed by other client objects. The Web is discussed as an example of resource sharing.

Networks of computers are everywhere. The Internet is one, as are the many networks of which it is composed. Mobile phone networks, corporate networks, factory networks, campus networks, home networks, in-car networks, all of these, both separately and in combination, share the essential characteristics that make them relevant subjects for study under the heading of distributed systems. The characteristics of networked computers that impact system designers and implementers are discussed. The main concepts and techniques that have been developed to help in the tasks of designing and implementing systems are elaborated in this paper.

A distributed system is defined as one in which hardware or software components locate at networked computers communicates and coordinates their actions only by passing messages [1]. This simple definition covers the entire range of systems in which networked computers can usefully be deployed.

Computers that are connected by a network may be spatially separated by any distance. They may be on separate continents, in the same building or the same room.

There are various challenges in these systems that must be respected like heterogeneity, openness, security, scalability, failure handling, concurrency, transparency .Here are some of the problems that the designers of distributed systems face:
  • Widely varying modes of use: The component parts of systems are subject to wide variations in workload - for example, some web pages are accessed several million times a day. Some parts of a system may be disconnected, or poorly connected some of the time - for example when mobile computers are included in a system. Some applications have special requirements for high communication bandwidth and low latency - for example, shortest path.
  • Wide range of system environments: A distributed system must accommodate heterogeneous hardware, operating systems and networks. The networks may differ widely in performance - wireless networks operate at a fraction of the speed of local networks. Systems of widely differing scales - ranging from tens of computers to millions of computers - must be supported.
  • Internal problems: Non-synchronized clocks, conflicting data updates, many modes of hardware and software failure involving the individual components of a system.
  • External threats: Attacks on data integrity and secrecy, denial of service[1]
Heterogeneity of distributed systems is an outstanding challenge among the others. All parts of distributed system like platform, data and application challenge with this problem. For solving platform problem the virtual machine approach provides a way of making code executable on any hardware: the compiler for a particular language generates code for a virtual machine instead of a particular hardware. For example, the Java compiler produces code for the Java virtual machine, which needs to be implemented once for each type of hardware to enable Java programs to run. However, the Java solution is not generally applicable to programs written in other languages. But, other problem like application and data heterogeneity must be considered in application developing platform.

Page 1 of 5
| Next |