SlideShare ist ein Scribd-Unternehmen logo
1 von 58
Raúl Monge Departamento de Informática Universidad Técnica Federico Santa María Valparaíso - Chile [email_address] 3ª Parte: Programación Orientada a Componentes
Contenido: ,[object Object],[object Object],[object Object],[object Object],[object Object]
Programación de  Sistemas Abiertos y Distribuidos ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Programación de  Sistemas Abiertos y Distribuidos ,[object Object],[object Object],[object Object],[object Object],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
Programación Orientada a Componentes (POC) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Problemas Típicos de POC ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Modelos de Componentes ,[object Object],[object Object],[object Object],[object Object]
Plataformas de Componentes ,[object Object],[object Object],[object Object],[object Object],[object Object]
Componentes e Interfaces ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Plataformas de Componentes Distribuidas ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Entornos de Desarrollo Integrados (IDE) ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Servicios y Facilidades ,[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplos de Modelos y Plataformas de Componentes ,[object Object],[object Object],[object Object],[object Object]
O pen  D istributed  P rocessing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
O pen  D istributed  P rocessing ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CORBA: C ommon  O bject  R equest  B roker  A rchitecture ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CORBA 1.1 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Núcleo del ORB ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
IDL de CORBA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Estructura básica de un ORB Adaptador de Objetos Object Request Broker Interfaz ORB DII IDL Stub IDLSkel DSI Cliente Implementación Servidor
CORBA 2.0 ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Servicios CORBA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Facilidades CORBA ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Arquitectura OMA Object Request Broker Servicios comunes (CORBAservices) Objetos y Aplicaciones Facilidades Verticales Facilidades Horizontales
GIOP y IIOP ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
CORBA 3.0 ,[object Object],[object Object],[object Object],[object Object],[object Object]
Implementaciones de CORBA ,[object Object],[object Object],[object Object],[object Object],[object Object]
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); }
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:
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:
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])); } }
Java/RMI, JavaBeans y Enterprise Beans ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Java ,[object Object],[object Object],[object Object],[object Object],[object Object]
Java ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Empaquetamiento secuencial ,[object Object],[object Object],[object Object]
Java/RMI ,[object Object],[object Object],[object Object]
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 ...”:
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) { ... } }
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(); } }
Arquitectura de 3 Niveles (3-tier) ,[object Object],RMI JDBC Servidores Aplicaciones Applets Cliente: Interfaces de usuario B.D. Almacenamiento persistente de datos
JavaBeans ,[object Object],[object Object],[object Object],[object Object]
JavaBeans ,[object Object],[object Object],[object Object],[object Object]
JavaBeans ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Ejemplo con JavaBeans (1/2) // fichero btranslator.java public class btranslator { public String translate(String expr) { .... la implementación iría aquí ..... } }
Ejemplo con JavaBeans (2/2) // fichero beanscliente.java import java.beans.Beans; public class beanscliente extends Beans { public static void main (String args[]) { btranslator TX; String s = new String(args[1]); ClassLoader cl = null; //system loader by default try { TX = (btranslator)Beans.instantiate(cl,"btranslator"); System.out.println(s+"->"+TX.translate(s)); } catch (Exception e) { e.printStackTrace(); System.exit(1); } } }
C omponent  O bject  M odel ,[object Object],[object Object],[object Object],[object Object],[object Object]
COM ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
COM ,[object Object],[object Object],COMPONENTE Interfaz Nodo ... Op1 Op2 OpN
COM ,[object Object],[object Object],[object Object],IUnknown IOleObject IDataObject IPersistStorage IOleDocument
COM ,[object Object],[object Object],[object Object],[object Object],[object Object],interface IUnknown { HRESULT QueryInterface([in] const IID id,  [out,iid_is(idd)] IUnknown iid); unsigned long AddRef(); unsigned long Release(); }
COM ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],.dll .exe
DCOM ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Herramientas COM ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
OLE ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]
Active X ,[object Object],[object Object],[object Object],Active X OCX VBX
La nueva arquitectura de MS ,[object Object],[object Object],[object Object],[object Object],[object Object]
Bibliografía ,[object Object],[object Object],[object Object],[object Object],[object Object]
Enlaces de Interés ,[object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

Weitere ähnliche Inhalte

Ähnlich wie P3 Componentes (20)

Bd distribuidas
Bd distribuidasBd distribuidas
Bd distribuidas
 
Middleware & Corba
Middleware & CorbaMiddleware & Corba
Middleware & Corba
 
Tema 3
Tema 3Tema 3
Tema 3
 
odmg - corba
odmg - corbaodmg - corba
odmg - corba
 
Net remoting
Net remotingNet remoting
Net remoting
 
Ug zuñiga
Ug zuñigaUg zuñiga
Ug zuñiga
 
Poc 2
Poc 2Poc 2
Poc 2
 
Ut jsilvareyes
Ut jsilvareyesUt jsilvareyes
Ut jsilvareyes
 
Tecnologías de Desarrollo de Sistemas Distribuidos basados en Objetos
Tecnologías de Desarrollo de Sistemas Distribuidos basados en ObjetosTecnologías de Desarrollo de Sistemas Distribuidos basados en Objetos
Tecnologías de Desarrollo de Sistemas Distribuidos basados en Objetos
 
Sistemas distribuidos
Sistemas distribuidosSistemas distribuidos
Sistemas distribuidos
 
Corba
CorbaCorba
Corba
 
.Net Remoting
.Net Remoting.Net Remoting
.Net Remoting
 
R_QuintoNevarez
R_QuintoNevarezR_QuintoNevarez
R_QuintoNevarez
 
Arquitectura Corba
Arquitectura CorbaArquitectura Corba
Arquitectura Corba
 
Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3Arquitectura aplicaciones clase3
Arquitectura aplicaciones clase3
 
Ug mvillao
Ug mvillaoUg mvillao
Ug mvillao
 
Ug chaguay
Ug chaguayUg chaguay
Ug chaguay
 
Ug d loor
Ug d loorUg d loor
Ug d loor
 
Netremoting2
Netremoting2Netremoting2
Netremoting2
 
Diccionario 1
Diccionario 1Diccionario 1
Diccionario 1
 

Mehr von AmistadLealtad

Mehr von AmistadLealtad (9)

Proyecto De Tecnica De Programacioin I I
Proyecto De Tecnica De Programacioin  I IProyecto De Tecnica De Programacioin  I I
Proyecto De Tecnica De Programacioin I I
 
Poa 01
Poa 01Poa 01
Poa 01
 
Programacionorientadaaaspectos
ProgramacionorientadaaaspectosProgramacionorientadaaaspectos
Programacionorientadaaaspectos
 
Poa Borrador
Poa BorradorPoa Borrador
Poa Borrador
 
Wp Aspect J
Wp Aspect JWp Aspect J
Wp Aspect J
 
Poa
PoaPoa
Poa
 
Curso Aop
Curso AopCurso Aop
Curso Aop
 
Charla 2005 09 16
Charla 2005 09 16Charla 2005 09 16
Charla 2005 09 16
 
Curso Aop01
Curso Aop01Curso Aop01
Curso Aop01
 

Kürzlich hochgeladen

El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son241514984
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificialcynserafini89
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA241531640
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxAlexander López
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxazmysanros90
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxtjcesar1
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxNombre Apellidos
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúCEFERINO DELGADO FLORES
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptchaverriemily794
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.241514949
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesEdomar AR
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadMiguelAngelVillanuev48
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxGESTECPERUSAC
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfjeondanny1997
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptJavierHerrera662252
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxAlexander López
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel tallerValentinaTabares11
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfedepmariaperez
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOnarvaezisabella21
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzzAlexandergo5
 

Kürzlich hochgeladen (20)

El uso de las tic en la vida ,lo importante que son
El uso de las tic en la vida ,lo importante  que sonEl uso de las tic en la vida ,lo importante  que son
El uso de las tic en la vida ,lo importante que son
 
Presentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia ArtificialPresentación sobre la Inteligencia Artificial
Presentación sobre la Inteligencia Artificial
 
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6    CREAR UN RECURSO MULTIMEDIAActividad integradora 6    CREAR UN RECURSO MULTIMEDIA
Actividad integradora 6 CREAR UN RECURSO MULTIMEDIA
 
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptxEl_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
El_Blog_como_herramienta_de_publicacion_y_consulta_de_investigacion.pptx
 
tics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptxtics en la vida cotidiana prepa en linea modulo 1.pptx
tics en la vida cotidiana prepa en linea modulo 1.pptx
 
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptxModelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
Modelo de Presentacion Feria Robotica Educativa 2024 - Versión3.pptx
 
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptxCrear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
Crear un recurso multimedia. Maricela_Ponce_DomingoM1S3AI6-1.pptx
 
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del PerúRed Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
Red Dorsal Nacional de Fibra Óptica y Redes Regionales del Perú
 
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).pptLUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
LUXOMETRO EN SALUD OCUPACIONAL(FINAL).ppt
 
