Sunteți pe pagina 1din 17

Tecnologa Cliente/Servidor

Universidad Nacional de Trujillo Escuela de Ingeniera de Sistemas


Cliente/Servidor Realmente somos conscientes de lo que esta palabra significa? Cul es la visin real de Cliente/Servidor? (Este documento ha sido elaborado en base a las referencias bibliogrfica del Curso) Antecedentes Las tecnologas informticas han jugado un papel cada vez ms relevante en el desarrollo de las organizaciones, pues no slo han permitido disminuir el tiempo en la ejecucin de sus operaciones, sino tambin en general aumentar la competitividad de la empresa. En los ltimos tiempos se ha venido haciendo un nfasis cada vez mayor en este aspecto, lo cual ha modificado substancialmente el papel que juega la informtica en la empresa, pues adems de ser un elemento de apoyo a las operaciones bsicas se ha constituido en un medio de obtenerlas para no estar en desventaja competitiva. Adems de lo expuesto anteriormente, los tiempos actuales han modificado de manera sustancial la forma de operar de las organizaciones, y esto, de pasada, ha inducido modificaciones en el quehacer de la tecnologa computacional dentro de ellas. Algunos de los aspectos que han cambiado son los siguientes: Las aplicaciones deben ser desarrolladas ms rpido pues los requerimientos organizacionales cambian al mismo ritmo y las aplicaciones deben adaptarse a ellos. Actualmente se dice, por ejemplo, que una aplicacin debe ser desarrollada en un tiempo no mayor de cuatro meses, lo cual contrasta con los dilatados tiempos de desarrollo que usualmente se requeran anteriormente. ltimamente se ha hecho mucho nfasis en la importancia de contar con una buena informacin lo cual ha conducido a destacar el importante papel que juegan tos sistemas de informacin ejecutivos y los sistemas de soporte a las decisiones. Esto contrasta con el nfasis que antiguamente se le daba al procesamiento de datos. Cada vez es ms importante el poder hacer que la informacin est disponible en donde se necesita. Para conseguir esto, tanto la informacin como los sistemas para procesarla deben ser distribuidos a una larga audiencia. A medida que va creciendo la competencia, las organizaciones tienen cada vez menos recursos disponibles para los proyectos internos, incluyendo los sistemas de informacin. Por esta razn las nuevas aplicaciones deben basarse en tecnologas que disminuyan los costos de desarrollo y mantenimiento, en aspectos de hardware, software, operacin, entrenamiento, personal y mantenimiento. Adems se requiere que las nuevas aplicaciones se puedan comunicar con las existentes. Con el fin de aumentar la productividad y de facilitar el uso de las aplicaciones por parte de los usuarios, se requieren interfaces simples e intuitivas, y que proporcionen acceso transparente a la informacin. Cada vez ha sido mayor la tendencia hacia la integracin de los sistemas. Lo usual es encontrar "islas de informacin" en las diferentes dependencias de una empresa, pero se tiende hacia la integracin y hacia la comunicacin entre las aplicaciones de las diferentes empresas. Esto conduce a la necesidad de la interoperabilidad, la cual debe existir entre computadores de diferentes clases y marcas. Cabe destacar que el mundo tiende a la estandarizacin y para eso se han hecho muchos esfuerzos para que las aplicaciones se integren en todos los niveles. Las aplicaciones informticas deben adaptarse al ritmo vertiginoso de desarrollo de la tecnologa, para que puedan aprovechar sus potencialidades. Cada da nacen nuevas tecnologas. Las tecnologas computacionales modernas buscan responder a las necesidades de las organizaciones y para ello plantean nuevas formas de hacer las cosas; entre ellas una de las ms importantes es la llamada Tecnologa Cliente /Servidor.

Arquitecturas Computacionales El termino Arquitectura puede hacer referencia al diseo de una computadora. Sin embargo, en el contexto empresarial significa ms comnmente la distribucin, tanto fsica como lgica, de os recursos de cmputo. Fsicamente se establece cuales tipos de computadores se utilizarn y donde estarn ubicados. Lgicamente se define como se distribuir la carga de procesamiento. Las aplicaciones informticas se apoyan en arquitecturas computacionales que generalmente responden al modelo de la organizacin. Tradicionalmente, las organizaciones han tenido una estructura centralizada y jerrquica. Bajo esta estructura la relacin entre departamentos estaba perfectamente definida. En modelos actuales de organizacin, por el contrario, se articula segn unidades ms operativas y autnomas, que funcionan por cumplimiento de objetivos. Existen menos niveles jerrquicos y las relaciones que existen entre las distintas unidades son ms directas y pueden variar con el tiempo. Pero, por otra parte se tiende a centralizar los datos corporativos que son importantes desde el punto de vista estratgico. Debido a esto, las arquitecturas computacionales se han dividido histricamente en dos tipos de arquitecturas, de extremos opuestos: a decir Arquitectura Centralizada y Arquitectura Distribuida. 1. Arquitectura Centralizada La arquitectura est centralizada en un servidor central al que tienen acceso las estaciones de trabajo. Se configura un modelo de un solo nodo.

Caractersticas funcionales El computador central es el nico de la organizacin que contiene toda la data. Desde el computador central se controla el acceso a mltiples terminales qu estn conectados a travs de productos integrados en la arquitectura de red del suministrador. Los terminales funcionan como una especie de "esclavos" del computador central. Cada usuario tiene un nmero asignado, y derechos y prioridades de ejecucin en la estacin de trabajo, de sus programas o peticiones. Caractersticas fsicas Un nico computador corporativo dimensionado para soportar todos los procesos de la organizacin, todos los datos y las posibles comunicaciones con las estaciones de trabajo. Una gran base de datos donde residen todos los datos de la organizacin. Impresoras y terminales (computadores personales con emulacin de terminal) como puestos de trabajo conectados en grupos (clsteres), al computador central. Caractersticas lgicas Ejecucin de todos los procesos en el computador central. Si la organizacin est dispersa geogrficamente y dispone de comunicaciones, todos los puestos de trabajo estn interconectados al computador central formando una "estrella". Principales ventajas Alto rendimiento transaccional. Alta disponibilidad. Entorno probado y personal experimentado. Control total del computador central, al ser el nico en el Centro de Procesamiento de Datos. Concentracin de todo el personal de explotacin y administracin del sistema en un nico Centro de Proceso de Datos.

