Arquitecturas Distribuidas

Enviado por Javi y clasificado en Informática

Escrito el en español con un tamaño de 45,12 KB

1. Explique qué es un URL, cuál es su utilidad, qué partes lo forman e indique qué defectos son achacables a un URL. Dé algún ejemplo de URL.

Los URL (Localizador Uniforme de Recursos) son un subconjunto de los URI. Se utilizan para nombrar recursos para su utilización. Una URL está dividida en tres partes, las cuales vemos en este ejemplo:

9k=

Inconvenientes: cuando tenemos varias copias (réplicas) diferentes, los URL no ofrecen ningún mecanismo para referirse a una página sin decir simultáneamente donde está.

2. Explique cómo funciona el mecanismo de herencia de propiedades en CSS y las reglas básicas de aplicación de selectores.

En CSS, el hijo hereda las propiedades de estilo del padre. Si por ejemplo al <body> le asignamos un tipo de fuente, todo el documento heredará este tipo de fuente siempre que no se le dé otro tipo de fuente a los hijos, en cuyo caso todos los hijos de este último heredarán su tipo de fuente.

Otro ejemplo sería asignarle al body cursiva, por lo que todo el documento se presentaría en cursiva; si a uno de sus hijo le asignamos color rojo, éste último y todos los hijos tendrán cursiva y color rojo.

Reglas de aplicación:

  • *: se le aplica a todo
  • E: a todos los elementos E
  • E>F: cualquier elemento F hijo directo de E. Ej: <E><F></F></E>
  • E F: cualquier elemento F descendiente de E. Ej: <E><A><F></F></A></E>
  • E+F: elemento F que vaya después de E.  Ej: <E></E><F></F>
  • E#X: elemento E cuyo id sea X
  • E.Y: elemento E cuyo atributo class sea Y
  • Pseudo clases: se añade a los selectores para indicar propiedades especiales, como por ejemplo que el link ha sido quitado o que el ratón ha pasado por encima del link.
  • Reglas de agrupación: los elementos se agrupan mediante “,”.   Ej: E,F,H

3. Explique el funcionamiento de CGI

CGI (Interfaz de Entrada Común) es un estándar que permite a un cliente web solicitar datos a un programa ejecutado en un servidor web.

CGI fue una de las primeras maneras de poder realizar páginas webs dinámicas, aunque hoy en día apenas es utilizado debido a su alta coste computacional y la complejidad de generar código HTML mediante los lenguajes de programación tradicionales.

Básicamente, el funcionamiento de CGI consiste en:

  • El cliente solicita una URL al servidor
  • El servidor ejecuta la aplicación, pasándole información de contexto como la URL solicitada, la IP del cliente, los datos GET o POST enviados, etc.
  • La salida de la aplicación se envía al cliente.

4. ¿Qué tipos de peticiones se pueden utilizar con las CGI? ¿Qué diferencias hay entre ambos métodos?

Se pueden realizar tanto peticiones GET como POST. En las primeras, el servidor guarda los parámetros recibidos en la variable de entorno QUERY_STRING, y el programa CGI obtiene de ésta el nombre y valor de las variables enviadas por el usuario.

En el caso de peticiones POST, los datos recibidos se colocan en la entrada estándar de la aplicación para poder ser procesados por ésta.

5. Indique cómo se pasa información a una CGI cuando se utiliza el método GET.

Cuando se recibe una petición GET, el servidor guarda los parámetros recibidos en la variable de entorno QUERY_STRING (en parejas nombre=valor), para que el programa CGI decodifique dichos valores y los procese.

6. Enumere las condiciones que debe cumplir un documento XML para que esté bien formado. Idem para ser conforme. ¿Está bien formado el siguiente documento XML? Razone la respuesta.

<?xml version="1.0" encoding="ISO-8859-1"?> No tiene “doctype”, una DTD

<html>

<head>

<title> Ejemplo de HTML </title>

</head>

<body bgcolor="#451233">

<hr/>

<ul nocaption="true">  “nocaption” no es un atributo válido para este elemento

<li> Elemento 1 </li>

<li> Elemento 2 </li>

</ul>

</body>

</html>

