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