Vous êtes sur la page 1sur 19

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES

Desarrollo de Aplicaciones Web


Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

Centro Integrado de Formacin Profesional


AVILS

Seleccin de arquitecturas y herramientas de


programacin.

1.- Introduccin a la web como medio de comunicacin


La web se encuadra dentro de Internet, no es ms que un servicio de los muchos que
presta la Red, entre los que podemos encontrar
Correo electrnico
IRC o chat
FTP
El propio web
1.1 Web es un sistema Hipertexto/Hipermedia
El sistema con el que est construido el web se
llama hipertexto y es un entramado de pginas
conectadas con enlaces.
Los sistemas de hipertexto se utilizan en otros
contextos aparte del web, como la ayuda del
Windows. Son muy fciles de utilizar y tambin es
muy fcil encontrar lo que buscamos rpidamente, gracias a que pulsando enlaces
vamos accediendo a la informacin que ms nos interesa.
La web no solo se limita a presentar textos y enlaces, sino que tambin puede
ofrecernos imgenes, videos, sonido y todo tipo de presentaciones, llegando a ser el
servicio ms rico en medios que tiene Internet. Por esta razn, para referirnos al
sistema que implementa el web (hipertexto), se ha acuado un nuevo trmino que es

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

hipermedia, haciendo referencia a que el web permite contenidos multimedia.

1.2. Pginas estticas vs. Pginas dinmicas y dinmicas.


En la web podemos encontrar, o construir, dos tipos de pginas:
Las que se presentan sin movimiento y sin funcionalidades ms all de los
enlaces.
Las pginas en las que podemos interactuar.
Las primeras pginas son las que denominamos pginas estticas, se construyen con
el lenguaje HTML, que no permite grandes florituras para crear efectos ni
funcionalidades ms all de los enlaces.
Estas pginas son muy sencillas de crear, aunque ofrecen pocas ventajas tanto a los
desarrolladores como a los visitantes, ya que slo se pueden presentar textos planos
acompaados de imgenes y a lo sumo contenidos multimedia como pueden ser
videos o sonidos.
Cuando una pgina esttica se descarga a tu ordenador, su contenido define qu se
debe mostrar en pantalla. Este contenido est programado en un lenguaje de
marcado, formado por etiquetas, que puede ser HTML o XHTML. Las etiquetas que
componen la pgina indican el objetivo de cada una de las partes que la componen.
As, dentro de estos lenguajes hay etiquetas para indicar que un texto es un
encabezado, que forma parte de una tabla, o que simplemente es un prrafo de texto.
Adems, si la pgina est bien estructurada, la informacin que le indica al navegador
el estilo con que se debe mostrar cada parte de la pgina estar almacenado en
otro fichero, una hoja de estilos o CSS.
Estos dos ficheros se descargan a tu ordenador desde un servidor web como
respuesta a una peticin. El proceso es el que se refleja en la siguiente figura.

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

Los pasos son los siguientes:


1. Tu ordenador solicita a un servidor web una pgina con extensin .htm,
.html o .xhtml.
2. El servidor busca esa pgina en un almacn de pginas (cada una suele ser
un fichero).
3. Si el servidor encuentra esa pgina, la recupera.
4. Y por ltimo se la enva al navegador del cliente para que ste pueda mostrar
su contenido.
Este es un ejemplo tpico de una comunicacin cliente-servidor. El cliente es el que
hace la peticin e inicia la comunicacin, y el servidor es el que recibe la peticin y la
atiende. En nuestro caso, el navegador es el cliente web.
El segundo tipo de pginas se denomina pgina dinmica. Una pgina es dinmica
cuando se incluye cualquier efecto especial o funcionalidad y para ello es necesario
utilizar otros lenguajes de programacin, aparte del simple HTML.
Las pginas dinmicas son ms complejas y verstiles. Para aclarar este concepto,
veremos con detalle a continuacin qu son las pginas dinmicas.

2.- Pginas dinmicas


Dentro de las pginas web dinmicas, es muy importante distinguir dos tipos:

Aquellas que incluyen cdigo que ejecuta el navegador. En estas pginas el


cdigo ejecutable, normalmente en lenguaje JavaScript, se incluye dentro del
HTML (o XHTML) y se descarga junto con la pgina. Cuando el navegador
muestra la pgina en pantalla, ejecuta el cdigo que la acompaa. Este cdigo
puede incorporar mltiples funcionalidades que pueden ir desde mostrar
animaciones hasta cambiar totalmente la apariencia y el contenido de la
pgina. En este mdulo no vamos a ver JavaScript, salvo cuando ste se
relaciona con la programacin web del lado del servidor.