7. Indique para cada elemento del árbol los valores que la CSS asigna a los parámetros color y fuente. (1.5 puntos).

BODY {color: Negro; fuente: Times}

OL+LI {color: Amarillo}

LI {color: Naranja}

UL LI {fuente: Arial}

A {color: Rojo}

LI>A {color: Azul}

BODY      {color: Negro;  fuente: Times}

|

|-> OL   {color: Negro;  fuente: Times}

| |

| |-> LI   {color: Naranja;  fuente: Times}

| |-> LI   {color: Naranja;  fuente: Times}

| |-> P    {color: Naranja;  fuente: Times}

| |-> A    {color: Rojo;  fuente: Times}

|

|-> UL    {color: Negro;  fuente: Times}

|

|-> LI   {color: Amarillo;  fuente: Times}

|-> LI   {color: Naranja;  fuente: Times}

|-> A   {color: Rojo;  fuente: Times}

8. Dibuje el intercambio de cabeceras HTTP involucradas en la transmisión de cookies para el siguiente escenario:

  • Ninguna
  • Set-Cookie: a=”valorA”
  • Cookie: a=”valorA”
  • Set-Cookie: b=”valorB”; max-age=7200
  • Cookie: b=”valorB”

9. Describa el funcionamiento de los Web Services y cuál es su utilidad y ventajas.

FUNCIONAMIENTO:

Web Services (WS) funcionan como las llamadas a procedimiento remoto, pero sobre la infraestructura básica de Internet. Los métodos o funciones que se pueden invocar junto con los parámetros de entrada y de salida (interfaz del WS) se especifican mediante WSDL. UDDI es un directorio de WS con sus correspondientes descripciones en WSDL.

Una vez disponemos de la descripción WSDL se invoca la función remota (WS) mediante intercambio de mensajes SOAP (lenguaje de marcas XML). Se pueden utilizar distintos protocolos pero lo habitual es SOAP sobre HTTP.

El servidor de WS implementa el servicio. Procesa la llamada y devuelve un resultado con XML encapsulado en SOAP.

El proceso es independiente del lenguaje de programación y la plataforma.

UTILIDAD:

WS exponen una función de negocio con la que otras aplicaciones pueden interactuar a través de la web.

VENTAJAS:

Permiten el intercambio de documentos XML sobre HTTP, la exposición de “servicios” a través de la web (Internet), la interacción entre aplicaciones (software) a través de la web y facilita la interoperabilidad entre sistemas heterogéneos.

Utiliza protocolos de estándar de Internet para intercambiar documentos XML entre procesos. Funcionan como una llamada procedimiento remoto.

10. ¿Qué es una operación idempotente? ¿Qué semánticas son admisibles si las operaciones remotas no son de este tipo? Justifique la respuesta.

Una operación idempotente es aquella que su resultado no depende del número de veces que se ejecute, en general, cualquier operación para obtener información se puede considerar idempotente, ya que no cambia el valor de los datos. Para realizar operaciones de este tipo se deben utilizar peticiones tipo GET.

Por el contrario, cuando las operaciones si implican realizar una acción que cambie el valor de la información, se considera una operación no idempotente, y entonces el método empleado para realizarla debe ser POST. Un ejemplo de operación no idempotente es una compra online o el registro de un usuario en una página web.

11. ¿En qué consiste el proceso de serialización, deserialización de los datos en una LPR? ¿Por qué es necesario?

Los procesos de serialización y deserialización consisten en almacenar los datos que se intercambian mediante una LPR, de manera que sean adecuados para su transmisión y que ambos extremos de la comunicación puedan entender y procesar.

Las labores de serialización y deserialización son necesarias en una LPR puesto que los extremos pueden ser plataformas distintas y, por tanto, pueden emplear formas distintas para almacenar valores de objetos y datos. Mediante ambos procesos, se asegura que los datos obtenidos en el receptor sean los mismos que los enviados por el emisor.

12. Describa la arquitectura de CORBA, explique brevemente la misión de cada componente y los pasos que sigue una LPR en CORBA.

CORBA es una plataforma que permite invocar operaciones sobre objetos remotos.

