Introducción al Software basado en Componentes. Motivación. Un poco de historia.



Documentos relacionados
Arquitectura cliente/servidor

Arquitectura cliente/servidor

CAPITULO 3 MOVILIDAD EN LA NAVEGACIÓN Y ALMACENAMIENTO EN BASES DE DATOS

Maestría en Ingeniería de Software. Sistemas Distribuidos en Web I. MCC. Carlos Albeto Ochoa Rivera

Arquitectura Cliente/Servidor


Conceptos de redes. LAN (Local Area Network) WAN (Wide Area Network)

1. Introducción 2. Historia 3. Características clave 4. Cuestiones de diseño

Capítulo 5. Cliente-Servidor.

Capítulo 7: Introducción a la dinámica de servicios Web

UNIVERSIDAD DE ORIENTE FACULTAD DE ICIENCIAS ECONOMICAS LAS REDES I. Licda. Consuelo Eleticia Sandoval

AUTORES: OBREGON CARLA ROMERO MARIA MARACAIBO FEBRERO 2012

Capítulo 4. Prueba de Adaptabilidad

Documento de Arquitectura de Software. KunaySoft. Autores: Juan Camilo González Vargas. Javier Leonardo Parra Laguna

Redes I Clase # 3. Licda. Consuelo E. Sandoval

I NTRODUCCIÓN 1. ORDENADOR E INFORMÁTICA

Manual de Procedimientos

Resumen Ejecutivo. Sistemas de Gestión, Conversión y Difusión de Contenidos Audiovisuales 3D para Pantallas Autoestereoscópicas

GUÍA TÉCNICA. Desarrollo de Proyectos en Plataforma Liferay en el Gobierno de Extremadura

Tema 4. Diseño arquitectónico.

Desarrollo de Servicios Web con JBuilder

Sistemas de Operación II

Es una colección de datos operativos almacenados y utilizados por los programadores de aplicaciones y por usuarios finales de muy diversa índole!

Guía basada en conceptos de usabilidad web

4. Base de datos XML nativa: Marklogic

servicios. El API es definido al nivel de código fuente y proporciona el nivel de

RED MODELO OSI TOPOLOGIAS

FICHEROS Y BASES DE DATOS (E44) 3º INGENIERÍA EN INFORMÁTICA. Tema 5. Sistemas de Bases de Datos. frente a Sistemas de Ficheros

Introducción. Ciclo de vida de los Sistemas de Información. Diseño Conceptual

INTRODUCCIÓN A LAS REDES INFORMÁTICAS

Los mayores cambios se dieron en las décadas de los setenta, atribuidos principalmente a dos causas:

SISTEMAS OPERATIVOS AVANZADOS

INTRODUCCIÓN A LAS BASES DE DATOS

Correspondencias entre taxonomías XBRL y ontologías en OWL Unai Aguilera, Joseba Abaitua Universidad de Deusto, EmergiaTech

GUIA PROGRAMACIÓN ORIENTADA A OBJETOS

Porqué Nemetschek cambió su sistema de protección de software a NemSLock?

JAVA EE 5. Arquitectura, conceptos y ejemplos.

Arquitectura. 1.- Aplicaciones Web. Definición. Arquitectura clásica. Contenidos. 1.- Aplicaciones Web

Funciones del Administrador de Base de Datos. Ing. Anaylen López, MSc Base de Datos II

MONRET S.A.C.

Sistemas de Operación II

Reglamento Interno Computación

(altas de trabajadores afectados por EREs): guía para las empresas

Administración Pública. Intercambio de datos y sustitución de certificados en soporte papel. HP Consulting & Integration

Se trata de una herramienta de desarrollo visual muy fácil de usar, con la que incluso los no programadores podrán desarrollar sus aplicaciones.

ANEXO XII. Denominación: Administración y programación en sistemas de planificación de recursos empresariales y de gestión de relaciones con clientes.

Especificación de la secuencia de mensajes que se han de intercambiar. Especificación del formato de los datos en los mensajes.

ANEXOS. Algoritmo que genera un valor hash de algún dato, como una clave de. mensaje o de sesión. Con un buen algoritmo de hash, los cambios que se

Aplicaciones y Servicios Web (Web Services)

Los requisitos de accesibilidad en un proyecto software. Implicaciones de usuarios discapacitados en el proceso software

Modulo I. Introducción a la Programación Web. 1.1 Servidor Web.

