SlideShare una empresa de Scribd logo
1 de 24
Sistemas Híbridos
Dr. Juan Pablo Carvallo Vega
jpcarvallo@gmail.com
Sistemas híbridos
 Una tendencia moderna en la Ingeniería de Software
 Construir sistemas integrando componentes de diversos tipos y
orígenes
 Enfoque “oportunista”, orientado a la integración mas que al
desarrollo
Desarrollo
a la medida
?
??
??
Corrientes Originales
 International Conference on COTS-Based Software Systems 2001
(ICBSS’01)
 Component Based Software Engineering
 SEI – ESI – NRC  ESI – CBSE NET
COTS
$
OTS
COTS,
FOSS,
etc.
¿Que es un Componente?
SAP
JDK
MS
Word
Lotus
Notes
My SQL
Windows
XP
Apache
SQL Server
Definición de componente COTS
Un componente COTS es un producto:
vendido, alquilado o licenciado al publico en general;
ofrecido por un vendedor que intenta obtener una
ganancia;
soportado y evolucionado por el vendedor, quien
mantiene los derechos intelectuales sobre el producto;
disponible en múltiples copias idénticas;
utilizado sin modificación interna por el consumidor.
B.C. Meyers, P. Oberndorf. Managing Software Acquisition, Addison-Wesley, 2001.
Beneficios esperados (Sistemas Basados en Compontentes)
Sistemas basados en componentes:
 Reducción en el tiempo de puesta en producción
 Menores costos y riesgos
 Incremento en la Portabilidad
 Organización dedicada al soporte
 Mejora en el proceso de negocios
 Actualizaciones continuas
Sistemas híbridos
 Nivel adecuado de personalización
 Generación de valor agregado
 Control sobre la evolución de la funcionalidad critica para el
negocio
Desarrollo de Sistemas Basados en
componentes OTS
 La noción de construir sistemas escribiendo código ha
sido remplazada por la idea de :
“Construir un sistema adaptando e integrando
componentes software existentes”
 Enfoque en la integración en lugar de la implementación.
 Integrabilidad es una consideración clave en la decisión
de adquirir, reutilizar o construir los componentes.
Tipos de Sistemas Basados en Componentes
Sistemas “llave en mano” Sistemas
intermedios
Sistemas Integrados
Construidos al rededor de una
suit de productos (ej. Office,
Netscape)
Construidos al rededor
de un componente (ej.
Oracle, SAP)
Construidos integrando
varios componentes
Solo se utiliza un componente El componente es la
mayor parte del
sistema
Todos los componentes
tienen un nivel de
importancia similar
Cartney. “Assembling Large Systems from COTS Components” SEI Monographs,1997
COTS Proceso
de
negocio
Enfoque Vendedor Mantenimiento
Sistema COTS
solución
1 producto
substancial
(suit)
Solución
genérica
Adaptación Uno Vendedor
Sistema COTS
intensivo
Muchos
integrados
Mas
flexible
Integración Muchos - Proyecto
- Vendedor
Wallnau, Cartney, Pollak. “How COTS Software Affects the Design of COTS Intensive Systems”
In SEI Interactive available at http://interactive.sei.cmu.edu/Features/1998.
Sistemas Basados en Componentes: Ejemplo
 EOSDIS misión para el cambio global del clima (NASA)
 Integración de 29 fuentes de información (naves
espaciales, aeronaves, superficiales)
 Almacenes de datos muy grandes, procesamiento a largo termino
(hasta el 2015), sistemas distribuidos
 Estudios interdisciplinarios, muchos perfiles generando requisitos
 Sistema complejo:
 Monto de datos: 3 TB (2002) 20 PB (2010) ... por día
 Bases de datos geoespaciales muy grandes; datos distribuidos en
diferentes formatos
 Algoritmos científicos complejos
 Interfaz con 35 sistemas externos y productos
 Sistema COTS agregado:
 50 COTS equipos COTS dedicados
 >40 actualizaciones por año (30 bajas, 10 medias, 1 alta)
 Cerca de 400 parches por año
 1.1 M de líneas de C++ y Java de código a la medida
 periodo de desarrollo de 60 meses
Ventajas y desventajas en el uso de componentes
Plug and Play vs. Plug and Pray
Ventajas Componentes Desventajas Componentes
Disponibilidad inmediata; retorno de
inversión inmediato
Licencias, propiedad intelectual
Evita costos de desarrollo y
mantenimiento
• Costos de licenciamiento
• Costos de integración
• Costos de soporte
Funcionalidad muy rica • Demasiada funcionalidad compromete uso y
rendimiento
• Documentación limitada o no adecuada
Nuevas versiones continuamente • No existe control sobre las nuevas versiones
• Desarrollo desordenado
• Estándares poco difundidos
Organización dedicada al soporte • Dependencia del fabricante
• O de la buena voluntad de la comunidad
Independencia de Hw y Sw • La integración no es trivial
• Fabricantes no la garantizan
• Versiones limitadas a Hw y Sw
Sistemas Basados en Componentes OTS:
Impacto en el Ciclo de Vida
Requisitos
Diseño
Implementación
Arquitectura y Diseño
Mercado
Gestión del proyecto
Contexto del Sistema
Definiciones
y decisiones
simultaneas
•Albert & Brownsword. “Meeting the Challenges of COTS Products”
•1st ICCBSS 2002
? ?
?
??
Selección  Especificación de requisitos
 Definición de criterios y prioridades
 Que lenguaje de especificaciones?
 Descripción y evaluación
 Proceso iterativo e incremental
 Dificultad para descubrir propiedades