Principales Inconvenientes Considerable precio del computador central, al requerirse mucha potencia de tratamiento para dar servicio a todos los usuarios que estn conectados y gran espacio en disco para albergar todos los datos del organismo. Alta dependencia de las comunicaciones, si existen. En caso de cada de una lnea, todos los puestos de trabajo dependientes de dicha lnea quedan inoperantes. Interfaces de usuario de caracteres (no grficos) y, por lo tanto, poco amigables. Arquitecturas propietarias. 2. Arquitectura Distribuida Una arquitectura distribuida es un caso especial de una red de computadoras. Interconecta los lugares que tienen recursos computacionales, para capturar y almacenar datos, procesarlos y enviar datos e informacin a otros sistemas, tales como un sistema central

Caractersticas funcionales Cada usuario trabaja con su terminal local inteligente, con lo que obtiene mejores tiempos de respuesta. Los recursos necesarios que no estn disponibles sobre el terminal local (ordenador personal o estacin de trabajo), pueden tomarse del ordenador central a travs de la red de telecomunicaciones. Caractersticas fsicas Sistemas informticos distribuidos en los que los ordenadores, a travs de la organizacin, estn conectados por medio de una red de telecomunicaciones. Cada ordenador sobre la red tiene capacidad de tratamiento autnomo que permite servir a las necesidades de los usuarios locales. Tambin proporciona acceso a otros elementos de la red o a servidores centrales. Toma importancia la red de comunicacin de datos. Caractersticas lgicas Cada tarea individual puede ser analizada para determinar si puede distribuirse o no. En general, las tareas ms complejas o de carcter estratgico para la organizacin se mantienen en el ordenador central. Tareas de complejidad media o especfica para un determinado grupo de usuarios, se distribuyen entre las mquinas locales de ese grupo. La plataforma fsica seleccionada puede ajustarse a las necesidades del grupo de usuarios, con lo que surgen los ordenadores especializados para determinados tipos de tareas. Principales Ventajas Funcionamiento autnomo de los sistemas locales, lo que origina un buen tiempo de respuesta. Los sistemas de informacin llegan a todos los departamentos de la empresa. Abre posibilidades de trabajo mucho ms flexibles y potentes. Principales Inconvenientes Requiere un intenso flujo de informaciones (muchas veces no tiles, como pantallas y datos incorrectos) dentro de la red, lo que puede elevar los costos de comunicaciones. Supone una mayor complejidad. S los sistemas no estn integrados, pueden producirse problemas de inconsistencia de datos.

En una arquitectura de este tipo el rango de recursos computacionales es variado. Algunos lugares utilizan terminales, otros microcomputadoras, otros incluso, grandes sistemas de cmputo. No existe el requisito de que todo el equipo sea del mismo fabricante. De hecho se espera que estn implicadas varias marcas de hardware. Esto permite al usuario tener el tipo ms adecuado a sus necesidades. Todos los lugares (reciben el nombre de nodos en el procesamiento distribuido) tienen la capacidad de capturar y procesar datos en donde ocurran los eventos. En otras palabras, si un lugar especfico usa una microcomputadora, los usuarios capturan y procesan datos en su minicomputadora. Reciben respuestas rpidas a sus consultas, almacenan datos en el sistema y preparan reportes cuando se necesitan. Sin embargo, tambin pueden transmitir datos o reportes desde su sistema a otro enlazado en la red, compuesta por todos los sistemas interconectados. Un sistema de procesamiento distribuido incluye: Mltiples componentes de procesamiento de propsito general. Pueden asignarse tareas especficas a los sistemas de procesamiento sobre una base dinmica. Los sistemas no necesitan ser de una misma marca o tamao. Sistema operativo de alto nivel. Los nodos de procesamiento individual tienen su propio sistema operativo, el cual est diseado para la computadora especfica. Pero tambin hay un sistema operativo que los enlaza e integra al control de los componentes distribuidos. Distribucin fsica de los componentes.- Las computadoras y otras unidades de procesamiento estn separadas fsicamente. Interactan entre s por medio de una red de comunicaciones. Transparencia del sistema.- Los usuarios no conocen la ubicacin de un componente en el sistema distribuido o nada de su fabricante, modelo, sistema operativo local, velocidad o tamao. Todos los servicios se piden por su nombre. El sistema operativo distribuido lleva a cabo todas las actividades que implican la ubicacin fsica y atributos de procesamiento para satisfacer la demanda del usuario. Papel dual de los componentes.- Los componentes individuales de procesamiento pueden operar independientemente del marco de trabajo del sistema distribuido El Modelo de Sistema Abierto En los primeros aos de la computacin empresarial cuando una empresa decida comprar un equipo no poda evitar quedar casada con la compaa vendedora, pues esta era la nica que poda prestar servicios de mantenimiento y actualizacin. Dado que los equipos de diferentes vendedores no tenan nada en comn, cualquier desarrollo posterior a la primera compra implicaba compras al mismo vendedor, por factores de compatibilidad. Por esta razn se reduca la competencia, pues las grandes compaas acaparaban el mercado y los clientes no podan cambiar de proveedor. Con este panorama surgi la idea de la implantacin de estndares, porque ellos posibilitan el intercambio de informacin de manera coherente entre productos de diferentes vendedores. Esto permite a nuevos proveedores la oportunidad de entrar al mercado y a los clientes la oportunidad de cambiar de proveedor. Con el establecimiento de estndares aparecieron los sistemas abiertos. Un sistema abierto es un medio en donde es posible el intercambio de componentes de software y hardware, dndonos la posibilidad de escoger productos de acuerdo a nuestras necesidades y fomentando la competencia entre proveedores, que deben mejorar sus servicios para ganar nuestras preferencias. Un sistema abierto cuenta con las siguientes propiedades: Interoperabilidad: Componentes de mltiples proveedores pueden intercambiar informacin, por medio de interfaces bien definidas, reduciendo el costo de interconexin e integracin. Portabilidad: Permite a un sistema instalado en un medio, ser instalado en otro, minimizando el costo de la migracin. Integracin: Permite el compartir e intercambiar la informacin, con consistencia de comportamiento y presentacin. Los sistemas abiertos son la plataforma adecuada para desarrollo de aplicaciones distribuidas, porque se pueden combinar las ventajas de diferentes mquinas y sistemas operacionales. Para