Como ya sabes, hay muchas pginas en Internet que no tienen extensin .htm,
.html o .xhtml. Muchas de estas pginas tienen extensiones como .php, .asp,
.jsp, .cgi o .aspx. En stas, el contenido que se descarga al navegador es
similar al de una pgina web esttica: HTML (o XHTML). Lo que cambia es la
forma en que se obtiene ese contenido. Al contrario de lo que vimos hasta
ahora, esas pginas no estn almacenadas en el servidor; ms concretamente,
el contenido que se almacena no es el mismo que despus se enva al
navegador. El HTML de estas pginas se forma como resultado de la
ejecucin de un programa, y esa ejecucin tiene lugar en el servidor web
(aunque no necesariamente por ese mismo servidor).

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

El esquema de funcionamiento de una pgina web dinmica es el siguiente:

Pasos:
1. El cliente web (navegador) de tu ordenador solicita a un servidor web una
pgina web.
2. El servidor busca esa pgina y la recupera.
3. En el caso de que se trate de una pgina web dinmica, es decir, que su
contenido deba ejecutarse para obtener el HTML que se devolver, el servidor
web contacta con el mdulo responsable de ejecutar el cdigo y se lo enva.
4. Como parte del proceso de ejecucin, puede ser necesario obtener
informacin de algn repositorio, como por ejemplo consultar registros
almacenados en una base de datos.
5. El resultado de la ejecucin ser una pgina en formato HTML, similar a
cualquier otra pgina web no dinmica.
6. El servidor web enva el resultado obtenido al navegador, que la procesa y
muestra en pantalla.
Las aplicaciones web emplean pginas web dinmicas para crear aplicaciones que
se ejecuten en un servidor web y se muestren en un navegador.
Hoy en da existen aplicaciones web para multitud de tareas como procesadores de
texto, gestin de tareas, o edicin y almacenamiento de imgenes. Estas aplicaciones
tienen ciertas ventajas e inconvenientes si las comparas con las aplicaciones
tradicionales que se ejecutan sobre el sistema operativo de la propia mquina.
Ventajas de las aplicaciones web:

No es necesario instalarlas en aquellos equipos en que se vayan a


utilizar. Se instalan y se ejecutan solamente en un equipo, en el servidor, y
esto es suficiente para que se puedan utilizar de forma simultnea desde
muchos equipos.
Como solo se encuentran instaladas en un equipo, es muy sencillo
gestionarlas (hacer copias de seguridad de sus datos, corregir errores,
actualizarlas).
Se pueden utilizar en todos aquellos sistemas que dispongan de un
navegador web, independientemente de sus caractersticas (no es necesario
un equipo potente) o de su sistema operativo.

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

Se pueden utilizar desde cualquier lugar en el que dispongamos de


conexin con el servidor. En muchos casos esto hace posible que se pueda
acceder a las aplicaciones desde sistemas no convencionales, como por
ejemplo telfonos mviles.

Inconvenientes de las aplicaciones web:

El interface de usuario de las aplicaciones web es la pgina que se


muestra en el navegador. Esto restringe las caractersticas del interface a
aquellas de una pgina web.
Dependemos de una conexin con el servidor para poder utilizarlas. Si
nos falla la conexin, no podremos acceder a la aplicacin web.
La informacin que se muestra en el navegador debe transmitirse desde
el servidor. Esto hace que cierto tipo de aplicaciones no sean adecuadas para
su implementacin como aplicacin web (por ejemplo, las aplicaciones que
manejan contenido multimedia, como las de edicin de vdeo).

3.- Tecnologas para programacin web del lado del servidor.


Los componentes principales con los que debes contar para ejecutar aplicaciones
web son los siguientes:

Un servidor web para recibir las peticiones de los clientes web (normalmente
navegadores) y enviarles la pgina que solicitan (una vez generada puesto que
hablamos de pginas web dinmicas). El servidor web debe conocer el
procedimiento a seguir para generar la pgina web: qu mdulo se encargar
de la ejecucin del cdigo y cmo se debe comunicar con l.
El mdulo encargado de ejecutar el cdigo o programa y generar la pgina
web resultante. Este mdulo debe integrarse de alguna forma con el servidor
web, y depender del lenguaje y tecnologa que utilicemos para programar la
aplicacin web.
Una aplicacin de base de datos, que normalmente tambin ser un servidor.
Este mdulo no es estrictamente necesario pero en la prctica se utiliza en
todas las aplicaciones web que utilizan grandes cantidades de datos para
almacenarlos.

Adems de los componentes a utilizar, tambin es importante decidir cmo vas a


organizar el cdigo de la aplicacin. Muchas de las arquitecturas que se usan en la
programacin de aplicaciones web te ayudan a estructurar el cdigo de las
aplicaciones en capas o niveles.
El motivo de dividir en capas el diseo de una aplicacin es que se puedan separar
las funciones lgicas de la misma, de tal forma que sea posible ejecutar cada una en
un servidor distinto (en caso de que sea necesario).
En una aplicacin puedes distinguir, de forma general, funciones de presentacin

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

