You are on page 1of 12

. 1.

1 Evolucin de las Aplicaciones web


1.1 Evolucin de las Aplicaciones web
La programacin web es un trmino adecuado para describir el proceso general que
engloba el diseo y la creacin de un sitio web.

Hace algunos aos, los sitios web no eran mucho ms que folletos digitales. Actualmente
los sitios son ms grandes y complejos.

Con la introduccin de comercio electrnico y las pginas dinmicas, los sitios ya han
dejado atrs los folletos y han pasado a ser autnticas aplicaciones de software.

La web 1.0
La Web 1.0 (1991-2003) es la forma ms bsica que existe, con navegadores de slo
texto bastante rpidos ya que es de slo lectura. El usuario no puede interactuar con el
contenido de la pgina (nada de comentarios, respuestas, citas, etc), estando totalmente
limitado a lo que el Webmaster sube a sta.

Algunos elementos de diseo tpicos de un sitio Web 1.0 incluyen:


Pginas estticas en vez de dinmicas por el usuario que la visita 2
El uso de framesets o Marcos.
Extensiones propias del HTML como <bilnk> y <marquee>, etiquetas
introducidas durante la guerra de navegadores web.
Libros de visitas online o guestbooks
botones GIF, casi siempre a una resolucin tpica de 88x31 pixels en tamao
promocionando navegadores web u otros productos. 3
formularios HTML enviados va email. Un usuario llenaba un formulario y despus
de hacer clic se enviaba a travs de un cliente de correo electrnico, con el
problema que en el cdigo se poda observar los detalles del envo del correo
electrnico.
No se podian adherir comentarios ni nada parecido
Todas sus pginas se creaban de forma fija y muy pocas veces se actualizaban.
No se trata de una nueva versin, sino de una nueva forma de ver las cosas.

La web 2.0
El trmino Web 2.0 comprende aquellos sitios web que facilitan el compartir
informacin, la interoperabilidad, el diseo centrado en el usuario1 y lacolaboracin en
la World Wide Web. Un sitio Web 2.0 permite a los usuarios interactuar y colaborar entre
s como creadores de contenido generado por usuarios en una comunidad virtual, a
diferencia de sitios web estticos donde los usuarios se limitan a la observacin pasiva
de los contenidos que se han creado para ellos. Ejemplos de la Web 2.0 son las
comunidades web, los servicios web, las aplicaciones Web, los servicios de red social,
losservicios de alojamiento de videos, las wikis, blogs, mashups y folcsonomas.

Servicios asociados:

Blogs: Un blog es un espacio web personal en el que su autor puede escribir


cronolgicamente artculos, noticias...(con imgenes y enlaces).
Wikis: Una wiki es un espacio web corporativo, organizado mediante una
estructura hipertextual de pginas donde varias personas elaboran contenidos
de manera asncrona.
Redes sociales: Sitios web donde cada usuario tiene una pgina donde publica
contenidos y se comunica con otros usuarios. Ejemplos: Facebook, Twitter,
Tuenti, Hi5, Myspace, etc.
Entornos para compartir recursos: Entornos que nos permiten almacenar
recursos o contenidos en Internet, compartirlos y visualizarlos cuando nos
convenga. Existen de diversos tipos, segn el contenido que albergan o el uso
que se les da:
o Documentos: Google Drive y Office Web Apps (SkyDrive), en los cuales
podemos subir nuestros documentos, compartirlos y modificarlos.
o Videos: Youtube, Vimeo, Dailymotion, Dalealplay... Contienen miles de
vdeos subidos y compartidos por los usuarios.
o Fotos: Picassa, Flickr... Permiten disfrutar y compartir las fotos tambin
tenemos la oportunidad de organizar las fotos con etiquetas,
separndolas por grupos como si fueran lbumes, podemos seleccionar y
guardar aparte las fotos que no queremos publicar.
o Agregadores de noticias: Digg, Meneame... Noticias de cualquier medio
son agregadas y votadas por los usuarios.
o Almacenamiento online: Dropbox, Google Drive, SkyDrive
o Presentaciones: Prezzi, Slideshare.
o Plataformas educativas
o Aulas virtuales (sncronas)
o Encuestas en lnea

