Вы находитесь на странице: 1из 33

Programacin web Unidad 2: Desarrollo de Aplicaciones Web

Alumno: Eutiquio Duran Hernndez

Contenido
Unidad 2 Desarrollo de Aplicaciones Web

2.1 Arquitectura de las Aplicaciones Web .......................................................................................... 4 2.2 Lenguajes de Programacin del Lado del Cliente ......................................................................... 7 2.3 Lenguajes de Programacin del Lado del Servidor ..................................................................... 16 2.4 Ambiente para el Desarrollo de Aplicaciones Web ..................................................................... 23 2.5 Metodologa para el desarrollo de aplicaciones web ................................................................. 25 2.6 Aspectos de seguridad en desarrollo de aplicaciones web ......................................................... 32

2.1 Arquitectura de las Aplicaciones Web


Arquitectura 2 capas

La arquitectura tradicional de cliente/servidor tambin es conocida como arquitectura de dos capas. Requiere una interfaz de usuario que se instala y corre en una PC o estacin de trabajo y enva solicitudes a un servidor para ejecutar operaciones complejas. Ventajas del Sistema de Dos Capas: El desarrollo de aplicaciones en un ambiente de dos capas es mucho mas rpido que en ambientes anteriores, pero no es necesariamente mas rpido que con el nuevo ambiente de tres capas. Las herramientas para el desarrollo con dos capas son robustas y evaluadas. Las tcnicas de prototipo se emplean fcilmente. Las soluciones de dos capas trabajan bien 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 debe 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 dos capas o arquitectura tradicional de cliente/servidor.

Arquitectura 3 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 basada en Web transforma la interfaz de bsqueda existente (el explorador de Web), en la interfaz del usuario final. Ventajas de la Arquitectura de Tres Capas: Las llamas 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 esta diseado en formato modular. La separacin de roles en tres capas, hace mas fcil remplazar o modificar una capa sin afectar a los mdulos restantes.

Desventajas de las Arquitecturas de Tres Capas y basadas 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.

Arquitectura de tres capas o arquitectura basada en web

Arquitectura MVC

El patrn MVC es una arquitectura de diseo software para separar los componentes de aplicacin en tres niveles, interfaz de usuario, lgica de control y lgica de negocio. Es una especializacin de un modelo de capas, con la diferencia que se usa para entornos web como patrn por excelencia. Responsabilidades de Capas en MVC Modelo: Es la capa encargada de encapsular toda la lgica de negocio de nuestra aplicacin. Esta capa se puede subdividir en varias: Lgica de negocio: Contiene clases o varias para constituir lo referente a la capa de aplicacin, se encarga de atender a las peticiones de los controladores y as dar una respuesta acorde con lo recibido. Capa de datos: Se encarga de gestionar toda la interconexin con el SGBD, as mismo, puede contener un gestor ORM para su aprovechamiento mximo y mejor mantenimiento. Solo se comunica con la lgica de negocio. Helpers: Llamados ayudantes apoyan tanto al controlador como a la vista para hacer ms livianas algunas tareas. Controlador: Es el eje central de nuestra arquitectura, encargada de gestionar todas las peticiones, validar los inputs recibidos y dirigir cualquier peticin de cualquier tipo. Solo se comunica con el modelo y responde a travs de vistas. Vista: Es la respuesta de cada controlador y lo que se le presenta al usuario final, se puede comunicar con el controlador, los helpers y el modelo (en algunas ocasiones).

Ventajas:

Al separar de manera clara la lgica de negocio (modelo) de la vista permite la reusabilidad del modelo, de modo que la misma implementacin de la lgica de negocio que maneja una aplicacin pueda ser usado en otras aplicaciones, sean stas web o no. Permite una sencilla divisin de roles, dejando que sean diseadores grficos sin conocimientos de programacin los que se encarguen de la realizacin de la capa vista, sin necesidad de mezclar cdigo Java entre el cdigo visual que desarrollen (tan slo utilizando algunos tags, no muy diferentes de los usados en el cdigo HTML).
MVC o Modelo-Vista-Controlador.

2.2 Lenguajes de Programacin del Lado del Cliente


El navegador es una aplicacin capaz de interpretar las rdenes recibidas en forma de cdigo HTML fundamentalmente y convertirlas en las pginas que son el resultado de dicha orden. Al dar clic sobre un enlace de hipertexto, se establece una peticin de un archivo HTML residente en el servidor (un ordenador que se encuentra continuamente conectado a la red) el cual es enviado e interpretado por el navegador del usuario (el cliente).

Un lenguaje de lado cliente es totalmente independiente del servidor, lo cual permite que la pgina pueda ser albergada en cualquier sitio sin necesidad de pagar ms, ya que, por regla general, los servidores que aceptan pginas con scripts de lado servidor son en su mayora de pago o sus prestaciones son muy limitadas. Inversamente, un lenguaje de lado servidor es independiente del cliente por lo que es mucho menos rgido respecto al cambio de un navegador a otro o respecto a las versiones del mismo. Comunicacin cliente/servidor usando aplicaciones del lado del cliente.

