martes, 30 de julio de 2013

APRENDE A PROGRAMAR EN VISUAL STUDIO 2010



Visual Basic .net desde cero: creando una aplicación

He escrito (y grabado videos) sobre muchas cosas respecto a Visual Basic .net (versión 2005, 2008 y 2010, que es casi lo mismo).  Alguna vez hice un pequeño video mostrando como crear una aplicación desde cero (llamado “Un programa sencillo… para ir calentando” que adivina un número al azar entre 1 y 10), sin embargo creo que con el puro video no queda claro para muchos, así que en esta ocasión voy a mostrar, paso a paso, como crear un programa sencillo en Visual Basic 2010.
Paso 1. Instalar Visual Studio 2010 en tu computadora
Para este paso, lo único que necesitas es el DVD y mucha paciencia.  Ponlo a instalar, sal por un café, platica con los cuates, juega Xbox, etc.  Como en 5 horas termina.
Paso 2. Arrancar Visual Studio por primera vez
La primera vez que arrancas Visual Studio 2010, te va a preguntar el lenguaje en el que generalmente vas a trabajar.  En nuestro caso, vamos a decirle que generalmente programaremos en Visual Basic.  Si eliges otro lenguaje, no te preocupes: de todos modos puedes escribir programas en Visual Basic.
Paso 3. Crear un nuevo proyecto
Al arrancar Visual Studio, debería aparecerte una ventana como ésta:
00_-_Visual_Studio
0. Ventana principal de Visual Studio
Ahora haz clic sobre el botón de nuevo proyecto.  Recuerda que un proyecto para Visual Studio es toda la bola de archivos necesarios para crear un programa (o sea que es una carpeta con muchas archivos y subcarpetas).  Este es el botón:
01_-_Botón_nuevo_proyecto
1. Botón "Nuevo proyecto"
Y al presionarlo aparece esta ventana (o una muy parecida):
02_-_Proyecto_nuevo 2. Ventana "Nuevo proyecto"
Hay que elegir el lenguaje de la barra izquierda (Visual Basic), vamos a elegir Windows Forms Application (que hace un programa como los que estamos acostumbrados a ver en Windows) y le ponemos un nombre a la aplicación.  En el ejemplo que voy a hacer, solo cambio el nombre (lo demás está seleccionado como lo necesito: si el tuyo aparece un poco diferente, solo selecciona lo que aquí indiqué).  Mi aplicación se va a llamar 00-Ejemplo.  Nota: en algunas versiones te pregunta la carpeta donde lo vas a guardar.
Paso 5. Dibujar la interfaz gráfica para el usuario (GUI)
Aquí viene la parte divertida.  Después de escribir el nombre de mi proyecto (y en algunos casos la carpeta donde lo voy a guardar) aparece el ambiente de desarrollo como se ve en esta imagen (obviamente los cuadros y flechas no aparecen):
03_-_Ambiente_de_desarrollo
3. Ambiente de programación. Nota: la flecha que no tiene texto apunta hacia la ventana como la verá el usuario.
Antes de hablar de los pasos siguientes, quiero que te familiarices con el entorno de trabajo.  Aunque las cosas pueden cambiar (Visual Studio te da la oportunidad de configurar tu entorno de trabajo como quieras), generalmente a la izquierda está un panel con los diferentes controles que puedes dibujar en la ventana: botones, cajas de texto, etc.  Arriba está la barra de menú y algunos botones de funciones (como el de Nuevo Proyecto que presionamos antes).  De lado derecho, tenemos el explorador de soluciones (que muestra todos los archivos que componen el proyecto) y abajo una ventana que tiene las propiedades del objeto seleccionado (colores, etc.).  En la parte inferior hay una ventana donde me pueden aparecer mensajes (sobre todo a la hora de compilar y correr un programa) y en la parte central es el área de trabajo.
Para este ejemplo, solo voy a dibujar 3 controles: una etiqueta (conocidos como Label), una caja de texto (Textbox) y un botón (Button).  Pero antes que nada, voy a modificar la ventana principal al cambiar sus propiedades.  Para empezar, arriba de la ventana le va a aparecer el texto que dice “Form1” (como se ve en la figura).  Yo quiero cambiarlo para que diga “Saludos”.
04_-_Texto_Form1 4. Parte superior de la ventana que dice "Form1".
Para hacer esto hago clic sobre la ventana en la vista diseño y cambia la ventana de propiedades para mostrar las que se relacionan a la ventana (o Form).  Ahora busco la propiedad que se llama Text y le modifico el valor para que diga “Saludos”.
05_-_Propiedades_Text
5. Panel de propiedades con la propiedad Text seleccionado.
Una vez que escribo “Saludos” en lugar de “Form1”, mi ventana se ve así (en la vista diseño):
06_-_Texto_Form1
6. La ventana Form1 con el nuevo texto.
Ahora voy a cambiar propiedades de la ventana (Form1) para que ya no tenga botón de minimizar ni de maximizar.  Esto lo hago modificando las propiedades MinimizeBox yMaximizeBox respectivamente.  Al cambiar True (verdadero, o sea que sí tiene esa “caja”) por false (falso, que lo oculte) resuelvo la situación.  Aquí está la ventana con estas dos propiedades señaladas y abajo está la ventana ya sin cajas de minimizar ni maximizar.
07_-_Minimize_y_maximize
7. Panel de propiedades con MinimizeBox y MaximizeBox señaladas.
08_-_Form1_sin_min_ni_max
8. Ventana (Form1) sin los botones de minimizar ni maximizar.
Ahora voy a dejar la ventana por la paz y voy a dibujar la etiqueta.  Voy al panel de los controles (lado izquierdo) y selecciono la que dice Label como se muestra en la imagen:
09_-_Label_tool
9. Herramienta Label.
Luego hago clic sobre la ventana en el lugar donde quiero que quede…
10_-_Form1_con_Label
10. Form1 con una etiqueta (Label1).
Y en este momento ya tengo un control en mi ventana, llamado Label1, que contiene un texto.  Ahora, aprovechando que está seleccionado (y si no, solo haz clic sobre la etiqueta), voy a modificar su propiedad Text para que diga “Nombre” en lugar de “Label1”…
 11_-_Propiedad_Text_de_Label1