Está formando por

  • Un lenguaje de definición de interfaces (IDL) que permite definir los procesos y métodos disponibles mediante invocación remota.
  • Un compilador de interfaces, que genera el código fuente para usarlo en los programas cliente y servidor.
  • El denominado ORB (Object Request Broker), que se encarga de la comunicación entre cliente y servidor.
  • Las referencias ROR, que identifican de manera única un objeto.

Cuando se realiza una llamada a método remoto, primero es necesario conocer su referencia ROR. Una vez que se conoce, el cliente, a través del código Stub, serializa los datos y los envía mediante el ORB al servidor remoto. Este a su vez se encarga de deserializar dichos datos e invocar el método solicitado en el objeto indicado en la referencia ROR.

13. ¿Qué es una ROR en terminología CORBA? Explique los diferentes métodos para obtener las ROR de un objeto.

Es una Referencia a Objeto Remoto. Cada objeto posee una ROR única, que es generada en el Adaptador de Objetos. Por medio de la ROR el ORB es capaz de localizar el ordenador remoto y el adaptador de objetos donde se encuentra.

Los ROR se pueden obtener:

  • A través de servicios especiales de CORBA.
  • A partir de una IOR modo cadena:
  • Desde un archivo: por NFS
  • A través de un protocolo de descarga de objetos: HTTP, FTP, OBEX, etc.

14. Una empresa duda entre utilizar para servir su web una red de entrega de contenidos (CDN) o un sistema de mirroring. La CDN cobra a la empresa 0.01 euros por Megabyte servido. El sistema de mirrors está compuesto por 10 servidores con un costo de mantenimiento de 0.001 euro por acceso. Sabiendo que las páginas que se desean servir contienen en media 1 Megabyte de datos y que el número total de visitas esperadas cada día es de 1000. ¿Cúal es la mejor (más barata) alternativa para la empresa?

Recomendación: calcule para ambas alternativas el precio diario y compárelo.

Mediante CDN:

Coste diario:  U3XjTrEu12xzEAA7iXx4lDZklGKYaAJUoSX9bEhGuiHKnlmWTogQIUIoCg5goSrLkHnCYYoZSSXb45GJp8fpHTARVElJM5g46QU0UR8tjnol0EAQA7

Conclusión:

La mejor alternativa es el empleo de mirrors, ya que es la alternativa más barata.

Cuestionario 2

2. Explique qué es un mecanismo de cache proactiva y en qué se diferencia de uno convencional.

Cuando el proxy obtiene una página web del servidor puede inspeccionarla y pre?cargar en caché las páginas enlazadas en los hipervínculos. Reduce el tiempo de acceso, pero también inunda el proxy con material inservible. Es un mecanismo más complejo.

3. Describa qué es una CDN, su utilidad y ventajas.

Es una Red de entrega de contenido (Content Delivery Network (CDN)). Los proveedores de contenido contratan con las CDN la entrega de sus contenidos en web: imágenes, programas, mp3, videos, etc. Después, la CDN contrata con miles de ISP para que le dejen poner su contenido en sus LAN, en un servidor controlado remotamente por la CDN.

VENTAJAS:

No es preciso cambiar nada en los servidores, ni en los DNS, ni en otros elementos del protocolo.

4. Describa en profundidad cómo se implementa el envío de información del cliente al servidor mediante el protocolo HTTP. Indique qué código HTML es imprescindible (debe aparecer como mínimo) en la parte del cliente. Describa qué operaciones de HTTP se usan cuando se envía información, como funcionan y en qué se diferencian.

El protocolo HTTP es un protocolo que trabaja a nivel de aplicación, sobre TCP. Primero se establece la comunicación TCP, y después se intercambian los mensajes necesarios entre el cliente y servidor mediante HTTP, y una vez hecha la consulta, se cierra la conexión.

Cada solicitud del cliente es una cadena ASCII (7 bit), donde la primera palabra (en MAYÚSCULAS) indica la operación a realizar. Se envía al servidor a través de una conexión TCP. Ejemplo:

GET /directorio/paginaweb.html HTTP/1.0

El servidor responde con:

Línea de estado (Código + Información Código)

Cabeceras adicionales

+

Línea en blanco OBLIGATORIA

+

MIME objeto respuesta

