A blog about data, information and IT, by Mario Alberich

Mar 23
2011

El ecosistema Javascript (Rhino)

En todo este tiempo sin escribir, muchos cambios han llegado a la tecnología web.   En la maduración de la tecnología web han tenido lugar dos procesos con direcciones opuestas:

  • Características propias de un entorno de escritorio o restringidas a Flash (audio/video, gráficos 3D, pero también velocidad) se están introduciendo en las últimas versiones de los navegadores.   La clave es HTML5.
  • Tecnologías del navegador que se han trasladado al escritorio.  Dejando al lado que las interficies de aplicaciones de escritorio cada vez más se diseñen en base a lenguajes de markup, el en este caso lo que más me ha llamado la atención es Javascript.


Comentaré en varias partes lo que he tenido oportunidad de ver en los últimos meses, y algunas reflexiones sobre el uso de Javascript en todos estos contextos.

Javascript en el servidor - Rhino en Alfresco


En los últimos meses he trabajado en el desarrollo de aplicaciones con Alfresco.  Este gestor documental ofrece una funcionalidad especialmente interesante para el desarrollo de componentes concretos, así como funcionalidades más avanzadas: los webscripts.

Los webscripts permiten ejecutar Javascript en el servidor.  Para ello Alfresco incorpora Mozilla Rhino, un motor de Javascript que permite programar en este lenguaje y realizar llamadas al API interna de Alfresco (desarrollados en Java).  Esta aproximación tiene una ventaja importante: evita enfrentarse a llamadas de bajo nivel, delegando en el núcleo de la aplicación las operaciones que mantienen la integridad de los datos y la gestión de errores, logs, etc.

A nivel de programación, también evitan la necesidad de conocer a fondo toda la estructura de objetos que operan en Alfresco, además de trabajar con un lenguaje de tipado débil (en contraposición al tipado fuerte que implementa Java).  Para el contexto de ejecución de los webscripts, este enfoque me parece muy acertado.

Es posible incluso añadir nuevos objetos accesibles desde el API, aumentando las opciones disponibles desde este lenguaje.  Esto no es trivial ni mucho menos, pero es posible.  Sinceramente no lo he intentado ni me ha sido necesario, pero las opciones de la API (al menos en la versión 3.3 Community Edition) son más que suficientes para infinidad de funciones.

Rhino existe desde hace tiempo, por lo que javascript en el servidor no es una novedad.  Sin embargo la entrada de nuevos jugadores en el mercado ha abierto un frente de actividad en torno a este contexto de uso.  Cuando tenga un poco más de tiempo haré mis comentarios.

Tags

gestión documental 10     Recuperación información 11     Linux 7     Usabilidad 5     open source 3     Tagging 12     lógica borrosa 2     fuentes de información 12     Google 6     off-topic 6     spam 2     grafos 6     Web social 11     modelización 12     Productividad 11     buscadores 2     utilidades 17     Profesionales 9     SEO 5     estándares 3     veracidad 3     relevancia 2     lingüística 2     PLN 2     lenguajes documentales 2     apis-mashups 3     reseñas 7     Flash 7     Gráficos estadísticos 13     Publicidad 3     Innovación 5     muestreo estadístico 9     PHP 14     internet 2     testeo 12     desarrollo 3     visualizacion 36     javascript 16     datos abiertos 9     elecciones 2     simulación 5     html5 7     phing 9     ssh 2     seguridad 3     indicadores 2     demografía 3     media 2     algoritmos 7     shell 4     mysql 2     backup 2     big data 6     twitter 2     d3js 11     revealjs 2     metodología 6     data-journalism 6     smartcities 2     NYT 2     privacidad 3     benchmarking 4     recopilaciones 21     magento 5     formacion 2     github 2     HHVM 3     psicología 2     angularjs 3     grep 2     nodejs 5     promises 2     mapreduce 3     crossfilter 2     exploración de datos 2     machine learning 2    

© 2007 and beyond Mario Alberich, licensed under CC-BY-SA unless stated otherwise.