11. Form1 con una etiqueta (Label1) que dice "Nombre:".
De la misma manera voy a dibujar una caja de texto.  Selecciono la caja de texto del panel de controles (o herramientas) y lo dibujo sobre la ventana.  Generalmente a los controles que voy a programar me gusta cambiarles el nombre para no hacerme bolas, así que a este le cambio la propiedad (Name) para que diga txtNombre.  La parte txt me dice que es una caja de texto… si quieres profundizar en esto, busca la notación húngara.  Aquí hay imágenes con todo el proceso:
12_-_Form1_con_Label1_que_dice_Nombre 
12. Form1 con una etiqueta (Label1) que dice "Nombre:".
 13_-_Herramienta_Textbox
13. Herramienta TextBox.
 14_-_Form1_con_la_Textbox1
14. Form1 con Textbox.
 15_-_Textbox_propiedad_name
15. Propiedad (Name) de la Textbox.
De la misma manera dibujo un botón abajo de la caja de texto.  Aquí están las imágenes que describen paso por paso:
16_-_Herramienta_button
16. Herramienta Button.
17_-_Form1_con_botón_1
17. Form1 con el botón dibujado.
18_-_Name_es_btnSalir
18. Cambié la propiedad (Name) por btnSalir (antes decía Button1).
19_-_Propiedad_Text_del_button
19. Propiedad Text del botón.
20_-_Ventana_terminada
20. Form1 “terminada”.
Paso 6. Escribir el código (pa’ que haga algo)
Una vez que está todo “bonito”, es hora de que haga algo.  Vamos a programar los eventos de la ventana.  Un evento es algo que pasa: el mouse que hace clic sobre el botón, algo que se teclea en la caja de texto, etc.
Este programa va a dejar que el usuario escriba su nombre (o cualquier otro texto) en la caja de texto y al presionar el botón Salir, se despedirá.  Por lo tanto, el único evento que tengo que programar es el que se ejecuta cuando el usuario da clic sobre el botón Salir.  Así que le doy doble clic sobre el botón y el área de trabajo cambia para escribir código.  En este caso, al dar doble clic sobre el botón aparece una nueva pestaña en el área de trabajo:
21_-_Pestaña_código
21. Pestaña para escribir código del evento del botón.
Por lo pronto no le hagas caso al código que aparece, ya luego lo iremos hablando (o lo puedes ver en varios de mis posts sobre Visual Basic .net).  Por lo pronto, aparece el código listo para escribir lo que queremos que haga cuando el usuario haga clic sobre el botón.  Este es el código que escribí:
 22_-_Código