Lenguajes de programacin HTML Indica al navegador donde poner cada texto, cada imagen o cada video y la forma que tendrn estos al ser colocados en la pgina, en otras palabras le da formato al texto. Como ya se ha visto antes este lenguaje utiliza etiquetas que tienen esta forma <B>, <P>. Cada etiqueta significa una funcin y se utilizan para definir la forma o estilo que queremos aplicar al documento. La estructura bsica de HTML es la siguiente
<HTML> <HEAD> <TITLE></TITLE> </HEAD>

<BODY> </BODY> </HTML>

E aqu una pequea muestra del lenguaje HTML

Al ejecutar nuestro programa en nuestro navegador se vera as:

JAVASCRIPT Es un lenguaje de programacin utilizado para crear pequeos programitas encargados de realizar acciones dentro del mbito de una pgina web. Es un lenguaje de programacin del lado del cliente, porque es el navegador el que soporta la carga de procesamiento. Su uso se basa fundamentalmente en la creacin de efectos especiales en las pginas y la definicin de interactividades con el usuario, las sentencias escritas en JavaScript se encapsulan entre las etiquetas <script> y </script>. Cabe aclarar que este lenguaje no es un sustituto del lenguaje HTML si no un complemento para darle una mejor presentacin a las paginas. Un programa en JavaScript se integra en una pgina Web (entre el cdigo HTML) y es el navegador el que lo interpreta (ejecuta). Es decir el JavaScript es un lenguaje interpretado, no compilado (no se genera ningn tipo de fichero objeto o exe).

Para programar en JavaScript slo necesitamos un editor de texto (utilizaremos el Bloc de Notas del Windows) y un navegador (utilizaremos el Microsoft Internet Explorer) para ejecutarlo. No confundir el JavaScript con el Java. El Java es un lenguaje de programacin de propsito general como lo son el C++ o el Visual Basic. E aqu una pequea muestra de la implementacin de JAVASCRIPT en una pagina HTML, se utilizo el Bloc de Notas de Windows y se guardo el archivo con extensin HTML.

Al ejecutar el programa en nuestro navegador se ve as:

Esta primera ventana pertenece al cdigo de JAVASCRIPT que se encuentra en la cabecera (<HEAD>) de la pagina, es por eso que aparece antes mostrar el segundo mensaje que se encuentra en el cuerpo de la pagina (BODY). En el momento que damos clic en el botn aceptar nos mostrara el segundo mensaje:

APPLETS DE JAVA Es otra manera de incluir cdigo a ejecutar en los clientes que visualizan una pgina web. Se trata de pequeos programas hechos en Java, que se transfieren con las pginas web y que el navegador ejecuta en el espacio de la pgina. Ya que estn programados en Java y pre-compilados, la manera de trabajar de stos vara un poco con respecto a los lenguajes de script como JavaScript. Los applets son ms difciles de programar que los scripts en y requerirn unos conocimientos bsicos o medios del lenguaje Java. La ventaja de utilizar applets consiste en que son mucho menos dependientes del navegador que los scripts en Javascript, incluso independientes del sistema operativo del ordenador donde se ejecutan. Adems, Java es ms potente que Javascript, por lo que el nmero de aplicaciones de los applets podr ser mayor. Como desventajas en relacin con Javascript cabe sealar que los applets son ms lentos de procesar y que tienen espacio muy delimitado en la pgina donde se ejecutan, es decir, no se mezclan con todos los componentes de la pgina ni tienen acceso a ellos. Es por ello que con los applets de Java no podremos hacer directamente cosas como abrir ventanas secundarias, controlar Frames, formularios, capas, etc.

Para poder utilizar APPLETS DE JAVA se utiliza una etiqueta <APPLET>, necesitaremos un programa de java ya compilado utilizaremos el archivo .CLASS y nuestro programa en HTML que ejecutara el .CLASS. Ejemplo:

Aqu tenemos el archivo Java que contiene estas instrucciones:

Una vez listo nuestro archivo java lo compilamos y se generara un archivo .CLASS el cual se invocara desde el archivo HTML. Para conseguir el archivo .CLASS se puede utilizar compiladores como JCreator, NetBeans, etc. O desde la consola de comandos.

Al ejecutar nuestro archivo HTML en nuestro navegador el resultado ser el siguiente:

VISUAL BASIC SCRIPT Es un lenguaje compatible slo con Internet Explorer. Es por ello que su utilizacin est desaconsejada a favor de Javascript. Est basado en Visual Basic, un popular lenguaje para crear aplicaciones Windows. Tanto su sintaxis como la manera de trabajar estn muy inspiradas en l. Sin embargo, no todo lo que se puede hacer en Visual Basic lo podremos hacer en Visual Basic Script, pues este ltimo es una versin reducida del primero. Para poder utilizar VBScript debemos indicar con la etiqueta <SCRIPT> solo que en la instruccin ser LANGUAGE=VBScript quedando as:

Al ejecutarlo en nuestro explorador nos mostrara un mensaje:

CSS Es una tecnologa que permite crear pginas web de una manera ms exacta. Gracias a las CSS se pueden controlar los resultados finales de la pgina, pudiendo hacer muchas cosas ms que HTML, como incluir mrgenes, tipos de letra, fondos, colores, etc. CSS son las siglas de Cascading Style Sheets, en espaol Hojas de estilo en Cascada. Las hojas de estilos definen cmo los elementos HTML se van a mostrar, al igual que la etiqueta de fuente y el atributo de color en HTML 3.2. Los estilos se guardan normalmente en exteriores. css. Hojas de estilo externas le permiten cambiar la apariencia y el diseo de todas las pginas de su Web, simplemente editando un solo documento CSS.

