Anda di halaman 1dari 9

El Modelo Cliente Servidor El modelo cliente-servidor de un sistema distribuido es el modelo ms conocido y ms ampliamente adoptado en la actualidad.

Hay un conjunto de procesos servidores, cada uno actuando como un gestor de recursos para una coleccin de recursos de un tipo, y una coleccin de procesos clientes, cada uno llevando a cabo una tarea que requiere acceso a algunos recursos hardware y software compartidos. Los gestores de recursos a su vez podran necesitar acceder a recursos compartidos manejados por otros procesos, as que algunos procesos son ambos clientes y servidores. En el modelo, cliente-servidor, todos los recursos compartidos son mantenidos y manejados por los procesos servidores. Los procesos clientes realizan peticiones a los servidores cuando necesitan acceder a algn recurso. Si la peticin es valida, entonces el servidor lleva a cabo la accin requerida y enva una respuesta al proceso cliente. El termino proceso se usa aqu en el sentido clsico de los sistemas operativos. Un proceso es un programa en ejecucin. Consiste en un entorno de ejecucin con al menos un thread de control. El modelo cliente-servidor nos da un enfoque efectivo y de propsito general para la comparticin de informacin y de recursos en los sistemas distribuidos. El modelo puede ser implementado en una gran variedad de entornos software y hardware. Las computadoras que ejecuten los programas clientes y servidores pueden ser de muchos tipos y no existe la necesidad de distinguir entre ellas; los procesos cliente y servidor pueden incluso residir en la misma maquina. En esta visin simple del modelo cliente-servidor, cada proceso servidor podra ser visto como un proveedor centralizado de los recursos que maneja. La provisin de recursos centralizada no es deseable en los sistemas distribuidos. Es por esta razn por lo que se hace una distincin entre los servicios proporcionados a los clientes y los servidores encargados de proveer dichos servicios. Se considera un servicio como una entidad abstracta que puede ser provista por varios procesos servidores ejecutndose en computadoras separadas y cooperando va red. El modelo cliente-servidor se ha extendido y utilizado en los sistemas actuales con servicios manejando muchos diferentes tipos de recursos compartidos - correo electrnico y mensajes de noticias, ficheros, sincronizacin de relojes, almacenamiento en disco, impresoras, comunicaciones de rea extensa, e incluso las interfaces grficas de usuario. Pero no es posible que todos los recursos que existen en un sistema distribuido sean manejados y compartidos de esta manera; algunos tipos de recursos deben permanecer locales a cada computadora de cara a una mayor eficiencia - RAM, procesador, interfaz de red local -. Estos recursos clave son manejados separadamente por un sistema operativo en cada maquina; solo podran ser compartidos entre procesos localizados en el mismo ordenador. Aunque el modelo cliente-servidor no satisface todos los requisitos necesarios para todas las aplicaciones distribuidos, es adecuado para muchas de las aplicaciones actuales y provee una base efectiva para los sistemas operativos distribuidos de propsito general. APLICACIONES Lenguajes del lado servidor o cliente. El navegador es una especie de aplicacin capaz de interpretar las rdenes recibidas en forma de cdigo HTML fundamentalmente y convertirlas en las pginas que son el resultado de dicha orden.

Cuando nosotros pinchamos sobre un enlace hipertexto, en realidad lo que pasa es que establecemos una peticin de un archivo HTML residente en el servidor (un ordenador que se encuentra continuamente conectado a la red) el cual es enviado e interpretado por nuestro navegador (el cliente). As pues, podemos hablar de lenguajes de lado servidor que son aquellos lenguajes que son reconocidos, ejecutados e interpretados por el propio servidor y que se envan al cliente en un formato comprensible para l. Por otro lado, los lenguajes de lado cliente (entre los cuales no slo se encuentra el HTML sino tambin el Java y el JavaScript los cuales son simplemente incluidos en el cdigo HTML) son aquellos que pueden ser directamente "digeridos" por el navegador y no necesitan un pretratamiento.

