SI9720049A - Portable, secure transaction system for programable, inteligent devices - Google Patents

Portable, secure transaction system for programable, inteligent devices Download PDF

Info

Publication number
SI9720049A
SI9720049A SI9720049A SI9720049A SI9720049A SI 9720049 A SI9720049 A SI 9720049A SI 9720049 A SI9720049 A SI 9720049A SI 9720049 A SI9720049 A SI 9720049A SI 9720049 A SI9720049 A SI 9720049A
Authority
SI
Slovenia
Prior art keywords
module
terminal
address space
logical address
read
Prior art date
Application number
SI9720049A
Other languages
Slovenian (sl)
Inventor
Guido Heyns
Peter Johannes
Original Assignee
Europay International N.V.
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 Europay International N.V. filed Critical Europay International N.V.
Publication of SI9720049A publication Critical patent/SI9720049A/en

Links

Classifications

    • GPHYSICS
    • G07CHECKING-DEVICES
    • G07FCOIN-FREED OR LIKE APPARATUS
    • G07F7/00Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
    • G07F7/08Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means
    • G07F7/10Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus by coded identity card or credit card or other personal identification means together with a coded signal, e.g. in the form of personal identification information, like personal identification number [PIN] or biometric data
    • G07F7/1008Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • 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
    • 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

Abstract

The present invention provides a transaction management system for executing transactions between a first device (1) and a second device, said first and second devices being adapted for communication with each other and at least one of said first and second devices being an integrated circuit card, said system comprising: at least one input/output device (25); a portable virtual machine (20) for interpreting a computer program on said first device, said virtual machine comprising a virtual microprocessor and a driver for said at least one input/output device (25); and execution means responsive to said interpreted program for executing said program. The general linking technical concept behind the present invention is portability combined with security of data and run-time guarantees in a transaction system which are independent of the target implementation provided compile time checks are passed successfully. This concept is achieved by: using a virtual machine as an interpreter, including a driver for the I/O devices in the virtual machine so that application programs have a common interface with I/O devices and are therefore portable across widely differing environments, allocating and deallocating memory and including an indication of the amount of memory in the application program which means that the program will only run successfully or it will not run at all and security management functions are reduced to a minimum which improves operating speed, and providing a secure way of importing and exporting data in and out of application programs and databases.

Description

EUROPAY INTERNATIONAL N. V.EUROPAY INTERNATIONAL N.V.

Prenosen, varen transakcijski sistem za programabilne inteligentne pripraveA portable, secure transaction system for programmable intelligent preparations

Predloženi izum se nanaša na sistem, ki vključuje programabilne, inteligentne priprave, kot so terminali in kartice z integriranim vezjem, kot tudi postopek delovanja takšnih kartic in terminalov, ki vključujejo avtomatske govorne stroje, osebne računalnike, plačilne televizijske enote, terminale na prodajnem mestu, zdravstvene kartice ali podobno. Predvsem je primeren za uporabo pri izvajanju finančnih transakcij.The present invention relates to a system incorporating programmable, intelligent devices such as terminals and integrated circuit cards, as well as the process of operation of such cards and terminals involving automatic voice machines, personal computers, pay-TV units, point-of-sale terminals, health cards or the like. It is especially suitable for use in the execution of financial transactions.

Tehnično ozadjeTechnical background

Različni tipi terminalov so poznani po izvajanju transakcij, npr. finančnih transakcij, ki vključujejo prenos ali izmenjavo vrednosti ali transakcije, ki so komercialne narave, kot so transakcije z zdravstvenimi karticami ali za pristop do podatkov na splošno, npr. SIM kartica pri GSM mobilnem telefonu. Poznani so terminali, kot so priprave (POS) na prodajnem mestu, avtomatski govorni stroji (ATM) ali GSM mobilni telefoni. Dejanski izdelki segajo od majhnih, ročno držanih priprav s preprostimi 8bitnimi mikroprocesorji, kot je Intelova 8031/8051 serija, ki jo dobavlja Intel Corp., ZDA, ali kartice (ICC) z integriranim vezjem, do 32-bitnih računalnikov, ki poganjajo operacijske sisteme, kot sta UNIX™ ali Windovs NT, ki ga dobavlja Microsoft Corp., ZDA. Nekateri od teh strojev sodelujejo z osebno uporabniško kartico, ki je lahko kartica z magnetnim trakom, pametna kartica ali ICC, ki shranjuje za uporabnika značilno identifikacijo in potrdilno informacijo, ki je potrebna, preden se lahko začne komunikacija med uporabnikom in terminalom. Uporabnik namesti kartico v bralnik kartice, ki je povezan s terminalom, v terminalu se izvede program, ki je rezidenčen v terminalu, in preveri se kartica, pri čemer se preizkusi uporabnikova informacija zaradi njene potrditve in če je potrebno na posredovanje gesla ali zasebne številke kot je PIN (osebna identifikacijska številka). Po potrditvi program normalno dovoljuje uporabniku, da izbere željene usluge, ki jih je treba izvesti, npr. dvig gotovine, preverjanje tekoče bilance. Terminal je lahko samostojen ali pa je povezan z večjim računalnikom bodisi lokalno ali preko telekomunikacijskega omrežja. Takšni terminali so pogosto na razpolago 24 ur na dan in morajo teči ob najmanjšem vzdrževanju in z visokim nivojem varnosti.Different types of terminals are known for performing transactions, e.g. financial transactions involving the transfer or exchange of value or transactions of a commercial nature, such as medical card transactions or access to data in general, e.g. SIM card with GSM mobile phone. Terminals are known, such as point-of-sale (POS) devices, automatic speech machines (ATMs), or GSM mobile phones. The actual products range from small, hand-held devices with simple 8-bit microprocessors, such as the Intel 8031/8051 series supplied by Intel Corp., USA, or integrated circuit ICCs, to 32-bit computers that run operating systems , such as UNIX ™ or Windovs NT, provided by Microsoft Corp., USA. Some of these machines work with a personal user card, which can be a magnetic stripe card, smart card, or ICC, which stores the user-specific identification and confirmation information required before communication between the user and the terminal can begin. The user installs the card in a card reader connected to the terminal, a terminal resident program is executed in the terminal and the card is checked, and the user's information is tested to confirm it and if necessary pass on a password or private number as is a PIN (Personal Identification Number). After confirmation, the program normally allows the user to select the desired services to be performed, e.g. cash withdrawal, current account check. The terminal may be stand-alone or connected to a larger computer either locally or through a telecommunications network. Such terminals are often available 24 hours a day and have to run at minimum maintenance and with a high level of security.

Takšni terminali predstavljajo znatno vlaganje v strojno opremo in se običajno ne zamenjujejo v pogostih intervalih. Posodabljanje programske opreme in programov, ki tečejo na takšnih terminalih, postane potrebno, kadar se ponudijo nove usluge, in mora biti izvedeno varno. Na splošno organizacije, ki upravljajo terminale, kot so banke, zahtevajo, da je vsako posodabljanje potrjeno. Taksno posodabljanje se lahko izvede ročno ali na daleč preko zasebnega ali javnega komunikacijskega omrežja, kot je poznano iz patenta US 5.434.999. Takšne znane sheme zahtevajo, da sta poznana vrsta in model terminala za nove razvoje, kot mora biti specifično stvorjena programska oprema za vsak terminal za tisto vrsto terminala, in so zato cenovno intenzivne. Da bi bili sposobni ponuditi usluge od vseh možnih organizacij, ki ponujajo podobne usluge, npr. vse banke ali kreditni inštituti, morajo biti nadalje terminali sposobni, da obdelujejo vse programe vseh organizacij. Zaradi visoke gibljivosti tako zasebnih kot poslovnih ljudi, je prednostno, da so vse usluge, ki se ponujajo v eni deželi, razpoložljive na vsakem terminalu. To bi imelo za posledico nepotrebno veliko obdelovalno zmogljivost in velikost pomnilnika za vsak terminal. Nadalje mora biti vsak izmed teh programov posodobljen, kot se zahteva. Ena izmed rešitev bi lahko bila uporaba majhne delovne postaje za vsak terminal, po možnosti priključene na telekomunikacijski sistem. Takšen sistem bi bil zmožen nesprotne obdelave in bi se lahko preklapljal na sprotno obdelavo neobičajnih transakcij ali zaradi samodejnega posodabljanja rezidenčnih programov. Delovne postaje bi se npr. zahtevale za izvajanje kompleksnega potrjevanja in kodirnih shem, ki so potrebne za vzdrževanje varnosti na sistemu, ki je izpostavljen napadu preko javnih telefonskih omrežij. Z naraščajo velikostjo in kompleksnostjo bi naraščal tudi problem vzdrževanja varnosti.Such terminals represent a significant investment in hardware and are not typically replaced at frequent intervals. Updating of software and programs running at such terminals becomes necessary when new services are offered and must be performed safely. Generally, terminal management organizations, such as banks, require that each update be confirmed. Such updating may be performed manually or remotely over a private or public communications network, as known from US Patent 5,434,999. Such known schemes require that the type and model of the terminal for new developments be known, as must be specifically created by the software for each terminal for that type of terminal, and are therefore cost-intensive. To be able to offer services from all possible organizations offering similar services, e.g. any banks or credit institutes, furthermore, the terminals must be able to handle all the programs of all organizations. Due to the high mobility of both private and business people, it is preferable that all services offered in one country are available at each terminal. This would result in unnecessarily high processing capacity and memory size for each terminal. Furthermore, each of these programs must be updated as required. One solution could be to use a small workstation for each terminal, possibly connected to a telecommunications system. Such a system would be capable of counter-processing and could switch to online processing of unusual transactions or to automatically update resident programs. Workstations would e.g. required the implementation of the complex validation and coding schemes necessary to maintain security on a system exposed to attack through public telephone networks. With increasing size and complexity, the problem of maintaining security would also increase.

Celo pri takšnem sistemu bi lahko nastopili problemi v povezavi s kontrolo verzij. Lahko se zgodi, da nimajo vsi uporabniki uslug iste organizacije kartice, ki so primerne za zadnjo verzijo uslug. To se lahko zgodi, ko multinacionalne organizacije uvajajo ali posodabljajo usluge v različnih časih v različnih deželah. V WO 96/18979 je bilo predlagano, da se terminali posodabljajo le za seanso, ki jo sproži uporabnikova osebna ICC. Programska navodila, ki predstavljajo podprograme, so shranjena na kartici in se lahko izvozijo na terminal, kjer se tolmačijo. Uporaba tolmača v terminalu dopušča, da se ista kartica uporabi s katerimkoli terminalom, ki vsebuje tolmača in zato naredi transakcijo neodvisno od glavnega procesorja na terminalu. Ni pa opisan noben varnostni postopek za izločitev po možnosti nevarnih podprogramov.Even with such a system there could be problems with version control. It may be that not all users of the services have the same organization of cards that are suitable for the latest version of services. This can happen when multinational organizations introduce or update services at different times in different countries. In WO 96/18979, it was suggested that terminals be updated only for a session initiated by the user's personal ICC. Software instructions representing the subroutines are stored on the card and can be exported to the terminal for interpretation. The use of an interpreter in a terminal allows the same card to be used with any terminal that contains the interpreter and therefore makes the transaction independent of the main processor at the terminal. However, no security procedures are described for eliminating potentially dangerous subroutines.

Terminali zgoraj opisane vrste imajo tudi procesor, ki vključuje neko obliko pomnilnika, običajno nekakšen bralno/pisalni pomnilnik (RAM) za poganjanje programov, nekakšen le bralni pomnilnik (ROM) za shranjevanje podatkov, ki se dajo le brati, ki lahko vključujejo program za operacijski sistem terminala in obstojen bralno/pisalni pomnilnik za shranjevanje splošnih podatkov, ki se lahko spreminjajo. Uporabnikovi osebni podatki naj bodo držani zasebno in zato naj ne bo omogočen dostop enega uporabnika do podatkov drugega uporabnika, bodisi naključno ali namerno s strani zlonamerne osebe. Nadalje naj se različnim pisalnim pomnilnikom terminala sčasoma ne more zmanjšati razdrobljenost. Zmanjševanje razdrobljenosti pomnilnika ima lahko za posledico, da se zmanjšajo bloki sosednjega pomnilnika po velikosti, tako da določeni programi ne morejo teči. Da se izognejo temu problemu, nekateri programimi jeziki, kot je Java™, uporabljajo obnavljanje pomnilniškega prostora. Obnavljanje pomnilniškega prostora je program, ki poskuša opredeliti podatke v pomnilniku, ki se več ne potrebujejo in se odstranijo iz pomnilnika. Sedanje mnenje ob poznavanju dejstev, je v tem, daje obnavljanje pomnilniškega prostora bolj zanesljiv način upravljanja pomnilnika kot tisti, ki ima program za izrecno sprostitev svojih lastnih shranjenih podatkov. Izrecno dodeljevanje in sproščanje pomnilnika imajo nekateri za največji posamezen vir napak pri visokonivojskih programimih jezikih, kot sta C ali C++.Terminals of the type described above also have a processor that includes some form of memory, usually some sort of read / write memory (RAM) for running programs, some sort of read only memory (ROM) for read only data that can include an operating program terminal system and existing read / write memory for storing general information that can be changed. The user's personal data should be kept private and therefore one user should not be allowed to access another user's data, either accidentally or intentionally by a malicious person. Furthermore, the fragmented writing memory of the terminal should not be reduced over time. Reducing memory fragmentation can result in reducing adjacent memory blocks by size so that certain programs cannot run. To avoid this problem, some application languages, such as Java ™, use memory space restoration. Memory Space Recovery is a program that tries to identify in-memory data that is no longer needed and is removed from memory. The current opinion, knowing the facts, is that restoring memory space is a more reliable way of managing memory than having a program to explicitly release its own stored data. Explicit memory allocation and release are some of the biggest single source of errors in high-level programming languages like C or C ++ .

Obnavljanje pomnilniškega prostora ima nekaj pomanjkljivosti. Najprej je obnavljanje pomnilniškega prostora funkcija operacijskega sistema bolj kot uporabniška značilnost. Zato obnavljanje pomnilniškega prostora ne zagotavlja, da se podatki vsake uporabe odstranijo iz pomnilnika na koncu te uporabe, ampak so lahko takšni podatki prisotni za nekaj časa, dokler motnja pri dostopu ne sproži obnavljanja pomnilniškega prostora. Bolj zanesljiv postopek izločanja možnosti naslavljanja podatkov zasebnega uporabnika se zahteva pri finančnih transakcijah. Nadalje povečuje velikost pomnilniškega prostora, ki se zahteva za operacijski sistem. Na ICC in nekaterih terminalih je pomnilnik lahko omejen in obnavljanje pomnilniškega prostora lahko predstavlja resno pomanjkljivost. Kot je bilo zgoraj razloženo, se terminali zamenjujejo zelo poredko, tako da v sistemu hkrati normalno deluje široka raznolikost terminalov, ki vključujejo različne procesorske zmožnosti in velikosti pomnilnikov. Starejši terminali so pogosto zelo omejeni v svojih zmožnostih. Čeprav se lahko najstarejši tipi zamenjajo, zahteva po izboljšanih in bolj kompleksnih uslugah pomeni, da starejši terminali verjetno ne bodo nikoli nadomeščam tako pogosto, da nekateri od njih ne bi zaostajali po svojih zmožnostih. Zato bo zahteva po kompaktnih operacijskih sistemih, ki lahko delujejo na široki množici tipov procesorjev, zelo verjetno ostala kot zahteva. Končno obnavljanje pomnilniškega prostora ne sprosti pomnilnika tako hitro, kot bi bil sproščen, če bi se uporabilo izrecno odstranjevanje iz pomnilnika. Tudi to lahko poveča obseg zahtevanega pomnilnika, saj je obremenjen pomnilnik, ko bi lahko bil sproščen.Recovering memory space has some drawbacks. First of all, restoring memory space is a function of the operating system rather than a user feature. Therefore, restoring memory space does not guarantee that each usage data is removed from memory at the end of that use, but such data may be present for some time until an access disruption triggers memory storage recovery. A more reliable process of eliminating the ability to address private user information is required in financial transactions. It further increases the amount of memory space required for the operating system. At ICCs and some terminals, memory may be limited, and rebuilding memory space can be a serious disadvantage. As explained above, the terminals are replaced very rarely, so that at the same time a wide variety of terminals, which include different processing capabilities and memory sizes, normally function in the system. Older terminals are often very limited in their capabilities. Although the oldest types may be interchanged, the demand for improved and more complex services means that older terminals will probably never be replaced so often that some of them will not lag behind in their capabilities. Therefore, the requirement for compact operating systems that can run on a wide variety of processor types will very likely remain as a requirement. Finally, restoring memory space does not free up memory as quickly as it would have been released if explicit memory removal had been used. Also, this can increase the amount of memory required, since memory is overloaded when it could be released.

Varen postopek upravljanja pomnilnika med delovanjem je opisan v patentu US 5.434.999. V skladu s tem znanim postopkom, npr. prevajalnik v terminalu izvaja sistematično preverjanje vsakega navodila, ki upravlja pomnilniški naslov, da se preveri, ali je dovoljeno področje pomnilnika, na katero se zahteva dostop. Ta sistem ima pomanjkljivost, da se mora vsako navodilo preveriti na ta način, kar znatno upočasnjuje obdelavo. Preverjanje programa med delovanjem je dragoceno za učinkovitost.A safe procedure for managing memory during operation is described in US Patent 5,434,999. According to this known process, e.g. the terminal compiler performs a systematic check on each instruction that manages the memory address to verify that the memory area to which access is requested is allowed. This system has the disadvantage that each instruction must be verified in this way, which significantly slows down processing. Checking a program while in operation is valuable for efficiency.

Obstoji potreba po sistemu, ki zagotavlja programabilne terminale, kar omogoča, da uporabniški programer stvori programsko opremo, ki je prenosna in nevtralna preko heterogenih terminalov, to se pravi neodvisna od procesorja, ki se uporablja v terminalu, in ni potrebno, da bi bila prirejena za vsako vrsto terminala. Terminalsko rezidenčen operacijski sistem in uporabniški programi so prednostno kompaktni, izvajajo hitro in izpolnjujejo varnostne zahteve. Nadalje je prednostno, če se lahko uporabniški programi zlahka posodobijo, vsaj tako, da lahko vsak uporabnik dobi usluge, ki se pričakujejo neodvisno od geografske namestitve terminala.There is a need for a system that provides programmable terminals, which allows the user programmer to create software that is portable and neutral via heterogeneous terminals, that is, independent of the processor used in the terminal and does not need to be customized for each type of terminal. Terminally resident operating system and application programs are preferably compact, run fast, and meet security requirements. Furthermore, it is preferable that user programs can be easily updated, at least so that each user can obtain the services expected independently of the geographical location of the terminal.

Naloga predloženega izuma je v tem, da se zagotovi varen sistem za upravljanje transakcij in postopek za vodenje tega sistema.It is an object of the present invention to provide a secure transaction management system and process for managing this system.

Nadaljnja naloga predloženega izuma je v tem, da se zagotovijo vami terminali in ICC-ji za transakcije in postopki za upravljanje s temi pripravami.A further object of the present invention is to provide you with terminals and ICCs for transactions and procedures for managing these devices.

Se nadaljnja naloga predloženega izuma je v tem, da se zagotovi priprava, ki se lahko uporablja pri transakciji in se lahko uporabi na majhnih ročnih pripravah, kot je ICC.A further object of the present invention is to provide a device that can be used in a transaction and can be used on small hand held devices such as the ICC.

Se nadaljnja naloga predloženega izuma je v tem, da se zagotovi sistem za transakcije, v katerem se lahko terminali ali ICC-ji posodobijo, s tem da se uporabijo terminali ali ICC-ji kot izvori posodobitvene informacije.It is a further object of the present invention to provide a transaction system in which terminals or ICCs can be updated by using terminals or ICCs as sources of update information.

Še nadaljnja naloga predloženega izuma je, da se zagotovi sistem za upravljanje s transakcijami in postopek za vodenje sistema, ki zagotavlja visoko varnost ob dobri hitrosti delovanja.It is a further object of the present invention to provide a transaction management system and process management system that provides high security at good speed of operation.

Povzetek izumaSummary of the Invention

Predloženi izum se nanaša na upravljalski transakcijski sistem za izvajanje transakcij med prvo pripravo in drugo pripravo, pri čemer sta omenjena prva priprava in omenjena druga priprava prilagojeni za komuniciranje druga z drugo in je vsaj ena od omenjenih prve in druge priprave kartica z integriranim vezjem, pri čemer omenjeni sistem obsega:The present invention relates to a transaction management system for performing transactions between a first device and a second device, said first device and said second device being adapted to communicate with each other, and at least one of said first and second devices is an integrated circuit card, said system comprising:

vsaj eno vhodno/izhodno pripravo;at least one input / output device;

prenosen virtualen stroj za tolmačenje računalniškega programa na omenjeni prvi pripravi, pri čemer omenjeni virtualni stroj obsega virtualni mikroprocesor in gonilnik za omenjeno vsaj eno vhodno/izhodno pripravo;a portable virtual machine for interpreting a computer program on said first device, said virtual machine comprising a virtual microprocessor and a driver for said at least one input / output device;

in izvajalno sredstvo, ki se odzove na omenjeni tolmačeni program za izvajanje omenjenega programa.and an executing agent that responds to said interpreted program for executing said program.

Prednostno je prenosen virtualen stroj skladovni stroj, ker to prinaša hitrost pri delovanju in kompaktnost.Preferably, a portable virtual machine is a stacking machine because it delivers speed in performance and compactness.

Predloženi izum zagotavlja tudi terminal, ki obsega prvo pripravo za izvajanje transakcije z drugo pripravo, pri Čemer je vsaj ena izmed omenjene prve priprave in omenjene druge priprave kartica z integriranim vezjem, ki obsega; prenosen virtualni stroj, ki tolmači računalniški program na omenjeni prvi pripravi, pri čemer omenjeni prenosni virtualni stroj obsega virtualni mikroprocesor in gonilnik za vsaj eno vhodno/izhodno pripravo in izvajalno sredstvo, ki se odziva na omenjeni tolmačeni program za izvajanje omenjenega programa.The present invention also provides a terminal comprising a first device for carrying out a transaction with a second device, wherein at least one of said first device and said second device is an integrated circuit card comprising; a portable virtual machine that interprets a computer program at said first preparation, said portable virtual machine comprising a virtual microprocessor and a driver for at least one input / output device and a executing agent that responds to said interpreted program for executing said program.

Predloženi izum zagotavlja tudi neodvisno prenosno inteligentno kartico, ki vključuje prvo pripravo za izvajanje transakcije z drugo pripravo, pri čemer omenjena inteligenčna kartica obsega: prenosen virtualni stroj, ki obsega virtualni mikroprocesor in gonilnik za vsaj eno vhodno/izhodno pripravo.The present invention also provides an independent portable intelligent card comprising a first device for performing a transaction with a second device, said intelligent card comprising: a portable virtual machine comprising a virtual microprocessor and a driver for at least one input / output device.

Predloženi izum zagotavlja tudi sistem za upravljanje transakcije, ki obsega: prvo pripravo in drugo pripravo, pri čemer sta prva priprava in druga priprava prilagojeni za komunikacijo druga z drugo in je vsaj ena izmed omenjene prve priprave in druge priprave kartica z integriranim vezjem; omenjena druga priprava vključuje sredstvo za zagotavljanje vsaj enega programskega navodila, ki lahko vsaj modificira obnašanje med izvajanjem računalniškega programa na omenjeni prvi pripravi; omenjena prva priprava obsega virtualni stroj, pri čemer virtualni stroj obsega sredstvo za nalaganje in tolmačenje omenjenega računalniškega programa in je omenjeno sredstvo za nalaganje in tolmačenje nadalje prilagojeno za nalaganje in tolmačenje omenjenega vsaj enega programskega navodila odvisno od vnaprej določenega varnostnega pogoja, potem ko je omenjeno sredstvo za nalaganje in tolmačenje naložilo omenjeni računalniški program in medtem ko omenjeni računalniški program teče; izvajalno sredstvo za izvajanje omenjenega naloženega in tolmačenega računalniškega programa z omenjenim modificiranim obnašanjem v odgovor na omenjeno naloženo in tolmačeno programsko navodilo.The present invention also provides a transaction management system comprising: a first device and a second device, the first device and the second device being adapted to communicate with each other, and at least one of said first device and the second device is an integrated circuit card; said second device includes a means of providing at least one program instruction that can at least modify the behavior while executing the computer program on said first device; said first preparation comprises a virtual machine, wherein the virtual machine comprises means for downloading and interpreting said computer program, and said means for downloading and interpreting being further adapted for loading and interpreting said at least one program instruction depending on a predetermined security condition after said downloading and interpreting means downloaded said computer program and while said computer program is running; executing means for executing said downloaded and interpreted computer program with said modified behavior in response to said downloaded and interpreted program instruction.

Nadalje predloženi izum zagotavlja terminal, ki obsega prvo pripravo za izvajanje transakcije z drugo pripravo in vsaj eno izmed omenjenih prve priprave in druge priprave, ki je kartica z integriranim vezjem, pri čemer druga priprava vključuje sredstvo za zagotavljanje vsaj enega programskega navodila, ki lahko vsaj modificira obnašanje med izvajanjem računalniškega programa na omenjeni prvi pripravi; omenjeni terminal obsega: omenjeno prvo pripravo, ki vključuje virtualni stroj, pri čemer omenjeni virtualni stroj obsega sredstvo za nalaganje in tolmačenje omenjenega računalniškega programa in je sredstvo za nalaganje in tolmačenje nadalje prilagojeno nalaganju in tolmačenju omenjenega vsaj enega programskega navodila v odvisnosti od vnaprej določenega varnostnega pogoja, potem ko je omenjeno sredstvo za nalaganje in tolmačenje naložilo omenjeni računalniški program in medtem ko omenjeni računalniški program teče; in izvajalno sredstvo za izvajanje omenjenega naloženega in tolmačenega računalniškega programa z omenjenim modificiranim obnašanjem v odgovor na omenjeno naloženo in tolmačeno programsko navodilo.The present invention further provides a terminal comprising a first device for conducting a transaction with a second device and at least one of said first devices and a second device being an integrated circuit card, the second device including means for providing at least one program instruction that can at least modifies the behavior while executing a computer program on said first preparation; said terminal comprising: said first device including a virtual machine, said virtual machine comprising means for loading and interpreting said computer program and means for loading and interpreting further adapted to download and interpret said at least one program instruction depending on a predetermined security conditions after said loading and interpreting means has been downloaded by said computer program and while said computer program is running; and an executable means for executing said loaded and interpreted computer program with said modified behavior in response to said loaded and interpreted program instruction.

Predloženi izum zagotavlja neodvisno prenosno inteligentno kartico, ki vključuje prvo pripravo za izvajanje transakcije z drugo pripravo, pri čemer druga priprava vključuje sredstvo za zagotavljanje vsaj enega programskega navodila, ki je zmožno vsaj modificiranja obnašanja med izvajanjem računalniškega programa na omenjeni prvi pripravi, pri Čemer omenjena inteligentna kartica obsega: omenjeno prvo pripravo, ki vključuje virtualni stroj in omenjeni virtualni stroj obsega sredstvo za nalaganje in tolmačenje omenjenega računalniškega programa, pri čemer je omenjeno sredstvo za nalaganje in tolmačenje nadalje prilagojeno za nalaganje in tolmačenje omenjenega vsaj enega programskega navodila odvisno od vnaprej določenega varnostnega pogoja, potem ko je omenjeno sredstvo za nalaganje in tolmačenje naložilo omenjeni računalniški program in je med tem računalniški program tekel; izvajalno sredstvo za izvajanje omenjenega naloženega in tolmačenega računalniškega programa z omenjenim modificiranim obnašanjem v odziv na omenjeno naloženo in tolmačeno programsko navodilo.The present invention provides an independent portable intelligent card comprising a first device for performing a transaction with a second device, the second device including a means for providing at least one program instruction capable of at least modifying the behavior while executing a computer program on said first device, wherein said intelligent card comprises: said first device comprising a virtual machine and said virtual machine comprising means for loading and interpreting said computer program, said means for loading and interpreting being further adapted for loading and interpreting said at least one program instruction depending on a predetermined a security condition after said uploader and interpreter downloaded said computer program while the computer program was running; executing means for executing said downloaded and interpreted computer program with said modified behavior in response to said downloaded and interpreted program instruction.

Predloženi izum zagotavlja tudi transakcijski sistem za izvajanje transakcij med prvo pripravo in drugo pripravo, pri čemer omenjeni sistem obsega; virtualni stroj za tolmačenje uporabniku prilagojenih zlogovnih kodnih žetonov, ki se uporabljajo pri njem;The present invention also provides a transaction system for performing transactions between the first preparation and the second preparation, said system comprising; a virtual machine for interpreting user-generated syllable code chips used in it;

omenjeni virtualni stroj vključuje virtualno procesno enoto in bralno/pisalni logični naslovni prostor; vsaj en prvi uporabni program vključuje navedbo obsega bralno/pisalnega logičnega naslovnega prostora, ki je potreben za njegovo izvajanje, pri čemer je omenjeni vsaj en prvi uporabni program zapisan kot tok žetonov, ki so izbrani iz omenjenega nabora žetonov in ustreznih vrinjenih podatkov; omenjeni virtualni stroj tudi vključuje; nalagalnik za nalaganje omenjenega vsaj enega prvega uporabnega programa; in sredstvo za dodeljevanje prve količine bralno/pisalnega logičnega naslovnega prostora posebno za omenjeni vsaj en prvi aplikacijski program v skladu z omenjeno navedbo, pri čemer je omenjeni prirejeni bralno/zapisovanje logični naslovni prostor opredelil in zaščitil meje. Prva priprava v skladu s predloženim izumom je lahko osebni računalnik, kije priključen na internet in poganja brskalnik, pri čemer zahteva, da vsak modul, ki ga sprejme brskalnik mora obsegati navedbo njegovih zahtev po pomnilniku, izboljšuje varnost brskalnika in omejuje poškodbe do katerih lahko pride zaradi kakega virusa, ki je vsebovan v uvoženem modulu.said virtual machine includes a virtual processing unit and a read / write logical address space; at least one first utility includes an indication of the amount of read / write logical address space required to execute it, said at least one first utility being written as a stream of tokens selected from said set of tokens and corresponding interrupted data; said virtual machine also includes; a downloader for downloading said at least one first utility; and means for allocating the first amount of read / write logical address space specifically for said at least one first application program according to said indication, wherein said adapted read / write logical address space defines and protects the boundaries. The first preparation according to the present invention may be a personal computer connected to the Internet and powered by the browser, requiring that each module received by the browser must include an indication of its memory requirements, improve browser security and limit the damage that may occur because of any virus contained in the imported module.