CSS es un gran avance en el diseo web, ya que permite a los desarrolladores para controlar el estilo y el diseo de varias pginas Web al mismo tiempo. Como desarrollador web puede definir un estilo para cada elemento HTML y se aplican a las pginas web tanto como usted desee. Para hacer un cambio global, slo tiene que cambiar el estilo, y todos los elementos en la Web se actualizan de forma automtica. En trminos generales podemos decir que todos los estilos que "en cascada " en una nueva hoja "virtual" al estilo de la manera siguiente, donde el nmero cuatro tiene la mayor prioridad: 1. Navegador por defecto 2. Hoja de estilos externa

3. Interior hoja de estilos (dentro de la etiqueta <head>) 4. Estilo en lnea (dentro de un elemento HTML) Por lo tanto, un estilo en lnea (dentro de un elemento HTML) tiene la mayor prioridad, lo que significa que va a reemplazar un estilo declarada dentro de la etiqueta <head>, en una hoja de estilos externa o en un navegador (un valor por defecto). Aqu un ejemplo del uso de CSS: Dentro de la estructura de HTML, en la cabecera se inserta la etiqueta <LINK> donde se define que se utilizara texto tipo CSS y el nombre del archivo CSS.

En este momento se encuentra comentada la lnea si ejecutamos el programa se vera as en nuestro navegador.

Si des comentamos la lnea se ejecutara el archivo ejxml_01.css que tiene la siguiente estructura:

Y se vera en el navegador asi

FLASH

Es una tecnologa, y un programa, para crear efectos especiales en pginas web. Con Flash tambin conseguimos hacer pginas dinmicas del lado del cliente. Flash en realidad no es un lenguaje; Sin embargo, si tuviramos que catalogarlo en algn sitio quedara dentro del mbito de las pginas dinmicas de cliente. Para visualizar las "pelculas" Flash, el navegador debe tener instalado un programa (plug-in) que le permita visualizarlas.

2.3 Lenguajes de Programacin del Lado del Servidor


Los lenguajes de lado servidor son aquellos lenguajes que son reconocidos, ejecutados e interpretados por el propio servidor y que se envan al cliente en un formato comprensible

para l. Por otro lado, los lenguajes de lado cliente son aquellos que pueden ser directamente "digeridos" por el navegador y no necesitan un pre-tratamiento. Comunicacin cliente/servidor usando aplicaciones de ambos lados.

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 su 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. Microsft 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. Ventajas: Completamente orientado a objetos. Controles de usuario y personalizados. Divisin entre la capa de aplicacin o diseo y el cdigo. Facilita el mantenimiento de grandes aplicaciones. Incremento de velocidad de respuesta del servidor. Mayor velocidad. Mayor seguridad.

Desventajas: Mayor consumo de recursos. Tecnologa propietaria. Hospedaje de sitios web costosos.

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: Cdigo separado de la lgica del programa. Las pginas son compiladas en la primera peticin. Permite separar la parte dinmica de la esttica en las pginas web. Los archivos se encuentran con la extensin (jsp). El cdigo JSP puede ser incrustado en cdigo HTML.

Los elementos que pueden ser insertados en las pginas JSP son los siguientes: Cdigo: se puede incrustar cdigo Java. Directivas: permite controlar parmetros del servlet. Acciones: permite alterar el flujo normal de ejecucin de una pgina.

Ventajas: Ejecucin rpida del servlets. Crear pginas del lado del servidor. Multiplataforma. Cdigo bien estructurado. Integridad con los mdulos de Java. La parte dinmica est escrita en Java.

Desventajas: Complejidad de aprendizaje.

CGI
Es el sistema ms antiguo que existe para la programacin de las pginas dinmicas de servidor. Actualmente se encuentra un poco desfasado por diversas razones entre las que destaca la dificultad con la que se desarrollan los programas y la pesada carga que supone para el servidor que los ejecuta. Los CGI se escriben habitualmente en el lenguaje Perl, sin embargo, otros lenguajes como C, C++ o Visual Basic pueden ser tambin empleados para construirlos. Ventajas: Es un protocolo genrico que permite extender las capacidades de HTTP En la prctica, los server-Side Includes permite toda clase de trucos cuando se combinan con CGIs que modifican pginas Web. Existen varias soluciones para disimular estas amenazas, La ms drstica pasa por deshabilitar completamente los SSI del servidor. Otra solucin menos drstica consiste en deshabilitar especficamente la ejecucin de comandos con exec. Otra posibilidad es utilizar como archivos con SSI slo los que posean una extensin determinada, como por ejemplo .shtml. de esta forma, mientras las pginas posean extensin .html no existe riesgo de ataque mediante fallos en CGI, ya que se limitan a los archivos con extensin .shtml. se pueden mantener los SSI y velar en los programas CGI por que no se produzcan entradas indeseadas, filtrando caracteres como: ;, , -, #, @, , ,, /, etc.