Cada uno de estos tipos tiene por supuesto sus ventajas y sus inconvenientes. As, por ejemplo, un lenguaje de lado cliente es totalmente independiente del servidor, lo cual permite que la pgina pueda ser albergada en cualquier sitio sin necesidad de pagar ms ya que, por regla general, los servidores que aceptan pginas con scripts de lado servidor son en su mayora de pago o sus prestaciones son muy limitadas. Inversamente, un lenguaje de lado servidor es independiente del cliente por lo que es mucho menos rgido respecto al cambio de un navegador a otro o respecto a las versiones del mismo.

Lenguajes del lado cliente HTML El lenguaje llamado HTML indica al navegador donde colocar cada texto, cada imagen o cada video y la forma que tendrn estos al ser colocados en la pgina. Elel lenguaje consta de etiquetas que tienen esta forma <B> o <P>. Cada etiqueta significa una cosa, por ejemplo <B> significa que se escriba en negrita (bold) o <P> significa un prrafo, <A> es un enlace, etc. Casi todas las etiquetas tienen su correspondiente etiqueta de cierre, que indica que a partir de ese punto no debe de afectar la etiqueta. Por ejemplo </B> se utiliza para indicar que se deje de escribir en negrita. As que el HTML no es ms que una serie de etiquetas que se utilizan para definir la forma o estilo que queremos aplicar a nuestro documento. <B>Esto est en negrita</B>. Esta pgina es un claro ejemplo de uso del HTML. JAVASCRIPT Javascript es un lenguaje de programacin utilizado para crear pequeos programitas encargados de realizar acciones dentro del mbito de una pgina web. Se trata de un lenguaje de programacin del lado del cliente, porque es el navegador el que soporta la carga de procesamiento. Su uso se basa fundamentalmente en la creacin de efectos especiales en las pginas y la definicin de interactividades con el usuario. Las sentencias escritas en javascript se encapsulan entre las etiquetas <script> y </script>. por ejemplo, si en el cdigo de una pgina Web incluimos la sentencia <script> window.alert("Bienvenido a mi sitio web. Gracias...") </script> al abrir la pgina con el navegador se nos mostrar una ventana de bienvenida APPLETS DE JAVA

Es otra manera de incluir cdigo a ejecutar en los clientes que visualizan una pgina web. Se trata de pequeos programas hechos en Java, que se transfieren con las pginas web y que el navegador ejecuta en el espacio de la pgina. Los applets de Java estn programados en Java y precompilados, es por ello que la manera de trabajar de stos vara un poco con respecto a los lenguajes de script como Javascript. Los applets son ms difciles de programar que los scripts en Javascript y requerirn unos conocimientos bsicos o medios del lenguaje Java. La principal ventaja de utilizar applets consiste en que son mucho menos dependientes del navegador que los scripts en Javascript, incluso independientes del sistema operativo del ordenador donde se

ejecutan. Adems, Java es ms potente que Javascript, por lo que el nmero de aplicaciones de los applets podr ser mayor. Como desventajas en relacin con Javascript cabe sealar que los applets son ms lentos de procesar y que tienen espacio muy delimitado en la pgina donde se ejecutan, es decir, no se mezclan con todos los componentes de la pgina ni tienen acceso a ellos. Es por ello que con los applets de Java no podremos hacer directamente cosas como abrir ventanas secundarias, controlar Frames, formularios, capas, etc. VISUAL BASIC SCRIPT

Es un lenguaje de programacin de scripts del lado del cliente, pero slo compatible con Internet Explorer. Es por ello que su utilizacin est desaconsejada a favor de Javascript. Est basado en Visual Basic, un popular lenguaje para crear aplicaciones Windows. Tanto su sintaxis como la manera de trabajar estn muy inspirados en l. Sin embargo, no todo lo que se puede hacer en Visual Basic lo podremos hacer en Visual Basic Script, pues este ltimo es una versin reducida del primero. El modo de funcionamiento de Visual Basic Script para construir efectos especiales en pginas web es muy similar al utilizado en Javascript y los recursos a los que se puede acceder tambin son los mismos: el navegador. FLASH

