En los SGBD que tienen la arquitectura de varios niveles es necesario ampliar el catálogo o diccionario, de modo que incluya información sobre cómo establecer la correspondencia entre las peticiones de los usuarios y los datos, entre los diversos niveles. El SGBD utiliza una serie de procedimientos adicionales para realizar estas correspondencias haciendo referencia a la información de correspondencia que se encuentra en el catálogo. La independencia de datos se consigue porque al modificarse el esquema en algún nivel, el esquema del nivel inmediato superior permanece sin cambios, sólo se modifica la correspondencia entre los dos niveles. No es preciso modificar los programas de aplicación que hacen referencia al esquema del nivel superior.
Por lo tanto, la arquitectura de tres niveles puede facilitar la obtención de la verdadera independencia de datos, tanto física como lógica. Sin embargo, los dos niveles de correspondencia implican un gasto extra durante la ejecución de una consulta o de un programa, lo cual reduce la eficiencia del SGBD. Es por esto que muy pocos SGBD han implementado esta arquitectura completa.
Sistema cliente-servidor
Un sistema de computación que se compone de dos partes lógicas: un servidor, que proporciona servicios y un cliente, lo que les pide. Las dos partes se pueden ejecutar en máquinas separadas en una red, permitiendo a los usuarios acceso al servidor poderosos recursos de sus computadoras personales Los sistemas cliente-servidor no se limitan a los ordenadores tradicionales. Un ejemplo es un sistema automatizado de cajero máquina (ATM). Los clientes suelen utilizar los cajeros automáticos como clientes a la interfaz a un servidor que gestiona todas las cuentas de un banco. Este servidor puede a su vez con los servidores de otros bancos (por ejemplo, al retirar el dinero en un banco en el que el usuario no tiene una cuenta). Los cajeros automáticos proporcionan una interfaz de usuario y los servidores de prestación de servicios, tales como la comprobación de saldos de cuentas y transferir dinero entre cuentas.
Para facilitar el acceso a servidores no se ejecutan en la misma máquina que el cliente, el middleware se utiliza generalmente. Middleware sirve como la conexión en red entre los componentes de un sistema cliente-servidor, sino que se debe ejecutar en el cliente y el servidor. Se proporciona todo lo necesario para obtener una solicitud de un cliente a un servidor y recibir la respuesta del servidor al cliente. Middleware menudo facilita la comunicación entre los diferentes tipos de sistemas informáticos. Esta comunicación se hace la cruz-plataforma de computación cliente-servidor y permite que muchos tipos de clientes para acceder a los mismos datos.
La parte de servidor casi siempre contiene los datos y el cliente es casi siempre responsable de la interfaz de usuario. La lógica de la aplicación, que determina cómo los datos deben ponerse en práctica, se pueden distribuir entre el cliente y el servidor. La parte de un sistema con una cantidad desproporcionadamente grande de la lógica de aplicación que se llama "gordo", un "fino" parte de un sistema es una parte con menos responsabilidad que le sean delegadas. servidor de los sistemas de grasa, tales como trabajo en grupo de sistemas y servidores web, delegar más responsabilidad por la lógica de la aplicación en el servidor, mientras que los sistemas cliente de grasa, como la mayoría de sistemas de bases de datos, el lugar más responsabilidad en el cliente.
El modelo canónico del servidor de cliente asume dos participantes en el sistema. Esto se llama un sistema de dos niveles, la lógica de la aplicación debe estar en el cliente o el servidor, o compartida entre los dos. También es posible tener la lógica de la aplicación reside en una tercera capa separada de la interfaz de usuario y los datos, convirtiendo el sistema en un sistema de tres niveles. La separación total es poco común en los sistemas reales, por lo general la mayor parte de la lógica de la aplicación es en el nivel intermedio, pero porciones selectas de la misma, son responsabilidad del cliente o el servidor.
El modelo de tres niveles es más flexible que el modelo de dos niveles debido a la separación de la lógica de la aplicación desde el cliente y el servidor da lógica de la aplicación procesa un nuevo nivel de autonomía. Los procesos se hacen más sólidas, ya que pueden funcionar independientemente de los clientes y servidores. Por otra parte, la disociación de la lógica de la aplicación de los datos permite que los datos de múltiples fuentes para su uso en una sola transacción sin una ruptura en el modelo cliente-servidor. Este avance en la arquitectura cliente-servidor es responsable en gran medida el concepto de datos distribuidos.
Norma aplicaciones web son los ejemplos más comunes de los sistemas de tres niveles. El primer nivel es la interfaz de usuario, siempre a través de la interpretación de Hyper Text Markup Language (HTML) mediante un navegador web. Los componentes integrados que se muestra en el navegador residen en el nivel intermedio, y proporcionar la lógica de la aplicacióncorrespondiente al sistema. El último nivel está los datos de un servidor web. Muy a menudo se trata de un sistema de base de datos de estilo, pero podría ser una de almacén de depósito o groupware sistema de datos.
3.- Arquitectura Cliente/Servidor
Características funcionales
Características físicas
Características lógicas
Ventajas e inconvenientes
Fases de implantación
Criterios de utilización
Con la proliferación de ordenadores personales de bajo coste en el mercado, los recursos de sistemas de información existentes en cualquier organización se pueden distribuir entre ordenadores de diferentes tipos: ordenadores personales de gama baja, media y alta, estaciones de trabajo, miniordenadores o incluso grandes ordenadores.
El concepto de cliente/servidor proporciona una forma eficiente de utilizar todos estos recursos de máquina de tal forma que la seguridad y fiabilidad que proporcionan los entornos mainframe se traspasa a la red de área local. A esto hay que añadir la ventaja de la potencia y simplicidad de los ordenadores personales.
La arquitectura cliente/servidor es un modelo para el desarrollo de sistemas de información en el que las transacciones se dividen en procesos independientes que cooperan entre sí para intercambiar información, servicios o recursos. Se denomina cliente al proceso que inicia el diálogo o solicita los recursos y servidor al proceso que responde a las solicitudes.
En este modelo las aplicaciones se dividen de forma que el servidor contiene la parte que debe ser compartida por varios usuarios, y en el cliente permanece sólo lo particular de cada usuario.
Los clientes realizan generalmente funciones como:
Manejo de la interfaz de usuario.
Captura y validación de los datos de entrada.
Generación de consultas e informes sobre las bases de datos.
Por su parte los servidores realizan, entre otras, las siguientes funciones:
Gestión de periféricos compartidos.
Control de accesos concurrentes a bases de datos compartidas.
Enlaces de comunicaciones con otras redes de área local o extensa.
Siempre que un cliente requiere un servicio lo solicita al servidor correspondiente y éste le responde proporcionándolo. Normalmente, pero no necesariamente, el cliente y el servidor están ubicados en distintos procesadores. Los clientes se suelen situar en ordenadores personales y/o estaciones de trabajo y los servidores en procesadores departamentales o de grupo.
Entre las principales características de la arquitectura cliente/servidor se pueden destacar las siguientes:
El servidor presenta a todos sus clientes una interfaz única y bien definida.
El cliente no necesita conocer la lógica del servidor, sólo su interfaz externa.
El cliente no depende de la ubicación física del servidor, ni del tipo de equipo físico en el que se encuentra, ni de su sistema operativo.
Los cambios en el servidor implican pocos o ningún cambio en el cliente.
3.1.- Características funcionales
Esta arquitectura se puede clasificar en cinco niveles, según las funciones que asumen el cliente y el servidor, tal y como se puede ver en el siguiente diagrama:
En el primer nivel el cliente asume parte de las funciones de presentación de la aplicación, ya que siguen existiendo programas en el servidor dedicados a esta tarea. Dicha distribución se realiza mediante el uso de productos para el "maquillaje" de las pantallas del mainframe. Esta técnica no exige el cambio en las aplicaciones orientadas a terminales, pero dificulta su mantenimiento. Además, el servidor ejecuta todos los procesos y almacena la totalidad de los datos. En este caso se dice que hay una presentación distribuida o embellecimiento.
En el segundo nivel la aplicación está soportada directamente por el servidor, excepto la presentación que es totalmente remota y reside en el cliente. Los terminales del cliente soportan la captura de datos, incluyendo una validación parcial de los mismos y una presentación de las consultas. En este caso se dice que hay una presentación remota.
En el tercer nivel la lógica de los procesos se divide entre los distintos componentes del cliente y del servidor. El diseñador de la aplicación debe definir los servicios y las interfaces del sistema de información de forma que los papeles de cliente y servidor sean intercambiables, excepto en el control de los datos que es responsabilidad exclusiva del servidor. En este tipo de situaciones se dice que hay un proceso distribuido o cooperativo.
En el cuarto nivel el cliente realiza tanto las funciones de presentación como los procesos. Por su parte, el servidor almacena y gestiona los datos que permanecen en una base de datos centralizada. En esta situación se dice que hay una gestión de datos remota.
En el quinto y último nivel, el reparto de tareas es como en el anterior y además el gestor de base de datos divide sus componentes entre el cliente y el servidor. Las interfaces entre ambos están dentro de las funciones del gestor de datos y, por lo tanto, no tienen impacto en el desarrollo de las aplicaciones. En este nivel se da lo que se conoce como bases de datos distribuidas.
3.2.- Características físicas
El diagrama del punto anterior da una idea de la estructura física de conexión entre las distintas partes que componen una arquitectura cliente / servidor. La idea principal consiste en aprovechar la potencia de los ordenadores personales para realizar sobre todo los servicios de presentación y, según el nivel, algunos procesos o incluso algún acceso a datos locales. De esta forma se descarga al servidor de ciertas tareas para que pueda realizar otras más rápidamente.
También existe una plataforma de servidores que sustituye al ordenador central tradicional y que da servicio a los clientes autorizados. Incluso a veces el antiguo ordenador central se integra en dicha plataforma como un servidor más. Estos servidores suelen estar especializados por funciones (seguridad, cálculo, bases de datos, comunicaciones, etc.), aunque, dependiendo de las dimensiones de la instalación se pueden reunir en un servidor una o varias de estas funciones.
Las unidades de almacenamiento masivo en esta arquitectura se caracterizan por incorporar elementos de protección que evitan la pérdida de datos y permiten multitud de accesos simultáneos (alta velocidad, niveles RAID, etc.).
Para la comunicación de todos estos elementos se emplea un sistema de red que se encarga de transmitir la información entre clientes y servidores. Físicamente consiste en un cableado (coaxial, par trenzado, fibra óptica, etc.) o en conexiones mediante señales de radio o infrarrojas, dependiendo de que la red sea local (RAL), metropolitana (MAN) o de área extensa (WAN).
Para la comunicación de los procesos con la red se emplea un tipo de equipo lógico denominado middleware que controla las conversaciones. Su función es independizar ambos procesos (cliente y servidor). La interfaz que presenta es la estándar de los servicios de red que hace que los procesos "piensen" en todo momento que se están comunicando con un red.
3.3.- Características lógicas
Una de las principales aportaciones de esta arquitectura a los sistemas de información es la interfaz gráfica de usuario. Gracias a ella se dispone de un manejo más fácil e intuitivo de las aplicaciones mediante el uso de un dispositivo tipo ratón. En esta arquitectura los datos se presentan, editan y validan en la parte de la aplicación cliente.
En cuanto a los datos, cabe señalar que en la arquitectura cliente/servidor se evitan las duplicidades (copias y comparaciones de datos), teniendo siempre una imagen única y correcta de los mismos disponible en línea para su uso inmediato.
Todo esto tiene como fin que el usuario de un sistema de información soportado por una arquitectura cliente/servidor trabaje desde su estación de trabajo con distintos datos y aplicaciones, sin importarle dónde están o dónde se ejecuta cada uno de ellos.
3.4.- Ventajas e inconvenientes
Ventajas
Aumento de la productividad:
Los usuarios pueden utilizar herramientas que le son familiares, como hojas de cálculo y herramientas de acceso a bases de datos.
Mediante la integración de las aplicaciones cliente/servidor con las aplicaciones personales de uso habitual, los usuarios pueden construir soluciones particularizadas que se ajusten a sus necesidades cambiantes.
Una interfaz gráfica de usuario consistente reduce el tiempo de aprendizaje de las aplicaciones.
Menores costes de operación:
Permiten un mejor aprovechamiento de los sistemas existentes, protegiendo la inversión. Por ejemplo, la compartición de servidores (habitualmente caros) y dispositivos periféricos (como impresoras) entre máquinas clientes permite un mejor rendimiento del conjunto.
Proporcionan un mejor acceso a los datos. La interfaz de usuario ofrece una forma homogénea de ver el sistema, independientemente de los cambios o actualizaciones que se produzcan en él y de la ubicación de la información.
El movimiento de funciones desde un ordenador central hacia servidores o clientes locales origina el desplazamiento de los costes de ese proceso hacia máquinas más pequeñas y por tanto, más baratas.
Mejora en el rendimiento de la red:
Las arquitecturas cliente/servidor eliminan la necesidad de mover grandes bloques de información por la red hacia los ordenadores personales o estaciones de trabajo para su proceso. Los servidores controlan los datos, procesan peticiones y después transfieren sólo los datos requeridos a la máquina cliente. Entonces, la máquina cliente presenta los datos al usuario mediante interfaces amigables. Todo esto reduce el tráfico de la red, lo que facilita que pueda soportar un mayor número de usuarios.
Tanto el cliente como el servidor pueden escalarse para ajustarse a las necesidades de las aplicaciones. Las UCPs utilizadas en los respectivos equipos pueden dimensionarse a partir de las aplicaciones y el tiempo de respuesta que se requiera.
La existencia de varias UCPs proporciona una red más fiable: un fallo en uno de los equipos no significa necesariamente que el sistema deje de funcionar.
En una arquitectura como ésta, los clientes y los servidores son independientes los unos de los otros con lo que pueden renovarse para aumentar sus funciones y capacidad de forma independiente, sin afectar al resto del sistema.
La arquitectura modular de los sistemas cliente/servidor permite el uso de ordenadores especializados (servidores de base de datos, servidores de ficheros, estaciones de trabajo para CAD, etc.).
Permite centralizar el control de sistemas que estaban descentralizados, como por ejemplo la gestión de los ordenadores personales que antes estuvieran aislados.
Inconvenientes
Hay una alta complejidad tecnológica al tener que integrar una gran variedad de productos.
Requiere un fuerte rediseño de todos los elementos involucrados en los sistemas de información (modelos de datos, procesos, interfaces, comunicaciones, almacenamiento de datos, etc.). Además, en la actualidad existen pocas herramientas que ayuden a determinar la mejor forma de dividir las aplicaciones entre la parte cliente y la parte servidor.
Es más difícil asegurar un elevado grado de seguridad en una red de clientes y servidores que en un sistema con un único ordenador centralizado.
A veces, los problemas de congestión de la red pueden degradar el rendimiento del sistema por debajo de lo que se obtendría con una única máquina (arquitectura centralizada). También la interfaz gráfica de usuario puede a veces ralentizar el funcionamiento de la aplicación.
El quinto nivel de esta arquitectura (bases de datos distribuidas) es técnicamente muy complejo y en la actualidad hay muy pocas implantaciones que garanticen un funcionamiento totalmente eficiente.
3.5.- Fases de implantación
Una arquitectura cliente/servidor debe mostrar los sistemas de información no como un cliente que accede a un servidor corporativo, sino como un entorno que ofrece acceso a una colección de servicios. Para llegar a este estado pueden distinguirse las siguientes fases de evolución del sistema:
Fase de Iniciación
Esta etapa se centra sobre todo en la distribución física de los componentes entre plataformas. Los dos tipos de plataforma son:
Una plataforma cliente para la presentación (generalmente un ordenador personal de sobremesa).
Una plataforma servidora (como por ejemplo el servidor de una base de datos relacional) para la ejecución de procesos y la gestión de los datos.
Un ejemplo sería el de una herramienta de consulta que reside en un ordenador personal a modo de cliente y que genera peticiones de datos que van a través de la red hasta el servidor de base de datos. Estas peticiones se procesan, dando como resultado un conjunto de datos que se devuelven al cliente.
En esta fase pueden surgir los siguientes problemas:
Cómo repartir la lógica de la aplicación entre las plataformas cliente y servidor de la forma más conveniente.
Cómo gestionar la arquitectura para que permita que cualquier cliente se conecte con cualquier servidor.
Fase de Proliferación
La segunda etapa de una arquitectura cliente/servidor se caracteriza por la proliferación de plataformas clientes y servidoras. Ahora, el entorno para la interacción entre clientes y servidores se hace mucho más complejo. Puede hacerse una distinción entre:
Datos de servidores a los que se accede a través de una red de área extensa (WAN) y
Datos a los que se accede a través de una red de área local (RAL).
Los mecanismos de conexión son muy variados y suelen ser incompatibles.
En esta fase los problemas que se pueden plantear son:
La gestión de accesos se convierte en crítica y compleja debido a la estructura del organismo donde se está implantando la arquitectura. El mercado ofrece algunas soluciones que mejoran la interoperabilidad y que se basan en conexiones modulares que utilizan entre otros:
Drivers en la parte cliente
Pasarelas (gateways) a bases de datos
Especificaciones de protocolos cliente/servidor, etc.
Los requisitos de actualización de datos pasan a formar parte de los requisitos solicitados al sistema cliente/servidor. Ahora no sólo se consultan datos, sino que se envían peticiones para actualizar, insertar y borrar datos.
Fase de Control
En esta fase se consolidan los caminos de acceso desde una plataforma cliente particular a una plataforma servidora particular.
Los conceptos en los que se debe poner especial énfasis son los siguientes:
Transparencia en la localización. Significa que la aplicación cliente no necesita saber nada acerca de la localización (física o lógica) de los datos o los procesos. La localización de los recursos debe estar gestionada por servidores y estar representada en las plataformas adecuadas de forma que se facilite su uso por parte de las plataformas cliente.
Gestión de copias. El sistema se debe configurar de forma que se permita copiar la información (datos o procesos) de los servidores.
Especialización de los equipos servidores en servidores de bases de datos o en servidores de aplicaciones. Los servidores de bases de datos continúan ofreciendo servicios orientados a datos a través de llamadas SQL o a través de procedimientos almacenados. En cualquier caso, los servicios se orientan a mantener la integridad de los datos. Por otro lado, los servidores de aplicaciones se centran en los procesos implementando partes de la lógica de la aplicación en la parte servidora.
Fase de Integración
Esta etapa se caracteriza por el papel conjunto que juegan la gestión de accesos, la gestión de copias y la gestión de recursos. La gestión de la información se debe realizar de forma que se pueda entregar la información controlada por los servidores que contienen los datos a las plataformas clientes que los requieran. El concepto en que se basa este tipo de gestión es la distinción entre dos tipos de datos: datos de operación y datos de información. Para ajustarse a los posibles cambios en los procesos, los datos de operación varían continuamente mientras que los datos de información son invariables porque son de naturaleza histórica y se obtienen tomando muestras en el tiempo de los datos de operación.
Fase de Madurez
Esta es la etapa final de una arquitectura cliente/servidor. Se caracteriza por una visión más flexible de las plataformas físicas del sistema que se contemplan como una única unidad lógica. Este estado también se caracteriza porque la tecnología cliente/servidor se ha generalizado en la empresa. Ya no es un problema saber qué componentes se distribuyen en qué plataformas, porque los recursos se pueden redistribuir para equilibrar la carga de trabajo y para compartir los recursos de información. Lo fundamental aquí es saber quién ofrece qué servicios. Para ello es necesario distinguir qué tipo de servicios y recursos se demandan y conocer las características de esta arquitectura basada en servicios.
En la fase de integración veíamos que se establecía una distinción entre datos de operación y datos de información histórica. Por contra, en un entorno de operación cliente/servidor que se encuentre en la fase de madurez, lo interesante es distinguir entre dos nuevos términos: organismo y grupo de trabajo. Esta distinción se establece basándose en sus diferencias organizativas. El grupo de trabajo es el entorno en el que grupos organizados de personas se centran en tareas específicas de la actividad del organismo al que pertenecen. Estos equipos de personas requieren una información propia y unas reglas de trabajo particulares, que pueden ser diferentes de las del organismo en su globalidad.
Una arquitectura basada en servicios es la que se contempla como una colección de consumidores de servicios poco relacionados entre sí y los productores de dichos servicios. La utilización de este tipo de arquitectura permite pensar en nuevos retos de diseño:
Desarrollo de componentes reutilizables entre distintas aplicaciones y distintos grupos de trabajo
Desarrollo de aplicaciones distribuidas
Gestión del desarrollo de aplicaciones entre distintos equipos, etc.
3.6.- Criterios de utilización
El mercado de los sistemas cliente/servidor está marcando nuevos caminos porque:
La información puede ahora residir en redes de ordenadores personales.
Los usuarios pueden tener un mayor acceso a los datos y a la capacidad de proceso.
El marketing también juega un papel importante. Muchos sistemas que se denominan cliente/servidor en realidad distan bastante de serlo y muchas aplicaciones aseguran ser tan fiables como sus homólogas en el host.
En realidad, el cambio hacia tecnologías cliente/servidor está aún en sus comienzos, pero de ninguna manera debe ignorarse.
La forma de asegurar la futura utilización productiva de sistemas cliente/servidor, asumiendo un bajo riesgo, debe considerar:
Comenzar por el downsizing: utilizar redes de área local y familiarizar a los usuarios con el uso de ordenadores personales.
Estudiar las herramientas cliente/servidor que se encuentren disponibles y aquellas que se encuentren en fase de desarrollo; la mayoría están basadas en algún sistema de gestión de base de datos en red local.
Permitir el acceso de los usuarios a los datos de la organización conectando las redes locales entre sí.
Añadir interfaces de usuario amigables al equipo lógico del ordenador central y desarrollar prototipos.
Una organización tiene que decidir cuándo y cómo debe migrar en su caso, hacia un entorno cliente/servidor, teniendo en cuenta la evolución de las herramientas cliente/servidor y desarrollando una estrategia que se base en los estándares predominantes en el mercado.
Sistemas paralelos
La mayor parte de los sistemas hasta ahora han sido sistemas monoprocesador; es decir han tenido una sola CPU. Sin embargo, la tendencia actual es hacia los sistemas multiprocesador. Tales sistemas tienen más de un procesador en comunicación íntima, los cuales comparten el bus del computador, el reloj y a veces la memoria y los dispositivos periféricos. Decimos que estos sistemas están fuertemente acoplados.
Hay varias razones para construir este tipo de sistemas. Una ventaja es el aumento en el rendimiento. Al incrementar el número de procesadores, esperamos realizar más trabajo en un tiempo más corto. Sin embargo, la proporción de aumento de la velocidad con n procesadores no es n, sino más bien menor que n. Cuando varios procesadores cooperan para llevar a cabo una tarea, se incurre en cierto "gasto extra" para mantener todos los componentes funcionando correctamente. Este gasto extra, aunado a la contención por 105 recursos compartidos, reduce la ganancia que cabría esperar de los procesadores adicionales. De forma análoga, un grupo de n programadores que trabajan en íntima colaboración no produce n veces la cantidad de trabajo que realiza uno solo.
Los multiprocesadores también pueden ahorrar dinero en comparación con varios sistemas monoprocesador porque los procesadores pueden compartir periféricos, gabinetes y fuentes de potencia. Si varios programas deben operar con el mismo conjunto de datos, es más económico guardar esos datos en un disco y hacer que todos los procesadores los compartan, en vez de tener muchos computadores con discos locales y hacer copias de los datos.
Otra razón para tener sistemas multiprocesador es que mejoran la confiabilidad. Si es posible distribuir las funciones correctamente entre varios procesadores, el fa-lío de un procesador no detendrá el sistema, sólo lo hará más lento. Si tenemos 10 procesadores y uno falla, cada uno de los nueve procesadores restantes deberá asumir una porción del trabajo del que falló. Asi el sistema operará al 90% de su velocidad normal, en lugar de pararse. Esta capacidad para seguir dando un servicio proporcional al nivel de hardware que sobrevive se denomina degradación gradual. Los sistemas diseñados para degradarse gradualmente también se conocen como tolerantes a fallos £ault-tolerant).
El funcionamiento continuado en presencia de ellos requiere un mecanismo para detectar, diagnosticar y corregir (si es posible) el fallo. FI sistema Tandem utiliza duplicación tanto de hardware como de software para asegurar una operación continuada a pesar de los fallos. El sistema consiste en dos procesadores idénticos, cada uno con su propia memoria local. Los procesadores se conectan con un bus. Un procesador es el primario, y el otro es el de ?espaldo. Se mantienen dos copias de cada proceso; una en la máquina primaria y otra en el respaldo. En puntos de verificación (checkpoints) fijos durante la ejecución del sistema, la información de estado de cada trabajo (incluida una copia de la imagen de memoria> se copia de la máquina primaria a la de respaldo. Si se detecta un fallo, se activa la copia de respaldo, y se reinicia a partir del punto de verificación más reciente. Esta solución obviamente es costosa, ya que hay mucha duplicación de hardware.
Los sistemas de múltiple procesador más comunes en la actualidad siguen el modelo de multiprocesamiento simétrico, en el que cada procesador ejecuta una copia idéntica del sistema operativo, y estas copias se comunican entre si cuando es necesario. Algunos sistemas utilizan multiprocesamiento asimétrico, en el que a cada procesador se asigna una tarea específica. Un procesador maestro controla el sistema; los demás procesadores obtienen sus instrucciones del maestro o bien tienen tareas predefinidas. Este esquema define una relación maestro-esclavo. El procesador maestro planifica y asigna trabajo a los procesadores esclavos.
Un ejemplo de sistema con multiprocesamiento simétrico es la versión Encore de UNIX para el computador Multimax. Este computador puede configurarse de modo que utilice docenas de procesadores, todos los cuales ejecutan una copia de UNIX. La ventaja de este modelo es que muchos procesos pueden ejecutarse simultáneamente (N procesos si hay N CPU) sin que haya deterioro del desempeño. Sin embargo, es preciso controlar cuidadosamente la E! 5 para asegurar que los datos lleguen al procesador apropiado. Además, dado que las CPU son independientes, una podría estar ociosa mientras otra está sobrecargada, con la consiguiente ineficiencia. A fin de evitar esto, los procesadores pueden compartir ciertas estructuras de datos. Un sistema multiprocesador de este tipo permite compartir dinámicamente trabajos y recursos entre los distintos procesadores, y puede reducir la varianza entre los sistemas. Por otro lado, tales sistemas deben escribirse con mucho cuida-do, como veremos en el capítulo 6.
El multiprocesamiento asimétrico es más común en los sistemas extremadamente grandes, donde una de las actividades que más tiempo consume es el procesamiento de El 5. En los sistemas por lotes más antiguos, se utilizaban procesadores pequeños, situados a cierta distancia de la CPU principal7 para operar los lectores de tarjetas e impresoras de líneas y transferir estos trabajos a y de el computador principal. Estos puntos se denominan sitios de entrada remota de trabajos (RJE, remote-Job-entry). En un sistema de tiempo compartido, una de las principales actividades de El 5 es procesar la El 5 de caracteres entre las terminales y el computador Si es preciso interrumpir la CPU principal cada vez que se transfiere un carácter a o de una terminal, la CPU Podría pasar todo su tiempo procesando caracteres. Para evitar esta situación, la mayor parte de los sistemas cuenta con un procesador de extremo frontal front-end) aparte que se encarga de toda la El 5 de terminales. Por ejemplo, un sistema IBM grande Podría usar un minicomputador IBM Series! 1 como front-end. El front-end actua como buffer entre las terminales y la CPU principal, y permite a esta última manejar líneas y Moques de caracteres, en lugar de caracteres individuales. La confiabilidad de tales sistemas se reduce a causa de su mayor especialización.
Es importante darse cuenta de que la diferencia entre multiprocesamiento simétrico y asimétrico puede deberse al hardware o al software. Podría existir hardware especial para diferenciar los múltiples procesadores, o podría escribirse software que permita un solo maestro y varios esclavos. Por ejemplo, el sistema operativo de Sun, SunOS versión 4, ofrece multiprocesamiento asimétrico, mientras que la versión 5 (Solaris 2) es simétrica.
A medida que baja el precio y aumenta la potencia de los microprocesadores, más y más funciones del sistema operativo se delegan a procesadores esclavos, también llamados back-ends o procesadores de servicio. Por ejemplo, es fácil añadir un procesador con su propia memoria para administrar un sistema de disco. El microprocesador Podría recibir una secuencia de solicitudes de la CPU principal e implementar su propia cola de disco y algoritmo de planificación. Esta organización evita a la CPU principal el trabajo extra que implica la planificación de disco. Los PC contienen un microprocesador en el teclado que convierte las digitaciones en códigos que se envían a la CPU. De hecho, este uso de los microprocesadores se ha vuelto tan común que ya no se considera como multiprocesamiento.
Sistemas distribuidos
Concepto, características y factores que han afectado un Sistema Distribuido.
Ventajas y Desventajas de Sistemas Distribuidos.
Categorías de los Sistemas Distribuidos.
Sistema Operativo Distribuido y sus características.
Complejidad y aspectos que intervienen en el diseño de un Sistema Operativo Distribuido.
Modelo de Construcción.
Concepto de Sistemas Distribuidos.Es un concepto poco claro de definir. Colección de elementos de cómputo autónomo que se encuentran físicamente separados y no comparten una memoria común, se comunican entre sí a través del intercambio de mensajes utilizando un medio de comunicación.
Los sistemas autónomos pueden tener características no homogéneas.
Características de los Sistemas Distribuidos.
Cada elemento de computo tiene su propia memoria y su propio Sistema Operativo.
Control de recursos locales y remotos.
Sistemas Abiertos (Facilidades de cambio y crecimiento).
Plataforma no standard ( Unix, NT, Intel, RISC, Etc.).
Medios de comunicación ( Redes, Protocolos, Dispositivos, Etc.).
Capacidad de Procesamiento en paralelo.
Dispersión y parcialidad.
Factores que han afectado el desarrollo de los Sistemas Distribuidos.
Avances Tecnológicos.
Nuevos requerimientos.
Globalización
Aspectos Externos ( Culturales, Políticos, Económicos ).
Integración.
Ventajas y Desventajas de los Sistemas Distribuidos
Ventajas:
Procesadores más poderosos y a menos costos
Desarrollo de Estaciones con más capacidades
Las estaciones satisfacen las necesidades de los usuarios.
Uso de nuevas interfaces.
Avances en la Tecnología de Comunicaciones.
Disponibilidad de elementos de Comunicación.
Desarrollo de nuevas técnicas.
Compartición de Recursos.
Dispositivos (Hardware).
Programas (Software).
Eficiencia y Flexibilidad.
Respuesta Rápida.
Ejecución Concurrente de procesos (En varias computadoras).
Empleo de técnicas de procesamiento distribuido.
Disponibilidad y Confiabilidad.
Sistema poco propenso a fallas (Si un componente no afecta a la disponibilidad del sistema).
Mayores servicios que elevan la funcionalidad ( Monitoreo, Telecontrol, Correo Eléctrico, Etc.).
Crecimiento Modular.
Es inherente al crecimiento.
Inclusión rápida de nuevos recursos.
Los recursos actuales no afectan.
Desventajas:
Requerimientos de mayores controles de procesamiento.
Velocidad de propagación de información ( Muy lenta a veces).
Servicios de replicación de datos y servicios con posibilidades de fallas.
Mayores controles de acceso y proceso ( Commit ).
Administración más compleja.
Categorías de los sistemas Distribuidos.
Modelo de Minicomputadoras.
Varias computadoras que soportan diferentes usuarios cada una y provee acceso a recursos remotos.
Por lo menos un usuario por cada computadora ( CPU < Usuarios ).
Modelo de Estación de Trabajo.
Varias estaciones (Por lo general cientos), donde cada usuario cuenta con una estación de trabajo (ET) y realiza en ella todo su trabajo. Requiere de un Sistema Operativo que soporte funciones de acceso y control remoto.
Un microprocesador por cada usuario ( CPU = Usuarios).
Las estaciones de trabajo cuentan con Interfaces Gráficas, CPU potentes y Memorias propias.
Modelo microprocesadores en Pooling.
Trata de utilizar uno o más microprocesadores dependiendo de las necesidades de los usuarios.
Primero los procesadores completan su tarea y posteriormente regresan a esperar una nueva asignación.
El número de microprocesadores normalmente es mayor a uno por usuario ( CPU > Usuarios ).
Sistema Operativo Distribuido
Extiende el concepto de administración de recursos e interfaces con el usuario hacia computadoras de memoria compartida para formar un sistema Operativo Distribuido, el cual consiste en varias computadoras autónomas conectadas por una red de comunicaciones.
Características:
Para cada uno de los usuarios debe de ser similar al trabajo en el Sistema Centralizado.
Se ejecuta en múltiples Computadoras.
Tiene varias copias del mismo Sistema Operativo o de diferentes Sistemas Operativos que proveen los mismos servicios.
Transparencia (El uso de múltiples procesadores y el acceso remoto debe de ser invisible)
Modelo de Construcción.
Cliente/Servidor
Arquitectura Cliente/Servidor:
Una arquitectura es un conjunto de reglas, definiciones, términos y modelos que se emplean para producir un producto.
La arquitectura Cliente/Servidor agrupa conjuntos de elementos que efectúan procesos distribuidos y computo cooperativo.
Beneficios:
Mejor aprovechamiento de la potencia de cómputo (Reparte el trabajo).
Reduce el tráfico en la Red. (Viajan requerimientos).
Opera bajo sistemas abiertos.
Permite el uso de interfaces gráficas variadas y versátiles.
Segmentación de Aplicaciones:
¿Qué es el Cliente?
Conjunto de Software y Hardware que invoca los servicios de uno o varios servidores.
Características:
El Cliente oculta al Servidor y la Red.
Detecta e intercepta peticiones de otras aplicaciones y puede redireccionarlas.
Dedicado a la cesión del usuario ( Inicia…Termina ).
El método más común por el que se solicitan los servicios es a través de RPC (Remote Procedure Calls).
Funciones Comunes del Cliente:
Mantener y procesar todo el dialogo con el usuario.
Manejo de pantallas.
Menús e interpretación de comandos.
Entrada de datos y validación.
Procesamiento de ayudas.
Recuperación de errores.
¿Qué es el Servidor?
Conjunto de Hardware y Software que responde a los requerimientos de un cliente.
Tipos Comunes de Servidores:
Servidor de Bases de Datos (SQL, CBASE, ORACLE, INFORMIX).
Servidor de Comunicaciones
Servidor de Impresión.
Servidor de Terminal.
Servidor de Aplicaciones (Windows NT, Novell).
Funciones Comunes del Servidor:
Acceso, almacenamiento y organización de datos.
Actualización de datos almacenados.
Administración de recursos compartidos.
Ejecución de toda la lógica para procesar una transacción.
Procesamiento común de elementos del servidor (Datos, capacidad de CPU, almacenamiento en disco, capacidad de impresión, manejo de memoria y comunicación).
Red de comunicación.
Es todo aquel conjunto de elementos basados en hardware y software que permite establecer un enlace entre los clientes y los servidores, se clasifican por su tamaño LAN, MAN y WAN.
Características de la comunicación:
A través de este medio, el cliente debe localizar e iniciar la comunicación con el servidor.
No se utiliza la metodología de compartición de archivos, ya que todos los accesos a la información se llevan a cabo a través de peticiones por medio de comunicación.
Debido a que los programas de manejo y control de información ( Archivos y bases de datos solo se envían y reciben los resultados de las operaciones (Tráfico igual a Datos leídos o escritos).
Debido a la flexibilidad de establecer sesiones con múltiples servidores y manejo de información en varias bases de datos (en sitios remotos es requerido el uso de estilos transaccionales y cooperativos).
Estilo de Bases de Datos con arquitectura Cliente/Servidor.
Modelos o Técnicas de Procesamiento y Protocolos comúnmente utilizados.
Llamadas a procedimientos remotos (RPC).
Interacciones SQL Cliente/Servidor.
Memoria compartida.
Paso de Mensajes.
SPX/IPX
NETBEUI (NETBIOS)
NAME PIPES
TCP/IP
UDP
SOCKETS
Distribución entre Cliente y Servidor.
Dentro de los procesos que son manejados en una arquitectura Cliente/Servidor, se tiene 3 elementos básicos que deben de distribuirse entre el cliente y el servidor, estos elementos son:
El manejo de Datos.
La aplicación.
La presentación.
Autor:
Zósimo
Página anterior | Volver al principio del trabajo | Página siguiente |