Desventajas: Su funcionalidad podra abrir agujeros de seguridad en el servidor, ya que una aplicacin en CGI mal diseada podra permitir acceso total o parcial al servidor. Cuando los usuarios envan un formulario o invocan un CGI de alguna otra forma, en definitiva se les est permitiendo ejecutar remotamente un programa en el servidor. Se les brinda a los usuarios la oportunidad de controlar cmo se ejecutar el CGI, de manera que podran intentar la introduccin de una serie de parmetros inesperados hbilmente manipulados para que el CGI funcione mal. Por un lado, la posibilidad de que el CGI sea engaado por la entrada del usuario para que ejecute comandos imprevistos, pudiendo llegar a causar graves daos en el servidor; De otro, la posibilidad de revelar innecesariamente informacin acerca del servidor, que permitir al atacante conocer mejor la configuracin del sistema y estar as mejor equipado para buscar posibles agujeros por los que colarse.

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: 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. Es relativamente rpido para un lenguaje tipo script.

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. El desarrollo de aplicaciones es muy rpido. 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. 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. 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.

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: Muy fcil de aprender. Se caracteriza por ser un lenguaje muy rpido. Soporta en cierta medida la orientacin a objeto. Clases y herencia. Es un lenguaje multiplataforma: Linux, Windows, entre otros. Capacidad de conexin con la mayora de los manejadores de base de datos: MysSQL, PostgreSQL, Oracle, MS SQL Server, entre otras.

Capacidad de expandir su potencial utilizando mdulos. Posee documentacin en su pgina oficial la cual incluye descripcin y ejemplos de cada una de sus funciones. Es libre, por lo que se presenta como una alternativa de fcil acceso para todos. Incluye gran cantidad de funciones. No requiere definicin de tipos de variables ni manejo detallado del bajo nivel.

Desventajas: 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. La legibilidad del cdigo puede verse afectada al mezclar sentencias HTML y PHP. La programacin orientada a objetos es an muy deficiente para aplicaciones grandes. Dificulta la modularizacin. 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.

Lenguajes de programacin cliente-servidor

XML

Es una tecnologa que tiene a su alrededor otras que la complementan y la hacen mucho ms grande y con posibilidades mayores. Su principal novedad consiste en permitir compartir los datos con los que se trabaja a todos los niveles, por todas las aplicaciones y soportes.

DHTML

DHTML no es precisamente un lenguaje de programacin. Ms bien se trata de una nueva capacidad de la que disponen los navegadores modernos, por la cual se puede tener un mayor control sobre la pgina que antes. Cualquier pgina que responde a las actividades del usuario y realiza efectos y funcionalidades se puede englobar dentro del DHTML, pero en este caso nos referimos ms a efectos en el navegador por los cuales se pueden mostrar y ocultar elementos de la pgina, se puede modificar su posicin, dimensiones, color, etc. DHTML proporciona ms control sobre la pgina, gracias a que los navegadores modernos incluyen una nueva estructura para visualizar en pginas web denominada capa. Las capas se pueden ocultar, mostrar, desplazar, etc. Para realizar las acciones sobre la pgina, como modificar la apariencia de una capa, se necesita un lenguaje de programacin del lado del cliente como Javascript o VBScript.

2.4 Ambiente para el Desarrollo de Aplicaciones Web


Los IDE (ambientes integrados de desarrollo) para aplicaciones Web son muy numerosos. Considerar los que permitan trabajar con los diferentes lenguajes para Web. Algunos son especficos para lenguajes del lado del servidor. Por ejemplo, Visual Studio solo soporta ASP.NET del lado del servidor. Existen IDEs libres y gratuitos de buena calidad. 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: Un editor de texto. Un compilador. Un intrprete. Herramientas de automatizacin. Un depurador. Posibilidad de ofrecer un sistema de control de versiones. Factibilidad para ayudar en la construccin de interfaces grficas de usuario.

Microsoft Visual Studio


Es un entorno de desarrollo integrado para sistemas operativos Windows. Soporta varios lenguajes de programacin: Visual C++, Visual C#, Visual J#, ASP.NET y Visual Basic .NET,

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. Caractersticas: Diseo de pginas Web Caractersticas del diseo de pginas Edicin de cdigo Desarrollo para sitios alojados Depuracin Controles Acceso a datos

Netbeans
NetBeans es un entorno de desarrollo integrado libre, hecho principalmente para el lenguaje de programacin Java. NetBeans IDE El IDE NetBeans es un entorno de desarrollo integrado - una herramienta para programadores pensada para escribir, compilar, depurar y ejecutar programas. Est escrito en Java - pero puede servir para cualquier otro lenguaje de programacin NetBeans Enterprise Pack Provee soporte para la creacin de aplicaciones orientadas a servicios (SOA), incluyendo herramientas de esquemas XML, un editor WSDL, y un editor BPEL para web services. PHP NetBeans permite crear aplicaciones Web con PHP 5. Soporte para Symfony un gran framework MVC escrito en php. soporte para AJAX, soporte para JSP cada vez ms desarrolladores de aplicaciones LAMP o WAMP, estn utilizando NetBeans como IDE.

Eclipse
Eclipse es un IDE (Entorno de Desarrollo Integrado) tan potente como popular que incorpora un sin fin de utilidades para simplificar la labor de los programadores.

