Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
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
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:
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.
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/