WO2003044751A2 - Control of a traffic toll terminal - Google Patents

Control of a traffic toll terminal Download PDF

Info

Publication number
WO2003044751A2
WO2003044751A2 PCT/EP2002/012842 EP0212842W WO03044751A2 WO 2003044751 A2 WO2003044751 A2 WO 2003044751A2 EP 0212842 W EP0212842 W EP 0212842W WO 03044751 A2 WO03044751 A2 WO 03044751A2
Authority
WO
WIPO (PCT)
Prior art keywords
program
condition
command
execution
memory area
Prior art date
Application number
PCT/EP2002/012842
Other languages
German (de)
French (fr)
Other versions
WO2003044751A3 (en
Inventor
Arndt Berthold
Ludger Holtmann
Andreas Johne
Bernhard Pluhatsch
Gabriele Willer-Scheib
Original Assignee
Giesecke & Devrient Gmbh
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Giesecke & Devrient Gmbh filed Critical Giesecke & Devrient Gmbh
Priority to AU2002365986A priority Critical patent/AU2002365986A1/en
Publication of WO2003044751A2 publication Critical patent/WO2003044751A2/en
Publication of WO2003044751A3 publication Critical patent/WO2003044751A3/en

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/18Payment architectures involving self-service terminals [SST], vending machines, kiosks or multimedia terminals
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/08Payment architectures
    • G06Q20/20Point-of-sale [POS] network systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06QINFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
    • G06Q20/00Payment architectures, schemes or protocols
    • G06Q20/30Payment architectures, schemes or protocols characterised by the use of specific devices or networks
    • G06Q20/34Payment architectures, schemes or protocols characterised by the use of specific devices or networks using cards, e.g. integrated circuit [IC] cards or magnetic cards
    • G06Q20/355Personalisation of cards for use
    • G06Q20/3552Downloading or loading of personalisation data

Definitions

  • the invention relates to the technical field of control and programming of payment traffic terminals.
  • a payment transaction terminal is to be understood in particular to mean any device which carries out transactions using a chip card or other electronic identification and / or storage means.
  • Payment transaction terminals of this type are used in particular for cashless payments of all types by means of credit cards, ec cards, bank cards or cash cards.
  • ATMs and ATMs for refilling cash cards are also regarded as payment terminals, as well as devices that are only indirectly involved in payment and settlement processes (e.g. account statement printers or access control systems).
  • the object of the invention is to avoid all or part of the problems mentioned.
  • the technical fundamentals are to be created by the invention in order to facilitate the programming of payment terminals and / or the adaptation to changed circumstances.
  • the invention is based on the basic idea of not using a program written in a general-purpose programming language for controlling a payment traffic terminal, but rather a control program which is specifically tailored to the requirements and circumstances of payment transaction terminals.
  • the payment terminal is controlled in part or in full in accordance with program instructions, each of which has an instruction part and a validity condition, with each program command being executed only when the validity condition is fulfilled at runtime.
  • the technique according to the invention is particularly advantageous in particular because it enables the payment terminal to be programmed in a manner similar to the representation in typical specifications for transaction processes.
  • the control program can be developed relatively easily on the basis of such a specification, which represents a sequence of input and output actions under predetermined conditions. The time and effort required is reduced and mistakes are avoided. Adaptation to changed specifications or customer requests is also particularly easy and quick.
  • the payment terminal is controlled at least in part in accordance with program instructions which have a specific structure.
  • This wording is also intended to include the case that the program instructions only have the structure mentioned during the development of the program and no longer during the runtime of the control program.
  • the control program can be translated by a compiler into machine-language program structures that are optimized with regard to the execution speed and / or the memory space and therefore have no relation to the structure required according to the invention.
  • this structure of the program instructions (instruction part and validity condition) is still present at runtime of the control program, because coding steps are carried out that allow efficient storage and / or interpretation of the program instructions, but without changing their basic structure .
  • an interpreter is provided which interprets non-machine-language program commands during the program runtime. The use of an interpreter in this way considerably reduces the hardware dependency of the control program, because the interpreter can be viewed as an abstract machine that is uniform for several hardware environments. One and the same control program can therefore be used for payment terminals of various designs. As a result, the total development costs incurred are significantly reduced.
  • this aspect of the invention provides the technical foundations for being able to offer a program instruction set which contains particularly powerful and / or program instructions which are close to the specification. This measure also results in a significant increase in productivity and quality in the creation of control programs for payment terminals.
  • the validity condition is preferably composed of several different condition types.
  • one or more run-over conditions and / or one or more simple execution conditions and / or one or more combined execution conditions can be provided.
  • the command part is divided into a functional section and a parameter section, the functional section in turn being able to specify a command group and a command type at least for some program commands.
  • a particularly memory-saving coding of the program commands takes advantage of the fact that in control programs that occur in practice, many program commands have identical or at least partially identical validity conditions. If the program instructions are stored partly in an instruction memory area and partly in a condition memory area, then identical validity conditions or parts thereof need only be contained once in the condition memory area. Several program instructions can then refer to one and the same data in the condition memory area.
  • a representation of the control program that is particularly advantageous for program development has a main table and, if appropriate, one or more secondary tables. Aids are preferably provided in order to process a control program shown in table form and to convert it into a code that can be processed by the interpreter.
  • the computer-readable data carrier provided according to the invention can be an electronic or magnetic or optical storage medium, e.g. be a floppy disk or hard drive or CD-ROM, but is not limited to physical media. Also electrical or optical signals, e.g. Voltage level of a communication link should be interpreted as computer-readable data carriers in the sense used here.
  • the computer-readable data carrier and / or the payment transaction terminal are further developed with features which correspond to the features described above and / or to the features mentioned in the method claims. Further features, advantages and objects of the invention will become apparent from the following detailed description of several exemplary embodiments and alternative embodiments of the invention. Reference is made to the schematic drawings, in which:
  • FIG. 1 is a representation of hardware and software levels in a payment terminal according to an embodiment of the invention
  • FIG. 2 shows an exemplary representation of a main table in the exemplary embodiment from FIG. 1, FIG.
  • 5A and 5B show an exemplary representation of a main table for the specification according to FIG. 4,
  • FIG. 7 shows an exemplary representation of a coding of the main table from FIG. 2 during the runtime of the control program
  • FIG. 8 shows a flow chart of a conversion process for generating a loadable control program.
  • a hardware Layer 10 has the hardware elements of the payment transaction terminal. With regard to its hardware structure, the payment transaction terminal is known as such. It has a processor 12 which accesses a working memory 14, for example RAM and EEPROM, and a program memory 16, for example ROM and EEPROM. The software to be described for the payment transaction terminal is contained in the program memory 16.
  • the processor 12 is also via a bus 18 with a chip card interface 20, a message interface 22, a crypto processor 24, a printer interface 26, a keyboard interface 28, a display interface 30 and a timer 32 connected.
  • a chip card 34 can be connected to the chip card interface 20.
  • the chip card 34 is not part of the payment transaction terminal and is therefore shown in broken lines in FIG. 1.
  • the message interface 22 can be configured, for example, as a modem for wired or wireless communication.
  • the payment transaction terminal can communicate via the message interface 22 and a corresponding communication medium, e.g. a telephone line or the GSM network or the Internet, with a background system, e.g. the computer system of a bank or a billing center.
  • a corresponding communication medium e.g. a telephone line or the GSM network or the Internet
  • a background system e.g. the computer system of a bank or a billing center.
  • the crypto processor 24 is a module which is specially protected against attacks and which provides cryptographic functions, for example for encrypting personal identification numbers.
  • the crypto processor 24 is not implemented as a hardware module, but rather as a software module executed by the processor 12.
  • the printer interface 26, the keyboard interface 28 and the display interface 30 serve in a manner known per se to control a printer 36, a keyboard 38 and a display 40.
  • the timer 32 provides functions for the program-controlled generation of timeout signals which are required in the communication with the chip card 34 and the background system.
  • a hardware-related software layer 42 with drivers for the hardware elements 20 to 40 just mentioned is placed directly on the hardware layer 10.
  • software modules for a chip card driver 44, a message driver 46, a crypto driver 48, a printer driver 50, a keyboard driver 52, a display driver 54 and a timer driver 56 are provided here.
  • An interpreter layer 58 builds on the hardware-related software layer 42 as a further abstraction level.
  • the interpreter layer 58 contains, as an essential component, an interpreter 60 for the program instructions used to control the payment transaction terminal.
  • control program 62 which conceptually represents a control program layer 64 arranged above the interpreter layer 58.
  • the control program 62 has a main table 66 in which each line contains a program instruction.
  • a plurality of secondary tables 68, 70, 72, 74 are also provided, in which information that logically belongs together is collected.
  • the secondary table contains 68 entries that describe the structure of the individual chip card commands.
  • the secondary table 70 contains information about the structure of the individual messages to the background system, the secondary table 72 contains information about the structure of the responses expected by the background system and the secondary table 74 contains as text table entries with the character strings to be displayed or printed.
  • control commands of the main table 66 In the control commands of the main table 66, a corresponding entry in one of the secondary tables 68 to 74 is referred to, if necessary.
  • the clarity of the control program 62 is considerably increased via the format of chip card commands in the secondary tables 68 to 74.
  • structure of the control program 62 is brought into line with the structure of the relevant specifications and standards.
  • control program 62 the elements of the control program 62 are shown in a tabular form, as is used during the program development. In different exemplary embodiments, this table form is more or less blurred in the final coding of the control program 62, as it is located in the program memory 16, or in extreme cases is no longer recognizable.
  • each program instruction 80x is divided into four main sections, namely a function section 82, a parameter section 84, a condition section 86 and a comment section 88.
  • the function section 82 and the parameter section 84 of each program instruction 80x together form the instruction part of this program instruction 80x.
  • each program instruction 80x defines the function carried out by the program instruction 80x and thus corresponds, for example, to the operation code (OP code) in assembler programming.
  • the functional section 82 is divided into a first subsection 90 for the command group and a second subsection 92 for the command type within each command group. This measure further subdivides the commands available in order to achieve a particularly high level of clarity in the programming and maintenance of the control program 62.
  • each program instruction 80x contains the parameters required for this program instruction.
  • a maximum of three parameters are drawn in the main table 66 according to FIG. 2; however, instruction sets that have a higher or lower maximum number of parameters can also be used in alternative embodiments.
  • the command type is not contained in the second subsection 92 of the function section 82, but as a first parameter in the parameter section 84.
  • program commands 80x are provided for the control program 62, which are those which occur at payment terminals Correspond to basic tasks.
  • the instruction set includes the following program instructions 80x:
  • Command type Output device (printer 36 or display 40) 1.
  • Parameter Reference to text to be output in the secondary table 74
  • Command type no different command types provided 1.
  • Parameter value range of the expected input
  • Command type no different command types provided 1.
  • Parameter chip card command
  • Command group Send a message to the background system
  • Command group Receiving a message from the background system Command type: No different command types provided
  • Command type Encryption method to be used 1. Parameter: Reference to data to be encrypted 2. Parameter: Reference to memory area for decrypted data
  • the individual program instructions 80x of the main table 66 are processed in sequence by the interpreter 60 (FIG. 1), as will be described in detail later. Special commands for program flow control are not provided or only to a very limited extent. Rather, the main mechanism for controlling program flow is that each program instruction 80x in condition section 86 has a valid condition. During the In the program sequence, only those program instructions 80x are executed whose respective validity conditions are fulfilled at runtime. Other program instructions 80x are skipped. With this procedure when processing the program instructions 80x, the program flow is adapted to runtime criteria or inputs or external or internal events, whereby constructs such as conditional jumps can be avoided. For example, this mechanism can be used to send a first message to the background system on successful reading from the chip card, but in the case of a timeout, a second message.
  • FIG. 2 shows exemplary validity conditions, which are composed of up to six predetermined criteria. Typical examples of such criteria are the set payment method, the device variant, an optional functionality, an external event, an internal status of the payment processor or the usage control of the memory or other actuators.
  • the effect of a fulfilled criterion is indicated in the table representation of FIG. 2 by the characters "+", "&" and " ⁇ " in the corresponding column of the condition section 86. If there is no character for a program command 80x in a criteria column, this criterion does not affect the execution of this program command 80x.
  • the validity condition contained in the condition section 86 takes the form of a simple execution condition. This is indicated by the fact that a single criterion in the condition section 86 is marked with the sign "+".
  • the program instruction 80A is executed precisely when the marked criterion, here criterion 2), is fulfilled at runtime.
  • program instruction 80B several simple execution conditions are provided by marking several criteria with the "+" sign.
  • the validity condition corresponds to the OR operation of the individual execution conditions.
  • the program instruction 80B is therefore executed exactly when at least one of the criteria 1, 2 or 3 is fulfilled at runtime.
  • a validity condition called a "combined execution condition” is shown in program instruction 80C. This validity condition is fulfilled if all criteria marked with the character "&" in condition section 86 are met at runtime.
  • a crossing condition is indicated by the character " ⁇ " for one or more criteria of condition section 86. If a run-over condition is met when a program command 80x is executed, this program command 80x is skipped without the other criteria in condition section 86 playing a role. For example, program instruction 80D is never executed if criterion 4 is fulfilled at runtime. As a further example, the program instruction 80E is executed exactly when either criterion 1 is met and criterion 4 is not met, or when criteria 2, 3 and 5 are all met and criterion 4 is not met.
  • FIG. 3 shows an exemplary specification of a response data record of the chip card 34 in tabular form.
  • Corresponding data can be entered in a secondary table on the basis of which the validity of a chip card card response is checked.
  • the secondary table 72 for checking responses of the background system can also have a similar structure. This corresponds to the principles generally used in the present exemplary embodiment, to outsource complex structures and mechanisms in secondary tables and to approximate the representation of the control program 62 as closely as possible to the underlying specifications, at least during the program development.
  • FIG. 4 shows an exemplary and simplified section of the "Prepare loading" sequence for a chip card 34 configured as a cash card in accordance with Chapter 4.12 of the document "Interface specification for the ec card with chip 3.0, cash card loading terminal".
  • Such specifications describe processes in a payment transaction terminal as a sequence of successive, that is to say sequential, output actions (sending) and input actions (receiving).
  • the specification is largely hardware-independent.
  • the main table 66 of a control program 62 corresponding to the specification of FIG. 4 is shown in FIGS. 5A and 5B, FIG. 5A showing the left half of the main table 66 and FIG. 5B the right, immediately following half.
  • the condition section 86 of each program instruction 80x has a variety of possible validity criteria, which are divided into the categories "device functions", “status”, “errors” and "card type”.
  • Criteria of the "device functions" category relate to external conditions which are selected via the keyboard 38 or a cash register or which result from the type of card used or the current operating mode. Examples of such criteria are payment by ec card in an online mode, ie if there is communication with the background system, payment by ec card in an offline mode, ie without access to the background system, payment with a cash card, reloading the cash card from a bank account or payment by Credit card or fleet card.
  • Status and error criteria are usually those that relate to internal device processes and that only occur during the program runtime or change during the program runtime. Examples of such criteria are time errors, interrupts, negative feedback from the background system or the chip card, and auto cancellation conditions.
  • the "Memory" column shown in FIG. 5B serves to specify selectable memory locations for results or input values of individual program instructions.
  • the information shown there is therefore to be understood conceptually as a command parameter, even if it is optically arranged in the condition section 86 and is stored internally in some embodiments of the system according to the invention like criteria of validity conditions.
  • the interpreter 60 executes a program loop, as is shown by way of example in FIG. 6.
  • a command counter of the interpreter 60 is set to the first program command 80A in the main table 66 of the control program 62.
  • a device status is formed which contains the current status of the individual criteria possible for the validity conditions.
  • the interpreter 60 now accesses the current program instruction 80x and loads its validity condition contained in the condition section 86 (step 104).
  • query 106 it is checked whether at least one crossing criterion specified in the validity condition of the current program command
  • step 110 To execute the program instruction 80x, its function section 82 is first decoded (step 110).
  • step 112 the interpreter 60 calls the corresponding driver (reference numerals 44 to 56 in FIG. 1) and transfers the data to the driver module 44 to 56 in accordance with the parameter section 84 of the program instruction 80x. After the command execution by the driver module 44 to 56, possibly returned data values are stored in accordance with the information in parameter section 84.
  • the entire main table 66 is thus cycled through in an endless loop.
  • means are provided for structuring the control program 62 or for controlling the program flow.
  • program parts can be exported to other tables and how subroutines can be called.
  • the instruction set can also contain jump instructions to predetermined destinations within the main table 66 or to the sub-tables just mentioned; such jumps are carried out when their respective validity condition is fulfilled.
  • control program 62 can be present in different codings.
  • a particularly simple coding of the tables shown in the previous figures would be, for example, the representation as ASCII text or in a page description language, for example HTML or XML or in a common file format, for example as in the programs Microsoft® Word or Microsoft® Excel®.
  • the interpreter 60 reads in and executes control programs 62 in such a coding directly.
  • exemplary embodiments are preferred in which the control program 62 is in an efficiently coded form.
  • An example of such a coding of the main table 66 of FIG. 2 is shown in FIG. 7. In the exemplary coding of FIG.
  • the main table 66 is stored partly in an instruction memory area 120 and partly in a condition memory area 122.
  • the instruction memory area 120 has two, three or four bytes, namely a first byte for coding the function (instruction group and possibly instruction type), a second byte which contains a reference to a validity condition entered in the condition memory area 122, and zero , one or two further bytes for the corresponding number of parameters of the program instruction 80x.
  • the first parameter is to be coded in the first byte like a command type.
  • the values shown in FIG. 7 are exemplary encodings for the program instructions 80x shown in plain text in FIG. 2.
  • the condition storage area 122 contains an entry for each valid condition occurring in the main table 66. As can be seen from FIGS. 5A and 5B, in practice several program instructions 80x of the main table 66 often have the same validity condition. This validity condition is only present once in the condition storage area 122, thereby avoiding unnecessary duplication of identical validity conditions.
  • each entry in the condition storage area 122 has two bit fields 124, 126 which each contain one bit for each possible validity criterion.
  • the assignment of these bits to the validity criteria is identical in both bit fields 124, 126.
  • only six validity criteria are provided, so that each of the bit fields 124, 126 uses only six bits of one byte each.
  • the queries 106, 108 and 114 of FIG. 6 can be carried out in a particularly simple manner.
  • the device status is also represented in step 102 in the form of a bit field which corresponds to the format of the bit fields 124, 126 with regard to the arrangement of the validity criteria.
  • a runover condition is fulfilled if the AND link between the device status and the second bit field 126 and the negation of the first bit field 124 is not equal to zero.
  • step 108 the existence of a simple execution condition can be checked by an AND operation between the device status and the first bit field 124 and the negation of the second bit field 126.
  • the run-over information is contained in the condition storage area 122, in alternative embodiments it can be provided that only condition conditions are recorded in the condition storage area 122 and any existing run-over conditions are managed separately. In general, provision can also be made to use the procedure proposed here for the common storage of identical validity conditions only for some of the available validity criteria.
  • FIG. 8 shows a method which is used in the exemplary embodiment described here for coding the various tables of the control program 62 (FIG. 1) and for generating a program which can be loaded into the program memory 16 (file "zvt.hex" in the hex code).
  • the method according to FIG. 8 is based on a main table 66, which is in a coding that is easy to edit for the programmer (here as file “zvt_tab.xls” in the format of the spreadsheet program Microsoft® Excel®).
  • This file is analyzed in step 130 and converted into a coding which corresponds to a source text segment of the programming language C (file "zvt_tab.c").
  • Common tools such as e.g. the Lex and Yacc programs are used.
  • a code segment can be created in the following structure:
  • const uchar ztab [] ⁇ OxCO, 0x01, / * 1-byte command * /
  • a binding program generates a loadable program therefrom in step 134 (file "zvt.hex").
  • object file "zvt_tab.obj” and the loadable program "zvt.hex” contain binary data which correspond to the coding shown by way of example in FIG. 7.
  • the loadable program (file “zvt.hex") implements the software layers 42, 58 and 64 (FIG. 1) of the payment transaction terminal according to the exemplary embodiment of the invention described here.
  • the program is loaded into the hardware of the payment terminal via a suitable interface in order to obtain a workable system.

Abstract

The invention relates to a method for controlling a traffic toll terminal, during which the control is effected, at least in part, according to program commands (80x), each of which having a command part and a validity condition. Only program commands (80x) are executed whose respective validity condition is fulfilled at the time of execution. In another method of this type, the program commands (80x) are interpreted at the time of execution by an interpreter of the traffic toll terminal. A data carrier that can be read by a computer and a traffic toll terminal both have corresponding features. The invention creates technical foundations for simplifying the programming of traffic toll terminals and/or their adaptation to modified conditions.

Description

Steuerung eines Zahlungsverkehrsterminals Control of a payment transaction terminal
Die Erfindung betrifft das technische Gebiet der Steuerung und Programmie- rung von Zahlungs Verkehrsterminals.The invention relates to the technical field of control and programming of payment traffic terminals.
Unter einem Zahlungsverkehrsterminal soll im vorliegenden Dokument insbesondere jedes Gerät verstanden werden, das Transaktionen unter Verwendung einer Chipkarte oder eines sonstigen elektronischen Identifizierungs- und/ oder Speichermittels durchführt. Derartige Zahlungsverkehrsterminals werden insbesondere für bargeldlose Zahlungen aller Art mittels Kreditkarten, ec-Karten, Bankkarten oder Geldkarten eingesetzt. In der hier verwendeten Wortwahl werden als Zahlungsverkehrsterminals auch Geldautomaten und Automaten zum Auffüllen von Geldkarten angesehen, sowie Geräte, die lediglich indirekt mit Zahlungs- und Abrechnungsvorgängen zu tun haben (z.B. Kontoauszugsdrucker oder Zugangskontrollsysteme).In the present document, a payment transaction terminal is to be understood in particular to mean any device which carries out transactions using a chip card or other electronic identification and / or storage means. Payment transaction terminals of this type are used in particular for cashless payments of all types by means of credit cards, ec cards, bank cards or cash cards. In the wording used here, ATMs and ATMs for refilling cash cards are also regarded as payment terminals, as well as devices that are only indirectly involved in payment and settlement processes (e.g. account statement printers or access control systems).
Es ist bekannt, bei derartigen Zahlungsverkehrsterminals die erforderlichen Abläufe (z.B. Transaktionen mit der Chipkarte oder mit einem Hintergrund- System, Ansteuerung einer Anzeige oder eines Druckers, Eingabevorgänge) durch ein in Assembler oder in einer höheren Programmiersprache geschriebenes Programm zu steuern. Erfolgt die Programmierung beispielsweise in der Programmiersprache C, so wird das Quellprogramm mittels eines Compilers in einen vom Prozessor des Zahlungsverkehrsterminals unmittelbar ausführbaren Objektcode umgesetzt.It is known to control the necessary processes (such as transactions with the chip card or with a background system, control of a display or a printer, input processes) in a payment transaction terminal of this type using a program written in assembler or in a higher programming language. If programming is carried out, for example, in the programming language C, the source program is converted by means of a compiler into an object code that can be executed directly by the processor of the payment transaction terminal.
Solche in einer allgemeinen Programmiersprache geschriebenen Steuerprogramme sind jedoch komplex und unübersichtlich. Sie sind anfällig für Programmierfehler und lassen sich nur mit hohem Aufwand warten. Eine Anpassung an Kundenwünsche, geänderte Spezifikationen und Änderungsanforderungen von Netzbetreibern ist komplex und aufwendig. Ein in Assembler geschriebenes Programm muss für jede Hardwareplattform neu entwickelt werden. Auch bei Programmen in einer höheren Programmiersprache (z.B. der Sprache C) sind für jede neue Hardware erhebliche Anpassungsarbeiten erforderlich.However, such control programs written in a general programming language are complex and confusing. They are susceptible to programming errors and can only be maintained with great effort. Adaptation to customer requirements, changed specifications and change requests from network operators is complex and time-consuming. An in Assembler-written programs must be newly developed for each hardware platform. Even with programs in a higher programming language (eg the C language), considerable adjustment work is required for each new hardware.
Die Erfindung hat die Aufgabe, die genannten Probleme ganz oder teilweise zu vermeiden. Insbesondere sollen durch die Erfindung die technischen Grundlagen geschaffen werden, um die Programmierung von Zahlungsverkehrsterminals und/ oder die Anpassung an geänderte Gegebenheiten zu erleichtern. Ferner soll eine möglichst weitgehendeThe object of the invention is to avoid all or part of the problems mentioned. In particular, the technical fundamentals are to be created by the invention in order to facilitate the programming of payment terminals and / or the adaptation to changed circumstances. Furthermore, the most extensive possible
Hardwareunkabhängigkeit des Steuerprogramms erreicht werden.Hardware independence of the control program can be achieved.
Erfindungsgemäß wird diese Aufgabe durch Verfahren mit den Merkmalen der Ansprüche 1 und 6 sowie durch einen computerlesbaren Datenträger gemäß Anspruch 8 und ein Zahlungsverkehrsterminal gemäß Anspruch 9 gelöst. Die abhängigen Ansprüche betreffen bevorzugte Ausgestaltungen der Erfindung.According to the invention, this object is achieved by methods having the features of claims 1 and 6, and by a computer-readable data carrier according to claim 8 and a payment transaction terminal according to claim 9. The dependent claims relate to preferred embodiments of the invention.
Die Erfindung geht von der Grundidee aus, zur Steuerung eines Zahlungs- Verkehrsterminals nicht ein in einer Allzweck-Programmiersprache geschriebenes Programm zu verwenden, sondern vielmehr ein Steuerprogramm, das speziell auf die Erfordernisse und Gegebenheiten bei Zahlungsverkehrsterminals zugeschnitten ist.The invention is based on the basic idea of not using a program written in a general-purpose programming language for controlling a payment traffic terminal, but rather a control program which is specifically tailored to the requirements and circumstances of payment transaction terminals.
Gemäß einem ersten Aspekt der Erfindung ist vorgesehen, dass die Steuerung des Zahlungsverkehrsterminals zum Teil oder vollständig gemäß Programmbefehlen erfolgt, die jeweils einen Befehlsteil und eine Gültigkeitsbedingung aufweisen, wobei jeder Programmbefehl nur bei zur Laufzeit erfüllter Gültigkeitsbedingung ausgeführt wird. Diese Maßnahme stellt eine Abkehr von der bei herkömmlichen Allzweck-Programmiersprachen üblichen Technik dar, unterschiedliche Konstrukte für Bedingungen und Instruktionen zu verwenden.According to a first aspect of the invention, it is provided that the payment terminal is controlled in part or in full in accordance with program instructions, each of which has an instruction part and a validity condition, with each program command being executed only when the validity condition is fulfilled at runtime. This measure represents a Moving away from the technology common in conventional general-purpose programming languages is to use different constructs for conditions and instructions.
Die erfindungsgemäße Technik ist insbesondere deshalb besonders vorteilhaft, weil sie eine Programmierung des Zahlungsverkehrsterminals auf eine Weise ermöglicht, die der Darstellung in typischen Spezifikationen für Transaktionsvorgänge ähnelt. Auf der Grundlage einer derartigen Spezifikation, die eine Folge von Ein- und Ausgabeaktionen unter vorgegebenen Bedingungen darstellt, kann das Steuerprogramm relativ leicht entwickelt werden. Der erforderliche Zeit- und Arbeitsaufwand wird verringert, und Fehler werden vermieden. Auch eine Anpassung an geänderte Spezifikationen oder an Kundenwünsche ist besonders einfach und schnell möglich.The technique according to the invention is particularly advantageous in particular because it enables the payment terminal to be programmed in a manner similar to the representation in typical specifications for transaction processes. The control program can be developed relatively easily on the basis of such a specification, which represents a sequence of input and output actions under predetermined conditions. The time and effort required is reduced and mistakes are avoided. Adaptation to changed specifications or customer requests is also particularly easy and quick.
Erfindungsgemäß erfolgt die Steuerung des Zahlungsverkehrsterminals zumindest zum Teil gemäß Programmbefehlen, die eine bestimmte Struktur aufweisen. Diese Formulierung soll auch den Fall umfassen, dass die Programmbefehle die genannte Struktur nur während der Prograrnrnentwick- lung und nicht mehr zur Laufzeit des Steuerprogramms aufweisen. Bei- spielsweise kann in manchen Ausführungsformen das Steuerprogramm durch einen Compiler in maschinensprachliche Programmstrukturen übersetzt werden, die im Hinblick auf die Ausführungsgeschwindigkeit und/ oder den Speicherplatz optimiert sind und daher keine Beziehung zu der erfindungsgemäß geforderten Struktur mehr haben. In bevorzugten Aus- führungsformen ist jedoch diese Struktur der Programmbefehle (Befehlsteil und Gültigkeitsbedingung) auch zur Laufzeit des Steuerprogramms noch vorhanden, weil allenfalls Codierungsschritte vorgenommen werden, die eine effiziente Speicherung und/ oder Interpretierung der Programmbef eitle erlauben, ohne jedoch ihren grundsätzlichen Aufbau zu verändern. Nach einem zweiten Aspekt der Erfindung ist ein Interpreter vorgesehen, der nicht-maschinensprachliche Programmbefehle während der Programm- • laufzeit interpretiert. Eine derartige Verwendung eines Interpreters verrin- gert die Hardwareabhängigkeit des Steuerprogramms erheblich, weil der Interpreter als abstrakte, für mehrere Hardwareumgebungen einheitliche Maschine angesehen werden kann. Ein und dasselbe Steuerprogramm ist daher für Zahlungsverkehrsterminals unterschiedlichster Bauart verwendbar. Die insgesamt anfallenden Entwicklungskosten werden dadurch erheb- lieh verringert. Überdies werden durch diesen Aspekt der Erfindung die technischen Grundlagen geschaffen, um einen Programmbefehlssatz anbieten zu können, der besonders leistungsfähige und/ oder spezifikationsnahe Programmbefehle enthält. Auch durch diese Maßnahme ergibt sich eine erhebliche Steigerung der Produktivität und Qualität bei der Erstellung von Steuerprogrammen für Zahlungsverkehrsterminals.According to the invention, the payment terminal is controlled at least in part in accordance with program instructions which have a specific structure. This wording is also intended to include the case that the program instructions only have the structure mentioned during the development of the program and no longer during the runtime of the control program. For example, in some embodiments, the control program can be translated by a compiler into machine-language program structures that are optimized with regard to the execution speed and / or the memory space and therefore have no relation to the structure required according to the invention. In preferred embodiments, however, this structure of the program instructions (instruction part and validity condition) is still present at runtime of the control program, because coding steps are carried out that allow efficient storage and / or interpretation of the program instructions, but without changing their basic structure , According to a second aspect of the invention, an interpreter is provided which interprets non-machine-language program commands during the program runtime. The use of an interpreter in this way considerably reduces the hardware dependency of the control program, because the interpreter can be viewed as an abstract machine that is uniform for several hardware environments. One and the same control program can therefore be used for payment terminals of various designs. As a result, the total development costs incurred are significantly reduced. In addition, this aspect of the invention provides the technical foundations for being able to offer a program instruction set which contains particularly powerful and / or program instructions which are close to the specification. This measure also results in a significant increase in productivity and quality in the creation of control programs for payment terminals.
In bevorzugten Ausführungsformen sind die beiden bisher beschriebenen Aspekte der Erfindung miteinander kombiniert, um eine Kombination der genannten Vorteile zu erreichen.In preferred embodiments, the two previously described aspects of the invention are combined with one another in order to achieve a combination of the advantages mentioned.
Vorzugsweise ist die Gültigkeitsbedingung aus mehreren unterschiedlichen Bedingungsarten zusammengesetzt. Insbesondere können eine oder mehrere Überfahrbedingungen und/ oder eine oder mehrere einfache Ausführungsbedingungen und/ oder eine oder mehrere kombinierte Ausführungsbedin- gungen vorgesehen sein. Der Befehlsteil ist in bevorzugten Ausführungsformen in einen Funktionsabschnitt und einen Parameterabschnitt gegliedert, wobei der Funktionsabschnitt seinerseits zumindest bei manchen Programmbefehlen eine Befehlsgruppe und einen Befehlstyp angeben kann. Eine besonders speicherplatzsparende Codierung der Programmbefehle nutzt die Tatsache aus, dass bei in der Praxis auftretenden Steuerprogrammen viele Programmbefehle identische oder zumindest teilweise identische Gültigkeitsbedingungen aufweisen. Wenn die Programmbefehle teils in einem Befehlsspeicherbereich und teils in einem Bedingungsspeicherbereich abgelegt werden, so brauchen identische Gültigkeitsbedingungen oder Teile davon nur einmal in dem Bedingungsspeicherbereich enthalten zu sein. Es können dann mehrere Programmbefehle auf ein und dieselben Daten im Bedingungsspeicherbereich verweisen.The validity condition is preferably composed of several different condition types. In particular, one or more run-over conditions and / or one or more simple execution conditions and / or one or more combined execution conditions can be provided. In preferred embodiments, the command part is divided into a functional section and a parameter section, the functional section in turn being able to specify a command group and a command type at least for some program commands. A particularly memory-saving coding of the program commands takes advantage of the fact that in control programs that occur in practice, many program commands have identical or at least partially identical validity conditions. If the program instructions are stored partly in an instruction memory area and partly in a condition memory area, then identical validity conditions or parts thereof need only be contained once in the condition memory area. Several program instructions can then refer to one and the same data in the condition memory area.
Eine für die Programmentwicklung besonders vorteilhafte Darstellung des Steuerprogramms weist eine Haupttabelle und gegebenenfalls eine oder mehrere Nebentabellen auf. Vorzugsweise sind Hilfsmittel vorgesehen, um ein in Tabellenform dargestelltes Steuerprogramm zu bearbeiten und um es in eine für den Interpreter verarbeitbare Codierung umzuwandeln.A representation of the control program that is particularly advantageous for program development has a main table and, if appropriate, one or more secondary tables. Aids are preferably provided in order to process a control program shown in table form and to convert it into a code that can be processed by the interpreter.
Der erfindungsgemäß vorgesehene computerlesbare Datenträger kann ein elektronisches oder magnetisches oder optisches Speichermedium, z.B. eine Diskette oder Festplatte oder CD-ROM sein, ist aber nicht auf körperliche Datenträger beschränkt. Auch elektrische oder optische Signale, z.B. Spannungspegel einer Kommunikationsverbindung, sollen im hier verwendeten Sinne als computerlesbare Datenträger aufgefasst werden.The computer-readable data carrier provided according to the invention can be an electronic or magnetic or optical storage medium, e.g. be a floppy disk or hard drive or CD-ROM, but is not limited to physical media. Also electrical or optical signals, e.g. Voltage level of a communication link should be interpreted as computer-readable data carriers in the sense used here.
In bevorzugten Ausgestaltungen sind der computerlesbare Datenträger und/ oder das Zahlungsverkehrsterminal mit Merkmalen weitergebildet, die den oben beschriebenen und/ oder den in den Verfahrensansprüchen genannten Merkmalen entsprechen. Weitere Merkmale, Vorteile und Aufgaben der Erfindung gehen aus der folgenden detaillierten Beschreibung mehrerer Ausführungsbeispiele und Ausführungsalternativen der Erfindung hervor. Es wird auf die schematischen Zeichnungen verwiesen, in denen zeigen:In preferred configurations, the computer-readable data carrier and / or the payment transaction terminal are further developed with features which correspond to the features described above and / or to the features mentioned in the method claims. Further features, advantages and objects of the invention will become apparent from the following detailed description of several exemplary embodiments and alternative embodiments of the invention. Reference is made to the schematic drawings, in which:
Fig. 1 eine Darstellung von Hardware- und Softwareebenen bei einem Zahlungsverkehrsterminal nach einem Ausführungsbeispiel der Erfindung,1 is a representation of hardware and software levels in a payment terminal according to an embodiment of the invention,
Fig. 2 eine beispielhafte Darstellung einer Haupttabelle in dem Ausführungs- beispiel von Fig. 1,FIG. 2 shows an exemplary representation of a main table in the exemplary embodiment from FIG. 1, FIG.
Fig. 3 eine beispielhafte Spezifikation eines Datensatz-Formats,3 shows an exemplary specification of a data record format,
Fig. 4 eine beispielhafte Spezifikation eines Transaktionsablaufs,4 shows an exemplary specification of a transaction flow,
Fig. 5A und Fig. 5B eine beispielhafte Darstellung einer Haupttabelle für die Spezifikation gemäß Fig. 4,5A and 5B show an exemplary representation of a main table for the specification according to FIG. 4,
Fig. 6 ein Flußdiagramm der von einem Interpreter ausgeführten Programm- schleife,6 shows a flow chart of the program loop executed by an interpreter,
Fig. 7 eine beispielhafte Darstellung einer Codierung der Haupttabelle von Fig. 2 während der Laufzeit des Steuerprogramms, undFIG. 7 shows an exemplary representation of a coding of the main table from FIG. 2 during the runtime of the control program, and
Fig. 8 ein Ablaufschema eines Umsetzvorgangs zur Erzeugung eines ladbaren Steuerprogramms.8 shows a flow chart of a conversion process for generating a loadable control program.
In der Darstellung von Fig. 1 ist ein Zahlungsverkehrsterminal in seinen aufeinander aufbauenden funktionalen Schichten gezeigt. Eine Hardware- Schicht 10 weist die Hardware-Elemente des Zahlungsverkehrsterminals auf. Hinsichtlich seines Hardware- Aufbaus ist das Zahlungsverkehrsterminal als solches bekannt. Es weist einen Prozessor 12 auf, der auf einen Arbeitsspeicher 14, z.B. RAM und EEPROM, und einen Programmspeicher 16, z.B. ROM und EEPROM, zugreift. Die noch zu beschreibende Software des Zahlungsverkehrsterminals ist in dem Programmspeicher 16 enthalten.1 shows a payment transaction terminal in its functional layers that build on one another. A hardware Layer 10 has the hardware elements of the payment transaction terminal. With regard to its hardware structure, the payment transaction terminal is known as such. It has a processor 12 which accesses a working memory 14, for example RAM and EEPROM, and a program memory 16, for example ROM and EEPROM. The software to be described for the payment transaction terminal is contained in the program memory 16.
Der Prozessor 12 ist ferner über einen Bus 18 mit einer Chipkarten-Schnittstelle 20, einer Nachrichten-Schnittstelle 22, einem Krypto-Prozessor 24, ei- ner Drucker-Schnittstelle 26, einer Tastatur-Schnittstelle 28, einer Anzeigen- Schnittstelle 30 und einem Zeitgeber 32 verbunden. Eine Chipkarte 34 ist an die Chipkarten-Schnittstelle 20 anschließbar. Die Chipkarte 34 ist nicht Bestandteil des Zahlungsverkehrsterminals und deshalb in Fig. 1 gestrichelt dargestellt.The processor 12 is also via a bus 18 with a chip card interface 20, a message interface 22, a crypto processor 24, a printer interface 26, a keyboard interface 28, a display interface 30 and a timer 32 connected. A chip card 34 can be connected to the chip card interface 20. The chip card 34 is not part of the payment transaction terminal and is therefore shown in broken lines in FIG. 1.
Die Nachrichten-Schnittstelle 22 kann beispielsweise als Modem für die drahtgebundene oder drahtlose Kommunikation ausgestaltet sein. Das Zahlungsverkehrsterminal vermag über die Nachrichten-Schnittstelle 22 und ein entsprechendes Kommunikationsmedium, z.B. eine Telefonleitung oder das GSM-Netz oder das Internet, mit einem Hintergrundsystem, z.B. dem Computersystem einer Bank oder einer Abrechnungszentrale, zu kommunizieren.The message interface 22 can be configured, for example, as a modem for wired or wireless communication. The payment transaction terminal can communicate via the message interface 22 and a corresponding communication medium, e.g. a telephone line or the GSM network or the Internet, with a background system, e.g. the computer system of a bank or a billing center.
Der Krypto-Prozessor 24 ist eine speziell gegen Angriffe gesicherte Baugrup- pe, die kryptographische Funktionen, z.B. zur Verschlüsselung persönlicher Identifikationsnummern, bereitstellt. In Ausführungsalternativen ist der Krypto-Prozessor 24 nicht als Hardware-Baugruppe, sondern als von dem Prozessor 12 ausgeführtes Software-Modul realisiert. Die Drucker-Schnittstelle 26, die Tastatur-Schnittstelle 28 und die Anzeigen- Schnittstelle 30 dienen auf an sich bekannte Weise zur Ansteuerung eines Druckers 36, einer Tastatur 38 sowie einer Anzeige 40. Der Zeitgeber 32 stellt Funktionen zur programmgesteuerten Generierung von Zeitüberschrei- tungssignalen bereit, die bei der Kommunikation mit der Chipkarte 34 und dem Hintergrundsystem benötigt werden.The crypto processor 24 is a module which is specially protected against attacks and which provides cryptographic functions, for example for encrypting personal identification numbers. In alternative embodiments, the crypto processor 24 is not implemented as a hardware module, but rather as a software module executed by the processor 12. The printer interface 26, the keyboard interface 28 and the display interface 30 serve in a manner known per se to control a printer 36, a keyboard 38 and a display 40. The timer 32 provides functions for the program-controlled generation of timeout signals which are required in the communication with the chip card 34 and the background system.
Unmittelbar auf die Hardwareschicht 10 setzt eine hardwarenahe Softwareschicht 42 mit Treibern für die gerade genannten Hardware-Elemente 20 bis 40 auf. Bei dem in Fig. 1 gezeigten Ausführungsbeispiel sind hier Softwaremodule für einen Chipkartentreiber 44, einen Nachrichtentreiber 46, einen Kryptotreiber 48, einen Druckertreiber 50, einen Tastaturtreiber 52, einen Anzeigentreiber 54 und einen Zeitgeber-Treiber 56 vorgesehen.A hardware-related software layer 42 with drivers for the hardware elements 20 to 40 just mentioned is placed directly on the hardware layer 10. In the exemplary embodiment shown in FIG. 1, software modules for a chip card driver 44, a message driver 46, a crypto driver 48, a printer driver 50, a keyboard driver 52, a display driver 54 and a timer driver 56 are provided here.
Auf die hardwarenahe Softwareschicht 42 baut als weitere Abstraktionsebene eine Interpreter-Schicht 58 auf. Die Interpreter-Schicht 58 enthält als wesentlichen Bestandteil einen Interpreter 60 für die zur Steuerung des Zahlungsverkehrsterminals verwendeten Programmbefehle.An interpreter layer 58 builds on the hardware-related software layer 42 as a further abstraction level. The interpreter layer 58 contains, as an essential component, an interpreter 60 for the program instructions used to control the payment transaction terminal.
Die Programmbefehle sowie weitere für die Steuerung benötigte Informationen bilden ein Steuerprogramm 62, das konzeptuell eine über der Interpreter-Schicht 58 angeordnete Steuerprogramm-Schicht 64 darstellt. Das Steuerprogramm 62 weist eine Haupttabelle 66 auf, in der jede Zeile einen Programmbefehl enthält.The program instructions and further information required for the control form a control program 62, which conceptually represents a control program layer 64 arranged above the interpreter layer 58. The control program 62 has a main table 66 in which each line contains a program instruction.
Im hier beschriebenen Ausführungsbeispiel sind ferner mehrere Nebentabellen 68, 70, 72, 74 vorgesehen, in denen jeweils logisch zusammengehörige Informationen gesammelt sind. So enthält beispielsweise die Nebentabelle 68 Einträge, die den Aufbau der einzelnen Chipkarten-Kommandos beschrei- ben, die Nebentabelle 70 enthält Informationen über den Aufbau der einzelnen Nachrichten an das Hintergrundsystem, die Nebentabelle 72 enthält Informationen über den Aufbau der vom Hintergrundsystem erwarteten Antworten und die Nebentabelle 74 enthält als Texttabelle Einträge mit den anzuzeigenden oder auszudruckenden Zeichenketten.In the exemplary embodiment described here, a plurality of secondary tables 68, 70, 72, 74 are also provided, in which information that logically belongs together is collected. For example, the secondary table contains 68 entries that describe the structure of the individual chip card commands. The secondary table 70 contains information about the structure of the individual messages to the background system, the secondary table 72 contains information about the structure of the responses expected by the background system and the secondary table 74 contains as text table entries with the character strings to be displayed or printed.
In den Steuerbefehlen der Haupttabelle 66 wird, falls erforderlich, auf einen entsprechenden Eintrag in einer der Nebentabellen 68 bis 74 verwiesen. Durch die Auslagerung aller Informationen über bestimmte Funktions- einheiten, z.B. über das Format von Chipkarten-Kommandos, in die Nebentabellen 68 bis 74 wird die Übersichtlichkeit des Steuerprogramms 62 erheblich erhöht. Außerdem wird dadurch das Steuerprogramm 62 in seiner Struktur an die Gliederung der einschlägigen Spezifikationen und Normen angeglichen.In the control commands of the main table 66, a corresponding entry in one of the secondary tables 68 to 74 is referred to, if necessary. By outsourcing all information about certain functional units, e.g. The clarity of the control program 62 is considerably increased via the format of chip card commands in the secondary tables 68 to 74. In addition, the structure of the control program 62 is brought into line with the structure of the relevant specifications and standards.
In Fig. 1 sind der klareren Darstellung halber die Elemente des Steuerprogramms 62 in einer Tabellenform gezeigt, wie sie während der Programmentwicklung verwendet wird. In unterschiedlichen Ausführungsbeispielen ist diese Tabellenform in der endgültigen Codierung des Steuerprogramms 62, wie sie sich im Programmspeicher 16 befindet, mehr oder weniger verwischt oder im Extremfall gar nicht mehr erkennbar.1, for the sake of clarity, the elements of the control program 62 are shown in a tabular form, as is used during the program development. In different exemplary embodiments, this table form is more or less blurred in the final coding of the control program 62, as it is located in the program memory 16, or in extreme cases is no longer recognizable.
Fig. 2 zeigt ein Beispiel für den Aufbau der Haupttabelle 66. Auch hier ist die für die Programmentwicklung verwendete Tabellenform gezeigt; eine bei- spielhafte Laufzeit-Codierung wird später unter Hinweis auf Fig. 7 beschrieben werden. Wie bereits erwähnt, weist die Haupttabelle 66 eine Vielzahl von Zeilen auf, in denen je ein Programmbefehl 80 A, 80B, 80C, ... enthalten ist (die Programmbefehle 80 A, 80B, 80C, ... werden im folgenden auch zusammenfassend mit dem Bezugszeichen 80x bezeichnet). Die Haupttabelle 66 und damit jeder Programmbefehl 80x ist in vier Hauptabschnitte unterteilt, nämlich in einen Funktionsabschnitt 82, einen Parameterabschnitt 84, einen Bedingungsabschnitt 86 und einen Kommentarabschnitt 88. Der Funktionsabschnitt 82 und der Parameterabschnitt 84 jedes Programmbefehls 80x bilden zusammen den Befehlsteil dieses Programmbefehls 80x.2 shows an example of the structure of the main table 66. The table form used for the program development is also shown here; an exemplary runtime coding will be described later with reference to FIG. 7. As already mentioned, the main table 66 has a large number of lines, each of which contains a program instruction 80 A, 80B, 80C, ... (the program instructions 80 A, 80B, 80C, ... are also summarized below in the following 80x). The main table 66 and thus each program instruction 80x is divided into four main sections, namely a function section 82, a parameter section 84, a condition section 86 and a comment section 88. The function section 82 and the parameter section 84 of each program instruction 80x together form the instruction part of this program instruction 80x.
Der Funktionsabschnitt 82 jedes Programmbefehls 80x definiert die von dem Programmbefehl 80x ausgeführte Funktion und entspricht somit beispielsweise dem Operationscode (OP-code) in Assembler-Programmierung. Im hier beschriebenen Ausführungsbeispiel ist der Funktionsabschnitt 82 in einen ersten Unterabschnitt 90 für die Befehlsgruppe und einen zweiten Unterabschnitt 92 für den Befehlstyp innerhalb jeder Befehlsgruppe unterteilt. Durch diese Maßnahme werden die zur Verfügung stehenden Befehle weiter gegliedert, um eine besonders hohe Übersichtlichkeit bei der Programmierung und bei der Wartung des Steuerprogramms 62 zu erreichen.The function section 82 of each program instruction 80x defines the function carried out by the program instruction 80x and thus corresponds, for example, to the operation code (OP code) in assembler programming. In the exemplary embodiment described here, the functional section 82 is divided into a first subsection 90 for the command group and a second subsection 92 for the command type within each command group. This measure further subdivides the commands available in order to achieve a particularly high level of clarity in the programming and maintenance of the control program 62.
Im Parameterabschnitt 84 jedes Programmbefehls 80x sind die für diesen Programmbefehl erforderlichen Parameter enthalten. In der Haupttabelle 66 gemäß Fig. 2 sind maximal drei Parameter eingezeichnet; es können jedoch in Ausführungsalternativen auch Befehlssätze verwendet werden, die eine höhere oder geringere maximale Parameterzahl aufweisen. In weiteren Ausführungsalternativen ist der Befehlstyp nicht in dem zweiten Unterabschnitt 92 des Funktionsabschnitts 82, sondern als erster Parameter in dem Parame- terabschnitt 84 enthalten.The parameter section 84 of each program instruction 80x contains the parameters required for this program instruction. A maximum of three parameters are drawn in the main table 66 according to FIG. 2; however, instruction sets that have a higher or lower maximum number of parameters can also be used in alternative embodiments. In further alternative embodiments, the command type is not contained in the second subsection 92 of the function section 82, but as a first parameter in the parameter section 84.
Im vorliegenden Ausführungsbeispiel sind für das Steuerprogramm 62 Programmbefehle 80x vorgesehen, die den bei Zahlungsterminals auftretenden Grundaufgaben entsprechen. Der Befehlssatz enthält unter anderem die folgenden Programmbefehle 80x:In the present exemplary embodiment, program commands 80x are provided for the control program 62, which are those which occur at payment terminals Correspond to basic tasks. The instruction set includes the following program instructions 80x:
a) Befehlsgruppe: Zurücksetzena) Command group: reset
Befehlstyp: Kennung des zurückzusetzenden Prozessors Parameter: keineCommand type: ID of the processor to be reset. Parameter: none
b) Befehlsgruppe: Anzeigenb) Command group: display
Befehlstyp: Ausgabegerät (Drucker 36 oder Anzeige 40) 1. Parameter: Verweis auf auszugebenden Text in der Nebentabelle 74Command type: Output device (printer 36 or display 40) 1. Parameter: Reference to text to be output in the secondary table 74
c) Befehlsgruppe: Tastaturabfragec) Command group: keyboard query
Befehlstyp: keine unterschiedlichen Befehlstypen vorgesehen 1. Parameter: Wertebereich der erwarteten EingabeCommand type: no different command types provided 1. Parameter: value range of the expected input
d) Befehlsgruppe: Senden an Chipkarted) Command group: Send to chip card
Befehlstyp: keine unterschiedlichen Befehlstypen vorgesehen 1. Parameter: Chipkarten-KommandoCommand type: no different command types provided 1. Parameter: chip card command
e) Befehlsgruppe: Empfangen von Chipkartee) Command group: Receive chip card
Befehlstyp: keine unterschiedlichen Befehlstypen vorgesehenCommand type: no different command types are provided
1. Parameter: Chipkarten-Kommando1. Parameter: chip card command
2. Parameter: maximale Wartezeit bis zur Erzeugung eines Zeitfehlers2. Parameter: maximum waiting time until a time error is generated
f) Befehlsgruppe: Senden einer Nachricht an Hintergrundsystemf) Command group: Send a message to the background system
Befehlstyp: keine unterschiedlichen Befehlstypen vorgesehenCommand type: no different command types are provided
1. Parameter: Abwicklungskennzeichen1. Parameter: settlement indicator
2. Parameter: Verweis auf Nachricht in Nebentabelle 702. Parameter: Reference to message in secondary table 70
g) Befehlsgruppe: Empfangen einer Nachricht vom Hintergrundsystem Befehlstyp: keine unterschiedlichen Befehlstypen vorgeseheng) Command group: Receiving a message from the background system Command type: No different command types provided
1. Parameter: Abwicklungskennzeichen1. Parameter: settlement indicator
2. Parameter: Verweis auf Antwortbedingung in Nebentabelle 722. Parameter: Reference to response condition in secondary table 72
3. Parameter: Verweis auf Bestätigungsnachricht in Nebentabelle 703. Parameter: Reference to confirmation message in secondary table 70
h) Befehlsgruppe: Verschlüsselnh) Command group: Encrypt
Befehlstyp: anzuwendendes Verschlüsselungsverfahren 1. Parameter: Verweis auf zu verschlüsselnde Daten 2. Parameter: Verweis auf Speicherbereich für entschlüsselte DatenCommand type: Encryption method to be used 1. Parameter: Reference to data to be encrypted 2. Parameter: Reference to memory area for decrypted data
i) Befehlsgruppe: Entschlüsselni) Command group: Decrypt
Befehlstyp: anzuwendendes Entschlüsselungsverfahren 1. Parameter: Verweis auf zu entschlüsselnde DatenCommand type: Decryption method to be used 1. Parameter: Reference to data to be decrypted
2. Parameter: Verweis auf Speicherbereich für entschlüsselte Daten2. Parameter: Reference to memory area for decrypted data
j) Befehlsgruppe: Prüfenj) Command group: Check
Befehlstyp: Prüfkriterium, z.B. "Datum>" = aktuelles Datum früher als Datum in dem durch die Parameter angegebenenCommand type: test criterion, e.g. "Date>" = current date earlier than the date in the one specified by the parameters
Speicherbereichstorage area
1. Parameter: Verweis auf Beginn des zu prüfenden Speicherbereichs1. Parameter: Reference to the beginning of the memory area to be checked
2. Parameter: Verweis auf Ende des zu prüfenden Speicherbereichs2. Parameter: Reference to the end of the memory area to be checked
Die Untergliederung der Bestandteile eines Programmbefehls 80x in Befehlsgruppe, Befehlstyp und Parameter dient, wie bereits erwähnt, primär der besseren Übersichtlichkeit. In Ausführungsalternativen sind daher andere Gliederungen möglich. Beispielsweise kann bei dem oben genannten Befehl b) das Ausgabegerät in der Befehlsgruppe, statt, wie oben, im Befehlstyp, angegeben werden. Hinsichtlich der Befehle d) und f) ist es dagegen in anderen Ausführungsvarianten vorgesehen, den Empfänger nicht als Bestandteil der Befehlsgruppe, sondern als Befehlstyp oder sogar als Parameter anzugeben. Es wird ferner angemerkt, dass Befehle mit unterschiedlich vielen Parametern bis zu der jeweils vorgesehenen maximalen Parameteranzahl im Befehlssatz enthalten sind.The breakdown of the components of a program instruction 80x into instruction group, instruction type and parameter serves, as already mentioned, primarily for better clarity. Other structures are therefore possible in alternative versions. For example, in the case of the above-mentioned command b), the output device can be specified in the command group instead of, as above, in the command type. With regard to commands d) and f), on the other hand, it is provided in other embodiment variants not to specify the receiver as part of the command group, but as a command type or even as a parameter. It is also noted that commands with different numbers of parameters up to the maximum number of parameters provided are contained in the command set.
Die einzelnen Programmbefehle 80x der Haupttabelle 66 werden von dem Interpreter 60 (Fig. 1) der Reihe nach abgearbeitet, wie dies später noch im Detail beschrieben werden wird. Spezielle Befehle zur Programmflusssteuerung sind nicht oder nur sehr eingeschränkt vorgesehen. Der Hauptmechanismus zur Steuerung des Programmflusses besteht vielmehr darin, dass jeder Programmbefehl 80x im Bedingungsabschnitt 86 eine Gültigkeitsbedingung aufweist. Während des Programmablaufs werden nur solche Programmbefehle 80x ausgeführt, deren jeweilige Gültigkeitsbedingung zur Laufzeit erfüllt ist. Andere Programmbefehle 80x werden übersprungen. Durch dieses Verfahren bei der Abarbeitung der Programmbefehle 80x wird der Programmfluss an Laufzeitkriterien oder Eingaben oder äußere oder interne Ereignisse angepasst, wodurch sich Konstrukte wie beispielsweise bedingte Sprünge vermeiden lassen. Beispielsweise kann durch diesen Mechanismus bei einem erfolgreichen Lesen von der Chipkarte eine erste Nachricht an das Hintergrundsystem gesendet werden, im Falle einer Wartezeitüberschrei- tung (timeout) hingegen eine zweite Nachricht.The individual program instructions 80x of the main table 66 are processed in sequence by the interpreter 60 (FIG. 1), as will be described in detail later. Special commands for program flow control are not provided or only to a very limited extent. Rather, the main mechanism for controlling program flow is that each program instruction 80x in condition section 86 has a valid condition. During the In the program sequence, only those program instructions 80x are executed whose respective validity conditions are fulfilled at runtime. Other program instructions 80x are skipped. With this procedure when processing the program instructions 80x, the program flow is adapted to runtime criteria or inputs or external or internal events, whereby constructs such as conditional jumps can be avoided. For example, this mechanism can be used to send a first message to the background system on successful reading from the chip card, but in the case of a timeout, a second message.
In Fig. 2 sind beispielhaft Gültigkeitsbedingungen dargestellt, die sich aus bis zu sechs vorgegebenen Kriterien zusammensetzen. Typische Beispiele für solche Kriterien sind die eingestellte Zahlungsart, die Gerätevariante, eine optionale Funktionalität, ein externes Ereignis, ein interner Zustand des Zahlungsverkel rsterminals oder die Benutzungssteuerung der Speicher oder anderer Aktoren. Die Wirkung eines erfüllten Kriteriums wird in der Tabellendarstellung von Fig. 2 durch die Zeichen "+", "&" und "\" in der entsprechenden Spalte des Bedingungsabschnitts 86 angegeben. Ist für einen Programmbefehl 80x in einer Kriterienspalte kein Zeichen eingetragen, so beeinflusst dieses Kriterium die Ausführung dieses Programmbefehls 80x nicht.2 shows exemplary validity conditions, which are composed of up to six predetermined criteria. Typical examples of such criteria are the set payment method, the device variant, an optional functionality, an external event, an internal status of the payment processor or the usage control of the memory or other actuators. The effect of a fulfilled criterion is indicated in the table representation of FIG. 2 by the characters "+", "&" and "\" in the corresponding column of the condition section 86. If there is no character for a program command 80x in a criteria column, this criterion does not affect the execution of this program command 80x.
Bei dem Programmbefehl 80A hat die im Bedingungsabschnitt 86 enthaltene Gültigkeitsbedingung die Form einer einfachen Ausführungsbedingung. Dies wird dadurch angezeigt, dass ein einziges Kriterium im Bedingungsabschnitt 86 mit dem Zeichen "+" markiert ist. Der Programmbefehl 80A wird genau dann ausgeführt, wenn zur Laufzeit das markierte Kriterium, hier Kriterium 2) erfüllt ist. Bei dem Programmbefehl 80B sind mehrere einfache Ausführungsbedingungen vorgesehen, indem mehrere Kriterien mit dem "+ "-Zeichen markiert sind. Hier entspricht die Gültigkeitsbedingung der ODER- Verknüpfung der einzelnen Ausführungsbedingungen. Der Programmbefehl 80B wird daher genau dann ausgeführt, wenn mindestens eines der Kriterien 1, 2 oder 3 zur Laufzeit erfüllt ist.In the case of the program instruction 80A, the validity condition contained in the condition section 86 takes the form of a simple execution condition. This is indicated by the fact that a single criterion in the condition section 86 is marked with the sign "+". The program instruction 80A is executed precisely when the marked criterion, here criterion 2), is fulfilled at runtime. In program instruction 80B, several simple execution conditions are provided by marking several criteria with the "+" sign. Here the validity condition corresponds to the OR operation of the individual execution conditions. The program instruction 80B is therefore executed exactly when at least one of the criteria 1, 2 or 3 is fulfilled at runtime.
Eine als "kombinierte Ausführungsbedingung" bezeichnete Gültigkeits- bedingung ist im Programmbefehl 80C gezeigt. Diese Gültigkeitsbedingung ist erfüllt, wenn alle im Bedingungsabschnitt 86 mit dem Zeichen "&" markierten Kriterien zur Laufzeit gegeben sind.A validity condition called a "combined execution condition" is shown in program instruction 80C. This validity condition is fulfilled if all criteria marked with the character "&" in condition section 86 are met at runtime.
Alle bisher genannten Gültigkeitsbedingungen können durch eine Über- fahr bedingung eingeschränkt werden. Eine derartige Überfahrbedingung wird durch das Zeichen "\" für ein oder mehrere Kriterien des Bedingungsabschnitts 86 angezeigt. Ist bei der Ausführung eines Programmbefehls 80x eine Überfahrbedingung erfüllt, so wird dieser Programmbefehl 80x übersprungen, ohne dass die sonstigen Kriterien im Bedingungsabschnitt 86 eine Rolle spielen würden. So wird beispielsweise der Programmbefehl 80D auf keinen Fall dann ausgeführt, wenn das Kriterium 4 zur Laufzeit erfüllt ist. Als weiteres Beispiel wird der Programmbefehl 80E genau dann ausgeführt, wenn entweder das Kriterium 1 erfüllt ist und das Kriterium 4 nicht erfüllt ist, oder wenn die Kriterien 2, 3 und 5 sämtlich erfüllt sind und das Kri- terium 4 nicht erfüllt ist.All validity conditions mentioned so far can be restricted by a crossing condition. Such a crossing condition is indicated by the character "\" for one or more criteria of condition section 86. If a run-over condition is met when a program command 80x is executed, this program command 80x is skipped without the other criteria in condition section 86 playing a role. For example, program instruction 80D is never executed if criterion 4 is fulfilled at runtime. As a further example, the program instruction 80E is executed exactly when either criterion 1 is met and criterion 4 is not met, or when criteria 2, 3 and 5 are all met and criterion 4 is not met.
Fig. 3 stellt eine beispielhafte Spezifikation eines Antwortdatensatzes der Chipkarte 34 in Tabellenform dar. Entsprechende Daten können in einer Nebentabelle eingetragen werden, anhand derer die Gültigkeit einer Chip- karten- Antwort überprüft wird. Auch die Nebentabelle 72 zur Überprüfung von Antworten des Hintergrundsystems kann einen ähnlichen Aufbau aufweisen. Dies entspricht den im vorliegenden Ausführungsbeispiel allgemein herangezogenen Prinzipien, komplexe Strukturen und Mechanismen in Nebentabellen auszulagern und die Darstellung des Steuerprogramms 62 zumindest während der Programmentwicklung möglichst weitgehend den zugrundeliegenden Spezifikationen anzunähern.3 shows an exemplary specification of a response data record of the chip card 34 in tabular form. Corresponding data can be entered in a secondary table on the basis of which the validity of a chip card card response is checked. The secondary table 72 for checking responses of the background system can also have a similar structure. This corresponds to the principles generally used in the present exemplary embodiment, to outsource complex structures and mechanisms in secondary tables and to approximate the representation of the control program 62 as closely as possible to the underlying specifications, at least during the program development.
Fig. 4 zeigt einen beispielhaften und vereinfachten Ausschnitt des Ablaufs "Laden vorbereiten" für eine als Geldkarte ausgestaltete Chipkarte 34 gemäß Kapitel 4.12 des Dokuments "Schnittstellenspezifikation für die ec-Karte mit Chip 3.0, Geldkarte-Ladeterminal". Allgemein sind in derartigen Spezifikationen Abläufe in einem Zahlungsverkehrsterminal als Abfolge von nacheinander, also sequentiell erfolgenden Ausgabeaktionen (Senden) und Einga- beaktionen (Empfangen) beschrieben. Die Spezifikation ist weitgehend hardwareunabhängig.FIG. 4 shows an exemplary and simplified section of the "Prepare loading" sequence for a chip card 34 configured as a cash card in accordance with Chapter 4.12 of the document "Interface specification for the ec card with chip 3.0, cash card loading terminal". In general, such specifications describe processes in a payment transaction terminal as a sequence of successive, that is to say sequential, output actions (sending) and input actions (receiving). The specification is largely hardware-independent.
Die Haupttabelle 66 eines der Spezifikation von Fig. 4 entsprechenden Steuerprogramms 62 ist in Fig. 5A und Fig. 5B dargestellt, wobei Fig. 5A die linke Hälfte der Haupttabelle 66 und Fig. 5B die rechte, unmittelbar daran anschließende Hälfte zeigt. In diesem ausführlicheren Beispiel weist der Bedingungsabschnitt 86 jedes Programmbefehls 80x eine Vielzahl möglicher Gültigkeitskriterien auf, die in die Kategorien "Gerätefunktionen", "Status", "Fehler" und "Kartentyp" unterteilt sind.The main table 66 of a control program 62 corresponding to the specification of FIG. 4 is shown in FIGS. 5A and 5B, FIG. 5A showing the left half of the main table 66 and FIG. 5B the right, immediately following half. In this more detailed example, the condition section 86 of each program instruction 80x has a variety of possible validity criteria, which are divided into the categories "device functions", "status", "errors" and "card type".
Kriterien der Kategorie "Gerätefunktionen" betreffen äußere Bedingungen, die über die Tastatur 38 oder eine Registrierkasse ausgewählt werden oder die sich durch den verwendeten Kartentyp oder die gegenwärtige Betriebsart ergeben. Beispiele für derartige Kriterien sind die Bezahlung per ec-Karte in einer online-Betriebsart, d.h. bei bestehender Kommunikationsmöglichkeit mit dem Hintergrundsystem, die Zahlung per ec-Karte in einer offline- Betriebsart, d.h. ohne Zugriff auf das Hintergrundsystem, die Bezahlung mittels einer Geldkarte, das Nachladen der Geldkarte von einem Bankkonto oder die Bezahlung per Kreditkarte oder Flottenkarte.Criteria of the "device functions" category relate to external conditions which are selected via the keyboard 38 or a cash register or which result from the type of card used or the current operating mode. Examples of such criteria are payment by ec card in an online mode, ie if there is communication with the background system, payment by ec card in an offline mode, ie without access to the background system, payment with a cash card, reloading the cash card from a bank account or payment by Credit card or fleet card.
Status- und Fehlerkriterien sind in der Regel solche, die interne Gerätevorgänge betreffen und die erst während der Programmlaufzeit auftreten beziehungsweise sich während der Programmlaufzeit ändern. Beispiele für derartige Kriterien sind Zeitfehler (timeouts), Unterbrechungen (interrupts), negative Rückmeldungen des Hintergrundsystems oder der Chipkarte sowie Autostornobedingungen.Status and error criteria are usually those that relate to internal device processes and that only occur during the program runtime or change during the program runtime. Examples of such criteria are time errors, interrupts, negative feedback from the background system or the chip card, and auto cancellation conditions.
Die in Fig. 5B gezeigte Spalte "Speicher" dient zur Angabe von wählbaren Speicherplätzen für Ergebnisse oder Eingabewerte einzelner Programmbefehle. Die dort gezeigten Angaben sind daher konzeptionell als Befehlsparameter aufzufassen, auch wenn sie optisch im Bedingungsabschnitt 86 angeordnet sind und in manchen Ausführungsformen des erfindungsgemäßen Systems intern wie Kriterien von Gültigkeitsbedingungen gespeichert werden.The "Memory" column shown in FIG. 5B serves to specify selectable memory locations for results or input values of individual program instructions. The information shown there is therefore to be understood conceptually as a command parameter, even if it is optically arranged in the condition section 86 and is stored internally in some embodiments of the system according to the invention like criteria of validity conditions.
Während des Betriebs des in Fig. 1 gezeigten Zahlungsverkehrsterminals führt der Interpreter 60 eine Programmschleife aus, wie sie beispielhaft in Fig. 6 gezeigt ist. In einem ersten Schritt 100 wird ein Befehlszähler des Interpreters 60 auf den ersten Programmbefehl 80A in der Haupttabelle 66 des Steuerprogramms 62 gesetzt. In einem nächsten Schritt 102 wird ein Gerätestatus gebildet, der den momentanen Zustand der einzelnen für die Gültigkeitsbedingungen möglichen Kriterien enthält. Der Interpreter 60 greift nun auf den aktuellen Programmbefehl 80x zu und lädt dessen im Bedingungsabschnitt 86 enthaltene Gültigkeitsbedingung (Schritt 104).During the operation of the payment transaction terminal shown in FIG. 1, the interpreter 60 executes a program loop, as is shown by way of example in FIG. 6. In a first step 100, a command counter of the interpreter 60 is set to the first program command 80A in the main table 66 of the control program 62. In a next step 102, a device status is formed which contains the current status of the individual criteria possible for the validity conditions. The interpreter 60 now accesses the current program instruction 80x and loads its validity condition contained in the condition section 86 (step 104).
In Abfrage 106 wird überprüft, ob mindestens ein in der Gültigkeitsbedin- gung des aktuellen Programmbefehls angegebenes ÜberfahrkriteriumIn query 106 it is checked whether at least one crossing criterion specified in the validity condition of the current program command
(Zeichen "\" in Fig. 2) erfüllt ist. Ist dies der Fall ("Ja"-Zweig in Abfrage 106), so wird der aktuelle Programmbefehl übersprungen. Ist keine Überfahrbedingung erfüllt ("Nein"-Zweig in Abfrage 106), so wird in Abfrage 108 überprüft, ob gegenwärtig mindestens ein als einfache Ausführungs- bedingung (Zeichen "+" in Fig. 2) markiertes Kriterium vorliegt. Wenn dies der Fall ist ("Ja"-Zweig in Abfrage 108), wird der aktuelle Programmbefehl 80x in den Schritten 110 und 112 ausgeführt.(Character "\" in Fig. 2) is satisfied. If this is the case ("yes" branch in query 106), the current program command is skipped. If no run-over condition is met ("No" branch in query 106), it is checked in query 108 whether there is currently at least one criterion marked as a simple execution condition (character "+" in FIG. 2). If this is the case ("yes" branch in query 108), the current program instruction 80x is executed in steps 110 and 112.
Zur Ausführung des Programmbefehls 80x wird zunächst dessen Funktions- abschnitt 82 decodiert (Schritt 110). In Schritt 112 ruft der Interpreter 60 den entsprechenden Treiber (Bezugszeichen 44 bis 56 in Fig. 1) auf und übergibt die Daten gemäß dem Parameterabschnitt 84 des Programmbefehls 80x an das Treibermodul 44 bis 56. Nach der Befehlsausführung durch das Treibermodul 44 bis 56 werden eventuell zurückgegebene Datenwerte entsprechend den Angaben im Parameterabschnitt 84 gespeichert.To execute the program instruction 80x, its function section 82 is first decoded (step 110). In step 112, the interpreter 60 calls the corresponding driver (reference numerals 44 to 56 in FIG. 1) and transfers the data to the driver module 44 to 56 in accordance with the parameter section 84 of the program instruction 80x. After the command execution by the driver module 44 to 56, possibly returned data values are stored in accordance with the information in parameter section 84.
War keine der einfachen Ausführungsbedingungen erfüllt ("Nein"-Zweig in Abfrage 108), so wird in Abfrage 114 noch das Vorliegen einer kombinierten Ausführungsbedingung ("&"-Zeichen in Fig. 2) überprüft. Sind alle in einer solchen kombinierten Ausführungsbedingung genannten Kriterien erfüllt ("Ja"-Zweig in Abfrage 114), so erfolgt ebenfalls die Befehlsausführung in den Schritten 110 und 112. Nach dem Ende der Befehlsausführung beziehungsweise wenn ein Programmbefehl 80x übersprungen worden ist, wird der Befehlszähler in Schritt 116 erhöht. Ist das Tabellenende noch nicht erreicht ("Nein"-Zweig in Abfrage 118), so wird die Programmausführung mit dem nächsten Programm- befehl 80x fortgeführt. Andernfalls beginnt die Abarbeitung der Haupttabelle 66 erneut mit dem ersten Programmbefehl 80A.If none of the simple execution conditions was met ("No" branch in query 108), the presence of a combined execution condition ("&" sign in FIG. 2) is still checked in query 114. If all of the criteria specified in such a combined execution condition are met (“yes” branch in query 114), the instructions are also executed in steps 110 and 112. After the end of the command execution or if a program command 80x has been skipped, the command counter is increased in step 116. If the end of the table has not yet been reached ("No" branch in query 118), the program execution is continued with the next program command 80x. Otherwise, the processing of the main table 66 starts again with the first program instruction 80A.
Im hier beschriebenen Ausführungsbeispiel wird somit die gesamte Haupttabelle 66 in einer Endlosschleife zyklisch durchlaufen. In Ausführungs- alternativen sind dagegen Mittel zur Strukturierung des Steuerprogramms 62 oder zur Steuerung des Programmflusses vorgesehen. Beispielsweise können Programmteile in weitere Tabellen ausgelagert werden und wie Unterprogramme aufgerufen werden. Im Befehlssatz können auch Sprungbefehle zu vorbestimmten Zielen innerhalb der Haupttabelle 66 oder zu den gerade genannten Untertabellen enthalten sein; derartige Sprünge werden dann ausgeführt, wenn ihre jeweilige Gültigkeitsbedingung erfüllt ist.In the exemplary embodiment described here, the entire main table 66 is thus cycled through in an endless loop. In contrast, in alternative embodiments, means are provided for structuring the control program 62 or for controlling the program flow. For example, program parts can be exported to other tables and how subroutines can be called. The instruction set can also contain jump instructions to predetermined destinations within the main table 66 or to the sub-tables just mentioned; such jumps are carried out when their respective validity condition is fulfilled.
Wie oben bereits erwähnt, kann das Steuerprogramm 62 in unterschiedlichen Codierungen vorliegen. Eine besonders einfache Codierung der in den bis- herigen Figuren gezeigten Tabellen wäre beispielsweise die Darstellung als ASCII-Text oder in einer Seitenbeschreibungssprache, z.B. HTML oder XML oder in einem gebräuchlichen Dateiformat, z.B. wie in den Programmen Microsoft® Word oder Microsoft® Excel®. In manchen Ausführungsformen der Erfindung kann vorgesehen sein, dass der Interpreter 60 Steuerprogram- me 62 in einer solchen Codierung unmittelbar einliest und abarbeitet. Wegen des damit verbundenen hohen Speicherplatz- und Rechenaufwands werden jedoch Ausführungsbeispiele bevorzugt, bei denen das Steuerprogramm 62 in einer effizient codierten Form vorliegt. Ein Beispiel für eine solche Codierung der Haupttabelle 66 von Fig. 2 ist in Fig. 7 dargestellt. In der beispielhaften Codierung von Fig. 7 ist die Haupttabelle 66 teils in einem Befehlsspeicherbereich 120 und teils in einem Bedingungsspeicherbereich 122 abgelegt. Für jeden Programmbefehl 80x weist der Befehlsspeicherbereich 120 zwei, drei oder vier Bytes auf, nämlich ein erstes Byte zur Codierung der Funktion (Befehlsgruppe und gegebenenfalls Befehlstyp), ein zweites Byte, das einen Verweis auf eine in dem Bedingungsspeicherbereich 122 eingetragene Gültigkeitsbedingung enthält, und null, ein oder zwei weitere Bytes für die entsprechende Anzahl von Para- metern des Programmbefehls 80x. Bei Befehlen mit drei Parametern ist vorgesehen, den ersten Parameter wie einen Befehlstyp im ersten Byte zu codieren. Die in Fig. 7 gezeigten Werte sind beispielhafte Codierungen für die in Fig. 2 im Klartext dargestellten Programmbefehle 80x.As already mentioned above, the control program 62 can be present in different codings. A particularly simple coding of the tables shown in the previous figures would be, for example, the representation as ASCII text or in a page description language, for example HTML or XML or in a common file format, for example as in the programs Microsoft® Word or Microsoft® Excel®. In some embodiments of the invention it can be provided that the interpreter 60 reads in and executes control programs 62 in such a coding directly. Because of the associated high storage space and computational effort, however, exemplary embodiments are preferred in which the control program 62 is in an efficiently coded form. An example of such a coding of the main table 66 of FIG. 2 is shown in FIG. 7. In the exemplary coding of FIG. 7, the main table 66 is stored partly in an instruction memory area 120 and partly in a condition memory area 122. For each program instruction 80x, the instruction memory area 120 has two, three or four bytes, namely a first byte for coding the function (instruction group and possibly instruction type), a second byte which contains a reference to a validity condition entered in the condition memory area 122, and zero , one or two further bytes for the corresponding number of parameters of the program instruction 80x. For commands with three parameters, the first parameter is to be coded in the first byte like a command type. The values shown in FIG. 7 are exemplary encodings for the program instructions 80x shown in plain text in FIG. 2.
Der Bedingungsspeicherbereich 122 enthält einen Eintrag für jede in der Haupttabelle 66 auftretende Gültigkeitsbedingung. Wie aus Fig. 5A und Fig. 5B hervorgeht, weisen in der Praxis häufig mehrere Programmbefehle 80x der Haupttabelle 66 die gleiche Gültigkeitsbedingung auf. Diese Gültigkeitsbedingung ist im Bedingungsspeicherbereich 122 nur jeweils einmal vorhanden, wodurch eine unnötige Duplizierung von identischen Gültigkeitsbedingungen vermieden wird.The condition storage area 122 contains an entry for each valid condition occurring in the main table 66. As can be seen from FIGS. 5A and 5B, in practice several program instructions 80x of the main table 66 often have the same validity condition. This validity condition is only present once in the condition storage area 122, thereby avoiding unnecessary duplication of identical validity conditions.
Im vorliegenden Ausführungsbeispiel weist jeder Eintrag im Bedingungsspeicherbereich 122 zwei Bitfelder 124, 126 auf, die für jedes mögliche Gültigkeitskriterium je ein Bit enthalten. Die Zuordnung dieser Bits zu den Gültigkeitskriterien ist in beiden Bitfeldern 124, 126 identisch. In dem hier beschriebenen Beispiel sind nur sechs Gültigkeitskriterien vorgesehen, so dass jedes der Bitfelder 124, 126 lediglich sechs Bits je eines Bytes verwendet. In einem typischen Ausführungsbeispiel der Erfindung, bei dem die Haupt- tabelle 66 beispielsweise wie in Fig. 5A und Fig. 5B aufgebaut ist, sind dagegen 32 Gültigkeitskriterien und dementsprechend 32 Bit (= vier Byte) für jedes der beiden Bitfelder 124, 126 vorgesehen.In the present exemplary embodiment, each entry in the condition storage area 122 has two bit fields 124, 126 which each contain one bit for each possible validity criterion. The assignment of these bits to the validity criteria is identical in both bit fields 124, 126. In the example described here, only six validity criteria are provided, so that each of the bit fields 124, 126 uses only six bits of one byte each. In a typical embodiment of the invention, in which the main 5A and 5B, for example, 32 validity criteria and accordingly 32 bits (= four bytes) are provided for each of the two bit fields 124, 126.
Die bereits beschriebenen Gültigkeitsbedingungen werden gemäß der folgenden Tabelle in die entsprechenden Bits der beiden Bitfelder 124, 126 codiert:The validity conditions already described are encoded in the corresponding bits of the two bit fields 124, 126 according to the following table:
Figure imgf000022_0001
Figure imgf000022_0001
Wenn eine Codierung gemäß Fig. 7 vorliegt, können die Abfragen 106, 108 und 114 von Fig. 6 auf besonders einfache Weise durchgeführt werden. Dazu wird in Schritt 102 der Gerätestatus ebenfalls in Form eines Bitfeldes dargestellt, das hinsichtlich der Anordnung der Gültigkeitskriterien dem Format der Bitfelder 124, 126 entspricht. Eine Überfahrbedingung ist dann erfüllt, wenn die UND- Verknüpfung zwischen dem Gerätestatus und dem zweiten Bitfeld 126 sowie der Negation des ersten Bitfelds 124 ungleich Null ist. Auf ähnliche Weise kann in Schritt 108 das Vorliegen einer einfachen Ausführungsbedingung durch eine UND-Verknüpfung zwischen dem Gerätestatus und dem ersten Bitfeld 124 sowie der Negation des zweiten Bitfelds 126 überprüft werden. Zur Überprüfung der kombinierten Ausführungsbedingung in Abfrage 114 sind zunächst eine UND-Verknüpfung der beiden Bit- f eider 124, 126 und dann eine Exklusiv -ODER- Verknüpfung des Ergebnisses mit dem Gerätestatus sowie ein Nullvergleich erforderlich.7, the queries 106, 108 and 114 of FIG. 6 can be carried out in a particularly simple manner. For this purpose, the device status is also represented in step 102 in the form of a bit field which corresponds to the format of the bit fields 124, 126 with regard to the arrangement of the validity criteria. A runover condition is fulfilled if the AND link between the device status and the second bit field 126 and the negation of the first bit field 124 is not equal to zero. Similarly, in step 108, the existence of a simple execution condition can be checked by an AND operation between the device status and the first bit field 124 and the negation of the second bit field 126. To check the combined execution condition in query 114, an AND operation of the two bit f eider 124, 126 and then an exclusive OR link of the result with the device status and a zero comparison required.
Während im vorliegenden Ausführungsbeispiel die Überfahrinformation im Bedingungsspeicherbereich 122 enthalten ist, kann in Ausführungsalternativen vorgesehen sein, in den Bedingungsspeicherbereich 122 nur Ausführungsbedingungen aufzunehmen und gegebenenfalls vorhandene Überfahrbedingungen gesondert zu verwalten. Allgemein kann auch vorgesehen sein, die hier vorgeschlagene Vorgehensweise der gemeinsamen Speiche- rung identischer Gültigkeitsbedingungen nur für einige der zur Verfügung stehenden Gültigkeitskriterien anzuwenden.While in the present exemplary embodiment the run-over information is contained in the condition storage area 122, in alternative embodiments it can be provided that only condition conditions are recorded in the condition storage area 122 and any existing run-over conditions are managed separately. In general, provision can also be made to use the procedure proposed here for the common storage of identical validity conditions only for some of the available validity criteria.
Fig. 8 zeigt ein Verfahren, das im vorliegend beschriebenen Ausführungsbeispiel zum Codieren der diversen Tabellen des Steuerprogramms 62 (Fig. 1) und zum Erzeugen eines in den Programmspeicher 16 ladbaren Programms (Datei "zvt.hex" im Hex-Code) verwendet wird.FIG. 8 shows a method which is used in the exemplary embodiment described here for coding the various tables of the control program 62 (FIG. 1) and for generating a program which can be loaded into the program memory 16 (file "zvt.hex" in the hex code).
Das Verfahren gemäß Fig. 8 geht von einer Haupttabelle 66 aus, die in einer für den Programmierer komfortabel bearbeitbaren Codierung (hier als Datei "zvt_tab.xls" im Format des Tabellenkalkulationsprogramms Microsoft® Excel®) vorliegt. Diese Datei wird in Schritt 130 analysiert und in eine Codierung umgesetzt, die einem Quelltext-Segment der Programmiersprache C entspricht (Datei "zvt_tab.c"). Für den Umsetzvorgang in Schritt 130 können übliche Hilfsmittel wie z.B. die Programme Lex und Yacc eingesetzt werden. Beispielsweise kann ein Codesegment in der folgenden Struktur erzeugt werden:The method according to FIG. 8 is based on a main table 66, which is in a coding that is easy to edit for the programmer (here as file "zvt_tab.xls" in the format of the spreadsheet program Microsoft® Excel®). This file is analyzed in step 130 and converted into a coding which corresponds to a source text segment of the programming language C (file "zvt_tab.c"). Common tools such as e.g. the Lex and Yacc programs are used. For example, a code segment can be created in the following structure:
const uchar ztab[] = { OxCO, 0x01, /* 1-Byte-Befehl */const uchar ztab [] = {OxCO, 0x01, / * 1-byte command * /
0x10, 0x04, 0x65, /* 2-Byte-Befehl */ OxEl, 0x05, OxEO, OxFO, / * 3-By te-Bef ehl */0x10, 0x04, 0x65, / * 2-byte command * / OxEl, 0x05, OxEO, OxFO, / * 3-By te command * /
In einem nächsten Schritt 132 wird die als Programmabschnitt codierte Haupttabelle 66 durch einen üblichen Compiler, der auf die Hardware des Zahlungsverkehrterminals zugeschnitten ist, in eine Objektdatei umgesetzt (Datei "zvt_tab.obj"). Zusammen mit anderen Objektdateien, die Nebentabellen des Steuerprogramms 62 sowie den Interpreter 60 und die Treiber- module 44 bis 56 (Fig. 1) beinhalten, erzeugt ein Bindeprogramm daraus in Schritt 134 ein ladbares Programm (Datei "zvt.hex"). Sowohl die Objektdatei "zvt_tab.obj" als auch das ladbare Programm "zvt.hex" enthalten Binärdaten, die der in Fig. 7 beispielhaft gezeigten Codierung entsprechen.In a next step 132, the main table 66 coded as a program section is converted into an object file by a conventional compiler, which is tailored to the hardware of the payment transaction terminal (file "zvt_tab.obj"). Together with other object files, which contain secondary tables of the control program 62 as well as the interpreter 60 and the driver modules 44 to 56 (FIG. 1), a binding program generates a loadable program therefrom in step 134 (file "zvt.hex"). Both the object file "zvt_tab.obj" and the loadable program "zvt.hex" contain binary data which correspond to the coding shown by way of example in FIG. 7.
Das ladbare Programm (Datei "zvt.hex") implementiert die Softwareschichten 42, 58 und 64 (Fig. 1) des Zahlungsverkehrsterminals nach dem vorliegend beschriebenen Ausführungsbeispiel der Erfindung. Das Programm wird über eine geeignete Schnittstelle in die Hardware des Zahlungsverkehrsterminals geladen, um ein arbeitsfähiges System zu erhalten. The loadable program (file "zvt.hex") implements the software layers 42, 58 and 64 (FIG. 1) of the payment transaction terminal according to the exemplary embodiment of the invention described here. The program is loaded into the hardware of the payment terminal via a suitable interface in order to obtain a workable system.

Claims

Patentansprüche claims
1. Verfahren zur Steuerung eines Zahlungsverkehrsterminals, dadurch gekennzeichnet, dass die Steuerung zumindest zum Teil gemäß Programmbefehlen (80x) erfolgt, die jeweils einen Befehlsteil und eine Gültigkeitsbedingung aufweisen, wobei nur solche Programmbefehle (80x) ausgeführt werden, deren jeweilige Gültigkeitsbedingung zur Laufzeit erfüllt ist.1. A method for controlling a payment transaction terminal, characterized in that the control takes place at least in part in accordance with program instructions (80x), each of which has an instruction part and a validity condition, wherein only those program commands (80x) are executed whose respective validity condition is fulfilled at runtime ,
2. Verfahren nach Anspruch 1, d a d u r c h gekennzeichnet, dass die Gültigkeitsbedingung mindestens eines der folgenden Elemente aufweist: mindestens eine Überfahrbedingung, die, wenn sie zur Laufzeit erfüllt ist, die Befehlsausführung verhindert, mindestens eine einfache Ausführungsbedingung, die, wenn sie zur Laufzeit erfüllt ist, die Befehlsausführung freigibt, und eine kombinierte Ausführungsbedingung, die mehrere Ausführungsbedingungen aufweist und die, wenn alle diese Ausfüh- rungsbedingungen erfüllt sind, die Befehlsausführung freigibt.2. The method according to claim 1, characterized in that the validity condition comprises at least one of the following elements: at least one runover condition, which, if it is fulfilled at runtime, prevents the execution of the command, at least one simple execution condition, which, if it is fulfilled at runtime , which releases instruction execution, and a combined execution condition which has multiple execution conditions and which, when all of these execution conditions are met, releases instruction execution.
3. Verfahren nach Anspruch 1 oder Anspruch 2, dadurch gekennzeichnet, dass der Befehlsteil mindestens eines der folgenden Elemente aufweist: - einen Funktionsabschnitt (82), der die durch den Programmbefehl3. The method according to claim 1 or claim 2, characterized in that the command part comprises at least one of the following elements: - a functional section (82) which by the program command
(80x) auszuführende Funktion angibt, und einen Parameterabschnitt (84), der mindestens einen für die Ausführung des Programmbefehls (80x) relevanten Parameter angibt. (80x) specifies the function to be executed, and a parameter section (84) which specifies at least one parameter relevant to the execution of the program command (80x).
4. Verfahren nach einem der Ansprüche 1 bis 3, dadurch gekennzeichnet, dass die Programmbefehle (80x) zur Laufzeit in einer Codierung vorliegen, die mindestens einen Befehlsspeicherbereich (120) und mindestens einen Bedingungs- Speicherbereich (122) aufweist, wobei: in dem Befehlsspeicherbereich (120) Funktionen und/ oder Parameter von Programmbefehlen (80x) sowie Verweise auf Daten in dem Bedingungsspeicherbereich (122) enthalten sind, in dem Bedingungsspeicherbereich (122) zumindest Teile von Gültigkeitsbedingungen für die Ausführung von Programmbefehlen (80x) enthalten sind, und4. The method according to any one of claims 1 to 3, characterized in that the program instructions (80x) are present at runtime in a coding which has at least one instruction memory area (120) and at least one condition memory area (122), wherein: in the instruction memory area (120) functions and / or parameters of program instructions (80x) as well as references to data in the condition memory area (122) are contained, in the condition memory area (122) at least parts of validity conditions for the execution of program instructions (80x) are contained, and
Einträge in dem Befehlsspeicherbereich (120), die Programmbefehlen (80x) mit zumindest teilweise identischen Gültigkeitsbedingungen zugeordnet sind, auf gemeinsame Daten in dem Bedingungsspeicherbereich (122) verweisen.Entries in the command memory area (120), which are assigned to program commands (80x) with at least partially identical validity conditions, refer to common data in the condition memory area (122).
5. Verfahren nach einem der Ansprüche 1 bis 4, dadurch gekennzeichnet, dass ein Steuerprogramm (62) mit einer Mehrzahl von Programmbefehlen (80x) zumindest zum Zwecke der Programmentwicklung in Form einer oder mehrerer Tabellen5. The method according to any one of claims 1 to 4, characterized in that a control program (62) with a plurality of program instructions (80x) at least for the purpose of program development in the form of one or more tables
(66, 68, 70, 72, 74) darstellbar ist.(66, 68, 70, 72, 74) can be displayed.
6. Verfahren zur Steuerung eines Zahlungsverkehrsterminals, dadurch gekennzeichnet, dass die Steuerung gemäß Prograirimbefehlen (80x) erfolgt, die mittels eines Interpreters (60) des Zahlungsverkehrsterminals zur Laufzeit interpretiert werden.6. A method for controlling a payment transaction terminal, characterized in that the control takes place according to programming instructions (80x), which are interpreted by means of an interpreter (60) of the payment transaction terminal at runtime.
7. Verfahren zur Steuerung eines Zahlungsverkehrsterminals nach Anspruch 6 und einem der Ansprüche 1 bis 5. 7. A method for controlling a payment terminal according to claim 6 and one of claims 1 to 5.
8. Computerlesbarer Datenträger mit einem Steuerprogramm (62), das dazu eingerichtet ist, durch mindestens einen Prozessor (12) eines Zahlungsverkehrsterminals ausgeführt zu werden, um das Zahlungsverkehrsterminal durch ein Verfahren gemäß einem der Ansprüche 1 bis 7 zu steuern.8. Computer-readable data carrier with a control program (62), which is set up to be executed by at least one processor (12) of a payment transaction terminal in order to control the payment transaction terminal by a method according to one of claims 1 to 7.
9. Zahlungs Verkehrsterminal, das dazu eingerichtet ist, durch ein Verfahren gemäß einem der Ansprüche 1 bis 7 gesteuert zu werden. 9. Payment traffic terminal which is set up to be controlled by a method according to one of claims 1 to 7.
PCT/EP2002/012842 2001-11-19 2002-11-15 Control of a traffic toll terminal WO2003044751A2 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2002365986A AU2002365986A1 (en) 2001-11-19 2002-11-15 Control of a traffic toll terminal

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE2001156783 DE10156783A1 (en) 2001-11-19 2001-11-19 Control and programming of payment terminals, whereby program commands have validity conditions under which they run, thus allowing a single program to be created that will run on different hardware types
DE10156783.9 2001-11-19

Publications (2)

Publication Number Publication Date
WO2003044751A2 true WO2003044751A2 (en) 2003-05-30
WO2003044751A3 WO2003044751A3 (en) 2004-04-22

Family

ID=7706257

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2002/012842 WO2003044751A2 (en) 2001-11-19 2002-11-15 Control of a traffic toll terminal

Country Status (3)

Country Link
AU (1) AU2002365986A1 (en)
DE (1) DE10156783A1 (en)
WO (1) WO2003044751A2 (en)

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4209541A1 (en) * 1992-03-24 1993-09-30 Heinrich Prof Dr Ing Nikolaus Operating system for microprocessor based controller - having program structure established in machine code with memory space for control functions data and program manager
US5383117A (en) * 1992-06-26 1995-01-17 Mitsubishi Denki Kabushiki Kaisha Programmable controller and control method thereof
US5996070A (en) * 1996-07-30 1999-11-30 Mitsubishi Denki Kabushiki Kaisha Microprocessor capable of executing condition execution instructions using encoded condition execution field in the instructions

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2564480B2 (en) * 1985-07-16 1996-12-18 カシオ計算機株式会社 IC card system
DE19710249C2 (en) * 1997-03-12 2002-03-28 Siemens Nixdorf Inf Syst Network-supported chip card transaction method and arrangement for processing transactions
DE19755819C1 (en) * 1997-12-16 1999-08-26 Ibm Distributed payment system and method for cashless payment transactions using a stock exchange chip card
DE19757501C1 (en) * 1997-12-23 1999-09-16 Ibm Process for protecting transaction data
WO2001004851A1 (en) * 1999-07-12 2001-01-18 Cardsoft International Pty Limited Improved apparatus for remote payment transactions
DE10008308A1 (en) * 2000-02-23 2001-08-30 Orga Kartensysteme Gmbh Chip card terminal for use with a host computer has a card terminal applications programming interface (CT-API) on the card terminal itself to speed loading and running of applications on the chip card system

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE4209541A1 (en) * 1992-03-24 1993-09-30 Heinrich Prof Dr Ing Nikolaus Operating system for microprocessor based controller - having program structure established in machine code with memory space for control functions data and program manager
US5383117A (en) * 1992-06-26 1995-01-17 Mitsubishi Denki Kabushiki Kaisha Programmable controller and control method thereof
US5996070A (en) * 1996-07-30 1999-11-30 Mitsubishi Denki Kabushiki Kaisha Microprocessor capable of executing condition execution instructions using encoded condition execution field in the instructions

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
ADVANCED RISC MACHINES LTD: "ARM7 Data Sheet"[Online] Dezember 1994 (1994-12), Seiten 19-23, XP002269940 Gefunden im Internet: <URL:http://www.crhc.uiuc.edu/ECE371EMR/AR M7vC.pdf> [gefunden am 2004-02-09] *
ULMANN B.: "Intruction looping, an extension to conditional execution"[Online] 20. Februar 1998 (1998-02-20), Seiten 1-2, XP002269939 Gefunden im Internet: <URL:http://citeseer.nj.nec.com/cache/pape rs/cs/25444/http:zSzzSzfafner.zdv.uni-main z.dezSz~ulmannzSziloopzSziloop.pdf/b-ulman n.pdf> [gefunden am 2004-02-09] *

Also Published As

Publication number Publication date
AU2002365986A8 (en) 2003-06-10
AU2002365986A1 (en) 2003-06-10
DE10156783A1 (en) 2003-05-28
WO2003044751A3 (en) 2004-04-22

Similar Documents

Publication Publication Date Title
EP0466969B1 (en) Method for preventing unauthorised deviations from an application development protocol in a data exchange system
DE4420451C2 (en) Lock mechanism for a CHECK-IN / CHECK-OUT model
DE10048940A1 (en) Production of document contents by transcoding with Java (RTM) server pages
DE3503119A1 (en) METHOD FOR AUTOMATICALLY GENERATING A SOURCE PROGRAM
DE10339511A1 (en) System and method for dynamically sequencing a requirement-based workflow
DE10158984A1 (en) Printing system and method for individualizing a print job
WO1997001147A2 (en) Method of simplifying communication with chip cards
DE10324337B4 (en) Computer system and associated method for performing a safety program
DE69907714T2 (en) COMPONENT-BASED SOURCE CODE GENERATOR METHOD
DE10256990A1 (en) Program code generator and program
DE10038289A1 (en) Core banking activities integration system, involves preparing application-development environment business platforms for integration into the various processes usually required in separate core banking systems
DE10054001A1 (en) Automated interface generation method for computer programs, involves generating program interface for converting data between IMS-transfer and program in different program environment after scanning IMS transaction
EP1282883B1 (en) Method and system for the transformation of digital print data streams and corresponding printer and printer server
WO2003044751A2 (en) Control of a traffic toll terminal
DE10320062A1 (en) Storage management for a portable data carrier
DE2249852A1 (en) COMPUTER SYSTEM
DE60010078T2 (en) SYSTEM FOR THE ANALYSIS OF DATA FOR ELECTRONIC TRADE
DE4308291C2 (en) Method and device for process-related creation and processing of documents
EP1610218B1 (en) Portable data carrier, system with said data carrier and method of operating said data carrier
DE102015115797A1 (en) Method for generating electronic documents
DE10325513B4 (en) Method and apparatus for creating a behavioral aspect of a formal verification circuit
EP0977160B1 (en) Method and data processing device for the reliable execution of instructions
WO2017178222A1 (en) Device and method for processing a binary-coded structure document
EP1691275B1 (en) Method and apparatus for computer-assisted creation of a graphical user interface
EP1044409B1 (en) Program flow method and method for expanding a program component system

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SC SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VC VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE BG CH CY CZ DE DK EE ES FI FR GB GR IE IT LU MC NL PT SE SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
DFPE Request for preliminary examination filed prior to expiration of 19th month from priority date (pct application filed before 20040101)
122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP