Вы находитесь на странице: 1из 16

TAREA 1

CARACTERIZACION DE LOS SISTEMAS DISTRIBUIDOS


PRESENTA: LUIS ALBERTO AGUILAR MUÑOZ

MATRICULA: 133Z0661

PROFESOR: JAVIER HERNANDEZ HERNANDEZ

Sistemas Distribuidos
INGENIERIA EN SISTEMAS COMPUTACIONALES | INSTITUTO TECNOLOGICO SUPERIOR DE HUATUSCO
Tabla de contenido
¿Que son los sistemas distribuidos? .................................................................... 3
Transparencia de los sistemas distribuidos ......................................................... 4
Transparencia de acceso ......................................................................................... 5
Transparencia de ubicación .................................................................................... 5
Transparencia de concurrencia .............................................................................. 6
Transparencia de replicación .................................................................................. 6
Transparencia de movilidad .................................................................................... 6
Transparencia de prestaciones ............................................................................... 6
Transparencia de prestaciones ............................................................................... 7
Ejercicios .................................................................................................................... 7
1.1- ...................................................................................................................................... 7
1.2 ....................................................................................................................................... 7
1.3 ....................................................................................................................................... 8
1.4 ....................................................................................................................................... 8
1.5 ....................................................................................................................................... 9
1.7 ..................................................................................................................................... 11
1.8 ..................................................................................................................................... 13
1.9 ..................................................................................................................................... 14
1.10 ................................................................................................................................... 15
1.11 ................................................................................................................................... 15
1.12 ................................................................................................................................... 16
1.13 ................................................................................................................................... 16
¿Que son los sistemas distribuidos?
Un sistema distribuido es aquel en que los componentes localizados en
computadoras conectados en red, comunican y coordinan sus acciones
únicamente mediante el paso de mensajes . Esta definición lleva a la
siguientes características de los sistemas distribuidos : concurrencia de
los componentes, carencia de un reloj global y fallos independientes de
los componentes.
Tres ejemplos comunes de un sistemas distribuido son los siguientes
 Internet.
 Una intranet que es una procion de internet gestionanada por una
organización.
 La computación movil y ubicua.

Los computadores están conectados mediante una red, pueden estar


separados espacialmente por cualquier distancia. Pueden estar en
continentes distintos , en el mismo edificio o en la misma habitación.
Algunas otras características de los sistemas distribuidos son las
siguientes:
 Heterogeneidad
 Extensibilidad
 Segudirad
 Escalabilidad
 Tratamiento de fallos
 Concurrencia
 Transparencia

Transparencia de los sistemas distribuidos


Se define transparencia como la ocultación al usuario y al programador
de aplicaciones de la separación de los componentes en un sistema
distribuido de forma que se perciba el sistema como un todo mas que
como una colección de componentes independientes. Las implicaciones
de la transparencia son de gran calado en el diseño de software del
sistema.
A continuación de listan los principales tipos de transparencias y su
significado.

Transparencia de acceso
Permite acceder a recursos locales y remotos empleando operaciones
idénticas. Hace referencia al acceso a las entidades del sistema, tanto
si son locales como si son remotas deben seguir ocultando que son
entidades diferentes, formando una única entidad, así pues el acceso al
sistema por el usuario debe ser único para toda la entidad.
Ejemplos
 Establecer un orden canónico para los bytes (Big Endian / Litte
Endian).
 Acceder una interfaz homogénea para los datos, sin depender de
que estos procedan de sistemas de ficheros, BB.DD., sensores,
etc.

Transparencia de ubicación
Permite acceder a los recursos sin saber su localización.
Esconder los detalles sobre la localización de los recursos mediante la
asignación de nombres lógicos. Engloba la transparencia de nombre y
la transparencia de movilidad, la primera exige que cualquier referencia
a la entidad no deba exponer ninguna indicación de la localización de la
entidad. La segunda hace referencia a que el sistema sea igual de
consistente independientemente desde dónde el usuario haga
referencia al sistema. A estas dos tipos de transparencias en conjunto
se las denomina como transparencias de red.

Ejemplos:
 /path/to/a/file
 http://ejemplo.org
Transparencia de concurrencia
Permite que varios procesos operen concurrentemente sobre recursos
compartidos sin interferencia mutua.
Por ejemplo Los sistemas de gestión de base de datos distribuidas
brindan transparencia de concurrencia si es que las transacciones
independientes son lógicas y tienen similitud con que se puedan hacer
al mismo tiempo, es decir los resultados serían los mismos se hiciere
de una sola vez. Esto sucede con la replicación, por ejemplo, dado que
este proceso es asíncrono.