22. Pestaña para escribir código del evento del botón.
No te preocupes si no entendiste todas las instrucciones (esto es un primer acercamiento y poco a poco podrás ir profundizando en lo que hace cada cosa).  La instrucción MsgBox se encarga de abrir una ventana y mostrar un texto (bueno, puede hacer un poco más que eso, pero para empezar hace esto).  En medio escribo lo que quiero que diga, en este caso el texto “Adiós, “ seguido por el nombre que teclearon en la caja de texto (¿recuerdas que le cambiamos el nombre por txtNombre?).  El ampersand (&) sirve para unir dos textos: en este caso, el texto “Adiós, “ y el nombre tecleado.  Después de hacer esto, se encuentra la instrucción End que termina la ejecución del programa.
Paso 7. Guardar todo
Esto es sumamente importante.  Y no debí dejarlo hasta ahora: es algo que hay que hacer cada vez que se hace algún cambio.  Presiona el botón de guardar todo (Save All, también está disponible en el menú File):
23_-_Save_All
23. Botón Guardar todo.
Y aparece esta ventana:
24_-_Guardar
24. Ventana para guardar el proyecto.
Selecciona una carpeta (botón Browse) y, si es necesario, cambia el nombre.  Luego haz clic sobre el botón Save.  En las próximas ocasiones que presiones Save All ya no aparece esta ventana.
Paso 8. La ejecución
No, esta ejecución no tiene que ver con violencia, sino con ver si el programa hace lo que queremos que haga.  Para esto, presiona el botón para comenzar la depuración (Start debugging):
25_-_Start_debug
25. Botón Start debugging....
Y aparece nuestra aplicación:
26_-_Ejecutándose
26. Ejecución de la aplicación.
Escribo mi nombre y al presionar el botón Salir, aparece esta ventana:
27_-_Ejecución_2
27. Ventana de saludo.
Al presionar el botón Aceptar (o presionar la tecla Enter), se termina la ejecución y regreso a Visual Studio.

martes, 23 de julio de 2013

Dispositivos de almacenamiento de datos
Disco duro
Los discos duros tienen una gran capacidad de almacenamiento de información, pero al estar alojados normalmente dentro de la computadora (discos internos), no son extraíbles fácilmente. Para intercambiar información con otros equipos (si no están conectados en red) se tienen que utilizar unidades de disco, como los disquetes, los discos ópticos (CD, DVD), los discos magneto-ópticos, memorias USB o las memorias flash, entre otros.
El disco duro almacena casi toda la información que manejamos al trabajar con una computadora. En él se aloja, por ejemplo, el sistema operativo que permite arrancar la máquina, los programas, archivos de texto, imagen, vídeo, etc. Dicha unidad puede ser interna (fija) o externa (portátil), dependiendo del lugar que ocupe en el gabinete o caja de computadora.
Un disco duro está formado por varios discos apilados sobre los que se mueve una pequeña cabeza magnética que graba y lee la información.
Este componente, al contrario que el micro o los módulos de memoria, no se pincha directamente en la placa, sino que se conecta a ella mediante un cable. También va conectado a la fuente de alimentación, pues, como cualquier otro componente, necesita energía para funcionar.
Además, una sola placa puede tener varios discos duros conectados.
Las características principales de un disco duro son:
  • Capacidad: Se mide en gigabytes (GB). Es el espacio disponible para almacenar secuencias de 1 byte. La capacidad aumenta constantemente desde cientos de MB, decenas de GB, cientos de GB y hasta TB.
  • Velocidad de giro: Se mide en revoluciones por minuto (RPM). Cuanto más rápido gire el disco, más rápido podrá acceder a la información la cabeza lectora. Los discos actuales giran desde las 4.200 a 15.000 RPM, dependiendo del tipo de ordenador al que estén destinadas.
  • Capacidad de transmisión de datos: De poco servirá un disco duro de gran capacidad si transmite los datos lentamente. Los discos actuales pueden alcanzar transferencias de datos de 3 GB por segundo.