JBUILDER
JBuilder, un IDE (entorno de desarrollo integrado) Java de Borland. Es un software creado en 1995. La versin 2006 (Borland JBuilder 2006) tiene 3 ediciones: Enterprise (para aplicaciones J2EE, Web Services y Struts), Developer (para el completo desarrollo de aplicaciones Java) y Foundation (con capacidades bsicas para iniciarse en el desarrollo de aplicaciones java y de momento es de libre uso). La versin JBuilder 2007 est basada en Eclipse. Tiene tambin 3 ediciones: Enterprise (la ms completa), y Professional. Esta disponible para Windows, Linux y MacOS X La ltima versin es JBuilder 2008, tambin disponible en 3 versiones, Enterprise, Professional y Turbo.

Dreamweaver
Es en una potente y flexible herramienta de desarrollo que inclute numerosas herramientas para facilitarnos el desarrollo de aplicaciones web. Dreamweaver permite trabajar con los siguientes modelos de servidor: ASP JavaScript ASP VBScript ASP.NET C# ASP.NET VB COLDFUSION JSP PHP MySQL

2.5 Metodologa para el desarrollo de aplicaciones web


Los principales problemas que nos encontramos es la falta de fiabilidad, seguridad, escalabilidad, mantenimiento, integracin y la alta dependencia para su desarrollo e implantacin junto con la falta de estndares. Lo que deseamos es controlar el caos que han provocado en el pasado procesos creativos de desarrollo con el fin de proporcionar un proceso sistemtico orientado a la mejora de la calidad de la aplicacin final. En esta nueva disciplina se parte de la base de que las necesidades de evolucin, mantenimiento, la adaptacin a nuevos dispositivos de acceso y

la migracin a nuevas plataformas y entornos de desarrollo deben dirigir el proceso del ciclo de vida. Para todo esto se han desarrollado metodologas que permiten estructurar comunicar, entender, simplificar y formalizar tanto el dominio como las decisiones de diseo, as como disponer de documentacin detallada para posibles cambios del software. Las distintas metodologas se pueden dividir en tres generaciones en base a su sofisticacin, estas son: Primera Generacin: (Principios de los 90) Se sientan las bases de la ingeniera Web, en los que se incluyen conceptos como construccin de navegacin, separacin entre estructuras y el contenido durante el ciclo de desarrollo. Segunda Generacin: (Segunda mitad de los 90) Se refinan los primeros modelos y se aaden los soportes de funcionalidad bsica y se llevan a cabo los primeros esbozos de proceso donde se delimitan los modelos conceptual, lgico y fsico. Tercera generacin: (A partir del 2000): Se lleva a cabo la profundizacin en el soporte para la funcionalidad, enfatizacin de la figura del usuario en los mtodos, y se avanza hacia la estandarizacin de notaciones, procesos y lenguajes de especificacin.

EORM Es una Metodologa de Relacin entre Objeto (Enhanced Object Relationship Methodology), definida por un proceso iterativo que se concentra en el modelado orientado a objetos por la representacin de relaciones entre ellos (acoplamientos) como objetos, es por ello que fue una de las primeras propuestas para Web centrada en el paradigma de la orientacin a objetos. Para automatizar la aplicacin de la metodologa EORM, su autor ha desarrollado, en los laboratorios de investigacin de IBM, una herramienta denominada ODMTool que, junto a un generador comercial de Interfaces Grficas de Usuario denominado ONTOS Studio y un Sistema de Gestin de Base de Datos Orientado a Objetos (SGBDOO), permite el diseo interactivo de esquemas EORM y la generacin de cdigo fuente, inicialmente en C++, de las clases incluidas en estos esquemas. EORM consta de tres fases: Fase de Anlisis: Se trata de orientar a objetos al sistema, sin considerar los aspectos hipermediales del mismo, obtenindose para ello un Modelo de Objetos con la misma notacin utilizada en OMT, que refleje la estructura de la informacin (mediante clases de objetos con atributos y relaciones entre las clases) y el comportamiento del sistema (a travs de los mtodos asociados a las clases de objetos).