Ejemplo:
 El usuario no tiene que reintentar una operacion si la base de
datos esta siendo usada por otro componente en ese mismo
instante.

Transparencia de replicación
Permite utilizar múltiples ejemplares de cada recurso para aumentar
fiabilidad ya las prestaciones sin que los usuarios y los programadores
de aplicaciones necesiten su conocimiento.

Transparencia de frente a fallos


Permite ocultar los fallos, dejando que los usuarios y los programas de
aplicación completen sus tareas a pesar de fallos del hardware o de
los componentes de software.
Transparencia de movilidad
Permite la reubicación de recursos y clientes en un sistema sin afectar
la operación de los usuarios y los programas. La transparencia de
movilidad de los usuarios requiere la referencia consistente de
entidades del sistema, independientemente de la ubicación del sistema
desde el que se origina la referencia.

Transparencia de prestaciones
Permite reconfigurar el sistema para mejorar las prestaciones según
varia su carga.
Transparencia de prestaciones
Permite al sistema y las aplicaciones expandirse en tamaño sin cambiar
la estructura del Sistema o los algoritmos de la aplicación.

Ejercicios

1.1-Proponga cinco tipos de recursos de hardware y cinco tipos de


recursos de software o de datos que puedan compartirse útilmente,
Proponga ejemplos de uso compartido tal y como ocurre en la practica
de los sistemas distribuidos.

Hardware
 Cajeros automaticos
 Workstation
 Cliente servidor
 Servidor de almacenamiento
 Grupo de servidores
Software
 Base de datos distribuidas
 Aplicación web en base a cliente servidor
 Objetos distribuidos
 Middleware
 Servidor web

1.2 ¿Como podrían sincronizarse los relojes de de dos computadoras


unidos por una red local sin hacer uso de una referencia temporal
externa? ¿qué factores limitarían la precisión del procedimiento
propuesto? ¿Cómo podrían sincronizarse los relojes de un mayor
numero de computadores conectados a internet?.

R1= Uno de los computadores funcionario como un servidor DataTime


y obtenga la información del tiempo mediante la red local.
R2= la sincronización dependerá del estado de la red local y la latencia
que esta tenga, esto quiere decir que la comunicación entre los dos
puntos debe ser eficiente esto dependerá del medio de transmisión y
dispositivos de red utilizados para realizar esta tarea.

R3= El servidor date time además de estar conectados a la red local


tendría que tener asignado una dirección IP publica para poder tener
salida a internet y de igual manera pudiera ser alcanzado desde otros
computadores conectados a internet.

1.3 Un usuario llega a una estación de ferrocarril que no conoce,


portando un PDA capaz de conectarse a una red inalámbrica, sugiera
como podría proporcionarle al usuario información de sobre los servicios
locales y las comodidades e la estación, sin necesidad de insertar el
nombre de la estación o sus características ¿qué dificultades técnicas
hay que superar?

R= La red inalámbrica no tendría que tener seguridad ninguna para que


PDA pudiera conectarse automáticamente después el Router de la red
inalámbrica funcionara como Hostpot y que re direccionara la Gateway
de dicha red en el cual estuviera alojado un portal de bienvenida en el
cual se mencionaran lo servicios que estuviesen disponibles por medio
de la red.

1.4¿Cuáles son las ventajas y desventajas de HTML, URL, y HTTP


como tecnologías de base la consulta y visualización de información?
¿Son algunas de estas tecnologías adecuadas como plataforma de
computo cliente servidor?.

R1= HTML es el lenguaje de marcado que funciona como lenguaje de


interpretado para los navegadores web, esto que permite maquetar
sitios web de una manera fácil e intuitiva, este lenguaje se conoce como
el esqueleto de los actuales sitios web.
URL Localizador Uniforme de Recursos funciona como un apuntador de
recursos el cual tiene como función principal obtener recursos como
imágenes, archivos de audio, video clips, o scripts de programación,
para utilizarlos a nivel aplicación o a nivel de desarrollo.

HTTP es el protocolo de transferencia de híper texto el cual esta basado


