Download El presente documento tiene como finalidad dar

Document related concepts
no text concepts found
Transcript
Versión: 1.0
Fecha Versión: 05 de junio de 2014
Arquitectura Para Desarrollo de Aplicaciones MINEDUC
Definición de Arquitectura Mineduc
Versión: 1.0
Fecha Versión: 05 de junio de 2014
Arquitectura Para Desarrollo de Aplicaciones MINEDUC
1. Introducción.
El presente documento tiene como finalidad dar a conocer la arquitectura de construcción de
aplicaciones (tanto JAVA como PHP) con la que se debe trabajar en Mineduc. Adicionalmente se
pretende describir en cual situación se puede usar PHP en preferencia sobre JAVA. La idea
principal es usar el lenguaje JAVA para desarrollar los proyectos en MINEDUC pero en algunos
casos es necesario, por razones de precio, oferta de mercado o empresas con poco conocimientos
en Java, de desarrollar en PHP en vez de Java. En primera instancia se definirá la arquitectura Java
para luego pasar a la arquitectura PHP.
2. Consideraciones generales
En Mineduc se definió que los nuevos componentes tecnológicos tienen una fuerte orientación
hacia las tecnologías open source, esto pues permite obtener resultados similares o mejores a los
de infraestructura de software de pago, además de cumplir con el reciente proyecto de acuerdo
que insta a los ministerios a privilegiar software open source.
Todas las aplicaciones deben mantener el código en el repositorio SVN de MINEDUC bajo la norma
descrita en la wiki interna, ninguna aplicación puede quedar fuera de esto, puesto que la
infraestructura dispuesta está configurada para utilizar el servidor svn en los deploys a producción.
La base de datos oficiales que se utiliza en Mineduc son:
o
o
o
o
DB2 9.7 fixpack 5
Oracle: 10g o superior
MySql 5.1
Posgress 9.3
Para los nuevos desarrollos sólo está permitido la utilización de MySql y Posgress, los restantes
motores solo están disponibles para interactuar con bases de datos ya creadas en Mineduc.
2
Versión: 1.0
Fecha Versión: 05 de junio de 2014
Arquitectura Para Desarrollo de Aplicaciones MINEDUC
3. Arquitectura de Hardware aplicaciones JAVA
La aplicaciones serán montadas sobre OS Centos versión 6.2, la versión de Java es Java. 1.6
(puede sufrir modificaciones) y la versión de tomcat es 6 (puede sufrir modificaciones),
adicionalmente se está utilizando la versión de apache 2.2.15 (puede sufrir modificaciones).
La infraestructura para montar aplicaciones JAVA está diagramada de la siguiente manera:
3
Versión: 1.0
Fecha Versión: 05 de junio de 2014
Arquitectura Para Desarrollo de Aplicaciones MINEDUC
4. Arquitectura de Software aplicaciones JAVA
En Mineduc desde el año 2013 se definió los lineamientos para la construcción de nuevas
aplicaciones en lenguaje JAVA. Mineduc cuenta con un Framework de desarrollo (basado en
Spring 3.1.1), el cual deberá ser utilizado de manera obligatoria por las empresas. El framework
está dispuesto como un proyecto tipo (archetype) el cual engloba los componentes expuesto en el
recuadro inferior.
Todas nuevas aplicaciones están orientadas bajo patrón mvc, acá destaca el uso de la tecnología
Spring MVC. El patrón de arquitectura MVC es un patrón que define la organización independiente
del Modelo (Objetos de Negocio), la Vista (interfaz con el usuario u otro sistema) y
el Controlador (controlador del workflow de la aplicación). De esta forma, dividimos el sistema en
tres capas.
Dentro de las tecnologías que destacan están el uso de Maven para gestionar el ciclo de vida del
proyecto, además, como herramienta ORM se utiliza Ibatis. Para el trabajo con Test Unitarios se
debe utilizar Junit.
Como herramienta de integración continua se utiliza Jenkins. La Integración Continua es una
práctica de desarrollo de software donde los miembros de un equipo integran su trabajo con
frecuencia. Cada una de estas integraciones es verificada por una construcción automática que
incluye pruebas para detectar errores tan rápido como sea posible así como instalación automática
en ambientes para pruebas.
Adicionalmente existen herramientas de revisión automática de código en las cuales utilizando
sonarqube se genera un informe de nivel de cumplimiento de reglas de código definidas en
MINEDUC. Con esto se genera una política que obliga a que todos los proyectos bajo el
framework Mineduc deben cumplir sobre el 97 % de las reglas antes mencionadas.
A continuación se explica el ciclo de vida del software en ambiente JAVA.
4
Versión: 1.0
Fecha Versión: 05 de junio de 2014
Arquitectura Para Desarrollo de Aplicaciones MINEDUC
El resumen de las tecnologías utilizadas en la plataforma JAVA se encuentra el siguiente cuadro.
Tecnología
Java
Sistema Operativo
CentOS 6.2
Servidor Aplicación
Tomcat 6 (JDK
1.6)
Vers. código
SVN
Herramienta para desarrollo
(IDE)
Eclipse Juno
Framework
Spring 3.1.1
Repositorio de librerías
MAVEN 2.5
Patrón de aplicaciones
MVC
Plantillas Presentación
Freemarker
Reportes
BIRT
Seguridad
Spring Security
Test Unitarios
Junit 4.8.2
ORM
IBATIS 2.3.4
Integración Continua
Jenkins
Revisión Código
SONAR
5
Versión: 1.0
Fecha Versión: 05 de junio de 2014
Arquitectura Para Desarrollo de Aplicaciones MINEDUC
5. Capa web
Para el diseño utilizado en las aplicaciones a desarrollar las empresas se deberán regir por el
entregado por Mineduc (static.mineduc.cl), pudiendo de alguna manera contribuir con mejoras o
recomendaciones.
Adicionalmente como framework de JavaScript se deberá utilizar JQuery versión 1.10.2 estos
componentes ya se encuentran disponibles en al archetype base para la creación de nuevos
proyecto.
6