implementar el intercambio de informacin el modelo de comunicacin ms popular es el modelo cliente servidor, el cual permite que el usuario invoque servicios de forma transparente. Tecnologa Cliente/Servidor: Definicin Actualmente Cliente/Servidor es un trmino muy utilizado en el terreno informtico, an as no hay un consenso en el significado del trmino. Sin embargo la siguiente definicin puede servir de partida para formamos luego nuestra propia definicin. "Cliente/Servidor es un modelo computacional en donde existe un elemento llamado Cliente que solicita un servicio a otro elemento llamado Servidor, quien se va a encargar de atender el servicio solicitado". En este modelo, la solicitud del servicio y la respuesta al mismo se denomina "mensaje"

Debemos observar que, el concepto cliente/servidor es muy genrico, y que puede ser entendido incluso en el mbito de una sola mquina, donde unas aplicaciones pueden prestar servicio a otras. Sin embargo, su significado desde el punto de vista informtico suele presuponer la existencia de varias mquinas (al menos dos) unidas en una red. Desde el punto de vista funcional se puede decir que el modelo cliente/servidor responde como una arquitectura distribuida que permite a los usuarios finales obtener acceso a la informacin en forma transparente aun en entornos multiplataforma. Fsicamente en un sistema distribuido cada mquina puede cumplir el rol de servidor para algunas tareas y el rol de cliente para otras. La idea es tratar a una computadora como un instrumento, que por s sola pueda realizar muchas tareas, pero con la consideracin de que realice aquellas que son ms adecuadas a sus caractersticas. Si esto se aplica tanto a clientes como servidores se entiende que la forma ms estndar de aplicacin y uso de sistemas clientes/servidores es mediante la explotacin de las PC a travs de interfaces grficas de usuario; mientras que la administracin de datos y su seguridad e integridad se deja a cargo de computadoras centrales tipo mainframe. Los Clientes interactan con el usuario, usualmente en forma grfica. Frecuentemente se comunican con procesos auxiliares que se encargan de establecer conexin con el servidor, enviar el pedido, recibir la respuesta, manejar las fallas y realizar actividades de sincronizacin y de seguridad. Los Servidores proporcionan un servicio al cliente y devuelven los resultados. En algunos casos existen procesos auxiliares que se encargan de recibir las solicitudes del cliente, verificar la proteccin, activar un proceso servidor para satisfacer el pedido, recibir su respuesta y enviarla al cliente. Adems deben manejar los interbloqueos, la recuperacin ante fallas, y otros aspectos afines. Por las razones anteriores la plataforma computacional asociada con los servidores es ms poderosa que la de los clientes. Por esta razn se utilizan PCs poderosos, estaciones de trabajo, minicomputadores o sistemas grandes. Adems deben manejar servicios como administracin de la red, mensajes, control y administracin de la entrada al sistema ("login"), auditora y recuperacin y contabilidad. Usualmente en los servidores existe algn tipo de servicio de bases de datos. Para que los clientes y los servidores puedan comunicarse se requiere una infraestructura de comunicaciones, la cual proporciona los mecanismos bsicos de dreccionamiento y transporte. La mayora de los sistemas Cliente/Servidor actuales se basan en redes locales y por lo tanto utilizan protocolos no orientados a conexin, lo cual implica que las aplicaciones deben hacer las verificaciones. La red debe tener caractersticas adecuadas de desempeo, confiabilidad, transparencia y administracin. Como ejemplos de clientes pueden citarse interfaces de usuario para enviar comandos a un servidor, APIs para el desarrollo de aplicaciones distribuidas, herramientas en el cliente para hacer acceso a

