WO2003107186A1 - プログラム実行処理端末装置、プログラム実行処理方法及びプログラム - Google Patents

プログラム実行処理端末装置、プログラム実行処理方法及びプログラム Download PDF

Info

Publication number
WO2003107186A1
WO2003107186A1 PCT/JP2003/006980 JP0306980W WO03107186A1 WO 2003107186 A1 WO2003107186 A1 WO 2003107186A1 JP 0306980 W JP0306980 W JP 0306980W WO 03107186 A1 WO03107186 A1 WO 03107186A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
format
temporary
runtime
execution
Prior art date
Application number
PCT/JP2003/006980
Other languages
English (en)
French (fr)
Inventor
金丸 智一
Original Assignee
松下電器産業株式会社
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 松下電器産業株式会社 filed Critical 松下電器産業株式会社
Priority to AU2003241885A priority Critical patent/AU2003241885A1/en
Priority to EP03733256A priority patent/EP1515232A4/en
Priority to JP2004513936A priority patent/JP4376181B2/ja
Priority to US10/496,968 priority patent/US7506323B2/en
Publication of WO2003107186A1 publication Critical patent/WO2003107186A1/ja

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements 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/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating

Definitions

  • the present invention relates to an information terminal device for interpreting and executing a received program, a program execution processing method and a program, and in particular, an information terminal device for realizing a high-speed program start-up,
  • the present invention relates to a program execution processing method and a program.
  • a typical example is a service for distributing content such as images and ringtones.
  • a program not just data, and execute it as an application on a portable information terminal.
  • a program not only the functions (applications) provided to the mobile information terminal from the beginning, but also new ones later.
  • Various functions can be added and used.
  • PIM Patenta 1 Information Manager
  • applications such as electronic telephone books and electronic schedule books, and game application applications And other services.
  • the user is free to choose the application that has the features he or she wants to use, or the user interface that is easy to use, the screen configuration that he or she likes, and so on. By downloading the program, you can use the selected application.
  • JaVa (TM) is a promising software architecture to realize the program distribution mechanism.
  • Java is equipped with a virtual machine mechanism, and can run programs without depending on the hardware and the hardware of the device. It is considered an effective architecture not only in the field of convenience such as Narco View (hereinafter abbreviated as PC) but also for home appliances. .
  • the start-up time here refers to the user or personal digital assistant.
  • Other installed applications can use a specific application for the virtual machine inside the mobile information terminal. It indicates the elapsed time from when an instruction to start execution of interpretation of an application is given to when the initial screen of the application whose start is instructed is output on the display screen of the portable information terminal.
  • the startup time is the time it takes for the application to become available, and for the user, the extra time that the application is not actually being used. Because of the time, the longer the startup time, the lower the application execution efficiency.
  • TM JaVa
  • TM general JaVa
  • TM Java
  • TM Java
  • a program consists of one or more files called class files.
  • class files When a program is downloaded, there is usually one class file. It is provided in a packaged format in a file, but after downloading, it is expanded as one or more class files and It is saved as a file.
  • the initialization process is an initial operation necessary to enable execution of a Java (TM) virtual machine. More specifically, processing to secure a memory area (such as Java heap area) used by the virtual machine, initialization of garbage collection processing, initialization of class loader, Performs the initialization of the red management, etc.
  • TM Java
  • the class verification process is a process performed to guarantee the safety of the program to be executed. Specifically, the inspection of the class file format and the byte code included in the class file conform to the specification of JaVa (TM). Inspect this.
  • the class file is defined as a recording format that can be executed by a Java TM virtual machine (hereinafter referred to as a run-time execution format). This is the process of expanding on the memory area used by the virtual machine.
  • the target class file is a class file with a main method that is the first execution method of the program to be executed, and a class file with the main method. All class files that can be referenced from the file.
  • the class loading process is defined as “the class loading process that is necessary only when the application is started for the first time” and the “application Class loading required for the second and subsequent startups of the application ", and the results of the" first class opening-loading process "are stored in a class file.
  • the temporary runtime format By storing it as a recording format different from the format (hereinafter referred to as the temporary runtime format), when the program is started, the " The purpose is to reduce the time required to start the program by only having to perform "class load processing". Disclosure of the invention
  • a program execution processing terminal device of the present invention is a program for converting a Java (TM) class file into a runtime execution form, for example, from a Java (TM) class file. And a temporary lantern generated based on a program stored in the program storage unit or a runtime execution format converted by the loader unit.
  • Temporary run time storage unit for storing the time execution format, and temporary run time stored in the temporary run time execution format storage unit
  • a post loader unit for performing a boss loading process for converting an executable format into a runtime executable format, and the temporary run mode is specified when a program is instructed to start.
  • Temporary run time in the memory It is determined whether or not the executable form exists.
  • the loader unit is requested to convert to the runtime executable form. Requests the loader to convert to runtime execution format. It should be noted that even if the runtime execution format converted by the loader unit is converted to a temporary runtime execution format, the temporary runtime execution format can be obtained. Good. In this way, when the program is started up for the first time, it performs normal load processing, performs run-time saving processing after load processing, and executes tempo processing. By generating a run-time runtime format, the program will be able to generate a run-time format from the temporary run-time format on the second and subsequent launches. Load processing can be replaced with normal load processing, and the processing time required for starting the second and subsequent programs can be shortened.
  • a temporary run time execution format is obtained. You may. In this way, the program is preloaded and the temporary run-time executable is generated. From the first time on, the normal load processing can be replaced by the post load processing, and the processing time required for starting the program can be reduced.
  • a temporary run time storage format storage step to store the temporary run time execution format storage portion when the program is instructed to start.
  • a program of the present invention is for causing a computer to execute the above-described program execution processing method.
  • This program may be supplied to a computer such as an information terminal device in a state stored in a computer-readable recording medium, or may be supplied to a computer such as an information terminal device via a communication line. It may be supplied at a convenience store overnight.
  • FIG. 1 is a hardware configuration diagram of a portable information terminal according to an embodiment of the present invention.
  • FIG. 2 is a block diagram showing a configuration of a program execution processing terminal device according to the embodiment of the present invention.
  • FIG. 3 is a diagram showing a relationship between data conversion and data conversion in the class loading process according to the embodiment of the present invention.
  • FIG. 4 is a diagram showing an example of a program structure according to the embodiment of the present invention.
  • FIG. 5 is a diagram showing an example of the structure of the runtime execution format according to the embodiment of the present invention.
  • FIG. 6 is a diagram showing an example of the structure of the runtime execution format according to the embodiment of the present invention.
  • FIG. 7 is a diagram showing an example of a structure of a temporary runtime execution form in the embodiment of the present invention.
  • FIG. 8 is a diagram showing an example of a structure of a temporary run time execution format according to the embodiment of the present invention.
  • FIG. 9 is a flowchart illustrating an example of an operation procedure of the loader unit according to the embodiment of the present invention.
  • FIG. 10 is a flowchart showing an example of the operation procedure of the runtime saving unit in the embodiment of the present invention.
  • FIG. 11 is a flowchart illustrating an example of an operation procedure of the preloader unit according to the embodiment of the present invention.
  • FIG. 12 is a flowchart illustrating an example of an operation procedure of the postloader unit according to the embodiment of the present invention.
  • FIG. 13 is a diagram showing an example of a screen display at the time of the run-time-severing process according to the embodiment of the present invention.
  • FIG. 14 is a diagram showing an example of a screen display at the time of preload processing in the embodiment of the present invention.
  • FIG. 15 is a block diagram showing a configuration of a program execution processing terminal device according to the embodiment of the present invention.
  • FIG. 16 is a diagram illustrating an example of an input screen for setting information according to the embodiment of the present invention.
  • FIG. 7 is a diagram showing an example of the history information of the insert according to the embodiment of the present invention.
  • FIG. 18 is a block diagram illustrating a configuration of a program execution processing terminal device according to an embodiment of the present invention.
  • FIG. 19 is a flowchart illustrating an example of an operation procedure of the preload control unit according to the embodiment of the present invention.
  • FIG. 20 is a diagram showing an example of a reference time input screen according to the embodiment of the present invention.
  • FIG. 21 is a diagram showing an example of a reference time input screen according to the embodiment of the present invention.
  • FIG. 22 is a diagram showing an example of the internal state transition in the embodiment of the present invention.
  • FIG. 23 is a diagram showing an example of a table corresponding to the pre-reading process in the embodiment of the present invention.
  • FIG. 24 is a block diagram showing the configuration of the program execution processing terminal device according to the embodiment of the present invention.
  • FIG. 25 is a diagram illustrating an example of a processing outline of the separate application instruction notification unit according to the embodiment of the present invention.
  • FIG. 1 is a diagram showing a hardware configuration of a portable information terminal according to Embodiment 1 of the present invention.
  • Central Processing Unit (CPU) 1 and BLJ The apparatus includes a device 2, an input device 3, an output device 4, and a transmission / reception device 5, which are connected to each other via a system path 6.
  • the storage device 2 includes a ROM, an RA memory, and a hard disk drive, and is used when the CPU 1 performs processing.
  • the BLiH area is used as an area for using the program itself.
  • the output device 4 is composed of a display device such as a display, a speed display, and the like, and performs processing such as a screen display of the output from the CPU 1 and reproduction of audio data. .
  • the transmission / reception device 5 performs data communication via a wireless or wired path, and the CPU 1 transmits data from an external device (not shown) via the transmission / reception device 5 to a program or the like. Data can be downloaded.
  • FIG. 2 is a block diagram showing the configuration of the program execution processing terminal device of the present embodiment.
  • the program execution processing terminal device includes a program download unit 101, a mouth unit 102, a runtime saving unit 103, and a prelog unit 1 04, a postloader section 105, an interpreter section 106, a control section 107, a program storage section 301, and a temporary run tie. It has a runtime execution format storage unit 302 and a runtime execution format storage unit 303.
  • the program download section 101 receives a program from the program distribution destination and stores the received program in the program storage section 301 via the control section 107. Store.
  • the program download section 101 can be realized by using a program download mechanism of a conventional portable information terminal.
  • the loader section 102 converts the program stored in the program storage section 301 into a run-time executable form in accordance with a request from the control section 107 '
  • the processing for storing in the image execution format storage unit 303 is performed. Also, it notifies the interpreter section 106 of the start of program execution. Further, the converted runtime execution format is notified to the runtime saving unit 103, and the runtime saving process is requested.
  • the run-time saving unit 103 temperates the run-time execution format stored in the run-time execution format storage unit 303.
  • the conversion into the runtime format is performed, and the process is stored in the temporary runtime format storage unit 302.
  • the preloader section 104 converts the program stored in the program storage section 301 into a temporary runtime format in accordance with a request from the control section 107. Then, a process for storing in the temporary runtime execution format storage unit 302 is performed.
  • the postloader section 105 executes the temporary run-time execution form stored in the temporary run-time execution form storage section 302 in a run-time manner.
  • the data is converted into a format and stored in the runtime execution format storage unit 303. It also notifies the interpreter section 106 of the start of program execution.
  • the pre-install part 106 is stored in the runtime execution form storage part 303. Interpret and execute the stored runtime execution format.
  • this interpreter section 106 can be realized using a conventional Java (TM) virtual machine.
  • the control unit 107 stores the temporary run time of the program to be started in the temporary run time execution format storage unit 302 when the start of the program is instructed. Judge whether or not the executable form exists.If not, request the loader unit 102 to convert it to the runtime executable form.If it does, request the loader unit 105 to convert it to the runtime loader unit. Requests conversion to runtime executable. To convert a temporary runtime into a runtime, copy most of the data and address the indirect representation, as described below. Since it is only necessary to convert the data to the actual address, the processing time is shorter than when the program is converted to the runtime execution format.
  • the program storage unit 301 that can reduce the startup time is stored in the program download roW.
  • C 101 stores the program received from the program distribution destination.
  • a non-volatile memory typified by flash memory or the like, that is, a device that keeps recording even when the power of the portable information terminal is turned off.
  • a specific program may be stored in advance. Further, the program stored in advance may be fixed using non-erasable memory such as a ROM.
  • the runtime execution format storage unit 303 stores the runtime execution format converted by the sender unit 102 or the postloader unit 105.
  • the run-time execution format is a storage area that can be interpreted and executed directly from the interpreter unit 106, so that it can be accessed at high speed. I hope it was realized by For example, volatile RAM is used for this.
  • the temporary runtime execution format storage unit 302 stores the temporary runtime execution format converted by the runtime sampling unit 103.
  • the temporary runtime execution format storage unit 302 is not particularly limited to volatile or non-volatile. In order to shorten the program startup time, the access speed of the program is faster than that used for the program storage unit 301. It is hoped that a suitable storage device will be used.
  • the temporary runtime storage unit 302 is a non-volatile memory such as a flash memory, for example. If you use the temporary run time format stored in the temporary run time format storage unit 302 just before turning off the power of the portable information terminal, the power This is preferable because it can be used the next time the power is turned on.
  • both the runtime saving section 103 and the prelog section 104 are provided, but the present invention is not limited to this. That is, only one of them may be provided. Also in this case, similarly to the present embodiment, the startup time of the program can be reduced.
  • FIG. 3 shows processing performed by the loader section 102, the runtime saving section 103, the preloader section 104, and the postloader section 105.
  • FIG. 4 is a diagram showing an example of a data flow. This figure shows the flow of data conversion from the time when the program 201 is downloaded from the program distribution destination to the time when the runtime execution format 203 is interpreted and executed. .
  • the program download section 101 receives the program 201 transmitted from the program distribution destination and stores it in the program storage section 301. .
  • the loader 102 executes the program 201 in the run-time execution form 200 according to the instruction from the control unit 107. 3 and the interpreter section 106 interprets and executes the runtime executable form 203.
  • the runtime saving unit 103 converts the runtime execution format 203 into the temporary runtime execution format 202, and the temporary runtime execution format. It is stored in the storage unit 302.
  • the postloader unit 105 converts the temporary run-time execution format 202 into the runtime execution format.
  • the data is converted to 203, and the printer unit 106 interprets and executes the runtime execution format 203.
  • the preloader unit 104 converts the program 201 into a temporary runtime execution format 202 and stores it in the temporary runtime execution format storage unit 302.
  • the post loader unit 105 executes the temporary run time execution format 202 in accordance with the instruction from the control unit 107.
  • the interpreter section 106 interprets the runtime execution format 203 and executes it.
  • FIG. 4 to 8 show an example of the structure of the program 201, the runtime execution form 203, and the temporary run time execution form 202 described in FIG. Indicated. Hereinafter, description will be made in order.
  • the program 201 can be obtained as an evening with a format that can be interpreted and executed with T ⁇ nS V ⁇ .
  • Figure 4 shows an example of the structure of the opening program 201.
  • Fig. 4 shows the structure of the content recorded in the program 201, which is similar to the C language.
  • the u1, u2, and u4 types represent the unsigned 1-byte, 2-note, and 4-byte data amounts, respectively.
  • JaVa (TM) program 2 0 1 usually consists of one or more class files,
  • Fig. 4 shows only the top-level structures.
  • Figs. 5 and 6 show examples of the structure of the runtime execution format 203.
  • the run-time execution format 203 is realized as a continuous memory message stored in the run-time execution format storage unit 303.
  • Java TM is used for the run-time format. It is dependent on the implementation of the virtual machine, and is not specified at all.
  • the run-time executable form 203 is shown as a class-based memory image.
  • the actual Java (TM) program often consists of two or more class files, in which case a similar memory image is created. As many as the number of ras files will be generated.
  • the memory image that expresses the class contains a runtime structure of a constant pool structure, which is a lower level structure, and a runtime structure of an interface structure. It includes run-time format for field structure, run-time format for field structure, run-time format for method structure, and run-time format for attribute structure.
  • “* Constant — pool” is a pointer that points to the beginning of the runtime format of the constant pool structure, "(constant-poo 1 *) tis-class” and “(constant-poo 1 *) super ⁇ class ”is a pointer to the address of the entry in the instant pool structure, and“ * interfaces ”is the head of the runtime structure of the interface structure.
  • the pointer that points to “* fields” is the pointer to the beginning of the field structure runtime format, and the “* methods” is the pointer to the beginning of the method structure runtime format.
  • the pointer to point, "* attributes" is the pointer to the beginning of the attribute structure's runtime format.
  • pointer value does not necessarily refer to the structure in the memory image of the same class in which the pointer is included, but may refer to other classes. In some cases, it refers to the structure of the memory image.
  • the memory image of the runtime execution form 203 contains a pointer, and this pointer value is fixed to a certain value when generating the memory image. Not available (Possible depending on the location of the memory image in the runtime executable storage unit 303) This is because the inter- value fluctuates.)
  • the entries in the instant pool structure and the entries in the interface Data in an entry in a field structure, an entry in a field structure, an entry in a method structure, and an entry in an attribute structure.
  • the value may include a point value, but it is omitted in this explanation.
  • FIGS. 7 and 8 show an example of the structure of the temporary runtime execution format 202.
  • FIG. The temporary run time execution form 202 is stored in the temporary run time execution form storage section 302. Either the image may be recorded as a memory image, or the data may be recorded as a file in which bytes are arranged in bytes, but in this case, Fig. 5 It is shown as a memory image in the same way as the expression in Fig. 6. Shown here is an example of the implementation of the temporary run-time execution form 202 corresponding to the embodiment of the run-time execution form 203 shown in FIGS. 5 and 6. is there.
  • C 1 ass — id is identification data (class identification number) uniquely given to a memory image in class units. If more than one class of memory image is created, this c 1 ass —id value must not be duplicated.
  • “Runtime-one-image-size” is a runtime executable generated from this general-purpose runtime executable. It records the memory size of the formula.
  • FIGS. 7 and 8 do not have a pointer value, which is different from FIGS. 5 and 6.
  • the data that was represented as a pointer in FIGS. 5 and 6 has all been converted to the following two sets of data (shaded in FIGS. 7 and 8). Part) ⁇
  • Ref-c1asss-id specifies the class identification number. This subsequent data is always followed by the entry number.
  • the “entrance U number” is defined as the key in the con- trol panel structure / interface structure / field structure / method structure zattribute structure. Indicates the entry number of the evening
  • pointer expressions in runtime executables 203 sometimes refer to the structure of the memory message of another class. May be.
  • the entry number is always expressed in combination with c 1 a s s-i d to specify which class's memory image follows the memory image.
  • Temporal Run Executable Form 203 Since the memory image of Tempora U Run Executable Form 203 does not include Boyne Storm, the Temporal Run Executable Form is stored in memory. Regardless of the location of the memory image in the file, it is determined to be a unique data sequence when the memory image is generated. In other words, the contents of the temporary run-time execution format that expresses a certain class are always thoughtful. I keep it.
  • FIG. 9 shows an example of a flow of a data conversion process in the coder 102.
  • the memory usage of the runtime execution form 203 generated by the mouth part 102 is calculated (step 601). This inspects the class file included in program 201 and finds consant-poo 1-countsinterfaces-count> fie1ds-count, methods-count :, attributes-COunt. , And a number indicating the number of entries for each structure
  • step 602 it is checked whether or not there is a free space in the storage memory area (step 602). If there is no free space (N in step 602), it is determined that continuation of the text-to-text conversion process by the decoder unit 102 is not possible, and the word processing itself is not performed. It cancels, notifies the user that the program cannot be started, and terminates the processing (step 603). On the other hand, if there is an empty space (Y in step 602), a memory area corresponding to the value calculated in step 601 is stored in the runtime execution format storage section 303. Secure (Step 604) Next, the class file is inspected, and the data other than the portion represented as a pointer value in the runtime execution format 203 is copied, whereby the runtime is executed. The data is stored in the program execution format storage section 303 (step 605). This corresponds to the data shown in white boxes in the memory images of FIGS. 5 and 6.
  • the data expressed as pointer values in the runtime execution format 203 is calculated from the class file, and the calculated data is stored in the runtime execution format. This is stored in the section 303, and the conversion processing from the program 201 to the runtime execution form 203 is completed (step 606). This corresponds to the data shown in the shaded boxes in the memory images of Figs. 5 and 6.
  • FIG. 10 shows an example of the data conversion processing flow in the runtime saving unit 103.
  • the memory usage of the temporary runtime execution format 202 generated by the runtime saving unit 103 is calculated (step 701). .
  • This is the run-time executable 203, and the entries for each structure are: constant—poo 1—count, interfaces—count, fiel'ds—count, methods—count, attributes—count. It can be calculated from the numerical value indicating the number of entries and the size of each entry of each structure.
  • the temporary run time which is the storage location of the temporary run time format 202, is stored. It is checked whether or not there is a free space in the storage memory area in the memory execution form d storage unit 302 (step 720). If there is no free space (N in step 702), the run-time conversion section 103 determines that it is impossible to continue the conversion process, and the run-time save The processing itself is cancelled, and the processing is terminated (step 703). On the other hand, if there is an empty space (Y in step 702), the calculation is performed in step 601, with the temporary run time execution form C0 ⁇
  • Temporary run-time execution form as evening 3 ⁇ 4p Store data overnight in custom section 302 (step 705) o
  • the runtime execution format 203 which is the source of the runtime processing, is used for recording in the runtime execution format storage unit 303. Calculates the numerical value of the amount of memory used, and stores the temporary runtime format as the runtime-imae_size data of the temporary runtime format. Store in 302 (Step 706)
  • the memory image of the runtime execution format 203 is inspected, and the data other than the portion expressed as the pointer value in the runtime execution format 203 is copied to the tempo.
  • the data is stored in the temporary run-time execution format storage unit 302 by copying the data as a run-time of the run-time runtime format 202. Step 707). This is equivalent to the data shown in white boxes in the memory images in Fig. 7 and Fig. 8.
  • the converted data is stored in: r run time execution format storage section 302, and the run time run format 2 is read from run time run format 203.
  • the conversion process to 02 is completed (step 708).
  • the data of the point value is converted into the form of “identification number J of the class containing the structure indicated by the point value” and “entry number in the structure”. This is shown in the memory images in Figs. 7 and 8, except for c1ass-id and runt 1me-1mage-size. Equivalent to.
  • FIG. 11 shows an example of the processing flow of the overnight conversion in the pre-order unit 104.
  • the memory usage of the temporary runtime execution format 202 generated by the preloader 104 is calculated (step 801). This inspects the class file before processing, and enters an entry for each structure such as constant-pool-one count, interfaces-count, fields-count, methods-count; and attributes-count. It can be calculated from the numerical value indicating the number and the size of each entry of each structure.
  • the temporary In the temporary runtime execution format storage unit 302 which is the storage location of the runtime execution format 202, it is checked whether or not there is free storage memory area. 8102). If there is no free space (N in step 802), it is determined that the data conversion process by the preloader unit 104 cannot be continued, and the preload process itself is cancelled. Then, the processing is terminated (step 803). On the other hand, if there is free space (Y in step 802), the temporary run-time execution format storage unit 302 stores only the value calculated in step 801. Secure a memory area (step 804).
  • identification numbers are given to all classes to be subjected to preload processing, and the c1 ass-id data of the temporary run-time execution form 202 is given.
  • the data is stored in the temporary runtime execution format storage unit 302 (step 805).
  • the program 210 which is the source of the preload processing, is stored in the temporary runtime execution format storage unit 302. Calculates the amount of memory to be used when converted to run-time executable form 203, and calculates the runtime run-time image size of temporary run-time executable form 202.
  • the data is stored in the temporary runtime execution format storage unit 302 as data (step 806).
  • the data is copied as data in the runtime execution format 202 (step 807). This is indicated by the white box in the memory image of Figures 7 and 8. Equivalent to one evening.
  • the program 201 is inspected, and the data in the portion of the temporary run-time executable form 202 expressed as a reference value to another structure is referred to as “reference data”.
  • the data is converted into the data in the form of “identification number of the class including the structure” and “entry number in the structure”. End the conversion process to the executable form 202 (Step 808) 0
  • FIG. 12 shows an example of the flow of the process of the overnight conversion in the post mouth unit 105.
  • the amount of memory used in the runtime execution form 203 generated by the post mouth part 105 is calculated (step 901). This is a temporary runtime executable.
  • the run-time execution format storage section 303 which is the storage location of the run-time execution format 203, has free space in the save memory area.
  • Check for existence step 902 If there is no free space (N in step 902), it is determined that the continuation of the processing by the postloader section 105 cannot be performed, and the boss mouth processing itself is not performed. Cancel, notify the user that the program cannot be started, and terminate the process (step 903). On the other hand, if there is (Step 902 is Y), the runtime execution format storage unit 3
  • a memory area is secured for the value calculated in step 901 (step 904).
  • the temporary run-time executable 202 is inspected, and the portion of the run-time executable 203 other than the portion expressed as a pointer value is copied.
  • the data is stored in the runtime execution type PL storage unit 303 (step 905). This corresponds to the white box in the memory image of Figures 5 and 6.
  • the expression represented as a pointer value in the runtime execution format 203 is calculated, and the calculated values are stored in the runtime execution format storage unit 303, and the tempora
  • the conversion process from the re-execution form 202 to the re-execution form 203 ends (step 906).
  • This calculation is based on the reference values in the temporary runtime execution format 202, that is, the “identification number of the class including the referenced structure” and the “entry number in the structure”. This can be realized by converting the shape of the night sky into a point night sky. This crest-evening corresponds to the hatched box in the memory images of Figures 5 and 6.
  • the program can be started and executed only by the postload process. Become .
  • the run-time executable form 203 can be easily obtained by copying the memory image. The two major effects are that the amount of processing for image generation can be significantly reduced, and the startup time of the program can be shortened.
  • FIG. 13 is a diagram for explaining a screen display during the runtime saving process.
  • the runtime-separating unit 103 generates a temporary run-time execution format at the end of the load process by the loader unit 102. It is only necessary to check whether or not there is free memory area to be stored, and to perform run-time-severing processing immediately when it is determined that there is free memory area.
  • the loader section 102 outputs the display screen of the mobile information terminal during the process of converting the program 201 into the runtime execution form 203
  • the time saving section 103 converts the display output of the portable information terminal during the process of converting the runtime execution format 203 into the temporary runtime execution format 202.
  • An example is shown in which a change is made and the processing status is notified to the user. In this case, the user may consider runtime save processing as extra processing, and may feel extra stress in the waiting time until the program starts executing.
  • Fig. 13 (b) shows an example in which the display screen outputs of these two processes are made the same without any change, and the user is not notified of the boundaries of these processes. This makes it possible to hide the processing time of the runtime saving processing in the loading processing, so that unnecessary stress is not given to the user.
  • FIG. 14 is a diagram for explaining a screen display at the time of preload processing.
  • the preloader unit 104 determines whether or not there is a free memory area for generating and storing a temporary runtime format after the download process is completed. Should be checked, and if it is determined that there is free space, the pre-reading process can be performed immediately.
  • Fig. 14 (a) the display screen output of the portable information terminal during the process of downloading the program 201 by the program download interface 101 and the pre-
  • the header section 104 changes the output of the display screen of the portable information terminal during the process of converting the program 201 into the temporary runtime execution form 202, and processes it for the user.
  • An example of the status notification is shown. In this case, the user may regard the preload processing as extra processing, and may feel extra stress in the waiting time until the program starts executing.
  • Fig. 14 (b) the display screen output of these two processes is made the same without intentionally changing, and the user is deemed to have the boundary between these processes.
  • An example in which the notification is not given is shown.
  • the processing time of the preload processing can be hidden in the download processing, so that unnecessary stress is not given to the user.
  • the run-time saving section 103 or the pre-loader section 104 can hold the temporary run-time execution format in advance. Since the program can be interpreted and executed only by the postload processing, the startup time can be reduced.
  • the run-time-severing processing by the run-time-severing unit is performed after the program has been loaded and the program that has been subsequently successive- sively loaded. It was done for Gram. However, it is possible to select and determine a program to be subjected to the run-time-save processing based on other criteria. The details will be described below with reference to the drawings.
  • FIG. 15 is a block diagram showing a configuration of a program execution processing terminal device according to Embodiment 2 of the present invention.
  • the unit 107, the program storage unit 301, the temporary runtime execution format storage unit 302, and the runtime execution format storage unit 303 are the same as those described in FIG. It is the same as Here, the newly added runtime saving section 110, setting information storage section 304, and interrupt history storage section 304 will be described.
  • the run-time saving unit 110 performs run-time saving based on the setting information or history information stored in the setting information storage unit 304 or the history history storage unit 304.
  • the setting information storage section 304 for selecting and determining the start timing of the binning process and the target program stores the setting information for identifying the target program for which the run-time processing is performed. This one report is referred to from the run-time saving section 110, and the program that is specified as the target of the run-time saving process (a program that specifies high-speed startup). ), The run-time-severing process is executed.
  • the setting information stored in the network information storage unit 304 is determined based on, for example, one-sided input designation.
  • Figure 16 shows an example of the input screen. From the program list displayed on the display screen of the portable information terminal, the user can specify ⁇ N or 0FF for each program to be started immediately.
  • the programs “Schedule 1 e” and “MemoPad” are specified as fast startup ON. High-speed startup ⁇ The program specified as N was loaded 1 ⁇ 2; When the program is loaded, no run-time-save processing is performed.
  • FIG. 17 shows an example of the history information stored in the print history storage unit 305.
  • information on how many times it has been started and the last time it was started are shown. , Is stored as a table. It should be noted that other information such as the average startup time and the startup interval may be included, or only one piece of information such as, for example, only the number of startups may be used.
  • the following criteria can be applied. You could think so . It should be noted that it may be another criterion using the history information in the evening history storage unit 305.
  • the first criterion is that if a program that has been started more than three times is loaded, the program is considered to be used frequently and run-time saving Perform processing.
  • the number of selection criteria is not limited to three, but may be any number.
  • the second criterion is that, among all programs, the top two programs that have been started so far are the most frequently used programs. No, perform runtime semantic processing.
  • the numerical value of the selection criterion is not limited to the upper two, but may be an arbitrary number.
  • the storage area of the temporary runtime execution format storage unit 302 is provided by the temporary runtime execution format of a program that does not require high-speed startup or a program that is not frequently used. Can be prevented from being occupied. In other words, run-time saving of programs that require high-speed startup or frequently used programs due to insufficient free storage space in the temporary runtime execution format storage unit 302 Processing can be prevented from failing, and efficient run-time-save processing can be performed.
  • the preload processing by the preloader unit is performed when the program is downloaded and the downloaded program is successively downloaded. It was decided to do so.
  • the start timing of the preloading process and the target program can be selectively determined based on other criteria.
  • FIG. 18 is a block diagram illustrating a configuration of a program execution processing terminal device according to Embodiment 3 of the present invention.
  • Time saving section 110 preloader section 11, blade control section 112, program gd storage section 30, and runtime format It comprises a storage section 302, a run-time execution format storage section 303, a setting information storage section 304, and a print split history storage section 105.
  • a setting report section 304, and an ink split history storage section 305 are the same as those described with reference to FIG. 1, and a new preloader 1 is added.
  • Pre-control unit 1 1 2 Pre-control unit 1 2
  • Each of the pre-programs 1 receives the notification from the pre-load control unit 112, and thereby stores the program recorded in the program storage unit 301 in the temporar. It converts the data into the runtime format and stores it in the runtime format storage section 302. In particular, when a child that specifies a specific program is notified, the program that has been notified is selected for preload processing. By receiving the instruction to start the port from the control unit 107, when the program is downloaded, the loading process is executed continuously.
  • the setting information storage section 304 Alternatively, a program to be preloaded is selected and determined based on the setting information or the history information stored in the print history storage unit 3005.
  • the pre-D control unit 112 determines the start of pre-loading based on the device status of the portable information terminal, and notifies the pre-load unit 111 of the start of processing. .
  • the program to be preloaded may be determined by the preload control unit 112, and the determined program may be notified to the preloader unit 111. Even if the start time is notified only without specifying the program to be preloaded and the pre-loader section selects the program to be processed, Good.
  • the device state for example, it is conceivable to apply the following criteria.
  • the first criterion is that if the mobile information terminal has been in a state of not accepting any user input operation (standby) for a certain period of time or more, pre-processing is performed.
  • the preload control unit 112 holds the time length data (reference time) set by the user, and performs the input operation of the user with respect to the non-mobile information.
  • the start time is determined by measuring the continuous time of the state where no delay is added (standby) and comparing it with the reference time
  • FIG. 19 shows an example of a processing flow in the preload control section 112.
  • the device status of the Wm report terminal has entered a state where no user input has been received (standby) for a certain period of time or longer. Is detected (step 1502). If it is not in the standby state (step 1502 is N), the processing transits to step 1501 and repeats the processing. On the other hand, if it is in the standby state (step 1502 is Y), the continuous time of the standby state is updated (step 1503), and the length of the continuous time and the standard are updated. Compare with time (step 1504).
  • Step 1504 Until the continuous time of the standby state exceeds the reference time (N in Step 1504), repeat Step 1504 from Step 1502.
  • step 15054 is Y
  • the start timing of the preload processing is determined, and the preloader section 1 1 1 Notify the start of processing.
  • the reference time may be a value unique to the portable information terminal, such as being converted to a ROM, or may be a value that can be changed by a user input.
  • Fig. 20 shows an example of the display screen at the time of setting by the user. In this case, 15 minutes is set as the reference time, and the preload processing is started at a timing when the continuous time of the standby state exceeds 15 minutes.
  • the pre-load process is executed while the user is not operating the portable information terminal, so that the pre-load process is hidden from the user. Therefore, there is an advantage that no stress is given to the user by executing the preload processing.
  • the second criterion is to perform preload processing when the portable information terminal comes out of the standby state.
  • the preload control unit 112 changes the user from the mobile information terminal in the standby state.
  • the start timing is determined by detecting that the mobile terminal has entered the non-standby state by inputting a user operation, for example, and that the standby state has ended.
  • the third criterion is that a preload process is performed when the internal time of the portable information terminal becomes constant.
  • the preload control unit 112 holds the time data (reference time) set in advance, compares the actual current time with the reference time, and finds a match.
  • the start time is determined by detecting the start time. .
  • the reference time may be a value unique to the portable information terminal, such as being converted to a ROM, or the numerical value may be changed by a user input.
  • Figure 21 shows an example of the display screen when setting by the user.
  • 13:15 is set as the reference time
  • the preload processing starts at the time when the actual current time is 13:15.
  • a fourth criterion is to perform a preload process when the power of the portable information terminal is turned on.
  • the preload control unit 112 determines the start timing based on the power being input.
  • the mechanism for detecting the power input of the portable information terminal itself can be realized by using a mechanism such as an event notification from a device used in the conventional portable information terminal. .
  • the fifth criterion is that the portable information terminal is a foldable terminal (for example, a foldable mobile phone), and that the user can open or close the foldable portable information terminal. Perform preload processing at that time.
  • the preload controller 1 1 2 Is to detect that the portable information terminal has transitioned from a closed state to an open state, or that the portable information terminal has transitioned from an open state to a closed state. To determine the start timing.
  • the mechanism for detecting the folding / unfolding of a portable information terminal itself can be realized by using a mechanism such as an event notification from a device used in a conventional portable information terminal. It is possible.
  • the sixth criterion is to perform a loading process when communication occurs between the portable information terminal and another electronic device.
  • the prod control unit 112 detects the occurrence of data communication between the portable information terminal and another electronic device, so that the start timing is determined. Determine.
  • the mechanism itself for detecting the occurrence of communication can be realized using a mechanism such as an event notification from a device used in a conventional mobile phone. .
  • the communication here includes an incoming voice call, data communication using HTTP, data communication using FTP, data communication using SSL, and data communication using IrDA. , Etc. are conceivable. Of course, other types of communication supported by the portable information terminal may be used.
  • a program to be subjected to preload processing that is started based on the occurrence of communication, a program associated with the type of communication that has occurred may be selected. The selection of this program will be described later. (The seventh criterion in Fig. 23 is that the preload process is performed when the portable information terminal comes and goes with another electronic device.
  • the load control unit 112 may be used to attach (attach) another electronic device to the portable information terminal or to remove another electronic device attached (attached) to the portable information terminal.
  • the start timing is determined by detecting this.
  • the mechanism for detecting the occurrence of attachment / detachment of an external device should be realized by using a mechanism such as an event notification from an external device used in a conventional portable information terminal. Is possible.
  • the external device here is, specifically, an external storage device such as an SD card, a function expansion unit such as a B1uetooth, a USB connector, an earphone, a microphone, and a power supply.
  • a connector, charger, keypad, etc. can be considered.
  • other types of external devices supported by the portable information terminal may be used.
  • a program to be preloaded which is started based on attachment / detachment of an external device, a program associated with the type of the external device may be selected. The selection of this program will be described later (Fig. 23).
  • the eighth criterion is that a preload process is performed when the execution of another application implemented in the portable information terminal starts or ends.
  • the preload control unit 112 may start executing another application implemented in the portable information terminal, or may execute another application.
  • the start time is determined by detecting that the execution of the case has ended.
  • the mechanism for detecting the start or end of the execution of another application itself is the same as that used in conventional mobile information terminals for software-to-software communication. It can be realized using a mechanism.
  • the other application is, specifically, an application mounted on a portable information terminal, such as a browser, a camera, a schedule book, a media player, and the like. Anything is fine.
  • this other application may be described in a machine language (native), or may be described by a mechanism using another execution system such as Java (TM). May be described. Also, a program that is preloaded when another application starts or ends is linked and started from the application whose execution has started. Something associated with this other application type, such as possible, may be selected. The selection of this program will be described later (Fig. 23).
  • the ninth criterion is to perform pre-slip processing when a certain screen transition is performed in accordance with the input operation of the user of the portable information terminal.
  • the preload control unit 112 detects the occurrence of a transition of the internal state of the portable information terminal based on the input operation to the user, thereby starting the timing. Decide what you want.
  • a combination of instructions that can be input by the user is set for each internal state, and the next processing operation when a specific input operation is performed is determined.
  • the internal state changes sequentially according to the input operation of the user or the communication status with the outside, and the display screen changes with the transition of the internal state.
  • the preload control unit 112 detects when a predetermined specific transition has occurred in the transition of the internal state. Detection of internal state transitions is used by conventional portable information terminals It can be realized using the mechanism of communication between software
  • Figure 22 shows an example of the transition of the internal state.
  • This example shows three internal states: (1) menu selection state, (2) application selection state, and (3) Java application selection state.
  • the preload control unit 112 detects this, and the pre-opening unit 1 11. Notify 1 of the start of processing.
  • the preloader section 111 starts program preload processing.
  • a program associated with the type of the internal state transition may be selected. The selection of this program will be described later (Fig. 23).
  • Preload processing can be performed.
  • the first selection criterion is to select appropriately (randomly) from the programs downloaded to the mobile information terminal.
  • the second selection criterion is that, based on the setting information stored in the setting information storage section 304, a high-speed start designation is made from among the programs downloaded to the portable information terminal. Select a program that has been set as the program of the above, and perform preload processing. Other programs are not subject to preload processing.
  • the setting information storage unit 304 has already been described in the second embodiment.
  • the third selection criterion is to select a program that is determined to be frequently used based on the history information stored in the print history storage unit 305, and perform preload processing. Go. For example, select the program that has been started the most number of times, or select the program that was started most recently; . It should be noted that the print history storage unit 305 has already been described in the second embodiment.
  • the preload control unit 112 selects a program to be processed according to a condition for starting the preload processing.
  • the preload control unit 112 holds a preload processing correspondence table, which is a correspondence table between a preload processing start condition and a program to be processed. The program to be processed is selected and determined based on the corresponding table.
  • Fig. 23 shows an example of a table for preload processing.
  • each condition is identified by assigning a unique ID number called a condition number to the condition for starting the preload processing.
  • a condition number a unique ID number
  • Ma the start condition is described in sentences, but it is only necessary that the correspondence between the condition number and the meaning be such that the number is not duplicated.
  • the identifier of the program to be preloaded is represented by a character string, but may be represented in another way. Programs that are highly relevant to each preload processing start condition, that is, likely to be executed next, should be recorded in advance in the preload processing correspondence table. And pre
  • the start timing of the preload process and the target program can be selected, and a program that requires high-speed startup or a program that is frequently used can be selected. As a result, efficient preload processing can be performed.
  • FIG. 24 is a block diagram showing a configuration of a program execution processing terminal device according to Embodiment 4 of the present invention.
  • Producer download section 101 loader section 102, run time saving section 110, post loader section 105, and printer setup Section 106, control section 107, preloader section 113, separate application instruction notification section 114, and program storage section 3.
  • 0 Temporary run-time execution format storage unit 302, Run-time execution format storage unit 303, and setting information storage unit 30
  • the section 303, the setting information storage section 304, and the ink split history storage section 304 are the same as those described in FIG.
  • the loader unit 113 and the separate application instruction notifying unit 114 will be described.
  • the preloader section 113 receives the notification from the separate application instruction notifying section 114, and stores the program recorded in the program storage section 301 as a text.
  • the preload processing is performed to convert the data into a runtime format and store it in the temporary runtime storage unit 302. In particular, when an identifier designating a specific program is notified, the notified program is selected as a target for preload processing.
  • the preload processing can be continuously performed. It is also possible.
  • the separate application instruction notifying section 114 reports the preload start instruction from another application implemented in the portable information terminal. Notify the data section 1 1 3.
  • Figure 25 shows a preload start from another application. An example of the processing outline when instructed is illustrated.
  • the mechanism for receiving an instruction to start loading from another application is, for example, an API that can be called from within the source code of another application. However, this can be realized by providing it in a portable information terminal.
  • the separate application instruction notifying section 114 performs the processing, and instructs the preloader section 113 to start the pre-read processing.
  • the API indicated as preloading—start is called from another application to notify the preloader unit 113 of the start of preload processing. An example of working is shown.
  • the program to be pre-processed can be specified together with the API call.
  • Figure 25 shows an example of specifying a program as an argument of API.
  • the argument program_id represents the identifier of the program stored in the program storage unit 301, and the preloader unit 1 1 3 in the processing of pre1 oading_start
  • the notice given to the public shall include the information of the program-id.
  • the preloader section 113 receives the information of this program—id, and selects a program to be preloaded. It is also possible for the preloader unit 113 to select and execute the next program to be preloaded without specifying a program.
  • the trigger for the occurrence of the preload process can be freely specified in the running application, instead of being determined based on the device state. Become . That is, a specific By creating an application that invokes the program's preloading process, the next time the portable information terminal that executes the application will execute By performing preload processing for a specific program such as a program, the startup time of a specific program can be reduced.
  • a program such as JaVa (TM) downloaded to a portable information terminal using a program distribution service
  • a program is executed.
  • Mode processing ⁇ By performing run-time-severing processing, the length of program startup time can be reduced.

Abstract

プログラムをクラスファイルからランタイム実行形式に変換するローダ部(102)と、ランタイム実行形式をテンポラリランタイム実行形式に変換するランタイムセービング処理を行うランタイムセービング部(103)と、テンポラリランタイム実行形式を記憶するテンポラリランタイム実行形式記憶部(302)と、テンポラリランタイム実行形式をランタイム実行形式に変換するポストロード処理を行うポストローダ部(105)とを備え、プログラムの起動が指示された際に、テンポラリランライム実行形式記憶部にテンポラリランタイム実行形式が存在するか否かを判断し、存在しない場合にはローダ部にランタイム実行形式への変換を要求し、存在する場合にはポストローダ部にランタイム実行形式への変換を要求する。これにより、プログラム配信サービスにおいて、ダウンロードプログラムの起動時間を短縮することが可能となる。

Description

明細書 プロ グラム実行処理端末装置、 プロ グラム実行処理方法 及びプロ グラ ム 技術分野
本発明は、 受信 したプロ グ ラム を解釈実行処理する情報 端末装置、 プロ グラム実行処理方法及びプロ グラ ム に関す る も のであ り 、 特に、 高速な プロ グラム の起動を実現する 情報端末装置、 プロ グラ ム実行処理方法及びプロ グラ ム に 関する。 背景技術
近年、 携帯電話や P H S ( P e r s o n a 1 H a n d y p h o n e S y s t e m ) 、 P D A ( P e r s o n a 1 D i g i t a l A s s i s t a n c e ) な どに代表 さ れる携帯情報端末に備わ っ てい る通信機能を用 いたデー 夕配信サー ビス が普及 してい る 。
その代表例 と して、 画像や着信メ ロディ な どの コ ンテ ン ッ の配信サー ビスがあ げ ら れる 。 また、 単なるデータ では な く プロ グラ ム をダウ ン ロ ー ド し、 携帯情報端末上でア ブ リ ケ一シ ヨ ン と して実行 させる こ とができ る。 つ ま り 、 プ ロ グラム をダウ ン ロー ドする こ と によ っ て、 携帯情報端末 に最初か ら用意さ れた機能 (ア プ リ ケーシ ョ ン) だけでは な く 、 後か ら 新たに さ ま ざま な機能を追加 し、 使用する こ と が可能 と な る 。 こ の プロ グラム配信サー ビス では、 例えば、 電子電話帳 や 電子ス ケ ジ ュ ール帳な ど の P I M ( P e r s o n a 1 I n f o r m a t i o n M a n a g e r ) アプ リ ケ一 シ ヨ ンや、 ゲーム アプリ ケー シ ョ ンな どの提供を行 う 。 ユー ザは、 自 分の使用 したい機能、 あ る いは 自分の使いやすい ユーザイ ン夕 フ ェース 、 自 分の気に入っ た画面構成な ど を 備えたア プ リ ケーシ ョ ン を 自 由 に選択 し、 プロ グ ラム をダ ゥ ンロ ー ドする こ と によ り 、 選択 したア プ リ ケー シ ョ ン を 使用する こ と が可能 とな る 。
プロ グラ ム配信の仕組みを実現する ため に、 有望な ソ フ ト ウ エ ア アーキテク チャ と して J a V a ( T M ) があ る 。
J a v a ( T M ) は仮想マ シ ンの仕組みを備え、 機器の八 ― ド ウ エ アや 〇 S に依存せずに プロ グラム を動作 させる こ と ができ る ため、 ワーク ス テーシ ョ ンゃパーソ ナルコ ン ビ ユー夕 (以下、 P C と略称す る) な どの コ ン ビ ュ 一ティ ン グ分野にお いてのみな ら ず、 家電機器に対 して も有効なァ —キテク チヤ と見なさ れてい る 。
また、 携帯情報端末にお いて、 既に多 く の機種に J a V a ( T M ) 仮想マシンが搭載さ れてお り 、 プロ グ ラム配信 サ一 ビス が開始さ れてい る 。 今後、 仮想マ シンの仕組みを 前提 と し たプロ グラ ム配信サー ビスは、 さ ら に普及してい く も の と予想 さ れる。
しか し なが ら 、 携帯情報端末上で、 仮想マシ ンの仕組み を用 いて、 ダウ ン 口一 ド し たア プ リ ケ一シ ョ ン を実行 させ る場合に 問題になる のが、 その起動時間の長さ であ る 。
こ こ での起動時間 と は、 ユーザあ る いは携帯情報端末に 搭載さ れてい る他のァ プ リ ケ一 シ ヨ ン (ブラ ウザ、 メ 一 ラ 、 電話な ど) が、 携帯情報端末内部の仮想マ シンに対 して 、 特定のァ プ リ ケーシ ョ ンの解釈実行 を開始する と い う 指 示を与えてか ら 、 携帯情報端末の表示画面上に開始が指示 されたァプ リ ケーシ ヨ ンの初期画面が出力 される までの経 過時間 を指す。 つ ま り 、 起動時間 と は、 アプ リ ケー シ ョ ン が使用可能 にな る までの待ち 時間であ り 、 ユーザに と っ て 、 実際にァ プ リ ケーシ ョ ンを利用 していない余分な時間で あ る ため、 起動時間が長 く な る ほ ど、 ア プ リ ケー シ ョ ンの 実行効率が低下する。
例え ば、 一般的な J a V a ( T M ) 仮想マ シ ンの起動処 理は、 大き く 以下の 3 つ の処理か ら構成.さ れる。 以下、 J a V a ( T M ) を用 いて説明するが、 他の仮想マ シ ンあ つ て も よい こ と を、 予め記述 してお く 。
( 1 ) 初期化処
( 2 ) ク ラ ス検証処理
( 3 ) ク ラ ス 口 ー ド処理
それぞれの処理についての詳細は、 文献 ( T i m L i n d h o 1 m a n d F r a n k Y e l l i n " T h e J a V a ( T Μ ) V i r t u a l M a c h i n e S p e c i f i c a t i o n " , A d d i s o n - W e s 1 e y, 1 9 9 7 ) を参照さ れたい。 こ こ では以 降の説明 に必要な、 処理の概要のみ述べる こ と とする。
J a v a ( T M ) では、 プロ グラム はク ラス フ ア イ リレ と 呼ばれる 1 っ以上の フ ァ ィ ルか ら構成される 。 プロ グラ ム がダウ ン ロ ー ド される 際には、 通常ク ラ ス フ ァ イ ルは 1 つ の フ ァ イ ルにパ ッ ケー ジさ れた形式で提供 さ れるが、 ダウ ン ロー ド後、 こ れは 1 つ以上の ク ラス フ ァ イ ル と して展開 さ れ、 携帯情報端末内 のフ ァ イ ル と して保存さ れる 。
( 1 ) 初期化処理は、 J a v a ( T M ) 仮想マ シンの実 行 を可能 にする ため に必要な初期作業であ る 。 具体的 には 、 仮想マ シ ンが使用する メ モ リ 領域 ( J a v a ヒープ領域 な ど) を確保する処理、 ガーベジコ レク シ ョ ン処理の初期 化、 ク ラ ス ロ ーダの初期化、 ス レ ッ ド管理の初期化な ど を 行 う 。
( 2 ) ク ラ ス検証処理は、 実行の対象であ る プロ グラ ム の安全性を保証する ため に行 う 処理であ る 。 具体的に は、 ク ラス フ ァ イ ルの形式の検査 と 、 ク ラス フ ァ イ ルに含まれ るバイ ト コ ー ド な どが J a V a ( T M ) の仕様 に準拠 して い る こ と を検査する。
( 3 ) ク ラス ロ ー ド処理は、 ク ラス フ ア イ リレを、 J a v a ( T M ) 仮想マ シ ンが実行可能な記録形式 (以下 ラ ン夕 ィ ム実行形式 と呼ぶ) と して、 仮想マシンが使用する メ モ リ 領域上に展開する処理であ る 。 対象 とな る ク ラス フ ア イ ルは、 実行する プロ グ ラム の最初の実行メ ソ ッ ド と な る m a i n メ ソ ッ ド を持っ たク ラ ス フ ァ イ ル と 、 その ク ラ ス フ ア イ ルか ら 参照 を迪る こ と のでき る全ての ク ラ ス フ ァ イ ル であ る。
以上の よ う な各処理が含まれる ため、 仮想マ シ ンの仕組 みを用 いた ア プ リ ケー シ ョ ンの起動時間は、 携帯情報端末 の機械語で記述さ れたアプ リ ケー シ ョ ン (ネイ ティ ブア ブ リ ケー シ ヨ ン) を起動する の に比 して、 長い も の にな っ て いた。
起動時間の う ち 、 ( 2 ) ク ラス検証処理や ( 3 ) ク ラ ス ロー ド処理は、 概 してア プ リ ケーシ ョ ン (プロ グラ ム) の サイ ズが大き く なればなる ほ ど、 その処理に長い時間 を要 する よ う にな り 、 アプ リ ケー シ ョ ンの実行効率が低下する 。 特に、 P I Mア プリ ケー シ ョ ンのよ う に、 頻繁に何度 も 立ち 上げが行われるよ う な種類のアプ リ ケーシ ョ ンは、 起 動時間が長 く なる こ と で、 大き く 利便性を欠いた も の にな り がち であ る 。
これに対 し、 J a v a ( T M ) 処理系の ク ラ ス フ ァ イ ル 形式に対 して、 前 も っ て何 ら かの処理を行 う こ と に よ っ て 、 ア プ リ ケー シ ョ ンの実行効率を高め る ため の技術が、 特 開 2 0 0 0 — 2 9 7 0 6 号公報 「ク ラ ス フ ァ イ ルの プ リ プ ロセ シ ング及びパッケージ ン グのため の方法及び装置」 お よび特開平 1 1 一 3 2 7 9 0 6 号公報 「動的 リ ンキ ン グお よび動的 ロ ーデイ ングの存在下において動的 にディ スパッ チさ れた コ ールの静的結合」 に開示さ れて い る 。
しカゝ しなが ら 、 上述 した特開 2 0 0 0 — 2 9 7 0 6 号公 報および特開平 1 1 一 3 2 7 9 0 6 号公報で開示さ れた技 術は、 いずれ も ア プリ ケ一シ ヨ ンの解釈実行速度の高速化 や、 メ モ リ の効率的な利用 を 目 的 と した も のであ り 、 ノヽ一 ド ウ エ ア資源に関 して価格やサイ ズな どの制約が厳 し い携 帯情報端末な どの情報家電機器において、 J a v a ( T M ) な どの処理系 を適用 した場合に問題にな り がちな、 起動 時間の短縮を達成する ため の も のではなか っ た。
本発明は、 上記問題 を解決する ため にな さ れた も のであ り 、 起動処理の 中 の ( 3 ) ク ラ ス ロ ー ド処理を 「ア プ リ ケ ーシ ョ ンを初めて起動する と き にだけ必要なク ラス ロー ド 処理」 と 「ア プ リ ケー シ ョ ンの 2 度 目以降の起動で も必要 なク ラス ロー ド処理」 の 2 つ に分け、 「初めてのク ラ ス 口 — ド処理」 によ る処理結果を、 ク ラ ス フ ァ イ ル形式 と は別 の記録形式 (以下、 テ ンポ ラ リ ラ ンタイ ム実行形式 と呼ぶ ) と して格納 してお く こ と によ り 、 そのプロ グラム の起動 の際に 「 2 度 目 以降の ク ラ ス ロ ー ド処理」 しか行わな く て も よいよ う に し、 プロ グラ ム の起動時間の短縮を図 る こ と を 目 的 と してい る 。 発明の開示
上記課題を解決する ため に、 本発明のプロ グラム実行処 理端末装置は、 プロ グラ ム を例え ば J a v a ( T M ) の ク ラス フ ァ イ ルか ら ラ ンタイ ム実行形式に変換する ロ ーダ部 と、 前記 ロ ーダ部が変換 した ラ ンタイ ム実行形式も し く は 前記プロ グラ ム記憶部に記憶さ れている プロ グラム に基づ いて生成さ れたテ ンポ ラ リ ラ ンタ イ ム実行形式を記憶する テ ンポ ラ リ ラ ンタ イ ム実行形式記憶部と、 前記テ ンポ ラ リ ラ ンタ イ ム実行形式記憶部に記憶さ れてい る テ ンポ ラ リ ラ ンタイ ム実行形式を ラ ンタ イ ム実行形式に変換する ボス ト ロー ド処理を行 う ポス ト ローダ部 と を備え、 プロ グラ ム の 起動が指示さ れた際に、 前記テ ンポ ラ リ ラ ン ラ イ ム実行形 式記憶部にテ ンポ ラ リ ラ ンタイ ム実行形式が存在する か否 か を判断 し、 存在 しない場合には前記 ローダ部 に ラ ンタイ ム実行形式への変換を要求 し、 存在する場合に は前記ボス ト ローダ部 に ラ ンタイ ム実行形式への変換を要求する 。 なお、 前記ロ ーダ部が変換した ラ ンタ イ ム実行形式をテ ンポ ラ リ ラ ンタイ ム実行形式に変換する こ と によ っ てテ ン ポ ラ リ ラ ンタイ ム実行形式を得て も よ い。 こ のよ う に、 プ ロ グラム は最初の 1 回 目 に起動さ れる 時は、 通常の ロ ー ド 処理を行い 、 ロ ー ド処理の後に ラ ンタイ ムセー ビ ン グ処理 を行い、 テ ンポ ラ リ ラ ンタイ ム実行形式を生成 してお く こ とで、 その プロ グラ ム は 2 回 目 以降の起動では、 テ ンポ ラ リ ラ ンタ イ ム形式か ら ラ ンタイ ム形式を生成する ボス ト ロ — ド処理を通常の ロー ド処理に置き換える こ とが可能 とな り 、 2 回 目 以降の プロ グラムの起動に要する処理時間 を短 縮する こ と ができ る。
また、 前記プロ グラ ム記憶部に記憶さ れてい る プロ ダラ ム をテ ンポ ラ リ ラ ンタ イ ム実行形式に変換する こ と によ つ てテ ンポ ラ リ ラ ンタイ ム実行形式を得て も よ い。 こ の よ う に、 予め プロ グラ ム を プレ ロー ド処理 して、 テ ンポ ラ リ ラ ンタイ ム実行形式を生成 してお く こ と によ っ て、 プロ ダラ ム の起動は最初の 1 回 目 か ら 、 ポス ト ロー ド処理によ っ て 通常の ロ ー ド処理に置き換える こ とが可能 と な り 、 プロ グ ラ ム の起動 に要する処理時間を短縮する こ とができ る 。
また、 本発明のプロ グラ ム実行処理方法は、 前記受信 し たプロ グラ ム を プロ グ ラム記憶部に記憶する プロ グラ ム記 憶ステ ッ プ と、 前記プロ グラム記憶部に記憶さ れてい る プ ロ グラム を ラ ンタ イ ム実行形式に変換する ロ ー ド ステ ッ プ と 、 前記 ロ ー ド ス テ ッ プで変換 した ラ ンタ イ ム実行形式 も し く は前記 プロ グラム記憶部に記憶さ れてい る プロ グラ ム をテ ンポラ リ ラ ンタイ ム実行形式に変換する変換ステ ッ プ と 、 前記変換ステ ッ プで変換し たテ ンポ ラ リ ラ ンタ イ ム実 行形式をテ ンポラ リ ラ ンタ イ ム実行形式記憶部に記憶する テ ンポ ラ リ ラ ンタ イ ム実行形式記憶ス テ ッ プと、 プロ ダラ ム の起動が指示さ れた際に、 前記テ ンポ ラ リ ラ ン ライ ム実 行形式記憶部にテ ンポ ラ リ ラ ン タ イ ム実行形式が存在する か否か を判断する判断ステ ッ プ と 、 前記判断ステ ッ プの判 断の結果、 前記テ ンポ ラ リ ラ ン ライ ム実行形式記憶部 にテ ンポ ラ リ ラ ンタイ ム実行形式が存在 した場合に、 前記テ ン ポ ラ リ ラ ンタ イ ム実行形式記憶部に記憶さ れてい る テ ンポ ラ リ ラ ンタ イ ム実行形式を ラ ン タイ ム実行形式に変換する ポス ト ロー ド ステ ッ プと、 前記ポス ト ロー ドステ ッ プで変 換 した ラ ンタ イ ム実行形式を解釈実行する解釈ステ ッ プと を備え る。
また、 本発明の プロ グラ ムは、 上記の プロ グラ ム実行処 理方法をコ ン ピュータ に実行さ せる ため の も のであ る 。 こ の プロ グラ ム はコ ン ピュータ読み取 り 可能な記録媒体に格 納された状態で情報端末装置等の コ ン ピュータ に供給され て も よ い し 、 通信回線を通 じて情報端末装置等の コ ン ビュ 一夕 に供給さ れて も よ い。 図面の簡単な説明
図 1 は、 本発明 の実施の形態 にお ける携帯情報端末のハ 一 ド ウ エア構成図であ る。
図 2 は、 本発明 の実施の形態 にお ける プロ グラム実行処 理端末装置の構成 を示すブロ ッ ク 図であ る 。 図 3 は、 本発明の実施の形態 にお ける ク ラ ス ロ ー ド処理 におけるデ一夕変換の関係 図であ る 。
図 4 は、 本発明の実施の形態 にお ける プロ グラム の構造 の一例 を示す図であ る 。
図 5 は、 本発明の実施の形態 にお ける ラ ンタ イ ム実行形 式の構造の一例を示す図であ る 。
図 6 は、 本発明の実施の形態にお ける ラ ンタ イ ム実行形 式の構造の一例を示す図で あ る 。
図 7 は、 本発明 の実施の形態 にお けるテ ンポ ラ リ ラ ンタ ィ ム実行形式の構造の一例 を示す図であ る。
図 8 は、 本発明 の実施の形態 にお けるテ ンポ ラ リ ラ ン夕 ィ ム実行形式の構造の一例 を示す図であ る 。
図 9 は、 本発明 の実施の形態 にお ける ロ ーダ部の動作手 順の一例を示すフ ロ一チヤ一 ト であ る 。
図 1 0 は、 本発明の実施の形態にお ける ラ ンタイ ムセー ビ ング部の動作手順の一例 を示すフ ロ ーチャ ー ト であ る 。
図 1 1 は、 本発明の実施の形態にお ける プレ ローダ部の 動作手順の一例を示すフ ロ 一チ ヤ一 ト であ る 。
図 1 2 は、 本発明の実施の形態にお ける ポス ト ロ ーダ部 の動作手順の一例を示すフ ローチ ヤ 一 ト であ る 。
図 1 3 は、 本発明の実施の形態にお ける ラ ンタイ ムセ一 ビ ング処理時の画面表示の一例 を示す図であ る 。
図 1 4 は、 本発明の実施の形態にお ける プレ ロー ド処理 時の画面表示の一例を示す図であ る 。
図 1 5 は、 本発明の実施の形態にお ける プロ グラム実行 処理端末装置の構成を示すブロ ッ ク 図であ る。 図 1 6 は、 本発明の実施の形態にお ける設定情報の入力 画面の一例を示す図であ る
7 は、 本発明の実施の形態 お けるイ ンタ ブリ ッ ト 履歴情報の一例を示す図であ る 。
図 1 8 は、 本発明の実施の形態における プロ グラム実仃 処理端末装置の構成を示すブ口 ッ ク 図であ る 。
図 1 9 は、 本発明の実施の形態にお ける プ レ ロー ド 制御 部の動作手順の一例を示すフ ロ ーチヤ一 ト であ る。
図 2 0 は、 本発明の実施の形態 にお ける基準時間の入力 画面の一例 を示す図であ る
図 2 1 は、 本発明の実施の形態にお ける基準時刻の入力 画面の一例 を示す図であ る
図 2 2 は、 本発明の実施の形態にお ける 内部状態遷移の 一例を示す図であ る
図 2 3 は、 本発明の実施の形態 にお ける プ レ 口一 ド処理 対応テ一ブルの一例を示す図であ る 。
図 2 4 は、 本発明の実施の形態にお ける プロ グラム実行 処理端末装置の構成を示すブロ ッ ク 図であ る 。
図 2 5 は、 本発明の実施の形態 にお ける別 アプリ 指示通 知部の処理概要の一例を示す図であ る 。 発明 を実施する た め の最良の形態 以下、 本発明の実施の形態につ いて、 図面 を用 いて詳細 に説明する 。
(実施の形態 1 )
携帯情報端末を用 いたプロ グラム のダウ ン ロー ドサー ビ スでは、 既に J a V a ( T M ) の仕組みを用 いた も のが普 及 してい る ため、 本発明 はその仕組みを拡張する こ とで実 現する こ とができ る 。 本説明 においては、 J a V a ( T Μ ) の仕組みを用 いた場合にはどのよ う な実施の形態にな る か を適宜交えなが ら 説明 を行 う
図 1 は、 本発明の実施の形態 1 における 、 携帯情報端末 のハ一 ド ウ ェ ア構成を示す図であ る 。 図 1 において、。中央 演算装置 ( C P U ) 1 と 、 BLJ
Figure imgf000013_0001
装置 2 と 、 入力装置 3 と 、 出力装置 4 と 、 送受信装置 5 を備えてお り 、 それぞれシス テムパス 6 を介 して接続さ れてい る。
記憶装置 2 は、 R O M 、 R A Μ、 および八ー ドテイ ス ク な どで構成さ れ、 C P U 1 が処理する 際に用 い ら れ BLi H 領域ゃプロ グラム 自体を る領域 と して用 い ら れる 。 入力装置 3 は、 キ ~ポ 1 ~~ ドゃキ—ボタ ン、 マ ゥ ス 、 マイ ク な どで構成さ れ、 ユーザか ら の指示の入力処理を行 う 。 出 力装置 4 は、 ディ ス プレィ な どの表示装置やス ピー力 一な どで構成さ れ、 C P U 1 か ら 出力 さ れ つ 夕 の画面表示 や、 音声デー タ の再生な どの処理を行 Ό 。 送受信装置 5 は 、 無線あ る い は有 1¾达路を介 してデ—夕通信を行い、 C P U 1 は、 送受信装置 5 を介 して外部装置 (図示せず) か ら プロ グラ ムな どのデ一タ をダゥ ン ロー ドする こ とができ る 。
図 2 は 、 本実施の形態の プロ グラム実行処理端末装置の 構成を示すブロ ッ ク 図であ る 。 プロ グラ ム実行処理端末装 置は、 プロ グラ ムダウ ン ロー ド部 1 0 1 と 、 口 一ダ部 1 0 2 と、 ラ ンタ イ ムセー ビ ング部 1 0 3 と 、 プレ ローグ部 1 0 4 と、 ポス ト ロ ーダ部 1 0 5 と、 イ ンタ プ リ タ部 1 0 6 と 、 制御部 1 0 7 と 、 プロ グラ ム記憶部 3 0 1 と、 テ ンポ ラ リ ラ ンタイ ム実行形式記憶部 3 0 2 と、 ラ ンタイ ム実行 形式記憶部 3 0 3 を備えてい る 。
プロ グラムダウ ン ロ ー ド部 1 0 1 は、 プロ グラム配信先 よ り プロ グラ ム を受信 し、 受信 したプロ グラ ム を制御部 1 0 7 を介 してプロ グラ ム記憶部 3 0 1 に記憶格納する。 プ ロ グラムダウ ン ロ ー ド部 1 0 1 は、 従来の携帯情報端末が 備え る プロ グ ラム のダウ ン ロ ー ド の仕組みを用 いて実現す る こ とができ る。
ロ ーダ部 1 0 2 は、 制御部 1 0 7 '力ゝ ら の要求に従い、 プ ロ グラム記憶部 3 0 1 に格納さ れたプロ グラ ム を ラ ンタイ ム実行形式に変換 し、 ラ ンタ イ ム実行形式記憶部 3 0 3 に 格納する処理 を行 う 。 ま た、 イ ンタ プ リ タ部 1 0 6 に プロ グラ ムの実行開始を通知する 。 さ ら に、 変換 した ラ ン夕ィ ム実行形式を ラ ンタイ ムセー ビ ング部 1 0 3 に通知 し、 ラ ンタイ ムセ一 ビ ン グ処理を要求する。
ラ ンタイ ムセー ビ ング部 1 0 3 は、 ロ ーダ部 1 0 2 力、 ら の要求に従い、 ラ ンタイ ム実行形式記憶部 3 0 3 に格納さ れた ラ ンタイ ム実行形式をテ ンポ ラ リ ラ ンタ イ ム実行形式 に変換し、 テ ンポ ラ リ ラ ンタイ ム実行形式記憶部 3 0 2 に 格納する処理を行 う 。
プレ ロ ーダ部 1 0 4 は、 制御部 1 0 7 か ら の要求に従い 、 プロ グラ ム記憶部 3 0 1 に格納された プロ グラ ム をテ ン ポ ラ リ ラ ンタ イ ム実行形式に変換し、 テ ンポ ラ リ ラ ンタイ ム実行形式記憶部 3 0 2 に格納する処理を行 う 。 ポス ト ロ ーダ部 1 0 5 は、 テ ンポ ラ リ ラ ンタ イ ム実行形 式記憶部 3 0 2 に記憶さ れたテ ンポ ラ リ ラ ンタイ ム実行形 式を、 ラ ンタイ ム実行形式に変換 し、 ラ ンタ イ ム実行形式 記憶部 3 0 3 に格納する処理を行う 。 また、 イ ンタ プ リ タ 部 1 0 6 に プロ グラム の実行開始を通知する 。
イ ン夕 プ リ 夕部 1 0 6 は、 口 一ダ部 1 0 2 またはポス ト 口一ダ部 1 0 5 か ら の実行開始の通知に従い、 ラ ンタ イ ム 実行形式記憶部 3 0 3 に格納さ れてい る ラ ンタ イ ム実行形 式を解釈実行する 。 J a v a ( T M ) の仕組みを用 いた場 合、 こ のイ ンタ プ リ タ部 1 0 6 は、 従来の J a v a ( T M ) 仮想マ シ ン を用 いて実現する こ と ができ る 。
制御部 1 0 7 は、 プロ グラム の起動が指示さ れた際に、 テンポ ラ リ ラ ンタ イ ム実行形式記憶部 3 0 2 に起動対象の プロ グラ ム のテ ンポ ラ リ ラ ンタ イ ム実行形式が存在するか 否かを判断 し、 存在 し ない場合には ローダ部 1 0 2 に ラ ン タイ ム実行形式への変換を要求 し、 存在する場合にはボス ト ローダ部 1 0 5 に ラ ンタ イ ム実行形式への変換を要求す る 。 テ ンポ ラ リ ラ ンタ イ ム実行形式を ラ ンタイ ム実行形式 へ変換する に は、 後述する よ う に、 大部分のデータ を コ ピ —する と と も に、 間接参照表現のア ド レスデータ を実際の ァ ド レスへ変換する だけでよ いため、 プロ グラ ム を ラ ンタ ィ ム実行形式に変換する場合 と比較 して処理時間は短い。 これによ り 、 既に ラ ンタイ ム実行形式を保持 してい る プロ グラム に関 し ては、 起動時間 を短縮する こ とが可能 と な る プロ グラ ム記憶部 3 0 1 は、 プロ グラ ムダウ ンロー ド部 1 0 1 がプロ グラ ム配信先よ り 受信 したプロ グラム を格納 する。 なお、 フ ラ ッ シュ メ モ リ 等に代表さ れる不揮発性メ モ リ 、 すなわち携帯情報端末の電源が〇 F F になっ て も 記 録が保持さ れ続ける デバイ ス に よ っ て実現 された場合、 携 帯情報端末の電源が 0 F F にな っ た場合に プロ グラ ム の再 ダウ ン ロ ー ド を防 ぐこ とが可能 とな る 。 ま た、 ダウ ン ロ ー ド したプロ グラ ムだけでな く 、 前も っ て特定のプロ グラ ム が格納さ れていて も よ い。 さ ら に、 R O Mな どの格納デ一 夕が消去不能な メ モ リ を用 いて、 前 も っ て格納されてい る プロ グラ ム は固定であ っ て も よ い。
ラ ンタ イ ム実行形式記憶部 3 0 3 は、 口 一ダ部 1 0 2 ま たはポス ト ロ ーダ部 1 0 5 が変換 した ラ ンタイ ム実行形式 を格納する 。 ラ ンタイ ム実行形式は解釈実行を行う 対象 と して、 イ ンタ プ リ タ部 1 0 6 か ら直接ア ク セス される記憶 領域であ る ため、 高速なア ク セスが可能な記憶デバイ ス に よ っ て実現 さ れた ほ う がよ い。 例え ば揮発性の R A Mな ど がこれに使用 さ れる。
テ ンポ ラ リ ラ ンタ イ ム実行形式記憶部 3 0 2 は、 ラ ン タ ィ ムセ一 ビ ング部 1 0 3 が変換 したテ ンポ ラ リ ラ ンタイ ム 実行形式を格納する 。 テ ンポ ラ リ ラ ンタ イ ム実行形式記憶 部 3 0 2 は、 特に揮発性 · 不揮発性を問わない。 プロ ダ ラ ム の起動時間 の短縮を実現する ため には、 デ一夕 のァ ク セ ス速度が、 プロ グラム記憶部 3 0 1 の実現 に用 い ら れて い る も のよ り は高速な記憶デバイ スが用 い ら れる こ とが望 ま しい。 なお、 テ ンポ ラ リ ラ ンタイ ム実行形式記憶部 3 0 2 と して例え ばフ ラ ッ シュ メ モ リ のよ う な不揮発性の メ モ リ を用 いれば、 携帯情報端末の電源を切る直前にテ ンポ ラ リ ラ ンタイ ム実行形式記憶部 3 0 2 に記憶されていたテ ンポ ラ リ ラ ンタ イ ム実行形式 を、 一旦電源を切つ てか ら 次に電 源を入れた と き に利用する こ と ができ る ため好ま し い。
なお、 本実施の形態ではラ ンタイ ムセー ビ ング部 1 0 3 と プレ ロー グ部 1 0 4 を共に備えてい る と したが、 本発明 は これに限定さ れない。 すなわち 、 どち ら か一方のみを備 えていて も よ い。 こ の場合に も本実施の形態 と 同様に、 プ 口 グラ ムの起動時間を短縮する こ とができ る 。
図 3 は、 ロ ーダ部 1 0 2 、 ラ ンタ イ ムセー ビン グ部 1 0 3 、 プ レ ロ ーダ部 1 0 4 、 ポス ト ロ ーダ部 1 0 5 の各処理 部で行 う 、 データ の流れの一例 を示す図であ る。 プロ ダラ ム配信先か ら プロ グラム 2 0 1 をダウ ン ロー ド し てか ら 、 ラ ンタイ ム実行形式 2 0 3 が解釈実行さ れる までの、 デ一 夕 の変換の流れを示 して いる 。
まず、 プ ロ グ ラム配信先か ら 送信さ れたプロ グ ラ ム 2 0 1 を プロ グ ラ ム ダウ ン ロ ー ド部 1 0 1 が受信 し、 プロ ダラ ム記憶部 3 0 1 に格納する。
次に、 プロ グラム 2 0 1 の起動が指示される と 、 制御部 1 0 7 か ら の指示に従い、 ロ ーダ部 1 0 2 がプロ グラ ム 2 0 1 を ラ ンタ イ ム実行形式 2 0 3 に変換 し、 イ ンタ プ リ 夕 部 1 0 6 がラ ンタイ ム実行形式 2 0 3 を解釈実行する 。 ま た、 同時に ラ ンタイ ムセービ ング部 1 0 3 がラ ンタイ ム実 行形式 2 0 3 をテ ンポ ラ リ ラ ンタイ ム実行形式 2 0 2 に変 換 し、 テンポ ラ リ ラ ンタ イ ム実行形式記憶部 3 0 2 に格納 する。 再度、 プロ グラ ム 2 0 1 の起動が指示さ れる と 、 制 御部 1 0 7 か ら の指示に従い、 ポス ト ロ ーダ部 1 0 5 がテ ンポ ラ リ ラ ンタ イ ム実行形式 2 0 2 を ラ ンタイ ム実行形式
2 0 3 に変換 し、 ィ ン夕 プリ タ部 1 0 6 がラ ンタイ ム実行 形式 2 0 3 を解釈実行する。
また、 プレ ロ ー ド処理を行 う 場合のデータ の変換の流れ を以下 に示す。 プレ ローダ部 1 0 4 がプロ グラ ム 2 0 1 を テ ンポ ラ リ ラ ンタイ ム実行形式 2 0 2 に変換し、 テ ンポ ラ リ ラ ンタィ ム実行形式記憶部 3 0 2 に格納する 。 プロ ダラ ム 2 0 1 の起動が指示さ れる と 、 制御部 1 0 7 か ら の指示 に従い、 ポス ト ロ ーダ部 1 0 5 がテンポ ラ リ ラ ンタイ ム実 行形式 2 0 2 を ラ ンタイ ム実行形式 2 0 3 に変換し、 イ ン タ プ リ タ部 1 0 6 がラ ンタイ ム実行形式 2 0 3 を解釈実行 する 。
図 4 か ら 図 8 は、 図 3 で説明 したプロ グラ ム 2 0 1 、 ラ ンタ イ ム実行形式 2 0 3 、 テ ンポ ラ リ ラ ン夕 ィ ム実行形式 2 0 2 の構造の一例 を示 した。 以下、 順に説明する 。
プ口 グラ ム 2 0 1 は、 携 ¾T ^ nS V^. つ て解釈実行が可能 な形式 を持っ たう 夕 と して獲得する こ とができる。 携帯
¾ BCr J a V a ( T M ) の仕組みが用 レ ら れている場合 に は、 J a v a ( T M ) の実行形式であ る ク ラ ス フ ア イ ノレが プロ ダラ ム 2 0 1 と してダゥ ン ロー ド される
プ口 グ ラム 2 0 1 の構造の一例を 図 4 に示す。 図 4 はプ ロ グラ ム 2 0 1 に記録さ れ † つ 夕 内容を C 言語に倣っ て 構造体表現 した も のであ る 。 u 1 型、 u 2 型、 u 4 型はそ れぞれ符号な しの 1 バィ 卜、 2 ノ ィ 卜、 4 バィ 卜 のデータ 量を表現 してい る 。 J a V a ( T M ) では、 プロ グラム 2 0 1 は通常、 1 つ以上のク ラ ス フ ァイ ルか ら構成されるが
、 ク ラス フ ァ イ ル 自体の構造は どのク ラス フ ァイ ルも 同 じ であ る。 ク ラ ス フ ァイ ルの構造 自体は、 文献 ( T i m L i n d h o l m a n d F r a n k Y e 1 1 i n : " T e J a v a ( T M ) V i r t u a l M a c h i n e S p e c i f i c a t i o n , A d d i s o n - W e s 1 e y , 1 9 9 7 ) に詳説されてい る 。 図 4 で は特に、 最上位に位置付け ら れる構造体のみ示 してい る。
次に、 ラ ンタイ ム実行形式 2 0 3 の構造の一例 を図 5 お よび図 6 に示す。 ラ ン タイ ム実行形式 2 0 3 は、 ラ ンタイ ム実行形式記憶部 3 0 3 に格納さ れる連続 したメ モ リ ィ メ —ジ と して実現さ れる 。 ク ラ ス フ ァイ ルの フ ォ ーマ ッ ト 自 体は先に述べたよ う に規定されている が、 ラ ンタイ ム形式 の フ ォ ーマ ッ ト に関 しては J a v a ( T M ) 仮想マ シ ン の 実装依存 と さ れてお り 、 何 ら規定はされて いない。
図 5 お よび図 6 では、 ラ ンタイ ム実行形式 2 0 3 を、 ク ラ ス単位の メ モ リ イ メ ージ と して示 してい る 。 J a v a ( T M ) の実際の プロ グ ラム は、 2 つ以上の ク ラ ス フ ァ イ ル か ら構成さ れる こ と も多いが、 その場合に は同様のメ モ リ イ メ ージがク ラス フ ァ イ ルの数だけ生成さ れる こ と になる 。 ク ラス を表現 したメ モ リ イ メ ージはその 中 に、 さ ら に下 位の構造であ る コ ンス タ ン ト プール構造の ラ ンタイ ム形式 、 イ ンタ フ ェ ース構造の ラ ンタ イ ム形式、 フ ィ ール ド構造 の ラ ンタイ ム形式、 メ ソ ッ ド構造の ラ ンタ イ ム形式、 ア ト リ ビュー ト構造の ラ ンタイ ム形式を含んでい る 。
図 5 および図 6 のメ モ リ イ メ ージの 中で 白 い箱で示さ れ たデータ は、 図 4 にお ける 同名 のデータ の値がその ま ま記 録さ れる こ と を意味してい る 。 図 5 お よび図 6 のメ モ リ イ メ ージの中で網掛けで表現さ れてい る データ は、 そのデー 夕 がメ モ リ イ メ ージの 中 の、 他のデータ格納場所のァ ド レ ス を指す参照値 (ポイ ンタ) であ る こ と を表現 してい る 。 具体的には、 次の通 り にな っ てい る。
「 * c o n s t a n t — p o o l 」 は、 コ ンス タ ン ト プ ール構造の ラ ンタ イ ム形式の先頭を指すポイ ンタ 、 「 ( c o n s t a n t 一 p o o 1 * ) t i s ― c l a s s 」 お よび 「 ( c o n s t a n t ― p o o 1 * ) s u p e r ― c l a s s 」 は、 コ ンス タ ン ト プール構造の 中 のエ ン ト リ の ア ド レス を指すポイ ンタ 、 「 * i n t e r f a c e s 」 は 、 イ ンタ フ ェース構造の ラ ンタイ ム形式の先頭を指すボイ ン夕 、 「 * f i e l d s 」 は、 フ ィ ール ド構造の ラ ンタ イ ム形式の先頭を指すポイ ンタ 、 「 * m e t h o d s 」 は、 メ ソ ッ ド構造の ラ ンタ イ ム形式の先頭を指すポイ ンタ 、 「 * a t t r i b u t e s 」 は、 ア ト リ ビュ ー ト構造の ラ ン タイ ム形式の先頭を指すボイ ンタ であ る 。
なお、 ポイ ンタ値は必ずし も、 そのポイ ンタ が含まれる の と 同 じ ク ラ ス の メモ リ イ メ ージの中 の構造を指 してい る と は限 らず、 他の ク ラ ス の メ モ リ イ メ ージの構造を指 して い る場合も あ る 。
ラ ンタイ ム実行形式 2 0 3 のメ モ リ イ メ ージはポイ ンタ を含んでお り 、 こ のポイ ンタ値はメ モ リ イ メ ージ生成の際 に一定の値には決定付け ら れない (ラ ンタ イ ム実行形式記 憶部 3 0 3 中での メ モ リ イ メ ージの配置位置によ っ て、 ポ イ ンタ値は変動する か ら であ る) 。
さ ら に詳細には、 図 5 お よび図 6 の中で描いたポイ ンタ 以外で も 、 コ ンス タ ン ト プール構造の中 のエ ン ト リ 、 イ ン 夕 フ ェース構造の 中 のエン ト リ 、 フ ィ ール ド構造の中のェ ン ト リ 、 メ ソ ッ ド構造の 中 のエ ン ト リ 、 ア ト リ ビュー ト構 造の中 のェ ン ト リ の其々 のそれぞれのデータ の 中に もポィ ン夕値が含まれてい る可能性があ る が、 本説明 中では割愛 する。
次に、 テ ンポ ラ リ ラ ンタ イ ム実行形式 2 0 2 の構造の一 例を図 7 および図 8 に示す。 テ ンポ ラ リ ラ ンタ イ ム実行形 式 2 0 2 は、 テ ンポ ラ リ ラ ンタ イ ム実行形式記憶部 3 0 2 に格納さ れる。 メ モ リ イ メ ージ と して記録さ れて も、 デー 夕 をバイ ト 列 と した フ ァ イ ル と して記録さ れて も どち ら で も よいが、 こ こ では図 5 お よび図 6 の表現 と 同 じ く メ モ リ イ メ ージ と して示す こ と にする。 こ こ に示すのは図 5 およ び図 6 で示 した ラ ンタ イ ム実行形式 2 0 3 の実施の形態 に 対応 した、 テ ンポ ラ リ ラ ンタイ ム実行形式 2 0 2 の実現例 であ る。
図 7 および図 8 のメ モ リ イ メ ージ には、 図 5 および図 6 と比較 して新た に以下のデータが先頭に加わっ てい る 。
「 c 1 a s s — i d 」 は、 メ モ リ イ メ ージに対してク ラ ス単位に、 一意に与え ら れる識別データ (ク ラ スの識別番 号) であ る 。 複数の ク ラ ス の メ モ リ イ メ ージが作成さ れる 場合、 こ の c 1 a s s — i d の値は重複 してはな ら ない。 「 r u n t i m e 一 i m a g e ― s i z e 」 は、 本テ ン ラ リ ラ ンタイ ム実行形式か ら 生成される ラ ンタ イ ム実行形 式の メ モ リ サィ ズを記録した も のであ る 。
また、 図 7 および図 8 の メ モ リ イ メ ージには、 図 5 およ び図 6 と は異な Ό 、 ポイ ンタ値がない。 図 5 および図 6 に てボイ ンタ と して表現 されていたデ一夕 は、 全て次の 2 つ のデー夕 の組に変換さ れてい る (図 7 および図 8 の 中で網 がけさ れて い る部分 ) ο
Γ r e f ― c 1 a s s一 i d 」 は、 ク ラ ス の識別番号を 指定する。 こ の後続データ には必ずェ ン 卜 リ 番号が続 く 。 「ェ ン 卜 U 番号」 は、 コ ンス 夕 ン 卜 プ一ル構造 /イ ンタ フ エース構造 /フ ィ ―ル ド構造 /メ ソ ッ ド構造 zア ト リ ビュ — ト構造の 中のァ、一夕 のェ ン ト リ 番号を示す
テ ンポ ラ U ラ ン夕ィ ム実行形式 2 0 2 の実施の形態では 、 ラ ン夕ィ ム実行形式 2 0 3 の 中でポイ ン夕 と して表現 さ れる部分を全て 「ク ラ ス I D 」 + 「ェ ン 卜 リ の番号」 と い う 形式 (間 照表現) に変換 して記録を行つ てい る。
先に述ベたよ う に、 ラ ンタィ ム実行形式 2 0 3 の 中のポ イ ンタ表現は、 時 と して別の ク ラ ス の メ モ リ ィ メ一ジの構 造を指 して いる 場合があ る 。 どの ク ラ ス の メ モ リ イ メ ージ の ち のであ るか を特定する ため に、 ェ ン 卜 リ 番号は必ず c 1 a s s ― i d と組み合わせた形で表現さ れる 。
テ ンポラ U ラ ン夕ィ ム実行形式 2 0 3 の メ モ リ イ メ ージ はボイ ン夕 を含んでいないため、 テ ンポ ラ リ ラ ン夕 ィ ム実 行形式 し憶部 3 0 2 の 中でのメ モ リ イ メ ージの配置位置に よ らず 、 メ モ リ ィ メ ージ生成の際に一意のデ一夕列 に決定 付け ら れる 。 すなわち 、 あ る ク ラス を表現する テンポラ リ ラ ンタィ ム実行形式の記録内容は常に一思 、 と い う 状態 を 保っ ている 。
以上が、 各データ形式の構造に関する説明であ る 。
次に、 図 2 の構成図に描かれた各処理部が行 う 、 処理内 容に関 して説明する。
図 9 は、 口 ーダ部 1 0 2 にお けるデータ変換の処理の流 れのー例を示す。
まず、 口一ダ部 1 0 2 に よ っ て生成さ れる ラ ンタ イ ム実 行形式 2 0 3 の メ モ リ 使用量を計算する (ステ ッ プ 6 0 1 ) 。 こ れはプロ グラム 2 0 1 に含まれる ク ラ ス フ ア イ リレを 検査し 、 c o n s a n t ― p o o 1 ― c o u n t s i n t e r f a c e s ― c o u n t > f i e 1 d s ― c o u n t 、 m e t h o d s ― c o u n t: 、 a t t r i b u t e s 一 C O u n t と レ つ た、 各構造のェ ン ト リ 数を示す数値 と
、 各構造のェ ン ト リ 毎のサイ ズによ り 算出する こ とが可能 であ る
ステ ッ プ 6 0 1 で弁 HJ し た値に基づいて 、 ラ ンタイ ム実 行形式 2 0 3 の格納先であ る ラ ンタィ ム実行形式 L '|
0 3 に、 保存メ モ リ 領域の空きが存在する か否か を検査す る (ス テ ッ プ 6 0 2 ) 。 空きが存在 しない場合 (ステ ッ プ 6 0 2 が N ) 、 Π ―ダ部 1 0 2 に よ るテ一夕変換処理の続 行 を不可能 と判断 して、 口 ー ド処理その も の を取 り やめ、 プ口 グ ラム の起動不可能であ る こ と をュ一ザに通知 し、 処 理を終了する (ス テ ッ フ 6 0 3 ) 。 一方、 空さが存在する 場合 (ステ ツ プ 6 0 2 が Y ) 、 ラ ンタイ ム実行形式記憶部 3 0 3 に、 ステ ッ プ 6 0 1 で計算 した値の分だけの メ モ リ 領域を確保する (ステ ツ フ 6 0 4 ) 次に、 ク ラ ス フ ァイ ルを検査 し、 ラ ンタイ ム実行形式 2 0 3 の中でポイ ンタ値 と して表現さ れる部分以外のデータ を コ ピーする こ と によ り 、 ラ ンタイ ム実行形式記憶部 3 0 3 にデータ を格納する (ス テ ッ プ 6 0 5 ) 。 これは図 5 お よ び図 6 の メ モ リ イ メ ージの 中で 白 い箱で示さ れたデータ に相当する 。
最後に、 ク ラス フ ァ イ ルか ら 、 ラ ンタ イ ム実行形式 2 0 3 の中でポイ ンタ値と して表現さ れる データ を計算 し 、 算 出 したデータ を ラ ンタ イ ム実行形式記憶部 3 0 3 に格納 し 、 プロ グ ラ ム 2 0 1 か ら ラ ンタ イ ム実行形式 2 0 3 への変 換処理を終了する (ス テ ッ プ 6 0 6 ) 。 これは図 5 お よび 図 6 のメ モ リ イ メ ージの中で網掛けで表現 した箱で示 さ れ たデ一夕 に相 当する。
図 1 0 は、 ラ ンタイ ムセー ビ ン グ部 1 0 3 にお ける デー 夕変換の処理の流れの一例 を示す。
まず、 ラ ン タイ ムセー ビ ン グ部 1 0 3 によ っ て生成 さ れ る テンポ ラ リ ラ ンタイ ム実行形式 2 0 2 の メ モ リ 使用 量を 計算する (ス テ ッ プ 7 0 1 ) 。 これは ラ ンタイ ム実行形式 2 0 3 を很查 し、 c o n s t a n t ― p o o 1 ― c o u n t 、 i n t e r f a c e s 一 c o u n t 、 f i e l' d s ― c o u n t 、 m e t h o d s一 c o u n t 、 a t t r i b u t e s — c o u n t と い っ た、 各構造のエ ン ト リ 数を示 す数値 と 、 各構造のエ ン ト リ 毎のサイ ズによ り 算出する こ と が可能であ る 。
ステ ッ プ 7 0 1 で算出 し た値に基づいて、 テ ンポ ラ リ ラ ンタイ ム実行形式 2 0 2 の格納先であ る テ ンポ ラ リ ラ ン夕 ィ ム実行形式 d憶部 3 0 2 に、 保存メ モ リ 領域の空きが存 在するか否か を検査する (ス テ ツ プ 7 0 2 ) 。 空きが存在 しない場合 (ステ ツ フ 7 0 2 が N ) 、 ラ ンタィ ムセ一 ビ ン グ部 1 0 3 に よ る: 7 夕変換処理の続行を不可能 と判断し て、 ラ ンタ ィ ムセー ビ ング処理その も の を取 り やめ、 処理 を終了する (ステ ツ フ 7 0 3 ) 。 一方、 空きが存在する場 合 (ステ ツ プ 7 0 2 が Y ) 、 テ ンポ ラ リ ラ ンタ イ ム実行形 ェ C 0ϋ懷 θ|5 0 2 に、 ステ ツ フ 6 0 1 で計算 した値の分だけ の メ モ リ 領域を確保する (ス テ ツ プ 7 0 4 )
次に、 ラ ン夕ィ ムセ一ビ ング処理の対象 とな る全ての ク ラス に対 し 別番号を与え、 テ ンポ ラ リ ラ ンタイ ム実行 形式 2 0 2 の c 1 a s s 一 i d テ—夕 と してテ ンポ ラ リ ラ ンタ イ ム実行形 ¾ p己 Ί意部 3 0 2 にデ一夕 を格納する (ス テ ッ プ 7 0 5 ) o
ラ ンタ イ ムセ — ン グ処理の処理元 となる デ一夕 であ る ラ ンタイ ム実行形式 2 0 3 が、 ラ ンタ イ ム実行形式記憶部 3 0 3 の 中で、 その記録のため に使用 してい る メ モ リ 量の 数値を計算 し、 テ ンポ ラ リ ラ ンタ イ ム実行形式 2 0 2 の r u n t i m e ― i m a e _ s i z e データ と してテ ンポ ラ リ ラ ンタ ィ ム実行形式記憶部 3 0 2 に格納する (ス テ ツ プ 7 0 6 )
ラ ンタ イ ム実行形式 2 0 3 の メ モ リ イ メ ージを検査 し、 ラ ンタイ ム実行形式 2 0 3 の 中でポイ ンタ値 と して表現さ れる部分以外のデータ を、 テ ンポ ラ リ ラ ンタ イ ム実行形式 2 0 2 のデ一夕 と してコ ピーする こ と によ り 、 テンポ ラ リ ラ ンタイ ム実行形式記憶部 3 0 2 にデータ を格納する (ス テ ツ プ 7 0 7 ) 。 これは図 7 お ょぴ図 8 の メ モ リ イ メ ージ の 中で 白 い箱で示さ れたデ一夕 に相当する。
敢後に、 ラ ンタイ ム実行形式のメ モ リ イ メ —ジを検査 し 、 ラ ンタイ ム実行形式 2 0 3 の 中でポイ ンタ値 と して表現 さ れる デー 夕 に関 して変換を行い、 変換 したつ 夕 を: r ン ポ ラ リ ラ ン タ イ ム実行形式記憶部 3 0 2 に格納 し、 ラ ン夕 ィ ム実行形式 2 0 3 か ら テ ンポ ラ り ラ ンタイ ム実行形式 2 0 2 への変換処理を終了する (ステ ツ プ 7 0 8 ) 。 ポイ ン 夕値のデー タ は、 「そのポイ ン夕が指す構造を含むク ラ ス の識別番号 J と 「構造の 中 のェ ン 卜 リ 番号」 と い う 形 に変 換される。 これは図 7 および図 8 のメ モ リ イ メ ージの 中で 、 c 1 a s s ― i d 、 r u n t 1 m e ― 1 m a g e ― s i z e 以外の 、 網掛けで表現 した箱で示さ れたデ一夕 に相当 する。
図 1 1 は 、 プ レ 口 一ダ部 1 0 4 にお けるデ一夕変換の処 理の流れの一例 を示す。
まず、 プ レ ロ ーダ部 1 0 4 に よ っ て生成さ れる テ ンポ ラ リ ラ ンタイ ム実行形式 2 0 2 の メ モ リ 使用量を計算する ( ステ ッ プ 8 0 1 ) 。 これは処理前のク ラ ス フ ァ イ ルを検査 し、 c o n s t a n t ― p o o l 一 c o u n t 、 i n t e r f a c e s ― c o u n t 、 f i e l d s ― c o u n t 、 m e t h o d s ― c o u n t; 、 a t t r i b u t e s 一 c o u n t と い っ た、 各構造のエ ン ト リ 数を示す数値 と 、 各 構造のェン 卜 リ 毎のサイ ズによ り 算出する こ とが可能であ る 。
ステ ッ プ 8 0 1 で算出 した値に基づいて、 テンポ ラ リ ラ ンタイ ム実行形式 2 0 2 の格納先であ る テ ンポ ラ リ ラ ンタ ィ ム実行形式記憶部 3 0 2 に、 保存メ モ リ 領域の空きが存 在するか否か を検査する (ステ ッ プ 8 0 2 ) 。 空きが存在 しない場合 (ス テッ プ 8 0 2 が N ) 、 プレ ローダ部 1 0 4 に よ るデータ変換処理の続行を不可能 と判断 して、 プレ ロ — ド処理その も のを取 り やめ、 処理を終了する (ステ ッ プ 8 0 3 ) 。 一方、 空きが存在する場合 (ス テ ッ プ 8 0 2 が Y ) 、 テンポ ラ リ ラ ンタイ ム実行形式記憶部 3 0 2 に、 ス テ ツ プ 8 0 1 で計算 した値の分だけの メ モ リ 領域を確保す る (ステ ッ プ 8 0 4 ) 。
次に、 プ レ ロ ー ド処理の対象 と なる全ての ク ラス に対 し て識別番号 を与え、 テ ンポ ラ リ ラ ンタ イ ム実行形式 2 0 2 の c 1 a s s — i d データ と してテンポ ラ リ ラ ンタ イ ム実 行形式記憶部 3 0 2 にデータ を格納する (ステ ッ プ 8 0 5 プレ ロ ー ド処理の処理元 と なる デ一夕であ る プロ グラ ム 2 0 1 が、 ラ ン タイ ム実行形式 2 0 3 に変換さ れた場合に 使用する メ モ リ 量の数値を計算 し、 テ ンポ ラ リ ラ ンタ イ ム 実行形式 2 0 2 の : r u n t i m e _ i m a g e _ s i z e データ と し てテ ンポ ラ リ ラ ンタイ ム実行形式記憶部 3 0 2 に格納する (ス テ ッ プ 8 0 6 ) 。
プロ グラ ム 2 0 1 を検査 し、 テ ンポ ラ リ ラ ンタイ ム実行 形式 2 0 2 の 中で、 他の構造への参照値 と して表現さ れる 部分以外のデータ をテ ンポ ラ リ ラ ンタ イ ム実行形式 2 0 2 のデータ と して コ ピーする (ス テ ッ プ 8 0 7 ) 。 これは図 7 および図 8 の メ モ リ イ メ ージの 中で 白 い箱で示されたデ 一夕 に相当する 。
最後に、 プロ グラ ム 2 0 1 を検査 し 、 テ ンポラ リ ラ ン夕 ィ ム実行形式 2 0 2 の 中で、 他の構造への参照値 と して表 現さ れる部分のデータ を、 「参照先の構造を含むク ラ ス の 識別番号」 と 「構造の 中 のエ ン ト リ 番号」 と い う 形のデー 夕 に変換し 、 プロ グラ ム 2 0 1 か らテ ンポ ラ リ ラ ンタ イ ム 実行形式 2 0 2 への変換処理を終了する (ステ ッ プ 8 0 8 ) 0
これは図 7 お よび図 8 の メ モ リ イ メ ージの 中で、 c l a s s ― i d 、 r u n t 1 m e ― 1 m a g e ― s i z e 以外 の、 網がけの箱で示さ れたデ一夕 に相 当する 。
図 1 2 は、 ポス ト 口 —ダ部 1 0 5 における デ一夕変換の 処理の流れの一例を示す。
まず、 ポス 卜 口一ダ部 1 0 5 に よ っ て生成さ れる ラ ンタ ィ ム実行形式 2 0 3 のメ モ リ 使用量を計算する (ステ ッ プ 9 0 1 ) 。 こ れは、 テ ンポ ラ リ ラ ンタ イ ム実行形式 2 0 2
(D タ r u n t i m e ― i m a g e s i z e を参照す る こ とで簡単に得る こ とが出来る
ステ ッ プ 9 0 1 で得た値に基づいて、 ラ ンタイ ム実行形 式 2 0 3 の格納先であ る ラ ンタ イ ム実行形式記憶部 3 0 3 に、 保存メ モ リ 領域の空きが存在する か否か を検査する ( ステ ッ プ 9 0 2 ) 。 空きが存在 し ない場合 (ステ ッ プ 9 0 2 が N ) 、 ポス ト ロ ーダ部 1 0 5 によ る処理の続行を不可 能 と判断し て、 ボス 卜 口一 ド処理その も の を取 り やめ、 プ ロ グラ ム の起動不可能 で め る こ をユーザに通知 し、 処理 を終了する (ス テ ッ プ 9 0 3 ) 。 一方、 空きが存在する場 合 (ステ ッ プ 9 0 2 が Y ) 、 ラ ンタイ ム実行形式記憶部 3
0 3 に、 ステ ツ プ 9 0 1 で計算 した値の分だけのメ モ リ 領 域を確保する (ステ ツ プ 9 0 4 )
次に、 テ ンポ ラ り ラ ンタイ ム実行形式 2 0 2 を検査し、 ラ ンタイ ム実行形式 2 0 3 の 中でポイ ンタ値 と して表現さ れる部分以外のつ 夕 を コ ピ る こ と によ り 、 ラ ンタ イ ム実行形 PL憶部 3 0 3 にデ ― タ を格納する (ステ ッ プ 9 0 5 ) 。 こ れは図 5 および図 6 の メ モ リ イ メ ージの 中で 白 い箱で示さ れたつ タ に相当する
最後に、 ラ ンタイ ム実行形式 2 0 3 の 中でポイ ンタ値 と して表現さ れる を計算 し 、 算出 した ~々 を ラ ンタ ィ ム実行形式記憶部 3 0 3 に格納 し、 テ ンボ ラ リ ラ ンタ イ ム実行形式 2 0 2 か ら ラ ンタ ィ ム実行形式 2 0 3 への変換 処理を終了する (ステ ッ プ 9 0 6 ) 。 こ の計算は、 テンポ ラ リ ラ ンタ イ ム実行形式 2 0 2 の 中の参照値、 すなわち 「 参照先の構造を含むク ラス の識別番号」 と 「構造の 中のェ ン ト リ 番号」 と い う 形のデ一夕 を、 ポイ ン夕 に変換する こ と に よ つ て実現できる。 こ の丁 ―夕 は図 5 および図 6 の メ モ リ ィ メ —ジの 中で網掛けで表現 した箱で示さ れたつ タ に相 当する 。
以上によ り 、 前も っ てテ ンポ ラ リ ラ ンタイ ム実行形式 を 保持 してい る こ と によ り 、 ポス ト ロー ド処理のみでプロ グ ラ ム を起動実行する こ とが可能 と なる 。 これによ り 、 ( 1 ) 生成さ れる ラ ンタイ ム実行形式 2 0 3 の メ モ リ 使用量の 計算が簡単であ る。 ( 2 ) テ ンポ ラ リ ラ ンタ イ ム実行形式 2 0 2 のメ モ リ イ メ ージは、 プロ グラ ム 2 0 1 (ク ラス フ ア イ ル形式) のデータ と 比較 して、 ラ ンタ イ ム実行形式 2 0 3 のメ モ リ イ メ ージに非常に近い形でデータ を保存 して お り 、 ポイ ンタ値以外はほ と ん どメ モ リ イ メ ージを コ ピ一 する形で簡単に ラ ンタイ ム実行形式 2 0 3 が得 られる 。 と い う 大きな 2 つ の効果に よ り 、 イ メ ージの生成の処理量を 大幅に少な く する こ とができ、 プロ グラム の起動時間 を短 縮する こ とが可能 となる。
図 1 3 は、 ラ ンタイ ムセー ビ ング処理時の画面表示につ いて説明 し た図であ る 。
なお、 本発明 の実施の形態 1 にお いて、 プロ グラ ムが口 — ド さ れた後に、 続けて ラ ンタ イ ムセ一 ビ ング処理 を行 う も の とする 。 つ ま り 、 ラ ンタイ ムセ一 ビ ン グ部 1 0 3 は、 ローダ部 1 0 2 によ る ロ ー ド処理の終了タ イ ミ ングに、 テ ンポ ラ リ ラ ンタ イ ム実行形式を生成 し格納する メ モ リ 領域 の空きが存在する か否か をチェ ッ ク し、 空きがあ る と判断 された場合 に直ち に ラ ンタ イ ムセ一 ビ ング処理を行えばよ い。
図 1 3 ( a ) では、 ロ ーダ部 1 0 2 がプロ グラ ム 2 0 1 を ラ ンタイ ム実行形式 2 0 3 に変換する処理中 にお ける携 帯情報端末の表示画面出力 と 、 ラ ンタ イ ムセー ビ ング部 1 0 3 がラ ンタイ ム実行形式 2 0 3 をテ ンポ ラ リ ラ ンタイ ム 実行形式 2 0 2 に変換する処理中 にお ける携帯情報端末の 表示画面出 力 と を変更 し、 ュ一ザに処理状況を通知する例 を示 してい る 。 こ の場合、 ユーザがラ ンタ イ ムセー ビ ング 処理を余計な処理 と考え、 プロ グラ ムが実行開始する まで の待ち 時間 に余分なス ト レス を感 じ る可能性があ る 。 図 1 3 ( b ) では、 これ ら 2 つ の処理の表示画面出力 を あ えて変更せずに同一に し、 ユーザに これ ら の処理の境界 を通知 し ない例を示してい る 。 これによ り 、 ラ ンタイ ムセ 一ビング処理の処理時間 を ロー ド処理に隠蔽し、 ュ一ザに 無用なス ト レス を与えない よ う にする こ とができ る。
図 1 4 は、 プレ ロー ド処理時の画面表示につ いて説明 し た図であ る 。
なお、 本発明の実施の形態 1 において、 プロ グ ラムがダ ゥ ン ロ ー ド さ れた時に、 テ ンポ ラ リ ラ ンタイ ム実行形式を 生成 し格納する メ モ リ 領域の空きが存在すれば、 無条件に プ レ ロー ド処理を行 う も の とする 。 つ ま り 、 プレ ローダ部 1 0 4 は、 ダウ ン ロー ド処理の終了後に、 テ ンポ ラ リ ラ ン タ イ ム実行形式を生成 し格納する メ モ リ 領域の空きが存在 するか否か をチェ ッ ク し、 空きがあ る と判断さ れた場合に 直ち にプ レ 口 一 ド処理を行え ばよ い。
図 1 4 ( a ) では、 プロ グラ ム ダウ ン 口一 ド部 1 0 1 が プロ グラ ム 2 0 1 をダウ ン ロ ー ドする処理中 にお ける携帯 情報端末の表示画面出力 と 、 プレ 口一ダ部 1 0 4 がプロ グ ラ ム 2 0 1 をテ ンポ ラ リ ラ ンタ イ ム実行形式 2 0 2 に変換 する処理 中 における携帯情報端末の表示画面出力 と を変更 し、 ユーザに処理状況 を通知する例を示 してい る 。 こ の場 合、 ユーザがプレ ロー ド処理を余計な処理と考え、 プロ グ ラ ムが実行開始する までの待ち 時間に余分なス ト レス を感 じ る可能性があ る。
図 1 4 ( b ) では、 これ ら 2 つ の処理の表示画面出 力 を あ えて変更せずに同一 に し、 ユーザに これ ら の処理の境界 を通知 しな い例を示 してい る 。 これによ り 、 プレ ロ ー ド処 理の処理時間 をダウ ン ロー ド処理に隠蔽し、 ュ一ザに無用 なス ト レス を与えない よ う にする こ とができ る 。
以上に よ り 、 ラ ンタ イ ムセー ビ ング部 1 0 3 またはプ レ ロ ーダ部 1 0 4 によ り 、 前 も っ てテンポ ラ リ ラ ンタイ ム実 行形式を保持する こ とができ、 ポス ト ロー ド処理のみでプ ロ グラム の解釈実行が可能 と な る こ と によ り 、 起動時間 を 短縮する こ とができ る 。
(実施の形態 2 )
本発明 の実施の形態 1 では、 ラ ンタ イ ムセ一 ビ ング部に よ る ラ ンタ イ ムセ一 ビ ング処理は、 プロ グラムがロ ー ド さ れた後に、 続けて 口 一 ド さ れた プロ グラム に対 して行 う も の と した。 しか し、 こ れ以外の判断基準に基づき、 ラ ン夕 ィ ムセ一ビ ング処理の対象プロ グラム を選択決定する こ と ができ る 。 以下に、 図 を用 いて詳細を説明する 。
図 1 5 は、 本発明の実施の形態 2 における プロ グラ ム実 行処理端末装置の構成 を示すブロ ッ ク 図であ る 。 プロ ダラ ム ダウ ン ロ ー ド部 1 0 1 と 、 口一ダ部 1 0 2 と 、 プレ ロ ー ダ部 1 0 4 と、 ポス ト ローダ部 1 0 5 と 、 イ ンタ プ リ タ部 1 0 6 と 、 制御部 1 0 7 と 、 ラ ンタイ ムセー ビ ン グ部 1 1 0 と 、 プロ グラム記億部 3 0 1 と、 テ ンポ ラ リ ラ ンタ イ ム 実行形式記憶部 3 0 2 と、 ラ ンタ イ ム実行形式記憶部 3 0 3 と 、 設定情報記憶部 3 0 4 と 、 イ ンタ ブ リ ッ ト 履歴記憶 部 3 0 5 と か ら構成さ れて い る 。 プロ グラム ダウ ン ロ ー ド 部 1 0 1 と 、 ローダ部 1 0 2 と 、 プレ 口一ダ部 1 0 4 と 、 ポス ト ロ ーダ部 1 0 5 と、 イ ンタ プリ タ部 1 0 6 と 、 制御 部 1 0 7 と 、 プロ グラム記憶部 3 0 1 と 、 テンポ ラ リ ラ ン タ イ ム実行形式記憶部 3 0 2 と 、 ラ ンタイ ム実行形式記憶 部 3 0 3 は、 図 2 で説明 した も の と 同 じであ る 。 こ こ では 、 新規に追加 した ラ ンタイ ムセ一 ビング部 1 1 0 と、 設定 情報記憶部 3 0 4 と、 イ ンタ ブ リ ッ ト 履歴記憶部 3 0 5 に ついて説明する 。
ラ ンタ イ ムセー ビ ング部 1 1 0 は、 設定情報記憶部 3 0 4 またはイ ンタ ブ リ ッ ト 履歴記憶部 3 0 5 に格納さ れてい る設定情報または履歴情報に基づき、 ラ ンタ イ ムセー ビ ン グ処理の開始タ イ ミ ング と対象プロ グラム を選択決定する 設定情報記憶部 3 0 4 は、 ラ ンタイ ムセ — ビ ング処理を 行 う 対象プロ グラ ム を識別する設定情報 を格納する 。 こ の 1冃報は、 ラ ン夕 ィ ムセー ビ ング部 1 1 0 か ら参照 さ れ 、 ラ ンタイ ムセー ビ ング処理対象と指定さ れてい る プ口 グ ラ ム (高速起動指定のプロ グラ ム) が口 一 ド さ れた場合に 、 続けて ラ ンタ イ ムセ一 ビ ング処理を実行する 。
nk 疋情報記憶部 3 0 4 に格納された設定情報は、 例えば 、 一ザの入力指定に基づいて決定する 。 図 1 6 に、 入力 画面の一例 を示す。 ユーザは携帯情報端末の表示画面に表 示 したプ口 グラ ムー覧か ら 、 各プロ グラ ム し と に尚速起動 の 〇 N あ る い は 0 F F を指定する こ とがでさ る 。 図 1 6 で は、 「 S c h e d u 1 e 」 および 「 M e m o P a d 」 と い う プロ グラ ムが高速起動 O N と して指定されてい る 。 高速 起動〇 N と して指定されてい る プロ グラ ムがロ ー ド さ れた ½; 口 には、 ラ ン夕ィ ムセ一 ビ ング処理を行い、 それ以外の プロ グラ ムがロ ー ド さ れた場合にはラ ンタ イ ムセ一 ビ ング 処理は行わない。 なお、 ユーザの入力指定に関係な く 、 常 に特定の プロ グラム を高速起動指定する こ と も可能であ る イ ン夕 プ リ ッ ト履歴記憶部 3 0 5 は、 各プロ グラ ムが過 去に解釈実行さ れた履歴情報を格納する 。 こ の履歴情報は 、 ラ ンタ イ ムセー ビ ング部 1 1 0 か ら参照 さ れ、 履歴情報 か ら 使用頻度が高い と判断さ れる プロ グラ ムがロー ド さ れ た場合に、 続けてラ ンタイ ムセ一 ビング処理を実行する 。
イ ンタ プ リ ツ ト履歴記憶部 3 0 5 に格納さ れた履歴情報 の一例を、 図 1 7 に示す。 図 1 7 では、 プロ グラ ム記憶部 3 0 1 に格納さ れた全ての プロ グラ ム ごと に、 これまでに 何回起動さ れたか と い う 情報 と 、 最後に起動さ れた時刻は いっか、 と い う 情報をテー ブル と して保持 してい る 。 なお 、 平均起動時間や、 起動間隔な ど、 他の情報を含んで も よ く 、 また、 例え ば起動回数だけ と い っ た、 一つ の情報のみ で も よ い。 あ る プロ グラムがロー ド さ れた場合に、 そのプ ロ グラム につ いてラ ンタ イ ムセ一 ビ ング処理を行 う か否か の判定につ いては、 例えば以下の判断基準を適用する こ と が考え ら れる 。 なお、 イ ン夕 ブリ ッ ト 履歴記憶部 3 0 5 の 履歴情報 を用 いた他の判断基準であ っ て も よ い。
第 1 の判断基準は、 3 回以上起動さ れた こ とがあ る プロ グラ ムがロー ド された場合には、 その プロ グラム は頻繁に 使用 される と みな し、 ラ ンタイ ムセー ビ ン グ処理を行 う 。 選択基準の数値に関 しては 3 回でな く と も 、 任意の数で も 良い。 第 2 の判断基準は、 全てのプロ グラム の 中で、 これまで に起動さ れた回数の多い、 上位 2 つ のプロ グラ ム に関 して は、 その プロ グラ ムは頻繁に使用 さ れる と みな し、 ラ ンタ ィ ムセ一ビ ング処理を行 う 。 選択基準の数値に関 しては上 位 2 つでな く と も 、 任意の数で も 良い。
以上に よ り 、 ラ ンタ イ ムセ一 ビ ング処理の対象プロ ダラ ム を選択する こ と が可能 と な り 、 高速起動が必要なプロ グ ラムや使用頻度が高い プロ グラ ム を選択 して、 ラ ンタイ ム セー ビン グ処理を実施する こ とができ る 。 よ っ て、 高速起 動が不要なプロ グラムや使用頻度が低い プロ グラム のテ ン ポ ラ リ ラ ンタイ ム実行形式 によ っ てテンポ ラ リ ラ ンタイ ム 実行形式記憶部 3 0 2 の記憶領域が占有さ れて し ま う の を 防止でき る 。 つ ま り テ ンポ ラ リ ラ ンタイ ム実行形式記憶部 3 0 2 の空き記憶領域不足 に よ っ て高速起動が必要なプロ グラムや使用頻度が高 い プロ グラム の ラ ンタ イ ムセー ビ ン グ処理が失敗に終わる の を防止する こ と ができ、 効率的な ラ ンタイ ムセ一 ビ ング処理を実施する こ とができ る。
(実施の形態 3 )
本発明 の実施の形態 1 では、 プレ ローダ部に よ る プ レ ロ — ド処理は、 プロ グラ ムがダウ ン ロ ー ド さ れた時に、 続け てダウ ン ロ ー ド さ れた プロ グラム に対 して行 う も の と した 。 しか し 、 これ以外の判断基準に基づき、 プ レ ロー ド処理 の開始タ イ ミ ング と対象プロ グラム を選択決定する こ とが でき る。
図 1 8 は、 本発明の実施の形態 3 にお ける プロ グラ ム実 行処理端末装置の構成を示すブロ ッ ク 図であ る 。 プロ ダラ ム ダゥ Π ― ド部 1 0 1 と、 Π ―ダ部 1 0 2 と、 ポス 卜 ロ ダ部 0 5 と 、 ィ ンタ プリ タ部 1 0 6 と 、 制御部 1 0 7 別記憶テてテムスたダプさプ口ロレレンンン ο 511
と 夕ィ ムセー ビング部 1 1 0 と、 プレ ロ ーダ部 1 1 と、 レ Π一 ド制御部 1 1 2 と 、 プロ グラ ム gd憶部 3 0 と、 ンポ ラ リ ラ ンタイ ム実行形式記憶部 3 0 2 と 、 ラ ン夕ィ 実行形式記憶部 3 0 3 と 、 設定情報記憶部 3 0 4 と 、 ィ 夕 プ リ ッ 卜 履歴記憶部 3 0 5 とか ら 構成さ れて い る 。 プ グラ ム ダウ ン ロ 一 ド部 1 0 1 と 、 口 ーダ部 1 0 2 と 、 ポ 卜 π ーダ部 1 0 5 と 、 ィ ン夕 プ リ 夕部 1 0 6 と 、 制御部 0 7 と 、 ラ ン夕ィ ムセー ビ ング部 1 1 0 と、 プ口 グラム 憶部 3 0 1 と、 テンポ ラ リ ラ ンタ イ ム実行形式記 部 3 2 と 、 ラ ンタイ ム実行形式 s 憶部 3 0 3 と、 設定 報記 部 3 0 4 と、 ィ ン夕 プ リ ッ 卜 履歴記憶部 3 0 5 は 図 1 で説明 した も の と 同 じで あ る では、 新規 に 加 し プレ ロ ーダ 1 と、 プレ 口 制御部 1 1 2 つ レ 説明する。
プレ ■ 々 1 は、 プ レ ロ ー ド制御部 1 1 2 か ら 通 知 を受 する こ と によ り 、 プロ グラム記憶部 3 0 1 に記録 さ れた 口 グラ ム を 、 テ ンポ ラ リ ラ ンタイ ム実行形式に変 換 し、 ンポ ラ リ ラ ンタイ ム実行形式記憶部 3 0 2 に格納 する プ Π — ド処理を行う 。 特に、 特定プロ グラ ム を指定 する Β*ί 子が通知 さ れた場合、 プレ ロ ー ド処理対象と して 通知 れた プロ グラム を選択する 。 なお、 制御部 1 0 7 か ら プ 口 ~ ド 開始の指示を受信する こ と に よ り 、 プロ グ ム を ゥ ン ロ ー ド した際に、 続けてプ レ ロ ー ド処理を実 する と ち可能でめ ま /こ 、 設定情報記憶部 3 0 4 ま たはィ ン夕 プ リ ッ ト履歴記憶部 3 0 5 に格納さ れてい る設 定情報ま たは履歴情報に基づき、 プレ ロー ド処理の対象プ 口 グラ ム を選択決定する 。
プ レ D一 ド 制御部 1 1 2 は、 携帯情報端末の機器状態に 基づいて、 プ レ ロー ド 開始の夕 ィ ミ ン グを決定 し、 プレ ロ 部 1 1 1 に処理の開始 を通知する 。 なお、 プレ ロー ド 対象の プロ グラ ム をプレ ロ •— ト 制御部 1 1 2 で決定 し、 決 定済みの プ口 グラ ム を プ レ Π―ダ部 1 1 1 に通知 して も よ い し 、 プ レ ロ 一 ド対象のプ口 グラ ム を指定せずに開始の夕 ィ ミ ン グのみを通知 し、 プ レ口 ーダ部 が処理対象の プ口 グ ラ ム を選択 して も よ い。 また、 機器状態 と しては、 例え ば以下の各判断基準を適用する こ とが考え られる 。
第 1 の判断基準は、 携帯情報端末が一定時間以上 、 ュ一 ザの入力操作 を何も受け付けない (待ち受け ) 状態に入つ ていれば、 プ レ 口 一 ド処理 を行 Ό 。 こ の場合、 プレ ロー ド 制御部 1 1 2 は、 目なち っ て設定 した時間長デ― タ (基準時 間) を保持 してお り 、 携帯情報 未 に対してュ一ザの入力 操作が加え ら れていない (待ち 受け) 状態の連続時間 を計 測 し、 基準時間 と比較する こ と によ り 、 開始タ イ S ングを 決定する
図 1 9 に、 プレ ロ ー ド制御部 1 1 2 にお ける処理の流れ の一例 を示す。
まず、 待ち 受け状態の連続時間 を初期化する (ス テ ッ プ
1 5 0 1 ) 。
W m報端末の機器状態 と して、 一定時間以上ユーザの 入力 を何 も受け付けていない (待ち受 け) 状態に入っ てい る か否か を検出する (ステ ッ プ 1 5 0 2 ) 。 待ち受け状態 でな い場合 (ステ ッ プ 1 5 0 2 が N ) 、 ス テ ッ プ 1 5 0 1 に遷移 し、 処理を繰 り 返す。 一方、 待ち受け状態であ る場 合 (ステ ッ プ 1 5 0 2 が Y ) 、 待ち受け状態の連続時間を 更新 し (ス テ ッ プ 1 5 0 3 ) 、 その連続時間の長さ と 、 基 準時間 と の比較を行う (ス テ ッ プ 1 5 0 4 ) 。
待ち受 け状態の連続時間が基準時間 を越え る まで (ス テ ッ プ 1 5 0 4 が N ) 、 ステ ッ プ 1 5 0 2 力 ら ス テ ッ プ 1 5 0 4 を繰 り 返す。 待ち 受け状態の連続時間が基準時間 を越 えた時 (ステ ッ プ 1 5 0 4 が Y ) 、 プ レ ロ ー ド処理の開始 タ イ ミ ン グ と決定 し、 プレ ロ ーダ部 1 1 1 に処理の 開始を 通知する 。
なお、 基準時間は、 R O M化さ れてい る な ど して携帯情 報端末に 固有の値でも よいが、 ユーザの入力 に よ っ て数値 を変更する こ とができても よ い。 ユーザによ る 設定時の表 示画面の一例を図 2 0 に示す。 こ こ では、 基準時間 と して 1 5 分が設定さ れてお り 、 待ち受け状態の連続時間が 1 5 分を越えたタ イ ミ ングで、 プレ ロ ー ド処理を開始する 。
第 1 の判断基準を用 いれば、 ユーザが携帯情報端末を操 作 していない間に プレ 口 一 ド処理が実行さ れる ので、 プレ ロー ド処理がュ一ザに対して隠匿 される。 よ っ て、 プレ ロ 一 ド処理の実行によ っ てユーザに何 ら のス ト レス を与え る こ と がな い と い う 利点があ る 。
第 2 の判断基準は、 携帯情報端末が待ち受け状態か ら脱 した時に、 プレ ロー ド処理を行 う 。 こ の場合、 プレ ロ ー ド 制御部 1 1 2 は、 携帯情報端末が待ち 受け状態か ら 、 ユー ザの入力操作が加わる な ど して非待ち 受け状態に入っ た こ と、 すなわち待ち 受け状態が終了 した こ と を検出する こ と によ り 、 開始タイ ミ ングを決定する。
第 3 の判断基準は、 携帯情報端末の 中の 内部時刻が一定 の も の になっ た場合、 プレ ロ ー ド処理を行 う 。 こ の場合、 プレ ロ ー ド制御部 1 1 2 は、 前も っ て設定 した時刻データ (基準時刻) を保持 してお り 、 実際の現在時刻 と基準時刻 と を比較 し、 一致 した こ と を検出する こ と によ り 、 開始夕 イ ミ ングを決定する。 .
なお、 基準時刻は、 R O M化さ れてい る な ど して携帯情 報端末に固有の値でも よ いが、 ユーザの入力 に よ っ て数値 を変更する こ とができて も よ い。 ユーザに よ る 設定時の表 示画面の一例を図 2 1 に示す。 こ こでは、 基準時刻 と して 1 3 時 1 5 分が設定さ れてお り 、 実際の現在時刻が 1 3 時 1 5 分にな っ たタイ ミ ングで、 プレ ロ ー ド処理を開始する 第 4 の判断基準は、 携帯情報端末の電源が入っ た時 に、 プレ ロ ー ド処理を行 う 。 こ の場合、 プレ ロ ー ド 制御部 1 1 2 は、 電源が入力 さ れた こ と によ り 、 開始タイ ミ ングを決 定する。 携帯情報端末の電源入力 の検出の仕組み 自体は、 従来の携帯情報端末で用 い ら れてい る デバイ ス か ら のィ べ ン ト通知等の仕組みを用 いて実現する こ と が可能であ る。
第 5 の判断基準は、 携帯情報端末が折 り たたみ式の形状 の端末 (例えば折 り たたみ式の携帯電話) であ っ て、 ユー ザによ る携帯情報端末の折 り たたみの開 閉があ っ た時にプ レ ロー ド処理を行 う 。 こ の場合、 プレ ロー ド制御部 1 1 2 は、 携帯情報端末が閉 じた状態か ら 開 い た状態へ移行 した 、 あ る い は、 携帯情報端末が開 いた状態か ら 閉 じた状態へ 移行 した こ と を検出する こ と によ り 、 開始タ イ ミ ングを決 定する。 携帯情報端末の折 り たたみの開 閉の検出の仕組み 自体は、 従来の携帯情報端末で用 い ら れてい るデバイ スか ら のイ ベ ン ト通知等の仕組みを用 いて実現する こ とが可能 であ る。
第 6 の判断基準は、 携帯情報端末 と別の電子機器 と の間 で、 通信が発生 し た時に プ レ ロ ー ド処理 を行 う 。 こ の場合 、 プ レ ロ ー ド 制御部 1 1 2 は、 携帯情報端末 と別の電子機 器 と の間 にデータ通信が発生 した こ と を検出する こ と によ り 、 開始タ イ ミ ングを決定する 。 通信が発生 した こ と を検 出する仕組み 自体は、 従来の携帯電話で用 い ら れてい るデ バイ スか ら のイ ベ ン ト 通知等の仕組みを用 いて実現する こ とが可能であ る 。
こ こでの通信 と は、 具体的には、 音声通話の着呼、 H T T P を用 いたデータ通信、 F T P を用 いたデータ通信、 S S L を用 いたデ一夕通信、 I r D A を用 いたデータ通信、 な どが考え ら れる 。 も ち ろ ん携帯情報端末がサポー ト する その他の種類の通信であ っ て も 良い。 ま た、 通信の発生に 基づいて開始さ れる プ レ ロ ー ド処理対象のプロ グラム は、 発生 した通信の種類に関連付け ら れた も のが選択さ れて も 良い。 こ のプロ グラム の選択に関 しては後述する (図 2 3 第 7 の判断基準は、 携帯情報端末 と別の電子機器 と の着 脱があ っ た場合に プレ ロ ー ド処理を行 う 。 こ の場合、 プレ ロ ー ド制御部 1 1 2 は、 携帯情報端末に別の電子機器が付 加 (装着) さ れた、 あ る い は、 携帯情報端末に付加 (装着 ) されていた別の電子機器が外さ れた こ と を検出する こ と によ り 、 開始タ イ ミ ン グを決定する 。 外部デバイ ス の着脱 が発生 した こ と を検出する仕組み 自体は、 従来の携帯情報 端末で用 い ら れてい る外部デバイ ス か ら のイ ベ ン ト通知等 の仕組みを用 いて実現する こ とが可能であ る 。
こ こ での外部デバイ ス と は、 具体的に は、 S Dカー ド等 外部記憶デバイ ス 、 B 1 u e t o o t h 等の機能拡張ュニ ッ ト 、 U S B コ ネ ク タ 、 イ ヤホ ン、 マイ ク 、 電源コ ネ ク タ 、 充電器、 キ一ポ一 ド な どが考え ら れる 。 も ち ろ ん携帯情 報端末がサポー ト する その他の種類の外部デバイ スであ つ て も 良い。 ま た、 外部デバイ ス の着脱に基づいて開始さ れ る プレ ロ ー ド処理対象のプロ グラ ム は、 外部デバイ ス の種 類に関連付け ら れた も のが選択さ れても 良い。 こ のプロ グ ラ ム の選択に関 しては後述する (図 2 3 ) 。
第 8 の判断基準は、 携帯情報端末 に実装さ れてい る別の ア プリ ケー シ ョ ンの実行開始あ る い は実行終了 した場合に プレ ロー ド処理を行 う 。 こ の場合、 プレ ロ ー ド制御部 1 1 2 は、 携帯情報端末に実装されてい る別のア プ リ ケ一シ ョ ンの実行が開始さ れた、 あ る いは、 別の ア プリ ケー シ ョ ン の実行が終了 した こ と を検出する こ と に よ り 、 開始夕イ ミ ングを決定する 。 別の ア プ リ ケーシ ョ ンの実行が開始あ る いは終了 し た こ と を検出する仕組み 自体は、 従来の携帯情 報端末で用 い ら れてい る ソ フ ト ウ エ ア間通信の仕組みを用 いて実現する こ と が可能であ る。 こ こでの別のア プリ ケーシ ョ ン と は、 具体的には、 ブラ ゥザ、 メ 一 ラ 、 ス ケジュール帳、 メ ディ ア プレイ ヤーな ど 、 携帯情報端末に搭載さ れる ア プリ ケーシ ョ ンであれば何 で も 良い。 ま た、 こ の別のアプ リ ケー シ ョ ンは機械語 (ネ ィ ティ ブ) で記述 さ れていても 良い し、 J a v a ( T M ) な ど他の実行系 を用 いた仕組みによ っ て記述されていて も 良い。 また、 別のアプ リ ケ一シ ヨ ンの開始あ る いは終了 に 伴っ てプレ ロ ー ド処理さ れる プロ グラ ム は、 実行が開始さ れたアプ リ ケーシ ョ ンか ら連携起動さ れる 可能性があ る な ど、 こ の別の ア プ リ ケー シ ョ ンの種類に関連付け ら れた も のが選択さ れて も 良い。 こ のプロ グラ ム の選択に関 しては 後述する (図 2 3 ) 。
第 9 の判断基準は、 携帯情報端末のユーザの入力操作に 伴っ て、 一定の画面遷移が行われた時にプ レ 口 一 ド処理を 行 う 。 こ の場合、 プレ ロー ド制御部 1 1 2 は、 ュ一ザに入 力操作に基づいて、 携帯情報端末の内部状態の遷移が発生 した こ と を検出する こ と に よ り 、 開始タイ ミ ングを決定す る 。 なお、 内部状態 ごと に、 ュ一ザの入力操作可能な指示 の組み合わせが設定さ れてお り 、 特定の入力操作が行われ た際の次の処理動作が決定する 。 つ ま り 、 内部状態は、 ュ 一ザの入力操作や外部 と の通信状況な どに よ っ て順次遷移 してい く も のであ り 、 内部状態の遷移に伴っ て表示画面が 変化する も のが多い。 プレ ロー ド制御部 1 1 2 は、 内部状 態の遷移の 中で、 前も っ て設定されてい る あ る特定の遷移 が行われた場合にそれを検出する も の とする。 内部状態の 遷移の検出 自 体は、 従来の携帯情報端末で用 い られてい る ソ フ 卜 ウ ェ ア間通信の仕組みを用 いて実現する こ とが可能 であ る
図 2 2 に 内部状態の遷移の一例 を示す。 こ の例では 「 ( 1 ) メニュ 一選択状態」 「 ( 2 ) ア プ リ 選択状態」 「 ( 3 ) J a V a ア プ リ 選択状態」 と い う 3 つ の 内部状態を示 し てい る。 プ レ ロ ー ド制御部 1 1 2 は、 特定の内部状態遷移 (図 2 2 ( 2 ) か ら ( 3 ) への遷移) が発生する と 、 こ れ を検出 し、 プレ 口一ダ部 1 1 1 に処理の 開始を通知する 。 プレ ローダ部 1 1 1 は、 こ の通知 を受けて、 プロ グラム の プレ ロ— ド処理を開始する 。 また、 内部状態遷移に伴っ て プレ ロ— ド処理される プロ グラ ム は、 内部状態の遷移の種 類に 関連付け ら れた も のが選択さ れて も 良い。 こ の プロ グ ラ ム の選択 に関 しては後述する (図 2 3 ) 。
以上によ り 、 各判断基準に基づいてプ レ ロ ー ド処理の 開 始夕 ィ ミ ン グを決定する こ とが可能 と な り 、 ダウ ン 口一 ド 時のみだけでな く 、 効率的な プレ ロー ド処理を実施する こ とができ る 。
次に 、 処理の対象 とな る プロ グラム を どの よ う に選択す る のかにつ いて説明する 。
大き く は 2 つ の選択基準があ り 、 ( A ) プレ ローダ部 1 1 1 がプロ グラ ム を選択する場合 と、 ( B ) プレ ロー ド制 御部 1 1 2 か ら処理対象のプロ グラムが通知 さ れる場合 と に分け ら れる 。 ( A ) の場合、 例えば以下の各選択基準を 適用する こ とが考え ら れる。
第 1 の選択基準は、 携帯情報端末にダウ ン ロ ー ド されて い る プロ グ ラム の中か ら適当 に (ラ ンダム に) 選択する 。 こ の場合、 プレ ローダ部 1 1 1 は、 プロ グラム記憶部 3 0
1 に記録 さ れてい る プロ グラム の 中か ら適当 に選択 してプ レ ロ ー ド処理を行えば良い。
第 2 の選択基準は、 設定情報記憶部 3 0 4 に格納さ れた 設定情報 に基づいて、 携帯情報端末にダウ ン ロ ー ド さ れて い る プロ グ ラムの 中か ら 、 高速起動指定の プロ グラム と し て設定さ れてい る プロ グラ ム を選択 し 、 プレ ロ ー ド処理を 行 う 。 それ以外のプロ グラ ム に関 しては、 プレ ロー ド処理 の対象と し ない。 なお、 設定情報記憶部 3 0 4 につ いては 、 既に実施の形態 2 で説明 した。
第 3 の選択基準は、 イ ンタ プ リ ッ ト 履歴記憶部 3 0 5 に 格納された履歴情報に基づいて、 使用頻度が高 い と判断さ れる プロ グラ ム を選択 し、 プレ ロー ド処理を行 う 。 例えば 、 最 も多 い 回数起動さ れた こ と の あ る プロ グラ ム を選択す る 、 あ る い は、 一番; fe近に起動さ れた プロ グラ ム を選択す る な どで あ る 。 なお、 イ ンタ プ リ ッ ト 履歴記憶部 3 0 5 に ついては、 既に実施の形態 2 で説明 し た。
( B ) の場合、 プレ ロー ド処理が開始さ れる条件に伴つ て、 プレ ロ ー ド制御部 1 1 2 が、 処理対象プロ グラ ム を選 択する。 こ の場合、 プ レ ロ ー ド制御部 1 1 2 は、 プレ ロ ー ド処理の 開始条件 と処理対象の プロ グ ラム の対応表であ る 、 プ レ ロ — ド処理対応テーブルを保持 し、 こ の対応テ一ブ ルに基づいて、 処理対象の プロ グラム を選択決定する 。
図 2 3 に、 プレ ロ 一 ド処理対応テー ブルの一例を示す。 こ こ では、 プレ ロー ド処理 を開始する条件に、 条件番号 と い う 一意の I D番号を割当 て、 各条件 を識別 してい る 。 ま た、 図 2 3 では、 開始条件を文章で記述 して い る が、 条件 番号と の意味の対応付けが、 番号の重複無 く なさ れていれ ばよ い。 さ ら に、 プ レロー ド処理対象の プロ グラ ム の識別 子を文字列で表現 してい る が、 他の表現であ っ て も よ い。 各プレ ロー ド処理開始条件 と 関連性の高い、 すなわち 次に 実行さ れる 可能性の高い と思われる プロ グラ ム を、 予め プ レ ロ ー ド処理対応テ一ブルに記録してお く こ とで、 プレ ロ
— ド処理に よ る起動の高速化の効果を得やす く な る 。 例え ば、 本発明 を E メ ール送受信機能付き の携帯電話に適用 し た場合には、 携帯電話が E メ ールを受信 した と き に、 ユ ー ザが E メ ールの受信 に気付いて E メ ールを閲覧 し ょ う とす る こ と が想定さ れる ため、 携帯電話が E メ ールを受信 した と き に メ ー ラ の プロ グラ ム を プレ ロ ー ドする よ う に設定 し てお く こ と が有効である 。 これによ り 、 ユーザがメ ー ラ を 起動させる と き の起動時間が短縮される 。
以上 によ り 、 プレ ロー ド処理の開始タ イ ミ ングや対象プ ロ グラ ム を選択する こ とが可能 とな り 、 高速起動が必要な プロ グラ ムや使用頻度が高い プロ グラ ム を選択 して、 効率 的なプ レ ロ ー ド処理 を実施する こ とができ る 。
(実施の形態 4 )
図 2 4 は、 本発明 の実施の形態 4 にお ける プロ グラ ム実 行処理端末装置の構成を示すブロ ッ ク 図であ る。 プロ ダラ ムダウ ン ロ ー ド部 1 0 1 と 、 ロ ーダ部 1 0 2 と 、 ラ ンタ イ ムセー ビ ン グ部 1 1 0 と 、 ポス ト ローダ部 1 0 5 と、 イ ン 夕 プ リ 夕部 1 0 6 と 、 制御部 1 0 7 と、 プレ ロ ーダ部 1 1 3 と、 別ア プリ 指示通知部 1 1 4 と、 プロ グ ラム記憶部 3 0 1 と、 テ ンポ ラ リ ラ ンタイ ム実行形式記憶部 3 0 2 と、 ラ ンタイ ム実行形式記憶部 3 0 3 と、 設定情報記憶部 3 0
4 と、 ィ ン夕 プリ ッ 卜 履歴記憶部 3 0 5 とか ら構成さ れて い る。 プロ グラ ム ダウ ン ロ 一 ド部 1 0 1 と、 CIーダ部 1 0 2 と、 ラ ンタ イ ムセー ビ ング部 1 1 0 と、 ボス ト ロ一ダ部 1 0 5 と 、 ィ ン夕 プ リ 夕部 1 0 6 と、 制御部 1 0 7 と、 プ ロ グラム し 1¾ Pl^ 3 0 1 と、 テ ンポ ラ リ ラ ンタイ ム実行形式 記憶部 3 0 2 と、 ラ ンタイ ム実行形式記憶部 3 0 3 と、 設 定情報記憶部 3 0 4 と、 ィ ン夕 プ リ ッ ト履歴記憶部 3 0 5 は、 図 1 明 した も の と 同 じであ Ό では、 新規 に追加 したプレ ロ ーダ部 1 1 3 と別ァ プ リ 指示通知部 1 1 4 について説明する 。
プレロ ーダ部 1 1 3 は、 別ア プリ 指示通知部 1 1 4 か ら 通知を受信する こ と に よ り 、 プロ グラ ム記憶部 3 0 1 に記 録された プ口 グラ ム を、 テ ンポ ラ リ ラ ンタイ ム実行形式に 変換 し、 テ ンポ ラ リ ラ ンタ イ ム実行形式記憶部 3 0 2 に格 納する プレ ロ 一 ド処理を行 う 。 特に、 特定プロ グラム を指 定する識別子が通知 さ れた場合、 プレ ロー ド処理対象と し て、 通知 さ れたプ口 グラ ム を選択する 。 なお、 制御部 1 0 7 力ゝ ら プ レ ロ ー ド 開始の指示を受信する こ と によ り 、 プロ グラム をダウ ン ロ ー ド した際に、 続けてプ レ ロー ド処理を 実施する こ と も可能であ る 。
別ァプ リ 指示通知部 1 1 4 は、 携帯情報端末に実装さ れ てい る別ァ プ リ ケ一 シ ヨ ンか ら のプレ ロ ー ド 開始の指示が あ っ た こ と をプレ ロ一ダ部 1 1 3 に通知する 。
図 2 5 に、 別の ァ プ リ ケー シ ヨ ンか ら プレ ロー ド 開始が 指示さ れる場合の処理概要の一例を図示する 。
別のア プ リ ケーシ ョ ンか ら プ レ ロ ー ド 開始の指示を受け 取る仕組み 自体は、 例えば別のア プ リ ケーシ ョ ンのソース コ ー ド 中か ら 呼び出 しが可能な A P I を、 携帯情報端末中 に備え る こ とで実現する こ とができ る 。 こ の A P I が呼び 出 される こ と に よ り 、 別ア プリ 指示通知部 1 1 4 が処理を 行い、 プレ ローダ部 1 1 3 にプレ 口 一 ド処理の開始を指示 する 。 図 2 5 では、 p r e l o a d i n g— s t a r t と 示さ れてい る A P I が、 別のア プ リ ケ一シ ヨ ンか ら 呼び出 さ れ、 プレ ローダ部 1 1 3 にプレ ロ ー ド処理の開始を通知 する働き を行う 例 を示 した。
また、 プ レ口 一 ド処理さ れる プロ グラ ム は、 A P I が呼 び出 し の際 に一緒に指定する こ と も でき る。 図 2 5 では、 A P I の引数と してプロ グラム を指定する例 を示 した。 引 数 p r o g r a m _ i d は、 プロ グラ ム記憶部 3 0 1 に格 納さ れたプ ロ グラ ムの識別子を表現 してお り 、 p r e 1 o a d i n g _ s t a r t の処理でプレ ロ ーダ部 1 1 3 に対 して行われる通知は、 p r o g r a m— i d の情報も含む も の とする 。 プレ ロ ーダ部 1 1 3 は こ の p r o g r a m— i d の情報 を受け取 り 、 プレ ロ ー ド処理さ れる プロ グラ ム を選択する 。 なお、 プロ グラム を指定せずに、 プ レ ローダ 部 1 1 3 が、 次にプレ ロー ドする対象のプロ グラ ム を選択 実行する こ と も可能であ る 。
以上によ り 、 プレ ロ ー ド処理の発生の ト リ ガを機器状態 に基づいて決定する のでな く 、 実行中 のア プ リ ケーシ ョ ン の 中で 自 由 に指定する こ とが可能 とな る 。 つ ま り 、 特定の プ ロ グラ ム の プレ ロー ド処理 を呼び出すよ う なア プ リ ケー シ ヨ ンを作成する こ と によ り 、 そのア プ リ ケーシ ョ ン を実 行する携帯情報端末に、 次に実効予定な どの特定のプロ グ ラ ム に対する プ レ ロー ド処理 を行 う こ と によ り 、 特定の プ ロ グラ ム の起動時間を短縮する こ とができ る 。 産業上の利用可能性
本発明 によれば、 プロ グラ ム配信サー ビス を利用 して携 帯情報端末にダウ ン ロ ー ド し た例えば J a V a ( T M ) 等 に よ る プロ グラム を起動する 場合に、 プレ ロ ー ド処理ゃ ラ ンタイ ムセ一 ビ ン グ処理を行 う こ と に よ り 、 プロ グラ ム の 起動時間 の長さ を短縮する こ とができ る 。

Claims

請求の範囲
1 . 受信 した プロ グラ ム を解釈実行処理する端末装置であ つ て、
前記受信 し た プロ グラ ム を記憶する プロ グラム記憶部 と 前記プロ グラ ム記憶部に記憶さ れて い る プロ グラム を ラ ンタイ ム実行形式に変換する ロ ー ダ部 と、
前記 ローダ部が変換 した ラ ンタ イ ム実行形式も し く は前 記プロ グラ ム記憶部に記憶さ れて いる プロ グラム に基づい て生成されたテ ンポ ラ リ ラ ンタイ ム実行形式を記憶する テ ンポ ラ リ ラ ンタイ ム実行形式記憶部と 、
前記テ ンポ ラ リ ラ ンタ イ ム実行形式記憶部に記憶さ れて いる テ ンポ ラ リ ラ ンタ イ ム実行形式を ラ ンタ イ ム実行形式 に変換する ボス ト ロ ーダ部 と、
ラ ンタイ ム実行形式を解釈実行する イ ンタ プ リ タ部 と 、 プロ グラ ム の起動が指示さ れた際に、 前記テ ンポラ リ ラ ン ライ ム実行形式記憶部にテ ンポ ラ リ ラ ンタイ ム実行形式 が存在する か否か を判断 し、 存在 しない場合には前記 ロ ー ダ部に ラ ンタ イ ム実行形式への変換を要求 し、 存在する 場 合には前記ボス ト ロ一ダ部に ラ ンタイ ム実行形式への変換 を要求する制御部 と を備える こ と を特徴とする プロ グラ ム 実行処理端末装置。
2 . 前記 ロ ーダ部が変換した ラ ンタイ ム実行形式をテ ンポ ラ リ ラ ンタイ ム実行形式に変換する ラ ンタイ ムセ一 ビ ン グ 部を さ ら に備え、 前記テ ンポ ラ リ ラ ンタイ ム実行形式記憶部は、 前記ラ ン タイ ムセー ビ ング部が変換し たテ ンポ ラ リ ラ ンタイ ム実行 形式を記憶する こ と を特徴とする 、 請求項 1 記載の プロ グ ラ ム実行処理端末装置。
3 . 前記プロ グラム記憶部に記憶されてい る プロ グラム を テ ンポラ リ ラ ンタイ ム実行形式に変換する プ レ ロ ー ド処理 を行 う プ レ ロ ーダ部を さ ら に備え、
前記テ ンポ ラ リ ラ ンタ イ ム実行形式記憶部は、 前記プ レ ロ ーダ部が変換 したテ ンポ ラ リ ラ ンタイ ム実行形式を記憶 する こ と を特徴とする 、 請求項 1 記載の プロ グラム実行処 理端末装置。
4 . 前記 ローダ部によ っ て変換さ れた ラ ンタイ ム実行形式 を記憶する ラ ンタイ ム実行形式記憶部を さ ら に備え、
ラ ンタ イ ム実行形式は、 前記 ラ ンタ イ ム実行形式記憶部 にお ける 、 当該ラ ンタイ ム実行形式に含まれる所定データ の格納ア ド レス を示すポイ ンタ を含み、
前記テ ンポ ラ リ ラ ンタイ ム実行形式は、 前記ポイ ンタ に 相当する情報を間接参照表現 によ り 示 した参照値デ一夕 を 含む こ と を特徴 とする 、 請求項 1 記載のプロ グラム実行処 理端末装置。
5 . 前記テ ンポラ リ ラ ンタイ ム実行形式は、 当該テ ンポ ラ リ ラ ンタ イ ム実行形式がラ ンタイ ム実行形式に変換された と き のサイ ズを示すデータ を含む こ と を特徴 とする 、 請求 項 1 記載の プロ グラム実行処理端末装置。
6 . 前記プロ グラム記憶部に記憶されてい る プロ グラム を テ ンポラ リ ラ ンタイ ム実行形式に変換する プレ ローダ部 を 更に備え、
前記テ ンポ ラ リ ラ ンタ イ ム実行形式記憶部は、 前記 ラ ン タイ ムセー ビ ング部 と前記プレ ロ ーダ部が変換 したテ ンポ ラ リ ラ ンタ イ ム実行形式 を記憶する こ と を特徴 とする 、 請 求項 2 記載の プロ グラム実行処理端末装置。
7 . 前記 ロ ーダ部がプロ グラ ム を ラ ンタ イ ム実行形式に変 換する処理中 と 、 前記 ラ ンタ イ ムセ一 ビ ング部がラ ンタイ ム実行形式をテンポ ラ リ ラ ンタ イ ム実行形式に変換する処 理中 と を、 同一の表示画面出力 にする こ と を特徴 とする 、 請求項 2 記載の プロ グラ ム実行処理端末装置。
8 . 前記プロ グラ ム記憶部に記憶さ れてい る プロ グラ ム に 対する高速起動設定情報 を記憶する設定情報記憶部 を更に 備え、
前記 ラ ンタ イ ムセー ビ ング部は、 前記設定情報記憶部に 記憶 してい る 高速起動設定情報に基づいて、 テ ンポ ラ リ ラ ンタ イ ム実行形式に変換する プロ グラム を選択決定する こ と を特徴 とする 、 請求項 2 記載の プロ グラム実行処理端末 装置。
9 . 前記プロ グラム記憶部に記録されてい る プロ グラ ム を 解釈実行 し た履歴情報を記憶する イ ンタ プ リ ッ ト 履歴記憶 部を更に備え、
前記 ラ ンタ イ ムセー ビ ング部は、 前記イ ンタ ブ リ ッ ト 履 歴記憶部に記憶 してい る 履歴情報に基づいて、 テ ンポ ラ リ ラ ンタ イ ム実行形式に変換する プロ グラム を選択決定する こ と を特徴 と する 、 請求項 2 記載のプロ グラ ム実行処理端 末装置。
1 0 . プロ グラム を受信する処理 と、 前記プ レ ローダ部が プロ グラ ム をテ ンポ ラ リ ラ ンタイ ム実行形式 に変換 してテ ンポラ リ ラ ンタイ ム実行形式を生成する処理 と を、 連続 し て行 う こ と を特徴とする 、 請求項 3 記載のプロ グラ ム実行 処理端末装置。
1 1 . プロ グラム を受信する処理中 と、 前記プ レ ロ ーダ部 がプロ グ ラ ム をテンポラ リ ラ ンタイ ム実行形式に変換 して テ ンポ ラ リ ラ ンタ イ ム実行形式を生成する処理中 と を、 同 一の表示画面出力 にする こ と を特徴とする 、 請求項 1 0 記 載のプロ グラ ム実行処理端末装置。
1 2 . 前記プロ グラ ム記憶部に記憶さ れてい る プロ グラ ム に対する 高速起動設定情報を記憶する設定情報記憶部を更 に備え、
前記プ レ ロ ーダ部は、 前記設定情報記憶部 に記憶 して い る高速起動設定情報に基づいて、 テ ンポ ラ リ ラ ンタ イ ム実 行形式に変換する プロ グラ ム を選択決定する こ と を特徴 と する、 請求項 3 記載のプロ グラ ム実行処理端末装置。
1 3 . 前記プロ グラ ム記憶部に記録さ れてい る プロ グラ ム を解釈実行 した履歴情報を記録するイ ンタ プ リ ッ ト 履歴記 憶部を更に備え、
前記プレ ロ ーグ部は、 前記イ ン夕 ブ リ ッ ト 履歴記憶部に 記憶 してい る履歴情報に基づいて、 テ ンポ ラ リ ラ ンタ イ ム 実行形式 に変換する プロ グラ ム を選択決定する こ と を特徴 とする 、 請求項 3 記載の プロ グラム実行処理端末装置。
1 4 . 前記情報端末装置の機器状態に基づいて、 テ ンポ ラ リ ラ ンタ イ ム実行形式への変換を行 う 開始タ イ ミ ングを決 定 し、 前記プレ ローダ部に処理の開始を要求する プ レ ロ ー ド 制御部を更に備え、
前記プレ ロ ーダ部は、 前記プレ口一 ド 制御部か ら 開始が 要求さ れた際に、 プロ グラ ム をテ ンポ ラ リ ラ ンタイ ム実行 形式に変換する処理を行 う こ と を特徴 とする請求項 3 記載 の プロ グラ ム実行処理端末装置。
1 5 . 前記機器状態は、 前記情報端末装置に対 してユーザ の操作が加え ら れていない待ち 受け状態の連続経過時間で あ っ て、
前記プレ ロ ー ド制御部は、 前記待ち受け状態の連続経過 時間 と、 前 も っ て設定されてい る 開始時間長 と を比較 した 結果に基づいて、 開始タ イ ミ ン グを決定する こ と を特徴 と する 、 請求項 1 4 記載のプロ グラ ム実行処理端末装置。
1 6 . 前記機器状態は、 前記情報端末装置が内部で管理 し てい る現在時刻であ っ て、
前記プレ ロ ー ド制御部は、 前記現在時刻 と 、 前も っ て設 定さ れてい る 開始時刻 と を比較 した結果に基づいて、 開始 タ イ ミ ングを決定する こ と を特徴 とする 、 請求項 1 4 記載 の プロ グラ ム実行処理端末装置。
1 7 . 前記機器状態は、 折 り たたみ式の情報端末装置にお ける折 り たたみ端末閉開状態であ っ て、
前記プレ ロ ー ド制御部は、 前記折 り たたみ端末閉 開状態 の変化に基づいて、 開始タ イ ミ ングを決定する こ と を特徴 とする 、 請求項 1 4 記載の プロ グラム実行処理端末装置。
1 8 . 前記機器状態は、 前記情報端末装置 に対する ユーザ の入力操作 に応 じて遷移する端末内部遷移状態であ っ て、 前記プ レ ロー ド制御部は、 前記端末内部遷移状態に基づ いて、 開始タイ ミ ングを決定する こ と を特徴とする 、 請求 項 1 4 記載のプロ グラ ム実行処理端末装置。
1 9 . 前記プレ ロ ーダ部がプロ グラ ム をテ ンポ ラ リ ラ ン夕 ィ ム実行形式に変換する処理を 開始する条件 と 、 変換の対 象 となる プロ グラ ム と の対応を示 し た対応情報を記録する プレ 口一 ド処理対応記憶部を備え、
前記プ レ ロー ド制御部は、 前記プ レ ロ ー ド処理対応記憶 部に記憶 してい る対応情報に基づいて、 開始タ イ ミ ン グを 決定 とテ ンポラ リ ラ ンタイ ム実行形式に変換する対象 とな る プロ グラ ム を選択決定する こ と を特徴 とする 、 請求項 1 4 記載の プロ グラ ム実行処理端末装置。
2 0 . 前記 プレ ロ ー ド処理対応記憶部に記憶さ れる対応情 報において、 前記プレ ローダ部がプロ グラム をテ ンポ ラ リ ラ ンタイ ム実行形式に変換する処理を 開始する条件 と 、 当 該条件を満た した後にユーザに よ っ て実行される こ と が予 想される プロ グラ ム とが対応付け ら れてい る こ と を特徴 と する 、 請求項 1 9 記載のプロ グラム実行処理端末装置。
2 1 . 前記情報端末装置は、 プロ グラ ム を受信する こ と な し に動作可能なア プリ ケー シ ョ ンを保持 してお り 、
前記ア プ リ ケー シ ョ ンか ら の指示通知 を受信 し、 受信 し た前記ア プ リ ケーシ ョ ンか ら の指示通知 に基づいて、 テ ン ポ ラ リ ラ ンタイ ム実行形式への変換を行 う 開始タイ ミ ング を決定 し 、 前記プ レ ロ ーダ部に処理の開始を要求する プレ 口一 ド指示通知部を更に備え、
前記プ レ ローダ部は、 前記プレ ロ ー ド指示通知部か ら 開 始が要求された際に、 プロ グラム をテ ンポラ リ ラ ンタ イ ム 実行形式 に変換する処理を行 う こ と を特徴 とする 、 請求項
3 記載の プロ グラ ム実行処理端末装置。
2 2 . 前記ア プリ ケー シ ョ ンか ら の指示通知 には、 前記プ ロ グラム記憶部に記憶されてい る プロ グラムか ら特定の プ ロ グラム を判別する ための プロ グラム識別子を含み、
前記プ レ ロ ー ド指示通知部は、 受信 した指示通知 に含ま れる プロ グラ ム識別子を指定 して、 前記プレ 口一ダ部に処 理の開始 を要求 し、
前記プ レ ロ ーダ部は、 前記プレ ロー ド指示通知部か ら の 開始の要求に含まれる プロ グラ ム識別子に基づいて、 テ ン ポ ラ リ ラ ンタイ ム実行形式に変換する対象と なる プロ ダラ ム を決定する こ と を特徴とする 、 請求項 2 1 記載のプロ グ ラム実行処理端末装置。
2 3 . 受信 した プロ グラム を解釈実行処理する方法であ つ て、
前記受信 した プロ グラム を プロ グラ ム記憶部に記憶する プロ グラ ム記憶ステ ッ プと 、
前記プロ グラム記憶部に記憶さ れてい る プロ グラム を ラ ンタイ ム実行形式に変換する ロ ー ドステ ッ プ と 、
前記 ロ ー ド ステ ッ プで変換 した ラ ンタイ ム実行形式 も し く は前記 プロ グラ ム記憶部に記憶されてい る プロ グラ ム を テ ンポラ リ ラ ンタイ ム実行形式に変換する変換ステ ッ プ と 前記変換ス テ ッ プで変換 し たテ ンポ ラ リ ラ ンタイ ム実行 形式をテ ンポ ラ リ ラ ンタイ ム実行形式記憶部 に記憶する テ ンポ ラ リ ラ ンタ イ ム実行形式記憶ステ ッ プと、 プロ グ ラ ム の起動が指示さ れた際に、 前記テ ンポ ラ リ ラ ン ラ イ ム実行形式記憶部にテンポ ラ リ ラ ンタ イ ム実行形式 が存在するか否かを判断する判断ステ ッ プと、
前記判断ステ ッ プの判断の結果、 前記テ ンポ ラ リ ラ ン ラ ィ ム実行形式記憶部にテ ンポラ リ ラ ンタイ ム実行形式が存 在 し た場合に、 前記テ ンポ ラ リ ラ ンタイ ム実行形式記憶部 に記憶さ れてい るテンポ ラ リ ラ ンタイ ム実行形式を ラ ンタ ィ ム実行形式に変換する ポス ト ロー ド ステ ッ プと、
前記ボス ト ロ ー ドステ ッ プで変換 した ラ ンタ イ ム実行形 式を解釈実行する解釈ス テ ッ プと を備える こ と を特徴とす る 、 プロ グラ ム実行処理方法。
2 4 . 前記 口 一 ドステ ッ プで変換 した ラ ンタイ ム実行形式 はラ ンタ イ ム実行形式記憶部に記憶さ れ、
ラ ンタ イ ム実行形式は、 前記 ラ ンタ イ ム実行形式記憶部 にお ける 、 当 該ラ ンタイ ム実行形式に含まれる所定データ の格納ア ド レス を示すポイ ンタ を含み、
前記テ ンポ ラ リ ラ ンタ イ ム実行形式は、 前記ポイ ンタ に 相当する 情報 を間接参照表現に よ り 示 した参照値データ を 含む こ と を特徴 とする 、 請求項 2 3 記載の プロ グラ ム実行 処理方法。
2 5 . 前記テ ンポ ラ リ ラ ンタイ ム実行形式は、 当該テンポ ラ リ ラ ンタ イ ム実行形式がラ ンタイ ム実行形式に変換さ れ た と きのサイ ズを示すデータ を含む こ と を特徴とする、 請 求項 2 3 記載の プロ グラ ム実行処理方法。
2 6 . 受信 した プロ グラ ム を解釈実行処理する ため のプロ グラムであ っ て、 コ ン ピ ュータ に、
前記受信 した プロ グラ ム をプロ グラ ム記憶部に記憶する プロ グラム記憶ステ ッ プ と、
前記プロ グラ ム記憶部 に記憶さ れている プロ グラム を ラ ンタ イ ム実行形式に変換する 口 一 ド ステッ プと、
前記口一 ド ステ ッ プで変換 した ラ ンタイ ム実行形式 も し く は前記プ ロ グラ ム記憶部に記憶さ れてい る プロ グラ ム を テンポ ラ リ ラ ンタ イ ム実行形式に変換する変換ステ ッ プと 前記変換ステ ッ プで変換 したテ ンポラ リ ラ ンタイ ム実行 形式をテンポ ラ リ ラ ンタ イ ム実行形式記憶部に記憶する テ ンポ ラ リ ラ ンタ イ ム実行形式記憶ス テ ッ プと 、
プロ グラ ム の起動が指示さ れた際に、 前記テ ンポ ラ リ ラ ン ライ ム実行形式記憶部 にテ ンポ ラ リ ラ ンタ イ ム実行形式 が存在する か否か を判断する判断ス テ ッ プと 、
前記判断ステ ッ プの判断の結果、 前記テ ンポ ラ リ ラ ン ラ ィ ム実行形式記憶部にテ ンポ ラ リ ラ ンタイ ム実行形式が存 在 した場合 に、 前記テ ンポ ラ リ ラ ンタイ ム実行形式記憶部 に記憶されてい る テンポ ラ リ ラ ンタイ ム実行形式を ラ ン夕 ィ ム実行形式に変換する ボス ト ロ ー ド ステ ッ プと、
前記ボス 卜 ロ ー ドステ ッ プで変換 した ラ ンタ イ ム実行形 式を解釈実行する解釈ス テ ッ プと を実行させる ための プロ グラ ム。
2 7 . 前記 ロ ー ド ステ ッ プで変換 した ラ ンタイ ム実行形式 はラ ンタイ ム実行形式記憶部に記憶され、
ラ ンタイ ム実行形式は、 前記 ラ ンタイ ム実行形式記憶部 における 、 当該ラ ンタ イ ム実行形式に含ま れる所定データ の格納ァ ド レス を示すボイ ンタ を含み、
前記テンポ ラ リ ラ ンタイ ム実行形式は、 前記ポイ ンタ に 相当する情報を間接参照表現によ り 示 した参照値データ を 含む こ と を特徴 とする 、 請求項 2 6 記載の プロ グラム。
2 8 . 前記テ ンポ ラ リ ラ ンタイ ム実行形式は、 当該テ ンポ ラ リ ラ ンタ イ ム実行形式がラ ンタイ ム実行形式に変換さ れ た と き のサイ ズを示すデータ を含む こ と を特徴 とする 、 請 求項 2 6 記載の プロ グラ ム。
PCT/JP2003/006980 2002-06-18 2003-06-03 プログラム実行処理端末装置、プログラム実行処理方法及びプログラム WO2003107186A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
AU2003241885A AU2003241885A1 (en) 2002-06-18 2003-06-03 Program execution terminal device, program execution method, and program
EP03733256A EP1515232A4 (en) 2002-06-18 2003-06-03 PROGRAM EXECUTION TERMINAL DEVICE, PROGRAM EXECUTION METHOD, AND PROGRAM
JP2004513936A JP4376181B2 (ja) 2002-06-18 2003-06-03 プログラム実行処理端末装置
US10/496,968 US7506323B2 (en) 2002-06-18 2003-06-03 Program execution processing terminal device, program execution processing method, and program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2002-176855 2002-06-18
JP2002176855 2002-06-18

Publications (1)

Publication Number Publication Date
WO2003107186A1 true WO2003107186A1 (ja) 2003-12-24

Family

ID=29728124

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2003/006980 WO2003107186A1 (ja) 2002-06-18 2003-06-03 プログラム実行処理端末装置、プログラム実行処理方法及びプログラム

Country Status (6)

Country Link
US (1) US7506323B2 (ja)
EP (1) EP1515232A4 (ja)
JP (1) JP4376181B2 (ja)
CN (1) CN1310148C (ja)
AU (1) AU2003241885A1 (ja)
WO (1) WO2003107186A1 (ja)

Families Citing this family (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100697416B1 (ko) * 2003-09-30 2007-03-20 교세라 가부시키가이샤 모바일 통신 단말기, 정보 제공 시스템 및 프로그램을기록한 컴퓨터 판독가능한 기록 매체
US7539975B2 (en) * 2004-06-30 2009-05-26 International Business Machines Corporation Method, system and product for determining standard Java objects
US7647581B2 (en) * 2004-06-30 2010-01-12 International Business Machines Corporation Evaluating java objects across different virtual machine vendors
US7493596B2 (en) * 2004-06-30 2009-02-17 International Business Machines Corporation Method, system and program product for determining java software code plagiarism and infringement
US9727604B2 (en) * 2006-03-10 2017-08-08 International Business Machines Corporation Generating code for an integrated data system
US9361137B2 (en) 2006-03-10 2016-06-07 International Business Machines Corporation Managing application parameters based on parameter types
US8160999B2 (en) * 2006-12-13 2012-04-17 International Business Machines Corporation Method and apparatus for using set based structured query language (SQL) to implement extract, transform, and load (ETL) splitter operation
US8219518B2 (en) 2007-01-09 2012-07-10 International Business Machines Corporation Method and apparatus for modelling data exchange in a data flow of an extract, transform, and load (ETL) process
US9298721B2 (en) * 2007-02-28 2016-03-29 Qualcomm Incorporated Prioritized search results based on monitored data
US8745507B2 (en) * 2007-11-30 2014-06-03 At&T Intellectual Property I, L.P. Preloader employing enhanced messages
CN101520733B (zh) * 2008-02-27 2014-04-16 国际商业机器公司 装载类的方法和装置及重组类存档文件方法
US20100011357A1 (en) * 2008-07-13 2010-01-14 International Business Machines Corporation System and method for garbage collection in a virtual machine
US8875115B2 (en) * 2008-11-29 2014-10-28 International Business Machines Corporation Type merging technique to reduce class loading during Java verification
US8458676B2 (en) * 2009-06-30 2013-06-04 International Business Machines Corporation Executing platform-independent code on multi-core heterogeneous processors
US9069543B2 (en) 2011-12-22 2015-06-30 International Business Machines Corporation Predictive operator graph element processing
US10275293B2 (en) * 2012-12-17 2019-04-30 Blackberry Limited System and methods for launching an application on an electronic device
US11095743B2 (en) * 2014-07-16 2021-08-17 Tensera Networks Ltd. Optimized content-delivery network (CDN) for the wireless last mile
US11483415B2 (en) 2014-07-16 2022-10-25 Tensera Networks Ltd. Background pre-rendering of user applications
US11516309B2 (en) * 2014-07-16 2022-11-29 Tensera Networks Ltd. Transparent pre-loading of user applications
KR102401772B1 (ko) * 2015-10-02 2022-05-25 삼성전자주식회사 전자 장치에서 어플리케이션 실행 장치 및 방법
WO2019171237A1 (en) 2018-03-05 2019-09-12 Tensera Networks Ltd. Application preloading in the presence of user actions
US11922187B2 (en) 2018-03-05 2024-03-05 Tensera Networks Ltd. Robust application preloading with accurate user experience
EP4004767A4 (en) 2019-07-30 2023-03-08 Tensera Networks Ltd. PRE-RENDERING APPLICATION USER INTERFACES INTO USER DEVICES
CN116670646A (zh) 2020-12-03 2023-08-29 腾赛拉网络有限公司 预加载具有现有任务的应用

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07191853A (ja) * 1993-12-27 1995-07-28 Nec Corp メモリファイル化処理システム
JPH07271603A (ja) * 1994-03-31 1995-10-20 Mitsubishi Electric Corp オーバレイプログラムロード方式
JPH10506743A (ja) * 1996-02-21 1998-06-30 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン コンピュータ・システムのユーザ要求に対する応答時間を改善する方法およびコンピュータ・システム
JPH11212893A (ja) * 1997-10-08 1999-08-06 Sony Corp 電子機器におけるプログラム起動装置、プログラム起動方法、媒体および電子機器
JPH11232115A (ja) * 1997-11-19 1999-08-27 Internatl Business Mach Corp <Ibm> ソフトウェア・モジュール転送方法、データ処理ネットワークおよびシステム
JP2001273151A (ja) * 2000-01-21 2001-10-05 Fujitsu Ltd プログラム実行装置、プログラム実行方法、記録媒体、及び制御プログラム
JP2002508560A (ja) * 1997-12-16 2002-03-19 マイクロソフト コーポレイション マルチプル・クラスファイルのランタイムイメージへの結合

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP3727677B2 (ja) * 1994-09-20 2005-12-14 石塚硝子株式会社 ガラス製品のプレス成形装置
JP3586943B2 (ja) 1995-10-20 2004-11-10 富士通株式会社 プログラムロード装置と方法
US5966702A (en) 1997-10-31 1999-10-12 Sun Microsystems, Inc. Method and apparatus for pre-processing and packaging class files
US6513155B1 (en) * 1997-12-12 2003-01-28 International Business Machines Corporation Method and system for merging event-based data and sampled data into postprocessed trace output
DE69911104T2 (de) 1998-03-24 2004-07-08 Sun Microsystems, Inc., Palo Alto Statische Bindung von dynamisch abgesendeten Anrufen in Anwesenheit von dynamischer Verknüpfung und Ladung
GB9825102D0 (en) * 1998-11-16 1999-01-13 Insignia Solutions Plc Computer system
CA2255042C (en) * 1998-11-30 2004-04-13 Leonard W. Theivendra Class loader
GB0013132D0 (en) * 2000-05-31 2000-07-19 Ibm Virtual machine with reiitialisation

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07191853A (ja) * 1993-12-27 1995-07-28 Nec Corp メモリファイル化処理システム
JPH07271603A (ja) * 1994-03-31 1995-10-20 Mitsubishi Electric Corp オーバレイプログラムロード方式
JPH10506743A (ja) * 1996-02-21 1998-06-30 インターナシヨナル・ビジネス・マシーンズ・コーポレーシヨン コンピュータ・システムのユーザ要求に対する応答時間を改善する方法およびコンピュータ・システム
JPH11212893A (ja) * 1997-10-08 1999-08-06 Sony Corp 電子機器におけるプログラム起動装置、プログラム起動方法、媒体および電子機器
JPH11232115A (ja) * 1997-11-19 1999-08-27 Internatl Business Mach Corp <Ibm> ソフトウェア・モジュール転送方法、データ処理ネットワークおよびシステム
JP2002508560A (ja) * 1997-12-16 2002-03-19 マイクロソフト コーポレイション マルチプル・クラスファイルのランタイムイメージへの結合
JP2001273151A (ja) * 2000-01-21 2001-10-05 Fujitsu Ltd プログラム実行装置、プログラム実行方法、記録媒体、及び制御プログラム

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP1515232A4 *

Also Published As

Publication number Publication date
US20050066283A1 (en) 2005-03-24
EP1515232A4 (en) 2007-09-05
JPWO2003107186A1 (ja) 2005-10-20
US7506323B2 (en) 2009-03-17
EP1515232A1 (en) 2005-03-16
AU2003241885A1 (en) 2003-12-31
CN1310148C (zh) 2007-04-11
JP4376181B2 (ja) 2009-12-02
CN1613061A (zh) 2005-05-04

Similar Documents

Publication Publication Date Title
WO2003107186A1 (ja) プログラム実行処理端末装置、プログラム実行処理方法及びプログラム
TWI511125B (zh) 語音操控方法、行動終端裝置及語音操控系統
US7035806B2 (en) Communication apparatus, communication method and program storage medium
JP5021180B2 (ja) 汎用usbドライバ
US20030056029A1 (en) Method and apparatus for customizing Java API implementations
WO2017193885A1 (zh) 一种应用启动方法及装置
US20070239779A1 (en) Analysis of media content via extensible object
EP1118931A3 (en) Method of controlling portable personal device having facilities of storing and playing digital contents by computer and portable personal device operation method therefor
US20070266231A1 (en) Portable Electronic Device and Method for Loading Resource Data of the Portable Electronic Device
KR101015149B1 (ko) 말하는 전자책
JP2003223329A (ja) 移動通信端末実行用プログラムファイル及びプログラムファイル実行方法並びに移動通信携帯端末
US7162425B2 (en) Speech-related event notification system
US20070239780A1 (en) Simultaneous capture and analysis of media content
US20080175564A1 (en) System and method for presenting supplementary program data utilizing pre-processing scheme
US6876969B2 (en) Document read-out apparatus and method and storage medium
JP2009211187A (ja) 情報処理装置
JP2002351652A (ja) 音声認識操作支援システム、音声認識操作支援方法、および、音声認識操作支援プログラム
RU2352977C2 (ru) Система для управления ресурсом камеры в портативном устройстве
JP2011505623A (ja) メモリ使用量を改善する方法、装置、およびコンピュータプログラム
JP2003330736A (ja) 不正リソース利用防止システム及びその方法並びにプログラム
JP2001216131A (ja) 情報処理装置および方法、並びにプログラム格納媒体
JP2003271406A (ja) データ処理装置およびデータ処理方法ならびにそのプログラム
US7970839B2 (en) Automatic download of images from online storage
JP2008052698A (ja) 言語フォーマット認識方法および装置
CN101111029A (zh) 获取运行数据的方法和装置

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

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

AL Designated countries for regional patents

Kind code of ref document: A1

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

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

Ref document number: 2004513936

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2003733256

Country of ref document: EP

WWE Wipo information: entry into national phase

Ref document number: 10496968

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 20038019493

Country of ref document: CN

WWP Wipo information: published in national office

Ref document number: 2003733256

Country of ref document: EP