Predloženi izum zagotavlja terminal, ki obsega prvo pripravo za izvajanje transakcij z drugo pripravo, pri čemer omenjena prva priprava obsega: virtualni stroj za tolmačenje nabora uporabniku prilagojenih zlogovnih kodnih žetonov, ki so uporabljeni pri njem; omenjeni virtualni stroj vključuje virtualno procesno enoto in bralno/pisalni logični naslovni prostor; vsaj en prvi uporabniški program vključuje navedbo količine bralno/pisalnega logičnega naslovnega prostora, kije potreben za njegovo izvajanje, in prvi izključni izpisek vsaj ene funkcije, ki se lahko izvozi drugim uporabniškim programom, pri čemer je omenjeni vsaj en prvi uporabniški program napisan kot tok žetonov, ki so izbrani iz omenjenega nabora žetonov in ustrezajočih vrinjenih podatkov; omenjen virtualni stroj tudi vključuje: nalagalnik za nalaganje omenjenega vsaj enega prvega uporabniškega programa; in sredstvo za prirejanje prve količine bralno/pisalnega logičnega naslovnega prostora posebno za omenjeni vsaj en prvi uporabniški program v skladu z omenjeno navedbo, pri čemer je omenjeni prirejeni bralno/pisalni logični naslovni prostor opredelil in zaščitil meje.The present invention provides a terminal comprising a first device for performing transactions with a second device, said first preparation comprising: a virtual machine for interpreting a set of user-defined syllable code tokens used therein; said virtual machine includes a virtual processing unit and a read / write logical address space; at least one first application includes an indication of the amount of read / write logical address space required to execute it, and a first exclusive statement of at least one function that can be exported to other user programs, said at least one first user program being written as a token stream which are selected from said set of tokens and corresponding interrupt data; said virtual machine also includes: a downloader for downloading said at least one first application program; and means for arranging the first amount of read / write logical address space specifically for said at least one first application program according to said indication, said bound read / write logical address space defining and protecting boundaries.

Predloženi izum lahko zagotavlja tudi neodvisno prenosno inteligentno kartico, ki vključuje prvo pripravo za izvajanje transakcije z drugo pripravo, pri čemer prva priprava obsega: virtualni stroj za tolmačenje nabora uporabniku prilagojenih zlogovnih kodnih žetonov, ki se uporabljajo zanj; omenjeni virtualni stroj, ki vključuje virtualno procesno enoto in bralno/pisalni logični naslovni prostor; vsaj en prvi uporabniški program, ki vključuje navedbo količine bralno/pisalnega logičnega naslovnega prostora, kije potreben za njegovo izvajanje, pri čemer je omenjeni vsaj en prvi uporabniški program zapisan kot tok žetonov, ki so izbrani iz omenjenega nabora žetonov in ustreznih vrinjenih podatkov; omenjeni virtualni stroj tudi vključuje: nalagalnik za nalaganje omenjenega vsaj enega prvega uporabniškega programa; in sredstvo za dodeljevanje prve količine bralno/pisalnega logičnega naslovnega prostora, posebno za omenjeni vsaj prvi uporabniški program v skladu z omenjeno navedbo, pri čemer je omenjeni bralno/pisalni logični naslovni prostor opredelil in zaščitil meje.The present invention may also provide an independent portable intelligent card comprising a first device for performing a transaction with a second device, the first preparation comprising: a virtual machine for interpreting a set of user-defined syllable code tokens used for it; said virtual machine comprising a virtual processing unit and a read / write logical address space; at least one first application program including an indication of the amount of read / write logical address space required to execute it, said at least one first application program being recorded as a stream of tokens selected from said set of tokens and corresponding interrupted data; said virtual machine also includes: a downloader for downloading said at least one first application program; and means for allocating the first amount of read / write logical address space, especially for said at least the first application program according to said indication, wherein said read / write logical address space defines and protects the boundaries.

Predloženi izum prav tako lahko zagotavlja transakcijski sistem za izvajanje transakcij med prvo pripravo in drugo priprav, pri čemer je vsaj ena izmed omenjene prve priprave in druge priprave kartica z integriranim vezjem, pri čemer omenjeni sistem obsega: virtualni stroj za tolmačenje nabora uporabniku prilagojenih zlogovnih kodnih žetonov, ki se uporabljajo zanj; omenjeni virtualni stroj vključuje virtualno procesno enoto in bralno/pisalni logični naslovni prostor; vsaj ena podatkovna baza vključuje vsaj en zapis in vsaj en računalniški program za izvajanje z omenjenim virtualnim strojem, pri čemer je računalniški program zapisan v modulih s pomočjo toka omenjenih žetonov, ki so izbrani iz omenjenega nabora, in vključuje navedbo količine neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki je potreben za izvajanje omenjenega modula; nalagalnik za nalaganje omenjenega modula in za dodeljevanje zahtevane količine neinicializiranega logičnega naslovnega prostora v skladu z omenjeno navedbo; in sredstvo za dostop do zapisa omenjene podatkovne baze, pri čemer so zapisi v omenjeni podatkovni bazi dostopni le preko omenjenega modula in omenjeno dostopno sredstvo zagotavlja okno na omenjeni zapis omenjene podatkovne baze in kopira omenjeni zapis v predel omenjenega neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki se lahko naslovi z omenjenim uporabniškim programom.The present invention may also provide a transaction system for performing transactions between the first preparation and the second preparation, at least one of said first preparation and the second preparation being an integrated circuit card, said system comprising: a virtual machine for interpreting a set of user-adapted syllable codes tokens used for it; said virtual machine includes a virtual processing unit and a read / write logical address space; at least one database includes at least one record and at least one computer program to execute with said virtual machine, the computer program being written in modules by the stream of said tokens selected from said set, and includes an indication of the amount of uninitialized read / write logical the address space required to implement said module; a loader for loading said module and for assigning the required amount of uninitialized logical address space according to said indication; and means for accessing the record of said database, wherein the records in said database are accessible only through said module and said access means providing a window to said record of said database and copying said record to a portion of said uninitialized read / write logical address space, which may be addressed by said application.

Nadalje lahko predloženi izum zagotavlja tudi terminal, ki obsega prvo pripravo za izvajanje transakcij z drugo pripravo, pri čemer je vsaj ena izmed omenjene prve priprave in druge priprave kartica z integriranim vezjem, pri čemer omenjena prva priprava obsega: virtualni stroj za tolmačenje nabora uporabniku prilagojenih zlogovnih kodnih žetonov, ki se uporabljajo zanj; omenjeni virtualni stroj vključuje virtualno procesno enoto in bralno/pisalni logični naslovni prostor; vsaj eno podatkovno bazo, ki vključuje vsaj en zapis in vsaj en računalniški program za izvajanje z omenjenim virtualnim strojem, pri čemer je omenjeni računalniški program napisan v modulih s pomočjo toka žetonov, ki so izbrani iz omenjenega nabora, in vključuje navedbo količine neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki je potreben za izvajanje omenjenega modula; nalagalnik za nalaganje omenjenega modula in za dodeljevanje zahtevane količine neinicializiranega logičnega naslovnega prostora v skladu z omenjeno navedbo; in sredstvo za dostop do zapisa v omenjeni podatkovni bazi, pri čemer so zapisi v omenjeni podatkovni bazi dostopni le preko omenjenega modula, in omenjeno dostopno sredstvo zagotavlja okno na tekoči zapis omenjene podatkovne baze in kopiranje omenjenega zapisa na predelu omenjenega neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki se naslovi z omenjenim uporabniškim programom.Furthermore, the present invention may also provide a terminal comprising a first device for performing transactions with a second device, wherein at least one of said first device and the second device is an integrated circuit card, said first device comprising: a virtual machine for interpreting a set of user customized ones. syllable code tokens used for it; said virtual machine includes a virtual processing unit and a read / write logical address space; at least one database comprising at least one record and at least one computer program for execution with said virtual machine, said computer program being written in modules using a stream of tokens selected from said set and including an indication of the amount of uninitialized read / the written logical address space required to execute said module; a loader for loading said module and for assigning the required amount of uninitialized logical address space according to said indication; and a means of accessing a record in said database, wherein the records in said database are accessible only through said module, and said access means providing a window to the current record of said database and copying said record to a portion of said uninitialized read / write logical address space that is addressed by said application.

Predloženi izum lahko zagotovi neodvisno prenosno inteligentno kartico, ki vključuje prvo pripravo za izvajanje transakcije z drugo pripravo, pri čemer prva priprava obsega: virtualni stroj za tolmačenje nabora uporabniku prilagojenih zlogovnih kodnih žetonov, ki se uporabljajo zanj; omenjeni virtualni stroj vključuje virtualno procesno enoto in bralno/pisalni logični naslovni prostor; vsaj eno podatkovno bazo, ki vključuje vsaj en zapis in vsaj en računalniški program za izvajanje z omenjenim virtualnim strojem, pri čemer je računalniški program zapisan v modulih s pomočjo toka žetonov, ki so izbrani iz omenjenega nabora, in vključuje navedbo količine neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki je potreben za izvajanje omenjenega modula; nalagalnik za nalaganje omenjenega modula in za dodeljevanje zahtevane količine neinicializiranega logičnega naslovnega prostora v skladu z omenjeno navedbo; in sredstvo za dostop do zapisa v omenjeni podatkovni bazi, pri čemer so zapisi v omenjeni podatkovni bazi dostopni le preko omenjenega modula in omenjeno dostopno sredstvo zagotavlja okno na omenjeni zapis omenjene podatkovne baze in kopira omenjeni zapis v predel omenjenega neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki se lahko naslovi z omenjenim uporabniškim programom.The present invention may provide an independent portable intelligent card comprising a first device for performing a transaction with a second device, the first preparation comprising: a virtual machine for interpreting a set of user-defined syllable code tokens used for it; said virtual machine includes a virtual processing unit and a read / write logical address space; at least one database comprising at least one record and at least one computer program for execution with said virtual machine, the computer program being written in modules using a stream of tokens selected from said set and including the amount of uninitialized read / write the logical address space required to execute said module; a loader for loading said module and for assigning the required amount of uninitialized logical address space according to said indication; and a means of accessing a record in said database, wherein the records in said database are accessible only through said module and said access means providing a window to said record of said database and copying said record to a portion of said uninitialized read / write logical address space , which can be addressed by said application.

Predloženi izum zagotavlja tudi postopek za izvajanje transakcije med prvo pripravo in drugo pripravo, pri čemer vsaj ena izmed omenjenih prve priprave in druge priprave je kartica z integriranim vezjem in vključuje: zagotavljanje vsaj enega programskega navodila na omenjeni drugi pripravi, ki lahko vsaj modificira obnašanje med izvajanjem računalniškega programa na omenjeni prvi pripravi; nalaganje in tolmačenje omenjenega računalniškega programa, nalaganje in tolmačenje omenjenega vsaj enega programskega navodila v odvisnosti od vnaprej določenega varnostnega pogoja, medtem ko omenjeni računalniški program teče; in izvajanje omenjenega naloženega in tolmačenega računalniškega programa z omenjenim modificiranim obnašanjem v odgovor na omenjeno naloženo in tolmačeno programsko navodilo.The present invention also provides a method for performing a transaction between a first device and a second device, wherein at least one of said first devices and the second device is an integrated circuit card and includes: providing at least one program instruction on said second device that can at least modify the behavior between executing a computer program on said first preparation; downloading and interpreting said computer program, downloading and interpreting said at least one program instruction depending on a predetermined security condition while said computer program is running; and executing said downloaded and interpreted computer program with said modified behavior in response to said downloaded and interpreted program instruction.

Predloženi izum zagotavlja tudi postopek za izvajanje transakcije med prvo pripravo in drugo pripravo, ki obsega: tolmačenje vsaj enega uporabniškega programa, ki je napisan kot tok zlogovnih kodnih žetonov, ki so izbrani iz nabora žetonov in ustreznih vrinjenih podatkov; nalaganje omenjenega vsaj enega uporabniškega programa; dodeljevanje prve količine bralno/pisalnega logičnega naslovnega prostora posebej za omenjeni vsaj en uporabniški program v skladu z navedbo, ki je vsebovana v omenjenem uporabniškem programu za količino bralno/pisalnega logičnega naslovnega prostora, ki je potreben za njegovo izvajanje, in opredeljevanje ter ščitenje mej omenjenega dodeljenega bralno/pisalnega logičnega naslovnega prostora. Ta postopek združuje uporabo tolmača z dodeljevanjem in po izbiri izrecno sprostitev pomnilnika. To zagotavlja mešanico gibčnosti in prenosnosti, medtem ko se zagotavlja jamstvo med delovanjem, potem ko je bil uporabniški program resno preverjen v prevajalni stopnji. Zmanjšuje poškodbo, ki se lahko povzroči z virusi v vnešenih uporabniških modulih.The present invention also provides a method for performing a transaction between a first preparation and a second preparation, comprising: interpreting at least one application program written as a stream of syllable code tokens selected from the token set and the corresponding interrupted data; downloading said at least one user program; assigning the first amount of read / write logical address space specifically to said at least one application program according to the statement contained in said user program for the amount of read / write logical address space required to execute it, and defining and protecting the boundaries thereof assigned read / write logical address space. This process combines the use of an interpreter with the allocation and optionally explicit memory release. This provides a mixture of agility and portability while providing a guarantee of performance after the application program has been seriously verified in the translation stage. Reduces the damage that can be caused by viruses in the entered user modules.

Predloženi izum vključuje tudi postopek za izvedbo transakcijskega sistema med prvo pripravo in drugo pripravo, pri čemer je vsaj ena izmed omenjene prve priprave in druge priprave kartica z integriranim vezjem, ki obsega: tolmačenje žetonov v modulu, ki je napisan z izrazi toka omenjenih žetonov, ki so izbrani iz nabora žetonov; dodeljevanje količine neinicializiranega logičnega naslovnega prostora v skladu z navedbo v omenjenem modulu količine neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki je potreben za izvajanje omenjenega modula; dostop do zapisa v podatkovni bazi z zagotavljanjem okna na tekočem zapisu omenjene podatkovne baze, pri čemer so zapisi v podatkovni bazi le preko omenjenega modula, in kopiranje omenjenega zapisa na del omenjenega neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki je nastavljiv s strani tega modula.The present invention also includes a method for executing a transaction system between a first draw and a second draw, wherein at least one of said first draw and second draw is an integrated circuit card comprising: interpreting tokens in a module written with expressions of the flow of said tokens, selected from a set of tokens; allocating the amount of uninitialized logical address space according to the indication in said module of the amount of uninitialized read / write logical address space required to execute said module; accessing the record in the database by providing a window on the current record of said database, the records being in the database only via said module, and copying said record to a portion of said uninitialized read / write logical address space configurable by this module .

Predloženi izum vključuje tudi postopek za izvajanje transakcije med prvo pripravo in drugo pripravo, pri čemer je vsaj ena izmed omenjene prve priprave in druge priprave kartica z integriranim vezjem in obsega: zagotavljanje prenosnega virtualnega stroja, ki obsega virtualni mikroprocesor in gonilnik za vsaj eno vhodno/izhodno pripravo; tolmačenje računalniškega programa na omenjeni prvi pripravi ob uporabi omenjenega prenosnega virtualnega stroja; in izvajanje omenjenega programa v odgovor na omenjeni tolmačeni program.The present invention also includes a method for performing a transaction between a first device and a second device, wherein at least one of said first device and the second device is an integrated circuit card and comprises: providing a portable virtual machine comprising a virtual microprocessor and a driver for at least one input / output preparation; interpreting a computer program on said first device using said portable virtual machine; and executing said program in response to said interpreted program.

V skladu s predloženim izumom je zagotovljen varen sistem za upravljanje transakcij, ki prednostno vključuje prenosen virtualni mikroprocesor. Prednostno vsak modul poseduje nabor virtualnih nastavnih prostorov, ki so zanesljivo različni od kateregakoli drugega virtualnega nastavnega prostora. Prav tako prenosni virtualni mikroprocesor prednostno ščiti dostop do skupnih virov, kot so različni skladi ali podatkovne baze. Prednostno je najmanjša zaščita v tem, da pomnilnik preverja meje dostopa do podatkovnega prostora glede branja in pisanja in absolutne prepovedi pisanja v kodni prostor. Nadalje je prednostno preverjanje za podkoračitve in prelive na podatkih in povratnih skladih. Prednostno lahko modul dostopi le do tega, kar kak drugi modul izrecno izvozi. Prednostno ni načina, da bi se lahko dostopilo do neizvoženih podatkov (virtualni mikroprocesor ne pušča), razen preko funkcij, ki so zagotovljene z modulom. Moduli prednostno ne morejo izvažati podatkov v običajnem smislu; moduli lahko prednostno izvažajo le funkcije. Prednostno logične meje prepovedujejo puščanje podatkovnega prostora. Z drugimi besedami, vsi podatki, ki jih ima modul, so prednostno strogo zasebni. Ta omejitev je prednostno uveljavljena tako med časom prevajanja kot med časom delovanja, saj imajo moduli ločene naslovne prostore, kar pomeni, da je naslov posameznih podatkov znotraj določenega modula povsem brez pomena izven njihovega lastnega modula. Prednostno lahko modul le izvaža nabor kljuk, da se sproži ali zadrži določeno obnašanje. Prednostno bodo dobro delujoči moduli tekli brez pripomb, medtem ko bodo moduli, ki nimajo dobrega obnašanja, zavrženi, z izjemami neposredno podanimi s prenosnim virtualnim mikroprocesorjem, ko se poskuša nedovoljena operacija.According to the present invention, a secure transaction management system is provided, which preferably includes a portable virtual microprocessor. Preferably, each module has a set of virtual setups that are reliably different from any other virtual setup space. Also, a portable virtual microprocessor preferentially protects access to shared resources, such as different funds or databases. Preferably, the minimum security is that the memory checks the read-write access boundaries of the data space and the absolute prohibition of writing to the code space. Further, checking for overlaps and overlaps on data and backfill is preferred. Preferably, the module can only access what any other module explicitly exports. Preferably, there is no way to access the non-exported data (the virtual microprocessor does not leak) except through the functions provided by the module. Preferably, modules cannot export data in the normal sense; modules can preferentially export functions only. Preferably, logical boundaries prohibit data space leaks. In other words, all data held by the module is preferably strictly private. This restriction is preferentially enforced both during compile time and during runtime, since the modules have separate address spaces, which means that the address of individual data within a particular module is completely meaningless outside their own module. Preferably, the module can only export a set of hooks to initiate or retain a particular behavior. Preferably, well-functioning modules will run without comment, while non-behavioral modules will be discarded, with exceptions directly given by a portable virtual microprocessor when unauthorized operation is attempted.

Odvisni zahtevki opredeljujejo posamezne izvedbene primere predloženega izuma. Predloženi izum, njegovi izvedbeni primeri in prednosti bodo sedaj opisani z ozirom na naslednje risbe.Dependent claims identify individual embodiments of the present invention. The present invention, its embodiments and advantages will now be described with reference to the following drawings.

Kratek opis risbBrief description of the drawings

Sl. 1 je shematska predstavitev terminala v skladu s predloženim izumom.FIG. 1 is a schematic representation of a terminal according to the present invention.

Sl. 2 je shematska predstavitev ICC v skladu s predloženim izumom.FIG. 2 is a schematic representation of the ICC according to the present invention.

Sl. 3 je shematski diagram poteka za postopek razvijanja in izvajanja modula v skladu s predloženim izumom.FIG. 3 is a schematic flowchart for the process of developing and executing a module according to the present invention.

Sl. 4 je shematska predstavitev prenosnega navpičnega mikroprocesorja v skladu s predloženim izumom, kot se izvede na terminalu.FIG. 4 is a schematic representation of a portable vertical microprocessor according to the present invention as performed at a terminal.

Sl. 5 je shematska predstavitev prenosnega navpičnega mikroprocesorja v skladu s predloženim izumom.FIG. 5 is a schematic representation of a portable vertical microprocessor according to the present invention.

Sl. 6 je shematska predstavitev modula, ki je naložen v pomnilnik v skladu s predloženim izumom.FIG. 6 is a schematic representation of a module loaded in memory according to the present invention.

Sl. 7 je shematska predstavitev postopka pridobivanja dostopa do zapisa podatkovne baze v skladu s predloženim izumom.FIG. 7 is a schematic representation of a process for gaining access to a database record according to the present invention.

Sl. 8 je shematska predstavitev postopka vtiča in vtičnice v skladu s predloženim izumom.FIG. 8 is a schematic representation of a plug and socket process according to the present invention.

Sl. 9 je diagram poteka za postopek nalaganja modula po predloženem izumu.FIG. 9 is a flowchart for the module loading process of the present invention.

Sl. 10 je diagram poteka za postopek izvajanja modula po predloženem izumu.FIG. 10 is a flowchart for implementing a module of the present invention.

Sl. 11 je diagram poteka za postopek vtikanja vtiča v vtičnico po predloženem izumu. Sl. 12 je diagram poteka za postopek nalaganja kartičnega modula v skladu s predloženim izumom.FIG. 11 is a flowchart for the plug-in process of the socket according to the present invention. FIG. 12 is a flowchart for loading a card module in accordance with the present invention.

Dodatek podaja žetonske kode in standardne izjeme.The add-on specifies the token codes and standard exceptions.

Opis značilnih izvedbenih primerovDescription of typical implementation examples

Predloženi izum bo v nadaljnjem opisan ob sklicevanju na posamezne risbe in določene izvedbene primere, vendar izum ni omejen nanje temveč le s patentnimi zahtevki. Risbe so le shematične in niso omejujoče. Predloženi izum bo opisan z ozirom na finančne transakcije, vendar izum ni omejen nanje. Nadalje bo predloženi izum opisan predvsem glede na terminal, toda predloženi izum vključuje tudi zagotavljanje prenosnega virtualnega mikroprocesorja v skladu s predloženim izumom na katerikoli primerni pripravi, npr. na osebnem računalniku (PC), na ICC ali na kombiniranih ICC in vmesniku, kot je opisano v WO 94/10657, ki je s tem vključena kot referenca.The present invention will be hereinafter described with reference to the individual drawings and specific embodiments, but the invention is not limited thereto but only by the claims. The drawings are merely schematic and not restrictive. The present invention will be described with reference to financial transactions, but the invention is not limited thereto. Further, the present invention will be described primarily with respect to the terminal, but the present invention also includes providing a portable virtual microprocessor according to the present invention in any suitable device, e.g. on a personal computer (PC), on an ICC, or on a combination ICC and interface as described in WO 94/10657, which is hereby incorporated by reference.

Splošna povezujoča tehnična zamisel za predloženim izumom je prenosnost, ki je povezana z varnostjo podatkov in jamstvi med delovanjem pri transakcijskem sistemu, ki so neodvisni od ciljne izvedbe, če so le bile preverbe med časom prevajanja uspešno zaključene. Ta zamisel se doseže z eno ali več naslednjimi značilnostmi: uporabo virtualnega stroja kot tolmača, vključevanjem gonilnika za I/O priprave v virtualnem stroju, tako da imajo uporabniški programi skupen vmesnik z I/O pripravami in so zato prenosni preko zelo razlikujočih se okolij, vključevanjem navedbe količine prostora v uporabniški program in dodeljevanjem pomnilnika v skladu s to navedbo, eksplicitnim sproščanjem pomnilnika in zagotavljanjem varnega načina vnašanja in iznašanja podatkov v in iz uporabniških programov in/ali podatkovnih baz.A general binding technical idea behind the present invention is portability, which is related to data security and guarantees during operation of the transaction system that are independent of the intended execution, provided that only checks during the translation time have been successfully completed. This idea is achieved by one or more of the following characteristics: using a virtual machine as an interpreter, integrating an I / O device driver in a virtual machine so that the application programs have a common interface with the I / O devices and are therefore portable across very different environments, by including an indication of the amount of space in the application program and allocating memory according to that indication, explicit memory allocation and providing a secure method for entering and exporting data to and from the application programs and / or databases.

Sl. 1 je shematičen prikaz terminala 1 v skladu s predloženim izumom. Značilno terminal 1 vključuje centralno procesorsko enoto (CPU) 2, ki je povezana s pomnilnikom 4 in z vhodno/izhodnimi (I/O) pripravami 6 preko vodila 3 za dvosmerno komunikacijo. I/O priprave 6 so lahko tipkovnica za vnašanje podatkov in zaslon, kot je npr. vizualna prikazovalna enota, npr. tekočekristalna (LCD) ali zaslon s svetlečimi diodami (LED) za prikazovanje napredovanja transakcije in/ali prikazovanje sporočil ali pozivov. Ena izmed I/O priprav 6 je lahko kartični bralnik 7, s katerim se lahko bere ICC 5, ko je vstavljena v sprejemno režo v bralniku 7. Dejanska oblika terminala se lahko zelo spreminja, npr. je lahko terminal na prodajnem mestu (POS) in lahko vključuje procesorje od procesorja Intel 8051 do procesorja Pentium™. Nadalje ni potrebno, da je ves terminal 1 nameščen na enem mestu, različni deli terminala, kot so kartični bralnik 7, I/O priprave, kot so tipkovnica in prikazovalnik, in procesor so lahko nameščeni na različnih mestih in povezani s kabli, brezžičnim prenosom ali podobnim ali pa so del omrežja v lokalnem področju ali pa so medsebojno povezani s telekomunikacijskimi omrežji.FIG. 1 is a schematic view of a terminal 1 according to the present invention. Typically, terminal 1 includes a central processing unit (CPU) 2 that is connected to the memory 4 and to the input / output (I / O) devices 6 via bus 3 for bidirectional communication. The I / O devices 6 can be a keyboard for data input and a display, such as. visual display unit, e.g. liquid crystal (LCD) or light emitting diode (LED) display to show transaction progress and / or display messages or prompts. One of the I / O devices 6 may be a card reader 7 that can read the ICC 5 when inserted into the receiving slot in the reader 7. The actual shape of the terminal may vary greatly, e.g. it can be a point of sale (POS) terminal and can include processors from an Intel 8051 processor to a Pentium ™ processor. Furthermore, it is not necessary to have the entire terminal 1 in one place, different parts of the terminal, such as card reader 7, I / O devices such as keyboard and display, and the processor can be installed in different places and connected by cables, wireless transmission or similar, or part of a local area network or interconnected with telecommunications networks.

Sl. 2 je shematična predstavitev ICC 5 v skladu s predloženim izumom. Predloženi izum pa ni omejen na to. ICC 5 vključuje vsaj ena vhodno/izhodna (I/O) vrata 10 in nekaj trajnih pomnilnikov, npr. obstojen pomnilnik, ki je lahko npr. zagotovljen z EEPROM 15, ki je priključen na I/O vrata 10 preko vodila 17, ali z baterijsko podprtim bralno/pisalnim pomnilnikom (RAM). I/O vrata 10 se lahko uporabljajo za komunikacijo s terminalom 1 preko kartičnega bralnika 7. Kartica z integriranim vezjem je kartica, v katero je vstavljeno eno ali več integriranih vezij, da izvajajo vsaj pomnilniške funkcije. Po izbiri je ICC 5 lahko neodvisna prenosna inteligentna kartica in vključuje bralno/pisalni delovni pomnilnik, npr. neobstojen pomnilnik, ki je zagotovljen z RAM 14, in centralni procesor 12 kot tudi vsa potrebna vezja, tako da kartica ICC 5 lahko deluje kot mikroprocesor, npr. bralni pomnilnik 13 za shranjevanje kode, časovnik 16 zaporedij v povezavi s kartičnim bralnikom 7 za sprejemanje napetostnih virov Vss in VDD, ponovno nastavitev za procesor 12 in uro CLK za časovnik 16 zaporedij. V skladu s predloženim izumom se ICC 5 lahko uporablja kot bančna kartica, kreditna kartica, dolžniška kartica, elektronska denarnica, zdravstvena kartica, SIM kartica ali podobno.FIG. 2 is a schematic representation of ICC 5 according to the present invention. However, the present invention is not limited thereto. ICC 5 includes at least one input / output (I / O) port 10 and some permanent memory, e.g. Existing memory that can be e.g. provided with an EEPROM 15 that is connected to the I / O port 10 via bus 17, or with battery-operated read / write memory (RAM). The I / O port 10 can be used to communicate with terminal 1 through a card reader 7. An integrated circuit card is a card into which one or more integrated circuits are inserted to perform at least memory functions. Optionally, ICC 5 may be an independent portable intelligent card and include read / write working memory, e.g. the non-existent memory provided by RAM 14 and the CPU 12 as well as all the necessary circuits so that the ICC 5 card can act as a microprocessor, e.g. read memory 13 for storing code, a timer 16 sequences in conjunction with a card reader 7 for receiving voltage sources Vss and VDD, reset for processor 12 and CLK clock for timer 16 sequences. According to the present invention, ICC 5 can be used as a bank card, credit card, debt card, electronic wallet, medical card, SIM card or the like.

Predloženi izum zagotavlja sistem za vodenje transakcije, ki je nadzarovana z integriranim vezjem, ki naj se izvaja med ICC 5 in terminalom 1, kije priključen ali ni priključen na centralno enoto, pri čemer transakcija obstoji iz vsaj enega izvajanja iz naslednjega zaporedja;The present invention provides a transaction management system controlled by an integrated circuit to be implemented between ICC 5 and terminal 1, which is or is not connected to a central unit, the transaction consisting of at least one implementation in the following sequence;

1. tvorjenje komunikacijske povezave med ICC 5 in terminalom 1;1. forming a communication link between ICC 5 and terminal 1;

2. izvajanje preveijanja kompatibilnosti, da se zagotovi, da sta ICC 5 in terminal 1 mehansko in električno kompatibilna;2. performing compatibility checks to ensure that ICC 5 and terminal 1 are mechanically and electrically compatible;

3. izbor uporabe, ki vključuje izbor računalniškega programa in prirejenega nabora podatkov, ki opredeljuje transakcijo s pomočjo vpletene kombinacije določene ICC 5 in terminala 1;3. use selection involving the selection of a computer program and a customized data set identifying the transaction by means of an involved combination of a particular ICC 5 and terminal 1;

4. izvajanje uporabe;4. implementation of use;

