SlideShare una empresa de Scribd logo
1 de 10
Descargar para leer sin conexión
Programación web: Arquitectura CLIENTE-SERVIDOR


Cliente (informática)


Comparación en tamaño entre un cliente liviano y un cliente pesado. El cliente híbrido
pudiera ser de cualquier tamaño entre estos dos.

El cliente es una aplicación informática o un computador que accede a un servicio remoto
en otro computador, conocido como servidor, normalmente a través de una red de
telecomunicaciones.1

El término se usó inicialmente para los llamados terminales tontos, dispositivos que no eran
capaces de ejecutar programas por sí mismos, pero podían conectarse e interactuar con
computadores remotos por medio de una red y dejar que éste realizase todas las operaciones
requeridas, mostrando luego los resultados al usuario. Se utilizaban sobre todo porque su
coste en esos momentos era mucho menor que el de un computador. Estos terminales tontos
eran clientes de un computador mainframe por medio del tiempo compartido.

Actualmente se suelen utilizar para referirse a programas que requieren específicamente
una conexión a otro programa, al que se denomina servidor y que suele estar en otra
máquina. Ya no se utilizan por criterios de coste, sino para obtener datos externos (por
ejemplo páginas web, información bursatil o bases de datos), interactuar con otros usuarios
a través de un gestor central (como por ejemplo los protocolos bittorrent o IRC), compartir
información con otros usuarios (servidores de archivos y otras aplicaciones Groupware) o
utilizar recursos de los que no se dispone en la máquina local (por ejemplo impresión)

Uno de los clientes más utilizados, sobre todo por su versatilidad, es el navegador web.
Muchos servidores son capaces de ofrecer sus servicios a través de un navegador web en
lugar de requerir la instalación de un


Servidor
Para otros usos de este término, véase Servidumbre.

En informática, un servidor es una computadora que, formando parte de una red, provee
servicios a otras computadoras denominadas clientes.1

También se suele denominar con la palabra servidor a:

      Una aplicación informática o programa que realiza algunas tareas en beneficio de
       otras aplicaciones llamadas clientes. Algunos servicios habituales son los servicios
       de archivos, que permiten a los usuarios almacenar y acceder a los archivos de una
       computadora y los servicios de aplicaciones, que realizan tareas en beneficio directo
       del usuario final. Este es el significado original del término. Es posible que un
       ordenador cumpla simultáneamente las funciones de cliente y de servidor.

Rodolfo Jacobo Rodriguez                                                           Página 1
Programación web: Arquitectura CLIENTE-SERVIDOR

      Una computadora en la que se ejecuta un programa que realiza alguna tarea en
       beneficio de otras aplicaciones llamadas clientes, tanto si se trata de un ordenador
       central (mainframe), un miniordenador, una computadora personal, una PDA o un
       sistema embebido; sin embargo, hay computadoras destinadas únicamente a proveer
       los servicios de estos programas: estos son los servidores por antonomasia.




Ejemplo de un servidor del tipo rack.

      Un servidor no es necesariamente una máquina de última generación de grandes
       proporciones, no es necesariamente un superordenador; un servidor puede ser desde
       una computadora vieja, hasta una máquina sumamente potente (ej.: servidores web,
       bases de datos grandes, etc. Procesadores especiales y hasta varios terabytes de
       memoria). Todo esto depende del uso que se le dé al servidor. Si usted lo desea,
       puede convertir al equipo desde el cual usted está leyendo esto en un servidor
       instalando un programa que trabaje por la red y a la que los usuarios de su red
       ingresen a través de un programa de servidor web como Apache.

Por lo cual podemos llegar a la conclusión de que un servidor también puede ser un proceso
que entrega información o sirve a otro proceso. El modelo Cliente-servidor no
necesariamente implica tener dos ordenadores, ya que un proceso cliente puede solicitar
algo como una impresión a un proceso servidor en un mismo ordenador.




Rodolfo Jacobo Rodriguez                                                          Página 2
Programación web: Arquitectura CLIENTE-SERVIDOR

Ejemplos

