BIIT7 - Arquitectura C/S Flashcards
¿A qué se hace referencia con el término C/S?
A un tipo de sistema distribuido, esto es, un sistema cuyos componentes hardware y software, que están en ordenadores conectados en red, se comunican y coordinan sus acciones mediante el paso de mensajes, para la consecución de un objetivo
¿Qué tipo de separación tienen el cliente y el servidor?
De tipo lógico
Características de una arquitectura C/S
Coinciden con los de un sistema distribuido
* Compartición de recursos
* Concurrencia
* Arquitectura abierta
* Escalabilidad
* Tolerancia a fallos
* Transparencia
Características de una arquitectura C/S, ¿quién lleva a cabo la compartición de recursos? ¿cuáles son sus funciones?
Un módulo de software conocido como gestor de recursos situado en el lado servidor, cuyas funciones son
* la provisión de un sistema de nombres de recursos
* el mapeo de dichos nombres a direcciones de comunicaciones
* coordinación de accesos concurrentes sobre los recursos.
Características de una arquitectura C/S, ¿es lo mismo concurrencia que paralelismo?
No
* Concurrencia implica que se solicitan recursos de forma simultánea
* Paralelismo implica que se sirven recursos de forma simultánea
Características de una arquitectura C/S, ¿qué es importante para gestionar la concurrencia? ¿hay algún protocolo que nos ayude a sincronizar?
- La sincronización.
- NTP (Network Time Protocol)
Características de una arquitectura C/S, ¿qué determina la arquitectura abierta? ¿Existe alguna condición para tener una arquitectura abierta?
- Determina hasta qué punto puede extenderse un sistema, tanto por lo que respecta al hardware como al software o a las comunicaciones
- Especificar y documentar los interfaces del sistema –> estandarizar
Características de una arquitectura C/S, ¿algún ejemplo de arquitecturas abiertas?
DCE (Distributed Computing Environment del Open Group)
Características de una arquitectura C/S, arquitectura abierta ¿qué permite el DCE ?
Estándar de facto promovido por fabricantes de sistemas distribuidos que permite independizarse del SO y de las redes
Características de una arquitectura C/S, arquitectura abierta ¿qué incluye/usa el DCE?
- Servicio de comunicación basado en RPC (DCE RPC)
- Seguridad basada en Kerberos
- Servicio de directorio
- Sistema de archivo distribuido (DCE DFS)
- Servicio horario (NTP)
Características de una arquitectura C/S, ¿qué implica la escalabilidad?
Implica que no deba ser preciso cambiar significativamente ni el SO ni las aplicaciones cuando se modifica el tamaño del sistema distribuido.
Características de una arquitectura C/S, tipos de escalabilidad
- Vertical: cuando al añadir más recursos a un nodo particular del sistema, este mejora en conjunto.
- Horizontal: si al agregar más nodos al mismo, el rendimiento de éste mejora
Características de una arquitectura C/S, ¿en qué 2 factores complementarios se basa la tolerancia a fallos?
- La redundancia de equipos hardware (incluyendo aquí comunicaciones)
- La utilización de software específico para la recuperación de fallos (backups).
Características de una arquitectura C/S, ¿qué es la transparencia?
Percepción que tiene el usuario del sistema distribuido como un todo integrado y no como un conjunto de equipos independientes.
Características de una arquitectura C/S, clasificación transparencia: Modelo ISO/IEC RMODP (Reference Model for Open Distributed Processing)
- Transparencia de acceso.
- Transparencia de ubicación.
- Transparencia de concurrencia.
- Transparencia de réplicas.
- Transparencia ante fallos.
- Transparencia de migración.
- Transparencia de prestaciones.
- Transparencia de escalabilidad. Crece sin cambios significativos.
- Transparencia de red. Equivale a la transparencia de acceso y de ubicación.
Características de una arquitectura C/S, clasificación transparencia: Modelo ISO/IEC RMODP, ¿qué es la transparencia de acceso?
Permite el uso de operaciones análogas para el acceso a objetos de información tanto locales como remotos.
Características de una arquitectura C/S, clasificación transparencia: Modelo ISO/IEC RMODP, ¿qué es la transparencia de ubicación?
Permite el acceso a los objetos de información sin necesidad de conocer su dirección en el sistema distribuido.
Características de una arquitectura C/S, clasificación transparencia: Modelo ISO/IEC RMODP, ¿qué es la transparencia de concurrencia?
Permite que varios procesos operen concurrentemente utilizando objetos de información compartidos sin interferencia entre ellos.
Características de una arquitectura C/S, clasificación transparencia: Modelo ISO/IEC RMODP, ¿qué es la transparencia de réplicas?
Permite la utilización de múltiples instancias (réplicas) de los objetos de información a fin de aumentar la fiabilidad y las prestaciones del sistema, sin que los usuarios de los programas perciban la existencia de tales réplicas.
Características de una arquitectura C/S, clasificación transparencia: Modelo ISO/IEC RMODP, ¿qué es la transparencia ante fallos?
Permite que los usuarios y las aplicaciones puedan completar sus tareas a pesar de fallos en el hardware o software del sistema, o retrotraerlas al instante anterior a la ocurrencia del fallo, para no generar inconsistencias.
Características de una arquitectura C/S, clasificación transparencia: Modelo ISO/IEC RMODP, ¿qué es la transparencia de migración?
Permite el cambio de ubicación de los objetos de información dentro del sistema sin que ello afecte a la operatoria de los usuarios o de las aplicaciones.
Características de una arquitectura C/S, clasificación transparencia: Modelo ISO/IEC RMODP, ¿qué es la transparencia de prestaciones?
Permite la reconfiguración del sistema para mejorar sus prestaciones a medida que cambia la carga del mismo. Adaptabilidad.
Características de una arquitectura C/S, clasificación transparencia: Modelo ISO/IEC RMODP, ¿qué es la transparencia de escalabilidad?
Permite que el sistema pueda crecer sin necesidad de cambios en su estructura o en los algoritmos de las aplicaciones.
Características de una arquitectura C/S, clasificación transparencia: Modelo ISO/IEC RMODP, ¿qué es la transparencia de red?
Equivale a la transparencia de acceso y de ubicación.
¿Qué es Network Computing?
Conjunto de ordenadores interconectados a través de una red (LAN/WAN)
¿Qué es Network Computer?
Estaciones sin disco duro, disquetera,… con un autoarranque directo del SO y de las aplicaciones desde el servidor.
¿De qué se compone una aplicación C/S?
Se compone de varios procesos clientes y servidores que se pueden distribuir en una red.
¿Qué características debe de tener una aplicación para que sea C/S?
- Separación de funciones
- Encapsulación de servicios
- Portabilidad
- Modos de funcionamiento síncronos o asíncronos
¿Hay alguna tipología estándar C/S?
Modelo de la Gartner Group
Tipología C/S según Gartner, ¿qué es la presentación distribuida?
Aquella en que la presentación se encuentra tanto en el C como en el S
En el S estará la gestión de datos, la aplicación y la presentación
Tipología C/S según Gartner, ¿qué es la presentación remota?
Aquella en que la presentación se encuentra solo en el C
En el S estará la gestión de datos y la aplicación
Tipología C/S según Gartner, ¿qué es la función distribuida?
Aquella en que la aplicación se encuentra tanto en el C como en el S
En el S estará la gestión de datos, la aplicación
En el C estará la aplicación y la presentación
Tipología C/S según Gartner, ¿qué es la gestión de datos remotos?
Aquella en que la gestión de datos se encuentra solo en el S
En el C estará la aplicación y la presentación
Tipología C/S según Gartner, ¿qué es la gestión de datos distribuida?
Aquella en que la gestión de datos se encuentra tanto en el C como en el S
En el C estará la gestión de datos, la aplicación y la presentación
Aplicaciones C/S, ¿qué es capa?
Visión lógica –> Software
Aplicación C/S, ¿qué es nivel?
Visión física –> Hardware
Aplicación C/S de 2 niveles
- Cliente
- Servicios de presentación
- Lógica
- Acceso a datos - Servidor: BD.
Aplicación C/S de 3 niveles
La aplicación se divide en
- presentación
- lógica de negocio
- datos
pudiéndose distribuir cada una de estas partes entre los múltiples procesadores de la red.
Componentes de una aplicación C/S
- Clientes
- Servidores
- Middleware
Componentes de una aplicación C/S, ¿qué es un cliente ligero (thin client)?
Un ordenador (cliente) en una arquitectura de red C/S que tiene muy poca o ninguna lógica del programa, por lo tanto depende principalmente del servidor central para las tareas de procesamiento.
Componentes de una aplicación C/S, algunos de los protocolos usados para la comunicación entre clientes ligeros y servidores
- XML sobre HTTP usado por XHTML.
- Citrix ICA con MetaFrame
- RDP el mecanismo por defecto de acceso remoto al escritorio para Windows
- HTML sobre HTTP usado por un gran grupo de aplicaciones web.
Componentes de una aplicación C/S, ¿qué es un cliente pesado?
Programa “cliente” de una arquitectura C/S cuando la mayor carga de proceso está desplazada hacia la computadora que ejecuta dicho programa.
Componentes de una aplicación C/S, ejemplos de clientes pesados
- Terminales de punto de venta
- Sistemas integrados o empotrados.
Componentes de una aplicación C/S, ¿qué es un cliente zero (zero client)?
Hace uso de un firmware muy liviano que simplemente
* inicializa la comunicación de red a través de una GUI básica
* descodifica la información de visualización recibida del servidor
* envía la información local al host.
Componentes de una aplicación C/S, ¿qué es un middleware?
Elemento que facilita la interoperabilidad del sistema a través de la red ocultando la complejidad al desarrollador y al usuario final.
Componentes de una aplicación C/S, tipos de middleware
- RPC
- ORB
- CORBA
Servicios web- XML-RPC
- SOAP,…
Componentes de una aplicación C/S, middleware RPC ¿qué es?
Remote Procedure Call
Procedimiento síncrono que posibilita la transferencia de llamadas entre rutinas de 2 aplicaciones, a través de la red y de forma transparente.
Componentes de una aplicación C/S, middleware RPC ¿cómo funciona?
Tanto en el cliente como en el servidor existe un módulo de código (o stub) que transforma llamadas locales en remotas e invoca a los procedimientos en el servidor.
Componentes de una aplicación C/S, ejemplos de middleware RPC ¿son compatibles entre sí?
- Ejemplos
- RPC de Sun denominado ONC RPC (RFC 1057)
- RPC de la Open Software Foundation denominado DCE/RPC
- Modelo de Objetos de Componentes Distribuidos de Microsoft DCOM.
- No, ninguno de ellos es compatible entre sí. La mayoría utilizan un lenguaje de descripción de interfaz remota (IDL) que define los métodos exportados por el servidor.
Componentes de una aplicación C/S, middleware ORB ¿qué es?
- Object Request Broker
- Componentes dedicados a solicitar mediante mensajes los objetos.
Componentes de una aplicación C/S, middleware ORB ¿qué necesitan del SO?
Necesitan la MQI (Message Queue Interface) que existe en casi todos los sistemas (UNIX, Linux,…)
Componentes de una aplicación C/S, ejemplo de middleware ORB ¿es compatible con CORBA?
- Java RMI (Java Remote Method Invocation)
- No es compatible con CORBA ya que es nativo de java, no permitiendo esta tecnología la interacción con aplicaciones escritas en otros lenguajes.
Componentes de una aplicación C/S, middleware XML-RPC ¿qué es?
Protocolo de llamada a procedimiento remoto que usa XML para codificar los datos y HTTP como protocolo de transmisión de mensajes
Componentes de una aplicación C/S, middleware XML-RPC ¿a qué middleware evolucionó?
SOAP
Componentes de una aplicación C/S, ¿qué diferencia hay entre XML-RPC y SOAP?
- En XML-RPC los parámetros que se pasan tienen un orden, que hay que respetar.
- En SOAP los parámetros están identificados por el nombre, por lo que el orden no interesa.
Componentes de una aplicación C/S, middleware CORBA, ¿qué es? ¿en qué se basa?¿quién la ha desarrollado?
- Common Object Request Broker Architecture (Arquitectura Cómun de ORB. )
- Una forma de estandarizar los ORBs y que sean compatibles entre sí a pesar del lenguaje.
- En la orientación a objetos
- OMG (Object Management Group)
Componentes de una aplicación C/S, middleware CORBA, ¿a qué tipo de sistema está ligada? ¿qué proporciona?¿qué tipo de independencia se logra?
- Está muy ligada a los sistemas distribuidos.
- Proporciona un estándar para poder definir estas interfaces entre módulos (objetos).
- Independencia
- de la plataforma.
- del lenguaje.
Componentes de una aplicación C/S, middleware CORBA, ¿cuáles son los elementos básicos?
- ORB.
- IDL (Interface Definition Language).
Componentes de una aplicación C/S, middleware CORBA, ¿cuáles son las funciones de ORB?
- Dirigen la comunicación entre objetos CORBA.
- Facilidades de localización de objetos
Componentes de una aplicación C/S, middleware CORBA, ¿cuáles son las funciones de IDL?
- Define los interfaces de los componentes de la aplicación.
- Posibilita la separación entre la interfaz y la implementación
Componentes de una aplicación C/S, middleware CORBA, ¿es independiente la definición de IDL del lenguaje de programación?
Sí, existiendo estándares de la OMG para los lenguajes de programación
Componentes de una aplicación C/S, middleware CORBA, ¿qué es y qué hace el protocolo IIOP?
- Internet Inter ORB Protocol
- Especialización del protocolo GIOP (General Inter Orb Protocol)
- Envía peticiones entre ORBs
Componentes de una aplicación C/S, middleware CORBA, acrónimos relacionados
- CORBAe (“CORBA for Embedded”).
- CCM (CORBA Component Model).
- RFLEC (CORBA Reflection).
- ZIOP (Zipped Inter ORB Protocol).
- C2WSDL (CORBA to WSLD/SOAP).
- WSDL2C (WSDL/SOAP to CORBA).
¿Qué es una red P2P?
Tipo particular de arquitectura C/S en el que todos los elementos actúan simultáneamente como clientes y como servidores respecto a los demás elementos de la red
6 características deseables de las redes P2P
- Escalabilidad.
- Robustez.
- Descentralización.
- Los costes están repartidos entre los usuarios.
- Anonimato.
- Seguridad.
Tipos de redes P2P en función de su grado de centralización
- Redes P2P centralizadas.
- Redes P2P “puras” o totalmente descentralizadas.
- Redes P2P híbridas, semi-centralizadas o mixtas.