RMS - Record Management System 21-08-20152 Record Store En Record er et bytearray af vilkårlig størrelse En RecordStore er et antal Records nummerede.

Slides:



Advertisements
Lignende præsentationer
Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
Advertisements

Overskrift her Navn på oplægsholder Navn på KU- enhed For at ændre ”Enhedens navn” og ”Sted og dato”: Klik i menulinjen, vælg ”Indsæt” > ”Sidehoved / Sidefod”.
Dagens program  Emne: Tim Berners-Lees WWW koncept og deraf følgende innovationer Forbered hver for sig Præsenter og diskutér i grupper Fremlæggelse med.
Item gennemgang  Item: 01 – Static factory methods  Item: 09 – Override hashCode  Item: 17 – Design & document inheritence  Item: 25 – Lists over arrays.
Semaforer Hvordan virker semop() hvis der er flere operationer ? I hvilken rækkefølge vækkes blokerede semaforer ? man semop.. The system call semantic.
Giv medarbejderne adgang til centrale systemer – lige ind i Office Inspirationsseminar 31. oktober 2006.
Hvordan man skriver koden.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Teamwork En praksisnær øvelse.
Begreber og Redskaber 9. Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister.
Kort om MIDlet. MIDlet - resourcer Kernen er en begrænset java-maskine: Connected Limited Device Configuration Device afhængig: CLDC 1.0 eller CLDC 1.1.
Begreber og Redskaber 2. Plan for idag Noget om bestanddelene i et programmeringssprog Syntaksbeskrivelse af java Næste gang: –Binære tal –Repræsentation.
Forelæsning 3.1 Collections Javas for-each løkke
AJAX/Otto Knudsen 1 AJAX Motivation Definition. AJAX/Otto Knudsen 2 Motivation En typisk web-applikation er synkron klienten sender en forespørgsel og.
Items 4, 14, 24, 34, 44, 54 Orange gruppe Liv, Jonas, Thorkil, Søren S og Martin D.
Lektion 7 Læsestof: Kopier fra Caranno
FEN KbP/seminar2: design11 Kontraktbaseret programmering Seminar 2 Klassedesign – grundprincipper Eksempler: Stack Dictionary.
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
Paradigmer i Programmering 2. Sammensatte typer Tupler og lister Programmering med rekursion Programmering med pipe-lines Programmering med polymorfe.
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
Begreber og Redskaber 7. Plan for idag Rekursive underprogrammer Rekursive datastrukturer Rekursion vs iteration Rekursivt: Flette sortering.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
11 - Exceptions. 2 NOEA2009Java-kursus – Exceptions Hvad er en exception? En undtagelse. Typisk en fejl der opstår runtime Afbryder det normale programflow.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
Informationssøgning Eksempler på nyttige hjemmesider.
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
KF04 GRAY Item 2, 12, 22, 32, 42, 52. Consider a builder when faced with many constructor parameters Item 2.
C#: Udtryk og metoder Kilde: Joe Hummel. 2 Nordjyllands Erhvervakademi – 2008 Indhold “With regards to programming statements and methods, C# offers what.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
Kjeld Svidt  Institut for Byggeri og Anlæg  Aalborg Universitet IT i Byggeriet Semester 6, kursusgang Databaser (1) Kjeld Svidt
OPERATIONEL ANALYSE AF WEBADFÆRD OAW – LEKTIONSGANG 11.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Forelæsning 7.1 – repetition
Tekst filer Tekstfiler opbygges normalt af linier, hvor disse ikke behøver at være samme længde. Når man skal arbejde med tekstfiler, ønsker man metoder.
3. time Her beskæftiger vi os med John F. Sowas forklaring af erfaringsviden. John F. Sowa.
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
OPERATIONEL ANALYSE AF WEBADFÆRD OAW – LEKTIONSGANG 4.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
 Jens Bennedsen 2002Objektorienteret systemudvikling GRASP mønstre Basale ansvarsplaceringsregler.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
 Henrik B. Christensen, 1999Introducerende objektorienteret programmering8B.1 Interfaces En ren kontrakt.
 Jens Bennedsen, 2003Introducerende objektorienteret programmeringinterfaces.1 Interfaces En ren kontrakt.