servidores remotos (por ejemplos servidores de SQL) o aplicaciones que solicitan acceso a servidores para algunos servicios. Como ejemplos de servidores pueden citarse servidores de ventanas como X-windows, servidores de archivos como NFS, servidores para el manejo de bases de datos, como los servidores de SQL, servidores de diseo y manufactura asistidos por computador, etc. Caractersticas de Cliente/Servidor Como se desprende de las definiciones anteriores, tanto clientes como servidores son entidades independientes que operan conjuntamente a travs de una red para realizar una tarea. Pero para hacer la distincin respecto de otras formas de arquitecturas o software distribuidos, se presenta una lista de caractersticas que debieran cumplir los sistemas cliente/servidor: Servicio: Cliente/servidor es fundamentalmente una relacin entre procesos ejecutados en aparatos distintos. El proceso del servidor hace de ste un proveedor de servicios. El cliente es un consumidor de servicios. En esencia, cliente/servidor aporta una clara distincin de funciones con base en la idea del servicio. Recursos compartidos: Un servidor puede atender a muchos clientes al mismo tiempo y regular su acceso a recursos compartidos. Protocolos asimtricos: Entre clientes y servidores se establece una relacin de "muchos a uno" Son siempre los clientes lo que inician el dilogo al solicitar un servicio. Los servidores aguardan pasivamente las solicitudes de los clientes. Transparencia de ubicacin: El servidor es un proceso que puede residir en el mismo aparato que el cliente o en un aparato distinto a lo largo de una red. El software de cliente/servidor suele ocultarles a los clientes la ubicacin del servidor mediante un redireccionamiento de las llamadas a servicios en caso necesario. Un programa puede ser un cliente, un servidor o ambos. Mezcla e igualdad: El software ideal de cliente/servidor es independiente del hardware o de las plataformas de software del sistema operativo. Debemos estar en condiciones de mezclar e igualar plataformas de cliente y de servidor Intercambios basados en mensajes: Clientes y servidores son sistemas holgadamente acoplados que interactan a travs de un mecanismo de transmisin de mensajes. El mensaje es el mecanismo de entrega para las solicitudes y respuestas de servicio. Encapsulamiento de servicio: El servidor es un "especialista". Un mensaje le ndica a un servidor qu servicio se solicita; ste se le enva luego al servidor para determinar el cumplimiento de la tarea. Los servidores pueden ser sustituidos sin afectar a los clientes, siempre y cuando la interfaz para la publicacin del mensaje no cambie. Facilidad de escalabilidad: Los sistemas de cliente/servidor pueden escalar horizontal o verticalmente. La escalabilidad horizontal significa la adicin o eliminacin de estaciones de trabajo del cliente con apenas un ligero impacto en el desempeo. La escalabilidad vertical significa migrar a un aparato servidor ms grande y ms veloz a servidores mltiples. Integridad: El cdigo del servidor y los datos de! servidor se conservan centralmente, lo que resulta en un mantenimiento de menor costo y en la proteccin de la integridad de los datos compartidos. Al mismo tiempo, los clientes mantienen su individualidad e independencia. Cliente/Servidor: Ventajas Desventajas Entre las primeras cosas que decir de cliente/servidor, es poder destacar que estamos frente a una plataforma abierta por excelencia. Ciertamente las posibilidades de igualar o nivelar distintos productos o aplicaciones o componentes de distintos proveedores nos brinda la oportunidad de hacer una muy amplia variedad de combinaciones de clientes y servidores. Pero esta gran variedad de posibilidades de combinacin implica que debemos tener en cuenta tambin una gran cantidad de elementos a considerar y evaluar al momento de enfrentar una solucin informtica basada en la arquitectura cliente/servidor. Podemos agrupar bsicamente en dos aspectos la problemtica cliente/servidor: Qu plataforma elegir? Qu herramientas de desarrollo elegir?

La primera pregunta tiene relacin con la respuesta a cuestiones aun ms especficas como ser Qu plataforma cliente elegir? Qu plataforma servidor? Qu clase de middleware? Qu administrador o servidor de base de datos? Sobre qu arquitectura de computacin distribuida se tendr que montar la solucin? El segundo aspecto tiene relacin con la toma de decisiones sobre el rea de desarrollo y herramientas de cliente/servidor. Si bien es cierto que la mayor ventaja de esta tecnologa es la flexibilidad en cuanto a que podemos elegir entre muchas opciones, esto mismo nos obliga a tener conocimientos importantes para la integracin de las mismas, dado que el desarrollo de aplicaciones cliente/servidor requiere del manejo de elementos en el rea de diseos de bases de datos, comunicacin entre procesos, procesamiento de transacciones, generacin de GUI (interfaces grficas de usuarios) y para que hablar de Internet, con clientes y servidores distribuidos a lo largo de la Web. Ventajas: Uno de los aspectos que ms ha promovido el uso de sistemas Cliente/Servidor es la existencia de plataformas de hardware cada vez ms baratas. Esta constituye a su vez una de las ms palpables ventajas de este esquema, la posibilidad de utilizar mquinas considerablemente ms baratas que las requeridas por una solucin centralizada, basada en sistemas grandes. Adems de lo anterior, se pueden utilizar componentes, tanto de hardware como de software, de varios fabricantes, lo cual contribuye considerablemente a la reduccin de costos y favorece la flexibilidad en la implantacin y actualizacin de soluciones. Adems de lo anterior, el esquema Cliente/Servidor facilita la integracin entre sistemas diferentes y compartir informacin, permitiendo, por ejemplo que las mquinas ya existentes puedan ser utilizadas pero utilizando interfaces ms amigables al usuario. De esta manera podemos, por ejemplo, integrar PCs con sistemas medianos y grandes, sin que todas las mquinas tengan que utilizar el mismo sistema operacional. Al favorecer el uso de interfaces grficas interactivas, los sistemas construidos con este esquema tienen una interaccin ms intuitiva con el usuario. S se utilizan interfaces grficas para interactuar con el usuario, el esquema Cliente/Servidor presenta la ventaja, con respecto a uno centralizado, de que no es siempre necesario transmitir informacin grfica 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 ms rpido el mantenimiento y el desarrollo de aplicaciones pues se pueden emplear las herramientas existentes (por ejemplo los servidores de SQL o las herramientas de ms bajo nivel como los sockets o el RPC). La estructura inherentemente modular facilita adems la integracin de nuevas tecnologas y el crecimiento de la infraestructura computacional, favoreciendo as la escalabilidad de las soluciones. El esquema Cliente/Servidor contribuye adems a proporcionar a los diferentes departamentos de una empresa soluciones locales, pero permitiendo adems la integracin de la informacin relevante a nivel global Desventajas: Por una parte, el mantenimiento de los sistemas es ms difcil pues implica la interaccin de diferentes partes de hardware y de software, distribuidas por distintos proveedores, lo cual dificulta el diagnstico de fallas. Adems de lo anterior, se cuenta con muy escasas herramientas para la administracin y ajuste del desempeo de los sistemas. En el desarrollo de aplicaciones Cliente/Servidor se deben tener en cuenta diferentes aspectos, que se mencionan a continuacin. o Por un lado, 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.

