Introducción 1
Objetivo
1. Capítulo I: Contexto
1.1. Historia: ¿Cómo llegamos a dónde estamos?
1.1.1. Prefacio: ¿Qué es la nube de servicios de la UNLP?
1.1.2. El génesis: aplicaciones como islas
1.1.3. Primera iteración: eliminando la repetición y normalizando los datos
1.1.4. Segunda iteración: haciendo dinámicas las fuentes de
datos
1.1.5. Tercera iteración: unificando el acceso a la información y desacoplando las componentes
1.1.5.1. Arquitectura de servicios web basada en REST
1.1.5.2. El diseño final: el Integrador
1.1.5.3. El Integrador: implementación
1.1.6. Cuarta iteración: este trabajo
2. Capítulo II: Marco teórico
2.1. Historia del procesamiento distribuido
2.2. Arquitecturas Orientadas a Servicios
2.3. La evolución de SOA: Microservicios
2.4. ESB
2.4.1. El ESB como mediador
2.4.2. El ESB como interceptor
2.5. REpresentational State Transfer (REST)
2.5.1. Derivación de REST
2.5.1.1. Estilo base
2.5.1.2. Cliente-Servidor
2.5.1.3. Sin estado
2.5.1.4. Cache
2.5.1.5. Interfaz uniforme
2.5.1.6. Sistema en capas
2.5.1.7. Código bajo demanda
2.5.2. Elementos de la arquitectura REST
2.5.2.1. Elementos de datos
2.5.2.2. Conectores
2.5.2.3. Componentes
3. Capítulo III: Análisis de tecnologías
3.1. Para los servicios
3.1.1. Ruby on Rails
3.1.1.1. Un framework, muchas librerías
3.1.1.2. El costo de Rails
3.1.1.3. rails --api
3.1.2. Sinatra
3.1.2.1. Sencillez compleja
3.1.3. Conclusión
3.1.3.1. En términos de performance
3.1.3.2. Desde el punto de vista del desarrollador
3.2. Para la estructura de los servicios
3.2.1. HAL
3.2.1.1. Media type dedicado
3.2.1.2. Diseño sencillo y enfocado
3.2.1.3. El modelo
3.2.1.4. Madurez y actualidad
3.2.2. JSON API
3.2.2.1. Media type dedicado
3.2.2.2. Estructura general de los documentos JSON
API
3.2.2.3. Los recursos
3.2.2.4. Obtención de recursos
3.2.2.5. Obtención de relaciones
3.2.2.6. Inclusión de recursos relacionados
3.2.2.7. Selección de campos
3.2.2.8. Especificación de orden
3.2.2.9. Paginación de colecciones
3.2.2.10. Filtrado de resultados
3.2.3. Conclusión
3.3. Para el nodo central
3.3.1. Mulesoft ESB
3.3.1.1. Licencia
3.3.1.2. Aplicabilidad del proyecto.
3.3.2. Kong
3.3.2.1. Licencia
3.3.2.2. Extensiones disponibles (plugins)
3.3.2.3. Instalación y prueba .
3.3.2.4. Integración con nuestro diseño
3.3.3. API Umbrella .
3.3.3.1. Licencia
3.3.3.2. Arquitectura interna
3.3.3.3. Instalación y prueba
3.3.3.4. Madurez
3.3.4. API Axle
3.3.4.1. Licencia
3.3.4.2. Estado del proyecto
3.3.5. Tyk
3.3.5.1. Licencia
3.3.5.2. Características principales
3.3.5.3. Instalación y prueba
3.3.5.4. Integración con nuestro diseño
3.3.6. WSO2 ESB
3.3.6.1. Licencia
3.3.6.2. Características principales
3.3.6.3. Instalación .
3.3.6.4. Integración con nuestro diseño
3.3.7. Conclusión
3.4. Para la cache compartida
3.4.1. Squid
3.4.1.1. Instalación
3.4.2. Varnish
3.4.2.1. Instalación
3.4.3. Conclusión
3.5. Para balancear la carga
3.5.1. Apache
3.5.2. NGINX
3.5.3. Conclusión
3.6. Para documentar
3.6.1. RAML
3.6.1.1. Licencia
3.6.1.2. Estructura
3.6.1.3. Herramientas
3.6.2. The openAPI Specification
3.6.2.1Licencia
3.6.2.2. Organización
3.6.2.3. Herramientas
3.6.3 Conclusión
4. Capítulo IV: Propuesta de rediseño
4.1. Propuesta
4.1.1. Redundancia y escalabilidad
4.1.2.
Desaclopamiento
4.1.3.
Simplicidad
4.1.4.
Tolerancia a fallos
4.1.5. Estandarización
5. Capítulo V: Caso testigo
5.1. Caso testigo
5.1.1. Alcance
5.1.2. Arquitectura
5.1.3. Desarrollo del prototipo funcional
5.1.4. Experiencia
5.1.5. Resultado
6. Capítulo VI: Conclusión y trabajos futuros
6.1. Conclusión
6.2. Trabajos futuros
6.2.1. Automatización de la documentación
6.2.2. Automatización de la arquitectura
6.2.3. Extensión de la gema cliente desarrollada
6.2.4. Implementación de pruebas
A. Anexo I
A.1. Aplicaciones cliente de la nube de servicios de la
UNLP
A.1.1. Albergue Universitario
A.1.2. Asociador
A.1.3. Becas UNLP
A.1.4. Libretas Sanitarias
A.1.5. Licencias Médicas
A.1.6. Programa “Mejor Aire”
A.1.7. Proyectos de Extensión
A.1.8. Recibos de sueldo
A.1.9. Responsables
A.1.10. Acceso Único (SSO)
A.1.11. Sueldos
A.1.12. Títulos
A.1.13. Dependencias con la nube de servicios
B. Anexo II
B.1. Endpoints de la nube de servicios actual
Glosario