12/30/2024
Introduction
• What is a distributed system
• Design goals
• Type of distributed systems
Distributed System
MSc. Huynh Nam
BY MR. HUYNH NAM BY MR. HUYNH NAM
1 2
What is a distributed system Collection of autonomous computing elements
• A distributed system is a collection of
• Nodes can act independently from each other, ignore each other.
autonomous computing elements that appears to • Node reacts to incoming messages, which are then processed and, in turn leading to
its users as a single coherent system.
further communication through message passing.
• 1st: A collection of computing elements each
being able to behave independently of each • Common reference of time (global clock) leads to fundamental question regarding the
other synchronization and coordination with a distributed system.
• Node: hardware device or a software
process • Managing group membership (admission control) is difficult: open and close group (all
• 2 : That users (people or applications)
nd
member is trusted)-> need mechanism
believe they are dealing with a single system
• 1st : authenticate a node -> issue: a scalability bottleneck.
• That one way or another the autonomous
nodes need to collaborate • 2nd : check if it is indeed communicating with another group member or not.
• Three characteristics: • 3rd: facing trust issues in communicating with nonmember.
• Collection of autonomous computing elements • Organized as an overlay network
• Single coherent system
• Structured overlay: each node has a well-define set of neighbors with whom it can communicate.
• Middleware and distributed systems
• Unstructured overlay: each node has a number of references to randomly selected other nodes.
BY MR. HUYNH NAM BY MR. HUYNH NAM
3 4
12/30/2024
Single coherent system (single-system view, single-system image) Middleware and distributed systems
• In distributed system, end user would not be able to tell exactly on which • A separated layer of software that is logically
computer a process is currently executing, where data us stored, replicating data placed on top of the respective operating
…. So called distribution transparency. systems of the computers that are part of the
system: resource management
• An important trade-off: That unexpected behavior in which, for example, some • Facilities for inter-application communication
applications may continue to execute successfully which others come to a grinding • Security services
halt -> difficult to hide. • Accounting services
• Masking of and recovery from failures
• Middleware services are offered in a
networked environment (main difference
with OS). Some typical middleware services
• Communication: Remote Procedure Call (PRC)
• Transaction
• Service composition
• Reliability
BY MR. HUYNH NAM BY MR. HUYNH NAM
5 6
Design goals Supporting resource sharing
• There are four important goals to make distributed system worth the effort • Making group of people (groupware)
• Supporting resource sharing easy to access and share remote resources.
• Making distribution transparent
• Resources: virtually anything
• Being open
(peripherals, storage, data file, network
• Being scalable …)
• Scaling techniques
• Peer-to-peer network: distribution of
• Pitfalls media files such as video, audio. The
technology is used for distributing
large amounts of data, as in case
software updates, backup services, and
data synchronization across multiple
servers.
BY MR. HUYNH NAM BY MR. HUYNH NAM
7 8
12/30/2024
Making distribution transparent Being open
• Hide the fact (making user and application is invisible processes and resources) • An open distributed system is essentially a system that offers components that can
that its processes and resources are physically distributed across multiple easily be used by or integrated into other systems.
computers possibly separated by large distance. • Interoperability, composability, and extensibility: To be open means that
• Type of distribution transparency components should adhere to standard rules that describe the syntax and semantics
of what those components have to offer. A general approach is to define services
through interfaces using an Interface Definition Language (IDL).
• Interoperability characterizes the extent by which two implementations of systems or
components from different manufacturers can co-exist and work together by merely relying
on each other’s services as specified by a common standard.
• Portability (composability, modularity) characterizes to what extent an application
developed for a distributed system A can be executed, without modification, on a different
distributed system B that implements the same interfaces as A.
• Extensible characterizes to what is easy to add new components or replace existing ones
without affecting those components that stay in place.
BY MR. HUYNH NAM BY MR. HUYNH NAM
9 10
Being open Being Scalable
• Separating policy from mechanism: To achieve flexibility in open distributed • In distributed systems, a scalable system refers to the ability of a networked
systems, it is crucial that the system be organized as a collection of relatively architecture to handle increasing amounts of work or expand to accommodate
small and easily replaceable or adaptable components. growth without compromising performance or reliability.
• Ex: Monolithic systems thus tend to be closed instead of open. • Scalability ensures that as demand grows—whether in terms of user load, data
volume, or transaction rate—the system can efficiently adapt by adding resources
• In case web caching, there are many different parameters (optimal policy) that or nodes.
need to be considered:
• Scalability dimensions
• Storage: Where is data to be cached?
• Size scalability: A system can be scalable with respect to its size, meaning that we can easily
• Exemption: When the cache fills up? add more users and resources to the system without any noticeable loss of performance.
• Sharing: Does each browser make use of a private cache, or is a cache to be shared among • Geographical scalability: A geographically scalable system is one in which the users and
browsers of different users? resources may lie far apart, but the fact that communication delays may be significant is
• Refreshing: When does a browser check if cached data is still up-to-date? hardly noticed.
• An administratively scalable system is one that can still be easily managed even if it spans
many independent administrative organizations.
BY MR. HUYNH NAM BY MR. HUYNH NAM
11 12
12/30/2024
Size scalability Geographical scalability
• When a system needs to scale, very different • Geographical scalability has its own
types of problems need to be solved. problems. One of the main reasons why it is
• For example, many services are centralized in still difficult to scale existing distributed
the sense that they are implemented by means systems that were designed for local-area
of a single server running on a specific networks is that many of them are based on
machine in the distributed system. The synchronous communication. In this form
problem with this scheme is obvious: The of communication, a party requesting service,
server, or group of servers, can simply generally referred to as a client, blocks until a
become a bottleneck when it needs to process reply is sent back from the server
an increasing number of requests. Three root implementing the service. This approach
causes for becoming a bottleneck generally works fine in LANs where
communication between two machines is
• The computational capacity, limited by the CPUs
often at worst a few hundred microseconds.
• The storage capacity, including the I/O transfer However, in a wide-area system, we need to
rate
• The network between the user and the centralized
consider that inter-process communication
service may be hundreds of milliseconds, three
orders of magnitude slower.
BY MR. HUYNH NAM BY MR. HUYNH NAM
13 14
Administratively scalable Scaling techniques
• (Difficult) Scale distributed system across multiple, independent administrative • Scalability problems in distributed systems appear as performance problems
domains. A major problem that needs to be solved is that of conflicting policies caused by limited capacity of servers and network.
with respect to resource usage (and payment), management, and security. • Scaling up (Vertical scaling): increasing memory, upgrading CPUs, or replacing network
modules.
• If a distributed system expands to another domain, two types of security measures
• Scaling out (Horizontal scaling): expanding the distributed system by essentially deploying
need to be taken. more machines, there are basically only three techniques we can apply:
• First, the distributed system must protect itself against malicious attacks from the new • Hiding communication latencies
domain. • Distribution of work
• Second, the new domain must protect itself against malicious attacks from the distributed • Replication
system.
BY MR. HUYNH NAM BY MR. HUYNH NAM
15 16
12/30/2024
Hiding communication latencies Partitioning and distribution of work
• Hiding communication latencies is applicable in the case of • Which involves taking a component, splitting it into smaller parts, and
geographical scalability. The basic idea is simple: try to subsequently spreading those parts across the system.
avoid waiting for responses to remote-service requests as
much as possible.
• Essentially, this means constructing the requesting
application in such a way that it uses only asynchronous
communication. When a reply comes in, the application is
interrupted, and a special handler is called to complete the
previously issued request.
• Asynchronous communication can often be used in batch-
processing systems and parallel applications in which
independent tasks can be scheduled for execution while
another task is waiting for communication to complete.
• Alternatively, a new thread of control can be started to
perform the request. Although it blocks waiting for the reply,
other threads in the process can continue.
BY MR. HUYNH NAM BY MR. HUYNH NAM
17 18
Replication Pitfalls
• Considering that scalability problems often appear in the form of • Developing a distributed system is a formidable task.
performance degradation, it is generally a good idea to actually
replicate components across a distributed system. Replication not only • Distributed systems differ from traditional software because components are dispersed
increases availability, but also helps to balance the load (load across a network.
balancer) between components leading to better performance. Also, in
geographically widely dispersed systems, having a copy nearby can
hide much of the communication latency problems mentioned before.
• False assumptions when developing a distributed application
• The network is reliable
• Caching is a special form of replication, although the distinction • The network is secure
between the two is often hard to make or even artificial. As in the case
of replication, caching results in making a copy of a resource, • The network is homogeneous
generally in the proximity of the client accessing that resource. • The topology does not change
However, in contrast to replication, caching is a decision made by the
client of a resource and not by the owner of a resource. • Latency is zero
• There is one serious drawback to caching and replication that may • Bandwidth is infinite
adversely affect scalability. Because we now have multiple copies of a • Transport cost is zero
resource, modifying one copy makes that copy different from the • There is one administrator
others. Consequently, caching and replication leads to consistency
problems. • Issues when developing a distributed application: reliability, security, heterogeneity,
• Replication therefore often requires some global synchronization and topology of the network; latency and bandwidth; transport costs; and finally
mechanism. Unfortunately, such mechanisms are extremely hard or administrative domains.
even impossible to implement in a scalable way, if alone because
network latencies have a natural lower bound.
BY MR. HUYNH NAM BY MR. HUYNH NAM
19 20
12/30/2024
Type of distributed systems HPC - Parallel Computing Parallel Computing
• The simultaneous use of multiple
• High performance distributed computing (HPC) Serial Computing compute resources to solve a
• Parallel processing • Traditionally, software has been computational problem:
• Distributed information systems written for serial computation: • A problem is broken into discrete parts that
• Pervasive systems • A problem is broken into a discrete series can be solved concurrently
of instructions • Each part is further broken down to a series
• Instructions are executed sequentially one of instructions
after another • Instructions from each part execute
• Executed on a single processor simultaneously on different processors
• Only one instruction may execute at any • An overall control/coordination mechanism
moment in time is employed
BY MR. HUYNH NAM BY MR. HUYNH NAM
21 22
Characterize problem in parallel processing Parallel computer definition
• The computational problem should be able to:
• The term ‘stream’ refers to a sequence • Instruction and data stream: it can be
• Be broken apart into discrete pieces of work that can be solved simultaneously;
or flow of either instructions or data said that the sequence of instructions
• Execute multiple program instructions at any moment in time;
operated on by the computer. executed by CPU forms the Instruction
• Be solved in less time with multiple compute resources than with a single compute resource.
• In the complete cycle of instruction streams and sequence of data
• The compute resources are typically: (operands) required for execution of
execution, a flow of instructions from
• A single computer with multiple processors/cores instructions form the Data streams.
main memory to the CPU is
• An arbitrary number of such computers connected by a network
established. This flow of instructions is
called instruction stream.
• Similarly, there is a flow of operands
between processor and memory bi-
directionally. This flow of operands is
called data stream.
BY MR. HUYNH NAM BY MR. HUYNH NAM
23 24
12/30/2024
Flynn’s Classification Single Instruction, Single Data (SISD)
• There are different ways to classify parallel computers. • Single Instruction: Only one instruction
• One of the more widely used classifications, in use since 1966, is called Flynn's stream is being acted on by the CPU
Taxonomy. during any one clock cycle
• Flynn’s classification is based on multiplicity of instruction streams and data • Single Data: Only one data stream is
streams observed by the CPU during program execution. Each of these being used as input during any one clock
dimensions can have only one of two possible states: Single or Multiple. cycle
• Deterministic execution
• This is the oldest type of computer
• Examples: older generation mainframes,
minicomputers, workstations and single
processor/core PCs.
BY MR. HUYNH NAM BY MR. HUYNH NAM
25 26
Single Instruction, Multiple Data (SIMD) Multiple Instruction, Single Data (MISD)
• Single Instruction: All processing units execute • Multiple Instruction: Each processing unit
the same instruction at any given clock cycle operates on the data independently via
• Multiple Data: Each processing unit can operate separate instruction streams.
on a different data element • Single Data: A single data stream is fed into
• Best suited for specialized problems multiple processing units.
characterized by a high degree of regularity, such • Few (if any) actual examples of this class of
as graphics/image processing. parallel computer have ever existed.
• Synchronous (lockstep) and deterministic • Some conceivable uses might be:
execution • Multiple frequency filters operating on a single
signal stream
• Two varieties: Processor Arrays and Vector
• Multiple cryptography algorithms attempting to
Pipelines crack a single coded message.
BY MR. HUYNH NAM BY MR. HUYNH NAM
27 28
12/30/2024
Multiple Instruction, Multiple Data (MIMD) Parallelizing problem
• Multiple Instruction: Every processor may be executing a • Key idea is Partitioning
different instruction stream
• One of the first steps in designing a parallel program is to break the problem into
• Multiple Data: Every processor may be working with a
different data stream discrete "chunks" of work that can be distributed to multiple tasks. This is known
as decomposition or partitioning.
• Execution can be synchronous or asynchronous,
deterministic or non-deterministic • There are two basic ways to partition computational work among parallel tasks:
• Currently, the most common type of parallel computer - domain decomposition and functional decomposition.
most modern supercomputers fall into this category. • Typically, combining these two types of problem decomposition is common and
• Examples: most current supercomputers, networked natural.
parallel computer clusters and "grids", multi-processor
SMP computers, multi-core PCs.
• Note: many MIMD architectures also include SIMD
execution sub-components
BY MR. HUYNH NAM BY MR. HUYNH NAM
29 30
Domain Decomposition Functional Decomposition
• In this type of partitioning, the data associated with a problem is decomposed. • In this approach, the focus is on the computation that is to be performed rather
Each parallel task then works on a portion of the data. than on the data manipulated by the computation.
• The problem is decomposed according to the work that must be done. Each task
then performs a portion of the overall work.
BY MR. HUYNH NAM BY MR. HUYNH NAM
31 32
12/30/2024
Limitation of computational parallel Parallel Computer Memory Architecture
• Amdahl's Law states that potential program speedup is defined by the fraction of • Shared Memory: UMA, NUMA
code (P) that can be parallelized. • Distributed Memory
• Where N = number of processors and S = the fraction of code is serial. • Hybrid Distributed-Shared Memory
BY MR. HUYNH NAM BY MR. HUYNH NAM
33 34
Uniform Memory Access (UMA) Non-Uniform Memory Access (NUMA)
• Most represented today by Symmetric • Often made by physically linking two
Multiprocessor (SMP) machines or more SMPs
• Identical processors • One SMP can directly access memory
• Equal access and access times to memory of another SMP
• Sometimes called CC-UMA - Cache • Not all processors have equal access
Coherent UMA. Cache coherent means if time to all memories
one processor updates a location in shared • Memory access across link is slower
memory, all the other processors know • If cache coherency is maintained, then
about the update. Cache coherency is may also be called CC-NUMA -
accomplished at the hardware level. Cache Coherent NUMA
BY MR. HUYNH NAM BY MR. HUYNH NAM
35 36
12/30/2024
Distributed Memory Hybrid Distributed-Shared Memory
• Like shared memory systems, distributed memory systems • General Characteristics
vary widely but share a common characteristic. Distributed
memory systems require a communication network to • The largest and fastest computers in the world today employ both shared and distributed memory architectures.
connect inter-processor memory. • The shared memory component can be a shared memory machine and/or graphics processing units (GPU).
• Processors have their own local memory. Memory • The distributed memory component is the networking of multiple shared memory/GPU machines, which know
addresses in one processor do not map to another processor, only about their own memory - not the memory on another machine. Therefore, network communications are
so there is no concept of global address space across all required to move data from one machine to another.
processors. • Current trends seem to indicate that this type of memory architecture will continue to prevail and increase at
• Because each processor has its own local memory, it the high end of computing for the foreseeable future.
operates independently. Changes it makes to its local
memory have no effect on the memory of other processors. • Advantages and Disadvantages
Hence, the concept of cache coherency does not apply. • Whatever is common to both shared and distributed memory architectures.
• When a processor needs access to data in another processor, • Increased scalability is an important advantage
it is usually the task of the programmer to explicitly define
how and when data is communicated. Synchronization • Increased programmer complexity is an important disadvantage
between tasks is likewise the programmer's responsibility.
• The network "fabric" used for data transfer varies widely,
though it can be as simple as Ethernet.
BY MR. HUYNH NAM BY MR. HUYNH NAM
37 38
High performance distributed computing (HPC) High performance distributed computing (HPC)
• An important class of distributed systems is the one used for high-
performance computing tasks. Roughly speaking, one can make a distinction • High-performance computing started with
between two subgroups. the introduction of multiprocessor
• In cluster computing the underlying hardware consists of a collection
of similar workstations or PCs, closely connected by means of a high- machines. In this case, multiple CPUs are
speed local-area network. In addition, each node runs the same
operating system.
organized in such a way that they all have
• The situation becomes very different in the case of grid computing. access to the same physical memory.
This subgroup consists of distributed systems that are often constructed
as a federation of computer systems, where each system may fall under
a different administrative domain, and may be very different when it
• In contrast, in a multicomputer system
comes to hardware, software, and deployed network technology. several computers are connected through
• From the perspective of grid computing, a next logical step is to
simply outsource the entire infrastructure that is needed for
a network and there is no sharing of main
compute-intensive applications. In essence, this is what cloud memory.
computing is all about: providing the facilities to dynamically
construct an infrastructure and compose what is needed from
available services. Unlike grid computing, which is strongly
• The shared-memory model proved to be
associated with high-performance computing, cloud computing is
much more than just providing lots of resources.
highly convenient for improving the
performance of programs and it was
relatively easy to program.
BY MR. HUYNH NAM BY MR. HUYNH NAM
39 40
12/30/2024
Cluster computer Grid computing
• A characteristic feature of traditional cluster computing is
• Cluster computing systems became popular when the price/performance ratio of its homogeneity. In most cases, the computers in a cluster
personal computers and workstations improved. are largely the same, have the same operating system, and
are all connected through the same network. However, as
we just discussed, there has been a trend towards more
• Cluster computing is used for parallel programming in which a single (compute hybrid architectures in which nodes are specifically
configured for certain tasks. This diversity is even more
intensive) program is run in parallel on multiple machines. prevalent in grid computing systems: no assumptions are
made concerning similarity of hardware, operating systems,
networks, administrative domains, security policies, etc.
• A key issue in a grid-computing system is that resources
from different organizations are brought together to allow
the collaboration of a group of people from different
institutions, indeed forming a federation of systems. Such a
collaboration is realized in the form of a virtual
organization. The processes belonging to the same virtual
organization have access rights to the resources that are
provided to that organization. Typically, resources consist of
compute servers (including supercomputers, possibly
implemented as cluster computers), storage facilities, and
databases. In addition, special networked devices such as
telescopes, sensors, etc., can be provided as well.
BY MR. HUYNH NAM BY MR. HUYNH NAM
41 42
Cloud computing Cloud computing
• How to organize computational grids that were easily accessible, organizations in
charge of running data centers were facing the problem of opening up their
resources to customers. Eventually, this lead to the concept of utility computing by
which a customer could upload tasks to a data center and be charged on a per-
resource basis. Utility computing formed the basis for what is now called cloud
computing.
• Cloud computing is characterized by an easily usable and accessible pool of
virtualized resources. Which and how resources are used can be configured
dynamically, providing the basis for scalability: if more work needs to be done, a
customer can simply acquire more resources. The link to utility computing is
formed by the fact that cloud computing is generally based on a pay-per-use
model in which guarantees are offered by means of customized service level
agreements (SLAs)
BY MR. HUYNH NAM BY MR. HUYNH NAM
43 44
12/30/2024
Distributed information systems Distributed transaction processing
• Another important class of distributed systems is found in organizations that were • In practice, operations on a database are carried out in the form of transactions.
confronted with a wealth of networked applications, but for which interoperability Programming using transactions requires special primitives that must either be
turned out to be a painful experience. supplied by the underlying distributed system or by the language runtime system.
• In many cases, a networked application simply consists of a server running that
application (often including a database) and making it available to remote programs,
called clients. Such clients send a request to the server for executing a specific
operation, after which a response is sent back. Integration at the lowest level allows
clients to wrap a number of requests, possibly for different servers, into a single larger
request and have it executed as a distributed transaction. The key idea is that all, or
none of the requests are executed.
• As applications became more sophisticated and were gradually separated into • Ordinary statements, procedure calls, and so on, are also allowed inside a
independent components (notably distinguishing database components from processing transaction. In particular, remote procedure calls (RPCs), that is, procedure calls to
components), it became clear that integration should also take place by letting remote servers, are often also encapsulated in a transaction, leading to what is
applications communicate directly with each other. This has now lead to a huge industry known as a transactional RPC.
that concentrates on Enterprise Application Integration (EAI).
BY MR. HUYNH NAM BY MR. HUYNH NAM
45 46
ACID Transaction processing monitor
• In the early days of enterprise
• This all-or-nothing property of • In distributed systems, transactions are middleware systems, the component
transactions is one of the four often constructed as a number of sub- that handled distributed (or nested)
characteristic properties that transactions, jointly forming a nested transactions formed the core for
transactions have. More specifically, transaction integrating applications at the server
transactions adhere to the so-called or database level.
ACID properties: • This component was called a
transaction processing monitor or
• Atomic: To the outside world, the TP monitor for short. Its main task
transaction happens indivisibly was to allow an application to access
• Consistent: The transaction does not multiple server/databases by offering
violate system invariants it a transactional programming model.
• Isolated: Concurrent transactions do not • Essentially, the TP monitor
interfere with each other coordinated the commitment of sub-
• Durable: Once a transaction commits, the transactions following a standard
changes are permanent protocol known as distributed
commit.
BY MR. HUYNH NAM BY MR. HUYNH NAM
47 48
12/30/2024
Enterprise application integration Enterprise application integration
• Several types of communication middleware exist. With remote procedure calls (RPC),
• Application components should be an application component can effectively send a request to another application
able to communicate directly with each component by doing a local procedure call, which results in the request being packaged
as a message and sent to the callee. Likewise, the result will be sent back and returned to
other and not merely by means of the the application as the result of the procedure call.
request/reply behavior that was • As the popularity of object technology increased, techniques were developed to allow
supported by transaction processing calls to remote objects, leading to what is known as remote method invocations (RMI).
systems. An RMI is essentially the same as an RPC, except that it operates on objects instead of
functions. RPC and RMI have the disadvantage that the caller and callee both need to be
• This need for inter-application up and running at the time of communication. In addition, they need to know exactly
how to refer to each other. This tight coupling is often experienced as a serious drawback
communication led to many different and has led to what is known as message-oriented middleware, or simply MOM.
communication models, The main idea • In this case, applications send messages to logical contact points, often described by
was that existing applications could means of a subject. Likewise, applications can indicate their interest for a specific type
directly exchange information. of message, after which the communication middleware will take care that those
messages are delivered to those applications. These so-called publish/subscribe systems
form an important and expanding class of distributed systems.
BY MR. HUYNH NAM BY MR. HUYNH NAM
49 50
Pervasive systems Ubiquitous computing systems
• The introduction of mobile and embedded computing devices, leading to what are • In a ubiquitous computing system, we go one step further: the system is pervasive and
generally referred to as pervasive systems. continuously present. The latter means that a user will be continuously interacting with
the system, often not even being aware that interaction is taking place.
• A pervasive system is often equipped with many sensors that pick up various • (Distribution) Devices are networked, distributed, and accessible in a transparent manner
aspects of a user’s behavior. • (Interaction) Interaction between users and devices is highly unobtrusive
• (Context awareness) The system is aware of a user’s context can optimize interaction
• Many devices in pervasive systems are characterized by being small, battery- • (Autonomy) Devices operate autonomously without human intervention, and are thus highly self-
powered, mobile, and having only a wireless connection, although not all these managed
characteristics apply to all devices. As calling Internet of thing (IoT). • Address allocation: For networked devices to communicate, they need an IP address. Addresses can be allocated
automatically using protocols like the Dynamic Host Configuration Protocol (DHCP)
• Three different types of pervasive systems, although there is considerable overlap • Adding devices: It should be easy to add devices to an existing system. A step towards automatic configuration
is realized by the Universal Plug and Play Protocol (UPnP). Using UPnP, devices can discover each other and
between the three types: ubiquitous computing systems, mobile systems, and make sure that they can set up communication channels between them.
sensor networks. • Automatic updates: Many devices in a ubiquitous computing system should be able to regularly check through
the Internet if their software should be updated. If so, they can download new versions of their components and
ideally continue where they left off.
• (Intelligence) The system can handle a wide range of dynamic actions and interactions
BY MR. HUYNH NAM BY MR. HUYNH NAM
51 52
12/30/2024
Mobile computing systems Mobile computing systems
• Mobility often forms an important component of pervasive systems.
• Changing locations also has a profound effect on
• There are several issues that set mobile computing aside to pervasive systems in communication. To illustrate, consider a (wireless)
general. mobile ad hoc network, generally abbreviated as a
MANET. Suppose that two devices in a MANET have
• First, the devices that form part of a (distributed) mobile system may vary widely. Typically, discovered each other in the sense that they know each
mobile computing is now done with devices such as smartphones and tablet computers. other’s network address. How do we route messages
However, completely different types of devices are now using the Internet Protocol (IP) to between the two? Static routes are generally not
communicate, placing mobile computing in a different perspective. Such devices include sustainable as nodes along the routing path can easily
remote controls, pagers, active badges, car equipment, various GPS-enabled devices, and so move out of their neighbor’s range, invalidating the
on. A characteristic feature of all these devices is that they use wireless communication. path. For large MANETs, using a priori set-up paths is
Mobile implies wireless so it seems (although there are exceptions to the rules). not a viable option. What we are dealing with here are
• Second, in mobile computing the location of a device is assumed to change over time. A so-called disruption-tolerant networks: networks in
changing location has its effects on many issues. Consequently, we may need to pay special which connectivity between two nodes can simply not
be guaranteed. Getting a message from one node to
attention to dynamically discovering services, but also letting services announce their another may then be problematic, to say the least.
presence. So needing to know the actual geographical coordinates of a device such as in
tracking and tracing applications
BY MR. HUYNH NAM BY MR. HUYNH NAM
53 54
Sensor networks Summary
• A sensor network generally consists of tens to • Distributed systems consist of autonomous computers that work together to give
hundreds or thousands of relatively small nodes, each
equipped with one or more sensing devices. In the appearance of a single coherent system. This combination of independent, yet
addition, nodes can often act as actuators, a typical
example being the automatic activation of sprinklers
coherent collective behavior is achieved by collecting application independent
when an event has been detected. protocols into what is known as middleware: a software layer logically placed
• Many sensor networks use wireless communication,
and the nodes are often battery powered. Their limited
between operating systems and distributed applications. Protocols include those
resources, restricted communication capabilities, and for communication, transactions, service composition, and perhaps most
constrained power consumption demand that
efficiency is high on the list of design criteria. important, reliability.
• To organize a sensor network as a distributed database,
there are essentially two extremes, as shown in Figure • Design goals for distributed systems include sharing resources and ensuring
1.16. First, sensors do not cooperate but simply send openness. In addition, designers aim at hiding many of the intricacies related to
their data to a centralized database located at the
operator’s site. The other extreme is to forward queries
to relevant sensors and to let each compute an answer,
the distribution of processes, data, and control.
requiring the operator to aggregate the responses.
BY MR. HUYNH NAM BY MR. HUYNH NAM
55 56
12/30/2024
www.flex.edu.vn [email protected]
BY MR. HUYNH NAM
57