WO2004059562A2 - Portable data carrier with network server functionality - Google Patents

Portable data carrier with network server functionality Download PDF

Info

Publication number
WO2004059562A2
WO2004059562A2 PCT/EP2003/014540 EP0314540W WO2004059562A2 WO 2004059562 A2 WO2004059562 A2 WO 2004059562A2 EP 0314540 W EP0314540 W EP 0314540W WO 2004059562 A2 WO2004059562 A2 WO 2004059562A2
Authority
WO
WIPO (PCT)
Prior art keywords
data carrier
data
interpreter
application program
transmission mode
Prior art date
Application number
PCT/EP2003/014540
Other languages
German (de)
French (fr)
Other versions
WO2004059562A3 (en
Inventor
Daniel Ciesinger
Frank GÖTZE
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 EP03785881A priority Critical patent/EP1579318A2/en
Priority to AU2003294905A priority patent/AU2003294905A1/en
Publication of WO2004059562A2 publication Critical patent/WO2004059562A2/en
Publication of WO2004059562A3 publication Critical patent/WO2004059562A3/en

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/073Special arrangements for circuits, e.g. for protecting identification code in memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06KGRAPHICAL DATA READING; PRESENTATION OF DATA; RECORD CARRIERS; HANDLING RECORD CARRIERS
    • G06K19/00Record carriers for use with machines and with at least a part designed to carry digital markings
    • G06K19/06Record carriers for use with machines and with at least a part designed to carry digital markings characterised by the kind of the digital marking, e.g. shape, nature, code
    • G06K19/067Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components
    • G06K19/07Record carriers with conductive marks, printed circuits or semiconductor circuit elements, e.g. credit or identity cards also with resonating or responding marks without active components with integrated circuit chips
    • G06K19/077Constructional details, e.g. mounting of circuits in the carrier
    • G06K19/0772Physical layout of the record carrier
    • G06K19/07733Physical layout of the record carrier the record carrier containing at least one further contact interface not conform ISO-7816
    • 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/341Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
    • 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
    • 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/0806Details of the card
    • G07F7/0833Card having specific functional components
    • G07F7/084Additional components relating to data transfer and storing, e.g. error detection, self-diagnosis
    • 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
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L67/00Network arrangements or protocols for supporting network services or applications
    • H04L67/01Protocols
    • H04L67/02Protocols based on web technology, e.g. hypertext transfer protocol [HTTP]

Definitions

  • the invention is based on a portable data carrier according to the preamble of the main claim.
  • a portable data carrier such is known for example from EP 932 865 B1.
  • It describes an IC card that offers the option of loading applications that were written in the high-level Java programming language (see also http://java.sun.com).
  • class files In clear text created in Java applications are first in so-called “class files” compiled, which are subsequently subjected to conversion. Therein, the class files in compact "card class files” or “card application files” or “CAP-fil 'it "transferred, which are finally transferred to the IC card.
  • CAP-fil 'it transferred
  • a chip card as a web server, ie as a network server on the Internet and to provide the card with a proxy functionality.
  • a five-layer network structure is set up on the card, which has a physical transmission layer, a data transmission layer, a network layer, a transport layer and an application layer includes.
  • the application path includes utilities that implement the functionality of a web server on the one hand and the functionality of a proxy server on the other.
  • the physical transmission layer and the data transmission layer correspond to the current chip card standards and support conventional card commands, so that the card can be addressed in a known manner.
  • the proposed card enables secure handling of data that are exchanged between a terminal and a network server.
  • the font does not provide information on how an application can be loaded into the card.
  • An operating system for realizing a multi-application card is also known ("OSSCA”: Operating System for Smart Cards, prospectus from KEYCORP Ltd., March 1999, available at http://keycorp.net/smartcard/ ossca.pdf), which is used for execution of application programs written in a variant of the high level programming language FORTH is set up and such application programs can be reloaded.
  • the operating system allows up to four applications to be executed simultaneously.
  • communication between chip card and terminal takes place in accordance with a conventional, standardized chip card protocol a standard chip card interface Communication with the chip card requires special, suitable terminals.
  • the object of the invention is to provide a portable data carrier which is suitable for being used as a network server and which, for this use, places the lowest possible demands on the usage environment.
  • the object is achieved by a portable data carrier with the features of the main claim.
  • the basis for the portable data carrier according to the invention is the approach of not initially providing elements that only serve to set up the data carrier for use in applications tailored specifically to portable data carriers.
  • He- Portable data carriers according to the invention only have a standard interface adopted from the field of computer technology and means for carrying out two different transmission modes, a first transmission mode being used to set up applications, while the other is used to use the applications using a known network protocol.
  • An essential element of these means is a distribution unit which prevents the setting of the transmission mode to be used in each case.
  • the data carrier according to the invention has the advantage that applications can be addressed using a conventional network protocol which is not specific to the data carrier and which is common for communication between participants connected via a network.
  • the network protocol can be a conventional TCP / IP protocol.
  • the data carrier can thus be used in any TCP / IP environment.
  • a data carrier equipped with TCP / IP is suitable for use in a local area network ("LAN") which can be connected to the Internet via an address translator. The data carrier then behaves like a regular Internet user.
  • LAN local area network
  • Another particular advantage of the data carrier according to the invention is that programs for implementing new applications can be loaded onto a portable data carrier in a high-language format without preprocessing.
  • the high-level language FORTH is particularly suitable for program creation.
  • the applications placed on a portable data carrier advantageously comprise a card-resident network server, by means of which the applications can be navigated.
  • the network server can in particular be a Web server for use on the Internet.
  • a first network server can be an HTTP server and a second network server can be an FTP server.
  • the structure provided for a data carrier according to the invention makes it possible to initially equip data carriers with only one interpreter during production, but no applications yet. This can be done by the customers of the data carriers.
  • FIG. 2 shows the structures of a portable data carrier with network server functionality and of a terminal device interacting with the portable data carrier
  • Fig. 6 shows a practical application of a data carrier.
  • USB Universal Serial Bus
  • Protocol Software component that acts as an intermediary between a sending and a receiving entity during data transmission.
  • SLIP Serial Line Internet Working Protocol
  • PPP Point to Point Protocol
  • TCP Transmission Control Protocol.
  • IP Internet Working Protocol
  • UDP User Datagram Protocol. Particularly simple protocol without overhead.
  • DHCP Dynamic Host Contention Protocol Automatic address assignment in the network under Windows.
  • CGI Common Gateway Interface
  • HTML Hypertext Markup Language
  • OSI layer model Open System Interconnection layer model.
  • ASCII code assignment rule that corresponds to a defined alphanumeric
  • FIG. 1 illustrates the basic structure of a chip card 10 which is suitable as a multifunction card for use in different applications and which can be loaded with new application programs in the context of a high-level language programming environment.
  • An essential element of the chip card 10 is an integrated circuit 1 in the form of a microcontroller, which has a processor core 2 and a memory system with three memory fields 3, 4 and 5 on a single semiconductor chip.
  • the microcontroller 1 is also connected to a data carrier interface 24 for the exchange of data with an external terminal 100.
  • the first 3 is typically a mask-programmed read-only memory in the form of a ROM
  • the second is an electrically erasable and writable read-only memory in the form of an EEPROM or a FLASH memory
  • the third is a volatile read / write memory , usually in the form of a RAM.
  • the first memory field 3 contains the program code of the operating system of the chip card 10. Furthermore, the program code of basic application programs that should be present on all chip cards 10 can be stored in the first memory field 3. The entire program code stored in the first memory field 3 is used to produce the chip card 10 by means of a Mask attached to the card as machine code.
  • the second memory field 4 is used to hold the code of application programs subsequently placed on a chip card 10. In addition, it usually also serves as working memory.
  • the third memory field 5 serves as fast working memory in a known manner.
  • the interface 24 can be of the contact type and in particular can be designed as a conventional chip card contact field.
  • the interface 24 can be of the contactless type and can have, for example, the shape of a coil which forms an antenna.
  • the entire structure of the chip card shown in FIG. 1 is known per se and is described, inter alia, in the “manual of chip cards” mentioned.
  • the essential component of the terminal device 100 is a controller 101 with all elements and the basic functionality of a conventional computer.
  • the controller 101 provides a network navigator 150, that is to say an application program for carrying out accesses to data contents which are stored in a network structure such as the Internet.
  • the controller 101 is set up to execute a terminal program 102 which, via a suitable interface, for example a serial RS 232 interface, allows communication with a portable data carrier 10 through data exchange.
  • a suitable interface for example a serial RS 232 interface
  • the terminal device 100 has an interface 122 corresponding to the data transmission interface 24.
  • a software is also installed on the terminal device 100 on the terminal device 100, which interface 122 adapts to the applications located on the terminal device 100, in particular the terminal program 102, the network navigator 150 or a dial-up network with SLIP / PPP.
  • this software provides the interface 122 as a serial interface, for example as an RS 232 interface.
  • the terminal 100 expediently also offers a programming environment by means of which it is possible in connection with a portable data carrier 10 to create new application programs for the portable data carrier 10.
  • Part of the terminal 100 is furthermore a user interface 140 which has means 142 in order to present information of the terminal 100 to a user; typically these means 142 are in the form of a screen.
  • the user interface 140 also has means 144, typically in the form of a keyboard, to enable a user to enter commands to the terminal program 102.
  • the terminal device 100 can be a single arrangement which is accessed by a single user, for example a correspondingly set up conventional computer, but also e.g. a terminal that is available to a large number of users and is, for example, part of an application solution set up on a network.
  • Terminal program 102 and the network navigator 150 Via the terminal program 102 and the network navigator 150, the terminal device 100, under the control of a user, enables activation and use of a functionality available on a portable data carrier 10.
  • Terminal program 102 and network navigator 150 provide the program routines necessary for this. For example, they offer a program routine for establishing communication over the serial Interface 122 or a modem.
  • the terminal program 102 also enables the introduction of new application programs onto a portable data carrier 10.
  • FIG. 2 illustrates the basic logical structure of the arrangement shown in Fig.l.
  • the right-hand part of FIG. 2 shows the structure of the portable data carrier 10, hereinafter referred to only as a data carrier, and the left-hand part shows the structure of a terminal 100.
  • the data carrier 10 is divided into a communication area 20, an interaction area 40 and a server area 50.
  • the terminal device 100 includes a communication area 120, a user interface 140, a terminal program 102 and a network navigator 150.
  • the communication area 20 of the data carrier 10 contains means for carrying out a data exchange between the data carrier 10 and an external terminal 100.
  • Part of this means is in particular a distribution unit 26 which, depending on the data received from the terminal 100, includes a data path to the interaction area 40 or Server area 50 sets up and sets a corresponding transmission mode.
  • the application programs located in the server area 50 are transmitted using a standardized network protocol via the data carriers.
  • Interface 24 supplied incoming data.
  • the data path between the data carrier interface 24 and the server area 50 has an architecture based on the OSI layer model in the form of a protocol stack.
  • the standardized network works protocol is in particular the "TCP / IP" protocol.
  • the interaction area 40 contains an interpreter 44 for setting up application programs in the server area 50 and for executing the application programs.
  • the interaction area 40 also contains a configuration area 48 for receiving parameterizations and settings for the interpreter 44 and the server area 50.
  • the data path into the interaction area 40 is implemented as transparent mode 39, in which the data coming in via the distribution unit 26 are forwarded unchanged.
  • the communication area 20 of the data carrier 10 has a protocol stack structure made up of a plurality of protocol layers one above the other, which is traversed successively by incoming and outgoing data.
  • Each protocol layer implements defined services in which it subjects the data it receives to the specified processing. In doing so, it builds on the services of the layer below and in turn offers its services to the layer above.
  • the services are defined in the form of protocols.
  • Protocol stack structure Basic elements of the protocol stack structure are a feed area 21 and a transport system 22.
  • the first component of the feed area 21 is a transfer layer with the data transmission interface 24 for physical transfer and receipt. acceptance of data to or from a corresponding interface 122 of a terminal 100.
  • the data transmission interface 24 can in particular be designed as a USB or Firewire or as an Ethernet interface.
  • a distribution unit 26 Associated with the data transmission interface 24, as a second component of the feed area 21, is a distribution unit 26. Depending on the data received via the data carrier interface 24, it defines a data path on which the data is forwarded and sets the transmission mode to be used for the data transmission. 2, a first data path points into the interaction area 40, a second data path into the server area 50. In the first case, the data transmission takes place in transparent mode 39. In the second case, the data transmission takes place in a network protocol mode 38 using a network protocol. In the latter case, the set data path points to the first layer 28 of the transport system 22 that is based on the data transmission interface 24. The number of data paths is not limited to two but can be increased as desired within the scope of the hardware resources available on the data carrier 10.
  • FIG. 3 illustrates an arrangement for the technical implementation of a transmission mode change when using an interpreter working with a namespace switch, in particular a FORTH interpreter 44.
  • the distribution unit 26 is on the one hand via a direct connection 39 and on the other hand via the transport system 22 with an activation meter - Mechanism 37 connected, the interpreter 44 is connected downstream on the output side.
  • the data transmission via the transport system 22 takes place in the network protocol mode.
  • the direct data transmission from the distribution unit 26 to the activation mechanism 37 realizes the transparent mode.
  • a separate activation Signal connection 27 led to the activation mechanism 37.
  • the interpreter 44 has two namespaces 45, 46 in which applicable functions and basic routines are created.
  • the first namespace 45 contains functions and basic routines for implementing the transparent mode 39.
  • the second namespace 46 contains functions and basic routines for implementing the network protocol mode 38.
  • the respectively valid namespace is set via the activation signal connection 27.
  • the transparent mode 39 is expediently always set at the beginning of a data exchange between a terminal 100 and a data carrier 10.
  • the data stream flowing via the data carrier interface 24 is in this case passed directly from the distribution unit 26 to the interpreter 44 and processed by the latter.
  • the distribution unit 26 continuously monitors the data stream to determine whether a specific control element appears in it.
  • a defined byte sequence which has meaning in one of the transmission modes and is not provided in the other, expediently serves as the control element.
  • the distribution unit 26 changes to the second transmission mode, ie to the network protocol mode 38, and sets the data path to the server area 50.
  • the data stream is then no longer routed directly to the interpreter 44 but to the transport route 22.
  • the distribution unit 26 generates an activation signal, which it transmits to the activation mechanism 37 via the activation signal connection 27.
  • the activation mechanism In turn, mechanism 37 then prepares interpreter 44 for executing application programs from server area 50. For this purpose, the activation mechanism 37 inserts an instruction into the data stream that designates a specific network server 52.
  • the activation mechanism 37 inserts the instruction “4HTTP” into the data stream in order to call an HTTP server.
  • the functionality of such a network server 52 is described using second namespace 46.
  • the interpreter 44 sets the namespace 46 assigned to the network protocol mode 45 as the namespace to be used and blocks the other.
  • the transport system 22 which in turn consists of three protocol layers 26, 28, 30, is placed on the distribution unit 26.
  • the protocol layer sequence 26, 28, 30 is designed to enable the known TCP / IP network protocol.
  • TCP / IP is quasi-standardized by RFCs and is particularly widespread on the Internet.
  • the first layer of the transport system 22 is a protocol layer 28 for management of the transmission of data packets.
  • the transmission layer 28 is in the form of a SLIP, a PPP or an RNDIS protocol layer.
  • the transmission layer 28 there is a network layer 30 for determining the recipients or the destination addresses of data packets to be transmitted in the server area 50.
  • the network layer 30 is designed as an IP protocol layer.
  • a transport layer 32 for controlling the data flow to the server area 50 lies over the network layer 30.
  • the transport layer 32 is designed as a TCP protocol layer.
  • the transition between communication area 20 and server area 50 can be implemented as an I / O buffer.
  • the transport layer 32 provides service requests therein, which specify which application in the server area 50 is to be activated in each case.
  • the service requests are formed by port numbers, each of which designates a network server 52.
  • All layers of the transport system 22 are expediently permanently created in the memory 2 of the processor core 1 by mask programming and form a static component of the portable data carrier 10.
  • the data transmission interface 24 is designed via existing contact means or via contact means set up specifically for this purpose. For example, it uses a coil present on the data carrier 10 or works via certain contacts of a standard chip card contact field.
  • FIG. 4 illustrates the operation of the protocol stack 24 to 32 when using TCP / IP when the data carrier interface is designed as USB interface.
  • the data coming from the terminal 100 is transferred to the data carrier 10 in packets 410 of, for example, 64 bytes.
  • the packets 410 each contain sub-packets 400 'of user data 400.
  • the beginning and end of each packet 410 are each marked by a CO byte 420, ie the number 192 decimal.
  • the CO byte 420 is not assigned to any character within the ASCII code. It therefore also serves as a control element for the distribution unit 26 for setting the transmission mode.
  • the distribution unit 26 selects the network protocol transmission mode 38 accordingly for the forwarding of the data packets 410 and transfers the data packets 410 to the SLIP transmission layer 28, which packs them into a coherent data block 430. Furthermore, the distribution unit 26 sends an activation signal to the activation mechanism 37.
  • the SLIP transmission layer 28 passes the unfragmented data block 430 to the IP switching layer 30, which evaluates the IP header 440 contained in the data block 430 and determines the destination address contained therein.
  • the data block is subsequently transferred to the TCP transport layer 32, which evaluates the TCP header 450 contained in the data block 430 in order to determine the service request 420 contained therein.
  • the service request is a port number 460 in TCP / IP. It denotes a network server 52 to be used to execute the service; Widespread are, for example, the HTTP server to which port number 80 is assigned, or the FTP server with port numbers 20 and 21.
  • Port number 460 is provided at the exit of transport layer 32, from where network server 52, designated by port number 460, thus, for example, the HTTP server or the FTP server, which accesses the user data 400 contained in the data block.
  • the faulty data packet 430 is rejected.
  • the content of data packets 430 that are fundamentally meaningful is provided, for an HTTP server, for example, the instructions GET, HEAD or POST with associated variables, for example “host:”, and parameters, for example “/index/.html”.
  • the protocol layers 28, 30, 32 of the communication area 20 can be executed multiple times or in a branching manner in order to enable other or further network protocols.
  • a further transport layer can be set up approximately parallel to a first transport layer 32, which transports data for other services.
  • An example of a second transport layer is a UDP layer.
  • An integral part of the interaction area 40 is an interpreter 44. It is addressed via the data transmission interface 24 in the transparent mode 39. In transparent mode 39, ASCII data are typically transmitted to it. Other data formats also come into consideration, such as APDU commands in the field of chip cards.
  • the interpreter 44 realizes two basic functionalities. On the one hand, upon access to corresponding textual instructions, it executes application programs stored as machine code in the storage system of the data carrier 10 and thereby realizes the functionalities and applications assigned to the data carrier 10. This first basic functionality is carried out when using the network protocol mode 38.
  • the interpreter 44 also enables the reloading of new application programs on the data carrier 10.
  • the program source text to be loaded is compiled when it is loaded into native machine code and is preferably stored in the non-volatile memory field 3 of the data carrier 10.
  • the program source text to be loaded can be the source text of an application to be brought onto the data carrier 10 or the HEX - Dump a patch for an existing application program.
  • the second basic functionality is implemented in transparent mode 39.
  • the program source text supplied is in a high-level programming language. It is conveniently written in the high-level programming language FORTH.
  • the interpreter 44 is a FORTH interpreter according to ISO 15948, which is composed of an outer interpreter 42 and an inner interpreter 43.
  • Such an interpreter 44 can be implemented with a space requirement of typically 8 kB in the storage system 3, 4.
  • the outer interpreter 42 interprets textual instructions coming from the feed area 21 - for example HTTP commands in the network protocol mode or configuration instructions in the transparent mode - and checks the text for basic routines (“words”) contained therein.
  • the inner interpreter 43 runs and executes the Basic routines through the processor core 1 of the data carrier 10 by interpreting memory addresses present in binary form.
  • the inner interpreter 43 thus executes the actual execution of application programs. Parameters are passed from the outer to the inner interpreter via a stack memory (“stack”).
  • interpreter 44 can also be based on other programming environments, for example if the storage capacity of the data carrier 10 this allows on Java. Depending on the programming environment chosen, modifications to the internal structure of interpreter 44 may be necessary.
  • the functional scope of a FORTH interpreter 44 on which this is based is determined by the basic routines.
  • a basic set of elementary basic routines is permanently created in the non-volatile memory area 3 during the production of the data carrier 10 as a mask code.
  • the functional scope of the FORTH interpreter 44 can be expanded by reloading basic routines based on these elementary routines. Usually there is an extension in connection with the reloading of new application programs. When the strings are loaded, the interpreter 44 compiles new basic routines to memory addresses of elementary routines, which are then each executed by the inner interpreter 43 when an application program is executed.
  • the basic routines are organized in a number of namespaces 45, 46, one namespace 45, 46 each being assigned to a basic functionality of interpreter 44.
  • Basic functionalities of interpreter 44 are the reloading of new program codes and the execution of existing application programs.
  • the first basic functionality corresponds to the transparent mode 39, the second to the network protocol mode 38.
  • a first namespace 45 comprises basic routines assigned to the transparent mode 39. These include the commands SET-IP, NET STAT, HELP.
  • a second namespace 46 assigned to the network protocol mode 38 correspondingly comprises the commands GET, HEAD, POST.
  • the interaction area 40 further contains a configuration area 48, which is used to manage configurations and parameterizations.
  • the Configuration area 48 enables the interactive configuration of settings of communication area 20 or server area 50 in transparent mode 39. In transparent mode 39, it can be addressed directly by a terminal 100 and provides operating aids, for example input masks that implement user guidance.
  • the configuration area 48 for example, the IP address valid for the portable data carrier 10 or an application located in the server area 50 or the default gateway for unknown addresses are defined.
  • Part of the configuration area 48 is also a configuration manager 49 with which the usability of the transparent mode 39 can be set.
  • the configuration manager 49 allows the transparent mode to be restricted in such a way that only configuration instructions can be entered in the transparent mode 39, but changes to the range of functions of the interpreter 44, for example by loading new basic routines, are no longer possible.
  • the configuration manager 49 is implemented by blocking the execution of certain basic routines of the associated namespace 45. Configuration manager 49 is expediently set up after all other application programs have been loaded,
  • a basic version of the interpreter 44 with elementary routines and the configuration area 48 are expediently stored as a mask program in the non-volatile memory fields 3, 4 of the portable data carrier 10.
  • the server area 50 contains the application programs executable with the data carrier 10 and the files required for their function. At least one of the application programs implements the functionality of a network server 52.
  • the network server 52 can be an HTTP server, for example or be an FTP server. With the help of a network server 52, the data carrier 10 becomes a full network server in relation to the terminal 100. For example, the execution of an application program implementing an HTTP server by the interpreter 44 causes an HTML page or other data and a header to be output.
  • Appendix A shows an example of an application program for realizing a network server, a FORTH source text that realizes a basic network server.
  • the source text can be transmitted by means of the terrestrial program 102 in transparent mode from a terminal device 100 to a data carrier 10 and produces the network server functionality there.
  • the application program that realizes the functionality of a network server 52 is executed by the interpreter 44 if the transport system 22, after passage through the switching and transport layer, has a useful service request at the exit of the transport system 22.
  • the service request can be, for example, the request to execute an HTTP command such as GET, HEAD or POST. If there is such a service request, the interpreter 44 determines whether a program code implementing the requested service is present in the server area 50. If this is the case, it transmits a confirmation message to the transport system 22 and executes the program code found.
  • the requested service can consist, for example, in the output of an HTML file containing a text.
  • the trigger for the request can be an address requested by a user via a network navigator 150, for example the address “http://160.1.1.1/index/html”.
  • the network navigator 150 uses this to generate an http instruction that issues the HTTP command “ GET "contains, for example” GET / index.html http / 1.1 ".
  • This HTTP instruction is in the Network protocol mode 38 passed to the interpreter 44 via the transport system 22.
  • the interpreter 44 functions as an HTTP network server 52 and executes basic routines in order to deliver the requested file to the network navigator 150.
  • the network navigator 150 displays the received file in the terminal 100 via the user interface 140.
  • auxiliary application programs are connected to the network server 52, the type and number of which depend on the type of network server and the particular requirements.
  • a source code analyzer for example in the form of a
  • XML parsers 54 for example for compiling CGI scripts 66
  • a block of security configuration files 58 in which security settings for the operation of the interpreter are stored.
  • the network server 52 is assigned a file system 68 with files for recording user data, i.e. in particular files 60 with applets, files 62 with images, or files 64 with graphics to be displayed, such as HTML files.
  • Application programs and files to be stored in the server area 50 are loaded in transparent mode 39 via interpreter 44 or in network protocol mode 38 using a suitable command, for example the HTTP command POST.
  • Certain basic structures for example the structure of the file system 68, are expediently provided in the memory 4 used to set up the server area 50.
  • an HTTP server 52 in the server area 50 several network servers 52 can also be set up, which provide different services.
  • an FTP server and / or a Telnet server can also be provided, which becomes active when port 20/21 for the FTP port is located at the exit of the TCP transport layer. Server or 23 for the Telnet server is requested. Own file systems can be assigned to all network servers 52. However, as illustrated in FIG. 6, you can also access the same file system 68.
  • the grain communication area 120 of the terminal 100 forms the counterpart to the communication area 20 of a data carrier 10 and serves to carry out a data exchange with the latter. Like that, the communication area 120 of the terminal 100 has a layer structure. To data carrier 10, it has a physical interface 122 corresponding to its data transmission interface 24, in particular one
  • USB a Firewire or an Ethernet interface.
  • adaptation layer 124 which converts the data transmitted via the interfaces 122 from the format used on the interface 122 into the format required by the microcontroller 101 of the terminal 100. If, for example, the interface 122 is a USB interface, but the microcontroller 101 is only designed for processing simple serial signals, then the adaptation layer 26 forms a virtual serial interface.
  • a transport system 130 is formed above the adaptation layer 124 for forwarding to or receiving data transmitted via the data transmission interface 122 to the network navigator 150.
  • the transport system 130 as indicated in FIG. 1, comprises a SLIP or PPP layer 132, an IP layer 134 and a TCP layer 136, ie corresponding to a protocol layer sequence based on the OSI layer model the OSI layers 2, 3 and 4 in the communication area of the data carrier 10.
  • the terminal program 102 is used to establish a transparent mode data connection to a data carrier 10. It is operated via the user interface 140 and realizes the data exchange in the transparent mode 39. Using the terminal program 102, among other things, the creation of new application programs for the server area and access to configuration area 48.
  • Network navigator 150 is typically a common browser. If the data carrier 10 has a network server 52, it allows, in particular, selection and calling of a specific application from the server area 50 of the portable data carrier 10. The user navigates the network navigator 150 via the user interface 140 ,
  • a practical use of a data carrier 10 is described below with reference to FIG. 6.
  • the use shown is divided into three phases, the first phase e.g. is carried out at the manufacturer of the data carrier 10, the second phase by a user and the third phase by an end user.
  • the first phase begins by the manufacturer providing a data carrier 10, step 300.
  • the interaction region 40 and the communication region 20 with a communication device for executing at least one network protocol are created on the data carrier 10 by mask programming.
  • the applications to be applied directly by the manufacturer are also loaded, step 302 and set the associated configurations in configuration area 48, step 304.
  • the data carrier 10 is then transferred to the application provider, step 310.
  • the application provider is, in particular, an institution that operates a network of terminals 100, on which certain applications can be carried out using a data carrier 10.
  • Such an application provider can be, for example, a bank or an authority.
  • the application provider presents the data carrier 10 received from the manufacturer at the interface 122 of a suitable terminal 100 and establishes a connection to the data carrier 10 using a suitable terminal program 102, step 310.
  • the data carrier 10 initially sets the transparent mode 39 as the transmission mode, and thus a data path to the interaction area 40, step 312.
  • the application provider now loads its own applications, step 316, for example special banking or governmental applications, onto the data carrier 10, where they are loaded into the server area 50.
  • the application provider also makes adjustments in the configuration area 48 before step 320 and loads them onto the data carrier 10. For example, it may be necessary to convert a manufacturer-related IP address of the data carrier 10 that was initially created by the manufacturer into an IP address that is valid on the end devices 100 of the user. Change address. In transparent mode 39, the application provider therefore enters into a direct dialog with the configuration area 48 and sets the changed IP address by means of the terminal 100. If all intended accesses have taken place, the application provider ends the communication with the data carrier 10 by removing it from the terminal 122 on the terminal side, step 322. The data carrier 10 is now handed over to the end user.
  • the end user in turn presents the data carrier 10, step 330, for executing an application to a suitable terminal 100, for example the reader of a home computer, and establishes a connection to the data carrier 10 using a suitable communications program 102.
  • the data carrier 10 then first switches to the transparent mode 39, step 332, and offers a dialog with the interaction area 40 via the terminal 100. As a rule, changes in the design area 40 are not to be made by an end user.
  • the end user regularly initiates the execution of an application. For this purpose it changes from the to the communication structure 'program routine employed in a form suitable for access to a server located in the area 50 of the data carrier 10 application program routine, such as a conventional network browser and requests access to the' on application. The request is made using the browser's network protocol, step 334. This causes the distribution unit 26 of the data carrier 10 to change the transmission mode and to set a data path in the server area 50 to the desired application.
  • the end user then executes the intended application, step 336.
  • the end user ends access to the data carrier 10, step 338.
  • the end user changes back to the transparent mode 39 by ending the current application access by actively ending the SLIP / PPP session or by removing the data carrier 10, the data carrier 10 immediately afterwards again at the interface 122 of the terminal 100 presents, step 340, and starts communication with the data carrier again using the program routine provided for this purpose.
  • the latter first sets the transparent mode 39 again.
  • a UDP / IP protocol architecture can be set up in the communication area 20.
  • Further network servers 52 for example a TELNET server, with associated auxiliary programs and file systems can be set up in the server area 50.
  • TCP / IP itself allows a large number of variants and configurations within the framework of the associated RFCs.
  • applications with any other structures can also be created. These further applications may also require that in the communication area 20 a specially adapted further protocol layer architecture for communication with the applications is established.
  • activation mechanism and interpreter 44 can also occur in principle.
  • the functionality of the activation mechanism could be integrated into the distribution unit. Expedient modifications can also result from the aspect of security against manipulation when handling data on the portable data carrier and when exchanging data between the portable data carrier and a terminal device 100.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Theoretical Computer Science (AREA)
  • Business, Economics & Management (AREA)
  • Computer Hardware Design (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Accounting & Taxation (AREA)
  • General Business, Economics & Management (AREA)
  • Strategic Management (AREA)
  • Signal Processing (AREA)
  • Computer Security & Cryptography (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer And Data Communications (AREA)
  • Telephone Function (AREA)
  • Stored Programmes (AREA)
  • Telephonic Communication Services (AREA)

Abstract

The invention relates to a portable data carrier (10), which is preferably embodied in the form of a chip card, comprising an interpreter (44) for loading and executing application programs, at least one of which carries out the functionality of a network server (52). Application programs are loaded and executed using various modes of transmission (38, 39). A distribution unit which monitors the incoming data flow for the presence of specific control elements, is used to adjust the respective transmission mode to be used. A transmission mode (38) can be a standard network protocol, especially a TCP/IP protocol.

Description

Tragbarer Datenträger mit Netzserverfunktionalität Portable data carrier with network server functionality
Die Erfindung geht aus von einem tragbaren Datenträger nach der Gattung des Hauptanspruchs. Ein solcher ist beispielsweise aus der EP 932 865 Bl bekannt. Darin ist eine IC-Karte beschrieben, die die Möglichkeit bietet, Applikationen zu laden, die in der Programmierhochsprache Java (s.a. http://java.sun.com) geschrieben wurden. Im Klartext in Java erstellte Applikationen werden zunächst in sogenannte „class files" compiliert, die nachfolgend einer Konvertierung unterworfen werden. Darin werden die class files in kompaktere „card class files" bzw. „card application files" bzw. „CAP-fil'es" überführt, die schließlich an die IC-Karte übertragen werden. Um auf eine IC-Karte transferierte card class files ausführen zu können, befindet sich auf der IC-Karte eine „virtuelle Maschine", d.h. ein in Softwareform nachgebildeter Prozessor. Die bekannte Lösung erlaubt die Einhaltung eines hohen Sicherheitsniveaus im Hinblick auf die Manipulation von ladbaren Applikationen. Allerdings beanspruchen bei vergleichbarem Funktionsumfang Lösungen auf Basis einer virtuellen Maschine mehr Speicherplatz als solche, die auf an den jeweiligen Einsatz angepaßten Betriebssystemen beruhen. Auf ressourcenbeschränkten Systemen wie IC-Karten hat dies zur Folge, daß der zur Aufnahme von Applikationen zur Verfügung stehende Speicherraum entsprechend reduziert wird. Für die Erstellung neuer Anwendungen für IC-Karten ist ferner die Bereitstellung von Mitteln zur Konvertierung erstellter class files Voraussetzung. Die Handhabung der Lösung ist insoweit eingeschränkt.The invention is based on a portable data carrier according to the preamble of the main claim. Such is known for example from EP 932 865 B1. It describes an IC card that offers the option of loading applications that were written in the high-level Java programming language (see also http://java.sun.com). In clear text created in Java applications are first in so-called "class files" compiled, which are subsequently subjected to conversion. Therein, the class files in compact "card class files" or "card application files" or "CAP-fil 'it "transferred, which are finally transferred to the IC card. In order to be able to execute card class files transferred to an IC card, there is a “virtual machine” on the IC card, that is to say a processor simulated in software form. The known solution allows a high level of security to be maintained with regard to the manipulation of loadable ones However, with a comparable range of functions, solutions based on a virtual machine take up more storage space than those based on operating systems that are adapted to the respective application, which means that resource-limited systems such as IC cards have the space available to accommodate applications The creation of new applications for IC cards also requires the provision of means for converting created class files, so the handling of the solution is restricted.
Aus der WO 01/60040 ist der Vorschlag bekannt, eine Chipkarte als Webserver, d.h. als Netzserver im Internet einzusetzen und die Karte mit einer Proxyfunktionalität zu versehen. Auf der Karte ist hierzu, angelehnt am OSI- Schichtenmodell, eine fünfschichtige Netzwerkstruktur eingerichtet, die eine physikalischen Übertragungsschicht, eine Datenübertragungsschicht, eine Vermittlungsschicht, eine Transportschicht sowie eine Anwendungsschicht umfaßt. Die Anwendungsschieht beinhaltet neben verschiedenen Applikationen Dienstprogramme, die zum einen die Funktionalität eines Web- Servers, zum anderen die Funktionalität eines Proxyservers realisieren. Die physikalische Übertragungsschicht und die Datenübertragungsschicht ent- sprechen den gängigen Chipkartennormen und unterstützen übliche Kartenbefehle, so daß die Karte in bekannter Weise angesprochen werden kann. Die vorgeschlagene Karte ermöglicht eine sichere Handhabung von Daten, die zwischen einem Terminal und einem Netzserver ausgetauscht werden. Die Schrift macht keine Angaben dazu, wie eine Applikation in die Karte geladen werden kann.From WO 01/60040 the proposal is known to use a chip card as a web server, ie as a network server on the Internet and to provide the card with a proxy functionality. For this purpose, based on the OSI layer model, a five-layer network structure is set up on the card, which has a physical transmission layer, a data transmission layer, a network layer, a transport layer and an application layer includes. In addition to various applications, the application path includes utilities that implement the functionality of a web server on the one hand and the functionality of a proxy server on the other. The physical transmission layer and the data transmission layer correspond to the current chip card standards and support conventional card commands, so that the card can be addressed in a known manner. The proposed card enables secure handling of data that are exchanged between a terminal and a network server. The font does not provide information on how an application can be loaded into the card.
Aus der WO 01/60881 ist der Vorschlag bekannt, eine IC-Karte mit einer Standardschnittstelle zur Durchführung eines standardisierten Protokolls gemäß ISO-Norm mit einer Funktionalität zur Ausführung eines weiteren ProtokoUes, insbesondere eines USB-Protokolles, zu versehen. Auf der Karte befindet sich hierzu eine Umsetzungseinrichtung, die Kommandos gemä . dem standardisierten Kartenprotokoll in Kommandos gemäß dem zweiten Protokoll umsetzt. Zur Steuerung der Umsetzungseinrichtung durch ein Terminal ist die Karte zur Ausführung eines Satzes von speziellen Kom- mandos eingerichtet.From WO 01/60881 the proposal is known to provide an IC card with a standard interface for carrying out a standardized protocol according to the ISO standard with a functionality for executing a further protocol, in particular a USB protocol. For this purpose, there is an implementation device on the map which commands according to. implements the standardized card protocol in commands according to the second protocol. To control the implementation device through a terminal, the card is set up to execute a set of special commands.
Aus dem „Handbuch der Chipkarten", W. Rankl, W. Effing, 2002, 4. Auflage, ist der physikalische Aufbau von Chipkarten, besonders die Beschaffenheit des Kartenmikrocontrollers, und ihren Schnittstellen zur Außenwelt ent- nehmbar. Beschrieben werden weiter Kartenbetriebssysteme, die das Nachladen von Programmcode auf eine Chipkarte erlauben. Hierbei wird auf die Möglichkeit eingegangen, auf Chipkarten einen vollständigen Interpreter vorzusehen, der zugeführten Programmcode auf der Karte interpretiert. Die Variante wird aber aus Gründen der Arbeitsgeschwindigkeit und des Spei- cherplatzbedarfes für einen solchen Interpreter als ungünstig eingestuft. Beschrieben wird in dem Buch ferner das Konzept der Multifunktionskarte.From the "Handbuch der Chipkarten", W. Rankl, W. Effing, 2002, 4th edition, the physical structure of chip cards, especially the nature of the card microcontroller, and their interfaces to the outside world can be found Allow the reloading of program code onto a chip card. This deals with the possibility of providing a complete interpreter on chip cards and interprets the supplied program code on the card. However, the variant is chosen for reasons of working speed and storage. Space requirements for such an interpreter classified as unfavorable. The concept of the multifunction card is also described in the book.
Zur Realisierung einer Multiapplikationskarte ist weiter ein Betriebssystem bekannt („OSSCA": Operating System for Smart Cards, Prospekt der Firma KEYCORP Ltd., März 1999, abrufbar unter http://keycorp.net/smartcard/ ossca.pdf), welches zur Ausführung von in einer Variante der Prograrnrnier- hochsprache FORTH geschriebenen Anwendungsprogrammen eingerichtet ist und das Nachladen solcher Anwendungsprogramme erlaubt. Das Be- triebss stem erlaubt eine simultane Ausführung von bis zu vier Anwendungen. Die Kommunikation zwischen Chipkarte und Terminal erfolgt allerdings gemäß einem üblichen, standardisierten Chipkartenprotokoll über eine Standard-Chipkartenschnittstelle. Eine Kommunikation mit der Chipkarte setzt entsprechend spezielle, geeignete Terminals voraus.An operating system for realizing a multi-application card is also known ("OSSCA": Operating System for Smart Cards, prospectus from KEYCORP Ltd., March 1999, available at http://keycorp.net/smartcard/ ossca.pdf), which is used for execution of application programs written in a variant of the high level programming language FORTH is set up and such application programs can be reloaded. The operating system allows up to four applications to be executed simultaneously. However, communication between chip card and terminal takes place in accordance with a conventional, standardized chip card protocol a standard chip card interface Communication with the chip card requires special, suitable terminals.
Eine Beschreibung der wichtigsten Prinzipien der Programmiersprache FORTH gibt unter anderem der Artikel „The Forth Approach to Operating Systems" von E.D. Rather , C.H.Moore, 1976, Proceedings of the ACM, S. 233 bis 240.A description of the most important principles of the programming language FORTH is given, inter alia, by the article "The Forth Approach to Operating Systems" by E.D. Rather, C.H. Moore, 1976, Proceedings of the ACM, pp. 233 to 240.
Aufgabe der Erfindung ist es, einen tragbaren Datenträger anzugeben, der geeignet ist, als Netzserver eingesetzt zu werden und dabei für diese Nutzung möglichst geringe Anforderungen an die Nutzungsumgebung stellt.The object of the invention is to provide a portable data carrier which is suitable for being used as a network server and which, for this use, places the lowest possible demands on the usage environment.
Die Aufgabe wird gelöst durch einen tragbaren Datenträger mit den Merkmalen des Hauptanspruchs. Grundlage für den erfindungsgemäßen tragbaren Datenträger bildet der Ansatz, Elemente, die nur dazu dienen, den Datenträger zur Verwendung in speziell auf tragbare Datenträger zugeschnittenen Anwendungen einzurichten, zunächst gar nicht erst vorzusehen. Er- findungsgemäße tragbare Datenträger verfügen nur über eine aus dem Bereich der Computertechnik übernommene Standardschnittstelle sowie Mittel zur Durchführung zweier verschiedener Ubertragungsmodi, wobei ein erster Ubertragungsmodus zum Einrichten von Anwendungen dient, während der andere zur Nutzung der Anwendungen unter Verwendung eines bekannten Netzwerkprotokolles dient. Wesentliches Element dieser Mittel ist eine Verteileinheit, die die Einstellung des jeweils zu verwendenden Ubertragungsmodus vornirrimt.The object is achieved by a portable data carrier with the features of the main claim. The basis for the portable data carrier according to the invention is the approach of not initially providing elements that only serve to set up the data carrier for use in applications tailored specifically to portable data carriers. He- Portable data carriers according to the invention only have a standard interface adopted from the field of computer technology and means for carrying out two different transmission modes, a first transmission mode being used to set up applications, while the other is used to use the applications using a known network protocol. An essential element of these means is a distribution unit which prevents the setting of the transmission mode to be used in each case.
Der erfindungsgemäße Datenträger hat den Vorteil, daß Anwendungen mittels eines üblichen Netzwerkrotokolls angesprochen werden können, das nicht datenträgerspezifisch ist und das zur Kommunikation zwischen über ein Netz verbundenen Teilnehmern verbreitet ist. Insbesondere kann es sich bei dem Netzwerkprotokoll um ein übliches TCP/IP-Protokoll handeln. Der Datenträger läßt sich hiermit in jeder TCP/IP-Umgebung einsetzen. Insbesondere eignet sich ein mit TCP/IP ausgestatteter Datenträger zur Verwendung in einem lokalen Netzwerk („LAN"), das über einen Adreßübersetzer mit dem Internet verbunden sei kann. Der Datenträger verhält sich dann wie ein regulärer Internet-Teilnehmer.The data carrier according to the invention has the advantage that applications can be addressed using a conventional network protocol which is not specific to the data carrier and which is common for communication between participants connected via a network. In particular, the network protocol can be a conventional TCP / IP protocol. The data carrier can thus be used in any TCP / IP environment. In particular, a data carrier equipped with TCP / IP is suitable for use in a local area network ("LAN") which can be connected to the Internet via an address translator. The data carrier then behaves like a regular Internet user.
Ein weiterer besonderer Vorteil des erfindungsgemäßen Datenträgers besteht darin, daß Programme zur Realisierung neuer Anwendungen ohne Vorverarbeitung in einem Hochsprachenformat auf einen tragbaren Datenträger geladen werden können. Besonders geeignet zur Programmerstellung ist die Hochsprache FORTH.Another particular advantage of the data carrier according to the invention is that programs for implementing new applications can be loaded onto a portable data carrier in a high-language format without preprocessing. The high-level language FORTH is particularly suitable for program creation.
Die auf einen tragbaren Datenträger gebrachten Anwendungen umfassen vorteilhaft einen kartenresidenten Netzserver, mittels dessen in den Anwendungen navigiert werden kann. Der Netzserver kann dabei insbesondere ein Webserver zur Anwendung im Internet sein.The applications placed on a portable data carrier advantageously comprise a card-resident network server, by means of which the applications can be navigated. The network server can in particular be a Web server for use on the Internet.
Ohne weiteres können auf einem tragbaren Datenträger auch mehrere Netzserver zur Bearbeitung von unterschiedlichen Diensteanforderungen einge- richtet sein. Beispielsweise kann ein erster Netzserver eine HTTP-Server, ein zweiter Netzserver ein FTP-Server sein.Several network servers can also be set up on a portable data carrier to process different service requests. For example, a first network server can be an HTTP server and a second network server can be an FTP server.
Die für einen erfindungsgemäßen Datenträger vorgesehene Struktur ermöglicht es, Datenträger bei der Herstellung zunächst nur mit einem Interpreter auszurüsten, jedoch noch keine Anwendungen aufzubringen. Dies kann durch die Abnehmer der Datenträger erfolgen.The structure provided for a data carrier according to the invention makes it possible to initially equip data carriers with only one interpreter during production, but no applications yet. This can be done by the customers of the data carriers.
Ein großer Vorteil ergibt sich weiter aus der vielfältigen Anwendbarkeit des erfindungsgemäßen Datenträgers, da er bei der Kommunikation zur Aus- senwelt hin auf datenträgerspezifische Lösungen verzichtet und wie ein frei konfigurierbarer Netzteilnehmer betreibbar ist.Another great advantage arises from the versatility of the data carrier according to the invention, since it dispenses with data carrier-specific solutions when communicating with the outside world and can be operated like a freely configurable network subscriber.
Unter Bezugnahme auf die Zeichnung wird ein Ausführungsbeispiel der Erfindung nachfolgend näher erläutert.With reference to the drawing, an embodiment of the invention is explained in more detail below.
Es zeigen:Show it:
Fig. 1 den grundlegenden Aufbau eines tragbaren Datenträgers,1 shows the basic structure of a portable data carrier,
Fig. 2 die Strukturen eines tragbaren Datenträgers mit Netzserver- Funktionalität sowie eines mit dem tragbaren Datenträger zusammenwirkenden Endgerätes,2 shows the structures of a portable data carrier with network server functionality and of a terminal device interacting with the portable data carrier,
Fig. 3 die Realisierung zweier Datenpfade über eine Verteileinheit, Fig. 4 die Funktionsweise einer Protokollstapelstruktur,3 the realization of two data paths via a distribution unit, 4 shows the functioning of a protocol stack structure,
Fig. 5 eine Anordnung mehrerer Netzserver auf einem tragbaren Datenträ- ger,5 shows an arrangement of several network servers on a portable data carrier,
Fig. 6 eine praktische Anwendung eines Datenträgers.Fig. 6 shows a practical application of a data carrier.
Im folgenden wird eine Reihe üblicher Abkürzungen und Fachbegrüf e ver- wendet, die vorab kurz erläutert werden; ausführlichere Erläuterungen finden sich unter anderem im „Computer-Lexikon", Deutscher Taschenbuchverlag, 4. Auflage, 2002, im „Lexikon der Datenkommunikation", Klaus Li- pinski, 4. Auflage, Verlag Thomson Publishing, 1996, oder in dem genannten „Handbuch der Chipkarten" sowie im Internet unter der Adresse „www.protocols.com/pbook/tcpip.htm".In the following, a number of common abbreviations and technical terms are used, which are briefly explained in advance; More detailed explanations can be found, inter alia, in the "Computer Lexicon", Deutscher Taschenbuchverlag, 4th edition, 2002, in the "Lexikon der Datenkommunikation", Klaus Lipinski, 4th edition, Verlag Thomson Publishing, 1996, or in the "Handbuch" the chip cards "and on the Internet at" www.protocols.com/pbook/tcpip.htm ".
USB: Universal Serial Bus.USB: Universal Serial Bus.
Vereinheitlichte Schnittstelle für langsame und mittelschnelle Geräte.Unified interface for slow and medium-speed devices.
Protokoll: Softwarekomponente, die bei einer Datenübertragung die Ver- mittlerrolle zwischen einer sendenden und einer empfangenden Instanz spielt.Protocol: Software component that acts as an intermediary between a sending and a receiving entity during data transmission.
SLIP: Seriel Line Internet Working Protocol.SLIP: Serial Line Internet Working Protocol.
Protokoll zur Übertragung von Datenpaketen über eine serielle Verbindung. PPP: Point to Point Protocol.Protocol for the transmission of data packets over a serial connection. PPP: Point to Point Protocol.
Serielles Protokoll zur Datenübertragung in Punkt-zu-Punkt- Verbindungen.Serial protocol for data transmission in point-to-point connections.
TCP: Transmission Control Protocol.TCP: Transmission Control Protocol.
Protokoll zur Steuerung der Verbindungen zwischen Teilnehmern ei- nes Netzwerk. IP: Internet Working Protocol.Protocol for controlling the connections between participants network. IP: Internet Working Protocol.
Protokoll zur Ermittlung der Netzadresse eines Netzwerkteilnehmers. UDP: User Datagramm Protocol. Besonders einfaches Protokoll ohne Overhead.Protocol for determining the network address of a network participant. UDP: User Datagram Protocol. Particularly simple protocol without overhead.
HTTP Hypertext Transfer Protocol.HTTP Hypertext Transfer Protocol.
Protokoll zur Übertragung von graphischen Informationselementen und Dateien. DHCP: Dynamic Host Contention Protocoll Automatische Adressenvergabe im Netz unter Windows.Protocol for the transfer of graphic information elements and files. DHCP: Dynamic Host Contention Protocol Automatic address assignment in the network under Windows.
CGI: Common Gateway Interface.CGI: Common Gateway Interface.
Protokoll zur Kopplung eines Web-Servers mit externen Programmen. HTML:Hypertext Markup Language.Protocol for coupling a web server with external programs. HTML: Hypertext Markup Language.
Sprache zur Beschreibung von graphischen Informationen. XML: Extensible Markup Language.Language for the description of graphic information. XML: Extensible Markup Language.
Gegenüber HTML erweiterte Sprache zur Beschreibung von graphischen Informationen. OSI-Schichtenmodell: Open System Interconnection- Schichtenmodell.Language extended to HTML to describe graphic information. OSI layer model: Open System Interconnection layer model.
Standardbeschreibung für die Architektur eines Netzwerkes. ASCII-Code: Zuordnungsregel, die einem definierten alphanumerischenStandard description for the architecture of a network. ASCII code: assignment rule that corresponds to a defined alphanumeric
Zeichensatz binäre Zeichen zuordnet. RFC: Request for CommentsCharacter set maps binary characters. RFC: Request for Comments
Dokumente zu Internet Standards. FORTH: Prograrrrmierhochsprache, in die sich besonders an den technischen Anforderungen der üblichen Prozessorkernstruktur orientiert, siehe auch ISO 15148. DFÜ: Datenfernübertragung, z.B. über Telefonleitung via Modem /ISDN- Adapter mittels KommLunikationsprogra rmes Stellvertretend für einen tragbaren Datenträger 10 wird nachfolgend eine Chipkarte zugrundegelegt. Die vorgeschlagene Lösung ist aber nicht auf diese Ausführungsform beschränkt sondern läßt sich mit gleichen Vorteilen auch auf in anderer Gestalt ausgebildete Datenträger 10 mit beschränktem Hard- und Softwarewareumfang übertragen. Beispiele für andere ressourcenbeschränkte Datenträgergestaltungen sind etwa die Integration eines Micrcontrollers in einen Schreibstift oder in Bekleidungsstücke.Internet standards documents. FORTH: High level programming language, in which the technical requirements of the usual processor core structure are based, see also ISO 15148. EDI: Remote data transmission, eg via telephone line via modem / ISDN adapter using communication programs A chip card is used below as a representative of a portable data carrier 10. However, the proposed solution is not limited to this embodiment, but can also be transferred with the same advantages to data carriers 10 in a different form with a limited amount of hardware and software. Examples of other resource-limited data carrier designs are the integration of a microcontroller in a pen or in clothing.
Fig. 1 veranschaulicht den grundsätzlichen Aufbau einer Chipkarte 10, die als Multifunktionskarte zur Verwendung in unterschiedlichen Anwendungen geeignet ist und die im Rahmen einer Hochsprachenprogrammierum- gebung mit neuen Anwendungsprogrammen ladbar ist. Wesentliches Element der Chipkarte 10 ist ein integrierter Schaltkreis 1 in Gestalt eines Mi- krocontrollers, der auf einem einzelnen Halbleiterchip einen Prozessorkern 2 sowie ein Speichersystem mit drei Speicherfeldern 3, 4 und 5 aufweist. Der Mikrocontroller 1 ist weiter mit einer Datenträgerschnittstelle 24 zum Austausch von Daten mit einem externen Endgerät 100 verbunden.1 illustrates the basic structure of a chip card 10 which is suitable as a multifunction card for use in different applications and which can be loaded with new application programs in the context of a high-level language programming environment. An essential element of the chip card 10 is an integrated circuit 1 in the form of a microcontroller, which has a processor core 2 and a memory system with three memory fields 3, 4 and 5 on a single semiconductor chip. The microcontroller 1 is also connected to a data carrier interface 24 for the exchange of data with an external terminal 100.
Von den Speicherfeldern 3, 4, 5 ist das erste 3 typischerweise ein maskenpro- grarnmierter Festwertspeicher in Gestalt eines ROMs, das zweite ein elektrisch löschbarer und beschreibbarer Festwertspeicher in Gestalt eines EE- PROMs oder eines FLASH-Speichers, das dritte ein flüchtiger Schreib/ Lesespeicher, in der Regel in Gestalt eines RAMs.Of the memory fields 3, 4, 5, the first 3 is typically a mask-programmed read-only memory in the form of a ROM, the second is an electrically erasable and writable read-only memory in the form of an EEPROM or a FLASH memory, the third is a volatile read / write memory , usually in the form of a RAM.
Das erste Speicherfeld 3 enthält den Programmcode des Betriebssystems der Chipkarte 10. Desweiteren kann im ersten Speicherfeld 3 der Programmcode grundlegender Anwendungsprogramme abgelegt sein, die auf allen Chipkarten 10 vorhanden sein sollen. Der gesamte im ersten Speicherfeld 3 abgelegte Programmcode wird bei der Herstellung der Chipkarte 10 mittels einer Maske als Maschinencode fest auf die Karte gebracht.The first memory field 3 contains the program code of the operating system of the chip card 10. Furthermore, the program code of basic application programs that should be present on all chip cards 10 can be stored in the first memory field 3. The entire program code stored in the first memory field 3 is used to produce the chip card 10 by means of a Mask attached to the card as machine code.
Das zweite Speicherfeld 4 dient zur Aufnahme des Codes von nachträglich auf eine Chipkarte 10 gebrachten Anwendungsprogrammen. Zudem dient es in der Regel auch als Arbeitsspeicher.The second memory field 4 is used to hold the code of application programs subsequently placed on a chip card 10. In addition, it usually also serves as working memory.
Das dritte Speicherfeld 5 dient in bekannter Weise als schneller Arbeitsspeicher.The third memory field 5 serves as fast working memory in a known manner.
Die Schnittstelle 24 kann vom kontaktbehafteten Typ und insbesondere als übliches Chipkartenkontaktfeld ausgeführt sein. Alternativ kann die Schnittstelle 24 vom kontaktlosen Typ sein und beispielsweise die Gestalt einer Spule besitzen, welche eine Antenne bildet.The interface 24 can be of the contact type and in particular can be designed as a conventional chip card contact field. Alternatively, the interface 24 can be of the contactless type and can have, for example, the shape of a coil which forms an antenna.
Der gesamte Aufbau der in Fig.l gezeigten Chipkarte ist an sich bekannt und unter anderem in dem genannten „Handbuch der Chipkarten" beschrieben.The entire structure of the chip card shown in FIG. 1 is known per se and is described, inter alia, in the “manual of chip cards” mentioned.
Wesentliche Komponente des Endgerätes 100 ist ein Controller 101 mit allen Elementen und der grundsätzlichen Funktionalität eines üblichen Compu- ters. Der Controller 101 stellt insbesondere einen Netznavigator 150 bereit, d.h. ein Anwendungsprogramm zur Durchführung von Zugriffen auf Dateninhalte, die in einer Netzstruktur wie dem Internet abgelegt sind. Weiter ist der Controller 101 dazu eingerichtet, ein Terminalprogramm 102 zur Ausführung zu bringen, das es über eine geeignete Schnittstelle, z.B. eine serielle RS 232-Schnittstelle gestattet, durch Datenaustausch in Kommunikation mit einem tragbaren Datenträger 10 zu treten. Zur Durchführung des Datenaustausches besitzt das Endgerät 100 eine zu der Datenübertragungsschnittstelle 24 korrespondierende Schnittstelle 122. Zu der Schnittstelle 122 ist auf dem Endgerät 100 weiterhin eine Software installiert, welche die Schnittstelle 122 an die auf dem Endgerät 100 befindlichen Applikationen, insbesondere das Terminalprogramm 102,den Netznavigator 150 oder ein DFÜ-Netzwerk mit SLIP/PPP anpaßt. Beispielsweise stellt diese Software die Schnittstelle 122 als serielle Schnittstelle, z.B. als RS 232-Schnittstelle bereit.The essential component of the terminal device 100 is a controller 101 with all elements and the basic functionality of a conventional computer. In particular, the controller 101 provides a network navigator 150, that is to say an application program for carrying out accesses to data contents which are stored in a network structure such as the Internet. Furthermore, the controller 101 is set up to execute a terminal program 102 which, via a suitable interface, for example a serial RS 232 interface, allows communication with a portable data carrier 10 through data exchange. To carry out the data exchange, the terminal device 100 has an interface 122 corresponding to the data transmission interface 24. A software is also installed on the terminal device 100 on the terminal device 100, which interface 122 adapts to the applications located on the terminal device 100, in particular the terminal program 102, the network navigator 150 or a dial-up network with SLIP / PPP. For example, this software provides the interface 122 as a serial interface, for example as an RS 232 interface.
Zweckmäßig bietet das Endgerät 100 weiter eine Programmierumgebung an, mittels derer es in Verbindung mit einem tragbaren Datenträger 10 möglich ist, neue Anwendungsprogramme für den tragbaren Datenträger 10 zu erstellen.The terminal 100 expediently also offers a programming environment by means of which it is possible in connection with a portable data carrier 10 to create new application programs for the portable data carrier 10.
Teil des Endgerätes 100 ist weiterhin eine Nutzerschnittstelle 140, die Mittel 142 aufweist, um einem Nutzer Informationen des Endgerätes 100 zur Darstellung zu bringen; typischerweise haben diese Mittel 142 die Gestalt eines Bildschirmes. Weiter besitzt die Nutzerschnittstelle 140 Mittel 144, typi- scherweise in Gestalt einer Tatstatur, um einem Nutzer die Eingabe von Befehlen an das Terminalprogramm 102 zu ermöglichen.Part of the terminal 100 is furthermore a user interface 140 which has means 142 in order to present information of the terminal 100 to a user; typically these means 142 are in the form of a screen. The user interface 140 also has means 144, typically in the form of a keyboard, to enable a user to enter commands to the terminal program 102.
Das Endgerät 100 kann ein im Zugriff eines einzelnen Nutzers stehende Einzelanordnung sein, etwa ein entsprechend eingerichteter üblicher Computer, aber auch z.B. ein Terminal, das einer Vielzahl von Nutzern zur Verfügung steht und beispielsweise Teil einer auf einem Netzwerk eingerichteten Anwendungslösung ist.The terminal device 100 can be a single arrangement which is accessed by a single user, for example a correspondingly set up conventional computer, but also e.g. a terminal that is available to a large number of users and is, for example, part of an application solution set up on a network.
Über das Terminalprogramm 102 und den Netznavigator 150 erlaubt das Endgerät 100 unter Steuerung durch einen Nutzer Aktivierung und Nutzung einer auf einem tragbaren Datenträger 10 verfügbaren Funktionalität. Terminalprogramm 102 und Netznavigator 150 stellen die hierzu notwendigen Programmroutinen zur Verfügung. Beispielsweise bieten sie eine Programmroutine zur Aufnahme einer Kommunikation über die serielle Schnittstelle 122 oder ein Modem an. Das Terminalprogramm 102 ermöglicht weiterhin das Einbringen neuer Anwendungsprogramme auf einen tragbaren Datenträger 10.Via the terminal program 102 and the network navigator 150, the terminal device 100, under the control of a user, enables activation and use of a functionality available on a portable data carrier 10. Terminal program 102 and network navigator 150 provide the program routines necessary for this. For example, they offer a program routine for establishing communication over the serial Interface 122 or a modem. The terminal program 102 also enables the introduction of new application programs onto a portable data carrier 10.
Fig. 2 veranschaulicht die grundlegende logische Struktur der in Fig.l dargestellten Anordnung. Der rechte Teil der Fig. 2 zeigt dabei die Struktur des, nachfolgend nur noch Datenträger genannten, tragbaren Datenträgers 10, der linke Teil die Struktur eines Endgerätes 100.Fig. 2 illustrates the basic logical structure of the arrangement shown in Fig.l. The right-hand part of FIG. 2 shows the structure of the portable data carrier 10, hereinafter referred to only as a data carrier, and the left-hand part shows the structure of a terminal 100.
Der Datenträger 10 gliedert sich in einen Kommunikationsbereich 20, einen Interaktionsbereich 40 sowie einen Serverbereich 50.The data carrier 10 is divided into a communication area 20, an interaction area 40 and a server area 50.
Das Endgerät 100 beinhaltet einen Kommunikationsbereich 120, eine Nutzerschnittstelle 140, eine Terminalprogramm 102 sowie einen Netznavigator 150.The terminal device 100 includes a communication area 120, a user interface 140, a terminal program 102 and a network navigator 150.
Der Kommunikationsbereich 20 des Datenträgers 10 beinhaltet Mittel zur Durchführung eines Datenaustausches zwischen dem Datenträger 10 und einem externen Endgerät 100. Teil dieser Mittel ist insbesondere eine Vertei- leinheit 26, die in Abhängigkeit von von dem Endgerät 100 erhaltenen Daten einen Datenpfad zum Interaktionsbereich 40 oder zum Serverbereich 50 einrichtet und einen entsprechenden Ubertragungsmodus einstellt.The communication area 20 of the data carrier 10 contains means for carrying out a data exchange between the data carrier 10 and an external terminal 100. Part of this means is in particular a distribution unit 26 which, depending on the data received from the terminal 100, includes a data path to the interaction area 40 or Server area 50 sets up and sets a corresponding transmission mode.
Im Interaktionsbereich 40 sowie im Serverbereich 50 befinden .sich in Form von Anwendungsprogrammen mit dem Datenträger 10 ausführbare Anwendungen und Funktionalitäten.In the interaction area 40 and in the server area 50, there are applications and functionalities which can be executed in the form of application programs with the data carrier 10.
Den im Serverbereich 50 liegenden Anwendungsprogrammen werden unter Verwendung eines standardisierten Netzwerkprotokolles über die Datenträ- gerschnittstelle 24 eingehende Daten zugeführt. Der Datenpfad zwischen der Datenträgerschnittstelle 24 und dem Serverbereich 50 besitzt dazu eine an das OSI-Schichtenmodell angelehnte Architektur in Gestalt eines Protokollstapels. Bei dem standardisierten Netz Werkprotokoll handelt es sich insbe- sondere um das „TCP/IP" -Protokoll.The application programs located in the server area 50 are transmitted using a standardized network protocol via the data carriers. Interface 24 supplied incoming data. For this purpose, the data path between the data carrier interface 24 and the server area 50 has an architecture based on the OSI layer model in the form of a protocol stack. The standardized network works protocol is in particular the "TCP / IP" protocol.
Der Interaktionsbereich 40 beinhaltet einen Interpreter 44 zur Einrichtung von Anwendungsprogrammen im Serverbereich 50 sowie zur Ausführung der Anwendungsprogramme. Weiter beinhaltet der Interaktionsbereich 40 einen Konfigurationsbereich 48 zur Aufnahme von Parametrisierungen und Einstellungen für den Interpreter 44 und den Serverbereich 50. Der Datenpfad in den Interaktionsbereich 40 ist als Transparentmodus 39 realisiert, in dem die über die Verteileinheit 26 eingehenden Daten unverändert weitergeleitet werden.The interaction area 40 contains an interpreter 44 for setting up application programs in the server area 50 and for executing the application programs. The interaction area 40 also contains a configuration area 48 for receiving parameterizations and settings for the interpreter 44 and the server area 50. The data path into the interaction area 40 is implemented as transparent mode 39, in which the data coming in via the distribution unit 26 are forwarded unchanged.
Der Kommunikationsbereich 20 des Datenträgers 10 besitzt eine aus mehreren übereinanderliegenden Protokollschichten aufgebaute Protokollstapelstruktur, die von ein- und ausgehenden Daten nacheinander durchlaufen wird. Jede Protokollschicht realisiert dabei definierte Dienste, in denen sie die ihr zugeführten Daten jeweils festgelegten Bearbeitungen unterwirft. Dabei baut sie jeweils auf den Diensten der darunterliegenden Schicht auf und bietet ihrerseits der darüberliegenden Schicht ihre Dienstleistungen an. Die Dienste sind im Rahmen von Protokollen definiert.The communication area 20 of the data carrier 10 has a protocol stack structure made up of a plurality of protocol layers one above the other, which is traversed successively by incoming and outgoing data. Each protocol layer implements defined services in which it subjects the data it receives to the specified processing. In doing so, it builds on the services of the layer below and in turn offers its services to the layer above. The services are defined in the form of protocols.
Grundelemente der Protokollstapelstruktur sind ein Zuführungsbereich 21 sowie ein Transportsystem 22.Basic elements of the protocol stack structure are a feed area 21 and a transport system 22.
Erste Komponente des Zuführungsbereichs 21 ist eine Übergabeschicht mit der Datenübertragungsschnittstelle 24 zur physischen Übergabe und Entge- gennahme von Daten an bzw. von einer korrespondierenden Schnittstelle 122 eines Endgerätes 100. Die Datenübertragungsschnittstelle 24 kann insbesondere als USB- als Firewire oder als Ethernet-Schnirtstelle ausgebildet sein.The first component of the feed area 21 is a transfer layer with the data transmission interface 24 for physical transfer and receipt. acceptance of data to or from a corresponding interface 122 of a terminal 100. The data transmission interface 24 can in particular be designed as a USB or Firewire or as an Ethernet interface.
Der Datenübertragungsschnittstelle 24 zugeordnet ist, als zweite Komponente des Zuführungsbereiches 21, eine Verteileinheit 26. Sie legt in Abhängigkeit von den über die Datenträgerschnittstelle 24 empfangenen Daten einen Datenpfad fest, auf dem die Daten weitergeleitet werden und stellt den für die Datenübertragung anzuwendenden Ubertragungsmodus ein. In Fig. 2 weist ein erster Datenpfad in den Interaktionsbereich 40, ein zweiter Datenpfad in den Serverbereich 50. Im ersten Fall erfolgt die Datenübertragung im Transparentmodus 39. Im zweiten Falls erfolgt die Datenübertragung in einem Netzprotokollmodus 38unter Verwendung eines Netzwerkprotokolles. Der eingestellte Datenpfad zeigt in letzterem Fall zu der auf der Datenüber- tragungsschnittstelle 24 aufbauenden ersten Schicht 28 des Transportsystems 22. Die Zahl der Datenpfade ist nicht auf zwei beschränkt sondern kann im Rahmen der auf dem Datenträger 10 zu Verfügung stehenden Hardwareressourcen beliebig erhöht werden.Associated with the data transmission interface 24, as a second component of the feed area 21, is a distribution unit 26. Depending on the data received via the data carrier interface 24, it defines a data path on which the data is forwarded and sets the transmission mode to be used for the data transmission. 2, a first data path points into the interaction area 40, a second data path into the server area 50. In the first case, the data transmission takes place in transparent mode 39. In the second case, the data transmission takes place in a network protocol mode 38 using a network protocol. In the latter case, the set data path points to the first layer 28 of the transport system 22 that is based on the data transmission interface 24. The number of data paths is not limited to two but can be increased as desired within the scope of the hardware resources available on the data carrier 10.
Fig. 3 veranschaulicht eine Anordnung zur technischen Realisierung eines Übertragungsmoduswechsels bei Verwendung eines mit Namensraumum- schaltung arbeitenden Interpreters, insbesondere eines FORTH-Interpreters 44. Die Verteileinheit 26 ist dabei zum einen über eine direkte Verbindung 39, zum anderen über das Transportsystem 22 mit einem Aktivierungsme- chanismus 37 verbunden, dem ausgangsseitig der Interpreter 44 nachgeschaltet ist. Die Datenübertragung über das Transportsystem 22 erfolgt dabei im Netzprotokollmodus. Die direkte Datenübertragung von der Verteileinheit 26 zum Aktivierungsmechanismuns 37 realisiert den Transparentmodus. Desweiteren ist von der Verteileinheit 26 eine separate Aktivierungs- Signalverbindung 27 zu dem Aktivierungsmechanismus 37 geführt.3 illustrates an arrangement for the technical implementation of a transmission mode change when using an interpreter working with a namespace switch, in particular a FORTH interpreter 44. The distribution unit 26 is on the one hand via a direct connection 39 and on the other hand via the transport system 22 with an activation meter - Mechanism 37 connected, the interpreter 44 is connected downstream on the output side. The data transmission via the transport system 22 takes place in the network protocol mode. The direct data transmission from the distribution unit 26 to the activation mechanism 37 realizes the transparent mode. Furthermore, a separate activation Signal connection 27 led to the activation mechanism 37.
Der Interpreter 44 verfügt über zwei Namensräume 45, 46 in denen jeweils anwendbare Funktionen und Grundroutinen angelegt sind. Der erste Namensraum 45 enthält dabei Funktionen und Grundroutinen zur Realisierung des Transparentmodus 39. Im zweiten Namensraum 46 liegen Funktionen und Grundroutinen zur Realisierung des Netzprotokollmodus 38. Über die Aktivierungssignalverbindung 27 wird der jeweils gültige Namensraum eingestellt.The interpreter 44 has two namespaces 45, 46 in which applicable functions and basic routines are created. The first namespace 45 contains functions and basic routines for implementing the transparent mode 39. The second namespace 46 contains functions and basic routines for implementing the network protocol mode 38. The respectively valid namespace is set via the activation signal connection 27.
Zweckmäßig ist zu Beginn eines Datenaustausches zwischen einem Terminal 100 und einem Datenträger 10 stets der Transparentmodus 39 eingestellt. Der über die Datenträgerschnittstelle 24 fließende Datenstrom wird hierbei von der Verteileinheit 26 direkt zu dem Interpreter 44 geleitet und von die- sem bearbeitet.The transparent mode 39 is expediently always set at the beginning of a data exchange between a terminal 100 and a data carrier 10. The data stream flowing via the data carrier interface 24 is in this case passed directly from the distribution unit 26 to the interpreter 44 and processed by the latter.
Für den Wechsel des Ubertragungsmodus beobachtet die Verteileinheit 26 den Datenstrom kontinuierlich darauf, ob darin ein bestimmtes Steuerelement erscheint. Als Steuerelement dient zweckmäßig eine definierte Bytefol- ge, die in einem der Ubertragungsmodi eine Bedeutung hat, im anderen nicht vorgesehen ist.For the change in the transmission mode, the distribution unit 26 continuously monitors the data stream to determine whether a specific control element appears in it. A defined byte sequence, which has meaning in one of the transmission modes and is not provided in the other, expediently serves as the control element.
Erscheint im beobachteten Datenstrom ein zuvor bestimmtes Steuerelement, wechselt die Verteileinheit 26 in den zweiten Ubertragungsmodus, d.h. in den Netzprotokollmodus 38 und stellt den Datenpfad zum Serverbereich 50 ein. Der Datenstrom wird darauf nicht mehr direkt zum Interpreter 44 sondern zu der Transportstrecke 22 geleitet. Zugleich erzeugt die Verteileinheit 26 ein Aktivierungssignal, das sie über die Aktivierungssignalverbindung 27 an den Aktivierungsmechanismus 37 übermittelt. Der Aktivierungsmecha- nismus 37 schaltet hierauf seinerseits den Interpreter 44 zur Ausführung von Anwendungsprogrammen aus dem Serverbereich 50 bereit. Hierzu fügt der Aktivierungsmechanismus 37 in den Datenstrom eine Anweisung ein, die einen bestimmten Netzserver 52 bezeichnet. Bezeichnet das von der Vertei- leinheit 26 erkannte Steuerelement etwa Daten im SLIP/PPP-Format, fügt der Aktivierungsmechanismuns 37 die Anweisung „4HTTP" in den Datenstrom ein, um einen HTTP-Server aufzurufen. Die Funktionalität eines solchen Netzservers 52 wird unter Verwendung des zweiten Namensraumes 46 hergestellt. Bei Erhalt der eingefügten Anweisung stellt der Interpreter 44 daher als zu nutzenden Namensraum den dem Netzprotokollmodus 45 zugeordneten Namensraum 46 ein und sperrt den anderen.If a previously determined control element appears in the observed data stream, the distribution unit 26 changes to the second transmission mode, ie to the network protocol mode 38, and sets the data path to the server area 50. The data stream is then no longer routed directly to the interpreter 44 but to the transport route 22. At the same time, the distribution unit 26 generates an activation signal, which it transmits to the activation mechanism 37 via the activation signal connection 27. The activation mechanism In turn, mechanism 37 then prepares interpreter 44 for executing application programs from server area 50. For this purpose, the activation mechanism 37 inserts an instruction into the data stream that designates a specific network server 52. If the control element recognized by the distribution unit 26 designates data in SLIP / PPP format, for example, the activation mechanism 37 inserts the instruction “4HTTP” into the data stream in order to call an HTTP server. The functionality of such a network server 52 is described using second namespace 46. When the inserted instruction is received, the interpreter 44 therefore sets the namespace 46 assigned to the network protocol mode 45 as the namespace to be used and blocks the other.
Zweckmäßig ist vorgesehen, daß während einer Kommunikation zwischen Datenträger 10. und Terminal 100 ein Übertragungsmo^duswechsel nur vom Transparentmodus 39 in den. Netzprotokollmodus 38 möglich ist. Ein Wechsel in umgekehrter Richtung erfordert hingegen jeweils eine erneute Präsentation des Datenträgers 10 an dem Endgerät 100. Grundsätzlich kann aber selbstverständlich auch vorgesehen sein, daß mittels geeigneter Befehle oder Steuerelemente jederzeit ein Wechsel des Ubertragungsmodus in beide Rich- tungen möglich und daß zu Beginn einer Kommunikation der zuletzt eingestellte Ubertragungsmodus eingestellt ist.Appropriately it is provided that 10 during a communication between the data carrier and the terminal 100, a Übertragungsmo ^ duswechsel only from the transparent mode 39 in the. Network protocol mode 38 is possible. A change in the opposite direction, however, requires a renewed presentation of the data carrier 10 on the terminal 100. In principle, however, it can of course also be provided that the transmission mode can be changed in both directions at any time by means of suitable commands or control elements and that at the beginning of a communication the last transmission mode set is set.
Auf die Verteileinheit 26 setzt das Transportsystem 22 auf, das seinerseits aus drei Protokollschichten 26, 28, 30 besteht. Die Protokollschichtfolge 26, 28, 30 ist dazu ausgelegt, das bekannte TCP/IP-Netzwerkprotokoll zu ermöglichen. TCP/IP ist durch RFCs quasistandardisiert und insbesondere im Internet verbreitet.The transport system 22, which in turn consists of three protocol layers 26, 28, 30, is placed on the distribution unit 26. The protocol layer sequence 26, 28, 30 is designed to enable the known TCP / IP network protocol. TCP / IP is quasi-standardized by RFCs and is particularly widespread on the Internet.
Erste Schicht des Transportsystems 22 ist eine Protokollschicht 28 zur Durch- f ührung der Übertragung von Datenpaketen. Die Übertragungsschicht 28 ist als SLIP- als PPP- oder als RNDIS-Protokollschicht ausgeführt.The first layer of the transport system 22 is a protocol layer 28 for management of the transmission of data packets. The transmission layer 28 is in the form of a SLIP, a PPP or an RNDIS protocol layer.
Auf der Übertragungsschicht 28 liegt eine Vermittlungsschicht 30 zur Er- mittlung der Empfänger bzw. der Zieladressen von zu übertragenden Datenpaketen im Serverbereich 50. Die Vermittlungsschicht 30 ist als IP- Protokollschicht ausgeführt.On the transmission layer 28 there is a network layer 30 for determining the recipients or the destination addresses of data packets to be transmitted in the server area 50. The network layer 30 is designed as an IP protocol layer.
Über der Vermittlungsschicht liegt 30 eine Transportschicht 32 zur Steue- rung des Datenflusses zum Serverbereich 50. Die Transportschicht 32 ist als TCP-Protokollschicht ausgeführt.A transport layer 32 for controlling the data flow to the server area 50 lies over the network layer 30. The transport layer 32 is designed as a TCP protocol layer.
Der Übergang zwischen Kommunikationsbereich 20 und Serverbereich 50 kann als I/O-Buffer ausgeführt sein. Darein werden von der Transport- schicht 32 Dienstanf orderungen bereitgestellt, die angeben, welche Anwendung im Serverbereich 50 jeweils aktiviert werden soll. In TCP/IP werden die Dienstanforderungen durch Portnummern gebildet, die jeweils einen Netzserver 52 bezeichnen.The transition between communication area 20 and server area 50 can be implemented as an I / O buffer. The transport layer 32 provides service requests therein, which specify which application in the server area 50 is to be activated in each case. In TCP / IP, the service requests are formed by port numbers, each of which designates a network server 52.
Alle Schichten des Transportsystems 22 werden zweckmäßig durch Mas- kenprogrammierung fest im Speicher 2 des Prozessorkerns 1 angelegt und bilden einen statischen Bestandteil des tragbaren Datenträgers 10. Die Datenübertragungsschnittstelle 24 ist über vorhandene oder über eigens zu diesem Zweck eingerichtete Kontaktmittel ausgebildet. Beispielsweise nutzt sie eine auf dem Datenträger 10 vorhandene Spule oder arbeitet über bestimmte Kontakte eines Standardchipkartenkontaktfeldes.All layers of the transport system 22 are expediently permanently created in the memory 2 of the processor core 1 by mask programming and form a static component of the portable data carrier 10. The data transmission interface 24 is designed via existing contact means or via contact means set up specifically for this purpose. For example, it uses a coil present on the data carrier 10 or works via certain contacts of a standard chip card contact field.
Fig. 4 veranschaulicht die Arbeitsweise des Protokollstapels 24 bis 32 bei Verwendung von TCP/IP bei Ausbildung der Datenträgerschnittstelle als USB-Schnittstelle. Die von dem Endgerät 100 kommenden Daten werden dem Datenträger 10 hierbei in Paketen 410 von z.B. 64 Byte übergeben. Die Pakete 410 enthalten jeweils Teilpakete 400' von Nutzdaten 400. Anfang und Ende jedes Pakets 410 werden jeweils durch ein CO-Byte 420 d.h. die Zahl 192 dezimal, markiert.FIG. 4 illustrates the operation of the protocol stack 24 to 32 when using TCP / IP when the data carrier interface is designed as USB interface. The data coming from the terminal 100 is transferred to the data carrier 10 in packets 410 of, for example, 64 bytes. The packets 410 each contain sub-packets 400 'of user data 400. The beginning and end of each packet 410 are each marked by a CO byte 420, ie the number 192 decimal.
Das CO-Byte 420 ist im Rahmen des ASCII-Codes keinem Zeichen zugeordnet. Es dient deshalb zugleich als Steuerelement für die Verteileinheit 26 zur Einstellung des Ubertragungsmodus. Bei Erkennen des ersten CO-Bytes wählt die Verteileinheit 26 entsprechend für die Weiterleitung der Datenpa- kete 410 den Netzprotokollübertragungsmodus 38 und übergibt die Datenpakete 410 der SLIP-Übertragungsschicht 28, welche sie zu einem zusammenhängenden Datenblock 430 packt. Desweiteren sendet die Verteileinheit 26 ein Aktivierungssignal an den Aktivierungsmechaηismus 37.The CO byte 420 is not assigned to any character within the ASCII code. It therefore also serves as a control element for the distribution unit 26 for setting the transmission mode. When the first CO byte is recognized, the distribution unit 26 selects the network protocol transmission mode 38 accordingly for the forwarding of the data packets 410 and transfers the data packets 410 to the SLIP transmission layer 28, which packs them into a coherent data block 430. Furthermore, the distribution unit 26 sends an activation signal to the activation mechanism 37.
Den unfragmentierten Datenblock 430 reicht die SLIP-Übertragungsschicht 28 weiter an die IP-Vermittlungsschicht 30, die den in dem Datenblock 430 enthaltenen IP-Header 440 auswertet und die darin enthaltenen Zieladresse ermittelt. Nachfolgend wird der Dateriblock an die TCP-Transportschicht 32 übergeben, welche den in dem Datenblock 430 enthaltenen TCP-Header 450 auswertet, um die darin enthaltene Diensteanforderung 420 zu ermitteln. Die Diensteanforderung ist in TCP/IP eine Portnummer 460. Sie bezeichnet einen zur Ausführung des Dienstes zu nutzenden Netzserver 52; verbreitet sind etwa der HTTP-Server, dem die Portnummer 80 zugeordnet ist, oder der FTP-Server mit der Portnummer 20 bzw. 21. Die Portnummer 460 wird am Ausgang der Transportschicht 32 bereitgestellt, von wo der durch die Portnummer 460 bezeichnete Netzserver 52, also etwa der HTTP-Server oder der FTP-Server, auf die in dem Datenblock enthaltenen Nutzdaten 400 zugreift. Beim Durchlauf der Datenpakete 410 durch den Protokollstapel wer- den fehlerhafte Datenpakete 430 abgewiesen. Am Ausgang der Transportschicht bereitgestellt wird nur der Inhalt grundsätzlich sinnvoller Datenpakete 430, für einen HTTP-Server etwa die Anweisungen GET, HEAD oder POST mit zugehörigen Variablen, z.B. „host:", und Parametern, z.B. „/index/.html".The SLIP transmission layer 28 passes the unfragmented data block 430 to the IP switching layer 30, which evaluates the IP header 440 contained in the data block 430 and determines the destination address contained therein. The data block is subsequently transferred to the TCP transport layer 32, which evaluates the TCP header 450 contained in the data block 430 in order to determine the service request 420 contained therein. The service request is a port number 460 in TCP / IP. It denotes a network server 52 to be used to execute the service; Widespread are, for example, the HTTP server to which port number 80 is assigned, or the FTP server with port numbers 20 and 21. Port number 460 is provided at the exit of transport layer 32, from where network server 52, designated by port number 460, thus, for example, the HTTP server or the FTP server, which accesses the user data 400 contained in the data block. When the data packets 410 pass through the protocol stack, the faulty data packet 430 is rejected. At the exit of the transport layer, only the content of data packets 430 that are fundamentally meaningful is provided, for an HTTP server, for example, the instructions GET, HEAD or POST with associated variables, for example “host:”, and parameters, for example “/index/.html”.
Abhängig von den Anwendungen, die mittels des Datenträgers 10 ausgeführt werden sollen, können die Protokollschichten 28, 30, 32 des Kommunikationsbereiches 20 mehrfach oder in verzweigender Form ausgeführt sein, um andere oder weitere Netzwerkprotokolle zu ermöglichen. Auf der Vermittlungsschicht 28, 30 kann etwa parallel zu einer ersten Transportschicht 32 eine weitere Transportschicht eingerichtet sein, die Daten für andere Dienste transportiert. Ein Beispiel für eine zweite Transportschicht ist eine UDP-Schicht.Depending on the applications that are to be executed by means of the data carrier 10, the protocol layers 28, 30, 32 of the communication area 20 can be executed multiple times or in a branching manner in order to enable other or further network protocols. On the network layer 28, 30, a further transport layer can be set up approximately parallel to a first transport layer 32, which transports data for other services. An example of a second transport layer is a UDP layer.
Wesentlicher Bestandteil des Interaktionsbereichs 40 ist ein Interpreter 44. Er wird über die Datenübertragungsschnittstelle 24 im Transparentmodus 39 angesprochen. Im Transparentmodus 39 werden ihm typischerweise ASCII- Daten übertragen. Daneben kommen auch andere Datenformate in Betracht, im Bereich der Chipkarten etwa APDU-Kommandos.An integral part of the interaction area 40 is an interpreter 44. It is addressed via the data transmission interface 24 in the transparent mode 39. In transparent mode 39, ASCII data are typically transmitted to it. Other data formats also come into consideration, such as APDU commands in the field of chip cards.
Der Interpreter 44 realisiert zwei Grundfunktionalitäten. Zum einen bringt er auf Zugang entsprechender textueller Anweisungen als Maschinencode im Speichersystem des Datenträgers 10 abgelegte Anwendungsprogramme zur Ausführung und realisiert dadurch dem Datenträger 10 zugeordnete Funktionalitäten und Anwendungen. Diese erste Grundfunktionalität wird bei Verwendung des Netzprotokollmodus 38 ausgeführt.The interpreter 44 realizes two basic functionalities. On the one hand, upon access to corresponding textual instructions, it executes application programs stored as machine code in the storage system of the data carrier 10 and thereby realizes the functionalities and applications assigned to the data carrier 10. This first basic functionality is carried out when using the network protocol mode 38.
Weiterhin ermöglicht der Interpreter 44 das Nachladen neuer Anwendungs- programme auf den Datenträger 10. Nachzuladenden Programmquelltext compiliert er beim Laden zu nativem Maschinencode und speichert ihn vorzugsweise im nichtflüchtigen Speicherfeld 3 des Datenträgers 10. Bei dem nachzuladenden Programmquelltext kann es sich um den Quelltext einer auf den Datenträger 10 zu bringenden Anwendung oder etwa um den HEX- Dump eines Patches zu einem bereits vorhandenen Anwendungsprogramm handeln. Die zweite Grundfunktionalität kommt im Transparentmodus 39 zur Ausführung.The interpreter 44 also enables the reloading of new application programs on the data carrier 10. The program source text to be loaded is compiled when it is loaded into native machine code and is preferably stored in the non-volatile memory field 3 of the data carrier 10. The program source text to be loaded can be the source text of an application to be brought onto the data carrier 10 or the HEX - Dump a patch for an existing application program. The second basic functionality is implemented in transparent mode 39.
Der zugeführte Programmquelltext liegt in einer Programmierhochsprache vor. Zweckmäßig ist er in der Programmierhochsprache FORTH abgefaßt.The program source text supplied is in a high-level programming language. It is conveniently written in the high-level programming language FORTH.
In bevorzugter Ausführung ist der Interpreter 44 entsprechend ISO 15948 ein FORTH-Interpreter, der aus einem äußeren Interpreter 42 sowie einem inne- ren Interpreter 43 aufgebaut ist. Ein derartiger Interpreter 44 läßt sich bei einem Platzbedarf von typischerweise 8 kB im Speichersystem 3,4 realisieren.. Der äußere Interpreter 42 interpretiert dabei vom Zuführungsbereich 21 kommende textuelle Anweisungen - etwa HTTP-Kommandos im Netzprotokollmodus oder Konfigurationsanweisungen im Transparentmodus - und prüft den Text auf darin enthaltene Grundroutinen („words"). Dabei läuft der innere Interpreter 43 ab und bewirkt die Ausführung der Grundroutinen durch den Prozessorkern 1 des Datenträgers 10, indem er in Binärform vorliegende Speicheradressen interpretiert. Der innere Interpreter 43 bewirkt damit die eigentliche Ausführung von Anwendungsprogrammen. Parameter werden vom äußeren an den inneren Interpreter über einen Stapelspeicher („Stack") übergeben.In a preferred embodiment, the interpreter 44 is a FORTH interpreter according to ISO 15948, which is composed of an outer interpreter 42 and an inner interpreter 43. Such an interpreter 44 can be implemented with a space requirement of typically 8 kB in the storage system 3, 4. , The outer interpreter 42 interprets textual instructions coming from the feed area 21 - for example HTTP commands in the network protocol mode or configuration instructions in the transparent mode - and checks the text for basic routines (“words”) contained therein. The inner interpreter 43 runs and executes the Basic routines through the processor core 1 of the data carrier 10 by interpreting memory addresses present in binary form. The inner interpreter 43 thus executes the actual execution of application programs. Parameters are passed from the outer to the inner interpreter via a stack memory (“stack”).
Neben FORTH kann der Interpreter 44 auch auf anderen Programmierumgebungen basieren, z.B., wenn die Speicherkapazität des Datenträgers 10 dies erlaubt, auf Java. Entsprechend der gewählten Programmierumgebung können Modifikationen der inneren Struktur des Interpreters 44 notwendig werden.In addition to FORTH, the interpreter 44 can also be based on other programming environments, for example if the storage capacity of the data carrier 10 this allows on Java. Depending on the programming environment chosen, modifications to the internal structure of interpreter 44 may be necessary.
Der Funktionsumfang eines hier zugrundegelegten FORTH-Interpreters 44 wird durch die Grundroutinen bestimmt. Eine Grundausstattung an elementaren Grundroutinen wird bei der Herstellung des Datenträgers 10 als Maskencode fest im nichtfüchtigen Speicherbereich 3 angelegt. Durch Nachladen von auf diesen Elementarroutinen basierenden Grundroutinen kann der Funktionsumfang des FORTH-Interpreters 44 erweitert werden. Üblicherweise erfolgt eine Erweiterung im Zusammenhang mit dem Nachladen neuer Anwendungsprogramme. Neue Grundroutinen compiliert der Interpreter 44 beim Laden der Zeichenfolgen zu Speicheradressen von Elementarroutinen, die anschließend bei der Ausführung eines Anwendungsprogrammes jeweils vom inneren Interpreter 43 ausgeführt werden.The functional scope of a FORTH interpreter 44 on which this is based is determined by the basic routines. A basic set of elementary basic routines is permanently created in the non-volatile memory area 3 during the production of the data carrier 10 as a mask code. The functional scope of the FORTH interpreter 44 can be expanded by reloading basic routines based on these elementary routines. Usually there is an extension in connection with the reloading of new application programs. When the strings are loaded, the interpreter 44 compiles new basic routines to memory addresses of elementary routines, which are then each executed by the inner interpreter 43 when an application program is executed.
Die Grundroutinen sind in mehreren Namensräumen 45, 46 organisiert, wobei jeweils ein Namensraum 45, 46 einer Grundfunktionalität des Interpreters 44 zugeordnet ist. Grundfunktionalitäten des Interpreters 44 sind das Nachladen neuen Programmcodes sowie Ausführen vorhandener Anwendungsprogramme. Der ersten Grundfunktionalität entspricht der Transparentmodus 39, der zweiten der Netzprotokollmodus 38. Ein erster Namensraum 45 umfaßt entsprechend dem Transparentmodus 39 zugeordnete Grundroutinen. Dazu zählen u.a. die Kommandos SET-IP, NET STAT, HELP. Ein zweiter, dem Netzprotokollmodus 38 zugeordneter Namensraum 46 umfaßt entsprechend etwa die Kommandos GET, HEAD, POST.The basic routines are organized in a number of namespaces 45, 46, one namespace 45, 46 each being assigned to a basic functionality of interpreter 44. Basic functionalities of interpreter 44 are the reloading of new program codes and the execution of existing application programs. The first basic functionality corresponds to the transparent mode 39, the second to the network protocol mode 38. A first namespace 45 comprises basic routines assigned to the transparent mode 39. These include the commands SET-IP, NET STAT, HELP. A second namespace 46 assigned to the network protocol mode 38 correspondingly comprises the commands GET, HEAD, POST.
Der Interaktionsbereich 40 enthält weiterhin einen Konfigurationsbereich 48, der zur Verwaltung von Konfigurationen und Parametrisierungen dient. Der Konfigurationsbereich 48 ermöglicht im Transparentmodus 39 die interaktive Konfiguration von Einstellungen des Kommunikationsbereiches 20 oder des Serverbereiches 50. Er kann im Transparentmodus 39 direkt durch ein Endgerät 100 angesprochen werden und stellt hierbei Bedienungshilfen zur Verfügung, z.B. Eingabemasken, die eine Nutzerführung realisieren. Im Konfigurationsbereich 48 festgelegt werden beispielsweise die für den tragbaren Datenträger 10 oder eine im Serverbereich 50 liegende Anwendung geltende IP- Adresse oder der Default-Gateway für unbekannte Adressen.The interaction area 40 further contains a configuration area 48, which is used to manage configurations and parameterizations. The Configuration area 48 enables the interactive configuration of settings of communication area 20 or server area 50 in transparent mode 39. In transparent mode 39, it can be addressed directly by a terminal 100 and provides operating aids, for example input masks that implement user guidance. In the configuration area 48, for example, the IP address valid for the portable data carrier 10 or an application located in the server area 50 or the default gateway for unknown addresses are defined.
Teil des Konfigurationsbereiches 48 ist ferner ein Konfigurationsmanager 49, mit dem die Nutzbarkeit des Transparentmodus 39 einstellbar ist. Beispielsweise erlaubt der Konfigurationsmanager 49 eine Beschränkung des Transparentmodus derart, daß im Transparentmodus 39 nur noch Konfigurationsanweisungen eingegeben werden können, Änderungen am Funktion- sumf ang des Interpreters 44, etwa durch Laden neuer Grundroutinen, aber nicht mehr möglich sind. Realisiert wird der Konfigurationsmanager 49, indem die Ausführung bestimmter Grundroutinen des zugehörigen Namensraumes 45 gesperrt wird. Der Konfigurationsmanager 49 wird zweckmäßig eingerichtet, nachdem alle anderen Anwendungsprogramme geladen wur- den,Part of the configuration area 48 is also a configuration manager 49 with which the usability of the transparent mode 39 can be set. For example, the configuration manager 49 allows the transparent mode to be restricted in such a way that only configuration instructions can be entered in the transparent mode 39, but changes to the range of functions of the interpreter 44, for example by loading new basic routines, are no longer possible. The configuration manager 49 is implemented by blocking the execution of certain basic routines of the associated namespace 45. Configuration manager 49 is expediently set up after all other application programs have been loaded,
Eine Grundversion des Interpreters 44 mit Elementarroutinen sowie des Konfigurationsbereiches 48 sind zweckmäßig als Maskenprogramm in der nichtflüchtigen Speicherfeldern 3, 4 des tragbaren Datenträgers 10 hinterlegt.A basic version of the interpreter 44 with elementary routines and the configuration area 48 are expediently stored as a mask program in the non-volatile memory fields 3, 4 of the portable data carrier 10.
Der Serverbereich 50 enthält die mit dem Datenträger 10 ausführbaren Anwendungsprogramme und die zu deren Funktion benötigten Dateien. Wenigstens eines der Anwendungsprogramme realisiert die Funktionalität eines Netzservers 52. Der Netzserver 52 kann beispielsweise ein HTTP-Server oder ein FTP-Server sein. Mit Hilfe eines Netzservers 52 wird der Datenträger 10 gegenüber dem Terminal 100 zu einem vollwertigen Netzserver. Beispielsweise bewirkt die Ausführung eines einen HTTP-Server realisierenden Anwendungsprogrammes durch den Interpreter 44 die Ausgabe einer HTML-Seite oder anderer Daten sowie eines Headers.The server area 50 contains the application programs executable with the data carrier 10 and the files required for their function. At least one of the application programs implements the functionality of a network server 52. The network server 52 can be an HTTP server, for example or be an FTP server. With the help of a network server 52, the data carrier 10 becomes a full network server in relation to the terminal 100. For example, the execution of an application program implementing an HTTP server by the interpreter 44 causes an HTML page or other data and a header to be output.
Anhang A zeigt als Beispiel für ein Anwendungsprogramm zur Realisierung eines Netzservers einen FORTH-Quelltext, der einen Basis-Netzserver realisiert. Der Quelltext kann mittels des Terrninalprograrnmes 102 im Transpa- rentmodus von einem Endgerät 100 auf einen Datenträger 10 übertragen werden und stellt dort die Netzserver-Funktionalität her.Appendix A shows an example of an application program for realizing a network server, a FORTH source text that realizes a basic network server. The source text can be transmitted by means of the terrestrial program 102 in transparent mode from a terminal device 100 to a data carrier 10 and produces the network server functionality there.
Das die Funktionalität eines Netzservers 52 realisierende Anwendungsprogramm wird vom Interpreter 44 ausgeführt, wenn vom Transportsystem 22, nach Passage durch die Vermittlungs- und Transportschicht, eine sinnvolle Diensteanforderung am Ausgang des Transportsystems 22 vorliegt. Die Diensteanforderung kann etwa die Anforderung zur Ausführung eines HTTP-Kommandos wie GET, HEAD oder POST sein. Liegt eine solche Dien- steanforderuhg vor, ermittelt der Interpreter 44, ob im Serverbereich 50 ein den angeforderten Dienst realisierender Programmcode vorhanden ist. Ist das der Fall, übermittelt er dem Transportsystem 22 eine Bestätigungsmeldung und führt den gefundenen Programmcode aus.The application program that realizes the functionality of a network server 52 is executed by the interpreter 44 if the transport system 22, after passage through the switching and transport layer, has a useful service request at the exit of the transport system 22. The service request can be, for example, the request to execute an HTTP command such as GET, HEAD or POST. If there is such a service request, the interpreter 44 determines whether a program code implementing the requested service is present in the server area 50. If this is the case, it transmits a confirmation message to the transport system 22 and executes the program code found.
Der angeforderte Dienst kann zum Beispiel in der Ausgabe einer einen Text enthaltenden HTML-Datei bestehen. Auslöser für die Anforderung kann eine von einem Nutzer über einen Netznavigator 150 angeforderte Adresse sein, etwa die Adresse „http://160.1.1.1/index/html". Der Netznavigator 150 erzeugt daraus eine http- Anweisung, die den HTTP-Befehl „GET" enthält, etwa „GET/ index.html http/1.1". Diese HTTP-Anweisung wird im Netzprotokollmodus 38 über das Transportsystem 22 an den Interpreter 44 geleitet. Der Interpreter 44 fungiert als HTTP-Netzserver 52 und führt entsprechend Grundroutinen aus, um dem Netznavigator 150 die angeforderte Datei zu liefern. Die erhaltene Datei bringt der Netznavigator 150 im Endge- rät 100 über die Nutzerschnittstelle 140 zur Anzeige.The requested service can consist, for example, in the output of an HTML file containing a text. The trigger for the request can be an address requested by a user via a network navigator 150, for example the address “http://160.1.1.1/index/html". The network navigator 150 uses this to generate an http instruction that issues the HTTP command “ GET "contains, for example" GET / index.html http / 1.1 ". This HTTP instruction is in the Network protocol mode 38 passed to the interpreter 44 via the transport system 22. The interpreter 44 functions as an HTTP network server 52 and executes basic routines in order to deliver the requested file to the network navigator 150. The network navigator 150 displays the received file in the terminal 100 via the user interface 140.
Mit dem Netzserver 52 verbunden sind verschiedene Hilfsanwendungsprogramme, deren Art und Zahl dabei vom Typ des Netzservers und den jeweils gestellten Anforderungen abhängen. In Verbindung mit einem HTTP- Server 52 zweckmäßig sind ein Quelltextanalysator, etwa in Form einesVarious auxiliary application programs are connected to the network server 52, the type and number of which depend on the type of network server and the particular requirements. In conjunction with an HTTP server 52, a source code analyzer, for example in the form of a
XML-Parsers 54, ein Compiler 56, etwa zur Compilierung von CGI-Scripten 66, sowie ein Block von Sicherheitskonfigurationsdateien 58, in denen Sicherheiteinstellungen für den Betrieb des Interpreters abgelegt sind. Weiter ist dem Netzserver 52 eine Dateisystem 68 mit Dateien zur Aufnahme von Nutzdaten zugeordnet, d.h. insbesondere Dateien 60 mit Applets, Dateien 62 mit Bildern, oder Dateien 64 mit graphisch darzustellenden Inhalten, etwa HTML-Dateien.XML parsers 54, a compiler 56, for example for compiling CGI scripts 66, and a block of security configuration files 58 in which security settings for the operation of the interpreter are stored. Furthermore, the network server 52 is assigned a file system 68 with files for recording user data, i.e. in particular files 60 with applets, files 62 with images, or files 64 with graphics to be displayed, such as HTML files.
Im Serverbereich 50 zu speichernde Anwendungsprogramme und Dateien werden im Transparentmodus 39 über den Interpreter 44 oder im Netzprotokollmodus 38 mittels eines geeigneten Kommandos, etwa des HTTP- Kommandos POST, geladen.Application programs and files to be stored in the server area 50 are loaded in transparent mode 39 via interpreter 44 or in network protocol mode 38 using a suitable command, for example the HTTP command POST.
Zweckmäßig sind bestimmte Grundstrukturen, etwa die Struktur des Da- teisystems 68 in dem zur Einrichtung des Serverbereichs 50 verwendeten Speicher 4 vorangelegt.Certain basic structures, for example the structure of the file system 68, are expediently provided in the memory 4 used to set up the server area 50.
Neben einer Anwendung mit einem einzelnen Netzserver 52, etwa einem HTTP-Server 52, wie sie in Fig. 2 angedeutet ist, können im Serverbereich 50 auch mehrere Netzserver 52 eingerichtet sein, die unterschiedliche Dienste bereitstellen. Beispielsweise kann, wie in Fig. 6 veranschaulicht, neben einem HTTP-Server auch ein FTP-Server und/ oder einer Telnet-Server vorgesehen sein, der aktiv wird, wenn am Ausgang der TCP-Transportschicht der Port 20/21 für den FTP-Server bzw. 23 für den Telnet-Server angefordert wird. Allen Netzservern 52 können dabei eigene Dateisysteme zugeordnet sein. Sie können aber, wie in Fig. 6 veranschaulicht, auch auf dasselbe Dateisystem 68 zugreifen.In addition to an application with a single network server 52, for example an HTTP server 52, as indicated in FIG. 2, in the server area 50 several network servers 52 can also be set up, which provide different services. For example, as illustrated in FIG. 6, in addition to an HTTP server, an FTP server and / or a Telnet server can also be provided, which becomes active when port 20/21 for the FTP port is located at the exit of the TCP transport layer. Server or 23 for the Telnet server is requested. Own file systems can be assigned to all network servers 52. However, as illustrated in FIG. 6, you can also access the same file system 68.
Der Kornrnunikationsbereich 120 des Endgerätes 100 bildet das Gegenstück zum Kommunikationsbereich 20 eines Datenträgers 10 und dient zur Durchführung eines Datenaustausches mit diesem. Wie jener weist der Kommunikationsbereich 120 des Endgerätes 100 eine Schichtstruktur auf. Zum Datenträger 10 hin besitzt er hierbei eine zu dessen Datenübertragungsschnittstelle 24 korrespondierende physikalische Schnittstelle 122, insbesondere eineThe grain communication area 120 of the terminal 100 forms the counterpart to the communication area 20 of a data carrier 10 and serves to carry out a data exchange with the latter. Like that, the communication area 120 of the terminal 100 has a layer structure. To data carrier 10, it has a physical interface 122 corresponding to its data transmission interface 24, in particular one
USB-, eine Firewire oder eine Ethernet-Schnittstelle. Darauf befindet sich eine Anpaßschicht 124, welche die über die Schnittstellen 122 übertragenen Daten aus dem auf der Schnittstelle 122 verwendeten Format in das vom Microcontroller 101 des Endgerätes 100 verlangte Format umsetzt. Ist bei- spielsweise die Schnittstelle 122 eine USB-Schnittstelle, der Microcontroller 101 aber nur zur Verarbeitung einfach serieller Signale ausgebildet, dann bildet die Anpaßschicht 26 eine virtuelle serielle Schnittstelle.USB, a Firewire or an Ethernet interface. There is an adaptation layer 124, which converts the data transmitted via the interfaces 122 from the format used on the interface 122 into the format required by the microcontroller 101 of the terminal 100. If, for example, the interface 122 is a USB interface, but the microcontroller 101 is only designed for processing simple serial signals, then the adaptation layer 26 forms a virtual serial interface.
Über der Anpaßschicht 124 ist ein Transportsystem 130 zur Weiterleitung an bzw. Entgegennahme von über die Datenübertragungsschnittstelle 122 übertragenen Daten an den Netznavigator 150 ausgebildet. Typischerweise umfaßt das Transportsystem 130, wie in Fig. 1 angedeutet, eine SLIP- oder PPP- Schicht 132, eine IP-Schicht 134 sowie eine TCP-Schicht 136, d.h. ein an das OSI-Schichtenmodell angelehnte Protokollschichtenabfolge entsprechend den OSI-Schichten 2, 3 und 4 im Kommunikationsbereich des Datenträgers 10.A transport system 130 is formed above the adaptation layer 124 for forwarding to or receiving data transmitted via the data transmission interface 122 to the network navigator 150. Typically, the transport system 130, as indicated in FIG. 1, comprises a SLIP or PPP layer 132, an IP layer 134 and a TCP layer 136, ie corresponding to a protocol layer sequence based on the OSI layer model the OSI layers 2, 3 and 4 in the communication area of the data carrier 10.
Zur Herstellung einer Transparentmodus-Datenverbindung zu einem Datenträger 10 dient das Terminalprogramm 102. Es wird über die Nutzerschnitt- stelle 140 bedient und realisiert den Datenaustausch im Transparentmodus 39. Unter Verwendung des Terminalprogramm.es 102 erfolgen unter anderem die Erstellung neuer Anwendungsprogramme für den Serverbereich und der Zugriff auf den Konfigurationsbereich 48.The terminal program 102 is used to establish a transparent mode data connection to a data carrier 10. It is operated via the user interface 140 and realizes the data exchange in the transparent mode 39. Using the terminal program 102, among other things, the creation of new application programs for the server area and access to configuration area 48.
Der Netznavigator 150 ist typischerweise ein üblicher Browser. Über die Schnittstelle 122 erlaubt er, sofern der Datenträger 10 über einen Netzserver 52 verfügt, insbesondere Auswahl und Aufruf einer bestimmten Anwendung aus dem Serverbereich 50 des tragbaren Datenträgers 10. Die Bedie- nung des Netznavigators 150 durch den Nutzer erfolgt ebenfalls über die Nutzer Schnittstelle 140.Network navigator 150 is typically a common browser. If the data carrier 10 has a network server 52, it allows, in particular, selection and calling of a specific application from the server area 50 of the portable data carrier 10. The user navigates the network navigator 150 via the user interface 140 ,
Anhand der Fig. 6 wird nachfolgend eine praktische Nutzung eines Datenträgers 10 beschrieben. Die gezeigte Nutzung gliedert sich in drei Phasen, wobei die erste Phase z.B. beim Hersteller des Datenträgers 10 ausgeführt wird, die zweite Phase durch einen Anwender und die dritte Phase durch einen Endnutzer.A practical use of a data carrier 10 is described below with reference to FIG. 6. The use shown is divided into three phases, the first phase e.g. is carried out at the manufacturer of the data carrier 10, the second phase by a user and the third phase by an end user.
Die erste Phase setzt ein durch Bereitstellung eines Datenträgers 10 durch den Hersteller, Schritt 300. Auf dem Datenträger 10 sind durch Maskenprogrammierung der Interaktionsbereich 40 und der Kommunikationsbereich 20 mit einer Kommunikationseinrichtung zur Ausführung mindestens eines Netzwerkprotokolles angelegt. Auf den so vorbereiteten Datenträger 10 werden ferner die unmittelbar vom Hersteller aufzubringenden Anwendun- gen geladen, Schritt 302 und im Konfigurationsbereich 48 die zugehörigen Konfigurationen gesetzt, Schritt 304.The first phase begins by the manufacturer providing a data carrier 10, step 300. The interaction region 40 and the communication region 20 with a communication device for executing at least one network protocol are created on the data carrier 10 by mask programming. On the data carrier 10 prepared in this way, the applications to be applied directly by the manufacturer are also loaded, step 302 and set the associated configurations in configuration area 48, step 304.
Anschließend wird der Datenträger 10 dem Anwendungsanbieter übergeben, Schritt 310. Bei dem Anwendungsanbieter handelt es sich insbesondere um eine Institution, die ein Netzwerk von Endgeräten 100 betreibt, an denen unter Verwendung eines Datenträgers 10 bestimmte Anwendungen durchgeführt werden können. Ein solcher Anwendungsanbieter kann beispielsweise eine Bank oder eine Behörde sein.The data carrier 10 is then transferred to the application provider, step 310. The application provider is, in particular, an institution that operates a network of terminals 100, on which certain applications can be carried out using a data carrier 10. Such an application provider can be, for example, a bank or an authority.
Der Anwendungsanbieter präsentiert den vom Hersteller erhaltenen Datenträger 10 an der Schnittstelle 122 eines geeigneten Endgerätes 100 und stellt unter Verwendung eines geeigneten Terminalprogramms 102 eine Verbindung zu dem Datenträger 10 her, Schritt 310. Als Ubertragungsmodus ist durch den Datenträger 10 zunächst der Transparentmodus 39 eingestellt, mithin ein Datenpfad zum Interaktionsbereich 40, Schritt 312. Der Anwendungsanbieter spielt nun eigene Anwendungen, Schritt 316, etwa spezielle Bank- oder Behördenanwendungen, auf den Datenträger 10 auf, wo sie in den Serverbereich 50 geladen werden.The application provider presents the data carrier 10 received from the manufacturer at the interface 122 of a suitable terminal 100 and establishes a connection to the data carrier 10 using a suitable terminal program 102, step 310. The data carrier 10 initially sets the transparent mode 39 as the transmission mode, and thus a data path to the interaction area 40, step 312. The application provider now loads its own applications, step 316, for example special banking or governmental applications, onto the data carrier 10, where they are loaded into the server area 50.
Weiter nimmt der Anwendungsanbieter Anpassungen im Konfigurationsbereich 48 vor Schritt 320, und lädt sie auf den Datenträger 10. Beispielsweise kann es erforderlich sein, eine vom Hersteller zunächst angelegte, herstellerbezogene IP- Adresse des Datenträgers 10 in eine an den Endgeräten 100 des Anwenders gültige IP- Adresse zu ändern. Im Transparentmodus 39 tritt der Anwendungsanbieter daher in einen direkten Dialog mit dem Konfigurationsbereich 48 und stellt mittels des Endgerätes 100 die geänderte IP- Adresse ein. Sind alle beabsichtigten Zugriffe erfolgt, beendet der Anwendungsanbieter die Kommunikation mit dem Datenträger 10, indem er ihn von der endgerä- teseitigen Schnittstelle 122 entfernt, Schritt 322. Der Datenträger 10 wird nun dem Endnutzer übergeben.The application provider also makes adjustments in the configuration area 48 before step 320 and loads them onto the data carrier 10. For example, it may be necessary to convert a manufacturer-related IP address of the data carrier 10 that was initially created by the manufacturer into an IP address that is valid on the end devices 100 of the user. Change address. In transparent mode 39, the application provider therefore enters into a direct dialog with the configuration area 48 and sets the changed IP address by means of the terminal 100. If all intended accesses have taken place, the application provider ends the communication with the data carrier 10 by removing it from the terminal 122 on the terminal side, step 322. The data carrier 10 is now handed over to the end user.
Der Endnutzer präsentiert den Datenträger 10, Schritt 330, zur Ausführung einer Anwendung wiederum einem geeigneten Endgerät 100, beispielsweise dem Leser eines Heimcomputers, und stellt unter Verwendung eines geeigneten Ternrdnalprogrammes 102 eine Verbindung zu dem Datenträger 10 her. Der Datenträger 10 stellt sich darauf zunächst wiederum in den Transparentmodus 39, Schritt 332, und bietet über das Endgerät 100 einen Dialog mit dem Interaktionsbereich 40 an. In der Regel sind Änderungen im Aus- führungsbreich 40 durch einen Endnutzer aber nicht vorzunehmen.The end user in turn presents the data carrier 10, step 330, for executing an application to a suitable terminal 100, for example the reader of a home computer, and establishes a connection to the data carrier 10 using a suitable communications program 102. The data carrier 10 then first switches to the transparent mode 39, step 332, and offers a dialog with the interaction area 40 via the terminal 100. As a rule, changes in the design area 40 are not to be made by an end user.
Regelmäßig veranlaßt der Endnutzer vielmehr unmittelbar die Ausführung einer Anwendung. Hierzu wechselt er aus der zum Kommunikationsaufbau ' eingesetzten Programmroutine in eine für den Zugriff auf eine im Serverbereich 50 des Datenträgers 10 befindliche Anwendung geeignete Programmroutine, etwa einen üblichen Netzbrowser und fordert einen Zugriff auf die ' Anwendung an. Die Anforderung erfolgt unter Verwendung des Netzwerk- protokolles des Browsers, Schritt 334. Dies veranlaßt die Verteileinheit 26 des Datenträgers 10 zum Wechsel des Ubertragungsmodus und zur Einstellung eines Datenpfades in den Serverbereich 50 zu der gewünschten Anwendung.Instead, the end user regularly initiates the execution of an application. For this purpose it changes from the to the communication structure 'program routine employed in a form suitable for access to a server located in the area 50 of the data carrier 10 application program routine, such as a conventional network browser and requests access to the' on application. The request is made using the browser's network protocol, step 334. This causes the distribution unit 26 of the data carrier 10 to change the transmission mode and to set a data path in the server area 50 to the desired application.
Anschließend führt der Endnutzer die beabsichtigte Anwendung aus, Schritt 336. Durch Entfernen des Datenträgers 10 von der Schnittstelle 122 beendet der Endnutzer den Zugriff auf den Datenträger 10, Schritt 338.The end user then executes the intended application, step 336. By removing the data carrier 10 from the interface 122, the end user ends access to the data carrier 10, step 338.
Ergibt sich während der Ausführung einer Anwendung das Erfordernis zur Änderung einer Einstellung im Konfigurationsmanager 42, wechselt der Endnutzer zurück in den Transparentmodus 39, indem er den aktuellen Anwendungszugriff durch aktives Beenden der SLIP/PPP-Session bzw. durch Entfernen des Datenträgers 10 beendet, den Datenträger 10 unmittel- bar anschließend erneut an der Schnittstelle 122 des Endgerätes 100 präsentiert, Schritt 340, und unter neuerlicher Verwendung der dazu bereitgestellten Programmroutine eine Kommunikation zu dem Datenträger aufnimmt. Hierauf stellt jener zunächst wieder den Transparentmodus 39 ein.If there is a need to run while an application is running If a setting is changed in the configuration manager 42, the end user changes back to the transparent mode 39 by ending the current application access by actively ending the SLIP / PPP session or by removing the data carrier 10, the data carrier 10 immediately afterwards again at the interface 122 of the terminal 100 presents, step 340, and starts communication with the data carrier again using the program routine provided for this purpose. The latter first sets the transparent mode 39 again.
Unter Beibehaltung des grundlegenden Gedankens, einen tragbaren Datenträger mit einem Interaktionsbereich zum Nachladen von zu interpretierendem Programmcode, vorzugsweise von in Hochsprache vorliegenden Programmquelltexten, einem Kommunikationsbereich zur Durchführung eines Transparent-Übertragungsmodus sowie mindestens eines weiteren zweiten Ubertragungsmodus, sowie einer Verteileinheit, welche in Abhängigkeit von den zugeführten Daten zwischen dem Transparentmodus und dem zweiten Ubertragungsmodus wechselt, zu versehen, gestattet die vorbeschriebene Erfindung eine Reihe von weiteren Ausgestaltungen.While maintaining the basic idea of a portable data carrier with an interaction area for reloading program code to be interpreted, preferably program source texts in high language, a communication area for carrying out a transparent transmission mode and at least one further second transmission mode, as well as a distribution unit which depends on the supplied data between the transparent mode and the second transmission mode, the above-described invention permits a number of further configurations.
So kann im Kommunikationsbereich 20 alternativ oder zusätzlich zu einer TCP/IP-Protkollarchitektur eine UDP/IP-Protokollarchitektur eingerichtet sein. Im Serverbereich 50 können weitere Netzserver 52, etwa ein TELNET- Server, mit zugehörige Hilfsprogrammen und Dateisystemen eingerichtet sein. TCP/IP selbst gestattet im Rahmen der zugehörigen RFCs eine Vielzahl von Varianten und Ausgestaltungen. Neben Anwendungen, die eine Netzserver 52 beinhalten können ferner Anwendungen mit beliebigen anderen Strukturen angelegt sein. Diese weiteren Anwendungen können zudem erfordern, daß im Kommunikationsbereich 20 eine speziell angepaßte weitere Protokollschichtarchitektur zur Kommunikation mit den Anwendungen eingerichtet wird. Anstelle einer Realisierung des Übertragungsmoduswechsel mittels einer Anordnung aus Verteileinheit 26, Aktivierungsmechanismus und Interpreter 44 mit Namensraumumschaltung kann weiterhin grundsätzlich eine gleichwirkende Lösung mit anderen Komponenten treten. Beispielsweise könnte die Funktionalität des Aktivierungsmechanismus in die Verteileinheit integriert werden. Zweckmäßige Abwandlungen können ferner aus dem Aspekt der Manipulationssicherheit bei der Handhabung von Daten auf dem tragbaren Datenträger sowie beim Austausch von Daten zwischen dem tragbaren Datenträger und einem Endgerät 100 resultieren. For example, as an alternative or in addition to a TCP / IP protocol architecture, a UDP / IP protocol architecture can be set up in the communication area 20. Further network servers 52, for example a TELNET server, with associated auxiliary programs and file systems can be set up in the server area 50. TCP / IP itself allows a large number of variants and configurations within the framework of the associated RFCs. In addition to applications that include a network server 52, applications with any other structures can also be created. These further applications may also require that in the communication area 20 a specially adapted further protocol layer architecture for communication with the applications is established. Instead of realizing the transmission mode change by means of an arrangement of distribution unit 26, activation mechanism and interpreter 44 with name space switchover, a solution with other components acting in principle can also occur in principle. For example, the functionality of the activation mechanism could be integrated into the distribution unit. Expedient modifications can also result from the aspect of security against manipulation when handling data on the portable data carrier and when exchanging data between the portable data carrier and a terminal device 100.
Anhang AAppendix A.
0 constant FALSE0 constant FALSE
-1 constant TRUΕ 126 CONSTANT TIB-MAX-1 constant TRUΕ 126 CONSTANT TIB-MAX
\ simulate modern for Windows 2000 SLIP : ATE1 . » OK" BEGIN key [char] C = UNTIL BEGIN key [char] T = UNTIL ." CLIENTSERVER"\ simulate modern for Windows 2000 SLIP: ATE1. » OK" BEGIN key [char] C = UNTIL BEGIN key [char] T = UNTIL. " CLIENTSERVER "
: iplace 2dup ic! char+ swap d->i ;: iplace 2dup ic! char + swap d-> i;
: , ' [char] ' parse ihere over char+ iallot iplace align:, '[char]' parse their over char + iallot iplace align
I postpone (is" ) , ' postpone itype ; immediateI postpone (is "), 'postpone itype; immediate
: html-header ( addr-c u -- ) . " <html><headxtitle>" 2dup type . " </titlex/head>" er: html-header (addr-c u -). "<html> <headxtitle>" 2dup type. "</ titlex / head>" he
." <bodyxhl>" type ." </hl>" er. "<bodyxhl>" type. "</hl>" er
: line-rest ( -- addr len ) source >in @ /string dup >in + i: line-rest (- addr len) source> in @ / string dup> in + i
\ as accept, but without the echo : blind- ccept ( addr n -- n1 ) 2dup bounds DO key dup 10 = over 13 = OR F 2drop I swap - key drop unloop exit THEN I C I LOOP nip BEGIN key dup 10 = swap 13 = OR UNTIL key drop\ as accept, but without the echo: blind- ccept (addr n - n 1 ) 2dup bounds DO key dup 10 = over 13 = OR F 2drop I swap - key drop unloop exit THEN ICI LOOP nip BEGIN key dup 10 = swap 13 = OR UNTIL key drop
wordlist constant http-wordswordlist constant http-words
\ dispatcher: run a text Interpreter loop \ in the http-words wordlist : 4HTTPd http-words 1 set-order BEGIN\ dispatcher: run a text Interpreter loop \ in the http-words wordlist: 4HTTPd http-words 1 set-order BEGIN
TIB TIB- AX blind-ACCEPT 0 >IN ! ' TIB swap evaluate line-rest 2drop flush AGAIN \ endless loop, ter inates at power off forth-wordlist 1 set-orderTIB TIB-AX blind-ACCEPT 0> IN! 'TIB swap evaluate line-rest 2drop flush AGAIN \ endless loop, ter inates at power off forth-wordlist 1 set-order
http-words set-currenthttp-words set-current
\ HTTP GET command, minimalistic : GET ( -- ) BEGIN \ ignore all input until end of HTTP request (double linefeed) FALSE key 13 = IF key dup 10 = swap 13 = or IF key 13 = IF key dup 10 = swap 13 = or IF drop true\ HTTP GET command, minimalistic: GET (-) BEGIN \ ignore all input until end of HTTP request (double linefeed) FALSE key 13 = IF key dup 10 = swap 13 = or IF key 13 = IF key dup 10 = swap 13 = or IF drop true
THENTHEN
THEN THENTHEN THEN
THENTHEN
UNTIL line-rest 2drop HTTP/1.1 200 OK" er ." Server: XaMeLeon 1.0 (Forth) " er ' Accept-Ranges: bytes" er 1 Connection: close" erUNTIL line-rest 2drop HTTP / 1.1 200 OK "er." Server: XaMeLeon 1.0 (Forth) "er 'Accept-Ranges: bytes" er 1 Connection: close "er
Content-Type: text/html" er er s" G&D Internet Smart Card" html-header . " This is the default entry point to the Internet Smart Card" er . ' <olxlixa href="config_fS-html">Conf igure File System</a>' erContent-Type: text / html "er er s"G&D Internet Smart Card "html-header." This is the default entry point to the Internet Smart Card "er , '<olxlixa href = "config_fS-html"> Conf igure File System </a>' er
.' <lixa href="upload_file.html">Upload File</a>' er. ' <lixa href = "upload_file.html"> Upload File </a> 'er
.' <lixa href =" comp_cgi.html ">Compile CGI script</ax/ol>' er. ' <lixa href = "comp_cgi.html"> Compile CGI script </ ax / ol> 'er
. " </bodyx/html>" er er er er er er flush, "</ bodyx / html>" he he he he he flush
4th \ for debugging only forth-wordlist 1 set-order 123 throw \ throw exception to exit "endless" loop4th \ for debugging only forth-wordlist 1 set-order 123 throw \ throw exception to exit "endless" loop
forth-wordlist set-current forth-wordlist set-current

Claims

P a t e n t a n s p r ü c h e Patent claims
1.) Tragbarer Datenträger mit einem integrierten Schaltkreis mit Prozessorkern und zugeordnetem Speichersystem, in das wenigstens ein Anwen- dungsprogramm ladbar ist, sowie einer Datenübertragungsschnittstelle zum Austausch von Daten mit einem Endgerät, dadurch gekennzeichnet, daß der integrierte Schaltkreis (1) aufweist:1.) Portable data carrier with an integrated circuit with processor core and associated memory system, into which at least one application program can be loaded, and a data transmission interface for exchanging data with a terminal, characterized in that the integrated circuit (1) has:
- einen Interaktionsbereich (40) zum Laden eines Anwendungsprogrammes, wobei die Datenübertragung zwischen der Datenübertiagungsschnittstelle- an interaction area (40) for loading an application program, the data transfer between the data transfer interface
(24) und dem Interaktionsbereich (40) in einem ersten Ubertragungsmodus (39) erfolgt,(24) and the interaction area (40) takes place in a first transmission mode (39),
- eine Kornrnunikationseinrichtung (28, 30, 32), die zwischen der Datenübertragungsschnittstelle (24) und einem Anwendungsprogramm eine Daten- Übertragung in einem zweiten Ubertragungsmodus (38) ermöglicht,- A Kornrnunikationseinrichtung (28, 30, 32) which enables data transmission between the data transmission interface (24) and an application program in a second transmission mode (38),
- sowie eine der Datenübertragungsschnittstelle (24) zugeordnete Verteileinheit (26), die in Abhängigkeit von den über die Datenübertragungsschnittstelle (24) eingehenden Daten die Auswahl eines Ubertragungsmodus (38, 39) veranlaßt.- And a distribution unit (26) assigned to the data transmission interface (24), which, depending on the data coming in via the data transmission interface (24), causes the selection of a transmission mode (38, 39).
2. Datenträger nach Anspruch 1, dadurch gekennzeichnet, daß wenigstens ein Anwendungsprogramm die Funktionalität eines Netzservers (52) herstellt2. Data carrier according to claim 1, characterized in that at least one application program produces the functionality of a network server (52)
3. Datenträger nach Anspruch 1, dadurch gekennzeichnet, daß im ersten Ubertragungsmodus (38) eine unveränderte Weiterleitung der eingehenden Daten an den Interaktionsbereich (40) erfolgt.3. Data carrier according to claim 1, characterized in that in the first transmission mode (38) there is an unchanged forwarding of the incoming data to the interaction area (40).
4. Datenträger nach Anspruch 1, dadurch gekennzeichnet, daß der zweite Übertragungsmodus (38) einem standardisierten Netzwerkprotokoll entspricht.4. Data carrier according to claim 1, characterized in that the second Transmission mode (38) corresponds to a standardized network protocol.
5. Datenträger nach Anspruch 1, dadurch gekennzeichnet, daß der Interak- tionsbereich (40) einen Interpreter (44) enthält.5. Data carrier according to claim 1, characterized in that the interaction area (40) contains an interpreter (44).
6. Datenträger nach Anspruch 5, dadurch gekennzeichnet, daß der Funktionsumfang des Interpreters (44) durch Grundroutinen bestimmt wird, die in Namensräumen (45, 46) organisiert sind.6. Data carrier according to claim 5, characterized in that the functional scope of the interpreter (44) is determined by basic routines which are organized in namespaces (45, 46).
7. Datenträger nach Anspruch 1, dadurch gekennzeichnet, daß der Verteileinheit (26) ein Aktivierungsmechanismus (37) zur Erzeugung einer ein bestimmtes Anwendungsprogramm bezeichnenden Anweisung nachgeschaltet ist.7. A data carrier according to claim 1, characterized in that the distribution unit (26) is followed by an activation mechanism (37) for generating an instruction designating a specific application program.
8. Datenträger nach Anspruch 7, dadurch gekennzeichnet, daß der Aktivierungsmechanismus (37) die Erzeugung der Anweisung nach Erhalt eines Aktivierungssignales von der Verteileinheit (26) vornimmt.8. A data carrier according to claim 7, characterized in that the activation mechanism (37) carries out the generation of the instruction after receipt of an activation signal from the distribution unit (26).
9. Datenträger nach Anspruch 5 dadurch gekennzeichnet, daß der Interpreter (44) einen äußeren Interpreter (42) zur Ermittlung von in textuellen Anweisungen enthaltenen Grundroutinen sowie einen inneren Interpreter (43) zur Ausführung der Grundroutinen aufweist.9. A data carrier according to claim 5, characterized in that the interpreter (44) has an outer interpreter (42) for determining basic routines contained in textual instructions and an inner interpreter (43) for executing the basic routines.
10. Datenträger nach Anspruch 5, dadurch gekennzeichnet, daß der Interpreter (44) den Programmcode eines heu geladenen Anwendungprogram- mes beim Laden in nativen Maschinencode des Prozessorkernes (2) überführt. - So ¬10. A data carrier according to claim 5, characterized in that the interpreter (44) transfers the program code of a hay-loaded application program when loaded into native machine code of the processor core (2). - So ¬
ll . Datenträger nach Anspruch 1, dadurch gekennzeichnet, daß der Interaktionsbereich (40) einen Konfigurationsbereich (48) enthält, in dem Parametrisierungen und Konfigurationseinstellungen zu den Anwendungsprogrammen bereitstellt sind.ll. Data carrier according to claim 1, characterized in that the interaction area (40) contains a configuration area (48) in which parameterizations and configuration settings for the application programs are provided.
12. Datenträger nach Anspruch 1, dadurch gekennzeichnet, daß die Verteileinheit (26) einen Wechsel des Ubertragungsmodus nur vom ersten (39) zum zweiten (38) vornimmt.12. Data carrier according to claim 1, characterized in that the distribution unit (26) only changes the transmission mode from the first (39) to the second (38).
13. Datenträger nach Anspruch 11, dadurch gekennzeichnet, daß die Verteileinheit (26) den Ubertragungsmodus (38, 39) bei Erkennen eines speziellen Steuerelementes (420) wechselt.13. Data carrier according to claim 11, characterized in that the distribution unit (26) changes the transmission mode (38, 39) upon detection of a special control element (420).
14 Verfahren zum Einrichten eines Anwendungsprogramm.es auf einem tragbaren Datenträger mit den Schritten14 Procedure for setting up an application program on a portable data carrier with the steps
Bereitstellen eines Speichersystems (3, 4, 5) zur Aufnahme eines An- wendungsprogrammes,Provision of a storage system (3, 4, 5) for receiving an application program,
Einrichten eines Interpreters (44) zum Compilieren sowie zum Ausführen des Anwendungsprogrammes, - Erstellen des Quelltextes des einzurichtenden Anwendungsprogrammes in einer Programmierhochsprache,Setting up an interpreter (44) for compiling and executing the application program, - creating the source text of the application program to be set up in a high-level programming language,
Übertragen des in Hochsprache abgefaßten Quelltextes an den Interaktionsbereich (40), Überführen des in Hochsprache abgefaßten Quelltextes in einen für den Pro- zessorkern (2) des Datenträgers (10) ausführbaren Maschinencode durch den Interpreter (44),Transferring the source text written in high level language to the interaction area (40), transferring the source text written in high level language into a machine code that can be executed by the interpreter (44) for the processor core (2) of the data carrier (10),
Ausführen des Maschinencodes des Anwendungsprogrammes durch den Interpreter (44). Execution of the machine code of the application program by the interpreter (44).
15. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß in Hochsprache gefaßter Quelltext in einem ersten Ubertragungsmodus (39) an den Interpreter (44) übertragen wird.15. The method according to claim 14, characterized in that in high language source text is transmitted in a first transmission mode (39) to the interpreter (44).
16. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß zur Bearbeitung durch ein Anwendungsprogramm bestimmte Daten in einem zweiten Übertragungmodus (38) an das Anwendungsprogramm geleitet werden.16. The method according to claim 14, characterized in that for processing by an application program certain data are passed to the application program in a second transmission mode (38).
17. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß zu Beginn einer Kommunikation zwischen einem tragbaren Datenträger (10) und einem Endgerät (100) stets der erste Ubertragungsmodus (39) eingestellt wird.17. The method according to claim 14, characterized in that at the start of communication between a portable data carrier (10) and a terminal (100), the first transmission mode (39) is always set.
18. Verfahren nach Anspruch 14, dadurch gekennzeichnet, daß der erste Ubertragungsmodus (39) eingestellt bleibt, bis in dem in dem tragbaren Da- tenträger (10) eingehenden Datenstrom ein bestimmtes Steuerelement (420) erkannt wird. 18. The method according to claim 14, characterized in that the first transmission mode (39) remains set until a certain control element (420) is recognized in the data stream incoming in the portable data carrier (10).
PCT/EP2003/014540 2002-12-20 2003-12-18 Portable data carrier with network server functionality WO2004059562A2 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
EP03785881A EP1579318A2 (en) 2002-12-20 2003-12-18 Portable data carrier with network server functionality
AU2003294905A AU2003294905A1 (en) 2002-12-20 2003-12-18 Portable data carrier with network server functionality

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
DE10261916.6 2002-12-20
DE2002161916 DE10261916A1 (en) 2002-12-20 2002-12-20 Portable data carrier with network server functionality

Publications (2)

Publication Number Publication Date
WO2004059562A2 true WO2004059562A2 (en) 2004-07-15
WO2004059562A3 WO2004059562A3 (en) 2005-01-06

Family

ID=32404426

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2003/014540 WO2004059562A2 (en) 2002-12-20 2003-12-18 Portable data carrier with network server functionality

Country Status (4)

Country Link
EP (1) EP1579318A2 (en)
AU (1) AU2003294905A1 (en)
DE (1) DE10261916A1 (en)
WO (1) WO2004059562A2 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009090070A2 (en) 2008-01-16 2009-07-23 Giesecke & Devrient Gmbh Portable data carrier comprising a cat interpreter
WO2011107022A1 (en) * 2010-03-03 2011-09-09 华为终端有限公司 Data card and method for dial-up networking

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE102004052875A1 (en) * 2004-11-02 2006-05-04 Giesecke & Devrient Gmbh Portable data carrier with integrated circuit e.g. for banking, uses integrated circuit for generation of dialog data
DE102005028393A1 (en) * 2005-06-20 2006-12-28 Giesecke & Devrient Gmbh Portable data carrier
DE102007055653A1 (en) 2007-11-21 2009-05-28 Giesecke & Devrient Gmbh Portable disk with web server
DE102010033995A1 (en) * 2010-08-11 2012-02-16 Giesecke & Devrient Gmbh Portable disk with a web server
DE102012008147A1 (en) * 2012-04-24 2013-10-24 Tobias Volk Radio frequency identification (RFID) transponder has memory that is organized in RFID tag file system which is provided with own file allocation table that manages files independently, so as to read or delete files

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6254288B1 (en) 1995-02-17 2001-07-03 Guido Heyns Integrated circuit controlled transaction management system
WO2001060881A2 (en) 2000-02-17 2001-08-23 Lee Eung Chan Polyorganosilsesquioxane and process for preparing the same
US20020174071A1 (en) 2000-02-10 2002-11-21 Alain Boudou Method for loading a piece of software in a smart card, in particular applet

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE19926081A1 (en) * 1999-06-08 2000-12-21 Giesecke & Devrient Gmbh Chip card with several application programs
EP1290536A2 (en) * 2000-06-15 2003-03-12 Rainbow Technologies B.V. Usb-compliant personal key using a smartcard processor and a smartcard reader emulator

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6254288B1 (en) 1995-02-17 2001-07-03 Guido Heyns Integrated circuit controlled transaction management system
US20020174071A1 (en) 2000-02-10 2002-11-21 Alain Boudou Method for loading a piece of software in a smart card, in particular applet
WO2001060881A2 (en) 2000-02-17 2001-08-23 Lee Eung Chan Polyorganosilsesquioxane and process for preparing the same

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
See also references of EP1579318A2
W. RANKL; W. EFFING: "Handbuch der Chipkarten", 2002

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009090070A2 (en) 2008-01-16 2009-07-23 Giesecke & Devrient Gmbh Portable data carrier comprising a cat interpreter
WO2009090070A3 (en) * 2008-01-16 2009-10-01 Giesecke & Devrient Gmbh Portable data carrier comprising a cat interpreter
CN101960823A (en) * 2008-01-16 2011-01-26 德国捷德有限公司 Portable data carrier comprising a cat interpreter
US8966108B2 (en) 2008-01-16 2015-02-24 Giesecke & Devrient Gmbh Portable data carrier comprising a CAT interpreter
WO2011107022A1 (en) * 2010-03-03 2011-09-09 华为终端有限公司 Data card and method for dial-up networking

Also Published As

Publication number Publication date
WO2004059562A3 (en) 2005-01-06
AU2003294905A8 (en) 2004-07-22
AU2003294905A1 (en) 2004-07-22
DE10261916A1 (en) 2004-07-01
EP1579318A2 (en) 2005-09-28

Similar Documents

Publication Publication Date Title
DE69933883T2 (en) METHOD FOR USING LOCAL RESOURCES IN A COMMUNICATION SYSTEM
EP0466969B1 (en) Method for preventing unauthorised deviations from an application development protocol in a data exchange system
DE60124367T2 (en) METHOD FOR TRANSFERRING HIGH-SPEED DATA STREAMS VIA INTERNET BETWEEN A SERVER AND A CHIP CARD TERMINAL
DE69827747T2 (en) Printer system and transfer device to transfer printer control program
DE69925806T2 (en) METHOD FOR COMMUNICATING BETWEEN A USER STATION AND A NETWORK IN PARTICULAR THE INTERNET AND ARCHITECTURE THEREFOR
DE60207155T2 (en) Object-oriented Internet interface system for an industrial control device
DE69400549T3 (en) IC card transmission system
DE10297269T5 (en) Label packets with a lookup key to make it easier to use a common packet forwarding cache
WO1997001147A2 (en) Method of simplifying communication with chip cards
DE60124722T2 (en) METHOD FOR TRANSMITTING A MOBILE AGENT IN A NETWORK; TRANSMITTER, RECEIVER AND ASSOCIATED MOBILE AGENT
DE60036782T2 (en) PROCESS AND ARCHITECTURE FOR REMOTE CONTROL FROM A USER STATION VIA INTERNET
EP1579318A2 (en) Portable data carrier with network server functionality
DE10352400A1 (en) Network Service interceptor
EP1230780B1 (en) Adaptable chip card
WO2003036401A2 (en) Method for detecting a number of field devices in a device configuration
DE10151735B4 (en) A system and method for connecting a web server in a peripheral device to a network by a host
EP1230779B1 (en) Method, chipcard and apparatus for a logical interface between two applications
EP1527425B1 (en) Method of installing a file system in a data support
WO2009065553A2 (en) Portable data carrier comprising a web server
DE10244459A1 (en) Method for control of application process in distributed system e.g. for sequencing computer software applications, uses system having second layer as micro-kernel based client/server
EP1177667B1 (en) Network, interpreter for such a network, and method for operating a network
EP1435026B1 (en) System and method for the data emission of an appliance, especially an automation appliance, by means of a standardised interface with replacement of variables by means of an echo server
EP1015972B1 (en) Method for switching transaction steps
EP1515521A2 (en) A method and an apparatus for automatic conversion of text-based messages to a query of internet-based applications
DE102020104646A1 (en) Browser-based remote access to hardware security module

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 BW BY BZ CA CH CN CO CR CU CZ DK DM DZ EC EE EG 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 NI NO NZ OM PG PH PL PT RO RU SC SD SE SG SK SL SY 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): BW 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 HU IE IT LU MC NL PT RO SE SI SK TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

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

Ref document number: 2003785881

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 2003785881

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 2003785881

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Ref document number: JP