-
Die Erfindung betrifft ein Verfahren und ein System zur Optimierung eines Programms eines tragbaren Datenträgers.
-
Tragbare Datenträger werden in vielen Bereichen eingesetzt, beispielsweise als Ausweisdokumente, zum Nachweis einer Zugangsberechtigung zu einem Mobilfunknetz oder zur Durchführung von Transaktionen des bargeldlosen Zahlungsverkehrs. Der Einsatz erfolgt dabei häufig im Zusammenspiel mit einem für die jeweilige Anwendung vorgesehenen Endgerät. Außer bei sehr einfach gelagerten Anwendungen ist es in der Regel erforderlich, daß der tragbare Datenträger über ein Programm zur Ausführung oder Unterstützung der Ausführung der Anwendung verfügt. Außerdem sind viele tragbare Datenträger mit einem Betriebssystem ausgestattet. Die Programme einschließlich des Programms, welches das Betriebssystem darstellt, sind in einem integrierten Schaltkreis des tragbaren Datenträgers gespeichert und werden von diesem ausgeführt. Angesichts des engen Kostenrahmens und auch aus Platzgründen werden tragbare Datenträger meist mit integrierten Schaltkreisen ausgestattet, die über sehr begrenzte Ressourcen im Hinblick auf die Rechenleistung und den Speicherplatz verfügen. Es besteht daher das Bedürfnis, diese begrenzten Ressourcen möglichst optimal zu nutzen. Das bedeutet, daß die eingesetzten Programme im Hinblick auf eine effiziente Nutzung der Rechenleistung und des verfügbaren Speicherplatzes zu optimieren ist. Dies ist insbesondere dann ein schwieriges Problem, wenn auf dem tragbaren Datenträger mehrere Anwendungen implementiert sind.
-
Es sind bereits diverse Vorgehensweisen zum Optimieren von Programmen bekannt, die sich jeweils allerdings nicht auf die Optimierung von Programmen bei tragbaren Datenträgern beziehen. So offenbart die
DE 199 63 832 A1 ein Verfahren zur Profilierung von Programmen auf virtuellen Maschinen. Gemäß diesem Verfahren wird ein Programm, das einer virtuellen Maschine zugeführt wird, compiliert, um ein Zielprogramm zu erzeugen, das direkt beispielsweise auf einer standardisierten Hardware-Plattform laufen kann. Anschließend wird das Zielprogramm zum Erzeugen von Ausführungsstatistiken, die in einem Sprungspeicher gespeichert werden, ausgeführt. Danach erfolgt ein erneutes Compilieren des Zielprogramms unter Verwendung der im Sprungspeicher gespeicherten Ausführungsstatistiken als Compilierungsunterstützung.
-
Aus der
DE 100 39 538 A1 sind eine Vorrichtung und eine Methode zum Analysieren der Leistung eines Computerprogramms bekannt. Die Vorrichtung weist einen Prozessor und einen Speicher auf, der mit dem Prozessor gekoppelt ist. Im Speicher sind ein Computerprogramm mit vielen Codesegmenten und ein Leistungsanalysator gespeichert. Während das Computerprogramm gemäß vorgegebenen Bedingungen abläuft, werden vom Leistungsanalysator Informationen für jedes Codesegment protokolliert, mit deren Hilfe eine graphische Darstellung des ausgeführten Computerprogramms erstellt wird. Ein Benutzer kann dann Abfragen formulieren, um jeden gewünschten Leistungsparameter für das Computerprogramm zu analysieren, wobei der Ablauf des Computerprogramms entsprechend der Abfrage wiederholt wird.
-
Die
DE 101 24 414 A1 bezieht sich auf die Optimierung der Bedienoberfläche neuer Programme. Um die Programme über einen langen Zeitraum hinweg unter realen Einsatzbedingungen auf ihre Anwender-, insbesondere Bedienungsfreundlichkeit zu untersuchen, werden bei einer, vorzugsweise jeder Eingabe von dem durch das zu optimierende Programm gesteuerten Computer selbsttätig Informationen zu der jüngsten Bedienungshandlung listen- förmig in einen Protokollspeicher eingetragen. Durch eine Auswertung des Protokollspeichers kann der Programmhersteller Schwachstellen oder Probleme der Bedienoberfläche ermitteln.
-
Die Bedienungshandlungen des Benutzers eines tragbaren Datenträgers sind in den meisten Fällen allerdings nicht sehr umfangreich, so daß eine Optimierung der Bedienoberfläche in der Regel nicht erforderlich ist. Hinzu kommt noch, daß tragbare Datenträger häufig in Zusammenwirkung mit Endgeräten eingesetzt werden, über die dann auch die Bedienung abgewickelt wird.
-
DE 100 40 974 A1 beschreibt ein Verfahren zur Optimierung der Speichernutzung in einem tragbaren Datenträger, das einen Stack mit theoretisch unbegrenzter Größe bereitstellt. Erreicht wird dies, indem tiefliegende Teile des Stacks, die aktuell für die Ausführung eines Programms nicht benötigt werden, vorübergehend in einen langsameren Speicher ausgelagert werden. Der auszulagernde Teil des Stacks wird durch einen Stackpointer bezeichnet, der so gewählt ist, dass eine optimale Balancierung des Kartensystems erreicht wird.
-
DE 10216 602 A1 offenbart ein Verfahren zur Optimierung der Nutzung des Speichers eines tragbaren Datenträgers, indem in einem compilergenerierten Programmcode wiederkehrende Codefragmente durch in einer Bibliothek abgelegte Codefragmente ersetzt werden.
-
Aus der
US 2004/0019744 A1 ist ein Verfahren zum Umgang mit dem bei der Ausführung von komplexen Programmen wesentlichen Problem des „Stack Overflow” bekannt. Das Verfahren beruht auf der Einfügung besonderer Kommandos beim Kompilieren eines Programmes. Die besonderen Kommandos können mit einer Statistiksammelfunktion versehen sein, die statistische Daten zu vermiedenen „Stack Overflows” sammelt.
-
US 2003/0105924 A1 beschreibt ein System zum Speichern von Informationen über die Verwendung einer Speicherkarte auf der Speicherkarte, um einem Benutzer Hinweise darüber zu geben, wie er die Speicherkarte effektiver nutzen kann.
-
US 6363468 B1 beschreibt ein Verfahren zur Speicherverwaltung für Datenverarbeitungssysteme, wobei besonders auf computerisierte Alltagsgeräte wie Faxgeräte oder Anrufbeantworter abgestellt wird. Der Speicher wird verfahrensgemäß insbesondere in einen Haupt- und einen Nebenspeicher unterteilt.
-
US 6665819 B1 beschreibt ein Verfahren zum Debuggen eines eingebetteten Systems, das mit einem Systemrechner verbunden ist. Auf dem eingebetteten System werden Daten zum Debuggen gesammelt.
-
Der Erfindung liegt die Aufgabe zugrunde, ein Programm eines tragbaren Datenträgers so zu optimieren, daß die vom tragbaren Datenträger für das Programm zur Verfügung gestellten Ressourcen möglichst optimal genutzt werden.
-
Diese Aufgabe wird durch ein Verfahren mit der Merkmalskombination des Anspruchs 1 gelöst. Die Aufgabe wird weiter gelöst durch ein System mit der Merkmalskombination des Anspruchs 8.
-
Das erfindungsgemäße Verfahren bezieht sich auf die Optimierung eines in einem tragbaren Datenträger implementierten Programms im Hinblick auf eine effiziente Nutzung der von einem integrierten Schaltkreis des tragbaren Datenträgers zur Verfügung gestellten Ressourcen. Die Besonderheit des erfindungsgemäßen Verfahrens besteht darin, daß der tragbare Datenträger an einen Benutzer herausgegeben wird und beim bestimmungsgemäßen Einsatz des tragbaren Datenträgers durch den Benutzer vom tragbaren Datenträger mit Hilfe wenigstens eines Diagnoseelements statistische Daten bezüglich wenigstens eines Elements des Programms, das für die Optimierung in Frage kommen könnte, erfaßt werden.
-
Die Erfindung hat den Vorteil, daß mit einem relativ geringen Aufwand große Mengen statistischer Daten ermittelt werden können, die für eine Optimierung des im tragbaren Datenträger implementierten Programms benötigt werden. Dabei ist es besonders vorteilhaft, daß die statistischen Daten unter realen Bedingungen ermittelt werden und somit eine Optimierung des Programms im Hinblick auf die Verhältnisse ermöglichen, unter denen der tragbare Datenträger tatsächlich eingesetzt wird.
-
Das Diagnoseelement wird vorzugsweise als ein Bestandteil des Programmelements implementiert, für das es die statistischen Daten erfaßt. Dadurch können der Zusatzaufwand und der zusätzlich für das Diagnoseelement benötigte Speicherplatz gering gehalten werden. Die statistischen Daten können jeweils in einem Statistikdatenelement gespeichert werden, das in einem Speicher des tragbaren Datenträgers eingerichtet und dem Diagnoseelement zugeordnet ist. Dies ermöglicht eine einfache Zuordnung der statistischen Daten zu den einzelnen Programmelementen. Um den für das Statistikdatenelement benötigten Speicherplatz möglichst gering zu halten, kann der bisherige Inhalt des Statistikdatenelements beim Einschreiben der statistischen Daten jeweils überschrieben werden.
-
Mit den statistischen Daten wird die Nutzungshäufigkeit der Programmelemente erfaßt. Ferner wird mit den statistischen Daten der für die Ausführung des Programmelements jeweils benötigte minimale und/oder maximale Speicherplatz erfasst. Diese Informationen sind im Hinblick auf eine Optimierung des Programms jeweils von besonders hoher Relevanz.
-
Die statistischen Daten können unter vorgegebenen Bedingungen zur Weiterverarbeitung weitergegeben werden. Insbesondere können die statistischen Daten vom tragbaren Datenträger an ein Endgerät übermittelt werden, das für die Weitergabe der statistischen Daten ausgebildet ist. Die weitergegebenen statistischen Daten werden zur Optimierung des im tragbaren Datenträger implementierten Programms ausgewertet. Durch diese Vorgehensweise entfällt die Notwendigkeit, die ausgegebenen tragbaren Datenträger zur Auswertung der statistischen Daten nach einer gewissen Zeit wieder einzusammeln.
-
Auf Basis der Auswertung werden häufig benutzte Programmelemente im Hinblick auf ihre Ausführungsgeschwindigkeit optimiert. Bei selten benutzten Programmelementen ist vorgesehen, dass diese im Hinblick auf den für ihre Ausführung benötigten Speicherplatz optimiert werden. Insbesondere können auf Basis der Auswertung Instruktionen, auf denen die Programmelemente basieren und/oder Daten, die von den Programmelementen gehandhabt werden, optimiert werden.
-
Das erfindungsgemäße System weist einen zur Benutzung in dem System ausgebildeten tragbaren Datenträger, ein Endgerät und einen Computer auf.
-
Im tragbaren Datenträger ist ein Programm implementiert, das im Hinblick auf eine effiziente Nutzung der von einem integrierten Schaltkreis des tragbaren Datenträgers zur Verfügung gestellten Ressourcen zu optimieren ist. Der tragbare Datenträger steht wenigstens zeitweise mit dem Endgerät in Datenverbindung. Das Endgerät ist über ein Netzwerk wenigstens zeitweise mit dem Computer verbunden. Der in dem erfindungsgemäßen System eingesetzte tragbare Datenträger weist einen integrierten Schaltkreis auf, in dem ein Programm implementiert ist, das im Hinblick auf eine effiziente Nutzung der vom integrierten Schaltkreis zur Verfügung gestellten Ressourcen zu optimieren ist. Die Besonderheit des im Hinblick auf die Erfindung ausgebildeten tragbaren Datenträgers besteht darin, daß im integrierten Schaltkreis wenigstens ein Diagnoseelement implementiert ist. Das Diagnoseelement dient einer beim bestimmungsgemäßen Einsatz des tragbaren Datenträgers durch einen Benutzer durchführbaren Erfassung statistischer Daten bezüglich wenigstens eines Elements des Programms, das für die Optimierung in Frage kommen könnte. Mit den statistischen Daten wird die Nutzungshäufigkeit und/oder der Speicherbedarf des Programmelements erfasst und diese werden zur Optimierung des Programms derart ausgewertet, dass häufig benutzte Programmelemente im Hinblick auf ihre Ausführungsgeschwindigkeit und selten benutzte Programmelemente im Hinblick auf den benötigten Speicherplatz optimiert werden. Der tragbarer Datenträger ist vorzugsweise als eine Chipkarte ausgebildet.
-
Die Erfindung wird nachstehend anhand der in den Zeichnungen dargestellten Ausführungsbeispiele erläutert, bei denen der tragbare Datenträger als eine Chipkarte ausgebildet ist.
-
Es zeigen:
-
1 eine schematische Darstellung eines Ausführungsbeispiels des erfindungsgemäßen Systems,
-
2 ein stark vereinfachtes Blockschaltbild für die Architektur eines Ausführungsbeispiels des integrierten Schaltkreises der Chipkarte,
-
3 ein Flußdiagramm für eine Variante der erfindungsgemäßen Vorgehensweise zur Optimierung eines Programms der Chipkarte und
-
4 ein Flußdiagramm für eine mögliche Vorgehensweise bei der Ermittlung der statistischen Daten mittels der Chipkarte.
-
1 zeigt eine schematische Darstellung eines Ausführungsbeispiels des erfindungsgemäßen Systems. Das System weist unter anderem eine Chipkarte 1 und ein Endgerät 2 auf. Die Chipkarte 1 verfügt über einen integrierten Schaltkreis 3, der insbesondere als ein Mikroprozessor ausgebildet ist. Im integrierten Schaltkreis 3 ist wenigstens ein Programm implementiert, das gemäß der Erfindung zu optimieren ist. Das Endgerät 2 weist eine Elektronik 4 auf, die beispielsweise aus einem Mikroprozessor und weiteren elektronischen Bauteilen besteht. Weiterhin verfügt das Endgerät 2 über eine Tastatur 5 zur Eingabe von Daten und einen Bildschirm 6 zur Darstellung von Daten. Die Tastatur 5 und der Bildschirm 6 sind jeweils mit der Elektronik 4 verbunden. Außerdem besteht zu dem in 1 dargestellten Zeitpunkt eine Verbindung zwischen der Chipkarte 1 und dem Endgerät 2, über die der Chipkarte 1 beispielsweise eine Betriebsspannung und ein Taktsignal zugeführt werden und eine Datenübertragung zwischen der Chipkarte 1 und dem Endgerät 2 durchgeführt wird. Als eine weitere Systemkomponente ist in 1 ein Systemcomputer 7 dargestellt, der einem Systembetreiber zugeordnet ist. Der Systemcomputer 7 ist über ein erstes Netzwerk 8 mit dem Endgerät 2 verbunden. Schließlich ist noch ein Entwicklungscomputer 9 eines Programmentwicklers vorgesehen, der über ein zweites Netzwerk 10 mit dem Systemcomputer 7 verbunden ist.
-
Die in 1 dargestellten Komponenten werden nicht alle zwingend für das erfindungsgemäße System benötigt. Beispielsweise kann eines der beiden Netzwerke 8 oder 10 entfallen und die Daten über das verbleibende Netzwerk 8 bzw. 10 oder auf sonstige Weise übermittelt werden. Ebenso besteht die Möglichkeit, daß der Systembetreiber und der Programmentwickler identisch sind und somit der Entwicklungscomputer 9 und folglich auch das zweite Netzwerk 10 entfallen können.
-
Im Rahmen der Erfindung ist es vorgesehen, daß wenigstens ein Programm der Chipkarte 1 vom Programmentwickler optimiert wird. Für diese Optimierung werden Daten herangezogen, die im Rahmen des Feldeinsatzes der Chipkarte 1 ermittelt werden. Dies wird im Einzelnen anhand der 2, 3 und 4 erläutert.
-
2 zeigt ein stark vereinfachtes Blockschaltbild für die Architektur eines Ausführungsbeispiels des integrierten Schaltkreises 3 der Chipkarte 1. Der integrierte Schaltkreis 3 weist eine Steuereinheit 11 und einen damit verbundenen Speicher 12 auf. Bei dem in 2 dargestellten Speicher 12 handelt es sich um einem nichtflüchtigen Schreib-/Lesespeicher. Weiterhin weist der integrierte Schaltkreis 3 einen nur lesbaren Permanentspeicher und einen flüchtigen Schreib-/Lesespeicher auf, die in 2 nicht eigens kenntlich gemacht sind. Der Speicher 12 ist logisch in einen Codebereich 13 und einen Datenbereich 14 unterteilt. Im Codebereich 13 des Speichers 12 sind diverse Programme zum Betrieb der Chipkarte 1 und zur Ausführung von Anwendungen abgelegt. Von diesen Programmen sind in 2 einige Programmelemente 15 dargestellt, die im Rahmen der Erfindung optimiert werden sollen. Die Programmelemente 15 können auch aus einem unveränderlichen ausführbaren Code und einem zugehörigen Parametrisierungsdatensatz, der bestimmte Verhaltensweisen des Programmelementes festlegt, aufgebaut sein. In diesem Fall kann sich der ausführbare Code der Programmelemente 15 in dem nicht gezeigten, nur lesbaren Permanentspeicher befinden, während nur der Parametrisierungsdatensatz in dem nichtflüchtigen Schreib-/Lesespeicher 12 liegt.
-
Die Programmelemente 15 weisen jeweils ein Diagnoseelement 16 auf, welches statistische Daten bezüglich des jeweiligen Programmelements 15 erfaßt. Die Diagnoseelemente 16 können, wie die Programmelemente 15, auch aus einem ausführbaren Code und einem Parametrisierungsdatensatz aufgebaut sein, wobei der ausführbare Code im Permanentspeicher liegt, der Parametrisierungsdatensatz im nichtflüchtigen Schreib-/Lesesepeicher 12.
-
Bei den statistischen Daten handelt es sich um die Häufigkeit der Ausführung des jeweiligen Programmelements 15 und den im Rahmen der Ausführung jeweils benötigen Speicherplatz. Im Datenbereich 14 des Speichers 12 sind Statistikdatenelemente 17 vorgesehen, wobei je ein Statistikdatenelement 17 je einem Diagnoseelement 16 zugeordnet ist. Die Statistikdatenelemente 17 dienen der Speicherung der mit den Diagnoseelementen 16 ermittelten statistischen Daten. Beispielsweise kann jeweils ein Wert für die Gesamtzahl der Aufrufe des Programmelements 15, für welches das zugehörige Diagnoseelement 16 eingerichtet wurde, gespeichert werden. Dieser Wert wird bei jedem Aufruf des Programmelements 15 aktualisiert. Eine andere Anwendung kann darin bestehen, Bereichsangaben für den minimalen und maximalen Speicherplatzbedarf zu speichern, der jeweils für die Ausführung des Programmelements 15 benötigt wird. Hierzu wird bei jeder Ausführung des Programmelements 15 der tatsächlich benötigte Speicherplatz vom Diagnoseelement 16 ermittelt. Entsprechend den gefundenen Größenwerten werden die im Statistikdatenelement 17 gespeicherten Bereichsangaben gegebenenfalls angepaßt. Beispielsweise kann ein Programmelement 15 die Größe des beim Einschalten einer Chipkarte 1 zu reservierenden Pufferspeichers enthalten; das Programmelement 15 mitsamt zugehörigem Diagnoseelement 16 kann dabei im nur lesbaren Permanentspeicher angelegt sein. Das Diagnoseelement 16 enthält eine Statistikroutine, die die Menge des maximal tatsächlich benutzten Pufferspeichers erfaßt und in einem nichtflüchtigen Schreib-/Lesespeicher 12 eingerichteten Statistikdatenelement 17 ablegt. Überschreitet der Wert des maximal benutzten Pufferspeichers den in Programmelement 15 reservierten Startwert niemals, kann, unter der Voraussetzung, daß ein eventuell zu klein gewählter Puffer nicht zu einem generellen Nichtfunktionieren einer Chipkarte 1 führt, sondern nur z. B. zu einer langsameren Programmausführung, die Größe des Pufferspeichers im Programmelement 15 für neu ausgegebene Karten niedriger festgesetzt werden. Der dadurch gesparte Platz kann genutzt werden, um andere Programmteile schneller oder effizienter auszuführen oder dem Benutzer bei Anwendung der Chipkarte 1 mehr Speicherplatz zur Verfügung zu stellen.
-
Indem der Inhalt der Statistikdatenelemente 17 fortwährend mit aktuellen Angaben überschrieben wird, ist es ausreichend, für jedes Statistikdatenelemente 17 nur so viel Speicherplatz zu reservieren, daß genau ein Wert bzw. eine Bereichsangabe des zugehörigen Diagnoseelements 16 gespeichert werden kann. Die Vorgehensweise bei der Erzeugung und Auswertung der statistischen Daten wird im Folgenden näher erläutert.
-
3 zeigt ein Flußdiagramm für eine Variante der erfindungsgemäßen Vorgehensweise zur Optimierung eines Programms der Chipkarte 1. Der Durchlauf des Flußdiagramms beginnt mit einem Schritt S1, bei dem in die Programmelemente 15, die bei der Optimierung berücksichtigt werden sollen, je ein Diagnoseelement 16 eingebaut wird und für jedes Diagnoseelement 16 im Speicher 12 des integrierten Schaltkreises 3 ein zugehöriges Statistikdatenelement 17 angelegt wird. Die so behandelte Chipkarte 1 ist entsprechend ihrer Bestimmung voll funktionsfähig und verfügt über eine für den Benutzer nicht sichtbare Zusatzfunktion zur Ermittlung statistischer Daten. Auf diese Weise werden mehrere Chipkarten 1 präpariert. Diese Chipkarten 1 werden in einem Schritt S2, der sich an Schritt S1 anschließt, an Benutzer herausgegeben.
-
In einem darauf folgenden Schritt S3 setzen die Benutzer die Chipkarten 1 jeweils gemäß ihrer vorgegebenen Bestimmung ein, z. B. zum Durchführen von Transaktionen oder als Sicherheitsmodul in einem Mobilfunktelefon usw. Im Rahmen dieses Einsatzes werden statistische Daten ermittelt und an den Systemcomputer 7 weitergeleitet. Näheres hierzu wird anhand von 4 ausgeführt. An Schritt S3 schließt sich ein Schritt S4 an, bei dem der Systemcomputer 7 die empfangenen Daten sammelt, indem er sie beispielsweise in geeigneter Weise abspeichert. Danach prüft der Systemcomputer 7 in einem Schritt S5, ob bereits genügend statistische Daten für die Weiterverarbeitung vorliegen. Trifft dies zu, so schließt sich an Schritt S5 ein Schritt S6 an. Andernfalls wird mit Schritt S3 fortgefahren. In Schritt S6 übermittelt der Systemcomputer 7 die statistischen Daten über das zweite Netzwerk 10 an den Entwicklungscomputer 9 des Programmentwicklers. Auf Schritt S6 folgt ein Schritt S7, bei dem der Programmentwickler die statistischen Daten auswertet.
-
Im Rahmen der Auswertung der statistischen Daten wird ermittelt, welche Programmelemente 15 besonders häufig und welche eher selten ausgeführt werden. Insbesondere bei den häufig ausgeführten Programmelementen 15 wird geprüft, ob das Laufzeitverhalten akzeptabel ist. Um eine möglichst kurze Programmausführungszeit zu erreichen, sind insbesondere die häufig ausgeführten Programmelemente 15 im Hinblick auf eine möglichst kurze Laufzeit zu optimieren, da sich bei diesen jede Verbesserung im Gesamtergebnis vielfach multipliziert. Dabei kann für die Laufzeitreduzierung auch ein erhöhter Bedarf an Speicherplatz in Kauf genommen werden. Bei den weniger häufig ausgeführten Programmelementen 15 kommt dem Laufzeitverhalten dagegen keine so große Bedeutung zu. Bei diesen Programmelementen 15 liegt das Augenmerk eher auf der Größe des bei der Ausführung jeweils verwendeten Speicherplatzes. Hier wird der Speicherplatzbedarf erforderlichenfalls auf Kosten einer höheren Laufzeit optimiert. Insgesamt wird somit jeweils geprüft, ob die Laufzeit und der benötigte Speicherplatz, die für die Ausführung der einzelnen Programmelemente 15 jeweils benötigt werden, bei Berücksichtigung der jeweiligen Ausführungshäufigkeit eine effiziente Nutzung der vom integrierten Schaltkreis 3 zur Verfügung gestellten Ressourcen ermöglichen.
-
Auf Schritt S7 folgt ein Schritt S8, bei dem geprüft wird, ob das Programm bereits ausreichend optimiert ist, d. h. es wird entschieden, ob die Auswertung der statistischen Daten in Schritt S7 bereits auf eine ausreichende Optimierung des Programms hindeutet. Wird in Schritt S8 festgestellt, daß das Programm bereits ausreichend optimiert ist, so ist der Durchlauf des Flußdiagramms beendet. Andernfalls schließt sich an Schritt S8 ein Schritt S9 an, bei dem der Programmentwickler auf Basis der in Schritt S7 gewonnenen Erkenntnisse eine Optimierung des Programms durchführt. Von der Optimierung können alle oder nur einige Programmelemente 15 betroffen sein, wobei sich die Optimierung jeweils auf die im Programmelement 15 enthaltenen Instruktionen oder auf die vom Programmelement 15 gehandhabten Daten beziehen kann. Nach der Optimierung in Schritt S9 wird das Flußdiagramm beginnend mit Schritt S1 erneut durchlaufen. Dies wird solange wiederholt, bis ein gewünschter Optimierungsgrad erreicht ist.
-
4 zeigt ein Flußdiagramm für eine mögliche Vorgehensweise bei der Ermittlung der statistischen Daten mittels der Chipkarte 1. Der dargestellte Ablauf wird gemäß Schritt S3 der 3 von vielen Chipkarten 1 durchlaufen, so daß eine große Menge statistischer Daten für die Auswertung zur Verfügung steht. Der Durchlauf des Flußdiagramms beginnt mit einem Schritt S10, bei dem der Benutzer seine Chipkarte 1 zur Durchführung einer Anwendung in das Endgerät 2 einsteckt, wie dies in 1 dargestellt ist. An Schritt S10 schließt sich ein Schritt S11 an, bei dem die Anwendung ausgeführt wird. Dabei werden von den Diagnoseelementen 16 der für die Ausführung der Anwendung verwendeten Programmelemente 15 der Chipkarte 1 statistische Daten ermittelt. Auf Basis der statistischen Daten aktualisieren die Diagnoseelemente 16 die jeweils zugehörigen Statistikdatenelemente 17. Auf Schritt S11 folgt ein Schritt S12, bei dem geprüft wird, ob das Endgerät 2 über die Möglichkeit verfügt, den Inhalt der Statistikdatenelemente 17 an den Systemcomputer 7 zu übermitteln. Falls diese Möglichkeit besteht, schließt sich an Schritt S12 ein Schritt S13 an, bei dem die Statistikdatenelemente 17 vom Endgerät 2 ausgelesen werden. Auf Schritt S13 folgt ein Schritt S14, bei dem die statistischen Daten vom Endgerät 2 über das erste Netzwerk 8 an den Systemcomputer 7 übermittelt werden. Anschließend wird in einem Schritt S15 die Chipkarte 1 aus dem Endgerät 2 entnommen. Zu Schritt S15 gelangt man auch unmittelbar von Schritt S12, wenn die dortige Abfrage ergibt, daß das Endgerät 2 nicht in der Lage ist, die statistischen Daten an den Systemcomputer 7 zu übermitteln. In diesem Fall erfolgt die Übermittlung zu einem späteren Zeitpunkt, zu dem die Chipkarte 1 in ein Endgerät 2 mit einer Verbindung zum Systemcomputer 7 eingesteckt wird. Mit der Ausführung des Schrittes S15 ist der Durchlauf des Flußdiagramms beendet.
-
Je nachdem, für welche Anwendung die Chipkarte 1 vorgesehen ist, kann eine Modifikation des in 4 dargestellten Ablaufs erforderlich sein. Beispielsweise verbleibt eine Chipkarte 1, die als ein Sicherheitsmodul für ein Mobilfunktelefon ausgebildet ist, in der Regel über einen langen Zeitraum im selben Mobilfunktelefon, wobei eine vielfache Ausführung von Mobilfunkanwendungen erfolgt. Die statistischen Daten werden bei jeder Ausführung ermittelt und können jeweils über das Mobilfunknetz weitergeleitet werden. Dabei ist es ebenso möglich, die statistischen Daten jeweils nur nach einer vorgegebenen Zahl von Ausführungen oder in vorgegebenen Zeitintervallen weiterzuleiten.
-
Die Erfindung kann sowohl bei kontaktbehafteten als auch bei kontaktlosen Chipkarten 1 eingesetzt werden. Kontaktlose Chipkarten 1 werden in der Regel nicht in das Endgerät eingesteckt, sondern dem Endgerät 2 lediglich angenähert. Außerdem ist ein Einsatz der Erfindung auch bei andersartig ausgebildeten tragbaren Datenträgern möglich.
-
Bezugszeichenliste
-
- 1
- Chipkarte; tragbarer Datenträger
- 2
- Endgerät
- 3
- integrierter Schaltkreis
- 4
- Elektronik
- 5
- Tastatur
- 6
- Bildschirm
- 7
- Systemcomputer
- 8
- erstes Netzwerk
- 9
- Entwicklungscomputer
- 10
- zweites Netzwerk
- 11
- Steuereinheit
- 12
- Speicher
- 13
- Codebereich
- 14
- Datenbereich
- 15
- Programmelement
- 16
- Diagnoseelement
- 17
- Statistikdatenelement