Skip to content

jmcarrascal/springMongoDemo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

FormBuilder

Es una herramienta que permite el diseño de formularios desde una interfaz gráfica a nivel funcional, generando un metalenguage el cual esta desarrollado a partir de un SLA que comparte con el FormRender.

Índice

  1. Objetivos del documento

  2. Introducción

  3. Tecnología

  4. Vista Lógica

  5. Compilación, Instalación y Ejecución


  1. Objetivo del documento (Arriba)

Presentar una visión general de las características de la aplicación FormBuilder y sus aspectos técnicos de mayor relevancia, especificando las características técnicas y de arquitectura que tiene la plataforma, entre ellos los requerimientos de sistema necesarios para poder instalar y ejecutar la aplicación.


  1. Introducción (Arriba)

Este producto está diseañado con el objetivo que una persona sin conocimientos tecnicos genere un formulario y lo pueda publicar para su posterior carga.


  1. Tecnología (Arriba)

Es un sistema interface de usuario es facilitada mediante el uso de tecnología web compatible con las últimas versiones de los Browsers de Internet (Internet Explorer, Firefox, Chrome). El uso de esta tecnología permitirá al sistema ser accesible desde cualquier lugar que cuente con conexión a Internet, podrá ser instalado y desplegado en servidores propios, externos o en “Clouds” lo que facilita la escalabilidad de la aplicación en caso de ser necesaria mayor carga de trabajo.

El sistema está construido utilizando plataforma y estándares de desarrollo JEE 6 (Java Enterprise Edition). Como implementación de este estándar se utiliza el stack tecnológico porvisto por JBoss 7.1.0 https://www.jboss.org/jbossas/ cuyas implementaciones principales son las siguientes:

1.1
Technología/Especificación JBoss 7.1
Java EE[JSR-151,244,316] 6.0
Java Servlet [JSR-154, 315] 3.0
Angular JS / HTML5 2.0
Plugin Spring - Mongo 1.1
Spring 3.4.2 3.1
JavaMail [JSR-919 ] 1.4
Java Message Service (JMS) [JSR-914]
Common Annotations for the Java Platform [JSR-250] 1.1
Java API for RESTful Web Services (JAX-RS) [JSR-311] 1.1
Contexts and Dependency Injection for Java (Spring) 1.0

