1. Universidad Laica Eloy Alfaro de Manabí
Facultad de “Ciencias Informáticas”
Estudiante:
Palma Zambrano Laura Lucia
Docente:
Ing. Jorge Pincay Ponce
Asignatura:
Ingeniería de Software II
Curso:
Quinto Nivel Paralelo “B”
Año Lectivo:
2013-2014.
2. Introducción
¿Qué es Struts?
Es un framework que implementa el patrón de arquitectura MVC en Java
Un framework es la extensión de un lenguaje mediante una o más jerarquías
de clases que implementan una funcionalidad y que (opcionalmente) pueden
ser extendidas. El framework puede involucrar TagLibraries.
El patrón de arquitectura MVC (Model-View-Controller) es un patrón que define
la organización independiente del Model (Objetos de Negocio), la View (interfaz
con el usuario u otro sistema) y el Controller (controlador del workflow de la
aplicación:
El navegador genera una solicitud que es atendida por el Controller (un Servlet
especializado). El mismo se encarga de analizar la solicitud, seguir la
configuración que se le ha programado en su XML y llamar al Action
correspondiente pasándole los parámetros enviados. El Action instanciará y/o
utilizará los objetos de negocio para concretar la tarea. Según el resultado que
retorne el Action, el Controller derivará la generación de interfaz a una o más
JSPs, las cuales podrán consultar los objetos del Model a fines de realizar su
tarea.
3. PLANTEAMIENTO DE PROBLEMA
En la época en la que vivimos y nos desenvolvemos como personas naturales
o jurídicas es relevante estar en constante cambio, estos cambios son
aplicados en varios aspectos cotidianos tales como, en el desarrollo de
aplicaciones web que nos brindan servicios a los usuarios para ayudarnos a
solucionar algún inconveniente.
4. Objetivos
Objetivo General
Desarrollar un aplicativo web, tomando como herramienta principal en el
desarrollo el uso del Framework de Java Struts 2, la cual va a permitir tener
un login el cual servirá para proyectos posteriores.
Objetivo Específico
Implementar el Framework Strut 2 en la aplicación a crear
Concebir el Funcionamiento del Framework Strut
Aplicar los Conocimientos Adquiridos con el uso de este framework en el
desarrollo de aplicaciones web Java
Entender el patrón Modelo Vista Controlador
5. JUSTIFICACIÓN
La utilización de Framework en la actualidad se encuentra en masivo crecimiento
permitiendo el desarrollo de aplicaciones completas en el sentido de que son de
vital ayuda para el programador como para el usuario final.
Considerando el avance de las tecnologías, y la obligación de adaptación a la que
se está expuesto, es conveniente la creación de sistemas o aplicaciones que le
informen a los usuarios los gastos o los egresos que se han producido en el día
con el fin de que a estos se encuentren informados sobre el total del capital que
tiene en existencia.
6. Framework
La palabra inglesa "framework" (marco de trabajo) define, en términos generales,
un conjunto estandarizado de conceptos, prácticas y criterios para enfocar un tipo
de problemática particular que sirve como referencia, para enfrentar y resolver
nuevos problemas de índole similar.
En el desarrollo de software, un framework o infraestructura digital, es una
estructura conceptual y tecnológica de soporte definido, normalmente con
artefactos o módulos de software concretos, que puede servir de base para la
organización y desarrollo de software. Típicamente, puede incluir soporte
de programas, bibliotecas, y un lenguaje interpretado, entre otras herramientas,
para así ayudar a desarrollar y unir los diferentes componentes de un proyecto.
Representa una arquitectura de software que modela las relaciones generales de
las entidades del dominio, y provee una estructura y una especial metodología de
trabajo, la cual extiende o utiliza las aplicaciones del dominio.
¿QUÉ ES UN FRAMEWORK WEB J2EE?
Un framework, es una estructura software compuesta de componentes
personalizables eintercambiables que permiten desarrollar una aplicación. En
otras palabras, un framework se puede considerar como una aplicación genérica
incompleta y configurable a la que podemos agregarle algunas piezas para
construir una aplicación concreta.
Los objetivos principales de los frameworks son: acelerar el proceso de desarrollo,
reutilizar código ya existente y promover buenas prácticas de desarrollo como el
uso de patrones.
En particular, un framework web J2EE, es un conjunto de componentes de
software, por ejemplo clases JAVA, descriptores y archivos de configuración en
XML, basados en la plataforma J2EE y, que constituyen un diseño reutilizable que
facilita y agiliza el desarrollo de sistemas web que se ejecutarán en servidores
J2EE
7. Struts 2
Struts es un framework para el desarrollo de aplicaciones Web bajo el patrón MVC
en la plataforma Java EE. Su carácter de “software libre” y su compatibilidad con
todas las plataformas en las que Java Entreprise está disponible lo convierten en
una herramienta altamente disponible. La versión 2 del framework introdujo
algunas mejoras sobre la primera versión, de cara a simplificar las tareas más
comunes en el desarrollo de aplicaciones web, así como mejorar su integración
con AJAX, etc.
El framework está diseñado para agilizar el ciclo de desarrollo completo, desde la
construcción, con la implementación, para el mantenimiento de las aplicaciones a
través del tiempo.
Para hacer más fácil presentar datos dinámicos, el framework incluye una
biblioteca de etiquetas web. Las etiquetas interactúan con las validaciones y las
características de internacionalización del framework, para asegurar que las
entradas son válidas, y las salidas están localizadas. La biblioteca de etiquetas
puede ser usada con JSP, FreeMarker, o Velocity; también pueden ser usadas
otras bibliotecas de etiquetas como JSTL y soporta el uso de componentes JSF.
Struts 2 no es precisamente el heredero de Struts 1, sino que es la mezcla de dos
framewoks: WebWork 2 y Struts
Funcionamiento General
Struts se basa en el patrón de diseño MVC el cual separa tres secciones
diferenciadas llamadas Modelo, Vista y Controlador. Esto busca separar el modelo
de datos, las interfaces de usuario y la lógica de negocios en tres componentes
diferentes.
El Modelo
Es básicamente los datos de la aplicación y las reglas de negocio, que serían los
Actions en Struts 2.
Las acciones o Actions son clases encargadas de realizar la lógica para servir una
petición. Cada URL es mapeada a una acción específica, la cual proporciona la
lógica necesaria para servir a cada petición hecha por el usuario.
8. Estrictamente hablando, las acciones no necesitan implementar una interface o
extender de alguna clase base. El único requisito para que una clase sea
considerada un Action es que debe tener un método que no reciba argumentos
que regrese ya sea un Stringo un objeto de tipo Result. Por default el nombre de
este método debe ser "execute" aunque podemos ponerle el nombre que
queramos y posteriormente indicarlo en el archivo de configuración de Struts.
La Vista
Puede ser cualquier tecnología de vista como los JSP, entre otros. Estos son el
medio por el cual el usuario podrá interactuar con la aplicación. En Struts 2, son
los Results.
Son las respuesta de regreso al usuario. Este proceso tiene dos componentes, el
tipo del result y el result mismo.
El tipo del result indica cómo debe ser tratado el resultado que se le regresará al
cliente. Por ejemplo un tipo de Result puede enviar al usuario de vuelta una JSP,
otro puede redirigirlo hacia otro sitio, mientras otro puede enviarle un flujo de bytes
(para descargar un archivo por ejemplo).
El Controlador
Es el intermediario entre la Vista y el Modelo, ante las peticiones generadas por el
Cliente en la Vista. Así, éste se encarga de invocar al Modelo cualquier cambio en
los datos de la aplicación, para que pueda ser devuelta a la Vista, como respuesta
ante la petición del usuario. En Struts 2, esta tarea la realiza el FilterDispatcher.
El "FilterDispatcher" es el punto de entrada del framework. A partir de él se lanza
la ejecución de todas las peticiones que involucran al framework.
Las principales responsabilidades del "FilterDispatcher" son:
Ejecutar los Actions que son los manejadores de las aplicaciones.
Comenzar la ejecución de la cadena de interceptores (de la que hablaremos en un
momento).
Limpiar el "ActionContext", para evitar fugas de memoria.
9. VENTAJAS DE USAR STRUTS
A continuación se mencionan las ventajas de usar Struts en el desarrollo de la
capa de presentación para aplicaciones basadas en tecnología Web – Java.
Ventajas:
* Implementa el patrón de arquitectura MVC (Model-View-Controller) cuyo
propósito principal es separar el código de la capa de presentación del código de
la capa de negocio facilitando la asignación de roles y la especialización de
funciones dentro del marco de un proyecto.
* El controlador ya se encuentra implementado por Struts:
Las acciones que se ejecutarán sobre el modelo de objetos de negocio se
implementan basándose en clases predefinidas por el framework, siguiendo el
patrón Facade.
La generación de interfaz se soporta mediante un conjunto de Tags predefinidos
por Struts cuyo objetivo es evitar el uso de Scriplets (ltrozos de código Java entre
"<%" y "%>"), lo cual genera ventajas de mantenimiento del código y de
perfomance de la aplicación en desarrollo.
* Potencia la reutilización de código y soporta múltiples interfaces de usuario
(Html, sHtml, Wml, Desktop applications, etc.).
* Struts implementa varios patrones de diseño de la arquitectura J2EE tales como:
* Service to worker
* Dispatcher View
* Front Controller
* View Helper
* Synchronize (Déjà vu) Token
* Ya que Struts está basado en tecnologías estándares como Java Servlets,
JavaBeans, XML, hereda el ambiente de estos estándares y puede operar con
cualquier tecnología basada en JSP o Servlet.
* Beneficio en términos de costo por licencia: Struts es un Open Source Software
(OSS), lo que significa que su uso es libre.
10. Desventajas:
• Se requiere por parte de los desarrolladores un conocimiento profundo y
detallado de Servlets y JSPs lo que representa una curva de aprendizaje, quede
requerirse no se recomienda en proyectos cortos.
• En comparación con la tecnología de Servlets y JSPs, los desarrolladores
principiantes encuentran que la documentación en línea de www.Apache.orges
confusa y pobremente organizada. Existen menos libros de Struts que de Servlets
y JSPs.
• Existen opiniones encontradas en cuanto al tema de la implementación que hace
Struts del patrón de arquitectura MVC. Para muchos, este “códigoescondido” le
quita transparencia a las aplicaciones construidas con Struts y las hace más difícil
de entender.
• El tiempo de deployment de las aplicaciones desarrolladas con Struts se
incrementa, ya que el servidor de aplicaciones tiene que buscar la ubicación de las
librerías desarrolladas (tags) y las clases a la cuales están asociadas, para
resolverlas y validarlas.
• Fin del mantenimiento El desarrollo de Struts1 ha finalizado aunque dadoel
amplio parque de aplicaciones realizado en esta tecnología significara que solo el
mantenimiento es una razón justificada para conocer la tecnología.
• Cambio El framework ha demostrado problemas arquitectónicos, o mejor dicho a
desvelado mejores acercamientos a problemas que no pueden ser incluidos en su
diseño por el final en su desarrollo.
• Ámbito limitado Struts es una solución web basada en MVC que esta dirigida a
ser implementada con HTML, JSPs y Servlets.
• Soporte J2EE Struts requiere un contenedor de servlets que soporte las
especificaciones JSP 1.1 y Servlet 2.2
• Complejidad Separar el problema en partes introduce complejidad. No
hayninguna duda que hace falta algo de educación para manejar Struts.
• Otros Flujo adaptable y patrón Strategy para el controlador
11. Diferencias entre Strut y Strut 2
Clases Action
Strut 1.- Requiere clases de acción para extender una clase base abstracta.
Strut 2.-Un acción Struts puede implementar una acción de la interfaz, junto con
otras interfaces para que los servicios opcionales y personalizados. Struts 2
proporciona una clase base ActionSupport para implementar interfaces de uso
común.
Conversión de tipos
Strut 1.- Propiedades ActionForm son usualmente los Strings. Struts 1 utiliza
Commons-BeanUtils de conversión de tipos. Convertidores son por clase, y no se
pueden configurar por ejemplo.
Strut 2.- Utiliza OGNL para la conversión de tipo. El marco incluye convertidores
de tipos primitivos, objetos básicos y comunes.
Validación
Strut 1.- Soporta validación manual por medio de una validación método en el
ActionForm, o a través de una extensión del CommonsValidator.
Strut 2.- Es compatible con validación manual a través de la validación de método
y el marco de validación XWork. La validación Marco XWork admite la validación
de encadenamiento en sub-inmueble con las validaciones definidas para el tipo de
clase de propiedades y el contexto de validación
12. Materiales Utilizados
Entorno de Desarrollo Integrado= Neetbeans
Lenguaje de Programación= Java
Framework= Strut 2
Sistema de Gestión de Datos = MySql
Configuración
Configuracion de Struts2- Struts.xml
Configurar los actions.
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"
"http://struts.apache.org/dtds/struts-2.0.dtd">
<struts>
<!-- Configuration for the default package. -->
<package name="default" extends="struts-default">
<action name="ejecutar" class="com.procesos.ProcesosAction" >
<result name="success">/index.jsp</result>
</action>
</package>
</struts>
15. Declaración de un action en el Struts.xml
Etiquetas Struts
Las etiquetas que struts2 nos provee nos ayudan mucho al momento de crear
nuestras vistas, cabe recalcar la importancia del nombre que se le de a cada
control, por que con el, serán accedidos desde la clase de Java
Para poder usar las etiquetas de Struts2 es importante añadir la etiqueta:
<%@ taglib prefix="s" uri="/struts-tags" %>
Al principio de nuestra vista.
18. Errores en el IDE Eclipse
InstalaciónNetBeans PrototipoCalculadora
19. DISEÑO Y CONSTRUCCIÓN DE LA PROPUESTA
Un framework o infraestructura digital, es una estructura conceptual y tecnológica de
soporte definido, normalmente con artefactos o módulos de software concretos, con base
a la cual otro proyecto de software puede ser más fácilmente organizado y desarrollado..
Este proyecto presenta una metodología que permitirá desarrollar un software
orientado a que el usuario tenga un informe diario de los egresos que genera en
el día.
PLANEACIÓN
Nuestro Grupo de Trabajo está conformado por seis integrantes, los cuales han
hecho un trabajo exhaustivo para llevar a cabo este proyecto, hemos trabajado en
equipo como lo es el hecho de aportar ideas para la ejecución y el mejoramiento
de nuestra aplicación y a la vez hemos realizado una parte individual como
investigar sobre nuestra cuenta propia el uso de metodologías ágiles, la
programación y la utilización del frameworkStrut 2
ORGANIZACIÓN
Teniendo en cuenta el perfil de cada una de los miembros del grupo, las áreas de
trabajo quedaran definidas de la siguiente forma:
INVESTIGACIÓN Y ANÁLISIS:
Bello Flores Ramon David
Delgado Alonso Henry Harry
Flores AnchundiaVictor Manuel
Jalca Saltos Luiggi Alexander
Palma Zambrano Laura Lucía
Villamar Alcívar Pedro Alexander
20. CODIFICACIÓN DEL PROYECTO:
Bello Flores Ramon David
Delgado Alonso Henry Harry
Flores AnchundiaVictor Manuel
Jalca Saltos Luiggi Alexander
Palma Zambrano Laura Lucía
Villamar Alcívar Pedro Alexander
PLANIFICACIÓN DEL PROYECTO.
Para llevar a cabo esta aplicación hemos necesitado de mucha ayuda en especial
del internet, mediante este medio hemos recogido información y nos ha brindado
la ayuda necesaria para entender, comprender y utilizar el frameworkStrut2 .
21. Conclusiones
Al utilizar framework para desarrollar aplicaciones web obtendremos una ayuda en
al momento de generar codigo o de realizer alguna accion.
Strut es una herramienta que nos permitió desarrollar dichas aplicaciones tales
como la calculadora o el login y que en partes tambien nos permitio o nos facilito
ayuda al momento de ahorarranos líneas de código.
Recomendaciones.
Cuando se va a utlizar o a desarrollar aplicaciones utlizandoframeworks es
necesario primero escoger los componentes a utilizar, escoger y saber el manejar
contenedor de servlets en este caso utlizamos apache tomcatversion 7, es
necesario tener un conocimiento de este programa ya que es de importancia para
que se ejecute las aplicaciones que programaremos.
22. Dificultades
Las dificultades encontradas en el desarrollo de las aplicaciones de prueba para el
framework Struts2 fueron.
Configuración del servidor.
Error en la conección con la Base de datos.
Configuración del filtrodispacher.
Incovenientes
Para realizar estas aplicaciones utilizamos el Entorno de Desarrollo Integrado
Netbeans, tambien realizamos la prueba en el IDE Eclipse pero no nos funciono
como esperábamos.
Ademas no teníamos conocimiento de como instalar y configurar el Apache
Tomcat eso ocasionó que nos tocara desintalar por varias veces el IDE Neetbean
hasta que le encontramos solucion a dicho problema.
Existieron ocaciones en que al momento de ejecutar la aplicacion esta nos
enviaba un mensaje de error esto se debía a que existía conflictos en el Puerto del
localhost
23. Referencias Bibliográficas
Concepto de Framework
http://www.programacion.com/articulo/manual_basico_de_struts_156
Concepto de Strut
http://es.wikipedia.org/wiki/Framework
Ventajas
http://es.scribd.com/doc/112443456/Ventajas-y-Desventajas-de-Usar-Struts
Strut 1 Vs Strut 2
http://struts.apache.org/release/2.1.x/docs/comparing-struts-1-and-2.html