Trabajo Profesional
Ingeniería en Informática - FIUBA
Alumno:
Tutor: Lic. Gustavo López
Co-Tutor: Lic. Mariano Méndez
Lean...
AGENDA
Introducción
Arquitectura Orientada a Servicios
Entorno Virtual de Aprendizaje
Objetivos
Soa Learning
Servicios
Ges...
ARQUITECTURAORIENTADA
ASERVICIOS
(SOA)
DEFINICIÓN
Múltiples definiciones:
W3C
The Open Group
OASIS
Thomas Erl
“Conjunto de principios y metodologías para
el dise...
HISTORIA
¿25 años de historia?
SOA como término en 1996 por Gartner Group
EDI: estándar para intercambio de documentos
ele...
HABLAMOSDESERVICIOS
Componentes de software que resuelven una determinada
funcionalidad y que se comunican mediante mensaj...
SOAP
Protocolo para el intercambio de información utilizando
XML para el formato de los mensajes.
WSDL
Interfaz XML utilizada para describir la funcionalidad que
implementa un web service (contrato formal del servicio).
...
WS-*
Estándares asociados al uso de web services SOAP.
REST
Estilo de arquitectura, la implementación más grande
conocida es WWW.
Cliente-servidor
Recursos
Identificador global ...
RESTWEBSERVICES
Servicios web que cumplen con las características de REST.
Los mensajes pueden intercambiarse en diversos
...
COMPOSICIÓNDE
SERVICIOS
Posibilidad de reutilizar los servicios ya existentes para
conformar procesos más complejos.
Orque...
PRINCIPIOSDESOA
Contratos estandarizados
Bajo acoplamiento
Abstracción
Reusabilidad
Composición
Autonomía
Sin estado
Granu...
ENTERPRISESERVICEBUS
(ESB)
Modelo de arquitectura de software utilizado para
integración de diferentes aplicaciones.
ESBYSOA
Es independiente de SOA pero brinda soporte a ciertos
principios.
Invocación de servicios
Ruteo
Mediación
Composic...
CRÍTICAS
Web Services != SOA
JaBoWS
Tecnologías vs objetivos estratégicos
Service Oriented Ambiguity
Marketing
ESB
Guerril...
MICROSERVICES(I)
Estilo de arquitectura donde la idea es desarrollar una única
aplicación como un conjunto de pequeños ser...
MICROSERVICES(II)
Características:
Servicios como componentes
Organización centrada en funcionalidad de negocio
Productos ...
MICROSERVICESYSOA
Martin Fowler: “ Microservices = SOA - ESB - WS-*”
Quienes implementan Microservices declaran que usan S...
SOAENLAACTUALIDAD
Existen organizaciones que reconocen su expansión y éxito
gracias a la implementación de SOA:
Netflix
Tw...
Nace como una aplicación monolítica desarrollada en Java:
Incremento de usuarios y tráfico, no es posible escalar
más
Impo...
Deciden implementar una arquitectura orientada a
servicios:
Servicios independientes, composición de servicios
Equipos com...
Nace como una aplicación monolítica basada en
RoR+MySQL:
Incremento de usuarios, tiempo de respuesta y
disponibilidad se v...
Deciden implementar una arquitectura orientada a
servicios:
El cambio se aplica en forma gradual (código, base de
datos, o...
Migrando a SOA...
Nace como una aplicación monolítica web:
Inicialmente venta de libros, se suman más productos
Crece número de usuarios y t...
Deciden implementar una arquitectura orientada a
servicios:
Pueden encapsular lógica de negocio y datos en servicios
indep...
Steve Yegge publicó por error un para sus
compañeros de Google.
mensaje
Influencia de SOA a través del mandato de Jeff Bez...
3. No existirá otra forma de comunicación entre procesos. El
único tipo de comunicación será a través de llamadas a
interf...
“La arquitectura orientada a servicios es la abstracción
fundamental para construir las tecnologías de Amazon.”
— Jeff Bez...
ENTORNOVIRTUALDE
APRENDIZAJE
(EVA)
DEFINICIÓN
“Es un software con accesos restringidos,
concebido y diseñado para que las personas
que acceden a él desarroll...
CARACTERÍSTICAS
Cursos
Profesores
Alumnos
Configuración
Material de estudio
Registro de actividades
Evaluaciones
Seguridad...
MERCADO
Existen diferentes opciones para implementar plataformas
de e-learning, ya sea de código abierto o propietarios,
r...
CRÍTICAS
Enseñanza presencial vs virtual
Capacitación
Soporte técnico
Adecuación
Costos
Complejidad administración
Redes s...
OBJETIVOS
Aplicación que permita facilitar el aprendizaje y
evaluación de los conceptos de SOA utilizando un EVA.
Los doce...
Soa Learning es una aplicación web que agrupa
funcionalidad en torno a roles definidos:
administrador
docente
alumno
Exist...
EXÁMENES
Constan de preguntas multiple choice.
Clasificación de preguntas por módulo.
Inicio y fin por fecha y hora.
Reuti...
TAREAS
Inicio y fin por fecha y hora.
Administración por parte de los docentes.
Consumir web services REST/SOAP.
Exponer w...
ROLES
Administrador: administración usuarios, cursos,
módulos preguntas, servicios y asignación de docentes.
Docente: resp...
REPORTES
Los reportes son ejecutados por los docentes, permiten
filtrar por fecha y exportar a PDF.
Exámenes: información ...
ALERTAS
Alta de usuario, envío datos para ingreso.
Asignación de docente a curso.
Asignación de alumno a curso.
Finalizaci...
SERVICIOS
ENSOALEARNING
EXPUESTOSPORSOA
LEARNING
Web services REST/SOAP utilizados en las tareas de tipo
consumir servicio, el alumno debe acceder...
EXPUESTOSPOREL
ALUMNO
Web services REST/SOAP utilizados en las tareas de tipo
exponer servicio, el alumno debe exponerlos ...
GESTIÓNDELPROYECTO(I)
Metodología ágil: Scrum.
9 iteraciones.
Product Backlog: 46 User Stories, 492 horas.
Minutas de reun...
GESTIÓNDELPROYECTO(II)
Ambiente de aceptación accesible desde cualquier
ubicación.
Gestión de riesgos.
Trazabilidad: user ...
ARQUITECTURA
La aplicación implementa una arquitectura de 4 capas:
Detalle de interacción entre web services:
TECNOLOGÍAS
Soa Learning está desarrollado usando:
Java + JavaScript + HTML5 + CSS3
jQuery
Pace
JSON Editor
jsPlumb
Dandel...
DESPLIEGUE(I)
Utilizamos el producto , basado en la solución
open source de Red Hat para cloud computing. Los recursos
de ...
DESPLIEGUE(II)
DEMO
Soa Learning: http://soalfiuba-taller3.rhcloud.com
Alumno expone web services:
http://soalearning-lcarracedo.rhcloud....
CONCLUSIONES
Se implementó con éxito un entorno virtual para el
aprendizaje y la evaluación de los conceptos de SOA en
for...
TRABAJOSFUTUROS
Incluir opción para manejar el flujo de comunicación en
forma similar a una red social.
Agregar un servici...
¿PREGUNTAS?
Presentación realizada con Reveal.js
Online: http://tp-lcarracedo.rhcloud.com
MUCHAS
GRACIAS
Soa Learning
Soa Learning
Próxima SlideShare
Cargando en…5
×

Soa Learning

382 visualizaciones

Publicado el

Presentación Trabajo Profesional - Ingeniería en Informática FIUBA.
Leandro Carracedo

Publicado en: Software
0 comentarios
0 recomendaciones
Estadísticas
Notas
  • Sé el primero en comentar

  • Sé el primero en recomendar esto

Sin descargas
Visualizaciones
Visualizaciones totales
382
En SlideShare
0
De insertados
0
Número de insertados
41
Acciones
Compartido
0
Descargas
0
Comentarios
0
Recomendaciones
0
Insertados 0
No insertados

No hay notas en la diapositiva.

Soa Learning

  1. 1. Trabajo Profesional Ingeniería en Informática - FIUBA Alumno: Tutor: Lic. Gustavo López Co-Tutor: Lic. Mariano Méndez Leandro Carracedo
  2. 2. AGENDA Introducción Arquitectura Orientada a Servicios Entorno Virtual de Aprendizaje Objetivos Soa Learning Servicios Gestión del proyecto Arquitectura Despliegue Demostración Conclusiones Trabajos futuros
  3. 3. ARQUITECTURAORIENTADA ASERVICIOS (SOA)
  4. 4. DEFINICIÓN Múltiples definiciones: W3C The Open Group OASIS Thomas Erl “Conjunto de principios y metodologías para el diseño y desarrollo de software en forma de servicios interconectados.”
  5. 5. HISTORIA ¿25 años de historia? SOA como término en 1996 por Gartner Group EDI: estándar para intercambio de documentos electrónicos RPC, DCOM, RMI, CORBA EAI: patrones para integración en arquitecturas complejas Adopción, controversias y evolución
  6. 6. HABLAMOSDESERVICIOS Componentes de software que resuelven una determinada funcionalidad y que se comunican mediante mensajes. Web Services: servicios que intercambian datos utilizando estándares definidos para la comunicación web. Actualmente se utilizan dos tipos: SOAP REST
  7. 7. SOAP Protocolo para el intercambio de información utilizando XML para el formato de los mensajes.
  8. 8. WSDL Interfaz XML utilizada para describir la funcionalidad que implementa un web service (contrato formal del servicio). Estructura: Tipos de datos Operaciones Elementos del mensaje Protocolos utilizados
  9. 9. WS-* Estándares asociados al uso de web services SOAP.
  10. 10. REST Estilo de arquitectura, la implementación más grande conocida es WWW. Cliente-servidor Recursos Identificador global (URI) HATEOAS Métodos HTTP: GET POST PUT DELETE
  11. 11. RESTWEBSERVICES Servicios web que cumplen con las características de REST. Los mensajes pueden intercambiarse en diversos formatos (XML, JSON, etc) Swagger - WADL
  12. 12. COMPOSICIÓNDE SERVICIOS Posibilidad de reutilizar los servicios ya existentes para conformar procesos más complejos. Orquestación: bajo el control de un proceso central que coordina la ejecución de las diferentes operaciones sobre los web services que participan del proceso. Coreografía: no hay necesidad de un coordinador, los servicios involucrados son quienes saben exactamente cuándo activarse y con quien colaborar dentro del proceso que conforman.
  13. 13. PRINCIPIOSDESOA Contratos estandarizados Bajo acoplamiento Abstracción Reusabilidad Composición Autonomía Sin estado Granularidad Descubrimiento
  14. 14. ENTERPRISESERVICEBUS (ESB) Modelo de arquitectura de software utilizado para integración de diferentes aplicaciones.
  15. 15. ESBYSOA Es independiente de SOA pero brinda soporte a ciertos principios. Invocación de servicios Ruteo Mediación Composición de servicios Calidad Gestión Independencia Mensajería La confusión y los problemas asociados a ciertas implementaciones terminaron en críticas hacia SOA.
  16. 16. CRÍTICAS Web Services != SOA JaBoWS Tecnologías vs objetivos estratégicos Service Oriented Ambiguity Marketing ESB Guerrilla SOA SOA está muerto Manifiesto SOA Reencarnación
  17. 17. MICROSERVICES(I) Estilo de arquitectura donde la idea es desarrollar una única aplicación como un conjunto de pequeños servicios. Cada servicio es independiente y se comunica con otros utilizando mecanismos livianos, usualmente recursos HTTP.
  18. 18. MICROSERVICES(II) Características: Servicios como componentes Organización centrada en funcionalidad de negocio Productos no proyectos Puntos de conexión inteligentes y encadenamientos simples Gobernabilidad descentralizada Gestión de datos descentralizada Automatización de la infraestructura Diseñar para fallar Diseño evolutivo
  19. 19. MICROSERVICESYSOA Martin Fowler: “ Microservices = SOA - ESB - WS-*” Quienes implementan Microservices declaran que usan SOA correctamente. Mark Little: “... la gente siempre trata de crear nuevos términos para algo que ya existe y que no necesita ser redefinido sino sólo ser comprendido mejor! Por favor, no hablemos de microservices. ¡Quedémonos con SOA! ”
  20. 20. SOAENLAACTUALIDAD Existen organizaciones que reconocen su expansión y éxito gracias a la implementación de SOA: Netflix Twitter Amazon
  21. 21. Nace como una aplicación monolítica desarrollada en Java: Incremento de usuarios y tráfico, no es posible escalar más Imposibilitados de tener un desarrollo ágil y competir en el mercado Pocos equipos modificando código en conjunto de una gran aplicación replicada en decenas de servidores
  22. 22. Deciden implementar una arquitectura orientada a servicios: Servicios independientes, composición de servicios Equipos completos desarrollando cientos de servicios como componentes que corren en miles de servidores Desarrolla herramientas propias para gestionar la arquitectura Agilidad, se adapta al mercado y escala fácilmente
  23. 23. Nace como una aplicación monolítica basada en RoR+MySQL: Incremento de usuarios, tiempo de respuesta y disponibilidad se ven comprometidos Complejidad de implementación, los cambios son desalentados Se deja de lado la claridad y flexibilidad del código para ganar en performance Punto de inflexión: Mundial de fútbol 2010
  24. 24. Deciden implementar una arquitectura orientada a servicios: El cambio se aplica en forma gradual (código, base de datos, organización) Ganan en performance, eficiencia y confiabilidad Límites concretos para las funcionalidades, servicios con bajo acoplamiento Agilidad, equipos de trabajo independientes, implementan nueva funcionalidad rápidamente
  25. 25. Migrando a SOA...
  26. 26. Nace como una aplicación monolítica web: Inicialmente venta de libros, se suman más productos Crece número de usuarios y transacciones, imposible continuar escalando Es necesario ganar en independencia de componentes dentro de la aplicación
  27. 27. Deciden implementar una arquitectura orientada a servicios: Pueden encapsular lógica de negocio y datos en servicios independientes Servicios se comunican a través de una interfaz bien definida, no comparten datos Organización de equipos: "You build it, you run it" Diferentes tecnologías, servicios REST y SOAP Se ganó en interoperabilidad, agilidad y reusabilidad Aplicación escalable y robusta
  28. 28. Steve Yegge publicó por error un para sus compañeros de Google. mensaje Influencia de SOA a través del mandato de Jeff Bezos en 2002: 1. Todos los equipos a partir de este momento deberán exponer sus datos y funcionalidad a través de interfaces de servicios. 2. Los equipos deben comunicarse entre ellos a través de estas interfaces.
  29. 29. 3. No existirá otra forma de comunicación entre procesos. El único tipo de comunicación será a través de llamadas a interfaces de servicios a través de la red. 4. No importa que tecnología usen. 5. Todas las interfaces de servicios, sin excepciones, deben ser diseñadas desde el comienzo para que puedan ser expuestas a desarrolladores en el mundo exterior. 6. Cualquiera que no siga los puntos anteriores será despedido.
  30. 30. “La arquitectura orientada a servicios es la abstracción fundamental para construir las tecnologías de Amazon.” — Jeff Bezos (CEO de Amazon)
  31. 31. ENTORNOVIRTUALDE APRENDIZAJE (EVA)
  32. 32. DEFINICIÓN “Es un software con accesos restringidos, concebido y diseñado para que las personas que acceden a él desarrollen procesos de incorporación de conocimientos.” Facilita a los profesores la gestión de cursos virtuales, ayudándolos en la administración y desarrollo de los cursos, permitiéndoles evaluar a los estudiantes.
  33. 33. CARACTERÍSTICAS Cursos Profesores Alumnos Configuración Material de estudio Registro de actividades Evaluaciones Seguridad por roles Reportes Ayuda
  34. 34. MERCADO Existen diferentes opciones para implementar plataformas de e-learning, ya sea de código abierto o propietarios, realizando una instalación en servidores propios o utilizando servicios de aplicaciones (SaaS). Utilizado en el ambiente educativo, empresarial y estatal. En educación encontramos dos plataformas líderes:
  35. 35. CRÍTICAS Enseñanza presencial vs virtual Capacitación Soporte técnico Adecuación Costos Complejidad administración Redes sociales
  36. 36. OBJETIVOS Aplicación que permita facilitar el aprendizaje y evaluación de los conceptos de SOA utilizando un EVA. Los docentes podrán evaluar de forma teórica y práctica. Interacción con servicios web por parte de los alumnos. Implementar la solución en un ambiente productivo, accessible desde cualquier ubicación y con cualquier dispositivo.
  37. 37. Soa Learning es una aplicación web que agrupa funcionalidad en torno a roles definidos: administrador docente alumno Existen cursos que cuentan con un docente responsable y alumnos asignados. Material de estudio, exámenes y tareas para los cursos. Seguridad. Diseño web adaptativo e internacionalización. Reportes y alertas automáticas.
  38. 38. EXÁMENES Constan de preguntas multiple choice. Clasificación de preguntas por módulo. Inicio y fin por fecha y hora. Reutilización de preguntas. Administración por parte de los docentes. Corrección automática.
  39. 39. TAREAS Inicio y fin por fecha y hora. Administración por parte de los docentes. Consumir web services REST/SOAP. Exponer web services REST/SOAP. Composición web services. Registro de acciones de los alumnos. Criterios de corrección. Corrección a cargo del docente.
  40. 40. ROLES Administrador: administración usuarios, cursos, módulos preguntas, servicios y asignación de docentes. Docente: responsable de cursos, administra usuarios alumnos, asigna alumnos a cursos, administración material, preguntas y respuestas, exámenes, criterios de corrección tareas, tareas y ejecución de reportes. Alumno: asignado a cursos, visualiza material y su estado en el curso, rinde exámenes y realiza tareas. Todos los usuarios pueden modificar sus datos de perfil y acceder a la ayuda para su rol.
  41. 41. REPORTES Los reportes son ejecutados por los docentes, permiten filtrar por fecha y exportar a PDF. Exámenes: información del examen, detalle de notas de alumnos por curso y porcentajes de aprobación. Tareas: información de la tarea, detalle de notas de alumnos por curso y porcentajes de aprobación. Cursos: por cada curso del que el docente sea responsable se detallan los alumnos inscriptos, exámenes rendidos y tareas realizadas, detallando número de aprobados/desaprobados.
  42. 42. ALERTAS Alta de usuario, envío datos para ingreso. Asignación de docente a curso. Asignación de alumno a curso. Finalización de tareas, aviso al alumno. Corrección de tareas, aviso al alumno. Finalización de exámenes, resultados para el alumno. Reestablecer contraseña. Formulario de contacto.
  43. 43. SERVICIOS ENSOALEARNING
  44. 44. EXPUESTOSPORSOA LEARNING Web services REST/SOAP utilizados en las tareas de tipo consumir servicio, el alumno debe accederlos con su propia aplicación y la clave asignada siguiendo el enunciado. Amazon: ItemImages, ItemOffers, ItemReviews, ItemAttributes. Facebook: UserOperations (profile, friends), SearchOperations (event, group, user, page, place). Google Maps: Directions, Distance, Elevation, Geocoding, Timezone. Grooveshark: SongLink, SongDetails, SongList.
  45. 45. EXPUESTOSPOREL ALUMNO Web services REST/SOAP utilizados en las tareas de tipo exponer servicio, el alumno debe exponerlos con su propia aplicación y siguiendo el enunciado. Operaciones aritméticas: suma, resta, multiplicación, división. Operaciones con caracteres: cantidad, concatenación, vocales. Códigos de monedas: descripción según ISO 4217. Conversión de temperaturas: grados Celsius, Kelvin y Fahrenheit. Definido: sólo debe respetarse el formato de respuesta.
  46. 46. GESTIÓNDELPROYECTO(I) Metodología ágil: Scrum. 9 iteraciones. Product Backlog: 46 User Stories, 492 horas. Minutas de reunión e informe de avance por sprint. Se definen UATs para cada iteración. Métricas utilizadas: burndown chart (sprint y proyecto), evolución de la prueba y cobertura de la prueba.
  47. 47. GESTIÓNDELPROYECTO(II) Ambiente de aceptación accesible desde cualquier ubicación. Gestión de riesgos. Trazabilidad: user stories, bugs, UATs y commits. Seguimiento de bugs y avance:
  48. 48. ARQUITECTURA
  49. 49. La aplicación implementa una arquitectura de 4 capas:
  50. 50. Detalle de interacción entre web services:
  51. 51. TECNOLOGÍAS Soa Learning está desarrollado usando: Java + JavaScript + HTML5 + CSS3 jQuery Pace JSON Editor jsPlumb Dandelion Datatables Spring (Roo, Security, Social, WS) Bootstrap Thymeleaf BIRT MySQL Jetty
  52. 52. DESPLIEGUE(I) Utilizamos el producto , basado en la solución open source de Red Hat para cloud computing. Los recursos de infraestructura están brindados por Amazon. OpenShift
  53. 53. DESPLIEGUE(II)
  54. 54. DEMO Soa Learning: http://soalfiuba-taller3.rhcloud.com Alumno expone web services: http://soalearning-lcarracedo.rhcloud.com Alumno consume web services: SoapUI
  55. 55. CONCLUSIONES Se implementó con éxito un entorno virtual para el aprendizaje y la evaluación de los conceptos de SOA en forma teórica y práctica. Integración de las funciones fundamentales de un EVA con la posibilidad de trabajar con servicios web en un entorno controlado. Ambiente productivo donde alumnos y docentes se ven beneficiados en el proceso de aprendizaje de SOA.
  56. 56. TRABAJOSFUTUROS Incluir opción para manejar el flujo de comunicación en forma similar a una red social. Agregar un servicio de descubrimiento de web services para que puedan registrarse servicios. Grupos de alumnos para tareas en forma conjunta. Tareas más complejas que incluyan el uso de herramientas de código abierto utilizadas en la actualidad por empresas que implementan SOA (Twitter y Netflix).
  57. 57. ¿PREGUNTAS?
  58. 58. Presentación realizada con Reveal.js Online: http://tp-lcarracedo.rhcloud.com MUCHAS GRACIAS

×