Fase de Diseo: Procede a modificar el modelo de objetos obtenido durante el anlisis aadiendo la semntica apropiada a las relaciones entre clases de objetos para convertirlas en enlaces hipermedia, obteniendo finalmente un modelo enriquecido (EORM), en el que se refleje tanto la estructura de la informacin (modelo abstracto hipermedial compuesto de nodos y enlaces) as como sus posibles atributos (fecha de creacin del enlace, estilo de presentacin en pantalla, restricciones de acceso, etc.). Fase de Construccin: Se transforman los esquemas en cdigo y son guardados en una Base de Datos Orientada a Objetos, al elaborar formularios de consulta de las clases con la ayuda de un editor grfico de interfaces. Se genera el cdigo fuente (por ejemplo C#) correspondiente a cada clase y se prepara la Interface Grfica de Usuario.

Las relaciones definidas en un modelo orientado a objetos pueden ser representadas por clases de enlaces hipermedia. Estas clases aaden a las relaciones del modelo objeto la semntica navegacional de la aplicacin. Estn organizadas en una jerarqua de herencia propuesta por el mtodo bajo la forma de una biblioteca de clases. OOHDM Es un Mtodo de Diseo de Desarrollo en Hipermedia Orientado a Objetos (ObjectOriented Hypermedia Design Method) y abarca las cuatro actividades: El modelado conceptual, diseo navegacional, diseo abstracto de interfaz y la puesta en prctica. Estas actividades se realizan en una mezcla de estilo incremental, iterativo y basado en prototipos de desarrollo. Consta de cuatro fases: Fase Conceptual: durante esta actividad se construye un esquema conceptual representado por los objetos del dominio, las relaciones y colaboraciones existentes establecidas entre ellos. En las aplicaciones hipermedia convencionales, cuyos componentes no son modificados durante la ejecucin, se podra usar un modelo de datos semntico estructural (como el modelo de entidades y relaciones). Las clases son descritas como en los modelos orientados a objetos tradicionales. Fase Navegacional: se debe tener en mente que la generacin de aplicaciones Web fue pensada para realizar navegacin a travs del espacio de informacin, utilizando un simple modelo de datos de hipermedia. En OOHDM, la navegacin es considerada un paso crtico en el diseo aplicaciones. Un modelo navegacional es construido como una vista sobre un diseo conceptual, admitiendo la construccin de modelos diferentes de acuerdo con los distinto perfiles de usuarios. El diseo de navegacin es expresado en dos esquemas: el esquema de clases navegacionales y el esquema de contextos navegacionales.

Fase de Interfaz Abstracta: El aspecto de la interfaz de usuario de aplicaciones interactivas (en particular las aplicaciones Web) es un punto crtico en el desarrollo que las modernas metodologas tienden a descuidar. En OOHDM se utiliza el diseo de interfaz abstracta para describir la interfaz del usuario de la aplicacin de hipermedia. El modelo de interfaz ADVs (Vista de Datos Abstracta) especifica la organizacin y comportamiento de la interfaz, pero la apariencia fsica real o de los atributos, y la disposicin de las propiedades de las ADVs en la pantalla real son hechas en la fase de implementacin. Fase Implementacin: Se tendr en cuanta que el diseador debe ya implementar el diseo. Hasta ahora, todos los modelos fueron construidos en forma independiente de la plataforma de implementacin; en esta fase es tenido en cuenta el entorno particular en el cual se va a correr la aplicacin. Al llegar a esta fase, el primer paso que debe realizar el diseador es definir los tems de informacin que son parte del dominio del problema. Debe identificar tambin, cmo son organizados los tems de acuerdo con el perfil del usuario y su tarea; decidir qu interfaz debera ver y cmo debera comportarse. A fin de implementar todo en un entorno Web, el diseador debe decidir adems qu informacin debe ser almacenada. OOHDM propone un conjunto de tareas que en principio pueden involucrar mayores costos de diseo, pero que a mediano y largo plazo reducen notablemente los tiempos de desarrollo al tener como objetivo principal la reusabilidad de diseo, y as simplificar la evolucin y el mantenimiento. SOHDM Es un Mtodo que Desarrolla Diseo en panoramas (escenario) Orientada a Objetos en Hipermedia (Scenario - based Object-oriented Hypermedia Design Methodology). Presenta la necesidad de disponer de un proceso que permita capturar las necesidades del sistema. Para ello, propone el uso de escenarios. Es una de las primeras propuestas para la web y brinda ms importancia a la tarea de tratamiento de requisitos. Se caracteriza principalmente porque su ciclo de vida comienza con la aplicacin de los escenarios como tcnica de licitacin y definicin de requisitos. El proceso de definicin de requisitos parte de la realizacin de un diagrama de contexto tal y como se propone en los diagramas de flujos de datos (DFD) de Yourdon (1989). En este diagrama de contexto se identifican las entidades externas que se comunican con el sistema, as como los eventos que provocan esa comunicacin Cada escenario describe el proceso de interaccin entre el usuario y el sistema cuando se produce un evento determinado, especificando el flujo de actividades, los objetos involucrados y las transacciones realizadas. Esta metodologa tiene semejanzas con, OOHDM y EORM donde se diferencian en el uso de panoramas, que describen las

actividades en los acontecimientos y primitivas de flujos de actividades. Los panoramas se definen en la fase de anlisis y se utilizan para modelar los objetos. Consta de seis fases: Fase de Anlisis: Se realiza un estudio de las necesidades de la aplicacin, del entorno de trabajo y de los actores. La finalidad principal de esta fase es conseguir los escenarios que representen las actividades que se pueden llevar a cabo en el sistema. Fase de Modelado de Objetos: Se desarrolla un diagrama de clases que representa la estructura conceptual del sistema. Fase de Diseo de Vistas: Se reorganizan los objetos en unidades navegacionales, que representan una vista de los objetos del sistema. Fase de Diseo Navegacional: Se enriquecen dichas vistas definiendo los enlaces e hiperenlaces que existen en el sistema. Fase de Diseo de la Implementacin: Se disean las pginas, la interfaz y la base de datos del sistema. Fase de Construccin: Se realiza la construccin de la base de datos del sistema. La cual que se implementar a la aplicacin. En conclusin la metodologa SOHDM es una propuesta nueva que cubre en mayor parte todas las fases del proceso de desarrollo, aunque no toma en cuenta la implantacin y las pruebas, proponindonos un proceso cclico de tal forma que al realizar una fase se puede regresar a alguna de las anteriores para refinarla y adaptarla mejor. WSDM Es un Mtodo de Diseo para Sitios Web (Web Site Design Method), donde hay un acercamiento al usuario que define los objetos de informacin basado en sus requisitos de informacin para el uso de la Web. En este mtodo se definen una aplicacin Web a partir de los diferentes grupos de usuarios que vaya a reconocer el sistema. Consta de cuatro fases: Fase de Modelo de Usuario: Se intenta detectar los perfiles de usuarios para los cuales se construye la aplicacin. Durante esta fase es necesario determinar: Quin es el pblico objetivo? Cmo ser la visin de su sitio Web? Cules son los objetivos de marketing de la empresa? Cules son los objetivos de su sitio web? Qu mensaje tiene su compaa quiere transmitir? Cul es el campo del negocio? Cules son los estndares de la industria?

Una vez que tenemos una comprensin de su negocio y sus objetivos de la empresa, que har recomendaciones a la mejor alcanzar sus metas. Nuestro proceso de planificacin estratgica se crear un plan inicial de su sitio web. Se divide en dos sub-fases siguientes:

Clasificacin de usuarios: Se deben identificar y clasificar a los usuarios que van a hacer uso del sistema. Para ello, WSDM propone el estudio del entorno de la organizacin donde se vaya a implantar el sistema y los procesos que se vayan a generar, describiendo las relaciones entre usuarios y actividades que realizan estos usuarios. Descripcin de los grupos de usuarios: Se describen con ms detalles los grupos de usuarios detectados en la etapa anterior. Para ello, se debe elaborar un diccionario de datos, en principio con formato libre, en el que indican los requisitos de almacenamiento de informacin, requisitos funcionales y de seguridad para cada grupo de usuarios.

Fase de Diseo Conceptual: Se desarrolla el modelado conceptual no tiene el mismo significado que en OOHDM. Durante el modelado conceptual se realizan dos tareas a la vez: el modelado de objetos, que es lo que en OOHDM se llama modelo conceptual y el diseo de la navegacin, que coincide con la idea de su diseo navegacional, Este tipo de diseo de navegacin en aplicaciones Web tiene una estructura muy jerrquica. Pocas recomendaciones se dan en esta etapa, tales como la utilizacin de pginas de ndice, derecho de informacin dividida en diversos tamaos, el uso de contexto y de la informacin y el uso de seales de navegacin. Este modelo distingue tres tipos de componentes de navegacin, informacin y externos. Cada una consta de tres capas: contexto, navegacin y capas de informacin. En WSDM puede existir ms de un modelo de navegacin, dependiendo de los roles de usuario detectados durante la primera fase. Fase de Diseo de Implementacin: Se modela la interfaz para cada rol de usuario, Ahora que se tiene una versin definitiva del plan se pueda comenzar con la construccin del sitio web. Durante esta fase, se tendr lugar lo siguiente: Creacin de alta funcionalidad, teniendo como fin a la animacin, pues har que se propague por todas las pginas de los medios necesarios con sus los grficos y el texto. El cdigo de los programas tcnicos y la funcionalidad del sitio. La creacin y diseo de la pgina principal disponible. Fase de Realizacin de Implementacin, se codifican todos estos aspectos en el lenguaje concreto que se haya seleccionado. Se Prepara el lanzamiento de la web teniendo en cuenta Cundo entraran a nuestra web? Antes de eso hay que asegurar lo siguiente:

Continuo y exhaustivas pruebas que garantizar un impecable final del sitio web.

Trabajo directamente con la empresa para garantizar la tcnica y la usabilidad se cumplen las normas. Velar el final del proyecto para ver si se cumplieron los requisitos planteados. Crear una fecha de lanzamiento y el plan.

WSDM se describe en trminos de componentes y enlaces. Distingue tres tipos de componentes de navegacin. Cada navegacin consta de tres capas: contexto, la navegacin y capas de informacin. El contexto es la capa superior de la navegacin y a su vez la de informacin es la capa inferior. RNA Es un mtodo de Anlisis de Navegacin Relacional (Relationship Navigational Analysis), que define una secuencia de pasos que se utilizarn para el desarrollo de la Web. Es especialmente til para uso de la Web creados en base de sistema de herencia. La propuesta de RNA es quizs una de las que ms ha resaltado la necesidad de trabajar con la especificacin de requisitos, incluyendo tareas como el anlisis del entorno y de los elementos de inters. Adems, resulta interesante pues plantea la necesidad de analizar los requisitos conceptuales de manera independiente a los navegacionales. Consta de cinco fases: Fase de Anlisis del Entorno: se determinar y clasifica a los usuarios finales de la aplicacin en grupos segn sus perfiles Fase de Definicin de Elementos: Aqu prosiguen los elementos de inters en la cual se han listando dichos elementos de la aplicacin. Por elementos de inters se entienden los documentos, las pantallas que se van a requerir, la informacin, etc. Fase de Anlisis del Conocimiento: Se desarrolla un esquema que represente a la aplicacin. Para ello RNA propone identificar los objetos, los procesos y las operaciones que se van a poder realizar en la aplicacin, as como las relaciones que se producen entre estos elementos Fase de Anlisis de Navegacin: Se verifica que el esquema obtenido en la fase anterior sea enriquecido con las posibilidades de navegacin dentro de la aplicacin. Fase de Implementacin del Anlisis: Una vez obtenido el esquema final en el que ya se encuentran incluidos los aspectos de navegacin, se pasa el esquema a un lenguaje entendible por la mquina.

2.6 Aspectos de seguridad en desarrollo de aplicaciones web


La seguridad, en informtica como en otras reas, se basa en la proteccin de activos. Estos activos pueden ser elementos tan tangibles como un servidor o una base de datos, o pueden ser la reputacin de una empresa. Generalmente podemos evaluar la seguridad de un activo en base a tres aspectos principales que no necesitan explicacin: Integridad Disponibilidad Confidencialidad

Estos tres aspectos a su vez dependen de otros tres elementos principales que engloban prcticamente todos los distintos controles que se pueden establecer en un sistema informtico: Autorizacin No solo es necesario saber quienes acceden a nuestros activos, tambin es necesario establecer que es lo que pueden hacer con ellos. Un nivel de autorizacin dado determina que tipo de operaciones o transacciones puede efectuar un cliente dado sobre un recurso dado. Autenticacin Los clientes de nuestras aplicaciones o servicios deben ser identificados de forma nica, sean usuarios finales, otros servicios o computadoras externas. Registro y auditoria Luego de efectuada una operacin, es importante que esta sea registrada adecuadamente, en particular es esencial si queremos evitar el repudio de transacciones efectuada por un cliente. La seguridad web tiene 3 etapas primarias: Seguridad de la computadora del usuario. Los usuarios deben contar con navegadores y plataformas seguras, libres de virus y vulnerabilidades. Tambin debe garantizarse la privacidad de los datos del usuario. Seguridad del servidor Web y de los datos almacenados ah.

Se debe garantizar la operacin continua del servidor, que los datos no sean modificados sin autorizacin (integridad) y que la informacin slo sea distribuida a las personas autorizadas (control de acceso). Seguridad de la informacin que viaja entre el servidor Web y el usuario. Garantizar que la informacin en trnsito no sea leda (confidencialidad), modificada o destruida por terceros. Tambin es importante asegurar que el enlace entre cliente y servidor no pueda interrumpirse fcilmente (disponibilidad).

Virtual Private Network (VPN)


Es una tecnologa de red que permite una extensin de la red local sobre una red pblica o no controlada, como por ejemplo Internet. Para hacerlo posible de manera segura es necesario proporcionar los medios para garantizar la autentificacin, integridad de toda la comunicacin: Autentificacin y autorizacin: Quin est del otro lado? Usuario/equipo y qu nivel de acceso debe tener. Integridad: de que los datos enviados no han sido alterados. Para ello se utiliza funciones de Hash. Los algoritmos de hash ms comunes son los Message Digest (MD2 y MD5) y el Secure Hash Algorithm (SHA). Confidencialidad: Dado que slo puede ser interpretada por los destinatarios de la misma. Se hace uso de algoritmos de cifrado como Data Encryption Standard (DES), Triple DES (3DES) y Advanced Encryption Standard (AES). No repudio: es decir, un mensaje tiene que ir firmado, y el que lo firma no puede negar que el mensaje lo envi l o ella.
Estrategias de proteccin

De acuerdo a lo que diversos expertos en el tema han definido, algunas de las estrategias que se pueden seguir para mitigar los riesgos que las tecnologas Web 2.0 implican son las siguientes:

Sensibilizar tanto a los desarrolladores de las aplicaciones como a los dueos de las mismas sobre los riesgos que supone la utilizacin de tecnologas Web 2.0. Mantenerse actualizado sobre las vulnerabilidades y sus exploits, pudiendo utilizar un inventario de componentes para facilitar esta tarea.

Usar prcticas de desarrollo seguro, que consideren aspectos como:


o

Contar con un inventario de todos los componentes Web 2.0 existentes y realizar una validacin antes de utilizarlos. Evitar poner la lgica de seguridad en el lado cliente de la aplicacin. Separar los datos del cdigo de la aplicacin, es decir, usar mdulos distintos para generar las estructuras de despliegue y otros para el rellenado de contenido. No procesar JavaScripts provistos por el usuario, codificar los datos XML y no ejecutarlos directamente como scripts. Validar siempre las entradas en el servidor Evitar que los usuarios puedan postear archivos con virus o gusanos.

o o

Implementar sistemas de Firewall para aplicaciones Web, que permiten entre otras cosas:
o

Analizar el trfico HTTP y XML, as como proteger de ataques de tipo XSS http://foro.elhacker.net/tutoriales_documentacion/tutorial_ataques_xsst32042.0.html), CSRF u otros tipos de ataques por inyeccin. Automatizar lo mas posible la creacin y mantenimiento de la poltica de seguridad, por ejemplo utilizando tecnologas que identifiquen de manera automtica todas las peticiones XML inclusive las que suceden en "background". Detectar de contenido malicioso en RSS feeds y Atom feeds Detectar oportuna de vulnerabilidades en las aplicaciones usadas para RSS feeds y mashups.

Las tecnologas Web 2.0 aportan grandes beneficios pero su despliegue requiere considerar estrategias de seguridad especficas y concretas.

Вам также может понравиться