You are on page 1of 18

Modulo I Arquitectura Web

1.1 Evolucin de las aplicaciones web.



La Web de hoy es un universo de aplicaciones y pginas web interconectadas lleno de vdeos, fotos
y contenido interactivo. Lo que no ve el usuario es cmo interactan los navegadores y las
tecnologas web para hacer que esto sea posible.

A lo largo del tiempo, las tecnologas web han evolucionado hasta permitir que los desarrolladores
puedan crear nuevas e increbles experiencias web. La Web actual es el resultado de los continuos
esfuerzos de una comunidad web abierta que ayuda a definir estas tecnologas web, tales como
HTML5, CSS3 y WebGL, y garantiza que todos los navegadores web las admitan.

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:

1. Pginas estticas en vez de dinmicas por el usuario que la visita.
2. El uso de framesets o Marcos.
3. Extensiones propias del HTML como <bilnk> y <marquee>, etiquetas introducidas durante
la guerra de navegadores web.
4. Libros de visitas online o guestbooks.
5. Botones GIF, casi siempre a una resolucin tpica de 88x31 pixels en tamao promocionando
navegadores web u otros productos.
6. 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.
7. No se podan adherir comentarios ni nada parecido.
8. Todas sus pginas se creaban de forma fija y muy pocas veces se actualizaban.
9. No se trata de una nueva versin, sino de una nueva forma de ver las cosas.










Modulo I Arquitectura Web


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 usuario y la colaboracin en la World Wide Web (www).
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, los servicios de alojamiento de videos, las wikis, blogs, mashups y
folcsonomas.

Servicios asociados:

1. Blogs: Un blog es un espacio web personal en el que su autor puede escribir
cronolgicamente artculos, noticias (con imgenes y enlaces).
2. Wikis: Una wiki es un espacio web corporativo, organizado mediante una estructura
hipertextual de pginas donde varias personas elaboran contenidos de manera asncrona.
3. 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.
4. 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:
a. Documentos: Google Drive y Office Web Apps (SkyDrive), en los cuales podemos
subir nuestros documentos, compartirlos y modificarlos.
b. Videos: Youtube, Vimeo, Dailymotion, Dalealplay. Contienen miles de vdeos
subidos y compartidos por los usuarios.
c. 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.
d. Agregadores de noticias: Digg, Meneame. Noticias de cualquier medio son
agregadas y votadas por los usuarios.
e. Almacenamiento online: Dropbox, Google Drive, SkyDrive
f. Presentaciones: Prezzi, Slideshare.
g. Plataformas educativas.
h. Aulas virtuales (sncronas)
i. Encuestas en lnea.






Modulo I Arquitectura Web


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:

1. Bases de datos
2. Inteligencia artificial
3. Web semntica y SOA
4. Evolucin al 3D





Modulo I Arquitectura Web


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.




Modulo I Arquitectura Web


1.2 Arquitectura de las aplicaciones web

Arquitectura cliente/servidor (C/S)

La arquitectura tradicional de cliente/servidor (C/S) tambin es conocida como arquitectura de dos
capas. Requiere una interfaz de usuario que se instala y se ejecuta en una PC o estacin de trabajo
y enva solicitudes a un servidor para ejecutar operaciones complejas.

Por ejemplo, una estacin de trabajo utilizada como cliente puede ejecutar una aplicacin de
interfaz de usuario que interroga a un servidor central de ases de datos.

Ventajas del Sistema de Dos Capas:

El desarrollo de aplicaciones en un ambiente de dos capas funciona adecuadamente, pero
no es necesariamente lo ms eficiente.
Las herramientas para el desarrollo con dos capas son robustas y ampliamente evaluadas.
Las tcnicas de ingeniera de software de prototipo se emplean fcilmente.
Las soluciones de dos capas trabajan en ambientes no dinmicos estables, pero no se
ejecutan bien en organizaciones rpidamente cambiantes.

Desventajas del sistema de dos capas:

Los ambientes de dos capas requieren control excesivo de las versiones y demandan
esfuerzo de distribucin de la aplicacin cuando se les hacen cambios. Esto se da al hecho
de que la mayora de la aplicacin lgica existe en la estacin de trabajo del cliente.
La seguridad del sistema en un diseo de dos capas es compleja y a menudo requiere
administracin de las bases de datos; esto es debido al nmero de dispositivos con acceso
directo al ambiente de esas bases de datos.
Las herramientas del cliente y de la base de datos, utilizadas en diseos de dos capas,
constantemente estn cambiando. La dependencia a largo plazo de cualquier herramienta,
puede complicar el escalamiento futuro o las implementaciones.




Arquitectura de tres capas

La arquitectura de tres capas es un diseo reciente que introduce una capa intermedia en el
proceso. Cada capa es un proceso separado y bien definido corriendo en plataformas separadas. En
la arquitectura tradicional de tres capas se instala una interfaz de usuario en la computadora del


Modulo I Arquitectura Web


usuario final (el cliente). La arquitectura usada en Web transforma la interfaz de bsqueda existente
(el explorador de Web), en la interfaz del usuario final.

La arquitectura de las aplicaciones Web suelen presentar un esquema de tres niveles:

1. 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 presentar los datos un formato adecuado.
2. El segundo nivel est referido habitualmente a algn tipo de programa o script.
3. 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).



Las diferentes capas suelen ser:

Capa 1: Cliente de aplicacin: Navegador Web
Capa 2: Servidor de Aplicaciones: Apache, Servidor Tomcat con servlets
Capa 3: Servidor de Datos: base de datos, servidor SMTP.

Ventajas de la arquitectura de tres capas:

Las llamadas de la interfaz del usuario en la estacin de trabajo, al servidor de capa
intermedia, son ms flexibles que en el diseo de dos capas.
La interfaz del cliente no es requerida para comprender o comunicarse con el receptor de
los datos.
El cdigo de la capa intermedia puede ser reutilizado por mltiples aplicaciones si est
diseado en formato modular.
La separacin de roles en tres capas, hace ms fcil reemplazar o modificar una capa sin
afectar a los mdulos restantes.

Desventajas de las Arquitecturas de Tres Capas

Los ambientes de tres capas pueden incrementar el trfico en la red y requiere ms balance
de carga u tolerancia a las fallas.
Los exploradores actuales no son todos iguales.
La estandarizacin entre diferentes proveedores ha sido lenta en desarrollarse.


Modulo I Arquitectura Web


1.3 Tecnologas para el desarrollo de aplicaciones web

Los lenguajes de programacin ms usados en desarrollo web son principalmente:

1. ASP.NET
2. PHP
3. JSP

Aunque an hay quienes usan ASP, Macromedia ColdFusion y Perl. Algunos desarrolladores web
hablan muy bien de Ruby, y el framework Ruby on Rails, pero no est muy difundido todava.

Tambin hay un proyecto para usar Pascal en web a travs del lenguaje Pascal Server Pages - PSP
pero an no se han concretado desarrollos, hasta donde se conoce.

La base de datos ms popular en desarrollo web es MySQL, seguida por Oracle, SQL Server y
PostgreSQL, tambin puede usarse perfectamente Firebird o HSQL.

HTML5, CSS3 y JavaScript o JQuery (Librera de javascript), tres tecnologas que bien trabajadas
logran DHTML. Tambin, si el diseador desea usar Adobe Flex (Flash) debe ser capaz de integrarlo
a su solucin, o puede dejar los efectos en el mismo DHTML.


Modulo I Arquitectura Web


1.4 Lenguajes de programacin del lado del servidor

Existe una multitud de lenguajes concebidos o no para Internet. Cada uno de ellos explota ms a
fondo ciertas caractersticas que lo hacen ms o menos tiles para desarrollar distintas aplicaciones.

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.

Los lenguajes de lado servidor ms ampliamente utilizados para el desarrollo de pginas dinmicas
son el ASP, JSP, PERL y PHP.

ASP.NET (Active Server Pages).

Lenguaje comercializado por Microsoft, y usado por programadores para desarrollar entre otras
funciones, sitios web. ASP.NET es el sucesor de la tecnologa ASP, fue lanzada al mercado mediante
una estrategia de mercado denominada .NET.

