Vous êtes sur la page 1sur 18

Facultad de Ingeniería de Sistemas y

Electrónica
Carrera Profesional de Ingeniería de Sistemas e
Informática

“Arquitectura Cliente/Servidor

Alumnos:

Benites Sandoval, Franklin David

Calle Calderón, Christian

Chiclayo – Perú

2017
Contenido
I. INTRODUCCION ................................................................................................................ 3
II. MARCO TEORICO .............................................................................................................. 4
1. EVOLUCIÓN DE LA ARQUITECTURA CLIENTE SERVIDOR .................................................. 4
1.1. La era de la computadora central ......................................................................... 4
1.2. La era de las computadoras dedicadas ................................................................. 4
1.3. La era de la conexión libre..................................................................................... 4
1.4. La era del cómputo a través de redes ................................................................... 4
1.5. La era de la arquitectura cliente servidor ............................................................. 5
2. ARQUITECTURA CLIENTE/SERVIDOR ................................................................................ 5
2.1 CARACTERISTICAS ....................................................................................................... 6
2.2 ELEMENTOS DE LA ARQUITECTURA C/S ..................................................................... 7
3. TIPOS DE ARQUITECTURA CLIENTE/SERVIDOR .............................................................. 11
3.1 CONCEPTOS BASICOS Y NOTACION .......................................................................... 11
3.2 ARQUITECTURA C/S COMPLETAMENTE CENTRALIZADA ......................................... 12
3.3 ARQUITECTURA DE 2 CAPAS .................................................................................... 13
3.4 ARQUITECTURA DE 3 CAPAS .................................................................................... 14
4. VENTAJAS Y DESVENTAJAS ............................................................................................. 15
4.1 VENTAJAS ................................................................................................................. 15
4.2 DESVENTAJAS ........................................................................................................... 16
III. CONCLUSIONES .............................................................................................................. 17
IV. BIBLIOGRAFIA ................................................................................................................. 18
I. INTRODUCCION

Los últimos 20 años han sido testigos de avances masivos en las áreas de
computación, el hardware se ha ido abaratando cada vez más y a su vez se ha ido
haciendo más potente a tal punto que las computadoras de escritorio de hoy, tienen
la potencia que tenían mainframes de años anteriores. Además del hardware la
segunda área de avances masivos es la de las comunicaciones, avances tales como
los sistemas de comunicación vía satélite y sistemas de telefonía digital entre otros
que hacen posible conectar económicamente y eficientemente con otros sistemas
informáticos separados físicamente, esto ha llevado al concepto de modelo
cliente/servidor donde el funcionamiento consiste en un número de computadoras
que están conectadas y que llevan a cabo diferentes funciones.

El término Cliente/Servidor fue usado por primera vez en 1980 para referirse a
PC’s en red, desde ese entonces hasta nuestros días la definición se ha extendido.
El modelo cliente/servidor una forma de equilibrar el proceso de una red hasta que
se comparta la potencia de procesamiento entre computadoras que llevan a cabo
servicios, y aquellos que llevan a cabo tareas tales como la visualización Interfaces
Gráficas de Usuario que es más adecuado para el punto final dentro de la red. Por
ejemplo, permite que las computadoras se ajusten a tareas especializadas tales
como el procesamiento de bases de datos en donde se utilizan hardware y software
de propósito especial para proporcionar un procesamiento rápido de la base de
datos comparado con el hardware que se encuentra en las mainframes que tienen
que enfrentarse con una gran gama de aplicaciones.
II. MARCO TEORICO

1. EVOLUCIÓN DE LA ARQUITECTURA CLIENTE SERVIDOR


Para (Coulouris, 2001) la evolución de esta arquitectura se divide en 4 eras:

1.1. La era de la computadora central


Desde sus inicios el modelo de administración de datos a través de computadoras
se basaba en el uso de terminales remotas, que se conectaban de manera directa a
una computadora central. Dicha computadora central se encargaba de prestar
servicios caracterizados por que cada servicio se prestaba solo a un grupo
exclusivo de usuarios.

1.2. La era de las computadoras dedicadas


Esta es la era en la que cada servicio empleaba su propia computadora que
permitía que los usuarios de ese servicio se conectaran directamente. Esto es
consecuencia de la aparición de computadoras pequeñas, de fácil uso, más baratas
y más poderosas de las convencionales.

