jueves, 2 de junio de 2011

Definición de Cliente/Servidor:


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.


No hay comentarios:

Publicar un comentario