Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción...

30
Introducción ECSDI Curso 2019/2020 CS-FIB-UPC cbea

Transcript of Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción...

Page 1: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Introducción

ECSDI

Curso 2019/2020

CS-FIB-UPC cbea

Page 2: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Motivación

Page 3: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Introducción

Los sistemas software han dejadode ser entornos cerrados ymonolíticos

• El elemento del sistema es elservicio

• Múltiples componentes ysistemas colaboran pararealizar tareas complejas

ECSDI - Curso 2019/2020 - FIB 1/25

Page 4: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Nuevas Características

• Distribución geográfica

• Necesidad de comunicarse de maneras complejas

• Necesidad de organizarse/colaborar/coordinarse

• Interacciones dinámicas y cambiantes (colaboración conmúltiples entidades)

• Autonomía (toman sus propias decisiones)

ECSDI - Curso 2019/2020 - FIB 2/25

Page 5: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Next Generation Internet Initiative - Objetivos

• Next Generation Internet Initiative

• Estudiar los cambios que producirá en la sociedad

• Estudiar el impacto qué tendrá en como las empresasdesarrollarán su actividad

• Estudiar las oportunidades económicas y de innovación

• Estudiar las necesidades tecnológicas y de investigación adistintos niveles (software, hardware, comunicaciones)

• Promover estándares para facilitar la adopción de lastecnologías

ECSDI - Curso 2019/2020 - FIB 3/25

Page 6: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Next Generation Internet Initiative - Ejes

1. Internet of Things: Millones deelementos conectados que proveeninformación y servicios (p. ej.:Manufactura Inteligente, aplicacionesen Smart Cities)

2. Internet de Servicios: Aplicacionesen la nube interconectadas que proveentodo tipo de funcionalidades

ECSDI - Curso 2019/2020 - FIB 4/25

Page 7: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Next Generation Internet Initiative - Ejes

3. Internet de la Información: Grandesvolúmenes de información de cualquiertipo que puede ser combinado,agregado o transformado para generarnuevo contenido

4. Internet de las Personas:Aplicaciones sociales para nuevasformas de interacción, aplicaciones ensostenibilidad, salud, wearables/sensores/monitorización, ...

ECSDI - Curso 2019/2020 - FIB 5/25

Page 8: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Next Generation Internet - Impacto a todos los niveles

• La Vida real y digital estarán más entrelazadas

• Virtualización de las empresas, transformando los roles declientes y empleados

• Nuevas herramientas y métodos para desarrollar y verificarsistemas interconectados y seguros

• Nuevas maneras de desarrollar software

ECSDI - Curso 2019/2020 - FIB 6/25

Page 9: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Impacto en la empresa - Proyectos más complejos

Mastering Chaos - A Netflix Guide to Microserviceshttps://www.youtube.com/watch?v=CZ3wIuvmHeM

Page 10: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Impacto en la empresa - Proyectos más complejos

What Comes after Microservices? (Uber)https://www.youtube.com/watch?v=UDC3kwkBvkA

Page 11: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Impacto en la empresa - Proyectos más complejos

What Comes after Microservices? (Uber)https://www.youtube.com/watch?v=UDC3kwkBvkA

Page 12: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Sistemas Distribuidos

Page 13: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Sistemas Distribuidos - El primer paso

• Un sistema distribuido es un conjunto de sistemascomputacionales que se comunican a través de una red

• Los diferentes sistemas que los componen interaccionan entreellos para conseguir un objetivo (común)

• La tarea a realizar no tiene porqué involucrar inteligencia oreplicar mecanismos congnitivos complejos

• La inteligencia artificial distribuida es la parte de la IA queaporta soluciones a la construcción de sistemas distribuidoscomplejos

ECSDI - Curso 2019/2020 - FIB 10/25

Page 14: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Sistemas Distribuidos - Motivación

• Una forma de repartir la carga de trabajo entre un conjunto decomputadores

• Una manera de ahorrar recursos

• Una posible manera de mejorar la eficiencia del hardware

ECSDI - Curso 2019/2020 - FIB 11/25

Page 15: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Sistemas Distribuidos - Interés

• Un sistema distribuido aparece como una sola unidad desde elexterior

• Es escalable, se pueden añadir nuevos componentes y nuevascapacidades

• Permiten coordinar sistemas que están separados físicamente

• Permiten ser tolerante a fallos (los componentes pueden serreemplazados)

ECSDI - Curso 2019/2020 - FIB 12/25

Page 16: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Sistemas Distribuidos - Dificultades

• Heterogeneidad, los componentes computaciones hardware ysoftware pueden ser muy diferentes

• Es difícil gestionar fallos múltiples

• Seguridad, hay múltiples puntos de entrada

• Fiabilidad, depende de la fiabilidad de la red de conexión

• Latencia, la comunicación introduce retrasos y bloqueos

• Complejidad de diseño

ECSDI - Curso 2019/2020 - FIB 13/25

Page 17: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Orientación a servicios -SOA/Microservicios

Page 18: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Orientación a servicios - SOA/Microservicios

• Pensada a la vez como diseño arquitectónico y metodología dedesarrollo de software.

• Basada en el concepto de servicio como elemento de diseño

• Servicio: Componente software que provee sus funcionalidades aotras aplicaciones

• Metodología independiente de la tecnología de implementación

ECSDI - Curso 2019/2020 - FIB 14/25

