Beruflich Dokumente
Kultur Dokumente
1
DESARROLLO DE PLATAFORMA WEB PARA LA PUBLICACIÓN DE SUCESOS
INTERNOS DE ENTIDADES PÚBLICAS BASADO EN TECNOLOGÍA JSF
TUTOR
2
NOTAS DE ACEPTACIÓN
______________________________________
______________________________________
______________________________________
______________________________________
TUTOR
______________________________________
JURADO
______________________________________
3
4
5
TABLA DE CONTENIDO
RESUMEN 14
ABSTRACT 15
INTRODUCCIÓN 16
1. PLANEACIÓN 17
1.1. TITULO 17
1.2. TEMA 17
1.5.1. Alcances 18
1.5.2. Delimitaciones 18
2. OBJETIVOS 19
3. JUSTIFICACIÓN 20
4. MARCO HISTORICO 21
4.1. Blogger 21
4.2. Taringa! 21
5. MARCO TEORICO 22
5.1.1. El proceso 23
6
5.1.4. Inspección y adaptación 25
5.2. JAVA EE 25
5.4. PRIMEFACES 27
5.5. JPA 28
5.5.2. EntityManagerFactory 31
5.5.4. EntityManager 31
5.6. JPQL 32
5.7. HIBERNATE 33
6. MARCO CONCEPTUAL 34
6.2. Entidad 34
6.3. Información 34
6.4. Publicación 35
6.5. Sucesos 35
6.6. Obscenidades 35
6.7. Integración 35
7. FACTIBILIDAD 37
7
7.1.1. Recurso humano 37
7.2.1. Hardware 37
7.2.2. Software 37
8. FASE DE INICIO 39
8.1. Incertidumbre 39
10.1. SPRINT 1 48
10.1.1. Objetivos 48
10.2. SPRINT 2 54
10.2.1. Objetivos 54
8
10.2.3. Cierre y entrega 55
10.3. SPRINT 3 59
10.3.1. Objetivos 59
10.4. SPRINT 4 62
10.4.1. Objetivos 62
10.4.4. SPRINT 5 65
10.4.5. Objetivos 65
11.1.1. Entities 70
11.1.2. Session 71
11.1.3. Mail 72
11.2.1. Basicas 73
11.2.2. Tickets 73
11.2.3. Util 74
12. CONCLUCIONES 75
13. RECOMENDACIONES 76
9
14. BIBLIOGRAFÍA 77
10
TABLA DE ILUSTRACIONES
11
Imagen 29. Historias de usuario a trabajar en el Spring 4 ..................................... 62
Imagen 30. Diagrama de secuencia de los product Backlog No. 2 y 3 .................. 63
Imagen 32. Vista archivo descargado .................................................................... 64
Imagen 31. Vista listado de archivos adjuntos de la publicación ........................... 64
Imagen 33. Historias de usuario a trabajar en el Spring 5. .................................... 65
Imagen 34. Vista aviso de censura de lenguaje .................................................... 66
Imagen 35. Diagrama de secuencia del product Backlog No. 4 ............................ 67
Imagen 36. Diagrama de secuencia del product Backlog No. 5 ............................ 68
Imagen 37. Vista comentario censurado ................................................................ 69
Imagen 38. Diagrama de clases del paquete Entity ............................................... 70
Imagen 39. Diagrama de clases del paquete Sessión ........................................... 71
Imagen 40. Diagrama de clases del paquete Mail ................................................. 72
Imagen 41. Diagrama de clases del diagrama Básicas ......................................... 73
Imagen 42. Diagrama de clases del paquete Tickets ............................................ 73
Imagen 43. Diagrama de clases del paquete Util................................................... 74
12
TABLA DE TABLAS
13
RESUMEN
14
ABSTRACT
This document explains in depth the methodology used where users' stories can be
reviewed, then the methodology step will be followed, the iterations will be seen and
the expected product will be fulfilled.
15
INTRODUCCIÓN
Gracias a esto se podrá abrir una discusión entre las comunidades, para así tener
en cuenta la opinión de las personas que no están dentro de las entidades pero que
son participes de estas.
16
1. PLANEACIÓN
1.1. TITULO
1.2. TEMA
Para el desarrollo de este proyecto se tiene en cuenta distintos temas como socio-
políticos, ambientales, entre otros dependiendo la entidad donde se encuentre el
software, implementando herramientas como Java Server Faces, PrimeFaces,
XHTML, CSS e Hibernate.
17
entidades del estado, permite a los estudiantes del proyecto curricular “Tecnología
en Sistematización de Datos” aplicar sus conocimientos, habilidades y disciplina,
durante su estadía en la universidad, para así poder contribuir a la comunidad con
su quehacer laboral.
¿Es posible realizar una plataforma web que permita la publicación de sucesos
internos de una entidad?
1.5.1. Alcances
18
2. OBJETIVOS
19
3. JUSTIFICACIÓN
Ya que la ley 1712 Marzo 6 de 2014, ley de Transparencia y del Derecho de Acceso
a la Información Pública Nacional, nos dice que “Toda información en posesión, bajo
control o custodia de un sujeto obligado es pública y no podrá ser reservada o
limitada sino por disposición constitucional o legal, de conformidad con la presente
ley.”1, por lo tanto, la empresa Soluciones en Redes y Sistemas – SOLREDES
S.A.S. – desarrolló una la plataforma de divulgación de sucesos internos de
entidades tanto públicas como privadas, debido a que, Solredes es una empresa
enfocada a producir software, generalmente para el sector público, donde carecen
de dichas plataformas de divulgación. Por esta razón la empresa, cree conveniente
que además de prestar uno de sus muchos servicios de la Suite SunOne®, debe
integrar un software para suplir la obligación de compartir la información relacionada
con ciertos procesos internos y así mismo mantener informada a la comunidad, con
veracidad y evitando falsa información, donde hoy en día, es implícita en cualquier
lugar.
20
4. MARCO HISTORICO
Actualmente existen miles de páginas web que nos permiten divulgar opiniones,
sugerencias y comentarios siempre y cuando no afecten la integridad de los demás
usuarios, muchas de estas páginas eliminan o clausuran manualmente este tipo de
comentarios, otros los realizan automáticamente, a continuación, se presentan dos
páginas reconocidas por permitir comentar y clausurar lenguajes ofensivos para los
usuarios:
4.1. Blogger
Autor: Google
Blogger es un servicio que suministra Google el cual busca que los cibernautas
puedan crear y administrar sus propios Blogs sin tener grandes conocimientos en
creación de páginas web ni de programación.
4.2. Taringa!
En Taringa!, los usuarios pueden compartir todo tipo de información por medio de
Posts, Micro contenido y Comunidades a través de un sistema colaborativo de
interacción. Su lema es "Inteligencia Colectiva" y se propone como una plataforma
abierta donde las personas puedan compartir de manera democrática sus
opiniones, intereses y experiencias y descubrir nuevas ideas, información y
conocimiento.2
21
5. MARCO TEORICO
22
5.1.1. El proceso
23
5.1.2. Planificación de la iteración
Cada día el equipo realiza una reunión de sincronización (15 minutos máximo).
Cada miembro del equipo inspecciona el trabajo que el resto está realizando
(dependencias entre tareas, progreso hacia el objetivo de la iteración, obstáculos
que pueden impedir este objetivo) para poder hacer las adaptaciones necesarias
que permitan cumplir con el compromiso adquirido. En la reunión cada miembro del
equipo responde a tres preguntas:
24
Durante la iteración, el cliente junto con el equipo refina la lista de requisitos (para
prepararlos para las siguientes iteraciones) y, si es necesario, cambian o re
planifican los objetivos del proyecto para maximizar la utilidad de lo que se
desarrolla y el retorno de inversión.
5.2. JAVA EE
25
Imagen 2. Arquitectura de Java Enterprise Edition. Recuperado de Entra al mundo de Java Enterprise. [En
Línea] <http://www.jtech.ua.es/j2ee/2006-2007/jee.html> [Citado el 11 de Noviembre de 2017]
26
Imagen 3. Arquitectura de JavaServer Faces. Recuperado de Taruelo, Sandra - Miguel, Barcenilla. Java
Server Faces (JSF). [En Línea] <http://www.it.uc3m.es/spickin/docencia/comsoft/presentations/spanish/07-
08/JSF.pdf > [Citado el 12 de noviembre de 2017]
5.4. PRIMEFACES
5Taruelo, Sandra - Miguel, Barcenilla. Java Server Faces (JSF). [En Línea]
<http://www.it.uc3m.es/spickin/docencia/comsoft/presentations/spanish/07-08/JSF.pdf > [Citado el
12 de Noviembre de 2017]
27
● uso de javascript no intrusivo (no aparece en línea dentro de los elementos,
sino dentro de un bloque <script>).
● es un proyecto open source, activo y bastante estable entre versiones.
Algunos inconvenientes podrían ser:
5.5. JPA
28
Imagen 4. Arquitectura de JPA. Recuperado de JPA – Introducción [En Línea]
<https://www.tutorialspoint.com/es/jpa/jpa_introduction.htm> [Citado el 14 de diciembre de 2017]
29
La API EntityManager y los metadatos de correlación relacional de objetos manejan
la mayor parte de las operaciones de base de datos sin que sea necesario escribir
código JDBC o SQL para mantener la persistencia.
JPA está diseñado para funcionar dentro y fuera de un contenedor Java Enterprise
Edition (Java EE). Cuando se ejecuta JPA dentro de un contenedor, las aplicaciones
pueden utilizar el contenedor para gestionar el contexto de persistencia. Si no hay
ningún contenedor para gestionar JPA, la aplicación debe manejar ella misma la
gestión del contexto de persistencia. Las aplicaciones diseñadas para la
persistencia gestionada por contenedor no requieren tanta implementación de
código para manejar la persistencia, pero estas aplicaciones no se pueden utilizar
fuera de un contenedor. Las aplicaciones que gestionan su propia persistencia
pueden funcionar en un entorno de contenedor o en un entorno Java SE.
Los contenedores Java EE que dan soporte al modelo de programación de EJB 3.x
deben dar soporte a la implementación de JPA, denominada también proveedor de
persistencia. Un proveedor de persistencia JPA utiliza los elementos siguientes para
habilitar una gestión de persistencia más fácil en un entorno EJB 3.x:
Define un modelo relacional de objeto que correlaciona las clases Java (entidades
+ estructuras de soporte) con una base de datos relacional. EntityManagerFactory
utiliza estos datos para crear un contexto de persistencia al que se puede acceder
mediante EntityManager.
30
5.5.2. EntityManagerFactory
Se utiliza para crear un EntityManager para las interacciones de base de datos. Los
contenedores del servidor de aplicaciones normalmente proporcionan esta función,
pero es necesario EntityManagerFactory si se utiliza la persistencia gestionada por
las aplicaciones JPA. Una instancia de EntityManagerFactory representa un
contexto de persistencia.
5.5.4. EntityManager
Gestor de recursos que mantiene la colección activa de objetos de entidad que está
utilizando la aplicación. EntityManager maneja la interacción y metadatos de bases
de datos para las correlaciones relacionales de objetos. Una instancia de
EntityManager representa un contexto de persistencia. Una aplicación en un
contenedor puede obtener el EntityManager mediante inyección en la aplicación o
buscándolo en el espacio de nombres del componente Java. Si la aplicación
gestiona su persistencia, el EntityManager se obtiene desde EntityManagerFactory.
Clase Java simple que representa una fila en una tabla de base de datos con su
formato más sencillo. Los objetos de entidades pueden ser clases concretas o
clases abstractas. Mantienen estados mediante la utilización de propiedades o
campos7.
31
5.6. JPQL
JPQL puede recuperar datos mediante la cláusula SELECT, puede hacer a granel
actualizaciones con cláusula UPDATE y DELETE cláusula.
Sintaxis JPQL es muy similar a la sintaxis de SQL. Tener SQL como sintaxis es una
ventaja porque SQL es simple y siendo ampliamente utilizado. SQL trabaja
directamente contra la base de datos relacional tablas, registros y campos, mientras
que JPQL trabaja con Java clases e instancias.
Por ejemplo, una consulta JPQL puede recuperar una entidad objeto en lugar de
campo conjunto de resultados de una base de datos, al igual que con SQL. El JPQL
consulta estructura como sigue.
Imagen 6. Estructura de actualización y borrado en JPQL. Recuperado de JPA – JPQL [En Línea]
<https://www.tutorialspoint.com/es/jpa/jpa_jpql.htm> [Citado el 11 de noviembre de 2017]
32
5.6.2. Funciones escalares y agregadas
5.7. HIBERNATE
33
6. MARCO CONCEPTUAL
Para poder realizar una correcta ejecución del desarrollo y de esta documentación
se deben conocer algunos conceptos a nivel técnico y de negocio, por lo cual se
investigó sobre algunos significados que permitirán una mejor comprensión de lo
que se buscó con el desarrollo de la plataforma web.
Los clientes mediante un navegador emiten peticiones vía HTTP a un servidor web
que responde a cada una de las solicitudes.10
6.2. Entidad
Del latín medieval entitas, entidad es toda colectividad que puede considerarse
como una unidad. El concepto suele utilizarse para nombrar a una corporación o
compañía que se toma como persona jurídica.11
6.3. Información
10Valero, Brayan – Clavijo Andres. Sistema de información integral estudiantil. 2016. [En Línea]
<http://hdl.handle.net/11349/4751> [Citado el 17 de Noviembre de 2017]
11 Porto, Julian - Gardey, Ana. Definición de entidad. 2010. [En Línea]
<https://definicion.de/entidad/> [Citado el 17 de Noviembre de 2017]
12 Porto, Julian - Gardey, Ana. Definición de Información. 2008. [En Línea]
<https://definicion.de/informacion/> [Citado el 17 de Noviembre de 2017]
34
6.4. Publicación
6.5. Sucesos
Se define como suceso a una cuestión que ocurre. El término tiene su origen en el
vocablo latino successus y se emplea en especial cuando aquello que ocurre o se
desencadena posee una cierta trascendencia.14
6.6. Obscenidades
La palabra obscenidad proviene del latín obscenus, el cual se define como repulsivo
o algo detestable. Dicho término se usa mucho en el contexto legal para describir
ciertas expresiones como: palabras, acciones e imágenes que puedan ofender la
moral o sexualmente a alguien. La obscenidad va a depender en algunos casos de
la cultura, dado que hay países que han promulgado leyes con respecto a lo que
consideran obsceno y censuran todo aquello relacionado con este término. Por
ejemplo, lo más común y conocido es la pornografía.15
6.7. Integración
35
objeto o persona. Es un fenómeno que sucede cuando un grupo de individuo unen
a alguien que se encuentra por fuera sin importar sus características y diferencias.16
36
7. FACTIBILIDAD
7.2.1. Hardware
7.2.2. Software
37
7.3. Factibilidad operativa
TIPO DE
VALOR VALOR
RECURSO RESPONSABLE DESCRIPCIÓN CANTIDAD
UNITARIO TOTAL
38
8. FASE DE INICIO
8.1. Incertidumbre
Se necesita una plataforma web que se asocie con la suite de SunOne® en la cual
se puedan hacer publicaciones acerca de sucesos de la entidad, además que
conserve el tema de SunOne®.
39
8.3. HISTORIAS DE USUARIO
En esta parte del proyecto se decide usar un solo formato para realizar las historias
de usuario, que tuvieron en cuenta los requerimientos de la empresa y el grupo de
trabajo.
40
Imagen 7. Historias de usuario - Primera parte. Elaboración propia
41
Imagen 8. Historias de usuario - Segunda parte. Elaboración propia
42
Imagen 9. Historias de usuario – Tercera Parte. Elaboración propia
43
9. DEFINICIÓN Y PRIORIZACIÓN DE PRODUCT BACKLOG
En esta parte del proyecto se toma cada historia de usuario y se le asigna un alias
y se ingresan en el Product Backlog para el cual se usa el formato de la imagen 10.
Como se puede apreciar, en esta parte solo se ingresaron las historias de usuario
al Product BackLog, pero estas se deben priorizar según:
● Su funcionalidad.
● Que sean independientes de otras historias.
● Que sean necesarias para la creación para un entregable para la empresa.
44
Imagen 10. Formato Product BackLog. Elaboración propia
45
Imagen 11. Priorización del Product Backlog. Elaboración propia.
46
10. SPRINT PLANNING
En esta parte se buscar organizar y estimar cuantas historias deben ir por sprint,
cuanto se demoran y su prioridad. Según la reunión del sprint Planning se acordó
que serían 5 Sprint para desarrollar el producto y que historias irían en cada uno,
además, a cada historia se le dio una prioridad y un tiempo estimado de desarrollo,
con el cual podemos calcular el tiempo estimado de cada Sprint.
En primera instancia se mostrará de que trata cada sprint antes de entrar a detalle,
como se desarrolla cada uno de los Sprints que se mencionan a continuación.
Sprint 1
● Historias Asignadas:
Inicio de sesión y recuperar contraseña (Integración con la suite de aplicaciones)
● Historias Asignadas:
Crear publicación y editar publicación.
● Historias Asignadas:
Seleccionar publicación y compartir
● Tiempo Estimado: 30 días, lunes a viernes
Sprint 4
● Historias Asignadas:
Ver adjuntos y descargar adjuntos
● Tiempo Estimado: 10 días, lunes a viernes
47
Sprint 5
● Historias Asignadas:
Ver comentarios y realizar comentarios
● Tiempo Estimado: 50 días, lunes a viernes
10.1. SPRINT 1
10.1.1. Objetivos
48
10.1.3. Cierre y entrega
Para el product Backlog No. 7 (Inicio sesión) se debía vincular la plataforma Hermes
(Entiéndase Hermes como el proyecto que se está desarrollando) dentro de la suite
SunOne®, para ello se debió usar las características de JSF se hereda la sesión del
usuario de la aplicación principal que genera el login (SunOne) para así validar los
permisos de acceso a las aplicaciones y navegar entre las distintas aplicaciones
que dicha suite contiene, en este caso Hermes.
Imagen 13. Diagrama de secuencia del product Backlog No. 7. Elaboración propia
49
Imagen 14. Inicio de sesión de SunOne para la aplicación Hermes. Elaboración propia.
50
Imagen 15. Diagrama de flujo del product Backlog No. 8 Parte 1. Elaboración propia
51
Imagen 16. Diagrama de flujo del product Backlog No. 8 Parte 2. Elaboración propia
52
Imagen 187. Vista de recuperación de contraseña. Elaboración propia
Habiendo cumplido con los objetivos iniciales del sprint se obtiene respuesta
satisfactoria por parte del director externo, respecto a la primera versión entregada,
53
se toman en cuenta tanto comentarios, como modificaciones y se da por finalizado
el sprint 1 para dar paso al siguiente incremento.
10.2. SPRINT 2
10.2.1. Objetivos
54
● Delimitar el tamaño de la publicación (debe tener un máximo de caracteres en la
publicación)
● Debe permitir todo tipo de archivos
Para el product Backlog No. 10, se realiza el listado de las publicaciones y la opción
de poder crearlas a partir de las características que nos ofrece PrimeFaces en
conjunto con Java, esto nos permite estructurar la vista deseada junto con las
funciones de redactar la publicación, inserción y eliminación de adjuntos a esta y
posteriormente, su publicación.
Imagen 20. Vista listado de publicaciones realizadas por la entidad. Elaboración propia.
55
Imagen 21. Diagrama de secuencia del product Backlog No. 10.Elaboración Propia
56
Imagen 22. Vista creación de Publicación. Elaboración propia
57
Imagen 24. Diagrama de secuencia del product Backlog No. 9. Elaboración propia
58
Habiendo cumplido con los objetivos iniciales del sprint se obtiene respuesta
satisfactoria por parte de nuestro jefe respecto a la primera versión entregada, se
toman en cuenta comentarios y modificaciones y se da por finalizado el sprint 2 para
dar paso al siguiente incremento.
10.3. SPRINT 3
10.3.1. Objetivos
59
10.3.3. Cierre y entrega
Para este Spring se diseña las respectivas vistas, para que en el momento que
ingrese a la plataforma no me realice una petición en la sesión de la plataforma
SunOne, así cualquier usuario que no posea permisos para entrar a la aplicación
pueda visualizar las publicaciones emitidas en la plataforma. Además de esto se
agrega un filtro para realizar la búsqueda personalizada de las publicaciones.
Imagen 26. Diagrama de secuencia del product Backlog No. 1. Elaboración propia.
60
Imagen 287. Vista visualización publicación. Elaboración propia
61
Habiendo cumplido con los objetivos iniciales del sprint se obtiene respuesta
satisfactoria por parte de nuestro jefe respecto a la primera versión entregada, se
toman en cuenta comentarios y modificaciones y se da por finalizado el sprint 3 para
dar paso al siguiente incremento.
10.4. SPRINT 4
10.4.1. Objetivos
62
Imagen 30. Diagrama de secuencia de los product Backlog No. 2 y 3. Elaboración Propia
63
Imagen 321. Vista listado de archivos adjuntos de la publicación. Elaboración propia
Habiendo cumplido con los objetivos iniciales del sprint se obtiene respuesta
satisfactoria por parte de nuestro jefe respecto a la primera versión entregada, se
64
toman en cuenta comentarios y modificaciones y se da por finalizado el sprint 4 para
dar paso al último incremento.
10.4.4. SPRINT 5
10.4.5. Objetivos
65
10.4.7. Cierre y entrega
66
Imagen 35. Diagrama de secuencia del product Backlog No. 4. Elaboración propia
67
Imagen 36. Diagrama de secuencia del product Backlog No. 5. Elaboración propia
68
Imagen 37. Vista comentario censurado. Elaboración propia
Habiendo cumplido con los objetivos iniciales del sprint se obtiene respuesta
satisfactoria por parte de nuestro jefe respecto a la primera versión entregada, se
toman en cuenta comentarios y modificaciones y se da por finalizado el sprint 5 por
lo tanto se da un entregable del producto final y es aceptado.
69
11. FASE FINAL
11.1.1. Entities
70
11.1.2. Session
71
11.1.3. Mail
72
11.2. ARCHIVO WAR
11.2.1. Basicas
11.2.2. Tickets
73
11.2.3. Util
74
12. CONCLUCIONES
Java Enterprise Edition es una herramienta vital para este tipo de investigaciones
gracias a su robustez y flexibilidad para este tipo de investigaciones debido a su
gran capacidad de integración con otras tecnologías y librerías, además Hibernate
nos permite realizar el mapeo objeto relacional de nuestra base de datos, de tal
forma que podemos usar las tablas como objetos y las columnas como atributos,
así poder manejar una persistencia optima en nuestra aplicación.
75
13. RECOMENDACIONES
76
14. BIBLIOGRAFÍA
Taruelo, Sandra - Miguel, Barcenilla. Java Server Faces (JSF). [En Linea]
<http://www.it.uc3m.es/spickin/docencia/comsoft/presentations/spanish/07-
08/JSF.pdf > [Citado el 12 de Noviembre de 2017]
77
Valero, Brayan – Clavijo Andres. Sistema de información integral estudiantil. 2016.
[En Línea] <http://hdl.handle.net/11349/4751> [Citado el 17 de Noviembre de 2017]
78
ANEXO 1:
MANUAL DE
DESPLIEGUE
79
MANUAL DE DESPLIEGUE
DESARROLLO DE PLATAFORMA WEB PARA LA
PUBLICACIÓN DE SUCESOS INTERNOS DE ENTIDADES
PÚBLICAS BASADO EN TECNOLOGÍA JSF
80
Requerimientos del sistema.
Para poder ejecutar la aplicación, se es necesario las siguientes características:
Hardware
Se debe tener un servidor que posea:
Procesador Quadcore de 2.5 Ghz o superior
4Gb de memoria RAM (Recomendable 8Gb)
500Gb de memoria principal
Software
Windows server 2008 en adelante o cualquier distribución de Linux
de su preferencia.
Servidor de aplicaciones WildFly 10.0.0 Final.
Gestor de base de datos Oracle 10g en adelante.
Servidor de Aplicaciones
El servidor de aplicaciones que se debe usar para el correcto despliegue de la
aplicación es Wildfly 10, lo podemos descargar de la siguiente url
http://wildfly.org/downloads/.
81
Seleccionamos el link de descarga, y esperamos a que se descargue el archivo
comprimido con extensión .zip, luego de finalizar la descarga debemos contar con
un programa que permita la descompresión de archivos, en este caso usamos
Winrar.
82
Luego de que finalice la descompresión aparecerá una carpeta con el mismo
nombre del archivo comprimido en este caso es “wildlfy-10.0.0. Final”, dentro de
esta carpeta seleccionamos la carpeta “standalone” y luego seleccionamos la
carpeta “configuration”.
83
Abierto el archivo, buscamos en las líneas de configuración el subsistema
“subsystem xmlns="urn:jboss:domain:datasources:4.0"”
84
<share-prepared-statements>true</share-prepared-statements>
</statement>
</datasource>
85
<datasource jta="true" jndi-name="java:/DS_HERMES" pool-name="DS_HERMES" use-java-
context="true" use-ccm="true">
<connection-url>”CONEXIÓN JDBC”</connection-url>
<driver>” CONTROLADOR DE BASE DATOS”</driver>
<pool>
<min-pool-size>1</min-pool-size>
<max-pool-size>5</max-pool-size>
<prefill>true</prefill>
</pool>
<security>
<user-name>”USUARIO BASE DE DATOS”</user-name>
<password>”CONTRASEÑA BASE DE DATOS”</password>
</security>
<statement>
<prepared-statement-cache-size>16</prepared-statement-cache-size>
<share-prepared-statements>true</share-prepared-statements>
</statement>
</datasource>
86
CONEXIÓN JDBC = jdbc:oracle:thin:@//192.168.5.4:1521/DBMASTER
CONTROLADOR DE BASE DATOS = Oracle
USUARIO BASE DE DATOS = C##SDIS2017_HERMES
CONTRASEÑA BASE DE DATOS = SDIS2017_HERMES
Después de esta configuración debemos descargar el JDBC de acuerdo al motor
de bases de datos que se va a implementar, en este caso usaremos el JDBC de
oracle “ojdbc6” el cual lo descargaremos del siguiente vínculo:
https://mvnrepository.com/artifact/com.oracle/ojdbc6/11.2.0.4.0-atlassian-hosted.
87
que dichas carpetas no se encuentren creadas con anterioridad, finalmente, dentro
de esta ruta se añade el archivo JDBC descargado y se crea un archivo llamado
“modules.xml” el cual debe incluir lo siguiente:
88
<driver name="oracle" module="com.oracle.ojdbc6">
<driver-class>oracle.jdbc.OracleDriver</driver-class>
</driver>
En este caso se deben cambiar los siguientes parámetros por la configuración
establecida en el motor de base de datos a utilizar:
89
Allí buscamos la opción “Community Downloads” que es la version open source
y buscamos la version “primefaces-6.0.jar” y descargamos en el link que está en
la columna “Binary”
90
descargado y se crea un archivo llamado “modules.xml” el cual debe incluir lo
siguiente:
91
Luego debemos proceder a descargar una librería llamada “Prettyfaces” la cual
debemos descargar la version “3.3.3” que podemos encontrar en el siguiente
enlace: https://mvnrepository.com/artifact/com.ocpsoft/prettyfaces-jsf2/3.3.3
92
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="org.ocpsoft">
<resources>
<resource-root path="prettyfaces-jsf2-3.3.3.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
<module name="javax.annotation.api"/>
<module name="javax.faces.api"/>
<module name="org.slf4j.impl"/>
<module name="org.slf4j"/>
</dependencies>
</module>
93
Luego debemos proceder a descargar una librería llamada “FileUpload” la cual
debemos descargar la version “1.3.3” que podemos encontrar en el siguiente
enlace:
https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload/1.3.3
94
<?xml version="1.0" encoding="UTF-8"?>
<module xmlns="urn:jboss:module:1.3" name="org.apache.commons.fileupload">
<properties>
<property name="jboss.api" value="private"/>
</properties>}
<resources>
<resource-root path="commons-fileupload-1.3.1.jar"/>
</resources>
<dependencies>
<module name="javax.api"/>
</dependencies>
</module>
95
Después de realizar las configuraciones anteriores buscamos la carpeta
“SunOneApp” dentro de esta buscamos una carpeta llamada “dist” en la cual
existe un archivo “SunOneApp.ear” este archivo es el que contiene empaquetadas
las dos aplicaciones, este archivo es el que usaremos para realizar el despliegue
dentro de nuestro servidor de aplicaciones.
NOTA: La aplicación solo podrá ser ejecutada si se cuenta con las dos aplicaciones
“SunOne y Hermes” y estas se encuentren dentro de la carpeta “SunOneApp” la
cual contiene el Archivo de Aplicación Empresarial (EAR) de la suite.
96
Ya en la ruta, copiamos el archivo “SunOneApp.ear” y nos dirigimos nuevamente
a la carpeta “wildlfy-10.0.0. Final”, dentro de esta carpeta seleccionamos la
carpeta “standalone” y luego seleccionamos la carpeta “deployments”
encontrándonos dentro de la carpeta pegamos el archivo “SunOneApp.ear”.
97
98
La consola mostrara el “log” del servidor, si la última línea mostrada en el “cmd”
aparece como en la imagen podremos dirigirnos a algún explorador (Chrome,
Mozilla, Interner Explorer, Edge, etc...) y colocar la siguiente ruta en la barra de url:
http://localhost:8080/hermes/
99
ANEXO 2:
MANUAL DE USUARIO
100
MANUAL DE USUARIO
DESARROLLO DE PLATAFORMA WEB PARA LA
PUBLICACIÓN DE SUCESOS INTERNOS DE ENTIDADES
PÚBLICAS BASADO EN TECNOLOGÍA JSF
101
Manual de Usuario
Hardware
Se debe tener un computador que posea:
Procesador de 1.2 Ghz o superior
2Gb de memoria RAM
Conexión estable a internet
Software
Cualquier versión de Linux o Windows
Navegador de su preferencia
Para el correcto funcionamiento de la aplicación Hermes se puede utilizar con los
siguientes exploradores: Google Chrome, Mozilla Firefox, Microsoft Edge e Internet
Explorer, este último debe tener la versión 10 o superior.
https://186.31.64.11:7080/hermes
En este caso no existen publicaciones, por lo tanto, si deseo realizar una publicación
debo seleccionar la opción de la parte superior derecha que dice Iniciar:
102
Después de seleccionar esta opción nos abrirá una nueva pestaña con el inicio de
sesión del a aplicación SunOne® la cual se encarga de realizar la administración de
cuentas.
103
Luego de iniciar sesión seleccionamos la opción en la parte superior izquierda que
dice Publicaciones, esta nos redirigirá al listado de publicaciones realizadas por
todos los usuarios.
104
En este formulario podemos ingresar:
Asunto: El asunto de la publicación que es una breve descripción del tema a tratar
Adjuntos: Los archivos adjuntos a la publicación los cuales que pueden contener
complementos a la publicación a realizar
105
Después de seleccionar los archivos presionamos el botón Abrir ubicado en la parte
inferior derecha del dialogo, este dialogo se cerrara y se visualizara la lista de
archivos adjuntos bajo el botón de Seleccionar…
El botón con el icono del ojo nos permite visualizar el adjunto siempre y cuando sea
una imagen o un archivo PDF, de lo contrario se descargara el adjunto.
106
El botón con el icono del bote de basura permite eliminar el archivo para que no sea
adjuntado a la publicación.
107
Después de publicar si recargamos nuevamente la parte pública se verá la nueva
publicación.
Allí podremos ver cada publicación realizada, cada una tendrá el asunto en la parte
superior izquierda del contenedor, en la parte superior derecha estará la fecha de
publicación junto con la imagen de la cuenta de la persona que publico, además si
se pasa el mouse sobre la imagen se ampliara un poco y se verá el nombre y correo
electrónico de quine público.
108
Luego de esto en la parte central izquierda podremos visualizar una imagen
resumen, la cual debe ser una imagen incluida en los adjuntos (si no hay adjuntos
o imágenes en los adjuntos se dejara por defecto el icono de la aplicación), debajo
de la imagen se encuentran dos iconos uno de Facebook y otro de Twitter que
permiten compartir la publicación en redes sociales.
109
Después de dar clic en el link Ver Todo… podemos observar solamente la noticia,
con un listado de los adjuntos y el listado de comentarios, estos dos listados estarán
minimizados.
Para ampliar cualquiera de los dos listados en la parte derecha del contenedor
deseado hay un botón con un signo + que presionamos para ampliar.
110
Para ver o comentar la publicación presionamos en botón + en el contenedor que
dice Comentarios (No de comentarios)
Allí podremos visualizar todos los comentarios y un campo de texto junto con un
botón que dice Comentar, en este caso no hay comentarios por lo cual aparece
vacío, si deseamos comentar escribimos en el campo de texto el comentario y
seguido de esto presionamos el botón Comentar
111
Después de comentar se visualizará el comentario con el nombre de la persona que
comento (Si no está logueada la persona por defecto el nombre es Anónimo)
también se visualizara la fecha en que se realizó la publicación y bajo esto se verá
el comentario realizado.
112
Después de presionar el botón comentar, el sistema validara el comentario con el
listado de obscenidades y malas palabras, si encuentra alguna coincidencia,
desplegara un mensaje de confirmación si se desea comentar con el mensaje
modificado ya que se hallaron malas palabras.
113
Después de seleccionar la publicación a editar se mostrará el formulario diligenciado
anteriormente, aunque con algunos cambios, ya no se mostrara el listado de
aplicación sino el estado de la publicación, además se muestra una lista de los
archivos adjuntos a la publicación que muestra el nombre del archivo, fecha en la
que se adjuntó, y una serie de botones.
Nota: Si se elimina alguno de los archivos con el botón de la equis que están listados
la actualizara automáticamente la cantidad de adjuntos, el botón actualizar realizara
los cambios del asunto, el estado, la descripción.
114
ANEXO 3:
HISTORIAS DE USUARIO
115
Desarrollo ágil: Historias de usuario y criterios de aceptación
Con la finalidad de
Como un conocer todas los En caso que se
Necesito ver la Cuando se El sistema mostrará el
Particular y un comunicados Seccion de necesite ver las
1 sección de 1 ingresa a la listado de publicaciones
usuario de la presentados a la publicaciones publicaciones de la
publicaciones aplicación Hermes realizados por la entidad
institución comunidad entidad
interesada
Cuando se
Como un Con la finalidad de En caso que se
Necesito ver selecciona en la El sistema mostrara el
Particular y un saber si la Ver archivos necesite ver los
2 archivos 1 parte derecha de listado de archivos
usuario de la publicación contiene adjuntos archivos adjuntos a
adjuntos la sección adjuntos a la publicación
institución archivos adjuntos la publicación
Archivos
En el listado de
En caso que se
Como un Necesito archivos en la El sistema realizara
Con la finalidad de Descargar necesite descargar
Particular y un descargar parte derecha se inmediatamente una
3 descargar el archivo 1 archivos los archivos
usuario de la archivos da click en el descarga del archivo
adjunto adjuntos adjuntos a la
institución adjuntos icono referencia a seleccionado
publicación
una imagen
Con la finalidad de
Cuando se
Como un visualizar todos los En caso que el El sistema mostrara el
selecciona en la
Particular y un Necesito ver comentarios que público necesite ver listado de comentarios
4 1 Ver comentarios parte derecha de
usuario de la comentarios han hecho otros comentarios de la desde el más reciente
la sección de
institución usuarios dentro de publicación hasta el más antiguo
Comentarios
la aplicación
116
En el listado de
comentarios en la
En caso que el El sistema validara el
cabecera se
Realizar público necesite comentario verificando
1 encuentra un
comentarios realizar comentarios que no contenga
campo de texto y
a la publicación palabras obscenas
Con finalidad de un botón de
Como un participar en la comentar
Particular y un Necesito realizar dicusión de la
5 Si el comentario
usuario de la comentarios publicación del (Si el comentario
institución gusto de los El usuario observara contiene lenguaje
contiene El sistema valida si se
usuarios un dialogo de obsceno el
palabras acepta o cancela el
advertencia donde sistema
obscenas) comentario y lo publica
2 podrá aceptar o desplegara un
Aceptar o modificando las
cancelar el dialogo donde
cancelar palabras obscenas por
comentario podrá aceptar o
comentario asteriscos
modificado cancelar el
modificado
comentario
Cuando se
Con la finalidad de En caso que el El sistema abrirá una
Como un selecciona en la
Necesito que el usuario público necesite nueva pestaña que
Particular y un Compartir en parte izquierda los
6 compartir en quiera divulgar la 1 compartir la permite compartir un link
usuario de la redes sociales iconos de
redes sociales publicación en sus publicación por referenciando la
institución Facebook o
redes sociales Facebook o Twitter publicación
Twitter
117
En la opción de
Necesito que los iniciar sesión, hay
usuarios de la un link que El sistema envía un
En caso de que el
aplicación Con la finalidad de redirige a un correo electrónico con la
Como un usuario Recuperar usuario desee
8 puedan incluir la plataforma 1 formulario donde nueva contraseña del
de la institución contraseña recuperar la
recuperar la en la suite se ingresa el usuario que es
contraseña
contraseña correo para controlado por SunOne
desde SunOne recuperar la
contraseña
Al iniciar sesión en
En caso que el la parte superior El sistema redirige al
Sección de usuario necesite izquierda se usuario a un listado de
1
Con la finalidad de publicaciones seleccionar una selecciona la publicaciones realizadas
corregir publicación opción por el usuario
Como un usuario Necesito editar
9 publicaciones que publicaciones
de la institución una publicación
en un momento
hayan quedado mal En caso que el selecciona alguna
el sistema redirige a la
Editar usuario necesite de las
2 parte de edición de las
Publicación editar una publicaciones que
publicaciones
publicación desee editar
En el listado de
En caso que el El sistema redirige al
publicaciones se
Iniciar usuario necesite usuario a un formulario
1 selecciona el
publicación iniciar la creación de donde se creara la
botón crear
la publicación publicación
publicación
Con la finalidad de
realizar En el formulario se
Como un usuario Necesito crear
10 publicaciones a toda solicita el Asunto,
de la institución una publicación
la comunidad Proyecto al que
interesada En caso de que el
está relacionada El sistema permite la
Completar usuario desee
la publicación, descripción en formato
2 formulario de completar el
descripción y se html y permite adjuntar
publicación formulario para crear
pueden archivos desde el cliente
la publicación
seleccionar
archivos para
adjuntar
118
El sistema valida que los
En caso de que el En el formulario,
campos obligatorios
Crear usuario complete el en la parte inferior
3 estén llenos y realiza la
Publicación formulario y desee se selecciona la
inserción de la
publicar opción de publicar
publicación
119
ANEXO 4:
PRODUCT BACKLOG
120
Pila de Producto (Product Backlog)
Identificado
Dimensión / Iteración
r (ID) de la Enunciado de la Historia Alias Estado Prioridad
Esfuerzo (Sprint)
Historia
7 Como un usuario de la institución Necesito que Inicio Sesion Hecho 3 semanas 3 Alta
los usuarios de la aplicación puedan iniciar
sesión desde SunOne Con la finalidad de
incluir la plataforma en la suite
8 Como un usuario de la institución Necesito que Restaurar Password Hecho 2 semanas 2 Alta
los usuarios de la aplicación puedan recuperar
la contraseña desde SunOne Con la finalidad
de incluir la plataforma en la suite
121
4 Como un Particular y un usuario de la Ver Comentarios hecho 2 semanas 2 Alta
institucion Necesito ver comentarios Con la
finalidad de visualizar todos los comentarios
que han hecho otros usuarios dentro de la
aplicación
5 Como un Particular y un usuario de la Realizar Comentarios Hecho 4 semanas 4 Alta
institucion Necesito realizar comentarios Con
finalidad de participar en la dicución de la
publicación del gusto de los usuarios
122
123