(cajas negras)
 De donde obtener información
 Que métricas utilizar, como testear
 Selección de los mejores
 Desajustes entre requisitos y
características de los componentes
 Comparación entre componentes
similares
Mercado de
Componentes
Componentes
Seleccionados
Sistemas Basados en Componentes: Ciclo de vida y retos
Componentes
Adaptados
Adaptación
 COTS no son diseñados para conectarse con otros
 Adaptación (Parametrización, scripting, afinamiento…), envolturas o
modificación del código son requeridas
 Tares muy costosa en tiempo y recursos y difícil de lograr
 Requiere dominio del sistema y de los componentes
? ?
?
??
Selección
Mercado de
Componentes
Componentes
Seleccionados
Sistemas Basados en Componentes: Ciclo de vida y retos
Parametrización / Adaptación
 Tipos de parametrización
 Personalización
 Rendimiento
 Simplemente poner el componente a trabajar
 La mayoría de componentes requieren algún tipo de
parametrización:
 MS-Office: un par de tardes
 Sistemas ERP: varios meses
 Algunas actividades típica:
 Especificación de parámetros
 Especificación de la interfaz grafica (GUI)
 Plug-ins (para agregar funcionalidad)
Componentes
Ensamblados
Composición en la
arquitectura seleccionada
 Interacción de arquitectura, infraestructura y elementos middleware
 “Pegado” de componente para que trabajen juntos
 Varias arquitecturas son posibles:
 Bases de datos, bus de mensajes, intercambio de archivos, interfaces de
objetos
Componentes
Adaptados
Adaptación
? ?
?
??
Selección
Componentes
Seleccionados
Sistemas Basados en Componentes: Ciclo de vida y retos
Integración de Componentes
 Parametrización /Adaptación (tailoring)
 Acomodar el componente COTS para un dominio particular
 Adherir (gluing)
 Integración de un componente COTS con otro o en un sistema
 Modificación
 Integración de un componente COTS con otro o en un sistema
 Generación de envoltorios (Wrappers)
 Utilización de tecnologías MiddleWare (CORBA, COM, RMI, etc.)
 Transferencia de archivos e información estructurada
(CSV, XML, TXT, etc.)
 Integración con bases de datos (ODBC, OLE/DB, ADO, ETC)
Componente
1
Componente
2
Stub
Componente
1
OBJ
OBJOBJ
Sklt.
Componente
2
Componente
1
Componente
2
Componente
1
Componente
2
Integración de Componentes
Adherencia de componentes (1/2)
 Algunas técnicas utilizadas para la interconexión de componentes
COTS son:
 Envoltorios (Wrappers): Aíslan el componente del exterior
 Agregar u ocultar funcionalidad (pero sin modificar el
componente COTS)
 Proteger el componente de otros componentes COTS
 Recuperación de errores
 Reducir el impacto de los cambios en (ambos lados)
 Utilización de estándares Middleware:
 CORBA,
 COM,
 RMI
Adherencia de componentes (2/2)
 Transferencia de archivos
 Mejor si utiliza estándares abiertos (XML)
 Problemas con la integración de datos, replicación, etc.
 Mantenimiento: ¿Que pasa si el formato de los datos varia?
 Filtros
 Control de flujo de trabajo: Los componentes COTS son
invocados cuando se requieren
 Integración de bases de datos:
 Utilización del mismo esquema
 Conectividad ODBC, ADO, OLE/DB
 Combinación de las anteriores
Modificación (1/2)
 Dos tipos:
 Agregar
 Mas fácil integrar que solicitar ayuda
 Mejorada si existen librerías ej. APIs
 Modificar / Eliminar
 Quien ayudara cuando surjan los problemas?
Modificación (2/2)
 Por que evitar la modificación:
 Existen licencias, garantías y contratos de soporte de por medio
 Incluso si el vendedor esta de acuerdo nuevas versiones del
producto saldrán al mercado
 Puede romper con los estándares
 Dificulta la evolución
 El trabajo debe repetirse para cada versión
 Puede imposibilitar el beneficios de nuevas versiones
 Muchos autores no consideran la modificación una practica de la
ingeniería de software basada en componentes
 De todas formas en la practica no se realiza
Componentes
Actualizados
Evolución a COTS
actualizados
 Mercado en continua evolución:
 Cientos de nuevos productos y actualizaciones
 Nuevos productos no son idénticos a los anteriores
 Reemplazo de componentes puede ser muy difícil
 Reentrenamiento y testeo pueden ser requeridos