Adems 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 preocupacin importante. En este caso los mecanismos son distintos que en el caso de los sistemas centralizados. Por ejemplo, se deben hacer verificaciones en el cliente y en el servidor. Tambin se puede recurrir a otras tcnicas como el encriptamiento. El desempeo es otro de los aspectos que se deben tener en cuenta en ei esquema Cliente/Servidor. Problemas de este estilo pueden presentarse por congestin en la red, dificultad de predecir el trfico, etc. Un aspecto directamente relacionado con el anterior es el de cmo distribuir los datos en la red. En el caso de una empresa, por ejemplo, este puede ser hecho por departamentos, geogrficamente, o de otras maneras. Adems hay que tener en cuenta que en algunos casos, por razones de confiabilidad o eficiencia se pueden tener datos replicados, y que puede haber actualizaciones simultneas. A otro nivel, una de las decisiones que deben tomar las organizaciones es la de si compran o desarrollar los diferentes componentes.

Cliente/Servidor: Elementos del Modelo Como se ha venido diciendo, cliente/servidor es un modelo basado en la idea del servicio, en el que el cliente es un proceso consumidor de servicios y el servidor es un proceso proveedor de servicios. La siguiente figura muestra los elementos que conforman el modelo

Adems esta relacin est establecida en funcin del intercambio de mensajes que es el nico elemento de acoplamiento entre ambos. De estas lneas se desprenden los tres elementos fundamentales sobre los cuales se desarrollan e implantan los sistemas cliente/servidor: el proceso cliente que es quien inicia el dilogo, el proceso servidor que pasivamente espera a que lleguen peticiones de servicio y el middleware que corresponde a la interfaz que provee la conectividad entre el cliente y el servidor para poder intercambiar mensajes. El Cliente El cliente es el proceso que permite al usuario formular los requerimientos y pasarlos al servidor, se lo conoce con el trmino front-end. Este normalmente maneja todas las funciones relacionadas con la manipulacin y despliegue de datos, por lo que estn desarrollados sobre plataformas que permiten construir interfaces grficas de usuario (GUI), adems de acceder a los servicios distribuidos en cualquier parte de la red. Las funciones que lleva a cabo el proceso cliente se resumen en los siguientes puntos: Administrar la interfaz de usuario. Interactuar con el usuario. Procesar la lgica de la aplicacin y hacer validaciones locales. Generar requerimientos de bases de datos. Recibir resultados del servidor. Formatear resultados. Tipos de Clientes a. Clientes sin GUI. Estos clientes presentan una interfaz simple y generan solicitudes al servidor con un mnimo de interacciones humanas. Son ejemplos de este tipo de clientes las mquinas de fax, los telfonos celulares.

b. Clientes con GUI. Presentan una interfaz grfica que se basa en la ejecucin previa de dilogos como mens, ventanas desplegables y barras de desplazamiento. Son ejemplo de estos clientes los terminales que ejecutan aplicaciones visuales. c. Clientes con OOUI. Se trata de una interfaz altamente icnica que ofrece acceso a informacin en formatos sumamente visuales. Como ejemplo tenemos las consolas de administracin de sistemas y los sistemas de capacitacin basados en multimedia. El Servidor Es el proceso encargado de atender a mltiples clientes que hacen peticiones de algn recurso administrado por l. Al proceso servidor se lo conoce con el trmino back-end. El servidor normalmente maneja todas las funciones relacionadas con la mayora de las reglas del negocio y los recursos de datos. Las funciones que lleva a cabo el proceso servidor se resumen en los siguientes puntos: Aceptar y procesar los requerimientos que hacen los clientes sobre archivos, pginas web, objetos de bases de datos. Formatear datos para trasmitirlos a los clientes. Procesar la lgica de la aplicacin y realizar validaciones a nivel de bases de datos. Tipos de Servidores Por la naturaleza del servicio podemos clasificar a los servidores de la siguiente manera: a. Servidor de Archivos. El cliente enva solicitudes de registros de archivos al servidor de archivos a travs de una red. El servidor hace llegar todos los registros al diente para que este encuentre sus propios datos. Son tiles para compartir archivos por medio de una red. Son indispensables para compartir documentos, imgenes, planos y objetos de gran dimensin b. Servidor de Base de Datos El Cliente enva solicitudes de SQL en calidad de mensajes al servidor de bases de datos. Los resultados de cada orden SQL son devueltos por la red. El cdigo que procesa la solicitud SQL y los datos residen en el servidor El servidor hace uso de su propia capacidad de procesamiento para encontrar los datos solicitados, en lugar de hacer llegar todos los registros al cliente. El resultado es un uso ms eficiente de la capacidad de procesamiento distribuido c. Servidor de Transacciones El Cliente invoca procedimientos remotos que residen en el servidor con un mecanismo de base de datos SQL. El intercambio por la red consiste en un solo mensaje de solicitud/respuesta a diferencia del Servidor de Bases de Datos que utiliza un mensaje de solicitud/respuesta para cada instruccin SQL en una transaccin. En el servidor los enunciados de SQL aciertan o fallan todos como una rola unidad. (Transacciones) d. Servidor de Groupware El groupware dirige la administracin de informacin semiestructurada como texto, imagen, correo y flujos de trabajo. (Contacto directo entre personas) El servidor aloja un software que entre varias aplicaciones ms permite la administracin de documentos, el proceso de imgenes, correo interno, las aplicaciones multicompartida y el flujo de trabajo. Los ejemplos ms conocidos son los productos software como Lotus Notes y MS Echange Server e. Servidor de Objetos Con un servidor de objetos, las aplicaciones se generan como un conjunto de objetos de comunicacin. Los objetos del cliente se comunican con los objetos del servidor por medio de un corredor de solicitudes de objetos (ORB: Object Request Broker).

