DE19945862A1 - Dynamische Speicherverwaltung von Datenobjekten in Javacard Applets - Google Patents

Dynamische Speicherverwaltung von Datenobjekten in Javacard Applets

Info

Publication number
DE19945862A1
DE19945862A1 DE1999145862 DE19945862A DE19945862A1 DE 19945862 A1 DE19945862 A1 DE 19945862A1 DE 1999145862 DE1999145862 DE 1999145862 DE 19945862 A DE19945862 A DE 19945862A DE 19945862 A1 DE19945862 A1 DE 19945862A1
Authority
DE
Germany
Prior art keywords
data
storage space
computer
applet
card
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Withdrawn
Application number
DE1999145862
Other languages
English (en)
Inventor
Uwe Hansmann
Dirk Herrendoerfer
Lothar Merk
Thomas Stober
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
International Business Machines Corp
Original Assignee
International Business Machines Corp
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by International Business Machines Corp filed Critical International Business Machines Corp
Priority to DE1999145862 priority Critical patent/DE19945862A1/de
Publication of DE19945862A1 publication Critical patent/DE19945862A1/de
Withdrawn legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/357Cards having a plurality of specified features
    • G06Q20/3576Multiple memory zones on card
    • G06Q20/35765Access rights to memory zones

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Business, Economics & Management (AREA)
  • Theoretical Computer Science (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • Strategic Management (AREA)
  • General Business, Economics & Management (AREA)
  • General Engineering & Computer Science (AREA)
  • Stored Programmes (AREA)

Abstract

Verfahren und Vorrichtung zur dynamischen Speicherverwaltung von Datenobjekten (10, 12) in SmartCards (8), insbesondere in JavaCards sind Gegenstand der Erfindung. Es wird vorgeschlagen, ein Objekt und Methoden für individuelle Speicherobjekte (10, 12) auf der SmartCard zu implementieren, die Speicherplatz vollständig zur Laufzeit eines Cardprogramms, insbesondere eines Java-Applets verwalten können. Zu dieser Speicherplatz-Verwaltung gehören die klassischen Funktionen wie schreiben, lesen, ändern, Speicherplatz allokieren, deallokieren und - als zusätzliches, optionales Merkmal - die Defragmentierung von Speicherbereichen. In einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung werden die durch die oben erwähnte dynamische Speicherverwaltung erzeugten Speicher- oder Datenobjekte (10, 12) nicht mehr zur logischen Detailstrukturierung der Daten benutzt, sondern nur noch für eine logische Grobstrukturierung aller Datenobjekte eines Applets oder mehrerer eingesetzt. Innerhalb der Datenobjekte werden die Daten (14, 16, 18, 21, 22) mit einem logischen Verzeichnissystem administriert.

Description

1. HINTERGRUND DER ERFINDUNG 1.1 GEBIET DER ERFINDUNG
Die Erfindung betrifft die Programmierung und Betriebsweise von Anwendungen zum Gebrauch in elektronischen Computergeräten mit begrenzter Rechenleistung, die nur in geringem Maße moderne Programmierkonzepte auf hoher Ebene unterstützen. Insbesondere betrifft die Erfindung Verfahren und Vorrichtung zur dynamischen Speicherverwaltung von Datenobjekten in SmartCards, insbesondere in JavaCards.
1.2 BESCHREIBUNG DES STANDES DER TECHNIK UND SEINER NACHTEILE
Die eingangs erwähnten Geräte sind vor allem solche Geräte des allgemeinen Gebrauchs, die nur eine - verglichen mit einem Desktop-Computer - geringe Rechenleistung besitzen und deren Programmierung von keinen hochentwickelten Programmierkonzepten unterstützt wird. Exemplarisch dafür sollen für den Zweck der Offenbarung der vorliegenden Erfindung SmartCards genannt sein, also Karten, auf denen ein kleiner Speicherchip mit einem eigenen Mikroprozessor angebracht ist. Auf dem Chip können Daten gespeichert werden, die im Zusammenhang mit einer Host-Anwendung - beispielsweise das Bargeld-Ausgabeprogramm in einem Geldautomat - die verschiedensten Geschäftsprozesse ermöglichen. Die Akzeptanz dieser Chipkarten ist sehr groß, und ihre Anwendungsmöglichkeiten und Anwendungsbereiche wachsen schnell.
Es gibt zwei Sorten von SmartCards, zum einen die Dateisystem-orientierten SmartCards, die die Schnittstelle ISO 7816-4 als Protokoll zur Kommunikation mit Host-Anwendungen benutzen und auf denen bei der Initialisierung der Karte ein Verzeichnissystem eingerichtet wird, das den Speicherplatz für Daten der Host-Anwendung, die auf die SmartCard zugreift, genau strukturiert und vorgibt. Ein solches Verzeichnissystem verwaltet den gesamten, auf der SmartCard verfügbaren Speicherplatz.
Nachteil dieser sogenannten ISO-SmartCards ist jedoch, daß Assembler-Code zum Programmieren der Anwendungen benutzt werden muß, die auf diese Speicherplätze zugreifen. Dies ist höchst unkomfortabel für den Programmierer, und hochentwickelte Programmiertechniken sind für Anwendungen für solche Karten nicht anwendbar.
Zum anderen gibt es objektorientierte SmartCards, die dem Bedürfnis Rechnung tragen, auf der SmartCard selbst kleine Anwendungsprogramme zu speichern, die ausgeführt werden, wenn die Karte in einen SmartCard-Leser eingeführt wird. Diese autonom von der Host-Anwendung arbeitenden Programme können einzelne, kleine Geschäftsprozesse selbständig erfüllen, je nach Anwendungsbereich. Diese Anwendungen werden mit der Programmiersprache Java geschrieben, weswegen die Karten Java Cards genannt werden. Java Cards unterstützen die objektorientierte Programmierung, was die Schnittstelle zu modernen Programmiertechniken eröffnet. Durch diese modernen Techniken können letztendlich auf sehr effiziente Weise Anwendungen geschrieben werden, Anwendungs-Code wiederverwendet werden und standardisierte Schnittstellen ausgenutzt werden. Speziell bleiben für SmartCards allgemein jedoch die Speichermöglichkeiten und Rechenleistung begrenzt.
In dem Maß, wie die Nachfrage nach Java Card-Anwendungen gestiegen ist, hat sich auch das Bedürfnis verstärkt, auf einer Karte mehr als nur eine Anwendung unterzubringen.
Sogenannte "Multi-Application"-SmartCards liegen daher im Trend. So arbeiten verschiedene Dienstleister in zunehmendem Maße zusammen, um Kunden bestimmte Aufgaben abzunehmen, ihnen Anreize besonderer Art zu schaffen, oder besondere Serviceleistungen zu ermöglichen. Nur exemplarisch seien Fluggesellschaften genannt, die mit Mietwagen-Unternehmen und/oder Hotelketten zusammenarbeiten, um dem Kunden durch bestimmte Rabattsysteme und Vorreservierungsmöglichkeiten einen besonderen Service bieten zu können.
Dies bedeutet jedoch, daß möglichst auf einer SmartCard die logischen Verknüpfungen zwischen Anwendungsprogrammen aller beteiligten Unternehmen gespeichert sind, und nicht drei separate SmartCards notwendig sind, um diese Zusammenarbeit der drei Unternehmen zu ermöglichen. Ein dazu erforderlicher Datenaustausch von der einen Karte zur anderen wäre höchst unkomfortabel und für den Kunden nicht zumutbar. Soll nun im Zuge dieser zunehmenden Zusammenlegung von Unternehmensdienstleistungen eine vorhandene SmartCard eines Unternehmens in einer neuen Version herausgebracht werden, die die Dienstleistungen von zwei neuen Unternehmen im obigen Sinne mit unterstützt und mit diesen zusammenwirkt, so ist ein Upgrade der Karte erforderlich. Solche Upgrades oder auch erweiterte Speicherplatzanforderungen, die erst zur Laufzeit eines Java-Applets auftreten, sind jedoch bei Java-SmartCards vom Stand der Technik sehr unkomfortabel durchzuführen, da die JavaCards nur Programme speichern und die Größe der einzelnen Datenfelder, auf die die Anwendungsprogramme auf JavaCards - die sogenannten Java-Applets - zugreifen, statisch schon beim Laden des Applets auf eine Java Card allokiert werden. Eine solche statische Allokierung von Speicherplatz ist sehr unflexibel bei Änderungen oder Erweiterungen der Speicherplätze.
Außerdem wird der benutzte Speicherplatz der Datenobjekte unabhängig von der Grösse der in den Datenobjekten gespeicherten Daten statisch festgeschrieben. Das bedeutet, dass zum einen beim Speichern kleiner Datenmengen in einem grossen Datenobjekt viel Speicherplatz ungenutzt bleibt, wenn zur Laufzeit des Applets nur Daten geringen Umfangs auf den hierfür vorgesehenen Plätzen abgelegt werden. Zum anderen wird die logische Strukturierung der gespeicherten Daten nur über die zugeordneten Datenobjekte durchgeführt, was für die Programmierung von Applets nachteilig ist, da jedes einzelne Datenfeld für den Zugriff durch das Applet einen eindeutigen, separaten Namen haben muß. Dies ist in Fig. 1 anhand von personenbezogenen Datensätzen gezeigt. Die Figur zeigt in den separaten Kreisen Datenobjekte eines Java Card Applets, auf dem die Adressdaten von zwei Personen abgelegt werden können, nämlich Speicherplätze für den Namen einer Person, Name1, Name2, für die Telefonnummer Tel.1, Tel.2, oder die Adressdaten Str.1, Str.2, Adr.1, Adr.2. Die Grösse dieser Datenobjekte muss zum Zeitpunkt der Erstellung des Applets festgelegt werden. Der Speicherplatz wird unabhängig davon allokiert, ob alle Objekte zur Laufzeit benötigt werden oder nicht. Die Datenobjekte sind jeweils einzeln unabhängig voneinander separat definiert, was durch die einzelnen, nicht miteinander verbundenen Kreise auf der schematisch dargestellten SmartCard angedeutet ist.
Als weiterer Nachteil kann ein Java-Applet nicht auf Daten eines anderen Javä-Applets zugreifen, weil jedes Applet seine eigenen Daten schützt. Benötigen zwei Applets also zwei identische Datensätze, so müssen diese doppelt auf der Karte gespeichert werden. Speicherplatz wird also nicht effizient ausgenutzt.
Es stellt sich also die Aufgabe, JavaCards so programmieren zu können, daß der auf einer JavaCard verfügbare Speicherplatz für Daten dynamisch und effizient verwaltet wird, und daß Datensätze von mehreren Applets angesprochen werden können.
3. ZUSAMMENFASSUNG UND VORTEILE DER ERFINDUNG
Die genannten Aufgaben werden durch die in den unabhängigen Ansprüchen genannten Merkmale gelöst. Vorteilhafte Weiterbildungen des Erfindungsgegenstandes ergeben sich aus den jeweiligen Unteransprüchen.
Das grundlegende Konzept der vorliegenden Erfindung beruht auf der Idee, die Vorzüge yon Verzeichnissystem-orientierten SmartCards und von Java Cards zu kombinieren, um die oben gestellte Aufgabe zu erfüllen.
Dies wird erfindungsgemäß dadurch realisiert, daß der besondere Vorteil von Java Cards - nämlich die Fähigkeit, Objekte und zugehörige Methoden auf SmartCards zu implementieren - dazu ausgenutzt wird, den Vorteil der Verzeichnissystem-orientierten SmartCards zu erzeugen:
Es wird daher einem Aspekt der vorliegenden Erfindung für objektorientierte SmartCards folgend vorgeschlagen, ein Objekt und Methoden für individuelle Speicherobjekte auf der SmartCard zu implementieren, die Speicherplatz vollständig zur Laufzeit eines Cardprogramms, insbesondere eines Java-Applets verwalten können. Zu dieser Speicherplatz-Verwaltung gehören die klassischen Funktionen wie schreiben, lesen, ändern, Speicherplatz allokieren, deallokieren und - als zusätzliches, optionales Merkmal - die Defragmentierung von Speicherplatz.
Als weiteres zusätzliches Merkmal der vorliegenden Erfindung ist die Möglichkeit gegeben, ein und dasselbe Speicherverwaltungsobjekt für sämtliche auf der Java Card befindlichen Applets ansprechbar zu machen.
In einem bevorzugten Ausführungsbeispiel der vorliegenden Erfindung werden die durch die oben erwähnte dynamische Speicherverwaltung erzeugten Speicher- oder Datenobjekte nicht mehr zur logischen Detailstrukturierung der Daten benutzt, sondern nur noch für eine logische Grobstrukturierung aller Datenobjekte eines Applets oder für den Zugriff durch mehrere eingesetzt.
Innerhalb der Datenobjekte werden die Daten mit einem logischen Verzeichnissystems administriert, das gemäß einer bevorzugten Ausprägung des erfinderischen Konzepts - angepaßt an objektorientierte SmartCards - in Form eines sogenannten Speicherverwaltungsobjekts mit zugehörigen Methoden als Code auf der Java Card residiert. Der Code zur Verwaltung des Verzeichnissystems ist je nach Anwendungerfordernissen dabei im Applet selbst codiert, kann aber auch im Kartenbetriebssystem oder an anderer Stelle gespeichert sein, und von einem oder mehreren Applets aufgerufen werden.
Durch Übertragung des erfinderischen Konzepts auf ISO-Filesystem-Karten wird mit Einsatz des so erzeugten, flexiblen Filesystems innerhalb von Datenobjekten daher auch das Problem der dynamischen Generierung der Layouts, d. h., der Gestaltung des kompletten Speichersystems bei diesen Karten durch die Hostanwendung oder "Off-Card"-Applikation gelöst.
Dies ist insbesondere bei dynamischen, objekt-orientierten Anwendungen, bei denen erst zur Laufzeit das Kartenlayout aus sogenannten High-Level-Objekten generiert wird, zwingend notwendig. Diese High-Level Objekte bilden einen universellen Bestandteil der Schnittstelle zwischen Host-Anwendungsprogramm und Karten-Anwendungsprogramm und stellen Platzhalter für Daten- und Befehlsaustauchvorgänge dar, die erst zur Laufzeit mit konkreten Implementierungen durch die entsprechenden Daten oder Befehle gefüllt werden und dann die - quasi spontan zur Laufzeit eines Applet aufkommenden - Speicherplatzanforderungen verursachen.
Die Vorteile der erfinderischen Konzepte können daher wie folgt zusammengefasst werden:
Es wird eine "automatische Speicherplatzverwaltung" innerhalb von Datenobjekten eines Applets durch das Verzeichnissystem ermöglicht. Hierdurch wird erreicht, dass Speicherplatz dynamisch an denjenigen Stellen zur Verfügung steht, an denen er zur Laufzeit des Applets benötigt wird; es wird daher weniger Speicherplatz vergeudet als bei herkömmlichen statischen Speicherplatzverwaltungsverfahren.
Zum Zeitpunkt der Appletprogrammierung müssen darüberhinaus nicht alle Datenstrukturen in Objektstrukturen abgelegt werden. Es können nachträglich welche hinzukommen, die sich nach der Dateneingabe quasi "selbst-installieren" können, soweit es nur die Grobeinteilung zuläßt. Weiter werden weniger Datenobjekte benötigt, wodurch weniger Aufwand bei der Objektadministration anfällt.
Schließlich wird ermöglicht, dass Anwendungen und Tools ihre Datenstrukturen, z. B. Kartenlayouts in den Datenobjekten erst nach der Initialisierung der Java Card zur Laufzeit einer Anwendung festlegen.
4. ZEICHNUNGEN
Ein Ausführungsbeispiel der Erfindung ist in den Zeichnungen dargestellt und wird in der genauen Beschreibung näher erläutert. In den Zeichnungen zeigt
Fig. 1 eine schematische Darstellung der Speicherung von Datenobjekten eines Java-Applets zum Speichern von Adressdaten und Karten-/Appletdaten gemäß dem Stand der Technik,
Fig. 2 eine schematische Darstellung der Speicherung von Daten in Verzeichnissystemen innerhalb von Datenobjekten eines Java-Applets nach der vorliegenden Erfindung,
Fig. 3 ein schematisches Blockdiagramm, das wesentliche Schritte beim erfindungsgemäßen Speicherverwaltungsverfahren zur Laufzeit eines JavaApplets zeigt.
5. GENAUE BESCHREIBUNG DES AUSFÜHRUNGSBEISPIELS
Mit Bezug zu Fig. 2 wird in einer beispielhaft ausgewählten Situation, in der es notwendig erscheint, ein Upgrade von SmartCards zu erzeugen, die durch die vorliegende Erfindung verbesserte, dynamische Speicherverwaltung beschrieben.
In dieser Situation soll eine bestimmte JavaCard-Serie, die von einer Fluggesellschaft herausgegeben wurde und die bereits an einen Kundenkreis verteilt ist, mit einer zusätzlichen Funktionalität ausgerüstet werden, was sich beispielhaber aus der neu beschlossenen Zusammenarbeit der Fluggesellschaft mit einer Hotelkette ergibt. Die neue Funktionalität macht es unter anderem notwendig, zwei neue Sätze von Personenstammdaten in dem vorhandenen Speicherplatz der Karte unterzubringen, sowie auf einen, vorher bereits vorhandenen Satz von Personenstammdaten, beispielsweise der des Inhabers der Karte, zurückzugreifen.
Erfindungsgemäß kann nun die Kartenserie einfach und flexibel auf den neuen Stand gebracht werden. Danach wird bei der Neukonzeption der Karte im vorhinein ein bestimmter, größerer Speicherbereich für Datenobjekte reserviert. Das neue, gemäß der vorliegenden Erfindung hergestellte Layout ergibt sich dann aus Fig. 2.
In dem in Fig. 2 gezeigten Beispiel ist eine schematisch umrissene SmartCard 8 und zwei Datenobjekte darauf dargestellt: Datenobjekt 10 ist ein Datenobjekt für personenbezogene Daten, und Datenobjekt 12 ist ein Datenobjekt für Daten zur Karten-/Appletverwaltung.
Diese Grobeinteilung des Speicherplatzes für Datenobjekte einerseits und Anwendungs-Code der Applets andererseits geschieht bei der Initialisierung der Karte.
Im vorhandenen Beispiel soll die neue, oben erwähnte Funktionalität für die SmartCard in der Praxis durch einen Dialog mit einem Host-Anwendungsprogramm an irgendeinem Terminal auf der Karte realisiert werden. Durch das Einschieben der Karte in den SmartCard-Leser des Terminals wird nun diese Host-Anwendung gestartet, die sämtliche, auf der SmartCard gespeicherten Daten sichert, zwischenspeichert und für ein neues Schreiben auf die Karte initialisiert.
Die Host-Anwendung führt nun die oben geschilderte Grobeinteilung für Datenobjekte und Anwendungs-Code durch, und schreibt in entsprechende Speicherbereiche die neu benötigten Applets, die die erweiterte Funktionalität mitbringen, sowie die alten, vorher auf der Karte vorhandenen Daten an neue Speicherplätze in einem passenden Datenobjekt.
Im vorliegenden Fall wird beispielsweise der vorher schon vorhandene Datensatz des Karteninhabers 14 in einem Verzeichnissystem in dem Datenobjekt 10 für personenbezogene Daten geschrieben. Des weiteren wird erfindungsgemäß das oben erwähnte "Speicherverwaltungsobjekt" auf der Karte gespeichert, zusammen mit den klassischen Speicherverwaltungs-Methoden, wie etwa Speicherplatz allokieren, Speicherplatz deallokieren, Speicherplatz defragmentieren, vom Speicherplatz lesen und den Speicherplatz beschreiben. Danach ist die SmartCard neu programmiert und kann vom Benutzer in ihrer erweiterten Funktionalität benutzt werden.
Der Benutzer zieht die Karte aus dem Lesegerät und verfügt nun über eine aktualisierte Karte. Deren Vorteile kann er beispielsweise dann kennenlernen, wenn er die Karte in ein Lesegerät der Fluggesellschaft einführt, die ihm durch die neue Zusammenarbeit mit der Hotelkette bestimmte Übernachtungsangebote und Hoteladressen zeigen soll. Eine Nutzung dieser Anwendung soll es nun erforderlich machen, daß der Benutzer selbst einen weiteren Satz von Personenstammdaten eingeben soll, um die neue Funktionalität der Karte komplett ausnutzen zu können.
Wie in Fig. 3 schematisch und aus Gründen verbesserter Klarheit nur auszugsweise dargestellt, steckt der Benutzer seine SmartCard in ein Terminal, das Applet startet, Schritt 110, und der Benutzer wird aufgefordert, Schritt 120, seinen neuen Satz von Personenstammdaten einzugeben. Sobald er dies beispielsweise über das Kartenterminal macht und Daten geliefert hat, Schritt 130, wird nach einer "Eingabe-korrekt ?"-Kon­ trolle 140 mit Korrekturmöglichkeit, Entscheidung 140- NEIN Zweig, nach Durchlaufen des JA-Zweigs, zur Speicherung der Daten nach dem erfinderischen, dynamischen Speicherverwaltungsverfahren das erfindungsgemäße Speichermanagerobjekt aufgerufen, Schritt 150.
Dieses bekommt die erforderlichen Parameter, wie etwa Anzahl der Zeichen des eingegebenen Namens, sowie die Zeichen selbst als Parameter mitgeliefert und erzeugt nun zur Laufzeit des Applets die neue Speicherstruktur 16 in Fig. 2 in demselben Verzeichnisbaum, der schon für die Speicherung der personenbezogenen Daten 14 des Karteninhabers selbst verwendet wurde, Schritt 160.
Das Speicherverwaltungsobjekt wird also in bevorzugter Weise für jeden Datensatz nur einmal aufgerufen. Alternativ kann es jedoch auch für jeden Namen beziehungsweise jedes Datenfeld separat aufgerufen werden. Es allokiert jeweils in beiden Möglichkeiten durch Aufruf der entsprechenden Allokierungsmethode und Übergabe der zugehörigen Parameter nur soviel Speicherplatz, wie es zur Speicherung der eingegebenen Daten notwendig ist.
Nach weiteren, vom Benutzer oder dem Applet durchgeführten Aktionen - siehe die Pünktchen in Fig. 3 - wird das Applet dann beendet - Schritt 170 und die SmartCard aus dem Terminalgerät gezogen. Speicherplatz wurde also zur Laufzeit des Applets allokiert, wodurch eine erhöhte Flexibilität bei der Handhabung und der Programmierung der SmartCards gezeigt ist.
Über den in Fig. 3 dargestellten Ablauf hinaus können jedoch zahlreiche weitere Abläufe sämtlich mit dem erfinderischen Speicherverwaltungskonzept realisiert werden.
Der Vorgang wird etwa nach der Eingabe des ersten Datensatzes z. B. für einen zweiten Personenstammdatensatz 18 in Fig. 2 wiederholt - was in Fig. 3 nicht mehr dargestellt ist. Danach wählt der Benutzer eine ihm zur Verfügung stehende Funktion aus, die die neu eingegebenen Daten auf dem Display der Host-Anwendung für eine Kontrolle sichtbar macht. Dabei stellt sich heraus, daß der Nachname falsch eingegeben worden ist, und die richtige Schreibweise zwei Buchstaben mehr erfordert. Der Benutzer möchte dieses also korrigieren und gibt den neuen Namen in korrekter Schreibweise ein. Die erneute Eingabe ruft wiederum das Speicherverwaltungsobjekt auf, was den Speicherplatz freigibt, der für den falsch geschriebenen Namen allokiert wurde, und schreibt den neu eingegebenen Namen zusammenhängend an eine andere Stelle im Speicher.
Gleichzeitig wird die freigegebene Stelle als freier Speicher markiert.
Nach einem beliebigen Zeitraum schließt sich nun ein drittes Unternehmen - ein Mietwagenunternehmen - dem Verbund der beiden ersten Unternehmen an. Die Karte des Kunden soll daher erneut mit erweiterter Funktionalität - und einem neuen, von diesem Unternehmen herausgegebenen Applet ausgestattet werden. Dabei soll durch das neu auf die Karte zu schreibende Applet auf die bereits auf der Karte vorhandenen Daten zurückgegriffen werden können, und es entstehen weitere Speicherplatzanforderungen zur Speicherung von weiteren, personenbezogenen Datensätzen.
In dieser Situation zeigt sich erneut der Vorteil des erfinderischen Speicherverwaltungsverfahrens, das es nun ermöglicht, daß das neue Applet mit seiner ID, wie oben beschrieben, in die Karte geladen wird, in dem zuständigen Applet-Verzeichnis des Datenobjekts 12 nach dem vorher bereits vorhanden Applet ID-Eintrag 21 als neuer Eintrag 22 aufgenommen wird, und das dann seinerseits aufgerufen werden kann. Zur Laufzeit des neuen Applets können die verlangten neuen, kundenindividuellen Personenstammdatensätze analog wie oben beschrieben eingegeben werden. Hierbei wird der Speicher wesentlich besser und effizienter ausgenutzt als bei SmartCards vom Stand der Technik, weil von Anfang an bekannt ist, in welchem Speicherbereich das Datenobjekt für Personenstammdaten liegt. Daß heißt, die Bitpositionen, die den Anfang beziehungsweise das Ende dieses Speicherbereiches markieren, können dem neu hinzugekommenen Applet bekanntgemacht werden. Das neu hinzugekommene Applet ruft wiederum das Speicherverwaltungsobjekt auf, um die bereits auf der Karte vorhandenen Datensätze lesen zu können, anzeigen zu können, sowie um neue Datensätze zu speichern.
Ein weiterer Vorteil des erfinderischen Verfahrens wird klar, wenn die Applet-Programmierung selbst betrachtet wird. Denn das zu programmierende Applet muß nur die Struktur eines Datensatzes kennen, nicht jedoch die Größe der Datenfelder der bereits benutzten Datensätze, um auf diese zugreifen zu können, und um weitere Datensätze derselben Struktur erzeugen zu können. Ein neuer Datensatz wird einfach als neues "Verzeichnis" mit den zugehörigen Datenfeldern als untergeordnete Struktur gespeichert. Daher wird die Applet-Programmierung einfacher.
Weiter kann der Gegenstand der vorliegenden Erfindung in Hardware, Software oder einer Kombination aus beiden realisiert werden. Eine beliebige Art von Computersystem oder Computergeräten ist dafür geeignet, das erfindungsgemäße Verfahren ganz oder in Teilen durchzuführen. Eine realisierbare Hardware-Software Kombination wäre ein normaler Computer mit einem Computerprogramm, das, wenn es geladen und ausgeführt wird, den Computer derart steuert, daß er das erfindungsgemäße Verfahren ganz oder in Teilen ausführt.
Ein solches Programm könnte auch hostseitig laufen und die Speicherverwaltung der SmartCard steuern. Die vorliegende Erfindung kann auch in ein Computerprogrammerzeugnis eingebettet sein, das sämtliche Merkmale enthält, die eine Implementierung der hierin beschriebenen Verfahren ermöglichen, und die, wenn sie in ein Computersystem geladen wird, dazu imstande ist, diese Verfahren auszuführen.
Computerprogrammeinrichtungen und Computerprogramme bedeuten im vorliegenden Kontext beliebige Ausdrücke in einer beliebigen Sprache oder Notation oder einem beliebigen Code eines Satzes von Anweisungen, die ein System mit einer Informationsverarbeitungsmöglichkeit dazu veranlassen sollen, von den folgenden Funktionen a) Umsetzung in eine andere Sprache oder Notation oder einen anderen Code, b) Reproduktion in eine unterschiedliche materielle Formeine bestimmte entweder direkt oder nacheinander oder beide durchzuführen.