El código HTML que debe aparecer como mínimo por parte del cliente es la etiqueta <html> y <body>.

5. Indique los casos en los que es adecuado el uso del método GET, en cúales es preferible el método POST y en cuáles no es posible utilizar uno u otro.

Las operaciones GET deben ser utilizadas para operaciones idempotentes, esto es, operaciones que no dependen del número de veces que se ejecutan. Normalmente, operaciones que impliquen obtener datos son idempotentes. No permiten el envío de grandes cantidades de datos ni de información binaria.

Por otro lado, el método POST es preferible cuando se realizan operaciones que si alteran el valor de la información, como actualizar un perfil o registrar un usuario. Como desventaja, suelen romper la funcionalidad del botón atrás y el de recarga del navegador.

7. ¿Qué es una base de datos? ¿Y un software de base de datos? ¿Cómo se consulta una base de datos?

Una base de datos es un conjunto de datos almacenados sistemáticamente para su posterior uso.

Un software de bases de datos es el sistema que gestiona la forma de consultar y acceder a los datos almacenados en una base de datos.

Las consultas a las bases de datos se realizan mediante un lenguaje estándar, llamado SQL. Este lenguaje permite seleccionar filas y celdas de la base de datos (obtener datos), así como gestionar las tablas, columnas, permisos, índices, etc.

10. Explique el funcionamiento de AJAX, compárelo con el funcionamiento normal de HTTP, explique su utilidad y ventajas.

AJAX (Asynchronous Javascript and XML) es un conjunto de tecnologías (Javascript, XML, HTTP, etc.) que permite una comunicación cliente-servidor de manera asíncrona (a diferencia de HTTP, que realiza las consultas sincrónicamente), de manera que el cliente puede seguir utilizando la página mientras se realiza la petición. Esto trae consigo una mayor interactividad, velocidad y usabilidad de las aplicaciones web.

11. Explique en qué consiste la comunicación entre procesos y describa un par de mecanismos que se pueden utilizar para implementarla.

Son técnicas para el intercambio de información (mensajes) entre procesos (local o remotamente). Las características de la comunicación entre procesos son: comunicación síncrona o asíncrona, destinos de los mensajes (dirección IP, puerto) y fiabilidad y ordenación.

Los mecanismos que se pueden utilizar para implementarla son:

  • Interfaz socket: abstrae las tareas de intercomunicación entre procesos. Socket() crea un conector y devuelve un descriptor de la conexión.
  • Llamada a Procedimiento Remoto (RPC): invocación de operaciones en distintos procesos en la misma o distintas máquinas. Un objeto instanciado en un proceso invoca a un método de un objeto instanciado en otro proceso (local o remoto). La capa RMI permite estas operaciones de manera transparente al programador.

13. Describa las diferencias y semejanzas entre los Web Services y CORBA.

Los Web Services es una tecnología de llamada a procedimiento remoto basada en protocolos estándar de Internet como HTTP y XML. Por su lado, CORBA es también una tecnología de llamada a procedimiento remoto, pero que trabaja a nivel de objetos y no de funciones simples, y que funciona con sus propios protocolos, como IDL, ORB o ROR.

14. Describa SOAP y el contexto en el que se utiliza.

SOAP es un protocolo de intercambio de mensajes. Se utiliza en las Webs Services. Transporta documentos XML a través de la Web. Se utiliza sobre HTTP con el comando POST (aunque también puede utilizarse en otros protocolos como HTTPS). Tiene 3 elementos:

  • SOAP Envelope: elemento raíz
  • SOAP Header: cabeceras (opcionales)
  • SOAP Body: cuerpo del mensaje

15. Dados los siguientes DTD XML, escriba un ejemplo de un documento XML que combine ambos, utilizando espacios de nombres y que haga uso de un espacio de nombres por defecto. (1.5 puntos)

<libro:libroxmlns="uri:"titulo="Sentido de la vida">

  <capitulo>

    <parrafo>

      Esto es un párrafo del libro

    </parrafo>

    <imagen:imagenxmlns:imagen="uriImagen"titulo="Imagen Incrustada"url="http://image.com/i.png" />

  </capitulo>

</libro:libro>

Entradas relacionadas: