1) The document discusses the introduction to distributed systems, which became feasible due to advances in microprocessors and computer networks that allowed independent computers to be connected.
2) A distributed system is defined as a collection of independent computers that appears as a single system to users. It hides differences between computers and allows for consistent interaction regardless of location.
3) The goals of distributed systems are making resources accessible across multiple computers, providing distribution transparency to hide the distributed nature, and being scalable to growing size and geographic scope.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
0 ratings0% found this document useful (0 votes)
73 views38 pages
Advanced Distributed Systems: Chapter - 1
1) The document discusses the introduction to distributed systems, which became feasible due to advances in microprocessors and computer networks that allowed independent computers to be connected.
2) A distributed system is defined as a collection of independent computers that appears as a single system to users. It hides differences between computers and allows for consistent interaction regardless of location.
3) The goals of distributed systems are making resources accessible across multiple computers, providing distribution transparency to hide the distributed nature, and being scalable to growing size and geographic scope.
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPTX, PDF, TXT or read online on Scribd
You are on page 1/ 38
Advanced Distributed Systems
CHAPTER -1 Introduction to Distributed Systems
Dr. Bharat Kumar G J
Definition • 1940 – 1980 computers were Large and Expensive and No inter connecting mechanisms • 1980 – 2 advances in technology changed the world • The first was the development of powerful microprocessors. Initially, these were 8-bit machines, but soon 16-, 32-, and 64-bit CPUs became common. Many of these had the computing power large computer, but for a fraction of the price. • The second development was the invention of high-speed computer networks. Local-area networks or LANs allow hundreds of machines within a building to be connected in such a way that small amounts of information can be transferred between machines in a few microseconds or so. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 2 Definition • Larger amounts of data can be transferred between computers form some KBps to GBps. • Wide-area networks or WANs allow milIions of machines all over the earth to be connected at speeds varying from 64 Kbps (kilobits per second) to gigabits per second • The result of these technologies is that it is now not only feasible, but easy, to put together computing systems composed of large numbers of computers connected by a high-speed network. They are usually called computer networks or distributed systems, in contrast to the previous centralized systems (or single processor systems) consisting of a single computer, its peripherals, and perhaps some remote terminals. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 3 Definition A distributed system is a collection of independent computers that appears to its users as a single coherent system. • This definition has 2 important aspects. • 1. A distributed system consists of components (i.e., computers) that are autonomous. • 2. Users (be they people or programs) think they are dealing with a single system. • This means that one way or the other the autonomous components need to collaborate. • There is no limitations on type of computers may be largest computer like main frames to smallest sensor nodes. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 4 Characteristics of DS • One important characteristic is that differences between the various computers and the ways in which they communicate are mostly hidden from users. • Another important characteristic is that users and applications can interact with a distributed system in a consistent and uniform way, regardless of where and when interaction takes place. • distributed systems should also be relatively easy to expand or scale. This characteristic is a direct consequence of having independent computers, but at the same time, hiding how these computers actually take part in the system as a whole. A distributed system will normally be continuously available, although perhaps some parts may be temporarily out of order. Users and applications should not notice that parts are being replaced or fixed, or that new parts are added to serve more users or applications BIT/ADS/CH-1 Dr. Bharat Kumar GJ 5 Characteristics of DS • In order to support heterogeneous computers and networks while offering a single-system view, distributed systems are often organized by means of a layer of software-that is
BIT/ADS/CH-1 Dr. Bharat Kumar GJ 6
Characteristics of DS • logically placed between a higher-level layer consisting of users and applications, and a layer underneath consisting of operating systems and basic communication facilities, Accordingly, such a distributed system is sometimes called middleware. • Application B is distributed across computers 2 and 3. • Each application is offered the same interface. • The distributed system provides the means for components of single distributed application to communicate with each other, but also to let different applications communicate. • At the same time, it hides, as best and reasonable as possible, the differences in hardware and operating systems from each application BIT/ADS/CH-1 Dr. Bharat Kumar GJ 7 GOALS •four important goals that should be met to make building a distributed system worth the effort. •Making Resources Accessible •Distribution Transparency •Scalability
BIT/ADS/CH-1 Dr. Bharat Kumar GJ 8
Making Resources Accessible • The main goal of a distributed system is to make it easy for the users (and applications) to access remote resources, and to share them in a controlled and efficient way. • Resources can be just about anything, but typical examples include things like printers, computers, storage facilities, data, files, Web pages, and networks etc. • There are many reasons for wanting to share resources. One obvious reason is that of economics. For example, it is cheaper to let a printer be shared by several users in a small office than having to buy and maintain a separate printer for each user. • connectivity and sharing increase, security is becoming increasingly important. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 9 Distribution Transparency • An important goal of a distributed system is to hide the fact that its processes and resources are physically distributed across multiple computers. • A distributed system that is able to present itself to users and applications as if it were only a single computer system is said to be transparent. • Degree of Transparency Although distribution transparency is generally considered preferable for any distributed system, there are situations in which attempting to completely hide all distribution aspects from users is not a good idea. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 10 Distribution Transparency • Types of Transparency:
BIT/ADS/CH-1 Dr. Bharat Kumar GJ 11
Scalability • Scalability of a system can be measured along at least three different dimensions (Neuman, 1994). • First, a system can be scalable with respect to its size, meaning that we can easily add more users and resources to the system. • Second, a geographically scalable system is one in which the users and resources may lie far apart. • Third, a system can be administratively scalable, that it can still be easy to manage even if it spans many independent administrative organizations. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 12 TYPES OF DISTRIBUTED SYSTEMS 3 types: 1. Distributed Computing Systems 2. Distributed Information Systems 3. Distributed Pervasive Systems
BIT/ADS/CH-1 Dr. Bharat Kumar GJ 13
Distributed Computing Systems Based on computing architecture 1. Cluster Computing Systems In cluster computing the underlying hardware consists of a collection of similar workstations or PCs, closely connected by means of a same highspeed local-area network. In addition, each node runs the same operating system. 2. Grid Computing Systems • constructed as a computer systems, where each system may fall under a different administrative domain, and may be very different when it comes to hardware, software, and deployed network technology. • high degree of heterogeneity: BIT/ADS/CH-1 no assumptions Dr. Bharat Kumar GJ are made 14 Distributed Information Systems Based on information processing Transaction Processing Systems Operations on a database are usually carried out in the form of transactions
BIT/ADS/CH-1 Dr. Bharat Kumar GJ 15
Distributed Pervasive Systems • Based on instability of network • Mobile computing devices. • small, battery-powered, mobile, and having only a wireless connection. • Eg: • Home Systems – integrate typical consumer electronics such as TVs, audio and video equipment. Gaming devices, (smart) phones, PDAs, and other personal wearables into a single system. • Electronic Health Care Systems - devices are being developed to monitor the well-being of individuals and to automatically contact physicians when needed BIT/ADS/CH-1 Dr. Bharat Kumar GJ 16 ARCHITECTURAL STYLES •4 basic styles 1. Layered architectures 2. Object-based architectures 3. Data-centered architectures 4. Event-based architectures BIT/ADS/CH-1 Dr. Bharat Kumar GJ 17 Layered architectures
• component at layer L; is allowed to call components at the underlying
layer Li+ • This model has been widely adopted by the networking community • control generally flows from layer to layer: requests go down the hierarchy whereas the results flow upward. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 18 Object-based architectures
• Each object corresponds a component, and
• These components are connected through a (remote) procedure call mechanism BIT/ADS/CH-1 Dr. Bharat Kumar GJ 19 Data-centered architectures Component Component
Component Component
• Data-centered architectures evolve around the idea
that processes communicate through a common repository BIT/ADS/CH-1 Dr. Bharat Kumar GJ 20 Event-based architectures
• In event-based architectures, processes essentially communicate
through the propagation of events, which optionally also carry data • The basic idea is that processes publish events after which the middleware ensures that only those processes that subscribed to those events will receive them BIT/ADS/CH-1 Dr. Bharat Kumar GJ 21 ARCHITECTURES vs MIDDLEWARE
BIT/ADS/CH-1 Dr. Bharat Kumar GJ 22
ARCHITECTURES vs MIDDLEWARE • Middleware forms a layer between applications and distributed platforms. • An important purpose is to provide a degree of distribution transparency, that is, to a certain extent hiding the distribution of-data, processing, and control from applications. • What is commonly seen in practice is that middleware systems actually follow a specific architectural style. • For example, many middleware solutions have adopted an object-based architectural style, such as CORBA (OMG. 2004a). Others, like TIB/Rendezvous (TIBCO, 2005) provide middleware that follows the event-based architectural style. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 23 ARCHITECTURES vs MIDDLEWARE • Having middleware molded according to a specific architectural style has the benefit that designing applications may become simpler. • However, an obvious drawback is that the middleware may no longer be optimal for what an application developer had in mind. • For example, COREA initially offered only objects that could be invoked by remote clients. • Later, it was felt that having only this form of interaction was too restrictive, so that other interaction patterns such as messaging were added. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 24 ARCHITECTURES vs MIDDLEWARE •In addition, although middleware is meant to provide distribution transparency, it is generally felt that specific solutions should be adaptable to application requirements. •One solution to this problem is to make several versions of a middleware system, where each version is tailored to a specific class of applications. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 25 ARCHITECTURES vs MIDDLEWARE • An approach that is generally considered better is to make middleware systems such that they are easy to configure, adapt, and customize as needed by an application. • As a result, systems are now being developed in which a stricter separation between policies and mechanisms is being made. • This has led to several mechanisms by which the behaviour of middleware can be modified .Let us take a look at some of the commonly followed approaches. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 26 Interceptors • An interceptor is nothing but a software construct that will break the usual flow of control and allow other (application specific) code to be executed. • interception as supported in many object based distributed systems. The basic idea is simple: an object A can call a method that belongs to an object B, while the latter resides on a different machine than A. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 27 Interceptors remote-object invocation is carried as a three-step approach: 1. Object A is offered a local interface that is exactly the same as the interface offered by object B. A simply calls the method available in' that interface. 2. The call by A is transformed into a generic object invocation, made possible through a general object- invocation interface offered by the middleware at the machine where A resides. 3. Finally, the generic object invocation is transformed into a message that is sent through the transport-level network interface as offered by A's local operating system. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 28 Interceptors
BIT/ADS/CH-1 Dr. Bharat Kumar GJ 29
Interceptors • call such as invoke(B, &do_something, value) with a reference to B's method and the parameters that go along with the call. • Now imagine that object B is replicated. In that case, each replica should actually be invoked. This is a clear point where interception can help. • What the request-level interceptor will do is simply call invoke(B, &do_something, value) for each of the replicas. The beauty of this an is that the object A need not be aware of the replication of B, but also the object middleware need not have special components that deal with this replicated call. • Only the request-level interceptor, which may be added to the middleware needs to know about B's replication.
BIT/ADS/CH-1 Dr. Bharat Kumar GJ 30
Interceptors • In the end, a call to a remote object will have to be sent over the network. • For example, imagine that the parameter value actually corresponds to a huge array of data. • In that case, it may be wise to fragment the data into smaller parts to have it assembled again at the destination. Such a fragmentation may improve performance or reliability. • Again, the middleware need not be aware of this fragmentation; the lower-level interceptor will transparently handle the rest of the communication with the local operating system. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 31 General Approaches to Adaptive Software • What interceptors actually offer is a means to adapt the middleware. • The need for adaptation comes from the fact that the environment in which distributed applications are executed changes continuously. • Changes include those resulting from mobility, a strong variance in the quality-of-service of networks, failing hardware, and battery drainage, amongst others. • Rather than making applications responsible for reacting to changes, this task is placed in the middleware. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 32 General Approaches to Adaptive Software • These strong influences from the environment have brought many designers of middleware to consider the construction of adaptive software. • As many researchers and developers consider it to be an important aspect of modern distributed systems, distinguish three basic techniques to come to software adaptation: 1. Separation of concerns 2. Computational reflection 3. Component-based design BIT/ADS/CH-1 Dr. Bharat Kumar GJ 33 General Approaches to Adaptive Software Separating concerns relates to the traditional way of modularizing systems: • separate the parts that implement functionality from those that take care of other things (known as extra functionalities) such as reliability, performance, security, etc. • One can argue that developing middleware for distributed applications is largely about handling extra functionalities independent from applications. • The main problem is that we cannot easily separate these extra functionalities by means of modularization. • For example, simply putting security into a separate module is not going to work. Likewise, it is hard to imagine how fault tolerance can be isolated into a separate box and sold as an independent service. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 34 General Approaches to Adaptive Software • Computational reflection refers to the ability of a program to inspect itself and, if necessary, adapt its behaviour . • Reflection has been built into programming languages, including Java, and offers a powerful facility for runtime modifications. • In addition, some middleware systems provide the means to apply reflective techniques. • However, just as in the case of aspect orientation, reflective middleware has yet to prove itself as a powerful tool to manage the complexity of large-scale distributed systems. • As mentioned by Blair et al. (2004), applying reflection to a broad domain of applications is yet to be done. BIT/ADS/CH-1 Dr. Bharat Kumar GJ 35 General Approaches to Adaptive Software • Finally, component-based design supports adaptation through composition. • A system may either be configured statically at design time, or dynamically at runtime. • The latter requires support for late binding, a technique that has been successfully applied in programming language environments, but also for operating systems where modules can be loaded and unloaded at will. • Research is now well underway to allow automatically selection of the best implementation of a component during runtime BIT/ADS/CH-1 Dr. Bharat Kumar GJ 36 Self Management in DS - Feedback Control Systems • High-level feedback-control systems allowing automatic adaptations to changes. This phenomenon is also known as autonomic computing. • The latter name indicates the variety by which automatic adaptations are being captured: self-managing, self- healing, self-configuring, self-optimizing, and so on. • There are many different views on self-managing systems, but what most have in common (either explicitly or implicitly) is the assumption that adaptations take place by means of one or more feedback control loops.