Sei sulla pagina 1di 13

INSTITUTO TECNOLÓGICO DE COMITANCILLO

FACILITADOR:

LIC. ISIDRO LOPEZ RUIZ

MATERIA:

PROGRAMACIÓN EN AMBIENTE CLIENTE SERVIDOR

RESENTA:

ARIS LOPEZ MARTINEZ

CARRERA:

ING. EN INFORMATICA

SEMESTRE: 7º GRUPO: “A”

SAN PEDRO COMITANCILLO, OAXACA. AGOSTO 2018


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:
Las características de una implantación cliente/servidor deben ser: Transparencia.
Independencia. Protocolos asimétricos. Recursos compartidos. Servicio.
Encapsulamiento. Integridad. Acoplamiento débil. Escalabilidad.
 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).
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.
Los mensajes quedan almacenados, permitiendo que el emisor o el receptor estén
inactivos por un tiempo. Así, las comunicaciones pueden ser persistentes y asíncronas.
Este mecanismo se denomina Message-Oriented Middleware (MOM)
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:
 El protocolo de transporte, que será común para otras aplicaciones del sistema.
 El sistema operativo de red
 El protocolo del servicio, que será específico del tipo de sistema cliente/servidor
que estemos considerando.
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 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.
1.2.- Modelo de 2 y 3 capas del modelo cliente-servidor

La arquitectura de dos capas en la actualidad es muy utilizada, aunque con muchas


fallas, todavía no se ha podido dejar de usar. Estas arquitecturas fueron las primeras en
aprovecharse de la estructura cliente-servidor.
Las capas que esta arquitectura presenta son las siguientes:
Nivel de aplicación: Este nivel es en el que se encuentra toda la interfaz del sistema y
es la que el usuario puede disponer para realizar su actividad con el sistema.
Nivel de la base de datos:
Este nivel de la Base de Datos también llamado el Repositorio de Datos, es la capa en
donde se almacena toda la información ingresada en el sistema y que se deposita en
forma permanente. Existen herramientas para el desarrollo en dos capas por ejemplo
Visual Basic, Access y SQL.

1.3.- Uso y aplicaciones de la programación cliente servidor


Utilidades de una aplicación cliente/servidor
Entre las principales utilidades que le podemos asignar a las aplicaciones
cliente/servidor destacan las siguientes:
 Ligereza impresionante, ya que toda la carga y consumo de recursos se hace
directamente en el servidor.
 Facilidad de mantenimiento, ya que se hace mantenimiento general en el código
principal en el servidor.
 Posibilidad de realizar trabajos dinámicos y en grupo.
 Servicio de trabajo incluso en zonas remotas, gracias a Internet.
 Posibilidad de ser desarrolladas en diversos lenguajes de programación.
 Capacidad de trabajar, por lo general, en diferentes plataformas de manera
