Corba
© Francisco Charte Ojeda
Sumario
! "
Introducción
! ! # $ % ! % + $ " ' ( % % ! + ' ( " " ' ( / # ! " ' ( " ! % ! ! + $ $ ! % ! $ $ ! ! ! ) ! # # . ! % # ' ( ! ! & ) ! ,' $ " $ ' ( % # * " ,'
' ( !
El compilador idltojava
# ) & ) $ ! ' ( % " idltojava + " # ' ( % # 0 0 ) , ! " # ' ( 7 8 $ 2 ' ( ! :7 0 0 # # % 3/, ! $ $ 4 ' idltojava ( 5 % # 6 –fno-cpp idltojava$ 9 1 2 CPP "CPPARGS " ) " $ # # % 1 ) ! 2 % 2 ! . ' ( ! " % * . % " +
# )
+
0 " 0 # ) $ ' (
6
# ! ! # ) # "
"
idltojava -fno-cpp Consulta.idl ! %
#
#
module SvrConsultas { interface IConsulta { string Consulta(in string Parametros); }; };
' ( SvrConsultas # * 6 # ) # $
+ ! SvrConsulas + " %
!
:! " % . 8 % 6
La interfaz del servidor
& # : ! 6 % #
/** File: * From: * Date: * By: 16:25:34 */
' ( 6 ! SvrConsultas
6 + 6 %
# ) idltojava IConsulta.Java # #
#
./SVRCONSULTAS/ICONSULTA.JAVA CONSULTA.IDL Wed Feb 24 19:07:42 1999 C:\ARCHIV~1\IDLTOJ~1\IDLTOJ~1.EXE Java IDL 1.2 Aug 18 1998
package SvrConsultas; public interface IConsulta extends org.omg.CORBA.Object, org.omg.CORBA.portable.IDLEntity { String Consulta(String Parametros); }
IConsulta.Java +
idltojava SvrConsultas * " . ! ) 6 IConsulta * * # ' ( IConsulta # " ' " ( # $
' SvrConsultas % ( ! 6 IConsulta $ * # ' ! % ( string % String ! ! ! 6 6 $ 5 % "! ! % ) 7 org.omg.CORBA.Object 6! " ) 6 % $ 6 ! org.omg.CORBA.portable.IDLEntity * 6 ) ! # /
' (
$
El esqueleto de servidor
! * ) " % _IConsultaImplBase.Java _IConsultaImplBaseorg.omg.CORBA.DynamicImplementation SvrConsultas.IConsulta 7 6 $ # * '( % # ( % ! ! 6 ! $ ;
/* * File: ./SVRCONSULTAS/_ICONSULTAIMPLBASE.JAVA * From: CONSULTA.IDL * Date: Wed Feb 24 19:07:42 1999 * By: C:\ARCHIV~1\IDLTOJ~1\IDLTOJ~1.EXE Java IDL 1.2 Aug 18 1998 16:25:34 */ package SvrConsultas; public abstract class _IConsultaImplBase extends org.omg.CORBA.DynamicImplementation implements SvrConsultas.IConsulta { //Constructor public _IConsultaImplBase() { super(); } // Type strings for this class and its superclases private static final String _type_ids[] = { "IDL:SvrConsultas/IConsulta:1.0" }; public String[] _ids() { return (String[]) _type_ids.clone(); } private static java.util.Dictionary _methods = new java.util.Hashtable(); static { _methods.put("Consulta", new java.lang.Integer(0)); } // DSI Dispatchcall public void invoke(org.omg.CORBA.ServerRequest r) { switch (((java.lang.Integer) _methods.get( r.op_name())).intValue()) { case 0: // SvrConsultas.IConsulta.Consulta { org.omg.CORBA.NVList _list = _orb().create_list(0); org.omg.CORBA.Any _Parametros = _orb().create_any(); _Parametros.type(org.omg.CORBA.ORB.init ().get_primitive_tc(org.omg.CORBA.TCKind.tk_string));_list.add_value("Parametros", _Parametros, org.omg.CORBA.ARG_IN.value); r.params(_list); String Parametros; Parametros = _Parametros.extract_string(); String ___result; ___result = this.Consulta(Parametros); org.omg.CORBA.Any __result = _orb().create_any(); __result.insert_string(___result); r.result(__result); } break; default: throw new org.omg.CORBA.BAD_OPERATION(0, org.omg.CORBA.CompletionStatus.COMPLETED_MAYBE); } } }Listado 3. Archivo _IConsultaImplBase.Java generado por idltojava
+
! !
! * * 6 $ _IConsultaImplBase ) ! $ ) $ + " # * ( % . _IConsultaImplBase 5 * ! % % * ! % + + * " * " Consulta() $ ! ! 6 * . 6 * 6IConsulta ! * _ids() 6IConsulta
_IConsultaImplBase ) ! $ # "
&
! 6 $
* invoke() IConsulta ! $ ! # ;+
% _IConsultaImplBase ! $
El stub para el cliente
& ' ) ! !_IConsultaStub * + # 6' IConsulta ( < ! )
= >
! $ # # # # * 6 IConsulta $ * $ " ) * ) 2
) $ ! ! % # ! )
!
$ !
! $ 6 idltojava _IConsultaStub.Java
7 !
" Consulta() ! % " ! # ! + ! % $ ) Consulta() $ (
6
# * 6 org.omg.CORBA.Request " ! * ) " 2 * # ?# : $
< # Consulta()
invoke()
! ! % ) " $
! ! $ *
%
6 $ )
"
/* * File: ./SVRCONSULTAS/_ICONSULTASTUB.JAVA *...
Regístrate para leer el documento completo.