Componentes
Ensamblados
Componentes
Adaptados
Adaptación
? ?
?
??
Selección
Componentes
Seleccionados
Composición en la
arquitectura seleccionada
Sistemas Basados en Componentes: Ciclo de vida y retos
Verificación del Sistema
 Que verificar:
 Componentes COTS individuales
 Cajas negras
 Uso de modelos de calidad (-ilities)
 No es fácil y requiere pericia y experiencia
 Código de adherencia de componetes
 Integración del sistema
 Formato de datos, plataforma middleware, etc.
 Análisis de sensibilidad -> “Que pasa si?”
 -ilities del sistema, los componentes se pueden
comportar diferente cuando se juntan
Software de Gestión
Nomina
ERP
CRM
BSC
CallCenter
Tasacióny
Facturación
Mediación
Planta
Externa
Desarrollo interno:
Estratégicos para
el negocio.
Sistemas
Legados
Sistemas
Desarrollados
Sistemas
Adquiridos
Mapeo a la
Arquitectura
Integración, Interoperabilidad
• Adopción transparente
• Delimitación de ámbitos.
• Migración
Activos de
Explotación
Integración de Componentes

Más contenido relacionado

La actualidad más candente

DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREjose_rob
 
Mapa Conceptual Ing. de Requerimientos
Mapa Conceptual Ing. de RequerimientosMapa Conceptual Ing. de Requerimientos
Mapa Conceptual Ing. de RequerimientosBervelynaily
 
Metodologia estructurada
Metodologia estructuradaMetodologia estructurada
Metodologia estructuradaLuis Segovia
 
Diagrama de transicion de estados
Diagrama de transicion de estadosDiagrama de transicion de estados
Diagrama de transicion de estadosale abad aguilar
 
Elementos esenciales de una arquitectura orientada a servicios
Elementos esenciales de una arquitectura orientada a serviciosElementos esenciales de una arquitectura orientada a servicios
Elementos esenciales de una arquitectura orientada a servicioswachu wachu pi
 
Inserción de datos y selección de datos
Inserción de datos y selección de datosInserción de datos y selección de datos
Inserción de datos y selección de datoscarmen305
 
Mapa conceptual Ingeniería de Requisitos
Mapa conceptual Ingeniería de RequisitosMapa conceptual Ingeniería de Requisitos
Mapa conceptual Ingeniería de Requisitosinmacu_
 
MODELADO RUP UML
MODELADO RUP UMLMODELADO RUP UML
MODELADO RUP UMLkcastro388
 
Unidad 8 Diagramas De InteraccióN
Unidad 8 Diagramas De InteraccióNUnidad 8 Diagramas De InteraccióN
Unidad 8 Diagramas De InteraccióNSergio Sanchez
 
Programa detallado de Redes UNEFA
Programa detallado de Redes UNEFAPrograma detallado de Redes UNEFA
Programa detallado de Redes UNEFAJavier Rivera
 
Tema 10: Evaluación perezosa en Haskell
Tema 10: Evaluación perezosa en HaskellTema 10: Evaluación perezosa en Haskell
Tema 10: Evaluación perezosa en HaskellJosé A. Alonso
 
Factibilidad tecnica
Factibilidad tecnicaFactibilidad tecnica
Factibilidad tecnicathyago1211
 
FUNDAMENTOS DE SISTEMAS
FUNDAMENTOS DE SISTEMASFUNDAMENTOS DE SISTEMAS
FUNDAMENTOS DE SISTEMASCinthia López
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura RestIsrael Rey
 

La actualidad más candente (20)

Arquitectura multicapa
Arquitectura multicapaArquitectura multicapa
Arquitectura multicapa
 
Entidad relacion de un banco
Entidad relacion de un bancoEntidad relacion de un banco
Entidad relacion de un banco
 
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWAREDISEÑO DE LA ARQUITECTURA DEL SOFTWARE
DISEÑO DE LA ARQUITECTURA DEL SOFTWARE
 
Mapa Conceptual Ing. de Requerimientos
Mapa Conceptual Ing. de RequerimientosMapa Conceptual Ing. de Requerimientos
Mapa Conceptual Ing. de Requerimientos
 
Metodologia estructurada
Metodologia estructuradaMetodologia estructurada
Metodologia estructurada
 
Diagrama de transicion de estados
Diagrama de transicion de estadosDiagrama de transicion de estados
Diagrama de transicion de estados
 
Elementos esenciales de una arquitectura orientada a servicios
Elementos esenciales de una arquitectura orientada a serviciosElementos esenciales de una arquitectura orientada a servicios
Elementos esenciales de una arquitectura orientada a servicios
 
Inserción de datos y selección de datos
Inserción de datos y selección de datosInserción de datos y selección de datos
Inserción de datos y selección de datos
 
Factibilidad operativa
Factibilidad operativaFactibilidad operativa
Factibilidad operativa
 
Mapa conceptual Ingeniería de Requisitos
Mapa conceptual Ingeniería de RequisitosMapa conceptual Ingeniería de Requisitos
Mapa conceptual Ingeniería de Requisitos
 
Ventajas vs Desventajas se SGBD
Ventajas vs Desventajas se SGBDVentajas vs Desventajas se SGBD
Ventajas vs Desventajas se SGBD
 
Dfd
DfdDfd
Dfd
 
