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)