simultánea.
En la actualidad, la tendencia de desarrollo es hacia aplicaciones cliente/servidor de
bajo consumo y que ofrezcan la posibilidad de realizar el trabajo rápidamente. Un
ejemplo de este tipo de aplicaciones son los clientes de e-mail, las aplicaciones en la
nube y algunos sistemas de base de datos que podemos encontrar en Internet.
1.4.- Comunicación entre programas
Modos de transmisión de datos.
Una transmisión dada en un canal de comunicaciones entre dos equipos puede ocurrir
de diferentes maneras. La transmisión está caracterizada por la dirección de los
intercambios, el modo de transmisión (el número de bits enviados simultáneamente) y
la sincronización entre el transmisor y el receptor.
Existen 3 modos de transmisión diferentes caracterizados de acuerdo a la dirección de
los intercambios:
Una conexión simple, es una conexión en la que los datos fluyen en una sola dirección,
desde el transmisor hacia el receptor. Este tipo de conexión es útil si los datos no
necesitan fluir en ambas direcciones (por ejemplo: desde el equipo hacia la impresora o
desde el ratón hacia el equipo.).
Una conexión semidúplex (a veces denominada una conexión alternativa o semi-
dúplex) es una conexión en la que los datos fluyen en una u otra dirección, pero no las
dos al mismo tiempo. Con este tipo de conexión, cada extremo de la conexión transmite
uno después del otro. Este tipo de conexión hace posible tener una comunicación
bidireccional utilizando toda la capacidad de la línea.
Una conexión dúplex total es una conexión en la que los datos fluyen simultáneamente
en ambas direcciones. Así, cada extremo de la conexión puede transmitir y recibir al
mismo tiempo; esto significa que el ancho de banda se divide en dos para cada dirección
de la transmisión de datos si es que se está utilizando el mismo medio de transmisión
para ambas direcciones de la transmisión.
Transmisión de datos en serie y en paralelo
El modo de transmisión se refiere al número de unidades de información (bits)
elementales que se pueden traducir simultáneamente a través de los canales de
comunicación. De hecho, los procesadores (y por lo tanto, los equipos en general) nunca
procesan (en el caso de los procesadores actuales) un solo bit al mismo tiempo.
Generalmente son capaces de procesar varios (la mayoría de las veces 8 bits: un byte)
y por este motivo, las conexiones básicas en un equipo son conexiones paralelas.
Transmisión sincrónica y asincrónica
En la conexión asincrónica cada carácter se envía en intervalos de tiempo irregulares
(por ejemplo, un usuario enviando caracteres que se introducen en el teclado en tiempo
real). Así, por ejemplo, imagine que se transmite un solo bit durante un largo período de
silencio... el receptor no será capaz de darse cuenta si esto es 00010000, 10000000 o
00000100. Para remediar este problema, cada carácter es precedido por información
que indica el inicio de la transmisión del carácter (el inicio de la transmisión de
información se denomina bit de INICIO) y finaliza enviando información acerca de la
finalización de la transmisión (denominada bit de FINALIZACIÓN, en la que incluso
puede haber varios bits de FINALIZACIÓN).
En una conexión sincrónica el transmisor y el receptor están sincronizados con el
mismo reloj. El receptor recibe continuamente (incluso hasta cuando no hay transmisión
de bits) la información a la misma velocidad que el transmisor la envía. Es por este
motivo que el receptor y el transmisor están sincronizados a la misma velocidad.
Además, se inserta información suplementaria para garantizar que no se produzcan
errores durante la transmisión.
Medios de transmisión
El medio de transmisión constituye el soporte físico a través del cual emisor y receptor
pueden comunicarse en un sistema de transmisión de datos. Distinguimos dos tipos de
medios: guiados y no guiados. En ambos casos la transmisión se realiza por medio de
ondas electromagnéticas. Los medios guiados conducen (guían) las ondas a través de
un camino físico, ejemplos de estos medios son el cable coaxial, la fibra óptica y el par
trenzado. Los medios no guiados proporcionan un soporte para que las ondas se
transmitan, pero no las dirigen; como ejemplo de ellos tenemos el aire y el vacío.
Medios de transmisión guiados son:
Pares trenzados
Este consiste en dos alambres de cobre aislados, en general de 1mm de espesor. Los
alambres se entrelazan en forma helicoidal, como en una molécula de DNA. La forma
trenzada del cable se utiliza para reducir la interferencia eléctrica con respecto a los
pares cercanos que se encuentran a su alrededor.
Cable coaxial
El cable coaxial consta de un alambre de cobre duro en su parte central, es decir, que
constituye el núcleo, el cual se encuentra rodeado por un material aislante. Este material
aislante está rodeado por un conductor cilíndrico que frecuentemente se presenta como
una malla de tejido trenzado. El conductor externo está cubierto por una capa de plástico
protector.
Fibra óptica
Un cable de fibra óptica consta de tres secciones concéntricas. La más interna, el
núcleo, consiste en una o más hebras o fibras hechas de cristal o plástico. Cada una de
ellas lleva un revestimiento de cristal o plástico con propiedades ópticas distintas a las
del núcleo. La capa más exterior, que recubre una o más fibras, debe ser de un material
opaco y resistente.
Medios no guiados:
Radio enlaces de VHF y UHF
Estas bandas cubren aproximadamente desde 55 a 550 Mhz. Son también
omnidireccionales, pero a diferencia de las anteriores la ionosfera es transparente a
ellas. Su alcance máximo es de un centenar de kilómetros, y las velocidades que permite
del orden de los 9600 bps. Su aplicación suele estar relacionada con los
radioaficionados y con equipos de comunicación militares, también la televisión y los
aviones.
Microondas
Además de su aplicación en hornos, las microondas nos permiten transmisiones tanto
terrestres como con satélites. Dada su frecuencia, del orden de 1 a 10 Ghz, las
microondas son muy direccionales y sólo se pueden emplear en situaciones en que
existe una línea visual que une emisor y receptor. Los enlaces de microondas permiten
grandes velocidades de transmisión, del orden de 10 Mbps.
Técnicas de transmisión
Banda base
Banda base es la señal de una sola transmisión en un canal, se refiere a la banda de
frecuencias producida por un transductor, tal como un micrófono, un manipulador
telegráfico u otro dispositivo generador de señales que no es necesario adaptarlo al
medio por el que se va a trasmitir.
En los sistemas de transmisión, la banda base es generalmente utilizada para modular
una portadora. Durante el proceso de demodulación se reconstruye la señal banda base
original. Por ello, podemos decir que la banda base describe el estado de la señal antes
de la modulación y de la multiplexación y después de la demultiplexación y
demodulación. Las frecuencias de banda base se caracterizan por ser generalmente
mucho más bajas que las resultantes cuando éstas se utilizan para modular una
portadora o subportadora. Por ejemplo, es señal de banda base la obtenida de la salida
de video compuesto de dispositivos como grabadores/reproductores de video y
consolas de juego, a diferencia de las señales de televisión que deben ser moduladas
para poder transportarlas vía aérea (por señal libre o satélite) o por cable.
Banda ancha
Se conoce como banda ancha a la transmisión de datos simétricos por la cual se envían
simultáneamente varias piezas de información, con el objeto de incrementar la velocidad
de transmisión efectiva. En ingeniería de redes este término se utiliza también para los
métodos en donde dos o más señales comparten un medio de transmisión. Así se
utilizan dos o más canales de datos simultáneos en una única conexión, lo que se
denomina multiplexación.
El concepto de banda ancha ha evolucionado con los años. La velocidad que
proporcionaba RDSI con 128Kb/s dio paso al SDSL con una velocidad de 256 Kb/s.
Posteriormente han surgido versiones más modernas y desarrolladas de este último,
llegando a alcanzar desde la velocidad de 512 Kb/s hasta los 2 Mb/s simétricos en la
actualidad.
1.5.- Modelos de computación distribuidos
1.5.1 RMI
RMI (Java Remote Method Invocation) es un mecanismo ofrecido por Java para invocar
un método de manera remota. Forma parte del entorno estándar de ejecución de Java
y proporciona un mecanismo simple para la comunicación de servidores en aplicaciones
distribuidas basadas exclusivamente en Java. Si se requiere comunicación entre otras
tecnologías debe utilizarse CORBAo SOAP en lugar de RMI.
RMI se caracteriza por la facilidad de su uso en la programación por estar
específicamente diseñado para Java; proporciona paso de objetos por referencia (no
permitido por SOAP), recolección de basura distribuida (Garbage Collector distribuido)
y paso de tipos arbitrarios (funcionalidad no provista por CORBA).
A través de RMI, un programa Java puede exportar un objeto, con lo que dicho objeto
estará accesible a través de la red y el programa permanece a la espera de peticiones
en un puerto TCP. A partir de ese momento, un cliente puede conectarse e invocar los
métodos proporcionados por el objeto.
La invocación se compone de los siguientes pasos:
Encapsulado (marshalling) de los parámetros (utilizando la funcionalidad de
serialización de Java).
Invocación del método (del cliente sobre el servidor). El invocador se queda esperando
una respuesta.
Al terminar la ejecución, el servidor serializa el valor de retorno (si lo hay) y lo envía al
cliente.
El código cliente recibe la respuesta y continúa como si la invocación hubiera sido local.
1.5.2.- COM/DCOM
1. COM / DCOM
Microsoft Distributed COM (DCOM) extiende COM (Component Object Model) para
soportar comunicación entre objetos en ordenadores distintos, en una LAN, WAN, o
incluso en Internet. Con DCOM una aplicación puede ser distribuida en lugares que dan
más sentido al cliente y a la aplicación.
Como DCOM es una evolución lógica de COM, se pueden utilizar los componentes
creados en aplicaciones basadas en COM, y trasladarlas a entornos distribuidos. DCOM
maneja detales muy bajos de protocolos de red, por lo que uno se puede centrar en la
realidad de los negocios: proporcionar soluciones a clientes.
Actualmente DCOM viene con los sistemas operativos Windows 2000, NT, 98 y también
está disponible una versión para Windows 95 en la página de Microsoft. También hay
una implementación de DCOM para Apple Macintosh y se está trabajando en
implementaciones para plataformas UNIX como Solaris.
1.1 La arquitectura DCOM
DCOM es una extensión de COM, y éste define como los componentes y sus clientes
interactuan entre sí. Esta interacción es definida de tal manera que el cliente y el
componente puede conectar sin la necesidad de un sistema intermedio. El cliente llama
a los métodos del componente sin tener que preocuparse de niveles más complejos
En los actuales sistemas operativos, los procesos están separados unos de otros. Un
cliente que necesita comunicarse con un componente en otro proceso no puede llamarlo
directamente, y tendrá que utilizar alguna forma de comunicación entre procesos que
proporcione el sistema operativo. COM proporciona este tipo de comunicación de una
forma transparente: intercepta las llamadas del cliente y las reenvía al componente que
está en otro proceso.
Cuando el cliente y el componente residen en distintas máquinas, DCOM simplemente
reemplaza la comunicación entre procesos locales por un protocolo de red. Ni el cliente
ni el componente se enteran de que la unión que los conecta es ahora un poco más
grande.
Las librerías de COM proporcionan servicios orientados a objetos a los clientes y
componentes, y utilizan RPC y un proveedor de seguridad para generar paquetes de
red estándar que entienda el protocolo estándar de DCOM.
1.2 Los Componentes y su reutilización
Muchas aplicaciones distribuidas no están desarrolladas
Al existir infraestructuras de hardware, software, componentes, al igual que
herramientas, se necesita poder integrarlas y nivelarlas para reducir el desarrollo y el
tiempo de trabajo y coste. DCOM toma ventaja de forma directa y transparente de los
componentes COM y herramientas ya existentes. Un gran mercado de todos los
componentes disponibles haría posible reducir el tiempo de desarrollo integrando
soluciones estandarizadas en las aplicaciones de usuario. Muchos desarrolladores
están familiarizados con COM y pueden aplicar fácilmente sus conocimientos a las
aplicaciones distribuidas basadas en DCOM.
Cualquier componente que sea desarrollado como una parte de una aplicación
distribuida es un candidato para ser reutilizado. Organizando los procesos de desarrollo
alrededor del paradigma de los componentes permite continuar aumentando el nivel de
funcionalidad en las nuevas aplicaciones y reducir el tiempo de desarrollo.
Diseñando para COM y DCOM se asegura que los componentes creados serán útiles
ahora y en el futuro.
1.3 Independencia de la localización
Cuando se comienza a implementar una aplicación distribuida en una red reak,
aparecen distintos conflictos en el diseño:
Los componentes que interactúan más a menudo deberían estar localizados más cerca.
Algunos componentes solo pueden ser ejecutados en máquinas específicas o lugares
específicos.
Los componentes más pequeños aumentan la flexibilidad, pero aumentan el tráfico de
red.
Los componentes grandes reducen el tráfico de red, pero también reducen la flexibilidad.
1.5.3 Servicios WEB
Un servicio web (en inglés, Web Service o Web services) es una tecnología que utiliza
un conjunto de protocolos y estándares que sirven para intercambiar datos entre
aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de
programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los
servicios web para intercambiar datos en redes de ordenadores como Internet. La
interoperabilidad se consigue mediante la adopción de estándares abiertos. Las
organizaciones OASIS y W3C son los comités responsables de la arquitectura y
reglamentación de los servicios Web. Para mejorar la interoperabilidad entre distintas
implementaciones de servicios Web se ha creado el organismo WS-I, encargado de
desarrollar diversos perfiles para definir de manera más exhaustiva estos estándares.
Es una máquina que atiende las peticiones de los clientes web y les envía los recursos
solicitados.
1.5.4.- Corba
Common Object Request Broker Architecture (CORBA) es un estándar definido por
Object Management Group (OMG) que permite que diversos componentes de software
escritos en múltiples lenguajes de programación y que corren en diferentes
computadoras, puedan trabajar juntos; es decir, facilita el desarrollo de aplicaciones
distribuidas en entornos heterogéneos.
Características
Entre las principales características de CORBA nos encontramos con:
Independencia en el lenguaje de programación y sistema operativo: CORBA fue
diseñado para liberar a los ingenieros de las limitaciones en cuanto al diseño del
software. Actualmente soporta Ada, C, C++, C++11, Lisp, Ruby, Smalltalk, Java,
COBOL, PL/I y Python.
Posibilidad de interacción entre diferentes tecnologías: uno de los principales beneficios
de la utilización de CORBA es la posibilidad de normalizar las interfaces entre las
diversas tecnologías y poder así combinarlas.
Transparencia de distribución: ni cliente ni servidor necesitan saber si la aplicación está
distribuida o centralizada, pues el sistema se ocupa de todo eso.
Transparencia de localización: el cliente no necesita saber dónde ejecuta el servicio y el
servicio no necesita saber dónde ejecuta el cliente.
Integración de software existente: se amortiza la inversión previa reutilizando el software
con el que se trabaja, incluso con sistemas heredados.
Activación de objetos: los objetos remotos no tienen por qué estar en memoria
permanentemente, y se hace de manera invisible para el cliente.
Otras como: el tipado fuerte de datos, la alta capacidad de configuración, libertad de
elección de los detalles de transferencia de datos, o la compresión de los datos.
Cómo funciona
Todos los componentes CORBA son objetos, cada cual tendrá una interfaz y una
identidad única, cada uno de los objetos se podrá implementar en un lenguaje de
programación distinto y ejecutarse sobre cualquier sistema operativo.
El servidor crea objetos remotos, hace accesibles referencias a esos objetos remotos y
espera a que los clientes invoquen a estos objetos o a sus métodos. Por otro lado, el
cliente obtiene una referencia de uno o más objetos remotos en el servidor e invoca a
sus métodos.
La manera de realizar la invocación por parte del cliente es usando stub, una interfaz de
comunicación con el servidor generada a partir del IDL, usando la invocación dinámica
para acceder a los objetos del servidor gestionando a su vez las excepciones producidas
por su llamada.
Necesita para ello una referencia del objeto remoto o IOR (Interoperable Object
References), el tipo del objeto y el nombre de la propia operación que desea invocar.
Describiendo las interfaces IDL, un ORB genera automáticamente código en el lenguaje
seleccionado para realizar la integración de las aplicaciones distribuidas.
Evidentemente, puesto que sólo describe interfaces, todas las tareas complejas
relacionadas con los lenguajes de programación, como control de flujo, gestión de
memoria, composición funcional, no aparecen en IDL.
El ORB, a partir de la petición del cliente encuentra el código de la implementación
apropiada y transmite los parámetros, el control a la implementación de la interfaz a
través del skeleton IDL e informa de excepciones en el proceso (como referencias IOR
o IDL no válidas).
Para recibir la petición, recibe la invocación de uno de sus métodos como llamadas
desde el ORB hacia la implementación de la interfaz, la llamada puede venir de un
cliente que haya utilizado los stubs IDL; los esqueletos de la interfaz son específicos de
cada interfaz y del adaptador de objetos que exista en la implementación de CORBA.
Una vez completada la invocación el control y los valores de retorno son devueltos al
cliente.
Puede utilizar los servicios que proporciona el adaptador de objetos e incluso que
proporciona el ORB, mientras es procesada la petición que ha recibido el cliente, para
ese caso puede elegir un adaptador de objetos entre un conjunto de ellos, para tomar
esa decisión se basa en la clase de servicios que pueda requerir la implementación de
la interfaz.
Ventajas y desventajas del modelo cliente servidor
Ventajas

