PDF de programación - Tecnologías para el desarrollo de aplicaciones distribuidas

Imágen de pdf Tecnologías para el desarrollo de aplicaciones distribuidas

Tecnologías para el desarrollo de aplicaciones distribuidasgráfica de visualizaciones

Publicado el 21 de Julio del 2020
2.496 visualizaciones desde el 21 de Julio del 2020
792,0 KB
16 paginas
Creado hace 18a (27/04/2006)
Tecnologías para el desarrollo de

aplicaciones distribuidas

Lidia Fuentes

Component&Aspect-Oriented
Software Development Group

http://caosd.lcc.uma.es

Departamento de Lenguajes y Ciencias de la Computación

Universidad de Málaga. España

[email protected]

Desarrollo de Software Basado

en Componentes

Lidia Fuentes Fernández

Índice

Desarrollo de software basado en componentes

Modelos y plataformas de componentes
Mercado global de componentes (componentes COTS)
Desarrollo de software orientado a aspectos

Motivación del desarrollo orientado a aspectos
El lenguaje AspectJ

Conferencia del 3 de mayo

Otras propuestas de aspectos
Separación de aspectos en las plataformas de componentes

Ingeniería del Software Orientada a Agentes

Concepto de Agente
La Arquitectura de Referencia FIPA
Componentes y aspectos al servicios de los agentes

Lidia Fuentes Fernández

Antecedentes
Programación de Sistemas Abiertos y Distribuidos

Deficiencias de la Programación Orientada a Objetos (POO):

Dificultad a la hora de reutilizar objetos

Acoplamiento entre tipos e implementación (mejorado con la

definición de interfaces)

Extensión caja blanca

ClaseA obja=new ClaseA();
obja.m1(10);

A

+m1( i : int )

B

Lidia Fuentes Fernández

Lidia Fuentes Fernández

Antecedentes
Programación de Sistemas Abiertos y Distribuidos

Antecedentes
Programación de Sistemas Abiertos y Distribuidos

Deficiencias de la Programación Orientada a Objetos

(POO):
Noción de composición no explícita (extensión caja negra)

Implementación
A1

B1 b=new B1();
Int i=b.m1();

Implementación
B1

Composición en OO

m1();

Implementación
A1

Implementación
B1

Composición caja negra

5

Deficiencias de la Programación Orientada a Objetos

(POO):
Paso de mensajes síncrono
No incorpora aspectos de mercadotecnia
Desarrollo de aplicaciones distribuidas mediante

mecanismos rudimentarios (sockets, RPC)

2

4

6

1

Lidia Fuentes Fernández

Lidia Fuentes Fernández

Antecedentes
Programación de Sistemas Abiertos y Distribuidos

Plataformas Distribuidas Orientadas a Objetos:
Bus de datos para la comunicación entre objetos
Transparencia de la heterogeneidad, dispersión y

activación de objetos

Lenguaje de Descripción de Interfaces (IDL), utilizando

mecanismos de extensión OO (ej: herencia)

Repositorios de interfaces
Comunicación síncrona basada en RPC
Servicios (seguridad, transacciones, ...)
Ej: CORBA (1.1, 2.0), JavaBeans y COM

Estructura básica de un ORB
Implementación

Cliente

DII

IDL Stub

Servidor

DSI

IDLSkel

Adaptador de Objetos

Interfaz ORB

Object Request Broker

DII: Dynamic Invocation Interface
–Un stub permite que un cliente invoque una operación remota como si fuese local.
–Un skeleton permite que una invocación remota recibida por un servidor

DSI: Dynamic Skeleton Interface

7

sea enviada al sirviente adecuado

8

Lidia Fuentes Fernández

Lidia Fuentes Fernández

Antecedentes
Programación de Sistemas Abiertos y Distribuidos

Desarrollo de Software Basado en Componentes (Component-Based

Software Development, CBSD)
“Extensión” de la POO
Basada en la noción de COMPONENTE
Incluye nociones de mercadotecnia (componentes COTS, o Commercia

off-the shelf)

Unidad de composición de aplicaciones software que posee un
conjunto de requisitos, y que ha de poder ser desarrollado,
adquirido, incorporado al sistema y compuesto con otros
componentes, de forma independiente en tiempo y espacio.
Szyperski, 1998

Desarrollo de una Aplicación
Basada en Componentes
Descomposición funcional en una colección de componentes
Arquitectura de la aplicación (AA)

Colección de componentes

Propios -> Desarrollo top-down
Componentes COTS (adquiridos en el mercado de

componentes) -> Desarrollo bottom-up

Información de composición de componentes (coordinación)

Dentro de los propios componentes
Incluye el uso de adaptadores cuando los componentes

no son compatibles

Ejecución en una plataforma de componentes

9

10

Lidia Fuentes Fernández

Lidia Fuentes Fernández

Especificación de la Arquitectura
de la aplicación (AA)

LDAs (ADLs, Architecture Description Languages)

Basados en formalismos
No generan código válido, entonces se pierde la información

En las plataformas de componentes

Interfaz del componente

Siempre aparece la interfaz proporcionada
Tendencia a incorporar la interfaz requerida, eventos,

excepciones, protocolos, ...

Descripción de componentes

Información de despliegue (deployment) en XML en

contenedores, servicios utilizados, servidores, ...

Conexiones entre componentes

Suele estar mezclada en el código de implementación
No se tiene una visión global de la arquitectura de la aplicación
11

Modelos/Plataformas de
Componentes
CCM (CORBA Component Model), CCM/CORBA

Evolución de la plataforma distribuida OO, CORBA

(Common Object Request Broker Architecture) de
OMG

El modelo de componentes más puro y evolucionado de

los “comerciales”

EJB (Enterprise JavaBeans) EJB/J2EE

Evolución del modelo JavaBeans de Java/Sun

Microsoft ofrece la plataforma .NET, pero no incluye un

nuevo modelo de componentes aparte de COM

12

2

Lidia Fuentes Fernández

Lidia Fuentes Fernández

El modelo CCM

Interfaz de un componente CCM

Un modelo orientado a componentes distribuidos
Define una arquitectura para diseñar componentes y sus

interacciones
Tanto del lado del cliente (GUIs) como del servidor

(componentes de negocio)

Define una tecnología de “paquetes” para “desplegar”

componentes ejecutables, binarios multi-lenguaje

Mecanismo de “contenedor” para inyectar código de

persistencia, transacciones, seguridad, …

Modelo multi-sistema operativo, lenguaje, …

En contraposición a EJB que está basado en Java y a

.NET basado en productos de Microsoft

Lidia Fuentes Fernández

Componente CCM

Lidia Fuentes Fernández

Ejemplo: Filósofos comiendo
Interfaz del Componente Tenedor

13

15

17

Atributos (attributes)
Facetas (facets)

Interfaz proporcionada
Receptáculos (receptacles)

Interfaz requerida

Fuente de eventos (event sources)
Sumidero de eventos (event sinks)

Lidia Fuentes Fernández

Ejemplo: Filósofos comiendo
Interfaz del Componente Filósofo

14

16

Lidia Fuentes Fernández

Ejemplo: Filósofos comiendo
Componente Tenedor

Descriptor de componente

18

3

Lidia Fuentes Fernández

Lidia Fuentes Fernández

Ejemplo: Filósofos comiendo
Conexión entre componentes

Implementaciones CCM
Open Source
OpenCCM

http://www.objectweb.org/OpenCCM/

MicoCCM

http://www.fpx.de/MicoCCM/

FreeCCM

http://sourceforge.net/projects/cif/

19

20

Lidia Fuentes Fernández

Lidia Fuentes Fernández

CCM vs EJB, COM y .NET

Similitudes con EJB

Los componentes CORBA se crean y gestionan en “homes”
Se ejecutan en contenedores pudiendo acceder a los servicios comunes de

forma transparente

Similitudes con COM

Residen en servidores de aplicaciones de componentes

Pueden definirse varias interfaces tanto de entrada como de salida

Tanto envío de mensajes síncronos como eventos asíncronos

Capacidad de introspección

Similitudes con .NET

Pueden desarrollarse en diferentes lenguajes de programación
Se pueden empaquetar para ser distribuidos

Lo que hace CCM diferente

Una aplicación es realmente distribuida

Se puede desplegar y ejecutar en nodos distribuidos

Un componente CCM se puede segmentar en diferentes clases

Mercado Global de
Componentes
Reutilización de componentes externos (Commercial-Off-

The-Shelf, COTS)

COTS es una clase especial de componente software,

normalmente de grano grueso, que presenta estas
características [Meyer 2001]:
son vendidos o licenciados al público en general
los mantiene y actualiza el propio vendedor, quien

mantiene los derechos de la propiedad intelectual

están disponibles en forma de múltiples copias, todas

idénticas entre sí

su código no puede ser modificado por el usuario

22

Lidia Fuentes Fernández

Mercado Global de
Componentes
Actores

Programadores autónomos
Proveedores de Software Independientes,

intermediarios, ...

Usuarios compradores
Catálogos de componentes
Extensión de IDLs para incorporar información de

mercadotecnia
Autor, Calidad de Servicio, Licencia, Demos,....

Ej: componentsource.com, www.flashline.com,

www.wrldcomp.com

24

21

23

4

Lidia Fuentes Fernández

Mercado Global de
Componentes
Beneficios del uso de componentes COTS

Mayor estabilidad del software
Mayor eficiencia del software
Reduce el tiempo de desarrollo
Reduce el coste del producto final

Lidia Fuentes Fernández

Lidia Fuentes Fernández

componentsource.com: venta

componentsource.com:compra

Lidia Fuentes Fernández

componentsource.com:encargo

25

27

Lidia Fuentes Fernández

Desarrollo Basado en COTS

El uso de COTS sugiere nuevos ciclos de

desarrollo

El éxito del uso de COTS depende de la eficacia

del proceso de selección

Evaluación

Selección

Adap
  • Links de descarga
http://lwp-l.com/pdf17928

Comentarios de: Tecnologías para el desarrollo de aplicaciones distribuidas (0)


No hay comentarios
 

Comentar...

Nombre
Correo (no se visualiza en la web)
Valoración
Comentarios...
CerrarCerrar
CerrarCerrar
Cerrar

Tienes que ser un usuario registrado para poder insertar imágenes, archivos y/o videos.

Puedes registrarte o validarte desde aquí.

Codigo
Negrita
Subrayado
Tachado
Cursiva
Insertar enlace
Imagen externa
Emoticon
Tabular
Centrar
Titulo
Linea
Disminuir
Aumentar
Vista preliminar
sonreir
dientes
lengua
guiño
enfadado
confundido
llorar
avergonzado
sorprendido
triste
sol
estrella
jarra
camara
taza de cafe
email
beso
bombilla
amor
mal
bien
Es necesario revisar y aceptar las políticas de privacidad