1.3. La era de la conexión libre


Hace más de 10 años que la computadora escritorio aparecieron de manera
masiva. Esto permitió que parte apreciable de la carga de trabajo de cómputo tanto
en el ámbito de cálculo como en el ámbito de la presentación se lleven a cabo
desde el escritorio del usuario. En muchos de los casos el usuario obtiene la
información que necesita de alguna computadora de servicio. Estas computadoras
de escritorio se conectan a las computadoras de servicio empleando software que
permite la emulación de algún tipo de terminal. En otros de los casos se les
transfiere la información haciendo uso de recursos magnéticos o por trascripción.

1.4. La era del cómputo a través de redes


Esta es la era que está basada en el concepto de redes de computadoras, en la que
la información reside en una o varias computadoras, los usuarios de esta
información hacen uso de computadoras para laborar y todas ellas se encuentran
conectadas entre sí. Esto brinda la posibilidad de que todos los usuarios puedan
acceder a la información de todas las computadoras y a la vez que los diversos
sistemas intercambien información.
1.5. La era de la arquitectura cliente servidor
En esta arquitectura la computadora de cada uno de los usuarios, llamada cliente,
produce una demanda de información a cualquiera de las computadoras que
proporcionan información, conocidas como “servidores “estos últimos responden
a la demanda del cliente que la produjo. Los clientes y los servidores pueden estar
conectados a una red local o una red amplia, como la que se puede implementar
en una empresa o a una red mundial como lo es la Internet. Bajo este modelo cada
usuario tiene la libertad de obtener la información que requiera en un momento
dado proveniente de una o varias fuentes locales o distantes y de procesarla como
según le convenga. Los distintos servidores también pueden intercambiar
información dentro de esta arquitectura.

2. ARQUITECTURA CLIENTE/SERVIDOR

figura 1. Ejemplo Arquitectura Cliente/ Servidor: Fuente: http://ocw.pucv.cl/cursos-


1/arquitectura-de-sistemas-de-software/materiales-de-clases/web-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”. (P.Ruiz, 2013)

2.1 CARACTERISTICAS
“Además de la transparencia y la independencia del hardware y del software, una
implantación cliente/servidor debe tener las siguientes características:” (Presman,
2002)

o Debe utilizar protocolos asimétricos, donde el servidor se limita a escuchar,


en espera de que un cliente inicie una solicitud.

o 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.)

o 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).

o 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.

o Los sistemas estarán débilmente acoplados, ya que interactúan mediante el


envío de mensajes.

o 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)
2.2 ELEMENTOS DE LA ARQUITECTURA C/S
“De lo dicho hasta ahora, podemos deducir que los principales elementos que
conforman la arquitectura cliente/servidor son los siguientes:” (Coulouris, 2001)

2.2.1 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.

Tipos de Servidores

a) Servidores De Archivos: Proporciona archivos para clientes. Si los


archivos no fueran tan grandes y los usuarios que comparten esos
archivos no fueran muchos, esto sería una gran opción de
almacenamiento y procesamiento de archivos. El cliente solicita
los archivos y el servidor los ubica y se los envía.

b) Servidores de Base de Datos: Son los que almacenan gran cantidad


de datos estructurados, se diferencian de los de archivos pues la
información que se envía está ya resumida en la base de datos.
Ejemplo: El Cliente hace una consulta, el servidor recibe esa
consulta (SQL) y extrae solo la información pertinente y envía esa
respuesta al cliente. Servidores de Software de Grupo: El software
de grupo es aquel, que permite organizar el trabajo de un grupo. El
servidor gestiona los datos que dan soporte a estas tareas. Por
ejemplo: almacenar las listas de correo electrónico. El Cliente
puede indicarle, que se ha terminado una tarea y el servidor se lo
envía al resto del grupo.

c) Servidores WEB: Son los que guardan y proporcionan Páginas


HTML. El cliente desde un browser o link hace un llamado de la
página y el servidor recibe el mensaje y envía la página
correspondiente. Servidores de correo Gestiona el envío y
recepción de correo de un grupo de usuarios (el servidor no
necesita ser muy potente). El servidor solo debe utilizar un
protocolo de correo. Servidor de objetos Permite almacenar objetos
que pueden ser activados a distancia. Los clientes pueden ser
capaces de activar los objetos que se encuentran en el servidor.