El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.El uso de las TIC's en la vida cotidiana.
El uso de las TIC's en la vida cotidiana.
 
Los Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, AplicacionesLos Microcontroladores PIC, Aplicaciones
Los Microcontroladores PIC, Aplicaciones
 
Presentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidadPresentación inteligencia artificial en la actualidad
Presentación inteligencia artificial en la actualidad
 
Tecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptxTecnologias Starlink para el mundo tec.pptx
Tecnologias Starlink para el mundo tec.pptx
 
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdfLa Electricidad Y La Electrónica Trabajo Tecnología.pdf
La Electricidad Y La Electrónica Trabajo Tecnología.pdf
 
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.pptTEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
TEMA 2 PROTOCOLO DE EXTRACCION VEHICULAR.ppt
 
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptxLAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
LAS_TIC_COMO_HERRAMIENTAS_EN_LA_INVESTIGACIÓN.pptx
 
Excel (1) tecnologia.pdf trabajo Excel taller
Excel  (1) tecnologia.pdf trabajo Excel tallerExcel  (1) tecnologia.pdf trabajo Excel taller
Excel (1) tecnologia.pdf trabajo Excel taller
 
Trabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdfTrabajo de tecnología excel avanzado.pdf
Trabajo de tecnología excel avanzado.pdf
 
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPOAREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
AREA TECNOLOGIA E INFORMATICA TRABAJO EN EQUIPO
 
tarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzztarea de exposicion de senati zzzzzzzzzz
tarea de exposicion de senati zzzzzzzzzz
 

P3 Componentes

  • 1. Raúl Monge Departamento de Informática Universidad Técnica Federico Santa María Valparaíso - Chile [email_address] 3ª Parte: Programación Orientada a Componentes
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.
  • 13.
  • 14.
  • 15.
  • 16.
  • 17.
  • 18.
  • 19.
  • 20. Estructura básica de un ORB Adaptador de Objetos Object Request Broker Interfaz ORB DII IDL Stub IDLSkel DSI Cliente Implementación Servidor
  • 21.
  • 22.
  • 23.
  • 24. Arquitectura OMA Object Request Broker Servicios comunes (CORBAservices) Objetos y Aplicaciones Facilidades Verticales Facilidades Horizontales
  • 25.
  • 26.
  • 27.
  • 28. 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); }
  • 29. 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:
  • 30. 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:
  • 31. 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])); } }
  • 32.
  • 33.
  • 34.
  • 35.
  • 36.
  • 37. 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 ...”:
  • 38. 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) { ... } }
  • 39. 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(); } }
  • 40.
  • 41.
  • 42.
  • 43.
  • 44. Ejemplo con JavaBeans (1/2) // fichero btranslator.java public class btranslator { public String translate(String expr) { .... la implementación iría aquí ..... } }
  • 45. Ejemplo con JavaBeans (2/2) // fichero beanscliente.java import java.beans.Beans; public class beanscliente extends Beans { public static void main (String args[]) { btranslator TX; String s = new String(args[1]); ClassLoader cl = null; //system loader by default try { TX = (btranslator)Beans.instantiate(cl,"btranslator"); System.out.println(s+"->"+TX.translate(s)); } catch (Exception e) { e.printStackTrace(); System.exit(1); } } }
  • 46.
  • 47.
  • 48.
  • 49.
  • 50.
  • 51.
  • 52.
  • 53.
  • 54.
  • 55.
  • 56.
  • 57.
  • 58.