5. končanje transakcije, ki po izbiri vključuje prekinitev komunikacijske povezave med ICC 5 in terminalom 1; pri tem se uporablja tolmač, da se izvaja uporaba, bodisi na ICC 5 ali na terminalu ali na obeh. Transakcija je izmenjava vsaj podatkov med dvema ali več pripravami v skladu s predloženim izumom in ni značilna le za komercialne finančne transakcije. Takšen sistem je poznan iz patentne prijave PCT/BE 95/00017. ICC 5 je lahko le pomnilniška ICC, to se pravi, da ne vključuje procesorja 12, in ICC 5 podvzame transakcijo, kot je določena s terminalom 1. Alternativno pa je lahko ICC neodvisna prenosna inteligentna kartica in transakcija se lahko določi s terminalom 1, z ICC 5 ali z obema. V skladu s predloženim izumom lahko ICC 5 vključuje programsko kodo, da se varno vzpodbudi obdelava na terminalu. Predvsem je ICC 5 lahko ena ali več vzdrževalnih kartic, ki se lahko uporabijo za posodabljanje uporab, ki so shranjene na terminalu 5.5. termination of a transaction which optionally involves breaking the communication link between ICC 5 and terminal 1; an interpreter is used to perform the application, either at ICC 5 or at the terminal or both. A transaction is the exchange of at least data between two or more devices in accordance with the present invention and is not specific to commercial financial transactions. Such a system is known from patent application PCT / BE 95/00017. ICC 5 can only be a memory ICC, that is, it does not include processor 12, and ICC 5 undertakes a transaction as specified by terminal 1. Alternatively, the ICC may be an independent portable intelligent card and the transaction may be determined by terminal 1, with ICC 5 or with both. According to the present invention, ICC 5 may include a program code to safely promote terminal processing. In particular, ICC 5 may be one or more maintenance cards that can be used to update the uses stored on terminal 5.

V skladu s predloženim izumom se programska oprema izvaja na terminalu 1 in po izbiri na ICC 5 s pomočjo virtualnega stroja. Virtualni stroj (VM) v skladu s predloženim izumom eksplicitno daje na razpolago teoretični ali virtualni mikroprocesor s standardnimi značilnostmi, ki opredeljujejo način naslavljanja, uporabo skladov, uporabo registrov, naslovni prostor, naslavljanje I/O priprav itd. na generičen način. Jedro za vsako posebno vrsto CPU, ki se uporablja v terminalu 1 ali ICC 5, je zapisano tako, da povzroči, da ustrezni procesor 2, 12 posnema VM. Gre za poseben vidik predloženega izuma, da jedro za VM zagotavlja gonilnike za I/O priprave in nizkonivojske CPU logične in aritmetične funkcije, nadzor toka in časovno ravnanje. Zagotovitev I/O gonilnikov v VM ima prednost, da katerikoli program, ki je napisan z VM v skladu z predloženim izumom, naslavlja standardne virtualne I/O priprave. Izvedba VM na posameznem CPU nato zagotavlja, da se fizične I/O priprave, ki so priključene na terminal 1 ali ICC 5, obnašajo tako kot naslovljene virtualne I/O priprave. VM v skladu s predloženim izumom je zelo kompakten in je bil uspešno uporabljen na Siemensovem SLC044CR čipu (izpeljanka iz družine INTEL 8051), ki je lahko vključen na ICC 5. VM v skladu s predloženim izumom omogoča visoko stopnjo standardizacije, ki je možna preko zelo različnih CPU in I/O vrst in poenostavlja prenosnost programov, testiranje in potrjevanje. V skladu s predloženo uporabo bo takšen VM opisan kot prenosen virtualni stroj 20. Prenosen VM vključuje virtualni mikroprocesor in gonilnik za I/O pripravo. VM 20 zagotavlja logične in aritmetične funkcije in naslavljanje pomnilnika in na vsaj eno vhodno/izhodno pripravo. Prenosni VM 20 v skladu s predloženim izumom zagotavlja prenosnost programa preko heterogenih terminalov 1 in kartice 5, s tem da obravnava terminalske in/ali kartične programe kot vmesne kode prevajalnika. Ta koda obstoji iz tokov zlogovnih kod, ki se imenujejo žetoni. Terminali 1 ali ICC-ji 5 nato obdelajo to kodo, s tem da jo tolmačijo, ali na drug način tako kot prevajanje lastne strojne kode. Tolmačenje žetonov s strani virtualnega stroja se lahko prednostno doseže z enim izmed treh postopkov: neposredno tolmačenje navodil virtualnega stroja, prevajanje jezika virtualnega stroja v neposredno izvedljivo vmesno obliko ali pravočasno prevajanje v dejansko kodo za ciljno CPU. Zadnja dva postopka nudita izboljšano učinkovitost na račun le zmerne zapletenosti. Žetoni so zagotovljeni v naboru, na katerega se lahko gleda na nabor strojnih navodil za VM 20.According to the present invention, the software is implemented at terminal 1 and optionally at ICC 5 using a virtual machine. According to the present invention, a virtual machine (VM) explicitly makes available a theoretical or virtual microprocessor with standard features that define addressing mode, stack usage, use of registers, address space, addressing I / O devices, etc. in a generic way. The kernel for each particular type of CPU used in terminal 1 or ICC 5 is written to cause the corresponding processor 2, 12 to replicate the VM. It is a particular aspect of the present invention that the VM kernel provides drivers for I / O preparation and low-level CPU logic and arithmetic functions, flow control and timing. Providing I / O drivers in the VM has the advantage that any program written with the VM according to the present invention addresses standard virtual I / O devices. The implementation of the VM on each CPU then ensures that the physical I / O devices attached to Terminal 1 or ICC 5 behave just like the addressed virtual I / O devices. The VM according to the present invention is very compact and has been successfully used on the Siemens SLC044CR chip (derived from the INTEL 8051 family), which can be integrated into the ICC 5. The VM according to the present invention provides a high degree of standardization possible through very various CPU and I / O types and simplifies program portability, testing and validation. According to the application provided, such VM will be described as a portable virtual machine 20. The portable VM includes a virtual microprocessor and an I / O preparation driver. VM 20 provides logical and arithmetic functions and memory addressing and at least one input / output device. The portable VM 20 according to the present invention provides program portability through heterogeneous terminals 1 and card 5 by treating terminal and / or card programs as interpreter codes. This code is made up of syllable code streams called tokens. Terminals 1 or ICCs 5 then process this code by interpreting it or otherwise as translating their own machine code. Preferably, the interpretation of tokens by a virtual machine can be accomplished by one of three processes: direct interpretation of virtual machine instructions, translation of the virtual machine language into a direct executable intermediate format, or timely translation into actual code for the target CPU. The last two procedures offer improved efficiency at the expense of only moderate complexity. The tokens are provided in a set that can be viewed on the VM 20 machine instruction set.

Uporabniški programi v skladu s predloženim izumom so izvedeni kot moduli, ki lahko vključujejo listo žetonov kot izvedljivo kodo. V skladu s predloženim izumom sta dve osnovni vrsti modulov: izvedljivi moduli, ki imajo vstopno točko, ki jo neposredno kliče VM 20, ko je modul naložen in knjižnične module, ki delujejo kot viri za druge module, s tem, da zagotavljajo izvozljive postopke, ki se lahko izvedejo posamič z medmodulnimi klici.The user programs according to the present invention are implemented as modules that may include a token list as executable code. According to the present invention there are two basic types of modules: executable modules having an entry point called directly by VM 20 when the module is loaded and library modules that act as resources for other modules by providing exportable processes, which can be made individually through intermodule calls.

Žeton, nastavljen v skladu s predloženim izumom, najprej vključujejo nabor navodil za VM 20, ki zagotavlja navodila, ki se pričakujejo za splošen obdelovalni jezik in se zahtevajo za učinkovito izvajanje programov, in drugič žetone, ki zagotavljajo, kar se običajno imenuje funkcije operacijskega sistema. V terminalih 1 ali kartici 5 funkcije operacijskega sistema vključujejo v skladu s predloženim izumom specifične funkcije, kot so L/O gonilniki, npr. prikazovalniki ali tipkovnice, in v terminalih 1 in 5 sistemske funkcije lahko tudi vključujejo upravljanje komunikacije podatkovnih objektov in prenosa skozi I/O vrata in tudi mehanizme za medmodulni dostop in nadzor dostopa. Žetoni se prednostno zagotavljajo z operacijskim sistemom na VM za manipulacije s skladi za rokovanje s podnožjem, za nadzor, npr. izjemno rokovanje, za sama podnožja, ki vključujejo njihove pravice dostopa, za dostop do I/O priprave, za razpolaganje s časom, za rokovanjem z jezikom in sporočili, za rokovanje z I/O bralniki, npr. rokovanje z ICC, kartico z magnetnim trakom in modemom, za upravljanje s črno listo, za varnostne algoritme, za terminalske usluge, za usluge s podatkovnimi bazami, za rokovanje s podatkovnimi objekti, npr. TLV rokovanje, za rokovanje z moduli in za rokovanje z razširljivimi pomnilniki.The token set in accordance with the present invention first include a set of instructions for VM 20, which provides the instructions expected for the general processing language and is required for the effective execution of the programs, and second, the tokens that provide what is commonly called operating system features . In terminals 1 or card 5, operating system features include, in accordance with the present invention, specific features such as L / O drivers, e.g. displays or keyboards, and in terminals 1 and 5, system functions may also include managing the communication of data objects and transmission through I / O ports, as well as mechanisms for intermodule access and access control. The tokens are preferably provided with an operating system on the VM for manipulation of the stack handlers, for control, e.g. exceptional handling, for the sockets themselves, which include their access rights, for access to I / O preparation, for time management, for language and message handling, for handling I / O readers, e.g. handling of ICCs, magnetic tape and modem card, blacklist management, security algorithms, terminal services, database services, data object handling, e.g. TLV Handling, Module Handling and Expandable Memory Handling.

Enozložni žetoni se imenujejo primarni žetoni; ti se nanašajo na preprosta navodila, kot se običajno najdejo v poljubnem naboru navodil. Mnogozlogovni žetoni se imenujejo sekundami žetoni in se uporabljajo za manj pogosto uporabljane usluge. Popolen nabor žetonov za VM 20 je podan v dodatku. Kot je shematsko predstavljeno na sl. 3 je uporabniški program napisan na PC glavnem razvojem sistemu 70 in razhroščen in je vrsta odobrena na primemo visokonivojnem jeziku, kot so Forth, C, Pascal itd. Nato se izvirna koda programa prevede na prevajalniku 71 žetonov v tok žetonov. Ta tok žetonov se ločeno kombinira z drugimi podatki (ustrezni vrinjeni podatki), ki jih potrebujeta program in naslovni opis, in kapsulira v modulni dostavni datoteki, da se stvori modul 72, prednostno v standardiziranem modulnem dostavnem formatu. Če modul obsega izvedljive žetone, se dostavi v izvedljivem programskem formatu. Posebni vidik predloženega izuma je v tem, da izvedljivi moduli obsegajo ne le tok žetonov ampak tudi ustrezne vrinjene podatke (kapsulacije). Posebni nadaljnji in ločeni vidik predloženega izuma je v tem, da moduli v skladu s predloženim izumom obsegajo navedbo, koliko bralno/pisalnega pomnilnika mora biti dodeljenega s strani VM 20, da lahko modul izvaja.Single-stack tokens are called primary tokens; these refer to simple instructions as they are usually found in any set of instructions. Multiple tokens are called second tokens and are used for less commonly used services. A complete set of tokens for VM 20 is provided in the appendix. As schematically presented in FIG. 3 is a user program written on PC major development system 70 and debugged and is type approved in primitive high-level languages such as Forth, C, Pascal, etc. The source code of the program is then translated on the token stream into the token stream by 71 tokens. This token stream is separately combined with other data (relevant interstitial data) required by the program and title description, and encapsulated in a modular delivery file to create module 72, preferably in a standardized module delivery format. If the module contains executable tokens, it is delivered in executable program format. A particular aspect of the present invention is that the feasible modules comprise not only the flow of tokens but also the corresponding encapsulated data (encapsulation). A particular further and separate aspect of the present invention is that the modules according to the present invention include an indication of how much read / write memory must be allocated by VM 20 for the module to perform.

Modul 72 je dostavljen terminalu 1 s primernimi sredstvi, npr. v ICC 5, preko telekomunikacijskega omrežja. Potem ko je modul naložen, je shranjen v odlagahšču za module. Ko se zahteva njegovo delovanje, terminal 1 ali kartica 5 uporablja žetonski nalagalnik/tolmač 73, da obdela žetone za izvajanje na terminalski CPU 2. Ta postopek obstoji iz izvajanja funkcije, ki je povezana z vsakim žetonom. Žetonski nalagalnik/tolmač 72 je zagotovljen s strani VM 20 v skladu s predloženim izumom.Module 72 is delivered to terminal 1 by suitable means, e.g. in ICC 5, via telecommunication network. After the module is loaded, it is stored in the module repository. When its operation is required, terminal 1 or card 5 uses a token loader / interpreter 73 to process execution tokens on terminal CPU 2. This process consists of performing a function associated with each token. The token loader / interpreter 72 is provided by VM 20 in accordance with the present invention.

Programska oprema, ki se nanaša na VM na terminalu 1, se lahko razdeli v 4 večje kategorije:The software related to the VM in Terminal 1 can be divided into 4 major categories:

• Jedro, ki vključuje od terminala odvisne izvedbe I/O gonilnikov in vse funkcije, ki se zahtevajo v tem opisu za podpiranje VM 20. Vsaka druga programska oprema, ki se nanaša na VM 20, je napisana v od stroja odvisnih žetonih.• A kernel that includes terminal dependent I / O drivers and all the features required in this description to support VM 20. Any other software related to VM 20 is written in machine dependent tokens.

• Terminalsko rezidenčne usluge (TRS) so pri vsaj enem modulu, ki teče na VM 20, kot upravljalec uporab in vključujejo vse neuporabniške funkcije, knjižnice, ki podpirajo te funkcije, funkcije za nalaganje modulov in glavno zanko, ki opredeljuje obnašanje terminala. Posebni žetoni - (npr. DIOCTL) omogočajo od terminala odvisne vidike I/O priprav, ki jih je treba opredeliti kot vrinjene funkcije.• Terminal Resident Services (TRS) have at least one module running on VM 20 as a user manager and include all non-user functions, libraries that support these functions, module load functions, and a master loop that defines the behavior of the terminal. Special tokens - (eg DIOCTL) allow terminal-dependent aspects of I / O preparations to be defined as interrupted functions.

• Terminalsko izbrane usluge (TSS) vključujejo uporabe, kot so funkcije plačilnih uslug in knjižnice, ki podpirajo te funkcije. TSS vsebujejo le terminalsko neodvisne žetone in so rezidenčne na terminalu 1. Glavna programska zanka za TRS bo izbrala in poklicala TSS funkcije, v kolikor se potrebujejo za posamezno transakcijo.• Terminal Selected Services (TSS) include uses such as payment service features and libraries that support these features. TSSs contain only terminally independent tokens and are resident at terminal 1. The main TRS program loop will select and call TSS functions as needed for a single transaction.

• Kartično izbrane usluge (CSS) vključujejo funkcije podpiranja terminalskih transakcij, kot so funkcije plačilnih uslug, ki se uporabljajo kot del TSS uporabe. CSS so rezidenčne na ICC 5 in naložene na terminalu 1, kot se zahteva. Za terminale 1 z dvema ICC bralnikoma 8 - npr. eden za normalne transakcije in drugi za vzdrževanje sta lahko dva neodvisna nabora CSS (CSS1 in CSS2).• Card-selected services (CSS) include terminal transaction support features, such as payment service features used as part of TSS usage. CSSs are resident at ICC 5 and loaded at Terminal 1 as required. For terminals 1 with two ICC readers 8 - e.g. one for normal transactions and the other for maintenance can be two independent sets of CSSs (CSS1 and CSS2).

Vsa programska oprema na terminalu 1 v skladu s predloženim izumom nad jedrom je organizirana kot nabor ločenih modulov. Osnovna značilnost modula je v tem, da je zbir definicij ali programskih funkcij, ki so šle skozi prevajalnik 71 žetonov in so kapsulirane kot posamičen zavoj za dostavo ciljnemu okolju, npr. terminalu 1 ali ICCAll software at Terminal 1 according to the present invention above the kernel is organized as a set of separate modules. The basic feature of the module is that the sum of definitions or programming functions that have passed through the 71 token compiler and are encapsulated as a single wrap for delivery to the target environment, e.g. terminal 1 or ICC

5. Glavni terminalski program (TRS), vsaka uporaba, vsaka knjižnica in vsaka CSS, ki so naložene, so primeri modulov. Prednostno vsi moduli uporabljajo standardni format. Jedro v sistemu po predloženem izumu opredeljuje VM 20, ki zagotavlja različne visokonivojske usluge tem modulom, kot so:5. The Main Terminal Program (TRS), every usage, every library, and every CSS that is loaded are examples of modules. Preferably, all modules use the standard format. The core of the system according to the present invention defines VM 20, which provides various high-level services to these modules, such as:

• splošnonamenska CPU in nabor navodil, kije predstavljen z žetoni;• general-purpose CPU and instruction set presented with tokens;

• splošnonamenska I/O podpora za običajne priprave z zagotovitvijo generičnega I/O za podpiranje dodatnih priprav, ki se lahko dodajo;• general purpose I / O support for routine preparations by providing generic I / O to support additional devices that can be added;

• funkcije za upravljanje s podatkovnimi bazami;• database management functions;

• upravljanje prenosa podatkovnih objektov vključno s pretvorbami formatov in druge funkcije;• manage the transfer of data objects including format conversions and other features;

• upravljanje žetonskih modulov vključno z vzdrževanjem le-teh v pomnilniku posodabljanje po potrebi - in njihovo izvajanje na zahtevo. V prednostnem izvedbenem primeru predloženega izuma ostaja ves čas izvajanje modulov pod nadzorom VM 20. Zato moduli nikoli ne nadzorujejo glavnega procesorja, ampak so le pasivni glede na VM 20. Prednostno VM 20 vedno deluje v nadzomiškem načinu in lahko izvaja le navodila, ki so opredeljena kot njegovi žetoni in noben modul ne more delovati v uporabniškem načinu, to se pravi, prevzeti nadzora nad VM 20. Zato se pri izvedbi VM 20, ki uporablja pomnilniški razpored, stvori le en pomnilniški razpored, namreč nadzomiški razpored.• Manage token modules, including keeping them in memory, updating as needed - and performing them on demand. In a preferred embodiment of the present invention, the implementation of the modules remains under the control of VM 20. Therefore, the modules never control the main processor, but are only passive with respect to VM 20. Preferably, VM 20 always operates in a mono-mode and can only execute instructions defined as its tokens, and no module can operate in user mode, that is, take control of VM 20. Therefore, only one memory schedule is created when executing VM 20, which uses a memory schedule, namely a sub-layout.

Noben modul ne more odvzeti veljave operacijskemu sistemu, ki ga definira VM 20. To je zagotovljeno, ker lahko modul vsebuje le žetone iz nabora VM žetonov in nobeden od teh žetonov ne dovoljuje dostopa do kodnega prostora, kjer je shranjeno jedro. Ko VM 20 naleti na žeton, ki leži izven opredeljenega nabora, se uporabi izjema (ILLOP).No module can invalidate an operating system defined by VM 20. This is guaranteed because the module can only contain tokens from a set of VM tokens, and none of these tokens allow access to the code space where the kernel is stored. When VM 20 encounters a token lying outside the defined set, an exception (ILLOP) is applied.

Kot je shematično prikazano na sl. 4, terminal 1 vključuje za terminal specifični operacijski sistem 8, ki je odgovoren za nalaganje TRS modula od VM 20 - postopek nalaganja bo opisan pozneje. Koda za VM 20 je shranjena v terminalskem bralnem obstojnem pomnilniku 11. Pred nalaganjem TRS je terminalski neobstojni pomnilnik 19 terminala 1 prazen, kar se tiče podatkov, ki se nanašajo na kakršnokoli transakcijo, terminalski bralno/pisalni obstojni pomnilnik 18 vsebuje uporabe, ki jih je treba izvesti s strani VM 20 v obliki modulov 72 v odlagališču za module, pri čemer obstojne podatkovne baze obsegajo za uporabnika značilne podatke in knjižnice, kot je knjižnica podnožja, ki bo opisana pozneje. Če se VM 20 uporablja tudi na ICC 5, se isti principi, kot so opisani zgoraj, uporabljajo glede na bralni obstojni pomnilnik 13, neobstojni pomnilnik 14 in bralno/pisalni obstojni pomnilnik 15 na ICC 5.As shown schematically in FIG. 4, terminal 1 includes a terminal-specific operating system 8 that is responsible for loading the TRS module from VM 20 - the loading process will be described later. The code for VM 20 is stored in terminal read-only memory 11. Prior to loading TRS, terminal non-existent memory 19 of terminal 1 is empty as far as data pertaining to any transaction is concerned, terminal read / write persistent memory 18 contains uses that must be executed by VM 20 in the form of modules 72 in the module repository, with persistent databases comprising user-specific data and libraries, such as the footer library, which will be described later. If VM 20 is also used on ICC 5, the same principles as described above are applied to read persistent memory 13, non-existent memory 14, and read / write persistent memory 15 to ICC 5.

Ker je VM 20 virtualni stroj, naslavlja vse oblike terminalskih ali ICC pomnilnikov 11, 18, 19; 13, 14, 15 kot virtualni pomnilnik, to se pravi vsi so naslovljeni v logičnem naslovnem prostoru, kot ga vidi VM 20. V dejanski uporabi s strani VM 20 se ti logični naslovni prostori preslikajo v dejanske naslovne prostore v pomnilniku terminala 1 ali ICC 5 s pomnilniškim preslikavanjem ali podobnim. V nadaljnjem se bo sklicevalo na neobstojni, bralno/pisalni obstojni in bralni obstojni pomnilnik kot del VM 20. Razumeti je treba, da se to nanaša na logično naslovljeni pomnilniški prostor, razen če se na poseben način omeni dejanske naslove v izvedbi VM 20 na terminalu 1 ali ICC 5. Neobstojni pomnilnik ne preživi nalaganja programa ali odklopa napajanja in/ali ponovnega zaganjanja. Neobstojni pomnilnik prednostno ne preživi izklopa napajanja iz varnostnih razlogov. Obstojni pomnilnik preživi nalaganje programa ali izklop napajanja in ponovno zaganjanje.Because VM 20 is a virtual machine, it addresses all forms of terminal or ICC memories 11, 18, 19; 13, 14, 15 as virtual memory, that is, all are addressed in logical address space as seen by VM 20. In actual use by VM 20, these logical address spaces are mapped to actual address spaces in terminal 1 or ICC memory 5 with memory mapping or the like. In the following, reference will be made to non-existent, read / write persistent and read persistent memory as part of VM 20. It should be understood that this refers to logically addressed memory space, unless the actual addresses in the VM 20 implementation of the terminal are specifically mentioned 1 or ICC 5. Non-volatile memory does not survive program loading or power failure and / or restart. Non-volatile memory preferably does not survive a power outage for security reasons. Permanent memory survives downloading the program or turning off the power and restarting.

Opis virtualnega strojaDescription of the virtual machine

Shematična predstavitev VM 20 v skladu s predloženim izumom je prikazana na sl. 5. VM 20 je prednostno stroj s skladi in ima kazalec podatkovnih skladov (shranjen v registru 32 kazalcev podatkovnih skladov), ki kažejo na navzdol potisnjeni podatkovni sklad 27, prednostno v pomnilniku na čipu. Vse operacije se izvajajo na tem skladuA schematic representation of VM 20 according to the present invention is shown in FIG. 5. VM 20 is preferably a stack machine and has a data stack pointer (stored in a register of 32 data stack pointers) pointing to a downward slotted data stack 27, preferably in memory on a chip. All operations are performed on this fund

27. Podatkovni sklad 27 se uporablja za vsebovanje parametrov postopkov in začasnih rezultatov od vrednotenja izraza. Podatki so potisnjeni na ali odstranjeni s podatkovnega sklada 27. VM 20 vključuje tudi povratni sklad 28. Povratni sklad 28 se lahko uporablja s strani VM 20, da obsega povratne naslove, in se lahko uporablja tudi za začasno shranjevanje. Ta arhitektura večkratnih skladov je poznana iz programimega jezika Forth (ANSI X3.215-1994). Ta arhitektura je bila nadalje modificirana v pogledu prenosnosti, kodne gostote, varnosti, lahkote prevajanja in za uporabo z drugimi programimimi jeziki. Obsega npr. zagotovila za okvire lokalnih spremenljivk, ki se uporabljajo v visokonivojskih programimih jezikih, kot je C. Tako so lahko prevajalniki 71 žetonov v skladu s predloženim izumom napisani ne le za Forth temveč tudi za C in za druge programime jezike.27. Data pool 27 is used to contain procedure parameters and temporary results from expression evaluations. The data is pushed to or removed from the data pool 27. VM 20 also includes a repository 28. The repository 28 can be used by the VM 20 to capture return addresses, and can also be used for temporary storage. This multiple stack architecture is known from the Forth programmable language (ANSI X3.215-1994). This architecture has been further modified in terms of portability, code density, security, ease of translation and for use with other programmatic languages. It covers e.g. assurances for frameworks of local variables used in high-level language programs such as C. Thus, 71 token compilers according to the present invention can be written not only for Forth but also for C and other language programs.

V skladu s predloženim izumom je le en podatkovni ali povratni sklad 27, 28, ki je povezan z VM 20. Podatkovni in povratni skladi 27, 28 niso stvorjeni za vsako obdelovalno nit. V skladu s predloženim izumom lahko uporabniški program le pridobi od povratnega sklada 28, kar so izrecno vložili nanj med tekočim postopkom, in mora odstraniti podatke, položene na povratni sklad 28 med tekočim postopkom, preden izstopi iz postopka. VM 20 po izbiri obsega varnostni upravljalnik za zagotavljanje neoporečnosti pri izvajanju, ki nadzoruje vsako dejavnost na povratnem skladu in preverja vse podatke in se odstrani med tekočim postopkom. Dodatno k podatkom, ki so tam nameščeni za začasno shranjevanje, VM 20 lahko drži informacijo o stanju izjemnega izvajanja, okvire za lokalne variable, parametere za nadzor zank in kontekst podatkovnih baz na povratnem skladu 28.According to the present invention, there is only one data or return pool 27, 28 associated with VM 20. Data and return pools 27, 28 are not created for each processing thread. According to the present invention, the user program can only retrieve from the return fund 28, which they explicitly filed for it during the ongoing process, and must remove the data deposited on the return fund 28 during the ongoing process before exiting the process. VM 20 optionally comprises a runtime security runtime controller that monitors each activity on the return pool and checks all data and is removed during the ongoing process. In addition to the data stored there for temporary storage, VM 20 can hold information about the runtime state, frameworks for local variables, loop control parameters, and database context on the return 28.

V skladu s predloženim izumom lahko VM 20 vključuje množico skladov. Namesto uporabe le povratnega sklada 28 se lahko npr. po izbiri zagotovijo nadaljnji skladi 29 kot izjemni in okvirni skladi. Izjemni sklad se uporablja za shranjevanje izvedbenega stanja med izjemnim obdelovanjem. Okvirni sklad se uporablja za vzdrževanje informacije o lokalnih variablah kot tudi za zapise C jeziku podobne aktivacije. Kot je bilo omenjeno zgoraj, se izjemni in okvirni skladi 29 lahko izvajajo na povratnem skladu 28.According to the present invention, VM 20 may include a plurality of stacks. Instead of using only a return fund 28, e.g. optionally provided by further funds 29 as exceptional and indicative funds. An exceptional stack is used to save the execution state during an exceptional processing. The Framework Fund is used to maintain information on local variables as well as C-language records of similar activation. As mentioned above, exceptional and framework funds 29 may be implemented on a return fund 28.

Podatkovni, povratni skladi 27, 28 in drugi skladi 29 kot izjemni sklad niso v pomnilniškem prostoru neposredno dostopni s strani uporabniškega programa. Podatkovni ali povratni skladi 27, 28 ne morejo biti naslovljeni neposredno, ampak so dostopni le preko skladovnih operacij. Iz varnostnih razlogov ni omejitve pri tem, kako se podatki shranijo v dejanski uporabi, tako da zlonamerne osebe nimajo predpostavk o tem, kako so podatki fizično shranjeni.Data, paybacks 27, 28 and other funds 29 as an exceptional pool are not directly accessible in the memory space by the application program. Data or return funds 27, 28 cannot be addressed directly, but are only accessible through stack operations. For security reasons, there is no limit to how the data is stored in actual use, so that malicious persons have no assumptions about how the data is physically stored.

VM 20 vključujejo virtualno centralno procesorsko enoto 22, ki vključuje virtualno aritmetično logično enoto 23. VM 20 naslavlja virtualni ali logični podatkovni prostor 24 in ta je obravnavan s strani VM 20 kot bralno/pisalni pomnilnik (RAM) in bi bil normalno uporabljen kot del neobstojnega pomnilnika 19, npr. v RAM-u v dejanskem terminalu 1 ali kartici 5. Prostor 24 logičnih podatkov je dostopen le za shranjevanje podatkov. Tok žetonov modula je shranjen s strani VM 20 v kodnem pomnilniku 26, ki se obravnava kot bralni pomnilnik (ROM) s strani VM 20. Le VM 20 lahko bere žetone. Kodni pomnilnik 26 ni dostopen za uporabniške programe niti s katerimkoli žetonom.VM 20 includes a virtual central processing unit 22 that includes a virtual arithmetic logic unit 23. VM 20 addresses a virtual or logical data space 24, which is treated by VM 20 as read / write memory (RAM) and would normally be used as part of a non-existent of memory 19, e.g. in RAM in actual terminal 1 or card 5. The logical data space 24 is accessible only for data storage. The module tokens stream is stored by VM 20 in code memory 26, which is treated as read memory (ROM) by VM 20. Only VM 20 can read tokens. Code memory 26 is not accessible for application programs or by any token.

VM 20 lahko vključuje virtualne registre 30. VM 20 registri 30 lahko vključujejo register 31 kazalca žetonov, ki drži kazalec, ki kaže na naslednji žeton, ki se mora izvesti, register 32 kazalcev podatkovnih skladov drži kazalec, ki kaže na vrh lokacije podatkovnega sklada 27 (TOS), register 33 kazalcev povratnega sklada kaže na kazalec, ki kaže na tekoči vrh položaja povratnega sklada, register 34 okvirnih kazalcev, kaže na kazalec, ki kaže na začetek okvira v podatkovnem prostoru 24, register 35 kazalcev konca okvira drži kazalec, ki kaže na konec okvira v podatkovnem prostoru 24. Ni zagotovljen noben direkten dostop do registrov 31 do 36 s pomočjo nabora žetonov temveč le preko žetonov za dostop do registrov.VM 20 may include virtual registers 30. VM 20 registers 30 may include a token register 31 holding a pointer pointing to the next token to be executed, a register of 32 data fund pointers holding an pointer pointing to the top location of the data stack 27 (TOS), the register of 33 return fund indicators points to an indicator pointing to the current top position of the return fund, the register 34 frame indicators, the pointer indicating the beginning of a frame in the data space 24, the register 35 indicators of the end of the frame holds the pointer pointing to the end of the frame in data space 24. No direct access to registers 31 to 36 is provided by a set of tokens, but only through tokens to access registers.

