Manual de Corba

manuales, tutoriales, programacion
programming tutorials, programming manuals
programacion
Documento sin título
manual de ada tutorial de ada curso de ada bajar manual descargar gratis RegistroNewsletter
zonas:adsl:area-flash:area-php:area-asp:area-vb:area-photoshop:area-Vfox:area-Soft:area.:Mas
+ de 115.000 registrados
Secciones: Manuales-Diseño-Trucos-Recursos-Foros/Comunidad-Software-CodigoFuente-compras
manual de ada tutorial de ada curso de ada bajar manual descargar gratis
AñadenosFavoritos
Secciones: Herramientas-Libros-Webmasters/Google-Noticias -Biblioteca-Cursos--Directorio-Empleo

+busca en la web

+Newsletter
+InscribeteGratis..

Inserta tu manual

+Manuales
+Programacion
+DiseñoWeb
+Office/Ofimatica
+Bases de Datos
+S.O.
+Herr.Prefabricad
+Aplicaciones
+Manual propios
+Cursos-Masters

+AreaDiseño
+Manuales Diseño

+Trucos
+Ver secc.trucos

+Recursos
+ver recursos
+Iconos
+Cursores

+Noticias/RSS
+Ver noticias
+Ver canal RSS

+Codigo Fuente:
+Portada
+Todos los script
+ASP
+PHP
+Visual Basic
+JavaScript
+Perl
+Tips&Tricks

+Video Tutoriales
+Video tutoriales

+Comunidad
+Foros
+Ganar dinero
+Herramientas
+Libros

+Webmasters
+ZonaWebmaster

+Software
+ir a secc. Soft
+Prog. Linux
+Prog. MAc
+Prog.Windows

+AreasExclusivas
+Zona Flash
+Zona PHP
+Zona ASP
+Zona VB
+Zona Access
+Zona PERL
+Zona ADSL
+Zona V Fox Pro
+Zona Excel
+Zona Photoshop
+Zona MAC

+Agregador Blogs
+Tech-y
+Movilmania
+Mac+Webmasters
+Otros idiomas
+Mac Iphone ( EN)
+Mac iphone (FR)
+Mac iphone (DE)
+Technologie (FR)
+Webmasters(FR)

+Herramientas
+Herramientas
+Drivers

+Seguridad
+zona Virus

+Gana Dinero
+Como ganar

+SuperDiVX
+Area Divx

+Articulos
+Ver articulos
+Noticias

+Directorio [New]
+Ver directorio

+Blogs
+Nuestros blogs

+Noticias
+de Tecnologia

+SuperGames
+Juegos/ocio
+Juegos Online
+Videos y trailers
+Trucos - Juegos
+Zona Consolas
+Blog de PSP
+Blog de PS2
+Blog de PS3
+Blog de Wii
+Blog de XBOX
+Blog XBOX 360

+Word
+Towns-Villages (en)
+Cidades-Vilas(pt)

+Canal Compras
+Canal Compras

Untitled Document
Manual de Corba en GNU/Linux
Curso practico de Corba en GNU/Linux
por Alvaro del Castillo

CORBA

Curso práctico de Corba en GNU/Linux

Autor: Alvaro del Castillo

Desarrollo del cliente

El código para implementar el cliente tiene dos partes claramente diferenciadas. En una primera se realiza todo el proceso necesario para inicializar CORBA y contactar con el objeto servidor CORBA a través de un servidor de nombres. En una segunda fase se pasa a utilizar este objeto CORBA como si fuera un objeto local al cliente, momento en el que veremos la auténtica potencia de CORBA. A continuación presentamos el código fuente del cliente:

// ==========================================
// = Ejemplo de cliente CORBA = // =======================================
// // Tutorial de JavaORB (Paso 2) // public class Client { public static void main( String args[] ) { // 1. // Inicializacion del ORB org.omg.CORBA.ORB orb = org.omg.CORBA.ORB.init(args,null); // 2. // Localizacion del NamingService org.omg.CORBA.Object obj = null; org.omg.CosNaming.NamingContext naming = null; try { obj = orb.resolve_initial_references("NamingService"); naming = org.omg.CosNaming.NamingContextHelper.narrow(obj); } catch ( org.omg.CORBA.ORBPackage.InvalidName name ) { System.out.println("No se ha podido obtener el NamingService"); System.exit(0); } // 3. // Construccion del nombre del objeto Calculator org.omg.CosNaming.NameComponent [] name = new org.omg.CosNaming.NameComponent[1]; name[0] = new org.omg.CosNaming.NameComponent(); name[0].id = "Calculator"; name[0].kind = "Example"; // 4. // Localizacion de la referencia al objeto Calculator // dentro del NamingService try { obj = naming.resolve(name); } catch ( org.omg.CosNaming.NamingContextPackage.NotFound ex ) { System.out.println("Objeto no encontrado en el NamingService"); System.exit(0); } catch ( org.omg.CosNaming.NamingContextPackage.CannotProceed ex ) { System.out.println("No se ha podido continuar"); System.exit(0); } catch ( org.omg.CosNaming.NamingContextPackage.InvalidName ex ) { System.out.println("Nombre invalido"); System.exit(0); } // 5. // Narrow de la referencia al objeto Calculator calc = CalculatorHelper.narrow(obj); // 6. // Utilizamos el objeto Calculator somo si fuera local try { System.out.println("5 + 3 = " + calc.add(5,3) ); System.out.println("5 / 0 = " + calc.div(5,0) ); } catch ( DivisionPorCero ex ) { System.out.println("Interceptada intento de divisón por cero"); System.out.println("La division era "+ex.op1+" / "+ex.op2); } catch ( org.omg.CORBA.SystemException ex ) { System.out.println("Interceptada una excepcion CORBA System"); System.out.println(ex.getMessage()); } } }

En el primer paso del ejemplo lo que se hace es inicializar el ORB para indicarle que vamos a utilizarle. En este momento se le pueden pasar parámetros al ORB de inicialización como la localización del servidor de nombres, qué puerto debe de utilizar el ORB etc. En nuestro caso no vamos a utilizar esta via de configuracion del ORB.

Una vez inicializado el ORB lo siguiente que hacemos es contactar con el servidor de nombres. No es indispnesable tener un servidor de nombres CORBA disponible para la aplicación, pero si suele ser muy útil su uso para centralizar todas las referencias a objetos dentro de un servicio común. Por ello mostramos su uso en este ejemplo ya que en cualquier uso de CORBA real, el servidor de nombres suele ser indispensable.

JavaORB trae en la herramienta un servidor de nombres. Para arrancarlo basta con ir al directorio bin de JavaORB y ejecutar sh naming. Recordar al lector que dentro de la variable CLASSPATH debe estar la libreria JavaORBv1_2_4.jar.

Una vez arrancando el servidor de nombres con la configuración estandar el ORB de JavaORB sabe localizarlo. Para obtener una referencia a dicha objeto utilizamos el método de la API del ORB resolve_initial_references("NamingService"). En este caso utilizamos esta función para obtener una referencia al servicio de nombres, pero también se utiliza este método para obtener otros objetos del ORB como el adaptador de objetos. Este método nos devuelve un objeto CORBA genérico, pero en realidad nosotros sabemos que es un servidor de nombres (NamingContext) por lo que utilizamos la función narrow() del objeto Helper del servidor de nombres para transformar de forma segura este objeto genérico CORBA en un servidor de nombres.

Este procedimiento narrow() lo vamos a utilizar de forma constante. Cada objeto CORBA tiene definido una clase de ayuda Helper con esta función, que permite comprobar si un objeto genérico CORBA es realmente de su clase.

A lo largo del ejemplo se capturan muchas excepciones que pueden ocurrir a la hora de interactuar con CORBA. Es mucho más seguro programar de esta forma ya que en todo momento podemos estra informados de lo que ha podido ocurrir, siendo nuestro código mucho más robusto.

Una vez que tenemos dentro de naming la referencia al objeto CORBA del servidor de nombres, lo que hacemos en el paso 3 es construir el nombre que tiene el objeto CORBA Calculator dentro del servidor de nombres. Este nombre lo habrá puesto allí anteriormente el servidor CORBA que arranque dicho objeto CORBA. Los nombres dentro del servidor de nombres tienen dos campos, un identificador y una clase. De esta forma es más sencillo agrupar a los objetos comunes dentro de una clase.

