evolución de las aplicaciones web

11
1.1 EVOLUCIÓN DE LAS APLICACIONES. La evolución de la tecnología informática y las telecomunicaciones ha otorgado a la red Internet y al World Wide Web un papel predominante en el mundo tecnológico y económico. Programación Web Investigación e !nia 1 "#raba$o% Ingeniería En Sistemas Computacionales ctavo Semestre!"rupo #$% &IN'. (!se)) (enan I!it *an+ane "Docente% Cesar &aniel Eugenio '(re) Leonardo *odrigo +aldonado Lópe) ,airo Israel +edina Cervera Carlos Israel Soberanis Cupul "Nombre De )os A)!mnos% ,ec-a e Entrega ,ueves - de /ebrero del -012

Upload: izrael-cervera

Post on 05-Oct-2015

214 views

Category:

Documents


0 download

DESCRIPTION

paginas Web

TRANSCRIPT

Programacin Web

Investigacin de unidad 1 (Trabajo)

Ingeniera En Sistemas Computacionales

Octavo Semestre-Grupo B

-ING. Rusell Renan Iuit Manzanero(Docente)

Cesar Daniel Eugenio PrezLeonardo Rodrigo Maldonado LpezJairo Israel Medina CerveraCarlos Israel Soberanis Cupul(Nombre De los Alumnos)

Fecha de Entrega:Jueves 26 de Febrero del 2015

1.1 EVOLUCIN DE LAS APLICACIONES.

La evolucin de la tecnologa informtica y las telecomunicaciones ha otorgado a la red Internet y al World Wide Web un papel predominante en el mundo tecnolgico y econmico.

Las aplicaciones en Internet han modificado la forma cotidiana de obtener informacin, realizar negocios e intercambios comerciales, recibir instruccin y comunicarse. La red Internet es un importante medio para organizaciones e individuos, quienes interactan empleando aplicaciones desarrolladas con tecnologa Internet las cuales se han vuelto muy populares ya que poseen ventajas significativas sobre las aplicaciones tradicionales en una variedad de escenarios.

Debido a este auge, en el mercado han proliferado las tecnologas y herramientas para el desarrollo de aplicaciones en Internet.

Tecnologas para desarrollo de aplicaciones con Tecnologa Internet Clases, exposiciones y laboratorios de diversas tecnologas del lado del cliente y del servidor para el desarrollo de aplicaciones con tecnologa Internet.

Tecnologas a considerar:

JavaScriptCascading Style Sheets [CCS]Document Object Model [DOM]Servidores Web [HTTP-D]Servidores de AplicacionesJava ServletsJava Server Pages [JSP]Java Database Connectivity [JDBC].NETPreprocessed Hypertext Pages [PHP]Extensible Markup Language [XML]Extensible Style Sheets [XSL]Extensible Server Pages [XSP]Servicios Web e intercambio de informacin (SOAP, XML, UDDI, WSDL).MySQL, Oracle, Microsoft SQL ServerActionScript.

Evolucin

En sus orgenes, la Web era utilizada por los navegantes para obtener informacin. La unidad de trabajo era la pgina Web y, de esta forma, los usuarios navegaban entre mltiples pginas a travs de hipervnculos. En esta conceptualizacin, el elemento central es el servidor Web con su informacin. Generalmente, estos sitios consistan en sitios corporativos, sitios de noticias, sitios de informacin especfica.

El siguiente paso en esta evolucin consisti en utilizar la red como comunidades, en las que los propios navegantes (o usuarios de la Web) pudieran interaccionar, ya sea entre ellos o con otros sitios que ofrecan servicios. Durante esta fase aparecieron servicios tales como foros de discusin, servicios de e-banking, servicios de mensajera, compras electrnicas basadas en comunidades, etc.

El paso actual, es la visin de la Web como una plataforma, es decir, como el medio para la distribucin de servicios y para la construccin de informacin, su seleccin, etc. Tambin, detrs de esta nueva visin, surgen nuevos modelos de negocio basados en la web como plataforma. Si bien no existe una forma nica en que las aplicaciones de la Web 2.0 deben desarrollarse, existen algunas herramientas y tecnologas que permiten su desarrollo:

Transformar las aplicaciones de escritorio en aplicaciones basadas en la Web. En este sentido, el software como servicio es uno de los modelos de negocio que apoya esta transformacin.Estandarizar las interfaces, utilizando XHTML, XML u otros estndares.Separacin del contenido de la presentacin.Utilizar sindicacin de contenidos. Sindicacin web es una forma de subscripcin en la cual parte del material de un sitio web se hace disponible en otros sitios web o de un lector especial.Incorporar la tcnica AJAX en las aplicaciones, de forma tal de poder trabajar con unidades de navegacin ms granulares y especficas, en lugar de navegar a travs de pginas HTML.

1.2 ARQUITECTURA DE LAS APLICACIONES WEB

La arquitectura tradicional de cliente/servidor tamin 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 bien en ambientes no dinmicos estales, 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 desee 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 usuario final (el cliente). La arquitectura asada 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

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

Las diferentes capas suelen ser:

Capa 1: Cliente de aplicacin: Navegador WebCapa 2: Servidor de Aplicaciones: Apache, Servidor Tomcat con servletsCapa 3: Servidor de Datos: base de datos, servidor SMTPVentajas 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, ya que la estacin solo necesita transferir parmetros a la capa intermedia.

