Upload
danielmirandavillalta
View
214
Download
0
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.