MARMITA. Arquitectura

De EduWiki
Revisión de 11:15 26 sep 2019 por Cap04c (Discusión | contribuciones) (Objetivos)

Saltar a: navegación, buscar

Marmita. Arquitectura

Volver a MARMITA

Descripción

Documenta los distintos modelos de arquitectura software que se utilizan en las aplicaciones. También se documentan las tecnologías utilizadas para facilitar el desarrollo de aplicaciones.

Se trabaja en dos áreas: Arquitectura de los Sistemas de Información y Arquitectura de las aplicaciones.

Se establecerán recomendaciones de uso de los sistemas de información horizontales, las herramientas horizontales y las infraestructuras software.

Por último, se contemplan directrices y recomendaciones sobre integración de sistemas de información, utilizando los conceptos de arquitectura basada en servicios.


Objetivos

  • Conocer las distintas arquitecturas existentes.
  • Homogeneizar la arquitectura de aplicaciones en cada tecnología.
  • Uso y reutilización de los sistemas de información.
  • Proporcionar un modelo de interoperabilidad de las aplicaciones y los sistemas de información.
  • Documentar las distintas tecnologías usadas en el desarrollo de las aplicaciones.


Distinguimos dos partes en la arquitectura:

  • Arquitectura de los sistemas de información.
  • Arquitectura tecnológica de las aplicaciones.


Arquitectura de sistemas de información

Se indican los sistemas que afectan al desarrollo de aplicaciones.

Se muestran los componentes de servicio, y se detallas los servicios existentes, independientemente de las tecnologías o entornos en los que se utilicen.


Componentes

El marco de desarrollo de Educación es complejo debido a la evolución de los programas y a la gran cantidad de aplicaciones existentes


MarcoDesarrollo.bmp

Se definirán los elementos que se han de tener, tanto en el entorno de puesto de trabajo como en el entorno de servidor.


Elemento de lista de viñetas

Herramientas de desarrollo para el entorno de servidor

En el entorno de servidor se utilizarán las siguientes herramientas:

  • Gestión de tareas: CLIP, GLPI y redmine
  • Control de versiones: SVN y GIT
  • Página web para control de versiones: SCMMANAGER y GITLAB
  • Integración continua: Jenkins, para proyectos Java y Angular
  • Despliegue: NATALIA para despliegue de paquetes PL/SQL y Scripts de BBDD, Javato y Oracle*Forms
  • Repositorio de paquetes: Nexus (Angular) y Artifactory (Java). Están conectados. Recomendable apuntar a NEXUS.
  • Control de calidad del código: SONAR
  • Pruebas funcionales: SELENIUM
  • Servidor web IIS 6.0
  • Servidor web Apache
  • Servidor Tomcat


Sistemas de autenticación

Los sistemas de autenticación permiten garantizar la identidad de una persona. Algunas aplicaciones tienen uno o más de un sistema de autenticación para poder acceder. Indicamos a continuación los que se tienen en la Consejería, y el tipo de usuarios que lo utiliza.

Es necesario diferenciar autenticación y autorización:

  • Autenticación: Permite garantizar la identidad de una persona. Hay muchas formas: certificado digital, cl@ve, login y contraseña, etc.
  • Autorización: consiste en dar acceso a una serie de recursos a un usuario o sistema (para ello, el usuario o el sistema previamente tendrá que haberse autenticado).


Directorio LDAP

Directorio común donde almacenar el login y la contraseña, como repositorio de información de usuarios. Con esto conseguimos que el usuario tenga el mismo login y la misma contraseña para todas las aplicaciones que lo utilicen.

El directorio LDAP se basa en OpenLDAP. Tiene múltiples fuentes de orígenes de datos que confluyen en el directorio.


CAS. Servidor de autenticación

El CAS es un servicio que permite la autenticación a usuarios de la Consejería.  