MODELADO RUP UML
MODELADO RUP UMLMODELADO RUP UML
MODELADO RUP UML
 
Unidad 8 Diagramas De InteraccióN
Unidad 8 Diagramas De InteraccióNUnidad 8 Diagramas De InteraccióN
Unidad 8 Diagramas De InteraccióN
 
Programa detallado de Redes UNEFA
Programa detallado de Redes UNEFAPrograma detallado de Redes UNEFA
Programa detallado de Redes UNEFA
 
Tema 10: Evaluación perezosa en Haskell
Tema 10: Evaluación perezosa en HaskellTema 10: Evaluación perezosa en Haskell
Tema 10: Evaluación perezosa en Haskell
 
Fase de Elaboración RUP
Fase de Elaboración RUPFase de Elaboración RUP
Fase de Elaboración RUP
 
Factibilidad tecnica
Factibilidad tecnicaFactibilidad tecnica
Factibilidad tecnica
 
FUNDAMENTOS DE SISTEMAS
FUNDAMENTOS DE SISTEMASFUNDAMENTOS DE SISTEMAS
FUNDAMENTOS DE SISTEMAS
 
Arquitectura Rest
Arquitectura RestArquitectura Rest
Arquitectura Rest
 

Destacado

Sistemas hibridos autónomos
Sistemas hibridos autónomosSistemas hibridos autónomos
Sistemas hibridos autónomosTicoelho
 
Baloncesto escolar valladolid idolos sport
Baloncesto escolar valladolid idolos sportBaloncesto escolar valladolid idolos sport
Baloncesto escolar valladolid idolos sportidolosport
 
160321 비엔나 커피클럽 - 오스트리아 대사관 무역대표부
160321 비엔나 커피클럽 - 오스트리아 대사관 무역대표부160321 비엔나 커피클럽 - 오스트리아 대사관 무역대표부
160321 비엔나 커피클럽 - 오스트리아 대사관 무역대표부StartupAlliance
 
Seguridad social y pensiones
Seguridad social y pensionesSeguridad social y pensiones
Seguridad social y pensionesmonitoreohoy
 
Programa CiU Calafell 2015 - 2019
Programa CiU Calafell 2015 - 2019Programa CiU Calafell 2015 - 2019
Programa CiU Calafell 2015 - 2019Joan Olivella
 
Add a human touch to online customer service
Add a human touch to online customer serviceAdd a human touch to online customer service
Add a human touch to online customer serviceSagittarius
 
12 consejos de Iniciador para emprendedores
12 consejos de Iniciador para emprendedores12 consejos de Iniciador para emprendedores
12 consejos de Iniciador para emprendedoresWilhelm Lappe
 
Guia instalacion de GRETL
Guia instalacion de GRETLGuia instalacion de GRETL
Guia instalacion de GRETLMiguel Jerez
 
Brandstorm Creative Group Portfolio
Brandstorm Creative Group PortfolioBrandstorm Creative Group Portfolio
Brandstorm Creative Group Portfolioandresipm
 
Pareja Estable
Pareja EstablePareja Estable
Pareja Establenuska
 
Cleared Job Fair Job Seeker Handbook May 8, 2014, Crystal City, VA
Cleared Job Fair Job Seeker Handbook May 8, 2014, Crystal City, VACleared Job Fair Job Seeker Handbook May 8, 2014, Crystal City, VA
Cleared Job Fair Job Seeker Handbook May 8, 2014, Crystal City, VAClearedJobs.Net
 
Colombia online
Colombia onlineColombia online
Colombia onlinemateonova1
 
The History of HYBRID PARKING GARAGES
The History of HYBRID PARKING GARAGESThe History of HYBRID PARKING GARAGES
The History of HYBRID PARKING GARAGESWilliam Wieners
 
VIU EL PRESENT
VIU EL PRESENTVIU EL PRESENT
VIU EL PRESENTtonieitor
 

Destacado (20)

Sistemas hibridos autónomos
Sistemas hibridos autónomosSistemas hibridos autónomos
Sistemas hibridos autónomos
 
Jalar empujar push pull
Jalar empujar push pullJalar empujar push pull
Jalar empujar push pull
 
Baloncesto escolar valladolid idolos sport
Baloncesto escolar valladolid idolos sportBaloncesto escolar valladolid idolos sport
Baloncesto escolar valladolid idolos sport
 
160321 비엔나 커피클럽 - 오스트리아 대사관 무역대표부
160321 비엔나 커피클럽 - 오스트리아 대사관 무역대표부160321 비엔나 커피클럽 - 오스트리아 대사관 무역대표부
160321 비엔나 커피클럽 - 오스트리아 대사관 무역대표부
 
Roberto ahumedo gomez
Roberto ahumedo gomezRoberto ahumedo gomez
Roberto ahumedo gomez
 
Seguridad social y pensiones
Seguridad social y pensionesSeguridad social y pensiones
Seguridad social y pensiones
 
Programa CiU Calafell 2015 - 2019
Programa CiU Calafell 2015 - 2019Programa CiU Calafell 2015 - 2019
Programa CiU Calafell 2015 - 2019
 
Pedazodepastel
PedazodepastelPedazodepastel
Pedazodepastel
 