d) Servidores De Impresión: Gestionan las solicitudes de impresión


de los clientes. El cliente envía la solicitud de impresión, el
servidor recibe la solicitud y la ubica en la cola de impresión,
ordena a la impresora que lleve a cabo las operaciones y luego avisa
a la computadora cliente que ya acabo su respectiva impresión.
Servidores de aplicación Se dedica a una única aplicación. Es
básicamente una aplicación a la que pueden acceder los clientes.

2.2.2 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, por lo que deberá
encargarse de una parte de la lógica de la aplicación y de realizar algunas
validaciones de forma local.

Tipos de Clientes

a) Cliente liviano no tiene capacidad de procesamiento y su única


función es recoger los datos del usuario, dárselos al servidor, y
mostrar su respuesta. Los primeros navegadores web eran clientes
livianos, simplemente mostraban las páginas web que solicitaba el
usuario. Actualmente, el uso de lenguajes de script, programas Java
y otras funciones de DHTML dan una capacidad de procesamiento
a los navegadores, por lo que se consideran clientes Híbridos.

b) Cliente pesado suele tener una mayor capacidad de procesamiento


y es posible que tenga una interfaz gráfica sofisticada. Sin
embargo, esto conlleva un desarrollo adicional y suele ser una
mezcla de la lógica de presentación (interfaz gráfica) con la lógica
de la aplicación (potencia de procesamiento). Cliente híbrido

c) Un cliente híbrido no tiene almacenados los datos con los que


trabaja, pero sí es capaz de procesar datos que le envía el servidor.
Muchos programas de colaboración almacenan remotamente los
datos para que todos los usuarios trabajen con la misma
información, y utilizan clientes híbridos para acceder a esa
información.

2.2.3 EL MIDDLEWARE
Es la parte del software del sistema que se encarga del transporte de los
mensajes entre el cliente y el servidor, por lo que se ejecuta en ambos lados
de la estructura.
El middleware permite independizar a los clientes y a los servidores, sobre
todo, gracias a los sistemas abiertos, que eliminan la necesidad de
supeditarse a tecnologías propietarias.

Por lo tanto, el middleware facilita el desarrollo de aplicaciones, porque


resuelve la parte del transporte de mensajes y facilita la interconexión de
sistemas heterogéneos sin utilizar tecnologías propietarias.

Además, ofrece más control sobre el negocio, debido a que permite obtener
información desde diferentes orígenes (uniendo tecnologías y
arquitecturas distintas) y ofrecerla de manera conjunta.

Podemos estructurar el middleware en tres niveles:

o El protocolo de transporte, que será común para otras aplicaciones


del sistema.

o El sistema operativo de red

o El protocolo del servicio, que será específico del tipo de sistema


cliente/servidor que estemos considerando.

figura 2 Middleware Fuente: http://ocw.pucv.cl/cursos-1/arquitectura-de-sistemas-de-software/materiales-de-


clases/web-cliente-servidor
3. TIPOS DE ARQUITECTURA CLIENTE/SERVIDOR
3.1 CONCEPTOS BASICOS Y NOTACION
Según (Valparaíso, 2012) nos habla sobre la siguiente notación:

• El Cliente es cualquier usuario o programa que quiere realizar una operación


sobre el sistema. Para apoyarlo, el sistema debe tener una capa de presentación
a través de la cual el usuario puede enviar las operaciones y obtener un
resultado.
• La lógica de la aplicación establece qué operaciones se pueden realizar sobre
el sistema y cómo se llevarán a cabo. Se encarga de hacer cumplir las reglas
de negocio y establecer los procesos de negocio. Puede ser expresado como:
restricciones, procesos de negocio, servidores con la lógica codificada, etc.
• El administrador de recursos trata con la organización de los datos necesarios
(almacenamiento, indexación y recuperación) para apoyar la lógica de la
aplicación. Ej. BD relacional, BD en XML, archivo Excel, o cualquier otro
sistema con capacidades de consulta y persistencia.

figura 3 Notación Cliente Servidor. Fuente: http://ocw.pucv.cl/cursos-1/arquitectura-de-sistemas-de-


software/materiales-de-clases/web-cliente-servidor
figura 4 Distribución en las diferentes Capas. Fuente: http://ocw.pucv.cl/cursos-1/arquitectura-de-sistemas-de-
software/materiales-de-clases/web-cliente-servidor

