Articulo de Patrick Talbot - 2010/05/18 - 12:08am
¿Nunca escuchaste hablar de Servoy? No sos el único. Hay montones de desarrolladores que ni siquiera saben que la plataforma existe. Yo me lo encontré de suerte (básicamente porque es conocido en los círculos de FileMaker como EL competidor y mi compañía esta haciendo desarrollos en FileMaker... si, lo sé!). De hecho es mucho más que un clon de FileMaker y tiene mucho potencial para seducir a la mayoría de los desarrolladores Java, que es la razón por la que escribo este artículo introductorio.
Nunca es demasiado tarde para probarlo, y de hecho, ahora podría ser el mejor momento: la compañía anunció recientemente la verion Open Source de su plataforma híbrida SaaS (ganadora de premios), Servoy 5.2 – con pronto lanzamiento.
Citado del sitio web de Servoy: “Servoy es un ambiente de desarrollo e implementación de aplicaciones. Servoy Developer es usado para diseñar, desarrollar, probar y debuggear aplicaciones y Servoy Server es usado para implementarla, tanto on Premise como en SaaS”.
OK, esa definición puede serle útil al gerente de marketing, pero exactamente ¿qué es Servoy?
Yo diría que es una plataforma Java RAD inteligente, basado en una distribucion de Eclipse y un servidor Tomcat, que ayuda a escribir aplicaciones híbridas para clientes delgados o clientes Web con el mismo código usando la mejor variedad de frameworks Java Open Source como Rhino, Hibernate y Wicket, entre otros.
¿De qué es capaz? Más que nada, puede reducir el tiempo de desarrollo 10 veces si se está acostumbrado a desarrollar las aplicaciones con la vieja de escuela de .Net o Java. Para una comparación con .Net, mire el irrisorio 'real world test' que hicieron – para Java, bueno... ya sabes, ¿no?
Sin ningún orden en particular:
Está basado en estándares: SQL, Java, JDBC, JavaScript, HTML, CSS, XML, y algunos de los proyectos Java Open Source más confiables como: Tomcat, Apache Commons, Hibernate, Rhino, Wicket, Quartz, HttpClient, JasperReports, iText, Log4J...
Es agnóstico de base de datos. Como Servoy potencia el poder de Hibernate sin que lo notes, y genera SQL compilado ANSI-92, estás sólo a un jar JDBC de migrar tu base de datos desde un vendedor a otro. Servoy ofrece data-binding automático, donde lo único que tienes que hacer es declarar la fuente de datos para acceder a ellos, usando el editor del form para arrastrar componentes vinculados a ellos. Y, por supuesto, se pueden hacer accesible los datos totalmente consciente de transacciones.
Su código es dinámico. El código de Servoy es Java, pero el script se hace en JavaScript. Gracias a Rhino, se tiene acceso a todas las ventajas de un moderno lenguaje dinámico de scripting: Olvídese del círculo escribir/compilar/implementar/correr/debuggear típico del desarrollo en Java, se puede cambiar el código en tiempo real sin la necesidad de reiniciar el servidor. Y, como se desarrolla en Eclipse, se puede debuggear el código en tiempo real usando las herramientas de DLTK. La plataforma de Servoy incluye si propio servidor Tomcat para ayudar al desarrollo y debuggeo en tiempo real.
Sus datos son dinámicos también. Servoy usa un sistema inteligente llamado “DataBroadcasting” que empuja a los datos en tiempo real a los clientes conectados mirando los mismos registros, esto funcion tanto para el cliente delgado (lo que ellos llaman cliente “inteligente” porque realmente lo es) como para el cliente Web, usando Ajax gracias a los comportamientos de Wicket. Servoy sólo transmite los cambios relevantes, siendo bueno con la red.
Es multi-plataforma. Suena obvio ya que es Java, pero esto se debe recordar debido a componentes .Net. Multi-plataforma desde el punto de vista del servidor: se puede correr en cualquier servidor capaz de utilizar Java, pero tambien desde el punto de vista del cliente: el cliente delgado es Java/swing, el cliente web es … HTML y JavaScript.
Es multi-cliente: esto es un gran ahorro de tiempo. Su código será usado por un cliente delgado o un cliente web. No sólo su capa de persistencia o la de negocios, pero también ¡la capa de Intefaz estará lista usando el mismo código! La UI se hace usando un editor de forms en Eclipse, en tiempo de diseño, pero también se tiene acceso a esto en tiempo real usando lo que se llama “SolutionModel”, permitiendo modificar las propiedades de todos los objetos de la UI o, incluso,recrear dinámicamente la UI.
Es fácil de implementar y mantener. Se instala la aplicación en un servidor, usando un administrador de acceso web, con su propio sistema de versionado, y estará implementado para que sus clientes usando Java Web Start (para el cliente delgado) o un browser para el cliente web. Servoy también usa un modo de tunel donde ambos clientes usan los mismos puertos estándar (80/443), que es fácil de implementar, incluso detrás de un firewall.
Es abierto: la API pública de Servoy le permite extender la plataforma con sus propios plugins (comportamientos en código Java pero accesible desde código JavaScript) y beans (los normales puede ser envueltos en componentes de Servoy para tener el poder de databinding), también puede usar clases Java directamente desde su código JavaScript por el acceso a la JVM. Y ahora que va a ser Open Source, va a ser más extensible aún.
Está preparado para SaaS: se puede filtrar cualquier acceso a la base de datos basado en UUIDs, implementar en un servidor on premises o en la nube (ayudado por la capa de distribución terracotta), todo esto con muy poca configuración.
Tiene mucho código incorporado. Lo que suele tardar semanas para hacer y que se termina haciendo cada vez por cada proyecto, parchear infinitamente lo que supuestamente es código genérico o escribir cientos de líneas de configuración en XML: cosas como el mapping de hibernate, soporte para internacionalización (i18n), seguridad, auditoría para todos los datos, log y esconder su código y las queries SQL, unidad de pruebas y JSDoc , estilos de CSS tanto para clientes web o Swing, tareas programadas, soporte drag and drop en swing y en web...
Es modular: se puede armar el código desde un grupo de módulos en una solución principal, o encapsular funcionalidades críticas en plugins o beans de Java.
Ahora imagínese todo lo que debería hacer para agregar eso para su aplicación, empezar desde 0 y que ya esté todo allí...
Servoy agrega una perspectiva de diseño a Eclipse, y una de las vistas es el “Solution Explorer” que es donde se organiza el código y encuentra todos los y funciones incorporadas
Una solución de CRM de ejmplo en el Smart Client de Servoy (Swing) – el peso total de este proyecto (código+forms+imágenes) es 280kb:
La misma vista en Firefox:
Pronto escribiré una serie de artículos introductorios para aquellos que estén interesados, pero mientras tanto, pueden:
Visitar el sitio oficial de Servoy para saber más, www.servoy.com
Descargarlo y probarlo ustedes mismos,
Mire los video tutoriales (un poco antiguos pero sirven para una buena introducción),
Visite el wiki para la documentación,
Mire la API pública,
Visite el sitio Servoy Stuff para tutoriales para hacer plugins y beans para Servoy.
* Este artículo no esta encargado, ni aprobado por Servoy
Soy un desarrollador de Java feliz usando Servoy en mi trabajo día a día y un desarrollador de componentes, herramientas y tutoriales gratis Open Source para la plataforma de Servoy.