Con la arquitectura de tres capas, la interfaz del cliente no es requerida para comprender o comunicarse con el receptor de los datos. Por lo tanto, esa estructura de los datos puede ser modificada sin cambiar la interfaz del usuario en la PC.

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 y azadas en Web

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. Muchas organizaciones son forzadas a escoger uno en lugar de otro, mientras que cada uno ofrece sus propias y distintas ventajas.

1.3 TECNOLOGAS PARA EL DESARROLLO DE APLICACIONES WEB.

Las fases de un desarrollo web, as como los lenguajes de programacin usados, son muy extensos y variados, y por ello necesitamos herramientas especficas para cada una de ellas. Conoceremos a continuacin las principales herramientas existentes para poder desarrollar fcilmente un proyecto web.En el desarrollo web tenemos unas herramientas para el diseo, otras para la maquetacin, otras para la programacin, y para la depuracin. Todas las herramientas que usemos son muy importantes, desde el Sistema Operativo hasta el comando ms insignificante, y por ello debemos elegir la ms adecuada a nuestras necesidades y capacidades.Para desarrollar una web, lo primero que necesitamos es un Sistema Operativo, como es lgico, y su eleccin no es tan trivial. Hay que tener en cuenta las aplicaciones de las que dispone el Sistema Operativo y sus costes.Por ejemplo, tenemos Microsoft Windows, cuyas aplicaciones son muy caras, como Photoshop, Dreamweaver, Fireworks, ASP .NET Y por otro lado tenemos GNU/Linux, con GIMP, Inkscape, Amaya, Aptana, PHP (aunque todos ellos tambin estn disponibles en Windows).Otra caracterstica a tener en cuenta es las facilidades que el Sistema Operativo aporta al desarrollador, y en este sentido GNU/Linux se lleva de calle a Windows. Y esto es porque Windows no fue diseado para los desarrolladores, sino para personas que no tienen muchos conocimientos sobre informtica.Y por el contrario GNU/Linux fue creado por desarrolladores, y para desarrolladores; y por lo tanto en GNU/Linux podemos encontrar infinidad de herramientas que nos harn la vida mucho ms fcil, que adems son libres.

Fases de desarrollo de una web

Para elegir las herramientas a utilizar, antes debemos identificar las fases del proceso que forman el ciclo de vida de un desarrollo web.

Diseo:

El diseo consiste en crear esbozos de la web final mediante una herramienta grfica, como Photoshop, GIMP o Inkscape.

Maquetacin HTML/CSS:

La maquetacin consiste en convertir los esbozos creados en la fase anterior en plantillas HTML, su respectiva hoja de estilos, y las imgenes usadas. Es posible saltarse la fase anterior para comenzar directamente con esta fase, dependiendo de si dominamos herramientas como Photoshop o no.

Programacin cliente:

La programacin cliente consiste bsicamente en Javascript. Una web puede no tener necesidad de hacer programacin cliente, como puede ser una pequea web corporativa con poca informacin esttica, o puede que requiera enormes esfuerzos en esta fase, como ocurre con los proyectos Web 2.0.

Programacin servidor:

En esta fase, que se desarrolla junto con la anterior, crearemos la aplicacin web en un lenguaje de servidor, como puede ser PHP, ASP .NET, Python, Perl, etc.

Depuracin:

Esta fase enlaza la anterior con la siguiente, y es donde haremos las pruebas unitarias, aserciones, trazas, etc.

Pruebas en local:

En nuestro servidor local haremos todas las pruebas posibles.

Subir ficheros al hosting:

Una vez nuestra web est completada y bien testeada en nuestro servidor local (desarrollo), la subiremos al servidor del hosting elegido (produccin). Dependiendo del hosting, podremos usar FTP, SFTP (SSH), WebDAV, o incluso Subversin.

Pruebas en hosting:

Realizaremos las ltimas pruebas en el servidor del hosting para comprobar que el cambio de servidor no ha afectado a nada. Para evitar problemas, nuestro servidor local debe tener exactamente la misma configuracin que el servidor del hosting.

Herramientas: desarrollo en PHP

A continuacin se enumeran las herramientas bsicas para el desarrollo de una web en PHP, en sus diferentes fases de diseo e implementacin.Fases: diseo y maquetacin

Adobe PhotoShop GIMP: Inkscape Adobe Fireworks Dreamweaver, Aptana, Amaya:

Fase: maquetacin

Fases: maquetacin, programacin cliente

Fase: programacin servidor

Otra aplicacin muy til que est muy ligada a Zend Studio es Zend Platform, un mdulo para Apache que permite depurar una web directamente en el navegador (Internet Explorer o Firefox), adems de otras funciones ms complejas, como alertas configurables para que nos enve un email por cada error ocurrido en la web, o cuando un script sobrepase un tiempo determinado de ejecucin, por ejemplo.

Fase: prueba local

Apache Firefox / Firebug / Web Developer ExtensionFases: pruebas en local, depuracin

Con Firebug podremos depurar Javascript, editar HTML y CSS en la misma pgina para ver los cambios en tiempo real, consultar los tiempos de carga de la pgina en conjunto, de las imgenes, javascripts, hojas de estilo, etc, as como sus tamaos, etc. Y Web Developer nos ofrece herramientas muy tiles como ver las cookies de la web, ocultar imgenes, cambiar el tamao del navegador a resoluciones estndar, etc.

1.4 PLANIFICACIN DE APLICACIONES WEB

A menudo antes de empezar un proyecto no tenemos claro cul es el objetivo del mismo o qu pretendemos alcanzar por eso esta pequea lista te puede ayudar a la hora de planificar un proyecto.

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.

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.