Končno so virtualne I/O priprave 25 povezane z CPU 22 s pomočjo sistema 21 virtualnih vodil, ki povezuje sklade 27-29, ALU 23, registre 30, kodni pomnilnik 26 in podatkovni prostor 24.Finally, the virtual I / O devices 25 are connected to the CPU 22 through a virtual bus system 21 that connects the stacks 27-29, the ALU 23, the registers 30, the code memory 26 and the data space 24.

V skladu s predloženim izumom je VM 20 prednostno opredeljen kot zlogovno naslavljan, dvojiško komponentni, 32 bitni stroj z 32 bitnimi registri in skladovnimi elementi, vendar izum ni omejen nanj. O velikosti registra/sklada se govori kot o velikosti celice za VM 20, pri čemer je celica osnovna enota manipuliranja na skladih in z VM registri 31 do 36. Velikost celice, ki jo uporablja VM 20, se ne obravnava, kot da bi imela materialni učinek na predloženi izum.According to the present invention, VM 20 is preferably defined as an infamously addressed, binary component, 32 bit machine with 32 bit registers and stack elements, but the invention is not limited thereto. The size of the register / stack is referred to as the cell size for VM 20, with the cell being the basic unit of manipulation on the stacks and with the VM registers 31 to 36. The cell size used by VM 20 is not treated as having material effect on the present invention.

Vsi programi, kijih poganjajo moduli, se morajo pokoravati naslednjim pravilom:All module-driven programs must obey the following rules:

• programi ne smejo prevzeti zagotovila, da so podatki v katerikoli izmed zgoraj navedenih kategorij držani na povratnem skladu 28, in tako lahko uporabljajo le pridobitveni mehanizem, ki je eksplicitno opisan za določeno kategorijo, ker varnostni upravljalnik lahko uniči katerekoli takšne podatke.• programs must not assume the assurance that data in any of the above categories is held in a return 28, and thus can only use an acquisition mechanism explicitly described for a particular category, since the security manager can destroy any such data.

• Programi, ki podajajo podatke v eni izmed teh kategorij do VM 20, morajo izvesti primemo akcijo, da obnovijo podatkovno shranitev od VM 20, preden se sproži postopek, v katerem se predajo, sicer bo VM 20 sprostil ustrezni del pomnilnika.• Programs submitting data in one of these categories to VM 20 must execute a primitive action to restore data storage from VM 20 before the process in which they are transferred is initiated, otherwise VM 20 will free up the corresponding portion of memory.

• Programi morajo prevzeti, da poljubni podatki, ki so predhodno nameščeni na povratnem skladu 28, so upodobljeni nedostopno s podajanjem podatkov v eni izmed teh kategorij do VM 20.• Programs must assume that any data previously installed on the return 28 is rendered inaccessible by passing data in one of these categories to VM 20.

• Programi morajo prevzeti, da so katerikoli podatki v eni izmed teh kategorij, ki so predani do VM 20, upodobljeni nedostopno z izvajalno kodo, ki namesti vrednosti na povratnem skladu 28 do takšnega časa, dokler te vrednosti niso odstranjene, ker je povratni sklad dostopen le z opredeljenimi žetonskimi postopki.• Programs must assume that any data in one of these categories submitted to VM 20 is rendered inaccessible by an executable code that sets values on the return 28 until such time as these values are removed because the return is accessible only with defined token processes.

V skladu s predloženim izumum operacijski sistem za VM 20 opredeljuje posamezen naslovni prostor 24, ki je na razpolago vsakemu modulu. Ta naslovni prostor 24 bo dostopen le za shranjevanje podatkov in se bo imenoval podatkovni prostor 24.According to the present invention, the operating system for VM 20 defines an individual address space 24 that is available to each module. This address space 24 will be accessible only for data storage and will be called data space 24.

Podatkovni prostor je razdeljen v tri in eno izbirno logično področje, od katerih je vsako posamič bližnje:The data space is divided into three and one optional logical areas, each individually close:

1. inicializiran podatkovni prostor 41, ki obsega začetne vrednosti, ki so označene v času prevajanja in nastavljene, ko se aktivira VM jedro, in nato, ko je naložen modul, ki vsebuje inicializirane podatke;1. an initialized data space 41 comprising the initial values indicated at compile time and set when the VM kernel is activated and then when a module containing the initialized data is loaded;

2. prostor 42 neinicializiranih podatkov, ki obsega spremenljivke in statične vmesne pomnilnike, ki so dodeljeni med prevajanjem programa. Ta podatkovni prostor 42 se inicializira na nič s strani VM 20;2. space 42 of uninitialized data, comprising variables and static buffers that are allocated during program translation. This data space 42 is initialized to zero by VM 20;

3. pomnilnik 46 okvira, ki se upravlja z okvirnimi žetoni;3. frame memory 46 managed by frame tokens;

4. po izbiri: razširljiv pomnilnik 45, ki obsega enega ali več vmesnih pomnilnikov, ki so dinamično dodeljeni med izvajanjem programa.Optional 4. Expandable memory 45 comprising one or more buffers dynamically allocated during program execution.

Obstojata še dve dodatni podatkovni področji, ki nista neposredno nastavljivi:There are two additional data areas that are not directly configurable:

5. razširljivi pomnilnik 43, ki je značilno masovni pomnilnik, ki se uporablja za vsebovanje podatkovnih objektov in neobstojnih podatkovnih baz;5. expandable memory 43, which is typically a mass memory used to contain data objects and non-existent databases;

6. obstojni pomnilnik 44 se uporablja za to, da vsebuje podatke, ki jim VM 20 zagotavlja, da preživijo nalaganje modula ali odklop napajanja ali ponovno zaganjanje (znotraj omejitev terminalske strojne opreme) vključno z odlagališčem za module in obstojnimi podatkovnimi bazami. To se lahko izvede v baterijsko podprtem RAM-u, disku ali drugem trajnem pomnilniku. Obstojni pomnilnik 44 se lahko izvede kot del bralno/pisalnega trajnega pomnilnika 18.6. persistent memory 44 is used to contain information that VM 20 provides to survive module load or power failure or restart (within terminal hardware limitations), including module repository and persistent databases. This can be done in battery-backed RAM, disk, or other permanent memory. Persistent memory 44 may be implemented as part of read / write persistent memory 18.

Da se poveča varnost podatkov, se razširjeni in obstojni pomnilnik 43, 44 dostopa le preko žetonov, ki zagotavljajo okna do izbranih podatkov v obliki vmesnih pomnilnikov v neinicializiranem podatkovnem prostoru 42. Zato programer zahteva lahko le zapis in ne more poznati natančne lokacije podatkov, da bi dostopil do njih. Prednostno ni datotečne niti drevesne strukture, ki omogoča programerju locirati osebne datoteke ali podatkovne baze.To increase data security, extended and persistent memory 43, 44 is only accessed through tokens that provide windows to selected data in the form of buffers in the non-initialized data space 42. Therefore, the programmer can only request a record and cannot know the exact location of the data to would access them. Preferably, there is no file or tree structure that allows the programmer to locate personal files or databases.

Znotraj vsakega podatkovnega prostora 24, ki ga uporablja modul, je pomnilnik dodeljen z relativnim naslavljanjem in le med delovanjem. To pomeni, da ima naslov pomen le znotraj vsakega modula, ko je naložen. Ker se ne uporablja absolutno naslavljanje, modul ne more dobiti dostopa do podatkov drugega modula razen z mehanizmom za vami dostop do modula, ki pa bo opisan pozneje.Within each data space 24 used by the module, memory is allocated by relative addressing and only during operation. This means that the title only has meaning within each module when loaded. Because absolute addressing is not used, the module cannot access the data of another module except by the mechanism behind you access to the module, which will be described later.

Mehanizem okvira omogoča, da VM 20 zadosti zahtevam jezikov, kot je C, ki dovoljujejo lokalnim variablam, da se definirajo med delovanjem. Okvir drži parametre postopka, ki so bili predani podatkovnemu skladu 27, kot tudi lokalne spremenljivke (začasno shranjevanje podatkov, ki bo sproščeno avtomatsko, ko se sprosti okvir, normalno ob koncu izvajanja postopka). Začetek okvira in kazalci konca se avtomatsko vzdržujejo s strani VM 20 znotraj okvira. Register 34 kazalcev okvira kaže na logično bazo okvira in kazalec 35 konca okvira kaže na logični konec okvira v podatkovnem prostoru 24. Parametri se lahko dostavijo iz okvira ob uporabi žetonov za dostop do okvira.The framework mechanism allows VM 20 to meet the requirements of languages such as C that allow local variables to be defined during runtime. The frame holds the process parameters passed to the data pool 27 as well as local variables (temporary storage of data that will be released automatically when the frame is released, normally at the end of the process). The frame start and end pointers are automatically maintained by the VM 20 inside the frame. The register of frame indicators 34 points to the logical base of the frame and the frame end pointer 35 indicates the logical end of the frame in the data space 24. Parameters can be delivered from the frame using tokens to access the frame.

VM 20 lahko po izbiri zagotavlja dinamično dodeljeno zalogo razširljivega pomnilnika 45 kot en sam raztegljiv vmesni pomnilnik, ki se upravlja s strani VM 20 in ki se pojavi izven programskega prostora 42 neinicializiranih podatkov. Programi lahko zahtevajo dodelitev opredeljene količine razširljivega pomnilnika 45 in vrnejo kazalec na naslov baze za isti pomnilnik 45. Nato lahko programi sprostijo pomnilnik 45 z danega naslova, npr. po končanju programa, kar povzroči, da se morajo sprostiti vse dodelitve za tistim naslovomVM 20 may optionally provide a dynamically allocated pool of expandable memory 45 as a single expandable buffer managed by VM 20 that occurs outside the program space 42 of uninitialized data. Programs can request the allocation of a defined amount of expandable memory 45 and return a pointer to the base address for the same memory 45. Then programs can free up memory 45 from a given address, e.g. after the end of the program, resulting in the release of all assignments behind that title

Prednostno je, če se moduli izvajajo v eni sami niti, vendar izum ni omejen na to. Če modul kliče drugi modul, to pomeni, da drugi modul zaključi in vsi viri drugega modula se sprostijo, preden se VM 20 vrne na prvi modul in nadaljuje obdelavo. Sl. 6 prikazuje shematsko predstavitev logičnega pomnilnika, kot ga vidi VM 20. Kot je prikazano shematično na sl. 6, je bil prvi modul (na levi) z inicializiranim pomnilnikom 41, ne inicializiranim pomnilnikom 42 in pomnilnikom 46 okvira in prostorom 26 žetonskih kod naložen v bralno/pisalni pomnilnik, začenši pri naslovu 1. Prvi modul je tudi klical in mu je bil dodeljen predel 45 razširljivega vmesnega pomnilnika. Ko se pokliče drugi modul (na desni) s strani prvega modula (npr. da uvozi funkcijo fgh, ki je na izključni listi v naslovu modula 1 funkcij, ki se lahko uvozijo), se podatkovni prostor 24', ki vključuje inicializirani pomnilnik 4Γ, neinicializirani pomnilnik 42’ in pomnilnik 46' okvira, alocirajo, kot se zahteva, začenši pri naslovu 2. Žetoni modula 2 so brani neposredno s strani VM 20 iz odlagališča za module, kar je dovoljena možnost v skladu s predloženim izumom. Če je poklican s strani modula 2, se razširljivi pomnilnik 45' za drugi modul dodeli s strani VM 20 više v pomnilniku kot razširljivi pomnilnik 45 za prvi modul. Ko se dovrši drugi modul, je ves pomnilnik nad naslovom 4 sproščen - učinek gumijastega traku. Prednostno se pri sprostitvi zbrišejo vsi začasno shranjeni podatki. Če je potrebno, se lahko več razširljivega pomnilnika 45 potem pokliče po povratku na prvi modul. Če se zatem ponovno pokliče drugi modul, bo dodeljen drugačen začetni naslov za razširljivi pomnilnik 45' kot takrat, ko je bil poklican prvič.Preferably, the modules are implemented in a single thread, but the invention is not limited thereto. If the module calls the second module, it means that the second module terminates and all resources of the second module are released before VM 20 returns to the first module and resumes processing. FIG. 6 shows a schematic representation of logical memory as seen by VM 20. As shown schematically in FIG. 6, the first module (on the left) with initialized memory 41, not initialized memory 42 and frame memory 46 and space of 26 token codes was loaded into read / write memory, starting at address 1. The first module also called and was assigned compartment 45 of expandable buffer. When the second module (on the right) is called by the first module (e.g. to import the fgh function that is on the exclusive list in the address of module 1 of the importable functions), the data space 24 ', which includes the initialized memory 4Γ, uninitialized frame memory 42 'and frame memory 46' are allocated, as required, starting at title 2. Module 2 tokens are read directly from VM 20 from the module repository, a permissible option in accordance with the present invention. If called by Module 2, expandable memory 45 'for the second module is allocated by VM 20 more in memory than expandable memory 45 for the first module. When the second module is completed, all memory above Title 4 is released - the effect of the rubber band. Preferably, upon release, all temporarily stored data will be deleted. If necessary, more expandable memory 45 can then be called after returning to the first module. If the second module is then called again, it will be assigned a different start address for 45 'expandable memory than when it was first called.

Za vse žetone razen žetonov EXTEND, CEXTEND in RELEASE za upravljanje razširljivega pomnilnika in žetonov THROW in QTHROW za izjemno rokovanje se zahteva, da nimajo dejanskega učinka na kazalec razširljivega pomnilnika. Če žeton dodeli razširljivi pomnilnik 45, ga mora tudi sprostiti, vključno s katerimkoli učinkom razvrščanja celic. Zaporedne dodelitve razširljivega pomnilnika 45 so prednostno bližnje znotraj modula, vendar ni potrebno, da bi bile bližnje med moduli, z izjemo, da naj medmodulni klici, ki uporabljajo žetona IMCALL ali DOSOCKET, ohranijo sosednjost. Avtomatska sprostitev dinamično dodeljenega razširljivega pomnilnika 45 se pojavi, ko se konča izvajanje modula, ki omejuje učinke pomanjkljivosti programa, da na čist način sprosti pomnilnik. Če pride do izjeme THROW, se lahko dodatno dodelitev dinamično dodeljenega razširljivega pomnilnika 45 ponovno obnovi v njegovo stanje ob času uveljavljanja izjeme CATCH.All tokens except EXTEND, CEXTEND and RELEASE tokens for expandable memory management and THROW and QTHROW tokens for exceptional handling are required to have no actual effect on the expandable memory pointer. If a token allocates expandable memory 45, it must also free it, including any effect of sorting cells. Successive allocations of extensible memory 45 are preferably closer within the module, but need not be close between modules, except that intermodule calls using IMCALL or DOSOCKET tokens should remain adjacent. The automatic release of dynamically allocated expandable memory 45 occurs when a module that limits the effects of a program deficiency to free up memory is terminated. If a THROW exception occurs, the additional allocation of dynamically allocated expandable memory 45 may be restored to its state at the time of the CATCH exception.

Uporabniške variable so variable velikosti celice, v katerih VM 20 drži kontekstualno informacijo za programe klientov. Shranjevanje za uporabniške variable je preddodeljeno s strani VM 20. Zagotovi se lahko omejeno število variabel, npr. 16 variabel - z referenčnimi oznakami od 0 do 16. Izvajanje VM 20, ki podpira več nalog, lahko zagotovi en nabor uporabniških variabel za vsako nalogo.User variables are cell size variables in which VM 20 holds contextual information for client programs. Storage for user variables is pre-assigned by VM 20. A limited number of variables can be provided, e.g. 16 variables - with reference marks 0 to 16. Running VM 20 that supports multiple tasks can provide one set of user variables for each task.

VM 20 zagotavlja en sam mehanizem izjemnega ravnanja preko žetonov CATCH,VM 20 provides a single mechanism for CATCH token handling,

THROW in QTHROW. Ti žetoni so izvedeni iz mehanizma izjemnega ravnanja vTHROW and QTHROW. These tokens are derived from the exceptional handling mechanism in

Lisp-u in se pojavljajo v ANS Forth-u kot CATCH in THROW. Namen tega mehanizma je, da zagotovi lokalno obravnavanje izjem pod nadzorom programa na različnih nivojih v programski opremi. Zamisel je v tem, da program preda kazalec funkcijskega izvajanja žetonu CATCH, ki bo izvajal to funkcijo in vrnil kodo, in bo nakazal, katera, če sploh katera, izjema se je zgodila med njegovim izvajanjem. CATCH beleži informacijo, ki je odvisna od izvajanja in ki je zadostna, da obnovi njegovo tekoče izvedbeno stanje, če naj se THROW pojavi v funkciji, ki je predana CACTH za izvajanje. To vključuje - vendar pa ni omejeno na - podatke in globine globine povratnih skladov, kazalec okvira in v nekaterih primerih kazalec razširljivega pomnilnika. Zbirka informacije, ki predstavlja izvedbeno stanje, se naziva izjemni okvir. Izjemni okviri se držijo na izjemnem skladu. Sledeč CATCH, lahko program preizkuša katerokoli izjemno kodo, ki se je morda vrnila, in izbere, da jo obravnava lokalno, ali vrže (THROW) na višji nivo za procesiranje. VM 20 zagotavlja prevzeti najbolj zunanji nivo, na katerem se ujamejo izjeme. Ta najbolj zunanji nivo bo aktiviran, ko se ni vzpostavil noben notranji nivo CACTH. Privzeti nadzornik izjem zavrže katerokoli tekočo terminalsko transakcijo in poskuša ponovno naložiti TRS modul in ponovno vstopiti v TRS glavno zanko. VM 20 vrže ANS Forth izjemo - 10 (deljenje z ničlo), če se pojavi ta pogoj.VM 20 lahko sproži druge splošne izjeme, ki so podpirane z ANS Forth, npr. kot so podane v priloženem dodatku.Lisp and appear in ANS Forth as CATCH and THROW. The purpose of this mechanism is to provide for the local handling of exceptions under program control at different levels in the software. The idea is that the program passes a function implementation pointer to the CATCH token that will execute this function and return the code, and indicate which, if any, exception occurred during its execution. CATCH records execution-dependent information that is sufficient to restore its current execution state if THROW is to appear in a function that is handed over to CACTH for execution. This includes - but is not limited to - data and rollback depths, a frame pointer, and in some cases an expandable memory pointer. A collection of information that represents an implementation state is called an exceptional framework. Exceptional frames are held in remarkable harmony. Following CATCH, the program can test any outstanding code that may have returned and choose to handle it locally or throw (THROW) to a higher level for processing. VM 20 guarantees to assume the outermost level at which exceptions are captured. This outermost level will be activated when no internal CACTH level is established. The default exception monitor discards any current terminal transaction and attempts to reload the TRS module and re-enter the TRS master loop. VM 20 throws ANS Forth exception - 10 (zero division) if this condition occurs.VM 20 may trigger other general exceptions that are supported by ANS Forth, e.g. as given in the attached appendix.

Vsaki pripravi, ki vključuje nadzorne priprave in vhodno/izhodne (I/O) usluge, katerih nižji operacijski nivo je skrit z VM 20 za funkcijami, ki so specifične za pripravo, sta pripisana tip priprave (uporabljen za kategoriziranje rezultatnih kod) in enotna številka priprave. Številke priprave so poljubne; vendar pa se lahko sklicuje na številke priprave - od 1 do 15 (štirje biti) - z le enim žetonom in so tako te prirejene najbolj običajnim pripravam, kot so tipkovnice, ICC bralniki, bralniki kartic z magnetnim trakom, zasloni, tiskalniki, priprave za napajanje ali prodajni stroj. Splošni I/O pripomočki so zagotovljeni s funkcijami, ki jemljejo številko priprave kot vhodni parameter.Each preparation, which includes monitoring devices and I / O (services) whose lower operating level is hidden by VM 20 for function-specific features, is assigned a device type (used to categorize result codes) and a unique number preparation. Preparation numbers are arbitrary; however, it can refer to preparation numbers - from 1 to 15 (four bits) - with only one token, so these are tailored to the most common devices such as keyboards, ICC readers, magnetic stripe card readers, screens, printers, prepa power supply or vending machine. General I / O utilities are provided with features that take the preparation number as an input parameter.

Terminal 1 v skladu s predloženim izumom prednostno obsega vsaj tri večje trajne podatkovne baze: za uporabo specifičen dnevnik transakcij, podatkovno bazo sporočil v enem ali več jezikih in podatkovno bazo modulov. VM 20 ščiti podatkovne baze kolikor se le da, saj lahko vsebujejo zasebno informacijo. Dostop do podatkovnih baz je omejen. VM 20 zagotavlja mehanizem za nadzorovanje podatkovnih baz (VM 20 kot strežnik), ki skriva podrobnosti po izvedbi iz uporabniške programske opreme (uporaba kot klient). Ni dovoljen neposreden dostop do podatkovne baze od modula, ki teče na VM 20. Usluge uporabljajo naslednje značilnosti, ki bodo opisane, sklicujoč se na sl. 7;In accordance with the present invention, terminal 1 preferably comprises at least three major permanent databases: a specific transaction log, a database of messages in one or more languages, and a module database. VM 20 protects databases as far as they can, since they may contain private information. Access to databases is limited. VM 20 provides a database monitoring mechanism (VM 20 as a server) that hides post-implementation details from the application software (used as a client). No direct access to the database is permitted from the module running on VM 20. The services use the following features, which will be described, with reference to FIG. 7;

• V kateremkoli danem času ima klient, to se pravi program, ki teče na modulu, dostop do ene tekoče izbrane podatkovne baze (DBCURRENT) in enega tekoče izbranega števila zapisa (DBRECNUM), kije skupen za vse opredeljene podatkovne baze.• At any given time, a client, that is, a program running on a module, has access to one currently selected database (DBCURRENT) and one currently selected record number (DBRECNUM) that is common to all defined databases.

• Informacija o vsaki podatkovni bazi se prenese med klientom in strežnikom preko bloka (DPB) 51 parametrov podatkovne baze, do katere lahko strežnik dostopi zaradi branja in pisanja. Klient poseduje DPB 51 v smislu, da je v klientovem podatkovnem prostoru 24; vendar pa klientu ni dovoljeno dostopiti do njega neposredno. Namesto tega pa se lahko uporabljajo za dostop do podatkov le žetoni za usluge pri podatkovnih bazah. DPB 51 ima standardno strukturo, ki vključuje polja za vsaj DPB povezavo, kazalec podatkovne baze, navedbo tipa podatkovne baze in velikosti zapisa ter številko naslednjega razpoložljivega zapisa. Vsa informacija za opredelitev podatkovne baze mora biti vnaprej nastavljena v DPB 51. Klientova programska oprema ne sme izvajati kakršnegakoli sledečega neposrednega dostopa do DPB 51 in ne sme delati nikakršnih predpostavk glede vrednosti, ki so neposredno držane v DPB 51, potem ko je modul opredelil, da je bil DPB 51 naložen zaradi izvajanja. Bloki 51 parametrov podatkovnih baz se predajo nalagalniku/tolmaču žetonov v obliki kazalca (DPB povezava) na povezano listo v inicializiranem podatkovnem odseku modula. To polje mora biti nastavljeno vnaprej na naslov v inicializiranih podatkih naslednjega DPB 51 na listi; ali nič, če je ta DPB 51 zadnji ali edini DPB 51 na listi. Za prevedene podatkovne baze, ki obstojijo v klientovem inicializiranem podatkovnem prostoru, mora biti DB kazalec vnaprej nastavljen na naslov začetka v inicializiranih podatkih. Za podatkovne baze, katerih shranjevanje je nadzirano s strežnikom, mora biti polje vnaprej nastavljeno na nič. DB tip zagotavlja podrobnosti podatkovne baze v kodirani obliki. Obstojijo vsaj tri vrste podatkovnih baz:• Information about each database is passed between the client and the server via a block (DPB) of 51 database parameters that the server can access for reading and writing purposes. The client has a DPB 51 in the sense that there is 24 in the client data space; however, the client is not allowed to access it directly. Instead, only database service tokens can be used to access the data. DPB 51 has a standard structure that includes fields for at least a DPB connection, a database pointer, an indication of the database type and record size, and the number of the next available record. All database definition information must be pre-configured in DPB 51. Client software must not make any subsequent direct access to DPB 51 and must not make any assumptions about values directly held in DPB 51 after the module has defined, that DPB 51 was ordered for execution. Blocks of 51 database parameters are passed to the pointer loader / interpreter in the form of a pointer (DPB connection) to a linked list in the module's initialized data section. This field must be pre-set to the address in the initialized data of the next DPB 51 in the list; or nothing if this DPB 51 is the last or only DPB 51 on the list. For compiled databases that exist in the client's initialized data space, the DB cursor must be pre-set to the start address in the initialized data. For databases whose storage is server-controlled, the field must be preset to zero. The DB type provides the database details in coded form. There are at least three types of databases:

Neobstojne podatkovne baze, katerih vsebina ni potrebno, da se ohrani med nalaganji modulov ali pri izpadu napajanja terminala 1, na katerem rezidira.Non-existent databases whose contents are not required to be maintained during module load or in the event of a power failure of the terminal 1 on which it resides.

Obstojne podatkovne baze, katerih vsebina mora biti ohranjena med nalaganjem modula ali izpadom napajanja. Če se modul, ki opredeljuje obstojno podatkovno bazo, zamenja, se podatkovna baza razruši, ko se star modul sname.Stable databases whose contents must be maintained during module loading or power failure. If a module defining a persistent database is replaced, the database is destroyed when the old module is removed.

Prevedene podatkovne baze so stvorjene s prevajalnikom 71 žetonov v sosednjem področju inicializiranih podatkov kot zapisi fiksne dolžine. Zapisi ne smejo biti dodani ali uničeni iz prevedene podatkovne baze in podatkovna baza ne sme biti inicializirana med delovanjem, sicer pa naj se podpira polna bralno/pisalna zmogljivost.Translated databases are created using the 71 token compiler in the adjacent initialized data area as fixed length records. The records must not be added or destroyed from the compiled database and the database must not be initialized while running, otherwise full read / write capacity should be supported.

Naslednje razpoložljivo polje številke zapisa mora biti nastavljeno na številko nazadnje dodeljenega zapisa, povečano z 1, v podatkovni bazi prevedenih podatkovnih baz. Za vsako drugo podatkovno bazo je to polje nastavljeno na nič.The next available record number field must be set to the number of the most recently assigned record, plus 1, in the compiled database. For every other database this field is set to zero.

• Naslovitev okna na tekoči zapis (vmesni pomnilnik 53 zapisa) je zagotovljena klientu s strani strežnika za vsako klientovo podatkovno bazo. Za določene operacije na podatkovni bazi lahko klient preda naslove nizov in ključne vmesne pomnilnike 52 strežniku. Za vsako podatkovno bazo je bilo to sporočeno strežniku s strani klientovega modula, vmesni pomnilnik 53 zapisa pa je zagotovljen z VM 20. Ta vmesni pomnilnik 53 začne na razvrščenem naslovu. Vsebina vmesnega pomnika 53 zapisa je povezana s posamezno podatkovno bazo, potem ko izbor zapisa ostane na razpolago, dokler klient ne izbere drugega zapisa iz tiste podatkovne baze. Razen za tiste vmesne pomnilnike 53 zapisa, prevedene podatkovne baze in parametre, prenešene na podatkovni sklad 27 s specifičnimi funkcijami podatkovnih baz, si klient in strežnik ne delita nobenega drugega podatkovnega prostora 54. Progami ne smejo predpostavljati, da so vsi podatki v pomnilniku sosednji.• The window title to the current record (buffer 53 of the record) is provided to the client by the server for each client database. For certain database operations, the client may submit string addresses and key buffers to the server. For each database, this was reported to the server by the client module, and the buffer 53 is provided with VM 20. This buffer 53 starts at the sorted address. The contents of the buffer 53 of the record are linked to an individual database after the selection of the record remains available until the client selects another record from that database. Except for those buffers 53 of the record, compiled databases, and parameters passed to the data pool 27 with specific database functions, the client and server do not share any other data space 54. The programs must not assume that all the data in the memory is adjacent.

• Podatkovna baza je opredeljena s postopkom nalaganja za modul, v katerem se opredeli njegova DPB. Neobstojne podatkovne baze, ki jih naložijo uporabniški moduli, postanejo neopredeljene avtomatsko in prozorno s strani strežnika, ko se uporaba končuje s terminalno rezidenčnimi uslugami, ko se sprosti vse s strani strežnika dodeljeno shranjevanje podatkov v povezavi s temi podatkovnimi bazami.• The database is defined by a loading process for a module that defines its DPB. Non-existent databases uploaded by user modules become indeterminate automatically and transparently by the server when use ends with terminal resident services when all server-allocated storage is released in connection with these databases.

• Strežnik uniči obstojne podatkovne baze, ko se nadomesti modul, ki jih je opredelil. Če se modul naloži, ko se zamenja, npr. v primeru TRS modula, mora starežnik uničiti obstojne podatkovne baze modula, ko se modul razloži.• The server destroys the persistent databases when the module that defined them is replaced. If the module loads when it is replaced, e.g. in the case of a TRS module, the persistant must destroy the persistent database of the module when the module is explained.

Postopek, ki ga podvzame VM 20, ko se podatkovna baza opredeli med nalaganjem modula, zavisi od vrednosti DB type in DB pointer v DPB 51 in od tega, ali je podatkovna baza neobstojna ali obstojna. Če je podatkovna baza obstojnega tipa, se DPB naslov uporablja v povezavi z identifikacijo modula (module ID), da se identificirajo katerikoli prejšnji podatki, ki pripadajo tej podatkovni bazi. Če obstoje prejšnji podatki, se obnovi naslednja razpoložljiva zapisna številka na njeno prejšnjo vrednost. Sicer strežnik (VM 20) opredeli nov obstojen shranjevalni prostor in nastavi naslednje razpoložljivo številko zapisa na nič. V obeh primerih je predviden vmesni pomnilnik 53 za tekoči zapis v podatkovni bazi. Če je DB pointer nič in DB type ni preveden tip, potem strežnik opredeli ali naredi razpoložljivo shranjevanje, ki se zahteva za podatkovno bazo, sproži shranjevanje na vse ničle, zagotovi vmesni pomnilnik 53 za tekoči zapis podatkovne baze in nastavi naslednjo razpoložljivo zapisno številko (DBAVAIL) na nič. Če je DB pointer neničla in je DB type prevedeni tip, potem strežnik vzpostavi notranje strukture, da se zagotovi uporaba strukture klientovih podatkov, katere izvorni naslov je bil podan DB kazalcu in nastavi naslednjo razpoložljivo številko zapisa (DBAVAIL) za vrednost, kije predana v polje od DPB 51 za naslednjo razpoložljivo številko zapisa. Strežnik vzdržuje aktualne zapise 55 podatkovnih baz, razmeije med naslovno lokacijo in zapisom v bloku 56 za nadzor nad podatkovnimi bazami in zapis o tem, modul katere podatkovne baze v danem trenutku pristopa v kontekstu info bloka 57.The procedure undertaken by VM 20 when the database is defined during module load depends on the DB type and DB pointer values in DPB 51 and whether the database is non-existent or persistent. If the database is of persistent type, the DPB address is used in conjunction with module ID to identify any previous data belonging to that database. If previous data is available, the next available record number is restored to its previous value. Otherwise, the server (VM 20) defines a new existing storage space and sets the next available record number to zero. In both cases, buffer 53 is provided for the current record in the database. If the DB pointer is zero and the DB type is not a translated type, then the server defines or makes available the storage required for the database, initiates storage at all zeros, provides buffer 53 for the current database record, and sets the next available record number (DBAVAIL ) to zero. If the DB pointer is null and the DB type is a translated type, then the server establishes internal structures to ensure that the client data structure whose source address was given to the DB cursor is used and sets the next available record number (DBAVAIL) for the value passed to the field from DPB 51 for the next available record number. The server maintains up-to-date records of 55 databases, the delimitation between the address location and the record in block 56 for controlling the databases, and a record of which module of the database is accessing at a given moment in the context of info block 57.