También existen discos duros externos que permiten almacenar grandes cantidades de información. Son muy útiles para intercambiar información entre dos equipos. Normalmente se conectan al PC mediante un conector USB.

Disquetera
Representación gráfica de un disquete.
La unidad de 3,5 pulgadas permite intercambiar información utilizando disquetes magnéticos de 1,44 MB de capacidad. Aunque la capacidad de soporte es muy limitada si tenemos en cuenta las necesidades de las aplicaciones actuales se siguen utilizando para intercambiar archivos pequeños, pues pueden borrarse y reescribirse cuantas veces se desee de una manera muy cómoda, aunque la transferencia de información es bastante lenta si la comparamos con otros soportes, como el disco duro o un CD-ROM.
Para usar el disquete basta con introducirlo en la ranura de la disquetera. Para expulsarlo se pulsa el botón situado junto a la ranura, o bien se ejecuta alguna acción en el entorno gráfico con el que trabajamos (por ejemplo, se arrastra el símbolo del disquete hasta un icono representado por una papelera).
La unidad de disco se alimenta mediante cables a partir de la fuente de alimentación del sistema. Y también va conectada mediante un cable a la placa base. Un diodo LED se ilumina junto a la ranura cuando la unidad está leyendo el disco, como ocurre en el caso del disco duro.
En los disquetes solo se puede escribir cuando la pestaña esta cerrada.
Cabe destacar que el uso de este soporte en la actualidad es escaso o nulo, puesto que se ha vuelto obsoleto teniendo en cuenta los avances que en materia de tecnología se han producido. 
Unidad de CD-ROM o "lectora"
Representación gráfica de un disco compacto.
La unidad de CD-ROM permite utilizar discos ópticos de una mayor capacidad que los disquetes de 3,5 pulgadas: hasta 700 MB. Ésta es su principal ventaja, pues los CD-ROM se han convertido en el estándar para distribuir sistemas operativos, aplicaciones, etc.
El uso de estas unidades está muy extendido, ya que también permiten leer los discos compactos de audio.
Para introducir un disco, en la mayoría de las unidades hay que pulsar un botón para que salga una especie de bandeja donde se deposita el CD-ROM. Pulsando nuevamente el botón, la bandeja se introduce.
En estas unidades, además, existe una toma para auriculares, y también pueden estar presentes los controles de navegación y de volumen típicos de los equipos de audio para saltar de una pista a otra, por ejemplo.
Una característica básica de las unidades de CD-ROM es la velocidad de lectura, que normalmente se expresa como un número seguido de una «x» (40x, 52x,..). Este número indica la velocidad de lectura en múltiplos de 128 kB/s. Así, una unidad de 52x lee información de 128 kB/s × 52 = 6,656 kB/s, es decir, a 6,5 MB/s.
Unidad de CD-RW (regrabadora) o "grabadora"
Una regrabadora puede grabar y regrabar discos compactos. Las características básicas de estas unidades son la velocidad de lectura, de grabación y de regrabación. En los discos regrabables es normalmente menor que en los discos que sólo pueden ser grabados una vez. Las regrabadoras que trabajan a 8X, 16X, 20X, 24X, etc., permiten grabar los 650, 700 o más megabytes (hasta 900 MB) de un disco compacto en unos pocos minutos. Es habitual observar tres datos de velocidad, según la expresión ax bx cx (a:velocidad de lectura; b: velocidad de grabación; c: velocidad de regrabación).
 Unidad de DVD-ROM o "lectora de DVD"
