-
Die
vorliegende Erfindung betrifft eine Vorrichtung mit integriertem
Schaltkreis mit einem Speicher und wenigstens einem in dem genannten
Speicher integrierten Anwenderprogramm. Sie betrifft ebenfalls ein
Initialisierungsprogramm eines Anwenderprogramms einer derartigen
Vorrichtung.
-
Die
genannten Vorrichtungen sind insbesondere tragbare, Chipkarten genannte
Objekte mit den Bereich der Gesundheit, der Mobiltelefonie oder auch
den Bankenbereich betreffenden Anwenderprogrammen.
-
Die
genannten Chipkarten umfassen einen Kartenkörper, in dem ein auf klassische
Weise ein Steuerelement (zum Beispiel eine zentrale Verarbeitungseinheit
oder CPU) und eine Speicher enthaltendes elektronisches Modul integriert
ist. Der genannte Speicher umfasst wenigstens ein Einheitselemente enthaltendes
Anwenderprogramm, denen Werte zugeordnet werden, damit das Programm
ausgeführt werden
kann, wobei die genannten Elemente bei der Ausführung des genannten Anwenderprogramms nicht
abgeändert
werden. Diese Elemente werden konfigurierbare Variable genannt (siehe EP-A-0540095).
-
Zur
Konfiguration der genannten Variablen schlägt der Stand der Technik Vorrichtungen
vor, die Daten, die den Variablen bei einer so genannten Initialisierungsphase
zugeordnet werden, enthaltende Dateien vorsehen. Diese Initialisierungsphase
ist für den
reibungslosen Ablauf des Anwenderprogramms notwendig. Zu diesem
Zweck umfassen die genannten Vorrichtungen ein Steuermittel, das
die Änderung der
Werte der genannten Initialisierungsdaten in den genannten Dateien
und anschließend
die Zuordnung dieser Daten zu den genannten Variablen erlaubt. Wenn
diese Daten permanent im Speicher gespeichert werden, behalten sie
ihren Initialisierungswert selbst dann, wenn die Karte nicht mehr
mit Strom versorgt wird.
-
Obwohl
diese Vorrichtungen die Konfiguration eines Anwenderprogramms erlauben,
werden die Initialisierungswerte in zwei Speicherbereichen praktisch
identischer Größen dupliziert,
wobei einer die Dateien der Initialisierungsdaten enthält und der
andere der für
die Variablen zugeordnete Bereich ist, die mit den genannten Daten
initialisiert werden, was aufgrund der begrenzten Größe des Speichers
der Chipkarten störend
sein kann. Darüber
hinaus ist die Ausführungszeit
des genannte Anwenderprogramms insbesondere aufgrund der Notwendigkeit
deutlich erhöht,
die genannten Initialisierungsphase bei jeder Ausführung des
Programms durchzuführen,
selbst wenn die Initialisierungswerte sich nicht geändert haben,
denn die genannte Initialisierungsphase ist fester Bestandteil des
Anwenderprogramms. Schließlich gibt
es Fälle,
in denen entweder das Anwenderprogramm kein Privileg besitzt, um
auf die genannten Dateien zuzugreifen, oder die genannte Karte besitzt ganz
einfach keine Datei.
-
Daher
besteht ein von dem Gegenstand dieser Erfindung zu lösendes technisches
Problem darin, eine Vorrichtung mit integriertem Schaltkreis mit einem
Speicher und wenigstens einem in dem genannten Speicher integrierten
Anwenderprogramm sowie ein Initialisierungsverfahren eines Anwenderprogramms
einer derartigen Vorrichtung vorzuschlagen, die einerseits die Konfiguration
eines Anwenderprogramms erlauben, ohne Daten duplizieren zu müssen und
damit Verluste von Speicherplätzen
aufgrund der vorgenannten Dateien zu vermeiden und andererseits
die Erhöhung
der Ausführungszeit
des genannten Anwenderprogramms verhindern.
-
Eine
Lösung
zu dem gestellten technischen Problem ist gemäß einem ersten Gegenstand der vorliegenden
Erfindung dadurch gekennzeichnet, dass das genannte Anwenderprogramm
wenigstens eine konfigurierbare Variable und eine Liste wenigstens
eines Bezugselements umfasst und dass der genannte Speicher einerseits
wenigstens ein Initialisierungsmittel der genannten Variablen umfasst,
wobei das genannte Mittel durch mehrere Parameter parametriert wird,
von denen ein Parameter die genannte Bezugselementliste ist, und
andererseits eine den Versand von insbesondere den konfigurierbaren Variablen
zuzuordnenden Werten erlaubende Daten erlaubende Steuerung.
-
Gemäß einem
zweiten Gegenstand der vorliegenden Erfindung ist diese Lösung dadurch
gekennzeichnet, dass das Initialisierungsverfahren die Stufen umfasst,
die aus Folgendem bestehen:
- – Erstellung
wenigstens einer konfigurierbaren Variablen und einer Liste wenigstens
eines Bezugselements in dem genannten Anwenderprogramm,
- – Versand
der insbesondere den konfigurierbaren Variablen zuzuordnenden Werte
enthaltenden Daten,
- – Initialisierung
der genannten Variablen dank eines Initialisierungsmittels, wobei
das genannte Mittel durch mehrere Parameter parametriert wird, von
denen einer der Parameter die genannte Bezugselementliste ist.
-
Wie
wir später
im Einzelnen sehen werden, erlaubt die Vorrichtung der Erfindung
damit eine optimierte Verwaltung des Speichers der Karte und eine direkte
Konfiguration der Variablen eines Anwenderprogramms dank der Steuerung,
die die Abänderung der
den konfigurierbaren Variablen der Werte erlaubt, und ebenfalls
dank der als Parameter des Initialisierungsmittels eingegebenen
Bezugselementliste, die die Herstellung einer Verbindung zwischen
den von der genannten Steuerung versandten Werten und den Variablen
des zu konfigurierenden Anwenderprogramms erlaubt.
-
Die
nachfolgende Beschreibung im Hinblick auf die beigefügten, beispielhaften
und nicht einschränkenden
Zeichnungen vermittelt ein besseres Verständnis dafür, worin die Erfindung besteht
und wie sie realisiert werden kann.
-
1 ist
ein Schema einer Vorrichtung mit integriertem Schaltkreis, hier
eine Chipkarte.
-
2 ist
ein Schema eines Speichers der Karte der 1.
-
3 ist
ein Schema eines Anwenderprogramms der Karte der 1.
-
4 ist
ein Schema einer Steuerung der Karte der 1.
-
5 ist
ein Schema einer Elementenliste eines Anwenderprogramms des Speichers
der 2.
-
6 ist
ein anderes Schema des Speichers der Karte der 1.
-
7 ist
ein die im Anwenderprogramm der 3 enthaltenen
Variablen zeigendes Schema.
-
In 1 ist
eine Vorrichtung 10 mit integriertem Schaltkreis dargestellt,
hier eine Chipkarte.
-
Diese
Karte 10 enthält
ein Steuerelement 11 (zum Beispiel eine zentrale Verarbeitungseinheit oder
CPU), einen Speicher 12 und einen für einen elektrischen Anschluss
mit zum Beispiel einem Verbinder eines Kartenlesegeräts bestimmten
Kontaktblock 13.
-
Der
genannten Speicher 12 wird in 2 dargestellt.
Er umfasst ein Anwenderprogramm A. Das genannte Programm A umfasst
wenigstens eine konfigurierbare Variable V und eine Liste L mit
wenigstens einem Bezugselement R. Der genannte Speicher umfasst
einerseits wenigstens ein Initialisierungsmittel MI der genannten
Variablen V, wobei das genannte Mittel durch mehrere Parameter parametriert
wird, von denen ein Parameter die genannte Bezugselementliste L
ist, und andererseits eine den Versand der insbesondere den konfigurierbaren
Variablen zuzuordnenden Werte enthaltende Daten erlaubende Steuerung
CDE. Das Mittel MI ist eine Funktion oder ein Programmstück. In 3 umfasst das
Anwenderprogramm A drei konfigurierbare Variable V1, V2 und V3 und
eine drei Bezugselemente R1, R2 und R3 enthaltende Liste L.
-
Damit
das Programm korrekt abläuft,
müssen
seine Variablen konfiguriert werden, das heißt es müssen ihm Werte zugeordnet werden.
-
In
einer ersten Stufe wird die Steuerung CDE an die Karte 10 geschickt.
Sie umfasst Daten, wie zum Beispiel eine Anzahl von Bezugselementen
R, die Bezugselemente einer Liste indexierende Nummern, zugeordnete
Werte, usw.. In 4 sendet die Steuerung CDE die
drei folgenden alphanumerischen Werte ANWENDUNG GSM, TELEFONIEREN und
LAUFENDER ANRUF. Diesen Werten stehen die Indexe 1, 2 und 3 voran,
die drei Bezugselementen entsprechen.
-
Wenn
das Anwenderprogramm A die Steuerung CDE empfängt, wird es ausgeführt und
die auf das Mittel MI zurückgreifende
Initialisierungsphase beginnt.
-
In
einer zweiten Stufe wird eine Verbindung zwischen den von der Steuerung
CDE versandten Werten und den Bezugselementen einer spezifischen
Liste L hergestellt. Die das Initialisierungsmittel MI parametrierende
Bezugselementliste L erlaubt die Herstellung dieser Verbindung.
Die anderen Parameter sind unter anderem die von der genannten Steuerung
CDE versandten Daten. Die Liste L wird zum Beispiel durch Angabe
ihres Namens spezifiziert. In 5 wird L
CUSTOMELEMENT genannt. Sie enthält
drei Bezugselemente MENÜ,
TEXT und NACHRICHT (MESSAGE), denen die jeweiligen alphanumerischen
Werte ANWENDUNG GSM, TELEFONIEREN und LAUFENDER ANRUF zugeordnet sind.
Diese Werte stammen von der Steuerung CDE.
-
In
einer dritten Stufe stellt das Initialisierungsmittel MI dank der
Bezugselemente R eine Verbindung zwischen den genannten Werten der
genannten Liste L und den zu konfigurierenden Variablen V her. Zu
diesem Zweck bezieht sich ein Bezugselement R auf eine konfigurierbare
Variable V. In 3 beziehen sich jeweils R1,
R2 und R3 auf die Variablen V1, V2 und V3, wobei letztere Variable sind,
deren Inhalt vollständig
oder teilweise initialisiert werden soll. Dank dieser unterschiedlichen
Verbindungen erfolgt die Übertragung
der Werte zu den genannten Variablen.
-
Nach
erfolgter Übertragung
ist die Konfiguration des Anwenderprogramms A abgeschlossen, und das
Programm kann wie gewünscht
weiter ablaufen. Die erfindungsgemäße Vorrichtung umfasst keinerlei Datei,
daher war die Konfiguration der Variablen direkt.
-
Es
ist anzumerken, dass die Erfindung ebenfalls vorsieht, dass die
genannte Steuerung CDE das Auslesen des Inhalts der konfigurierbaren
Variablen erlaubt, und zwar dank des Vorhandenseins eines MODUS
genannten Parameters der genannten Steuerung, der anzeigt, ob die
Steuerung die Daten versenden oder auslesen soll. Das erlaubt das
jederzeitige Auslesen der Werte der Variablen V und infolgedessen
die jederzeitige Kenntnis der Konfiguration des Anwenderprogramms
A.
-
Um
Speicherplatz zu gewinnen und die Initialisierungen zu homogenisieren,
kann es interessant sein, einem oder mehreren Anwenderprogrammen die
Nutzung desselben Initialisierungsspeichers MI zu ermöglichen.
Damit ist wenigstens ein Initialisierungsmittel MI in dem genannten
Speicher unabhängig
von einem Anwenderprogramm A integriert. Das bedeutet, dass das
genannte Mittel MI von allen in der Karte 10 integrierten
Anwenderprogrammen genutzt werden kann und keinem Programm A speziell zugeordnet
ist. Wie 6 zeigt, ist das Mittel MI unabhängig von
den Anwenderprogrammen A1 und A2 und kann daher von dem einen oder
dem anderem dieser Programme genutzt werden.
-
Dennoch
kann es ebenfalls sinnvoll sein, das Initialisierungsmittel für ein bestimmtes
Anwenderprogramm durch Vorsehen eines von MI unterschiedlichen Mittels
MI1 zu personalisieren, zum Beispiel in dem Fall, in dem man ein
Datenübertragungsprotokoll
haben möchte,
das von dem von MI1 unterschiedlich ist, das heißt, ein unterschiedliches Dateninitialisierungsformat.
Wie in 6 gezeigt, umfasst wenigstens ein Anwenderprogramm
A2 ein Initialisierungsmittel MI2. Zum Konfigurieren der Variablen
von A2 besteht die Wahl zwischen der Nutzung der Mittel MI1 oder
MI2, wenn die genannten Variablen das jeweilige Datenformat der
genannten Mittel respektieren.
-
Es
ist anzumerken, dass nur ein Mittel MI unabhängig von einem Anwenderprogramm
vorgesehen werden kann, wobei jedes Initialisierungsmittel MI in
diesem Fall einem Anwenderprogramm zugeordnet ist oder im Gegenteil
nur unabhängige
Mittel hat.
-
Die
vorliegende Erfindung findet insbesondere auf Anwenderprogramme
Anwendung, die in Sprachen hohen Niveaus programmiert sind, wie zum
Beispiel insbesondere eine JAVA genannte Sprache (angemeldete Marke).
Diese Sprache verarbeitet die dem Fachmann wohlbekannten Begriffe Klasse,
Vererbung, Attribut und Methode.
-
In
dem Fall, in dem das Anwenderprogramm A unter JAVA programmiert
ist, sind die konfigurierbaren Variablen Objekte und eine Bezugselementliste
bezieht sich auf eine Objektstruktur. In 7 umfasst
der Speicher 12 ein Anwenderprogramm A. Das genannte Anwenderprogramm
A umfasst wenigstens zwei konfigurierbare, in ein und derselben
Liste aufgenommene Variable V1 und V3, die von ein und derselben
Mutterklasse C0 abgeleitet sind. Darüber hinaus umfasst das genannte
Anwenderprogramm A wenigstens zwei konfigurierbare, in ein und derselben
Liste aufgenommene Variable V1 und V2, die Instanzen ein und derselben
Klasse C1 sind. Die unterschiedlichen Klassen werden entweder in
dem Anwenderprogramm A definiert oder auf unabhängige Weise, zum Beispiel in
einer Bibliothek. Die genannten konfigurierbaren Variablen sind
in dem genannten Speicher 12 dauerhaft integriert.
-
Es
ist zu sehen, dass die genannte Liste L Objekte darstellt, die entweder
gemeinsame Punkte haben, wobei die Variablen oder Objekte V1 und
V3 das Attribut At1 und Methoden M1 und M2 der Klasse CO erben,
aber ihre eigenen Attribute und Methoden haben, oder alle ihre Punkte
gemeinsam haben, wobei V1 und V12 Instanzen der Klasse C1 sind,
die das Attribut At2 und die Methode M3 besitzt. Zum Konfigurieren
der genannten Objekte muss eine Liste L von demselben Typ sein wie
eine Mutterklasse oder die Klasse der genannten Objekte. Damit erlaubt
ein einfaches Mittel MI1 die Konfiguration eines Teils des Inhaltes
der Objekte V1, V2 und V3, nämlich
des Attributs At1. Man kann ebenfalls ein anderes, komplexeres,
die Konfiguration aller Attribute At1 und At2 der Variablen V1 und
V2 erlaubendes Mittel MI2 vorsehen.
-
Dank
der Definition des Typs der genannten Liste L erlaubt die vorliegende
Erfindung die Abänderung
der Werte der effektiv spezifizierten Objektattribute und damit
der Verhinderung der versehentlichen Änderung des Inhaltes anderer
Objekte. Darüber
hinaus gibt es dank der vorliegenden Erfindung keinen direkten Zugang
zum alle Variablen des Anwenderprogramms A enthaltenden Speicherplatz
und es besteht anschließend
nicht die Gefahr der betrügerischen
Abänderung
aller dieser Variablen.
-
Ein
weiterer Vorteil der vorliegenden Erfindung ist, dass die genannten
Variablen oder Objekte im Speicher dauerhaft integriert sind. Das
bedeutet, dass die genannten Objekte nach dem Konfigurieren selbst
nach der Ausführung
des Programms ihre Initialisierungswerte beibehalten, wenn sie nicht
während
der Ausführung
des Anwenderprogramms A abgeändert
werden. Wenn man diese Werte nicht vor einer anderen Ausführung A
abändern
möchte,
ist es für
einen Anwender sinnlos, die Steuerung CDE zum erneuten Konfigurieren
des Anwenderprogramms A zu versenden. Anschließend entledigt man sich der Initialisierungsphase,
und keinerlei Initialisierungsmittel MI wird ausgelöst. Infolgedessen
wird die Ausführungszeit
verkürzt.
-
Wie
wir soeben gesehen haben, ist die Sprache JAVA in mehr als nur einer
Hinsicht interessant, doch eines ihrer Merkmale, das ebenfalls ihre
Stärke ausmacht,
ist, dass sie Sicherungsmittel besitzt, wozu ein Mittel gehört, das überprüft, dass
jede Anweisung eines Anwenderprogramms A sowie die Parameter dieser
Anweisung gültig
sind. Wenn zum Beispiel eine Anweisung eine sich an einer bestimmten
Adresse des Speichers 12 als Parameter befindende Bitetabelle
benötigt,
während
stattdessen eine verbotene Speicheradresse angegeben wird, erlaubt das
genannte Sicherungsmittel die Feststellung dieses Fehlers und damit
die Verhinderung des Zugangs zu einem verbotenen Speicherplatz.
Um diese Überprüfungs-Sicherungsmittel
auszunutzen, sieht die Erfindung vor, dass jedes Initialisierungsmittel
MI in derselben Sprache wie das genannte Anwenderprogramm A definiert
wird, das heißt
in JAVA. Wenn ein Parameter des genannten Mittels MI falsch ist,
wird das Programm somit nicht ausgeführt, und ein Betrüger kann
nicht auf die verbotenen Speicherplätze zugreifen.