3.2 ARQUITECTURA C/S COMPLETAMENTE CENTRALIZADA


• La capa de presentación, lógica de aplicación y gestión de recursos se
construye como una entidad monolítica.
• Usuario/programas acceden al sistema a través de terminales de pantalla, pero
lo que se muestra y cómo aparece es controlado por el servidor. llamadas
terminales tontas.
• Esta era la arquitectura típica de las aplicaciones de mainframe, ofreciendo
varias ventajas:
o flujo de control sin decisiones de contexto (todo sucede dentro del
sistema).
o todo está centralizado; gestión y control de los recursos es más fácil.
o diseño altamente optimizado al eliminar la separación entre las capas.
figura 5 Arquitectura Cliente/Servidor Centralizada. Fuente: http://ocw.pucv.cl/cursos-1/arquitectura-de-sistemas-
de-software/materiales-de-clases/web-cliente-servidor

3.3 ARQUITECTURA DE 2 CAPAS


• Al hacerse las computadoras más poderosas, la capa de presentación se mueve
al cliente. Esto tiene varias ventajas:
o Los clientes son independientes entre sí: se puede tener varias capas
de presentación dependiendo de lo que cada cliente quiere hacer.
o Se puede aprovechar la potencia de cálculo en la máquina cliente
teniendo capas de presentación más sofisticadas. Esto también ahorra
recursos de la máquina servidor.
o Se introduce el concepto de API (Application Program Interface). Una
interfaz para invocar el sistema desde el exterior.
o El administrador de recursos sólo tiene un cliente: la lógica de la
aplicación. Esto ayuda mucho con el rendimiento ya que no hay
conexiones y sesiones para mantener.
figura 5 Arquitectura Cliente/Servidor 2 Capas. Fuente: http://ocw.pucv.cl/cursos-1/arquitectura-de-sistemas-de-
software/materiales-de-clases/web-cliente-servidor

3.4 ARQUITECTURA DE 3 CAPAS


• En un sistema de tres niveles, las tres capas están completamente separadas.
• Para algunos, un sistema basado en middleware es una arquitectura de 3 capas.
Esto es un poco simplista, pero es correcto conceptualmente ya que los
sistemas subyacentes pueden ser tratados como cajas negras.
• Los sistemas de 3 niveles tienen las mismas ventajas que un sistema de
middleware y también sus desventajas.
• En la práctica, las cosas no son tan simples como parecen … hay varias capas
ocultas que no son necesariamente triviales; ej. los wrappers.

figura 6 Arquitectura Cliente/Servidor 3 Capas. Fuente: http://ocw.pucv.cl/cursos-1/arquitectura-de-sistemas-de-


software/materiales-de-clases/web-cliente-servidor
4. VENTAJAS Y DESVENTAJAS
Para (Sommerville, 2011) este modelo presenta las siguientes ventajas y desventajas:
4.1 VENTAJAS
Entre las principales ventajas del esquema Cliente/Servidor están:

• Uno de los aspectos que más ha promovido el uso de sistemas Cliente/Servidor, es


la existencia de plataformas de hardware cada vez más baratas. Esta constituye a su
vez una de las más palpables ventajas de este esquema, la posibilidad de utilizar
máquinas considerablemente más baratas que las requeridas por una solución
centralizada, basada en sistemas grandes. Además, se pueden utilizar componentes,
tanto de hardware como de software, de varios fabricantes, lo cual contribuye
considerablemente a la reducción de costos y favorece la flexibilidad en la
implantación y actualización de soluciones.

• El esquema Cliente/Servidor facilita la integración entre sistemas diferentes y


comparte información permitiendo, por ejemplo, que las máquinas ya existentes
puedan ser utilizadas, pero utilizando interfaces más amigables al usuario. De esta
manera, podemos integrar PCs con sistemas medianos y grandes, sin necesidad de
que todos tengan que utilizar el mismo sistema operacional.

• Al favorecer el uso de interfaces gráficas interactivas, los sistemas construidos bajo


este esquema tienen mayor interacción y es más intuitiva para con el usuario. En el
uso de interfaces gráficas para el usuario, el esquema Cliente/Servidor presenta la
ventaja, con respecto a uno centralizado, de que no es siempre necesario transmitir
información gráfica por la red pues esta puede residir en el cliente, lo cual permite
aprovechar mejor el ancho de banda de la red.