Page 19: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Orientación a servicios

• Cada servicio está diseñado para hacer una actividad:

Servicio = Un fragmento de código

• El reuso solo implica cambiar cómo se interacciona con otrosservicios (vs cambiar el código del servicio)

• En lugar de una API, un servicio define una interfaz en términosde protocolos y funcionalidad

• Se puede ver SOA como una evolución natural de lacomputación distribuida y la programación modular

ECSDI - Curso 2019/2020 - FIB 15/25

Page 20: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

¿Qué es un Servicio?

• Son auto descriptivos

• Implementan una funcionalidad bien definida

• Usan el encapsulamiento de información como principio dediseño (caja negra)

• Son independientes de su plataforma de implementación

• Pensados para operar en red

• Pensados para facilitar la integración deaplicaciones/organizaciones (incluyendo sistemas legados)

ECSDI - Curso 2019/2020 - FIB 16/25

Page 21: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Servicios - Principios

• Acoplamiento débil: Minimización de dependencias,conocimiento básico sobre la funcionalidad de los otros

• Abstracción: Lógica de funcionamiento no visible mas allá deentradas y salidas

• Contratos entre servicios: Comunicación entre serviciosdescrita de manera global mediante un documento público

• Reusabilidad: La funcionalidad está diseñada para poderformar parte de diferentes problemas

ECSDI - Curso 2019/2020 - FIB 17/25

Page 22: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Servicios - Principios

• Composabilidad: El acoplamiento de servicios permiteproveer servicios más complejos

• Autonomía: El servicio tiene control sobre la funcionalidadque provee

• Sin estado: El servicio guarda la mínima información para sufuncionamiento (estado a nivel superior es responsabilidad deotros)

• Descubrimiento: La descripción de los servicios provee lainformación que les permite ser descubiertos (qué hacen) einterpretados (cómo invocarlos)

ECSDI - Curso 2019/2020 - FIB 18/25

Page 23: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

SOA: Service Oriented Architecture

Una arquitectura orientada a servicios define

• Un conjunto de buenas practicas

• Un conjunto de principios de diseño

• Un conjunto de patrones de diseño

Objetivo: Guiar el diseño orientado a servicios para poderdesarrollar software más flexible y complejo

(!) Microservicios vs SOA

ECSDI - Curso 2019/2020 - FIB 19/25

Page 24: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Inteligencia Artificial yServicios

Page 25: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Inteligencia artificial

• Inteligencia artificial se puede definir como:

“Un campo de estudio que busca explicar y emular el com-portamiento inteligente en términos de procesos compu-tacionales” (Schalkoff, 1990)

ECSDI - Curso 2019/2020 - FIB 20/25

Page 26: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Inteligencia artificial

• El desarrollo de sistemas software complejos puede beneficiarsede la IA

• Adoptando metáforas de IA que acerquen el desarrollo a comopensamos

• Acercando la interacción entre sistemas software a comointeractuamos

• Adoptando una visión declarativa en la resolución de problemas(qué hacer vs cómo hacerlo)

• Permitiendo sistemas software adaptativos que puedan resolverrequerimientos/situaciones/interacciones no previstas

ECSDI - Curso 2019/2020 - FIB 21/25

Page 27: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Sistemas Distribuidos (Inteligentes)

• La Inteligencia Artificial Distribuida (DAI) y los SistemasMultiagente aporta soluciones a problemas complejos de lossistemas distribuidos

• Semántica de comportamiento

• Descripción, organización y coordinación de componentes

• Toma de decisiones en entornos heterogéneos y abiertos

• Descubrimiento y composición dinámica

• Recuperación de fallos

ECSDI - Curso 2019/2020 - FIB 22/25

Page 28: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Representación del conocimiento

• La representación del conocimiento estudia los formalismospara representar la información en sistemas inteligentes

• La representación del conocimiento permite describir:

• La comunicación, interacción, objetivos y funcionamiento de losservicios

• El contexto del servicio

• El razonamiento sobre todos estos elementos

ECSDI - Curso 2019/2020 - FIB 23/25

Page 29: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Otras áreas de la Inteligencia Artificial

• Planificación Automática: generar composiciones de tareassimples en tareas más complejas dado un objetivo

• Razonamiento Automático: toma de decisiones dinámica demanera declarativa

• Aprendizaje Automático: adaptación del comportamiento adiferentes niveles, por ejemplo:

• Perfilado y preferencias de los servicios que interaccionan

• Aprendizaje de resolución de tareas sin programación previa

• Adaptación a los cambios en el contexto/entorno

ECSDI - Curso 2019/2020 - FIB 24/25

Page 30: Introducción › ~bejar › ecsdi › Teoria › ECSDI01a-Introducci… · Introducción Lossistemassoftwarehandejado deserentornoscerradosy monolíticos Elelementodelsistemaesel

Servicios e Inteligencia Artificial

• Inteligencia artificial como servicio: Amazon AI, Google CloudMachine Learning, IBM Watson, Microsoft Cognitive Services

• Aplicaciones:• Sistemas de recomendación

• Aplicaciones basadas en procesamiento lenguaje natural(traducción automática, asistentes virtuales, extracción deconocimiento...)

• Reconocimiento de imagenes (búsqueda)

• Aprendizaje Automático como programación automática,aplicaciones cognitivas

ECSDI - Curso 2019/2020 - FIB 25/25