en un servidor basado en tecnologías web que utiliza el puerto 80:80
como puerto de entrada y salida hacia redes externas o internet, este
protocolo nos permite tener comunicación entre un servidor y un cliente
conectado a internet o directamente conectado a la red local del servidor
mediante el puerto 80 utilizando navegadores web por ejemplo.

Un ejemplo de HTML y URL y HTTP es por ejemplo teniendo un servidor


web local el cual aloje una pagina web escrita principalmente en HTML.
La URL principal quedaría de esta manera localhost/ o 192.168.0.x/ en
el segundo caso la dirección IP apunta a la dirección del servidor web,
supongamos que tenemos configurado el servicio DNS que permita la
resolución de nombres de dominio la dirección IP se sustituye por el
nombre de dominio que se haya configurado en el servidor ejemplo:
miredlocal.com/ el cual apunta directamente al directorio principal del
servidor web si por ejemplo quisieras acceder a un documento HTML
llamado ejemplo.html dentro de la carpeta resources la cual se ubica en
la / del servidor nuestra URL quedaría de esta manera.

http://miredlocal.com/resources/ejemplo.html

1.5 Tome World Wide Web como ejemplo para ilustrar el concepto de
compartición de recursos cliente servidor.
Los recursos den World Wide Web y otros servicios se direccionan
mediante URL. ¿Qué significan las siglas URL? Proporcione ejemplos
de tres tipos de recursos web a los que pueda darse un nombre de URL.

1.6 Dé un ejemplo de URL


Enumere los tres componentes de principales de URL, indicando como
se delimitan e ilustre cada uno a partir de un ejemplo.

http://ayudaenlaweb.blogspot.com:80/2007/09/partes-de-un-
email.html
Protocolo: http
Servidor: ayudaenlaweb.blogspot.com
Nombre del servidor: blogspot
Dominio de nivel superior: .com
Subdominio: ayudaenlaweb
Puerto: 80
Directorio: /2007/09/
Página: /partes-de-un-email.html
ftp://ftp.servidorpruebas.org/ficheros/imagenes/
Protocolo: ftp
Servidor: ftp.servidorpruebas.org
Nombre del servidor: servidorpruebas
Dominio de nivel superior: .org
Subdominio: ftp
Puerto: No aplica
Directorio: /ficheros/imagenes/
Página: No Aplica

¿Hasta que limite es transparente a la ubicación en URL?

R= Depende de los permisos que el servidor tenga asignados en este


caso una una URL puede ser transparente si el servido concede
permisos a los usuarios entrantes un ejemplo es que un servidor web
debe tener permisos 777 para los usuarios puedan visualizar el
contenido del sitio web pero las sub carpetas o sub ficheros pueden
tener otro tipo de permisos para que los usuarios solo puedan visualizar
el contenido pero no ejecutar ni escribir o incluso no puedan acceder a
dicho contenido.
En dicho caso la URL solo estará compuesta por los directorios hasta
donde el usuario tenga permitido ver.

1.7 Un programa servidor escrito en un lenguaje (por ejemplo c++)


proporciona un objeto Burbuja al que se pretende que accedan los
clientes que pudieran estar escritos en un lenguaje diferente (por
ejemplo java). Los computadores clientes y servidores pueden tener un
hardware diferente, pero todos esta conectados a internet. Describa los
problemas debidos a cada uno de los 5 aspectos de la heterogeneidad
que necesitan resolverse para posibilitar que un objeto cliente invoque
un método sobre un objeto servidor.

Heterogeneidad de hardware: los dispositivos clientes por ejemplo


pueden tener diferentes arquitecturas de hardware o pueden tener
diferentes recursos de operación en hardware como la capacidad de
procesamiento y distribución de la información esto se puede dar por
tener procesadores mas o menos veloces al igual que discos duros o
arreglos de discos diferentes.

Heterogeneidad de red: Un ejemplo claro es que los servidores cuenten


con distintos tipos de tarjetas de red, aun que los servidores tengan
mismas arquitecturas de procesadores y que estos procesen
información a altas velocidades el traspaso de información también
depende del medio de transmisión y/o comunicación entre clientes y
servidores por lo que si un servidor cuenta con una tarjeta de red Fast
Ethernet que soporta velocidades de hasta 100 MB/s no tendrá el mismo
desempeño o tiempo de respuesta que un servidor que tenga tarjetas
de red Gigabyte Ethernet las cuales puedes transmitir hasta 1000 MB/s
del mismo modo si el medio de acceso de un cliente es mediante WLAN
la tasa de transferencia no será la misma que un cliente que este
conectado por medio de red cableada.
Otro factor que entra en juego es el estándar de la IEEE 802.3 para
redes cableadas y 802.11 para redes inalámbricas debido que a que
ciertos dispositivos pueden transferir datos mas rápido que otros.
De igual manera el uso de protocolos de red y técnicas de señalización
juegan un papel mas que importante dentro la comunicación entre
clientes y servidores.