(se encarga de dar formato a los datos para presentrselo al usuario final), lgica
(utiliza los datos para ejecutar un proceso y obtener un resultado), persistencia (que
mantiene los datos almacenados de forma organizada) y acceso (que obtiene e
introduce datos en el espacio de almacenamiento).
Cada capa puede ocuparse de una o varias de las funciones anteriores. Por ejemplo,
en las aplicaciones de 3 capas nos podemos encontrar con:

Una capa presentacin, esta es la que ve el usuario, es donde se programa


todo lo relacionado con el interface de usuario, esto es, la parte visible de la
aplicacin con la que interactuar el usuario.
Una capa de negocio, es donde se programa la funcionalidad de la
aplicacin, es donde se produce el procesamiento de la informacin. Puede ser
programada tanto en el entorno cliente como en el entorno servidor.
Una capa de persistencia o de datos, que se tendr que encargar de
almacenar la informacin de la aplicacin en una base de datos y recuperarla
cuando sea necesario, est formada por uno o ms gestores de bases de
datos.

4.- Arquitecturas y plataformas.


La primera eleccin que hars antes de comenzar a programar una aplicacin web es
la arquitectura que vas a utilizar. Hoy en da, puedes elegir entre:

Java EE (Enterprise Edition), que antes tambin se conoca como J2EE. Es


una plataforma orientada a la programacin de aplicaciones en lenguaje Java.
Puede funcionar con distintos gestores de bases de datos, e incluye varias
libreras y especificaciones para el desarrollo de aplicaciones de forma
modular.
Est apoyada por grandes empresas como Sun y Oracle, que mantienen Java.
Es una buena solucin para el desarrollo de aplicaciones de tamao mediano o
grande. Una de sus principales ventajas es la multitud de libreras existentes en
ese lenguaje y la gran base de programadores que lo conocen.
Dentro de esta arquitectura existen distintas tecnologas como las pginas JSP.

AMP. Son las siglas de Apache, MySQL y PHP/Perl/Python. Las dos primeras
siglas hacen referencia al servidor web (Apache) y al servidor de base de datos
(MySQL). La ltima se corresponde con el lenguaje de programacin utilizado,
que puede ser PHP, Perl o Python, siendo PHP el ms empleado de los tres.
Dependiendo del sistema operativo que se utilice para el servidor, se utilizan
las siglas LAMP (para Linux), WAMP (para Windows) o MAMP (para Mac).
Tambin es posible usar otros componentes, como el gestor de bases de datos
PostgreSQL en lugar de MySQL.
Todos los componentes de esta arquitectura son de cdigo libre (open source).
Es una plataforma de programacin que permite desarrollar aplicaciones de
tamao pequeo o mediano con un aprendizaje sencillo. Su gran ventaja es la

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

gran comunidad que la soporta y la multitud de aplicaciones de cdigo libre


disponibles.

Existen paquetes software que incluyen en una


nica instalacin una plataforma AMP completa. Algunos ni siquiera es necesario
instalarlos, e incluso disponen de versiones para distintos sistemas operativos como
Linux, Windows o Mac. Uno de los ms conocidos es XAMPP, es una distribucin de
Apache que contiene MySQL, PHP y Perl.

WampServer es otro entorno de desarrollo web de


Windows, est disponible de forma gratuita (bajo licencia GPML). Te permite crear
aplicaciones web con Apache, PHP y la base de datos MySQL.

Es una herramienta OpenSource para Windows que


facilita la instalacin de Apache, MySQL y PHP en la cual estas aplicaciones se
configuran de forma automtica.

CGI/Perl. CGI significa "Common Gateway Interface" . Es un estndar para


permitir al servidor web ejecutar programas genricos, escritos en cualquier
lenguaje, pero Perl es uno de los ms populares (tambin se pueden utilizar
por ejemplo C o Python), que devuelven pginas web (HTML) como resultado
de su ejecucin. Es la ms primitiva de las arquitecturas que comparamos
aqu.
El principal inconveniente de esta combinacin es que CGI es lento, aunque
existen mtodos para acelerarlo. Por otra parte, Perl es un lenguaje muy
potente con una amplia comunidad de usuarios y mucho cdigo libre

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

disponible.

ASP.Net es la arquitectura comercial propuesta por Microsoft para el desarrollo


de aplicaciones. Es la parte de la plataforma .Net destinada a la generacin de
pginas web dinmicas. Proviene de la evolucin de la anterior tecnologa de
Microsoft, ASP (Active Server Pages).
El lenguaje de programacin puede ser Visual Basic.Net o C#. La arquitectura
utiliza el servidor web de Microsoft, IIS, Internet Information Services. Y
puede obtener informacin de varios gestores de bases de datos entre los que
se incluye, como no, Microsoft SQL Server.
Una de las mayores ventajas de la arquitectura .Net es que incluye todo lo
necesario para el desarrollo y el despliegue de aplicaciones. Por ejemplo, tiene
su propio entorno de desarrollo, Visual Studio, aunque hay otras opciones
disponibles. La mayor desventaja es que se trata de una plataforma comercial
de cdigo propietario.