Objektorienteret analyse og design Ó Bennedsen 2001 Design - part Programmering og systemudvikling Lektion 7 Design - part 2.
DAIMIIntroducerende objektorienteret programmering4A.1 Kontrakter og Design Kontraktbaseret design, JavaDoc dokumentation.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
ANALYSE AF WEBADFÆRD - OAW OAW – LEKTIONSGANG 4. ANALYSE AF WEBADFÆRD - OAW SUMMARY, LECTURE 3 (Extended) Common Log File Format Host, Ident, Authuser,
Et Audio/ Video Framework Et framework for en audio/video applikation baseret på lokale og kilder tilgængelige på 1394 via AV/C protokollen.
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
Klasser og objekter. dIntProg, F08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
DAIMIIntroducerende Objektorienteret Programmering8B.1 Interfaces En ren kontrakt.
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Mikkel deMib Svendsen Duplicate Content & Multiple Site Issue Mikkel deMib Svendsen
Omsætning af en model til en RDB Jesper Tørresø DAB1 F Marts 2008.
Database Some walk through lv/ Figures & some text from: © Pearson Education Limited 1995,
VIS HJÆLPELINJER SOM ER EN HJÆLP VED PLACERING AF LOGO: 1.Højreklik på den aktuelle side og vælg ’gitter og hjælpelinjer’ 2. Sæt kryds ved ’Vis’ tegnehjælpelinjer.
WebApi service part 2 Routning og Action Simpel test-client (javascript) Session og Application data.
IKA e-tænketank 25. August 2016.
Sikkerhed.
Country report 2017 Nordic Web, Oslo 2017 Lars Pedersen.
Dansk HL7 CDA profil til deling af aftaler Data i en aftale
Incidence, risk and resilience for suicide attempts among children and youth born in and living in Denmark in 2007 By MSc. Erik Christiansen.
Forelæsning Uge 3 – Mandag
Software Testing Software testing.
MaaS i Europe Rasmus Lindholm.
Simpel test-client (javascript) Session og Application data
Resuscitation with an AED
Quiz – Uge 3 – torsdag – første time
Smart Data Tool (SDT) In Sales
Præsentationens transcript:

RMS - Record Management System

Record Store En Record er et bytearray af vilkårlig størrelse En RecordStore er et antal Records nummerede 1, 2, 3,... Når en ny Record indsættes anvendes næste endnu ikke anvendte index (ingen genbrug af indexværdier) ITJEM1/jrt

Oprette en RecordStore... // Create a record store RecordStore rs = null; try { rs = RecordStore.openRecordStore( "myrs", true ); } catch( RecordStoreException e ){ // couldn't open it or create it }... ITJEM1/jrt

Indsætte og opdatere Records // Indsætte en ny Record byte[] data = new byte[]{0, 1, 2, 3 }; int recordID; recordID = rs.addRecord(data, 0, data.length); // Opdatere en eksisterende Record int recordID =...; // some record ID byte[] data = new byte[]{ 0, 10, 20, 30}; rs.setRecord(recordID, data, 1, 2); // replaces all data in record with 10, 20 ITJEM1/jrt

Læse og fjerne Records... int recordID =.... // some record ID byte[] data = rs.getRecord(recordID);... int recordID =...; // some record ID rs.deleteRecord(recordID);... Once a record is deleted, any attempt to use it throws an InvalidRecordIDException. ITJEM1/jrt

