Desarrollo de aplicaciones de cuadrículas de datos con las API de Java

Puede conectarse a un servidor de catálogo, obtener una instancia de ObjectGrid y utilizar la interfaz de programación de aplicaciones (API) de ObjectMap.

Antes de empezar

Debe crear una cuadrícula de datos simple en la interfaz de usuario. Consulte Creación de cuadrículas de datos simples para obtener más información.

Recorrido por una aplicación de cuadrícula de datos simple

  1. Conecte al servicio de catálogo obteniendo una instancia de ClientClusterContext.

    El servidor de catálogo a especificar se muestra en la página de interfaz de usuario de la cuadrícula de datos simple que ha creado. Pulse Cuadrícula de datos > Cuadrícula de datos simple > mi_cuadrícula_de_datos_simple y utilice los valores que están en el campo Servicios de catálogo.

    Para conectarse al servidor de catálogo, utilice el método connect de la API ObjectGridManager. El método connect que se utiliza sólo necesita el punto final de servidor de catálogo en el formato nombre_de_host:puerto. Pude indicar varios puntos finales de servidor de catálogo separando la lista de valores de nombre_de_host:puerto con comas. El fragmento de código siguiente muestra cómo conectar con un servidor de catálogo y obtener una instancia de ClientClusterContext:

    ClientClusterContext ccc = ObjectGridManagerFactory.getObjectGridManager().connect("myXC10.myhost.com:2809", null, null);

    El método connect intenta conectar con cada dispositivo de la lista hasta que establece una conexión satisfactoria. Se proporciona migración tras error si alguno de los otros dispositivos no responde.

    Si las conexiones con los servidores de catálogo son satisfactorias, el método connect devuelve una instancia ClientClusterContext. La instancia de ClientClusterContext es necesaria para obtener el ObjectGrid de la API ObjectGridManager.
  2. Obtenga una instancia de ObjectGrid.

    Para obtener una instancia de ObjectGrid, utilice el método getObjectGrid de la API ObjectGridManager. El método getObjectGrid requiere tanto la instancia de ClientClusterContext, como el nombre de la instancia de cuadrícula de datos. La instancia de ClientClusterContext se obtiene durante la conexión al servidor de catálogo. El nombre de la instancia de cuadrícula de datos es el nombre de la cuadrícula de datos simple creada en la interfaz de usuario. El siguiente fragmento de código demuestra cómo obtener la cuadrícula de datos llamando al método getObjectGrid de la interfaz de programación de aplicaciones ObjectGridManager.

    ObjectGrid grid = ObjectGridManagerFactory.getObjectGridManager().getObjectGrid(ccc, “mi_cuadrícula_de_datos_simple”);
  3. Establezca las credenciales de seguridad necesarias.
    Cree una configuración de seguridad de cliente y un generador de credenciales con un nombre de usuario y contraseña que debe indicar a la aplicación. El nombre de usuario y contraseña que utilice deben tener permiso para acceder a la cuadrícula de datos del dispositivo. Consulte el apartado Gestión de usuarios y grupos para obtener más información sobre cómo crear un usuario autorizado.
    		// Crear un objeto ClientSecurityConfiguration utilizando el archivo especificado
    		ClientSecurityConfiguration clientSC = ClientSecurityConfigurationFactory.getClientSecurityConfiguration();
    		clientSC.setSecurityEnabled(true);
    		// Crear un CredentialGenerator utilizando el usuario y la contraseña pasados.
    		CredentialGenerator credGen = new UserPasswordCredentialGenerator(username,password);
    		clientSC.setCredentialGenerator(credGen);
    		return clientSC;
  4. Obtenga una instancia de sesión.

    Puede obtener una sesión desde la instancia de ObjectGrid obtenida. Se necesita una instancia de sesión para obtener la instancia ObjectMap y efectuar la demarcación de la transacción. El siguiente fragmento de código demuestra cómo obtener una instancia de sesión llamando al método getSession de la interfaz de programación de aplicaciones ObjectGrid.

    Session sess = grid.getSession();
  5. Obtenga una instancia de ObjectMap.

    Después de obtener una sesión, puede obtener una instancia de ObjectMap desde una sesión llamando al método getMap de la interfaz de programación de aplicaciones de la sesión en cuestión. El nombre de la instancia de correlación pasado al método getMap coincide con el nombre de la cuadrícula de datos creada en la interfaz de usuario. El fragmento de código siguiente muestra cómo obtener ObjectMap llamando al método getMap de la API de sesión.

    ObjectMap map1 = sess.getMap("mi_cuadrícula_de_datos_simple");
    El ejemplo anterior utiliza la instancia de correlación predeterminada que recibe el nombre de la cuadrícula de datos. También puede especificar un nuevo nombre de correlación como en los ejemplos siguientes:
    ObjectMap map2 = sess.getMap("my_simple_data_grid.CT.P");  
    ObjectMap map3 = sess.getMap("my_new_map.NONE");
    La correlación my_simple_data_grid.CT.P es una correlación que utiliza el desalojo de tiempo de creación y el bloqueo pesimista. La correlación my_new_map.NONE no tiene valores de desalojo o bloqueo. Si desea más información, consulte Opciones de configuración de correlaciones dinámicas.
  6. Utilice los métodos ObjectMap.

    Después de obtener una instancia de ObjectMap, puede utilizar la API de ObjectMap. Recuerde que la interfaz de ObjectMap es una correlación transaccional y requiere la demarcación de transacción utilizando los métodos begin y commit de la API Session. Si no hay ninguna demarcación de transacción explícita en la aplicación, las operaciones de ObjectMap se ejecutan con transacciones de confirmación automática.

    El siguiente fragmento de código demuestra cómo utilizar la API ObjectMap con una transacción de confirmación automática.

    map1.insert(key1, value1);

    Las claves que utilice pueden ser de un tipo Java existente, como por ejemplo java.lang.String o Integer. Los valores pueden ser cualquier tipo de objeto serializable.

    El siguiente fragmento de código demuestra cómo utilizar la API ObjectMap con la demarcación de transacción explícita.

    sess.begin();
    map1.insert(key1, value1);
    sess.commit();