• Una ventaja adicional del uso del esquema Cliente/Servidor es que es más rápido el
mantenimiento y el desarrollo de aplicaciones, pues se pueden emplear las 7
herramientas existentes (por ejemplo los servidores de SQL o las herramientas de más
bajo nivel como los sockets o el RPC).

• La estructura inherentemente modular facilita además la integración de nuevas


tecnologías y el crecimiento de la infraestructura computacional, favoreciendo así la
escalabilidad de las soluciones.
• El esquema Cliente/Servidor contribuye, además, a proporcionar, a los diferentes
departamentos de una organización, soluciones locales, pero permitiendo la
integración de la información relevante a nivel global.

4.2 DESVENTAJAS
Entre las principales desventajas del esquema Cliente/Servidor están:
• El mantenimiento de los sistemas es más difícil pues implica la interacción de
diferentes partes de hardware y de software, distribuidas por distintos proveedores, lo
cual dificulta el diagnóstico de fallas.

• Se cuenta con muy escasas herramientas para la administración y ajuste del


desempeño de los sistemas.

• Es importante que los clientes y los servidores utilicen el mismo mecanismo (por
ejemplo, sockets o RPC), lo cual implica que se deben tener mecanismos generales
que existan en diferentes plataformas.

• Además, hay que tener estrategias para el manejo de errores y para mantener la
consistencia de los datos.

• La seguridad de un esquema Cliente/Servidor es otra preocupación importante. Por


ejemplo, se deben hacer verificaciones en el cliente y en el servidor.

• El desempeño es otro de los aspectos que se deben tener en cuenta en el esquema


Cliente/Servidor. Problemas de este estilo pueden presentarse por congestión en la
red, dificultad de tráfico de datos, etc.
III. CONCLUSIONES
se concluye que el modelo cliente servidor es un modelo actualmente utilizado en
sistemas informáticos especialmente en los sistemas basados en la web y en sistemas
funcionales en redes locales. Esto se surgió debido a la existencia de plataformas de
hardware cada vez más baratas y eficientes, como también los avances en rendimiento de
las telecomunicaciones. Hoy se sigue utilizando porque facilita la integración entre
sistemas diferentes y permite compartir y centralizar información entre máquinas
existentes, lo que se denomina como escalabilidad. La escalabilidad permite aumentar la
cantidad o capacidad de clientes y también la cantidad o capacidad de los servidores por
separado por lo tanto se puede decir que un sistema informático funcionando con el
modelo / servidor puede crecer horizontal o verticalmente sin grandes dificultades. Las
tecnologías actuales, se encuentran suficientemente desarrolladas y diseñadas para seguir
el modelo cliente / servidor y aseguran la seguridad en las transacciones, la amigabilidad
de interfaces y por sobre todo la facilidad de empleo de este modelo. La red más grande
existente en tecnología y aún en continuo crecimiento es internet y la mayoría de los
servicios de Internet son del tipo de cliente-servidor. La acción de visitar un sitio web
requiere una arquitectura C/S y las acciones realizadas en una página web requieren de
un modelo C/S. Lo que demuestra que el correcto uso aprovechando sus ventajas y
llevando en cuenta sus desventajas puede conseguir óptimos resultados con posibilidad
de crecimiento en el caso de que se necesite.
IV. BIBLIOGRAFIA

Coulouris, G. (2001). Sistemas Distribuidos (Tercera ed.). Madrid: Addison Wesley.

P.Ruiz. (13 de agosto de 2013). Sistemas Operativos en Red. Recuperado el 17 de septiembre


de 2017, de somebooks.es: http://somebooks.es/arquitectura-clienteservidor/

Presman, R. S. (2002). Ingeniería de Software (Quinta ed.). Madrid: McGraw-Hill


Interamericana.

Sommerville, I. (2011). INGENIERIA DE SOFTWARE (novena ed.). MEXICO: PEARSON


EDUCACION.

Valparaíso, P. U. (6 de octubre de 2012). Escuela de Ingeniería Informática . Recuperado el 17


de septiembre de 2017, de Arquitectura Cliente/Servidor: http://ocw.pucv.cl/cursos-
1/arquitectura-de-sistemas-de-software/materiales-de-clases/web-cliente-servidor

Vous aimerez peut-être aussi