Tema 5 Corba

Embed Size (px)

Citation preview

  • 8/17/2019 Tema 5 Corba

    1/26

  • 8/17/2019 Tema 5 Corba

    2/26

    La Heterogeneidad

  • 8/17/2019 Tema 5 Corba

    3/26

    Procesamiento Distribuido

    INTEROPERABILIDAD

    • Desarrollar sistemas distribuidos no es facil.• Con laheterogeneidad -> mas complejos.

    Muchos proyectos han fracasado por no tomar en cuenta la Heterogeneidad(! D e s d e l a t o r r e d e a b e l !)

  • 8/17/2019 Tema 5 Corba

    4/26

    ¿Cómo tratar con la heterogeneidad?

    • Reutilización y ocultamiento deinformación son la claves de la solución.• Identificar modelo y abstraccionesindependientes de la plataforma.

    Estándares Establecidos:• OMG ->CORBA, SOAP• Microsoft -> COM/DCOM, COM+• SUN -> RMI

    Presentando una capa de desarrollo de aplicaciones que:S I e s H o m o g é n e a

  • 8/17/2019 Tema 5 Corba

    5/26

    OMG

    Andersen

    APM

    Apple

    ASCII

    AT&T

    BaaN

    Bull

    CA

    CI Labs

    Data Access

    Digital

    EDS

    Ericsson

    Expersoft

    Fujitsu

    Genesis

    HP

    I-Kinetics

    ICL

    Informix

    Intel

    IBM

    IONA Tech.

    Microsoft

    MITRE

    Netscape

    NeXT

    Sun Microsystems

    Sybase

    Symantec

    Taligent

    Telefonica

    Time Warner Cable

    TRW

    Unisys

    Xerox

    Nortel

    Novell

    Object Design

    Oracle

    OSF

    ParcPlace

    POSC

    Siemens Nixdorf

    Software AG

    ObjectManagementGroup – http://www.omg.org

    Más de 900 miembros, creada en 1989

  • 8/17/2019 Tema 5 Corba

    6/26

    Misión de la OMG

    Una interfaz: OMA -

    Object Management Architecture.

    Un guía de implementación: CORBA -

    Common Object Request Broker Architecture

    Ha producido muchas especificaciones, perolas más importantes son:

    Reusabilidad, Interoperabilidad y Portabilidad

  • 8/17/2019 Tema 5 Corba

    7/26

    La Arquitectura para la

    Administración de Objetos - OMA• Objeto .-Entidad encapsula y Única-Accedida sólo mediante interfaces-Reside en un solo Sitio

    • Interfaz de Objeto .-Definición precisa de sus métodos-Mediante un leguaje deespecificación , llamado IDL

    • Cliente .-Cualquier que pude acceder al objeto

    -No conocen la implantación y localidad de los Objetos• Referencia .-Abstracción utilizada por el cliente para denotar al Objeto-Similar a un apuntador a un Objeto-Para acceder al Objeto se debe poseer una Referencia-Cliente utiliza referencia para emitir una solicitud(request)

  • 8/17/2019 Tema 5 Corba

    8/26

    CORBA, ORB Mágico

    Modelo de Objetos

    Modelo de Referencia

    OMA, esta compuesta de dos modelos:

  • 8/17/2019 Tema 5 Corba

    9/26

    ORIENTADOS SISTEMAS

    ORIENTADOS APLICACIONES

    Esquema de OMAEn el Modelo de Referencia

  • 8/17/2019 Tema 5 Corba

    10/26

    En el Modelo de Objetos

    IDL – Lenguaje de Definición de Interfaces

    Básicos

    EnterosFlotantes

    long, long long (s,u)short (s,u)

    floatdouble, long double

    char, wcharboolean

    octeta n y

    struct

    unionenumConstruidos

    Plantillasstring, wstringsequencefixed

    arrayComplejosnativeNativo

  • 8/17/2019 Tema 5 Corba

    11/26

    Rol del IDL

    Cliente Interfaz Implementación

    Lenguaje X IDL Lenguaje Y

    Interfaz IDL = CONTRATO• Usado por Cliente para invocar•

    Usado por Implementación para recibir y responde

  • 8/17/2019 Tema 5 Corba

    12/26

    Encapsulamiento con IDL

    Cliente IDL Impl

    Cliente Implement

    ORB

    EsqueletoIDL

    EmuladorIDL

    Stub Skeleton

  • 8/17/2019 Tema 5 Corba

    13/26

    CORBA IDLs

    ClienteCliente

    SmallTalkC++C Ada JavaCOBOL

    IDL IDL IDL IDLIDLIDL

    Servidor

    ORB

    SmallTalkC++C Ada JavaCOBOL

    IDL IDL IDL IDLIDLIDL

  • 8/17/2019 Tema 5 Corba

    14/26

    Evolución - CORBA

    CORBA 1.1 1991

    CORBA 1.2 1993

    CORBA 2.0 1996CORBA 2.1 1997

    CORBA 2.2 1998

    CORBA 2.3 1999CORBA 3.0 2000

    POA

    BOA

    GIOP

  • 8/17/2019 Tema 5 Corba

    15/26

    La Especificación de CORBA

    ORB

  • 8/17/2019 Tema 5 Corba

    16/26

    PrincipiosInterfaz, separación de la Implementación.

    Los clientes Interfaz y no Implementación.

    Transparencia en la localización(Servidores/Clientes)

    Transparencia en el Acceso.

    Los Servicios, se acceden vía Invocación.

    La referencia de objetos definida medianteInterfaces

  • 8/17/2019 Tema 5 Corba

    17/26

    Componentes de CORBA

    Object Request Broker (IIOP)

    Client

    IDLStubs

    ORB

    Interface

    Static

    Skeletons

    Object

    Adapter

    Client

    Object

    Implementation

    DynamicSkeleton

    Invocation

    InterfaceRepository Dynamic

    InvocationImplementation

    Repository

    Operación X(x)

    Resultado de X

  • 8/17/2019 Tema 5 Corba

    18/26

    Flujo de Solicitud

    1. Cliente selecciona entre:Stubs estáticos generados por copilador IDL, oInterfaz de invocación dinámica

    2. Núcleo ORB hace llegar la invocación a la parte delservidor.

    3. El servidor despacha la solicitud al adaptador de Objetos.

    4. El Adaptador de objetos despacha la solicitud a laimplementación de 2 maneras posibles.

    Esqueletos estáticos generados por el copilador IDL, oInterfaz de esqueleto dinámica5. El objeto recibe la solicitud y ejecuta el método.

    6. La solicitud regresa por el mismo camino de llegada.

  • 8/17/2019 Tema 5 Corba

    19/26

    Mappings de lenguajes = Homogeneidad

    Un mapping es un conjunto de reglas , expresadas enalgún lenguaje de programación

    Fabricantes de ORBProgramadores de implantaciones de Objetos

    Las reglas establecen cómo un objeto es representadoen el lenguaje de programación.

    Mappings para: C, C++, Java, Smalltalk, Ada, COBOL

    En curso Mappings: Eiffel, Modula-3, Perl, Tcl, Objetive-C yPhyton

  • 8/17/2019 Tema 5 Corba

    20/26

    Mappings Ejemplo: en C++ y JavaInterfaceServidor_Aritmetico

    { long sumar (in long op1, in long op2);long restar (in long op1, in long op2);long multiplicar (in long op1, in long op2);long dividir (in long op1, in long op2);

    }

    public interface Servidor_Aritmetico{long sumar (long op1, long op2);long restar (long op1, long op2);long multiplicar (long op1, long op2);long dividir ( long op1, long op2);

    } class Servidor_Aritmetico{

    long sumar (const long &op1, const long &op2)long restar (const long &op1, const long &op2);long multiplicar (const long &op1, const long &

    long dividir (const long &op1, const long &op2}

    IDL

    Java

    C++

  • 8/17/2019 Tema 5 Corba

    21/26

    Ciclo común de Desarrollo• Determinar Objetos de la aplicación y escribir susespecificaciones en IDL• Compilar las especificaciones IDL

    •Se generan stubs y skeletons por cada interfaz•Se puede usar varios compiladores con diferentes mappings requieren varios lenguajes

    • Escribir las implementaciones de los objetos (puedeutilizarse varios lenguajes)• Escribir los servidores

    •Determinar el número de servidores

    •Determinar la distribución de los objetos en los servidores•Compilar y encadenar cada servidor con los skeletons eimplantaciones de las interfaces

    • Escribir los clientes•Escribir código de adquisición y uso de referencias

    •Compilar y encadenar cliente con stubs de las interfaces

  • 8/17/2019 Tema 5 Corba

    22/26

    Implementación con CORBA

    > jidl Modulo.idl

    Compilador IDL

    archivo

    archivoOperations

    _archivo Stubarchivo olderarchivo elper

    archivo PO

    getDato()

    getDato() getDato()ORB

    //Archivo Modulo.idlinterface archivo{

    //Metodolong getDato();

    };

    Modulo IDL

  • 8/17/2019 Tema 5 Corba

    23/26

    Plataformas ORB para CORBA

    ORBacus deObject Oriented Concepts – OOC

    Libres : MICO , ILU - Inter Language Unification,JacORB ,omniORB,ORBit , TAO - The ACE ORB yORBacus

    Comerciales : Visibroker de Visigenics y Orbix de IONA

  • 8/17/2019 Tema 5 Corba

    24/26

    INTEROPERABILADA DE ORBs

  • 8/17/2019 Tema 5 Corba

    25/26

    RECOMENDACIONES

  • 8/17/2019 Tema 5 Corba

    26/26

    CONCLUSIONES

    CORBA, resuelve los problemas de Heterogeniedad:

    Transparencia de localidad.Transparencia del servidor.Independencia del lenguaje.Independencia de la implantación.Independencia de la Arquitectura.Independencia del Sistema Operativo.Independencia del protocolo.Independencia del transporte.