Claims (10)

1. Verfahren zum Verwalten von Speicherplatz auf Computergeräten (8) mit begrenzter Unterstützung von Programmierkonzepten höherer Ebene in einem Datenobjekt (10, 12), gekennzeichnet durch den Schritt: Verwenden (150, 160) eines Speicherverwaltungsobjekts mit zugehörigen Speicherverwaltungsmethoden zur dynamischen Verwaltung von Speicherplatz zur Laufzeit eines Applets, wobei das Datenobjekt (10, 12) zur Aufnahme von Datensätzen (14, 16, 18, 21, 22) über mehr Speicherplatz verfügt, als zur Speicherung eines Datensatzes benötigt wird.
2. Verfahren nach Anspruch 1, wobei der Logikkreis, der das Speicherverwaltungsobjekt implementiert, auf dem Computergerät (8) residiert.
3. Verfahren nach dem vorstehenden Anspruch, bei dem eine Mehrzahl von Datensätzen (14, 16, 18, 21, 22) in verzeichnisförmiger Struktur innerhalb der Datenobjekte (10,12) verwaltet werden.
4. Verfahren nach Anspruch 2 oder 3, bei dem die Computergeräte objektorientierte SmartCards (8) sind.
5. Computergerät (8) mit begrenzter Unterstützung von Programmierkonzepten höherer Ebene, enthaltend Implementationen von Codeabschnitten, die dazu eingerichtet sind, zur Laufzeit eines auf dem Gerät (8) implementierten Programms ein Speicherverwaltungsobjekt mit zugehörigen Speicherverwaltungsmethoden zur dynamischen Verwaltung von Speicherplatz zu verwenden.
6. Gerät nach Anspruch 5, wobei der Logikkreis, der das Speicherverwaltungsobjekt implementiert, auf dem Computergerät (8) residiert.
7. Computergerät nach dem vorstehenden Anspruch, wobei das Gerät (8) eine objektorientierte SmartCard, insbesondere eine Java Card ist.
8. SmartCard nach dem vorhergehenden Anspruch, dadurch gekennzeichnet, daß der Speicherraum auf der SmartCard (8) wenigstens ein Datenobjekt (10, 12) aufweist, das zur Aufnahme von Datensätzen (14, 16, 18, 21, 22) in verzeichnisförmiger Struktur über mehr Speicherplatz verfügt als zur Speicherung eines Datensatzes benötigt wird.
9. System, enthaltend eine Computereinrichtung zum Betreiben eines Hostanwendungsprogramms, das dazu eingerichtet ist, mit einem auf einem Computergerät (8) nach einem der Ansprüche 5 bis 8 gespeicherten Programm zusammenzuwirken, sowie eine Schnittstelle für einen Austausch von Daten oder Befehlen zwischen Computergerät (8) und Hostanwendungsprogramm.
10. Computerprogramm, enthaltend Programmcodebereiche zur Durchführung oder Vorbereitung der Durchführung der Schritte des Verfahrens gemäß einem der Ansprüche 1 bis 4, wenn das Programm in einen Computer geladen wird.
DE1999145862 1999-09-24 1999-09-24 Dynamische Speicherverwaltung von Datenobjekten in Javacard Applets Withdrawn DE19945862A1 (de)