Arquitectura de Software

Módulo 2. Inicio con Java

La utilización de las diferentes aplicaciones o servicios de Internet se lleva a cabo respondiendo al llamado modelo cliente-servidor.

Antes de utilizar este servicio, lea detenidamente este manual y téngalo a mano para consultarlo más adelante.

Introducción a Visual Studio.Net

BASES DE DATOS TEMA 3 MODELO ENTIDAD - RELACIÓN

MICROSOFT ACCESS 2010

Tema 16. Impresoras. Administración de Sistemas Operativos. Mª Pilar González Férez

CRECE CON INTERNET. Empieza a navegar por la Red

MDA: Arquitectura Dirigida por Modelos

Gestión Documental con Microsoft Office SharePoint Server 2007 (MOSS) Ignacio López - Ingeniero en Informática Software Architect en Alhambra-Eidos

Tema 1. Introducción a JAVA

Instructivo de Microsoft Windows

MANUAL DE USUARIO DE OFICINA CONECTADA

(Altas de prestaciones por ERE S): guía para las empresas

4 ARQUITECTURA DE COMUNICACIONES

Conceptos iniciales. Sistema informático. La informática. Componentes del ordenador

RESUMEN. HERRAMIENTA DE MONITORIZACIÓN DE SERVIDORES Y EQUIPOS DE RED i2basquenms RESUMEN TRABAJO FIN DE GRADO

La gestión de contenidos en el nuevo Portal del Ministerio de Hacienda

SISTEMAS DE INFORMACIÓN II TEORÍA

Wiip Surveillance. Sistema de gestión de rondas de vigilancia. Wiip Systems C.B. S.L

Bases de Datos 3º Informática de Sistemas

Versión: 01. Fecha: 01/04/2013. Código: F004-P006-GFPI GUÍA DE APRENDIZAJE Nº 1 1. IDENTIFICACIÓN DE LA GUIA DE APRENDIZAJE

DEPARTAMENTO: Informática. MATERIA: Programación. NIVEL: 1º Desarrollo de Aplicaciones Multiplataforma

GLOSARIO DE TÉRMINOS

7.1 Java vs.net, la lucha se acrecienta

Introducción Programar es enseñar Iniciación a la programación Finalidad de este libro

GLOSARIO. Arquitectura: Funcionamiento, estructura y diseño de una plataforma de desarrollo.

Introducción a la Computación

Capítulo 3 Diseño del Sistema de Administración de Información de Bajo Costo para un Negocio Franquiciable

Programación estructurada (Interfaces Windows y Unix)

Solución GeoSAS. Otros módulos

Servicio de hospedaje de servidores

CURSO DE ESPECIALISTA EN DESARROLLO DE APLICACIONES WEB

OSORES DARDO LU: 2238

Introducción a las redes de computadores

IBM SPSS Statistics Versión 22. Instrucciones de instalación para Linux (Licencia concurrente)

1. Introducción Perfiles de Usuarios Definir el primer perfil Añadir perfiles Introducción a Internet

Un Navegador es un programa que nos conecta a Internet y nos permite organizar nuestro

Microsoft Access 2007 (Completo)

UNIVERSIDAD ESTATAL DE MILAGRO

INTRODUCCIÓN A LOS SISTEMAS GESTORES DE BASE DE DATOS

Seguimiento y Trazabilidad de Explosivos

1.1.- Introducción a la Web Vemos una introducción al medio donde se encajan los lenguajes que vamos a tratar: la web.

SISTEMAS INFORMÁTICOS EN TIEMPO REAL 2º Ingeniería Industrial MANUAL DE HERRAMIENTAS SOFTWARE PARA PROGRAMACIÓN EN UNIX

Introduccion al Lenguaje C. Omar Andrés Zapata Mesa Grupo de Fenomenología de Interacciones Fundamentales, (Gfif) Universidad de Antioquia

Alcatel-Lucent VitalQIP Appliance Manager

MICROSOFT ACCESS 2003

COMPONENTES SOFTWARE LIBRE BASES DE DATOS

Transcripción:

Introducción al Software basado en Componentes Juan José Moreno Navarro Curso de Doctorado LSIIS (junto con Lars-Ake Fredlund) Motivación Antecedentes: Sistemas distribuidos y el problema de la reutilización. Nuevos marcos de aplicación del software y nuevas formas de abordarlos. Dominios de aplicación Un poco de historia. Sistemas Distribuidos Sistemas Abiertos El problema de la reutilización. Documentos abiertos. Evolución de los modelos de programación. WWW Comercialización: Software a la carta.

