Sie sind auf Seite 1von 14

PROGRAMACIN WEB

Unidad 1. Arquitectura
En principio, el concepto aplicacin proviene del latn applicato, que hace
referencia al verbo aplicar, que consiste en el accionar y efectuar. A su vez, la
nocin de aplicacin puede utilizarse como adjetivo para un individuo que realiza
una actividad con total desenvoltura y talento. Por ejemplo, es comn decir que
alguien es aplicado en algn deporte o asignatura escolar.
Desde la perspectiva de un usuario, puede ser difcil percibir la diferencia entre un
sitio web y una aplicacin web. Segn el Diccionario Oxford en lnea, nos
enteramos que una aplicacin es "un programa o conjunto de programas para
ayudar al usuario de un ordenador para procesar una tarea especfica". Una
aplicacin web es bsicamente una manera de facilitar el logro de una tarea
especfica en la Web, a diferencia de un sitio web esttico que es ms bien una
herramienta, no menos importante, para la comunicacin. El trmino ms decisivo
de esta definicin es "tarea especfica".
Aplicacin informtica
Dentro del campo de informtica, el trmino aplicacin se le atribuye a
aquellos programas nicamente diseados como herramientas que permiten al
usuario realizar un trabajo o ms. Su funcionalidad reside en automatizar
problemas complejos en cuestiones de segundos, permitiendo de esta manera un
trabajo completamente ms rpido y eficiente (hojas de texto, excel, calculadora,
base de datos).
Una aplicacin informtica puede ser diseada en funcin de la eficiencia que se
quiere conseguir. Es as que existen programas que resuelven solo un problema
en especfico, llamados a medida; y otros que incluyen en s una cantidad
colectiva de aplicaciones, conocidos como paquetes integrados de software.
Aplicacin web
Nuevamente, dentro del campo de la ingeniera informtica, podemos encontrar el
concepto de aplicacin web. Una aplicacin web es toda herramienta que se
encuentre dentro de un servidor web al que un usuario puede acceder mediante
un navegador web y conexin a Internet.
El beneficio de una aplicacin web se encuentra en la practicidad que ofrecen sus
herramientas y el acceso a las mismas. Estas mismas herramientas pueden
permitir una cierta interaccin directa con el usuario y los datos que estas posean.
Leer todo en: Concepto de aplicacin - Definicin y Concepto.

http://concepto.de/aplicacion/#ixzz3yTMAU5V9

1.1 Evolucin de las aplicaciones web.


Las aplicaciones Web interactivas poco a poco han revolucionado la forma de
utilizar internet, aumentando el contenido de las pginas con texto esttico (texto
que no evoluciona, sino que permanecen como es) a un contenido rico e
interactivo, por lo tanto escalable.
El concepto de la aplicacin web no es nuevo. De hecho, uno de los primeros
lenguajes de programacin para el desarrollo de aplicaciones web es el "Perl". Fue
inventado por Larry Wall en 1987 antes de que internet se convirtiera en accesible
para el pblico en general. Pero fue en 1995 cuando el programador Rasmus
Lerdorf puso a disposicin el lenguaje PHP con lo que todo el desarrollo de
aplicaciones web realmente despeg. Hoy en da, incluso muchas de estas
aplicaciones se han desarrollado en PHP, como Google, Facebook y Wikipedia.
Unos meses ms tarde, Netscape, el navegador web ms antiguo y popular,
anunci una nueva tecnologa, JavaScript, lo que permite a los programadores
cambiar de forma dinmica el contenido de una pgina Web que haba sido hasta
el momento texto esttico. Esta tecnologa permite un nuevo enfoque para el
desarrollo de aplicaciones Web, que eran, y an hoy, mucho ms interactivas para
los usuarios. Por ejemplo, la instantnea de Google, que muestra los resultados
de bsqueda en un momento en que la palabra se escribe, hace un uso intensivo
de JavaScript. Las actualizaciones del sitio web de productos de Microsoft tambin
utiliza esta tecnologa.
Al ao siguiente, en 1996, dos desarrolladores, Sabeer Bhatia y Jack Smith
lanzaron Hotmail (no fue un desarrollo original de microsoft), un servicio de correo
en lnea que permite (por primera vez) para el pblico en general para acceder y
consultar el correo electrnico siempre que sea los usuarios pudieran estar en
cualquier sitio lejos de su ordenador.
Luego vino la famosa plataforma Flash utiliza para aadir contenido interactivo
para sitios Web. Flash hizo su aparicin en 1997, conocido como Shockwave
Flash. Ms tarde, despus de ser adquirido por Macromedia y Adobe, Flash se
convirti en una plataforma para desarrollar aplicaciones web interactivas.
El ao siguiente marc un punto de inflexin para los medios de comunicacin en
lnea. De hecho, el 17 de enero de 1998, el sitio web The Drudge Report anunci
por primera vez un informe de noticias antes de que se difundiera en los medios
de televisin y la prensa tradicional. Se inform el escndalo Clinton/Lewinsky.
Este evento fue el detonante del periodismo en lnea tal como lo conocemos hoy

en da. Antes de esa fecha, internet nunca haba sido considerado uno de los
medios de comunicacin ms importantes.
El mismo ao, la compaa Google desarroll su primer motor de bsqueda en
lnea que, por su nueva forma de indexar pginas web, facilita enormemente la
bsqueda de informacin en internet. Google sigue innovando y se convirti en
uno de los ms prolficos en cuanto a las aplicaciones Web, con indicacin del
muy popular Google Maps, Google Docs, Gmail y en aumento.
A principios de 2001, poco despus de la explosin de la burbuja de internet,
Wikipedia se lanz como un sub-proyecto de Nupedia, una enciclopedia en lnea
tradicional. Para desarrollar su plataforma, se utiliza un tipo de Wikipedia de la
aplicacin web denominada "wiki", que permite a cualquier usuario agregar
contenido. Las contribuciones no se hicieron esperar, y al final del primer ao de
funcionamiento, Wikipedia ya contaba con 20000 pginas en 18 idiomas. Hoy en
da, casi 21 millones de artculos en 285 idiomas conforman el sexto sitio ms
visitado en el mundo, siendo el primero Google.
En 2003, MySpace fue fundado y ms tarde, de 2005 a 2008, el sitio se convirti
en el medio de comunicacin social ms visitado. MySpace fue una plataforma de
lanzamiento para otras aplicaciones web conocidos como YouTube, y Slide.com!
RockYou, todos los cuales comenzaron como mdulos adicionales para los
usuarios de MySpace antes de convertirse en sus propios sitios web en su propio
derecho.
Entonces, tres acontecimientos muy importantes ocurrieron en 2004. En primer
lugar, en una conferencia de la Web 2.0 a cargo de John Battelle y Tim O'Reilly, el
concepto de "web como plataforma" fue mencionado por primera vez. Esta
innovacin allan el camino para futuras aplicaciones web, es decir, un software
que aprovecha las ventajas de la conexin a internet y que se desvan del uso
tradicional del escritorio. En segundo lugar, el sitio interactivo de Digg se puso en
marcha. Propuso una forma innovadora de crear y encontrar contenido en internet
mediante la promocin de noticias y enlaces democrticamente votado por los
usuarios. Y, por ltimo, el tercer gran evento, pero no menos importante, fue el
lanzamiento de Facebook, que estaba entonces en su infancia, abierto slo a los
estudiantes. Con un milln de suscriptores a finales de 2004, Facebook se ha
convertido en el medio de comunicacin ial socms utilizado con ms de 900
millones de usuarios. Este es el segundo sitio ms visitado en el planeta y tiene la
mayor cantidad de fotos compartidas por los usuarios con un total de casi 500000
millones de fotos subidas a la plataforma. Facebook ha revolucionado la mirada
de aspectos relacionados con la vida social la comercializacin, y la poltica ... en
la Web.
En 2005, YouTube fue lanzado oficialmente, permite a los usuarios compartir
vdeos en lnea. De simple sitio para compartir vdeos en internet a una plataforma
madura que se conoce hoy en da, YouTube ahora ofrece cerca de 4000 millones