La mayoría de los servicios de Internet son tipo de cliente-servidor. La acción de visitar un
sitio web requiere una arquitectura cliente-servidor, ya que el servidor web sirve las páginas
web al navegador (al cliente). Al leer este artículo en Wikipedia , la computadora y el
navegador web del usuario serían considerados un cliente; y las computadoras, las bases de
datos, y los usos que componen Wikipedia serían considerados el servidor. Cuando el
navegador web del usuario solicita un artículo particular de Wikipedia, el servidor de
Wikipedia recopila toda la información a mostrar en la base de datos de Wikipedia, la
articula en una página web, y la envía de nuevo al navegador web del cliente.

Otro ejemplo podría ser el funcionamiento de un juego online. Si existen dos servidores de
juego, cuando un usuario lo descarga y lo instala en su computadora pasa a ser un cliente.
Si tres personasj juegan en un solo computador existirían dos servidores, un cliente y tres
usuarios. Si cada usuario instala el juego en su propio ordenador existirían dos servidores,
tres clientes y tres usuarios.



Lenguajes utilizados en arquitectura cliente-servidor



              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 tendrán estos al ser colocados en la
                      página.

                      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 párrafo, <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 más
                      que una serie de etiquetas que se utilizan para
                      definir la forma o estilo que queremos aplicar a