Las unidades de DVD-ROM son aparentemente iguales que las de CD-ROM, pueden leer tanto discos DVD-ROM como CD-ROM. Se diferencian de las unidades lectoras de CD-ROM en que el soporte empleado tiene hasta 17 GB de capacidad, y en la velocidad de lectura de los datos. La velocidad se expresa con otro número de la «x»: 12x, 16x... Pero ahora la x hace referencia a 1,32 MB/s. Así: 16x = 21,12 MB/s.
Las conexiones de una unidad de DVD-ROM son similares a las de la unidad de CD-ROM: placa base, fuente de alimentación y tarjeta de sonido. La diferencia más destacable es que las unidades lectoras de discos DVD-ROM también pueden disponer de una salida de audio digital. Gracias a esta conexión es posible leer películas en formato DVD y escuchar seis canales de audio separados si disponemos de una buena tarjeta de sonido y un juego de altavoces apropiado (subwoofer más cinco satélites).
Unidad de DVD-RW o "grabadora de DVD"
Puede leer y grabar y regrabar imágenes, sonido y datos en discos de varios gigabytes de capacidad, de una capacidad de 650 MB a 9 GB.
Unidad de disco magneto-óptico
La unidad de discos magneto-ópticos permiten el proceso de lectura y escritura de dichos discos con tecnología híbrida de los disquetes y los discos ópticos, aunque en entornos domésticos fueron menos usadas que las disqueteras y las unidades de CD-ROM, pero tienen algunas ventajas en cuanto a los disquetes:
  • Por una parte, admiten discos de gran capacidad: 230 MB, 640 Mb o 1,3 GB.
  • Además, son discos reescribibles, por lo que es interesante emplearlos, por ejemplo, para realizar copias de seguridad.
Lector de tarjetas de memoria
El lector de tarjetas de memoria es un periférico que lee o escribe en soportes de memoria flash. Actualmente, los instalados en computadores (incluidos en una placa o mediante puerto USB), marcos digitales, lectores de DVD y otros dispositivos, suelen leer varios tipos de tarjetas.
Una tarjeta de memoria es un pequeño soporte de almacenamiento que utiliza memoria USB para guardar la información que puede requerir o no baterías (pilas), en los últimos modelos la batería no es requerida, la batería era utilizada por los primeros modelos. Estas memorias son resistentes a los rasguños externos y al polvo que han afectado a las formas previas de almacenamiento portátil, como los CD y los disquetes.
 Otros dispositivos de almacenamiento
Otros dispositivos de almacenamiento son las memorias flash o los dispositivos de almacenamiento magnéticos de gran capacidad.
  • Cinta perforada: se trata de un medio muy obsoleto, consistente en tarjetas o cintas de papel perforadas.
  • Memoria flash: es un tipo de memoria que se comercializa para el uso de aparatos portátiles, como cámaras digitales o agendas electrónicas. El aparato correspondiente o bien un lector de tarjetas, se conecta a la computadora a través del puerto USB o Firewire.
  • Discos y cintas magnéticas de gran capacidad: son unidades especiales que se utilizan para realizar copias de seguridad o respaldo en empresas y centros de investigación. Su capacidad de almacenamiento puede ser de cientos de gigabytes.
  • Almacenamiento en línea: hoy en día también debe hablarse de esta forma de almacenar información. Esta modalidad permite liberar espacio de los equipos de escritorio y trasladar los archivos a discos rígidos remotos provistos que garantizan normalmente la disponibilidad de la información. En este caso podemos hablar de dos tipos de almacenamiento en línea: un almacenamiento de corto plazo normalmente destinado a la transferencia de grandes archivos vía web; otro almacenamiento de largo plazo, destinado a conservar información que normalmente se daría en el disco rígido del ordenador personal.
Restauración de datos
La información almacenada en cualquiera de estos dispositivos debe de disponer de algún mecanismo para restaurar la información, es decir restaurar la información a su estado original en caso de que algún evento no nos permita poder acceder a la información original, siendo necesario acudir a la copia que habíamos realizado anteriormente. Para esta restauración de datos existen diferentes métodos, desde un simple copiar pasando por comando como el "copy" de DOS, el "cp" de sistemas Linux y Unix, o herramientas de diversos fabricantes.En informática la información se mide a través de diferentes términos.
Recuperación de datos
Recuperación de datos es el proceso de restablecer la información contenida en dispositivos de almacenamiento secundarios dañados, defectuosos, corruptos, inaccesibles o que no se pueden acceder de forma normal. A menudo la información es recuperada de dispositivos de almacenamiento tales como discos duros, cintas, CD, DVD, RAID y otros dispositivos electrónicos. La recuperación puede ser debida a un daño físico en el dispositivo de almacenamiento o por un daño lógico en el sistema de archivos que evita que el dispositivo sea accedido desde el sistema operativo.


viernes, 12 de julio de 2013

MIDDLEWARE

Middleware