de videos al da, adems de un servicio de alquiler de pelculas en lnea, y,


finalmente, episodios de emisin para las empresas o las pelculas de MGM, Lions
Gate Entertainment y CBS.
Twitter, por su parte, se puso en marcha en 2006. Con los aos, la popularidad de
Twitter ha aumentado de 1,6 millones de 'tweets' en 2007 con la impresionante
cifra de 340 millones de dlares por da en marzo de 2012 (equivalente a casi
4000 'tweets' por segundo).
El ao 2007 estuvo marcado por la aparicin del iPhone, que fue sin duda
responsable de la llegada de la nueva moda para las plataformas mviles y
aplicaciones web. Ahora son accesibles por telfono inteligente.
A principios de 2011, la empresa Kickstarter, que facilita la financiacin de
proyectos en lnea de forma participativa, ha llegado a los 4000 proyectos con ms
de 30 millones de dlares en donaciones. Por otra parte, casi el 44% de los
proyectos se han iniciado con xito desde esta plataforma.
Puesto que en los 43 aos de la historia de internet, los programadores han
tratado de hacer estallar las barreras entre las aplicaciones tradicionales y
aplicaciones web. El progreso de los ltimos aos en tecnologa, velocidad de
descarga, as como herramientas de desarrollo (incluyendo la plataforma. Net de
Microsoft) aborda algunas deficiencias.
Poco a poco, las aplicaciones Web se estn convirtiendo en una funcionalidad
ms completa, mientras que estn siendo fciles de usar. Podemos tomar por
ejemplo de Google Docs, Office Web Apps, BitDefender QuickScan, Last.fm, y en
lnea UFile QuickTax, lo que sea.
Como hemos visto, el impacto de las aplicaciones Web sobre cmo operar un
negocio, transmitir y recibir informacin, e incluso en la vida de las personas es
considerable. Las aplicaciones Web ofrecen la oportunidad de conectar a los
usuarios entre s y las empresas con sus clientes. En resumen, los desarrolladores
de aplicaciones web de hoy estn dando forma a su futuro digital del futuro.
1.2 Arquitectura de las aplicaciones web.
Cuando hablamos de la arquitectura de una aplicacin, nos referimos a la forma
en la que estn organizados los elementos de una aplicacin tanto fsica como
lgicamente, es decir, es la manera en que ha sido diseada una aplicacin.
La Web se puede considerar como una plataforma o sistema operativo en el cual
los recursos estn distribuidos en la Red y estn siendo extendidos en todo
momento con posibilidades ilimitadas. La Web se ha hecho popular con
aplicaciones tales como clientes de correo, buscadores, portales, foros, chats,
IRC, RSS, blogs, etc. Adems de estas aplicaciones de propsito general, existe
adicionalmente una gran diversidad de soluciones que se acomodan al ambiente
web, como son: Administradores de contenido (CMS), Administrador de proyectos,

Suites para trabajo colaborativo, Administracin de relaciones con el cliente


(CRM), ERP, etc. La Web se reinventa da a da. Lo que ayer pareca imposible
hoy es una realidad. Hace un ao, o quizs meses, no se poda entender que
hubiera tantas opciones para realizar una hoja de clculo en una plataforma web
como docs. google.com, o que pudiramos jugar a un juego animado de
construccin de mundos (tipo Age of empires) en www. travian.net, o que existiese
un sistema de bsqueda mapas y direcciones como maps.google.com. Google es
uno de los que ms ha ayudado al desarrollo y fomento de las aplicaciones web y
sirve de infraestructura para llevar a cabo tales ideas. Es cierto que la arquitectura
cliente-servidor de la web ha ofrecido muchas ventajas, pero tambin es cierto que
carece de la riqueza grfica de las aplicaciones de escritorio que cuentan con
controles inteligentes que dan mayor fluidez al trabajo del usuario. Esto ha sido
resuelto con varias estrategias o tecnologas tales como AJAX, Flash y Web 2,
entre otras. As que en vez de ir perdiendo fuerza debido a la pobreza en sus
interfaces grficas, la Web busca alternativas que le permitan ofrecer todas sus
ventajas, pero con la posibilidad de ofrecer controles visuales ms amigables al
trabajo del usuario.
La programacin por capas es una arquitectura cliente-servidor en el que el
objetivo primordial es la separacin de la lgica de negocios de la lgica de
diseo; un ejemplo bsico de esto consiste en separar la capa de datos de la capa
de presentacin al usuario.