Flash es una tecnologa, y un programa, para crear efectos especiales en pginas web. Con Flash tambin conseguimos hacer pginas dinmicas del lado del cliente. Flash en realidad no es un lenguaje; Sin embargo, si tuvieramos que catalogarlo en algn sitio quedara dentro del mbito de las pginas dinmicas de cliente. Para visualizar las "pelculas" Flash, nuestro navegador debe tener instalado un programita (plugin) que le permita visualizarlas. CSS CSS, es una tecnologa que nos permite crear pginas web de una manera ms exacta. Gracias a las CSS somos mucho ms dueos de los resultados finales de la pgina, pudiendo hacer muchas cosas que no se poda hacer utilizando solamente HTML, como incluir mrgenes, tipos de letra, fondos, colores... Incluso podemos definir nuestros propios estilos en un archivo externo a nuestras pginas; as, si en algn momento queremos cambiar alguno de ellos, automticamente se nos actualizarn todas las pginas vinculadas de nuestro sitio. CSS son las siglas de Cascading Style Sheets, en espaol Hojas de estilo en Cascada. Lenguajes del lado servidor CGI Es el sistema ms antiguo que existe para la programacin de las pginas dinmicas de servidor. Actualmente se encuentra un poco desfasado por diversas razones entre las que destaca la dificultad con la que se desarrollan los programas y la pesada carga que supone para el servidor que los ejecuta. Los CGI se escriben habitualmente en el lenguaje Perl, sin embargo, otros lenguajes como C, C++ o Visual Basic pueden ser tambin empleados para construirlos. PERL

Perl es un lenguaje de programacin interpretado, al igual que muchos otros lenguajes de Internet como Javascript o ASP. Esto quiere decir que el cdigo de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el cdigo y se pone en marcha interpretando lo que hay escrito. Adems es extensible a partir de otros lenguajes, ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes. Tambin desde otros lenguajes podremos ejecutar cdigo Perl. ASP

ASP (Active Server Pages) es la tecnologa desarrollada por Microsoft para la creacin de pginas dinmicas del servidor. ASP se escribe en la misma pgina web, utilizando el lenguaje Visual Basic Script o Jscript (Javascript de Microsoft). PHP

PHP es el acrnimo de Hipertext Preprocesor. Es un lenguaje de programacin del lado del servidor gratuito e independiente de plataforma, rpido, con una gran librera de funciones y mucha documentacin. JSP JSP es un acrnimo de Java Server Pages, que en castellano vendra a decir algo como Pginas de Servidor Java. Es, pues, una tecnologa orientada a crear pginas web con programacin en Java. Con JSP podemos crear aplicaciones web que se ejecuten en variados servidores web, de mltiples plataformas, ya que Java es en esencia un lenguaje multiplataforma. Por tanto, las JSP podremos escribirlas con nuestro editor HTML/XML habitual.

Lenguajes del lado cliente-servidor DHTML

DHTML no es precisamente un lenguaje de programacin. Ms bien se trata de una nueva capacidad de la que disponen los navegadores modernos, por la cual se puede tener un mayor control sobre la pgina que antes. Cualquier pgina que responde a las actividades del usuario y realiza efectos y funcionalidades se puede englobar dentro del DHTML, pero en este caso nos referimos ms a efectos en el navegador por los cuales se pueden mostrar y ocultar elementos de la pgina, se puede modificar su posicin, dimensiones, color, etc. DHTML nos da ms control sobre la pgina, gracias a que los navegadores modernos incluyen una nueva estructura para visualizar en pginas web denominada capa. Las capas se pueden ocultar, mostrar, desplazar, etc. Para realizar las acciones sobre la pgina, como modificar la apariencia de una capa, seguimos necesitando un lenguaje de programacin del lado del cliente como Javascript o VBScript. En la actualidad, DHTML tambin puede englobar la programacin en el servidor. Dentro del concepto de DHTML se engloban tambin las Hojas de Estilo en Cascada o CSS (Cascade Style Sheets), que veremos a continuacin.