5.- Lenguajes Web de servidor


5.1.- CGI, Common Gateway Interface
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.
El funcionamiento bsico de un programa CGI es parecido al apuntado para el
conjunto de las pginas dinmicas del servidor, con algunas particularidades.
Se realiza una peticin http, a la que pueden acompaar datos llegados o bien por un
formulario o bien a travs de la URL.
El servidor ejecuta los programas CGI a los que se accede y trabaja con los recursos
necesarios para llevar a cabo las acciones, como por ejemplo bases de datos.
El programa CGI va escribiendo en la salida estndar el resultado de la ejecucin del
CGI, que incluye etiquetas HTML, ya que lo que se escribe es una pgina web.
Algunas desventajas de la programacin en CGI son las siguientes:
Los resultados se escriben directamente con el CGI, as que el cdigo del programa se

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

mezcla con el del HTML haciendo difcil su comprensin y mantenimiento.


Cada programa CGI que se pone en marcha lo hace en un espacio de memoria
propio. As, si tres usuarios ponen en marcha un CGI a la vez se multiplicar por tres
la cantidad de recursos que ocupe ese CGI. Esto significa una grave ineficiencia.
5.2.- ASP, Active Server Pages
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).
Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor web, justo
antes de que se enve la pgina a travs de Internet al cliente. Las pginas que se
ejecutan en el servidor pueden realizar accesos a bases de datos, conexiones en red,
y otras tareas para crear la pgina final que ver el cliente. El cliente solamente recibe
una pgina con el cdigo HTML resultante de la ejecucin de la pgina ASP. Como la
pgina resultante contiene nicamente cdigo HTML, es compatible con todos los
navegadores.
El tipo de servidores que emplean este lenguaje son, evidentemente, todos aquellos
que funcionan con sistema Windows NT. Incluso en sistemas Linux podemos utilizar
las ASP si intalamos un componente denominado Chilisoft, aunque parece claro que
ser mejor trabajar sobre el servidor web para el que est pensado: Internet
Information Server.
Con las ASP podemos realizar muchos tipos de aplicaciones distintas. Nos permite
acceso a bases de datos, al sistema de archivos del servidor y en general a todos los
recursos que tenga el propio servidor. Tambin tenemos la posibilidad de comprar
componentes ActiveX (Los controles ActiveX son cdigos de lenguajes de programacin
diseados especialmente para que el sistema operativo Windows y el navegador Internet
Explorer muestren animaciones y otros datos interactivos de un sitio web).
Actualmente se ha presentado ya la segunda versin de ASP, el ASP.NET, que
comprende algunas mejoras en cuanto a posibilidades del lenguaje y rapidez con la
que funciona. ASP.NET tiene algunas diferencias en cuanto a sintaxis con el ASP, de
modo que se ha de tratar de distinta manera uno de otro.
Ejemplo:
En este ejemplo hay un cuadro de texto que acepta datos del usuario, lo que puede
suponer una amenaza para la seguridad. De forma predeterminada, las pginas Web
ASP.NET validan los datos escritos por el usuario para comprobar que no incluyen
secuencias de comandos ni elementos HTML.

C#
<html>
<script language="C#" runat="server">
void EnterBtn_Click(Object Src, EventArgs E) {
Message.Text = "Hi " + Name.Text + ", welcome to ASP.NET!";

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

}
</script>
<body>
<form runat="server">
Enter your name: <asp:textbox id="Name" runat=server/>
<asp:button text="Enter" Onclick="EnterBtn_Click"
runat="server"/>
<p>
<asp:label id="Message" runat=server/>
</form>
</body>
</html>

VB
<html>
<script language="VB" runat="server">
Sub EnterBtn_Click(Src As Object, e As EventArgs)
Message.Text = "Hi " & Name.Text & ", welcome to ASP.NET!"
End Sub
</script>
<body>
<form runat="server">
Enter your name: <asp:textbox id="Name" runat=server/>
<asp:button text="Enter" Onclick="EnterBtn_Click"
runat="server"/>
<p>
<asp:label id="Message" runat=server/>
</form>
</body>
</html>

5.3.- 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.
Un lenguaje del lado del servidor es aquel que se ejecuta en el servidor web, justo
antes de que se enve la pgina a travs de Internet al cliente. Las pginas que se
ejecutan en el servidor pueden realizar accesos a bases de datos, conexiones en red,
y otras tareas para crear la pgina final que ver el cliente. El cliente solamente recibe
una pgina con el cdigo HTML resultante de la ejecucin de la PHP. Como la pgina
resultante contiene nicamente cdigo HTML, es compatible con todos los
navegadores.
PHP se escribe dentro del cdigo HTML, lo que lo hace realmente fcil de utilizar, al
igual que ocurre con el popular ASP de Microsoft, pero con algunas ventajas como su
gratuidad, independencia de plataforma, rapidez y seguridad. Cualquiera puede
descargar a travs de la pgina principal de PHP www.php.net y de manera gratuita,
un mdulo que hace que nuestro servidor web comprenda los scripts realizados en

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

