ARQUITECTURA CLIENTE/SERVIDOR (W2K3 SERVER) Fuentes: http://somebooks.es/?p=3356 Animación Instalación W2k3: http://www.adminso.es/index.php/Animacion_W2k3_instalacion Primero unas nociones sobre la arquitectura cliente/servidor
1.1. Arquitectura cliente/servidor La arquitectura cliente/servidor persigue el objetivo de procesar la información de un modo distribuido. De esta forma, los usuarios finales pueden estar dispersos en un área geográfica más o menos extensa (un edificio, una localidad, un país, …) y acceder a un conjunto común de recursos compartidos. Además, el acceso debe ser transparente (el cliente puede desconocer la ubicación física del recurso que pretende utilizar) y, preferiblemente, multiplataforma, es decir, independiente del sistema operativo, del software de aplicación e incluso del hardware. En definitiva, cuando hablamos de la implantación de una arquitectura cliente/servidor, nos referimos a un sistema de información distribuido.
Además de la transparencia y la independencia del hardware y del software, una implantación cliente/servidor debe tener las siguientes características: • Debe utilizar protocolos asimétricos, donde el servidor se limita a escuchar, en espera de que un cliente inicie una solicitud. • El servidor ofrecerá recursos, tanto lógicos como físicos a una cantidad variable y diversa de clientes (por ejemplo, espacio de almacenamiento, bases de datos, impresoras, etc.) • El servidor ofrecerá también una serie de servicios, que serán usados por los clientes. Estos servicios estarán encapsulados, para ocultar a los clientes los detalles de su implementación (por ejemplo, aceptar el requerimiento de un cliente sobre una base de datos o formatear los datos obtenidos antes de transmitirlos al cliente). • Se facilitará la integridad y el mantenimiento tanto de los datos como de los programas debido a que se encuentran centralizados en el servidor o servidores. • Los sistemas estarán débilmente acoplados, ya que interactúan mediante el envío de mensajes. • Se facilitará la escalabilidad, de manera que sea fácil añadir nuevos clientes a la infraestructura (escalabilidad horizontal) o aumentar la potencia del servidor o servidores, aumentando su número o su capacidad de cálculo (escalabilidad vertical) Elementos de la arquitectura cliente/servidor. De lo dicho hasta ahora, podemos deducir que los principales elementos que conforman la arquitectura cliente/servidor son los siguientes: El servidor Cuando hablamos de una forma genérica, si mencionamos a un servidor, nos referimos a un ordenador, normalmente con prestaciones elevadas, que ejecuta servicios para atender las demandas de diferentes clientes. Sin embargo, bajo el punto de vista de la arquitectura cliente/servidor, un servidor es un proceso que ofrece el recurso (o recursos) que administra a los clientes que lo solicitan (consultar la definición de cliente más abajo). Es muy frecuente que, para referirse a un proceso servidor, se utilice el término back-end.
Según el tipo de servidor implantado, tendremos un tipo de arquitectura cliente/servidor diferente. Por último, mencionar que en algunas ocasiones, un servidor puede actuar, a su vez, como cliente de otro servidor. El cliente Igual que antes, al hablar de forma genérica sobre un cliente, nos referimos a un ordenador, normalmente con prestaciones ajustadas, que requiere los servicios de un equipo servidor. Sin embargo, bajo el punto de vista de la arquitectura cliente/servidor, un cliente es un proceso que solicita los servicios de otro, normalmente a petición de un usuario. En entornos cliente/servidor, suele utilizarse el término front-end para referirse a un proceso cliente. Normalmente, un proceso cliente se encarga de interactuar con el usuario, por lo que estará construido con alguna herramienta que permita implementar interfaces gráficas (GUI). Además, se encargará de formular las solicitudes al servidor y recibir su respuesta, uesta, por lo que deberá encargarse de una parte de la lógica de la aplicación y de realizar algunas validaciones de forma local. El funcionamiento básico Aunque es probable que a estas alturas ya te hagas una idea sobre el funcionamiento general del modelo cliente/servidor, vamos a concretarlo a continuación: 1. Lo primero que debe ocurrir es que se inicie el servidor. Esto ocurrirá durante el arranque del sistema operativo o con la intervención posterior del administrador del sistema. Cuando termine de iniciarse, esperará de forma pasiva las solicitudes de los clientes. 2. En algún momento, uno de los clientes conectados al sistema realizará una solicitud al servidor. 3. El servidor recibe la solicitud del cliente, realiza cualquier verificación necesaria y, si si todo es correcto, la procesa. 4. Cuando el servidor disponga del resultado solicitado, lo envía al cliente. 5. Finalmente, el cliente recibe el resultado que solicitó. A continuación realiza las comprobaciones oportunas (si son necesarias) y, si era ese el objetivo final, se lo muestra al usuario.
Si descomponemos este modo de funcionamiento en elementos estructurales, será más fácil comprender los conceptos implicados. De esta forma, podemos obtener una definición de la arquitectura por niveles, estructurada estructu como sigue: • Un nivel de presentación, que aglutina los elementos relativos al cliente. • Un nivel de aplicación, compuesto por elementos relacionados con el servidor. • Un nivel de comunicación, que está formado por los elementos que hacen posible la comunicación comu entre el cliente y el servidor. • Un nivel de base de datos, formado por los elementos relacionados con el acceso a los datos.
1.3. Tipos de arquitecturas cliente/servidor Clasificación según el tipo de servicio que se ofrece Obviamente, son muchos los servicios que se pueden ofrecer en una arquitectura cliente/servidor y sería muy extenso realizar una clasificación detallada de los tipos de servidor atendiendo a todos los servicios que pueden ofrecer. Por ese motivo, aquí aqu nos limitaremos a incluir sólo los más importantes: • Servidores de archivos:: Se suelen utilizar para crear almacenes de documentos en un lugar centralizado de la red (Copias de seguridad, imágenes, plantillas de documentos, etc.) • En una transacción,, una serie de operaciones que están están relacionadas entre sí se efectúan como un todo (por ejemplo, la actualización de los datos de diferentes tablas en la base de datos). Si una parte de la operación fracasa, fracasa la transacción completa. Esto asegura la integridad de los datos almacenados. almacenad Servidores de bases de datos:: Normalmente están asociados a la utilización de aplicaciones cliente/servidor donde un proceso cliente requiera datos al servidor de bases de datos. Lógicamente, el acceso a los datos será compartido por diferentes clientes de forma simultánea (aplicándose los mecanismos de protección necesarios sobre los datos ante la concurrencia de diferentes clientes y la existencia de distintos niveles de privilegio).
Este tipo de estructuras suelen basarse en el concepto de transacción. • Servidores de impresión (Print Server): Facilitan la compartición de impresoras y administra los trabajos de impresión en la red. De esta forma se permite a los clientes que utilicen una impresora sin importar su ubicación física. Un servidor de impresión utiliza una cola para almacenar, de forma ordenada, los trabajos que recibe. Esta cola puede ser administrada con diferentes privilegios en función del cliente que realice la solicitud. Es común que un servidor de impresión englobe también a un servidor de fax, ya que se gestionan de forma similar. • Servidores de transacciones: Aplican el concepto de transacción mencionado en las bases de datos a la llamada de funciones o métodos almacenados en el servidor, de modo que el intercambio a través de la red se limita a un solo mensaje de solicitud o respuesta. De esta forma, se agrupan una o más acciones en una unidad lógica que se ejecuta como un todo, garantizándose la integridad del proceso. Estas aplicaciones pretenden dar soporte a procedimientos y reglas en sistemas de misión crítica y se denominan OLTP (Online transaction processing, Procesamiento de transacciones en línea). Por ejemplo, un cajero automático es un buen ejemplo de aplicación de procesamiento de transacciones. • Servidores de objetos: Dan soporte al procesamiento distribuido. Una determinada aplicación puede estar construida por diferentes objetos que pueden estar hospedados en diferentes puntos de la red. De esta forma, un objeto puede hacer uso de los métodos de otros objetos sin importar dónde estén almacenados. La comunicación entre objetos se realiza mediante un componente llamado Object Request Broker (ORB), que sirve de intermediario entre las solicitudes y los resultados obtenidos. • Servidores web: Su función consiste en devolver un determinado documento cuando un cliente lo solicita. La comunicación utiliza el protocolo HTTP (que está basado en RPC).
1.4. Ventajas e inconvenientes de la arquitectura cliente/servidor Aunque, por lo visto hasta ahora, puede parecer que en el modelo cliente servidor todo son ventajas, en realidad también encontramos algunos inconvenientes. A continuación haremos un breve repaso de ambos. Ventajas de la arquitectura cliente/servidor Como ya habrás deducido, el modelo cliente/servidor está especialmente indicado en redes medias o grandes que necesiten un alto nivel de fiabilidad. Las principales ventajas que ofrece son: • Administración centrada en el servidor. Los clientes tienen poca trascendencia en el esquema y sus necesidades de administración son menores. • Centralización de los recursos. Los recursos comunes a todos los usuarios se administran en el servidor. Así se evitan situaciones como la redundancia o inconsistencia de información en las bases de datos. • Mejora de la seguridad. Al disponer de un mecanismo central de autenticación, las posibilidades de acceso indebido se reducen considerablemente. • Escalabilidad de la instalación. Se pueden añadir o suprimir clientes sin que el funcionamiento de la red se vea afectado. Inconvenientes de la arquitectura cliente/servidor Aunque, después de lo dicho hasta ahora parezca difícil de creer, una infraestructura cliente/servidor también tiene sus inconvenientes: • Coste elevado. Tanto la instalación como el mantenimiento son más elevados debido al perfil muy técnico del lado servidor. • Dependencia del servidor. Toda la red está construida alrededor del servidor y si éste deja de funcionar o lo hace con un rendimiento inadecuado, afectará a toda la infraestructura. Afortunadamente, este último inconveniente está superado, al menos en parte, gracias a sistemas como los servidores redundantes, la tolerancia a fallos y los sistemas de almacenamiento en modo RAID.
1.5. Grupos de trabajo como alternativa al modelo cliente/servidor Un grupo de trabajo es la forma más simple de compartir recursos entre diferentes ordenadores de una red de dimensiones reducidas. En él, todos los equipos se encuentran al mismo nivel de importancia y ninguno de ellos tiene control sobre los otros. En este tipo de estructuras cada ordenador dispone de sus propias cuentas de usuario, administradas de forma local. Un grupo de trabajo puede ser la solución más acertada cuando hablamos de redes de pocos ordenadores, que se encuentra en la misma red, donde cada uno de ellos ofrece recursos en función de sus propias características y donde la seguridad no es relevante. Sin embargo, los grupos de trabajo tienen importantes limitaciones: • La seguridad no se encuentra centralizada. • Es complicado realizar cambios en la configuración (hay que aplicarlos en cada ordenador implicado). • Las cuentas de usuario son locales y sólo podemos utilizarlas en el ordenador donde se han creado. • El administrador local de un equipo puede hacer cambios en la configuración que afecten al resto de los usuarios. Normalmente, en una red configurada como grupo de trabajo no participan más de veinte ordenadores. Debido a todo esto, los grupos de trabajo deben ser una alternativa que debemos valorar en determinadas situaciones, pero la mayoría de las veces deberemos inclinarnos por un modelo cliente/servidor.
1.6. Sistemas operativos más frecuentes en una infraestructura cliente/servidor Como ya sabemos, en el modelo cliente/servidor existen dos roles diferentes: el del lado servidor y el del lado cliente. Por este motivo, en el momento de realizar una clasificación de los sistemas operativos más frecuentes, estamos obligados a diferenciar el rol que ocuparán dentro de la infraestructura. En el lado servidor, los sistemas más habituales son: • Microsoft Windows Server (principalmente las versiones 2003 y 2008) • GNU/Linux Server (son frecuentes las distribuciones (RedHat, Ubuntu Server, CentOS, SuSE Linux Enterprise Server, …) • UNIX (IBM AIX, HP-UX) • Solaris/OpenSolaris • Apple OS X Server
Antes de relacionar los sistemas operativos que se despliegan en la parte cliente, debemos decir de que todos los sistemas anteriores pueden actuar, si fuese necesario, como clientes en una infraestructura cliente/servidor, aunque no estén específicamente diseñados para ello. Incluso pueden actuar como servidores para un grupo de clientes y, para llevar lle a cabo su cometido, actuar al mismo tiempo como clientes de otro, u otros servidores. No obstante, los sistemas que solemos llamar “de escritorio” son los que están diseñados para constituir la parte cliente en este tipo de entornos. Los más frecuentes son estos: • Microsoft Windows (XP, Vista, 7, 8, …) • GNU/Linux Desktop (Ubuntu Desktop, Fedora, Debian, SuSE Linux) • Apple OS X
INSTALACIร N WINDOWS SERVER 2003 ENTERPRISE Vamos a ver mediante capturas de pantalla como instalamos una mรกquina W Server 2003 Enterprise en VMware Primero insertamos nuestra imagen ISO, ponemos el product key del Server 2003 y la mรกquina con 1GB de RAM y 40GB de HDD, HDD y 4 cores.