f.

El cliente invoca un mtodo de un objeto remoto. El ORB localiza una instancia de esta clase de servidor de objetos, invoca el mtodo solicitado y devuelve los resultados al objeto del cliente. Ejm: COREA, DCOM de Microsoft Servidor Web En este modelo cliente/servidor est integrado por clientes "universales" en comunicacin con servidores sper amplios. En su modalidad ms simple, el servidor Web enva documentos cuando los clientes lo solicitan por su nombre. Clientes y servidores se comunican mediante un protocolo HTTP. Este servidor combina el Web con los Objetos Distribuidos. (Object Web)

El Middleware En su definicin ms simple, middleware es la interfaz que provee la conectividad entre aplicaciones clientes y aplicaciones servidoras, y entre aplicaciones y bases de datos. Es una capa de software que protege a los desarrolladores de tener que manejar detalles de bajo nivel de diferentes protocolos de comunicacin, sistemas operativos y arquitecturas de bases de datos. Este tipo de interfaces incluyen API's, PRC's, Pipes, mensajera de red y accesos a bases de datos. Tipos de Middleware a. Middleware de servicio general. Es el sustrato de la mayora de las interconexiones de cliente/servidor. Incluye las pilas de comunicacin, directorios distribuidos, servicios de autenticacin, llamadas a procedimientos remotos y servicios en cola. Esta categora incluye tambin las extensiones del sistema operativo para redes, como los servicios distribuidos de archivos e impresin. Entre los productos que pertenecen a esta categora tenemos: NetWare, Named Pipes, TCP/IP y NetBios. b. Middleware de servicios especficos. Es necesario para cumplir con tipos particulares de servicios. Pertenecen a esta categora: El middleware para base de datos como ODBC, el middleware para OLTP como ATMI y TxRPC. El middleware para Groupware como MAPI y las Llamadas de Lotus Notes. El middleware para objetos como CORBA de OMG y DCOM de Microsoft. El middleware para Internet como http Cliente/Servidor: Clasificacin Uno de ios aspectos claves para entender la tecnologa cliente/servidor, y por lo tanto contar con la capacidad de proponer, promocionar y llevar a cabo soluciones de este tipo, es llegar a conocer la arquitectura de este modelo y los conceptos o ideas asociados al mismo. Ms all de comprender ios componentes Cliente - Middleware - Servidor, es preciso analizar ciertas relaciones entre stos, que pueden definir el tipo de solucin que se ajusta de mejor forma a las estadsticas y restricciones acerca de los eventos y requerimientos de informacin que se obtuvieron en la etapa de anlisis de un determinado proyecto. De hecho el analista o lder deber conocer estos eventos/restricciones del negocio para, a partir de all, hacer las consideraciones y estimaciones de la futura configuracin, teniendo en cuenta aspectos como por ejemplo, la oportunidad de la informacin, tiempo de respuesta, tamaos de registros, tamao de bases de datos, estimaciones del trfico de red, distribucin geogrfica tanto de los procesos como los datos, etc. En tal sentido se presenta, en primer lugar, un esquema de clasificacin en funcin de los aspectos funcionales que conforman forman las aplicaciones informticas: Presentacin, Lgica y Datos. Veremos como se pueden encontrar hasta 5 clasificaciones segn las funciones que asuman el Cliente y el Servidor. Seguidamente se estudiara una clasificacin basada en los conceptos de Fat Client (Thin Server) y Fat Server/Thin Client) para luego exponer una tercera forma de clasificar al modelo bajo el concepto de Capas o Plano: Two Tier, Three Tier, Multi Tier. Cabe sealar que todos estos criterios y conceptos estn bastante generalizados y sobrecargados de definiciones, pero que se consideran necesarios y tiles para la aplicacin del modelo cliente/servidor.

1. Por Aspectos Funcionales Este tipo de clasificacin se basa en los grados de libertad que brinda el modelo cliente/servidor para balancear la carga de proceso entre os niveles de presentacin, aplicacin y base de datos. Para entender en forma ms ordenada y clara los conceptos y elementos involucrados en esta tecnologa se puede aplicar una descomposicin o arquitectura de niveles. Esta descomposicin principalmente consiste en separar los elementos estructurales de esta tecnologa en funcin de aspectos ms funcionales de la misma: Nivel de Presentacin: Agrupa a los elementos asociados al componente Cliente. Se centra en la interaccin con el usuario. GUI's y orientada cada vez ms a objetos

Nivel de Aplicacin: Agrupa a todos los elementos asociados al cdigo que ejecuta y hace cumplir las polticas del sistema. Calcula y determina el flujo de la aplicacin.

Nivel de base de datos: Agrupa a todas las actividades asociadas al acceso de los datos. Administra informacin que debe permanecer entre sesiones o compartirse entre los usuarios

Este modelo de descomposicin en niveles, permite introducir la discusin del desarrollo de aplicaciones en arquitecturas de software en cinco niveles segn las funciones que asumen el cliente y el servidor. Tenemos Presentacin Distribuida Presentacin Remota Proceso Distribuido Base de Datos Remota y Base de Datos Distribuida

