martes, 14 de septiembre de 2010

XX Encuentro GeneXus, día 2

Experiencias en la nube, mesa redonda

En la mesa redonda se trataron varios temas, en algunas opiniones coincidían los exponentes, en otras no tanto... Voy a tratar de resumir lo que me quedó.

Confianza: las empresas todavía no confían en poner todos los datos en la nube, es un tema cultural o de costumbre, hicieron la analogía con los bancos: ¿donde tenés la plata, en tu casa o en el banco?

El tema de la confidencialidad de los datos todavía no está del todo resuelto, pero se ha avanzado mucho en el tema con contratos de confidencialidad.

Los gobiernos, va a ser difícil que publiquen los datos en un data center fuera del país, por un tema de soberanía sobre los datos. Por lo tanto, deberán surgir data centers locales.

Contaron la experiencia de un data center en Brasil vs. Amazon, y en Amazon es más barato, más rápido y el tema de la latencia no fue un problema.

Características que debe tener una aplicación para poder estar en la nube: debe ser web, escalable, multitennant, tener buena seguridad, buena performance.

Modelo de negocio: no hay un estandar. A veces se cobra por número de usuarios, se podría cobrar por volumen de datos o de facturación de la empresa, o algún otro esquema. En las aplicaciones SaaS el modelo de negocio es distinto, hay que pensar más a largo plazo que cuando se venden licencias.

Los motivos para migrar a una arquitectura SaaS: si no lo hacemos nosotros lo van a hacer otros, los clientes lo empiezan a pedir. Contaron una anécdota que llamó un cliente para pedir una aplicación que tuviera determinadas características y que estuviera en la nube. Ante la pregunta de en qué nube, la persona contestó que "Ah, no se, a mi me pidieron que dijera eso"...

Próximas evoluciones

Las próximas versiones de GeneXus van a tener unas cuantas cosas interesantes.

Evolution 2

GeneXus Access Manager (GAM): mecanizmos de autenticación y autorización integrados a GeneXus que se definen de forma declarativa. Se va a poder autenticar contra la aplicación, pero también con OpenId, Facebook, Twitter y otros.

Reportes adaptables en tiempo de ejecución. Va a haber un editor de layout que va a permitir cambiar el aspecto del reporte, sin necesidad de tener GeneXus ni de regenerar la aplicación. Cada cliente va a poder tener su propia versión del mismo reporte.

Aplicaciones multitennant sin tener que hacer cambios de programación.

Versión Pinar

Modulos. Los objetos van a pertenecer a un módulo y van a poder ser públicos para toda la KB o privados dentro del módulo.

Embedded data providers, son data providers que se definen inline dentro del código de otro objeto.

Los tipos de datos básicos, los extendidos, los SDTs y los dominios, pasan a ser todos dominios. Estos nuevos dominios tendrán semántica (por ejemplo datos de geolocalización), comportamiento (se pueden definir métodos) y presentación (se puede definir como se deben mostrar, por ejemplo un mapa con un pin).

Event driven programming. Se podrán programar eventos, por ejemplo un evento que se dispare siempre que se da de alta un cliente. En ese caso me imagino que será como un AfterTrn pero global a toda la KB.

Módulos 1.0

Los módulos van a ser un nuevo objeto en GeneXus, parecido a los folders actuales (que van a seguir existiendo).

Todo (casi todo...) objeto en una KB va a estar dentro de un módulo. Hay algunas excepciones, como ser los dominios, imágenes, objetos Language y alguna más.

Un objeto dentro de un módulo podrá tener visibilidad:

  • público: se puede invocar desde cualquier otro objeto de la KB
  • privado: solo se puede usar dentro del módulo
  • interno: solo se puede usar dentro del módulo y sus submódulos.
Los atributos y las tablas van a estar dentro del módulo al que pertenece la Transaction que lo define. Si hay varias trns paralelas, deberán estar en el mismo módulo.

El nombre del objeto pasa a ser módulo.objeto, por lo que pueden haber varios objetos con el mismo nombre en la KB, siempre que estén en distinto módulo.

Las KBs actuales, en la Evolution 1, van a funcionar igual a como funcionan hoy al migrar a la versión Pinar. Seguramente no haya compatibilidad para ir hacia atrás, es decir, para distribuir objetos de Pinar y consolidarlos en la Ev1.

Mejoras en el lenguaje GeneXus para futuras versiones

