Common Object Request Broker Architecture (CORBA) es un estándar definido por Object Management Group (OMG) que permite que diversos componentes de software escritos en múltiples lenguajes de programación y que corren en diferentes computadoras, puedan trabajar juntos; es decir, facilita el desarrollo de aplicaciones distribuidas en entornos heterogéneos. IDL es un lenguaje de definición de interfaces que utiliza CORBA, el cual le permitirá definir las interfaces para los servicios que ofrecerá, de estas interfaces parten las implementaciones de la parte servidor y cliente en cualquiera de los diversos lenguajes que implementan CORBA (Ada, C, C++, Smalltalk, Java, Python, Perl). Comenzamos con la implementación (El ejemplo es para realizar una… Continuar leyendo
Categoría: Escritorio
Diseño de Programas Distribuidos: Diseño orientado a la comunicación (Prog. con sockets) –Diseñar primero el protocolo. –Construir programas acorde al protocolo. Diseño orientado a la Aplicación (RPC) –Construir aplicaciones. –Dividir los programas y añadir protocolos de comunicación. RPC (Remote Procedure Call) : En unix es posible tener en ejecución un programa en C con varias funciones que pueden ser llamadas desde otro programas. Estos otros programas pueden estar corriendo en otros ordenadores conectados en red. Supongamos, por ejemplo, que tenemos un ordenador muy potente en cálculo matemático y otro con un buen display para gráficos. Queremos hacer un programa con mucho cálculo… Continuar leyendo
Para continuar con esta sección recomiendo antes seguir la primera parte: Sockets en C (Parte I) – Linux Esta sección la quiero dedicar para subir dos ejemplos de un chat interactivo utilizando sockets de flujo entre un servidor y un cliente. Ejemplo1: Servidor: Cliente: Ejemplo2: Servidor: Cliente:
Tuberías Una tubería (pipe, cauce o ‘|’) consiste en una cadena de procesos conectados de forma tal que la salida de cada elemento de la cadena es la entrada del próximo. Permiten la comunicación y sincronización entre procesos. Es común el uso de buffer de datos entre elementos consecutivos. Una tubería es unidireccional. La utilización de tuberías mediante el uso de la shell es “el pan nuestro de cada día”, cualquier administrador de sistemas medianamente preparado encadena comandos y comandos mediante tuberías de forma natural: cat /etc/passwd | grep bash | wc –lines Los comandos “cat”, “grep” y “wc” se… Continuar leyendo
CLASES Las clases son lo más simple de Java. Todo en Java forma parte de una clase, es una clase o describe como funciona una clase. El conocimiento de las clases es fundamental para poder entender los programas Java. Todas las acciones de los programas Java se colocan dentro del bloque de una clase o un objeto. Todos los métodos se definen dentro del bloque de la clase, Java no soporta funciones o variables globales. Esto puede despistar a los programadores de C++, que pueden definir métodos fuera del bloque de la clase, pero esta posibilidad es más un intento… Continuar leyendo
El lenguaje Java tiene varias estructuras de control para bucles y bifurcaciones condicionales. El famoso Hola Mundo e ingreso de datos a través del programa en ejecución: Ahora entramos en la parte de las estructuras de control, antes de continuar, recomiendo ingresar a este link ya que no quiero volver a escribir todo sobre cada tipo de estructura, solo dejaré los ejemplos para Java. Ejemplo completo: Excepciones try-catch-throw try { sentencias; } catch( Exception ) { sentencias; } Java implementa excepciones para facilitar la construcción de código robusto. Cuando ocurre un error en un programa, el código que encuentra el error… Continuar leyendo
Operadores relacionales en Java: En ocasiones se desea que se ejecuten un conjunto de declaraciones si una condición es verdadera, y otro grupo si la condición es falsa. Es decir, deseamos que el programa tome decisiones y responda de acuerdo a ellas. Para que el programa tome una decisión, generalmente realiza algún tipo de prueba, una comparación. Para ello utilizará los llamados operadores relacionales: Operador Relación == … igual a … != … distinto de … > … mayor que … < … menor que … >= … mayor o igual que … <= … menor o igual que … ! … Continuar leyendo
Antes de continuar con el manual, recomiendo que lean las bases de la OO Este manual es ideal para aprender a programar en el lenguaje Java. Nivel de dificultad: Básico. Si tienen alguna duda, pueden dejar comentarios en los artículos, que con gusto los responderé. El manual todavía está en proceso de construcción!!! Java – Introducción Operadores relacionales y tipos de datos en Java Estructuras de control en Java Clases – Variables y métodos de instancia en Java
¿Qué es Java? Hacia 1990, James Gosling, quien trabaja para Sun Microsystems, fue el encargado de crear programas para controlar aparatos electrónicos domésticos. Originalmente Gosling y suequipo empezaron el diseño de su software usando C++, debido a su orientación a objetos. Sin embargo, se dieron cuenta que C++ no satisfacía los proyectos que se tenían en mente; encontraron dificultades con aspectos complicados de C++ como la herencia múltiple de clases, errores de programación (bugs) relacionados con huecos de memoria. De esta manera Gosling decidió que tenía que empezar por escribir un lenguaje simplificado que le evitara todos los problemas que… Continuar leyendo
En este ejemplo vamos a abrir un servidor y un cliente. El cliente enviará un fichero y el nombre del fichero al servidor. El servidor guardará el fichero recibido en el directorio donde se esté ejecutando. La idea es, por tanto, ver cómo enviamos un fichero por un socket, sin liar la forma de pedir el fichero, ni hacer hilos para atender muchos clientes y muchas peticiones ni nada de eso. Solo leer el fichero y enviarlo por el socket. El protocolo de transporte usado es TCP, para así garantizar que la transferencia se realice satisfactoriamente. Servidor: Cliente: Espero que les sirva el ejemplo,… Continuar leyendo
Archivos
- mayo 2023
- marzo 2023
- diciembre 2020
- abril 2020
- marzo 2020
- diciembre 2019
- enero 2019
- diciembre 2018
- agosto 2017
- febrero 2017
- diciembre 2016
- noviembre 2016
- septiembre 2016
- julio 2016
- junio 2016
- mayo 2016
- abril 2016
- junio 2015
- marzo 2015
- febrero 2015
- diciembre 2014
- agosto 2014
- julio 2014
- junio 2014
- mayo 2014
- abril 2014
- marzo 2014
- febrero 2014
- enero 2014
- diciembre 2013
- noviembre 2013
- octubre 2013
- septiembre 2013
- agosto 2013
- julio 2013
- junio 2013
- mayo 2013
- abril 2013
- marzo 2013