2. Por el Tamao de los Componentes Dependiendo de qu segmento de las capas de software tenga que soportar la mayor o menor carga de procesamiento, se habla de Fat Cliente (Thin Server) o Fat server (Thin Client). Consideraciones de este tipo son muy importantes al momento de tomar la decisin sobre una plataforma de desarrollo/explotacin, al punto que pueden definir la viabilidad o no de las mismas para enfrentar un cierto nmero de restricciones impuestas por una problemtica. Fat Client (Thin Server) En este esquema de arquitectura el grueso de la aplicacin es ejecutada en el cliente, es decir, el nivel de presentacin y el nivel de aplicacin corren en un nico proceso cliente, y el servidor es relegado a realizar las funciones que provee un administrador de base de datos.

En general este tipo de arquitectura tiene mejor aplicacin en sistemas de apoyo de decisiones (DSS: Decisin Support System) y sistemas de informacin ejecutiva (EIS: Executive Information System), y como se concluir ms adelante, tiene pocas posibilidades de aplicarse en sistemas de misin crtica. Fat Server (Thin Client) Este es el caso opuesto al anterior, el proceso cliente es restringido a la presentacin de la interfaz de usuario, mientras que el grueso de la aplicacin corre por el lado del servidor de aplicacin.

En general este tipo de arquitectura presenta una flexibilidad mayor como para desarrollar un gran espectro de aplicaciones, incluyendo los sistemas de misin crtica a travs de servidores de transacciones. 3. Por planos o capas (Tier) Una de las ms comunes y discutidas distinciones entre las diferentes arquitecturas cliente/servidor se basan en la idea de planos (tier), la cual es una variacin sobre la divisin o clasificacin por tamao de componentes (clientes grandes y servidores amplios). Esto se debe a que se trata de definir el modo en que las prestaciones funcionales de la aplicacin sern asignadas, y en que proporcin, tanto al cliente como al servidor. Dichas prestaciones se deben agrupar entre los tres componentes clsicos para cliente/servidor: interfaz de usuario, lgica de negocios y los datos compartidos, cada uno de los cuales corresponde a un plano. Dentro de esta categora tenemos las aplicaciones en dos planos (two-tier), tres planos (three-tier) y multi planos (mult- tier). Este enfoque o clasificacin es el ms generalizado y el que ms se ajusta a los enfoques modernos, dado que se fundamenta en los componentes lgicos de la estructura cliente/servidor y en la madurez y popularidad de la computacin distribuida. Por ejemplo, esto permite hablar de servidores de aplicacin distribuidos a io largo de una red, y no tiene mucho sentido identificar a un equipo de hardware como servidor, si no ms bien entenderlo como una plataforma fsica sobre la cual pueden operar uno o ms servidores de aplicaciones. a. Cliente/Servidor Dos Planos. Esta estructura se caracteriza por la conexin directa entre el proceso cliente y un administrador de bases de datos. Dependiendo de donde se localice el grupo de tareas correspondientes a la lgica de negocios se pueden tener a su vez dos tipos distintos dentro de esta misma categora: Implementado con SQL Remoto En este esquema el cliente enva mensajes con solicitudes SQL al servidor de bases de datos y el resultado de cada instruccin SQL es devuelto por la red, no importando si son uno, diez, cien o mil registros. Es el mismo cliente quien debe procesar todos los registros que le fueron devueltos por el servidor de base de datos, segn el requerimiento que l mismo hizo.

Esto hace que este tipo de estructura se adece a los requerimientos de aplicaciones orientadas a los sistemas de apoyo y gestin, pero resultan inadecuados para los sistemas crticos en que se requieran bajos tiempos de respuesta. Ventajas: Presenta una estructura de desarrollo bastante simple por cuanto el programador tpicamente maneja un nico ambiente de desarrollo (es ms simple respecto de cliente/servidor en tres pianos, puesto que reduce una capa de programacin, como se ver ms adelante). Desventajas: La gran cantidad de informacin que viaja al cliente congestiona demasiado el trfico de red, lo que se traduce en bajo rendimiento. Por su bajo rendimiento esta estructura tiene un bajo espectro de aplicacin, limitndose a la construccin de sistemas no crticos. Implementado con Procedimientos Almacenados En este esquema el cliente enva llamadas a funciones que residen en la base de datos, y es sta quien resuelve y procesa la totalidad de las instrucciones SQL agrupadas en la mencionada funcin. Ventajas: Presenta las mismas ventajas de una arquitectura dos planos con procedimientos almacenados, pero mejora considerablemente el rendimiento sobre sta, dado que reduce el trfico por la red al procesar los datos en la misma base de datos, haciendo viajar slo el resultado final de un conjunto de instrucciones SQL. Desventajas: Si bien la complejidad de desarrollo se ve disminuida, se pierde flexibilidad y escalabildad en las soluciones implantadas (especialmente respecto de cliente/servidor en tres planos, como se ver mas adelante). Obliga a basar el grueso de la aplicacin en SQL extendido, propios del proveedor de la base de datos que se elija. Debiera considerarse que s bien los procedimientos almacenados (stored procedures), los desencadenantes (triggers) y las reglas (constraint) son tiles, en rigor son ajenos al estndar de SQL: No existen dos implementaciones de proveedores iguales. El lenguaje para la descripcin de los procedimientos almacenados y probablemente su funcionalidad vara de un proveedor a otro. Lo que implica que los procedimientos almacenados no son totalmente exportables entre plataformas de distintos proveedores. Se pierde la independencia entre el cdigo de la aplicacin (conocimiento y reglas del negocio) y los datos. b. Cliente/Servidor Tres Planos. Esta estructura se caracteriza por elaborar la aplicacin en base a dos capas principales de software, ms la capa correspondiente al servidor de base de datos. Al igual que en la arquitectura dos capas, y segn las decisiones de diseo que se tomen, se puede balancear la carga de trabajo entre el proceso cliente y el nuevo proceso correspondiente al servidor de aplicacin.

