GXserver - Videos Introductorios

Unofficial Content

English version

Introducción

Estos videos muestran cómo trabajar en equipo utilizando GeneXus y GeneXus Server (GXserver) así como las operaciones básicas involucradas: enviar una KB al servidor, crearla desde el servidor, enviar las modificaciones (Commit to GeneXus Server), y actualizar la KB creada localmente (Update From GeneXus Server), etc.

Escenario

Brad ha comenzado a desarrollar una aplicación de facturación (Invoicing) y una nueva desarrolladora, Angie, se ha integrado al proyecto. De este modo Brad y Angie van a desarrollar la aplicación de Facturación en conjunto.

Antes de comenzar a trabajar discuten las diferentes alternativas de trabajo en equipo.

Multiuser (Multiusuario)

Angie trabaja en NY y Brad trabaja en Florida. Las comunicaciones entre sus oficinas son buenas, de todos modos ambos suelen viajar mucho por lo cual es bastante común que se conecten a internet desde cualquier parte del mundo. En este escenario la conexión puede estar disponible o no por lo cual la opción de "multiusuario", ambos trabajando a la vez sobre la misma KB fue descartada. Se necesita una KB local para evitar problemas de este tipo (conexiones de baja calidad o inexistentes).

Metodología Tradicional (una KB "núcleo", cada desarrollador su propia KB y finalmente una KB "consolidada"

Esta metodología implica que cada desarrollador tiene su KB local con parte de la aplicación (un grupo de objetos) y el conocimiento es compartido vía el Knowledge Manager (KMW - distribute/consolidate). Una vez que un desarrollador quiere compartir algo lo distribuye (archivo XPZ) y el otro desarrollador lo consolida en su KB.

¿Dónde está la KB completa?

La KB es conocida como "consolidada" y significa que uno de los desarrolladores es el "administrador del consolidado". Este desarrollador recibe los XPZ de cada uno de los otros y los consolidad en esa "KB consolidada"

A su vez el administrador envía las actualizaciones a cada uno de los desarrolladores utilizando la misma vía (XPZ).

El problema de esta metodología es que requiere un "administrador", el cual debe tener un profundo conocimiento acerca de la solución y de las actualizaciones que recibe de cada uno de los desarrolladores, qué actualizaciones enviar a cada uno, cuándo enviarlas, qué hacer en caso de conflicto (dos desarrolladores cambiaron el mismo objeto), etc.

Ni Brad ni Angie querían ser el administrador por lo cual esta metodología también fue descartada.

¿Qué hacer?

GXserver

Ellos decidieron usar GXserver, esto es: un server donde almacenar KBs.

¿Cómo funciona?

Esto es solo un "overview", por más información consultar GeneXus Server

Cada desarrollador trabaja en una copia personal de la KB (no se requiere conexión alguna y no hay interacción en esa instancia entre los desarrolladores). Cuando el desarrollador decide que alguna funcionalidad está completa y quiere compartirla (agregarla a la solución completa) hace un "commit" de dichas modificaciones. Del mismo modo cuando quiere actualizar su copia personal con el conocimiento que otros pueden haber agregado a la solución completa hace un "update".

Cuando un desarrollador ejecuta una operación de "commit" los cambios hechos a su KB personal (objetos modificados, removidos o agregados) son enviados al server. En el server este conocimiento es consolidado con el existente y se le da "feedback" al desarrollador que está ejecutando la operación.

La operación de "update" es de algún modo la contraria a la de "commit". Aplica a la KB personal del desarrollador que la está ejecutando, todos los cambios realizados por otros desarrolladores en la KB del servidor, dándole feedback al desarrollador del resultado de dicha operación.

Usando GXserver cada desarrollador tiene una KB personal y sus ventajas (performance, estatus de la KB conocido sin cambios producidos por modificaciones de otros desarrolladores, etc) y a su vez la solución completa está siendo construida en el servidor.

A su vez se tienen otras ventajas como: agregar un desarrollador es simplemente "enrolarlo" al servidor, el status de la solución es bien conocido y fácilmente accesible, existen servicios RSS que permiten que no solo los desarrolladores involucrados en el proyecto reciban la información del mismo sino cualquiera que tenga acceso a dichos servicios, etc.

Conclusión

Ellos decidieron usar GXserver para desarrollar la solución juntos.

Veamos cómo funciona

Esto es solo un ejemplo para explicar la idea de GXserver y cómo funciona, por lo cual la KB de ejemplo es extremadamente simple. Sin embargo la misma idea es aplicable a grupos y KBs más grandes.

Brad comienza compartiendo la KB. Para hacer eso simplemente utiliza la opción "File/Send KB to Server". Después de eso actualiza el conocimiento (operación de "update"), agregando un atributo, solo para verificar que todo funciona bien.

Angie comienza a trabajar creando su KB personal desde el servidor, para hacer esto ella utiliza la opción "File/New/Knowledge Base from Server"

Brad agregar la regla "default" a la transacción de Factura (Invoice) y envía su KB al servidor (solo los cambios son enviados) utilizando la opción "Knowledge Manager/Commit"

Angie crea la transacción de Cliente (Customer), envía esos cambios al server y su vez actualiza su KB personal con los cambios hechos en el server.

Brad mantiene su KB sincronizada con el server bajando las actualizaciones de Angie (operación de "update")