Varen postopek ravnanja z moduli v skladu s predloženim izumom bo sedaj opisan v povezavi s sl. 6. Na sl. 6 je prikazano področje logičnega bralno/pisalnega pomnilnika. Področje pomnilnika, do katerega se lahko dostopi z modulom na levi strani (prvi modul), ima Črtkano linijo. Področje pomnilnika, do katerega se ne da dostopiti s prvim modulom, ima mejo izvlečeno z nepretrgano črto. Področje pomnilnika, do katerega se lahko dostopi z več kot enim modulom, je prikazano s pikčasto-črtkano linijo. VM 20 ščiti podatkovni bazi DB 1 in DB 2 ter odlagališče podatkovnih baz in module v odlagališču modulov, tako da niso dostopni z nobenim modulom. Potem ko se naloži prvi modul, se lahko dostopi do neinicializiranih podatkov v pomnilniku 42 s prvim modulom, vendar VM 20 ne dovoljuje, da bi se lahko kakršnokoli področje izven tega modula dostopilo neposredno z modulom. Dostop do registrov, skladov ali pomnilnika 46 okvirov se lahko izvede le preko ustreznih žetonov. Do podatkovnih baz se lahko dostopi le preko postopka z okni, kije bil zgoraj omenjen. Predvsem prvi modul ne more dostopiti do pomnilnika 26 svojega lastnega programa, kjer so locirani žetoni, niti dostopiti do kateregakoli drugega modula. To je pomembno zaradi zaščite pred virusi. V skladu s predloženim izumom je pomnilnik, ki je dodeljen prvemu modulu, opredeljen in zaščiten. Opredeljen je z dodelitvijo pomnilnika v skladu z navedbo količine pomnilnika, ki jo je treba dodeliti in je vsebovana v modulu. Zaščiten je zato, ker ne sme noben drug modul dostopiti do dodeljenega prostora in ni zagotovljen kak drug mehanizem nalaganja za katerikoli program razen za module. Ker je prednostni postopek poganjanja modulov enonitni, se katerikoli pomnilnik, ki je dodeljen v razširljivem vmesnem pomnilniku 45, sprosti, preden lahko postane aktiven kak drug modul. Sproščeni pomnilnik se prednostno zbriše.A secure process for handling modules according to the present invention will now be described in connection with FIG. 6. In FIG. 6 shows the area of logical read / write memory. The memory area that can be accessed by the module on the left (first module) has a dashed line. The memory area, which cannot be accessed by the first module, has a border drawn by a continuous line. The memory area that can be accessed by more than one module is shown by the dotted-dashed line. VM 20 protects DB 1 and DB 2 databases and the database repository and modules in the module repository so that they are not accessible by any module. After the first module is loaded, uninitialized data in memory 42 can be accessed with the first module, but VM 20 does not allow any area outside this module to be accessed directly by the module. Access to registers, stacks or memory of 46 frames can only be done through the appropriate tokens. Databases can only be accessed through the window procedure mentioned above. In particular, the first module cannot access the memory 26 of its own program where the tokens are located, nor can it access any other module. This is important for virus protection. According to the present invention, the memory allocated to the first module is defined and protected. It is defined by allocating memory according to the amount of memory to be allocated and contained in the module. It is protected because no other module can access the allocated space and no loading mechanism is provided for any program other than modules. Since the preferred process of running modules is one-threaded, any memory allocated in expandable buffer 45 is released before any other module can become active. The free memory is preferably erased.

Spisek ekskluzivnih vnosov prvega modula je v njegovem naslovnem opisu, do katerega prvi modul ne more neposredno dostopiti. VM 20 bere naslovni opis in kliče drugi modul, ki je omenjen v seznamu vnosov - funkcija fgh z drugega modula. VM 20 naloži drugi modul in dodeli pomnilnik za neinicializirane podatke 42', pomnilnik 46' okvirov in inicializirane podatke 4Γ. Prvi modul ne more dostopiti do kateregakoli dela drugega modula in obratno. V naslovnem opisu drugega modula je bila funkcija fgh nameščena v ekskluzivno listo funkcij, ki se lahko izvozijo. To naredi funkcijo fgh razpoložljivo za druge module. VM 20 išče funkcijo fgh v kodnem pomnilniškem prostoru 26' drugega modula in izvaja tok žetonov z ustreznimi vrinjenimi podatki (predstavljeni s tokom TITTITT). V tem primeru kos kode zahteva dostop do podatkovne baze DB2. Podatkovna baza je v skladu s predloženim izumom last modula, to se pravi podatkovna baza se lahko dostopi le z modulom, ki jo je opredelil pri prvem nalaganju modula. Žetoni za dostop do podatkovne baze, ki so prebrani iz kodnega prostora 26', se izvajajo s strani VM 20, ki je dodelil vmesni pomnilnik 53' v neinicialiranem podatkovnem prostoru 42' drugega modula pri nalaganju. Funkcija fgh zahteva dostop do tretjega zapisa od DB2. VM 20 nato prenese z referenco opremljeni zapis v okno 43' v drugem modulu, iz katerega se izvozi v neinicializirani prostor 42 prvega modula. Ob uporabi istega postopka za okna podatkovnih baz lahko prvi modul tudi dobi zapis s svoje lastne podatkovne baze DB1, ki se prenese v vmesni pomnilnik 53 v neinicializiranem podatkovnem prostoru 42. Prvi modul lahko sedaj deluje na rezultatih teh dveh postopkov.The list of exclusive entries of the first module is in its title description, which the first module cannot directly access. VM 20 reads the title description and calls the second module mentioned in the entry list - the fgh function from the other module. VM 20 loads the second module and allocates memory for uninitialized data 42 ', frame memory 46' and initialized data 4Γ. The first module cannot access any part of the second module and vice versa. In the title description of the second module, the fgh function was installed in an exclusive list of exportable features. This makes the fgh function available for other modules. VM 20 searches for the fgh function in the code memory space 26 'of the second module and executes the token stream with the corresponding interrupted data (represented by the TITTITT stream). In this case, the piece of code requires access to the DB2 database. According to the present invention, a database is the property of a module, that is, a database can only be accessed by a module that it defined when it first loaded the module. Database access tokens read from code space 26 'are executed by VM 20, which allocated buffer 53' in the uninitiated database space 42 'of the second module at loading. The fgh function requires access to a third record from DB2. VM 20 then transfers the referenced record to window 43 'in the second module, from which it is exported to the uninitialized space 42 of the first module. Using the same procedure for database windows, the first module can also retrieve a record from its own DB1 database, which is transferred to buffer 53 in an uninitialized database space 42. The first module can now work on the results of these two operations.

VM 20 se prednostno ukvarja s podatkovnimi objekti s pomočjo osnovnih kodirnih pravil ali oznake, dolžine, vrednosti (Basic Encoding Rules or Tag, Length, Value, okrajšano BER-TLV in za to prijavo okrajšano kot TLV), kot je opisano v ISO/IEC 8825 (1990). TLV podatkovni objekti obstojijo iz dveh ali treh zaporednih polj: polje oznak označuje njihov razred, tip in število, polje dolžine opredeljuje velikost podatkov in, Če dolžina ni enaka nič, polje vrednosti, ki vsebuje podatke. Ker so odzivi ICC kartice na splošno omejeni po velikosti na npr. 255 zlogov ali manj, obstoji največja velikost TLV objekta v skladu s predloženim izumom. Polje oznak je prednostno eden ali dva zloga, polje dolžine je prednostno en ali dva zloga in tako je največja velikost polja vrednosti prednostno 252 zlogov (polje te dolžine zahteva dva dolžinska zloga, kot je pojasnjeno spodaj). Prvi zlog polja oznak je razbit v tri polja. Bita 7 in 8 opredeljujeta razred predmeta. Bit 6 določa, ab polje vrednosti vsebuje preproste podatke ali je skonstruiran objekt, ki obstoji iz drugih TLV kodiranih polj. Konstruirani objekti se tudi imenujejo vzorci. Ti povzročijo, da se njihova polja vrednosti razpoznajo po TLV zaporedjih, ko se jih sreča. Biti 1 do 5 opredeljujejo številko objekta, ali pa, če so vsi ti biti nastavljeni, nakazujejo, da sledijo dodatni zlogi oznak. Dodatni zlogi oznak imajo svoj osembitni nabor, če sledi še drug zlog. Vsi biti v do dveh zlogih se uporabijo, da se določi ime oznake. Polje dolžine obstoji iz enega do treh zaporednih zlogov, značilno dveh. Če je bit 8 prvega zloga 0, potem biti 1 do 7 nakazujejo velikost polja vrednosti. Če bit 8 prvega zloga 1, potem biti 1 do 7 nakazujejo število zlogov, ki sledijo. Sledeči zlogi, če sploh kateri, nakazujejo velikost polja vrednosti in se pojavljajo z najbolj značilnim prvim bitom. Polje vrednosti lahko obstoji iz preprostih podatkov ali pa je konstruirano z dodatnimi TLV kodiranimi zaporedji. Če se nastavi bit 6 prvega zloga v polju oznak, potem je vrednost polja vsebuje dodatna TLV zaporedja. Preprosti objekti se lahko kodirajo v nekaj različnih formatih: binarno kodirani decimalni grižljaji z vodilnimi ničlami ali zaključnimi grižljaji z nastavljenimi vsemi biti, binarna števila ali zaporedja zlogov, zaporedja znakov alfanumeričnih ali ASCII zlogov ali z neopredeljenimi formati. Z vsakim se ravna drugače, glede na to, kako se uporablja. ICC 5 lahko uporablja tudi spisek podatkovnih objektov (Data Object List, okrajšano DOL), da se zahtevajo vrednosti opredeljenih imen oznak. Kartica 5 pošlje DOL, ki obstoji iz spiska polj oznak in dolžin, in terminal 1 vrne ustrezna polja vrednosti brez ločil.VM 20 preferentially deals with data objects using Basic Encoding Rules or Tag, Length, Value, abbreviated BER-TLV and abbreviated as TLV for this application, as described in ISO / IEC 8825 (1990). TLV data objects consist of two or three consecutive fields: the tag field indicates their class, type and number, the length field specifies the size of the data and, if the length is not zero, the value field containing the data. Because ICC card responses are generally limited in size to e.g. 255 syllables or less, there is a maximum TLV object size according to the present invention. The tag field is preferably one or two syllables, the length field is preferably one or two syllables, and thus the maximum size of the value field is preferably 252 syllables (this length field requires two length syllables, as explained below). The first tag field is broken into three fields. Bits 7 and 8 define the class of the object. Bit 6 specifies whether the ab value field contains simple data or is a constructed object consisting of other TLV encoded fields. Constructed objects are also called patterns. These cause their value fields to be recognized by TLV sequences when encountered. Being 1 to 5 defines the object number, or, if all of these are set, indicates that they follow additional tag syllables. Additional tag syllables have their 8th set if another syllable follows. All be in up to two syllables are used to determine the name of the tag. The length field consists of one to three consecutive syllables, typically two. If bit 8 of the first syllable is 0, then being 1 to 7 indicates the size of the value field. If bit 8 of the first syllable is 1, then 1 to 7 indicate the number of syllables that follow. The following syllables, if any, indicate the size of the value field and appear with the most characteristic first bit. The value field can either consist of simple data or be constructed with additional TLV encoded sequences. If bit 6 of the first syllable in the tag field is set, then the value of the field contains additional TLV sequences. Simple objects can be encoded in several different formats: binary encoded decimal nodes with leading zeros or finite nodes with all bits set, binary numbers or syllable sequences, alphanumeric or ASCII syllable sequences, or undefined formats. Each one is treated differently depending on how it is used. ICC 5 can also use the Data Object List (abbreviated DOL) to request the values of defined tag names. Card 5 sends a DOL consisting of a list of tag and length fields, and terminal 1 returns the corresponding value fields without punctuation.

Vsak TLV, ki se mora uporabiti, mora biti opredeljen s terminalskimi ali uporabniškimi programi, da se vzpostavita njegov podatkovni tip in ime. Ker so terminalski programi in uporabniški programi razviti ločeno, VM 20 v skladu s predloženim izumom uporablja povezano strukturo (uravnoteženo dvojiško drevo), da se dovoli hitro dodajanje in odstranjevanje imen oznak z globalnega spiska imen oznak. To zahteva, da mora biti naslednja zgradba prevedena za vsak TLV v inicializiranem podatkovnem prostoru 41 v modulu, ki opredeljuje TLV:Each TLV to be used must be defined by terminal or user programs to establish its data type and name. Because terminal programs and applications are developed separately, VM 20 according to the present invention utilizes an associated structure (balanced binary tree) to allow the rapid addition and removal of tag names from the global tag name list. This requires that the following structure must be translated for each TLV in the initialized data space 41 in the module defining the TLV:

Link Celica z levimi (dva zloga visokega reda) in desnimi (dva zloga nizkega reda) komponentami zagotavljajo povezave z elementi drevesa.Link A cell with left (two high order syllables) and right (two low order syllables) provides links to tree elements.

Linkleft 16-bitni offset s predznakom od tega TLV dostopnega parametra do dostopnega parametra TLV zapisa, katerega oznaka je numerično manjša kot oznaka tega zapisa. Vrednost nič nakazuje, da ta TLV ni povezan s TLV z oznako, ki je numerično manjša kot le-ta.Linkleft 16-bit offset with a sign from this TLV access parameter to an access parameter TLV record whose tag is numerically smaller than the tag of this record. A value of zero indicates that this TLV is not associated with a TLV with a tag that is numerically smaller than that TLV.

Linkright 16-bitni offset s predznakom od tega TLV dostopnega parametra do dostopnega parametra TLV zapisa, katerega oznaka je numerično večja kot oznaka tega zapisa. Vrednost nič nakazuje, da ta TLV ni povezan s TLV z oznako, ki je numerično večja kot le-ta.Linkright 16-bit offset with a sign from this TLV access parameter to an access parameter TLV record whose tag is numerically larger than the tag of this record. A value of zero indicates that this TLV is not associated with a TLV with a tag that is numerically larger than that TLV.

Tag Dvozložni niz, katerega big-endian (sistem, v katerem je zlog najvišjega reda v celici na najnižjem naslovu in se prvi pojavi v toku podatkov) numerična vrednost je TLV oznaka.Tag A two-string string whose big-endian (the system in which the highest order syllable in the cell is at the lowest address and first appears in the data stream) is a numeric value TLV tag.

Type Posamezni zlog, ki opredeljuje nazorno informacijo.Type A single syllable defining visual information.

Reserved Zlog, ki mora biti s prevajalnikom 71 inicializiran na nič.Reserved A syllable that must be initialized to zero with compiler 71.

Data Celica, ki drži za VM značilno informacijo, ki vključuje dostop do polja dolžine in polja vrednosti za ta TLV. To polje mora biti s prevajalnikom 71 inicializirano na nič. Sistem mora tudi vzdrževati statusni zlog za vsak TLV. To je lahko rezervirani zlog v zgornji strukturi. Bit nizkega reda v tem zlogu naj bo postavljen, če je bila TLV prirejena vrednost kot rezultat tega, daje bil v zaporedju, ki je bil procesiran z žetoni TLVPARSE ali TLVSTORE. Namen vzdrževanja prirejenega statusa je v tem, da se identificirajo TLV vrednosti, ki vsebujejo veljavne podatke (ki so lahko nič) in jih razlikujejo od TLV vrednosti, ki nikoli niso bile nastavljene in zato niso veljavne. VM jedro upravlja globalno listo TLV oznak, s tem da upravlja listo kazalcev do inicializiranega podatkovnega prostora 41, ki vzdržuje njihove dejanske definicije, kot je bilo zgoraj opisano. Ko se modul naloži, se njegove TLV definicije dodajo tej listi kot del njegove inicializacije; ko se razloži, se morajo njegove TLV definicije avtomatsko odstraniti s spiska s pomočjo VM 20. Izjema se lahko uporabi, če modul vsebuje TLV definicijo, ki že obstoja. Naslov za Link polje, ki je bilo opisano zgoraj, se vrne kot dostopni parameter za TLV reference. Programer naj ne dostopa do teh polj neposredno niti naj ne dela privzetkov o njihovih vsebinah, potem ko je VM 20 opredelil TLV definicije.Data Cell holding VM-specific information that includes access to the length and value fields for this TLV. This field must be initialized to zero with compiler 71. The system must also maintain a status syllable for each TLV. This may be a reserved syllable in the structure above. The low order bit in this syllable should be set if TLV was a modified value as a result of being in a sequence that was processed with TLVPARSE or TLVSTORE tokens. The purpose of maintaining custom status is to identify TLV values that contain valid data (which can be null) and distinguish them from TLV values that were never set and are therefore not valid. The VM kernel manages the global TLV tag list by managing the list of pointers to the initialized data space 41, which maintains their actual definitions as described above. When a module is loaded, its TLV definitions are added to this list as part of its initialization; when explained, its TLV definitions should be automatically removed from the list using VM 20. An exception can be used if the module contains a TLV definition that already exists. The address for the Link field described above returns as an access parameter for TLV references. The programmer should not access these fields directly or make any defaults on their contents after VM 20 has defined TLV definitions.

Reference za TLV definicije v izvirni kodi so prevedene kot bodisi neposredne reference za definicijske strukture, ki so bile opredeljene zgoraj, ali numerične vrednosti oznak. Znotraj določenih binarnih TLV definicij so posamezni zlogi ali skupine bitov definirani tako, da imajo določene pomene. Na njih se sklicuje kot na TLV bite. Reference za TLV bite se lahko prevedejo z dobesednim usmeijanjem na zlog znotraj polja vrednosti za TLV. Bit 0 je najmanj signifikanten bit v prvem zlogu, bit 7 je najbolj signifikanten bit istega zloga, bit 8 je najmanj signifikanten bit drugega zloga itd.References to TLV definitions in source code are translated as either direct references to the definition structures defined above or numeric tag values. Within certain binary TLV definitions, individual syllables or groups of bits are defined to have definite meanings. They are referred to as TLV bits. References to TLV bits can be translated by literally laughing at a syllable within the TLV value field. Bit 0 is the least significant bit in the first syllable, bit 7 is the most significant bit of the same syllable, bit 8 is the least significant bit of the second syllable, etc.

Podatki, ki so pripisani TLV definiciji, so izpostavljeni uporabi preko 252-zlogovnega začasnega polnilnega področja, ki ga vzdržuje VM 20 v obliki okna podatkovne baze (glej sl. 7). Dovoljeno je, da uporabniški program spremeni vsebine tega začasnega polnilnega področja. Če je spremembe treba zadržati, morata biti naslov in dolžina znotraj začasnega polnilnega področja predani nazaj TLVSTORE žetonu. Naslov in vsebine začasnega pomnilnega področja lahko postanejo neveljavni, ko se zatem izvaja katerikoli TLV žeton.The data attributed to the TLV definition is exposed to use over a 252-syllable temporary fill area maintained by VM 20 in the form of a database window (see Fig. 7). It is permitted for the application program to modify the contents of this temporary fill area. If changes are to be withheld, the title and length within the temporary fill area must be handed back to the TLVSTORE token. The title and contents of the temporary storage pool may become invalid when any TLV token is executed afterwards.

Kot del varnostnega upravljanja kartic 5, ki so vstavljene v bralnik 5, se izvede preverjanje kartic 5, za katere se ve, da so izgubljene ali neveljavne. Spisek takih kartic je poznan kot črna ali vroča kartična Usta. Upravljanje s črno ali vročo kartično listo se zagotovi z naborom opredeljenih funkcij, ki so značilne za upravljanje z veliko vročo kartično listo. Značilen spisek lahko vsebuje 10000 primarnih kontnih številk (PAN), pri čemer ima vsaka do 10 zlogov ali 20 binarno kodiranih decimalnih (BCD) cifer. PAN postavke so shranjene v stisnjenem numeričnem (cn) formatu, desno zapolnjevano z heksadecimalnimi FH-ji. Ker ima PAN največ 19 BCD cifer, bo postavka v seznamu vedno zapolnjevana z vsaj enim FH. Pri iskanju po vročem kartičnem seznamu se FH-ji v postavki po seznamu razumejo kot divje karte ali cifre, za katere ne skrbi, vendar katerikoli FH-ji v PAN, ki se uporabljajo kot vnos, niso divje karte. Divje karte se lahko pojavijo le na desnem koncu postavke. Z PAN se razume, da se navede na vročem kartičnem seznamu, če obstoji postavka po seznamu, ki je identična do prvega FH v postavki.As part of the security management of the cards 5 inserted in the reader 5, a check of the cards 5 known to be lost or invalid is performed. The list of such cards is known as the Black or Hot Card Mouth. Black or hot card management is provided by a set of defined features that are specific to managing a large hot card. A typical list can contain 10,000 primary account numbers (PANs), each with up to 10 syllables or 20 binary coded decimal (BCD) digits. PAN items are stored in compressed numeric (cn) format, filled to the right with hexadecimal FHs. Because PAN has a maximum of 19 BCD digits, the item in the list will always be filled with at least one FH. When searching through a hot card list, FHs in a list item are understood to be wild cards or digits that are not cared for, but any FHs in the PAN used as an entry are not wild cards. Wild cards can only appear at the right end of the item. PAN is understood to be on the hot card list if there is an item on the list identical to the first FH in the item.

Drugi del varnostnega upravljanja je zagotavljanje kriptografskih storitev za kodiranje in dekodiranje podatkov. Uporabljajo se lahko poljubni primerni postopki za kodiranje. Posebej so predvideni za VM 20 trije kodirni algoritmi: modulo množenje in modulo potenciranje, ki se uporabljata v RS A algoritmu; in algoritem SHA-1 za varno razprševanje, vendar izum ni omejen na le-te. Modulo množenje izvaja množenje dveh nepredznačenih vrednosti x in y, kjer se produkt reducira ob uporabi modula Z. Formula se glasi:The second part of security management is the provision of cryptographic services for data encryption and decoding. Any suitable encoding procedures may be used. Three encoding algorithms are specifically provided for VM 20: module multiplication and module potentiation, which are used in the RS A algorithm; and the SHA-1 algorithm for safe scattering, but the invention is not limited thereto. Modulo multiplication performs the multiplication of two unspecified values of x and y, where the product is reduced using module Z. The formula is:

rezultat = mod(x*y,z).result = mod (x * y, z).

Vnesene vrednosti (x,y,z) imajo vse enako dolžino. Predstavljene so z zlogovnimi nizi in so lahko poljuben mnogokratnik od 8 do in vključno 1024 bitov. Te vrednosti morajo biti v big-endian zlogovnem redu.The values entered (x, y, z) all have the same length. They are represented by syllable strings and can be any multiple of 8 up to and including 1024 bits. These values must be in big-endian syllable order.

Algoritem Secure Hash Algorithm (SHA-1) je standardiziran kot FIPS 180-1. SHA-1 zavzame kot vhodna sporočila poljubno dolžino in tvori 20-zlogovno razpršeno vrednost. Modulo potenciranje dvigne nepredznaČeno vrednost x na potenco, ki je podana z nepredznačenim eksponentom y, kjer se produkt reducira ob uporabi modula Z. Velja formula:The Secure Hash Algorithm (SHA-1) algorithm is standardized as FIPS 180-1. SHA-1 takes arbitrary lengths of incoming messages to form a 20-syllable scatter value. Modulus potentiation raises an unspecified value of x to the potency given by an unspecified exponent y, where the product is reduced using module Z. The formula applies:

rezultat = mod(xAy,z).result = mod (x A y, z).

Vhodna vrednost x in modul z sta predstavljena z zlogovnima nizoma in sta lahko poljubni mnogokratnik od 8 bitov do in vključno 1024 bitov. Vrednosti morajo biti v big-endian zlogovnem redu.The input value x and module z are represented by syllable strings and can be any multiple of 8 bits up to and including 1024 bits. Values must be in big-endian syllable order.

Storitve in zato programska oprema in celo I/O priprave se lahko spreminjajo s časom v odvisnosti od zahtev trga. Kadar se zahtevajo večje spremembe, se lahko izvede posodabljanje programske opreme v terminalu 1 ročno ali na daleč preko telekomunikacijskega omrežja. Za storitve, ki pa so odvisne od uporabnika, je prednostno, da se uporabi dinamičen vendar varen postopek izvajanja manjših ali za uporabnika značilnih posodobitev za storitve, ki jih zagotavlja terminal 1. Softverski mehanizem vtiča in vtičnice v skladu s predloženim izumom zagotavlja fleksibilen in varen način sprotne konfiguracije različnih modulov, ki tvorijo terminalske programe in uporabe. Kot je prikazano shematsko na sl. 8, se lahko v transakcijskem sistemu v skladu s predloženim izumom opredeli število postopkov (nazvanih vtičnice 60), ki jih lahko vstavi uporabniški programer (in so zato vami, ker je pod nadzorom pridobitelja in pod nadzorom plačilnega sistema) v uporabo 61, 62, da delujejo kot hranitelji prostora za dodajanje dodatne ojačitvene kode (imenovane vtiči 66) med transakcijsko obdelavo. Vsa dodatna koda, ki jo je treba vtakniti v vtičnico 60, mora biti napisana s pomočjo nabora žetonov za VM 20. Vtičnice 60 so prednostno nameščene na različnih primernih točkah v obstoječih terminalskih uporabah 61, 62 ali celo v samem terminalskem programu. Uporabljajo se, da se nanašajo na knjižnične funkcije, in se lahko celo pojavijo znotraj knjižnične funkcije, če plačilni sistem predvideva potrebo po spremembi načina, po katerem deluje knjižnična funkcija. Vtičnice 60 so inicializirane na vdelana obnašanja s pomočjo VMServices and therefore software and even I / O preparations may change over time depending on market requirements. When major changes are required, software updates in Terminal 1 can be performed manually or remotely over a telecommunications network. For user-dependent services, however, it is preferable to use a dynamic but secure procedure for performing minor or user-specific updates for the services provided by Terminal 1. The software mechanism of the plug and socket according to the present invention provides a flexible and secure a way of real-time configuration of the various modules that make up terminal programs and uses. As shown schematically in FIG. 8, the transaction system according to the present invention may specify the number of processes (called sockets 60) that can be inserted by the user programmer (and therefore to you because it is under the control of the acquirer and controlled by the payment system), 61, 62, that they act as storehouses for adding additional reinforcement code (called plugs 66) during transactional processing. All additional code to be inserted into socket 60 must be written using a set of tokens for VM 20. Sockets 60 are preferably located at various appropriate points in existing terminal uses 61, 62, or even in the terminal program itself. They are used to refer to library functions and may even appear within a library function if the payment system anticipates the need to change the way the library function works. Sockets 60 are initialized to embedded behaviors using the VM

20. Če terminal ne podvzame nobenega dodatnega dejanja, bo vdelano obnašanje vtičnic 60 v tem, da ne storijo ničesar, ko so izvedene (to pomeni ne-delovanje).20. If the terminal does not take any additional action, the behavior of sockets 60 will be embedded in that they do nothing when they are performed (i.e. non-operation).

Vtiči 66 vključujejo izvedljivo kodo, kije napisana z žetoni, ki jih podpira terminal 1, in se lahko vstavi pri točkah, ki jih definirajo vtičnice, da se ojači vdelana terminalska logika. Vtiči 66 lahko že obstojijo v terminalu 1 v vtični knjižnici 63, ki jo je treba priklicati iz ICC 5, npr. identifikatorji 67 vtičnica-vtič v ICC 5 in logika v terminalu 1. Identifikatorji 67 vtičnica-vtič vključujejo sklicevanje tako na vtič kot na vtičnico, ki jo je treba zapolniti z vtičem, pri čemer vtič ni na ICC 5 temveč v knjižnici 63. Vtiči 66 tudi lahko pridejo iz vhodne priprave 65 (takšne, kot je ICC 5 ali glavni sistem, ki je priključen na terminal 1), vendar le če soglašajo člani plačilnega sistema, npr. izdajatelj, pridobitelj in trgovec.Plugs 66 include executable code written with tokens supported by Terminal 1 and can be inserted at points defined by sockets to reinforce the embedded terminal logic. Plugs 66 may already exist in terminal 1 in the plug library 63 to be retrieved from ICC 5, e.g. 67 socket-socket identifiers in ICC 5 and logic in terminal 1. Socket-socket identifiers 67 include references to both the socket and the socket to be filled with the socket, with the socket not ICC 5 but library 63. Sockets 66 they can also come from input device 65 (such as ICC 5 or the main system connected to terminal 1), but only if payment system members agree, e.g. issuer, acquirer and trader.

Ob zaključku transakcije se vtičnice 60 povrnejo vsvoja prvotna uporabniška vdelana obnašanja. V skladu s predloženim izumom je prednostno, da ICC 5 ne vključuje vseh uporab temveč le vtiče 66, ki ojačujejo obstoječe terminalske uporabe, ker zahtevajo manj pomnilnika.At the conclusion of the transaction, sockets 60 will return to their original user embedded behavior. According to the present invention, it is preferred that ICC 5 does not include all uses but only plugs 66 that amplify existing terminal uses because they require less memory.

Vtičnice 60 držijo izvajalske kazalce, ki so tudi poznam kot kazalci postopka in ki dovoljujejo tvorjenje postopka, katerega obnašanje se lahko spreminja med časom izvajanja. Na vtičnice 60 se lahko gleda (in se izvajajo) kot polje postopkov, do katerih se dostopi s pomočjo DOSOCKET žetona, ki zavzame številko vtičnice kot vrinjeni zlog, ali s pomočjo IDOSOCKET žetona, ki zavzame Številko vtičnice iz podatkovnega sklada 27.Sockets 60 hold execution pointers, also known as process indicators, that allow the creation of a process whose behavior may change during run time. Sockets 60 can be viewed (and executed) as a field of operations accessed using the DOSOCKET token that retrieves the socket number as a stacked syllable, or the IDOSOCKET token that retrieves the socket number from the data stack 27.