Es un procedimiento de autenticación que habilita a un usuario para acceder a distintas aplicaciones web (en distintos dominios y en distintos servidores) con hacer login una única vez.
En general, cuando un usuario se conecta a una de las aplicaciones integradas en el CAS, el sistema comprueba si está autenticado. Si no lo está, lo redirige a la pantalla del servidor de autenticación. Si la autenticación es correcta el sistema de autenticación, en este caso CAS, vuelve a redirigir al usuario a la página a la que quería acceder en un primer momento.
Para el desarrollo de aplicaciones supone que despreocuparse del mantenimiento de la seguridad y de disponer de un formulario de login en cada una de las aplicaciones web que se desarrollen, simplemente será necesario hacer la comprobación de si el usuario ya está registrado.


Ventajas.

  • Permite crear un sistema único de acceso, de forma que:
  • Evita a las aplicaciones tener que implementar un sistema de autenticación.
  • Permite modificar la autenticación de forma transparente, al enviarlo a un servidor externo.
  • Permite Single Sign On, es decir, que muchas aplicaciones diferentes incluso desarrolladas en lenguajes diferentes no tengan que volver a pedir login y contraseña para acceder.

Directorio activo de Microsoft

Se utiliza para aplicaciones que se encuentran bajo el entorno de aplicaciones de Citrix.  La autenticación se realiza en AD, las contraseñas se sincronizan con el directorio LDAP.


GSuite Murciaeduca de Google

Google Apps. Aplicación en la nube de Google. Se sincronizan las contraseñas.

Existen dos diferentes, uno para profesores y otro para alumnos

  • Profesores: murciaeduca.es
  • Alumnos: alu.murciaeduca.es

Office365 Murciaeduca de Microsoft

Office 365, aplicación en la nube de Microsoft. Se sincronizan las contraseñas.

Existen dos diferentes, uno para profesores y otro para alumnos.

  • Profesores: aulaxxi.murciaeduca.es
  • Alumnos:    aula365.murciaeduca.es


Sistemas de gestión documental

Para el archivado de documentos generados. Hay varios en función de las aplicaciones

Alfresco

Fundamentalmente para TOL (Tramites On Line)

FTP

Servidor de ficheros para RRHH

Servidor de ficheros para portales Web

Sistemas de bases de datos

Oracle

Base de datos en la que se encuentra la gran mayoría de la información. La práctica totalidad de los proyectos de desarrollo del Servicio usan Oracle como Sistema Gestor de Base de Datos.

Access

Ampliamente extendida en muchos departamentos. Se utiliza para aplicaciones departamentales a las que el Servicio de Informática no da soporte. 

No está recomendada ni potenciado su utilización.

MySql

Base de datos que se utiliza para diversos aplicativos que la utilizan por defecto, como Moodle, o servidores de aplicaciones.

Postgres

Base de datos que se utiliza para diversos aplicativos que la utilizan por defecto, como Moodle, o servidores de aplicaciones.

Sistemas servidores web

Hay varias granjas de servidores web

Servidores web de aplicaciones Java

Servidores web de aplicaciones Angular

Sistemas servidores de aplicaciones

Hay varias granjas de servidores de aplicaciones. Se basan en Tomcat

Granja de servidores sin conexión a Oracle

Para aplicaciones que no necesitan conexión directa o que lo hacen a través de servicios WEB o REST

Granja de servidores con conexión a Oracle por JDBC

La conexión debe ser la del servidor

Granja de servidores con conexión a Oracle por OCI/JNDI

La conexión debe ser la del servidor

Sistemas propios de desarrollo

Gestión de tareas. Redmine

http://eduwiki.murciaeduca.es/wiki/index.php/Redmine

Integración continua. Jenkins

Calidad en el código. Sonar

Traspaso de paquetes y FORMS. Natalia

Arquitectura tecnológica de las aplicaciones

La gran mayoría de las aplicaciones trabajan en tres capas: presentación, negocio y datos.

Capa de presentación

Donde se encuentran los servidores web. En esta misma capa están los servidores FORMS

Capa de negocio

Se encuentran la capa de servicios web, de servicios rest.


Capa de datos

Donse se encuentran los servidores de base de datos


Documentación

Configuracion de servidor

Certificados publicos de la accv y murciaeduca


Instalación de node en linux/redhat curl -sL https://rpm.nodesource.com/setup | bash - yum install -y nodejs