Se desarrollado para resolver las limitantes que brindaba tu antecesor ASP. Para el desarrollo de
ASP.NET se puede utilizar C#, VB.NET o J#. Los archivos cuentan con la extensin (aspx). Para su
funcionamiento de las pginas se necesita tener instalado IIS con el Framework .Net. Microsoft
Windows 2003 incluye este framework, solo se necesitar instalarlo en versiones anteriores.
El lenguaje ASP consiste en una serie de clases .NET utilizadas para crear aplicaciones Web, tanto
del lado cliente (Web Form) como del lado servidor (Web Service). La integracin de nativa .NET
Framework con el sistema operativo Windows Server 2003 hace que su ejecucin sea ms estable
y rpida que otros lenguajes de programacin.

Las pginas creadas con la tecnologa ASP.NET funcionan en todo tipo de navegadores incluyendo
Netscape, Safari e Internet Explorer.

Actualizaciones Dinmicas Soporte de servicios web XML Conexiones del tipo DSN, o sin utilizacin
de DSN, para acceder a fuentes de datos ODBC.

Ventajas:

1. Completamente orientado a objetos.
2. Controles de usuario y personalizados.
3. Divisin entre la capa de aplicacin o diseo y el cdigo.
4. Facilita el mantenimiento de grandes aplicaciones.
5. Incremento de velocidad de respuesta del servidor.
6. Mayor velocidad.
7. Mayor seguridad.

Desventajas:

1. Mayor consumo de recursos.
2. Tecnologa propietaria.
3. Hospedaje de sitios web costosos.

Modulo I Arquitectura Web



JSP

Es un lenguaje para la creacin de sitios web dinmicos, acrnimo de Java Server Pages. Est
orientado a desarrollar pginas web en Java. JSP es un lenguaje multiplataforma.
JSP fue desarrollado por Sun Microsystems. Comparte ventajas similares a las de ASP.NET,
desarrollado para la creacin de aplicaciones web potentes. Posee un motor de pginas basado en
los servlets de Java. Para su funcionamiento se necesita tener instalado un servidor Tomcat.

Caractersticas:

1. Cdigo separado de la lgica del programa.
2. Las pginas son compiladas en la primera peticin.
3. Permite separar la parte dinmica de la esttica en las pginas web.
4. Los archivos se encuentran con la extensin (jsp).
5. El cdigo JSP puede ser incrustado en cdigo HTML.

Ventajas:

1. Ejecucin rpida del servlets.
2. Crear pginas del lado del servidor.
3. Multiplataforma.
4. Cdigo bien estructurado.
5. Integridad con los mdulos de Java.
6. La parte dinmica est escrita en Java.

Desventajas:

1. Complejidad de aprendizaje.

PERL

Perl (Practical Extraction and Report Language) es un lenguaje de programacin desarrollado por
Larry Wall (lwall at netlabs.com) inspirado en otras herramientas de UNIX como son: sed, grep, awk,
c-shell, para la administracin de tareas propias de sistemas UNIX. No establece ninguna filosofa de
programacin concreta. No se puede decir que sea orientado a objetos, modular o estructurado
aunque soporta directamente todos estos paradigmas; su punto fuerte son las labores de
procesamiento de textos y archivos. Lenguaje de programacin basado en scripts portable a casi
cualquier plataforma. Es muy utilizado para escribir CGIs. Uno de sus elementos ms potentes son
las expresiones regulares, que a partir de su versin en Perl han sido adoptadas por otros lenguajes
y plataformas como .NET o Javascript.

Ventajas

1. Es un buen lenguaje pegamento. Se pueden juntar varios programas de una forma sencilla
para alcanzar una meta determinada. Los usuarios de Windows agradecern esta propiedad
ya que normalmente adolecen de un buen lenguaje tipo script.
2. Es relativamente rpido para un lenguaje tipo script.

Modulo I Arquitectura Web

3. Est disponible en mltiples plataformas y sistemas operativos (UNIX, Linux y Windows). Un
programa que se escriba teniendo en cuenta la compatibilidad puede ser escrito en una
plataforma y ejecutado en otra.
4. El desarrollo de aplicaciones es muy rpido.
5. Hay una coleccin enorme de mdulos que pueden ser incorporados a cualquier script de
Perl. Estn disponibles en el CPAN (Comprehensive Perl Archive Network). En particular
existe una extensin para clculo numrico denominada PDL.
6. Perl es gratuito. Mucho ms que eso, es Software Libre. Esto quiere decir que el cdigo
fuente est disponible para que cualquiera lo pueda ver o modificar, y lo que es ms
importante, siempre lo estar. Aunque nunca pretendas cambiar el cdigo, es importante
disponer de la posibilidad de hacerlo, ya que siempre se podr contratar a una tercera
persona para que lo modifique en el caso de que haya un error, y debera ser posible
solucionarlo.
7. Le otorga al programador mucha libertad para que haga el programa como quiera. Tal como
dice el eslogan de Perl Hay ms de una forma de hacerlo

Desventajas

1. Es lento para algunas aplicaciones, como programacin a bajo nivel, escribiendo un driver
para una aplicacin o corriendo modelos numricos de clculo intensivo. Si bien se pueden
insertar subrutinas FORTRAN o C en Perl, teniendo lo mejor de los dos mundos, pero con
algo ms de complejidad.
2. La libertad que se le otorga al programador puede significar que el resultado sea un
programa ilegible. Si no se escribe con cuidado puede llegar a ser difcil de leer. De hecho
hay un concurso de Perl ofuscado.
3. Perl es un lenguaje interpretado. Este tema no es tan crtico como suena, los programas Perl
no corrern mucho ms rpidos cuando se compilen, la nica ventaja est en la desaparicin
de la fase inicial de compilacin al correr la aplicacin.
4. Utiliza muchos recursos de comput. Esto significa que no es tan ligero como un programa
en C, pero en la prctica es ligero comparado con la potencia de procesamiento de las
computadoras actuales.

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. 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.

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.

Ventajas:

1. Muy fcil de aprender.
2. Se caracteriza por ser un lenguaje muy rpido.
3. Soporta en cierta medida la orientacin a objeto. Clases y herencia.
4. Es un lenguaje multiplataforma: Linux, Windows, entre otros.

Modulo I Arquitectura Web


5. Capacidad de conexin con la mayora de los manejadores de base de datos: MysSQL,
PostgreSQL, Oracle, MS SQL Server, entre otras.
6. Capacidad de expandir su potencial utilizando mdulos.
7. Posee documentacin en su pgina oficial la cual incluye descripcin y ejemplos de cada
una de sus funciones.
8. Es libre, por lo que se presenta como una alternativa de fcil acceso para todos.
9. Incluye gran cantidad de funciones.
10. No requiere definicin de tipos de variables ni manejo detallado del bajo nivel.

Desventajas:

1. Todo el trabajo lo realiza el servidor y no delega al cliente. Por tanto puede ser ms
ineficiente a medida que las solicitudes aumenten de nmero.
2. La legibilidad del cdigo puede verse afectada al mezclar sentencias HTML y PHP.
3. La programacin orientada a objetos es an muy deficiente para aplicaciones grandes.
4. Dificulta la modularizacin.
5. Dificulta la organizacin por capas de la aplicacin.

Seguridad:

PHP es un poderoso lenguaje e intrprete, ya sea incluido como parte de un servidor web en forma
de mdulo o ejecutado como un binario CGI separado, es capaz de acceder a archivos, ejecutar
comandos y abrir conexiones de red en el servidor. Estas propiedades hacen que cualquier cosa que
sea ejecutada en un servidor web sea insegura por naturaleza. PHP est diseado especficamente
para ser un lenguaje ms seguro para escribir programas CGI que Perl o C, y con la seleccin correcta
de opciones de configuracin en tiempos de compilacin y ejecucin, y siguiendo algunas prcticas
correctas de programacin.

Modulo I Arquitectura Web


1.5 Ambientes para el desarrollo de aplicaciones Web

Un entorno de desarrollo integrado (IDE- Integrated Development Environment -) tambin conocido
como entorno de diseo integrado o el medio ambiente integrado de depuracin es una aplicacin
de software que ofrece servicios integrales a los programadores de computadoras para el desarrollo
de software.

Un IDE normalmente se compone de:

1. Un editor de texto.
2. Un compilador.
3. Un intrprete.
4. Herramientas de automatizacin.
5. Un depurador.
6. Posibilidad de ofrecer un sistema de control de versiones.
7. Factibilidad para ayudar en la construccin de interfaces grficas de usuario.