Add a human touch to online customer service
Add a human touch to online customer serviceAdd a human touch to online customer service
Add a human touch to online customer service
 
12 consejos de Iniciador para emprendedores
12 consejos de Iniciador para emprendedores12 consejos de Iniciador para emprendedores
12 consejos de Iniciador para emprendedores
 
Guia instalacion de GRETL
Guia instalacion de GRETLGuia instalacion de GRETL
Guia instalacion de GRETL
 
AEP Project
AEP ProjectAEP Project
AEP Project
 
Brandstorm Creative Group Portfolio
Brandstorm Creative Group PortfolioBrandstorm Creative Group Portfolio
Brandstorm Creative Group Portfolio
 
Pareja Estable
Pareja EstablePareja Estable
Pareja Estable
 
La planta...
La planta...La planta...
La planta...
 
Cleared Job Fair Job Seeker Handbook May 8, 2014, Crystal City, VA
Cleared Job Fair Job Seeker Handbook May 8, 2014, Crystal City, VACleared Job Fair Job Seeker Handbook May 8, 2014, Crystal City, VA
Cleared Job Fair Job Seeker Handbook May 8, 2014, Crystal City, VA
 
1
11
1
 
Colombia online
Colombia onlineColombia online
Colombia online
 
The History of HYBRID PARKING GARAGES
The History of HYBRID PARKING GARAGESThe History of HYBRID PARKING GARAGES
The History of HYBRID PARKING GARAGES
 
VIU EL PRESENT
VIU EL PRESENTVIU EL PRESENT
VIU EL PRESENT
 

Similar a Sistemas híbridos: integración de componentes de software

Introduccion_a_la_integracion_de_aplicaciones.ppt
Introduccion_a_la_integracion_de_aplicaciones.pptIntroduccion_a_la_integracion_de_aplicaciones.ppt
Introduccion_a_la_integracion_de_aplicaciones.pptIvonneRomero42
 
PD1_7moA_TS3_JavierLogroño.pptx
PD1_7moA_TS3_JavierLogroño.pptxPD1_7moA_TS3_JavierLogroño.pptx
PD1_7moA_TS3_JavierLogroño.pptxEddyJavierLogrooLen
 
Guia para el diseño modular de sistemas
Guia para el diseño modular de sistemasGuia para el diseño modular de sistemas
Guia para el diseño modular de sistemasOscar Centeno
 
Evolución e integración de aplicaciones legadas: comenzar de nuevo o actualizar?
Evolución e integración de aplicaciones legadas: comenzar de nuevo o actualizar?Evolución e integración de aplicaciones legadas: comenzar de nuevo o actualizar?
Evolución e integración de aplicaciones legadas: comenzar de nuevo o actualizar?Gilberto Pedraza Garcia
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentesUlises Cruz
 
Introducción-a-Microsoft.NET-[parte2]
Introducción-a-Microsoft.NET-[parte2]Introducción-a-Microsoft.NET-[parte2]
Introducción-a-Microsoft.NET-[parte2]Kevin Reaño
 
Introduccion a las Arquitecturas Limpias
Introduccion a las Arquitecturas LimpiasIntroduccion a las Arquitecturas Limpias
Introduccion a las Arquitecturas Limpiassolidussnake07
 
Gestores de Base de Datos
Gestores de Base de DatosGestores de Base de Datos
Gestores de Base de DatosRedrobanA
 
TechNoa 2007 - Visual Studio Team Systems
TechNoa 2007 - Visual Studio Team SystemsTechNoa 2007 - Visual Studio Team Systems
TechNoa 2007 - Visual Studio Team Systemsfmmeson
 
Desarrollo de software basado en lineas de productos
Desarrollo de software basado en lineas de productosDesarrollo de software basado en lineas de productos
Desarrollo de software basado en lineas de productosJOSEPHPC3000
 
Análisis y diseño de sistemas sesion 13 - diagrama de componentes y despliegue
Análisis y diseño de sistemas   sesion 13 - diagrama de componentes y despliegueAnálisis y diseño de sistemas   sesion 13 - diagrama de componentes y despliegue
Análisis y diseño de sistemas sesion 13 - diagrama de componentes y despliegueGianfrancoEduardoBra
 
Aspect Oriented Programming Middleware
Aspect Oriented Programming MiddlewareAspect Oriented Programming Middleware
Aspect Oriented Programming MiddlewareLenin Lozano
 
Control de Versiones - Uso de CVS en proyectos .NET
Control de Versiones - Uso de CVS en proyectos .NETControl de Versiones - Uso de CVS en proyectos .NET
Control de Versiones - Uso de CVS en proyectos .NETLa Red DBAccess
 

Similar a Sistemas híbridos: integración de componentes de software (20)

DISEÑO DE SISTEMAS.pptx
DISEÑO DE SISTEMAS.pptxDISEÑO DE SISTEMAS.pptx
DISEÑO DE SISTEMAS.pptx
 
Introduccion_a_la_integracion_de_aplicaciones.ppt
Introduccion_a_la_integracion_de_aplicaciones.pptIntroduccion_a_la_integracion_de_aplicaciones.ppt
Introduccion_a_la_integracion_de_aplicaciones.ppt
 