XML XML es una tecnologa en realidad muy sencilla que tiene a su alrededor otras tecnologas que la complementan y la hacen mucho ms grande y con unas posibilidades mucho mayores. XML, con todas las tecnologas relacionadas, representa una manera distinta de hacer las cosas, ms avanzada, cuya principal novedad consiste en permitir compartir los datos con los que se trabaja a todos los niveles, por todas las aplicaciones y soportes. MODELOS CLIENTE/SERVIDOR Una de las clasificaciones mejor conocidas de las arquitecturas Cliente/Servidor se basa en la idea de planos (tier), la cual es una variacin sobre la divisin o clasificacin por tamao de componentes. Esto se debe a que se trata de definir el modo en que las prestaciones funcionales de la aplicacin sern asignadas, y en qu 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. Ni que decir tiene que la mala eleccin de uno u otro modelo puede llegar a tener consecuencias fatales. Dentro de esta categora tenemos las aplicaciones en dos planos (two-tier), tres planos (three-tier) y multi-planos (multi-tier). Dado que este trmino ha sido sobrecargado de significados por cuanto se lo utiliza indistintamente para referirse tanto a aspectos lgicos (Software) como fsicos (Hardware), aqu se esquematizan ambas acepciones. A NIVEL DE SOFTWARE 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 lo 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. MODELO CLIENTE/SERVIDOR 2 CAPAS 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 adecue 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 ya que el programador maneja un nico ambiente de desarrollo (es ms simple respecto al Cliente/Servidor en tres planos, puesto que reduce una capa de programacin, como se ver ms adelante). Inconvenientes: 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. Inconvenientes: Si bien la complejidad de desarrollo se ve disminuida, se pierde flexibilidad y escalabilidad en las soluciones implantadas. Obliga a basar el peso 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 MODELO CLIENTE/SERVIDOR 3 CAPAS 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 a la estructura en dos planos). 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 fiabilidad. 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. Inconvenientes: 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.

A NIVEL DE HARDWARE Esta clasificacin del modelo Cliente/Servidor se basa igualmente en la distribucin de los procesos y elementos entre sus componentes, pero centrndose en la parte fsica del mismo, en el que la administracin de la interfaz grfica se asocia a los clientes PC y la seguridad e integridad de los datos quedan asociados a ambientes mainframe o por lo menos a servidores locales y/o centrales. MODELO CLIENTE / SERVIDOR 2 CAPAS Los clientes son conectados va LAN a un servidor de aplicaciones local, el cual, dependiendo de la aplicacin puede dar acceso a los datos administrados por l.

MODELO CLIENTE / SERVIDOR 3 CAPAS Los clientes son conectados va LAN a un servidor de aplicaciones local, el cual a su vez se comunica con un servidor central de bases de datos. El servidor local tiene un comportamiento dual, dado que acta como cliente o servidor en funcin de la direccin de la comunicacin. MODELOS CLIENTE / SERVIDOR SEGN EL REPARTO DE FUNCIONES ENTRE CLIENTE Y SERVIDOR. Separacin de funciones. Las distintas arquitecturas cliente/servidor presentan variaciones acerca de cmo son distribuidas las diferentes funciones de las aplicaciones de sistemas entre el cliente y el servidor, sobre la base de los conceptos de los tres componentes generales de cualquier SI: La lgica de acceso a datos. Funciones que gestionan todas las interacciones entre el SW y los almacenes de datos (archivos, bases de datos, etc.) incluyendo recuperacin/consulta, actualizacin, seguridad y control de concurrencia. La lgica de presentacin. Funciones que gestionan la interfaz entre los usuarios del sistema y el SW, incluyendo la visualizacin e impresin de formas y reportes, y la posibilidad de validar entradas del sistema. La lgica de negocio o lgica de la aplicacin. Funciones que transforman entradas en salidas, incluyendo desde simples sumas hasta complejos modelos matemticos, financieros, cientficos, de ingeniera, etc. Segn cmo se distribuyan las funciones correspondientes a estas tres lgicas o funciones de un sistema entre cliente, middleware y servidor (los principales componentes de un sistema con arquitectura distribuda) nos podemos encontrar con los siguientes tipos de arquitectura cliente / servidor (conforme a la clebre clasificacin hecha por el Gartner Group): Presentacin Distribuida. Presentacin remota. Acceso a datos remoto. Lgica o procesamiento distribudas. Bases de datos distribudas.