Los objetos podrán tener distintos puntos de entrada (distintas reglas parm). No es lo mismo que tener parámetros opcionales, pero se acerca bastante.

Las subrutinas tendrán parámetros.

Se agrega como optimización al for each la generación de sentencias con "group by" en el SQL, cuando sea posible.

En los "for each" sobre colecciones podrán usarse clausulas "where" y "when none" como se hace en el "for each" que va a la base de datos. Es algo muy bueno que va a mejorar el código. No puedo decir que es algo que había pedido, pero sí surgió en los comentarios de algo que había escrito por el estilo.

Se tendrán BCs y SDTs genéricos, para poder crear algoritmos que se aplican a cualquier colección. Las variables de estos tipos tendrán métodos como setValue y getValue para acceder a los campos de cada elemento. Lo que falta es poder invocar métodos por nombre, o por lo menos no lo mencionaron.

Metaprogramming. Se va a poder acceder en tiempo de ejecución a la metadata de la aplicación, por ejemplo, la lista de las transacciones. En la demo, mostraron un caso de estos, donde tenían un Work With genérico, que como parámetro recibía el nombre de la transacción, y mediante el uso de BCs genéricos creaba registros. Todo esto sin tener programación específica para la transacción que usó de ejemplo.

Realmente son muchas las mejoras que se vienen, que eran necesarias para potenciar el lenguaje de programación.

Cloud computing para pequeñas y medianas empresas

Fue un buen repaso de las características y las ventajas que tiene tener la aplicación en la nube.

En cuanto a usos alternativos (si no queremos tener la aplicación en la nube), se mencionaron 2:
  • para hacer pruebas de concepto, por ejemplo si tengo mi aplicación en C# con SQL Server y quiero ver como se comporta en Linux/Java/MySQL, puedo hacerlo sin necesidad de comprar hardware, simplemente alquilo lo que preciso por el tiempo que lo voy a usar
  • para hacer pruebas de performance, que nuevamente es más económico alquilar el hardware para ver como escala mi aplicación que tener que comprarlo.
Desde GeneXus se podrá hacer el deploy en Windows Azure o en Amazon, configurando solamente algunas propiedades.

Como RDBMS también se soportan los de Microsoft y Amazon, que son instancias de SQL Server y MySQL respectivamente. El único cambio que se debe hacer en GeneXus es el nombre del servidor y de la base en las propiedades de conexión.

También habrá soporte mediante el uso de objetos externos para usar el almacenamiento de Windows Azure.

Elevator Speech: Extensibilidad y sus oportunidades

Es verdad que 5 minutos no dan para mucho, pero esperaba que se hablara de cosas más concretas que de lo que se habló. Sacando algún caso puntual, la charla no me gustó demasiado.

Elevator Speech: Pro Comunidad

Este conjunto de charlas me parece que fue más aprovechable que la tanda anterior.

Disclaimer: yo di una charla de 5 minutos en este espacio... pero no cuento la mia porque es difícil opinar desde arriba del estrado.

En cuanto a mi charla sobre StackExchange, creo que no logré convencer demasiada gente, porque la propuesta tiene solamente un seguidor más que lo que tenía ayer. :(

Pueden ver la PPT de la charla en SlideShare, o supongo que se publicará también en el sitio del encuentro.

El poder de lo simple

Como siempre la charla de Rodrigo Alvarez me resultó interesante y muy amena. Se las recomiendo.

Ahora que lo pienso, nuestra mente se equivoca mucho

Igual que la anterior, las charlas de José Lamas vale la pena verlas. No tiene mucho sentido que haga un resumen.

La singularidad tecnológica

Fue más o menos lo que me esperaba. La charla estuvo bastante bien, solo que muchas de las cosas no las mostró por falta de tiempo. Yo creo que si hubiera tenido dos horas tampoco le daba para presentar todo.

El tema me resulta sumamente interesante, soy uno de los convencidos que la singularidad va a llegar, y más o menos las cosas que nombró ya las conocía.

Igual me impresionó algunos de los avances que contó sobre todo relacionados con la medicina. Por ejemplo, que ya existe la posibilidad de imprimir piel sobre tejido quemado, o crear un órgano artificial a partir de células madre. También toda la parte de robótica aplicada a la medicina, como por ejemplo brazos artificiales.

No se si recomendar la charla, me parece que vale más la pena leer el libro de Ray Kurzweil.

1 comentario:

  1. Excelente resumen de mi charla Marcos... me alegro que eso haya quedado claro :)

    ResponderEliminar