Los IDE ms usuales son:

1. Microsoft visual studio
Microsoft Visual Studio es un entorno de desarrollo integrado (IDE, por sus siglas en ingls)
para sistemas operativos Windows. Soporta multiples lenguajes de programacin tales
como C++, C#, Visual Basic .NET, F#, Java, Python, Ruby, PHP; al igual que entornos de
desarrollo web como ASP.NET MVC, Django, et., a lo cual sumarle las nuevas capacidades
online bajo Windows Azure en forma del editor Monaco.

Visual Studio permite a los desarrolladores crear aplicaciones, sitios y aplicaciones web, as
como servicios web en cualquier entorno que soporte la plataforma .NET (a partir de la
versin .NET 2002). As se pueden crear aplicaciones que se comuniquen entre estaciones
de trabajo, pginas web, dispositivos mviles, dispositivos embebidos, consolas (la xbox 360
y xbox one), etc.

2. Microsoft visual web developer

Microsoft Visual Web Developer' es un entorno de desarrollo liviano pensado para la
utilizacin y aprendizaje. Est formado por un conjunto de herramientas y utilidades para
la creacin de sitios Web y sus aplicaciones Web con ASP.NET 2.0. Visual Web Developer
sigue ofreciendo las ventajas de productividad del Entorno de Desarrollo Integrado (IDE en
ingls) a la vez que introduce cambios con la intencin de mejorarlo.

3. Netbeans

NetBeans es un entorno de desarrollo integrado libre, hecho principalmente para el
lenguaje de programacin Java. Existe adems un nmero importante de mdulos para
extenderlo. NetBeans IDE es un producto libre y gratuito sin restricciones de uso.

NetBeans es un proyecto de cdigo abierto de gran xito con una gran base de usuarios,
una comunidad en constante crecimiento, y con cerca de 100 socios en todo el mundo. Sun

Modulo I Arquitectura Web

MicroSystems fund el proyecto de cdigo abierto NetBeans en junio de 2000 y contina
siendo el patrocinador principal de los proyectos.

La plataforma NetBeans permite que las aplicaciones sean desarrolladas a partir de un
conjunto de componentes de software llamados mdulos. Un mdulo es un archivo Java
que contiene clases de java escritas para interactuar con las APIs de NetBeans y un archivo
especial (manifest file) que lo identifica como mdulo. Las aplicaciones construidas a partir
de mdulos pueden ser extendidas agregndole nuevos mdulos. Debido a que los mdulos
pueden ser desarrollados independientemente, las aplicaciones basadas en la plataforma
NetBeans pueden ser extendidas fcilmente por otros desarrolladores de software.

4. Eclipse

Eclipse es un programa informtico compuesto por un conjunto de herramientas de
programacin de cdigo abierto multiplataforma para desarrollar lo que el proyecto llama
"Aplicaciones de Cliente Enriquecido", opuesto a las aplicaciones "Cliente-liviano" basadas
en navegadores. Esta plataforma, tpicamente ha sido usada para desarrollar entornos de
desarrollo integrados (del ingls IDE), como el IDE de Java llamado Java Development Toolkit
(JDT) y el compilador (ECJ) que se entrega como parte de Eclipse (y que son usados tambin
para desarrollar el mismo Eclipse). Sin embargo, tambin se puede usar para otros tipos de
aplicaciones cliente, como BitTorrent o Azureus.

5. Adobe Dreamweaver

Adobe Dreamweaver es una aplicacin en forma de estudio (basada en la forma de estudio
de Adobe Flash) 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 el programa ms utilizado 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.

Sus principales competidores son Microsoft Expression Web y BlueGriffon (que es de cdigo
abierto) y tiene soporte tanto para edicin de imgenes como para animacin a travs de
su integracin con otras. Hasta la versin MX, fue duramente criticado por su escaso soporte
de los estndares de la web, ya que el cdigo que generaba era con frecuencia slo vlido
para Internet Explorer y no validaba como HTML estndar. Esto se ha ido corrigiendo en las
versiones recientes.

6. Wordpress