En el paso 4 es donde realmente se contacta con el servidor de nombres y a través del método resolve() obtenemos la referencia al objeto CORBA Calculator. De nuevo en esta llamada se capturan varias excepciones. Hay que recordar al lector que esta llamada ya va a viajar por CORBA a través de los ORB del cliente y del servidor de nombres, ORBs que pueden estar separados por Internet p.e. por lo que pueden ocurrir muchas incidencias en esta llamada. Aunque para nosotros como desarrolladores el trabajo de invocar la función sea como la llamada sobre una función de un objeto local, el proceso es mucho más complejo.

De nuevo tenemos que utilizar la función narrow() en el paso 5, pero en este caso utilizando el Helper de Calculator, ya que es esta clase la que sabe si un objeto genérico CORBA es o no es un objeto Calculator. En el caso de lo que sea devuelve el objeto CORBA, pero ya como un Calculator. Y una vez que tenemos este objeto CORBA lo podemos utilizar exactamente igual que si fuera un objeto local, tal y como podemos ver en el paso 6 en las operaciones calc.add(5,3) y calc.div(5,0). Lo más interesante de este paso es como una excepción que se genera en el objeto remoto CORBA viaja a través de los ORBs y es entregada al cliente. De esta forma el uso de excepciones dentro de CORBA también es transparente para el desarrollador. En este caso la excepción capturada es la de "DivisionPorCero" que recordamos al lector que definimos dentro de la interfaz IDL Calculator.

En el siguiente esquema el lector puede observar la arquitectura del ejemplo y los pasos dados para contactar con el objeto servidor:

Figura 1: Cliente CORBA
 

ir a siguiente capitulo

Si estas interesado en esta tematica, tambien te podria interesar:
Libros del tema - Los ultimos libros editados
Foros de usuarios en este tema - dudas, preguntas y respuestas
¿Interesado en manuales de Diseño de Macromedia? tenemos una seccion llena...
¿Eres Webmaster? pues desde programatium tenemos algo interesante para ti.....
Recomendar
Recomendar esta pagina a un amigo

Sugiere un manual para esta seccion
¿buscas mas manuales? recomendamos solorecursos.com
Untitled Document

Servidores
+ Directorio Ofertas
ofertas ADSL
ofertas Tech
ofertas viajes
ofertas finanzas
formacion
OfertasCreditos
  otras ofertas
Canal Compras
+ Canal compras
+canal informatica
+imagen y sonido
+juegos y consolas
+ Directorio Ofertas
secc. empleo
cursos
ir a libros
+ Ganar Dinero
+ Webmasters
+ resto de gente
+ Software
+ ir a software
Lo + descargado
programas para
programas para bajar peliculas
bajar peliculas
programas para bajar musica
bajar musica
programas de seguridad para tu pc
programas google
programas para DJ - mezcladores
programas para webmasters
programas pre-fabricados
+ Tonos y Melodias
Melodias tonos
Juegos java
- Juegos de moviles
+
Busca Logos
+ Logos y Melodias
+ Libros
+ ir a ver los libros
+Recursos CGI
+ ir a seccion
+Ocio
Juegos Flash Online
+Cursos y Masters
cursos y masters
+ Ofertas
ofertas TecNo

+Agregador Blogs
+Otros idiomas
+Webmasters (FR)
+Software (FR)
+Tech (PT)
+Tecnologia (IT)
+Technologie (DE)
+Software (DE)
+Games(DE)
+Software(IT)

Agregador Blogs de:
Home
blogs Tecnologia
blogs Software
blogs Moviles
blogs Internet
blogs Geeks
blogs Informatica
blogs Gadchets
blogs Zona Messenger
blogs Diseño
blogs Recursos Blogs
blogs Webmasters
blogs Programacion
blogs 2.0
blogs Linux
+Nuetros Blogs
Ver Blogs
+Programas Gratis
Programas gratis
+RSS de noticias

RSS PR

 
Programacion:recursosIprogramacionITrucosTecnicosIservicios gratisITowns 2.0IcursosI pueblos españa 2.0 ILibrorama I hablandodemac I
noticias:SaludIcineIMovilesITechIMACINegociosIprog.net IDirectorio de WebsIvideos4you.tvI
Pueblos de: Andalucia-Aragon-Asturias-Baleares-Canarias-Cantabria-Castilla la mancha-Castilla Leon-extremadura-Galicia-la Rioja-Madrid-Murcia-Pais Vasco -
manuales Sugiere un manual para esta seccion
who's online
Linkanos
www.programatium.com© 1999 - web esta optimizada para Microsoft explorer 6.0
tutoriales