Академический Документы
Профессиональный Документы
Культура Документы
Programacin Orientada a
Componentes
Ral Monge
Departamento de Informtica
Universidad Tcnica Federico Santa Mara
Valparaso - Chile
rmonge@inf.utfsm.l
Contenido:
Programacin, Modelos y Plataformas de
Componentes
RM-ODP
Corba de OMG
Java, Java/RMI y JavaBeans de Sun
DCOM de Microsoft
Programacin de
Sistemas Abiertos y Distribuidos
Programacin de
Sistemas Abiertos y Distribuidos
Programacin Orientada a
Componentes (POC)
Composicin tarda
Entornos (de diseo y de ejecucin)
Eventos y comunicaciones asncronas
Reutilizacin
Interfaces y contratos
Polimorfismo (subtipos, paramtrico, acotado)
Seguridad (a nivel de tipos y de mdulos)
Reflexin
5
Modelos de Componentes
Definen la forma de las interfaces de sus
componentes
Determinan los mecanismos de composicin y
comunicacin entre ellos
Especifican la forma en la que se proveen los
servicios (seguridad, trading, etc.)
Ejemplos: COM, JavaBeans, CORBA
Plataformas de Componentes
Basadas en un modelo concreto
Ofrecen una implementacin de los conceptos y
mecanismos del modelo
Proporcionan entornos de desarrollo y ejecucin
para los componentes
Suelen ofrecer pasarelas a otros modelos y
plataformas
Ejemplos: ActiveX/OLE, Enterprise Beans, Orbix
Componentes e Interfaces
Interfaces:
atributos,
mtodos y
eventos
Lenguajes de definicin de Interafaces (IDL)
Interaccin entre componentes
RPCs para los mtodos
Publish-and-subscribe para los eventos
Mensajes asncronos
9
Plataformas de Componentes
Distribuidas
Componentes e Interfaces
Contenedores de componentes
Meta-informacin
Inspeccin
Reflexin e introspeccin
Entornos de Desarrollo Integrados (IDE)
Servicios y facilidades
10
Entornos de Desarrollo
Integrados (IDE)
paletas
lienzo o contenedor
editores para configurar y especializar componentes
browsers
repositorio de componentes
acceso a intrpretes, compiladores y depuradores
herramientas de control y gestin de proyectos
11
Servicios y Facilidades
Comunicaciones remotas
Servicios de Directorios
Seguridad
Transacciones
Gestin y Administracin
12
Ejemplos de Modelos y
Plataformas de Componentes
RM-ODP
CORBA
Java/RMI, JavaBeans y Enterprise Beans
COM, DCOM, OLE, ActiveX
13
CORBA:
Common Object Request Broker Architecture
CORBA 1.1
IDL de CORBA
Cliente
DII
IDL Stub
DSI
IDLSkel
Adaptador de Objetos
Interfaz ORB
CORBA 2.0
Servicios CORBA
Facilidades CORBA
Arquitectura OMA
Objetos y
Aplicaciones
Facilidades
Verticales
Facilidades
Horizontales
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 estndar CORBA
25
CORBA 3.0
Implementaciones de CORBA
Existen ms de 25 implementaciones de
CORBA
Orbix (Iona)
Object Broker (Digital)
Visibroker (Visigenic -Netscape)
Component Broker (IBM)
27
//fichero Translator.java
//Generated by the OrbixWeb IDL compiler
public interface Translator
extends org.omg.CORBA.Object {
public String translate (String frase);
}
28
29
Cdigo 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]));
}
}
31
Java/RMI, JavaBeans y
Enterprise Beans
Java
Java es un lenguaje simple, distribuido,
interpretado, robusto, seguro, independiente de
la arquitectura, portable, multihebra y
dinmico
Parcialmente interpretado ( bytecodes)
Java aporta las applets
Proliferacin de plataformas soportando JVM
Inclusin en los navegadores web
33
Java
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 representacin de
los datos (como ocurre en otras plataformas
distribuidas), debido a la existencia de JVM.
35
Java/RMI
37
extends UnicastRemoteObject
implements InterfaceHello {
public ServerHello() throws java.rmi.RemoteException
{super();}
public String hello() throws java.rmi.RemoteException
{return Hello... Im the server...;}
public static void main(String argv[])
{ServerHello s;
Registry registry = null;
... //Cdigo para asignar registro
try {System.setSecurityManager(new
RMISecurityManager());
s = new ServerHello();
registry.rebind(ServerHello,s); }
catch (Exception e) { ... }
}
38
39
RMI
Servidores
Aplicaciones
JDBC
B.D.
Almacenamiento
persistente
de datos
40
JavaBeans
JavaBeans (Sun Microsystems 1997) es un
estndar sobre Java que define el modelo de
componentes Sun.
Beans: componentes del modelo
Componentes software reutilizables que
pueden ser manipuladas de forma visual por
herramientas de desarrollo de aplicaciones
Granularidad y funcionalidad de las beans
muy distintas: botn, hoja de clculo, etc.
41
JavaBeans
Interfaz: atributos, mtodos y eventos.
Inspeccin: a travs de las herramientas visuales.
Particularizacin: para adecuar la bean a los
requisitos del usuario o aplicacin. Se realiza
mediante la configuracin de ciertos parmetros.
Persistencia: el estado de cada bean debe
almacenarse para ser restaurado con posterioridad
42
JavaBeans
44
45
46
COM
COM
Interfaz
Op1
Op2
Nodo
...
COMPONENTE
OpN
48
COM
49
COM
interface IUnknown {
HRESULT QueryInterface([in] const IID id,
[out,iid_is(idd)] IUnknown iid);
unsigned long AddRef();
unsigned long Release();
}
50
COM
DCOM
52
Herramientas COM
OLE
Active X
OCX
VBX
55
La nueva arquitectura de MS
56
Bibliografa
Enlaces de Inters
OMG
http://www.omg.org
.NET de Microsoft
http://www.microsoft.com/net/default.asp
58