Tag Archive: java


Db4o-logo.gifDespués de mucho tiempo, he podido dar con un proyecto donde esta herramienta a dado muy buenos resultados.

Estoy hablando de DB4O,  un motor de bases de objetos. o sistema de administracion de bases orientada a objetos. La idea de es eliminar el problema de impedancia, que se genera entre el paradigma de objetos y el relacional.

Un gráfico nos permitirá entender rápidamente. EL dibujo de la izquierda muestra como los objetos que pueden llegar a ser complejos, deben mapearse a una RDBMS o Sistema de Administración de Base de Datos Relacional entre las distintas tablas de la misma, muchas veces con el cuidado que se merece la normalización de ellas, el diagrama E/R, la escritura de las sentencias SQL, etc.

En el dibujo de la derecha, parece demasiado simple para ser verdad. Pero es así. Simplemente guardamos nuestros objetos Java (también esta para .NET) desde un Entidad que persistirá nuestros objetos.

Su uso mas extendido es en la modalidad embebida, pero se puede trabajar en modo Cliente-Servidor.

En el caso particular, que debí resolver, recurrí a una solución muy simple del tipo Lote (BATCH, desde la consola se ejecutaba o desde Eclipse mismo). La  Secretaria de Hacienda Nación ofrece un sistema llamado UEPEX, para las Unidades Ejecutoras de Prestamos Externos (generalmente dolares estadounidenses). Con el cual lleve adelante tres implementaciones que generan 3 libros mayores en Excel.

 Si bien es Excel, debemos pensar que son hoja de cálculo para imprimir como reportes, asi que hay logos, títulos y demas. Con un simple BOT en  java, se rastrea cada hoja de cálculo, analiza cada linea, y de ahí cada Celda, tomando solo las que indican un movimiento contable. Cada registro Impacto Contable es en realidad un objeto (la clase se llama así), se persiste el objeto en una base única y se lleva a cabo un proceso de consolidación, todo sobre DB4O (todo porque no tengo acceso SQL, obvio, así que era la única posibilidad)

Entonces, sin ORM, sin Stored, sin SQL, sin Tablas, sin nada mas que JAVA y el JAR de DB4O. Termine generando un reporte en HTML que me permita jugar con estilos y demás antes de generar un PDF.

Todo esto, luego fue sometido a una prueba para un aproximado millón de objetos, que terminó generando un archivo de 300 MB en solo 180 segundos. ¿Parece rápido? Pues sí.
Hay que tener en cuenta que hablamos de un montón de operaciones para con ese millón de objetos, manejar los ZIP, rastear, indexar, ordenar, consolidar, sumarizar, etc. Pero si solo instanciasn en un FOR un millón de objetos de una clase simple de dos o tres atributos y a cada uno lo van persistiendo (nada de jugar con perfomace), podrán comprobar que dependiendo de su hardware y JAVA, la operación en segundos va de 75 a 90.

Otro de los aspectos interesantes, es la posibilidad de combinar las soluciones con un enfoque de Inteligencia de Negocios, a través de BIRT. Realmente, con solo jugar con scripts (javascript) podemos generar reportes en HTML, Planilla de Cálculo y en PDF.

 

Eclipse Indigo

Ya tenemos entre nosotros la nueva versión de Eclipse este entorno de desarrollo integrado o ambiente-herramienta-comunidad (ya no tengo en claro que más puede llegar a ser). Me refiero a Eclipse Indigo (v3.7).

Ya habíamos hablado de Eclipse. Si bien la anterior versión ya era destacable, esta nueva versión, avanza en lo que respecta a modelado introduciendo AcceleoAgent Modeling PlatformModeling Amalgamation, CDO.

Otro aspecto a celebrar es en el campo del trabajo colaborativo, EGit 1.0 es provisto para una mejor integración con el sistema de versionado Git. Jubula ofrece una interfaz para efectuar testing tanro para Java como HTML. WindowBuilder, fue una donación de Google para Eclipse y ahora se puede contar con un excelente diseñador gráfico de Interfaz de Usuario (GUI). Xtext 2.0 permite crear facilmente domain specific languages.

Eclipse Modeling Framework también es referenciado como EMF. Es un importante proyecto dentro del universo Eclipse, que proporciona un marco de trabajo, herramientas y por sobretodo metodología para el modelado de objetos y generación de código que acelera el desarrollo de aplicaciones.
Si bien parece algo respecto solo a UML, va mas allá. La documentación es extensa. Ofreciendo diversos beneficios como conectividad de datos, validación, consulta, transacciones, persistencias, etc


Eclipse

Eclipse es un entorno de desarrollo integrado de código abierto multiplataforma para el desarrollo de sistemas y tecnologías. Muy conocido por los desarrolladores y programadores (software libre y código abierto) de lenguajes como JavaCC++,AdaCOBOLPerlPHPPythonRuby (Ruby on Rails ), Scala,ClojureScheme, etc. La lista puede serguir.

Pero no solo es un entorno, también es una plataforma en sí misma, es decir que puedes pensar en desarrollar toda tu ecosistema de software sobre utilizando como base Eclipse mismo. Esta construido sobre Equinox (una implementación OSGi). Sus objetivos pueden ser muy variados

  • Aplicaciones de Cliente Enriquecido.
  • OSGi
  • Web
  • Desarrollo de Aplicaciones para celulares y tablets.
  • Modelado
  • Análisis
  • Testing