Slette en RecordStore... try { RecordStore.deleteRecordStore("myrs"); } catch(RecordStoreNotFoundException e){ // no such record store } catch(RecordStoreException e){ // somebody has it open }... ITJEM1/jrt

Flere RecordStore operationer getLastModified() returns the time of the last modification getName() returns the name of the record store. getNumRecords() returns the number of records in the record store. getSize() returns the total size of the record store, in bytes. getSizeAvailable() returns the number of bytes available for growth. getVersion() returns the version number of the record store. ITJEM1/jrt

RMS Exceptions InvalidRecordIDException is thrown when an operation cannot be performed because the record ID is invalid. RecordStoreFullException is thrown when no more space is available in the record store. RecordStoreNotFoundException is thrown when the application tries to open a non-existent record store. RecordStoreNotOpenException is thrown when an application tries to access a record store that has already been closed. RecordStoreException is the superclass of the other four, and is thrown for general errors they don't cover. ITJEM1/jrt

Datamapping 1 public void fromByteArray(byte[] data) throws IOException { ByteArrayInputStream bin = new ByteArrayInputStream(data); DataInputStream din = new DataInputStream(bin); _firstName = din.readUTF(); _lastName = din.readUTF(); _phoneNumber = din.readUTF(); din.close(); } public byte[] toByteArray() throws IOException { ByteArrayOutputStream bout = new ByteArrayOutputStream(); DataOutputStream dout = new DataOutputStream(bout); dout.writeUTF(getFirstName()); dout.writeUTF(getLastName()); dout.writeUTF(getPhoneNumber()); dout.close(); return bout.toByteArray(); } ITJEM1/jrt

Datamapping 2 public void fromByteArray(byte[] data) throws IOException { ByteArrayInputStream bin = new ByteArrayInputStream(data); DataInputStream din = new DataInputStream(bin); fromDataStream(din); din.close(); } public byte[] toByteArray() throws IOException { ByteArrayOutputStream bout = new ByteArrayOutputStream(); DataOutputStream dout = new DataOutputStream(bout); toDataStream(dout); dout.close(); return bout.toByteArray(); } ITJEM1/jrt

Datamapping 3 public void fromDataStream(DataInputStream din) throws IOException { _firstName = din.readUTF(); _lastName = din.readUTF(); _phoneNumber = din.readUTF(); } public void toDataStream(DataOutputStream dout) throws IOException { dout.writeUTF(getFirstName()); dout.writeUTF(getLastName()); dout.writeUTF(getPhoneNumber()); } ITJEM1/jrt

Enumerations 1 RecordStore rs =... // an open record store RecordEnumeration enum = rs.enumerateRecords( filter, comperator, tracking_updates );... // use the enumeration here enum.destroy(); // always clean it up! enum.hasNextElement() enum.nextRecordId() enum.nextRecord() osv Rækkefølgen i enum er udefineret ITJEM1/jrt

Enumerations 2 RecordFilter public class MyFilter implements RecordFilter { public boolean matches( byte[] recordData ) {... // matching code here } } ITJEM1/jrt

Enumerations 3 RecordComparator public class MyComparator implements RecordComparator { public int compare(byte[] r1, byte[] r2){ int salary1 = getSalary(r1); int salary2 = getSalary(r2); if(salary1 < salary2){ return PRECEDES; } else if(salary1 == salary2){ return EQUIVALENT; } else { return FOLLOWS; } ITJEM1/jrt

Alternativer RMS Filsystem (FileConnection API) PIM (Personal Information Management API) RMS er tilgængelig på de fleste apparater Filesystem og PIM er ikke så tilgængelige som RMS, og kræver endvidere certificering ITJEM1/jrt

Afsluttende bemærkninger Alle RMS operationer er trådsikre Attributten MIDlet-Data-Size (minimumsværdi) bør sættes i såvel jad som manifest filer Det vil være rart at kunne arbejde på "objektniveau" Der er behov for at kunne søge effektivt i en RecordStore ITJEM1/jrt

ITJEM1/jrt