lunes, enero 29, 2007

J2MEMicroDB Motor de Base de Datos Open Source desarrollado en la UPC

Desde hace un año en la UPC hemos estado desarrollando un motor de bases de datos para J2ME.

Ante esta información pueden aparecer 2 preguntas :
  1. ¿Fantastico y què?
  2. ¿Fantastico y eso que es y para que sirve?
Para los que se hayan echo la primera pregunta les remito a una noticia mucho más interesante sobre un niño chino que mata pollos a gritos.

Aquí voy a responder al los que se hayan hecho la segunda pregunta y quizás tengan la noticia de los pollos en una pestaña aquí al lado.

J2ME (Java 2 Micro Edition) , en plata, es un lenguaje de programación que permite a los desarrolladores programar para la mayoría de teléfonos y PDA's. Siempre que vuestro operador no lo impida, vuestro teléfono podrá ejecutar programas hechos en este lenguaje, lo cual tiene un gran potencial.

J2ME es de libre uso ( aunque todavía no es Open Source ) por lo que un programador puede descargarse gratis los kits de desarrollo de java.sun.com u otros sitios como las webs de Nokia o Ericson.

El problema es que se trata de un kit de desarrollo muy limitado y si un programador alguien quiere hacer algo extraordinario como ... no se... almacenar datos persistentes en un archivo, entonces debe empezar a gestionar los ficheros a nivel de byte. Y eso es muy bonito y maravilloso, permite al programador un control total, pero es lo que se dice técnicamente "un peñazo" . Si queremos guardar datos estructurados como registros de una base de datos, debemos escribir mucho código, y eso lleva tiempo de codificar, probar y mantener.

Por ello hemos desarrollado una serie de librerías, lo que se conoce como API ( Aplication Programming Interface), que permiten al programador de J2ME tratar con ficheros estructurados (que guardan objetos), con una capa relacional (para guardar tablas como la de una base de datos normal), con indexación con BTree (si no sabéis no preguntéis, no importa pero es guay) e incluso una capa que ejecuta "query's SQL" (si, eso del select from where ).

El caso hemos desarrollado estas API's y las hemos hecho publicas bajos licencia GPL en nuestra web donde damos una visión más técnica. Hasta la fecha no existe nada parecido, al menos que sea software libre o código abierto.

Este proyecto ha sido liderado por Maria José Casany, Pablo Casado y un servidor y han participado los estudiantes de proyecto de fin de carrera Núria Lara, Jose Antonio Rodriguez, Yolanda Vigil, Miquel teruel (Risitas) además de los alumnos de la primera edición del Postgrado de desarrollo de aplicaciones Móbiles y PDA's que perpetramos en la UPC.

En la cocina tenemos una parte del invento que tambien permite obtener y enviar datos de un servidor de bases de datos ( yo que se un mysql o un Oracle) que este en un servidor y estam´s desarrollando algunos juguetes como una herramienta para leer los foros del Moodle desde el móvil.

Ya sabéis , para más información J2MEMIcroDB...
Ludo out
(*)Es que las APIS como los ogros y las cebollas tienen capas