Vtičnice 60 omogočajo ponovno konfiguracijo terminalskega programa ali uporabo, da se zagotovijo spremembe ali ojačanje toka transakcijskega obdelovanja. Alternativno lahko vtičnice v ICC-jih-5 dovoljujejo nadgraditev ICC-jev 5 s strani terminala 1. Vtičnice 60 zagotavljajo vmesnik med moduli programske opreme in postopki, ki lahko pridejo od nekaj različnih virov (pridobitelj, izdajatelj in drugo). Ker imata pridobitelj in izdajatelj pogodbeno razmerje, se lahko strinjata, da se uporabijo določene vtičnice 60, ki jih zagotovi pridobiteljev program v terminalu, tako da izdajatelj lahko razširi obnašanje programa, npr. tako da zagotovi funkcijo zvestobe (zračne milje, kuponi in drugo).The sockets 60 allow the terminal program to be reconfigured or used to provide changes or amplification of the transaction processing flow. Alternatively, sockets in ICCs-5 may allow ICCs 5 to be upgraded by terminal 1. Sockets 60 provide an interface between software modules and processes that may come from several different sources (acquirer, publisher, and more). Because the acquirer and the issuer have a contractual relationship, they may agree to use certain sockets 60 provided by the acquirer's program at the terminal so that the issuer can extend the behavior of the program, e.g. by providing a loyalty feature (air miles, coupons, and more).

Modul lahko opredeli, da se vtičnice 60 avtomatično ponovno konfigurirajo, ko se naloži za izvajanje, ali pa klientov program lahko programatično med delovanjem vtičnici pripiše nov postopek. Če varnostni pogoji to dopuščajo, se vtičnicam v uporabi lahko pripiše vdelano obnašanje in se lahko nato ponovno opremijo z vtiči z novimi postopki od sledečih modulov, da se zagotovijo specializirana obnašanja. Da se izogne neopredeljenim situacijam, je prednostno, da vsi postopki, ki so usmerjani za uporabo določene vtičnice 60, nimajo učinka podatkovnega slada (razen za ničlo vtičnice, kot bo pojasnjeno pozneje). To zagotavlja programsko kontinuiteto ne glede na to, katera usmerjana verzija postopka se izvaja. Vdelano delovanje vseh vtičnic 60 pred spremembo mora biti vsaj tisto za ne-delovanje.The module may specify that sockets 60 are automatically reconfigured when loaded for execution, or the client program may assign a new procedure programmatically during socket operation. If the safety conditions so permit, in-service sockets may be assigned embedded behavior and may then be retrofitted with plug-ins with new procedures from the following modules to ensure specialized behaviors. In order to avoid undetermined situations, it is preferable that all operations directed to use a particular socket 60 have no data malt effect (except for the socket zero, as will be explained later). This ensures programmatic continuity regardless of which directed version of the process is running. The built-in operation of all sockets 60 prior to the change must be at least that of non-operation.

Pridobitelj lahko dovoli transakcijske ojačitve s kodo na ICC 5 kot del CSS, na katerega seje sklicevalo zgoraj. Če je tako, se lahko izvaja z vtičnicami 60. Knjižnica ali izvedljivi modul lahko vključujeta definicijo novih vtičnic 60 za poznejše vtiče 66, ki prihajajo od ICC 5. V tem primeru bi modul definiral vtičnico 60 in nato uporabil žeton SETSOCKET, da se ji pripiše vdelano obnašanje (pogosto ničelno obnašanje).The acquirer may allow transactional reinforcements with code on ICC 5 as part of the CSS referenced above. If so, it can be implemented with sockets 60. The library or executable module may include the definition of new sockets 60 for later plugs 66 coming from ICC 5. In this case, the module would define socket 60 and then use the SETSOCKET token to attach it embedded behavior (often zero behavior).

vv

Ce nadzor dostopa to dovoljuje, bi lahko ICC 5 pozneje naložila vtič 66, ki vključuje žetone, ki definirajo novo obnašanje in nato uporabila SETSOCKET žeton, da se shrani v isti vtičnici 60 in pri tem prevozi vdelano obnašanje.If access control allows, ICC 5 could later load a plug 66 that includes tokens that define a new behavior and then use the SETSOCKET token to be stored in the same socket 60, transporting the embedded behavior.

Modificiranje obnašanj je primemo in fleksibilno, vendar lahko zlonamernim osebam da možnost, da modificirajo obnašanje v svoj prid. Posebna skrb se zahteva za vtiče 66 od ICC 5, če lahko modificirajo obnašanje vtičnice ali se namestijo v programski tok pred uspešnim preverjanjem pristnosti kartice. Zaradi varnosti lahko terminalska programska oprema v skladu s predloženim izumom opredeli postopek nadzora vtičnice, ki nadzira, ali se lahko ali se ne more vsaka posamezna vtičnica modificirati. Tako se lahko npr. strogo nadzoruje s strani pridobitelja izvajanje kode, ki je naložena s kartice ICC 5, tako da ICC 5 ne more biti vtaknjena v nobeno vtičnico, dokler niso na kartici bili izvedeni vsi programi potrjevanja, npr. preverjanje elektronskega podpisa.Behavioral modification is nimble and flexible, but it can give malicious people the ability to modify behavior to their advantage. Special care is required for plugs 66 of ICC 5 if they can modify the behavior of the socket or be installed in the software stream before successful card authentication. For security, the terminal software according to the present invention can define a socket control process that controls whether or not each individual socket can be modified. Thus, e.g. the acquirer strictly controls the execution of the code loaded from the ICC 5 card so that the ICC 5 cannot be plugged into any socket until all validation programs have been executed on the card, e.g. electronic signature verification.

V skladu s predloženim izumom varnost vtičnice vključuje opredelitev postopka nadziranja vtičnice, ki gaje treba uporabiti na sledečih poskusih vtikanja v vtičnico 60 (SETPLUGCONTROL žeton). Postopek PLUGCONTROL mora biti napisan tako, da se izvede povratek za določeno številko vtičnice, ali naj bo sedaj tista vtičnica 60 modificirana. Ko se nato obdela modulov seznam vtičnic med nalaganjem modula ali ko se vtičnica 60 programatično zapolni, VM 20 najprej izvaja uporabniško napisan PLUGCONTROL postopek, da se določi, ali se vtičnica 60 lahko v resnici zapolni z vtičem, in zadrži obstoječe obnašanje vtičnice 60, če se ne more.In accordance with the present invention, socket security includes the definition of an socket monitoring process to be used in the following socket attempts at socket 60 (SETPLUGCONTROL token). The PLUGCONTROL procedure must be written in such a way that a return for a specific socket number is returned, or that socket 60 should now be modified. When the list of sockets is then processed during module loading or when socket 60 is filled programmatically, VM 20 first executes a user-written PLUGCONTROL process to determine if socket 60 can actually be filled with socket and retain the existing socket behavior 60 if can not.

Modul, ki želi omejiti dostop do katerekoli vtičnice 60, preden se naloži drugi modul zaradi izvajanja, lahko izvede postopek, ki je opredeljen z SETPLUGCONTROL žetonom v z vtičem zapolnljivo vtičnico (vtičnica nič) z izbrano PLUGCONTROL funkcijo kot parametrom, preden se naloži tisti modul. Ko se obdelajo seznami vtičnic za naslednji modul in katerekoli druge module, ki so naloženi za njegovo izvajanje, naj vtičnice 60, do katerih je dostop zavrnjen s PLUGCONTROL postopkom, ki ga opredeli uporabnik, zadržijo svoje obstoječe obnašanje. To stanje naj se ne razume kot napaka. Koda, ki želi omejiti dostop do katerekoli vtičnice, preden se izvaja nadaljnja koda, lahko izvaja postopek, ki je opredeljen z žetonom SETPLUGCONTROL z izbranim postopkom PLUGCONTROL kot parametrom v primerni točki programskega toka. Programska zahteva za zapolnitev vtičnice 60 lahko določi, ah je bila zahteva sprejeta ali zavrnjena s klicem k SETSOCKET. Poljubna vtičnica, katere obnašanje je bilo modificirano bodisi s postopkom nalaganja modula ali dinamično s programiranim ukazom, se obnovi na obnašanje, ki ga je imela, ko je bil naložen za izvajanje zadnji izvedljivi modul kot del ustavitvenega postopka, ki je shranjen znotraj postopka, kije opredeljen z žetonom za izvajanje modula (EXECUTEMODULE).A module that wishes to restrict access to any socket 60 before loading another module for execution may execute a process defined by the SETPLUGCONTROL token in a plug-in socket (socket zero) with the PLUGCONTROL function selected as a parameter before loading that module. When lists of sockets for the next module and any other modules loaded for its implementation are processed, sockets 60 that are denied access by a user-defined PLUGCONTROL procedure should retain their existing behavior. This condition should not be interpreted as a mistake. A code that wants to restrict access to any socket before executing further code can execute a process defined by a SETPLUGCONTROL token with the PLUGCONTROL procedure selected as a parameter at the appropriate point in the program stream. The software request to fill socket 60 may determine if the request was accepted or rejected by a call to SETSOCKET. Any socket whose behavior has been modified either by the module loading process or dynamically by a programmed command is restored to the behavior it had when it was loaded to execute the last executable module as part of a stopping process stored inside a process that defined by the module execution token (EXECUTEMODULE).

Kot primer funkcije, ki je značilna za pridobitelja, predpostavimo, da transakcijska koda vključuje frazo 27 SOCKET LOYALTY, ki opredeljuje LOYALTY in jo naredi razpoložljivo za poznejše izvajanje. Pridobiteljeva koda transakcijskega programa nadalje opredeljuje kodo, ki nastavi dovolitveno oznako za to vtičnico le, če je uporabnik isti kot pridobitelj in transakcijski znesek presega določeni minimum Med transakcijo je prisoten ukaz, ki včitava poljubno kodo iz ICC 5. Del ICC kode bi lahko opredelil REWARD program, ki posodablja uporabniške milje za pogoste letalske potnike in nato poskuša izvajati frazo PLUG REWARD INTO LOYALTY. Ta fraza povezuje izvajanje REWARD z izvajanjem LOYALTY. Če se oznaka LOYALTY za dovoljenje vtičnice nastavi v skladu z zgornjo logiko, potem pride do SETSOCKET; sicer bo LOYALTY zadržala svoje vdelano obnašanje kot npr. ne-delovanje. Ko uporabniška koda izvaja svojo LOYALTY funkcijo pozneje, bo potem dovoljevala ICC opredeljeno REWARD le v skladu s pravili, kot jih definira pridobitelj.As an example of an acquirer-specific function, suppose the transaction code includes the phrase 27 SOCKET LOYALTY, which defines LOYALTY and makes it available for later execution. The acquirer's transaction program code further defines a code that sets the permission tag for this socket only if the user is the same as the acquirer and the transaction amount exceeds a certain minimum. A transaction is present that reads any code from ICC during the transaction. a program that updates user miles for frequent air travelers and then attempts to implement the PLUG REWARD INTO LOYALTY phrase. This phrase links the implementation of REWARD to the implementation of LOYALTY. If the LOYALTY tag for socket permission is set according to the logic above, then SETSOCKET occurs; otherwise, LOYALTY will retain its embedded behavior like e.g. non-action. When the user code performs its LOYALTY function later, it will then allow ICC defined REWARD only according to the rules defined by the acquirer.

Na značilen način ima lahko VM 20, ki teče na terminalu 1, omejeno število vtičnic 60, npr. 64 vtičnic, ki so oštevilčene od 0 do 63. V svoji najbolj osnovni obliki bi lahko bil skeletni terminalski program sestavljen približno v celoti iz vtičnic 60 in osnovnega programskega toka od vtičnice do vtičnice. Vtičnice 60 bi bile nato zapolnjene s postopki obdelave transakcij z drugimi moduli, naloženimi med časom izbiranja uporabe bodisi s strani terminala 1 ali s strani ICC 5. Vtičnicam 60, ki se pojavljajo v skeletnem programu pred izbiro uporabe, se pripiše vdelano ničelno obnašanje s strani TRS. Ce se v dano vtičnico 60 vtakne postopek z več kot enega modula, zadnja operacija preprosto nadomesti katerokoli prejšnjo.In a typical manner, VM 20 running at terminal 1 may have a limited number of sockets 60, e.g. 64 sockets numbered from 0 to 63. In its most basic form, a skeletal terminal program could be composed approximately entirely of sockets 60 and a basic program stream from socket to socket. The sockets 60 would then be filled with transaction processing operations with other modules loaded during use-select time either by terminal 1 or by ICC 5. Sockets 60 appearing in the skeleton program prior to use selection are assigned an embedded null behavior by TRS. If a procedure from more than one module is plugged into a given socket 60, the last operation simply replaces any previous one.

Nalaganje modula, ravnanje z modulom in izvajanjeModule loading, module handling, and execution

Koda, ki je napisana, da teče na VM 20 (ki vključuje terminalsko rezidenčne usluge, prevedene kot žetonski moduli), lahko privzame, da je sledeča vključitev računalniške opreme za terminalsko specifično jedro, podpirajoče VM 20, izvedla katerokoli potrebno terminalsko specifično vključitveno inicializacijo in je začela izvajanje glavne izvajalne zanke terminalsko rezidenčnih uslug (TRS) preko postopka nalaganja modula, ki je opisan spodaj. Če se izstopi iz glavne obdelovalne zanke za TRS, se nadzor povrne v terminalsko specifično plast programske opreme, ki je odgovorna za ponovno nalaganje TRS in ponoven vstop v glavno zanko. Vsi VM viri se sprostijo, ko se izstopi iz TRS, razen podatkov v trajnih podatkovnih bazah. Sproščanje vira se zgodi, ko se terminalu odklopi napajanje, TRS izstopi ali pa se TRS ponovno zažene s terminalskim operacijskim sistemom (če je kakšen). Če se je pridobila posodobljena verzija kateregakoli TRS modula, odkar se je zadnjič vstopilo v TRS glavno zanko, se sprostijo vsi TRS viri, vključno s podatki v njegovih obstojnih podatkovnih bazah, ko se izstopi.Code written to run on VM 20 (which includes terminal resident services translated as token modules) may assume that the subsequent inclusion of terminal specific kernel hardware supporting VM 20 has performed any necessary terminal-specific initialization initialization and has initiated the implementation of the Master Terminal Loop of Terminal Resident Services (TRS) through the module loading process described below. If it exits the main processing loop for the TRS, control returns to the terminal-specific software layer responsible for reloading the TRS and re-entering the main loop. All VM resources are released when TRS exits except for data in persistent databases. Source release occurs when the terminal is disconnected from power, the TRS goes out, or the TRS restarts with the terminal operating system (if any). If an updated version of any TRS module has been obtained since it last entered the TRS main loop, all TRS resources are released, including data in its persistent databases when it exits.

Programska oprema, ki teče na terminalu 1 ali ICC 5, se upravlja z VM 20 v obliki enega ali več modulov, pri čemer vsak modul lahko vsebuje katerokoli iz naslednjih kategorij informacije:Software running on Terminal 1 or ICC 5 is managed by VM 20 in the form of one or more modules, each module may contain any of the following categories of information:

• koda v obliki žetona • inicializirani podatki • dodelitev neinicializiranih podatkov • definicije podatkovnih baz • TL V definicije • seznam vtičnic • medsebojne odvisnosti modulov.• token code • initialized data • assignment of uninitialized data • database definitions • TL V definitions • socket list • module interdependencies.

Vsak modul je prednostno dostavljen terminalu 1 v formatu (MDF) za dostavljanje modulov. VM 20 vzdržuje trajno odlagališče v bralno/pisalnem trajnem pomnilniku 18 za module, ki so bili dostavljeni in inštalirani na terminalu 1. Vsak modul v odlagališču mora biti indentificiran z identifikatorjem modula ali modulskim ID. Po registraciji v modulskem odlagališču je informacija o modulu razpoložljiva preko trajne podatkovne baze o modulih, ki jo vzdržuje VM 20 in je shranjena v trajnem pomnilniku 18. V skladu s predloženim izumom VM 20 ščiti module v odlagališču pred modificiranjem s strani kakega drugega modula, ker tam ni žetonov za takšen dostop. Nadalje VM 20 zagotavlja, da se v odlagališče namesti nova verzija danega modula, medtem ko modul z isto modulsko ID izstopi iz izvajalskih namenov.Each module is preferably delivered to Terminal 1 in Format (MDF) for module delivery. VM 20 maintains a persistent repository in read / write persistent memory 18 for modules delivered and installed at terminal 1. Each module in the repository must be identified by a module identifier or module ID. After registering in a module repository, module information is available through a persistent module database maintained by VM 20 and stored in persistent memory 18. According to the present invention, VM 20 protects modules in the repository from being modified by any other module because there are no tokens for such access. Furthermore, VM 20 ensures that a new version of the given module is installed in the repository, while the module with the same module ID exits the execution purposes.

Glede na zasnovo sta dve fazi obdelave modula: najprej se naloži, kar pomeni, da postane dostopen in se opredelijo njegovi podatki, podatkovne baze itd., in drugič, če je izvedljivi modul, začne VM 20 obdelovati njegove žetone, začenši pri njegovi vstopni točki. Postopek izvajanja bo opisan v povezavi z diagramom poteka na sl. 9.According to the design, there are two stages of processing a module: first it is loaded, which means that it becomes accessible and its data, databases, etc. are defined, and second, if it is a viable module, VM 20 starts processing its tokens, starting at its entry point . The implementation process will be described in connection with the flowchart of FIG. 9.

Najprej se v koraku 100 viri označijo in shranijo. Pred izvajanjem modula VM 20 označi njegovo stanje in shrani vse vire, ki so potrebni, da se to stanje lahko pozneje obnovi. To stanje vključuje;First, in step 100, the resources are tagged and saved. Before running VM 20, it flags its status and stores all the resources needed to recover it later. This condition includes;

• Položaj kazalca razširljivega pomnilnika, kazalca okvira in kazalca konca okvira.• The location of the expandable memory pointer, frame pointer, and frame end pointer.

• Vsebine celotnega seznama tekoče vtičnice.• The contents of the complete list of liquid sockets.

• TLV-je, ki so zabeleženi v seznamu imen TLV oznak.• TLVs recorded in the list of TLV tag names.

• Druge notranje podatke, ki jih potrebuje izvajanje VM, da se upravljata aktiviranje in izvajanje modulov.• Other internal data required by the VM implementation to manage module activation and execution.

Nadalje je modul naložen v koraku 102. Modul ID modula za izvajanje se preda podprogramu Load Module, ki bo opisan v nadaljnjem. Če se modul naloži brez napake, kot je določeno v koraku 104, se lahko izvaja in program nadaljuje do koraka 108. Če se v koraku 104 določi napaka, se izvajanje modula opusti in vsi viri, ki so potrebni za izvajanje modula, se sprostijo v koraku 105. To zahteva, da VM 20 izvaja naslednja dejanja;The module is further loaded in step 102. The execution module ID is handed over to the Load Module routine, which will be described later. If the module loads without error as specified in step 104, it can be executed and the program continues until step 108. If an error is fixed in step 104, the implementation of the module is discontinued and all the resources needed to execute the module are released to step 105. This requires VM 20 to perform the following actions;

• Ves neobstojen pomnilnik, ki se zahteva za nalaganje modula, in katerikoli modul, za katerega se zahteva, da se mora naložiti, morajo biti sproščeni in zbrisani na nič. To vključuje, vendar ni omejeno na;• All non-existent memory required to load a module and any module that is required to be loaded must be released and cleared to zero. This includes, but is not limited to;

• Prostor, ki je potreben za inicializirane in neinicializirane podatke vseh modulov.• Space required for initialized and non-initialized data of all modules.

• Prostor, ki je potreben za katerekoli notranje TLV vmesne pomnilnike in strukture podatkov za upravljanje, ki so opredeljene s temi moduli.• The space required for any internal TLV buffers and data management structures defined by these modules.

• Prostor, ki je potreben za katerekoli notranje vmesne pomnilnike in strukture podatkov za upravljanje, ki se zahtevajo s strani podatkovnih baz, ki so opredeljene s temi moduli.• The space required for any internal buffers and management data structures required by the databases identified by these modules.

• Seznam TLV imen, ki je vzdrževan z VM za preslikavo znakov, se mora obnoviti na svoje stanje neposredno pred izvajanjem modula.• The TLV name list maintained by the VM for character mapping must be restored to its state immediately prior to module execution.

• Vsebine seznama vtičnice, ki se vzdržuje z VM morajo biti obnovljene na svoje stanje neposredno pred izvajanjem modula.• The contents of the socket list maintained by the VM must be restored to their state immediately before executing the module.

• Vsebine kazalca okvira, kazalca konca okvira in kazalca razširljivega pomnilnika so obnovljene na svoje vrednosti neposredno pred izvajanjem modula.• The contents of the frame pointer, the frame end pointer and the expandable memory pointer are restored to their values immediately before the module is executed.

Po uspešnem nalaganju modula se v koraku 106 določi, ali je modul izvršljiv ali knjižnični modul. Če gre za zadnji primer, ne pride do izvajanja modula in VM 20 sprosti vse vire v koraku 110, kot je bilo opisano za korak 105. Če je modul izvedljiv, se določi polje, ki opredeljuje vstopno točko modula.After successful loading of the module, it is determined in step 106 whether the module is executable or a library module. In the latter case, the module does not execute and VM 20 releases all resources in step 110, as described for step 105. If a module is feasible, a field defining the module entry point is determined.

VM 20 zažene modul, s tem da pokliče žeton, kije opredeljen s poljem vstopne točke. Nato se v koraku 108 povrsti izvaja vsak žeton. Modul se konča z uporabo RETURN žetona, za katerim se vsi viri sprostijo v koraku 110.VM 20 starts the module by calling the token defined by the entry point field. Then, in each step 108, each token is executed. The module ends with the use of a RETURN token, after which all resources are released in step 110.

Postopek, ki se zahteva za nalaganje modula, podprogram Load Module, bo opisan, sklicujoč se na diagram poteka, ki je prikazan na sl. 10. Če se zazna napaka med nalaganjem modula, to povzroči, da podprogram Load Module takoj vrne false. Splošna napaka je npr. out of memory (izpad pomnilnika), kjer ni dovolj virov, da bi se zagotovil prostor za inicializirane podatke, neinicializirane podatke, podatkovne baze ali TLV-je; kadar se odkrije duplikat od TLV oznake; itd. Inicializirani podatki se morajo vzpostaviti pred obdelovanjem podatkovne baze in TLV odsekov, saj so ti del odseka inicializiranih podatkov. V koraku 120 se določi, ali je modul že naložen v pomnilniku. Če je že naložen, se ne naloži drugič in Load Module sledi neposredno ter vrne true. Nadalje se v koraku 122 določi, ali je modul v odlagališču. Če ni, ne more biti naložen in podprogram Load Module ne uspe ter vrne false. V koraku 124 se določi, koliko zlogov pri podatkih je potrebno za področje 41 neinicializiranih podatkov modula in zahtevana količina se rezervira. To področje 41 se s strani VM 20 v celoti nastavi na ničle. Podobno se v koraku 126 rezervira zahtevano število zlogov podatkov za področje 42 inicializiranih podatkov modula. Nato se inicializirani podatki kopirajo na to področje. V koraku 18 se TLV-ji, ki so opredeljeni v modulu, z VM 20 dodajo njegovemu seznamu notranjih imen, ki se uporablja za TLV preslikavo. Koren strukture TLV podatkov se shrani. Nadalje se v koraku 130 opredelijo podatkovne baze, ki so z VM20 opredeljene v modulu, ki ga je treba naložiti. Koraka 128 in 130 se lahko izvedeta v poljubnem vrstnem redu. V koraku 132 se ločijo vnešeni moduli za tekoči modul. V koraku 134 se prečka seznam vnesenih modulov, pri Čemer se rekurzivno naloži vsak po vrsti. Če se vnešeni modul ne more naložiti iz kateregakoli razloga, kot je določeno v koraku 136, se za modul, kije vnesel ta modul, tudi razume, da ni uspel naložiti, ker ne more dostopiti do uslug vnesenega modula. V tem primeru Load Module vrne false. V koraku 138 je določeno, ali je treba vnesti nadaljnji modul. Če da, potem se postopek vrne na korak 132. Po določitvi v koraku 138, daje bil zadnji vneseni modul rekurzivno naložen, ima tekoči modul dodeljene svoje vire, naložene in opredeljene brez napake, tedaj Load Module zapolni vtičnice 60 v svojem seznamu v koraku 139 in vrne true, kar nakazuje, daje bil modul uspešno naložen. Poljuben poskus, da se vtičnica zapolni z ničlo, mora VM 20 ignoritati. Če je treba zapolniti ničlo vtičnice, se mora to doseči, s tem da se uporabi žeton SETSOCKET.The procedure required to load a module, the Load Module subroutine, will be described, referring to the flowchart shown in FIG. 10. If an error is detected while loading a module, it causes the Load Module routine to return false immediately. The general error is e.g. out of memory, where there are insufficient resources to provide space for initialized data, uninitialized data, databases or TLVs; when a duplicate of the TLV tag is detected; etc. Initialized data must be established before the database and TLV sections are processed, as these are part of the initialized data section. In step 120, it is determined whether the module is already loaded in memory. If it is already loaded, it is not loaded a second time and the Load Module follows directly and returns true. It is further determined in step 122 whether the module is in the repository. If not, it cannot be loaded and the Load Module routine fails and returns false. In step 124, it is determined how many syllables in the data are required for area 41 of the uninitialized module data and the required amount is reserved. This area 41 is completely set to zero by VM 20. Similarly, in Step 126, the required number of data syllables is reserved for the module initialized data area 42. The initialized data is then copied to this area. In step 18, the TLVs defined in the module are added to its internal names list using the VM 20 used for the TLV mapping. The root of the TLV data structure is saved. Further, in step 130, the databases identified by VM20 are defined in the module to be loaded. Steps 128 and 130 can be performed in any order. In step 132, the input modules for the liquid module are separated. In step 134, a list of the modules entered is traversed, each being recursively loaded. If the module entered cannot be loaded for any reason as specified in step 136, the module entered by this module is also understood to have failed to load because it cannot access the services of the module entered. In this case, the Load Module returns false. Step 138 specifies whether a further module should be entered. If yes, then the process returns to step 132. After determining in step 138 that the last module entered was recursively loaded, the current module has its resources allocated, loaded and defined without error, then the Load Module fills the sockets 60 in its list in step 139 and returns true, indicating that the module was loaded successfully. Any attempt to fill the socket with zero must be ignored by VM 20. If the socket zero is to be filled, this must be achieved by using the SETSOCKET token.

Postopek zapolnjevanja vtičnic 60 v koraku 140 bo opisan ob sklicevanju na sl. 11. V koraku 140 se opredeli vdelano obnašanje za vsako vtičnico v naloženem modulu. V koraku 141 se določi, ali obstoji vtič. Če ne, potem se modul izvaja v koraku 149. Če da, se prvi vtič izbere v koraku 142. V 143 se določi, ali se postavi varnostna oznaka prirejene vtičnice ali ne. Če ne, se vtičnica zapolni v koraku 146. Če da, se izvede varnostna funkcija, ki je opredeljena za vtičnico. Če je varnostno ovrednotenje pozitivno, se vtičnica zapolni v koraku 146. V koraku 148 se določi, ali je vtič zadnji vtič. Če ni, se za ovrednotenje izbere naslednji vtič. Če je varnostno preverjanje negativno, se določi, ali je vtič zadnji vtič v koraku 147. Če se v korakih 147 ali 148 določi, da je vtič zadnji, se modul izvaja z vdelanim obnašanjem za vse vtičnice, ki niso bile zapolnjene in z zapolnjenim obnašanjem za tiste, ki so bile zapolnjene. Na ta način seje dosegla vama modifikacija obnašanja.The process of filling the sockets 60 in step 140 will be described with reference to FIG. 11. Step 140 defines the embedded behavior for each socket in the loaded module. In step 141, it is determined whether a plug exists. If not, then the module is implemented in step 149. If yes, the first plug is selected in step 142. In 143, it is determined whether or not the security socket of the modified socket is affixed. If not, the socket is filled in step 146. If yes, the security function defined for the socket is executed. If the safety evaluation is positive, the socket is filled in step 146. In step 148, it is determined whether the socket is the last socket. If not, the following plug is selected for evaluation. If the security check is negative, determine whether the plug is the last plug in step 147. If it is determined in steps 147 or 148 that the plug is the last plug, the module is implemented with embedded behavior for all sockets that were not filled and filled with behavior for those who have been filled. This is how behavior modification is achieved for you.

Moduli, ki so naloženi z ICC 5 s pomočjo žetona LOADCARDMODULE, morajo biti obravnavani drugače kot tisti, ki so naloženi iz odlagališča na terminalu 1 ob uporabi žetona EXECUTEMODULE. Diagram poteka za LOADCARDMODULE je prikazan na sl. 12. Pred izvajanjem kartičnega modula VM 20 označi njegovo stanje in shrani vse vire, ki so potrebni v koraku 150, tako da se to stanje lahko pozneje obnovi. Stanje vključuje:Modules loaded with ICC 5 using the LOADCARDMODULE token must be treated differently from those loaded from the repository at Terminal 1 using the EXECUTEMODULE token. The flowchart for LOADCARDMODULE is shown in fig. 12. Before running the card module, VM 20 indicates its status and stores all the resources needed in step 150 so that this status can be restored later. The status includes:

• Položaj kazalca razširljivega pomnilnika, kazalca okvira in kazalca konca okvira.• The location of the expandable memory pointer, frame pointer, and frame end pointer.

• Vsebine celotnega seznama vtičnic.• The contents of the full list of sockets.

• TLV-je, ki so zabeleženi v seznamu imen TLV oznak.• TLVs recorded in the list of TLV tag names.

• Druge notranje podatke, kijih potrebuje VM izvajanje, da se obvladuje aktiviranje kartičnih modulov.• Other internal data that the VM requires to control the activation of the card modules.

Modul se naloži v koraku 152, pri čemer se uporabi program Load Module, ki je opisan zgoraj v povezavi s sl. 9; razlika je v tem, da je modul na ICC 5 in ni v odlagališču in še ni naložen.The module is loaded in step 152 using the Load Module program described above in connection with FIG. 9; the difference is that the module is on ICC 5 and not in the repository and not yet loaded.

Če se določi v koraku 154, da kartični modul ni uspešno naložil, se vsi viri povrnejo v koraku 155 na stanje, ki so ga imeli neposredno pred izvajanjem žetona LOADCARDMODULE. To zahteva:If it is determined in step 154 that the card module failed to load successfully, all resources are returned in step 155 to the status they had immediately before executing the LOADCARDMODULE token. This requires:

• Ves neobstojni pomnilnik, ki se zahteva za nalaganje modula, in katerikob modul, ki mora biti naložen, morajo biti sproščeni in zbrisani na nič. To mora vključevati, vendar ni omejeno na:• All non-volatile memory required to load a module and any module that needs to be loaded must be released and cleared to zero. This should include, but is not limited to:

• Prostor, ki je potreben za vse inicializirane in neinicializirane modulove podatke.• The space required for all initialized and non-initialized module data.

• Prostor, kije potreben za katerekob notranje TLV vmesne pomnilnike in strukture podatkov za upravljanje, ki so opredeljene s temi moduli.• The space required for any internal TLV buffers and management data structures defined by these modules.

• Prostor, ki je potreben za notranje vmesne pomnilnike in strukture podatkov za upravljanje, kijih zahtevajo podatkovne baze, ki so opredeljene s temi moduli.• The space required for internal buffers and management structures required by the databases identified by these modules.

• Seznam TLV imen, ki ga vzdržuje VM za preslikavo znakov se mora obnoviti na svoje stanje neposredno pred izvajanjem modula.• The TLV name list maintained by the VM for character mapping must be restored to its state immediately before executing the module.

• Vsebine seznama vtičnic, ki ga vzdržuje VM, se morajo obnoviti v svojem stanju neposredno pred izvajanjem modula.• The contents of the socket list maintained by the VM must be restored to their state immediately before executing the module.

• Vsebine kazalca okvira, kazalca konca okvira in kazalca razširljivega pomnilnika se obnovijo na svoje vrednosti neposredno pred izvajanjem modula.• The contents of the frame pointer, the frame end pointer, and the expandable memory pointer are restored to their values immediately before the module is executed.

Če se kartični modul naloži uspešno, se stanje, ki je bilo shranjeno v koraku 150 Mark and save resources, v koraku 156 preprosto zavrže. Tako se je kartični modul prenesel na tekoči sistem. Da bi bil uporaben, mora kartični modul zapolniti vtičnice, sicer ni možnosti za izvajanje katerekoli kode, ki je prisotna v kartičnem modulu. Nadalje je določeno v koraku 158, ab je modul izvršljivi modul, in če je tako, se izvede v koraku 160, kot je bilo opisano v povezavi s korakoma 106 in 108 s sl. 9.If the card module is loaded successfully, the status stored in step 150 Mark and save resources is simply discarded in step 156. Thus, the card module was transferred to the current system. In order to be useful, the card module must fill the sockets, otherwise there is no way to execute any code present in the card module. Further specified in step 158, ab is an executable module, and if so, is performed in step 160 as described in conjunction with steps 106 and 108 of FIG. 9.

Posebni izvedbeni primeri po izumu, ki so bili opisani zgoraj, imajo namen le ponazoriti in pri njih se lahko izvedejo številne druge variacije in modifikacije v skladu z načeli izuma. Vsi takšni izvedbeni primeri in variacije ter modifikacije le-tega se razumejo, da so znotraj obsega izuma, kot je določen z naslednjimi patentnimi zahtevki.The specific embodiments of the invention described above are intended to be illustrative only and may be subject to many other variations and modifications in accordance with the principles of the invention. All such embodiments and variations and modifications thereof are understood to be within the scope of the invention as defined by the following claims.

Claims (64)

