Publicado el 14 de Enero del 2017
922 visualizaciones desde el 14 de Enero del 2017
481,7 KB
14 paginas
Creado hace 16a (25/11/2008)
PROGRAMACION CONCURRENTE
VI.3: Objetos distribuidos
José M. Drake
Notas:
Posibilidades que ofrece Java para la comunicación en red: Socket,RMI y URL.
1
Libertad en la representación abstracta.
Dominio del problema
Problema del
mundo real
Solución en el
mundo real
Resultados
del problema
Representación
abstracta del
problema
Interpretación
de los datos
salida
Solución en el
computador
Formulación
informática
Datos de salida
Dominio solución
Procodis’08: VI.3- Transacciones José M. Drake
2
Notas:
La complejidad de los problemas que se resuelven es consecuencia del desacoplo entre el lenguaje y
los conceptos del dominio del problema que se resuelve y los del dominio informático.
El cliente que plantea el problema y el ingeniero que lo resuelve mediante una aplicación software,
manejan diferentes interpretaciones del problema:
•Tiene diferente visión de su naturaleza.
•Conciben soluciones diferentes.
•Intercambian entre ellos especificaciones muy complejas.
Pequeños cambios en las especificaciones del problema pueden requerir cambios muy importantes
(cualitativamente y cuantitativamente) en la correspondiente formulación informática.
2
Objetos y componentes
Los objetos tradicionales son módulos de código que encapsulan operaciones e
información y que son capaces de modelar conceptos del dominio de aplicación.
La metodología orientada a objetos es una estrategia de descomposición del
código que facilita:
Descomponibilidad modular: Permita descomponer sucesivamente cada módulo
en otros mas simples que puedan ser abordados por sí.
Componibilidad modular: Genere módulos que puedan ser libremente combinados
para generar módulos mas complejos.
Comprensibilidad modular: Cada módulo que se genera puede ser descrito y
comprendido por sí y con independencia de otros.
Continuidad modular: La descomposición debe ser tal que pequeñas
modificaciones de las especificación del problema induzca cambios en poco módulos y
en proporción de las modificaciones introducidas.
Protección modular: Los errores que se produzcan en un módulo queden confinados
y puedan tratarse en él.
Soporte inherente de la concurrencia: La concurrencia propia de los dominios
reales se transfiere de forma natural a la aplicación.
Los objetos tradicionales son elementos incrustados en la aplicación que sólo
conocen los diseñadores y programadores.
Procodis’08: VI.3- Transacciones José M. Drake
3
Notas:
3
Objetos distribuidos: Componentes
Un objeto distribuido es un módulo de código con plena
autonomía que se puede instanciar en cualquier nudo de la red
y a cuyos servicios pueden acceder clientes ubicados en
cualquier otro nudo.
Un componente es un módulo autocontenido concebido para
la reutilización, que tiene especificado:
Los servicios que ofrece (como los objetos).
Los requerimientos que requieren para poder ser instalados en un
nudo.
La posibilidades de configuración que ofrecen.
Información instrospectiva que describe su naturaleza y funcionalidad.
Un componente es un objetos distribuido que no está ligado a
ninguna aplicación, que se puede instanciar en cualquier nudo
y ser gestionado por herramientas automáticas.
Procodis’08: VI.3- Transacciones José M. Drake
4
Notas:
4
Ventajas de los objetos distribuidos:
Los objetos encapsulan la funcionalidad y la información de negocio en
elementos que pueden ubicarse en cualquier punto del sistema distribuido.
Los sistemas cliente/servidor construidos mediante objetos permiten
adaptar la granularidad de la descomposición al nivel que se quiera.
Ofrecen una alta capacidad de dar información de si mismo, y en
consecuencia pueden ser manejados por herramientas visuales que facilitan
su localización y manejo por operadores, o por aplicaciones de gestión
automática del sistema.
La interfaz y la implementación de un componentes son independientes, por
lo que especialmente facilitan su mantenimiento y sustitución.
Los componentes son especialmente idóneos para encapsular aplicaciones
legadas. Remozándolas con una interfaz de componente se les proporciona
nuevas opciones de conectividad e integración.
Existen middlewares de distribución estandarizados que facilitan el
ensamblado de componentes.
Procodis’08: VI.3- Transacciones José M. Drake
5
Notas:
5
Perspectivas de la tecnologías de componentes
Va a modificar el papel de los diseñadores de aplicaciones. Dejaran de ser
programadores y pasarán a ser ensambladores.
Los pequeños desarrolladores y los ISV (Independent Software Vendors)
pueden crear productos que se integren de forma sencilla con el software
existente.
Los grandes desarrolladores y los fabricantes de ERP (Enterprise Resource
Planning) simplificaran la complejidad de sus aplicaciones utilizando
componentes como cajas negras.
Se generará un mercado de software orientados a mercados específicos que
ofrecerá catálogos de componentes que podrán integrarse para construir
nuevas aplicaciones o para enriquecer las existentes.
La metodología de componentes, reducen la complejidad de las
aplicaciones, el costo de desarrollo y el tiempo de acceso al mercado. Las
aplicaciones serán mas mantenibles, mas independiente de las plataformas,
y permitirán un mayor nivel de calidad.
Procodis’08: VI.3- Transacciones José M. Drake
6
Notas:
6
¿Que es un componente?
Un componente es una pieza de software suficientemente pequeña para
crearla y mantenerla con un esfuerzo reducido, y los suficientemente
grande para ser distribuida y soportada.
Características propias de un componente son:
Es una unidad distribuible comercialmente. Es una pieza de código (ejecutable
o fuente) autocontenida y que habitualmente se adquiere en el mercado de
software.
No es una aplicación completa: Es un módulo que realiza una funcionalidad
limitada concebida para ser ensamblada con otros.
Concebida para ser combinada de forma impredecible: El diseñador debe
prever que puede ser usada de formas no prevista por él.
Tiene unas interfaces bien especificadas: La interfaz es independiente de su
implementación, y constituye el contrato que ofrece el componente frente al
mundo externo.
Dispone de recursos para ser gestionado mediante herramientas: Un
componente puede ser incorporado a una caja de herramientas estándar y sus
características ser visualizadas mediante ventanas de configuración.
Procodis’08: VI.3- Transacciones José M. Drake
7
Notas:
7
Cracterísticas de los componentes (2)
Notificación de eventos: Los componentes tienen capacidad de generar
eventos que son recibidos asíncronamente por clientes o servidores
que se hayan declarados suscriptores del mismo.
Administración de configuración y propiedades: Un propiedad es un
atributo con nombre cuyo valor puede ser leído y que al asignársele
valores cambian su estado y modifican su comportamiento.
Metadatos e instroinspección: A un componente se le puede requerir
información de naturaleza y funcionalidad que ofrece. Las
herramientas deben tener capacidad de gestionar componentes
desconocidos.
Interoperatibidad: Un componente puede ser accedido de acuerdo con
protocolos bien definidos a través de punteros, redes, lenguajes
sistemas operativos y herramientas.
Facilidad de uso: Un componente ofrece un conjunto de operaciones
estándar para su gestión: Creación, destrucción, activación, pasivación,
conexión, desconexión, etc.
Procodis’08: VI.3- Transacciones José M. Drake
8
Notas:
8
Características de los componentes servidores
Los componentes específicamente destinados a constituir servidores de carácter
público, tienen mas características:
Seguridad: Un componente debe tener defensas frente a amenazas externas: Capacidad
de autentificarse, autentificar a los clientes, control de acceso, registros de auditoría.
Licencias: Un componente de ofrecer mecanismos de gestión de licencias, y de auditoria
de su uso para repercutir su costo.
Versiones: Debe ofrecer control de su versión, así como garantizar que los clientes
encuentran la versión que necesitan.
Administración del ciclo de vida: Debe controlar gestionar su creación, destrucción,
almacenamiento, así como clonarse y migrar.
Control de transacciones: Debe tener capacidad de protegerse frente a una utilización
abusiva.
Persistencia: Debe tener capacidad de guardar transitoriamente su estado en un
repositorio para poder posteriormente recuperarlo.
Relaciones: Debe tener capacidad de asociarse dinámicamente y estáticamente con otros
componentes. Por ejemplo, como contenedor.
Autoprueba: Debe tener capacidad de autodiagnosticarse y de notificar sus problemas.
Autoinstalación: Debe tener capacidad de autoinstalarse y darse de alta en el Registro de
objetos.
Procodis’08: VI.3- Transacciones José M. Drake
9
Notas:
9
Ejemplo componentes Java Bean
JavaBeans es una tecnología de componentes basada en el lenguaje Java
que posibilita construir aplicaciones mediante ensamblado de módulos
(componentes) reusables.
Los JavaBeans son clases 100% Java solo que son formuladas con unos
patrones de diseño y de convenios de identificadores que facilitan su
gestión:
Escribir módulos que pueden reusarse en multitud de aplicaciones.
Desarrollar entornos de trabajo que facilitan la construcción de las
aplicaciones.
Los Beans hacen públicas sus propiedades (métodos, eventos, atributos,
etc.) de forma que las herramientas gráficas de diseño pueden mantenerlos
en toolboox y mostrar al diseñador sus características
Comentarios de: PROGRAMACION CONCURRENTE - VI.3: Objetos distribuidos (0)
No hay comentarios