En este esquema el cliente enva mensajes directamente al servidor de aplicacin el cual debe administrar y responder todas las solicitudes. Es el servidor, dependiendo del tipo de solicitud, quien accede y se conecta con la base de datos. Ventajas: Reduce el trfico de informacin en la red por lo que mejora el rendimiento de los sistemas (especialmente respecto de la estructura en dos pianos). Brinda una mayor flexibilidad de desarrollo y de eleccin de plataformas sobre la cual montar las aplicaciones. Provee escalabilidad horizontal y vertical. Se mantiene la independencia entre el cdigo de la aplicacin (reglas y conocimiento del negocio) y los datos, mejorando la portabilidad de las aplicaciones. Los lenguajes sobre los cuales se desarrollan las aplicaciones son estndares lo que hace ms exportables las aplicaciones entre plataformas. Dado que mejora el rendimiento al optimizar el flujo de informacin entre componentes, permite construir sistemas crticos de alta confiabilidad. El mismo hecho de localizar las reglas del negocio en su propio ambiente, en vez de distribuirlos en la capa de interfaz de usuario, permite reducir el impacto de hacer mantenimiento, cambios urgentes de ltima hora o mejoras al sistema. Disminuye el nmero de usuarios (licencias) conectados a la base de datos. Desventajas: Dependiendo de la eleccin de los lenguajes de desarrollo, puede presentar mayor complejidad en comparacin con cliente/servidor dos planos. Existen pocos proveedores de herramientas integradas de desarrollo con relacin al modelo cliente/servidor dos planos, y normalmente son de alto costo. Debido a estas desventajas es aqu la mayor importancia del Generador (aplicacin creada en el presente trabajo). La siguiente figura muestra la evolucin de los modelos de procesamiento.

Cliente/Servidor Para todo tamao El modelo cliente/servidor satisface un amplio espectro de necesidades con solo tres elementos: el cliente, el middleware y el servidor. Podemos tener la disposicin de estos tres elementos en cuatro situaciones: Cliente/servidor para microempresas.- Es una implementacin de elementos en la que el cliente, el middleware y la mayora de los servicios de negocios corren en la misma mquina. Esta implementacin se sugiere para empresas individuales, oficinas domsticas y usuarios mviles con laptops bien dotadas. Cliente/servidor para pequeas empresas y departamentos.- Implementacin clsica de elementos cliente/servidor nico de Ethernet. Se emplea en pequeas empresas, departamentos y sucursales. Es la modalidad de cliente/servidor que predomina en la actualidad. Cliente/servidor para empresas intergalcticas.- Implementacin de elementos de cliente/servidor de servidores mltiples. Los servidores le presentan al cliente una imagen de sistema nico. Se les puede dispersar a todo lo largo de la empresa, a pesar de lo cual es posible lograr que parezca formar parte del escritorio local. Cliente/servidor para un mundo post-caresta.- Implementacin que transforma a todas las mquinas del mundo en cliente y servidor al mismo tiempo. Los agentes personales de cada mquina manejarn todas las negociaciones con otros agentes en cualquier punto del universo. Perspectiva actual de Cliente/Servidor En esta era de cliente/servidor habr clientes por todas partes. Adoptarn todas las formas y tamaos, desde escritorios, microcomputadoras de bolsillo, aparatos elctricos inteligentes, comunicadores personales mviles, televisores, robots, tableros de instrumentos de automvil y PC en Internet hasta la inimaginable constelacin de dispositivos necesitados de informacin an por inventar. Dondequiera que se encuentren, estos clientes obtendrn los servicios de millones de servidores.

En este valeroso mundo nuevo, cada cliente podr ser al mismo tiempo servidor. El entorno cliente/servidor es una forma lgica de trabajar: el cliente utiliza una informacin que est en un servidor. Esto va a existir siempre como concepto; lo que ocurre es que esa tecnologa se desarrolla y entra en escena Internet, que funciona en modo cliente/servidor. Lo que ocurre es que cuando se hablaba antes de cliente/servidor se hablaba tambin de las famosas LANs y de Ethernet como una de las tecnologas de comunicaciones de redes locales. Cuando lleg la Web fue cuando las comunicaciones, sin huir del concepto cliente/servidor, tuvieron que comenzar a encararse a nuevos problemas, como el hecho de que ya no hay un concepto servidor nico. Pero esto no significa que un entorno haya sustituido al otro, sino que la Web siempre mantendr el concepto cliente/servidor, aunque s es claro que se ha reorganizado la lgica de las aplicaciones en distintos niveles. La Web tapa el concepto de entorno cliente/servidor, pero est ah. Cliente/Servidor: Ofertas Comerciales Cliente/servidor, el gran igualador del ramo de la computacin, alienta la apertura y representa un campo de juego nivelado en el que puede participar una amplia variedad de plataformas de cliente y

servidor. El entorno de cliente/servidor abierto acta como un catalizador para la "conversin en mercancas" del hardware y el software del sistema. La PC es un buen ejemplo de mercanca de cmputo, puede obtenrsele con mltiples proveedores y se le vende en situaciones de mercado de precios sumamente competitivos. Los adaptadores de LAN, las pilas de protocolos de LAN, los enrutadores de redes y los puentes tambin se estn convirtiendo en mercancas. En lo que se refiere al software: los sistemas operativos de PC, los sistemas de administracin de bases de datos y los servidores y visualizadores Web se acercan cada vez ms a la categora de mercancas. CORBA, Network OLE y el entorno de computacin distribuida (DCE: ciistributed computing environment) convertirn rpidamente en mercancas a los objetos distribuidos, el software de directorio en red, los servicios de seguridad y la administracin de los sistemas. Pero, dnde se encuentran los grandes diferenciadores que distinguirn a los proveedores en este entorno de mercancas altamente competitivo? Qu suceder con los proveedores cuando la computacin cliente/servidor con precios de mercancas satisfaga la necesidad de la computacin tal como 1a conocemos ahora?

S-ar putea să vă placă și