La web 3.0
Web 3.0 es una expresin que se utiliza para describir la evolucin del uso y la
interaccin de las personas en internet a travs de diferentes formas entre los que se
incluyen la transformacin de la red en una base de datos, un movimiento social hacia
crear contenidos accesibles por mltiples aplicaciones non-browser, el empuje de las
tecnologas de inteligencia artificial, la web semntica, la Web Geoespacial o la Web 3D.

Se basa en la idea de aadir metadatos semnticos y ontolgicos a la World Wide Web.


Esas informaciones adicionales que describen el contenido, el significado y la relacin
de los datos se deben proporcionar de manera formal, para que as sea posible
evaluarlas automticamente por mquinas de procesamiento. El objetivo es mejorar
Internet ampliando la interoperabilidad entre los sistemas informticos usando "agentes
inteligentes". Agentes inteligentes son programas en las computadoras que buscan
informacin sin operadores humanos. Con la web 3.0 se busca que los usuarios puedan
conectarse desde cualquier lugar, cualquier dispositivo y a cualquier momento.

Entre sus innovaciones destacan:


Bases de datos
Inteligencia artificial
Web semntica y SOA
Evolucin al 3D

La web 4.0
las aplicaciones ya no estarn en nuestras PCs, estarn en la internet y
por ende en todos lados. Pasaremos de una red tonta a una red
inteligente donde el objetivo primordial ser el de unir las inteligencias
donde tanto las personas como las cosas se comuniquen entre s para
generar la toma de decisiones. Para el 2020 o quizs antes se espera
que haya agentes en la Web que conozcan, aprendan y razonen como
lo hacemos las personas.La Web Ubicua es un concepto que est an en
desarrollo, pero me llama curiosamente la atencin como se van
complementando algunas tecnologas que nos permiten imaginar o
soar lo que podemos esperar en un futuro no muy lejano. Imagnese
recibir informacin en su celular en la calle por la que camina y que su
propio equipo le haga una reservacin en el restaurant de la esquina con
solo saber sus gustos

1.2 Arquitecturas de la tecnologa Cliente-Servidor


Arquitecturas de
la tecnologa Cliente-Servidor
Arquitectura web bsica
Para abrir una pgina Web en un navegador, normalmente se teclea el correspondiente
URL o se pica en el hiperenlace oportuno. Una vez que se solicita esta peticin mediante
el protocolo HTTP y la recibe el servidor Web, ste localiza la pgina Web en su sistema
de ficheros y la enva de vuelta al navegador que la solicit como se muestra en la
imagen.

Aplicaciones multinivel
Al hablar de desarrollo de aplicaciones Web resulta adecuado presentarlas dentro de las
aplicaciones multinivel. Los sistemas tpicos cliente/servidor pertenecen a la categora
de las aplicaciones de dos niveles. La aplicacin reside en el cliente mientras que la base
de datos se encuentra en el servidor. En este tipo de aplicaciones el peso del clculo
recae en el cliente, mientras que el servidor hace la parte menos pesada, y eso que los
clientes suelen ser mquinas menos potentes que los servidores. Adems, est el
problema de la actualizacin y el mantenimiento de las aplicaciones, ya que las
modificaciones a la misma han de ser trasladada a todos los clientes.

Para solucionar estos problemas se ha desarrollado el concepto de arquitecturas de tres


niveles: interfaz de presentacin, lgica de la aplicacin y los datos.

La capa intermedia es el cdigo que el usuario invoca para recuperar los datos deseados.
La capa de presentacin recibe los datos y los formatea para mostrarlos adecuadamente.
Esta divisin entre la capa de presentacin y la de la lgica permite una gran flexibilidad
a la hora de construir aplicaciones, ya que se pueden tener mltiples interfaces sin
cambiar la lgica de la aplicacin.

