[Definición
Cliente/Servidor]
POR: Margarita
Dubocq
Cuando decimos Cliente/Servidor, nos referimos a aplicaciones que se
utilizan en una red, donde todos pueden acceder a la misma información
(un poco como sería Internet). Hay muchos motores de bases de datos
Clientes/Servidor, entre los que están SQL Server, Oracle, Informix,
etc...
Además, es una arquitectura de sistemas de información en la que los
procesos de una aplicación se dividen en componentes que se pueden
ejecutar en máquinas diferentes. Es el modo de funcionamiento de una
aplicación en la que se diferencian dos tipos de procesos y su soporte
se asigna a plataformas diferentes.
Cliente/Servidor es el modelo de base utilizado en la mayoría de las
redes de computadoras. El término servidor se aplica a cualquier
programa que ofrece un servicio y que puede ser accesado a través de la
red. Los servidores aceptan peticiones recibidas a través de la red,
realizan el servicio y regresan el resultado al que generó la petición.
Un programa en ejecución, se convierte en cliente cuando envía una
petición a un servidor y espera una respuesta.
Los servidores pueden realizar tareas simples o bastante complejas. Si
el principal objetivo de una máquina es el de soportar un programa
servidor en particular; entonces, el término "servidor" puede
ser aplicado también a dicha máquina.
Diferencia entre Cliente y Servidor:
El servidor trabaja en un computador remoto; éste provee
la seguridad y la autorización para obtener los archivos. El cliente
trabaja en un computador local; puede enviar archivos a otros programas
para visualizarlos.
Un servidor comienza su ejecución antes del inicio de cualquier
interacción y, usualmente, continúa aceptando peticiones y enviando
respuestas indefinidamente. Un cliente es cualquier programa que efectúa
una petición y espera una respuesta; generalmente, termina después de
usar un servidor un número finito de veces.
Un servidor espera una petición sobre un puerto bien conocido, el cual
ha sido reservado para un cierto servicio. Un cliente reserva un puerto
arbitrario y no usado para poder comunicarse.
Arquitectura Cliente/Servidor:
Es una arquitectura hardware y software adecuada para el proceso
distribuido, en el que la comunicación se establece de uno a varios.
Un proceso es un programa en ejecución. El proceso cliente es el que
solicita un servicio, mientras que el proceso servidor es el capaz de
proporcionar un servicio. Un proceso cliente se puede comunicar con
varios procesos servidores y un servidor se puede comunicar con varios
procesos servidores y con varios clientes.
Los procesos pueden ejecutarse en la misma máquina o en distintas máquinas
comunicadas a través de una red. Por lo general, la parte de la
aplicación correspondiente al cliente se optimiza para la interacción
con el usuario, ejecutándose en su propia máquina, mientras que la
parte correspondiente al servidor proporciona la funcionalidad
multiusuario centralizada y se ejecuta en una máquina remota.
Una aplicación Cliente/Servidor típica es un servidor de base de datos
al que varios usuarios realizan consultas simultáneamente. El proceso
cliente realiza una consulta, el proceso servidor le envía las tablas
resultantes de la consulta y el proceso cliente las interpreta y muestra
el resultado en pantalla
Modelo Cliente/Servidor:
Es el modelo de interacción más común entre aplicaciones en una red.
No forma parte de los conceptos de la Internet como los protocolos IP,
TCP o UDP; sin embargo, todos los servicios estándares de alto nivel
propuestos en Internet funcionan según este modelo.
Un servidor es un programa que ofrece un servicio en la red; es decir,
que realiza una función específica. En ciertas circunstancias, este término
designará a una máquina; éste será el caso si dicha máquina está
dedicada a un servicio particular , por ejemplo: servidores de impresión,
servidor de archivos, servidor de correo electrónico, etc.
Un cliente es un programa que dirige una petición específica a un
servidor que responde a una demanda de servicio.
El modelo de desarrollo Cliente/Servidor nació como una evolución de
las aplicaciones corporativas estilo "Host", persiguiendo tres
objetivos claros:
1- Mejorar la
calidad de la comunicación con el usuario, mediante nuevos
"Interfaces gráficos".
2- Reducir los costes, mediante la utilización de
las llamadas "herramientas de alta productividad".
3- Racionalizar el tiempo de los procesos,
repartiendo el juego entre el servidor y sus clientes
"inteligentes".
De estos beneficios, sólo se ha
conseguido el primero; la calidad de la comunicación con el usuario es
superior en el aspecto gráfico, al poderse incluir imágenes y todo
tipo de elementos multimedia.
En cuanto a la esperada reducción de costes, las empresas han
descubierto que no sólo no era así, sino que, además, se les han
incrementado sensiblemente los costes de mantenimiento de los sistemas.
Por último, el tercer objetivo perseguido, que era el de aprovechar al
máximo los recursos hardware, ha quedado minimizado por la pasmosa
evolución de la industria hardware, la cual pulveriza continuamente sus
últimos récords de velocidad de proceso y capacidades de
almacenamiento.
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.
¿Qué es una red cliente/servidor?
Si tiene que conectar seis o más nodos y trabajar con archivos de gran
tamaño, como por ejemplo bases de datos, o con información que se
actualiza a menudo, la mejor elección es una red Cliente/Servidor. La
presencia de un equipo central o servidor en esta configuración, le
ofrece numerosas ventajas. Los archivos son más fáciles de actualizar,
soportar y archivar con resultados fiables, porque se almacenan en un único
lugar. El servidor en sí mismo es un PC de alto rendimiento que
garantiza acceso a los datos y transmisiones veloces, proporcionando a
su empresa la plataforma para incorporar otras prestaciones, como por
ejemplo un software para administración de inventarios y contabilidad
centralizada.
Una red Cliente/Servidor permite a cualquier compañía compartir
archivos y recursos comunes, tener acceso a la información en forma más
eficiente; garantiza la seguridad y confiabilidad de los datos. Además,
permite a todo el personal tener acceso a Internet, sin que esto
represente un costo adicional.
En una red Cliente/Servidor, los "clientes" (computadoras
personales normales) se conectan a un "servidor" (una
computadora con más poder que "sirve" o facilita a los
clientes datos, dispositivos y aplicaciones de software). Estas redes
brindan grandes ventajas a los negocios. El servidor es típicamente una
máquina de alto rendimiento que facilita compartir archivos grandes y
permite a múltiples usuarios estar en la red, sin que esto ocasione
demoras o problemas con el desempeño. También hace posible tener un
alto grado de seguridad, para evitar que personal no autorizado use sus
recursos. De igual forma, permite hacer respaldos de la información en
forma centralizada. Además, brinda una plataforma para ejecutar
aplicaciones compartidas, como soluciones de contabilidad o software de
línea de negocios (como soluciones para inventarios o para
manufactura).
Esta clase de red puede ser instalada en su empresa usando el software
para servidor Microsoft NT Server y una variedad de software para
cliente, ya sea Windows NT Workstation, Windows 95 o Windows 98.
¿Cómo saber si su organización requiere una red
Cliente/Servidor con Windows NT Server?:
Muy sencillo, su empresa requiere una red Cliente/Servidor
si más de 5 PCs deben ser conectadas a la red o si su personal
necesita:
· Compartir archivos grandes o
con gran cantidad de gráficos.
· Tener acceso remoto a la red.
· Compartir aplicaciones, archivos, impresoras y periféricos.
· Usar Internet regularmente.
Además, una vez instalada la red,
podrá agregar otras aplicaciones para brindar al personal de su empresa
correo electrónico y servicios de colaboración.
¿Qué necesita?:
Aunque los requerimientos pueden variar dependiendo de las
características de la empresa, si desea instalar una red con Windows NT
Server necesita:
· Sistema Intel o compatible,
con procesador Pentium o Pentium PRO y 486/33 MHz o superior. 125
megabytes (MB) disponibles en el disco duro. O un sistema basado en
RISC con procesador compatible con Windows NT Server 4.0, 160 MB
disponibles en el disco duro y 16 MB de memoria (RAM).
· Un hub o concentrador; su capacidad depende del número de puertos
que se requieran para la conexión.
· Tarjetas de red.
· Cables para conexión en red.
· Software para el servidor Microsoft Windows NT Server.
· Software para cliente (Windows 95, Windows 98 o Windows NT
Workstation).
· Licencias de Acceso del Cliente para Windows NT Server (para las
computadoras que utilicen los servicios de Windows NT Server).
Si además desea contar con
servicios de mensajería y colaboración, se necesita:
· Microsoft Exchange Server
· Software de cliente, como Microsoft Outlook.
· Licencias de Acceso del Cliente para Microsoft Exchange.
Recuerde que usted también puede
optar por la suite Microsoft Small Business Server, la cual incluye
tanto Microsoft Windows NT Server, como Microsoft Exchange, y representa
la opción más conveniente para empresas con 25 PCs o menos.
Esta lista no es definitiva y es necesario consultar a su proveedor de
hardware y software antes de realizar cualquier compra.
¿Cuáles son los pasos a seguir?:
· Lo primero es definir
claramente sus necesidades, de esta forma estará seguro de que se
instalarán los productos requeridos por su empresa. Asimismo, es
recomendable que elabore un plan de actividades.
· Contacte a un profesional. Aunque el software para redes actual es
fácil de instalar, es conveniente contar con el apoyo de un
profesional para asegurar que todo el proceso se lleve a cabo
adecuadamente.
· Elija a la persona que se encargará de administrar su red. Esta
persona será responsable de la seguridad de la misma, agregará
nuevos usuarios a la red y administrará los recursos comunes, como
impresoras.
· Determine quién tendrá acceso a qué recursos de la red. Esto le
permitirá establecer niveles de acceso y de seguridad.
· Piense en sus dispositivos periféricos, como impresoras. Ya que su
red le permitirá compartir tales recursos, quizás resulte
conveniente adquirir aditamentos de mayor calidad, como una impresora
de color.
· Establezca la clase de respaldos que llevarán a cabo para proteger
su información. Aunque una red basada en un servidor es una excelente
forma de respaldar los datos de las computadoras personales, si no se
realiza un respaldo de la información del servidor y se guarda en un
lugar seguro, usted puede perder todos sus datos. Asegúrese de
realizar estos respaldos con regularidad y encuentre un lugar seguro
para guardarlos.
¿Qué es el WebCyS?:
Es la creación de aplicaciones Cliente/Servidor por medio del Web; es
decir, aplicaciones
donde el cliente simplemente es un browser de Web, en vez de una
aplicación específica.
El WebCyS también es conocido como Cliente/Servidor de 2da Generación,
o como Cliente/Cliente/Servidor, ya que existen tres niveles de
distribución: el servidor, el servidor de Web y el cliente del Web. El
servidor de Web se comporta, entonces, como cliente del servidor.
La forma más sencilla de comprender cómo funciona y para qué sirve,
es plantearse algunas preguntas:
a) ¿Por qué?:
Para cierto tipo de aplicaciones, este esquema de distribución
presenta muchas ventajas sobre el esquema más tradicional
Cliente/Servidor.
· Fácilmente trasportable: Podemos utilizar un único código desde
todo tipo de clientes (Macs, PCs, PDAs (Newton), etc). Por el
contrario, la mayoría de 4GLs apenas soportan dos o tres plataformas
diferentes y con diferencias sustanciables entre ellas.
· Muy escalable: El sistema puede crecer tanto como sea necesario,
tanto en número de clientes como en complejidad de la aplicación; si
falta potencia, añadir más memoria al servidor puede solucionar el
problema. Frecuentemente, las aplicaciones clientes tradicionales,
escritas sobre potentes 4GLs, crecen tanto en funcionalidad, que acaba
siendo necesario que los clientes sean casi tan potentes como los
servidores.
· Muy barato: Los clientes pueden ser sencillos ordenadores, con
apenas memoria y capacidad de proceso. Además, crear paginas HTML es
más sencillo que vérselas con algunos 4GL o APIS.
b) ¿Para qué no
sirve?:
La tendencia general indica que cada vez serán más las aplicaciones
en las que este modelo será válido. Con el uso de applets de Java y
la mejora de los browsers (a los que se les da la posibilidad de ser fácilmente
extensibles), el campo de aplicaciones supcetibles de desarrollarse
por medio de WebCyS será mayor.
Actualmente, aún son mayoría las aplicaciones donde es difícil
aplicar este enfoque. Por lo general, aplicaciones con interfaces
potentes, muy personalizadas y complicadas, con gran necesidad de
interaccionar con el sistema operativo, son todavía totalmente
imposibles de realizar por medio de WebCyS.
c) ¿Cómo se hace?:
La creación de una aplicación C/C/S es tan sencillo como crear un
servidor de Web. La clave está en conectar el servidor de Web por
medio de CGIs, con un servidor de base de datos relacional, que
podamos programar en algún lenguaje PL/SQl, Pro*C, etc.
La base de datos, como en el modelo Cliente/Servidor, contendrá el
modelo de datos relacional y la reglas de integridad de la empresa.
Programaremos los procesos necesarios en nuestro servidor. Estos se
encargarán de dar la funcionalidad a la aplicación.
Empiezan a aparecer productos que integran totalmente la base de datos
y el servidor de Web, como el Oracle Web System o WEB.SQL de Sysbase.
Si ya se tiene una base de datos relacional, una buena solución es
usar Wow, una cgi que conecta un servidor del Web (hhtp 1.*) con una
base de datos relacional Oracle. Con sencillas llamadas a PL/SQL,
podemos programar las páginas y las consultas que éstas deben
realizar.
Wow consiste en un shell script (wow) que hace la función de cgi, un
stub (wowstub) que ejecuta un proceso PL/SQL en la base de datos y
recoge la salida de este proceso, y unos packages que permiten
programar las páginas de Web.
Wow ha sido probado en múltiples plataformas Unix (SunOS, Solaris,
etc) y Windows NT.
Otras soluciones comunes
son:
· Perl 4.036 y Oraperl: El "método antiguo"
de conectar bases de datos Oracle a páginas Web.
· Oracel WWW Interface Kit: Sin duda, la forma de moda. Actualmente
disponible para Solaris.
· Netscape Publishing System: Un paquete compuesto por un servidor
Netscape y un montón de scripts integrados para acceder a una base de
datos Oracle.
· Dynamo: Una base de datos "relacional", especialmente
pensada para browsers y con generación dinámica de páginas.
· AppleScript, DataScript: Para los servidores WebStar (MacOS) es un
mecanismo fácil que permite hacer scripts (cgi's) que conecten con
una base de datos Oracle, Butler o FileMaker.
d) ¿Cómo comenzar?:
Si te propones hacer una aplicación WebCyS rápidamente, la mejor
manera es usar WebStar. Fácilmente, con Apple Script y FileMaker, te
puedes construir algunas CGI's para acceder a las base de datos. Con
esto tendrás un servidor Web capaz de acceder a una base de datos.
El paso siguiente es crear aplicaciones enteras, capaces de generar páginas
de Web dinámicamente, según los resultados de la base de datos. Es
decir, construir verdaderas aplicaciones C/C/S. Oracle WWW Interface
Kit es un gran candidato a tener en cuenta para este tipo de
aplicaciones. Con el Oracle Web Browser, que cuenta con una base de
datos local y es capaz de acceder directamente con SQL*Net a una base
datos Oracle (por ejemplo un servidor local a una zona), y programable
con Oracle Basic, podemos desarrollar verdaderas aplicaciones
Cliente/Servidor de 2da Generación.
Informe general del
Cliente/Servidor:
Introducción:
Las necesidades de información de las empresas aumentan día a día, y
la creciente y necesaria especialización de sus distintos departamentos
nos empujan a desear un mayor control de los datos disponibles. Hoy es
raro encontrar una empresa que no cuente con un ordenador que maneje sus
datos comerciales, administrativos, etc y el reto, consiste en sacar el
máximo provecho de la información que posee.
A medida que la empresa crece, crecen también sus necesidades informáticas
y requieren soluciones ágiles que den respuesta a los requerimientos de
cada momento. Hasta ahora, la única solución era dotar nuestro
ordenador central con más programas hasta su saturación. Con la
concepción clásica del ordenador, en el que las pantallas son simples
terminales, la carga de más programas o más pantallas, significa
disminuir su rendimiento. Téngase en cuenta que, en este tipo de
arquitectura, tanto los datos como los programas residen en un único
ordenador central encargado de ejecutar los programas, atender a los
usuarios y mantener los datos de los ficheros. Como consecuencia, dicho
ordenador tiende a crecer desmesuradamente y no siempre al ritmo
adecuado para la empresa, debido a los elevados costes tanto de compra
como de mantenimiento.
Cliente/Servidor:
La arquitectura de redes y la tecnología Cliente/Servidor rompe con
esta tendencia, propiciando lo que se ha denominado el rightsizing de
nuestro entorno informático o, lo que es lo mismo, el dimensionamiento
correcto.
En una estructura Cliente/Servidor, el servidor solamente gestiona los
datos atendiendo las peticiones de los programas, denominados ahora
clientes; la parte cliente la soporta un ordenador personal que se
encarga de ejecutar los programas que el usuario precisa; esto libera al
servidor de la ejecución de los programas y del control de los
usuarios, tareas que podían ocuparle hasta un 80% de su tiempo.
La ventaja de este sistema es clara. La distribución de tareas permite
aumentos extraordinarios de rendimiento con unos costes menores. A este
menor coste, tanto de compra como de mantenimiento, contribuye además,
el que en esta arquitectura se usan básicamente ordenadores
compatibles, de los que existe una gran oferta en el mercado.
Independencia de plataformas:
Las instalaciones Cliente/Servidor permiten muy diversas configuraciones
para los servidores de datos y para los clientes, sin modificar en
absoluto la programación de dichos clientes, ni alterar los datos del
servidor.
Para el servidor pueden utilizarse sistemas Windows 3.11, Windows 95,
Novell, Windows NT o Unix, con cualquiera de las bases de datos que
funcionan en estos sistemas; para los clientes puede usarse Windows 3.11
o Windows 95.
Por consiguiente, la empresa puede cambiar de plataforma en el momento
en que sus necesidades reales lo requieran, sin cambio alguno en los
programas y con un aprovechamiento íntegro de sus datos, y planificar
de una forma muy flexible sus inversiones informáticas, con la total
garantía de que sus programas y datos no serán alterados.
Información departamental:
La posibilidad de acceder de forma directa a la información del
servidor permite el análisis de los datos a nivel departamental,
evitando en muchos casos, el coste de desarrollo de aplicaciones específicas
para el servidor.
La forma de acceder a los datos es tan directa y fácil como se desee;
en efecto, con una estructura Cliente/Servidor se consigue que una hoja
de cálculo, por ejemplo, acceda a la base de datos del servidor, lea
una selección de datos, nos los muestre automáticamente en forma de
filas y columnas de la hoja y que, al abrirla en el futuro, actualice
dichos datos de forma automática.
La explotación de los datos estadísticos, confección de informes, resúmenes,
gráficos, etc, puede realizarse de forma flexible, personalizada y por
el propio usuario, eliminando así, una parte substancial de las
limitaciones que imponen los sistemas de información clásicos.
La red:
En una arquitectura basada en una red, no pueden olvidarse las ventajas
añadidas que ésta nos aporta en cuanto a flexibilidad de montaje,
ubicación física, crecimiento paulatino, integración ofimática y
compartición de todo tipo de recursos.
El uso de una red simplifica el conexionado de periféricos y reduce,
por tanto, su coste. Permite en los ordenadores cliente, el uso de todo
tipo de programas ofimáticos, como hojas de cálculo, procesadores de
texto, agendas personales, etc y, si se desea, pueden compartirse
recursos (fax, módem, impresoras, discos, etc) y ficheros. La
compartición evita duplicación de recursos, la información redundante
y la circulación de documentación no controlada; asimismo, contribuye
a unificar criterios y beneficia, por tanto, la imagen de la empresa
(carátulas de fax comunes, documentos maestros para formatos de cartas,
etc).
Ahorro de recursos:
· Programas: Los programas y
aplicaciones pueden adquirirse por licencias corporativas para ser
instalados en un único equipo, y usados por todos los usuarios de la
red. El ahorro es aún más evidente en el mantenimiento, ya que
dispondremos de una copia única, en lugar de una en cada terminal de
la red.
· Ocupación de discos: Concentrar los datos en un servidor, y los
programas y aplicaciones en un mismo equipo, disminuye las ocupaciones
del disco duro y, por tanto, también la necesidad de incrementar los
tamaños del disco sin justificación.
· Impresoras: Tal vez es el periférico más costoso del ordenador.
La red nos permite utilizar y compartir cualquier impresora conectada
a un terminal de la misma.
· Periféricos especiales: Una tarjeta de módem/fax y otros periféricos
especiales pueden compartirse en la red y ser usados desde cualquier
terminal.
· Conexión de terminales de pantalla: Los terminales de pantalla
acceden al servidor y se conectan entre sí, a través del cable de la
red, evitando la necesidad de ampliación de las salidas del servidor,
al incrementar los terminales de pantalla conectados.
El correo electrónico:
Una red permite mantener buzones de correo para los
usuarios y departamentos. Esta característica resulta especialmente útil
si existe una necesidad de información y comunicación rápida, y en
organizaciones cuyos usuarios estén ubicados en zonas extensas o en
diversos edificios. Vía el correo electrónico, pueden dejarse avisos a
un departamento o usuario con la seguridad de que serán leídos y, si
se desea, con obligación de ser contestados.
Seguridad:
Un software de gestión de red no hubiera tenido éxito si no dispusiera
de unos exhaustivos controles de seguridad. La información puede
protegerse de manera que solamente los usuarios autorizados puedan
accederla, tanto a nivel de modificación como de consulta. Cada usuario
tiene permisos para acceder solamente a aquella información para la que
ha sido autorizado.
Las copias de seguridad de los archivos, aplicaciones y datos se realiza
de forma centralizada, para evitar la dispersión de responsabilidades y
minimizar los riesgos.
Un elemento de seguridad recomendado es la desconexión de los
dispositivos de copia de los ordenadores personales, excepto aquellos en
que su presencia sea absolutamente necesaria. Esta práctica elimina la
posibilidad de aparición en la red de programas no deseados.
|