Priority Applications (1)

Application Number Priority Date Filing Date Title
DE1999145862 DE19945862A1 (de) 1999-09-24 1999-09-24 Dynamische Speicherverwaltung von Datenobjekten in Javacard Applets

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
DE1999145862 DE19945862A1 (de) 1999-09-24 1999-09-24 Dynamische Speicherverwaltung von Datenobjekten in Javacard Applets

Publications (1)

Publication Number Publication Date
DE19945862A1 true DE19945862A1 (de) 2001-04-05

Family

ID=7923208

Family Applications (1)

Application Number Title Priority Date Filing Date
DE1999145862 Withdrawn DE19945862A1 (de) 1999-09-24 1999-09-24 Dynamische Speicherverwaltung von Datenobjekten in Javacard Applets

Country Status (1)

Country Link
DE (1) DE19945862A1 (de)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105786623A (zh) * 2016-03-04 2016-07-20 东港股份有限公司 一种Java卡多通道临时对象管理方法

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN105786623A (zh) * 2016-03-04 2016-07-20 东港股份有限公司 一种Java卡多通道临时对象管理方法
CN105786623B (zh) * 2016-03-04 2019-03-05 东港股份有限公司 一种Java卡多通道临时对象管理方法

Similar Documents

Publication Publication Date Title
DE69835879T2 (de) Multifunktionschipkarte mit delegierungsmerkmal
DE69823649T2 (de) Multi-anwendungs ic-kartensystem
DE19681256C2 (de) Ausführung von Anwendungen am Platz vom Speicher
DE102005022893B3 (de) Verfahren zum Zugreifen auf Speicherbereiche einer Speicherkarte durch eine anfordernde Anwendung und Speicherkarte
DE19600081C2 (de) Sicherung der Datenintegrität bei Datenträgerkarten
EP0635792B1 (de) Verfahren zur Koordination von parallelen Zugriffen mehrerer Prozessoren auf Resourcenkonfigurationen
WO1995030959A1 (de) Datenverwaltungssystem
DE60008092T2 (de) Verfahren zur befehlverwaltung in mehreren anwendungsdatenbeständen und chipkarte zur durchführung des verfahrens
DE69932412T2 (de) Chipkartenkonfiguration
DE19621768A1 (de) Telefon mit Aufnahmevorrichtung für eine Telefonspeicherkarte und Verfahren zum Übertragen von Daten einer Telefonspeicherkarte
DE19840029C1 (de) Verfahren zum Linken von in einen Arbeitsspeicher eines Prozessors nachgeladenen Programmodulen auf einer Chipkarte
EP0935214B1 (de) Chipkarte mit integrierter Schaltung
DE19954532A1 (de) Verfahren und System zur Speicherung von JAVA-Objekten in Vorrichtungen mit einer verringerten Unterstützung von höheren Programmierkonzepten
EP1695207A2 (de) Java smart card chip mit für globale variablen reserviertem speicherbereich
DE69737608T2 (de) Verfahren zum laden eines anwendungsprogramms auf eine chipkarte
EP0230994B1 (de) Verfahren zur Steuerung des Programmablaufs bei der Formularbearbeitung in Datenverarbeitungsanlagen
DE19626339A1 (de) Sicheres Laden von Anwendungen und Daten auf Chipkarten
DE19945862A1 (de) Dynamische Speicherverwaltung von Datenobjekten in Javacard Applets
DE10320062A1 (de) Speicherverwaltung bei einem tragbaren Datenträger
DE2809341A1 (de) System zum kontrollieren der gueltigkeit einer durch eine maschine von einem beleg abgelesenen codegruppe
DE69834033T2 (de) Chipkarte mit zählvorrichtung
DE102004005290B3 (de) Verfahren und Vorrichtung zur Absicherung von Daten in einem nichtflüchtigen Datenspeicher
DE4102197A1 (de) Ein system und verfahren zur kontrolle einer gemeinsam verwendeten datenstation durch verwendung einer speicherkarte
EP1464011B1 (de) Verfahren zur steuerung des zugriffs auf eine speichereinrichtung und computerprogramm
DE102019216743A1 (de) Nichtblockierende Speicherzugriffe für einen Distributed Ledger

Legal Events

Date Code Title Description
OP8 Request for examination as to paragraph 44 patent law
8139 Disposal/non-payment of the annual fee