La tercera capa consiste en los datos que gestiona la aplicacin. Estos datos pueden ser
cualquier fuente de informacin como una base de datos.

El primer nivel consiste en la capa de presentacin que incluye no slo el navegador,


sino tambin el servidor web que es el responsable de dar a los datos un formato
adecuado. El segundo nivel est referido habitualmente a algn tipo de programa
o script. Finalmente, el tercer nivel proporciona al segundo los datos necesarios para su
ejecucin.
Una aplicacin Web tpica recoger datos del usuario (primer nivel), los enviar al
servidor, que ejecutar un programa (segundo y tercer nivel) y cuyo resultado ser
formateado y presentado al usuario en el navegador (primer nivel otra vez).

Aplicaciones de N capas

El surgimiento de la tecnologa de componentes distribuidos es la clave de las arquitecturas


de n-capas. Estos sistemas de computacin utilizan un nmero variable de componentes
individuales que se comunican entre ellos utilizando estndares predefinidos y frameworks
de comunicacin.

1.3 Lenguajes de Programacin Web y DBMS

Lenguaje de Programacin Web


Los lenguajes de programacin Web han ido surgiendo segn las necesidades de las
plataformas, intentando facilitar el trabajo a los desarrolladores de aplicaciones.

HTML
La informacin publicada en la Web debe ser mediante un lenguaje que sea entendido
universalmente. El lenguaje utilizado por la World Wide Web es el HTML, actualmente el
lenguaje hipermedia ms aceptado a nivel mundial. Por tanto, es uno de los lenguajes
de programacin web ms importante y uno de los ms usados para la creacin de
documentos. El HyperText Markup Language (HTML) es un lenguaje de marcado que se
dise con el objetivo de estructurar documentos y mostrarlos en forma de hipertexto.
El mismo brinda la informacin correspondiente relacionada con el contenido a mostrar
en cada fragmento de informacin, y permite establecer relaciones unidireccionales
entre documentos. Los archivos pueden tener las extensiones (htm, html). Este lenguaje
cumple con dos objetivos fundamentales para el diseo y visualizacin de un documento
digital:

Organiza un documento en elementos lgicos, tales como: encabezado, prrafo,


etc.
Define las operaciones tipogrficas y las funciones que debe ejecutar un
programa visualizador sobre dichos elementos.

JAVASCRIPT
JavaScript es un lenguaje de programacin orientado a objetos. Es un lenguaje dinmico,
las variables no necesitan ser introducidas antes de su uso y los tipos de variables se
resuelven dinmicamente durante su ejecucin. Se trata de un lenguaje de
programacin del lado del cliente, porque es el navegador el que soporta la carga de
procesamiento. Fue creado por Brendan Eich en la empresa Netscape Communications.
El cdigo JavaScript que se encuentra dentro de las pginas web puede ser interpretado
por todos los navegadores. Permite que las definiciones de funciones y otro tipo de
cdigo sean modificados mientras el programa se est ejecutando. El modelo de
ejecucin de JavaScript se basa en la interpretacin del cdigo fuente. Es un lenguaje
de alto nivel, multiplataforma y no necesita compilacin. Est basado en objetos, admite
la programacin estructurada y maneja la mayora de los eventos que se pueden
producir sobre la pgina web. La mayora de los navegadores en sus ltimas versiones
interpretan el cdigo Javascript integrado dentro de las pginas web.

Hojas de Estilo en Cascada (CSS)