Heterogeneidad de sistemas operativos: En el caso de los sistemas


operativos tiene que ver con la disponibilidad de servicios o aplicaciones
esto quiere decir que una aplicación que obtiene sus recursos o
información de un servidor Windows pueda ejecutarse en otro mismo
servidor pero que este sobre sistemas UNIX u OSX, el termino mas
común para este escenario es compatibilidad de ejecución o
aplicaciones multiplataforma. Suponga que quiere ejecutar un servidor
de streaming como NETFLIX el cual ofrece servicio de video online a
través de una navegador web por lo que en este caso el navegador es
el encargado de o en su defecto esta obligado a interpretar los archivos
de video siempre y cuando sean compatibles o tengas los codecs de
reproducción necesarios, pero que sucedería si la reproducción de
dichos video la hacieron a nivel aplicación de escritorio tendríamos
desarrollar una aplicación que se conectara a los servidores y que
además tuviera la capacidad de ejecutar loas archivos de video,
entonces si dicho software solo esta desarrollado para plataformas
Windows no podríamos desfrutar de los servicios en plataformas Linux
o Mac.

Heterogeneidad de Lenguajes de programación: Este punto se refiere a


las tecnologías de desarrollo de alguna aplicación distribuida en
diferentes servidores, quiere decir que por ejemplo tomando en cuenta
nuestro ejemplo anterior el reproductor de video para Windows estará
desarrollado en java bajo el paradigma orientado a objetos, en este caso
Java debido a ser un lenguaje de programación multiplataforma gracias
a su JRM (Java Runtime Machine) puede ejecutarse en las 3 principales
plataformas de sistemas operativos de escritorio y también incluso en
móviles. Otro ejemplo es C# con la reciente inclusión de Xamarin C#
permite crear aplicaciones que pueden ejecutarse en plataformas
Windows, Linux y Mac y también dentro de SO móviles como Android y
IOS.
Pero la heterogeneidad de lenguajes de programación va mas allá de
encontrar un lenguaje de programación que sea multiplataforma, si no
mas bien se refiere a la capacidad de adaptación de diferentes
lenguajes de programación gracias a los paradigmas de programación
por ejemplo la POO.

Heterogeneidad en implementaciones de diferentes desarrolladores:


Esta se refiere al las técnicas de desarrollo de cada programador para
que puedan garantizar la fluidez en el código haciéndolo un código
legible y sostenible y escalable, ya que un proyecto de desarrollo de
software normalmente es desarrollado por mas de un programador por
lo que es necesario que todo el equipo de desarrollo trabaje bajo las
misma normas y técnicas. Los patrones de diseño por ejemplo nos
ayudan a tener un código mas fluido y comprensible ya que son técnicas
predefinidas y probadas con anterioridad, a si que aun que cada
programador desarrolle de una forma en particular un patrón de diseño
nos ayuda a que todo el proyecto de software vaya sobre la misma
secuencia.

1.8 Un sistema distribuido abierto permite la adicción de nuevos


servicios de compartición de recursos como el objeto burbuja del
ejercicio anterior y que sean accesibles por una variedad de programas
cliente. Discuta en el contexto de este ejemplo hasta donde las
necesidades de extensibilidad difieren de las de heterogeneidad.

R= El termino de extensibilidad pretende realizar modificaciones