14 comentarios:

  1. No nos olvidemos de aquella historia del caballo, tampoco, por favor :)

    http://www.blogdecine.com/2007/01/26-zoo-la-tragedia-sexual-entre-un-hombre-y-un-caballo-llega-a-sundance

    ResponderEliminar
  2. Hola, acabo de leer vuestro post y me parece bastante interesante la api que ofreceis. Actualmente estoy desarrollando aplicaciones para pda's de modo que puede que acabe utilizando vuestra api.
    De todos modos quería comentaros una cosilla. He creado una aplicación para pda's en la que se escribe y guarda un fichero mediante las clases del paquete java.io (ya sabeis, File y demás) y funciona perfectamente. Os lo digo pq en el post comentais que hay que escribir mucho código a la hora de guardar archivos...tal vez cuando se programe en mobiles con la configuración de j2me CLDC si que sea como decis, pero por lo que he visto en las pdas utilizar las clases que os comento no presenta problemas.

    Un saludo

    ResponderEliminar
  3. Hola, me parece muy interesante la aportación que haceis con esta api. Actualmente estoy desarrollando aplicaciones para pda's y miraré si puedo usarla :)
    De todas formas quería comentaros una cosa acerca de esto que decis que para escribir un archivo desde j2me resulta muy engorroso. Yo he utilizado las clases del paquete java.io (ya sabeis File y demás) y funcionan perfectamente en la pda. De modo que escribir leer y guardar archivos es relativamente fácil.
    Tal vez al programar en móbiles con j2me y configuración CLCD ocurra lo que comentais pero en CDC (almenos en lo que yo he probado) no es así.
    Un saludo!

    ResponderEliminar
  4. Tienes razon las clases funcionan sin problemas, pero tienes que trabajar a bajo nivel. Si quieres guardar datos estructurados los tienes que gestionar a pelo.

    ResponderEliminar
  5. Hola les cuento mi caso, APRENDI HTPM por mi cuenta, luego aprendi PHP y luego MySQL y todo lo implemente haciendo una pagina WEB que es una BANCA on line CON TODAS LAS TRANSACCIONES, todo esto por Hobbie, ahora quiero que esta pagina web (www.cvmbank.com) pasarla a J2ME y comence a investigar estar librerias para trabajar con DB. Se que tengo que hacer el import pero como las implemento? que tengo que hacer?, he llegado a descargar el archivo ZIP y me da paginas donde estan las class pero no se como instalar las librerias, para poder comenzar a usar los comandos, agradecere si alguien me da una mano. Aqui o escribir a cesarinitali@hotmail.com

    ResponderEliminar
  6. Muy buenas.. estoy desarrollando una aplicación con tu libreria. La verdad es que funciona muy bien, aunque me estoy encontrando con algun que otro problema a la ora de comunicarme con el servlet. En vuestra web decis que teneis dos hechos... pero no los encuentro por ningun sitio, asi como tampoco encuentro apenas informacion sobre como debe comunicarse el servlet con el mvl.
    Ahora mismo consigo conectarme a la bbdd remota pero, mando una consulta y obtengo el resultado en un resultset, pero no consigo ver como debo pasar ese resultado de nuevo a mi aplicación mvl.

    Si pudieras darme alguna pista lo agradeceria.

    Saludos

    ResponderEliminar
  7. @xavi Hola como veras en los javadocs,la clase resultset dispone de métodos para acceder a los campos con los datos.

    ResponderEliminar
  8. Hola,

    Estoy desarrollando un aplicación para fin de carrera y consiste en recolectar datos desde mi telefono celular tipo encuesta, la base principal esta en mi servidor, lo que se debe hacer inicialmente es enviar los datos basicos de los encuestados al celular y desde la plicación del celular recolectar las respuestas del encuestado una vez finalizadas todas las encuestas se debe exportar estos a la base del servido. En el celular la los datos deben trabajar de manera autonoma.

    No se por donde empezar
    Gracias


    Hernan

    ResponderEliminar
  9. J2MEMicrodb te puede ayudra a gestionar los datos en el movil. Para enviar al servidro necesitas usar webservices
    suerte
    L.

    ResponderEliminar
  10. Hola solo para mencionarte el hecho de que los enlases ya no estan funcionales al parecer la pagina ya no esta activa, y me preguntaba si pudieras actualizar los enlaces o si me pasaras los archivos del J2MEMicroDB y los demas que sean necesarios,estaria genial; Gracias.

    ResponderEliminar
  11. Hola Pentagrama el poryecto ahora vive en http://code.google.com/p/j2memicrodb/

    ResponderEliminar
    Respuestas
    1. 0ok gracias solo tengo una duda como se agrega el backup restore a las librerias esque no me las reconoce por mas que lo meto en el j2memicrodbSource

      Eliminar
  12. Hola, sigo sin poder usar el bakuprestore aunque ya la pude integrar a las librerias; bueno eso digo yo, aunque al tratar de aser el bakupo me manda un error de valor null o algo asi alguna idea?

    ResponderEliminar
  13. solo tengo una duda como se agrega el backup restore a las librerias esque no me las reconoce por mas que lo meto en el j2memicrodbSource

    ResponderEliminar