WO2001037085A1 - Procede de chargement d'applications dans un systeme embarque multi-application muni de ressources de traitement de donnees, systeme, et procede d'execution correspondants - Google Patents
Procede de chargement d'applications dans un systeme embarque multi-application muni de ressources de traitement de donnees, systeme, et procede d'execution correspondants Download PDFInfo
- Publication number
- WO2001037085A1 WO2001037085A1 PCT/FR2000/003193 FR0003193W WO0137085A1 WO 2001037085 A1 WO2001037085 A1 WO 2001037085A1 FR 0003193 W FR0003193 W FR 0003193W WO 0137085 A1 WO0137085 A1 WO 0137085A1
- Authority
- WO
- WIPO (PCT)
- Prior art keywords
- module
- class
- api
- modules
- classes
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G07—CHECKING-DEVICES
- G07F—COIN-FREED OR LIKE APPARATUS
- G07F7/00—Mechanisms actuated by objects other than coins to free or to actuate vending, hiring, coin or paper currency dispensing or refunding apparatus
- G07F7/08—Mechanisms 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/10—Mechanisms 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/1008—Active credit-cards provided with means to personalise their use, e.g. with PIN-introduction/comparison system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment 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/341—Active cards, i.e. cards including their own processing means, e.g. including an IC or chip
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment 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/357—Cards having a plurality of specified features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION 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/00—Payment architectures, schemes or protocols
- G06Q20/30—Payment architectures, schemes or protocols characterised by the use of specific devices or networks
- G06Q20/34—Payment 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/357—Cards having a plurality of specified features
- G06Q20/3576—Multiple memory zones on card
- G06Q20/35765—Access rights to memory zones
Definitions
- the present invention relates to a method for loading applications into a multi-application embedded system provided with data processing resources, the corresponding embedded system, and the method for executing an application from a corresponding embedded system.
- the present invention relates more particularly to the realization of firewalls between modules sharing the same memory space in systems embedded on portable multi-application objects using an intermediate pseudocode and an associated virtual machine.
- PCMCIA cards or any other portable terminal. Thereafter we will use the term card to designate any of these portable objects.
- the programming of embedded systems, previously carried out in assembler, is now possible in an advanced language like "Java”, and allows to facilitate and accelerate development
- a smart card 10 includes an input and output system (1 1) connected to the microprocessor (14), a volatile memory RAM (12) (Random Access Memory ) a non-volatile memory constituted by a ROM read only memory (13) (Read Only Memory) and a programmable non-volatile memory (15) constituted by a flash RAM or EEPROM (Electrically Erasable Programmable Read Only Memory). All of these elements are connected to the microprocessor by a link BUS.
- a smart card in the best of cases, using the new components currently existing, includes a ROM memory, an EEPROM memory of 32 kilobytes or kilo bytes, and a RAM memory of 2 Kilo Bytes.
- the virtual machine of a conventional platform includes a pseudocode verifier, a dynamic class loader, a pseudocode interpreter which allows translation into machine code and a security manager.
- the virtual machine comprises a part (30) outside the specific platform (40), called an off-platform virtual machine, comprising a converter (32), and a part (41) in the card constituting the specific platform (40), called on-board virtual machine (41) ("on-platform") including the pseudocode interpreter.
- the source program (21) of the application is written, compiled in intermediate pseudocode by a compiler (22), and verified by a verifier (31) of intermediate pseudocode on a conventional station (20), then converted by the converter (32), placed on the same station (20) or another station.
- the application is then downloaded to the volatile electrically programmable and possibly electrically erasable EEPROM (15) of the portable object or specific platform (40).
- This loading is carried out by a loader comprising a part off platform called downloader (33) and a part on the specific platform called charger (42).
- the virtual machine (41) of a specific platform (40), placed in ROM memory with the operating system (48) (Operating System) may include an intermediate pseudocode verifier, which is too heavy to be stored and / or executed in the portable object.
- the specific platform (40) also does not contain a dynamic class loader. Indeed, for the field of application of the invention, on the virtual machine (30) off-platform, the verifier (31) verifies that the compiled classes are well formed and verifies the language violations specific to the description of the specific platform.
- the converter (32) does the work required for loading classes and resolving references. The converter performs the static link of the classes, it resolves the symbolic references to the classes, methods and attributes already present on the map. It distributes the store and create data structures to represent classes, create static or native methods and attributes and initialize static variables.
- the execution environment of the specific platform includes the on-board virtual machine ("onplatform") (41) limited to an interpreter, an API platform and the so-called native methods (43) or associated statics.
- the API platform includes APIs (44) (Application Programming Interface) defining a set of classes, called system classes (45), and the calling conventions by which an application accesses the execution environment (RE). and static methods (43).
- the static methods (43) execute the memory allocation, input and output, and cryptographic services of the card.
- the interpreter of the on-board virtual machine of the card (41) serves as a support for the "Java" language, and reads the intermediate pseudocode sequentially, instruction by instruction.
- Each standard instruction of this intermediate pseudocode is interpreted in the language of the microprocessor by the interpreter then executed by the microprocessor.
- the standard instructions of the intermediate pseudocode make it possible to deal with advanced functions such as arithmetic processing and manipulation of objects.
- the concept of object concerns computer objects such as lists, data tables or the like.
- the so-called client classes (46) of the applications and the system classes (45) of the APIs are all loaded into the same memory space and are managed by means of a class table (47).
- the virtual machine (41) is also responsible for managing the classes and objects and for enforcing the partitions or firewalls between the applications in order to allow secure sharing of the data, also called attributes, variables or fields.
- an application of a specific platform can be activated directly by the execution environment (RE) when a selection Application Protocol Data Unit (APDU) issued by a service or terminal is received by the card.
- RE execution environment
- APDU Application Protocol Data Unit
- the methods (NM1, NM2), respectively (NM3, NM4), and the attributes (NA1, NA2), respectively (NA3, NA4) are encapsulated in classes (NCI3), respectively (NCI2), which themselves are part of packages (Package 1), respectively (Package n) each grouping several classes.
- a class can be public such as (NCI1 or NCI2) or private such as (NCI3) in relation to a package, which implies, in the latter case, that only classes of the same package can access this class.
- the methods (example NM2) and the data (example NA1) of a class (NCI3) can be private compared to the class (NM2, NA1), which itself is private compared to the package (Package 1), or public with respect to the package (for example NM1, NA2) or to the class (for example NM4, NA4).
- This restriction of visibility makes it possible to obtain flexible access between the different sets of packages (Package 1, Package n) stored in the same namespace, but has some drawbacks.
- the classic or specific platform does not support the notion of subpackages badly.
- the client classes of a large application must be distributed between different sub-packages which only represent different packages for the virtual machine. To share the resources between these sub-packages, these resources are necessarily declared public, thus making them visible from any other package.
- the second means provided by the virtual machine of a classic platform is the notion of separation of namespaces.
- the classes can be loaded, from directories of the local file system, called "ClassPath" previously declared as constituting the location of the system classes forming the API platform standard, or from other directories on the local file system or remote servers.
- the client classes of an application outside of the "ClassPath", must be loaded by a specifically programmed class loader. This feature is particularly used for loading "Java” applications by "Java” enabled browsers.
- loaders of different classes For each locator, commonly called URL (Uniform Resource Locator), a specific instance of class "application class loader" is used.
- URL Uniform Resource Locator
- the external name of a class is the assembly ⁇ Package Name> + ⁇ Class Name>.
- a class is loaded, it is stored in an internal class table, and a reference to the class loader used to load this class is added as a prefix to the package name of the class.
- the class name is then "Class Loader Reference> + ⁇ Package Name> + ⁇ Class Name".
- the usual policy for class loaders is to search first in the system classes and in case of failure, to search among the class files present in the location where the loader can load the classes.
- an application cannot directly access the client classes of another application loaded by a loader of different classes.
- An application can access all the public resources of the public classes of ClassPath, but the classes of ClassPath cannot directly access the classes of an application although they can refer to instances of client classes of the application by converting them into a public type defined in the "Classpath".
- An application cannot extend or modify system class packages from Classpath or any other application loaded by loaders of different classes.
- the object of the present invention is to provide a solution providing the advantages of name separation in the context of embedded systems having a virtual machine in two parts, the static link diagram being performed by the off-platform part.
- a first object of the invention is to propose a loading method making it possible to obtain robust firewalls between the applications while allowing cooperation between the applications and the possibility of upgrading the applications or of loading other applications.
- This object is achieved by the fact that the method for loading applications on an embedded system according to the invention, comprising a execution environment including a virtual machine comprising an intermediate pseudocode-type language interpreter, application programming interfaces (API), from a station on which the application source code is written, compiled in pseudocode by a compiler, checked by a verifier, converted by a converter and loaded by a charger, is characterized in that
- the conversion includes the realization of the static link of a plurality of sets of packages intended to be stored in the same name space on the on-board system, called modules, by assigning an identifier to each module (MID), and a number of reference to each class, to each method and to each attribute encapsulated in the classes of the module,
- modules by assigning an identifier to each module (MID), and a number of reference to each class, to each method and to each attribute encapsulated in the classes of the module
- the loaded modules are one or more application programming interface modules, called API module, comprising system classes or service modules each corresponding to an application, a reference to an external class being systematically interpreted by the virtual machine as a reference to an application programming interface module.
- API module application programming interface modules
- the loading of the modules on the on-board system comprises memorizing on the one hand at least one table representing the modules, the number associated, by the linker between 0 and n, with a module constituting the index of said module in the table, and on the other hand of a table memorizing the association of the index of the representation table with the identifier (MID) of said module, said table and the table being in non-volatile programmable memory, an external reference to an external module in the pseudocode being interpreted by the interpreter of the virtual machine as constituting an access index to the module equivalent to that of the table of modules.
- MID identifier
- the loading comprises the memorization, for each module, of a table of representation of its classes, comprising a reference to the index of its module and, for each class, a table of representation of the attributes and methods .
- the modules are referenced in a single array of modules, the system classes are contained in a single API module, any reference to an external class in the pseudocode different from n will be interpreted by the virtual machine as a reference to said module API.
- the classes being declared public, or in private package
- the attributes and methods being declared protected, in private package or in private class
- the numbering of the classes is carried out according to the order public classes then classes in private packages
- the numbering of the attributes or methods is carried out by the converter according to the attribute attribute or method public, protected, in private package and in private class.
- the system classes are contained in several API modules which can be loaded separately, the loader maintains in the programmable non-volatile memory two tables for representing the modules and two corresponding MID / IMi association tables, one for the API modules. and the other for non-API modules, the loader loading the modules into one of the two arrays according to the nature of the module specified in the header thereof, any external reference of a module in the module array being interpreted as a reference to the API module index.
- the static connection of a module is carried out such that the reference to a class external to a non-API module in the intermediate pseudocode is an index in a table of the header of the module, each entry of which is an identifier (MID) of a referenced API module, the loading of said module on the target platform comprising the replacement of said reference by the number of the API module index obtained from the identifier (MID) of the association table of API modules.
- MID identifier
- Another object of the invention is to propose a corresponding on-board system.
- the embedded system comprising a virtual machine and an API platform including application programming interfaces, a fixed non-volatile memory, a programmable or modifiable non-volatile memory, and a random access memory
- the programmable non-volatile memory comprises at least one API module comprising system classes and service modules, at least one module representation table, in which the modules are indexed and a table associating the index of a module of the representation table with the identifier of said module, each module comprising a table of representation of the classes, in which the classes are indexed and in which each class presents a reference to the index of its module, each class comprising an array of attributes and methods representation, in which the attributes and methods are indexed, the reference to a e method or an attribute being coded on at least three bytes corresponding to a reference to a class internal or external to the module, a reference external to the module constituting the index of the API module in the module table, a class number
- the on-board system includes means for comparing the first byte of the three reference coding bytes to a method or to an attribute with a determined value n to decide whether it is an internal or external class.
- the on-board system comprises a main module comprising the main program of the system.
- the classes are indexed according to the order public classes then classes in private packages, and the attributes or methods according to the order attribute or method public, protected, in private package and in private class.
- the programmable non-volatile memory comprises several API modules comprising system classes, two modules representation tables, one for the API modules and the other for the non-API modules and the main module, and two MID / IMi association tables each corresponding to a module representation table.
- the on-board system comprises an access manager class "Access manager" of an API module comprising a method making it possible to create an instance of a service module, via the main module, said class having protection prohibiting him from having more than one instance.
- Another object of the invention is to propose a method for executing an application present on a multi-application embedded system.
- This object is achieved by the fact that the method for executing an application of a multi-application embedded system, comprising an execution environment including a virtual machine comprising a language interpreter of intermediate pseudocode type, and interfaces for Application programming (API), is characterized in that, during the execution of the intermediate pseudocode of a service module, corresponding to an application, referenced in a module table, the reference to a method or an attribute in the pseudocode, coded on at least three bytes corresponding to a reference to a class internal or external to the module, a class number and a method or attribute number, a reference external to the module is interpreted by the machine virtual as a reference to the index of an API module in the table of the API module (s).
- API Application programming
- the execution environment accesses the input class of a main module comprising the main program of the system, the main module installs an instance of a special class "Access Manager", of an API module, managing access to a service module and uses a method of this class allowing to create an instance of the input class of the module service requested, via an association table of the identifier to the index of the module in an array in which the module is referenced, the instance being returned by the method to the main program.
- a special class "Access Manager" of an API module managing access to a service module and uses a method of this class allowing to create an instance of the input class of the module service requested, via an association table of the identifier to the index of the module in an array in which the module is referenced, the instance being returned by the method to the main program.
- FIG. 1 shows schematically the different elements necessary for loading a portable object according to a first embodiment
- FIG. 2 shows schematically the different elements necessary for loading a portable object according to a second embodiment
- FIG. 3 shows the internal representation of a module
- FIG. 4a shows the conventional diagram of a smart card
- FIG. 4b shows the system necessary for the constitution of a virtual machine on board a smart card according to the prior art
- Figure 4c shows the structure of the classes of an application. The method will be described, in conjunction with Figures 1 to 3, without limitation, in the case of the implementation of the invention in an on-board system, for example of a specific type consisting of a smart card or an object similar laptop.
- the designation byte code or byte code type program covers any pseudocode or intermediate program.
- the portable object constitutes, for example, a smart card and has a structure similar to that described above with reference to FIGS. 4a and 4b, and in particular comprises a RAM, ROM and EEPROM memory.
- the specific platform (60) and a conventional station (80) are represented in FIG. 1.
- the specific platform (60) has in ROM, an execution environment (RE) comprising APIs (62) and a embedded virtual machine (61) ("onplatform").
- the specific platform (60) is shown in FIG. 1, as comprising all of the ROM and EEPROM memories. It should be noted that the specific platform (60) more specifically designates the execution environment (RE) and the elements present in EEPROM memory.
- the portable object has an Operating System (63) in ROM.
- the APIs (62), present in ROM memory constitute the basic APIs of the API platform, loaded with the on-board virtual machine for the operation thereof.
- the non-portable part (90) of the virtual machine comprises an intermediate pseudocode verifier (91), a converter (92) and possibly a signer (94).
- the signer issues a signature to validate the passage through the verifier and the converter. This signature will be verified by the portable object at the time of loading.
- the loading into EEPROM of applications or new APIs to complete the basic APIs is carried out by a charger which can be composed of two parts, a part excluding portable object that can be installed in the virtual machine excluding portable object (90), called downloader (93), and a part on the specific platform, called loader (68).
- the specific platform (60) comprises two special modules, an API module (65) and a main module (66).
- the other modules are called service modules (67).
- Each module corresponds to a set of packages which will be stored in the same namespace.
- the API platform designates the basic APIs (62) and the set of system classes that define the API module (65) or module of the API platform.
- the main module includes the main class defining the main program.
- Each module, except the API module (65), has a unique, specific class, called "Entry Class", which constitutes the access point to the module. For the main module, this "Entry Class" is the main class (CP), the one that contains a static method called "main”.
- service modules it is a class with only one constructor without parameters and implementing a special public interface, called "service" defined in the API platform.
- the loading of an application corresponds to the loading of a service module.
- Each module receives a specific identifier.
- Such an identifier which is called MID, can for example be a number, a character string, or an array.
- the identifier is a character string.
- the module downloader (93) with the charger (68) maintains, when loading new service modules, a table (TRM) (69) of representation of the modules.
- the number associated with a module is the index (IM) of this module in the table.
- the loader (68) also maintains a table (70) associating the index (IM) with the identifier (MID) of each module.
- the API module systematically receives the number 0 for the IMo index, and the main module for the IMi index the number 1.
- the header of each module includes an indicator allowing the loader to determine the nature of the module, "main", “service” modules or "API” module.
- the charger (68) can only charge the modules authorized to reside on the portable object, i.e. only the modules having a signature known to the portable object.
- the charger (68) therefore comprises means of verifying the signature of a module received, of comparing it with the known signature of the portable object and in the event of a negative comparison of blocking the loading.
- the source program (81) of an application is written and then compiled by a compiler (82) and then verified by the verifier (91).
- linker linker
- NCI a number for each class of a module
- NA a number (NA) for each attribute in a class.
- the reference to a method or an attribute of a class will thus be coded in the linked pseudocode of the methods of the module on two bytes or bytes.
- the pseudocode will contain these two bytes ⁇ NCI> for the class and ⁇ NA> for an attribute or ⁇ NM> for a method.
- the internal representation of an API module (65), of a main module (66) or of a service module (67), will contain a table (TRC) of class representation; the number (NCI) associated by the linker, outside the on-board system, with each class is the index (ICi) of the representation of this class in the table (TRC). Each class also has a reference to the index (IMi) of its module.
- the representation of each class contains an array of method representations (TRMe) and an array of attribute representations (TRA) belonging to the class.
- the number (NM), associated by the linker, outside the on-board system, to each method is the index (IMi), of the representation of this method in the table (TRMe), and the number (NA), associated by the linker, outside the on-board system, with each attribute is the index (lAi), of the representation of this attribute in the table (TRA).
- a module to be able to refer only to its own classes and to the system classes of the API platform, the system classes corresponding to the "ClassPath" classes of a classic platform.
- an internal (II) or external (IE) indicator is added to the reference to a method or attribute.
- the resolved reference is then coded on three bytes: ⁇ IE / II> ⁇ NCI> ⁇ NM> or ⁇ IE / II> ⁇ NCI> ⁇ NA>
- the value n of the first byte ⁇ IE / II> corresponds to an internal reference ⁇ ll> to the module and any other value for the first byte corresponds to an external reference ⁇ IE> to the module.
- the linker of the converter (92) of the virtual machine excluding portable object (90) first connects the API module (65), which does not have external references ⁇ IE> in its pseudocode, and produces a layout or arrangement, corresponding to a plan of symbolic names of its classes and their methods and attributes. When linking the other modules, this layout will be used to establish external references to system classes of the API module (65).
- the internal reference to a class of a module does not require any prior knowledge of the namespace that will be assigned to the module.
- the fact of not a priori defining a fixed namespace during the conversion phase makes it possible to speed up the resolution of the references and to determine the namespace of a module during the loading, after the conversion phase .
- the virtual machine when interpreting a reference to an attribute or method in the pseudocode, uses the three indexes ⁇ IE / II> ⁇ NCI> ⁇ NM> or ⁇ IE / II> ⁇ NCI> ⁇ NA> in cascade.
- the index ⁇ NCI> determines the desired entry in the table of classes (TRM) of the module, then the last index ⁇ NM> or ⁇ NA> gives the desired entry in the table methods (TRMe) or the attribute table (TRA).
- the API module includes a special class (64), called class "access manager” or “Access Manager”, which includes a native method (getServiceInstance) whose role is to render an instance object of the input class of the module service request, from the module identifier (MID).
- This method uses the MID / lmi association table (70) to find out the index of the module requested in the module table (69) and then creates an instance of the input class for this module, which instance is returned by the method.
- the class "Access Manager” (64) is protected by construction by a method consisting in prohibiting that this class has more than one instance.
- This method (getServiceInstance) belongs to the main program contained in the main module.
- the main module which will be activated first when using the portable object creates an instance and only one of the class "Access Manager", which allows you to use the getServiceInstance method, but prohibits any other service from creating another instance to use this method.
- the execution environment accesses the input class (EC) of the main module and activates its input method (main).
- the main module being the first activated, proceeds to the installation of an instance of the class "Access manager" before any other service does so, since to activate other services, the main module must already have such an instance of the access class.
- This simple device makes it possible to reproduce the protective effect linked to the concept of the namespace of a classic platform.
- the simple fact of loading a service module in the table of modules and that the presence in the pseudocode of any external reference is interpreted by the virtual machine as a reference to the API module, makes this module completely inaccessible directly by the other modules, creating thus a total firewall.
- This first embodiment provides the advantages of a firewall provided by the separation of namespaces in the context of a virtual machine in two parts.
- this embodiment is not very flexible and has two drawbacks.
- FIG. 2 represents a second embodiment allowing the evolution of the API platform.
- the API platform is made up of several API modules (100) which can be loaded separately, instead of being made up of a single API module.
- the downloader (93) and the virtual machine share two tables of modules and two MID / index association tables instead of one of each, a table (101) and an association table (102 ) for API modules and a table (103) and an association table (104) for non-API modules, corresponding to the service module (67) and the main module (66).
- Each module has in its header an indicator indicating its "Service” or "API” nature allowing the loader to load the module in the table (101) of API modules or in the table (103) of non-API modules. This indicator is placed in the header of the module during the compilation phase by the converter.
- the firewall formed by the separation of the namespace is only present between non-API modules. Any external reference to a service module will be interpreted by the interpreter of the on-board virtual machine as an index to the table of the API module.
- API modules (100) will be numbered from 0 to 254 at most, 0 being by example the index of a module called primary API, which contains all the native methods. In accordance with the convention described above, this allows at most 255 (n) different modules in the API platform.
- the reference to a method or attribute in the pseudocode is: "IE / II> ⁇ NCI> ⁇ NM / NA"
- the value 255 (n) for the first byte (byte) will indicate, as in the first embodiment, an internal reference to the module. Each value other than 255 will indicate an external reference to a specific module (100) in the API module table of the API platform.
- the pseudocode of a module comprises a header presenting a table of referenced modules used to link the current module. This table of referenced modules comprises at most 255 entries, each entry corresponding to the identifier (MID) of an API module (100). The first byte of an external reference in the pseudocode will then be an index in this table.
- the index numbers associated with API modules (100) will be known and thus each first byte of an external reference will be replaced by the number index associated with the API module referred using the MID / IMi association table (102) of the API modules (100).
- This replacement is the only link operation performed on the specific platform, by the loader (68), the MID / IMi association table (102) being used only to perform this link operation.
- the table (101) of API modules includes a specific module (105), called “API Access” module which includes a native method (getServiceInstance) in a class "access manager” or “Access Manager” whose role is to render an instance object of the input class of the requested service module.
- This method uses the MID / IMi association table (104) to find out the index of the service module requested in the table (103) of non-API modules and then creates an instance of the input class of this module which is returned by the method to the main program.
- the recommended security policy is to make the "Access Manager” class a protected class whose constructor and methods are declared protected.
- the "API Access” module (105) includes a protection consisting in prohibiting that the "Access Manager” class has more than one instance.
- This method is reserved for the main program contained in the main module (66).
- the main module which is activated first creates an instance of the Access manager module, which allows it to use the getServiceInstance method, but prohibits any other service from creating another instance to use this method.
- the main module can create instances of services.
- Several methods can be used to obtain this protection consisting in prohibiting that the "Access manager" class has only one instance.
- the constructor of the class can for example block the request to create an instance when one already exists and throws a security exception.
- the execution environment (RE) accesses the input class of the main module (66) and activates its input method (main).
- the main module being the first activated proceeds to the installation of an instance of the "Access Manager" class of the Access module before any other service does so.
- this strict security policy can be modified by adding to the "Access Manager" class of the API Access module (105) public classes allowing any module to make requests there. These requests will be processed and controlled by the single instance created by the main module. These public classes include a static method for obtaining the single instance. A module having access to the instance object of the "Access Manager” class will be able to activate another service module and use it, but it will not be able to directly reference its classes, methods or attributes without being spotted by the virtual machine , since any external reference in the pseudocode is an internal reference to the module or an external reference to an API module.
- this double array of modules (101, 103) and association table (102, 104) system makes it easy to replace a single API module with several API modules that can be loaded separately.
- the replacement of a single API module by several API modules makes it possible to extend the API platform with new modules, without modifying the assembly of modules already loaded, without changing the security offered by firewalls.
- these two embodiments are not compatible; the modules must be preloaded specifically for one or the other of the embodiments, the pseudocode relating to one of the embodiments not being portable on a platform implementing the other embodiment.
- the interpreter of the virtual machine differs from one embodiment to another.
- the virtual machine only manipulates a single table and an association table: the first byte of a reference will be interpreted by the virtual machine as an internal reference for any value equal to n and as a external reference to the single API module for any value other than n.
- the virtual machine manipulates two tables and two association tables: the first byte of a reference in the pseudocode will be interpreted by the virtual machine as an internal reference to the module for any value equal to n and any a value other than n will be taken directly as an index in the API module table.
- the interpreter of the virtual machine comprises means for comparing the first byte of the three bytes of coding of a reference to a method or to an attribute.
- n decides whether it is an internal or external class of the module.
- the numbering of the API modules can be determined at the time of loading to definitively and very simply fix the external references in the pseudocode.
- the same mechanisms are used to handle both types of modules, although the way they are used and the security provided is quite different. Any module can freely access API modules since their classes are system classes.
- the use of the modular approach is used with service modules to provide a rigorous firewall to protect these modules from direct access.
- the method according to the invention can be carried out on all types of portable object having low resources, such as for example, 16 KB of ROM memory, 8 KB of EEPROM memory and 256 k of RAM memory.
Landscapes
- Engineering & Computer Science (AREA)
- Business, Economics & Management (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Accounting & Taxation (AREA)
- Strategic Management (AREA)
- Microelectronics & Electronic Packaging (AREA)
- General Business, Economics & Management (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Stored Programmes (AREA)
- Devices For Executing Special Programs (AREA)
Abstract
Description
Claims
Priority Applications (6)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
JP2001539111A JP3689368B2 (ja) | 1999-11-17 | 2000-11-17 | データ処理リソースを備えたマルチアプリケーション組込システムにアプリケーションをローディングする方法、対応するシステムおよび実行方法 |
EP00981423A EP1147467A1 (fr) | 1999-11-17 | 2000-11-17 | Procede de chargement d'applications dans un systeme embarque multi-application muni de ressources de traitement de donnees, systeme, et procede d'execution correspondants |
CA002360431A CA2360431A1 (fr) | 1999-11-17 | 2000-11-17 | Procede de chargement d'applications dans un systeme embarque multi-application muni de ressources de traitement de donnees, systeme, et procede d'execution correspondants |
BR0007569-8A BR0007569A (pt) | 1999-11-17 | 2000-11-17 | Método para o carregamento de aplicações em um sistema de multi-aplicações sobre plataforma equipado com recursos de processamento de dados, sistema e método de execução correspondentes |
US09/889,416 US6983460B1 (en) | 1999-11-17 | 2000-11-17 | Method for loading applications into a multiapplication embedded system equipped with data processing resources, corresponding embedded system and execution method |
HK02104110.5A HK1042151B (zh) | 1999-11-17 | 2002-05-31 | 在配備數據處理資源的多用途平臺式系統中加載應用的方法,對應的執行系統和方法 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9914454A FR2801118B1 (fr) | 1999-11-17 | 1999-11-17 | Procede de chargement d'applications dans un systeme embarque multi-application, systeme embarque correspondant, et procede d'execution d'une application du systeme embarque |
FR99/14454 | 1999-11-17 |
Publications (1)
Publication Number | Publication Date |
---|---|
WO2001037085A1 true WO2001037085A1 (fr) | 2001-05-25 |
Family
ID=9552215
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
PCT/FR2000/003193 WO2001037085A1 (fr) | 1999-11-17 | 2000-11-17 | Procede de chargement d'applications dans un systeme embarque multi-application muni de ressources de traitement de donnees, systeme, et procede d'execution correspondants |
Country Status (10)
Country | Link |
---|---|
US (1) | US6983460B1 (fr) |
EP (1) | EP1147467A1 (fr) |
JP (1) | JP3689368B2 (fr) |
CN (1) | CN1162775C (fr) |
AR (1) | AR034105A1 (fr) |
BR (1) | BR0007569A (fr) |
CA (1) | CA2360431A1 (fr) |
FR (1) | FR2801118B1 (fr) |
HK (1) | HK1042151B (fr) |
WO (1) | WO2001037085A1 (fr) |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2198198A1 (es) * | 2002-01-29 | 2004-01-16 | Airtel Movil S A | Sistema de personalizacion de las aplicaciones de una tarjeta sim o usim de un terminal movil. |
JP2004185593A (ja) * | 2002-07-26 | 2004-07-02 | Ricoh Co Ltd | 画像形成装置およびアプリケーション実行方法 |
WO2004072849A1 (fr) * | 2003-02-17 | 2004-08-26 | Giesecke & Devrient Gmbh | Procede pour etablir un code de programme |
WO2011054498A1 (fr) * | 2009-11-05 | 2011-05-12 | Trusted Logic | Objet portatif sûr |
Families Citing this family (71)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9110692B2 (en) | 2001-03-22 | 2015-08-18 | Frederick Master | Method and apparatus for a compiler and related components for stream-based computations for a general-purpose, multiple-core system |
US8843928B2 (en) | 2010-01-21 | 2014-09-23 | Qst Holdings, Llc | Method and apparatus for a general-purpose, multiple-core system for implementing stream-based computations |
WO2002097619A2 (fr) * | 2001-05-30 | 2002-12-05 | Research In Motion Limited | Systeme de traitement d'application de dispositif de communications mobile |
US20100174717A1 (en) * | 2002-02-28 | 2010-07-08 | Olivier Fambon | Interative serialisation procedure for structured software objects |
US7069442B2 (en) * | 2002-03-29 | 2006-06-27 | Intel Corporation | System and method for execution of a secured environment initialization instruction |
US7421713B2 (en) * | 2002-06-12 | 2008-09-02 | Matsushita Electric Industrial Co., Ltd. | Safe service extension platform |
US7246347B1 (en) * | 2002-06-26 | 2007-07-17 | Sun Microsystems, Inc | Method and apparatus for loading class files into non-volatile memory |
BR0312989A (pt) * | 2002-07-26 | 2008-03-04 | Ron Everett | base de dados e sistema de operação de conhecimento |
JP3912278B2 (ja) * | 2002-12-20 | 2007-05-09 | 株式会社日立製作所 | 組込みコントローラ及び組込みコントローラ開発ツール |
US6945957B2 (en) * | 2002-12-30 | 2005-09-20 | Scimed Life Systems, Inc. | Valve treatment catheter and methods |
US7051324B2 (en) * | 2003-01-16 | 2006-05-23 | International Business Machines Corporation | Externalized classloader information for application servers |
US8225302B2 (en) * | 2003-02-13 | 2012-07-17 | Lawrence Taylor Waugh | System and method for managing source code and acquiring metrics in software development |
GB0315165D0 (en) * | 2003-05-02 | 2003-08-06 | Transitive Ltd | Improved architecture for generating intermediate representations for program code conversion |
FR2864650B1 (fr) * | 2003-12-24 | 2006-03-24 | Trusted Logic | Procede de mise a jour d'applications pour carte a puce |
US7917898B2 (en) * | 2004-02-02 | 2011-03-29 | Intel Corporation | Methods and apparatus to provide a modular native method invocation system |
CA2813136A1 (fr) * | 2004-02-27 | 2005-09-15 | Aortx, Inc. | Systemes et procedes de mise en place de valvules cardiaques prothetiques |
US7574705B2 (en) * | 2004-06-29 | 2009-08-11 | Sun Microsystems, Inc. | Method and apparatus for efficiently resolving symbolic references in a virtual machine |
US7454748B2 (en) * | 2004-07-27 | 2008-11-18 | Nokia Corporation | System and method for specifying virtual machines |
CN100442234C (zh) * | 2005-06-21 | 2008-12-10 | 国际商业机器公司 | 用于嵌入式系统的软件包构建方法和系统 |
US8286158B2 (en) * | 2006-02-06 | 2012-10-09 | Imation Corp. | Method and system for installing portable executable applications |
US8376865B2 (en) * | 2006-06-20 | 2013-02-19 | Cardiacmd, Inc. | Torque shaft and torque shaft drive |
US20080005160A1 (en) * | 2006-06-30 | 2008-01-03 | Microsoft Corporation | Assembly Sensitive Dynamic Classloading Of .Net Types in J# |
CN101484876B (zh) * | 2006-07-14 | 2012-12-19 | 英特尔公司 | 多任务虚拟机的堆组织 |
US9477495B2 (en) | 2006-08-17 | 2016-10-25 | International Business Machines Corporation | Conservative class preloading for real time Java execution |
GB2459682B (en) * | 2008-04-30 | 2012-04-25 | Vmware Inc | A computer system and a method of deploying an application in a computer system |
US8621601B2 (en) * | 2008-05-21 | 2013-12-31 | Sandisk Technologies Inc. | Systems for authentication for access to software development kit for a peripheral device |
CN101819526B (zh) * | 2009-09-18 | 2013-08-28 | 华为技术有限公司 | 调用底层软件的方法、装置和嵌入式系统 |
WO2011101972A1 (fr) * | 2010-02-18 | 2011-08-25 | 株式会社東芝 | Programme |
US20110265058A1 (en) * | 2010-04-26 | 2011-10-27 | Microsoft Corporation | Embeddable project data |
US10402208B2 (en) | 2012-06-18 | 2019-09-03 | Microsoft Technology Licensing, Llc | Adaptive portable libraries |
US8990839B2 (en) | 2013-04-22 | 2015-03-24 | Microsoft Technology Licensing, Llc | Controlling runtime access to application programming interfaces |
DE102013114763A1 (de) * | 2013-10-16 | 2015-04-16 | Semvox Gmbh | Sprachsteuerungsverfahren sowie Computerprogrammprodukt und Vorrichtung zur Durchführung des Verfahrens |
US10025602B2 (en) * | 2014-06-03 | 2018-07-17 | Mentor Graphics Corporation | Prelinked embedding |
US9678773B1 (en) | 2014-09-30 | 2017-06-13 | Amazon Technologies, Inc. | Low latency computational capacity provisioning |
US9146764B1 (en) | 2014-09-30 | 2015-09-29 | Amazon Technologies, Inc. | Processing event messages for user requests to execute program code |
US9600312B2 (en) | 2014-09-30 | 2017-03-21 | Amazon Technologies, Inc. | Threading as a service |
US9413626B2 (en) | 2014-12-05 | 2016-08-09 | Amazon Technologies, Inc. | Automatic management of resource sizing |
US9733967B2 (en) | 2015-02-04 | 2017-08-15 | Amazon Technologies, Inc. | Security protocols for low latency execution of program code |
US9588790B1 (en) | 2015-02-04 | 2017-03-07 | Amazon Technologies, Inc. | Stateful virtual compute system |
US9930103B2 (en) * | 2015-04-08 | 2018-03-27 | Amazon Technologies, Inc. | Endpoint management system providing an application programming interface proxy service |
US10104090B2 (en) | 2015-08-25 | 2018-10-16 | Oracle International Corporation | Restrictive access control for modular reflection |
US10394528B2 (en) | 2016-03-30 | 2019-08-27 | Oracle International Corporation | Returning a runtime type loaded from an archive in a module system |
US11132213B1 (en) | 2016-03-30 | 2021-09-28 | Amazon Technologies, Inc. | Dependency-based process of pre-existing data sets at an on demand code execution environment |
US10191753B2 (en) | 2016-03-30 | 2019-01-29 | Oracle International Corporation | Generating verification metadata and verifying a runtime type based on verification metadata |
US10102040B2 (en) | 2016-06-29 | 2018-10-16 | Amazon Technologies, Inc | Adjusting variable limit on concurrent code executions |
CN106201896A (zh) * | 2016-07-26 | 2016-12-07 | 华中科技大学 | 一种嵌入式环境下基于检查点的调试方法、系统及装置 |
US10387142B2 (en) | 2016-09-16 | 2019-08-20 | Oracle International Corporation | Using annotation processors defined by modules with annotation processors defined by non-module code |
US10282184B2 (en) | 2016-09-16 | 2019-05-07 | Oracle International Corporation | Metadata application constraints within a module system based on modular dependencies |
US10848410B2 (en) | 2017-03-29 | 2020-11-24 | Oracle International Corporation | Ranking service implementations for a service interface |
CN110390184B (zh) * | 2018-04-20 | 2022-12-20 | 伊姆西Ip控股有限责任公司 | 用于在云中执行应用的方法、装置和计算机程序产品 |
US10853115B2 (en) | 2018-06-25 | 2020-12-01 | Amazon Technologies, Inc. | Execution of auxiliary functions in an on-demand network code execution system |
US11146569B1 (en) | 2018-06-28 | 2021-10-12 | Amazon Technologies, Inc. | Escalation-resistant secure network services using request-scoped authentication information |
US11099870B1 (en) | 2018-07-25 | 2021-08-24 | Amazon Technologies, Inc. | Reducing execution times in an on-demand network code execution system using saved machine states |
DE102018122920A1 (de) * | 2018-09-19 | 2020-03-19 | Endress+Hauser Conducta Gmbh+Co. Kg | Verfahren zur Installation eines Programms auf einem eingebetteten System, ein eingebettetes System für ein derartiges Verfahren sowie ein Verfahren zur Erstellung einer Zusatzinformation |
US11099917B2 (en) | 2018-09-27 | 2021-08-24 | Amazon Technologies, Inc. | Efficient state maintenance for execution environments in an on-demand code execution system |
US11243953B2 (en) | 2018-09-27 | 2022-02-08 | Amazon Technologies, Inc. | Mapreduce implementation in an on-demand network code execution system and stream data processing system |
CN113168320B (zh) * | 2018-11-02 | 2024-10-01 | Lz实验室有限公司 | 用类选择性替换遗留加载模块程序以在java虚拟机中执行 |
US11943093B1 (en) | 2018-11-20 | 2024-03-26 | Amazon Technologies, Inc. | Network connection recovery after virtual machine transition in an on-demand network code execution system |
US11010188B1 (en) | 2019-02-05 | 2021-05-18 | Amazon Technologies, Inc. | Simulated data object storage using on-demand computation of data objects |
US11861386B1 (en) | 2019-03-22 | 2024-01-02 | Amazon Technologies, Inc. | Application gateways in an on-demand network code execution system |
US11119809B1 (en) | 2019-06-20 | 2021-09-14 | Amazon Technologies, Inc. | Virtualization-based transaction handling in an on-demand network code execution system |
US11159528B2 (en) | 2019-06-28 | 2021-10-26 | Amazon Technologies, Inc. | Authentication to network-services using hosted authentication information |
US11190609B2 (en) | 2019-06-28 | 2021-11-30 | Amazon Technologies, Inc. | Connection pooling for scalable network services |
US11119826B2 (en) | 2019-11-27 | 2021-09-14 | Amazon Technologies, Inc. | Serverless call distribution to implement spillover while avoiding cold starts |
US11714682B1 (en) | 2020-03-03 | 2023-08-01 | Amazon Technologies, Inc. | Reclaiming computing resources in an on-demand code execution system |
US11593270B1 (en) | 2020-11-25 | 2023-02-28 | Amazon Technologies, Inc. | Fast distributed caching using erasure coded object parts |
US11550713B1 (en) | 2020-11-25 | 2023-01-10 | Amazon Technologies, Inc. | Garbage collection in distributed systems using life cycled storage roots |
US11388210B1 (en) | 2021-06-30 | 2022-07-12 | Amazon Technologies, Inc. | Streaming analytics using a serverless compute system |
US11968280B1 (en) | 2021-11-24 | 2024-04-23 | Amazon Technologies, Inc. | Controlling ingestion of streaming data to serverless function executions |
US12015603B2 (en) | 2021-12-10 | 2024-06-18 | Amazon Technologies, Inc. | Multi-tenant mode for serverless code execution |
CN114860204B (zh) * | 2022-04-27 | 2024-07-02 | 恒宝股份有限公司 | 程序处理、运行方法、装置、终端、智能卡及存储介质 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2673476A1 (fr) * | 1991-01-18 | 1992-09-04 | Gemplus Card Int | Procede securise de chargement de plusieurs applications dans une carte a memoire a microprocesseur. |
WO1998019237A1 (fr) * | 1996-10-25 | 1998-05-07 | Schlumberger Systemes | Utilisation de langage de programmation evolue avec un controleur microprogramme |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6363436B1 (en) * | 1997-01-27 | 2002-03-26 | International Business Machines Corporation | Method and system for loading libraries into embedded systems |
US6430570B1 (en) * | 1999-03-01 | 2002-08-06 | Hewlett-Packard Company | Java application manager for embedded device |
-
1999
- 1999-11-17 FR FR9914454A patent/FR2801118B1/fr not_active Expired - Fee Related
-
2000
- 2000-11-17 EP EP00981423A patent/EP1147467A1/fr not_active Withdrawn
- 2000-11-17 WO PCT/FR2000/003193 patent/WO2001037085A1/fr not_active Application Discontinuation
- 2000-11-17 US US09/889,416 patent/US6983460B1/en not_active Expired - Fee Related
- 2000-11-17 CA CA002360431A patent/CA2360431A1/fr not_active Abandoned
- 2000-11-17 BR BR0007569-8A patent/BR0007569A/pt not_active IP Right Cessation
- 2000-11-17 AR ARP000106076A patent/AR034105A1/es unknown
- 2000-11-17 CN CNB00804077XA patent/CN1162775C/zh not_active Expired - Fee Related
- 2000-11-17 JP JP2001539111A patent/JP3689368B2/ja not_active Expired - Fee Related
-
2002
- 2002-05-31 HK HK02104110.5A patent/HK1042151B/zh not_active IP Right Cessation
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
FR2673476A1 (fr) * | 1991-01-18 | 1992-09-04 | Gemplus Card Int | Procede securise de chargement de plusieurs applications dans une carte a memoire a microprocesseur. |
WO1998019237A1 (fr) * | 1996-10-25 | 1998-05-07 | Schlumberger Systemes | Utilisation de langage de programmation evolue avec un controleur microprogramme |
Non-Patent Citations (1)
Title |
---|
ZHIQUN CHEN, RINALDO DI GIORGIO: "Understanding Java Card 2.0", INTERNET DOCUMENT, March 1998 (1998-03-01), XP002146332 * |
Cited By (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
ES2198198A1 (es) * | 2002-01-29 | 2004-01-16 | Airtel Movil S A | Sistema de personalizacion de las aplicaciones de una tarjeta sim o usim de un terminal movil. |
JP2004185593A (ja) * | 2002-07-26 | 2004-07-02 | Ricoh Co Ltd | 画像形成装置およびアプリケーション実行方法 |
WO2004072849A1 (fr) * | 2003-02-17 | 2004-08-26 | Giesecke & Devrient Gmbh | Procede pour etablir un code de programme |
WO2011054498A1 (fr) * | 2009-11-05 | 2011-05-12 | Trusted Logic | Objet portatif sûr |
US9311588B2 (en) | 2009-11-05 | 2016-04-12 | Trusted Logic | Secure portable object |
Also Published As
Publication number | Publication date |
---|---|
FR2801118A1 (fr) | 2001-05-18 |
US6983460B1 (en) | 2006-01-03 |
BR0007569A (pt) | 2002-02-05 |
AR034105A1 (es) | 2004-02-04 |
CN1341238A (zh) | 2002-03-20 |
CN1162775C (zh) | 2004-08-18 |
HK1042151A1 (en) | 2002-08-02 |
EP1147467A1 (fr) | 2001-10-24 |
JP3689368B2 (ja) | 2005-08-31 |
FR2801118B1 (fr) | 2001-12-21 |
CA2360431A1 (fr) | 2001-05-25 |
HK1042151B (zh) | 2005-04-22 |
JP2003515215A (ja) | 2003-04-22 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
WO2001037085A1 (fr) | Procede de chargement d'applications dans un systeme embarque multi-application muni de ressources de traitement de donnees, systeme, et procede d'execution correspondants | |
US8234622B2 (en) | Cross platform compositional widgets | |
CN110249307A (zh) | 用于在区块链上执行原生合约的系统和方法 | |
EP3123387B1 (fr) | Sécurisation du chargement de données dans une mémoire non-volatile d'un élément sécurisé | |
EP2649522B1 (fr) | Methode de mise a disposition d'une application en tant que librairie dans une machine virtuelle | |
US20080256512A1 (en) | Out of band data augmentation | |
US12067122B2 (en) | Detecting added functionality in open source package | |
FR3017725A1 (fr) | Procede de deploiement d'un ensemble d'application (s) logicielle (s) | |
EP1649363B1 (fr) | Procede de gestion des composants logiciels integres dans un systeme embarque | |
WO2001097026A1 (fr) | Systeme informatique modulaire et procede associe | |
EP2453356B1 (fr) | Procédé, programme d'ordinateur et dispositif de sécurisation de code intermédiaire de programmation pour son exécution par une machine virtuelle | |
WO2007068706A1 (fr) | Procede pour securiser l'execution d'un code logiciel en langage intermediaire dans un appareil portatif | |
CN113590144B (zh) | 一种依赖处理方法及装置 | |
FR2683061A1 (fr) | Systeme de segmentation de memoire. | |
CN101512972A (zh) | 将网络环境中的空间个性化 | |
EP1112536A1 (fr) | Procede de verification de transformateurs de codes pour un systeme embarque, notamment sur une carte a puce | |
CN116700745A (zh) | 基于容器云平台的应用部署方法、装置、电子设备和介质 | |
FR2867929A1 (fr) | Procede d'authentification dynamique de programmes par un objet portable electronique | |
FR3072477B1 (fr) | Securisation d’instructions de branchement conditionnel compose dans un programme informatique en code intermediaire | |
FR2923041A1 (fr) | Procede d'ouverture securisee a des tiers d'une carte a microcircuit. | |
EP3593270A1 (fr) | Procede d'acces a une ressource informatique securisee par une application informatique | |
WO2024074036A1 (fr) | Identification de sous-classe d'objet inconnu | |
EP3411821B1 (fr) | Procédé de stockage de contenus, procédé de consultation de contenus, procédé de gestion de contenus et lecteurs de contenus | |
EP2284751B1 (fr) | Procédé de traçabilité et d'imputabilité dynamiques des échanges dans un environnement ouvert de type internet | |
Daubaris | Towards Adaptive WebAssembly Applications: Leveraging Capabilities of the Execution Environment |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
WWE | Wipo information: entry into national phase |
Ref document number: 00804077.X Country of ref document: CN |
|
AK | Designated states |
Kind code of ref document: A1 Designated state(s): BR CA CN JP US |
|
AL | Designated countries for regional patents |
Kind code of ref document: A1 Designated state(s): AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR |
|
WWE | Wipo information: entry into national phase |
Ref document number: 2000981423 Country of ref document: EP |
|
ENP | Entry into the national phase |
Ref document number: 2360431 Country of ref document: CA Ref document number: 2360431 Country of ref document: CA Kind code of ref document: A |
|
ENP | Entry into the national phase |
Ref document number: 2001 539111 Country of ref document: JP Kind code of ref document: A |
|
WWE | Wipo information: entry into national phase |
Ref document number: 09889416 Country of ref document: US |
|
121 | Ep: the epo has been informed by wipo that ep was designated in this application | ||
WWP | Wipo information: published in national office |
Ref document number: 2000981423 Country of ref document: EP |
|
WWW | Wipo information: withdrawn in national office |
Ref document number: 2000981423 Country of ref document: EP |