· Centralización del control: Los accesos, recursos y la integridad de los datos son
controlados por el servidor de forma que un programa cliente defectuoso o no autorizado
no pueda dañar el sistema. Esta centralización también facilita la tarea de poner al día
datos u otros recursos (mejor que en las redes P2P).
· Escalabilidad: Se puede aumentar la capacidad de clientes y servidores por
separado. Cualquier elemento puede ser aumentado (o mejorado) en cualquier
momento, o se pueden añadir nuevos nodos a la red (clientes y/o servidores).
· Fácil mantenimiento: Al estar distribuidas las funciones y responsabilidades entre
varios ordenadores independientes, es posible reemplazar, reparar, actualizar, o incluso
trasladar un servidor, mientras que sus clientes no se verán afectados por ese cambio
(o se afectarán mínimamente). Esta independencia de los cambios también se conoce
como encapsulación.
· Existen tecnologías, suficientemente desarrolladas, diseñadas para el paradigma
de C/S que aseguran la seguridad en las transacciones, la amigabilidad del interfaz, y
la facilidad de empleo.
Desventajas
· La congestión del tráfico ha sido siempre un problema en el paradigma de C/S.
Cuando una gran cantidad de clientes envían peticiones simultaneas al mismo servidor,
puede ser que cause muchos problemas para éste (a mayor número de clientes, más
problemas para el servidor). Al contrario, en las redes P2P como cada nodo en la red
hace también de servidor, cuantos más nodos hay, mejor es el ancho de banda que se
tiene.
· El paradigma de C/S clásico no tiene la robustez de una redP2P. Cuando un
servidor está caído, las peticiones de los clientes no pueden ser satisfechas. En la mayor
parte de redes P2P, los recursos están generalmente distribuidos en varios nodos de la
red. Aunque algunos salgan o abandonen la descarga; otros pueden todavía acabar de
descargar consiguiendo datos del resto de los nodos en la red.
· El software y el hardware de un servidor son generalmente muy determinantes.
Un hardware regular de un computador personal puede no poder servir a cierta cantidad
de clientes. Normalmente se necesita software y hardware específico, sobre todo en el
lado del servidor, para satisfacer el trabajo. Por supuesto, esto aumentará el costo.
Tipos de servidores