Rodolfo Jacobo Rodriguez                                                             Página 3
Programación web: Arquitectura CLIENTE-SERVIDOR

                     nuestro documento. <B>Esto está en negrita</B>.

                     Esta página es un claro ejemplo de uso del HTML.
                     JAVASCRIPT



                     Javascript es un lenguaje de programación utilizado
                     para crear pequeños programitas encargados de
                     realizar acciones dentro del ámbito de una página
                     web. Se trata de un lenguaje de programación del
                     lado del cliente, porque es el navegador el que
                     soporta la carga de procesamiento. Su uso se basa
                     fundamentalmente en la creación de efectos
                     especiales en las páginas y la definición de
                     interactividades con el usuario.

                     Las sentencias escritas en javascript se encapsulan
                     entre las etiquetas <script> y </script>. por ejemplo,
                     si en el código de una página Web incluimos la
                     sentencia

                     <script>
                     window.alert("Bienvenido        a   mi   sitio   web.
                     Gracias...")
                     </script>

                     al abrir la página con el navegador se nos mostrará


                     una ventana de bienvenida
                     APPLETS                    DE                    JAVA




                     Es otra manera de incluir código a ejecutar en los
                     clientes que visualizan una página web. Se trata de
                     pequeños programas hechos en Java, que se
                     transfieren con las páginas web y que el navegador


Rodolfo Jacobo Rodriguez                                                      Página 4
Programación web: Arquitectura CLIENTE-SERVIDOR

                     ejecuta en el espacio de la página.

                     Los applets de Java están programados en Java y
                     precompilados, es por ello que la manera de
                     trabajar de éstos varía un poco con respecto a los
                     lenguajes de script como Javascript. Los applets son
                     más difíciles de programar que los scripts en
                     Javascript y requerirán unos conocimientos básicos
                     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. Además, Java es más potente que
                     Javascript, por lo que el número de aplicaciones de
                     los applets podrá ser mayor.

                     Como desventajas en relación con Javascript cabe
                     señalar que los applets son más lentos de procesar y
                     que tienen espacio muy delimitado en la página
                     donde se ejecutan, es decir, no se mezclan con todos
                     los componentes de la página 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 programación de scripts del lado
                     del cliente, pero sólo compatible con Internet
                     Explorer. Es por ello que su utilización 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 están 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 versión reducida del
                     primero.


Rodolfo Jacobo Rodriguez                                                     Página 5
Programación web: Arquitectura CLIENTE-SERVIDOR

                     El modo de funcionamiento de Visual Basic Script
                     para construir efectos especiales en páginas web es
                     muy similar al utilizado en Javascript y los recursos
                     a los que se puede acceder también son los mismos:
                     el navegador.
                     FLASH




                     Flash es una tecnología, y un programa, para crear
                     efectos especiales en páginas web. Con Flash
                     también conseguimos hacer páginas dinámicas del
                     lado del cliente. Flash en realidad no es un lenguaje;
                     Sin embargo, si tuvieramos que catalogarlo en
                     algún sitio quedaría dentro del ámbito de las
                     páginas dinámicas de cliente.

                     Para visualizar las "películas" Flash, nuestro
                     navegador debe tener instalado un programita
                     (plug-in) que le permita visualizarlas.
                     CSS



                     CSS, es una tecnología que nos permite crear
                     páginas web de una manera más exacta. Gracias a
                     las CSS somos mucho más dueños de los resultados
                     finales de la página, pudiendo hacer muchas cosas
                     que no se podía hacer utilizando solamente HTML,
                     como incluir márgenes, tipos de letra, fondos,
                     colores... Incluso podemos definir nuestros propios
                     estilos en un archivo externo a nuestras páginas;
                     así, si en algún momento queremos cambiar alguno
                     de ellos, automáticamente se nos actualizarán todas
                     las páginas vinculadas de nuestro sitio.

                     CSS son las siglas de Cascading Style Sheets, en
                     español Hojas de estilo en Cascada.




Rodolfo Jacobo Rodriguez                                                      Página 6
Programación web: Arquitectura CLIENTE-SERVIDOR


             Lenguajes del lado servidor

                     CGI



                     Es el sistema más antiguo que existe para la
                     programación de las páginas dinámicas 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 también empleados para
                     construirlos.
                     PERL



                     Perl es un lenguaje de programación interpretado,
                     al igual que muchos otros lenguajes de Internet
                     como Javascript o ASP. Esto quiere decir que el
                     código de los scripts en Perl no se compila sino que
                     cada vez que se quiere ejecutar se lee el código y se
                     pone en marcha interpretando lo que hay escrito.
                     Además es extensible a partir de otros lenguajes, ya
                     que desde Perl podremos hacer llamadas a
                     subprogramas escritos en otros lenguajes. También
                     desde otros lenguajes podremos ejecutar código
                     Perl.
                     ASP




                     ASP (Active Server Pages) es la tecnología
                     desarrollada por Microsoft para la creación de
                     páginas dinámicas del servidor. ASP se escribe en la
                     misma página web, utilizando el lenguaje Visual
                     Basic Script o Jscript (Javascript de Microsoft).
                     PHP

Rodolfo Jacobo Rodriguez                                                     Página 7
Programación web: Arquitectura CLIENTE-SERVIDOR




                     PHP es el acrónimo de Hipertext Preprocesor. Es
                     un lenguaje de programación del lado del servidor
                     gratuito e independiente de plataforma, rápido, con
                     una gran librería de funciones y mucha
                     documentación.
                     JSP



                     JSP es un acrónimo de Java Server Pages, que en
                     castellano vendría a decir algo como Páginas de
                     Servidor Java. Es, pues, una tecnología orientada a
                     crear páginas web con programación en Java.

                     Con JSP podemos crear aplicaciones web que se
                     ejecuten en variados servidores web, de múltiples
                     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
                     programación. Más 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   página    que   antes.

                     Cualquier página que responde a las actividades del
                     usuario y realiza efectos y funcionalidades se puede
                     englobar dentro del DHTML, pero en este caso nos
                     referimos más a efectos en el navegador por los

Rodolfo Jacobo Rodriguez                                                    Página 8
Programación web: Arquitectura CLIENTE-SERVIDOR

                     cuales se pueden mostrar y ocultar elementos de la
                     página, se puede modificar su posición,
                     dimensiones,              color,              etc.

                     DHTML nos da más control sobre la página,
                     gracias a que los navegadores modernos incluyen
                     una nueva estructura para visualizar en páginas
                     web denominada capa. Las capas se pueden ocultar,
                     mostrar,              desplazar,             etc.

                     Para realizar las acciones sobre la página, como
                     modificar la apariencia de una capa, seguimos
                     necesitando un lenguaje de programación del lado
                     del cliente como Javascript o VBScript.

                     En la actualidad, DHTML también puede englobar
                     la programación en el servidor.

                     Dentro del concepto de DHTML se engloban
                     también las Hojas de Estilo en Cascada o CSS
                     (Cascade Style Sheets), que veremos a continuación.
                     XML



                     XML es una tecnología en realidad muy sencilla que
                     tiene a su alrededor otras tecnologías que la
                     complementan y la hacen mucho más grande y con
                     unas posibilidades mucho mayores.

                     XML, con todas las tecnologías relacionadas,
                     representa una manera distinta de hacer las cosas,
                     más 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.


Programación por capas

La programación por capas es un estilo de programación en el que el objetivo primordial
es la separación de la lógica de negocios de la lógica de diseño; un ejemplo básico de esto
consiste en separar la capa de datos de la capa de presentación al usuario.

La ventaja principal de este estilo es que el desarrollo se puede llevar a cabo en varios
niveles y, en caso de que sobrevenga algún cambio, sólo se ataca al nivel requerido sin
Rodolfo Jacobo Rodriguez                                                          Página 9
Programación web: Arquitectura CLIENTE-SERVIDOR

tener que revisar entre código mezclado. Un buen ejemplo de este método de programación
sería el modelo de interconexión de sistemas abiertos.




Aplicaciones de 3 capas.

Creamos un cliente “tonto” que carece de toda lógica de negocio y apenas ofrece alguna
funcionalidad más que la de visión y petición de datos.



                                      Lógica de negocio
                                                                        Datos




                     Interface de usuario


                                          Funcionalidad Parcial


Rodolfo Jacobo Rodriguez                                                     Página 10

Más contenido relacionado

La actualidad más candente

Actividad nº 4
Actividad nº 4Actividad nº 4
Actividad nº 4
marcos_77
 
Manual Tutorial Javascript Con Ejemplos
Manual Tutorial Javascript Con EjemplosManual Tutorial Javascript Con Ejemplos
Manual Tutorial Javascript Con Ejemplos
Steven Gomez
 
Actividad de recurecuperacion (2)
Actividad de recurecuperacion (2)Actividad de recurecuperacion (2)
Actividad de recurecuperacion (2)
BBRYANN
 

La actualidad más candente (14)

Lenguaje de programación de páginas web
Lenguaje de programación de páginas webLenguaje de programación de páginas web
Lenguaje de programación de páginas web
 
Actividad nº 4
Actividad nº 4Actividad nº 4
Actividad nº 4
 
Programacion web-Lenguajes del lado del servidor
Programacion web-Lenguajes del lado del servidorProgramacion web-Lenguajes del lado del servidor
Programacion web-Lenguajes del lado del servidor
 
Net Beans
Net BeansNet Beans
Net Beans
 
Aprendiendo GWT
Aprendiendo GWTAprendiendo GWT
Aprendiendo GWT
 
Aprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScriptAprendiendo a Programas en 4 horas JavaScript
Aprendiendo a Programas en 4 horas JavaScript
 
Java Scripts
Java ScriptsJava Scripts
Java Scripts
 
Manual Tutorial Javascript Con Ejemplos
Manual Tutorial Javascript Con EjemplosManual Tutorial Javascript Con Ejemplos
Manual Tutorial Javascript Con Ejemplos
 
GWT y SmartGWT - Introducción
GWT y SmartGWT - IntroducciónGWT y SmartGWT - Introducción
GWT y SmartGWT - Introducción
 
Actividad de recurecuperacion (2)
Actividad de recurecuperacion (2)Actividad de recurecuperacion (2)
Actividad de recurecuperacion (2)
 
[ES] Introdución al desarrollo de aplicaciones web en java
[ES] Introdución al desarrollo de aplicaciones  web en java[ES] Introdución al desarrollo de aplicaciones  web en java
[ES] Introdución al desarrollo de aplicaciones web en java
 
Tecnologías Web
Tecnologías WebTecnologías Web
Tecnologías Web
 
Análisis y planteamiento del problema
Análisis y planteamiento del problemaAnálisis y planteamiento del problema
Análisis y planteamiento del problema
 
Manual programacion-javascript-parte1
Manual programacion-javascript-parte1Manual programacion-javascript-parte1
Manual programacion-javascript-parte1
 

Similar a Arquitectura cliente servidor rodofo jacobo rodriguez

2.2 lenguajes del lado cliente
2.2 lenguajes del lado cliente2.2 lenguajes del lado cliente
2.2 lenguajes del lado cliente
Jeremias Morales
 
Unidad ii desarrollo de aplicaciones web
Unidad ii desarrollo de aplicaciones webUnidad ii desarrollo de aplicaciones web
Unidad ii desarrollo de aplicaciones web
Zacarias Marquez Cruz
 
Actividad de recurecuperacion (2)
Actividad de recurecuperacion (2)Actividad de recurecuperacion (2)
Actividad de recurecuperacion (2)
BBRYANN
 
Introducción a las aplicaciones web con java
Introducción a las aplicaciones web con javaIntroducción a las aplicaciones web con java
Introducción a las aplicaciones web con java
Pedro Arteaga
 
Resultado de aprendizaje 2.1.1
Resultado de aprendizaje 2.1.1Resultado de aprendizaje 2.1.1
Resultado de aprendizaje 2.1.1
Rafael Garcia
 
Servidor web present formal
Servidor web present formalServidor web present formal
Servidor web present formal
saytubb
 
P web(2.2,'entorno bd web')
P web(2.2,'entorno bd web')P web(2.2,'entorno bd web')
P web(2.2,'entorno bd web')
Cronio Antmao
 
Resultado de aprendizaje 2.1
Resultado de aprendizaje 2.1Resultado de aprendizaje 2.1
Resultado de aprendizaje 2.1
Rafael Garcia
 

Similar a Arquitectura cliente servidor rodofo jacobo rodriguez (20)

2.2 lenguajes del lado cliente
2.2 lenguajes del lado cliente2.2 lenguajes del lado cliente
2.2 lenguajes del lado cliente
 
Plataformas cliente servidor
Plataformas cliente servidorPlataformas cliente servidor
Plataformas cliente servidor
 
Unidad ii desarrollo de aplicaciones web
Unidad ii desarrollo de aplicaciones webUnidad ii desarrollo de aplicaciones web
Unidad ii desarrollo de aplicaciones web
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEBEQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
EQUIPO 2,2A PARTE DE REVISION DE TECNOLOGIAS WEB
 
I introduccion a_las_aplicaciones_web_co
I introduccion a_las_aplicaciones_web_coI introduccion a_las_aplicaciones_web_co
I introduccion a_las_aplicaciones_web_co
 
Actividad de recurecuperacion (2)
Actividad de recurecuperacion (2)Actividad de recurecuperacion (2)
Actividad de recurecuperacion (2)
 
Presentacion 2.2
Presentacion 2.2Presentacion 2.2
Presentacion 2.2
 
Apuntes materia entorno cliente servidor
Apuntes materia entorno cliente servidorApuntes materia entorno cliente servidor
Apuntes materia entorno cliente servidor
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Cliente servidor
Cliente servidorCliente servidor
Cliente servidor
 
Introducción a las aplicaciones web con java
Introducción a las aplicaciones web con javaIntroducción a las aplicaciones web con java
Introducción a las aplicaciones web con java
 
Programación en Internet
Programación en InternetProgramación en Internet
Programación en Internet
 
Resultado de aprendizaje 2.1.1
Resultado de aprendizaje 2.1.1Resultado de aprendizaje 2.1.1
Resultado de aprendizaje 2.1.1
 
Servidor web
Servidor web Servidor web
Servidor web
 
Servidor web present formal
Servidor web present formalServidor web present formal
Servidor web present formal
 
P web(2.2,'entorno bd web')
P web(2.2,'entorno bd web')P web(2.2,'entorno bd web')
P web(2.2,'entorno bd web')
 
Servidores web
Servidores webServidores web
Servidores web
 
Servidores web
Servidores webServidores web
Servidores web
 
Resultado de aprendizaje 2.1
Resultado de aprendizaje 2.1Resultado de aprendizaje 2.1
Resultado de aprendizaje 2.1
 

Arquitectura cliente servidor rodofo jacobo rodriguez

  • 1. Programación web: Arquitectura CLIENTE-SERVIDOR Cliente (informática) Comparación en tamaño entre un cliente liviano y un cliente pesado. El cliente híbrido pudiera ser de cualquier tamaño entre estos dos. El cliente es una aplicación informática o un computador que accede a un servicio remoto en otro computador, conocido como servidor, normalmente a través de una red de telecomunicaciones.1 El término se usó inicialmente para los llamados terminales tontos, dispositivos que no eran capaces de ejecutar programas por sí mismos, pero podían conectarse e interactuar con computadores remotos por medio de una red y dejar que éste realizase todas las operaciones requeridas, mostrando luego los resultados al usuario. Se utilizaban sobre todo porque su coste en esos momentos era mucho menor que el de un computador. Estos terminales tontos eran clientes de un computador mainframe por medio del tiempo compartido. Actualmente se suelen utilizar para referirse a programas que requieren específicamente una conexión a otro programa, al que se denomina servidor y que suele estar en otra máquina. Ya no se utilizan por criterios de coste, sino para obtener datos externos (por ejemplo páginas web, información bursatil o bases de datos), interactuar con otros usuarios a través de un gestor central (como por ejemplo los protocolos bittorrent o IRC), compartir información con otros usuarios (servidores de archivos y otras aplicaciones Groupware) o utilizar recursos de los que no se dispone en la máquina local (por ejemplo impresión) Uno de los clientes más utilizados, sobre todo por su versatilidad, es el navegador web. Muchos servidores son capaces de ofrecer sus servicios a través de un navegador web en lugar de requerir la instalación de un Servidor Para otros usos de este término, véase Servidumbre. En informática, un servidor es una computadora que, formando parte de una red, provee servicios a otras computadoras denominadas clientes.1 También se suele denominar con la palabra servidor a:  Una aplicación informática o programa que realiza algunas tareas en beneficio de otras aplicaciones llamadas clientes. Algunos servicios habituales son los servicios de archivos, que permiten a los usuarios almacenar y acceder a los archivos de una computadora y los servicios de aplicaciones, que realizan tareas en beneficio directo del usuario final. Este es el significado original del término. Es posible que un ordenador cumpla simultáneamente las funciones de cliente y de servidor. Rodolfo Jacobo Rodriguez Página 1
  • 2. Programación web: Arquitectura CLIENTE-SERVIDOR  Una computadora en la que se ejecuta un programa que realiza alguna tarea en beneficio de otras aplicaciones llamadas clientes, tanto si se trata de un ordenador central (mainframe), un miniordenador, una computadora personal, una PDA o un sistema embebido; sin embargo, hay computadoras destinadas únicamente a proveer los servicios de estos programas: estos son los servidores por antonomasia. Ejemplo de un servidor del tipo rack.  Un servidor no es necesariamente una máquina de última generación de grandes proporciones, no es necesariamente un superordenador; un servidor puede ser desde una computadora vieja, hasta una máquina sumamente potente (ej.: servidores web, bases de datos grandes, etc. Procesadores especiales y hasta varios terabytes de memoria). Todo esto depende del uso que se le dé al servidor. Si usted lo desea, puede convertir al equipo desde el cual usted está leyendo esto en un servidor instalando un programa que trabaje por la red y a la que los usuarios de su red ingresen a través de un programa de servidor web como Apache. Por lo cual podemos llegar a la conclusión de que un servidor también puede ser un proceso que entrega información o sirve a otro proceso. El modelo Cliente-servidor no necesariamente implica tener dos ordenadores, ya que un proceso cliente puede solicitar algo como una impresión a un proceso servidor en un mismo ordenador. Rodolfo Jacobo Rodriguez Página 2
  • 3. Programación web: Arquitectura CLIENTE-SERVIDOR Ejemplos La mayoría de los servicios de Internet son tipo de cliente-servidor. La acción de visitar un sitio web requiere una arquitectura cliente-servidor, ya que el servidor web sirve las páginas web al navegador (al cliente). Al leer este artículo en Wikipedia , la computadora y el navegador web del usuario serían considerados un cliente; y las computadoras, las bases de datos, y los usos que componen Wikipedia serían considerados el servidor. Cuando el navegador web del usuario solicita un artículo particular de Wikipedia, el servidor de Wikipedia recopila toda la información a mostrar en la base de datos de Wikipedia, la articula en una página web, y la envía de nuevo al navegador web del cliente. Otro ejemplo podría ser el funcionamiento de un juego online. Si existen dos servidores de juego, cuando un usuario lo descarga y lo instala en su computadora pasa a ser un cliente. Si tres personasj juegan en un solo computador existirían dos servidores, un cliente y tres usuarios. Si cada usuario instala el juego en su propio ordenador existirían dos servidores, tres clientes y tres usuarios. Lenguajes utilizados en arquitectura cliente-servidor 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 tendrán estos al ser colocados en la página. 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 párrafo, <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 más que una serie de etiquetas que se utilizan para definir la forma o estilo que queremos aplicar a Rodolfo Jacobo Rodriguez Página 3
  • 4. Programación web: Arquitectura CLIENTE-SERVIDOR nuestro documento. <B>Esto está en negrita</B>. Esta página es un claro ejemplo de uso del HTML. JAVASCRIPT Javascript es un lenguaje de programación utilizado para crear pequeños programitas encargados de realizar acciones dentro del ámbito de una página web. Se trata de un lenguaje de programación del lado del cliente, porque es el navegador el que soporta la carga de procesamiento. Su uso se basa fundamentalmente en la creación de efectos especiales en las páginas y la definición de interactividades con el usuario. Las sentencias escritas en javascript se encapsulan entre las etiquetas <script> y </script>. por ejemplo, si en el código de una página Web incluimos la sentencia <script> window.alert("Bienvenido a mi sitio web. Gracias...") </script> al abrir la página con el navegador se nos mostrará una ventana de bienvenida APPLETS DE JAVA Es otra manera de incluir código a ejecutar en los clientes que visualizan una página web. Se trata de pequeños programas hechos en Java, que se transfieren con las páginas web y que el navegador Rodolfo Jacobo Rodriguez Página 4
  • 5. Programación web: Arquitectura CLIENTE-SERVIDOR ejecuta en el espacio de la página. Los applets de Java están programados en Java y precompilados, es por ello que la manera de trabajar de éstos varía un poco con respecto a los lenguajes de script como Javascript. Los applets son más difíciles de programar que los scripts en Javascript y requerirán unos conocimientos básicos 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. Además, Java es más potente que Javascript, por lo que el número de aplicaciones de los applets podrá ser mayor. Como desventajas en relación con Javascript cabe señalar que los applets son más lentos de procesar y que tienen espacio muy delimitado en la página donde se ejecutan, es decir, no se mezclan con todos los componentes de la página 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 programación de scripts del lado del cliente, pero sólo compatible con Internet Explorer. Es por ello que su utilización 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 están 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 versión reducida del primero. Rodolfo Jacobo Rodriguez Página 5
  • 6. Programación web: Arquitectura CLIENTE-SERVIDOR El modo de funcionamiento de Visual Basic Script para construir efectos especiales en páginas web es muy similar al utilizado en Javascript y los recursos a los que se puede acceder también son los mismos: el navegador. FLASH Flash es una tecnología, y un programa, para crear efectos especiales en páginas web. Con Flash también conseguimos hacer páginas dinámicas del lado del cliente. Flash en realidad no es un lenguaje; Sin embargo, si tuvieramos que catalogarlo en algún sitio quedaría dentro del ámbito de las páginas dinámicas de cliente. Para visualizar las "películas" Flash, nuestro navegador debe tener instalado un programita (plug-in) que le permita visualizarlas. CSS CSS, es una tecnología que nos permite crear páginas web de una manera más exacta. Gracias a las CSS somos mucho más dueños de los resultados finales de la página, pudiendo hacer muchas cosas que no se podía hacer utilizando solamente HTML, como incluir márgenes, tipos de letra, fondos, colores... Incluso podemos definir nuestros propios estilos en un archivo externo a nuestras páginas; así, si en algún momento queremos cambiar alguno de ellos, automáticamente se nos actualizarán todas las páginas vinculadas de nuestro sitio. CSS son las siglas de Cascading Style Sheets, en español Hojas de estilo en Cascada. Rodolfo Jacobo Rodriguez Página 6
  • 7. Programación web: Arquitectura CLIENTE-SERVIDOR Lenguajes del lado servidor CGI Es el sistema más antiguo que existe para la programación de las páginas dinámicas 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 también empleados para construirlos. PERL Perl es un lenguaje de programación interpretado, al igual que muchos otros lenguajes de Internet como Javascript o ASP. Esto quiere decir que el código de los scripts en Perl no se compila sino que cada vez que se quiere ejecutar se lee el código y se pone en marcha interpretando lo que hay escrito. Además es extensible a partir de otros lenguajes, ya que desde Perl podremos hacer llamadas a subprogramas escritos en otros lenguajes. También desde otros lenguajes podremos ejecutar código Perl. ASP ASP (Active Server Pages) es la tecnología desarrollada por Microsoft para la creación de páginas dinámicas del servidor. ASP se escribe en la misma página web, utilizando el lenguaje Visual Basic Script o Jscript (Javascript de Microsoft). PHP Rodolfo Jacobo Rodriguez Página 7
  • 8. Programación web: Arquitectura CLIENTE-SERVIDOR PHP es el acrónimo de Hipertext Preprocesor. Es un lenguaje de programación del lado del servidor gratuito e independiente de plataforma, rápido, con una gran librería de funciones y mucha documentación. JSP JSP es un acrónimo de Java Server Pages, que en castellano vendría a decir algo como Páginas de Servidor Java. Es, pues, una tecnología orientada a crear páginas web con programación en Java. Con JSP podemos crear aplicaciones web que se ejecuten en variados servidores web, de múltiples 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 programación. Más 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 página que antes. Cualquier página que responde a las actividades del usuario y realiza efectos y funcionalidades se puede englobar dentro del DHTML, pero en este caso nos referimos más a efectos en el navegador por los Rodolfo Jacobo Rodriguez Página 8
  • 9. Programación web: Arquitectura CLIENTE-SERVIDOR cuales se pueden mostrar y ocultar elementos de la página, se puede modificar su posición, dimensiones, color, etc. DHTML nos da más control sobre la página, gracias a que los navegadores modernos incluyen una nueva estructura para visualizar en páginas web denominada capa. Las capas se pueden ocultar, mostrar, desplazar, etc. Para realizar las acciones sobre la página, como modificar la apariencia de una capa, seguimos necesitando un lenguaje de programación del lado del cliente como Javascript o VBScript. En la actualidad, DHTML también puede englobar la programación en el servidor. Dentro del concepto de DHTML se engloban también las Hojas de Estilo en Cascada o CSS (Cascade Style Sheets), que veremos a continuación. XML XML es una tecnología en realidad muy sencilla que tiene a su alrededor otras tecnologías que la complementan y la hacen mucho más grande y con unas posibilidades mucho mayores. XML, con todas las tecnologías relacionadas, representa una manera distinta de hacer las cosas, más 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. Programación por capas La programación por capas es un estilo de programación en el que el objetivo primordial es la separación de la lógica de negocios de la lógica de diseño; un ejemplo básico de esto consiste en separar la capa de datos de la capa de presentación al usuario. La ventaja principal de este estilo es que el desarrollo se puede llevar a cabo en varios niveles y, en caso de que sobrevenga algún cambio, sólo se ataca al nivel requerido sin Rodolfo Jacobo Rodriguez Página 9
  • 10. Programación web: Arquitectura CLIENTE-SERVIDOR tener que revisar entre código mezclado. Un buen ejemplo de este método de programación sería el modelo de interconexión de sistemas abiertos. Aplicaciones de 3 capas. Creamos un cliente “tonto” que carece de toda lógica de negocio y apenas ofrece alguna funcionalidad más que la de visión y petición de datos. Lógica de negocio Datos Interface de usuario Funcionalidad Parcial Rodolfo Jacobo Rodriguez Página 10