La ventaja principal de este estilo es que el desarrollo se puede llevar a cabo en


varios niveles y, en caso de que sobrevenga algn cambio, solo se ataca al nivel
requerido sin tener que revisar entre cdigo mezclado. Un buen ejemplo de este
mtodo de programacin sera el modelo de interconexin de sistemas abiertos.
Adems, permite distribuir el trabajo de creacin de una aplicacin por niveles; de
este modo, cada grupo de trabajo est totalmente abstrado del resto de niveles,
de forma que basta con conocer la API que existe entre niveles.
En el diseo de sistemas informticos actual se suelen usar las arquitecturas
multinivel o Programacin por capas. En dichas arquitecturas a cada nivel se le
confa una misin simple, lo que permite el diseo de arquitecturas escalables
(que pueden ampliarse con facilidad en caso de que las necesidades aumenten).
El ms utilizado actualmente es el diseo en tres niveles (o en tres capas).

Capa de presentacin: la que ve el usuario (tambin se la denomina "capa


de usuario"), presenta el sistema al usuario, le comunica la informacin y
captura la informacin del usuario en un mnimo de proceso (realiza un
filtrado previo para comprobar que no hay errores de formato). Tambin es
conocida como interfaz grfica y debe tener la caracterstica de ser
"amigable" (entendible y fcil de usar) para el usuario. Esta capa se
comunica nicamente con la capa de negocio.
Capa de negocio: es donde residen los programas que se ejecutan, se
reciben las peticiones del usuario y se envan las respuestas tras el
proceso. Se denomina capa de negocio (e incluso de lgica del negocio)
porque es aqu donde se establecen todas las reglas que deben cumplirse.
Esta capa se comunica con la capa de presentacin, para recibir las
solicitudes y presentar los resultados, y con la capa de datos, para solicitar
al gestor de base de datos almacenar o recuperar datos de l. Tambin se
consideran aqu los programas de aplicacin.
Capa de datos: es donde residen los datos y es la encargada de acceder a
los mismos. Est formada por uno o ms gestores de bases de datos que
realizan todo el almacenamiento de datos, reciben solicitudes de
almacenamiento o recuperacin de informacin desde la capa de negocio.

Todas estas capas pueden residir en un nico ordenador, si bien lo ms usual es


que haya una multitud de computadoras en donde reside la capa de presentacin
(son los clientes de la arquitectura cliente/servidor). Las capas de negocio y de
datos pueden residir en el mismo ordenador, y si el crecimiento de las
necesidades lo aconseja se pueden separar en dos o ms computadoras. As, si el
tamao o complejidad de la base de datos aumenta, se puede separar en varios
computadoras los cuales recibirn las peticiones del ordenador en que resida la
capa de negocio.
Si, por el contrario, fuese la complejidad en la capa de negocio lo que obligase a la
separacin, esta capa de negocio podra residir en uno o ms computadoras que
realizaran solicitudes a una nica base de datos. En sistemas muy complejos se
llega a tener una serie de computadoras sobre los cuales corre la capa de
negocio, y otra serie de computadoras sobre los cuales corre la base de datos.
En una arquitectura de tres niveles, los trminos "capas" y "niveles" no significan
lo mismo ni son similares.
El trmino "capa" hace referencia a la forma como una solucin es segmentada
desde el punto de vista lgico:

Presentacin. (Conocida como capa Web en aplicaciones Web o como


capa de usuario en Aplicaciones Nativas)
Lgica de Negocio. (Conocida como capa Aplicativa)
Datos. (Conocida como capa de Base de Datos)

En cambio, el trmino "nivel" corresponde a la forma en que las capas lgicas se


encuentran distribuidas de forma fsica. Por ejemplo:

Una solucin de tres capas (presentacin, lgica del negocio, datos) que
residen en un solo ordenador (Presentacin+lgica+datos). Se dice que la
arquitectura de la solucin es de tres capas y un nivel.

Una solucin de tres capas (presentacin, lgica del negocio, datos) que
residen en dos computadoras (Presentacin+lgica por un lado;
lgica+datos por el otro lado). Se dice que la arquitectura de la solucin es
de tres capas y dos niveles.

Arquitectura de 2 capas.
Es conocida tambin como la arquitectura tradicional de cliente/servidor. 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. Por ejemplo,
una estacin de trabajo utilizada como cliente puede correr una aplicacin de
interfaz de usuario que interroga a un servidor central de bases de datos.
Ventajas:
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 estables, pero
no se ejecutan bien en organizaciones rpidamente cambiantes.
1.3. Tecnologas para el desarrollo de aplicaciones web.
Tecnologas en la capa de Presentacin
Java Server Faces (JSF) Prime Faces
La tecnologa Java Server Faces es un marco de desarrollo de los componentes
de la interfaz de usuario, vlido para todas aquellas aplicaciones web basadas en
la tecnologa Java.
Richfaces
RichFaces es un marco de cdigo abierto que aade a las aplicaciones capacidad
de Ajax en JSF, sin recurrir a Java Script. RichFaces aprovecha el framework Java
Server Faces, incluyendo su ciclo de vida, la validacin, los medios de conversin
y la gestin de los recursos estticos y dinmicos. Los componentes de RichFaces
con soporte Ajax y aspecto altamente personalizable pueden ser fcilmente
incorporados a aplicaciones JSF.

Ajax
Es el acrnimo para Asynchronous Java Script + XML y el concepto es: Cargar y
renderizar una pgina, luego mantenerse en esa pgina mientras scripts y rutinas
van al servidor buscando, en background, los datos que son usados para
actualizar la pgina solo re-renderizando la pgina y mostrando u ocultando
porciones de la misma.
AJAX incorpora:
o Presentacin basada en estndares usando XHTML y CSS.
o Exhibicin e interaccin dinmicas usando el Document Object
Model.
o Intercambio y manipulacin de datos usando XML y XSLT.
o Recuperacin de datos asincrnica usando XML Http Request.
Ajax4Jsf
Es una librera open source que se integra totalmente en la arquitectura de JSF y
extiende la funcionalidad de sus etiquetas dotndolas con tecnologa Ajax de
forma limpia y sin aadir cdigo Java Script. Mediante este framework se puede
variar el ciclo de vida de una peticin JSF, recargar determinados componentes de
la pgina sin necesidad de recargarla por completo, realizar peticiones al servidor
automticas, control de cualquier evento de usuario, etc. En definitiva Ajax4jsf
permite dotar a la aplicacin JSF de contenido mucho ms profesional con muy
poco esfuerzo.
Facelets
Es un framework simplificado de presentacin, en donde es posible disear de
forma libre una pgina web y luego asociarle los componentes JSF especficos.
Aporta mayor libertad al diseador y mejora los informes de errores que tiene JSF.
Permite que JSP (Java Server Pages) y JSF (Java Server Faces) puedan
funcionar conjuntamente en una misma aplicacin web. Estos no se
complementan naturalmente. JSP procesa los elementos de la pgina de arriba a
abajo, mientras que JSF dicta su propio re-rendering (ya que su ciclo de vida est
dividido en fases marcadas). Facelets llena este vaco entre JSP y JSF, siendo
una tecnologa centrada en crear rboles de componentes y estar relacionado con
el complejo ciclo de vida JSF.
Las principales ventajas de Facelets son:

Construccin de interfaces basadas en plantillas.


Rpida creacin de componentes por composicin.
Fcil creacin de funciones y libreras de componentes.
Facelets provee un proceso de compilacin ms rpido que JSP.
Provee templating, lo cual implica reutilizacin de cdigo, simplificacin
de desarrollo y facilidad en el mantenimiento de grandes aplicaciones.

Lenguaje de Marcado de Hipertexto Extensible (XHTML)

Es una versin ms estricta y limpia de HTML, que nace con el objetivo de


reemplazar a HTML ante su limitacin de uso con las cada vez ms
abundantes herramientas basadas en XML. XHTML extiende HTML 4.0
combinando la sintaxis de HTML, diseado para mostrar datos, con la de XML,
diseado para describir los datos.
Extensible Markup Language (XML)
No es solo un lenguaje, es una forma de especificar lenguajes, de ah el trmino
de extensible. Es un leguaje de etiquetas no predefinidas previamente, es decir, el
programador es el que las crea en cada caso. El XML ahorra tiempos de desarrollo
y proporciona ventajas, dotando a webs y a aplicaciones de una forma realmente
potente de guardar la informacin. Se ha convertido en un formato universal para
el intercambio de informacin estructurada entre diferentes plataformas. En la
actualidad permite la compatibilidad entre sistemas para compartir la informacin.
Java Script
Es un lenguaje de programacin interpretado, es decir, no requiere de compilacin
ya que el lenguaje funciona del lado del cliente, los navegadores son los
encargados de interpretar estos cdigos. Tiene la ventaja de ser incorporado en
cualquier pgina web, puede ser ejecutado sin la necesidad de instalar
otro programa para ser visualizado. Tiene como principal caracterstica ser un
lenguaje independiente de la plataforma.
Tecnologas en la capa de Negocio
Servidor de Aplicaciones
JBoss es un servidor de aplicaciones para Java. Es muy reconocido por ser de los
primeros servidores de aplicacin empresarial gratuito y open source. Al estar
basado en Java, puede ser utilizado en cualquier sistema operativo que lo soporte,
ofreciendo una plataforma de alto rendimiento para aplicaciones java, aplicaciones
Web y Portales.
Enterprise Java Beans (EJB)
Es una plataforma para construir aplicaciones de negocio portables, escalables, y
reutilizables utilizando el lenguaje de programacin java. Permite a los
desarrolladores enfocarse en la lgica del negocio sin tener que emplear tiempo
en la conformacin del cdigo de la infraestructura. Desde el punto de vista del
desarrollador es un pedazo de cdigo java que se ejecuta en un entorno
especializado denominado contenedor EJB que proporciona un conjunto de

servicios. El servicio de persistencia es proporcionado por un framework


especializado denominado proveedor de persistencia.
Plain Old Java Object (POJO"s)
Son las siglas utilizadas por programadores java para enfatizar el uso de clases
simples y que no dependen de un framework en especial.
Tecnologas en la capa de Acceso a Datos
Java Persistence API (JPA)
El Java Persistence API fue desarrollado por el grupo de expertos de EJB 3.0,
aunque su uso no se limita a los componentes software EJB. Tambin puede
utilizarse directamente en aplicaciones web y aplicaciones clientes; incluso fuera
de la plataforma Java EE.
En su definicin, se han combinado ideas y conceptos de los principales
frameworks de persistencia como Hibernate, Toplink y JDO y de las versiones
anteriores de EJB. Todos estos cuentan actualmente con una implementacin JPA.
Framework Hibernate
Hibernate es una capa de persistencia objeto/relacional y un generador de
sentencias SQL. Permite disear objetos persistentes que podrn incluir
polimorfismo, relaciones, colecciones, y un gran nmero de tipos de datos. De una
manera muy rpida y optimizada se puede generar bases de datos en cualquiera
de los entornos soportados: Oracle, DB2, MySql, etc. Y lo ms importante de todo,
es open source, lo que supone, entre otras cosas, que no se tiene que pagar nada
por adquirirlo.
Hibernate
ofrece
tambin
un
lenguaje
de
consulta
de
datos
llamado HQL (Hibernate Query Language). Puede ser usado para desarrollar y
distribuir aplicaciones de forma gratuita. Es utilizado en las aplicaciones Java EE.
JBoss Seam
JBoss Seam es una nueva y poderosa aplicacin para la construccin de la
prxima generacin de aplicaciones Web 2.0 de la unificacin y la integracin de
tecnologas, como Java Script asncrono y XML (AJAX), Java Server Faces (JSF),
Enterprise Java Beans (EJB3), Java Portlets y Business Process Management
(BPM).
Es un framework que integra y unifica los distintos estndares de la plataforma
Java EE, pudiendo trabajar con todos ellos siguiendo el mismo modelo de
programacin. Ha sido diseado intentado simplificar al mximo el desarrollo de
aplicaciones, basando el diseo en POJOs con anotaciones. Estos componentes
se usan desde la capa de persistencia hasta la de presentacin, poniendo todas
las capas en comunicacin directa. El ncleo principal de Seam est formado por
las especificaciones EJB3 y JSF.

Lenguaje de Programacin
Java, es un lenguaje orientado a objetos desarrollado por Sun Microsystems. La
programacin en Java, permite el desarrollo de aplicaciones bajo el esquema de
Cliente Servidor, como de aplicaciones distribuidas, lo que lo hace capaz de
conectar dos o ms computadoras u computadoras, ejecutando tareas
simultneamente, y de esta forma logra distribuir el trabajo a realizar.
Es distribuido, multiplataforma, compilado, seguro y posee una arquitectura
neutral. Proporciona un conjunto de clases potente y flexible. Elimina muchas de
las caractersticas de C y C++, lo que lo hace ms manejable desde el punto de
vista del programador.
Herramientas
Eclipse Ganymede
Es un entorno integrado (IDE) para desarrollo de aplicaciones con java. Est
soportado por IBM, es un proyecto open source, multiplataforma para desarrollar
lo que el proyecto llama "Aplicaciones de Cliente Enriquecido". Se est
convirtiendo en el estndar de facto de los entornos de desarrollo para Java. Y es
que Eclipse no es tan solo un IDE, se trata de un marco de trabajo modular
ampliable mediante complementos (plugins). De hecho, existen complementos
que permite usar Eclipse para programar en PHP, Perl, Python, C/C++, etc.
PostgreSQL Server 8.3.
Es un potente gestor de cdigo abierto, ofrece servicios de control de concurrencia
multi-versin, soportando casi toda la sintaxis SQL (incluyendo subconsultas,
transacciones, tipos y funciones definidas por el usuario), contando tambin con
un amplio conjunto de enlaces con lenguajes de programacin (incluyendo C, C+
+, Java, Perl y Python). Es extensible, brinda gran estabilidad y confiabilidad y es
multiplataforma. Tiene soporte para lenguajes procedurales internos, incluyendo
un lenguaje nativo denominado PL/PGSQL. Este lenguaje es comparable al
lenguaje procedural del sistema de gestin de base de datos relacional Oracle,
PL/SQL.
Una de sus ventajas es la excelente documentacin que existe, adems de contar
con una comunidad de usuarios y desarrolladores a los que acudir en caso de
tener problemas.

1.4. Planificacin de aplicaciones web


Muchos diseadores en algn u otro momento caen en la tentacin de comenzar a
disear un nuevo proyecto sin ningn tipo de planificacin previa. Ya sea por pecar

de novatos, perezosos o simplemente no creer en que la planificacin debe formar


parte del proceso creativo.
Con planificacin previa no se sugiere numerosas horas de escrupulosa
planificacin y organizacin de todo lo que har, ha de ser prctico y en ningn
momento debe ser peor el remedio que la enfermedad, se debe recordar que
interesa planificar para ahorrar tiempo y ganar en calidad.
En este proceso previo de planificacin es importante que se de respuesta a
preguntas tan bsicas como:

Qu tipo de web voy a crear?


Qu clase de pblico visitar la web?
Cul es la finalidad / objetivo final de la web?
Cumplir el diseo en mente los objetivos? Es usable e intuitivo?

Contestando a este tipo de preguntas se enfrentan problemas que a pesar de ser


demasiado obvios evitarn algo ms que un dolor de cabeza cuntas veces
hemos no se desechan diseos visualmente atractivos pero que no cumplen los
objetivos bsicos?
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 ea
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.
Si quieres conocer ms, consulta: https://prezi.com/qgmkih8xaefs/planificacion-deaplicaciones-web/