necesarias tanto al hardware como al software para garantizar la
flexibilidad o crecimiento de un software, servidor o modulo dentro de
un sistema distribuido siempre que así se requiera por otro lado la
heterogeneidad consiste en proteger ciertas características que
garanticen la integridad de compatibilidad entre servidores y clientes,
por lo que ambas tienen el mismo nivel de importancia a la hora de
diseñar sistemas distribuidos. Pero la heterogeneidad se ve
comprometida cuando por ejemplo un servidor A recibe mayor numero
de peticiones de recursos por medio de los usuarios, tomando como
hipótesis que los clientes que tiene asignados al servidor A son mas
activos que otros grupos de clientes asignados a otros servidores, por
lo que probablemente sea necesario aumentar recursos de hardware al
servidor A, en este caso la heterogeneidad de hardware pierde peso,
debido a que un servidor contaría con mas recursos de hardware que
los demás, pero entonces tendríamos 2 opciones aumentar el hardware
de todos los demás servidores lo cual implica un gasto económico que
probablemente no pueda ser cubierto, o la segunda opción podemos
realizar la instalación de un nuevo servidor y balancear la carga de
peticiones de clientes entre el servidor A y el nuevo servidor al que
llamaremos servidor B entonces al agregar un nuevo servidor con las
misma características que todo el grupo de servidores así se cubre la
extensibilidad por demanda y se protege la heterogeneidad de
hardware.

1.9 Suponga que las operación del objeto burbuja están separadas en
dos categorías: operaciones públicas disponibles para todos los
usuarios y operaciones protegidas disponibles sólo para ciertos
usuarios conocidos por un nombre concreto. Presente todo los
problemas relacionados con la operación de garantizar que solo los
usuarios con nombre conocido puedan acceder a la operación
protegida. Suponiendo que el acceso a una operación protegida da
información que no debiera revelarse al resto de los usuarios. ¿Qué más
problemas aparecen?

R= Actualmente la gran mayoría de gestores de bases de datos


permiten asignar privilegios a cada uno de los usuarios para que
realicen determinadas operaciones y acceso a datos, del mismo
modo la administración de recursos que realiza un sistema operativo
dentro de una red local o internet también pueden ser restringidas por
el usuario. Pero los problemas más frecuentes que han de suceder
son la infección con virus, troyanos, y otros; y la falta de
conocimientos de seguridad en los recursos de parte del administrador
del sistema.
1.10 El servicio INFO admite un conjunto de recursos potencialmente
muy grande, cada uno de los cuales puede ser accedido por usuarios
de internet mediante una clave ( en forma de <<string>>). Discuta una
aproximación al diseño de los nombres de los recursos que logra la
mínima pérdida de prestaciones según crece el número de recursos en
el servicio. Sugiera cómo puede implementarse el servicio INFO para
evitar cuellos de botella en las prestaciones cuando el número de
usuarios se vuelve muy grande.

Una opción podría ser limitar el numero de usuarios online para evitar
el consumo excesivo de recursos de los clientes sobre el servidor INFO
evitando a si que algunos clientes sean expulsado, no se puede acceder
al servicio de INFO o en el peor de los casos que el servidor INFO
colapse, sin embargo un servidor debe garantizar al disponibilidad de la
información por lo que aplicar la regla anterior provocaría que el numero
de conexiones se simultáneos sea limitado y esto provocaría que
usuario por arriba del limite permitido no puedan tener acceso a ningún
recurso. Podría ejecutar un paso de información mediante el protocolo
UPD el cual se ejecuta en la capa de transporte del modelo OSI este
protocolo esta orientado a conexión y permite enviar paquetes

1.11 Enumere los tres componentes software principales que pueden


fallar cuando un proceso cliente invoca un método en un objeto servidor,
proporcionando un ejemplo del fallo de cada clase. Sugiera cómo
pueden construirse los componentes que toleren su fallos mutuamente.

1. Tolerancia de fallos
2. Recuperacion frente a fallos
3. Fallos de calculo y fallos de actualización de redundancia
1.12 Un servidor mediante un objeto de información compartida tal como
el objeto burbuja del ejercicio 1.7. Argumente en pro y contra de si
admitir que las peticiones de los clientes ejecuten concurrentemente en
el servidor. En este caso. Dé un ejemplo de posible <<interferencia>>
que pudiera aparecer entre las operaciones de diferentes clientes.
Sugiera cómo puede prevenirse tal inferencia.

R=

1.13 Varios servidores implementan cierto servicio. Explique el porqué


puede transferirse los recursos entre ellos. ¿Sería satisfactorio para los
clientes la multidifusión de todas las peticiones al grupo de servidores
como un medio de obtener la transparencia de movilidad para los
clientes?

R= Es claro que los servidores almacenan información y recursos


mediante un sistemas distribuidos, por lo que están interconectados
entre si y tienen la capacidad de compartir información, recursos y
servicios entre si o a clientes bajo su misma red de operación.

Вам также может понравиться