Las Hojas de estilo en Cascada, en ingls Cascading Style Sheets (CSS), fueron
diseadas y desarrolladas por la World Wide Web Consortium (W3C). Una hoja de estilos
CSS es el tipo de documento que utiliza un navegador Web para redefinir las propiedades
de los distintos elementos y las etiquetas en el cdigo HTML. Permite dar formato a los
documentos de forma global. Proporciona al diseador de pginas web definir un
conjunto de ampliaciones HTML especiales y aplicarlas al documento. Provee la
especificacin e intercambio de los fondos para textos y documentos, as como sus tipos
y tamaos de fuente. Las definiciones del formato de un documento se pueden colocar
en archivos separados y aplicarlas a un grupo de documentos. Posibilitan adems aplicar
un formato modificado a documentos HTML ya existentes. Con los CSS se puede aplicar
a un documento diferentes estilos de orgenes. Los CSS constituyen una herramienta
poderosa para el diseo de documentos HTML, pues permiten modificar la
representacin del documento mediante la asignacin de un nuevo estilo.

Lenguajes DBMS
En la estructura bsica de un Sistema Manejador de Base de Datos se enuncian dos
lenguajes que permiten trabajar sobre la base de datos. Estos lenguajes estndar
son:
DDL (Data Definition language): Lenguaje de Definicin de Datos. Por medio
de este el DBMS identifica las descripciones de los elementos de los esquemas y
almacena la descripcin del esquema en el catlogo del DBMS.
Por medio de este el DBMS especifica el esquma conceptual e interno (Base de datos
Almacenada).

SDL (Store Definition language): Lenguaje de definicin de


almacenamiento. Es utilizado por el DBMS para especificar el esquema interno que
corresponde a la Base de Datos Almacenada.
VDL (View Definition language): Lenguaje de Definicin de Vistas. Es
utilizado por el DBMS para especificar las vistas del usuario y sus correspondiencias con
el esquema conceptual.
En las Bases de Datos Relacionales, el SQL, representa una combinacin de los
anteriores.
DML (Data Manipulation language): Lenguaje de Manipulacin de
Datos. Permite la manipulacin de las operaciones de Insercin, Eliminacin y
Modificacin.
o Tipos de DML's:
De alto Nivel o No por procedimientos: SQL.
De bajo Nivel o por procedimientos.

Tecnologas para el desarrollo de aplicaciones Web


La programacin para muchos es considerada un arte, pero en sus inicios se
tornaba un poco difcil para la mayora de las personas, pero con el tiempo se han
ido descubriendo y desarrollando formas, guas generales y estilos de
programacin, con el objetivo de resolver aquellos problemas.
A este conjunto de patrones y abstracciones presentes en la programacin de hoy,
que guan la construccin del software se le conoce como Arquitectura de Software.
Arquitectura cliente servidor
La arquitectura cliente/servidor es un modelo para el desarrollo de sistemas de
informacin en el que las transacciones se dividen en procesos independientes que
cooperan entre s para intercambiar informacin, servicios o recursos.
Se denomina cliente al proceso que inicia el dilogo o solicita los recursos y servidor
al proceso que responde a las solicitudes.
En este modelo las aplicaciones se dividen de forma que el servidor contiene la
parte que debe ser compartida por varios usuarios, y en el cliente permanece solo
lo particular de cada usuario.
Caractersticas del cliente
Es quien inicia solicitudes o peticiones, tienen por tanto un papel activo en la
comunicacin.
Espera y recibe las respuestas del servidor.
Por lo general, puede conectarse a varios servidores a la vez.
Normalmente interacta directamente con los usuarios finales mediante una
interfaz grfica de usuario.
Caractersticas del servidor
Al iniciarse esperan a que lleguen las solicitudes de los clientes, desempean
entonces un papel pasivo en la comunicacin.
Tras la recepcin de una solicitud, la procesan y luego envan la respuesta al
cliente.
Arquitectura de 3 capas
La ventaja principal de este estilo es que el desarrollo se puede llevar a cabo en
varios niveles y, en caso de que sobrevenga algn cambio, solo se ataca al nivel
requerido sin tener que revisar entre cdigo mezclado. Adems, permite distribuir el
trabajo de creacin de una aplicacin por niveles; de este modo, cada grupo de
trabajo est totalmente abstrado del resto de los niveles.