La persistencia de la estructura de los formularios se realiza sobre una base de datos documental [MongoDB] (http://www.mongodb.org/)


  1. Vista Lógica (Arriba)

Angular JS / HTML5
Servicios
String Rest Service
Spring - Mongo Templates

###Capa Web (Arriba) El objetivo de la capa web es proveer una interfaz de acceso al sistema para el usuario final. En esta capa se utiliza la implementación de Angular JS / HTML 5 para construir las interfaces a usuarios.

###Capa Servicios (Arriba) Esta capa brinda un nivel de abstracción para acceso a la lógica de la aplicación, proveyendo así un conjunto de servicios uniformes y transparentes a los clientes mediante el uso Spring. Esta tecnología permite ofrecer servicios y brinda facilidades de integración entre la capa de presentación, los servicios de negocio y los módulos restantes.

###Capa Transaccional (Arriba) Su objetivo es brindar de una manera homogénea y transparente, mediante el uso del estándar de persistencia JPA2, el acceso a la información al resto de la aplicación independizándolo de la base de datos física con la que interactúa.


  1. Compilación, Instalación y Ejecución (Arriba)

En ésta sección se detalla todo lo necesario para compilar, instalar o deployar y ejecutar la plataforma. Se asume que los siguientes componentes, necesarios para dichas tareas, se encuentran instalados y corriendo normalmente en el sistema operativo.

####5.1 Listado de componentes necesarios para poder ejecutar la aplicación:

####5.2 Requisitos Mínimos:

Es necesario tener instalados (al menos) 2Gb de ram.

####5.3 Instalación y Configuración de entorno (Arriba)

Agregar al archivo <jboss-as-7.1.0.Final>\standalone\configuration\standalone.xml

En la sección la siguiente entrada, especificando usuario y password correspondiente para habilitar el Data Source correctamente en Jboss:

	...
	<datasources>
	...	
		<datasource jta="true" jndi-name="java:jboss/datasources/FormRenderDS" pool-name="FormRenderDS" enabled="true" use-java-context="true" use-ccm="true">
            	<connection-url>jdbc:postgresql://localhost:5432/formrender</connection-url>
      	  	<driver-class>org.postgresql.Driver</driver-class>
            	<driver>postgresql</driver>
      	  	<security>
			<user-name>${username}</user-name>
      	      		<password>${password}</password>
          	</security>
	</datasource>  
	...              
	<drivers>    
	...                
		<driver name="postgresql" module="org.postgresql">
			<xa-datasource-class>org.postgresql.xa.PGXADataSource</xa-datasource-class>
		</driver>
	...    
	</drivers>

#####5.3.1 DataSource/DB

  • Deberemos instalar primero el driver de la base de datos relacional a la plataforma del Application Server, para esto deben crear 2 carpetas (postgres y main):

      <jboss-as-7.1.0.Final>\modules\org  (debiendo quedar la siguiente estructura)
    
      <jboss-as-7.1.0.Final>\modules\org\postgresql\main 
    
  • Dentro de la carpeta main copiar el archivo postgresql-9.1-902.jdbc4.jar y crear un archivo module.xml cuyo contenido debe ser:

      <?xml version="1.0" encoding="UTF-8"?>
      <module xmlns="urn:jboss:module:1.0" name="org.postgresql">
      	<resources>
      		<resource-root path="postgresql-9.1-902.jdbc4.jar"/>
      	</resources>
      	<dependencies>
      		<module name="javax.api"/>
      		<module name="javax.transaction.api"/>
      	</dependencies>
      </module>
    
  • Crear base de datos BD "formrender" utilizando el cliente de preferencias, si el esquema (base de datos) no se encuentra creado, la aplicación no levantará correctamente.

  • Ejecutar los scripts de estructura y datos en la BD creada, estos están ubicados en FormRender/sql/ y son:

    • FormRender/sql/estructuras.sql (crea las tablas en la bd)
    • FormRender/sql/formulariosCNC.sql (inserción de formularios de CNC)

####5.4 Descarga, Compilación y Ejecución (Arriba)

  • Este proyecto usa git para control de versiones y esta disponible en github. Para bajarse el proyecto, ejecutar

      git clone git@cluster.softwarepublico.gob.ar:cnc2220.git
    
  • Configurar path destino de los archivos de especificacion de formularios (.xml) en archivo de propiedades __FormRender\src\main\resources\formrender.properties __

      xmlForms.destination (Ej. xmlForms.destination=/var/cnc)	
    
  • Configurar ip/port server de donde se tomarán listas externas tales como geográficas y prestadores en archivo de propiedades. Se debe tener en cuenta si usa o no encriptación y si este tiene un contexto habilitado diferente al / (ROOT)

      FormRender\src\main\resources\formrender.properties	
    
    
      list.remote.host (Ej. list.remote.host=54.232.16.128)
      list.remote.port (Ej. list.remote.port=8080)
      list.remote.secure (Ej. list.remote.secure=false)
      list.remote.context (Ej. list.remote.context=/)
    

-Estos mismos pasos deben realizarse para configurar también el servidor de persistencia de persistencia bajo el prefijo submit.remote.

  • Situarse en la raíz del directorio del código y ejecutar

    $>mvn clean package

Esto genera un archivo war en "FormRender/target/FormRender.war"

  • Deployar el archivo "FormRender.war" generado, para ello en JBoss 7.1.0 copiar el archivo al directorio <jboss-as-7.1.0.Final>\standalone\deployments

  • Iniciar el server (standalone.bat en windows o standalone.sh unix)

  • Acceder desde un browser a la dirección.

    http://localhost:8080/FormRender/

La página de inicio muestra un listado de los formularios xml y html (columnas URL y XML respectivamente). Haciendo click en cada uno de ellos se pueden visualizar.


About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages