Verfahren zum Erstellen von Programmcode
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-Kartenf ormat 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.
Wahlweise lässt sich ein erstellter Programmcode, insbesondere der in der Projekt-Datei enthaltene Quellcode oder Zwischencode, als ein weiteres Funktionselement deklarieren und vorzugsweise für das so deklarierte Funktionselement ein neues graphisches Icon erzeugen. Das neue graphische Icon, das zu dem deklarierten weiteren Funktionselement gehört, kann bei nachfolgenden Programmerstellungen wie oben beschrieben in dem Entwurfsschritt angeordnet werden, um weiteren Programmcode zu erstellen, bei dem der Programmcode des deklarierten Funktionselements als modulares Programmelement (wieder)verwendet wird. 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 Display aus gäbe 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 Lade-Parameter wird vorbestimmt, 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:
Fig. 1 ein Beispiel für eine erfindungsgemäße graphische Benutzeroberfläche für die Verwendung durch das erfindungsgemäße Verfahren bzw. Software-Tool;
Fig. 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;
Fig. 3 eine schematische Darstellung einer Mehrzahl von mit dem erfindungsgemäßen Software-Tool erstellten Programmcodes, die auf eine gemeinsame Library zugreifen können;
Fig. 4 eine schematische Darstellung des erfindungsgemäßen Verfahrens, mit den Schritten a), b) und c), am Beispiel von Java als Programmiersprache;
Fig. 5 eine schematische Detaildarstellung des in dem Build-Schritt b) aus Fig. 4 erzeugten Ablauf -Quellcodes, gemäß einer bevorzugten Ausführungsform der Erfindung;
Fig. 6 eine schematische Darstellung einer erfindungsgemäßen Library- Quellcode-Datei;
Fig. 7 eine schematische Darstellung eines Ablauf-Zwischencodes gemäß einer ersten Ausführungsform der Erfindung;
Fig. 8 eine schematische Darstellung eines Ablauf-Zwischencodes gemäß einer zweiten Ausführungsform der Erfindung, gemäß einer ersten Variante, mit einer spezifischen Library;
Fig. 9 eine schematische Darstellung eines Ablauf-Zwischencodes gemäß der zweiten Ausführungsform der Erfindung, gemäß einer zweiten
Variante, mit einer verfahrensunabhängigen Library;
Fig. 10 eine schematische Darstellung mehrerer Ablauf -Zwischencodes gemäß der zweiten Ausführungsform der Erfindung, gemäß der zweiten Variante, mit einer verfahrensunabhängigen gemeinsamen
Library;
Fig. 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 Fig. 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 Fig. 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 Lauf marke auf der Arbeitsfläche wieder deaktiviert wird, woraufhin das Icon auf der Arbeitsfläche 103 abgelegt wird.
Fig. 2 zeigt die Arbeitsfläche aus Fig. 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 Fig. 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 Fig. 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 PD A- 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).
Gemäß einer weitergebildeten Variante der Erfindung wird ein erstellter Programmcode als neues Funktionselement deklariert und für das deklarierte Funktionselement ein neues Icon erzeugt. Der Programmcode ist dabei erfindungsgemäß aus einem graphischen Entwurf mit mehreren Icons für mehrere Funktionselemente erzeugt worden, beispielsweise aus einem graphischen Entwurf wie dem in Fig.l dargestellten. Gemäß dem Beispiel aus Fig. 1 wird beispielsweise der Quellcode oder der Zwischencode in der Projekt-Datei mit dem Namen Mobile_Banking als neues Funktionselement mit dem gleichlautenden Namen „MobileJBanking" deklariert und ein zugehöriges Icon erzeugt. In analoger Weise werden die unterschiedlichen Programmcodes in den Projekt-Unterdateien Kontostand_anzeigen, Überweisung, Verbindungen, Konten, Service und Kontakt als
Funktionselemente mit den Namen Kontostand_anzeigen, Überweisung, Verbindungen, Konten, Service bzw. Kontakt deklariert und zu jedem der deklarierten Funktionselemente ein zugehöriges Icon erzeugt. Soll nachfolgend ein Programmcode erstellt werden, der die Funktion der Projekt-Unter datei z.B. Überweisung ausführt, so brauchen nicht die Icons, aus denen sich „Überweisung" zusammensetzt einzeln graphisch angeordnet und miteinander verbunden werden, sondern es kann das vorgefertigte neu deklarierte Funktionselement „Überweisung" verwendet werden und das zugehörige „Überweisung"-Icon graphisch angeordnet werden. Analoges gilt für die restlichen Projekt-Unterdateien und die übergeordnete Projekt-Datei „Mobile_Banking".
Fig. 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 Fig. 1 und Fig. 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 Fig. 4 sind dies die proaktiven Befehle DISPLAY TEXT, PLAY TONE und SEND SHORT MESSAGE (vgl. auch Fig. 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 Fig. 1 der Befehl "Build" aktiviert wird, wird aus den Verbindungslinien 401 auf der Arbeitsfläche ein Ablauf-Quellcode main.java erstellt, wie in Fig. 4 durch die Pfeile angedeutet ist. Der genauere Aufbau der Datei main.java wird weiter unten erklärt (vgl. Fig. 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 Fig. 7 bis Fig. 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 Fig. 4 ein konvertierter Java Bytecode vom CAP-Format, wobei unter Java Bytecode ein Code vom CLASS-Format verstanden wird.
Fig. 5 zeigt eine schematische Detaildarstellung des in dem Build-Schritt b) aus Fig. 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 Fig. 6 dargestellt ist. Die Library- Quellcode-Datei library.java aus Fig. 6 enthält als Einträge die Quellcodes aller Funktionselemente, die dem Verfahren bzw. Software-Tool zur Verfügung stehen.
Fig. 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. Fig. 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 Fig. 7 enthält die Ablauf-Zwischencode- Datei main.cap aus Fig. 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.
Fig. 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 Fig. 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 Fig. 10 dargestellt ist.
Fig. 10 zeigt eine schematische Darstellung mehrerer Ablauf-Zwischencodes mainl.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 Fig. 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=l,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.