PD1_7moA_TS3_JavierLogroño.pptx
PD1_7moA_TS3_JavierLogroño.pptxPD1_7moA_TS3_JavierLogroño.pptx
PD1_7moA_TS3_JavierLogroño.pptx
 
Guia para el diseño modular de sistemas
Guia para el diseño modular de sistemasGuia para el diseño modular de sistemas
Guia para el diseño modular de sistemas
 
Evolución e integración de aplicaciones legadas: comenzar de nuevo o actualizar?
Evolución e integración de aplicaciones legadas: comenzar de nuevo o actualizar?Evolución e integración de aplicaciones legadas: comenzar de nuevo o actualizar?
Evolución e integración de aplicaciones legadas: comenzar de nuevo o actualizar?
 
Desarrollo de software basado en componentes
Desarrollo de software basado en componentesDesarrollo de software basado en componentes
Desarrollo de software basado en componentes
 
.Net framework
.Net framework.Net framework
.Net framework
 
Introducción-a-Microsoft.NET-[parte2]
Introducción-a-Microsoft.NET-[parte2]Introducción-a-Microsoft.NET-[parte2]
Introducción-a-Microsoft.NET-[parte2]
 
Introduccion a las Arquitecturas Limpias
Introduccion a las Arquitecturas LimpiasIntroduccion a las Arquitecturas Limpias
Introduccion a las Arquitecturas Limpias
 
Iis04 2007
Iis04 2007Iis04 2007
Iis04 2007
 
Gestores de Base de Datos
Gestores de Base de DatosGestores de Base de Datos
Gestores de Base de Datos
 
TechNoa 2007 - Visual Studio Team Systems
TechNoa 2007 - Visual Studio Team SystemsTechNoa 2007 - Visual Studio Team Systems
TechNoa 2007 - Visual Studio Team Systems
 
Bdoo
BdooBdoo
Bdoo
 
Desarrollo de software basado en lineas de productos
Desarrollo de software basado en lineas de productosDesarrollo de software basado en lineas de productos
Desarrollo de software basado en lineas de productos
 
Lps y mw
Lps y mwLps y mw
Lps y mw
 
Integracion Continua
Integracion ContinuaIntegracion Continua
Integracion Continua
 
Análisis y diseño de sistemas sesion 13 - diagrama de componentes y despliegue
Análisis y diseño de sistemas   sesion 13 - diagrama de componentes y despliegueAnálisis y diseño de sistemas   sesion 13 - diagrama de componentes y despliegue
Análisis y diseño de sistemas sesion 13 - diagrama de componentes y despliegue
 
Aspect Oriented Programming Middleware
Aspect Oriented Programming MiddlewareAspect Oriented Programming Middleware
Aspect Oriented Programming Middleware
 
ing del software
 ing del software  ing del software
ing del software
 
Control de Versiones - Uso de CVS en proyectos .NET
Control de Versiones - Uso de CVS en proyectos .NETControl de Versiones - Uso de CVS en proyectos .NET
Control de Versiones - Uso de CVS en proyectos .NET
 

Más de Juan Pablo Carvallo

5. construccion de modelos de calidad
5. construccion de modelos de calidad5. construccion de modelos de calidad
5. construccion de modelos de calidadJuan Pablo Carvallo
 
4. introduccion a los modelos de calidad
4. introduccion a los modelos de calidad4. introduccion a los modelos de calidad
4. introduccion a los modelos de calidadJuan Pablo Carvallo
 
3. conceptos de calidad del software
3. conceptos de calidad del software3. conceptos de calidad del software
3. conceptos de calidad del softwareJuan Pablo Carvallo
 
1. introduccion a la calidad del software
1. introduccion a la calidad del software1. introduccion a la calidad del software
1. introduccion a la calidad del softwareJuan Pablo Carvallo
 

Más de Juan Pablo Carvallo (6)

7. introduccion a cmmi
7. introduccion a cmmi7. introduccion a cmmi
7. introduccion a cmmi
 
6. seleccion de componentes
6. seleccion de componentes6. seleccion de componentes
6. seleccion de componentes
 
5. construccion de modelos de calidad
5. construccion de modelos de calidad5. construccion de modelos de calidad
5. construccion de modelos de calidad
 
4. introduccion a los modelos de calidad
4. introduccion a los modelos de calidad4. introduccion a los modelos de calidad
4. introduccion a los modelos de calidad
 
3. conceptos de calidad del software
3. conceptos de calidad del software3. conceptos de calidad del software
3. conceptos de calidad del software
 
1. introduccion a la calidad del software
1. introduccion a la calidad del software1. introduccion a la calidad del software
1. introduccion a la calidad del software
 

