-
Die Erfindung betrifft ein Verfahren
zum Erstellen von Programmcode, insbesondere für eine Chipkarte, zur Kommunikation
mit einem mobilen Endgerät.
-
Unter einem mobilen Endgerät wird in
diesem Text ein Mobiltelefon, ein Personal Digital Assistant (PDA),
ein kombiniertes Gerät
aus einem Mobiltelefon und einem PDA oder ein elektronischer Organizer
verstanden oder ein ähnliches
Gerät,
das für Organisation
oder Kommunikation oder ähnliche
Tätigkeiten
geeignet ist und das zugleich dazu geeignet ist, vom Benutzer am
Körper,
in der Kleidung oder in kleinem Handgepäck mitgeführt zu werden.
-
Unter einer Chipkarte wird in diesem
Text ein Datenträger
mit einem elektronischen Schaltkreis und einem Kartenkörper verstanden.
Der Kartenkörper
kann ein beliebiges Format wie beispielsweise Scheckkartenformat
oder SIM-Kartenformat haben. Die Chipkarte kann eine reine Speicherkarte
sein oder eine Mikroprozessorkarte mit einer CPU und einem oder
mehreren Speichern sein. Im Zusammenhang mit der Erfindung ist die
Chipkarte vorzugsweise eine Mikroprozessorkarte.
-
Programmcode, insbesondere für eine Chipkarte,
zum Ansteuern eines mobilen Endgeräts kann in einer verwendeten
Programmiersprache beispielsweise durch unmittelbare Programmierung
erstellt werden, indem Zeichen für
Zeichen der Quellcode eingegeben wird und anschließend compiliert
wird. Dazu sind Programmierkenntnisse in der verwendeten Programmiersprache
erforderlich.
-
In der objektorientierten Programmierung
ist es bekannt, für
eine in sich abgeschlossene Funktionseinheit, die in einem Programmablauf
ausgeführt werden
soll, ein vorprogrammiertes Quellcode-Modul in den Programmablauf
einzubinden, so dass der Quellcode der Funktionseinheit nicht mehr
Zeichen für
Zeichen programmiert zu werden braucht. Hierdurch lassen sich auch
mit geringeren Programmierkenntnissen komplexere Programmabläufe erstellen.
-
Aufgabe der Erfindung ist es, ein
Verfahren und ein Software-Tool zum Durchführen des Verfahrens zu erstellen,
mit dem sich auf einfache und intuitive Weise und ohne weitreichende
Programmierkenntnisse Programmcode zum Ansteuern eines mobilen Endgeräts erstellen
lässt.
-
Die Aufgabe wird gelöst durch
ein Verfahren nach dem unabhängigen
Verfahrensanspruch 1, durch ein Software-Tool nach dem unabhängigen Software-Tool-Anspruch
26 sowie durch einen Datenträger
oder Computer oder ein mobiles Endgerät mit einem darin implementierten
Software-Tool oder einem darin implementierten Programmcode, der
mit dem Software-Tool
oder nach dem Verfahren erstellt worden ist.
-
Vorteilhafte Weiterbildungen der
Erfindung sind in den abhängigen
Ansprüchen
angeführt.
-
Bei dem Verfahren wird in dem Entwurfsschritt
der graphische Entwurf des zu erstellenden Programmcodes erstellt.
Dazu werden Icons auf der graphischen Arbeitsfläche positioniert und durch
Linien miteinander verbunden. Jedes Icon entspricht einem Funktionselement,
das einem entsprechenden Quellcode und, in compilierter Form, einem
entsprechenden Zwischencode entspricht. Durch das Anordnen der Icons
wird festgelegt, welche Funktionen durch den Programmcode später ausgeführt werden soll.
Durch das Ziehen der Linien zwischen den Icons wird der Programmablauf festgelegt,
d.h. in welcher Reihenfolge die hinter den Icons stehenden Funktionen
bei einer nachfolgenden Ausführung
des Programmcodes ablaufen.
-
Das Verfahren hat den Vorteil, dass
zum Erstellen von Programmcode keine Programmierkenntnisse in einer
spezifischen Programmiersprache erforderlich sind, unabhängig davon,
in welcher Programmiersprache der Quellcode oder Zwischencode erstellt
wird. Es genügt,
mit der Bedienung von graphischen Benutzeroberflächen mittels Eingabegeräten wie
Maus, Trackball, Tastatur, Touch-Screen und dergleichen vertraut
zu sein, je nachdem über
welches Eingabegerät
die graphische Benutzeroberfläche
bedient wird. Dadurch, dass der Programmablauf durch ein einfaches
Ziehen von graphischen Linien definiert wird, ist das Verfahren
besonders einfach und intuitiv.
-
Der Quellcode, der einem Funktionselement entspricht,
kann direkt in den Ablauf-Quellcode eingebunden werden, wird aber
vorzugsweise dadurch bereitgestellt, dass ein Funktionsaufruf auf
den Quellcode des Funktionselements in den Ablauf-Quellcode eingebunden
wird. Der Funktionsaufruf ist vorzugsweise auf einen Eintrag des
zugehörigen
Funktionselements in einer Library-Quellcode-Datei gerichtet.
-
Funktionselemente und Verbindungen
können
zudem durch Parameter konfiguriert werden.
-
Betreffend den compilierten Zwischencode für die Funktionselemente
werden gemäß einer
ersten Ausführungsform
des erfindungsgemäßen Verfahrens
die Zwischencodes der Funktionselemente mit dem Ablauf-Zwischencode mitgeführt, d.h.
in die Ablauf-Zwischencode-Datei compiliert.
-
Dabei ist vorzugsweise durch die
compilierten Funktionselemente ein eigener Library-Abschnitt gebildet,
der aber innerhalb der Ablauf-Zwischencode-Datei
liegt. Diese Ausführungsform
hat den Vorteil, dass nur die Zwischencodes derjenigen Funktionselemente
mitgeführt
werden müssen,
die unbedingt erforderlich sind. Dadurch ist der Speicherbedarf
des erstellten Programmcodes gering.
-
In dem Fall, dass vorgesehen ist,
dass eine größere Anzahl
von Programmcodes nach dem erfindungsgemäßen Verfahren erstellt und
in dem selben mobilen Gerät
oder in der selben Chipkarte abgespeichert wird, ist die folgende
zweite Ausführungsform
des erfindungsgemäßen Verfahrens
bevorzugt. Gemäß der zweiten
Ausführungsform
werden für
die in einem Programmcode verwendeten Funktionselemente im Zwischencode
nur Funktionsaufrufe auf die Funktionselemente mitgeführt. Die
Zwischencodes der Funktionselemente selbst werden in einer entsprechenden,
von der Ablauf-Zwischencode-Datei gesonderten, Library-Zwischencode-Datei
bereit gehalten und werden während
der Durchführung
des eigentlichen Verfahrens nicht verwendet. Die Library-Zwischencode-Datei
braucht insbesondere während
der Erstellung des Programmcodes nicht zur Verfügung zu stehen. Es genügt, wenn
die Library bei der nachfolgenden Ausführung des Programmcodes zur
Verfügung
steht.
-
Die Library-Zwischencode-Datei braucht
nur ein einziges Mal auf dem mobilen Gerät oder der Chipkarte, auf der
der Programmcode später
laufen soll, eingerichtet zu werden. Die bei der zweiten Ausführungsform
verwendete Library-Zwischencode-Datei enthält vorzugsweise weitere Funktionselemente, die
für die
Durchführung
des Verfahrens zur Verfügung
stehen, die aber in dem aktuell erstellten Programmcode nicht verwendet
werden. Weiter vorzugsweise enthält
die Library-Zwischencode-Datei einen von der Durchführung des
Verfahrens unabhängigen
Bestand an Zwischencodes.
-
Gemäß einer dritten Ausführungsform
der Erfindung ist vorgesehen, dass innerhalb des Verfahrens gewählt werden
kann, ob der Zwischencode für die
Funktionselemente gemäß der ersten
Ausführungsform
direkt in den Ablauf-Zwischencode eingebunden wird, oder ob, gemäß der zweiten
Ausführungsform,
im Ablauf-Zwischencode nur ein Funktionsaufruf eingebunden werden
soll, wohingegen die Zwischencodes der Funktionselemente in der
Library verbleiben.
-
Das Verfahren kann auf einem Personal Computer
oder Server oder auf einem mobilen Endgerät durchgeführt werden oder auf einem beliebigen Datenträger mit
zumindest einem Speicher und einem Mikroprozessor (Computersystem
im weitesten Sinn).
-
Zum Compilieren von Quellcode in
dem Compilierungs-Schritt kann ein Compiler verwendet werden, der
nur dem Verfahren zur Verfügung
steht oder ein Compiler, der auch weiteren Programmen zur Verfügung steht.
-
Der Quellcode oder der Zwischencode,
gegebenenfalls einschließlich
der Parameter, lässt
sich vorzugsweise in einer Projekt-Datei auf dem Computer oder sonstigen
oben genannten Gerät
bzw. Datenträger
abspeichern. Dadurch kann die Erstellung von Programmcode unterbrochen
und später,
unter Verwendung der Projekt-Datei, wieder fortgesetzt werden.
-
Vorzugsweise sind in der Projekt-Datei
zusätzlich
graphische Entwurfsdaten abgespeichert werden, die eine Rekonstruktion
des in dem Entwurfsschritt a) erstellten graphischen Entwurfs durch Aufruf
der Projekt-Datei erlauben.
-
Vorzugsweise ist die Projekt-Datei
im XML-Format abspeicherbar, da sich dieses Dateiformat besonders
gut für
den Datenaustausch eignet.
-
Die Projekt-Datei kann auch auf ein
anderes Gerät,
d.h. Computer, Chipkarte, mobiles Endgerät oder sonstige Speicher-Einrichtung
oder Speicher-Prozessor-Einrichtung, gespeichert werden als das
Gerät,
auf dem sie erstellt worden ist.
-
Gemäß einer bevorzugten Ausführungsform ist
mindestens eines der Funktionselemente ein proaktiver Befehl, insbesondere
für Mobilfunkanwendungen.
Durch proaktive Befehle werden die Funktionen (z.B. für Displayausgabe
etc.) von mobilen Endgeräten
wie beispielsweise Mobiltelefonen oder Personal Digital Assistants
(PDAs) angesteuert. Beispielsweise ist der proaktive Befehl ein
proaktiver SIM-Befehl gemäß der GSM-Spezifikation
3GPP TS 11.14.
-
Gemäß einer Ausführungsform
des Verfahrens wird das Verfahren zumindest teilweise außerhalb
der Chipkarte und des mobilen Endgeräts durchgeführt, für die/das der Programmcode
erstellt wird. In diesem Fall wird weiter in einem Ladeschritt der Quellcode
oder der Zwischencode auf die Chipkarte und/oder auf das mobile
Endgerät
geladen.
-
Falls gemäß der oben beschriebenen zweiten
oder dritten Ausführungsform
im Zwischencode bezüglich
der Funktionselemente nur Funktionsaufrufe enthalten sind, wird
zusätzlich
eine Library-Zwischencode-Datei auf die Chipkarte oder das mobile Endgerät geladen.
Falls die Chipkarte oder das mobile Endgerät über einen geeigneten Compiler
verfügt,
kann die Library auch in Quellcodeform, als Library-Quellcode-Datei
geladen werden und nachfolgend auf der Chipkarte bzw. dem Endgerät compiliert werden.
In diesem Fall kann auch der Ablauf-Code, d.h. der erstellte Programmcode,
in Quellcodeform auf die Chipkarte bzw. das Endgerät geladen
werden und erst dort compiliert werden. Die Library wird vorzugsweise
nur einmalig unabhängig
von den Programmcodes oder zusammen mit einem Programmcode geladen.
Beispielsweise kann die Library mitgeladen werden, wenn erstmalig
ein Programmcode auf die Karte bzw. das Endgerät geladen wird. Optional kann
bei jedem Laden eines Programmcodes überprüft werden, ob schon eine Library
vorhanden ist und, falls noch keine Library vorhanden ist, die Library
mitgeladen werden.
-
Das Laden kann kontaktbehaftet über eine Lesegerät oder kontaktlos
durchgeführt
werden oder teils kontaktbehaftet, teils kontaktlos. Besonders bevorzugt
wird der Programmcode auf einem Computer erstellt, von dort auf
einen Server geladen, und auf dem Server zur Verfügung gestellt,
beispielsweise über
das Internet. Vom Internet-Browser aus kann veranlasst werden, dass
der Programmcode per SMS an ein vorbestimmtes Mobiltelefon gesandt wird.
Alternativ kann durch ein Mobiltelefon angefordert werden, dass
der Programmcode per SMS an das Mobiltelefon gesandt wird. Im Mobiltelefon
bzw. sonstigen mobilen Endgerät
wird der Programmcode auf die Chipkarte und/oder das Endgerät geladen und
von einem dort implementierten Interpreter zu einem ausführbaren
Code interpretiert. Durch den interpretierbaren Code werden die
Funktionalitäten des
Endgeräts,
wie Display, Lautsprecher etc., angesteuert.
-
Vorzugsweise wird durch den auf das
mobile Endgerät
(Chipkarte und/oder Endgerät
direkt) geladenen Programmcode oder dort erstellten Programmcode
ein Menüeintrag
im Menü des
Endgeräts erstellt,
der sich in die ursprünglich
vorhandenen Menüeinträge einfügt, und
der im gleichen Erscheinungsbild gestaltet ist.
-
Vorzugsweise ist bei während der
Durchführung
des Verfahrens ein Lade-Parameter
festlegbar wird, durch den vorbestimmt wird, in welchen Bereich der
Chipkarte und/oder des mobilen Endgeräts der Quellcode oder der Zwischencode
in dem Ladeschritt geladen wird.
-
Die Chipkarte weist vorzugsweise
die Speicherbereiche RAM, EEPROM, Flash-Speicher und ROM auf, und
durch den wird Lade-Parameter vorbestimmt wird, in welchen Speicherbereich
der Quellcode oder der Zwischencode in dem Ladeschritt geladen wird.
So kann z.B. die Library, wenn sie separat geladen wird, in den
Flash-Speicher gespeichert werden und der Programmcode, wenn er
ohne Library geladen wird, in den EEPROM geladen werden.
-
Im Folgenden wird die Erfindung an
Hand von Ausführungsbeispielen
und unter Bezugnahme auf die Zeichnung näher erläutert, in der zeigen:
-
1 ein
Beispiel für
eine erfindungsgemäße graphische
Benutzeroberfläche
für die
Verwendung durch das erfindungsgemäße Verfahren bzw. Software-Tool;
-
2 ein
Beispiel für
eine erfindungsgemäße Arbeitsfläche, die
auf einer graphischen Benutzeroberfläche dargestellt ist, und auf
der eine Mehrzahl von Icons und die Icons untereinander verbindenden
Verbindungen graphisch dargestellt sind;
-
3 eine
schematische Darstellung einer Mehrzahl von mit dem erfindungsgemäßen Software-Tool
erstellten Programmcodes, die auf eine gemeinsame Library zugreifen
können;
-
4 eine
schematische Darstellung des erfindungsgemäßen Verfahrens, mit den Schritten
a), b) und c), am Beispiel von Java als Programmiersprache;
-
5 eine
schematische Detaildarstellung des in dem Build-Schritt b) aus 4 erzeugten Ablauf-Quellcodes,
gemäß einer
bevorzugten Ausführungsform
der Erfindung;
-
6 eine
schematische Darstellung einer erfindungsgemäßen Library-Quellcode-Datei;
-
7 eine
schematische Darstellung eines Ablauf-Zwischencodes gemäß einer
ersten Ausführungsform
der Erfindung;
-
8 eine
schematische Darstellung eines Ablauf-Zwischencodes gemäß einer
zweiten Ausführungsform
der Erfindung, gemäß einer
ersten Variante, mit einer spezifischen Library;
-
9 eine
schematische Darstellung eines Ablauf-Zwischencodes gemäß der zweiten
Ausführungsform
der Erfindung, gemäß einer
zweiten Variante, mit einer verfahrensunabhängigen Library;
-
10 eine
schematische Darstellung mehrerer Ablauf-Zwischencodes gemäß der zweiten
Ausführungsform
der Erfindung, gemäß der zweiten
Variante, mit einer verfahrensunabhängigen gemeinsamen Library;
-
1 zeigt
ein Beispiel für
eine erfindungsgemäße graphische
Benutzeroberfläche
für die
Verwendung durch das erfindungsgemäße Verfahren bzw. Software-Tool.
Die graphische Benutzeroberfläche
ist in einer für
Computer üblichen
Art in Fenster aufgeteilt. In einer zweizeiligen Kopfleiste 101 sind Befehle
angezeigt, mit denen sich Funktionen des Software-Tools ausführen lassen.
Beispielsweise lässt
sich durch ein Aktivieren von "File" in der oberen Zeile
ein Pop-up-Menü öffnen (nicht
gezeigt), in dem ein Untermenü "New" das Eröffnen eines
neuen Projektes bzw. einer neuen Arbeitsfläche ermöglicht und ein Untermenü "Open" das Öffnen einer
abgespeicherten Projekt-Datei ermöglicht. In der unteren Zeile der
Kopfleiste 101 (Toolleiste) sind Schaltsymbole enthalten,
mit denen sich ebenfalls Funktionen aktivieren lassen, z.B. "Datei öffnen" durch Aktivieren des
Symbols "geöffneter
Hängeordner". In einem Projektfenster 102 ist
eine baumartige Menüstruktur anzeigbar,
die dem Aufbau der gerade geöffneten Projekt-Datei
entspricht und die auch in dieser Form mit den jeweiligen Texten
auf dem mobilen Endgerät angezeigt
wird. Die in 1 dargestellte
Projekt-Datei mit dem Namen Mobile_Banking enthält sechs unterschiedliche Programmcodes,
nämlich
Kontostand anzeigen, Überweisung,
Verbindungen, Konten, Service und Kontakt. Der Programmcode Kontostand anzeigen
ist hierbei in einer Projekt-Unterdatei mit dem Namen Kontostand
enthalten, die der Projekt-Datei Mobile_Banking hierarchisch untergeordnet
ist. Jeder der sechs Programmcodes ist nach dem erfindungsgemäßen Verfahren,
mit dem erfindungsgemäßen Software-Tool
erstellt worden. Die Projekt-Datei wird im XML-Format gespeichert.
Entsprechend der hierarchischen Struktur der Programmcodes enthält die Menüstruktur
im Projektfenster 102 einen übergeordneten Menüeintrag Mobile_Banking,
sechs untergeordnete Untermenüeinträge der zweiten
Ebene, nämlich
Kontostand, Überweisung,
Verbindungen, Konten, Service und Kontakt, und einen Untermenüeintrag
der dritten Ebene, nämlich
Kontostand anzeigen. Durch Aktivieren eines der Untermenüeinträge wird
im Arbeitsfenster 103 die zugehörige Arbeitsfläche mit
den zugehörigen
Icons und Verbindungen dargestellt. In 1 ist im Projektfenster 102 der
Untermenüeintrag Kontostand
anzeigen aktiviert und folglich auf der Arbeitsfläche 103 der
graphische Entwurf zum Programmcode Kontostand anzeigen angezeigt.
-
Zwischen dem Projektfenster 102 und
dem Arbeitsfenster 103 ist eine Befehlsleiste 104 angeordnet,
die eine Mehrzahl von zu verwendenden Icons für die Arbeitsfläche (Befehlssymbole)
enthält. Durch
die Icons sind proaktive SIM-Befehle gemäß der GSM-Spezifikation 3GPP
TS 11.14 dargestellt, z.B. an oberster Stelle DISPLAY TEXT, an vierter Stelle
PLAY TONE etc., und an den beiden untersten Positionen ein START
Symbol und ein STOP Symbol, durch die Anfang bzw. Ende eines jeweiligen Programmcodes
markiert werden. Die Icons (Befehlssymbole) können per "Drag and Drop" auf die Arbeitsfläche gezogen werden können, d.h.
indem eine Laufmarke (Cursor) auf dem Icon aktiviert wird, die Laufmarke
mitsamt dem Icon in die Arbeitsfläche 103 gezogen wird,
und die Laufmarke auf der Arbeitsfläche wieder deaktiviert wird,
woraufhin das Icon auf der Arbeitsfläche 103 abgelegt wird.
-
2 zeigt
die Arbeitsfläche
aus 1 gesondert dargestellt.
Auf der Arbeitsfläche
sind eine Mehrzahl von Icons und die Icons untereinander verbindenden
Verbindungen graphisch dargestellt. Die Icons sind auf der Arbeitsfläche angeordnet
worden, indem sie aus der Befehlsleiste 104 oder aus der Kopfleiste 101 auf
die Arbeitsfläche
gezogen worden sind (vgl.
-
oben). Die Icons sind durch Verbindungslinien
miteinander verbunden. Jede Verbindungslinie wird dadurch gezogen,
dass ein Cursor (Laufmarke) über
einem ersten Icon aktiviert wird, zum zweiten Icon gezogen wird
und dort wieder deaktiviert wird. Eine auf diese Weise vom ersten
Icon zum zweiten Icon gezogene Verbindungslinie bedeutet auf Programmebene,
dass zuerst ein dem ersten Icon entsprechender erster Befehl und
anschließend
ein dem zweiten Icon entsprechender zweiter Befehl ausgeführt wird.
Bei dem Programmcode aus 2 wird somit
nach dem Start (START) zuerst ein Text auf dem Display angezeigt
(DISPLAY TEXT), danach eine Eingabe entgegengenommen (GET INPUT),
anschließend
eine Short Message (SMS) versandt (SEND SMS), und schließlich wieder
ein Text angezeigt (DISPLAY TEXT), wonach der Programmcode zu Ende
ist (STOP).
-
In 1 ist
zu sehen, dass auf der Arbeitsfläche 103 gerade
das Icon (Befehlssymbol) GET INPUT aktiviert ist. Entsprechend wird
in einer Parameterfläche 105 eine
Mehrzahl von Parameterfeldern angezeigt, in die Parameter zur Konfiguration
des Funktionselements zu dem angezeigten Icon, hier also des Funktionselements
GET INPUT, eingebbar sind. Beispielsweise lässt sich in dem Feld zu "Question" auf die Aufforderung "Bitte PIN eingeben" die PIN eingeben.
In den beiden Parameterfeldern darunter lassen sich die minimale
und maximale Antwortgröße (Responsegröße) eingeben.
Aktuell sind 0 bzw. 255 eingegeben.
-
Die Verbindungen zwischen den Icons
können
ebenfalls durch Parameter konfiguriert werden. Dabei wird beispielsweise
angegeben, welcher Antwortcode des mobilen Endgerätes auf
den ersten Befehl sich auf den weiteren Ablauf auswirkt, bzw. in welchem
Pfad der Ablauf fortgesetzt wird. Ein weiterer Parameter kann das
Format sein, in dem der erste Befehl an den zweiten Befehl Daten
weitergibt. Die Funktionselemente können ebenfalls durch Parameter
konfiguriert werden. Um das jeweilige Funktionselement bzw. die
jeweiligen Verbindung durch Parameter zu konfigurieren, wird beispielsweise
in dem Entwurfsschritt a) in oder neben der graphischen Arbeitsfläche oder
anderweitig auf der graphischen Benutzeroberfläche eine Eingabemaske dargestellt,
in die die Parameter eingegeben werden. Im anschließenden Build-Schritt
werden die eingegebenen Parameter in den Quellcode eingebunden.
-
Ein proaktiver Befehl, für den auf
der Arbeitsfläche
ein Icon dargestellt ist, ist der Befehl DISPLAY TEXT gemäß der GSM-Spezifikation
3GPP TS 11.14. Der Befehl DISPLAY TEXT hat, ausgeführt auf einer
SIM-Karte eines Mobiltelefons, die Wirkung, dass auf dem Display
des Mobiltelefons ein spezifischer Text angezeigt wird. Dazu ist
der Befehl DISPLAY TEXT durch den Parameter des spezifischen Texts,
der angezeigt werden soll, konfiguriert. Durch PLAY TONE, abgespielt
auf der SIM-Karte eines kombinierten PDA-Mobiltelefons, wird durch
den Lautsprecher des PDA-Mobiltelefons
ein Ton ausgegeben. Durch geeignete Parameter können beispielsweise Tonhöhe und Tondauer
angegeben sein. Weitere proaktive Befehle lassen sich der GSM-Spezifikation
3GPP TS 11.14 entnehmen.
-
Gemäß einer Variante können Verbindungslinien,
die an ein und demselben Icon beginnen und enden, die also eine
Schleife bilden, dafür
benutzt werden, um beispielsweise eine falsche Eingabe des Benutzers
am mobilen Endgeräts
zu wiederholen und um falsche Ausführungen zu korrigieren (hier nicht
dargestellt).
-
4 zeigt
eine schematische Darstellung des erfindungsgemäßen Verfahrens, mit den Schritten
a), b) und c). Als Programmiersprache wird exemplarisch Java verwendet.
Jedoch kann das Verfahren auch mit einer anderen, vorzugsweise objektorientierten,
Programmiersprache durchgeführt
werden. Das Verfahren wird vorzugsweise mit dem in 1 und 2 dargestellten
Software-Tool durchgeführt.
-
In dem Entwurfsschritt a) werden
nacheinander drei Icons 402 auf die Arbeitsfläche gezogen. Durch
jedes Icon 402 ist ein proaktiver Befehl dargestellt. Im
Fall aus 4 sind dies
die proaktiven Befehle DISPLAY TEXT, PLAY TONE und SEND SHORT MESSAGE
(vgl. auch 6). Die Icons 402 werden
durch Verbindungslinien 401 miteinander verbunden. Dadurch
wird festgelegt, dass später, beim
ablaufen Lassen des Programmcodes auf dem Endgerät und/oder der zugehörigen SIM-Karte
zuerst der Befehl DISPLAY TEXT, dann PLAY TONE und anschließend SEND
SHORT MESSAGE durchgeführt
werden soll.
-
In dem Build-Schritt b), der beispielsweise dadurch
gestartet wird, dass in der Kopfzeile 101 aus 1 der Befehl "Build" aktiviert wird,
wird aus den Verbindungslinien 401 auf der Arbeitsfläche ein
Ablauf-Quellcode main.java erstellt, wie in 4 durch die Pfeile angedeutet ist. Der
genauere Aufbau der Datei main.java wird weiter unten erklärt (vgl. 5).
-
Im Compilierungs-Schritt c) wird
mittels eines Compilers (im weiteren Sinn) der Ablauf-Quellcode
main.java zur Ablauf-Zwischencode-Datei main.cap compiliert (vgl.
auch 7 bis 10). Die Datei main.cap
ist vom CAP-Format,
d.h. vom Card Application Format, und ist somit dazu geeignet, von einem
Java Card Interpreter wie einer Java Card Virtual Machine interpretiert
zu werden. Die Datei main.cap wird üblicherweise genauer dadurch
erstellt, dass zunächst
durch einen Compiler im engeren Sinn eine Klassen-Datei main.class
erstellt wird und anschließend
aus der Klassen-Datei
main.class mittels eines Converters die Ablauf-Zwischencode-Datei main.cap
erstellt wird. Der Zwischencode ist somit bei dem Beispiel aus 4 ein konvertierter Java
Bytecode vom CAP-Format, wobei unter Java Bytecode ein Code vom
CLASS-Format verstanden wird.
-
5 zeigt
eine schematische Detaildarstellung des in dem Build-Schritt b)
aus 4 erzeugten Ablauf-Quellcodes
main.java, gemäß einer
bevorzugten Ausführungsform
der Erfindung. Der Ablauf-Quellcode main.java enthält Quellcodes 1 von Verbindungslinien
und Funktionsaufrufe 2 auf Funktionselemente, die Icons
entsprechen. Mit den Funktionsaufrufen 2 sind vorzugsweise
auch Parameter zur Konfiguration der Funktionselemente im Ablauf-Quellcode
main.java enthalten. Die Funktionsaufrufe 2 sind auf Einträge der Quellcodes
der Funktionselemente in einer Library-Quellcode-Datei library.java gerichtet, wie sie
in 6 dargestellt ist.
Die Library-Quellcode-Datei
library.java aus 6 enthält als Einträge die Quellcodes
aller Funktionselemente, die dem Verfahren bzw. Software-Tool zur Verfügung stehen.
-
7 zeigt
eine schematische Darstellung einer Ablauf-Zwischencode-Datei main.cap
gemäß einer
ersten Ausführungsform
der Erfindung. In der Ablauf-Zwischencode-Datei main.cap sind die
Zwischencodes sowohl zu den Verbindungen 1, 401 als auch
zu den Funktionselementen 2, 402 abgelegt. Intern
ist die Ablauf-Zwischencode-Datei main.cap in einen Ablauf-Abschnitt 701 und
einen Library-Abschnitt 702 aufgeteilt. Der Ablauf-Abschnitt 701 enthält die compilierten
Ablauf-Quellcodes 1 und Quellcode-Funktionsaufrufe 2.
Der Library-Abschnitt 702 enthält die compilierten Quellcodes 2 der
Funktionselemente, allerdings nur zu den Funktionselementen, deren
Icons 402 in dem Entwurf enthalten sind. Für Icons 402,
die in dem Entwurf mehrmals auftreten, braucht der zugehörige Zwischencode
in dem Library-Abschnitt 702 nur ein mal vorgesehen zu
sein.
-
8 zeigt
eine schematische Darstellung eines Ablauf-Zwischencodes gemäß einer
zweiten Ausführungsform
der Erfindung, gemäß einer
ersten Variante, mit einer spezifischen Library. Im Vergleich zu
der Ablauf-Zwischencode-Datei
main.cap aus 7 enthält die Ablauf-Zwischencode-Datei main.cap aus 8 nur einen Ablauf-Abschnitt
mit compilierten Ablauf-Quellcodes 1 und Quellcode-Funktionsaufrufen 2.
Die Zwischencodes der Funktionselemente, für die im Entwurf ein Icon 402 enthalten
ist, sind in einer gesonderten Library-Zwischencode-Datei library.cap
abgelegt. Die Library-Zwischencode-Datei library.cap lässt sich
somit gesondert von der Ablauf-Zwischencode-Datei main.cap speichern,
kopieren oder laden. Insbesondere kann beispielsweise, wenn Programmcode
von einem Computer, auf dem der Programmcode erstellt worden ist,
auf eine Chipkarte geladen wird, für die die Library-Zwischencode-Datei
library.cap ein anderer Speicherort gewählt werden als für die Ablauf-Zwischencode-Datei
main.cap. Beispielsweise kann library.cap in den Flash-Speicher
und main.cap in den EEPROM der Chipkarte geschrieben werden.
-
9 zeigt
eine schematische Darstellung eines Ablauf-Zwischencodes gemäß der zweiten Ausführungsform
der Erfindung, gemäß einer
zweiten Variante, mit einer verfahrensunabhängigen Library. Im Vergleich
zu der in 8 gezeigten
Variante sind in der Library-Zwischencode-Datei library.cap die
Zwischencodes aller dem Verfahren bzw. Software-Tool zur Verfügung stehenden
Funktionselemente enthalten, auch die derjenigen Funktionselemente, die
gerade nicht verwendet werden. Dadurch ist die Library-Zwischencode-Datei
library.cap unabhängig vom
erfindungsgemäß erstellten
Programmcode universell einsetzbar. Die Library-Zwischencode-Datei library.cap
kann somit auch als gemeinsame Library für mehrere nach dem Verfahren
erzeugte Programmcodes verwendet werden, wie in 10 dargestellt ist.
-
10 zeigt
eine schematische Darstellung mehrerer Ablauf-Zwischencodes main1.cap, main2.cap,
main3.cap gemäß der zweiten
Ausführungsform
der Erfindung, gemäß der zweiten
Variante, mit einer verfahrensunabhängigen gemeinsamen Library
library.cap. Diese Variante ist auch in 3 verdeutlicht. Mehrere Ablauf-Zwischencodes
greifen auf ein und die selbe gesonderte Library-Zwischencode-Datei
library.cap zu. Dazu enthält
die Library-Zwischencode-Datei library.cap einen verfahrensunabhängigen Bestand
an Zwischencodes von Funktionselementen. Vorzugsweise kann der Bestand
erweitert und verringert werden, was vorzugsweise unabhängig vom
Erstellen der Programmcodes main.cap geschieht. Da die gemeinsame,
universale Library-Zwischencode-Datei library.cap nur einmal geladen
werden muss, kann sie beispielsweise in einen Speicher geschrieben
werden, der zwar schwierig wiederzubeschreiben ist, dafür aber andere
Vorteile hat, indem er z.B. billig oder schnell oder dauerhaft ist.
Die Programmcodes main.cap bzw. maini.cap, i=1,2,3,... werden vorzugsweise
in einen vergleichsweise einfach wiederbeschreibbaren Speicher geschrieben,
z.B. in den EEPROM oder in den Flash-Speicher.
-
Das Verfahren wird gemäß einer
Ausführungsform
direkt auf dem mobilen Endgerät
ausgeführt,
auf dem der Programmcode später
laufen soll. Dazu wird beispielsweise insbesondere das Display des
Endgeräts
zur Darstellung der graphischen Benutzeroberfläche verwendet. Mit den qualitativ
hochwertigen Displays der neueren Generationen von Mobiltelefonen
und PDAs und kombinierten Endgeräten
ist dies besonders gut möglich.
Zur Bedienung des Displays wird dabei die Infrastruktur benutzt,
die das Endgerät
zur Verfügung
stellt, d.h. Tastatur, Touch-Screen, ggf. mit Eingabestift, Mobiltelefontasten
etc..
-
Gemäß einer weiteren Ausführungsform
wird das Verfahren auf einem Computer durchgeführt und der Zwischencode main.cap,
ggf. zusammen mit der Library library.cap, auf das mobile Endgerät geladen, vorzugsweise
auf eine dort eingebaute Chipkarte, alternativ auch auf das Endgerät selbst
oder teils auf die Chipkarte, teils auf das Endgerät. Der auf
der Chipkarte oder in dem Endgerät
vorgesehene Interpreter, z.B. eine Java Card Virtual Machine, interpretiert
den Programmcode schließlich
zu einem ausführbaren
Code, durch den die Funktionalitäten
des mobilen Endgeräts
ansteuerbar sind. Die Chipkarte kann dabei insbesondere eine Mobiltelefonkarte
der SIM-Generation sein und ist in diesem Fall vorzugsweise eine
Java Card, die der GSM-Spezifikation 3GPP TS 11.14 genügt.
-
Die proaktiven Befehle müssen nicht
unbedingt SIM-Befehle sein, sondern können auch USIM-Befehle oder
Befehle gemäß einem
anderen Mobilfunkstandard oder sonstigen Kommunikationsstandard
sein.
-
Der Programmcode, der nach dem Compilierungs-Schritt
c) bereitgestellt wird, um ausgeführt zu werden oder um auf die
Chipkarte oder/und auf das mobile Endgerät geladen zu werden und anschließend ausgeführt zu werden,
ist vorzugsweise ein Java Applet.
-
Das Laden des Applet wird vorzugsweise
dadurch durchgeführt,
dass das Applet auf einem Server abgelegt wird, der über das
Internet zugänglich ist.
Ein Internet-Nutzer kann, beispielsweise gegen Bezahlung, aus dem
Internet heraus veranlassen, dass ihm das Applet per SMS auf sein
mobiles Endgerät (z.B.
Handy) gesandt wird. Alternativ kann er das Herunterladen des Applets
auch direkt von seinem mobilen Endgerät aus initiieren.
-
Die ggf. erforderliche Library kann
auf dem gleichen Weg wie das Applet heruntergeladen werden. Falls
als Library eine gemeinsame, universale Library verwendet wird,
braucht diese nur ein einziges mal heruntergeladen werden, auch
wenn nacheinander mehrere Applets geladen werden. Dadurch kann der
Konsument, der die Applets bezieht, teure Verbindungskosten für die mobile
(kontaktlose) Verbindung zwischen dem Server und seinem mobilen Endgerät sparen,
was das Herunterladen der Applets für Konsumenten attraktiver macht.
-
Das Applet enthält ggf. die Information, auf welchen
Speicherbereich der Chipkarte des Endgeräts es geladen wird, wobei die
Information bereits bei der Erstellung des Applet vorgegeben wurde.