METHOD FOR CONVERTING SIM TOOLKIT SERVICE BYTE-CODESTO WEB
PAGES.
This invention deals with SIM Toolkit Service Byte-codes (STKSBC) in a personal security token carrying access rights such as a secret key. A typical example of such personal tokens are IC cards such as bank cards, SIM cards inside mobile phones or mobile communication tools such as PDAs (Personal Digital Assistant), physical access cards or USB tokens with access rights, and also for example electronic keys of any type.
STKSBC are a particular arrangement of binary data which represent the elementary SIM Toolkit (Pro-active) command as described in ETSI GSM 11.14.
STKSBC is usually highly compressed information which is designed to be used in Over-the-Air (OTA) mechanism. STKSBC consists of two groups of commands: one group is related with user-interface operations (DISPLAY TEXT, SETUP MENU, SELECT ITEM, GET INKEY, and GET INPUT) and the other group is related with non user-interface operations (such as SEND SMS, SETUP CALL, etc.).
STKSBC is quite rudimentary when one speaks of display abilities. A first purpose of the invention is to provide a way to use STKSBC while enhancing the display abilities to the user.
Another purpose of the invention is to widen the abilities of the STKSBC to another type of organization of data when interacting with an end-user, especially in the field of mobile communication.
Such purposes are achieved thanks to the invention, by means of the features as recited in the appended claims.
Further purposes, benefits and aspects of the invention will appear throughout the following description, which is made in reference to the appended figures, among which :
- figure 1 is a diagram which represents a method of using STKSBC according to the invention.
- A typical page of the set 20 is represented on figure 2
- Figure 3 represents a step of conversion according to the invention.
As represented on figure 1 , STKSBC is a group of STK commands and links between them. All parameters used to build an STK command are generally defined in STKSBC. STKSBC also defines the next STK command to build according to all possible user responses.
STKSBC also comprises a set of predefined parameters, such as text to be displayed, which will be used in the STKSBC commands when the commands will be called.
Figure 1 also represents a series 20 of HTML pages among which a user can go from one HTML page to another as if he went from one STK command to another in the STKSBC 10.
A formatter engine 30 converts the different STK commands 11 , 12, 13... into corresponding HTML pages 21 , 22, 23,... while the user goes from one HTML page to the other.
The formatter engine 30 formats user-interface (Ul) STKSBC commands from the set 10 to become HTML by using HTML templates such as the template represented on figure 2.
Such an action is represented under reference STEP 1 on figure 1.
HTML template consists of one or more than one dynamic variables. Dynamic variables will then be substituted with values taken from either STKSBC or dynamically generated by the Formatter Engine.
In such process, a format descriptor 40 is used which defines in forms of HTML some HTML pages which correspond to the STK commands of the set 10.
XML, or any format as required by the consumer (browser) application can also replace the HTML format.
Format descriptor 40 stores the series of HTML pages 21 , 22, 23... of the set 20. The Format Descriptor 40 is a rule describing how to convert STKSBC into HTML document. This rule is presently in form of HTML document templates.
A typical template 21 a of the set 20 is represented on figure 2, which contains predefined keywords to be substituted by dynamic contents.
In the present example of HTML page, the represented page contains a <$Variables> tag (variable) 210.
This <$Variables> tag will be replaced dynamically on the fly. Variables can be including: parameters defined in STKSBC or a dynamically generated URL to link this command to another command.
For example, let's consider a STKSBC which defines a display text STK command that will display "Hello World" and a corresponding template 22a.
In this example illustrated on figure 3, <$text> as referenced 220 is replaced by parameter "Hello world" which is taken from STKSBC 10.
The represented HTML page also contains <$TR_OK> and <$TR_BACK> keywords which will be substituted by a URL which will point to another command.
The HTML template therefore consists of one or more than one dynamic variables. Dynamic variables are then substituted with values taken from either STKSBC or dynamically generated by the Formatter Engine 30.
An URL is constructed so that, only from this URL, the Formatter Engine 30 can know the next command to build among the commands of the set 10. Such recognition of the next command to build is referenced as STEP 2 on figure 1. To achieve this efficiently, two HTTP parameters are be passed in the URL so as to be equivalent to a GET request command. Those two HTTP parameters are the current command number and the user selection among the command possibilities coming afterwards in the set of commands 10. With these two parameters, Formatter Engine 30 can decide the next command to build among the set of commands 10.
Once recognized in the STKSBC 10, the next command is converted into a HTML page by the formatter engine the same way as described above for the previous STK command.
STK environment is a state environment, where state variable is maintained internally in an STK engine associated with the STKSBC. Because HTTP environment is stateless, Formatter Engine maintains a session variable internally to track the state, and to thereby impose proper state when accessed from all possible entry points.
An URL as used in the set 20 of HTML pages is purposely constructed so that, from this URL with additional volatile storage in SIM memory, the applet which constitutes the formatter engine 30 can check whether the current state is still valid
(even for example when user presses "back" button from his browser). To achieve this, the Formatter Engine 30 stores the current command number when it generates the HTML file which corresponds to such current command. So when the next HTTP request comes after selection by the end-user, the formatter engine compares the current command number as stored and the current command number which is passed by the request coming from the end-user, inside the URL. If it's the same, the formatter engine 30 generates the next command. Otherwise, the formatter engine 30 redirects the user to the first page (to start from beginning). This command number checking is preferably imposed in all pages except the first.
The present embodiment therefore provides a method to represent navigation movement in STKSBC, i.e. a series of moves from one STK command to another STK command by terminal response, into a URL representation. URL to access the next command is generated dynamically by the Formatter Engine. When the user clicks the URL, from the HTTP request alone, the Formatter Engine can know which next command needs to be built and converted.
Non user-interface STK commands are preferably handled by a dedicated application in the token, which application is connected to internet. This command executor application will be triggered by HTTP request.
The application formats non user-interface (non-UI) STKSBC to become HTTP requests which are used to trigger a handler application connected to internet.
A Command executor runs in handset and listens to a certain port number. When the command executor is triggered, it executes the command by invoking an API provided by the OS
Thanks to the present embodiment, STK Services can be presented in web environment, i.e. with an HTML browser.
It becomes possible to directly use the user-interface-related STK commands in web environment although user-interface representation behaviors have different nature in HTML and in STK. Web pages can be used together with STK, which typically consist of one or more HTML files together with their content elements, which are usually multimedia files (JPEG, GIF, etc).
It is possible to have vast variations of user-interface design in web environment although user-interface-related STK commands allow very limited usage of visual items (icon/picture).
Such both benefits are gained although STK-based application works as a state machine while web environment is stateless.