2. Record Management System (RMS)
• El sistema de gestión de registros o RMS, como
lo llamaremos de ahora en adelante, nos permite
almacenar información entre cada ejecución de
nuestro MIDlet.
• Esta información será guardada en el dispositivo
en una zona de memoria dedicada para este
propósito. La cantidad de memoria y la zona
asignada para ello dependerá de cada
dispositivo.
3. Modelo de datos
• Está implementado sobre una base de datos basada en registros que
llamaremos Record Management System o RMS (Sistema de gestión
de registros).
• Comunicación entre un MIDlet y el RMS
4. Modelo de datos
• Los MIDlets son los encargados de crear los Record Stores para
comunicarse con ellos. Estos Record Stores quedan almacenados en
el dispositivo y pueden ser accedidos por cualquier MIDlet que
pertenezca a la misma suite
• Acceso a un RMS a través de una MIDlet suite
5. Record Stores
Las propiedades de estos almacenes de registros son:
1. Cada Record Store está compuesto por cero o más registros.
2. Un nombre de Record Store es sensible a mayúsculas y
minúsculas y está formado por un máximo de 32 caracteres
UNICODE.
3. Dentro de una suite no pueden coexistir dos Record Stores con
el mismo nombre.
4. Si una suite de MIDlets es borrada del dispositivo MID, todos
los Record Stores pertenecientes a esa suite se borrarán.
5. Es posible que un MIDlet acceda a un Record Store creado por
otra suite, siempre que ésta de permiso para ello
Un Record Store tal como su nombre indica es un almacén de
registros. Estos registros son la unidad básica de información que
utiliza la clase RecordStore para almacenar datos.
6. Record Stores
Cada uno de estos registros está formado por dos unidades:
• Un número identificador de registro (Record ID) que es un
valor entero que realiza la función de clave primaria en la base
de datos.
• Un array de bytes que es utilizado para almacenar la
información deseada.
Estructura de un Record Store
7. Record Stores
Además de un nombre, cada Record Store también posee otros dos
atributos:
• Número de versión: Es un valor entero que se actualiza conforme
vayamos insertando, modificando o borrando registros en el Record
Store. Podemos consultar este valor invocando al método
RecordStore.getVersion().
• Marca temporal: Es un entero de tipo long que representa el
número de milisegundos desde el 1 de enero de 1970 hasta el
momento de realizar la última modificación en el Record Store. Este
valor lo podemos obtener invocando al método
RecordStore.getLastModified().
Así, la estructura de un Record Store se aproxima más a la Figura
8. Operaciones con Record Stores
• Haremos uso de la clase javax.microedition.rms.RecordStore
y todas las operaciones que nos permitan realizar sus
métodos.
Creación de un Record Store.
• La clase RecordStore no dispone de ningún constructor, pero posee
el método estático:
static RecordStore openRecordStore(String name, boolean
createIfNeccesary)
• Este método nos abre el Record Store con el nombre pasado como
parámetro o nos crea uno si no existe cuando el parámetro
createIfNeccesary es true.
• Además, existen otras dos versiones alternativas de este método:
static RecordStore openRecordStore(String name, boolean
createIfNeccesary, int autorización, boolean writable)
static RecordStore openRecordStore(String name, String
vendorName, String suiteName)
9. Operaciones con Record Stores
• El primero de ellos usa los siguientes parámetros:
autorización:
AUTHMODE_PRIVATE: Sólo permite el acceso al Record Store
a la MIDlet suite que lo creó.
AUTHMODE_ANY: Permite el acceso a cualquier MIDlet del
dispositivo. Este modo hay que usarlo con mucho cuidado ya
que podría provocar problemas de privacidad y seguridad.
writable: Indicamos si el Record Store puede ser modificado por
cualquier MIDlet que pueda acceder a él.
• Estos parámetros sólo tienen efecto si estamos creando un Record
Store. Si éste ya estaba creado, estos parámetros se ignorarán.
• El segundo método lo usaremos para abrir un Record Store que está
asociado a alguna MIDlet suite especificada por los parámetros
vendorName y suiteName. El acceso vendrá limitado por el tipo de
autorización del Record Store cuando fue creado
10. Operaciones con Record Stores
• Cuándo terminemos de usar el Record Store, hay que cerrar la
comunicación con él.
• Esto lo haremos mediante el método:
public void closeRecordStore() throws
RecordStoreNotFoundException, RecordStoreException
• Para cerrar correctamente la comunicación con un Record Store, es
necesario invocar este método tantas veces como llamadas se haya
realizado a l método openRecordStore().
11. Métodos que nos proporcionan Operaciones
Generales con los Record Stores
12. Manipulación de Registros
• Una vez creado o abierta la comunicación con el Record
Store, podemos leer, escribir, modificar o borrar registros a
nuestro gusto. Para ello, usaremos los métodos de la clase
RecordStore que se ven en la Tabla