A.P.U. 2008 – Programación y Servicios Web Pág. 1
PROGRAMACION Y SERVICIOS WEB
UNIDAD 1 - Introducción a WWW
Contenido UNIDAD 1 - Introducción a WWW ................................................................................................1
Historia de la World Wide Web ................................................................................................2
Arquitectura de la www y conceptos .......................................................................................3
URL (Uniform Resource Locator) ..........................................................................................3
HTTP (HyperText Transfer Protocol = Protocolo de Transferencia de HiperTexto) ..............4
HTML (HyperText Markup Language = Lenguaje de Marcas de HiperTexto) ........................5
HTTP (HyperText Transfer Protocol) .........................................................................................7
Introducción a CSS (Cascading Style Sheets = Hojas de estilo en cascada) ..............................9
Funcionamiento básico de CSS .............................................................................................9
Incluir código CSS en nuestra página Web HTML ...............................................................11
Definición de estilos CSS .....................................................................................................13
Medios CSS .........................................................................................................................14
Comentarios CSS ................................................................................................................14
Servidor de Aplicaciones Web ................................................................................................15
Servidores Web ..................................................................................................................15
Tipos de Servidores Web ....................................................................................................15
Arquitecturas de las aplicaciones web ...............................................................................17
Aplicación Web...................................................................................................................19
Procesamiento Estático y Dinámico ...................................................................................20
Lenguajes de Programación Web ...........................................................................................22
Lenguaje PHP......................................................................................................................22
Lenguaje ASP ......................................................................................................................23
Lenguaje ASP.NET ...............................................................................................................23
Lenguaje JSP .......................................................................................................................24
A.P.U. 2008 – Programación y Servicios Web Pág. 2
Historia de la World Wide Web La World Wide Web nació cerca de Ginebra (Suiza) en el CERN, el laboratorio europeo de física
de partículas. Su principal creador fue Tim Berners-Lee (nacido en Londres en 1955), que
propuso en 1989 la creación de un sistema de hipertexto para facilitar el intercambio de
información entre los investigadores del CERN. En el verano de 1991, este sistema (servidor y
navegador) se puso a disposición de todos los usuarios de Internet. El éxito de la web impulsó
la creación en 1994 del W3C (World Wide Web Consortium), organismo formado por empresas
y universidades de todo el mundo. El W3C se organiza en grupos de trabajo, en los que las
empresas y organismos interesados desarrollan por consenso especificaciones que, una vez
publicadas, reciben el nombre de recomendaciones.
El W3C está presidido por Berners-Lee y su objetivo es conducir la web a su pleno desarrollo,
asegurando su estabilidad. El éxito de la web como espacio compartido de información y
entretenimiento ha hecho necesario ir ampliando las capacidades de la web. Para conseguirlo,
el W3C ha publicado un gran número de recomendaciones, que pueden consultarse en la web.
Pese al extraordinario desarrollo y utilización de la web, su breve historia está llena de crisis,
pasos atrás y conflictos enquistados. Los usuarios de la web están interesados en que existan
unas normas comunes que permitan la interoperabilidad y la competencia, pero las empresas
que dominan un mercado suelen preferir que no existan normas comunes para que sus
productos se conviertan en la norma "de facto" y asegurar su dominio.
El W3C tiene sedes en varios países. Desde octubre de 2003, existe una oficina española del
W3C, con sede en Asturias. Entre otras cosas, mantienen una lista de recomendaciones del
W3Ctraducidas al español.
El W3C no es el único organismo que juega un papel en el desarrollo de la web.
La IETF (Internet Engineering Task Force) se ocupa desde 1986 del desarrollo de la arquitectura
de Internet y publica las normas (que por razones históricas reciben el nombre de Request For
Comments) que definen los protocolos empleados en Internet. La IANA (Internet Assigned
Numbers Authority) se ocupa desde 1972 de la asignación de direcciones a cada computadora
conectada a Internet.
A.P.U. 2008 – Programación y Servicios Web Pág. 3
Arquitectura de la www y conceptos Para que la web funcione, se necesitan tres mecanismos:
la identificación de los recursos disponibles (URI)
reglas de comunicación entre el servidor y el navegador (HTTP)
un formato común para los documentos intercambiados (HTML, XML)
Tanto la identificación de los recursos como las reglas de comunicación son aspectos
relativamente estables, mientras que el formato de los documentos ha tenido una evolución
más compleja y continúa en desarrollo. A continuación se describen los diferentes estándares
que conforman la web.
URL (Uniform Resource Locator)
Los URL (Uniform Resource Locator) son una notación estándar para la especificación de
recursos presentes en Internet. Constituyen la piedra angular del Web, ya que hacen posible
que un link de HTML se refiera a cualquier objeto de la red.
Un URL representa de un modo compacto la localización y el método de acceso de cualquier
recurso de la red (Berners-Lee, Masinter y McCahill, 1994). No sólo hay más de dos millones de
ordenadores conectados a los varios miles de redes que forman la Internet, sino que existen
múltiples protocolos o formas diferentes de acceder a la información (ftp, gopher, http, etc.).
Los URL aportan esos dos datos esenciales: dónde se encuentra un recurso y cómo se puede
acceder a él.
La sintaxis de los URL es la siguiente:
URL:<esquema>:<parte-específica-del-esquema>
El esquema es un término convenido que representa el método de acceso a un recurso. La
parte específica del esquema informa sobre su localización en la red, de un modo que depende
de cada método de acceso. Un ejemplo nos ayudará a entender esto.
Cuando utilizamos ftp anónimo para copiar un fichero de un ordenador remoto a nuestro
ordenador necesitamos saber lo siguiente: host o nombre del ordenador remoto donde se
encuentra el fichero y path o que conduce al fichero dentro de la estructura de ficheros del
ordenador remoto. Supongamos que el fichero se llama README, y que está en el directorio
pub del host ftp.uji.es; el URL de tal objeto sería éste:
Al recuperar un fichero mediante ftp anónimo usamos "anonymous" como nombre de usuario,
y nuestra dirección de correo electrónico como password. En los URL esta información se
A.P.U. 2008 – Programación y Servicios Web Pág. 4
omite dado que es conocida. Sin embargo, es posible incluirla si, por ejemplo, no se trata de
ftp anónimo, sino que se necesita especificar un usuario real y su password. La sintaxis
genérica de los URL para objetos accesibles por ftp es la siguiente:
URL:ftp://[user[:password]@]host[:port]/path[;type=<typdecode>]
El "port" puede omitirse si el servidor de ftp emplea el port estándar de ftp (el 21). Este
principio de omitir lo ya conocido se sigue en todos los URL. Si los distintos servidores siguen
las recomendaciones de la Internet no es necesario incluir información redundante.
El "path" es la lista ordenada de subdirectorios por los que hay que pasar para llegar al fichero,
separados por "/", seguida del nombre del fichero.
El "type" es "d", "a", "i". "d" indica que se requiere la transmisión de una lista de nombres de
ficheros (un directorio). "a" solicita una transmisión de líneas de texto. "i" solicita una
transmisión binaria.
En la actualidad existen esquemas definidos para los siguientes servicios:
Esquema Sintaxis ftp (File Transfer Protocol) ftp://user:password@host:port/path;type=<typecode> http (HyperText Transfer Protocol) http://<host>:<port>/<path>?<searchpart> gopher (gopher) gopher://<host>:<port>/<gopher-path> mailto (correo electrónico) mailto:<rfc822-addr-spec>
HTTP (HyperText Transfer Protocol = Protocolo de Transferencia de HiperTexto)
El esquema básico de cualquier transacción HTTP entre un cliente y un servidor es el siguiente
(Berners-Lee, 1993):
Conexión: El cliente establece una conexión con el servidor a través del puerto 80
(puerto estándar), u otro especificado.
Petición: El cliente envía una petición al servidor.
Respuesta: El servidor envía al cliente la respuesta (esto es, el objeco demandado o un
código de error).
Cierre: Ambas partes cierran la conexión.
HTTP (HyperText Transfer Protocol) es el protocolo de alto nivel del World-Wide Web que rige
el intercambio de mensajes entre clientes y servidores del Web.
Un protocolo es:
"Una descripción formal de los formatos de los mensajes y las reglas que deben seguir dos
ordenadores para intercambiar dichos mensajes. Los protocolos pueden describir detalles de
bajo nivel de los interfaces de máquina a máquina (por ejemplo, el orden en el cual deben
enviarse bits y bytes a través de un cable) o intercambios de alto nivel entre programas (por
ejemplo, la forma en que dos programas transfieren un fichero a través de la Internet)."
(Malkin y LaQuey Parker, 1993, pág. 39).
A.P.U. 2008 – Programación y Servicios Web Pág. 5
El HTTP es un protocolo genérico orientado a objetos que no mantiene la conexión entre
transacciones (Berners-Lee, 1993d). Ha sido especialmente diseñado para atender las
exigencias de un sistema hipermedia distribuido como es el World-Wide Web. Sus
características principales son:
Ligereza: reduce la comunicación entre clientes y servidores a intercambios discretos, de modo
que no sobrecarga la red y permite saltos hipertextuales rápidos.
Generalidad: puede utilizarse para transferir cualquier tipo de datos, según el estándar
MIME. Esto incluye también los que desarrollen en el futuro, ya que el cliente y el
servidor pueden negociar en cualquier momento el modo de representación de los
datos: el cliente notifica al servidor una lista de formatos que entiende, y en adelante
el servidor sólo remitirá al cliente datos que este sea capaz de manejar. El cliente debe
aceptar al menos dos formatos: text/plain (texto normal) y text/html (hipertexto
codificado en HTML: el lenguaje en el que se escriben los hipertextos del Web --véase
el apartado siguiente).
Extensibilidad: contempla distintos tipos de transacción entre clientes y servidores
("métodos", en la jerga HTTP), y la futura implementación de otros nuevos. Esto abre
posibilidades más allá de la simple recuperación de objetos de la red: búsquedas,
anotaciones, etc.
HTML (HyperText Markup Language = Lenguaje de Marcas de HiperTexto)
El HTML (HyperText Markup Language) es el lenguaje en el que se escriben los hipertextos del
World-Wide Web y permite añadir a un documento de texto:
La especificación de estructuras del texto. Por ejemplo, títulos, encabezamientos,
límites de los párrafos, listas de elementos.
Estilos: texto enfatizado, citas, etc.
Objetos multimedia: imágenes o sonido, pongamos por caso.
Conexiones hipertextuales a otros objetos de la red: partes sensibles del documento
desde dónde podríamos saltar otras partes del Web.
Todo este "valor añadido" al texto se codifica como etiquetas ("tags", en la jerga) que se
insertan en el propio texto. Un ejemplo nos permitirá hacernos una idea de todo ello:
A.P.U. 2008 – Programación y Servicios Web Pág. 6
Las etiquetas del HTML se delimitan por medio de los signos < y >. Por ejemplo, la etiqueta <P>
marca el inicio de cada párrafo. Otras, la mayor parte, van por parejas: <TITLE> y </TITLE>
abren y cierran, respectivamente, el título del documento.
Los links se abren y cierran con las etiquetas <A> y </A>. El objeto de la red a donde nos lleva
el link se codifica en la etiqueta de apertura por medio de una notación que se ha convertido
de hecho en un estándar de Internet: los llamados URL.
A.P.U. 2008 – Programación y Servicios Web Pág. 7
HTTP (HyperText Transfer Protocol)
Uso y finalidad:
Uso: Se usa para el envío y recepción de peticiones Web.
Finalidad: Transferencia de hipertexto.
Está basado en ASCII.
Por ejemplo:
http (el protocolo o esquema)
www.cisco.com (el nombre del servidor)
Index.html (archivo específico solicitado).
Mensajes HTTP:
HTTP define los tipos de mensajes para solicitar la página Web y envía los tipos para responder:
GET (solicitud de datos por parte del cliente)
POST y PUT se utilizan para enviar mensajes que cargan datos en el servidor :
POST (carga al información en un texto sin formato)
PUT (carga los recursos o el contenido en el servidor)
A.P.U. 2008 – Programación y Servicios Web Pág. 8
Una transacción HTTP consiste en:
Conexión: establecimiento de una conexión (puerto 80)
Solicitud: envío (cliente) de un mensaje de solicitud al servidor.
Respuesta: envío (servidor) de una respuesta al cliente.
Cierre: fin de la conexión
A.P.U. 2008 – Programación y Servicios Web Pág. 9
Introducción a CSS (Cascading Style Sheets = Hojas de estilo en
cascada)
En el código HTML se pueden incluir una serie de etiquetas representando tanto la clase de
elementos y secciones que queremos incluir en nuestra página como el estilo a aplicar en las
mismas.
En los últimos años, cada vez se va tendiendo más a separar los contenidos de la presentación,
el marcado de los contenidos de los estilos de visualización de los mismos.
Al crear una página web: o Se utiliza en primer lugar el lenguaje HTML/XHTML para marcar los
contenidos, es decir, designar la función de cada elemento de la página: sección, párrafo, texto
destacado, tabla, lista ordenada, control, etc. La idea es que esta parte tenga cada vez más
semántica, dotando de sentido a los documentos generados y sus secciones. o En segundo
lugar, se emplea CSS para definir el aspecto de cada elemento (color, tamaño, tipo de letra,
posición, etc.).
Los navegadores contienen diversos componentes. Uno de ellos, el motor de renderizado, se
encarga de interpretar el código HTML con las etiquetas y el código CSS de formateo, y mostrar
el contenido con su formato en la ventana del navegador. Hay distintas versiones de HTML y
de CSS que van evolucionando, y su soporte en distintos motores es variable.
Una de las claves para el buen funcionamiento de nuestras aplicaciones web en distintos
navegadores es la estandarización. Conviene conocer las normas oficiales, más allá del
conjunto de funcionalidades implementadas en un momento dado en un navegador concreto,
lo que irá cambiando. El estado actual de las especificaciones estándar actual es CSS3.
Funcionamiento básico de CSS
Podemos definir una página web muy sencilla con:
Esta página se visualizará como:
A.P.U. 2008 – Programación y Servicios Web Pág. 10
Podríamos cambiar el estilo de la cabecera y los párrafos con:
Ahora se visualizaría como:
Hemos logrado el cambio de visualización deseado, pero a costa de mezclar los contenidos
(una cabecera principal, y dos párrafos) con el formato a dar a los mismos. Sin embargo, una
cuestión concierne a la persona que decide el tipo de información a presentar, y otra a la
A.P.U. 2008 – Programación y Servicios Web Pág. 11
persona encargada de definir la presentación/maquetación de la información, que no tendrían
por qué ser la misma, se están mezclando innecesariamente las responsabilidades (contenido y
presentación). Además, si toda cabecera principal se debe poner en azul, deberemos indicar la
misma instrucción en todas las cabeceras, lo cual es redundante y puede implicar
incoherencias de estilo.
Propuesta con CSS: La alternativa sería separar ambas, de modo que las etiquetas delimiten el
tipo de contenido (etiqueta, <h1> o <p>) y posiblemente clase (class), quedando el código
como:
Como vemos, se han eliminado las referencias a color o tamaño de texto como atributos de las
etiquetas . En su lugar, se ha dejado sin atributo la etiqueta <h1> >, y se ha
calificado uno de los párrafos como importante, lo cual tiene una consideración más
semántica, y será la hoja de estilo la que nos diga cómo presentar las cabeceras, los párrafos
normales (por defecto) y los párrafos importantes (calificados). A simple vista podemos ver
que se establece dentro de <head> un <style> de tipo text/css, y que en su interior definimos
el formato a aplicar a las etiquetas <h1> (color de texto blue), y a aquello que se califique
como importante, .imp (tamaño de texto x-large).
Incluir código CSS en nuestra página Web HTML
Existen tres formas de incluir código CSS del tipo que hemos visto en nuestra página web,
como veremos a continuación.
Incluir el estilo como atributo de la etiqueta HTML
A.P.U. 2008 – Programación y Servicios Web Pág. 12
Se pueden emplear instrucciones de estilo CSS con el atributo style dentro de cualquier
etiqueta HTML. Es la opción menos aconsejada y usada, puesto que no permite
separación entre contenido y presentación, ni estandarizar y reutilizar, pero es la
opción a emplear en caso de querer aplicar un formato de forma excepcional a un solo
elemento.
Por ejemplo:
Incluir el estilo a nivel de página
Se pueden emplear instrucciones de estilo CSS empleando una etiqueta <style> > en la
sección HEAD de nuestro documento HTML.
Por ejemplo, como vimos anteriormente:
Permite aplicar el estilo definido a todos los elementos de un determinado tipo de
contenido (a nivel de etiqueta), de una determinada clase (a nivel de class), o bien a un
elemento determinado (a nivel de id).
Incluir el estilo en archivo .css independiente, y usar a nivel de sitio
Nos referimos con sitio web a todas las páginas que componen nuestra aplicación,
compuesta de un número determinado de páginas.
Podemos definir un documento CSS con el estilo, y utilizarlo así en todas las páginas
del sitio de manera uniforme.
Es la opción más aconsejada, por ser la que permite una mejor separación entre
contenido y presentación.
El código en el fichero aparte sería del mismo tipo de la opción anterior, pero sin la
etiqueta style. Por ejemplo, podemos tener un archivo “miestilo.css”:
A.P.U. 2008 – Programación y Servicios Web Pág. 13
Para importarlo, bastará con escribir en las páginas que queramos aplicar el estilo:
De esta forma, cuando el navegador carga la página HTML, al ver esta etiqueta
descarga los archivos CSS externos enlazados mediante y aplica los estilos a los
contenidos de la página.
Definición de estilos CSS
Una sección de definición de estilos CSS (tanto en etiqueta style como en archivo externo)
permite definir un conjunto de reglas CSS.
Las reglas CSS se componen de:
Un selector que indica a qué elementos HTML se aplicará la regla, y
Un conjunto de declaraciones, indicando los estilos a aplicar a los elementos seleccionados.
Una declaración se compone de una o varias propiedades CSS con sus valores, siendo:
Propiedad: característica a modificar.
Valor: establece el valor a aplicar a la característica en cuestión.
A.P.U. 2008 – Programación y Servicios Web Pág. 14
Los estilos aplicados directamente sobre un elemento HTML incluyen únicamente la sección de
declaraciones, ya que el elemento seleccionado es sobre el que estamos actuando con el
atributo style.
En la especificación actual, CSS 2.1, hay definidas 115 propiedades, si bien en CSS3 ya va por
239, a falta de cerrar la especificación de este estándar.
Medios CSS
Podemos aplicar distintos estilos sobre la misma declaración de contenidos HTML, definiendo
el formato aplicar sobre distintos medios como la pantalla (screen), impresoras (print),
dispositivos de mano (handheld), etc.
Por defecto nuestro estilo se mostrará para todas las posibles salidas o medios.
Si queremos aplicar las reglas en un determinado medio, se puede indicar mediante:
media="screen" como atributo de la etiqueta .
@import url("estilos_seccion.css") screen; dentro de la etiqueta style.
En la sección style, para un determinado conjunto de reglas:
@media print {
body { font-size: 10pt }
}
Comentarios CSS
Los comentarios dentro de la sección de CSS se indican entre /* y */: o /* Este es mi
comentario… */.
Pueden ocupar una o varias líneas.
No confundir con los comentarios HTML: <!-- comentario -->
A.P.U. 2008 – Programación y Servicios Web Pág. 15
Servidor de Aplicaciones Web
Servidores Web
Los servidores web son aquellos cuya tarea es alojar sitios y/o aplicaciones, las cuales son
accedidas por los clientes utilizando un navegador que se comunica con el servidor utilizando
el protocolo HTTP (hypertext markup language).
Básicamente un servidor WEB consta de un interprete HTTP el cual se mantiene a la espera de
peticiones de clientes y le responde con el contenido según sea solicitado. El cliente, una vez
recibido el código, lo interpreta y lo exhibe en pantalla.
Además los servidores pueden disponer de un intérprete de otros lenguajes
de programación que ejecutan código embebido dentro del código HTML de las páginas que
contiene el sitio antes de enviar el resultado al cliente. Esto se conoce como programación de
lado del servidor y utiliza lenguajes como ASP, PHP, Perl, Ajax, etc. Las ventajas de utilizar
estos lenguajes radica en la potencia de los mismos ejecutando tareas más complejas como, por
ejemplo acceder a bases de datos abstrayendo al cliente de toda la operación.
El servidor web, se encarga de contestar a peticiones de ejecución realizadas por los clientes o un
usuario de internet o intranet; de forma adecuada, entregando como resultado una página web o
información de todo tipo de acuerdo a los comandos solicitados
Tipos de Servidores Web
Servidor Dedicado: se refiere a una computadora servidora al sitio del cliente(para aplicaciones
de alta demanda) (Hosting)
Servidor Compartido: lo que significa que un mismo servidor (computadora + programas
servidos) se usara para varios clientes compartiendo los recursos
A.P.U. 2008 – Programación y Servicios Web Pág. 16
Servidor Apache
Es un servidor http(1996), de código abierto y multiplataforma(Unix (BSD, GNU/Linux, etc.), Microsoft
Windows, Macintosh)
Ventajas:
Su extensibilidad y construcción modular. Se puede poner módulos para ampliar su
funcionabilidad (por ejemplo mod_php para ejecutar paginas PhP)
La noción de sitio virtual: Posibilidad de colocar múltiples sitios web en la misma maquina.
Robusto y estable
Desventaja
Falta de una interfaz grafica que ayude a su configuración
Microsoft Internet Information Services IIS
Es un servidor web y un conjunto de servicios para el sistemas operativo Microsoft Windows,
las computadoras que tienen este servicio instalado puede publicar páginas web tanto local
como remotamente.
Los servicios que ofrece son: FTP,SMTP,NNTP y HTTP/HTTPS.
Se basa en varios módulos que le dan capacidad para procesar distintos tipos de páginas. Por
ejemplo ASP(Active Server Pages) y Asp.Net
También pueden ser incluidos los otros fabricantes como PHP o PERL.
IIS vs Apache
Ambos son software utilizados en el servidor para ofrecer servicios, los cuales son:
Apache: HTTP, HTTPS, FTP y FTPS (usando módulo mod_ftp), SMTP (usando módulo
mod_smtpd), NNTP (aunque debe ser implementado aparte).
IIS: HTTP, HTTPS, FTP, FTPS, SMTP y NNTP.
Una de las principales características en común además de sus usos, es que su funcionalidad se
ve ampliada gracias a una gran cantidad de módulos que pueden ser añadidos, por ejemplo
para la gestión de las bases de datos. También poseen en común la posibilidad de uso de
lenguajes como PHP, Perl y Python.
Diferencia: a diferencia de IIS, Apache no permite el uso de ASP a menos que se importe un
módulo especifico. Una diferencia importante entre ambos es que Apache es software libre y
multiplataforma, mientras que IIS es software propietario y está hecho para sistemas
Windows. En cuanto al aumento de funcionalidad por módulos, en ambos casos es muy grande
y no existe gran diferencia. En relación al rendimiento, algunos lugares indican un mejor
rendimiento en Apache aunque esto depende del sistema operativo utilizado.
A.P.U. 2008 – Programación y Servicios Web Pág. 17
Arquitecturas de las aplicaciones web
Las aplicaciones web se basan en una arquitectura cliente/servidor: por un lado está el cliente
(el navegador, explorador o visualizador) y por otro lado el servidor (el servidor web). Existen
diversas variantes de la arquitectura básica según como se implementen las diferentes
funcionalidades de la parte servidor. Las arquitecturas más comunes son:
1. Todo en un servidor: un único ordenador aloja el servicio de HTTP, la lógica de
negocio y la lógica de datos y los datos. El software que ofrece el servicio de HTTP
gestiona también la lógica de negocio. Las tecnologías que emplean esta arquitectura
son ASP y PHP.
2. Servidor de datos separado: a partir de la arquitectura anterior, se separa la lógica de
datos y los datos a un servidor de bases de datos específico. Las tecnologías que
emplean esta arquitectura son ASP y PHP.
3. Todo en un servidor, con servicio de aplicaciones: en la arquitectura número 1 se
separa la lógica de negocio del servicio de HTTP y se incluye el servicio de
aplicaciones para gestionar los procesos que implementan la lógica de negocio. La
tecnología que emplea esta arquitectura es JSP.
A.P.U. 2008 – Programación y Servicios Web Pág. 18
4. Servidor de datos separado, con servicio de aplicaciones: a partir de la arquitectura
anterior, se separa la lógica de datos y los datos a un servidor de bases de datos
específico. La tecnología que emplea esta arquitectura es JSP.
5. Todo separado: las tres funcionalidades básicas del servidor web se separan en tres
servidores específicos. La tecnología que emplea esta arquitectura es JSP.
A.P.U. 2008 – Programación y Servicios Web Pág. 19
El objetivo de separar las distintas funcionalidades (servicio de HTTP, lógica de negocio y
lógica de datos) en distintos servidores es aumentar la escalabilidad del sistema de cara a
obtener un mayor rendimiento. Al separar las distintas funcionales en distintos servidores,
cada uno de ellos se puede configurar (dimensionar) de forma adecuada a los requisitos que
presenta cada uno de ellos. Por ejemplo, para ofrecer el servicio de HTTP hace falta un
ordenador con una buena conexión a Internet, rápido pero sin grandes necesidades de
almacenamiento. Sin embargo, para el servidor de bases de datos hace falta un ordenador con
mucha memoria y con un disco duro de alta capacidad de almacenamiento y rápido para
mantener todos los datos.
Otra ventaja que se obtiene al separar las funcionalidades, es que al aislar la lógica de negocio
y la lógica de datos en servidores separados que no están conectados directamente a Internet
se aumenta el nivel de seguridad, ya que no es tan fácil acceder a ellos.
En algunos casos, las arquitecturas donde se separan el servicio de HTTP del resto de
servicios es la única opción disponible. Por ejemplo, en los sistemas heredados ( legacy
systems), donde ya existe una lógica de negocio en un servidor de aplicaciones y una lógica de
datos en un servidor de bases de datos, la única forma de acceder desde Internet al sistema
heredado es a través de un servidor que ofrezca el servicio de HTTP y se comunique
internamente con el servidor de aplicaciones.
Aplicación Web
Las aplicaciones web utilizan lo que se conoce como clientes livianos (light clients) los cuales
no ejecutan demasiadas labores de procesamiento para la ejecución de la aplicación misma.
Desde el punto de vista de la arquitectura se distinguen dos lados; uno es el cliente, donde se
encuentra el usuario final utilizando la aplicación por medio de un navegador (como Internet
Explorer o Mozilla Firefox). A través de este cliente web, el usuario interactúa con la aplicación
localizada al otro lado, en el servidor, que es donde residen realmente los datos, reglas y
lógica de la aplicación.
A.P.U. 2008 – Programación y Servicios Web Pág. 20
Procesamiento Estático y Dinámico
Procesamiento estático
En muchos casos, el servidor es un programa que simplemente toma el pedido que recibe y
devuelve una página (compuesta por uno o más archivos HTML, imágenes, animaciones, etc.)
que está guardada en algún lugar del disco. En estos casos decimos que son páginas estáticas.
A no ser que el administrador del sitio actualice su contenido, al ingresar en la pá- gina web
siempre obtendremos el mismo resultado, no importa cuándo ingresemos ni desde dónde.
Para la gran mayoría de sistemas de negocios, este tipo de servicio no es muy útil, ya que se
suele necesitar que se devuelva una página con contenido dinámico, que cambie según quién
pidió la página, según la fecha, etc.
El servidor de páginas estáticas siempre devuelve el mismo recurso para el mismo pedido.
Procesamiento Dinamico
Pensemos, por ejemplo, en el sistema de un banco. Si ingreso en el sitio del banco y quiero
consultar mi saldo, debería devolverme mi saldo actual al momento exacto de pedirlo. Si el
sitio web sólo provee contenido estático, entonces deberían tener una página guardada en el
disco para cada saldo posible. Esto, obviamente, es impracticable. Y tampoco es viable que
haya una persona que esté actualizando las páginas de saldos de todos los usuarios a medida
que van realizando operaciones sobre sus cuentas. En esos casos, el servidor efectúa
operaciones (yendo a buscar datos a una base de datos, consultando con otro servidor o
accediendo a otro tipo de servicios de negocios) y devuelve una página dinámica; esto es, una
página que no está guardada en ningún lugar dentro del servidor, sino que fue creada en el
momento para quien la pidió. El servidor accede a los datos variables, en este caso, el saldo del
usuario, luego construye en memoria la página con este dato y se la devuelve al cliente, que la
muestra en pantalla.
A.P.U. 2008 – Programación y Servicios Web Pág. 21
El servidor web dinámico construye una respuesta distinta para cada pedido.
La programación web entonces, consiste en escribir programas que, dada una petición web
realizada por un cliente (un navegador), procesen el pedido y generen y devuelvan un
resultado. Como en todo proceso de desarrollo de software, hay mucho de reutilización.
Podremos ver que, por ejemplo, la parte de recibir el pedido y enviar la respuesta por lo
general no cambia, solamente cambia la lógica de negocios de cada pedido y el contenido de la
respuesta generada. En este libro utilizaremos herramientas ya desarrolladas de código abierto
que nos ayudarán en la creación de aplicaciones web.
A.P.U. 2008 – Programación y Servicios Web Pág. 22
Lenguajes de Programación Web
Lenguaje PHP
Es un lenguaje de programación utilizado para la creación de sitio web. PHP es un acrónimo
recursivo que significa “PHP Hypertext Pre-processor”, (inicialmente se llamó Personal Home
Page). Surgió en 1995, desarrollado por PHP Group.
PHP es un lenguaje de script interpretado en el lado del servidor utilizado para la generación
de páginas web dinámicas, embebidas en páginas HTML y ejecutadas en el servidor. PHP no
necesita ser compilado para ejecutarse. Para su funcionamiento necesita tener instalado
Apache o IIS con las librerías de PHP. La mayor parte de su sintaxis ha sido tomada de C, Java y
Perl con algunas características específicas. Los archivos cuentan con la extensión (php).
Ventajas:
Muy fácil de aprender.
Se caracteriza por ser un lenguaje muy rápido.
Soporta en cierta medida la orientación a objeto. Clases y herencia.
Es un lenguaje multiplataforma: Linux, Windows, entre otros.
Capacidad de conexión con la mayoría de los manejadores de base de datos: MysSQL,
PostgreSQL, Oracle, MS SQL Server, entre otras.
Capacidad de expandir su potencial utilizando módulos.
Posee documentación en su página oficial la cual incluye descripción y ejemplos de
cada una de sus funciones.
Es libre, por lo que se presenta como una alternativa de fácil acceso para todos.
Incluye gran cantidad de funciones.
No requiere definición de tipos de variables ni manejo detallado del bajo nivel.
Desventajas:
Se necesita instalar un servidor web.
Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto puede ser más
ineficiente a medida que las solicitudes aumenten de número.
A.P.U. 2008 – Programación y Servicios Web Pág. 23
La legibilidad del código puede verse afectada al mezclar sentencias HTML y PHP.
La programación orientada a objetos es aún muy deficiente para aplicaciones grandes.
Dificulta la modularización.
Dificulta la organización por capas de la aplicación.
Lenguaje ASP
Es una tecnología del lado de servidor desarrollada por Microsoft para el desarrollo de sitio
web dinámicos. ASP significa en inglés (Active Server Pages), fue liberado por Microsoft en
1996. Las páginas web desarrolladas bajo este lenguaje es necesario tener instalado Internet
Information Server (IIS).
ASP no necesita ser compilado para ejecutarse. Existen varios lenguajes que se pueden utilizar
para crear páginas ASP. El más utilizado es VBScript, nativo de Microsoft. ASP se puede hacer
también en Perl and Jscript (no JavaScript). El código ASP puede ser insertado junto con el
código HTML. Los archivos cuentan con la extensión (asp).
Ventajas:
Usa Visual Basic Script, siendo fácil para los usuarios.
Comunicación óptima con SQL Server.
Soporta el lenguaje JScript (Javascript de Microsoft).
Desventajas:
Código desorganizado.
Se necesita escribir mucho código para realizar funciones sencillas.
Tecnología propietaria.
Hospedaje de sitios web costosos.
Lenguaje ASP.NET
Este es un lenguaje comercializado por Microsoft, y usado por programadores para desarrollar
entre otras funciones, sitios web. ASP.NET es el sucesor de la tecnología ASP, fue lanzada al
mercado mediante una estrategia de mercado denominada .NET.
El ASP.NET fue desarrollado para resolver las limitantes que brindaba tu antecesor ASP. Creado
para desarrollar web sencillas o grandes aplicaciones. Para el desarrollo de ASP.NET se puede
utilizar C#, VB.NET o J#. Los archivos cuentan con la extensión (aspx). Para su funcionamiento
de las páginas se necesita tener instalado IIS con el Framework .Net. Microsft Windows 2003
incluye este framework, solo se necesitará instalarlo en versiones anteriores.
Ventajas:
Completamente orientado a objetos.
A.P.U. 2008 – Programación y Servicios Web Pág. 24
Controles de usuario y personalizados.
División entre la capa de aplicación o diseño y el código.
Facilita el mantenimiento de grandes aplicaciones.
Incremento de velocidad de respuesta del servidor.
Mayor velocidad.
Mayor seguridad.
Desventajas:
Mayor consumo de recursos.
Lenguaje JSP
Es un lenguaje para la creación de sitios web dinámicos, acrónimo de Java Server Pages. Está
orientado a desarrollar páginas web en Java. JSP es un lenguaje multiplataforma. Creado para
ejecutarse del lado del servidor.
JSP fue desarrollado por Sun Microsystems. Comparte ventajas similares a las de ASP.NET,
desarrollado para la creación de aplicaciones web potentes. Posee un motor de páginas
basado en los servlets de Java. Para su funcionamiento se necesita tener instalado un servidor
Tomcat.
Características:
Código separado de la lógica del programa.
Las páginas son compiladas en la primera petición.
Permite separar la parte dinámica de la estática en las páginas web.
Los archivos se encuentran con la extensión (jsp).
El código JSP puede ser incrustado en código HTML.
Ventajas:
Ejecución rápida del servlets.
Crear páginas del lado del servidor.
Multiplataforma.
Código bien estructurado.
Integridad con los módulos de Java.
La parte dinámica está escrita en Java.
Permite la utilización se servlets.
Desventajas:
Complejidad de aprendizaje.
Top Related