La importancia de esta clasificacin radica en que permite jugar con el ancho de banda de la red y con la capacidad de proceso de los componentes hardware del sistema para repartir entre ellos la carga de proceso de las lgicas de la aplicacin. Seguidamente entraremos en ms detalle sobre estos tipos de arquitectura. Presentacin distribuda. El cliente asume parte de las funciones de presentacin de la aplicacin, ya que siguen existiendo programas en el servidor dedicados a esta tarea. El resto de funciones de la aplicacin (negocio, acceso a datos) residen en el servidor. Esta arquitectura se utiliza para construir emuladores de terminal, aplicaciones de control remoto, front ends grficos de aplicaciones que residen en un host, etc. Algunos ejemplos de productos que siguen esta filosofa son VLC, Microsoft Terminal Server, Cytrix Metaframe, emulador de host para sistemas operativos modernos como Windows, etc. La gran ventaja de esta arquitectura es que permite revitalizar sistemas antiguos. As, las aplicaciones antiguas que funcionaban en entornos host pueden ser empleadas desde modernas estaciones de trabajo Windows o Microsoft (que solamente hacen la funcin de trminal del host incrustada en un entorno de trabajo de escritorio moderno). El principal problema es que no se elimina la dependencia del host, no siendo posible la aplicacin de los conceptos de downsizing o rightsizing. Presentacin remota. Toda la lgica de negocio y acceso a datos se ejecuta en el servidor, que en esta ocasin no realiza ninguna funcin relacionada con la presentacin. Todas las funciones de presentacin son ejecutadas en el cliente. Un ejemplo de este tipo

de aplicaciones son las aplicaciones web, las de los terminales de cajeros automticos, etc. La principal ventaja es que la interfaz de usuario se adapta bien a las capacidades del entorno cliente (en la presentacin distribuda el servidor tena que ejecutar funciones dentro de un entorno que podra no ser el ms apropiado para el cliente). La principal desventaja es que toda la informacin necesaria para la presentacin tiene que circular por la red desde el servidor al cliente. Lgica o proceso distribuido. La lgica de los procesos se divide entre los distintos componentes del cliente y del servidor. El diseador de la aplicacin debe definir los servicios y las interfaces del sistema de informacin de forma que los papeles de cliente y servidor sean intercambiables, excepto en el control de los datos que es responsabilidad exclusiva del servidor. En este tipo de situaciones se dice que hay un proceso distribuido o cooperativo. La principal ventaja de esta arquitectura es que cada uno de los nodos/servidores puede especializarse en un rea determinada, de forma que cada proceso se ejecutar en el nodo ms apropiado. Adems, se pueden reutilizar los sistemas ya existentes (es una especie de antesala delconcepto de SOA). En contrapartida, este tipo de sistemas son ms dificiles de disear, de mantener y de probar. Acceso a datos remoto. El cliente realiza tanto las funciones de presentacin como los procesos. Por su parte, el servidor almacena y gestiona los datos que permanecen en una base de datos centralizada. En esta situacin se dice que hay una gestin de datos remota. La principal ventaja de esta arquitectura radica en su sencillez de uso, y su proliferacin al ser adaptada por lenguajes de cuarta generacin (como Oracle Forms). La desventaja es la latencia de red introducida. Al descargarse toda la lgica de proceso en los aplicativos clientes, estos necesitan descargar los datos necesarios (entradas al proceso) que circulan por la red. Bases de datos distribuidas. Este modelo es similar al de Acceso a Datos Remoto, pero adems el gestor de base de datos divide sus componentes entre el cliente y el servidor. Las interfaces entre ambos estn dentro de las funciones del gestor de datos y, por lo tanto, no tienen impacto en el desarrollo de las aplicaciones. En este nivel se da lo que se conoce como bases de datos distribuidas. La principal ventaja de este modelo es que facilita el acceso a los datos desde entornos heterogneos. Los componentes de acceso a datos ubicados en el cliente permiten independizar la base de datos del entorno en el que corren las aplicaciones cliente. Adems, permite implementar la "transparencia de ubicacin". Este sistema presenta dos importantes inconvenientes: Las bases de datos distribudas son ms difciles de implementar, y son dependientes del gestor de base de datos (siempre que no existan acuerdos y estndares) La integridad de los datos puede verse comprometida.

Anda mungkin juga menyukai