Y3K-it | Solution Builders

Y3K-it | Solution Builders

lunes, 11 de abril de 2011

OSDE - BBPush

Implementamos con éxito la POC BBPush para el grupo OSDE (http://www.osde.com/) la herramienta permite hacer push de mensajes vía el MDS del BIS o BES según la empresa tenga instalado para Blackberry.

Mediante esta herramienta los usaurios de Blackberry recibirán notificaciones directo a sus equipos, debiendo los mismos tomar desiciones sobre estas notificaciones. El sistema provee una interface de comunicación para que desde cualquier sistema de la compañía puedan enviarse notificaciones. Por ejemplo desde el sistema de compras se puede solicitar aprobación cuando una orden de compra supere un límite de compras, o, desde el sistema de validación de prestaciones una solicitud para aprobar una prestación fuera de plan.

El sistema consta de tres módulos, el cliente de blackberry desarrollado en RIM's, el cual corre en background sin intervenir en la operación del equipo, este módulo se dispara cuando el usuario enciende su blackberry y permanece activo, es decir, que el usaurio no debe entrar a verificar notificaciones como si se tratara de un mail. Cuando recibe una notificación via MDS dispara una alarma y la ventana de acciones.

El segundo módulo es la interface que publica los WebServices para recibir notificaciones de otros sistemas.


Y, finalmente el sistema de administación web desarrollado en Flex con backend Java, éste módulo permite administrar los equipos, ejecutar instalaciones remotas vía OTA, y, enviar notificaciones custom a demanda entre otras cosas. en la captura se puede ver la pantalla de administración remota con los equipos asociados el sistema de notificaciones usando el PIN de Blackberry, en la lista izquierda las tareas pendientes de enviar a los equipos y en los cuadros infereiores las respuestas de los equipos a las tareas enviadas y las estadísticas de atención de servicio.

En esta oportunidad quería compartir con ustedes el código del launcher para lanzar aplicaciones en Blackberry como servicio. Primero debemos crear un proyecto nuevo en nuestro caso llamado BBPushService y en el archivo BBPushService.java ponemos

/**
* Punto de entrada de la aplicacion BBPush
*/
public class BBPushService extends Application {
/**
* hilo que escucha los push
*/
private ListeningThread listeningThread;
/**
* hilo que escucha los cambios de configuracion
*/
private ConfiguracionThread configuracionThread;
/**
* Constructor
*/
public BBPushService() {
  ConfiguracionSingleton.getInstance();
  BBPushService.showMessageServices("Lanzando servicio");

  configuracionThread = new ConfiguracionThread();
  configuracionThread.start();
  listeningThread = ListeningThread.getInstance();
  listeningThread.start();
  BBPushService.showMessageServices("Servicio BBPush configurado y esperando conexiones en el puerto "
+ ConfiguracionSingleton.getInstance().getConfiguracion().getPuerto());
}

public static void showMessageServices(String message) {
  UiEngine ui = Ui.getUiEngine();
  Dialog screen = new Dialog(Dialog.D_OK, message, Dialog.OK, Bitmap.getPredefinedBitmap  (Bitmap.EXCLAMATION),
  Manager.VERTICAL_SCROLL);
  ui.queueStatus(screen, 1, true);
}

public static void showMessageServices(String message, DialogClosedListener listener) {
  UiEngine ui = Ui.getUiEngine();
  Dialog screen = new Dialog(Dialog.D_OK, message, Dialog.OK, Bitmap.getPredefinedBitmap(Bitmap.EXCLAMATION),
  Manager.VERTICAL_SCROLL);
  screen.setDialogClosedListener(listener);
  ui.queueStatus(screen, 1, true);
}

/**
* Pantalla de consulta de tarea.
*
* @param tarea
*/
public static void ask(Tarea tarea) {
  String[] opciones = new String[] { "Aceptar", "Rechazar", "Posponer" };
  int[] respuestas = new int[] { 0, 1, 2 };
  Bitmap icono = Bitmap.getPredefinedBitmap(Bitmap.QUESTION);
  UiEngine ui = Ui.getUiEngine();
  Dialog screen = new Dialog(tarea.getDescripcion() + "\n" + tarea.getDetalle(), opciones, respuestas, 0, icono);
  screen.setDialogClosedListener(new MessageListener(tarea));
  ui.queueStatus(screen, 1, true);
}
/**
* Punto de entrada de la aplicacion
*
* @param args
*/
public static void main(String[] args) {
  BBPushService pushService = new BBPushService();
  pushService.enterEventDispatcher();
 }
}

Por otro lado necesitamos una alternativa para entrar al sistema vía un icono en caso de necesitar ver algo, para estoc reamos un proyecto nuevo en nuestro caso lo llamamos BBPushLauncher con un archivo llamado BBPushLauncher.java
/**
*
* Punto de entrada alternativo para BBPush
*
*/
public class BBPushLauncher extends Application {
  public static void main(String[] args) {
    BBPushService service = new BBPushService();
    service.enterEventDispatcher();
  }
}

Finalmente configuramos el BBPushService para que ejecute en el inicio cuando el usuario enciende su equipo. Si usamos el plugin para eclipse botón derecho sobre el proyecto, propiedades, Blackberry project properties, Application y tidamos Auto.run on startup.


Para más información escriba a info@y3k-it.com o visite http://www.y3k-it.com/

No hay comentarios:

Publicar un comentario