En esta tabla podemos ver los tipos de servidores más habituales.


DENOMINACIÓN DEL
DESCRIPCIÓN
SERVIDOR

Es el servidor que almacena, envía, recibe y realiza todas


Servidor de Correo las operaciones relacionadas con el e-mail de sus
clientes.

Es el servidor que actúa de intermediario de forma que el


Servidor Proxy servidor que recibe una petición no conoce quién es el
cliente que verdaderamente está detrás de esa petición.

Almacena principalmente documentos HTML (son


documentos a modo de archivos con un formato especial
para la visualización de páginas web en los navegadores
Servidor Web
de los clientes), imágenes, videos, texto, presentaciones,
y en general todo tipo de información. Además se
encarga de enviar estas informaciones a los clientes.

Da servicios de almacenamiento y gestión de bases de


datos a sus clientes. Una base de datos es un sistema que
Servidor de Base de Datos nos permite almacenar grandes cantidades de
información. Por ejemplo, todos los datos de los clientes
de un banco y sus movimientos en las cuentas.

Son servidores especializados en el almacenamiento de


la información teniendo grandes capacidades de
Servidores Clúster
almacenamiento y permitiendo evitar la pérdida de la
información por problemas en otros servidores.

Como ya expresamos anteriormente, hay servidores


compartidos si hay varias personas o empresas usando un
Servidores Dedicados
mismo servidor, o dedicados que son exclusivos para una
sola persona o empresa.

Recientemente también se han popularizado servidores


especializados en imágenes, permitiendo alojar gran
Servidores de imágenes cantidad de imágenes sin consumir recursos de nuestro
servidor web en almacenamiento o para almacenar
fotografías personales, profesionales, etc.

Potrebbero piacerti anche