WordPress es un sistema de gestin de contenido o CMS (por sus siglas en ingls, Content
Management System) enfocado a la creacin de blogs (sitios web peridicamente
actualizados). Ha sido desarrollado en PHP para entornos que ejecuten MySQL y Apache,
bajo licencia GPL y cdigo modificable, y su fundador es Matt Mullenweg. WordPress fue
creado a partir del desaparecido b2/cafelog y se ha convertido junto a Movable Type en el
CMS ms popular de la blogosfera y en el ms popular con respecto a cualquier otro CMS
de aplicacin general.
Las causas de su enorme crecimiento son, entre otras, su licencia, su facilidad de uso y sus
caractersticas como gestor de contenidos.

Modulo I Arquitectura Web


1.6 Metodologas para el desarrollo de aplicaciones Web

Una metodologa de desarrollo de software se refiere a un framework que es usado para
estructurar, planear y controlar el proceso de desarrollo en sistemas de informacin.

A lo largo del tiempo, una gran cantidad de mtodos han sido desarrollados diferencindose por su
fortaleza y debilidad.

El framework para metodologa de desarrollo de software consiste en:

1. Una filosofa de desarrollo de programas de computacin con el enfoque del proceso de
desarrollo de software
2. Herramientas, modelos y mtodos para asistir al proceso de desarrollo de software

Estos frameworks son a menudo vinculados a algn tipo de organizacin, que adems desarrolla,
apoya el uso y promueve la metodologa. La metodologa es a menudo documentada en algn tipo
de documentacin formal.

Las metodologas de desarrollo de software son las siguientes:

1970

1. Programacin estructurada sol desde 1969
2. Programacin estructurada Jackson desde 1975

1980

1. Structured Systems Analysis and Design Methodology (SSADM) desde 1980
2. Structured Analysis and Design Technique (SADT) desde 1980
3. Ingeniera de la informacin (IE/IEM) desde 1981

1990

1. Rapid application development (RAD) desde 1991.
2. Programacin orientada a objetos (OOP) a lo largo de la dcada de los 90's
3. Virtual finite state machine (VFSM) desde 1990s
4. Dynamic Systems Development Method desarrollado en UK desde 1995.
5. Scrum (desarrollo), en la ltima parte de los 90's
6. Rational Unified Process (RUP) desde 1999.
7. Extreme Programming(XP) desde 1999

Nuevo milenio

1. Enterprise Unified Process (EUP) extensiones RUP desde 2002
2. Constructionist design methodology (CDM) desde 2004 por Kristinn R. Thrisson
3. Agile Unified Process (AUP) desde 2005 por Scott Ambler




Modulo I Arquitectura Web


1.7 Hojas de estilo en cascada e introduccin al XML

CSS (Cascade Style Sheets)

CSS es un lenguaje sencillo para la aplicacin de estilos a un elemento XML. Un documento XML
puede estar formateado de muchas diferentes formas y propsitos por lo que sera muy til utilizar
un slo documento XML y diferentes posibles formateos dependiendo del uso que se le vaya a dar
al documento.

CSS, Cascading Style Sheets, hojas de estilo en cascada, fue introducido en 1996 como el standar
para aadir informacin de estilo a los documentos HTML. Pero este uso estaba restringido slo a
las etiquetas propias de HTML.

XML, es el estndar de Extensible Markup Language. XML no es ms que un conjunto de reglas para
definir etiquetas semnticas que nos organizan un documento en diferentes partes. XML es un
metalenguaje que define la sintaxis utilizada para definir otros lenguajes de etiquetas estructurados.
XML fue creado al amparo del Word Wide Web Consortium (W3C) organismo que vela por el
desarrollo de WWW partiendo de las amplias especificaciones de SGML.

XML.

(eXtensible Markup Language Lenguaje extensible de marcas) es un conjunto de reglas que sirven
para definir etiquetas semnticas para organizar un documento. Adems el XML es un metalenguaje
que te permite disear tu propio lenguaje de etiquetas. A diferencia de un lenguaje de etiquetas
normal (HTML), XML te permite definir tu propio lenguaje.

Vindolo desde un punto de vista simple y sin meternos en definiciones muy tcnicas. XML nos
ayuda a tener nuestra informacin estructurada jerrquicamente por medio de etiquetas Tags que
nosotros mismos crearemos.