Lenguajes de programacin
Java es un lenguaje orientado a objetos desarrollado por Sun Microsystems. La
programacin en Java, permite el desarrollo de aplicaciones bajo el esquema de
Cliente - Servidor, como de aplicaciones distribuidas, lo que lo hace capaz de
conectar dos o ms computadoras u ordenadores, ejecutando tareas
simultneamente, y de esta forma logra distribuir el trabajo a realizar.
PHP es un lenguaje de programacin de uso general de cdigo del lado del servidor
originalmente diseado para el desarrollo web de contenido dinmico. Fue uno de
los primeros lenguajes de programacin del lado del servidor que se podan
incorporar directamente en el documento HTML en lugar de llamar a un archivo
externo que procese los datos. El cdigo es interpretado por un servidor web con
un mdulo de procesador de PHP que genera la pgina Web resultante.
Tecnologas en la capa de negocios Se clasifican en:
Servidor de aplicaciones: Usualmente se trata de un dispositivo de software
que proporciona servicios de aplicacin a las computadoras cliente.
Herramientas: Conjunto de programas informticos o utilidades que brindan
la resolucin de una determinada tarea.
Servidor de aplicaciones
JBoss es un servidor de aplicaciones para Java. Es muy reconocido por ser de los
primeros servidores de aplicacin empresarial gratuito y open source. Al estar
basado en Java, puede ser utilizado en cualquier sistema operativo que lo soporte,
ofreciendo una plataforma de alto rendimiento para aplicaciones java, aplicaciones
Web y Portales.
Enterprise Java Beans (EJB)
s una plataforma para construir aplicaciones de negocio portables, escalables, y
reutilizables utilizando el lenguaje de programacin java. Permite a los
desarrolladores enfocarse en la lgica del negocio sin tener que emplear tiempo en
la conformacin del cdigo de la infraestructura.
Adobe Dreamweaver
Es una aplicacin en forma de estudio que est destinada a la construccin, diseo
y edicin de sitios, vdeos y aplicaciones Web basados en estndares. Creado
inicialmente por Macromedia (actualmente producido por Adobe Systems) es uno
de los programas ms utilizados en el sector del diseo y la programacin web, por
sus funcionalidades, su integracin con otras herramientas como Adobe Flash y,
recientemente, por su soporte de los estndares del World Wide Web Consortium.

PostgreSQL Server 8.3


Es un potente gestor de cdigo abierto, ofrece servicios de control de concurrencia
multi-versin, soportando casi toda la sintaxis SQL (incluyendo subconsultas,
transacciones, tipos y funciones definidas por el usuario), contando tambin con un
amplio conjunto de enlaces con lenguajes de programacin (incluyendo C, C++,
Java, Perl y Python). Es extensible, brinda gran estabilidad y confiabilidad y es
multiplataforma.
Eclipse Ganymede
Es un entorno integrado (IDE) para desarrollo de aplicaciones con java. Est
soportado por IBM, es un proyecto open source, multiplataforma para desarrollar lo
que el proyecto llama "Aplicaciones de Cliente Enriquecido". Se est convirtiendo
en el estndar de facto de los entornos de desarrollo para Java.
Arquitectura de las aplicaciones Web.
Una aplicacin Web es proporcionada por un servidor Web y utilizada por usuarios
que se Conectan desde cualquier punto va clientes Web (browsers o navegadores). La
arquitectura de un Sitio Web tiene tres componentes principales:
Un servidor Web

Una conexin de red