Sistemas híbridos: integración de componentes de software

  • 1. Sistemas Híbridos Dr. Juan Pablo Carvallo Vega jpcarvallo@gmail.com
  • 2. Sistemas híbridos  Una tendencia moderna en la Ingeniería de Software  Construir sistemas integrando componentes de diversos tipos y orígenes  Enfoque “oportunista”, orientado a la integración mas que al desarrollo Desarrollo a la medida ? ?? ??
  • 3. Corrientes Originales  International Conference on COTS-Based Software Systems 2001 (ICBSS’01)  Component Based Software Engineering  SEI – ESI – NRC  ESI – CBSE NET COTS $ OTS COTS, FOSS, etc.
  • 4. ¿Que es un Componente? SAP JDK MS Word Lotus Notes My SQL Windows XP Apache SQL Server
  • 5. Definición de componente COTS Un componente COTS es un producto: vendido, alquilado o licenciado al publico en general; ofrecido por un vendedor que intenta obtener una ganancia; soportado y evolucionado por el vendedor, quien mantiene los derechos intelectuales sobre el producto; disponible en múltiples copias idénticas; utilizado sin modificación interna por el consumidor. B.C. Meyers, P. Oberndorf. Managing Software Acquisition, Addison-Wesley, 2001.
  • 6. Beneficios esperados (Sistemas Basados en Compontentes) Sistemas basados en componentes:  Reducción en el tiempo de puesta en producción  Menores costos y riesgos  Incremento en la Portabilidad  Organización dedicada al soporte  Mejora en el proceso de negocios  Actualizaciones continuas Sistemas híbridos  Nivel adecuado de personalización  Generación de valor agregado  Control sobre la evolución de la funcionalidad critica para el negocio
  • 7. Desarrollo de Sistemas Basados en componentes OTS  La noción de construir sistemas escribiendo código ha sido remplazada por la idea de : “Construir un sistema adaptando e integrando componentes software existentes”  Enfoque en la integración en lugar de la implementación.  Integrabilidad es una consideración clave en la decisión de adquirir, reutilizar o construir los componentes.
  • 8. Tipos de Sistemas Basados en Componentes Sistemas “llave en mano” Sistemas intermedios Sistemas Integrados Construidos al rededor de una suit de productos (ej. Office, Netscape) Construidos al rededor de un componente (ej. Oracle, SAP) Construidos integrando varios componentes Solo se utiliza un componente El componente es la mayor parte del sistema Todos los componentes tienen un nivel de importancia similar Cartney. “Assembling Large Systems from COTS Components” SEI Monographs,1997 COTS Proceso de negocio Enfoque Vendedor Mantenimiento Sistema COTS solución 1 producto substancial (suit) Solución genérica Adaptación Uno Vendedor Sistema COTS intensivo Muchos integrados Mas flexible Integración Muchos - Proyecto - Vendedor Wallnau, Cartney, Pollak. “How COTS Software Affects the Design of COTS Intensive Systems” In SEI Interactive available at http://interactive.sei.cmu.edu/Features/1998.
  • 9. Sistemas Basados en Componentes: Ejemplo  EOSDIS misión para el cambio global del clima (NASA)  Integración de 29 fuentes de información (naves espaciales, aeronaves, superficiales)  Almacenes de datos muy grandes, procesamiento a largo termino (hasta el 2015), sistemas distribuidos  Estudios interdisciplinarios, muchos perfiles generando requisitos  Sistema complejo:  Monto de datos: 3 TB (2002) 20 PB (2010) ... por día  Bases de datos geoespaciales muy grandes; datos distribuidos en diferentes formatos  Algoritmos científicos complejos  Interfaz con 35 sistemas externos y productos  Sistema COTS agregado:  50 COTS equipos COTS dedicados  >40 actualizaciones por año (30 bajas, 10 medias, 1 alta)  Cerca de 400 parches por año  1.1 M de líneas de C++ y Java de código a la medida  periodo de desarrollo de 60 meses
  • 10. Ventajas y desventajas en el uso de componentes Plug and Play vs. Plug and Pray Ventajas Componentes Desventajas Componentes Disponibilidad inmediata; retorno de inversión inmediato Licencias, propiedad intelectual Evita costos de desarrollo y mantenimiento • Costos de licenciamiento • Costos de integración • Costos de soporte Funcionalidad muy rica • Demasiada funcionalidad compromete uso y rendimiento • Documentación limitada o no adecuada Nuevas versiones continuamente • No existe control sobre las nuevas versiones • Desarrollo desordenado • Estándares poco difundidos Organización dedicada al soporte • Dependencia del fabricante • O de la buena voluntad de la comunidad Independencia de Hw y Sw • La integración no es trivial • Fabricantes no la garantizan • Versiones limitadas a Hw y Sw
  • 11. Sistemas Basados en Componentes OTS: Impacto en el Ciclo de Vida Requisitos Diseño Implementación Arquitectura y Diseño Mercado Gestión del proyecto Contexto del Sistema Definiciones y decisiones simultaneas •Albert & Brownsword. “Meeting the Challenges of COTS Products” •1st ICCBSS 2002
  • 12. ? ? ? ?? Selección  Especificación de requisitos  Definición de criterios y prioridades  Que lenguaje de especificaciones?  Descripción y evaluación  Proceso iterativo e incremental  Dificultad para descubrir propiedades (cajas negras)  De donde obtener información  Que métricas utilizar, como testear  Selección de los mejores  Desajustes entre requisitos y características de los componentes  Comparación entre componentes similares Mercado de Componentes Componentes Seleccionados Sistemas Basados en Componentes: Ciclo de vida y retos
  • 13. Componentes Adaptados Adaptación  COTS no son diseñados para conectarse con otros  Adaptación (Parametrización, scripting, afinamiento…), envolturas o modificación del código son requeridas  Tares muy costosa en tiempo y recursos y difícil de lograr  Requiere dominio del sistema y de los componentes ? ? ? ?? Selección Mercado de Componentes Componentes Seleccionados Sistemas Basados en Componentes: Ciclo de vida y retos
  • 14. Parametrización / Adaptación  Tipos de parametrización  Personalización  Rendimiento  Simplemente poner el componente a trabajar  La mayoría de componentes requieren algún tipo de parametrización:  MS-Office: un par de tardes  Sistemas ERP: varios meses  Algunas actividades típica:  Especificación de parámetros  Especificación de la interfaz grafica (GUI)  Plug-ins (para agregar funcionalidad)
  • 15. Componentes Ensamblados Composición en la arquitectura seleccionada  Interacción de arquitectura, infraestructura y elementos middleware  “Pegado” de componente para que trabajen juntos  Varias arquitecturas son posibles:  Bases de datos, bus de mensajes, intercambio de archivos, interfaces de objetos Componentes Adaptados Adaptación ? ? ? ?? Selección Componentes Seleccionados Sistemas Basados en Componentes: Ciclo de vida y retos
  • 16. Integración de Componentes  Parametrización /Adaptación (tailoring)  Acomodar el componente COTS para un dominio particular  Adherir (gluing)  Integración de un componente COTS con otro o en un sistema  Modificación  Integración de un componente COTS con otro o en un sistema
  • 17.  Generación de envoltorios (Wrappers)  Utilización de tecnologías MiddleWare (CORBA, COM, RMI, etc.)  Transferencia de archivos e información estructurada (CSV, XML, TXT, etc.)  Integración con bases de datos (ODBC, OLE/DB, ADO, ETC) Componente 1 Componente 2 Stub Componente 1 OBJ OBJOBJ Sklt. Componente 2 Componente 1 Componente 2 Componente 1 Componente 2 Integración de Componentes
  • 18. Adherencia de componentes (1/2)  Algunas técnicas utilizadas para la interconexión de componentes COTS son:  Envoltorios (Wrappers): Aíslan el componente del exterior  Agregar u ocultar funcionalidad (pero sin modificar el componente COTS)  Proteger el componente de otros componentes COTS  Recuperación de errores  Reducir el impacto de los cambios en (ambos lados)  Utilización de estándares Middleware:  CORBA,  COM,  RMI
  • 19. Adherencia de componentes (2/2)  Transferencia de archivos  Mejor si utiliza estándares abiertos (XML)  Problemas con la integración de datos, replicación, etc.  Mantenimiento: ¿Que pasa si el formato de los datos varia?  Filtros  Control de flujo de trabajo: Los componentes COTS son invocados cuando se requieren  Integración de bases de datos:  Utilización del mismo esquema  Conectividad ODBC, ADO, OLE/DB  Combinación de las anteriores
  • 20. Modificación (1/2)  Dos tipos:  Agregar  Mas fácil integrar que solicitar ayuda  Mejorada si existen librerías ej. APIs  Modificar / Eliminar  Quien ayudara cuando surjan los problemas?
  • 21. Modificación (2/2)  Por que evitar la modificación:  Existen licencias, garantías y contratos de soporte de por medio  Incluso si el vendedor esta de acuerdo nuevas versiones del producto saldrán al mercado  Puede romper con los estándares  Dificulta la evolución  El trabajo debe repetirse para cada versión  Puede imposibilitar el beneficios de nuevas versiones  Muchos autores no consideran la modificación una practica de la ingeniería de software basada en componentes  De todas formas en la practica no se realiza
  • 22. Componentes Actualizados Evolución a COTS actualizados  Mercado en continua evolución:  Cientos de nuevos productos y actualizaciones  Nuevos productos no son idénticos a los anteriores  Reemplazo de componentes puede ser muy difícil  Reentrenamiento y testeo pueden ser requeridos Componentes Ensamblados Componentes Adaptados Adaptación ? ? ? ?? Selección Componentes Seleccionados Composición en la arquitectura seleccionada Sistemas Basados en Componentes: Ciclo de vida y retos
  • 23. Verificación del Sistema  Que verificar:  Componentes COTS individuales  Cajas negras  Uso de modelos de calidad (-ilities)  No es fácil y requiere pericia y experiencia  Código de adherencia de componetes  Integración del sistema  Formato de datos, plataforma middleware, etc.  Análisis de sensibilidad -> “Que pasa si?”  -ilities del sistema, los componentes se pueden comportar diferente cuando se juntan
  • 24. Software de Gestión Nomina ERP CRM BSC CallCenter Tasacióny Facturación Mediación Planta Externa Desarrollo interno: Estratégicos para el negocio. Sistemas Legados Sistemas Desarrollados Sistemas Adquiridos Mapeo a la Arquitectura Integración, Interoperabilidad • Adopción transparente • Delimitación de ámbitos. • Migración Activos de Explotación Integración de Componentes