Este blog está orientado a toda la gente que quiera ver y participar en temas de ing. de software, TI, redes y otras áreas de la computación.

miércoles, marzo 08, 2006

Introducción a Web Services.

Voy a presentar una situación. Imaginen una empresa donde hay varios sistemas y cada uno hace funciones distintas. Es necesario que trabajen entre si para cumplir con un objetivo. Ahora bien, en un mundo ideal todas las aplicaciones estarían hechas en la misma plataforma y lenguaje de programación y sería muy fácil hacer que se comunicaran los sistemas. Pero esto casi nunca sucede. Un sistema puede estar en Delphi de Borland, otro en C# con la plataforma de .NET y otro en Visual Basic 6. Como vemos, sería complicado hacer que los sistemas se hablen directamente ya que están hechos con herramientas distintas y no muy compatibles. Hay muchas formas de hacerlos comunicarse pero la óptima y la que voy a tratar es a través de Web Services. (Servicios de Web). El chiste es que siguiendo estándares preestablecidos y una forma de comunicación que todos puedan entender cada sistema (sin importar el lenguaje en que esta construido) ofrezca un servicio para que otro lo pueda utilizar. La forma en que los WS se comunican es por HTTP el cual utiliza TCP/IP que es un protocolo de Red muy famoso y estándar en el mundo. El estándar para pasar datos mas utilizado es SOAP que incorpora a XML. XML es un lenguaje con el cual se pueden leer e interpretar datos. XML también goza de reglas y estándares que lo hacen muy fácil de entender y de adoptar por todas las plataformas y lenguajes de programación. Entonces ya tenemos el medio de comunicación (TCP/IP) y el lenguaje universal (XML). Ahora el objetivo es que cada WS sea autónomo y pueda hacer sus tareas sin que tenga dependencias. Es decir, Si nuestro sistema necesita la lista de empleados de una empresa lo mas probable es que un Web Service del sistema de Recursos Humanos la proporcione. Si necesita saber los sueldos de los empleados un Web Service del sistema de finanzas será el encargado de dar la información. A nuestro sistema no le importa como le hizo cada WS para generar su información. Solo le interesa que lo mande en el formato adecuado (XML) y que le llegue correctamente (por HTTP y TCP/IP). Como ven la idea general es muy clara. Desarrollar una herramienta que proporcione información o tareas a varios sistemas montados en diferentes plataformas. Existen varias reglas y otras cosas interesantes de Web Services las cuales voy a tratar en mis siguientes publicaciones. Voy a hacer un Web Service e ir poniendo como lo hice. Después de entender bien los WS hablare de SOA que es una arquitectura basada en servicios.

Cambiando de tema…

Hola, ¿qué les parecieron las publicaciones de los dispositivos móviles y J2ME? Yo la verdad aprendí mucho. Hay todavía mucho que debo estudiar y la verdad es que tengo por ahí un proyecto en desarrollo pero por el momento voy a dejar este tema. Me llama mucho la atención lo que es Web Services y SOA. En mi trabajo hemos estado viendo estos dos conceptos y me di cuenta que necesito entenderlos bien. La mejor forma para lograrlo es publicar en mi blog. Asi que espero la siguiente serie les guste. Va a ser muy interesante.

miércoles, marzo 01, 2006

J2ME Wireless Toolkit y Mi 1er. Programa.

Para desarrollar mi primera aplicación para mi celular voy a utilizar el J2ME Wireless Toolkit. Existen otros IDEs (Integrated Development Environment) pero el J2ME Wireless Toolkit es el más sencillo de usar y es totalmente gratis. Lo primero que debes hacer es bajarlo aquí.
Ahora bien, para nosotros los nuevos en el mundo Java hay que saber que para escribir código fuente basta con escribirlo en cualquier editor de texto. Solo hay que asegurarse que la extensión de ese archivo sea .java y listo.
Vayamos paso por paso para crear un programita sencillo. Primero abre el J2ME Wireless Toolkit. Escoje “New Project” y ponle nombre a tu proyecto y al MIDlet. Yo nombre “Firma” a mi proyecto y “MiFirma” al MIDlet class.
Cuando creas un nuevo proyecto El toolkit crea una estructura de folders para tu proyecto como se ve en la imagen de abajo.


El fólder de bin contiene el MIDlet compilado (archivo .jar) y la descripción del MIDlet (archivo .jad). El fólder de lib esta ahí para que pongas archivos .jar adicionales que le quieras agregar a tu proyecto. El fólder de res contiene imágenes, archivos de textos u otros recursos del proyecto. Por último el fólder src contiene todo tu código fuente.
Ya verán que fácil es hacer un programita. Pueden copiar y pegar el código que presento abajo.

import javax.microedition.lcdui.*;
import javax.microedition.midlet.*;

public class MiFirma
extends MIDlet
implements CommandListener {
private Form mMainForm;

public MiFirma() {
mMainForm = new Form("Firma");
mMainForm.append(new StringItem(null, "Ari Kassin"));
mMainForm.addCommand(new Command("Exit", Command.EXIT, 0));
mMainForm.setCommandListener(this);
}

public void startApp() {
Display.getDisplay(this).setCurrent(mMainForm);
}

public void pauseApp() {}

public void destroyApp(boolean unconditional) {}

public void commandAction(Command c, Displayable s) {
notifyDestroyed();
}
}


Nombren el archivo “MiFirma” y recuerden ponerlo bajo el fólder src de su proyecto y con la extensión .java.
Ahora regresando al Toolkit solo aprieten el botón de Build y si no tienen errores en el código o en los nombres de sus archivos verán un mensaje de “Build Complete”.
Ahora falta que aprieten el botón de Run para lanzar un fabuloso simulador de un teléfono celular. Debe quedar algo como la imagen siguiente:



Que tal? Ahora pueden correr los demos que vienen en el J2ME Wireless Toolkit y ver varios ejemplos de lo que pueden hacer.
Pero hablemos un poco de que sucede al hacer una aplicación como esta. Primero, al apretar el botón de Build el Toolkit agarra todos los archivos .java dentro del fólder de src y los compila. Esta es una compilación especial ya que como sabemos, los archivos fuente deben ser compilados a un ambiente MIDP (Perfil de un dispositivo de telefonía celular). Después de compilar, ocurre una preverificación que se hace en 2 partes. La primera la hace el Toolkit a la hora de compilar y la segunda la hace en tiempo de ejecución justo antes de cargar el MIDlet al dispositivo. Con esto se corre la clase MiFirma que es la que se ve en el simulador.

Espero se les haya hecho interesante. En las siguientes publicaciones voy a profundizar en el tema y a hacer una aplicación mas grande con varias características interesantes.
¡Hasta pronto!