Sistemas Distribuidos Programas concurrentes ejecutados en diferentes procesadores sin memoria común Extensiones y nuevos mecanismos de concurrencia (paso de mensajes, RPC, sockets). Dependen de un medio físico de comunicación: cable serie, bus interno (transputers), red, etc. Problemas de fiabilidad - Tolerancia a fallos hardware y software. Sistemas Abiertos Sistemas distribuidos que integran programas heterogéneos e incluso aplicaciones ya existentes (legacy systems). Necesitan modelos nuevos ya que los mecanismos y las lógicas aplicables a la concurrencia no son válidos. Sistemas Abiertos Actores: Objetos con un thread interno (activos) mensajes asíncronos comunicación punto a punto una dirección que puede transmitirse lo que permite configuraciones dinámicas los actores pueden crear otros actores (dinámismo) Muchas versiones (sincronismo local, protocolos de interacción entre actores, tiempo real, agrupación de actores, etc.)

Sistemas Abiertos Modelos de coordinación Construir programas pegando diferentes piezas activas: programa, tarea, thread,... Entidades a coordinar + medio de coordinación + leyes de coordinación Lenguaje de coordinación: elementos lingüísticos para describir modelos de coordinación. Orientados a datos: Modelos de pizarra - Linda Orientados al control Sistemas Abiertos Filtros: Permiten modificar el modelo de objetos separando los datos de la computación y sincronización Se añaden a los objetos manipulando los mensajes de salida y/o de entrada. Patrón de aceptación para ver si lo manipula o los deja pasar. Acciones con un mensaje: Suspenderlo hasta que se verifique una condición. Dejarlo pasar sin modificarlo. Modificarlo de acuerdo al comportamiento del filtro. Pasarlo a otro objeto distinto al original. Responderlo. El problema de la Reutilización Un viejo problema en la producción de software: Reutilizar elementos ya realizados. Ejemplo: UNIX - La búsqueda con expresiones regulares estaba repetido en varias aplicaciones (grep, ls, ll,...) Ventajas: Productivas (menor esfuerzo de desarrollo) Los elementos reutilizados no hay que probarlos. Se reutiliza todo (análisis, diseño, código, documentación,...) Comúnmente código en bibliotecas de programas.

El problema de la Reutilización Problemas de reutilizar bibliotecas: Exige recompilar, reconfigurar, reinstalar la aplicación cuando se modifica una parte. Difícil comercialización: exige entregar código (aunque solo sea objeto) que puede entrar en su proceso productivo. No puede facturarse por uso. Ocupa espacio en nuestro sistema y exige un serio control de configuración. Cuántas aplicaciones Windows utilizan el corrector ortográfico? Cuántas lo usarán? Netscape debe hacer el suyo? El problema de la Reutilización Sugerencia: Reutilizar binarios. A favor: Más comercializables. Más fáciles de actualizar. No se recompila. En contra: Más difíciles de documentar y especificar. Mecanismo de llamadas más complejo de usar. Los binarios no son compatibles. Bibliotecas dinámicas o más allá. Documentos abiertos OpenDoc: Uno de los primeros sistemas de componentes en un marco de aplicación concreto. Apple OMG Documentos compuestos: documentos basados en elementos distribuidos que a su vez pueden ser documentos. LiveObjects o Partes: Pertenecen a un documento compuesto y contiene datos (que pueden contener Partes). Cada parte tiene asociado un editor.

Documentos abiertos Mecanismos básicos para la gestión de documentos compuestos: Estructura de archivos (Bento): Maneja versiones, permite asociar propiedades o etiquetas a los documentos que permiten manipularlos de cierta forma. Transferencia de datos entre partes: Usa SOM (modelo de componentes de IBM) para empaquetar y distribuir las partes. Arquitectura para configurar y manejar partes: Open Scripting Architecture (variante de Apple Script) basada en objetos lógicos, eventos semánticos e independencia del lenguaje de configuración (script) que se utilice. Modelos de programación Evolución natural: Programación modular. Programación orientada a objetos. Programación orientada a aspectos. Programación orientada a componentes. Modelos de programación El problema de la incompatibilidad de los binarios se resuelve volviendo a las máquinas abstractas que ejecutan código intermedio: Primeros compiladores. Programación declarativa Java