este lenguaje. Es independiente de plataforma, puesto que existe un mdulo de PHP


para casi cualquier servidor web. Esto hace que cualquier sistema pueda ser
compatible con el lenguaje y significa una ventaja importante, ya que permite portar el
sitio desarrollado en PHP de un sistema a otro sin prcticamente ningn trabajo.
PHP, en el caso de estar montado sobre un servidor Linux u Unix, es ms rpido que
ASP, dado que se ejecuta en un nico espacio de memoria y esto evita las
comunicaciones entre componentes que se realizan entre todas las tecnologas
implicadas en una pgina ASP.
Por ltimo sealbamos la seguridad, en este punto tambin es importante el hecho
de que en muchas ocasiones PHP se encuentra instalado sobre servidores Unix o
Linux, que son de sobra conocidos como ms veloces y seguros que el sistema
operativo donde se ejecuta las ASP, Windows NT o 2000. Adems, PHP permite
configurar el servidor de modo que se permita o rechacen diferentes usos, lo que
puede hacer al lenguaje ms o menos seguro dependiendo de las necesidades de
cada cual.
Fue creado originalmente en 1994 por Rasmus Lerdorf, pero como PHP est
desarrollado en poltica de cdigo abierto, a lo largo de su historia ha tenido muchas
contribuciones de otros desarrolladores.
Este lenguaje de programacin est preparado para realizar muchos tipos de
aplicaciones web gracias a la extensa librera de funciones con la que est dotado. La
librera de funciones cubre desde clculos matemticos complejos hasta tratamiento
de conexiones de red, por poner dos ejemplos.
Algunas de las ms importantes capacidades de PHP son: compatibilidad con las
bases de datos ms comunes, como MySQL, mSQL, Oracle, Informix, y ODBC, por
ejemplo. Incluye funciones para el envo de correo electrnico, upload de archivos,
crear dinmicamente en el servidor imgenes en formato GIF, incluso animadas y una
lista interminable de utilidades adicionales.
Ejemplo:
index.php
<?php session_start(); //Se inicializa la sesin ?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Cp1252">
<title>Pantalla de login</title>
</head>
<body>
<p>Bienvenido, introduce tu nombre de usuario y contrasea:</p>
<form action='confirmacion.php' name='login' method='post'>
<p><input type='text' name='usuario' /></p>

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

<p><input type='password' name='password' /></p>


<p><input type='submit' name='enviar' value='Enviar' /></p>
</form>
</body>
</html>

confirmacion.php
<?php
//Se inicializa la sesin
session_start();
//Las variables del formulario se introducen en $_SESSION
$_SESSION['usuario']=$_POST['usuario'];
$_SESSION['password']=$_POST['password'];
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Frameset//EN">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Cp1252">
<title>Pantalla de confirmacin</title>
</head>
<body>
<p>Los datos introducidos son los siguientes:</p>
<p>Usuario: <?php echo $_SESSION['usuario']; //Se muestra el user?> </p>
<p>Contrasea: <?php echo $_SESSION['password'];//Password?></p>
</body>
</html>

5.4.- JSP, Java Server Pages


JSP es un acrnimo de Java Server Pages, que en castellano vendra a decir algo
como Pginas de Servidor 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. Las pginas JSP estn compuestas de cdigo
HTML mezclado con etiquetas especiales para programar scripts de servidor en
sintaxis Java.
En JSP creamos pginas de manera parecida a como se crean en ASP o PHP -otras
dos tecnologas de servidor-. Generamos archivos con extensin .jsp que incluyen,
dentro de la estructura de etiquetas HTML, las sentencias Java a ejecutar en el
servidor.
En la imagen siguiente se puede ver un ejemplo extremadamente simple de una
pgina JSP.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1"
pageEncoding="ISO-8859-1"%>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-88591">
<title> entrega el nombre como parmetro, de lo contrario lo pide y
saluda
</title>
</head>
<body>
<%
String nombre = request.getParameter("nombrePila");
if (nombre != null) {
%>
<h1>
Hola <%= nombre %>, <br />
Bienvenido a la pgina !
</h1>
<%}
else {
%>
<form action="saludo.jsp" method = "get">
<p>Escriba su nombre y pulse Enviar </p>
<p><input type = "text" name = "nombrePila" />
<input type = "submit" value = "Enviar" />
</p>
</form>
<%}%>
</body>
</html>

Para aprender JSP, aparte de conocer HTML, ser necesario comprender y tener algo
de experiencia en la programacin en Java, que es un lenguaje de programacin
Orientado a Objetos por completo. Una vez conocida la programacin en Java se
puede estudiar por encima el sistema de Servlets, lo que nos dar una mejor idea del
funcionamiento interno del motor JSP.
5.5.- Qu es 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 enormes y bsicas para la sociedad de la informacin
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.
As pues, el XML juega un papel importantsimo en este mundo actual, que tiende a la
globalizacin y la compatibilidad entre los sistemas, ya que es la tecnologa que
permitir compartir la informacin de una manera segura, fiable, fcil. Adems, XML
permite al programador y los soportes dedicar sus esfuerzos a las tareas importantes

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

