Monografias.com > Computación > Programación
Descargar Imprimir Comentar Ver trabajos relacionados

Programación orientada a componentes




Enviado por Pablo Turmero



    Monografias.com

    1
    Contenido:
    Programación, Modelos y Plataformas de Componentes
    RM-ODP
    Corba de OMG
    Java, Java/RMI y JavaBeans de Sun
    DCOM de Microsoft

    Monografias.com

    2
    Programación de Sistemas Abiertos y Distribuidos
    Deficiencias de la Programación Orientada a Objetos (POO):
    No permite separar aspectos computacionales de los composicionales
    Dificultad a la hora de reutilizar objetos
    No incorpora aspectos de mercadotecnia:
    Distribución
    Empaquetamiento
    Adquisición o composición tardía de componentes

    Monografias.com

    3
    Programación de Sistemas Abiertos y Distribuidos
    Programación Orientada a Componentes:
    “Extensión” de la POO
    Sistemas Abiertos y Distribuidos
    Basada en la noción de COMPONENTE
    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

    Monografias.com

    4
    Programación Orientada a Componentes (POC)
    Composición tardía
    Entornos (de diseño y de ejecución)
    Eventos y comunicaciones asíncronas
    Reutilización
    Interfaces y contratos
    Polimorfismo (subtipos, paramétrico, acotado)
    Seguridad (a nivel de tipos y de módulos)
    Reflexión

    Monografias.com

    5
    Problemas Típicos de POC
    Clarividencia
    Evolución de componentes
    Percepción del entorno
    Particularización
    Falta de soporte formal
    Asincronía y carreras de eventos
    Interoperabilidad

    Monografias.com

    6
    Modelos de Componentes
    Definen la forma de las interfaces de sus componentes
    Determinan los mecanismos de composición y comunicación entre ellos
    Especifican la forma en la que se proveen los servicios (seguridad, trading, etc.)
    Ejemplos: COM, JavaBeans, CORBA

    Monografias.com

    7
    Plataformas de Componentes
    Basadas en un modelo concreto
    Ofrecen una implementación de los conceptos y mecanismos del modelo
    Proporcionan entornos de desarrollo y ejecución para los componentes
    Suelen ofrecer pasarelas a otros modelos y plataformas
    Ejemplos: ActiveX/OLE, Enterprise Beans, Orbix

    Monografias.com

    8
    Componentes e Interfaces
    Interfaces:
    atributos,
    métodos y
    eventos
    Lenguajes de definición de Interafaces (IDL)
    Interacción entre componentes
    RPCs para los métodos
    Publish-and-subscribe para los eventos
    Mensajes asíncronos

    Monografias.com

    9
    Plataformas de Componentes Distribuidas
    Componentes e Interfaces
    Contenedores de componentes
    Meta-información
    Inspección
    Reflexión e introspección
    Entornos de Desarrollo Integrados (IDE)
    Servicios y facilidades

    Monografias.com

    10
    Entornos de Desarrollo Integrados (IDE)
    paletas
    lienzo o contenedor
    editores para configurar y especializar componentes
    browsers
    repositorio de componentes
    acceso a intérpretes, compiladores y depuradores
    herramientas de control y gestión de proyectos

    Monografias.com

    11
    Servicios y Facilidades
    Comunicaciones remotas
    Servicios de Directorios
    Seguridad
    Transacciones
    Gestión y Administración

    Monografias.com

    12
    Ejemplos de Modelos y Plataformas de Componentes
    RM-ODP
    CORBA
    Java/RMI, JavaBeans y Enterprise Beans
    COM, DCOM, OLE, ActiveX

    Monografias.com

    13
    Open Distributed Processing
    RM-ODP: Modelo de referencia para el diseño de sistemas abiertos y distribuidos
    Objetivo: hacer transparente al usuario la heterogeneidad del:
    hardware
    sistemas operativos
    redes
    lenguajes de programación
    bases de datos
    tipos de gestión

    Monografias.com

    14
    Open Distributed Processing
    RM-ODP se divide en:
    Descripción general y recomendaciones de uso
    Modelo descriptivo
    Modelo prescriptivo
    Semántica arquitectónica
    Conceptos fundamentales:
    Transparencia
    Perspectivas: empresa, información, computacional, ingeniería, tecnológico
    Funciones y servicios comunes
    Corredor de servicios

    Monografias.com

    15
    CORBA:Common Object Request Broker Architecture
    OMG: Object Management Group (1989)
    Definición de estándares para permitir interoperabilidad y portabilidad
    OMA: Object Management Architecture
    ORB: Object Request Broker (bus de objetos):
    Bus de datos para la comunicación entre objetos
    Transparencia de la heterogeneidad, dispersión y activación de objetos en sistemas abiertos y distribuidos

    Monografias.com

    16
    CORBA 1.1
    Primera versión de CORBA (1991)
    Descripción concreta de las interfaces y los servicios que deben proporcionar los implementadores de ORBs
    Elementos básicos de CORBA 1.1:
    Núcleo del ORB
    Lenguaje de Descripción de Interfaces (IDL)
    Repositorios de interfaces
    Adaptadores de objetos (OA)

    Monografias.com

    17
    Núcleo del ORB
    Objeto como pieza fundamental
    Cada objeto dispone de una referencia, y se comunica con otros objetos mediante el ORB
    Comunicación: estática y dinámica
    El ORB se encarga de:
    localizar los objetos sirvientes,
    activarlos (si no lo están),
    invocar el método solicitado
    devolver el resultado al cliente
    El Adaptador de Objetos (OA) se encarga de ocultar la implementación del objeto sirviente

    Monografias.com

    18
    IDL de CORBA
    Lenguaje textual y orientado a objetos (similar a C++) para definir las interfaces de los objetos CORBA.
    Independiente del lenguaje en que se implementan los objetos.
    Soporta herencia y polimorfismo.
    Los compiladores de IDLs se encargan de generar un conjunto de módulos descritos en el lenguaje base.
    Existen compiladores para los principales lenguajes:
    C, C++, Smalltalk, Java, Ada, Cobol.
    Las interfaces de los objetos definidos en un ORB se registran en repositorios (a modo de páginas amarillas).

    Monografias.com

    19
    Adaptador de Objetos
    Estructura básica de un ORB
    Object Request Broker
    (Gp:) DII
    (Gp:) IDL Stub

    (Gp:) IDLSkel
    (Gp:) DSI

    Interfaz ORB
    (Gp:) Cliente
    (Gp:) Implementación
    Servidor

    Monografias.com

    20
    CORBA 2.0
    CORBA 2.0 (1996)
    proporciona servicios básicos para componentes CORBA que estandarizan y complementan los COSS (Common Object Service Specification):
    trading, naming, events, etc.
    ofrece mecanismos de interoperabilidad entre distintas implementaciones de ORBs
    Extensión de la arquitectura OMA:
    Servicios Comunes (CORBAservices)
    Facilidades Comunes (CORBAfacilities)

    Monografias.com

    21
    Servicios CORBA
    CORBA 2.0 proporciona 15 servicios comunes:
    Acceso a las referencias de los objetos (naming)
    correduría de servicios (trading)
    localización (query)
    notificación (notification) y difusión de eventos (events)
    transacciones (OTS)
    seguridad y confidencialidad (security)
    persistencia, concurrencia, reflexión, tiempo real, …

    Monografias.com

    22
    Facilidades CORBA
    Conjunto de servicios de nivel superior a los CORBAservices. Facilitan el desarrollo de aplicaciones
    CORBAfacilities horizontales (de carácter general):
    impresión (print spooling)
    gestión del sistema (system management)
    correo electrónico (e-mail), …
    CORBAfacilities verticales (para dominios específicos):
    objetos de negocio,
    comercio electrónico,
    seguros y finanzas, …

    Monografias.com

    23
    Arquitectura OMA
    Object Request Broker
    Servicios comunes
    (CORBAservices)
    (Gp:) Facilidades
    Verticales
    (Gp:) Facilidades
    Horizontales

    Objetos y
    Aplicaciones

    Monografias.com

    24
    GIOP y IIOP
    GIOP (General Inter-ORB Protocol)
    Define todos los aspectos de interoperabilidad entre distintos ORBs, independientemente del nivel de transporte
    IIOP (Internet Inter-ORB Protocol)
    GIOP + TCP/IP
    Protocolo recomendado por OMG
    Cualquier ORB que proporcione pasarelas IIOP cumple el estándar CORBA

    Monografias.com

    25
    CORBA 3.0
    CORBA 3.0 (1998) añade:
    Portable Object Adapters (POAs)
    Extienden los adaptadores de objetos básicos para soportar sirvientes multihebra, persistentes, y permiten gestionar los sirvientes de una aplicación.
    Invocaciones asíncronas (además de RPCs)
    Paso de objetos por valor y no sólo por referencia

    Monografias.com

    26
    Implementaciones de CORBA
    Existen más de 25 implementaciones de CORBA
    Orbix (Iona)
    Object Broker (Digital)
    Visibroker (Visigenic -Netscape)
    Component Broker (IBM)

    Monografias.com

    27
    Ejemplo de CORBA (1/4)
    $ idl translator.idl
    // fichero translator.idl
    interface Translator {
    string translate(in string frase);
    };
    //fichero Translator.java
    //Generated by the OrbixWeb IDL compiler
    public interface Translator
    extends org.omg.CORBA.Object {
    public String translate (String frase);
    }

    Monografias.com

    28
    Ejemplo de CORBA (2/4)
    public class TranslatorImplementation
    extends _TranslatorImplBase {
    public String translate(String s) {
    …código interno de la función…
    }
    }
    El fichero _TranslatorImplBase.java contendrá el esqueleto de la implementación, invocando toda la
    funcionalidad de proxies, stubs, BOAs, etc. Esta implementación básica se puede extender:

    Monografias.com

    29
    Ejemplo de CORBA (3/4)
    import IE.Iona.OrbixWeb._CORBA;
    import IE.Iona.OrbixWeb.CORBA.ORB;
    public class orbixtranslator {
    public static void main (String args[]) {
    Translator txImpl = null;
    org.omg.CORBA.ORB orb =org.omg.CORBA.ORB.init();
    txImpl = new TranslatorImplementation();
    _CORBA.Orbix.impl_is_ready("orbixtranslator");
    System.out.println("Shutting down server…");
    orb.disconnect(txImpl);
    System.out.println("Server exiting…");
    }
    }
    El código para arrancar el servidor podría ser:

    Monografias.com

    30
    Ejemplo de CORBA (4/4)
    $ putit orbixtranslator -java orbixtranslator.class
    Para registrar el sirviente en el repositorio CORBA:
    Código de un cliente:
    import org.omg.CORBA.ORB;
    import IE.Iona.OrbixWeb._CORBA;
    public class Cliente {
    public static void main(String args[]){
    ORB.init();
    String srvHost = new String (args[0]);
    Translator TX =
    TranslatorHelper.bind(":orbixtranslator", srvHost );
    System.out.println(args[1]+"->"+TX.translate(args[1]));
    }
    }

    Monografias.com

    31
    Java/RMI, JavaBeans y Enterprise Beans
    Gran auge de Internet
    Inicialmente: acceso pasivo a la información
    1995: CGI (Common Gateway Interface)
    1996: Uso de Java en Internet
    Java como lenguaje de programación orientado a objetos
    JavaBeans: Un modelo de componentes
    Diversas extensiones: Glasgow, Edinburgh, Enterprise Beans

    Monografias.com

    32
    Java
    Java es un lenguaje “simple, distribuido, interpretado, robusto, seguro, independiente de la arquitectura, portable, multihebra y dinámico”
    “Parcialmente” interpretado (bytecodes)
    Java aporta las “applets”
    Proliferación de plataformas soportando JVM
    Inclusión en los navegadores web

    Monografias.com

    33
    Java
    La computación no sólo se realiza en el servidor, sino que es posible que los clientes ejecuten código que toman del servidor (applets).
    La seguridad se comprueba tanto durante la carga como la ejecución de las applets.
    Paquetes de especial relevancia para aplicaciones distribuidas:
    Empaquetamiento secuencial de objetos (serialization)
    Acceso a base de datos (JDBC)
    Invocación remota de métodos (RMI)

    Monografias.com

    34
    Empaquetamiento secuencial
    Objetos empaquetables como secuencias de datos.
    Cada stream incluye la identidad del objeto, su estado y referencias a otros objetos.
    No existen problemas con la representación de los datos (como ocurre en otras plataformas distribuidas), debido a la existencia de JVM.

    Monografias.com

    35
    Java/RMI
    RMI (Remote Method Invocation) implementa un modelo cliente-servidor donde el cliente puede invocar de forma remota los métodos del servidor.
    Extensión del concepto de RPC: los argumentos de las funciones invocadas pueden ser objetos que son transferidos de una máquina a otra.
    RMI es un mecanismo dependiente del lenguaje (es una extensión de Java), pero es independiente de la plataforma (al estar basado en la máquina virtual JVM)

    Monografias.com

    36
    Ejemplo de Java/RMI (1/3)
    public interface InterfaceHello extends java.rmi.Remote {
    public String hello() throws java.rmi.RemoteException
    }
    Una interfaz para generar el string “Hello …”:

    Monografias.com

    37
    Ejemplo de Java/RMI (2/3)
    La implementación de la interfaz y el servidor:
    public class ServerHello extends UnicastRemoteObject
    implements InterfaceHello {
    public ServerHello() throws java.rmi.RemoteException
    {super();}
    public String hello() throws java.rmi.RemoteException
    {return “Hello… I’m the server…”;}
    public static void main(String argv[])
    {ServerHello s;
    Registry registry = null;
    … //Código para asignar registro
    try {System.setSecurityManager(new RMISecurityManager());
    s = new ServerHello();
    registry.rebind(“ServerHello”,s); }
    catch (Exception e) { … }
    }

    Monografias.com

    38
    Ejemplo de Java/RMI (3/3)
    El cliente:
    public class ClientHello {
    public static void main(String argv[])
    {InterfaceHello s;
    Registry registry;
    try {… //Código para obtener registro
    s = (InterfaceHello(registry.lookup(“ServerHello”);
    System.out.println(s.hello()); }
    catch (Exception e) {System.out.println(“System error”);
    System.out.println(e.getMessage());
    e.printStackTrace(); }
    }

    Monografias.com

    39
    Arquitectura de 3 Niveles (3-tier)
    Java no define una infraestructura de objetos distribuidos, sino que proporciona herramientas para su construcción y comunicación.

    (Gp:) RMI

    (Gp:) JDBC

    (Gp:) Servidores
    (Gp:) Aplicaciones

    (Gp:) Applets
    (Gp:) Cliente:
    Interfaces de
    usuario

    (Gp:) B.D.
    (Gp:) Almacenamiento
    persistente
    de datos

    Monografias.com

    ESTA PRESENTACIÓN CONTIENE MAS DIAPOSITIVAS DISPONIBLES EN LA VERSIÓN DE DESCARGA

    Nota al lector: es posible que esta página no contenga todos los componentes del trabajo original (pies de página, avanzadas formulas matemáticas, esquemas o tablas complejas, etc.). Recuerde que para ver el trabajo en su versión original completa, puede descargarlo desde el menú superior.

    Todos los documentos disponibles en este sitio expresan los puntos de vista de sus respectivos autores y no de Monografias.com. El objetivo de Monografias.com es poner el conocimiento a disposición de toda su comunidad. Queda bajo la responsabilidad de cada lector el eventual uso que se le de a esta información. Asimismo, es obligatoria la cita del autor del contenido y de Monografias.com como fuentes de información.

    Categorias
    Newsletter