Modelos de programación Java: Lenguaje orientado a objetos casi puro. Herencia simple. Recogida de basura automática - no hay punteros. Máquina abstracta de Java (JVM) independiente de la plataforma que ejecuta código intermedio (bytecodes). Applets: Pequeñas aplicaciones que pueden ser transferidas por la red y ejecutadas en la máquina cliente. Diferente a los CGIs - Los clientes traen el código y lo ejecutan ellos en vez de ser el servidor el que ejecuta el código. Modelos de programación Java: Applets: la seguridad se comprueba en la carga y en la ejecución impidiéndoseles acceder a los recursos locales. Los objetos son serializables: se transforman en texto en una única cadena, con lo que pueden transmitirse. RMI (Remote Method Invocation) implementa un modelo cliente-servidor en donde el cliente puede invocar de forma remota los métodos del servidor. JDBC: permite a los applets y aplicaciones Java un acceso a bases de datos usando SQL. Reflexión: Capacidad limitada para metaprogramación: inspección de objetos y métodos Modelos de programación Arquitectura de SUN de aplicaciones WEB/Java RMI JDBC Applets Servidores B.D. Cliente: Interfaces de usuario Limpia y sencilla. Aplicaciones (Lógica del negocio) Almacenamiento persistente de datos Ineficiente: los applets no pueden acceder a los recurso locales luego muchas utilidades básicas requieren mucho intercambio de información entre los clientes y los servidores. WebTop servers

Modelos de programación Progamación orientada a aspectos Los programas se descomponen en diferentes aspectos, encargándose cada uno de ellos de un requisito independiente (prestaciones, seguridad, concurrencia, fiabilidad) Los aspectos se desarrollan de forma separada e, incluso, en diferentes lenguajes. Weaber (tejedor): herramienta que se encarga de juntar todos los aspectos ordenadamente entre sí. Modelo atractivo pero complicado/poco desarrollado. WWW Primera generación: Publicación de contenidos con HTTP/HTML. Segunda generación: Posibilidad de crear páginas dinámicamente, formularios, bases de datos. CGI (Common Gateway Interface) que define una forma estándar para que los procesos servidores puedan ejecutar aplicaciones y procesar la información introducida por el usuario. WWW Tercera generación: Se asume que todo es WEB: lo de dentro (corporativo), lo de fuera y del medio (soporte, nodos, etc.) Asume la movilidad de los usuarios: reciben los mismos servicios desde diferentes lugares y a diferentes terminales. Asume la seguridad del mundo conectado Mayor estructuración de los datos (XML). Servicios web

Software a la carta Las empresas de software quieren vender productos ampliables sin necesidad de reinstalar las aplicaciones cuando se adquiere un producto suyo: Plug and play No requiere ningún cambio en el sw/hardware. Software a la carta Windows: Nuevo hardware / drivers. Nuevo producto Office: Reutiliza componentes anteriores (corrector ortográfico, inserción/manejo de hojas de cálculo, macros en Visual Basic, etc.) Impresoras disponibles para todas las nuevas aplicaciones. Mismo proveedor. Software a la carta Netscape: Admite ampliaciones con nuevos El repertorio de plug-ins no está prefijado de antemano. Surgen nuevos que se adaptan. En el desarrollo de netscape no se han previsto todos los posibles. Los desarrolladores de estos plug-ins no saben cómo está hecho netscape. Diferente proveedor.

Dominios de aplicación Sistemas operativos y sus aplicaciones: Windows / Gnome Comercio electrónico: Pocas variaciones. Comercialización de componentes: COTS (Components on the self) Servicios web: Componente que puede usarse en los programas propios accesible via protocolos de web estándares. Nuevo modelo de desarrollo: Basado en estándares WEB Inventario Suministrador A Su negocio Suministrador B Petición de ordenes Suministrador r C Clientes Conexión (Web) Búsqueda (UDDI) Definición (XML) Transacción (SOAP) Componentes en la WWW Dispositivos Experiencia de los usuarios Componentes Infraestructura 9

Organización del curso Programación basada en componentes Arquitecturas Software Un nuevo modelo de desarrollo de software Formalización del software basado en componentes Contratos: Validación y verificación Erlang: Ejemplo de lenguaje Servicios Web