Principles Digital Communication System & Computer Networks (Charles River Media Computer Engineering)
| < Day Day Up > |
|
25.3 DYNAMIC DISTRIBUTED SYSTEMS
The computer networks we use today have many drawbacks: the network is prone to failures and the topology of the network changes when new nodes are added or removed, and so lots of administrative work is required to keep the network up and running. These systems are called dynamic distributed systems because as time goes, their topology, number of nodes connected, services available on the network, and so on keep changing. Ideally, these systems should be administration free, and the network must be reliable and robust. Also, it must be very easy to install software, and the network must run without much maintenance. Today, even for a corporate LAN, a dedicated administrator has to do a lot of work when the topology changes, when new software or hardware is installed, or when the network is upgraded. Even connecting a new printer and making the print service available to the users involves a lot of manual procedures. When a service becomes unavailable (say, when the printer is out of order), the users will not even be aware of it. Using the Jini connection technology of Sun Microsystems; all these problems can be solved. Jini provides the technology to develop dynamic distributed systems by providing plug-and-play features to the various devices connected through a network, and there is no need for an administrator to do manual work to add new services to the network or to inform the users when a service becomes unavailable. In Jini terminology, a set of devices can form a "spontaneous community" when they are networked, and one device can make its services available to other devices automatically.
It is very difficult to maintain today's computer networks—lots of administrative work is involved to change the topology, add or remove nodes, add new services, and so on. Dynamic distributed systems are networks in which plug-and-play features are provided to the devices connected to the networks. They aim to develop administration-free networks.
25.3.1 Jini
In January 1999, Sun Microsystems introduced Jini. Using Jini, dynamic distributed systems can be built. Jini is built on Java and uses remote method invocation (RMI) to create spontaneous communities of devices. Every device to be connected to the network has to be Jini-enabled by running a piece of software on it. When a Jini-enabled device comes in the vicinity of a network of other Jini-enabled devices, the device can find out, through a defined set of protocols, what services are available on the network and use these services. It also can tell the other devices what services it can offer for others to avail of them. Not only the nodes of a LAN, but the peripherals such as printer, scanner, PDA, digital camera, and mobile phones can be Jini enabled. The requirement for a device is that it should be able to be connected to a TCP/IP network, it must have an IP address, it must be able to send and receive multicast addresses, and Jini software must run on the device. Jini software can be run on a PC with a JVM. If a device such as an embedded system with limited resources cannot run the Jini software, another system such as a PC can act as a proxy on its behalf.
Jini is a technology developed by Sun Microsystems to create dynamic distributed systems. Jini is based on Java and remote method invocation (RMI). A device can be Jini enabled by running a small piece of software on the device.
Consider a LAN in which the devices are Jini enabled. When a desktop wants a print service (when you want to take a printout), the desktop will look for the availability of the print service, and the server will give a list of printers available, along with the capabilities. Then the desktop will reserve the print service for a fixed duration, use the service, and then free it. The service can be a hardware service such as a print service or it can be a software service such as a program to convert a BMP file to a JPEG file. Using Jini on a general-purpose computer is shown in Figure 25.7. The service provider can be a PC to which a printer is attached. On behalf of the printer, the PC will register itself with the lookup service making the print service available over the network. The service consumer, another PC, will look up the print service, connect to the other PC through the TCP/IP network, and use the print service. If for some reason the printer is not available, the lookup service is told this so that the service consumer can look for another available printer on the network.
Two or more Jini-enabled devices form a spontaneous community. A Jini-enabled device can find out the details of services available with other Jini-enabled services and make use of these services. The communication is done through a standard set of protocols.
Note | To make a device Jini enabled, the device should have an IP address, it should be able to connect to a TCP/IP network, and Jini software should be running on the device. |
The architecture of Jini is shown in Figure 25.8. Jini is based on five key concepts: lookup, discovery, leasing, remote events, and transactions.
Dynamic distributed systems can be created using Jini through five key concepts: lookup, discovery, leasing, remote events, and transactions.
Lookup: Lookup service enables a device to search and find the desired service within the Jini community. In other words, the lookup service provides the directory services within a Jini community.
Discovery: Discovery is the process of finding communities on the network and joining a community. The discovery process gives Jini the property of building a spontaneous community of devices. To discover the services available/ provided on the network, the following discovery protocols are defined.
-
Multicast request protocol: used when a service becomes active and the service needs to find nearby lookup services that may be active.
-
Multicast announcement protocol: used by the lookup service to announce its presence.
-
Unicast discovery protocol: used when a service already knows the particular lookup service it wishes to talk to.
-
Unicast lookup protocol: used to create a static connection between services.
Leasing: When a device wants to use a service, it takes the service on "lease" for a fixed duration—by default five minutes. Service lease can be renewed or, canceled early or the lease period can be negotiated. Third-party leasing is also allowed. This leasing is similar to leasing of a house by a tenant—the tenant negotiates with the owner on the initial lease period and subsequently the lease can be renewed or canceled.
Remote events: In a network, it is possible that some service may be withdrawn (such as a scanner being removed from the network). The remote events allow services to notify each other of any changes in their state.
Transactions: Transactions are mechanisms to ensure data integrity and consistency. These mechanisms are very important because they ensure that the transactions are either fully complete or none is completed. Consider the example of a money transaction, where money has to be withdrawn from a bank account and deposited to a credit card account. If the first transaction is completed and then the network fails, it will be a loss of money to the user who initiated the transaction. Hence, it is necessary to ensure that either both transactions are complete or none is completed. to maintain data consistency and integrity. Using two phase commit (2PC), it is ensured that both operations take place or the first one is canceled if the second operation is not successful for some reason.
Note | Two phase commit (2PC) is a very important concept in all database applications. It ensures data integrity and data consistency. It is based on simple logic: if a transaction involves a number of operations, all the operations should be performed or none of the operations should be performed. |
| < Day Day Up > |
|