1. Sistem za upravljanje transakcij za izvajanje transakcij med prvo pripravo in drugo pripravo, pri čemer sta omenjeni prva in druga priprava prilagojeni za komuniciranje druga z drugo in je vsaj ena izmed omenjene prve in druge priprava kartica z integriranim vezjem, pri čemer omenjeni sistem obsega vsaj eno vhodno/izhodno pripravo; prenosni virtualni stroj za tolmačenje računalniškega programa na omenjeni prvi pripravi in izvajalno sredstvo, ki se odziva na omenjeni tolmačeni program zaradi izvajanja omenjenega programa, označen s tem, da omenjeni virtualni stroj obsega virtualni mikroprocesor in gonilnik za omenjeno vsaj eno vhodno/izhodno pripravo.1. A transaction management system for performing transactions between the first device and the second device, said first and second device being adapted to communicate with each other and at least one of said first and second device is an integrated circuit card, said system comprising at least one input / output device; a portable virtual machine for interpreting a computer program at said first preparation and a means of responding to said interpreted program for executing said program, characterized in that said virtual machine comprises a virtual microprocessor and a driver for said at least one input / output device. 2. Terminal, ki obsega prvo pripravo za izvajanje transakcije z drugo pripravo, pri čemer je vsaj ena izmed omenjenih prve in druge priprave kartica z integriranim vezjem, obsegajoča:A terminal comprising a first device for performing a transaction with a second device, at least one of said first and second devices being an integrated circuit card comprising: prenosni virtualni stroj, ki tolmači računalniški program na omenjeni prvi pripravi in izvajalno sredstvo, ki se lahko odzove na omenjeni tolmačeni program zaradi izvajanja omenjenega programa, označen z omenjenim prenosnim virtualnim strojem, ki obsega virtualni procesor in gonilnik za vsaj eno vhodno/izhodno pripravo.a portable virtual machine that interprets a computer program at said first preparation and a runtime capable of responding to said interpreted program for executing said program, characterized by said portable virtual machine comprising a virtual processor and driver for at least one input / output device. 3. Neodvisna prenosna inteligentna kartica, ki vključuje prvo pripravo za izvajanje transakcije z drugo pripravo, pri čemer omenjena inteligentna kartica obsega prenosni virtualni stroj, označen z virtualnim mikroprocesorjem in gonilnikom za vsaj eno vhodno/izhodno pripravo.3. An independent portable intelligent card, comprising a first device for performing a transaction with a second device, said intelligent card comprising a portable virtual machine marked with a virtual microprocessor and a driver for at least one input / output device. 4. Sistem po zahtevku 1 ali terminal po zahtevku 2 ali inteligentna kartica po zahtevku 3, označen s tem, da so strojna navodila za omenjeni virtualni stroj nabor žetonov, pri čemer so omenjeni žetoni uporabniku prilagojena zlogovna koda.A system according to claim 1 or a terminal according to claim 2 or an intelligent card according to claim 3, characterized in that the machine instructions for said virtual machine are a set of tokens, said tokens being a custom syllable code. 5. Inteligentna kartica po zahtevku 3 ali 4, označena s tem, da nadalje obsega računalniški program, kije shranjen na omenjeni inteligentni kartici, pri čemer omenjeni virtualni stroj tolmači omenjeni računalniški program in se izvajalna sredstva odzivajo na omenjeni tolmačeni program zaradi izvajanja omenjenega programa.An intelligent card according to claim 3 or 4, further comprising a computer program stored on said intelligent card, said virtual machine interpreting said computer program and the execution means responding to said interpreted program for executing said program. 6. Sistem ali terminal po zahtevku 4 ali inteligentna kartica po zahtevku 5, označen s tem, da je omenjeni računalniški program napisan kot tok žetonov, ki je izbran iz omenjenega nabora žetonov in ustreznih vrinjenih podatkov.System or terminal according to claim 4 or an intelligent card according to claim 5, characterized in that said computer program is written as a stream of tokens selected from said set of tokens and corresponding interrupted data. 7. Sistem ali terminal ali inteligentna kartica po zahtevku 6, označen s tem, da se omenjeni tok žetonov prenese v modul, pri čemer modul vključuje tok žetonov skupaj z ustreznimi vrinjenimi podatki, ki se zahtevajo za izvajanje modula.System or terminal or intelligent card according to claim 6, characterized in that said token flow is transmitted to the module, the module including the token flow together with the corresponding interrupted data required to execute the module. 8. Sistem ali terminal ali inteligentna kartica po zahtevku 7, označen s tem, da omenjeni modul vključuje tudi navedbo pomnilniških zahtev za izvajanje omenjenega modula.System or terminal or intelligent card according to claim 7, characterized in that said module also includes an indication of memory requirements for executing said module. 9. Sistem ali terminal ali inteligentna kartica po zahtevku 8, označen stem, da virtualni stroj vključuje tudi sredstvo za nalaganje omenjenega modula in tolmačenje žetonov v njem.System or terminal or intelligent card according to claim 8, characterized in that the virtual machine also includes means for loading said module and interpreting tokens therein. 10. Sistem ali terminal ali inteligentna kartica po zahtevku 9, označen s tem, da omenjeno sredstvo za nalaganje in tolmačenje žetonov bere omenjene žetonov v omenjenem modulu in se uporabi izjema, če se prebere žeton, ki ne pripada omenjenemu naboru.System or terminal or intelligent card according to claim 9, characterized in that said means for loading and interpreting tokens reads said tokens in said module and an exception is used if a token not belonging to said set is read. 11. Sistem ali terminal ali inteligentna kartica po kateremkoli izmed zahtevkov 7 do 10, označen s tem, da omenjeni virtualni stroj vključuje bralno/pisalni logični naslovni prostor, ki ima odlagališče za vsaj omenjeni modul, in omenjeni modul vključuje navedbo količine bralno/pisalnega logičnega naslovnega prostora, kije potreben za njegovo izvajanje; in omenjeni virtualni stroj vključuje tudi sredstvo za dodeljevanje pri nalaganju omenjenega modula količine bralno/pisalnega logičnega naslovnega prostora v skladu z omenjeno navedbo, pri čemer ima omenjeni dodeljeni bralno/pisalni logični naslovni prostor opredeljene in zaščitene meje.System or terminal or intelligent card according to any one of claims 7 to 10, characterized in that said virtual machine includes a read / write logical address space that has a repository for at least said module, and said module includes an indication of the amount of read / write logical the address space required for its implementation; and said virtual machine also includes an allocation means for loading said read / write logical address space amount according to said indication, wherein said assigned read / write logical address space has defined and protected boundaries. 12. Sistem ali terminal ali inteligentna kartica po zahtevku 11, označen s tem, da nadalje obsega sredstvo za sprostitev omenjene količine bralno/pisalnega logičnega naslovnega prostora po končanju omenjenega modula.System or terminal or intelligent card according to claim 11, further comprising means for releasing said amount of read / write logical address space upon completion of said module. 13. Sistem ali terminal ali inteligentna kartica po kateremkoli izmed zahtevkov 9 do 12, označen s tem, da omenjena druga priprava vključuje sredstvo za zagotavljanje vsaj enega programskega navodila, ki lahko vsaj modificira obnašanje med izvajanjem omenjenega računalniškega programa; in potem ko je omenjeno sredstvo za nalaganje in tolmačenje naložilo omenjeni modul in medtem ko omenjeni modul teče, omenjeno sredstvo za nalaganje in tolmačenje naloži in tolmači omenjeno vsaj eno programsko navodilo, ki je odvisno od vnaprej določenega varnostnega pogoja; in omenjeno izvajalno sredstvo odgovori na naloženo programsko navodilo* tolmačeno z omenjenim virtualnim strojem, in izvaja omenjeni računalniški program z omenjenim modificiranim obnašanjem.System or terminal or intelligent card according to any one of claims 9 to 12, characterized in that said second device includes means for providing at least one program instruction which can at least modify the behavior during the execution of said computer program; and after said loading and interpreting means has loaded said module and while said module is running, said loading and interpreting means uploads and interprets said at least one program instruction depending on a predetermined security condition; and said executing agent responds to the loaded program instruction * interpreted by said virtual machine, and executes said computer program with said modified behavior. 14. Sistem ali terminal ali inteligentna kartica po zahtevku 13, označen s tem, daje omenjeni varnostni pogoj zagotovljen s funkcijo.System or terminal or intelligent card according to claim 13, characterized in that said security condition is provided by a function. 15. Sistem ali terminal ali inteligentna kartica po kateremkoli izmed zahtevkov 9 do 14, označen s tem, da nadalje obsega bralno/pisalni logični naslovni prostor, ki vključuje vsaj eno podatkovno bazo, ki vključuje vsaj en zapis, omenjeni modul vključuje navedbo količine neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki je potreben za izvajanje omenjenega modula;System or terminal or intelligent card according to any one of claims 9 to 14, characterized in that it further comprises a read / write logical address space including at least one database including at least one record, said module including an indication of the amount of uninitialized read / the written logical address space required to execute said module; omenjeni nalagalnik dodeljuje zahtevano količino neinicializiranega logičnega naslovnega prostora v skladu z omenjeno navedbo; in sredstvo za dostop do zapisa v omenjeni podatkovni bazi, pri čemer je zapis v omenjeni podatkovni bazi dostopen le preko omenjenega modula, in omenjeno sredstvo za dostop zagotavlja okno na tekočem zapisu omenjene podatkovne baze in kopira omenjeni zapis na predelu omenjenega neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki se lahko naslovi z omenjenim uporabniškim programom.said loader allocates the required amount of uninitialized logical address space according to said indication; and means for accessing a record in said database, wherein the record in said database is accessible only through said module, and said access means providing a window on the current record of said database and copying said record in the region of said uninitialized read / write logical address space that can be addressed by said application program. 16. Sistem za upravljanje transakcij, obsegajoč:16. Transaction management system, comprising: prvo pripravo in drugo pripravo, pri čemer sta omenjena prva priprava in omenjena druga priprava prilagojeni za komuniciranje druga z drugo in je vsaj ena izmed omenjenih prve priprave in druge priprave kartica z integriranim vezjem; omenjena prva priprava vključuje virtualni stroj, pri čemer omenjeni virtualni stroj obsega sredstvo za nalaganje in tolmačenje omenjenega računalniškega programa, označen stem, da omenjena druga priprava vključuje sredstvo za zagotavljanje vsaj enega programskega navodila, ki je zmožno vsaj modificiranja obnašanja računalniškega programa med izvajanjem na omenjeni prvi pripravi;a first device and a second device, said first device and said second device being adapted to communicate with each other, and at least one of said first device and the second device is an integrated circuit card; said first device includes a virtual machine, said virtual machine comprising means for downloading and interpreting said computer program, indicated that said second device includes means for providing at least one program instruction capable of at least modifying the behavior of the computer program during execution at said the first draw; in je omenjeno sredstvo za nalaganje in tolmačenje nadalje prilagojeno za nalaganje in tolmačenje omenjenih vsaj enih programskih navodil v odvisnosti od vnaprej določenega varnostnega pogoja, potem ko je omenjeno sredstvo za nalaganje in tolmačenje naložilo omenjeni računalniški program in medtem ko omenjeni računalniški program teče; in izvajalno sredstvo za izvajanje omenjenega naloženega in tolmačenega računalniškega programa z omenjenim modificiranim obnašanjem v odgovor na omenjeno naloženo in tolmačeno programsko navodilo.and said uploading and interpreting means being further adapted to download and interpret said at least one program instruction depending on a predetermined security condition after said uploading and interpreting means has loaded said computer program and while said computer program is running; and an executable means for executing said loaded and interpreted computer program with said modified behavior in response to said loaded and interpreted program instruction. 17. Terminal, ki obsega prvo pripravo za izvajanje transakcije z drugo pripravo in je vsaj ena izmed omenjenih prve in druge priprave kartica z integriranim vezjem, omenjeni terminal obsega: omenjeno prvo pripravo, ki vključuje virtualni stroj, pri čemer virtualni stroj vključuje sredstvo za nalaganje in tolmačenje omenjenega računalniškega programa, označen s tem, da omenjena druga priprava vključuje sredstvo za zagotavljanje vsaj enega programskega navodila, ki je zmožno vsaj modificiranja obnašanja računalniškega programa med izvajanjem na omenjeni prvi pripravi;17. A terminal comprising a first device for performing a transaction with a second device and at least one of said first and second devices is an integrated circuit card, said terminal comprising: said first device comprising a virtual machine, wherein the virtual machine includes a loading means and interpreting said computer program, characterized in that said second device includes means for providing at least one program instruction capable of at least modifying the behavior of the computer program during execution on said first device; je sredstvo za nalaganje in tolmačenje nadalje prilagojeno, da naloži in tolmači omenjeno vsaj eno programsko navodilo v odvisnosti od vnaprej določenega varnostnega pogoja, potem ko je omenjeno sredstvo za nalaganje in tolmačenje naložilo omenjeni računalniški program in medtem ko je omenjeni računalniški program tekel; in izvajalno sredstvo za izvajanje omenjenega naloženega in tolmačenega računalniškega programa z omenjenim modificiranim obnašanjem v odgovor na omenjeno in tolmačeno programsko navodilo.the uploading and interpreting means is further adapted to load and interpret said at least one program instruction depending on a predetermined security condition after said uploading and interpreting means has loaded said computer program and while said computer program has been running; and an executable means for executing said downloaded and interpreted computer program with said modified behavior in response to said and interpreted program instruction. 18. Neodvisna prenosna inteligentna kartica, ki vključuje prvo pripravo za izvajanje transakcije z drugo pripravo, pri čemer omenjena inteligentna kartica obsega: omenjeno prvo pripravo, ki vključuje virtualni stroj, pri čemer omenjeni virtualni stroj obsega sredstvo za nalaganje in tolmačenje omenjenega računalniškega programa, označena s tem, da omenjena druga priprava vključuje sredstvo za zagotavljanje vsaj enega programskega navodila, ki lahko vsaj modificira obnašanje računalniškega programa med delovanjem na omenjeni prvi pripravi in je omenjeno sredstvo za nalaganje in tolmačenje nadalje prilagojeno za nalaganje in tolmačenje omenjenega vsaj enega programskega navodila v odvisnosti od vnaprej določenega varnostnega pogoja, potem ko je omenjeno sredstvo za nalaganje in tolmačenje naložilo omenjeni računalniški program in medtem ko je omenjeni računalniški program tekel; in izvajalno sredstvo za izvajanje omenjenega naloženega in tolmačenega računalniškega programa z omenjenim modificiranim obnašanjem v odgovor na omenjeno naloženo in tolmačeno programsko navodilo.18. An independent portable intelligent card including a first device for performing a transaction with a second device, said intelligent card comprising: said first device comprising a virtual machine, said virtual machine comprising means for downloading and interpreting said computer program, said second device including means for providing at least one program instruction that can at least modify the behavior of a computer program while operating on said first device, and said loading and interpreting means being further adapted to load and interpret said at least one program instruction depending from a predetermined security condition after said loading and interpreting means downloaded said computer program and while said computer program was running; and an executable means for executing said loaded and interpreted computer program with said modified behavior in response to said loaded and interpreted program instruction. iv.iv. Sistem po zahtevku 16 ali terminal po zahtevku 17 ali inteligentna kartica po zahtevku 18, označen s tem, daje omenjeni varnostni pogoj zagotovljen s funkcijo.The system of claim 16 or the terminal of claim 17 or the intelligent card of claim 18, wherein said security condition is provided by a function. 20. Sistem ali terminal ali inteligentna kartica po zahtevku 19, označen s tem, daje omenjeno vsaj eno programsko navodilo prvo programsko navodilo in omenjena prva priprava vključuje drugo programsko navodilo, ki lahko vsaj modificira obnašanje omenjenega računalniškega programa med delovanjem, in omenjeno prvo programsko navodilo vključuje sklicevanje na omenjeno drugo programsko navodilo; in omenjeno sredstvo za nalaganje in tolmačenje se odziva na omenjeno referenco za nalaganje omenjenega drugega programskega navodila, pri čemer omenjeno izvajalno sredstvo izvaja omenjeni računalniški program z omenjenim modificiranim obnašanjem, kot je določeno z omenjenim drugim programskim navodilom.System or terminal or intelligent card according to claim 19, characterized in that said at least one program instruction is a first program instruction and said first preparation includes a second program instruction that can at least modify the behavior of said computer program during operation, and said first program instruction includes reference to said second program instruction; and said loading and interpreting means responding to said loading reference of said second program instruction, said executing agent executing said computer program with said modified behavior as defined by said second program instruction. 21. Sistem ali terminal ali inteligentna kartica po zahtevku 20, označen s tem, da so omenjeni program in omenjeni prvo in drugo programsko navodilo napisani s pomočjo toka žetonov in ustreznih vrinjenih podatkov, pri čemer je vsak žeton prilagojena zlogovna koda, izbrana iz nabora prilagojenih zlogovnih kod.21. The system or terminal or intelligent card according to claim 20, characterized in that said program and said first and second program instructions are written using a stream of tokens and corresponding interrupted data, each token being a custom syllable selected from a set of customized syllable codes. 22. Sistem ali terminal ali inteligentna kartica po zahtevku 21, označen s tem, da omenjeni virtualni stroj usmerja omenjeni tok žetonov in omenjene vrinjene podatke omenjenega prvega in drugega programskega navodila v omenjeni tok žetonov omenjenega računalniškega programa.System or terminal or intelligent card according to claim 21, characterized in that said virtual machine directs said token stream and said interrupted data of said first and second program instructions to said token stream of said computer program. 23, Sistem ali terminal ali inteligentna kartica po zahtevku 21 ali 22, označen s tem, da se vsaj tok žetonov omenjenega računalniškega programa in vsaj eno drugo računalniško programsko navodilo transportirata v modulu, pri čemer vsak modul vključuje ustrezen tok žetonov skupaj z ustreznimi vrinjenimi podatki, ki se zahtevajo za izvajanje omenjenega modula.23, System or terminal or intelligent card according to claim 21 or 22, characterized in that at least the token stream of said computer program and at least one other computer program instruction is transported in a module, each module including the corresponding token flow together with the corresponding interrupted data required to implement said module. 24. Sistem ali terminal ali inteligentna kartica po zahtevku 23, označen s tem, da omenjeni modul vključuje tudi navedbo pomnilnika, ki se zahteva za izvajanje omenjenega modula.A system or terminal or intelligent card according to claim 23, characterized in that said module also includes an indication of the memory required to execute said module. 25. Sistem ali terminal ali inteligentna kartica po zahtevku 23 ali 24, označen s tem, da modul omenjenega računalniškega programa vključuje tudi izključno listo vsaj ene prilagodljive vtičnice, pri čemer omenjena vsaj ena vtičnica opredeljuje položaj v toku žetonov in vrinjenih podatkov omenjenega računalniškega programskega modula, na katerega omenjeni računalniški program usmerja omenjeno prvo programsko navodilo.A system or terminal or intelligent card according to claim 23 or 24, characterized in that the module of said computer program also includes an exclusive list of at least one flexible socket, said at least one socket specifying the position in the flow of tokens and interrupted data of said computer program module to which said computer program directs said first program instruction. 26. Sistem ali terminal ali inteligentna kartica po zahtevku 25, označen s tem, da omenjena vsaj ena prilagodljiva vtičnica v omenjenem računalniškem programskem modulu vključuje izvajalno napotilo na prirejeno obnašanje.26. The system or terminal or intelligent card according to claim 25, characterized in that said at least one adaptive socket in said computer program module includes an executable reference to the modified behavior. 27. Sistem ali terminal ali inteligentna kartica po zahtevku 26, označen s tem, da omenjeno sredstvo izvaja omenjeni računalniški program z omenjenim privzetim obnašanjem omenjenega vnaprej opredeljenega varnostnega pogoja in ne dovoljuje nalaganja omenjenega vsaj enega programskega navodila.System or terminal or intelligent card according to claim 26, characterized in that said means executes said computer program with said default behavior of said predefined security condition and does not allow the loading of said at least one program instruction. 28. Sistem ali terminal ali inteligentna kartica po kateremkoli izmed zahtevkov 23 do 27, označen s tem, da omenjeni virtualni stroj vključuje bralno/pisalni logični naslovni prostor in omenjeni modul vključuje navedbo količine bralno/pisalnega logičnega naslovnega prostora, kije potreben za njegovo izvajanje; in omenjeni virtualni stroj tudi vključuje sredstvo za dodeljevanje zaradi nalaganja omenjenega računalniškega programskega modula količine bralno/pisalnega logičnega naslovnega prostora v skladu z omenjeno navedbo, pri čemer ima omenjeni dodeljeni bralni/pisalni logični naslovni prostor opredeljene in zaščitene meje; in sredstvo za sproščanje omenjene količine bralno/pisalnega logičnega naslovnega prostora po končanju omenjenega računalniškega programskega modula.28. A system or terminal or intelligent card according to any one of claims 23 to 27, characterized in that said virtual machine includes a read / write logical address space and said module includes an indication of the amount of read / write logical address space required for its implementation; and said virtual machine also includes an allocation means for loading said computer program module amount of read / write logical address space according to said indication, wherein said assigned read / write logical address space has defined and protected boundaries; and means for releasing said amount of read / write logical address space after completion of said computer program module. 29. Sistem ali terminal ali inteligentna kartica po kateremkoli izmed zahtevkov 23 do 28, označen s tem, da nadalje obsega bralno/pisalni logični naslovni prostor, ki vključuje vsaj eno podatkovno bazo, ki vključuje množico zapisov, pri čemer navedeni modul vključuje navedbo količine neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki je potreben za izvajanje omenjenega modula;System or terminal or intelligent card according to any one of claims 23 to 28, further comprising a read / write logical address space including at least one database comprising a plurality of records, said module including an indication of the amount of uninitialized the read / write logical address space required to execute said module; omenjeno sredstvo za nalaganje priredi zahtevano količino neinicializiranega logičnega naslovnega prostora v skladu z omenjeno navedbo; in sredstvo za dostop do zapisa v omenjeni podatkovni bazi, pri čemer so zapisi v omenjeni podatkovni bazi dostopni le preko omenjenega modula in omenjeno dostopno sredstvo zagotavlja okno na omenjeni zapis omenjene podatkovne baze in za kopiranje omenjenega zapisa na del omenjenega neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki se lahko naslovi z omenjenim uporabniškim programom.said loading means adapting the required amount of uninitialized logical address space according to said indication; and a means of accessing a record in said database, wherein the records in said database are accessible only through said module and said access means providing a window to said record of said database and for copying said record to a portion of said uninitialized read / write logical address space that can be addressed by said application. 30. Sistem ali terminal ali inteligentna kartiaca po kateremkoli izmed zahtevkov 16 do 27, označen s tem, da omenjeni varnostni pogoj vključuje sredstvo za preverjanje vsaj izvora in integritete podatkov in programska navodila na omenjeno drugo pripravo.A system or terminal or intelligent card according to any one of claims 16 to 27, characterized in that said security condition includes means for verifying at least the origin and integrity of the data and program instructions for said other device. 31. Transakcijski sistem za izvajanje transakcij med prvo pripravo in drugo pripravo, pri čemer sistem obsega: virtualni stroj za tolmačenje nabora prirejenih žetonov z zlogovno kodo, uporabljenih v ta namen;31. A transaction system for performing transactions between the first preparation and the second preparation, the system comprising: a virtual machine for interpreting a set of custom tokens with a syllable code used for this purpose; omenjeni virtualni stroj vključuje enoto za virtualno procesiranje in bralno/pisalni logični naslovni prostor;said virtual machine includes a virtual processing unit and a read / write logical address space; je vsaj en prvi uporabniški program napisan kot tok žetonov, ki so izbrani iz omenjenega nabora žetonov in ustreznih vrinjenih podatkov; in nalagalnik za nalaganje omenjenega vsaj enega prvega uporabniškega programa; označen s tem, da vsaj en omenjeni prvi uporabniški program, ki vključuje navedbo količine bralno/pisalnega logičnega naslova, kije potreben za njegovo izvajanje; in omenjeni virtualni stroj vključuje;at least one first application program is written as a stream of tokens selected from said set of tokens and corresponding interrupted data; and a downloader for downloading said at least one first application program; characterized in that at least one said first application program comprising an indication of the amount of read / write logical address required to execute it; and said virtual machine includes; sredstvo za dodeljevanje prve količine bralno/pisalnega logičnega naslovnega prostora značilno za omenjeni vsaj en prvi uporabniški program v skladu z omenjenim navodilom, pri čemer ima omenjeni dodeljeni bralno/pisalni logični naslovni prostor opredeljene in zaščitene meje.means for assigning the first amount of read / write logical address space characteristic of said at least one first application program in accordance with said instruction, wherein said assigned read / write logical address space has defined and protected boundaries. 32. Terminal, ki obsega prvo pripravo za izvajanje transakcij z drugo pripravo, pri čemer omenjena prva priprava obsega;32. A terminal comprising a first device for performing transactions with a second device, said first preparation comprising; virtualni stroj za tolmačenje nabora prirejenih žetonov z zlogovno kodo, prirejenih za to;a virtual machine for interpreting a set of custom tokens with a syllable code adapted for that purpose; in omenjeni vsaj en prvi uporabniški program, napisan kot tok žetonov, ki so izbrani iz omenjenega nabora žetonov in ustreznih vrinjenih podatkov;and said at least one first application program written as a stream of tokens selected from said set of tokens and corresponding interrupted data; omenjeni virtualni stroj vključuje virtualno procesno enoto in bralno/pisalni logični naslovni prostor;said virtual machine includes a virtual processing unit and a read / write logical address space; nalagalnik za nalaganje omenjenega vsaj enega prvega uporabniškega programa; in označen s tem, da vsaj en prvi uporabniški program vključuje navedbo količine bralno/pisalnega logičnega naslovnega prostora, kije potreben za njegovo izvajanje, in omenjeni virtualni stroj tudi vključuje:a downloader for downloading said at least one first application program; and characterized in that at least one first application program includes an indication of the amount of read / write logical address space required for its implementation, and said virtual machine also includes: sredstvo za dodeljevanje prve količine bralno/pisalnega logičnega naslovnega prostora značilno za omenjeni vsaj en prvi uporabniški program v skladu z omenjeno navedbo, pri čemer ima omenjeni dodeljeni bralno/pisalni logični naslovni prostor opredeljene in zaščitene meje.means for assigning the first amount of read / write logical address space characteristic of said at least one first application program according to said indication, wherein said assigned read / write logical address space has defined and protected boundaries. 33. Neodvisna prenosna inteligentna kartica, ki vključuje prvo pripravo za izvajanje transakcije z drugo pripravo, pri čemer omenjena prva priprava obsega: virtualni stroj za tolmačenje nabora prirejenih žetonov z zlogovno kodo, uporabljenih v ta namen;33. An independent portable intelligent card, including a first device for performing a transaction with a second device, said first preparation comprising: a virtual machine for interpreting a set of custom tokens with a syllable code used for this purpose; in vsaj en prvi uporabniški program je napisan kot tok žetonov, ki so izbrani iz omenjenega nabora žetonov in ustreznih vrinjenih podatkov;and at least one first application program is written as a stream of tokens selected from said set of tokens and corresponding interrupted data; omenjeni virtualni stroj vključuje virtualno procesno enoto in bralno/pisalni logični naslovni prostor;said virtual machine includes a virtual processing unit and a read / write logical address space; in nalagalnik za nalaganje omenjenega vsaj enega prvega uporabniškega programa; označena s tem, da vsaj en prvi uporabniški program, ki vključuje navedbo količine bralno/pisalnega logičnega naslovnega prostora, kije potreben za njegovo izvajanje; in omenjeni virtualni stroj tudi vključuje:and a downloader for downloading said at least one first application program; characterized in that at least one first application program includes an indication of the amount of read / write logical address space required to execute it; and said virtual machine also includes: sredstvo za dodeljevanje prve količine bralno/pisalnega logičnega naslovnega prostora značilno za omenjeni vsaj en prvi uporabniški program v skladu z omenjeno navedbo, pri čemer ima omenjeni dodeljeni bralno/pisalni logični naslovni prostor opredeljene in zaščitene meje.means for assigning the first amount of read / write logical address space characteristic of said at least one first application program according to said indication, wherein said assigned read / write logical address space has defined and protected boundaries. 34, označen s tem, daje vsaj ena izmed prve in druge priprave ICC.34, characterized in that it is at least one of the first and second ICC devices. 34. Sistem po zahtevku 31 ali terminal po zahtevku 32 ali inteligentna kartica po zahtevku 33, nadalje označen s tem, da obsega sredstvo za izrecno sprostitev omenjene prve količine bralno/pisalnega logičnega naslovnega prostora po končanju omenjenega vsaj enega programa.The system of claim 31 or the terminal of claim 32, or the intelligent card of claim 33, further comprising means for explicitly releasing said first amount of read / write logical address space upon completion of said at least one program. 35, označen s tem, da omenjeni prvi uporabniški program vključuje tudi prvi izključni spisek vsaj ene funkcije, ki se lahko izvozi drugim uporabniškim programom, in nadalje obsega sredstvo za tvorjenje omenjene vsaj ene funkcije, kije na razpolago drugim programom.35, characterized in that said first application program also includes a first exclusive list of at least one function that can be exported to other application programs, and further comprises means for generating said at least one function available to other programs. 35. Sistem ali terminal ali inteligentna kartica po kateremkoli izmed zahtevkov 31 doA system or terminal or intelligent card according to any one of claims 31 to 36. Sistem ali terminal ali inteligentna kartica po kateremkoli izmed zahtevkov 31 doA system or terminal or intelligent card according to any one of claims 31 to 37. Sistem ali terminal ali inteligentna kartica po kateremkoli izmed zahtevkov 31 do 36, označen s tem, daje omenjeni prvi uporabniški program modul in so omenjeni drugi uporabniški programi drugi moduli, pri čemer vsak modul vključuje vsaj en tok žetonov, ki so izbrani iz omenjenega nabora žetonov, ustrezne vrinjene podatke, prvi izključni spisek vsaj ene funkcije, ki se mora izvoziti in navedbo količine bralno/pisalnega logičnega naslovnega prostora, kije potreben za izvajanje modula.A system or terminal or intelligent card according to any one of claims 31 to 36, characterized in that said first application program is a module and said second application programs are other modules, each module including at least one token stream selected from said the token set, the corresponding data intrusions, the first exclusive list of at least one function to be exported, and an indication of the amount of read / write logical address space required to execute the module. 38. Sistem ali terminal po zahtevku 37, označen s tem, da omenjeni prvi modul vključuje drugi izključni spisek, ki opredeljuje vsaj en drugi modul, iz katerega se mora izvoziti vsaj ena funkcija, in omenjeni nalagalnik nalaga omenjeni vsaj drugi modul v skladu z omenjenim drugim spiskom po nalaganju omenjenega prvega modula.38. The system or terminal of claim 37, wherein said first module includes a second exclusive list identifying at least one second module from which at least one function is to be exported, and said loader loading said at least second module in accordance with said to the second list after loading said first module. 39. Sistem ali terminal ali inteligentna kartica po zahtevku 38, označen s tem, da se omenjeni prvi modul zaključi, če se omenjeni vsaj en drugi modul, ki se mora uvoziti, ne naloži uspešno.39. The system or terminal or intelligent card according to claim 38, characterized in that said first module terminates if said at least one second module to be imported fails to load successfully. 40. Sistem ali terminal ali inteligentna kartica po kateremkoli izmed zahtevkov 37 do 39, označen s tem, da omenjeno sredstvo za dodeljevanje dodeli omenjeno prvo količino bralno/pisalnega logičnega naslovnega prostora po nalaganju omenjenega prvega modula in le dodeli drugo ali nadaljnjo količino bralno/zapisovalnega logičnega naslovnega prostora za omenjeni prvi modul v enem samem razširljivem vmesnem pomnilniku, začenši pri prvem naslovu; in po sprostitvi omenjene druge količine bralno/pisalnega logičnega naslovnega prostora s strani omenjenega prvega modula omenjeno sprostilno sredstvo sprosti omenjeno drugo količino bralno/pisalnega logičnega naslovnega prostora in vse nadaljnje dodelitve za omenjenim prvim naslovom.System or terminal or intelligent card according to any one of claims 37 to 39, characterized in that said allocation means allocates said first amount of read / write logical address space after loading said first module and only assigns a second or further amount of read / write a logical address space for said first module in a single expandable buffer, starting at the first address; and upon releasing said second amount of read / write logical address space by said first module, said release means releases said second amount of read / write logical address space and any further allocations behind said first address. 41, označen s tem, da omenjeni bralno/pisalni logični naslovni prostor vključuje vsaj eno podatkovno bazo, ki vključuje vsaj en zapis, in omenjeni modul vključuje navedbo količine neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki je potreben za izvajanje omenjenega modula, in so zapisi v omenjeni podatkovni bazi dostopni le preko omenjenega modula;41, characterized in that said read / write logical address space includes at least one database that includes at least one record, and said module includes an indication of the amount of uninitialized read / write logical address space required to execute said module, and are records in said database accessible only through said module; omenjeni nalagalnik dodeljuje zahtevano količino neinicializiranega logičnega naslovnega prostora v skladu z omenjeno navedbo; in sredstvo za dostop do zapisa v omenjeni bazi, pri čemer omenjeno sredstvo za dostop zagotavlja okno na tekoči zapis omenjene podatkovne baze in kopira omenjeni zapis na del omenjenega neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki se lahko naslovi z omenjenim uporabniškim programom.said loader allocates the required amount of uninitialized logical address space according to said indication; and a record access means in said database, said access means providing a window to the current record of said database and copying said record to a portion of said uninitialized read / write logical address space that can be addressed by said user program. 41. Sistem ali terminal ali inteligentna kartica po zahtevku 40, označen s tem, da omenjeno sprostilno sredstvo sprosti omenjeno drugo količino bralno/pisalnega logičnega naslovnega prostora in vse nadaljnje dodelitve za omenjenim prvim naslovom po končanju omenjenega prvega modula.41. The system or terminal or smart card of claim 40, wherein said release means releases said second amount of read / write logical address space and any further allocations behind said first address after completion of said first module. 42, označen s tem, da omenjeno sprostilno sredstvo zbriše poljubno količino prirejenega bralno/pisalnega logičnega naslovnega prostora po končanju omenjenega prvega modula.42, characterized in that said release means deletes any amount of adapted read / write logical address space upon completion of said first module. 42. Sistem ali kartica ali inteligentna kartica po kateremkoli izmed zahtevkov 37 doA system or card or intelligent card according to any one of claims 37 to 43. Sistem ali terminal ali inteligentna kartica po kateremkoli izmed zahtevkov 34 doA system or terminal or intelligent card according to any one of claims 34 to 44. Transakcijski sistem za izvajanje transakcij med prvo pripravo in drugo pripravo, pri čemer je vsaj ena izmed omenjenih prve in druge priprave kartica z integriranim vezjem in omenjeni sistem obsega: virtualni stroj za tolmačenje nabora prirejenih žetonov z zlogovno kodo, uporabljenih v ta namen;44. A transaction system for performing transactions between the first preparation and the second preparation, wherein at least one of said first and second preparations is an integrated circuit card and said system comprises: a virtual machine for interpreting a set of custom tokens used for this purpose; omenjeni virtualni stroj vključuje virtualno obdelovalno enoto in bralno/pisalni logični naslovni prostor;said virtual machine includes a virtual processing unit and a read / write logical address space; vsaj eno podatkovno bazo, ki vključuje vsaj en zapis in vsaj računalniški program za izvajanje z omenjenim virtualnim strojem, označen s tem, daje omenjeni računalniški program modul, kije zapisan s tokom omenjenih žetonov, ki so izbrani iz omenjenega nabora in vključujejo navedbo količine neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki je potreben za izvajanje omenjenega modula;at least one database comprising at least one record and at least a computer program to execute with said virtual machine, characterized in that said computer program is a module written with the flow of said tokens selected from said set and including an indication of the amount of uninitialized read / the written logical address space required to execute said module; nalagalnik za nalaganje omenjenega modula in za dodeljevanje zahtevane količine neinicializiranega logičnega naslovnega prostora v skladu z omenjeno navedbo; in sredstvo za dostop do zapisa v omenjeni podatkovni bazi, pri čemer so zapisi v omenjeni podatkovni bazi dostopni le preko omenjenega piodula in omenjeno dostopno sredstvo zagotavlja okno na tekočem zapisu omenjene podatkovne baze in kopira omenjeni zapis na del omenjenega neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki se lahko naslovi z omenjenim uporabniškim programom.a loader for loading said module and for assigning the required amount of uninitialized logical address space according to said indication; and a means of accessing the record in said database, wherein the records in said database are accessible only through said pedodule and said access means providing a window on the current record of said database and copying said record to a portion of said uninitialized read / write logical address space , which can be addressed by said application. 45. Terminal, ki obsega prvo pripravo za izvajanje transakcij z drugo pripravo, pri čemer je vsaj ena izmed omenjenih prve in druge priprave kartica z integriranim vezjem in omenjena prva priprava obsega: virtualni stroj za tolmačenje nabora prirejenih žetonov iz zlogovnih kod, uporabljenih v ta namen;45. A terminal comprising a first device for performing transactions with a second device, wherein at least one of said first and second preparations is an integrated circuit card and said first preparation comprises: a virtual machine for interpreting a set of custom tokens from the syllable codes used in this purpose; omenjeni virtualni stroj vključuje virtualno obdelovalno enoto in bralno/pisalni logični naslovni prostor;said virtual machine includes a virtual processing unit and a read / write logical address space; vsaj eno podatkovno bazo, ki vključuje vsaj en zapis in vsaj en računalniški program za izvajanje z omenjenim virtualnim strojem, označen s tem, daje omenjeni računalniški program zapisan v modulu s pomočjo toka žetonov, ki so izbrani iz omenjenega nabora in vključuje navedbo količine neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki je potreben za izvajanje omenjenega modula;at least one database comprising at least one record and at least one computer program to execute with said virtual machine, characterized in that said computer program is written in a module by a stream of tokens selected from said set and including an indication of the amount of uninitialized read / the written logical address space required to execute said module; nalagalnik za nalaganje omenjenega modula in za dodeljevanje zahtevane količine neinicializiranega logičnega naslovnega prostora v skladu z omenjeno navedbo; in sredstvo za dostop do zapisa v omenjeni podatkovni bazi, pri čemer so zapisi v omenjeni podatkovni bazi dostopni le preko omenjenega modula, in omenjeno dostopno sredstvo zagotavlja okno na tekočem zapisu omenjene podatkovne baze in kopira omenjeni zapis na predel omenjenega neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki se lahko naslovi z omenjenim uporabniškim programom.a loader for loading said module and for assigning the required amount of uninitialized logical address space according to said indication; and a means for accessing a record in said database, wherein the records in said database are accessible only through said module, and said access means providing a window on the current record of said database and copying said record to a portion of said uninitialized read / write logical address space that can be addressed by said application. 46. Neodvisna prenosna inteligentna kartica, ki vključuje prvo pripravo za izvajanje transakcije z drugo pripravo, pri čemer omenjena prva priprava obsega:46. An independent portable intelligent card including a first device for carrying out a transaction with a second device, said first preparation comprising: virtualni stroj za tolmačenje nabora prilagojenih žetonov z zlogovno kodo, uporabljenih v ta namen;a virtual machine for interpreting a set of personalized token code tokens used for this purpose; omenjeni virtualni stroj vključuje virtualno obdelovalno enoto in bralno/pisalni logični naslovni prostor;said virtual machine includes a virtual processing unit and a read / write logical address space; vsaj eno podatkovno bazo, ki vključuje vsaj en zapis in vsaj en računalniški program za izvajanje z omenjenim virtualnim strojem, označena s tem, da je računalniški program zapisan v modulu s tokom žetonov, ki so izbrani iz omenjenega nabora, ki vključuje navedbo količine neinicializiranega bralno/pisalnega logičnega naslovnega prostora, kije potreben za izvajanje omenjenega modula; nalagalnik za nalaganje omenjenega modula in za dodeljevanje zahtevane količine neinicializiranega logičnega naslovnega prostora v skladu z omenjeno navedbo; in sredstvo za dostop do zapisa v omenjeni podatkovni bazi, pri čemer so zapisi v omenjeni podatkovni bazi dostopni le preko omenjenega modula in sredstvo za dostopanje zagotavlja okno na tekoči zapis omenjene podatkovne baze in kopiranje omenjenega zapisa na predel omenjenega neinicializiranega bralno/pisalnega logičnega naslovnega prostora, ki se lahko naslovi z omenjenim uporabniškim programom.at least one database comprising at least one record and at least one computer program for execution with said virtual machine, characterized in that the computer program is written in a module with a stream of tokens selected from said set, which includes an indication of the amount of uninitialized read / the written logical address space required to execute said module; a loader for loading said module and for assigning the required amount of uninitialized logical address space according to said indication; and means for accessing the record in said database, wherein the records in said database are accessible only through said module and the access means providing a window to the current record of said database and copying said record to a portion of said uninitialized read / write logical address space , which can be addressed by said application. 47. Sistem po zahtevku 44 ali terminal po zahtevku 45 ali inteligentna kartica po zahtevku 46, označen s tem, daje omenjena podatkovna baza opredeljena po prvem nalaganju omenjenega modula.A system according to claim 44 or a terminal according to claim 45 or an intelligent card according to claim 46, characterized in that said database is defined after the first loading of said module. 48. Sistem ali terminal ali inteligentna kartica po kateremkoli izmed predhodnih zahtevkov 1 do 47, označen s tem, daje omenjeni virtualni stroj skladovni stroj.A system or terminal or intelligent card according to any one of the preceding claims 1 to 47, characterized in that said virtual machine is a stacking machine. 49. Sistem ali terminal ali inteligentna kartica po zahtevku 48, označen s tem, da je omenjeni virtualni stroj vsaj dvoskladovni stroj, v katerem je prvi sklad podatkovni sklaa m drugi sklad povratni sklad.49. The system or terminal or intelligent card of claim 48, wherein said virtual machine is at least a two-layer machine in which the first stack is a data store m the second stack is a return stack. 50. Sistem ali terminal ali inteligentna kartica po kateremkoli izmed predhodnih zahtevkov 1 do 49, označen s tem, da virtualni stroj vključuje pomnilnik okvira lokalne variable, register kazalcev okvira za shranjevanje kazalcev okvira, ki kažejo na začetek okvira v pomnilniku, in register kazalcev konca okvira, ki kažejo na konec okvira v pomnilniku. ,System or terminal or intelligent card according to any one of the preceding claims 1 to 49, characterized in that the virtual machine includes frame memory of the local variable, a frame pointer register for storing frame pointers pointing to the beginning of the frame in memory, and a pointer end register frames pointing to the end of the frame in memory. , 51. Sistem ali terminal ali inteligentna kartica po zahtevku 49 ali 50, označen s tem, da omenjeni podatkovni ali povratni skladi v pomnilniku niso neposredno naslovljivi z omenjenim računalniškim programom, temveč so dostopni le preko skladovnih operacij, ki so opredeljene z žetoni in tolmačene z omenjenim virtualnim strojem.51. A system or terminal or intelligent card according to claim 49 or 50, characterized in that said data or return stacks in the memory are not directly addressable by said computer program, but are only accessible through stack operations defined by tokens and interpreted by said virtual machine. 52. Sistem ali terminal po kateremkoli izmed predhodnih zahtevkov, označen s tem, daje omenjena prva priprava ročno držana priprava.System or terminal according to any one of the preceding claims, characterized in that said first device is a hand-held device. 53. Sistem ali terminal po zahtevku 52, označen s tem, da omenjena ročno držana priprava vključuje kartico (ICC) z integriranim vezjem.53. The system or terminal of claim 52, wherein said hand-held device includes an integrated circuit ICC. 54. Sistem ali terminal po kateremkoli izmed predhodnih zahtevkov 1 do 53, označen s tem, da omenjena druga priprava obsega ICC.System or terminal according to any one of the preceding claims 1 to 53, characterized in that said second device comprises an ICC. 55. Sistem po kateremkoli izmed predhodnih zahtevkov 1 do 54, označen s tem, daje omenjena priprava terminal.A system according to any one of the preceding claims 1 to 54, characterized in that said device is a terminal. 56. Sistem ali terminal ali inteligentna kartica po kateremkoli izmed predhodnih zahtevkov 1 do 55, označen s tem, da tako prva kot druga priprava vključuje ICC-je.56. The system or terminal or intelligent card according to any one of the preceding claims 1 to 55, characterized in that both the first and second devices include ICCs. 57. Sistem ali terminal ali inteligentna kartica po kateremkoli izmed predhodnih zahtevkov 1 do 56, označen s tem, da transakcijski sistem obsega vsaj eno izvajanje naslednjega zaporedja:A system or terminal or intelligent card according to any one of the preceding claims 1 to 56, characterized in that the transaction system comprises at least one implementation of the following sequence: a. vzpostavitev komunikacijske povezave med omenjeno prvo in omenjeno drugo pripravo;a. establishing a communication link between said first and said second devices; b. izbor uporabe, ki vključuje omenjeni računalniški program in prirejeni nabor podatkov, ki opredeljuje transakcijo;b. a choice of use that includes said computer program and a customized data set identifying the transaction; c. izvajanje omenjene uporabe; inc. implementing said use; and d. končanje transakcije.d. ending the transaction. 58. Sistem ali terminal ali inteligentna kartica po kateremkoli izmed predhodnih zahtevkov 1 do 57, označen s tem, da je transakcija finančna transakcija in je omenjeni sistem finančni transakcijski upravljalski sistem.58. The system or terminal or intelligent card according to any one of the preceding claims 1 to 57, characterized in that the transaction is a financial transaction and said system is a financial transaction management system. 59. Kartica z integriranim vezjem, ki vključuje programsko navodilo, ki lahko modificira obnašanje tekočega programa v sistemu po kateremkoli izmed zahtevkov 1 do 58, v terminalu po kateremkoli izmed zahtevkov 2 do 58 ali inteligentni kartici po kateremkoli izmed zahtevkov 3 do 58.An integrated circuit card comprising a program instruction that can modify the behavior of a running program in a system according to any one of claims 1 to 58, in a terminal according to any one of claims 2 to 58, or an intelligent card according to any one of claims 3 to 58. 60. Postopek za izvajanje transkacije med prvo pripravo in drugo pripravo, pri čemer je vsaj ena izmed omenjenih prve priprave in druge priprave kartica z integriranim vezjem; obsegajoč zagotavljanje vsaj enega programskega navodila na omenjeni drugi pripravi, ki je zmožna vsaj modificiranja obnašanja računalniškega programa med delovanjem na omenjeni prvi pripravi;60. A method of performing a transaction between a first device and a second device, at least one of said first devices and the second device being an integrated circuit card; comprising providing at least one program instruction on said second device capable of at least modifying the behavior of the computer program while operating on said first device; nalaganje in tolmačenje omenjenega računalniškega programa, nalaganje in tolmačenje omenjenega vsaj enega programskega navodila v odvisnosti od vnaprej določenega varnostnega pogoja, medtem ko omenjeni računalniški program teče; in izvajanje omenjenega naloženega in tolmačenega računalniškega programa z omenjenim modificiranim obnašanjem v odgovor na omenjeno naloženo in tolmačeno programsko navodilo.downloading and interpreting said computer program, downloading and interpreting said at least one program instruction depending on a predetermined security condition while said computer program is running; and executing said downloaded and interpreted computer program with said modified behavior in response to said downloaded and interpreted program instruction. 61. Postopek za izvajanje transakcije med prvo pripravo in drugo pripravo, obsegajoč: tolmačenje vsaj enega uporabniškega programa, ki je napisan kot tok žetonov zlogovne kode, ki so izbrani iz nabora žetonov, in ustreznih vrinjenih podatkov; nalaganje omenjenega vsaj enega uporabniškega programa;61. A method of performing a transaction between a first draw and a second draw, comprising: interpreting at least one application program written as a stream of syllable code tokens selected from the token set and the corresponding interrupted data; downloading said at least one user program; dodeljevanje prve količine bralno/pisalnega logičnega naslovnega prostora značilno za omenjeni vsaj en uporabniški program v skladu z navedbo, ki je vsebovana v omenjenem računalniškem programu, količine bralno/pisalnega, logičnega naslovnega prostora, kije potreben za njegovo izvajanje; in opredeljevanje in ščitenje meja omenjenega dodeljenega bralno/pisalnega logičnega naslovnega prostora.assigning the first amount of read / write logical address space specific to said at least one application program according to the indication contained in said computer program, the amount of read / write logical address space required to execute it; and defining and protecting the boundaries of said assigned read / write logical address space. 62. Postopek po zahtevku 61, nadalje obsegajoč: izrecno sprostitev omenjene prve količine bralno/pisalnega logičnega naslovnega prostora po končanju omenjenega vsaj enega prvega uporabniškega programa.The method of claim 61, further comprising: explicitly releasing said first amount of read / write logical address space upon completion of said at least one first user program. 63. Postopek za izvajanje transakcijskega sistema med prvo pripravo in drugo pripravo, pri čemer je vsaj ena izmed omenjenih prve priprave in druge priprave kartica z integriranim vezjem, obsegajoč: tolmačenje žetonov v modulu, zapisanem s tokom omenjenih modulov, ki so izbrani iz nabora žetonov;63. A method for implementing a transaction system between a first preparation and a second preparation, wherein at least one of said first preparation and the second preparation is an integrated circuit card comprising: interpreting tokens in a module written by the flow of said modules selected from the token set ; dodeljevanje količine neinicializiranega logičnega naslovnega prostora v skladu z navedbo v omenjenem modulu količine neinicializiranega bralno/pisalnega logičnega naslovnega prostora, kije potreben za izvajanje omenjenega modula;allocating the amount of uninitialized logical address space according to the indication in said module of the amount of uninitialized read / write logical address space required to execute said module; dostopanje do zapisa v podatkovni bazi z zagotavljanjem okna na tekoči zapis omenjene podatkovne baze, pri čemer so zapisi v podatkovni bazi dostopni le preko omenjenega modula; in kopiranje omenjenega zapisa na predel omenjenega neinicialiranega bralno/pisalnega logičnega naslovnega prostora, ki se lahko naslovi z omenjenim modulom.accessing the record in the database by providing a window to the current record of said database, the records in the database being accessible only through said module; and copying said record to a portion of said uninitialized read / write logical address space that can be addressed by said module. 64. Postopek za izvajanje transakcije med prvo pripravo in drugo pripravo, pri čemer je vsaj ena izmed omenjenih prve priprave in druge priprave kartica z integriranim vezjem, obsegajoč:64. A method of performing a transaction between a first device and a second device, wherein at least one of said first devices and the second device is an integrated circuit card comprising: zagotavljanje prenosnega virtualnega stroja, ki obsega virtualni mikroprocesor in gonilnik za vsaj eno vhodno/izhodno pripravo;providing a portable virtual machine comprising a virtual microprocessor and driver for at least one input / output device; tolmačenje računalniškega programa na omenjeni prvi pripravi ob uporabi prenosnega virtualnega stroja; in izvajanje omenjenega programa v odziv na omenjeni tolmačeni program.interpreting a computer program at said first preparation using a portable virtual machine; and executing said program in response to said interpreted program.
SI9720049A 1996-06-27 1997-06-26 Portable, secure transaction system for programable, inteligent devices SI9720049A (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
GBGB9613450.7A GB9613450D0 (en) 1996-06-27 1996-06-27 Payment system
PCT/EP1997/003355 WO1997050063A2 (en) 1996-06-27 1997-06-26 Portable, secure transaction system for programmable, intelligent devices

Publications (1)

Publication Number Publication Date
SI9720049A true SI9720049A (en) 1999-12-31

Family

ID=10795955

Family Applications (1)

Application Number Title Priority Date Filing Date
SI9720049A SI9720049A (en) 1996-06-27 1997-06-26 Portable, secure transaction system for programable, inteligent devices

Country Status (22)

Country Link
EP (1) EP0907936A2 (en)
JP (1) JP2000514215A (en)
AU (1) AU716558B2 (en)
BR (1) BR9710009A (en)
CA (1) CA2257641A1 (en)
CZ (1) CZ423598A3 (en)
EA (1) EA001598B1 (en)
GB (1) GB9613450D0 (en)
HR (1) HRP970354A2 (en)
HU (1) HUP0001822A3 (en)
IL (1) IL127533A0 (en)
IS (1) IS4925A (en)
NO (1) NO985803L (en)
NZ (1) NZ333384A (en)
PL (1) PL330930A1 (en)
SI (1) SI9720049A (en)
SK (1) SK176698A3 (en)
TR (1) TR199802675T2 (en)
TW (1) TW355776B (en)
WO (1) WO1997050063A2 (en)
YU (1) YU60798A (en)
ZA (1) ZA975748B (en)

Families Citing this family (15)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
MY126363A (en) 1996-10-25 2006-09-29 Gemalto Sa Using a high level programming language with a microcontroller
US6934945B1 (en) * 1997-03-14 2005-08-23 Cardsoft, Inc. Method and apparatus for controlling communications
AUPP880199A0 (en) * 1999-02-22 1999-03-18 Chip Application Technologies Limited Integrated pos and internet multi-application system and method of use thereof
US6424950B1 (en) 1999-05-10 2002-07-23 Xerox Corporation Remote feature delivery for output devices
GB2356268B (en) 1999-11-10 2004-08-18 Mars Inc Value transaction systems
JP2001184472A (en) * 1999-12-27 2001-07-06 Hitachi Ltd Supply method for application program, smart card, script supply method, terminal device, and storage medium with application program
JP4509291B2 (en) * 2000-03-30 2010-07-21 大日本印刷株式会社 IC card, IC card program update device, and method thereof
FR2809852B1 (en) * 2000-05-30 2002-11-29 Dassault Automatismes PAYMENT TERMINAL INCLUDING AN EXTRACTIBLE NON-VOLATILE MEMORY CARD
AT501651B1 (en) * 2000-09-27 2007-02-15 Omnikey Gmbh ELECTRONIC MODULE WITH A CONNECTOR TO A HIGH-ORDERED UNIT
US6824064B2 (en) * 2000-12-06 2004-11-30 Mobile-Mind, Inc. Concurrent communication with multiple applications on a smart card
CN1615470A (en) * 2002-01-11 2005-05-11 施克莱无线公司 Host extensible wireless application interface
US8074263B1 (en) 2008-06-30 2011-12-06 United Services Automobile Association Systems and methods for increased security during logging in to web site
TWI546748B (en) * 2013-01-15 2016-08-21 hong-jian Zhou Portable electronic trading device
EP3435270B1 (en) * 2017-07-27 2020-09-23 Siemens Aktiengesellschaft Device and method for cryptographically protected operation of a virtual machine
CN117098109A (en) 2019-12-16 2023-11-21 华为技术有限公司 Emergency call method, device and system

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5067072A (en) * 1987-11-06 1991-11-19 Visystems, Inc. Virtual software machine which preprocesses application program to isolate execution dependencies and uses target computer processes to implement the execution dependencies
US5434999A (en) * 1988-11-09 1995-07-18 Bull Cp8 Safeguarded remote loading of service programs by authorizing loading in protected memory zones in a terminal
US5036461A (en) * 1990-05-16 1991-07-30 Elliott John C Two-way authentication system between user's smart card and issuer-specific plug-in application modules in multi-issued transaction device
FR2667171B1 (en) * 1990-09-25 1994-08-26 Gemplus Card Int PORTABLE MEDIUM WITH EASILY PROGRAMMABLE MICRO-CIRCUIT AND METHOD FOR PROGRAMMING THIS MICRO-CIRCUIT.
JP3602857B2 (en) * 1991-04-23 2004-12-15 株式会社日立製作所 Multi-model compatible information processing system and method
EP0706692B1 (en) * 1992-10-26 2003-04-16 Intellect Australia Pty. Ltd. Host and user transaction system

Also Published As

Publication number Publication date
HUP0001822A2 (en) 2000-09-28
ZA975748B (en) 1998-07-27
IS4925A (en) 1998-12-15
EA199900060A1 (en) 1999-08-26
NZ333384A (en) 2001-01-26
CZ423598A3 (en) 1999-10-13
IL127533A0 (en) 1999-10-28
HRP970354A2 (en) 1998-04-30
AU716558B2 (en) 2000-03-02
AU3263097A (en) 1998-01-14
BR9710009A (en) 2000-01-18
YU60798A (en) 1999-09-27
EP0907936A2 (en) 1999-04-14
TW355776B (en) 1999-04-11
WO1997050063A2 (en) 1997-12-31
NO985803D0 (en) 1998-12-11
WO1997050063A3 (en) 1998-03-26
HUP0001822A3 (en) 2002-01-28
EA001598B1 (en) 2001-06-25
GB9613450D0 (en) 1996-08-28
PL330930A1 (en) 1999-06-07
NO985803L (en) 1999-02-24
SK176698A3 (en) 2000-08-14
JP2000514215A (en) 2000-10-24
CA2257641A1 (en) 1997-12-31
TR199802675T2 (en) 1999-04-21

Similar Documents

Publication Publication Date Title
AU771623B2 (en) Techniques for permitting access across a context barrier on a small footprint device using an entry point object
AU763958B2 (en) Techniques for permitting access across a context barrier in a small footprint device using global data structures
US9400668B2 (en) Computer program product containing instructions for providing a processor the capability of executing an application derived from a compiled form
SI9720049A (en) Portable, secure transaction system for programable, inteligent devices
AU772045B2 (en) Techniques for implementing security on a small footprint device using a context barrier
AU771765B2 (en) Techniques for permitting access across a context barrier on a small footprint device using run time environment privileges
Faraj et al. Investigation of Java Smart Card Technology for Multi-Task Applications
KR20010103746A (en) Techniques for permitting access across a context barrier in a small footprint device using shared object interfaces
Markantonakis The case for a secure multi-application smart card operating system
JP2007517301A (en) Smart card system
MXPA99000076A (en) Portable system of safe transaction for intelligent devices and programab
Jang Secure Object Sharing on Java Card
Markantonakis et al. Implementing a Secure Log File Download Manager for the Java Card
AU2004200537A1 (en) Techniques for implementing security on a small footprint device using a context barrier
AU2004200758A1 (en) Techniques for permitting access across a context barrier on a small footprint device using an entry point object
AU2004200637A1 (en) Techniques for permitting access across a context barrier on a small footprint device using run time environment privileges