cuando trabaja con los datos, ya que algunas tareas tediosas como la validacin de
estos o el recorrido de las estructuras corre a cargo del lenguaje y est especificado
por el estndar, de modo que el programador no tiene que preocuparse por ello.
Vemos que XML no est slo, sino que hay un mundo de tecnologas alrededor de l,
de posibilidades, maneras ms fciles e interesantes de trabajar con los datos y, en
definitiva, un avance a la hora de tratar la informacin, que es en realidad el objetivo
de la informtica en general. XML, o mejor dicho, el mundo XML no es un lenguaje,
sino varios lenguajes, no es una sintaxis, sino varias y no es una manera totalmente
nueva de trabajar, sino una manera ms refinada que permitir que todas las
anteriores se puedan comunicar entre s sin problemas, ya que los datos cobran
sentido.
XML es interesante en el mundo de Internet y el e-bussiness, ya que existen muchos
sistemas distintos que tienen que comunicarse entre si, pero como se ha podido
imaginar, interesa por igual a todas las ramas de la informtica y el tratamiento de
datos, ya que permite muchos avances a la hora de trabajar con ellos.

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

A lo largo de todo este curso, vamos a necesitar diferentes softwares, con diferentes
objetivos cada uno de ellos. Aun as, entre los tres conseguiremos un objetivo
comn: diseo e implementacin de pginas web dinmicas.
Las herramientas que vamos a emplear van a ser las siguientes:
Apache. Como servidor de pginas web.
MySQL. Como gestor de bases de datos.
Intrprete PHP. Mediante este intrprete instalado en el servidor Apache y
mediante consultas a las bases de datos MySQL podremos conseguir crear
pginas web dinmicas, utilizando su lenguaje de programacin.

Apache
Apache es un servidor HTTP de cdigo abierto y licenciamiento libre, que funciona
en Linux, sistemas operativos derivados de Unix, Windows, Novell Netware y
otras plataformas. Ha desempeado un papel muy importante en el crecimiento de
la red mundial, y contina siendo el servidor HTTP ms utilizado, siendo adems, el
servidor de hecho contra el cual se realizan las pruebas comparativas y de
desempeo para otros productos competidores. Apache es desarrollado y
mantenido por una comunidad de desarrolladores auspiciada por Apache Software
Foundation (http://www.apache.org).

HTTP (Hypertext Transfer Protocol, o Protocolo de Trasferencia de Hipertexto), es


el protocolo utilizado para transferir o transportar informacin en Internet (WWW,
World Wide Web). Su propsito original fue el proveer una forma de publicar y
recuperar documentos HTML.
El desarrollo del protocolo fue coordinado por World Wide Web Consortium y la
IETF (Internet Engineering Task Force, o Fuerza de Trabajo en Ingeniera de
Internet), culminando con la publicacin de varios RFC (Request For Comments),
de entre los que destaca el RFC 2616.
HTTP es un protocolo de solicitud y respuesta a travs de Transmission Control
Protocol (TCP) o Protocolo de Control de Transmisin, entre agentes de
usuario (navegadores) y servidores,regularmente utilizando el puerto 80. Entre la
comunicacin entre stos pueden intervenir como servidores Intermediarios (Proxies),
puertas de enlace y tneles.
Volviendo a Apache, en primer lugar, tenemos que destacar el gran auge que ha
tenido en tan corto espacio de tiempo, y como hoy en da, segn las estadsticas,

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

es empleado en el 60% de soluciones de servidores http en el mundo,


desbancando a sus principales rivales como es el caso de Microsoft, con su
software Microsoft IIS (Internet Information Server).
Como caractersticas diferenciadoras podramos citar a modo general las siguientes:

Apache es un servidor altamente configurable de diseo modular. Ser


sencillo poder ampliar las capacidades del servidor Web Apache. Con un
poco de experiencia en lenguaje como C o Perl, podremos escribir nuestro
propio mdulo para poder realizar una funcin determinada. Como
consecuencia, existen una gran cantidad de mdulos diseados para
Apache y que estn disponibles para su utilizacin.

Apache es una tecnologa gratuita de cdigo fuente abierto (open source). El hecho
realmente importante no es que sea gratuito, que tambin, sino sobre todo el hecho de
que sea de cdigo abierto, ya que vamos a poder implementar soluciones
desarrolladas y mejoradas por una gran comunidad.

Apache puede trabajar con una gran cantidad de lenguajes de programacin como
PHP, Perl u otros lenguajes de script.

Apache fue diseado especialmente para sistemas Unix. Linux, al ser un


sistema basado en Unix, se ha aprovechado especialmente del auge que ha
supuesto la implementacin de soluciones Apache, y por lo tanto, forman el
binomio habitual en la instalacin y configuracin de servidores de servicios
de hosting. Otros sistemas de Unix como FreeBSD, Solaris o Mac OS,
tambin pueden implementar Apache, formando tambin parte de la
ampliacin de usuarios de Apache.

Apache tambin trabaja bajo Windows. A partir de la versin 2.0 de


Apache, su integracin en sistemas Windows mejor ostensiblemente, y hoy
en da, suele ser implementado en multitud de sistemas Windows, en
detrimento de la propia solucin de Microsoft, Microsoft Internet Information
Server.

MySQL
MySQL es un sistema gestor de bases de datos relacionales, rpido y slido. Con la
utilizacin de bases de datos, podremos realizar operaciones de bsqueda,
ordenacin y consulta de datos de una forma ptima.
Instalando un servidor MySQL, podremos controlar el acceso a estos datos para, de
esta forma, poder asegurar el uso simultneo de varios usuarios, para que puedan
acceder a sus datos, garantizando que slo podrn acceder a aquellos quienes tengan
autorizacin para realizar dichas tareas.
MySQL es un servidor multiusuario y de subprocesamiento mltiple que utiliza el
lenguaje SQL (Structured Query Language, Lenguaje de consulta estructurado),
que es el lenguaje estndar para la consulta de bases de datos ms utilizado en
todo el mundo.
Una base de datos relacional va a guardar sus datos en tablas separadas en lugar
de poner todos sus datos en un gran almacn. Con esto conseguimos aumentar la
velocidad y flexibilidad. La parte SQL de MySQL se refiere a "Structured Query

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

Language".
SQL es el lenguaje estandarizado ms comn para acceder a bases de datos y
est definido por el estndar ANSI/ISO SQL. El estndar SQL ha evolucionado
desde 1986 y existen varias versiones. En este manual, "SQL-92" se refiere al
estndar del 1992, "SQL:1999" se refiere a la versin del 1999, y "SQL:2003" se
refiere a la versin actual del estndar. Usamos la frase "el estndar SQL" para
referirnos a la versin actual de SQL.
MySQL se distribuye bajo un sistema de licencias dual. Podremos utilizarlo con una
licencia de cdigo abierto (GPL), que ser gratuita mientras cumplamos sus
condiciones. Pero si deseamos distribuir una aplicacin que no sea GPL y que
incluya MySQL, tendremos que comprar una licencia adicional.
MySQL es propiedad y patrocinio de MySQL AB.

Entre los competidores oficiales de MySQL se encuentran otros gestores de bases de


datos como, por ejemplo, PostgreSQL, Microsoft SQL Server u Oracle entre otros.
En cuanto a las razones por las que nos descantamos por MySQL, podemos citar
las siguientes:
Escalabilidad y flexibilidad. MySQL puede trabajar con bases de datos
sencillas de 1Mb de tamao hasta otras con varios Tb de informacin. Como
ya hemos comentado, su flexibilidad nos permitir poder instalarlo en
sistemas Windows, Linux o Mac OS. Al ser open source, podremos personalizar
caractersticas de MySQL en el servidor.

Alto rendimiento. MySQL puede trabajar en cualquier sistema, desde un


sistema de procesamiento transaccional de alta velocidad, hasta una pgina
web que tenga millones de consultas diarias. Esto lo puede realizar gracias
a la implementacin de herramientas de carga de alta velocidad, ndices fulltext
y otros mecanismos.

Alta disponibilidad. MySQL tiene a la disposicin de sus clientes


herramientas de alta disponibilidad, tales como replicacin a servidores de
cluster especiales.

Soporte transaccional. MySQL tiene uno de los motores de bases de datos


transaccionales mejores del mercado. Esto se traduce en la inclusin de un
sistema ACID (atmica, consistente, aislada, duradera), realizacin de
transacciones distribuidas, soporte de transacciones mltiples donde un
lector no podr bloquear a un escritor, o al revs. Ofrece integridad completa
de los datos a travs de integridad referencial o niveles de aislamiento de
transacciones.

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

Proteccin de datos. Suministra potentes mecanismos para autorizar el


acceso al servidor solo a usuarios autentificados, soporte para
conexiones seguras, funciones de cifrado y descifrado, utilidades de backup
y recuperacin o una fuerte estructura de privilegios para usuarios.

Posibilidad de desarrollo con diferentes lenguajes de programacin.


No importar si un programador va a utilizar PHP, Perl, Java, Visual Basic o
.NET, por ejemplo, ya que MySQL ofrece procedimientos almacenados,
triggers, vistas, funciones, cursores, SQL estndar y otras libreras que
facilitarn la vida del programador.

Facilidad de instalacin. El proceso de instalacin de MySQL es


extremadamente sencillo. Desde su descarga hasta su primer
funcionamiento no deberan de pasar ms de 15 minutos.

PHP
PHP (PHP Hipertext Preprocessor) es un lenguaje de secuencia de comandos de
servidor que fue desarrollado de forma especfica con el objetivo de construir sitios
web. Utilizaremos el lenguaje PHP en el diseo de una web, programando un
cdigo fuente que ser ejecutado cada vez que un usuario visite la pgina web. El
cdigo que hayamos generado se ejecutar siempre en el lado del servidor, y ser
transformado a cdigo HTML, as como a otro tipo de contenido.
PHP es una de las soluciones adoptadas por la mayora de programadores y
empresas para llevar a cabo sus proyectos web en Internet. Tiene todas las
ventajas para que as sea, ya que se trata de un software de cdigo abierto (Open
Source), y por lo tanto, con la ventaja que supone tambin que exista una gran
comunidad dando soporte a la mejora de la tecnologa y compartiendo sus
proyectos para que puedan ser mejorados por el resto.
Est desarrollado para que pueda trabajar con las plataformas ms utilizadas
(Windows, Linux, Macintosh, Solaris, etc.) e incluye soporte para un gran nmero
de gestores de bases de datos y otras tecnologas como Java o XML.
Otro de sus puntos fuertes es su fcil aprendizaje. Como podremos comprobar a lo
largo de este libro, crear pginas PHP no resultar nada difcil; y si adems, ya
poseemos algn conocimiento sobre todos lenguajes de programacin, an ser ms
fcil asimilarlo y llevar a la prctica esta nueva forma de crear pginas dinmicas.
En el diseo de pginas web se pueden utilizar lenguajes que se ejecutan en cliente
o en el servidor. Los lenguajes de cliente (HTML, Javascript o VBscript) se
caracterizan porque su cdigo es ejecutado en los navegadores de los usuarios que
visitan estas pginas web, de tal forma que ser el navegador el encargado de
interpretar el cdigo y mostrarlo en pantalla. Esto nos supone el principal
inconveniente, que a la hora de desarrollar el cdigo, tendremos que prestar
especialmente atencin a los diferentes navegadores que existan en el mercado,
para que pueda ser compatible con todos.
Por el contrario, los lenguajes como PHP que se ejecutan en el lado del servidor,
ser ste quien se encarga de interpretar el cdigo y llevar hasta el usuario el
resultado obtenido. El proceso ser el siguiente: el navegador realiza una llamada
al servidor web, que pasar la peticin a travs de la interfaz PHP del servidor web.
Esta interfaz realizar una llamada al intrprete PHP, que acceder a la zona del
disco donde estn almacenados los scripts PHP, de tal forma que el servidor

Centro Integrado de Formacin Profesional


AVILS

DEPARTAMENTO DE INFORMTICA Y COMUNICACIONES


Desarrollo de Aplicaciones Web
Mdulo de Desarrollo Web en entorno servidor
Unidad 1: Seleccin de arquitecturas y herramientas de programacin.

recuperar el cdigo PHP y lo enviar a un compilador. Este compilador convertir


el cdigo en HTML, que podr ser interpretado por el navegador del usuario.
Para hacer un resumen de sus principales caractersticas, vamos a dividirlo en dos
partes. En primer lugar, haremos un resumen de sus principales caractersticas ms
generales, y a continuacin, haremos hincapi en caractersticas ms tcnicas.
En cuanto a las caractersticas generales, el resumen sera el siguiente:

Lenguaje de programacin multiplataforma. Podremos trabajar con PHP


en entornos diferentes como Linux, Windows o Macintosh.

Accesibilidad a un gran nmero de gestores de bases de datos. Con


PHP podremos utilizar una gran diversidad de SGBD (Sistemas Gestores de
Bases de Datos). La lista sera inacabable, pero podramos citar de entre las
ms conocidas: Adabas D, dbm, dBase, filePro, Hyperwave, Informix,
InterBase, LDAP, Microsoft SQL Server, Msql, MySQL, ODBC, Oracle,
PostgreSQL o Solid, entre otras.

Gran cantidad de libreras. PHP tiene definidas muchas funciones ya


implementadas que nos permitirn realizar acciones como, por ejemplo, las
siguientes:
Acceso a servidores FTP.
Generacin de grficos dinmica y documentos PDF.
Anlisis de documentos XML.

Gran variedad de aplicaciones para facilitar la programacin con PHP.


Existen una gran cantidad de editores gratuitos diseados para trabajar
exclusivamente con PHP. Tambin existen muchos frameworks (entornos
de trabajo) y CMS (Gestores de Contenidos) basados en PHP como Joomla,
Drupal, etc.

Simplicidad y facilidad de aprendizaje. PHP dispone de una gran


documentacin, tanto en manuales como ejemplos, que podemos conseguir
a travs de Internet. Con este libro y los recursos comentados, el
aprendizaje ser ms sencillo.

Vous aimerez peut-être aussi