Ahora, para crear un documento XML no necesitas nada ms que un Procesador de texto simple,
Ej.: Bloc de Notas y al terminar el documento solo tienes que salvarlo con la extensin xml.


Modulo I Arquitectura Web


1.8 Planificacin de aplicaciones web

Planificar una aplicacin web implica pensar y definir muchas cuestiones de importancia:

1. Planificar el futuro

Puede sonar un poco duro que nos tengamos planear el futuro de algo que an no existe pero es
as, que pasa si en un futuro tuviramos problemas de escalabilidad, y s tuviramos que migrar las
bases de datos de MySql a Oracle, de una buena planificacin depende la dificultad en un futuro de
realizar cambios en la plataforma que sostiene nuestra aplicacin.

2. Documentacin

Documenta todo lo que puedas tu aplicacin en especial aquellas partes de la misma que hayan
requerido un mayor tiempo de desarrollo, en un futuro cercano te librar de ms de un quebradero
de cabeza.

3. No empieces por los pequeos detalles

A menudo es ms sencillo plantearse el desarrollo de pequeos servicios cmo pueden ser los RSS
o una galera de imgenes, pero es fundamental comenzar por lo que vendr a ser la base de nuestra
aplicacin, de este modo podremos ir completando nuestra aplicacin en un orden lgico, primero
los cimientos.

4. Diseo de la interfaz

Esta entrada puede que te ayude en esta parte, es importante conseguir un buen diseo para
nuestra interfaz, es importante conseguir un interfaz que se atractivo y til para la gran mayora de
los usuarios, lo ms importante es llegar a conectar con el usuario y la mejor manera es ofrecerle la
mayor cantidad de informacin posible para que se llegue a sentir parte del proyecto pero todo esto
muchas veces no lo llegamos a conseguir por una mala eleccin en la combinacin de los colores
que se integran en nuestra interfaz.

5. Evita construirte libreras o frameworks innecesarios

Muchas personas siempre sostienen que es mejor que cada desarrollador utilice sus propias
libreras, pero la realidad es que en muchas ocasiones esto supone una gran prdida de tiempo, es
mejor buscar una librera o framework que se parezca lo ms posible a lo deseado que desarrollarlo
por ti mismo.

6. Ten un plan de proyecto

Asegrate de que cada desarrollador que trabaje en el proyecto sepa qu es lo que debe de hacer y
cundo tiene que hacerlo, teniendo todo esto redactado en un documento te ayudar a identificar
problemas.





Modulo I Arquitectura Web


7. Elige el lenguaje adecuado

Ya sabes que hay numerosas discusiones sobre Cul es el mejor lenguaje de programacin?, la
respuesta a menudo es depende de para que quieras utilizarlo, por eso asegrate de escoger el
lenguaje adecuado.

8. Evita las distracciones

Optimiza tu tiempo, cuando ests trabajando que nada te distraiga, ni llamadas telefnicas, ni
clientes de mensajeras instantneas, proponte un buen nmero de horas al da de trabajo aislado
dedicado al proyecto.

9. Sigue un buen control de calidad

Muchas veces nos equivocamos al planificar los tiempos de proyecto y esto lleva a menudo a los
desarrolladores a tener que escribir cdigo sucio, esta es una buena opcin si lo que quieres es
una demo de la aplicacin funcionando pero esa actitud te traer problemas en el futuro.

10. Plantate los pasos a seguir despus del desarrollo

Ten en cuenta que est fase de desarrollo algn da deber acabar, estudia con qu frecuencia se
deber actualizar y que se necesita para que este funcione.



Modulo I Arquitectura Web


Bibliografa:

Evolucin de las aplicaciones web (http://goo.gl/qMu4da)
Arquitectura de las aplicaciones web (http://goo.gl/zbLgGx)
Tecnologas para el desarrollo de aplicaciones web (http://goo.gl/YXd3n)
Lenguajes de programacin del lado del servidor (http://goo.gl/OiIVMN)
Ambientes para el desarrollo de aplicaciones web (http://goo.gl/xH3wO3)
Metodologa para el desarrollo de aplicaciones web (http://goo.gl/2mgfl)
Hojas de estilo en cascad e introduccin a XML (http://goo.gl/TnAiQg)
Planificacin de aplicaciones web (http://goo.gl/zMKaTv)

You might also like