You are on page 1of 7

Ingeniera en Telemtica

Sistemas distribuidos

Profesora: Lilian Coronado

Alumno: Erick Antonio Rodrguez Gmez

Matricula: 090180

14/07/2013

1. Introduction
In order to easily describe the design of distributed systems, they have been separated into different kinds of descriptive models which are as follows: Physical models Architectural models Fundamental models

This descriptive models will be described in detail in the next sections.

2. Physical Models
The physical model describes the hardware elements of the distributed systems. Considering the physical model as a set of computer nodes connected by the means of a network, we can identify three generations of distributed systems based on this model: Early distributed systems (1970s-1980s): This systems consisted of a LAN connecting about 10 or 100 nodes, with simple services and an even simpler quality of service. Internet scale distributed systems (1900s): The infrastructure of this systems comprised a large number of nodes interconnected by the internet, which allowed the incorporation of a greater number of services and the standardization of the technology used in such systems. Contemporary distributed systems (2000s): Due to the emergence of mobile devices, internet of things and cloud computing there has been an increment of the level of heterogeneity and the nodes in the systems. Distributed systems of systems: Reports about the complexity of some modern systems has led to classify them as systems of systems since the subsystems within the system are able to perform particular tasks on their own.

3. Architectural Models
The structure of the components of a system and their relationship between each other are called the architecture model. This model determines the design of the system and also offer a reference frame for future demands on it.

3.1. Architectural elements


3.1.1. Communicating entities From the point of view of a system, we can perceive the processes as the communication entities of the system, but from a programming perspective, we can also see these entities as objects (from object-oriented programming), components (which provides more functionality than objects) and web services (providing integration to the World Wide Web).

3.1.2 Communication paradigms There are some communication paradigms in the communication between entities, which are: Inter-process communication: low-level support for communication between processes. Remote invocation: based on a communication resulting in a remote operation. Request-reply protocols: patterns imposed by services for client-server computing. Remote procedure calls: remote processes can be called as if they were local processes. Remote method invocation: like procedure calls, but aimed to distributed objects. Group communication: concerned with communications of the one-to-many type. Publish-subscribe systems: distribution of items of interest by publishers to consumers. Message queues: offers an indirection between producer and consumer processes. Tuple spaces: processes can place arbitrary items of structured data called tuples. Distributed shared memory: provide abstraction for sharing data between processes.

3.1.3 Roles and responsibilities There are interactions between processes in a distributed system in which certain processes take a certain role. This roles are important in establishing the architecture style of the system. Two of this styles are: Client-server: The most important and most widely style employed. In this style the processes can take either the role of a client or a server. Clients request the servers for services or resources and the servers provides them. Peer-to-peer: In this style, all processes take similar roles, without a distinction between client and server. 3.1.4 Placement Placement means how the elements of a system are distributed on the physical infrastructure. There are four main placement strategies that can alter the design of the distributed system: Mapping of services of multiple servers: These are services implemented as several server processes in different computers in order to provide a service to clients.

Caching: is the storage of used data close to the client. If a client request a resource, the caching service checks the cache and supplies the resource if it finds it. Mobile code: The user select an applet from a browser where is stored on a web server and the code runs there. Mobile agent: is a running program that travels from one computer to another in a network carrying a task.

3.2 Architectural patterns


Provide composite recurring structures that have been shown to work well given the cirscunstance Layering: A complex system is partitioned into a number of layers with the underlying layer giving services to the one above. This superior layers are unaware of the processes in the layers beneath them. Tiered architecture: is a technique to organize functionality of a given layer and place this functionality into appropriate servers and, as a secondary consideration, on to physical nodes. Thin clients: refers to a software layer that supports a window-based user interface that is local to the user while executing application programs or, more generally, accessing services on a remote computer.

3.3 Associated middleware solutions


The task of middleware is to provide a higher-level programming abstraction for the development of distributed systems and, through layering, to abstract over heterogeneity in the underlying infrastructure to promote interoperability and portability.

4 Fundamental models
Are models based on the fundamental properties that allow us to be more specific about their characteristics and the failures and security risks they might exhibit. The most important aspects of distributed systems that fundamental models are intended to help us with are: Interaction model Failure model

Security model

4.1 Interaction model


Distributed systems are composed of many processes, interacting in complex ways. Their behavior and state can be described by a distributed algorithm. Performance of communication channels: Communication over a computer network has the following performance characteristics relating to latency, bandwidth and jitter. Computer clocks and timing events: Each computer in a distributed system has its own internal clock, which can be used by local processes to obtain the value of the current time. Event ordering: The execution of a system can be described in terms of events and their ordering despite the lack of accurate clocks.

4.2 Failure model


Defines the ways in which failure may occur in order to provide an understanding of the effects of failures. Omission failures: refer to cases when a process or communication channel fails to perform actions that it is supposed to do. Communication omission failures: Most failures in distributed systems are benign. Benign failures include failures of omission as well as timing failures and performance failures. Arbitrary failures: is one in which it arbitrarily omits intended processing steps or takes unintended processing steps. Arbitrary failures in processes cannot be detected by seeing whether the process responds to invocations, because it might arbitrarily omit to reply. Timing failures: are applicable in synchronous distributed systems where time limits are set on process execution time, message delivery time and clock drift rate. Masking failures: A knowledge of the failure characteristics of a component can enable a new service to be designed to mask the failure of the components on which it depends. Reliability of one-to-one communication: Any message in the outgoing message buffer is eventually delivered to the incoming message buffer and the message received is identical to one sent, and no messages are delivered twice.

4.3 Security model


The security of a distributed system can be achieved by securing the processes and the channels used for their interactions and by protecting the objects that they encapsulate against unauthorized access. Protecting objects: access rights specify who is allowed to perform the operations of an object. The enemy: To model security threats, we postulate an enemy. The threats from a potential enemy include threats to processes and threats to communication channels. Threats to communication channels: An enemy can copy, alter or inject messages as they travel across the network and its intervening gateways. Another form of attack is the attempt to save copies of messages and to replay them at a later time, making it possible to reuse the same message over and over again. Cryptography and shared secrets: Cryptography is the science of keeping messages secure, and encryption is the process of scrambling a message in such a way as to hide its contents. Authentication: Is the action of proving the identities supplied by their senders. The basic authentication technique is to include in a message an encrypted portion that contains enough of the contents of the message to guarantee its authenticity. Secure channels: is a communication channel connecting a pair of processes, each of which knows reliably the identity of the principal on whose behalf the other process is executing. Denial of service: is a form of attack in which the enemy interferes with the activities of authorized users by making excessive and pointless invocations on services or message transmissions in a network, resulting in overloading of physical resources Mobile code: Such code may easily play a Trojan horse role, purporting to fulfil an innocent purpose but in fact including code that accesses or modifies resources that are legitimately available to the host process but not to the originator of the code.

5 Conclusion
Distributed systems are increasing their level of complexity as the technology development advances. For this reason, the design of descriptive models gives an easier understanding of such systems.

6 Bibliography
Colouris, G. (2012) Distributed systems concepts and design. Boston, Massachusetts: Adison-Wesley

You might also like