Uno o ms clientes
El servidor Web distribuye pginas de informacin formateada a los clientes que las
solicitan. Los requerimientos son hechos a travs de una conexin de red, y para ello se
usa el protocolo HTTP. Una vez que se solicita esta peticin mediante el protocolo HTTP y
la recibe el servidor Web, ste localiza la pgina Web en su sistema de archivos y la enva
de vuelta al navegador que la solicit.
Las aplicaciones Web estn basadas en el modelo Cliente/Servidor que gestionan
servidores web, y que utilizan como interfaz pginas web.
Las pginas Web son el componente principal de una aplicacin o sitio Web. Los browsers
piden pginas (almacenadas o creadas dinmicamente) con informacin a los
servidores Web. En algunos ambientes de desarrollo de aplicaciones Web, las pginas
contienen cdigo HTML y scripts dinmicos, que son ejecutados por el servidor antes de
entregar la pgina.
Una vez que se entrega una pgina, la conexin entre el browser y el servidor Web se
rompe, es decir que la lgica del negocio en el servidor solamente se activa por la ejecucin
de los scripts de las pginas solicitadas por el browser (en el servidor, no en el cliente).
Cuando el browser ejecuta un script en el cliente, ste no tiene acceso directo a los recursos
del servidor. Hay otros componentes que no son scripts, como los applets (una
aplicacin especial que se ejecuta dentro de un navegador) o los componentes ActiveX.
Los scripts del cliente son por lo general cdigo JavaScript o VBSscript, mezclados con
cdigo HTML
La coleccin de pginas son en una buena parte dinmicas (ASP, PHP, etc.), y estn
agrupadas lgicamente para dar un servicio al usuario. El acceso a las pginas est
agrupado tambin en el tiempo (sesin). Los componentes de una aplicacin Web son:
1. Lgica de negocio.
Parte ms importante de la aplicacin.
Define los procesos que involucran a la aplicacin.
Conjunto de operaciones requeridas para proveer el servicio.
2. Administracin de los datos.
Manipulacin de BD y archivos.
3. Interfaz
Los usuarios acceden a travs de navegadores, mviles, PDAs, etc.
Funcionalidad accesible a travs del navegador.
Limitada y dirigida por la aplicacin.
Las aplicaciones web se modelan mediante lo que se conoce como modelo de capas, Una
capa representa un elemento que procesa o trata informacin. Los tipos son:
Modelo de dos capas: La informacin atraviesa dos capas entre la
interfaz y la administracin de los datos.
Modelo de n-capas: La informacin atraviesa varias capas, el ms habitual es el
modelo de tres capas.
Modelo de dos Capas.
Gran parte de la aplicacin corre en el lado del cliente (fat client).
Las capas son:
Cliente (fat client): La lgica de negocio est inmersa dentro de la aplicacin que
realiza el interfaz de usuario, en el lado del cliente.
Servidor: Administra los datos.
Las limitaciones de este modelo son.
Es difcilmente escalable
Nmero de conexiones reducida
Alta carga de la red.
La flexibilidad es restringida
La funcionalidad es limitada.
Modelo de tres Capas.
Esta diseada para superar las limitaciones de las arquitecturas ajustadas al modelo de dos
capas, introduce una capa intermedia (la capa de proceso) Entre presentacin y los datos,
los procesos pueden ser manejados de forma separada a la interfaz de usuario o y a
los datos, esta capa intermedia centraliza la lgica de negocio, haciendo
la administracin ms sencillo a, los datos se pueden integrar de mltiples fuentes,
las aplicaciones web actuales se ajustan a este modelo.
Las capas de este modelo son:
1. Capa de presentacin (parte en el cliente y parte en el servidor)
Recoge la informacin del usuario y la enva al servidor (cliente)
Manda informacin a la capa de proceso para su procesado
Recibe los resultados de la capa de proceso
Generan la presentacin
Visualizan la presentacin al usuario (cliente)
2. Capa de proceso (servidor web)
Recibe la entrada de datos de la capa de presentacin
Interacta con la capa de datos para realizar operaciones
Manda los resultados procesados a la capa de presentacin
3. Capa de datos (servidor de datos)
Almacena los datos
Recupera datos
Mantiene los datos
segura la integridad de los datos

You might also like