Middleware es un software que asiste a una aplicación para interactuar o comunicarse con otras aplicaciones, software, redes, hardware y/o sistemas operativos. Éste simplifica el trabajo de los programadores en la compleja tarea de generar las conexiones que son necesarias en los sistemas distribuidos. De esta forma se provee una solución que mejora la calidad de servicio, seguridad, envío de mensajes, directorio de servicio, etc.
Funciona como una capa de abstracción de software distribuida, que se sitúa entre las capas de aplicaciones y las capas inferiores (sistema operativo y red). El middleware abstrae de la complejidad y heterogeneidad de las redes de comunicaciones subyacentes, así como de los sistemas operativos y lenguajes de programación, proporcionando una API para la fácil programación y manejo de aplicaciones distribuidas.


Java Remote Method Invocation
RMI es un mecanismo ofrecido por Java para invocar un método de manera remota. Forma parte del entorno estándar de ejecución de Java y proporciona un mecanismo simple para la comunicación de servidores en aplicaciones distribuidas basadas exclusivamente en Java. Si se requiere comunicación entre otras tecnologías debe utilizarse CORBASOAP en lugar de RMI.
RMI se caracteriza por la facilidad de su uso en la programación por estar específicamente diseñado para Java; proporciona paso de objetos por referencia (no permitido por SOAP. A través de RMI, un programa Java puede exportar un objeto, con lo que dicho objeto estará accesible a través de la red y el programa permanece a la espera de peticiones en un puerto TCP. La invocación se compone de los siguientes pasos:
·         Encapsulado (marshalling) de los parámetros (utilizando la funcionalidad de serialización de Java).
·         Invocación del método (del cliente sobre el servidor). El invocador se queda esperando una respuesta.
·         Al terminar la ejecución, el servidor serializa el valor de retorno (si lo hay) y lo envía al cliente.
·         El código cliente recibe la respuesta y continúa como si la invocación hubiera sido local.

 

Primera capa

La primera capa es la de aplicación y se corresponde con la implementación real de las aplicaciones cliente y servidor. Aquí tienen lugar las llamadas a alto nivel para acceder y exportar objetos remotos
Segunda capa
La capa 2 es la capa proxy, o capa stub-skeleton. Esta capa es la que interactúa directamente con la capa de aplicación.

Tercera capa

La capa 3 es la de referencia remota, y es responsable del manejo de la parte semántica de las invocaciones remotas.

Cuarta Capa

La capa 4 es la de transporte. Es la responsable de realizar las conexiones necesarias y manejo del transporte de los datos de una máquina a otra.


CORBA
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 u objetivo es ayudar a reducir la complejidad, disminuir los costes y acelerar la introducción de nuevas aplicaciones informáticas, promoviendo la teoría y la práctica de la tecnología de objetos en los sistemas distribuidos.
Es una tecnología que oculta la programación a bajo nivel de aplicaciones distribuidas. No obstante también brinda al programador una tecnología orientada objetos; las funciones y los datos se agrupan en objetos y estos objetos pueden estar en diferentes máquinas, pero el programador accederá a ellos a través de funciones normales dentro de su programa.CORBA es más que una especificación multiplataforma, también define servicios habitualmente necesarios como seguridad y transacciones.

Object Request Broker (ORB)

·         La localización de los objetos: El cliente no tiene porque saber donde se encuentra el objeto destino, puede estar en su propia máquina o en un proceso en una máquina remota.
·         La implementación de los objetos: El cliente ignora el lenguaje de programación con el que se ha escrito el objeto remoto, su implementación o el sistema operativo en el que se encuentra.
·         Estado de ejecución del objeto: Al enviar una petición sobre un objeto remoto, el ORB se encarga de inicializar el objeto en caso de ser necesario, antes de enviarle la petición.

 

Interface Definition Language (IDL)

El lenguaje de definición de interfaz o IDL (Interface Definition Language), es un lenguaje que se utiliza para definir las interfaces entre los componentes de una aplicación y es el elemento que soporta la interoperabilidad de la tecnología. El IDL sólo puede definir interfaces, no implementaciones. Al especificar las interfaces entre objetos en CORBA, IDL es el encargado de asegurar la independencia del lenguaje de programación utilizado.

Objetos por referencia

una búsqueda NameServer (similar a la del Sistema de Nombres de Dominio(DNS))

Datos por valor

El IDL proporciona el lenguaje de definición de intercomunicación entre objetos o sistemas operativos

Objects by value (OBV)

El código de los métodos de objetos Valuetype es ejecutado localmente por defecto. Si el OBV ha sido recibido por el lado remoto, el código necesario debe ser conocido a priori por ambas partes o descargado dinámicamente por el emisor.

CORBA Component Model (CCM)

proporciona la abstracción de entidades que pueden proveer y aceptar servicios a través de unas interfaces propias bien definidas llamadas ports (puertos).

General InterORB Protocol (GIOP)

·         Internet InterORB Protocol (IIOP): implementación de GIOP para su uso por internet, proporcionando una interfaz entre los mensajes GIOP y la capa TCP/IP.
·         SSL InterORB Protocol (SSLIOP): protocolo IIOP sobre SSL, proporcionando encriptación y autenticación.

 

Localizaciones de CORBA (CorbaLoc)

Las localizaciones de CORBA (CorbaLoc) hacen referencia a un objeto referenciado CORBA que tiene una estructura similar a la de una URL.Todos los productos CORBA deben soportar dos URLs definidas: CorbaLoc y CorbaName.
  

JAVA MESSAGE SERVICE
La API Java Message Service (en español servicio de mensajes Java), también conocida por sus siglas JMS, es la solución creada por Sun Microsystems para el uso de colas de mensajes. Este es un estándar de mensajería que permite a los componentes de aplicaciones basados en la plataforma Java2 crear, enviar, recibir y leer mensajes. También hace posible la comunicación confiable de manera síncrona y asíncrona.El servicio de mensajería instantánea también es conocido como Middleware Orientado a Mensajes (MOM por sus siglas en inglés) y es una herramienta universalmente reconocida para la construcción de aplicaciones empresariales.
Modelo Punto a Punto (point to point): Este modelo cuenta con solo dos clientes, uno que envía el mensaje y otro que lo recibe. Este modelo asegura la llegada del mensaje ya que si el receptor no esta disponible para aceptar el mensaje o atenderlo, de cualquier forma se le envía el mensaje y este se agrega en una cola del tipo FIFO para luego ser recibido según haya entrado.
Modelo Publicador/Suscriptor (Publish/subscribe): Este modelo cuenta con varios clientes, unos que publican temas o eventos, y los que ven estos temas, a diferencia del modelo punto a punto este modelo tiende a tener más de un consumidor.
SINCRONA
Invocación de métodos (Java RMI)
Quien invoca y quien es invocado deben estar presentes para que la comunicación se realice.
El emisor debe esperar respuesta del receptor, para realizar otra petición.
Ejemplo: llamada telefónica
ASINCRONA
No se necesita la presencia del emisor y el receptor para realizar la comunicación
El receptor responde en el momento que pueda
Se requiere de un Sistema de mensajería
(Message-oriented middleware - MOM)
Ejemplo: Buzón de voz, en este se almacenan los mensajes y el receptor puede recibir los mensajes y revisarlos en otro momento.
Estos son la base de los JMS, se componen de tres elementos.
1.Header: Es la cabecera del mensaje, le sirve a los clientes y a los proveedores para poder identificarlos.
2.Properties: Son propiedades en general para personalizar y/o hacer más específico un mensaje.

Clientes JMS
Son clientes todos aquellos que envíen mensajes, como aquellos que los reciban, en algunos textos a los que envían mensajes son llamados proveedores y los que reciben consumidores o clientes. Para enviar o recibir mensajes tienen que tener una serie de pasos:
1. Conseguir un destino, mediante el objeto Destination a través de JNDI.
2. Usar ConnectionFactory para conseguir un objeto Connection.
3. Usar Destination para crear un objeto Session.
                                                         

WEB SERVICE
Un servicio web (en inglés, Web Service o Web services) es una tecnología que utiliza un conjunto de protocolos y estándares que sirven para intercambiar datos entre aplicaciones. Distintas aplicaciones de software desarrolladas en lenguajes de programación diferentes, y ejecutadas sobre cualquier plataforma, pueden utilizar los servicios web para intercambiar datos en redes de ordenadores como Internet. La interoperabilidad se consigue mediante la adopción de estándares abiertos. Las organizaciones OASIS y W3C son los comités responsables de la arquitectura y reglamentación de los servicios Web. Para mejorar la interoperabilidad entre distintas implementaciones de servicios Web se ha creado el organismo WS-I, encargado de desarrollar diversos perfiles para definir de manera más exhaustiva estos estándares. Es una máquina que atiende las peticiones de los clientes web y les envía los recursos solicitados.
Estándares
·         Web Services Protocol Stack: Así se denomina al conjunto de servicios y protocolos de los servicios Web.
·         XML : Es el formato estándar para los datos que se vayan a intercambiar.
·         SOAP o XML-RPC : Protocolos sobre los que se establece el intercambio.
·         Otros protocolos: los datos en XML también pueden enviarse de una aplicación a otra mediante protocolos normales como HTTP (Hypertext Transfer Protocol), FTP (File Transfer Protocol), oSMTP (Simple Mail Transfer Protocol).
·         WSDL : Es el lenguaje de la interfaz pública para los servicios Web. Es una descripción basada en XML de los requisitos funcionales necesarios para establecer una comunicación con los servicios Web.
·         UDDI : Protocolo para publicar la información de los servicios Web. Permite comprobar qué servicios web están disponibles.
WS-Security : Protocolo de seguridad aceptado como estándar por OASIS (Organization for the Advancement of Structured Information Standards). Garantiza la autenticación de los actores y la confidencialidad de los mensajes enviados



Ventajas
·         Aportan interoperabilidad entre aplicaciones de software independientemente de sus propiedades o de las plataformas sobre las que se instalen.
·         Los servicios Web fomentan los estándares y protocolos basados en texto, que hacen más fácil acceder a su contenido y entender su funcionamiento.
·         Permiten que servicios y software de diferentes compañías ubicadas en diferentes lugares geográficos puedan ser combinados fácilmente para proveer servicios integrados.



MIDDLEWARE BASADO EN EVENTOS
Middleware es un software que asiste a una aplicación para interactuar o comunicarse con otras aplicaciones, software, redes, hardware y/o sistemas operativos. Éste simplifica el trabajo de los programadores en la compleja tarea de generar las conexiones que son necesarias en los sistemas distribuidos
Taxonomía del software middleware


PHOENIX  MIDDLEWARE  PARA  EL  DESARROLLO  DE  SISTEMAS  BASADOS  EN  EVENTOS
Phoenix es una plataforma middleware para el desarrollo de sistemas basados en eventos. se basa en el patrón de comunicaciones publish/suscribe y permite construir sistemas distribuidos con múltiples fuentes productoras de información y múltiples nodos consumidores de información.
                                     

Orientados a procedimiento o proceso
  Los middleware que son orientados a procesos, utilizan una comunicación sincronizada (como por ejemplo el teléfono)
                                                      Orientados a objeto
  Soportan pedidos de objetos distribuidos. La comunicación entre los objetos puede ser sincronizada, sincronizada diferida o no sincronizad
  a. orden la información y la transmite a través del agente (un ORB PROXY).
  El proxy remoto , desordena la información que le llega del agente y se la pasa al objeto servidor
Orientados a mensajes (MOM, Message-oriented middleware)
Se pueden dividir en dos tipos, espera y publicación/suscripción. El paso de espera se puede dividir  en mensaje y espera. El paso de mensaje inicia con que la aplicación envía un mensaje a uno o más clientes, con el MOM del cliente.
Orientados a componentes
Un componente es «programa que realiza una función específica, diseñada para operar e interactuar fácilmente con otros componentes y aplicaciones».Un componente es «programa que realiza una función específica, diseñada para operar e interactuar fácilmente con otros componentes y aplicaciones».

Categoría de aplicación
Middleware para acceso a información (DAM, Data Access middleware)
  Los middleware para acceso a información tienen la característica de poder interactuar con diversas fuentes de datos
Middleware de escritorio
  Los middleware de escritorio pueden hacer variaciones en la presentación de la información pedida por el usuario por aplicaciones de rastreo y asistencia, controlar cualquier servicio de transporte y proveer una copia de seguridad y otras operaciones de fondo
Middleware basados en la web
  Este tipo de middleware asiste al usuario con la navegación web, el uso de interfaces que le permiten encontrar páginas de su interés y detectar cambios de interés del usuario basado en su historial de búsquedas
                                                                Middleware a tiempo real
  La información en tiempo real es caracterizada por que la información correcta en un instante puede no serlo en otro. Los middleware en tiempo real soportan las peticiones sensibles al tiempo y políticas de planificación