WO2015045108A1 - Client/server program generation device and client/server program generation program - Google Patents

Client/server program generation device and client/server program generation program Download PDF

Info

Publication number
WO2015045108A1
WO2015045108A1 PCT/JP2013/076308 JP2013076308W WO2015045108A1 WO 2015045108 A1 WO2015045108 A1 WO 2015045108A1 JP 2013076308 W JP2013076308 W JP 2013076308W WO 2015045108 A1 WO2015045108 A1 WO 2015045108A1
Authority
WO
WIPO (PCT)
Prior art keywords
program
client
server
user interface
code
Prior art date
Application number
PCT/JP2013/076308
Other languages
French (fr)
Japanese (ja)
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 PCT/JP2013/076308 priority Critical patent/WO2015045108A1/en
Priority to TW102139486A priority patent/TW201512984A/en
Publication of WO2015045108A1 publication Critical patent/WO2015045108A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code

Definitions

  • the present invention relates to a technique for generating a client server program using a stand-alone application program.
  • the cloud computing service includes a computer resource lending service or an application use service.
  • the computer resource lending service is a service in which a service provider provides a data center composed of a cluster of computers at an appropriate place and lends the computer resource itself of the data center.
  • the application use service is a service that can use a data center application.
  • the cloud computing service provides the user with convenience that cannot be enjoyed in the conventional form having an information system for each office.
  • GUI Graphic User Interface
  • Patent Document 1 discloses a method of analyzing a source code of an application that operates independently and generating a client server type program by dividing the source code into a client program part and a server program part.
  • the test performed on the original application that operates alone is invalidated, and it is necessary to further test the client server type program.
  • the object of the present invention is to be able to generate a server program using a stand-alone application program.
  • the client server program generation device of the present invention An application that analyzes a source program file of the data processing program of an application program including a user interface program and a data processing program, and identifies an external function called from the user interface program among a plurality of functions included in the data processing program A program analysis unit;
  • the server program comprising the server communication program and the application program, the source program file of the server communication program receives an execution request message for requesting execution of the external function, and is included in the application program of the server program A server communication program editing unit for adding a call code for calling an external function.
  • a server program can be generated using a stand-alone application program.
  • FIG. 3 is a relationship diagram among an application program 100, a server program 110, and a client program 120 according to Embodiment 1.
  • FIG. 2 is a functional configuration diagram of a client server program generation device 200 according to Embodiment 1.
  • FIG. 3 is a flowchart of a server program generation method according to the first embodiment. It is a figure which shows an example of the application file 300 in Embodiment 1.
  • FIG. 6 is a diagram illustrating an example of a server communication interface file 400 according to Embodiment 1.
  • FIG. 6 is a diagram illustrating an example of a server communication interface file 400 according to Embodiment 1.
  • FIG. 3 is a diagram illustrating an example of a hardware configuration of a client server program generation device 200 according to Embodiment 1.
  • 10 is a functional configuration diagram of a client server program generation device 200 according to Embodiment 2.
  • 10 is a flowchart of a client server program generation method according to the second embodiment.
  • 10 is a diagram illustrating an example of a client communication interface file 500 according to Embodiment 2.
  • FIG. 10 is a diagram illustrating an example of a client communication interface file 500 according to Embodiment 2.
  • FIG. 10 is a functional configuration diagram of a client server program generation device 200 according to Embodiment 3.
  • 10 is a flowchart of a client server program generation method according to the third embodiment.
  • FIG. 20 is a diagram showing an example of an API list 291 in the third embodiment.
  • 15 is a flowchart of communication interface editing processing (S360) in the third embodiment.
  • FIG. 10 is a configuration diagram of a client server system 600 in a fifth embodiment.
  • FIG. 20 is a relationship diagram among an application program 100, a server program 110, and a client program 120 in a sixth embodiment.
  • FIG. 38 is a diagram illustrating an example of message data conversion in the sixth embodiment.
  • FIG. 20 is a diagram illustrating an example of a screen of a WEB browser 617 in the sixth embodiment.
  • FIG. 20 is a diagram illustrating an example of a computer system 620 according to Embodiment 7.
  • FIG. 20 is a diagram illustrating an example of a client server system 630 according to the eighth embodiment.
  • FIG. 20 is a diagram illustrating an example of a computer system 640 according to a ninth embodiment.
  • Embodiment 1 FIG. A mode in which a server program is generated using a stand-alone application program will be described.
  • FIG. 1 is a relationship diagram among the application program 100, the server program 110, and the client program 120 in the first embodiment. A relationship among the application program 100, the server program 110, and the client program 120 in the first embodiment will be described with reference to FIG.
  • the application program 100 is a stand-alone program generated on the assumption that it is executed by one information processing apparatus. That is, the application program 100 is a program executed by a stand-alone information processing apparatus that operates independently without depending on other computers.
  • the application program 100 includes a GUI (Graphical User Interface) operated by a user.
  • GUI 101 a program for processing the GUI
  • programs other than the GUI 101 are called data processing programs.
  • the server program 110 is a program executed by the server device.
  • the server program 110 includes an application program 100 and a server communication interface 111.
  • the library of the GUI 101 is invalidated so that the GUI 101 included in the application program 100 does not function.
  • a server communication interface 111 (an example of a server communication program) is a program that communicates with a client device via a network 199.
  • the client program 120 is a program executed by the client device.
  • the client program 120 includes a GUI 101 (or an equivalent program) and a client communication interface 121.
  • the client communication interface 121 (an example of a client communication program) is a program that communicates with the server device via the network 199.
  • the client communication interface 121 calls the server program 110 by RPC (Remote Procedure Call).
  • RPC Remote Procedure Call
  • FIG. 2 is a functional configuration diagram of the client server program generation device 200 according to the first embodiment. A functional configuration of the client server program generation device 200 according to the first embodiment will be described with reference to FIG.
  • the client server program generation device 200 is a computer that generates the server program 110 using the source program file of the application program 100.
  • the client server program generation device 200 includes an application program analysis unit 210, a server communication interface generation unit 220, a client server program generation unit 280, and a device storage unit 290.
  • the device storage unit 290 stores data used, generated or input / output by the client server program generation device 200.
  • the device storage unit 290 stores the application file 300, the server communication interface file 400, and the server program 110.
  • the application file 300 is a source program file for each of a plurality of programs (including a data processing program and the GUI 101) included in the application program 100.
  • the server communication interface file 400 is a source program file for the server communication interface 111.
  • the server communication interface file 400 includes source code necessary for communication with the client communication interface 121.
  • the source program file is a file including a program source code (source program).
  • the application program analysis unit 210 analyzes each application file 300 of a plurality of programs included in the application program 100 and identifies a function called from another program (for example, the GUI 101).
  • a function corresponds to a method in an object-oriented program.
  • a function (or method) called from another program is referred to as an external function.
  • the server communication interface generation unit 220 receives source code (hereinafter referred to as an external function) included in the application program 100 of the server program 110 when an execution request message requesting execution of an external function is received. Are added to the server communication interface file 400.
  • the client server program generation unit 280 generates the server program 110 by compiling and linking the server communication interface file 400 and each application file 300.
  • FIG. 3 is a flowchart of the server program generation method according to the first embodiment. A server program generation method according to Embodiment 1 will be described with reference to FIG.
  • the application program analysis unit 210 selects one unselected application file 300. After S110, the process proceeds to S120.
  • the application program analysis unit 210 analyzes the application file 300 (including the header file used by the application file 300) selected in S110. For example, the application program analysis unit 210 performs lexical analysis and syntax analysis on the application file 300. After S120, the process proceeds to S130.
  • the application program analysis unit 210 determines whether or not the application file 300 includes an external function based on the analysis result obtained in S120. For example, a function (or method) having an “extern” declaration is an external function. If the application file 300 includes an external function (YES), the process proceeds to S140. If the application file 300 does not include an external function (NO), the process proceeds to S150.
  • FIG. 4 is a diagram illustrating an example of the application file 300 according to the first embodiment.
  • the application file 300 shown in FIG. 4 includes getname () in which an external declaration is made (see 302 in the figure). This getname () is an external function.
  • getname is an external function.
  • the server communication interface generation unit 220 adds a call code for calling an external function included in the application file 300 to the server communication interface file 400. After S140, the process proceeds to S150.
  • FIGS. 5 and 6 are diagrams illustrating an example of the server communication interface file 400 according to the first embodiment. An example of the server communication interface file 400 in the first embodiment will be described with reference to FIGS.
  • the server communication interface file 400 is a source file of the server communication interface 111 that communicates with the client communication interface 121.
  • the server communication interface generation unit 220 adds remote_getname () to the server communication interface file 400 (see 404 in FIG. 6).
  • This remote_getname () is a wrap function for calling getname () included in the application file 300 (see FIG. 4). This wrap function is executed when an execution request message requesting execution of getname () is received.
  • the name of the wrap function can be generated by adding a specific character string (remote_) to the name of the external function.
  • a portion excluding remote_getname () is a standard source code.
  • a server communication interface file 400 in which a fixed source code is described is prepared in advance.
  • the standard part of the server communication interface file 400 includes source code that defines the listening port of the port number “2002” (see 401 in FIG. 5). This listening port is for communicating with the client communication interface 121.
  • the fixed part of the server communication interface file 400 includes a main function of the server program 110 (see 402 in FIG. 5), and this main function includes a source code for calling a wrap function including a calling code. (See 403 in FIG. 6). Returning to FIG. 3, the description will be continued from S150.
  • the application program analysis unit 210 determines whether there is an unselected application file 300 that has not been selected in S110. If there is an unselected application file 300 (YES), the process returns to S110. If there is no unselected application file 300 (NO), the process proceeds to S160.
  • the client server program generation unit 280 generates the server program 110 by compiling and linking the server communication interface file 400 and each application file 300.
  • the client server program generation unit 280 replaces main () (see 301 in FIG. 4) included in the application file 300 with another name.
  • the client server program generation unit 280 replaces main () with stub_main (). This is to prevent the name from overlapping with the main function (see 402 in FIG. 5) of the server communication interface file 400. That is, the contents of the application file 300 and the application program 100 are not altered.
  • the processing of the server program generation method ends.
  • FIG. 7 is a diagram illustrating an example of a hardware configuration of the client server program generation device 200 according to the first embodiment.
  • An example of the hardware configuration of the client server program generation device 200 according to Embodiment 1 will be described with reference to FIG.
  • the hardware configuration of the client server program generation device 200 may be different from the configuration shown in FIG.
  • the client server program generation device 200 is a computer including an arithmetic device 901, an auxiliary storage device 902, a main storage device 903, a communication device 904, and an input / output device 905.
  • the arithmetic device 901, auxiliary storage device 902, main storage device 903, communication device 904, and input / output device 905 are connected to the bus 909.
  • the arithmetic device 901 is a CPU (Central Processing Unit) that executes a program.
  • the auxiliary storage device 902 is, for example, a ROM (Read Only Memory), a flash memory, or a hard disk device.
  • the main storage device 903 is, for example, a RAM (Random Access Memory).
  • the communication device 904 performs communication via the Internet, a LAN (local area network), a telephone line network, or other networks in a wired or wireless manner.
  • the input / output device 905 is, for example, a mouse, a keyboard, or a display device.
  • the program is normally stored in the auxiliary storage device 902, loaded into the main storage device 903, read into the arithmetic device 901, and executed by the arithmetic device 901.
  • an operating system OS
  • a program for realizing the function described as “ ⁇ unit” is stored in the auxiliary storage device 902.
  • the OS and the program that realizes the functions described as “ ⁇ units” are loaded into the main storage device 903 and executed by the arithmetic device 901. “ ⁇ part” can be read as “ ⁇ processing” and “ ⁇ process”.
  • the server program 110 can be generated using the stand-alone type application program 100.
  • a large-scale stand-alone GUI application exceeding 1 million lines can be used as a client-server type application program without modifying the source program.
  • a large-scale application program that is difficult to adapt to the cloud computing service can be adapted to the cloud computing service.
  • FIG. A mode for generating the client program 120 in addition to the server program 110 will be described.
  • items different from the first embodiment will be mainly described. Matters whose description is omitted are the same as those in the first embodiment.
  • FIG. 8 is a functional configuration diagram of the client server program generation device 200 according to the second embodiment. A functional configuration of the client server program generation device 200 according to the second embodiment will be described with reference to FIG.
  • the client server program generation device 200 includes a client communication interface generation unit 230 (an example of a client communication program editing unit) in addition to the configuration described in the first embodiment (see FIG. 2).
  • the device storage unit 290 stores the client communication interface file 500.
  • the client communication interface file 500 is a source program file of the client communication interface 121.
  • the client communication interface file 500 includes source code necessary for communication with the server communication interface 111.
  • the client communication interface generation unit 230 adds, to the client communication interface file 500, source code (hereinafter, referred to as an execution request code) that transmits an execution request message when the GUI 101 requests execution of an external function.
  • the client server program generation unit 280 generates the client program 120 by compiling and linking the client communication interface file 500 and the application file 300 of the GUI 101.
  • FIG. 9 is a flowchart of the client server program generation method according to the second embodiment. A client server program generation method according to the second embodiment will be described with reference to FIG.
  • the application program analysis unit 210 selects an unselected application file 300.
  • S210 is the same as S110 of the first embodiment (see FIG. 3). After S210, the process proceeds to S220.
  • the application program analysis unit 210 analyzes the application file 300 selected in S210.
  • S220 is the same as S120 of the first embodiment (see FIG. 3). After S220, the process proceeds to S230.
  • the application program analysis unit 210 determines whether or not the application file 300 includes an external function. S230 is the same as S130 of the first embodiment (see FIG. 3). If the application file 300 includes an external function (YES), the process proceeds to S240. If the application file 300 does not include an external function (NO), the process proceeds to S260.
  • S ⁇ b> 240 the server communication interface generation unit 220 adds an external function call code to the server communication interface file 400.
  • S240 is the same as S140 in the first embodiment (see FIG. 3). After S240, the process proceeds to S250.
  • the client communication interface generation unit 230 adds an execution request code that transmits an execution request message when an external function execution is requested from the GUI 101 to the client communication interface file 500. After S250, the process proceeds to S260.
  • FIGS. 10 and 11 are diagrams illustrating an example of the client communication interface file 500 according to the second embodiment. An example of the client communication interface file 500 according to the second embodiment will be described with reference to FIGS.
  • the client communication interface file 500 is a source file of the client communication interface 121 that communicates with the server communication interface 111.
  • the client communication interface generation unit 230 adds getname () to the client communication interface file 500 (see 503 in FIG. 11).
  • This getname () is a function including an execution request code (write) for transmitting an execution request message and a source code (read) for receiving an execution response message indicating the execution result.
  • the part excluding getname () (the part above the broken line in FIGS. 10 and 11) is a standard source code.
  • a client communication interface file 500 in which a fixed source code is described is prepared in advance.
  • the fixed part of the client communication interface file 500 includes createSession () and closeSession () (see 501 and 502 in FIG. 10).
  • createSession () is a function that establishes a session with the server communication interface 111
  • closeSession () is a function that releases the established session.
  • the application program analysis unit 210 determines whether there is an unselected application file 300 that has not been selected in S210. If there is an unselected application file 300 (YES), the process returns to S210. If there is no unselected application file 300 (NO), the process proceeds to S270.
  • the client server program generation unit 280 generates the server program 110 as in S160 (see FIG. 3) of the first embodiment. Further, the client server program generation unit 280 generates the client program 120 by compiling and linking the client communication interface file 500 and the application file 300 of the GUI 101. After S270, the processing of the client server program generation method ends.
  • the server program 110 and the client program 120 can be generated using the stand-alone application program 100.
  • Embodiment 3 A mode of generating a client server program that causes a server apparatus to execute only data processing when GUI processing and data processing are included in the external function will be described.
  • items different from the first and second embodiments will be mainly described. Matters whose description is omitted are the same as in the first and second embodiments.
  • the application program 100 is a program having a GUI 101. Furthermore, the application program 100 is a program that operates only when a user operates a GUI object, unlike a simulation program or the like.
  • the main input means used by the user to operate the GUI are a keyboard and a mouse.
  • the user inputs data into the GUI object using a keyboard.
  • the user operates the mouse to select a desired GUI object or select a pull-down menu.
  • GUI libraries When the programming language is object-oriented, a GUI event handler is implemented by a base object (base class object). Then, the GUI library calls a GUI event handler defined in the base object, instead of being implemented so as to issue a system call to obtain an interrupt generated by the operation of the mouse or the keyboard and accompanying data. That is, the GUI library hides a mechanism for obtaining an interrupt generated by operating a mouse or a keyboard and accompanying data by issuing a system call from a programmer.
  • base object base class object
  • the GUI library calls a GUI event handler defined in the base object, instead of being implemented so as to issue a system call to obtain an interrupt generated by the operation of the mouse or the keyboard and accompanying data. That is, the GUI library hides a mechanism for obtaining an interrupt generated by operating a mouse or a keyboard and accompanying data by issuing a system call from a programmer.
  • GUI screen is configured by a lower GUI class that inherits the upper GUI class provided from the GUI library.
  • processing of the event handler of the inherited GUI class is defined (this redefinition is called an override).
  • OnLeftClick a menu implemented in an event handler called OnLeftClick () is displayed. Also, input data can be obtained from the menu that is in the selected state when the mouse button is released and the event OnRelease () occurs.
  • An application program with a GUI performs calculations based on data input by the user. For this reason, the contents of the event handler of the GUI library can be divided into GUI processing to be executed by the client program and data processing to be executed by the server program.
  • FIG. 12 is a functional configuration diagram of the client server program generation device 200 according to the third embodiment. A functional configuration of the client server program generation device 200 according to Embodiment 3 will be described with reference to FIG.
  • the client server program generation device 200 includes an API analysis unit 211 (an example of an external function analysis unit) in addition to the configuration described in the second embodiment (see FIG. 8).
  • the API analysis unit 211 analyzes a source code of an API function that processes an API (Application Program Interface), and determines whether the API function includes user interface processing that uses the GUI 101 and data processing that does not use the GUI 101. To do.
  • An API function is an example of an external function.
  • FIG. 13 is a flowchart of the client server program generation method according to the third embodiment. A client server program generation method according to Embodiment 3 will be described with reference to FIG.
  • S310 the application program analysis unit 210 selects an unselected application file 300.
  • S310 is the same as S110 of the first embodiment (see FIG. 3). After S310, the process proceeds to S320.
  • S320 the application program analysis unit 210 analyzes the application file 300 selected in S310.
  • S320 is the same as S120 of the first embodiment (see FIG. 3). After S320, the process proceeds to S330.
  • the application program analysis unit 210 determines whether or not the application file 300 includes a call code for calling an API function, based on the analysis result in S320. For example, the application program analysis unit 210 determines whether or not the application file 300 includes an API function using an API list 291 (see FIG. 14) indicating the function name of the API function.
  • FIG. 14 is a diagram illustrating an example of the API list 291 according to the third embodiment.
  • An API list 291 in FIG. 14 shows the function names of the API functions of the GUI library class.
  • the API list 291 may be a hash list in which function names of API functions are arranged using hash values. When the API list 291 is a hash list, the function name of the API function can be searched at high speed. If the application file 300 includes an API function call code (YES), the process proceeds to S340. If the application file 300 does not include the API function call code (NO), the process proceeds to S370.
  • the server communication interface generation unit 220 adds the API function source code (an example of the execution code) to the server communication interface file 400 instead of the external function call code (see the first embodiment).
  • the API function source code is stored in the device storage unit 290 in advance. After S340, the process proceeds to S350.
  • the client communication interface generation unit 230 adds an execution request code for requesting execution of the API function instead of the external function to the client communication interface file 500. After S350, the process proceeds to S360.
  • the server communication interface generation unit 220 edits the server communication interface file 400, and the client communication interface generation unit 230 edits the client communication interface file 500. Details of the communication interface editing process (S360) will be described later. After S360, the process proceeds to S370.
  • the application program analysis unit 210 determines whether there is an unselected application file 300 that has not been selected in S310. If there is an unselected application file 300 (YES), the process returns to S310. If there is no unselected application file 300 (NO), the process proceeds to S380.
  • the client server program generation unit 280 generates the server program 110 and the client program 120, as in S270 (see FIG. 9) of the second embodiment. After S380, the processing of the client server program generation method ends.
  • FIG. 15 is a flowchart of the communication interface editing process (S360) in the third embodiment.
  • the communication interface editing process (S360) in the third embodiment will be described with reference to FIG.
  • the API analysis unit 211 analyzes the source code of the API function specified in S330 (see FIG. 13). For example, the API analysis unit 211 performs lexical analysis and syntax analysis on the API function source code.
  • the API function specified in S330 is referred to as a specific API. After S361, the process proceeds to S362.
  • the API analysis unit 211 determines whether or not the specific API includes an API function call code based on the analysis result of S361. The determination method is the same as S330 (see FIG. 13). If the specific API includes an API function call code (YES), the process proceeds to S363. When the specific API does not include the API function call code (NO), the communication interface editing process (S360) ends.
  • the API analysis unit 211 determines whether the API function called by the call code included in the specific API is a GUI event handler (an example of user interface processing) based on the analysis result in S361. For example, the API analysis unit 211 determines whether the API function is a GUI event handler by using a GUI event handler list indicating the name of the GUI event handler. In this case, the GUI event handler list is stored in advance in the device storage unit 290. If the API function is a GUI event handler, the process proceeds to S364. If the API function is not a GUI event handler, the communication interface editing process (S360) ends.
  • a GUI event handler an example of user interface processing
  • the server communication interface generation unit 220 adds a callback function to the source code of the specific API added to the server communication interface file 400 in S340 (see FIG. 13).
  • the callback function (an example of a user interface request code) is a function that transmits an execution request message (an example of a user interface request message) for requesting execution of a GUI event handler to a client device.
  • the server communication interface generation unit 220 adds a callback function before or after the calling code that calls the GUI event handler.
  • the server communication interface generation unit 220 invalidates the function of the GUI event handler by editing a library that functions as a GUI event handler among a plurality of libraries (binary codes) used by the server program 110. .
  • the process proceeds to S365.
  • the client communication interface generation unit 230 adds a call code that calls an event handler of the GUI 101 to the client communication interface file 500. Thereby, the client program 120 can execute the event handler of the GUI 101 in response to a request from the callback function of the server program 110. Further, the client communication interface generation unit 230 adds an execution response code that responds to the execution result of the event handler of the GUI 101 to the client communication interface file 500.
  • the communication interface editing process ends.
  • Embodiment 4 A mode for generating the client program 120 including the acceleration logic will be described.
  • items different from the first to third embodiments will be mainly described. Matters whose description is omitted are the same as at least one of the first to third embodiments.
  • the configuration of the client server program generation device 200 is the same as that of the second embodiment (see FIG. 8) or the third embodiment (see FIG. 12).
  • the client communication interface generation unit 230 performs the following processing: Execute the process.
  • the client communication interface generation unit 230 adds the number measurement code, the number calculation code, the conditional branch code, and the data synchronization code to the client communication interface file 500. In addition, the client communication interface generation unit 230 adds the external function to the client communication interface file 500.
  • the number measurement code is source code for measuring the number of execution requests for which the execution request code has been executed.
  • the number calculation code is a source code for calculating the number of times per unit time that the execution request code is executed based on the number calculation code measured by the number measurement code.
  • the conditional branch code compares the number of times per unit time calculated by the number calculation code with the execution request frequency threshold.
  • the execution request frequency threshold is a predetermined value. When the number of times per unit time is greater than the execution request count threshold, the conditional branch code transmits a data request message requesting data used by the external function to the server communication interface 111, and the data used by the external function is transmitted to the server communication interface. The received data is stored in the memory of the client device, and an external function is executed using the data stored in the memory. If the number of times per unit time is less than the number of execution requests, the conditional branch code executes the execution request code. When the number of times per unit time is the same as the execution request frequency threshold, the conditional branch code executes the same processing as in any of the above cases. That is, the conditional branch code executes either the external function or the execution request code.
  • FIG. 16 is a diagram illustrating an example of the client server system 600 according to the fifth embodiment.
  • a client server system 600 illustrated in FIG. 16 includes a client device 601, a firewall 602 on the client device 601 side, a server device 604, and a firewall 603 on the server device 604 side.
  • the RPC mechanism in the client server system 600 does not exclude HTTP or an HTTP derivation procedure (Websocket or the like) as its communication means. Therefore, even if multiple firewalls (602, 603) are interposed, the RPC mechanism is not affected.
  • FIG. 17 is a relationship diagram among the application program 100, the server program 110, and the client program 120 in the sixth embodiment. A relationship among the application program 100, the server program 110, and the client program 120 in the sixth embodiment will be described with reference to FIG.
  • the client program 120 is configured by a WEB browser. That is, the WEB browser functions as the client program 120.
  • the server communication interface 111 of the server program 110 includes a data conversion function 112 (an example of a data format conversion code).
  • the data conversion function 112 converts the data format of the message received from the client program 120 from the client data format to the server data format, and converts the data format of the message transmitted to the client program 120 from the server data format to the client data format.
  • the client data format is a data format used by the client program 120
  • the server data format is a data format used by the server program 110.
  • the data conversion function 112 converts the data format of the execution request message that requests execution of the external function from the client data format to the server data format.
  • the data conversion function 112 converts the data format of the execution response message that returns the execution result of the external function from the server data format to the client data format.
  • FIG. 18 is a diagram illustrating an example of message data conversion in the sixth embodiment.
  • a message 611 illustrated in FIG. 18 is an example of a message communicated between the client program 120 and the server program 110, and the message 616 is obtained by converting the message 611 into a JSON (Java Script Object Notification) format. “JavaScript” is a registered trademark.
  • the message header 612 indicates whether or not the message 611 is divided and the data size of the message 611.
  • the integer 613 indicates “4” in the int format.
  • the binary data size 614 indicates the data size of the binary data 615. Show. Mutual data conversion between the message 611 and the message 616 is performed immediately after the server communication interface 111 receives the message 611 and immediately before the server communication interface 111 transmits the message 611.
  • the server program generation method is the same as that in the first embodiment (see FIG. 3).
  • FIG. 19 is a diagram illustrating an example of a screen of the WEB browser 617 according to the sixth embodiment.
  • a WEB browser 617 shown in FIG. 19 includes a parts list 618 and a screen design unit 619.
  • the screen design unit 619 displays a design screen including a button 619A, a tree 619B, and a canvas 619C.
  • the screen designer selects a component (GUI object) from the component list 618 and designs the screen by dragging and dropping the selected component onto the screen design unit 619.
  • the screen designer designs screen transitions.
  • Embodiment 8 FIG. A mode in which the server program performs multicast communication with a plurality of client programs will be described.
  • items different from the first to third embodiments will be mainly described. Matters whose description is omitted are the same as at least one of the first to third embodiments.
  • the configuration of the client server program generation device 200 is the same as that of any one of the first to third embodiments (see FIGS. 2, 8, and 12).
  • the client server program generation method is the same as in any one of the first to third embodiments (see FIGS. 3, 9, and 13).
  • the server communication interface generation unit 220 adds the multicast transmission code to the client communication interface file 500.
  • the multicast transmission code is source code for multicasting an execution response message to a plurality of client devices including the client device that has transmitted the execution request message.
  • the execution response message is a message indicating the execution result of the external function requested by the execution request message. Multicast may be read as broadcast.
  • FIG. 21 is a diagram illustrating an example of the client server system 630 according to the eighth embodiment. An example of the client server system 630 according to the eighth embodiment will be described with reference to FIG.
  • the server device 631 returns a message as a synchronous RPC to the client device 635, but multicasts the contents of the data change to the client devices 632 to 634, the client device 636, and the client device 637 using session information managed by itself.
  • the listening thread of the client program 120 receives the message asynchronously and reflects the data change on the display.
  • Embodiment 9 A form of a computer system to which any one of the first to eighth embodiments is applied will be described.
  • FIG. 22 is a diagram illustrating an example of a computer system 640 according to the ninth embodiment. An example of a computer system 640 according to Embodiment 9 will be described with reference to FIG.
  • the client device 647 When the client device 647 is authenticated by the authentication server 641 across the firewall 646, an authentication ticket is given.
  • the client device 647 designates a desired service among the services provided by the server devices (641 to 645) in the URL, and accesses the service activation server 648 using the authentication ticket. Thereby, the server program of the server device that provides a desired service is executed.
  • the client device 647 specifies the URL of the engineering server 643 and passes the authentication ticket to the service activation server 648.
  • the service activation server 648 inquires ticket information to the authentication server 641 and authenticates the access of the client device 647. If the authentication ticket of the client device 647 matches the authentication ticket given from the authentication server 851, the service activation server 648 activates the server program of the engineering server 643.
  • the processing procedures described using the flowcharts and the like in each embodiment are an example of a processing procedure of a method according to each embodiment and an example of a processing procedure of a program (for example, a client server program generation program) according to each embodiment. It is. That is, the processing procedure of the method according to each embodiment and the processing procedure of the program according to each embodiment may be realized by a processing procedure partially different from the processing procedure described in each embodiment.

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Stored Programmes (AREA)

Abstract

A client/server program generation device according to the present invention generates a server program by use of a stand-alone application program including a GUI program and a data processing program. In this case, the client/server program generation device analyzes the source program file for the data processing program and identifies, from among the plurality of functions included in the data processing program, external functions called by the GUI program. The client/server program generation device then adds, to the source program file for a server communication interface, calling codes, each of which calls an external function in the application program of the server program upon reception of an execution request message requesting that the external function be executed.

Description

クライアントサーバープログラム生成装置およびクライアントサーバープログラム生成プログラムClient server program generation device and client server program generation program
 本発明は、スタンドアロン型のアプリケーションプログラムを用いてクライアントサーバーのプログラムを生成する技術に関するものである。 The present invention relates to a technique for generating a client server program using a stand-alone application program.
 IP(Internet Protocol)通信網の発展を背景に、あらゆる形態をもって計算機資源の提供サービスを行うクラウドコンピューティングサービスが急速に普及している。
 クラウドコンピューティングサービスには、計算機資源の貸出サービスまたはアプリケーションの利用サービスなどがある。計算機資源の貸出サービスは、サービスプロバイダが然るべき場所にコンピュータのクラスタからなるデータセンターを設けて、データセンターの計算機資源そのものを貸し出すサービスである。アプリケーションの利用サービスは、データセンターのアプリケーションを利用できるサービスである。
With the development of an IP (Internet Protocol) communication network, cloud computing services that provide computer resource provision services in various forms are rapidly spreading.
The cloud computing service includes a computer resource lending service or an application use service. The computer resource lending service is a service in which a service provider provides a data center composed of a cluster of computers at an appropriate place and lends the computer resource itself of the data center. The application use service is a service that can use a data center application.
 データセンターでシステムの運用が行われるため、利用者はあらゆる形態のシステムを少ない初期投資で利用することができる。
 また、遠隔地に所在する複数のユーザーの共同作業が可能になり、複数のレプリカデータが格納されるため、データセンターは耐災害性を有することができる。
 このように、クラウドコンピューティングサービスは、事業所毎に情報システムを持つ従来の形態では享受できない利便性をユーザーに与える。
Since the system is operated in the data center, the user can use all types of systems with a small initial investment.
In addition, since a plurality of users located in remote locations can collaborate and a plurality of replica data is stored, the data center can have disaster resistance.
In this way, the cloud computing service provides the user with convenience that cannot be enjoyed in the conventional form having an information system for each office.
 しかしながら、スタンドアロン型で設計された大規模なGUI(Graphical User Interface)アプリケーションをクラウドコンピューティングサービス化するには、ほとんどの場合、GUIアプリケーションの再設計および再実装が必要となる。
 また、データセンターは遠隔地に置かれるので、データセンターからの応答時間に通信遅延を織り込んでGUIアプリケーションを設計する必要がある。
However, in order to make a large-scale GUI (Graphical User Interface) application designed as a stand-alone type into a cloud computing service, in most cases, it is necessary to redesign and re-implement the GUI application.
In addition, since the data center is located at a remote location, it is necessary to design a GUI application by incorporating a communication delay into the response time from the data center.
 特許文献1には、単独で動作するアプリケーションのソースコードをデータ解析し、クライアントプログラム部分とサーバープログラム部分とに分けて、クライアントサーバー型のプログラムを生成する方法が開示されている。
 しかし、この方法では、単独で動作する元々のアプリケーションに対して実施された試験が無効となり、クライアントサーバー型のプログラムに対してさらに試験を実施する必要がある。
Patent Document 1 discloses a method of analyzing a source code of an application that operates independently and generating a client server type program by dividing the source code into a client program part and a server program part.
However, in this method, the test performed on the original application that operates alone is invalidated, and it is necessary to further test the client server type program.
特開2000-137600号公報JP 2000-137600 A
 本発明は、スタンドアロン型のアプリケーションプログラムを用いてサーバープログラムを生成できるようにすることを目的とする。 The object of the present invention is to be able to generate a server program using a stand-alone application program.
 本発明のクライアントサーバープログラム生成装置は、
 ユーザーインターフェースプログラムとデータ処理プログラムとを備えるアプリケーションプログラムの前記データ処理プログラムのソースプログラムファイルを解析し、前記データ処理プログラムに含まれる複数の関数のうち前記ユーザーインターフェースプログラムから呼び出される外部関数を特定するアプリケーションプログラム解析部と、
 サーバー通信プログラムと前記アプリケーションプログラムとを備えるサーバープログラムの前記サーバー通信プログラムのソースプログラムファイルに、前記外部関数の実行を要求する実行要求メッセージを受信したときに前記サーバープログラムの前記アプリケーションプログラムに含まれる前記外部関数を呼び出す呼び出しコードを追加するサーバー通信プログラム編集部とを備える。
The client server program generation device of the present invention
An application that analyzes a source program file of the data processing program of an application program including a user interface program and a data processing program, and identifies an external function called from the user interface program among a plurality of functions included in the data processing program A program analysis unit;
The server program comprising the server communication program and the application program, the source program file of the server communication program receives an execution request message for requesting execution of the external function, and is included in the application program of the server program A server communication program editing unit for adding a call code for calling an external function.
 本発明によれば、スタンドアロン型のアプリケーションプログラムを用いてサーバープログラムを生成することができる。 According to the present invention, a server program can be generated using a stand-alone application program.
実施の形態1におけるアプリケーションプログラム100とサーバープログラム110とクライアントプログラム120との関係図である。3 is a relationship diagram among an application program 100, a server program 110, and a client program 120 according to Embodiment 1. FIG. 実施の形態1におけるクライアントサーバープログラム生成装置200の機能構成図である。2 is a functional configuration diagram of a client server program generation device 200 according to Embodiment 1. FIG. 実施の形態1におけるサーバープログラム生成方法のフローチャートである。3 is a flowchart of a server program generation method according to the first embodiment. 実施の形態1におけるアプリケーションファイル300の一例を示す図である。It is a figure which shows an example of the application file 300 in Embodiment 1. FIG. 実施の形態1におけるサーバー通信インターフェースファイル400の一例を示す図である。6 is a diagram illustrating an example of a server communication interface file 400 according to Embodiment 1. FIG. 実施の形態1におけるサーバー通信インターフェースファイル400の一例を示す図である。6 is a diagram illustrating an example of a server communication interface file 400 according to Embodiment 1. FIG. 実施の形態1におけるクライアントサーバープログラム生成装置200のハードウェア構成の一例を示す図である。3 is a diagram illustrating an example of a hardware configuration of a client server program generation device 200 according to Embodiment 1. FIG. 実施の形態2におけるクライアントサーバープログラム生成装置200の機能構成図である。FIG. 10 is a functional configuration diagram of a client server program generation device 200 according to Embodiment 2. 実施の形態2におけるクライアントサーバープログラム生成方法のフローチャートである。10 is a flowchart of a client server program generation method according to the second embodiment. 実施の形態2におけるクライアント通信インターフェースファイル500の一例を示す図である。10 is a diagram illustrating an example of a client communication interface file 500 according to Embodiment 2. FIG. 実施の形態2におけるクライアント通信インターフェースファイル500の一例を示す図である。10 is a diagram illustrating an example of a client communication interface file 500 according to Embodiment 2. FIG. 実施の形態3におけるクライアントサーバープログラム生成装置200の機能構成図である。FIG. 10 is a functional configuration diagram of a client server program generation device 200 according to Embodiment 3. 実施の形態3におけるクライアントサーバープログラム生成方法のフローチャートである。10 is a flowchart of a client server program generation method according to the third embodiment. 実施の形態3におけるAPIリスト291の一例を示す図である。FIG. 20 is a diagram showing an example of an API list 291 in the third embodiment. 実施の形態3における通信インターフェース編集処理(S360)のフローチャートである。15 is a flowchart of communication interface editing processing (S360) in the third embodiment. 実施の形態5におけるクライアントサーバーシステム600の構成図である。FIG. 10 is a configuration diagram of a client server system 600 in a fifth embodiment. 実施の形態6におけるアプリケーションプログラム100とサーバープログラム110とクライアントプログラム120との関係図である。FIG. 20 is a relationship diagram among an application program 100, a server program 110, and a client program 120 in a sixth embodiment. 実施の形態6におけるメッセージのデータ変換の一例を示す図である。FIG. 38 is a diagram illustrating an example of message data conversion in the sixth embodiment. 実施の形態6におけるWEBブラウザ617の画面の一例を示す図である。FIG. 20 is a diagram illustrating an example of a screen of a WEB browser 617 in the sixth embodiment. 実施の形態7におけるコンピュータシステム620の一例を示す図である。FIG. 20 is a diagram illustrating an example of a computer system 620 according to Embodiment 7. 実施の形態8におけるクライアントサーバーシステム630の一例を示す図である。FIG. 20 is a diagram illustrating an example of a client server system 630 according to the eighth embodiment. 実施の形態9におけるコンピュータシステム640の一例を示す図である。FIG. 20 is a diagram illustrating an example of a computer system 640 according to a ninth embodiment.
 実施の形態1.
 スタンドアロン型のアプリケーションプログラムを用いてサーバープログラムを生成する形態について説明する。
Embodiment 1 FIG.
A mode in which a server program is generated using a stand-alone application program will be described.
 図1は、実施の形態1におけるアプリケーションプログラム100とサーバープログラム110とクライアントプログラム120との関係図である。
 実施の形態1におけるアプリケーションプログラム100とサーバープログラム110とクライアントプログラム120との関係について、図1に基づいて説明する。
FIG. 1 is a relationship diagram among the application program 100, the server program 110, and the client program 120 in the first embodiment.
A relationship among the application program 100, the server program 110, and the client program 120 in the first embodiment will be described with reference to FIG.
 アプリケーションプログラム100は、一つの情報処理装置によって実行されることを前提にして生成されたスタンドアロン型のプログラムである。つまり、アプリケーションプログラム100は、他のコンピュータに依存せずに独立して動作するスタンドアロンの情報処理装置によって実行されるプログラムである。
 アプリケーションプログラム100は、ユーザーによって操作されるGUI(Graphical User Interface)を備える。以下、GUIを処理するプログラムをGUI101と記す。また、アプリケーションプログラム100に含まれるプログラムのうち、GUI101以外のプログラムをデータ処理プログラムと呼ぶ。
The application program 100 is a stand-alone program generated on the assumption that it is executed by one information processing apparatus. That is, the application program 100 is a program executed by a stand-alone information processing apparatus that operates independently without depending on other computers.
The application program 100 includes a GUI (Graphical User Interface) operated by a user. Hereinafter, a program for processing the GUI is referred to as GUI 101. Of the programs included in the application program 100, programs other than the GUI 101 are called data processing programs.
 サーバープログラム110はサーバー装置によって実行されるプログラムである。
 サーバープログラム110は、アプリケーションプログラム100とサーバー通信インターフェース111とを含んでいる。但し、アプリケーションプログラム100に含まれるGUI101が機能しないように、GUI101のライブラリは無効化される。
 サーバー通信インターフェース111(サーバー通信プログラムの一例)はネットワーク199を介してクライアント装置と通信するプログラムである。
The server program 110 is a program executed by the server device.
The server program 110 includes an application program 100 and a server communication interface 111. However, the library of the GUI 101 is invalidated so that the GUI 101 included in the application program 100 does not function.
A server communication interface 111 (an example of a server communication program) is a program that communicates with a client device via a network 199.
 クライアントプログラム120はクライアント装置によって実行されるプログラムである。
 クライアントプログラム120は、GUI101(または同等のプログラム)とクライアント通信インターフェース121とを含んでいる。
 クライアント通信インターフェース121(クライアント通信プログラムの一例)はネットワーク199を介してサーバー装置と通信するプログラムである。クライアント通信インターフェース121は、RPC(Remote Procedure Call)でサーバープログラム110を呼び出す。
 クライアント装置のユーザーは、スタンドアロンの情報処理装置と同等な使い勝手で、GUI101を利用してクライアント装置を操作することができる。
The client program 120 is a program executed by the client device.
The client program 120 includes a GUI 101 (or an equivalent program) and a client communication interface 121.
The client communication interface 121 (an example of a client communication program) is a program that communicates with the server device via the network 199. The client communication interface 121 calls the server program 110 by RPC (Remote Procedure Call).
A user of the client apparatus can operate the client apparatus using the GUI 101 with the same usability as a stand-alone information processing apparatus.
 図2は、実施の形態1におけるクライアントサーバープログラム生成装置200の機能構成図である。
 実施の形態1におけるクライアントサーバープログラム生成装置200の機能構成について、図2に基づいて説明する。
FIG. 2 is a functional configuration diagram of the client server program generation device 200 according to the first embodiment.
A functional configuration of the client server program generation device 200 according to the first embodiment will be described with reference to FIG.
 クライアントサーバープログラム生成装置200は、アプリケーションプログラム100のソースプログラムファイルを用いて、サーバープログラム110を生成するコンピュータである。
 クライアントサーバープログラム生成装置200は、アプリケーションプログラム解析部210と、サーバー通信インターフェース生成部220と、クライアントサーバープログラム生成部280と、装置記憶部290とを備える。
The client server program generation device 200 is a computer that generates the server program 110 using the source program file of the application program 100.
The client server program generation device 200 includes an application program analysis unit 210, a server communication interface generation unit 220, a client server program generation unit 280, and a device storage unit 290.
 装置記憶部290は、クライアントサーバープログラム生成装置200が使用、生成または入出力するデータを記憶する。
 例えば、装置記憶部290は、アプリケーションファイル300と、サーバー通信インターフェースファイル400と、サーバープログラム110とを記憶する。
 アプリケーションファイル300は、アプリケーションプログラム100に含まれる複数のプログラム(データ処理プログラムおよびGUI101を含む)のそれぞれのソースプログラムファイルである。
 サーバー通信インターフェースファイル400は、サーバー通信インターフェース111のソースプログラムファイルである。サーバー通信インターフェースファイル400は、クライアント通信インターフェース121との通信に必要なソースコードを含む。
 ソースプログラムファイルはプログラムのソースコード(ソースプログラム)を含むファイルである。
The device storage unit 290 stores data used, generated or input / output by the client server program generation device 200.
For example, the device storage unit 290 stores the application file 300, the server communication interface file 400, and the server program 110.
The application file 300 is a source program file for each of a plurality of programs (including a data processing program and the GUI 101) included in the application program 100.
The server communication interface file 400 is a source program file for the server communication interface 111. The server communication interface file 400 includes source code necessary for communication with the client communication interface 121.
The source program file is a file including a program source code (source program).
 アプリケーションプログラム解析部210は、アプリケーションプログラム100に含まれる複数のプログラムのそれぞれのアプリケーションファイル300を解析し、他のプログラム(例えば、GUI101)から呼び出される関数を特定する。なお、関数はオブジェクト指向型のプログラムにおけるメソッドに相当するものである。以下、他のプログラムから呼び出される関数(またはメソッド)を外部関数という。
 サーバー通信インターフェース生成部220(サーバー通信プログラム編集部の一例)は、外部関数の実行を要求する実行要求メッセージを受信したときにサーバープログラム110のアプリケーションプログラム100に含まれる外部関数を呼び出すソースコード(以下、呼び出しコードという)をサーバー通信インターフェースファイル400に追加する。
 クライアントサーバープログラム生成部280は、サーバー通信インターフェースファイル400と各アプリケーションファイル300とをコンパイルおよびリンクすることによって、サーバープログラム110を生成する。
The application program analysis unit 210 analyzes each application file 300 of a plurality of programs included in the application program 100 and identifies a function called from another program (for example, the GUI 101). A function corresponds to a method in an object-oriented program. Hereinafter, a function (or method) called from another program is referred to as an external function.
The server communication interface generation unit 220 (an example of a server communication program editing unit) receives source code (hereinafter referred to as an external function) included in the application program 100 of the server program 110 when an execution request message requesting execution of an external function is received. Are added to the server communication interface file 400.
The client server program generation unit 280 generates the server program 110 by compiling and linking the server communication interface file 400 and each application file 300.
 図3は、実施の形態1におけるサーバープログラム生成方法のフローチャートである。
 実施の形態1におけるサーバープログラム生成方法について、図3に基づいて説明する。
FIG. 3 is a flowchart of the server program generation method according to the first embodiment.
A server program generation method according to Embodiment 1 will be described with reference to FIG.
 S110において、アプリケーションプログラム解析部210は、未選択のアプリケーションファイル300を一つ選択する。
 S110の後、処理はS120に進む。
In S110, the application program analysis unit 210 selects one unselected application file 300.
After S110, the process proceeds to S120.
 S120において、アプリケーションプログラム解析部210は、S110で選択したアプリケーションファイル300(アプリケーションファイル300が使用するヘッダファイルを含む)を解析する。
 例えば、アプリケーションプログラム解析部210は、アプリケーションファイル300に対して字句解析および構文解析を行う。
 S120の後、処理はS130に進む。
In S120, the application program analysis unit 210 analyzes the application file 300 (including the header file used by the application file 300) selected in S110.
For example, the application program analysis unit 210 performs lexical analysis and syntax analysis on the application file 300.
After S120, the process proceeds to S130.
 S130において、アプリケーションプログラム解析部210は、S120で得られた解析結果に基づいて、アプリケーションファイル300が外部関数を含んでいるか否かを判定する。例えば、extern宣言がなされている関数(またはメソッド)が外部関数である。
 アプリケーションファイル300が外部関数を含んでいる場合(YES)、処理はS140に進む。
 アプリケーションファイル300が外部関数を含んでいない場合(NO)、処理はS150に進む。
In S130, the application program analysis unit 210 determines whether or not the application file 300 includes an external function based on the analysis result obtained in S120. For example, a function (or method) having an “extern” declaration is an external function.
If the application file 300 includes an external function (YES), the process proceeds to S140.
If the application file 300 does not include an external function (NO), the process proceeds to S150.
 図4は、実施の形態1におけるアプリケーションファイル300の一例を示す図である。
 図4に示すアプリケーションファイル300はextern宣言がなされているgetname()を含んでいる(図中の302参照)。このgetname()が外部関数である。
 図3に戻り、S140から説明を続ける。
FIG. 4 is a diagram illustrating an example of the application file 300 according to the first embodiment.
The application file 300 shown in FIG. 4 includes getname () in which an external declaration is made (see 302 in the figure). This getname () is an external function.
Returning to FIG. 3, the description will be continued from S140.
 S140において、サーバー通信インターフェース生成部220は、アプリケーションファイル300に含まれる外部関数を呼び出す呼び出しコードを、サーバー通信インターフェースファイル400に追加する。
 S140の後、処理はS150に進む。
In S140, the server communication interface generation unit 220 adds a call code for calling an external function included in the application file 300 to the server communication interface file 400.
After S140, the process proceeds to S150.
 図5、図6は、実施の形態1におけるサーバー通信インターフェースファイル400の一例を示す図である。
 実施の形態1におけるサーバー通信インターフェースファイル400の一例について、図5および図6に基づいて説明する。
5 and 6 are diagrams illustrating an example of the server communication interface file 400 according to the first embodiment.
An example of the server communication interface file 400 in the first embodiment will be described with reference to FIGS.
 サーバー通信インターフェースファイル400は、クライアント通信インターフェース121と通信するサーバー通信インターフェース111のソースファイルである。
 サーバー通信インターフェース生成部220は、remote_getname()をサーバー通信インターフェースファイル400に追加する(図6の404参照)。このremote_getname()は、アプリケーションファイル300(図4参照)に含まれるgetname()を呼び出すためのラップ関数である。このラップ関数は、getname()の実行を要求する実行要求メッセージが受信されたときに実行される。ラップ関数の名称は、外部関数の名称に特定の文字列(remote_)を付加することによって生成することができる。
 サーバー通信インターフェースファイル400のうち、remote_getname()を除く部分(図5および図6の破線より上の部分)は、定型のソースコードである。定型のソースコードが記述されたサーバー通信インターフェースファイル400は予め用意しておく。
 サーバー通信インターフェースファイル400の定型の部分には、ポート番号「2002」のリスニングポートを定義するソースコードが含まれる(図5の401参照)。このリスニングポートはクライアント通信インターフェース121と通信を行うためのものである。
 また、サーバー通信インターフェースファイル400の定型の部分にはサーバープログラム110のメイン関数が含まれ(図5の402参照)、このメイン関数には呼び出しコードを含んだラップ関数を呼び出すためのソースコードが含まれる(図6の403参照)。
 図3に戻り、S150から説明を続ける。
The server communication interface file 400 is a source file of the server communication interface 111 that communicates with the client communication interface 121.
The server communication interface generation unit 220 adds remote_getname () to the server communication interface file 400 (see 404 in FIG. 6). This remote_getname () is a wrap function for calling getname () included in the application file 300 (see FIG. 4). This wrap function is executed when an execution request message requesting execution of getname () is received. The name of the wrap function can be generated by adding a specific character string (remote_) to the name of the external function.
In the server communication interface file 400, a portion excluding remote_getname () (portion above the broken line in FIGS. 5 and 6) is a standard source code. A server communication interface file 400 in which a fixed source code is described is prepared in advance.
The standard part of the server communication interface file 400 includes source code that defines the listening port of the port number “2002” (see 401 in FIG. 5). This listening port is for communicating with the client communication interface 121.
Further, the fixed part of the server communication interface file 400 includes a main function of the server program 110 (see 402 in FIG. 5), and this main function includes a source code for calling a wrap function including a calling code. (See 403 in FIG. 6).
Returning to FIG. 3, the description will be continued from S150.
 S150において、アプリケーションプログラム解析部210は、S110で選択していない未選択のアプリケーションファイル300が有るか否かを判定する。
 未選択のアプリケーションファイル300が有る場合(YES)、処理はS110に戻る。
 未選択のアプリケーションファイル300が無い場合(NO)、処理はS160に進む。
In S150, the application program analysis unit 210 determines whether there is an unselected application file 300 that has not been selected in S110.
If there is an unselected application file 300 (YES), the process returns to S110.
If there is no unselected application file 300 (NO), the process proceeds to S160.
 S160において、クライアントサーバープログラム生成部280は、サーバー通信インターフェースファイル400と各アプリケーションファイル300とをコンパイルおよびリンクすることによって、サーバープログラム110を生成する。
 このとき、クライアントサーバープログラム生成部280は、アプリケーションファイル300に含まれるmain()(図4の301参照)を別の名称に置き換える。例えば、クライアントサーバープログラム生成部280はmain()をstub_main()に置き換える。サーバー通信インターフェースファイル400のメイン関数(図5の402参照)と名称が重複することを防ぐためである。つまり、アプリケーションファイル300およびアプリケーションプログラム100の内容は改変されない。
 S160の後、サーバープログラム生成方法の処理は終了する。
In S160, the client server program generation unit 280 generates the server program 110 by compiling and linking the server communication interface file 400 and each application file 300.
At this time, the client server program generation unit 280 replaces main () (see 301 in FIG. 4) included in the application file 300 with another name. For example, the client server program generation unit 280 replaces main () with stub_main (). This is to prevent the name from overlapping with the main function (see 402 in FIG. 5) of the server communication interface file 400. That is, the contents of the application file 300 and the application program 100 are not altered.
After S160, the processing of the server program generation method ends.
 図7は、実施の形態1におけるクライアントサーバープログラム生成装置200のハードウェア構成の一例を示す図である。
 実施の形態1におけるクライアントサーバープログラム生成装置200のハードウェア構成の一例について、図7に基づいて説明する。但し、クライアントサーバープログラム生成装置200のハードウェア構成は図7に示す構成と異なる構成であってもよい。
FIG. 7 is a diagram illustrating an example of a hardware configuration of the client server program generation device 200 according to the first embodiment.
An example of the hardware configuration of the client server program generation device 200 according to Embodiment 1 will be described with reference to FIG. However, the hardware configuration of the client server program generation device 200 may be different from the configuration shown in FIG.
 クライアントサーバープログラム生成装置200は、演算装置901、補助記憶装置902、主記憶装置903、通信装置904および入出力装置905を備えるコンピュータである。
 演算装置901、補助記憶装置902、主記憶装置903、通信装置904および入出力装置905はバス909に接続している。
The client server program generation device 200 is a computer including an arithmetic device 901, an auxiliary storage device 902, a main storage device 903, a communication device 904, and an input / output device 905.
The arithmetic device 901, auxiliary storage device 902, main storage device 903, communication device 904, and input / output device 905 are connected to the bus 909.
 演算装置901は、プログラムを実行するCPU(Central Processing Unit)である。
 補助記憶装置902は、例えば、ROM(Read Only Memory)、フラッシュメモリまたはハードディスク装置である。
 主記憶装置903は、例えば、RAM(Random Access Memory)である。
 通信装置904は、有線または無線でインターネット、LAN(ローカルエリアネットワーク)、電話回線網またはその他のネットワークを介して通信を行う。
 入出力装置905は、例えば、マウス、キーボード、ディスプレイ装置である。
The arithmetic device 901 is a CPU (Central Processing Unit) that executes a program.
The auxiliary storage device 902 is, for example, a ROM (Read Only Memory), a flash memory, or a hard disk device.
The main storage device 903 is, for example, a RAM (Random Access Memory).
The communication device 904 performs communication via the Internet, a LAN (local area network), a telephone line network, or other networks in a wired or wireless manner.
The input / output device 905 is, for example, a mouse, a keyboard, or a display device.
 プログラムは、通常は補助記憶装置902に記憶されており、主記憶装置903にロードされ、演算装置901に読み込まれ、演算装置901によって実行される。
 例えば、オペレーティングシステム(OS)が補助記憶装置902に記憶される。また、「~部」として説明している機能を実現するプログラムが補助記憶装置902に記憶される。そして、OSおよび「~部」として説明している機能を実現するプログラムは主記憶装置903にロードされ、演算装置901によって実行される。「~部」は「~処理」「~工程」と読み替えることができる。
The program is normally stored in the auxiliary storage device 902, loaded into the main storage device 903, read into the arithmetic device 901, and executed by the arithmetic device 901.
For example, an operating system (OS) is stored in the auxiliary storage device 902. Further, a program for realizing the function described as “˜unit” is stored in the auxiliary storage device 902. The OS and the program that realizes the functions described as “˜units” are loaded into the main storage device 903 and executed by the arithmetic device 901. “˜part” can be read as “˜processing” and “˜process”.
 「~の判断」、「~の判定」、「~の抽出」、「~の検知」、「~の設定」、「~の登録」、「~の選択」、「~の生成」、「~の入力」、「~の出力」等の処理の結果を示す情報、データ、ファイル、信号値または変数値が主記憶装置903または補助記憶装置902に記憶される。また、クライアントサーバープログラム生成装置200が使用するその他のデータが主記憶装置903または補助記憶装置902に記憶される。 “Determining”, “Determining”, “Extracting”, “Detecting”, “Settings”, “Registering”, “Selecting”, “Generating”, “To” Information, data, files, signal values or variable values indicating the results of processing such as “input”, “output of”, etc. are stored in the main storage device 903 or the auxiliary storage device 902. Further, other data used by the client server program generation device 200 is stored in the main storage device 903 or the auxiliary storage device 902.
 実施の形態1により、スタンドアロン型のアプリケーションプログラム100を用いてサーバープログラム110を生成することができる。
 例えば、100万行を超えるような大規模なスタンドアロン型のGUIアプリケーションを、そのソースプログラムには改変を行わずに、クライアントサーバー型のアプリケーションプログラムとして使用することができる。これにより、クラウドコンピューティングサービスに適応することが困難である大規模なアプリケーションプログラムをクラウドコンピューティングサービスに適応することができる。
According to the first embodiment, the server program 110 can be generated using the stand-alone type application program 100.
For example, a large-scale stand-alone GUI application exceeding 1 million lines can be used as a client-server type application program without modifying the source program. Thereby, a large-scale application program that is difficult to adapt to the cloud computing service can be adapted to the cloud computing service.
 実施の形態2.
 サーバープログラム110に加えてクライアントプログラム120を生成する形態について説明する。
 以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
Embodiment 2. FIG.
A mode for generating the client program 120 in addition to the server program 110 will be described.
Hereinafter, items different from the first embodiment will be mainly described. Matters whose description is omitted are the same as those in the first embodiment.
 図8は、実施の形態2におけるクライアントサーバープログラム生成装置200の機能構成図である。
 実施の形態2におけるクライアントサーバープログラム生成装置200の機能構成について、図8に基づいて説明する。
FIG. 8 is a functional configuration diagram of the client server program generation device 200 according to the second embodiment.
A functional configuration of the client server program generation device 200 according to the second embodiment will be described with reference to FIG.
 クライアントサーバープログラム生成装置200は、実施の形態1(図2参照)で説明した構成の他に、クライアント通信インターフェース生成部230(クライアント通信プログラム編集部の一例)を備える。
 また、装置記憶部290は、クライアント通信インターフェースファイル500を記憶する。
The client server program generation device 200 includes a client communication interface generation unit 230 (an example of a client communication program editing unit) in addition to the configuration described in the first embodiment (see FIG. 2).
In addition, the device storage unit 290 stores the client communication interface file 500.
 クライアント通信インターフェースファイル500は、クライアント通信インターフェース121のソースプログラムファイルである。クライアント通信インターフェースファイル500は、サーバー通信インターフェース111との通信に必要なソースコードを含む。 The client communication interface file 500 is a source program file of the client communication interface 121. The client communication interface file 500 includes source code necessary for communication with the server communication interface 111.
 クライアント通信インターフェース生成部230は、GUI101から外部関数の実行が要求されたときに実行要求メッセージを送信するソースコード(以下、実行要求コードという)をクライアント通信インターフェースファイル500に追加する。
 クライアントサーバープログラム生成部280は、クライアント通信インターフェースファイル500とGUI101のアプリケーションファイル300とをコンパイルおよびリンクすることによって、クライアントプログラム120を生成する。
The client communication interface generation unit 230 adds, to the client communication interface file 500, source code (hereinafter, referred to as an execution request code) that transmits an execution request message when the GUI 101 requests execution of an external function.
The client server program generation unit 280 generates the client program 120 by compiling and linking the client communication interface file 500 and the application file 300 of the GUI 101.
 図9は、実施の形態2におけるクライアントサーバープログラム生成方法のフローチャートである。
 実施の形態2におけるクライアントサーバープログラム生成方法について、図9に基づいて説明する。
FIG. 9 is a flowchart of the client server program generation method according to the second embodiment.
A client server program generation method according to the second embodiment will be described with reference to FIG.
 S210において、アプリケーションプログラム解析部210は、未選択のアプリケーションファイル300を選択する。S210は実施の形態1のS110と同様である(図3参照)。
 S210の後、処理はS220に進む。
In S210, the application program analysis unit 210 selects an unselected application file 300. S210 is the same as S110 of the first embodiment (see FIG. 3).
After S210, the process proceeds to S220.
 S220において、アプリケーションプログラム解析部210は、S210で選択されたアプリケーションファイル300を解析する。S220は実施の形態1のS120と同様である(図3参照)。
 S220の後、処理はS230に進む。
In S220, the application program analysis unit 210 analyzes the application file 300 selected in S210. S220 is the same as S120 of the first embodiment (see FIG. 3).
After S220, the process proceeds to S230.
 S230において、アプリケーションプログラム解析部210は、アプリケーションファイル300が外部関数を含んでいるか否かを判定する。S230は実施の形態1のS130と同様である(図3参照)。
 アプリケーションファイル300が外部関数を含んでいる場合(YES)、処理はS240に進む。
 アプリケーションファイル300が外部関数を含んでいない場合(NO)、処理はS260に進む。
In S230, the application program analysis unit 210 determines whether or not the application file 300 includes an external function. S230 is the same as S130 of the first embodiment (see FIG. 3).
If the application file 300 includes an external function (YES), the process proceeds to S240.
If the application file 300 does not include an external function (NO), the process proceeds to S260.
 S240において、サーバー通信インターフェース生成部220は、サーバー通信インターフェースファイル400に外部関数の呼び出しコードを追加する。S240は実施の形態1のS140と同様である(図3参照)。
 S240の後、処理はS250に進む。
In S <b> 240, the server communication interface generation unit 220 adds an external function call code to the server communication interface file 400. S240 is the same as S140 in the first embodiment (see FIG. 3).
After S240, the process proceeds to S250.
 S250において、クライアント通信インターフェース生成部230は、GUI101から外部関数の実行が要求されたときに実行要求メッセージを送信する実行要求コードを、クライアント通信インターフェースファイル500に追加する。
 S250の後、処理はS260に進む。
In S <b> 250, the client communication interface generation unit 230 adds an execution request code that transmits an execution request message when an external function execution is requested from the GUI 101 to the client communication interface file 500.
After S250, the process proceeds to S260.
 図10、図11は、実施の形態2におけるクライアント通信インターフェースファイル500の一例を示す図である。
 実施の形態2におけるクライアント通信インターフェースファイル500の一例について、図10および図11に基づいて説明する。
10 and 11 are diagrams illustrating an example of the client communication interface file 500 according to the second embodiment.
An example of the client communication interface file 500 according to the second embodiment will be described with reference to FIGS.
 クライアント通信インターフェースファイル500は、サーバー通信インターフェース111と通信するクライアント通信インターフェース121のソースファイルである。
 クライアント通信インターフェース生成部230は、getname()をクライアント通信インターフェースファイル500に追加する(図11の503参照)。このgetname()は、実行要求メッセージを送信する実行要求コード(write)と、実行結果を示す実行応答メッセージを受信するソースコード(read)とを含んだ関数である。
 クライアント通信インターフェースファイル500のうち、getname()を除く部分(図10および図11の破線より上の部分)は、定型のソースコードである。定型のソースコードが記述されたクライアント通信インターフェースファイル500は予め用意しておく。
 クライアント通信インターフェースファイル500の定型の部分には、createSession()およびcloseSession()が含まれる(図10の501、502参照)。createSession()はサーバー通信インターフェース111とセッションを確立する関数であり、closeSession()は確立したセッションを解放する関数である。
 図9に戻り、S260から説明を続ける。
The client communication interface file 500 is a source file of the client communication interface 121 that communicates with the server communication interface 111.
The client communication interface generation unit 230 adds getname () to the client communication interface file 500 (see 503 in FIG. 11). This getname () is a function including an execution request code (write) for transmitting an execution request message and a source code (read) for receiving an execution response message indicating the execution result.
In the client communication interface file 500, the part excluding getname () (the part above the broken line in FIGS. 10 and 11) is a standard source code. A client communication interface file 500 in which a fixed source code is described is prepared in advance.
The fixed part of the client communication interface file 500 includes createSession () and closeSession () (see 501 and 502 in FIG. 10). createSession () is a function that establishes a session with the server communication interface 111, and closeSession () is a function that releases the established session.
Returning to FIG. 9, the description will be continued from S260.
 S260において、アプリケーションプログラム解析部210は、S210で選択していない未選択のアプリケーションファイル300が有るか否かを判定する。
 未選択のアプリケーションファイル300が有る場合(YES)、処理はS210に戻る。
 未選択のアプリケーションファイル300が無い場合(NO)、処理はS270に進む。
In S260, the application program analysis unit 210 determines whether there is an unselected application file 300 that has not been selected in S210.
If there is an unselected application file 300 (YES), the process returns to S210.
If there is no unselected application file 300 (NO), the process proceeds to S270.
 S270において、クライアントサーバープログラム生成部280は、実施の形態1のS160(図3参照)と同様に、サーバープログラム110を生成する。
 さらに、クライアントサーバープログラム生成部280は、クライアント通信インターフェースファイル500とGUI101のアプリケーションファイル300とをコンパイルおよびリンクすることによって、クライアントプログラム120を生成する。
 S270の後、クライアントサーバープログラム生成方法の処理は終了する。
In S270, the client server program generation unit 280 generates the server program 110 as in S160 (see FIG. 3) of the first embodiment.
Further, the client server program generation unit 280 generates the client program 120 by compiling and linking the client communication interface file 500 and the application file 300 of the GUI 101.
After S270, the processing of the client server program generation method ends.
 実施の形態2により、スタンドアロン型のアプリケーションプログラム100を用いてサーバープログラム110およびクライアントプログラム120を生成することができる。 According to the second embodiment, the server program 110 and the client program 120 can be generated using the stand-alone application program 100.
 実施の形態3.
 外部関数にGUI処理とデータ処理とが含まれる場合にデータ処理だけをサーバー装置に実行させるクライアントサーバープログラムを生成する形態について説明する。
 以下、実施の形態1、2と異なる事項について主に説明する。説明を省略する事項については実施の形態1、2と同様である。
Embodiment 3 FIG.
A mode of generating a client server program that causes a server apparatus to execute only data processing when GUI processing and data processing are included in the external function will be described.
Hereinafter, items different from the first and second embodiments will be mainly described. Matters whose description is omitted are the same as in the first and second embodiments.
 まず、実施の形態3に関する背景技術について説明する。
 アプリケーションプログラム100は、GUI101を持つプログラムである。さらに言えば、アプリケーションプログラム100は、シミュレーションプログラム等とは異なり、ユーザーがGUIオブジェクトを操作したときに始めて動作するプログラムである。
First, background art regarding the third embodiment will be described.
The application program 100 is a program having a GUI 101. Furthermore, the application program 100 is a program that operates only when a user operates a GUI object, unlike a simulation program or the like.
 GUIを操作するためにユーザーが用いる主な入力手段はキーボードおよびマウスである。
 例えば、ユーザーは、キーボードを用いてGUIオブジェクトにデータを入力する。また例えば、ユーザーは、マウスを操作することによって、所望のGUIオブジェクトを選択したり、プルダウンメニューを選択したりする。
The main input means used by the user to operate the GUI are a keyboard and a mouse.
For example, the user inputs data into the GUI object using a keyboard. For example, the user operates the mouse to select a desired GUI object or select a pull-down menu.
 近年の高級プログラミング言語はGUIライブラリを提供している。プログラミング言語がオブジェクト指向型である場合、基底オブジェクト(基底クラスのオブジェクト)によってGUIのイベントハンドラが実装される。そして、GUIライブラリは、システムコールを発行してマウスまたはキーボードの操作によって発生する割り込みと付随するデータとを得るように実装される代わりに、基底オブジェクトに定義されたGUIのイベントハンドラを呼び出す。つまり、GUIライブラリは、システムコールを発行してマウスまたはキーボードの操作によって発生する割り込みと付随するデータとを得る機構をプログラマから隠蔽している。 Recent high-level programming languages provide GUI libraries. When the programming language is object-oriented, a GUI event handler is implemented by a base object (base class object). Then, the GUI library calls a GUI event handler defined in the base object, instead of being implemented so as to issue a system call to obtain an interrupt generated by the operation of the mouse or the keyboard and accompanying data. That is, the GUI library hides a mechanism for obtaining an interrupt generated by operating a mouse or a keyboard and accompanying data by issuing a system call from a programmer.
 オブジェクト指向型の高級プログラミング言語が用いられる場合、GUIライブラリから提供される上位のGUIクラスを継承した下位のGUIクラスによってGUI画面が構成される。GUIコンポーネントに対するイベントが発生した場合、継承しているGUIクラスのイベントハンドラの処理が定義される(この再定義はオーバーライドと呼ばれる)。 When an object-oriented high-level programming language is used, a GUI screen is configured by a lower GUI class that inherits the upper GUI class provided from the GUI library. When an event for a GUI component occurs, processing of the event handler of the inherited GUI class is defined (this redefinition is called an override).
 例えば、マウスを用いてメニューオブジェクトに対する左クリックが行われると、OnLeftClick()というイベントハンドラ内で実装されているメニューが表示される。また、マウスのボタンが離されてOnRelease()というイベントが発生したときに選択状態にあったメニューから入力データを得られる。 For example, when a left click is performed on a menu object using a mouse, a menu implemented in an event handler called OnLeftClick () is displayed. Also, input data can be obtained from the menu that is in the selected state when the mouse button is released and the event OnRelease () occurs.
 GUIを持つアプリケーションプログラムはユーザーから入力されたデータを元に演算を行う。このため、GUIライブラリのイベントハンドラの中身は、クライアントプログラムに実行させるGUI処理と、サーバープログラムに実行させるデータ処理とに切り分けることができる。 An application program with a GUI performs calculations based on data input by the user. For this reason, the contents of the event handler of the GUI library can be divided into GUI processing to be executed by the client program and data processing to be executed by the server program.
 図12は、実施の形態3におけるクライアントサーバープログラム生成装置200の機能構成図である。
 実施の形態3におけるクライアントサーバープログラム生成装置200の機能構成について、図12に基づいて説明する。
FIG. 12 is a functional configuration diagram of the client server program generation device 200 according to the third embodiment.
A functional configuration of the client server program generation device 200 according to Embodiment 3 will be described with reference to FIG.
 クライアントサーバープログラム生成装置200は、実施の形態2(図8参照)で説明した構成に加えて、API解析部211(外部関数解析部の一例)を備える。
 API解析部211は、API(Application Program Interface)を処理するAPI関数のソースコードを解析し、API関数にGUI101を使用するユーザーインターフェース処理とGUI101を使用しないデータ処理とが含まれるか否かを判定する。API関数は外部関数の一例である。
The client server program generation device 200 includes an API analysis unit 211 (an example of an external function analysis unit) in addition to the configuration described in the second embodiment (see FIG. 8).
The API analysis unit 211 analyzes a source code of an API function that processes an API (Application Program Interface), and determines whether the API function includes user interface processing that uses the GUI 101 and data processing that does not use the GUI 101. To do. An API function is an example of an external function.
 図13は、実施の形態3におけるクライアントサーバープログラム生成方法のフローチャートである。
 実施の形態3におけるクライアントサーバープログラム生成方法について、図13に基づいて説明する。
FIG. 13 is a flowchart of the client server program generation method according to the third embodiment.
A client server program generation method according to Embodiment 3 will be described with reference to FIG.
 S310において、アプリケーションプログラム解析部210は、未選択のアプリケーションファイル300を選択する。S310は実施の形態1のS110と同様である(図3参照)。
 S310の後、処理はS320に進む。
In S310, the application program analysis unit 210 selects an unselected application file 300. S310 is the same as S110 of the first embodiment (see FIG. 3).
After S310, the process proceeds to S320.
 S320において、アプリケーションプログラム解析部210は、S310で選択されたアプリケーションファイル300を解析する。S320は実施の形態1のS120と同様である(図3参照)。
 S320の後、処理はS330に進む。
In S320, the application program analysis unit 210 analyzes the application file 300 selected in S310. S320 is the same as S120 of the first embodiment (see FIG. 3).
After S320, the process proceeds to S330.
 S330において、アプリケーションプログラム解析部210は、S320の解析結果に基づいて、アプリケーションファイル300がAPI関数を呼び出す呼び出しコードを含んでいるか否かを判定する。
 例えば、アプリケーションプログラム解析部210は、API関数の関数名を示すAPIリスト291(図14参照)を用いて、アプリケーションファイル300がAPI関数を含んでいるか否かを判定する。
 図14は、実施の形態3におけるAPIリスト291の一例を示す図である。
 図14のAPIリスト291は、GUIライブラリクラスのAPI関数の関数名を示している。APIリスト291は、ハッシュ値を利用してAPI関数の関数名を配列したハッシュリストであってもよい。APIリスト291がハッシュリストである場合、API関数の関数名を高速に検索することができる。
 アプリケーションファイル300がAPI関数の呼び出しコードを含んでいる場合(YES)、処理はS340に進む。
 アプリケーションファイル300がAPI関数の呼び出しコードを含んでいない場合(NO)、処理はS370に進む。
In S330, the application program analysis unit 210 determines whether or not the application file 300 includes a call code for calling an API function, based on the analysis result in S320.
For example, the application program analysis unit 210 determines whether or not the application file 300 includes an API function using an API list 291 (see FIG. 14) indicating the function name of the API function.
FIG. 14 is a diagram illustrating an example of the API list 291 according to the third embodiment.
An API list 291 in FIG. 14 shows the function names of the API functions of the GUI library class. The API list 291 may be a hash list in which function names of API functions are arranged using hash values. When the API list 291 is a hash list, the function name of the API function can be searched at high speed.
If the application file 300 includes an API function call code (YES), the process proceeds to S340.
If the application file 300 does not include the API function call code (NO), the process proceeds to S370.
 S340において、サーバー通信インターフェース生成部220は、外部関数の呼び出しコード(実施の形態1参照)の代わりにAPI関数のソースコード(実行コードの一例)を、サーバー通信インターフェースファイル400に追加する。
 なお、API関数のソースコードは装置記憶部290に予め記憶しておく。
 S340の後、処理はS350に進む。
In S340, the server communication interface generation unit 220 adds the API function source code (an example of the execution code) to the server communication interface file 400 instead of the external function call code (see the first embodiment).
The API function source code is stored in the device storage unit 290 in advance.
After S340, the process proceeds to S350.
 S350において、クライアント通信インターフェース生成部230は、外部関数の代わりにAPI関数の実行を要求する実行要求コードを、クライアント通信インターフェースファイル500に追加する。
 S350の後、処理はS360に進む。
In S350, the client communication interface generation unit 230 adds an execution request code for requesting execution of the API function instead of the external function to the client communication interface file 500.
After S350, the process proceeds to S360.
 S360において、サーバー通信インターフェース生成部220はサーバー通信インターフェースファイル400を編集し、クライアント通信インターフェース生成部230はクライアント通信インターフェースファイル500を編集する。
 通信インターフェース編集処理(S360)の詳細については後述する。
 S360の後、処理はS370に進む。
In S360, the server communication interface generation unit 220 edits the server communication interface file 400, and the client communication interface generation unit 230 edits the client communication interface file 500.
Details of the communication interface editing process (S360) will be described later.
After S360, the process proceeds to S370.
 S370において、アプリケーションプログラム解析部210は、S310で選択していない未選択のアプリケーションファイル300が有るか否かを判定する。
 未選択のアプリケーションファイル300が有る場合(YES)、処理はS310に戻る。
 未選択のアプリケーションファイル300が無い場合(NO)、処理はS380に進む。
In S370, the application program analysis unit 210 determines whether there is an unselected application file 300 that has not been selected in S310.
If there is an unselected application file 300 (YES), the process returns to S310.
If there is no unselected application file 300 (NO), the process proceeds to S380.
 S380において、クライアントサーバープログラム生成部280は、実施の形態2のS270(図9参照)と同様に、サーバープログラム110とクライアントプログラム120とを生成する。
 S380の後、クライアントサーバープログラム生成方法の処理は終了する。
In S380, the client server program generation unit 280 generates the server program 110 and the client program 120, as in S270 (see FIG. 9) of the second embodiment.
After S380, the processing of the client server program generation method ends.
 図15は、実施の形態3における通信インターフェース編集処理(S360)のフローチャートである。
 実施の形態3における通信インターフェース編集処理(S360)について、図15に基づいて説明する。
FIG. 15 is a flowchart of the communication interface editing process (S360) in the third embodiment.
The communication interface editing process (S360) in the third embodiment will be described with reference to FIG.
 S361において、API解析部211は、S330(図13参照)で特定されたAPI関数のソースコードを解析する。例えば、API解析部211は、API関数のソースコードに対して字句解析および構文解析を行う。
 以下、S330で特定されたAPI関数を特定APIという。
 S361の後、処理はS362に進む。
In S361, the API analysis unit 211 analyzes the source code of the API function specified in S330 (see FIG. 13). For example, the API analysis unit 211 performs lexical analysis and syntax analysis on the API function source code.
Hereinafter, the API function specified in S330 is referred to as a specific API.
After S361, the process proceeds to S362.
 S362において、API解析部211は、S361の解析結果に基づいて、特定APIがAPI関数の呼び出しコードを含んでいるか否かを判定する。判定方法はS330(図13参照)と同様である。
 特定APIがAPI関数の呼び出しコードを含んでいる場合(YES)、処理はS363に進む。
 特定APIがAPI関数の呼び出しコードを含んでいない場合(NO)、通信インターフェース編集処理(S360)は終了する。
In S362, the API analysis unit 211 determines whether or not the specific API includes an API function call code based on the analysis result of S361. The determination method is the same as S330 (see FIG. 13).
If the specific API includes an API function call code (YES), the process proceeds to S363.
When the specific API does not include the API function call code (NO), the communication interface editing process (S360) ends.
 S363において、API解析部211は、S361の解析結果に基づいて、特定APIに含まれる呼び出しコードによって呼び出されるAPI関数がGUIのイベントハンドラ(ユーザーインターフェース処理の一例)であるか否かを判定する。例えば、API解析部211は、GUIイベントハンドラの名称を示すGUIイベントハンドラリストを用いて、API関数がGUIのイベントハンドラであるか否かを判定する。この場合、GUIイベントハンドラリストは装置記憶部290に予め記憶しておく。
 API関数がGUIのイベントハンドラである場合、処理はS364に進む。
 API関数がGUIのイベントハンドラでない場合、通信インターフェース編集処理(S360)は終了する。
In S363, the API analysis unit 211 determines whether the API function called by the call code included in the specific API is a GUI event handler (an example of user interface processing) based on the analysis result in S361. For example, the API analysis unit 211 determines whether the API function is a GUI event handler by using a GUI event handler list indicating the name of the GUI event handler. In this case, the GUI event handler list is stored in advance in the device storage unit 290.
If the API function is a GUI event handler, the process proceeds to S364.
If the API function is not a GUI event handler, the communication interface editing process (S360) ends.
 S364において、サーバー通信インターフェース生成部220は、S340(図13参照)でサーバー通信インターフェースファイル400に追加した特定APIのソースコードに、コールバック関数を追加する。
 コールバック関数(ユーザーインターフェース要求コードの一例)は、クライアント装置にGUIのイベントハンドラの実行を要求する実行要求メッセージ(ユーザーインターフェース要求メッセージの一例)を送信する関数である。
 例えば、サーバー通信インターフェース生成部220は、GUIのイベントハンドラを呼び出す呼び出しコードの前または後にコールバック関数を追加する。
 また、サーバー通信インターフェース生成部220は、サーバープログラム110が使用する複数のライブラリ(バイナリコード)のうち、GUIのイベントハンドラとして機能するライブラリを編集することにより、GUIのイベントハンドラの機能を無効にする。
 S364の後、処理はS365に進む。
In S364, the server communication interface generation unit 220 adds a callback function to the source code of the specific API added to the server communication interface file 400 in S340 (see FIG. 13).
The callback function (an example of a user interface request code) is a function that transmits an execution request message (an example of a user interface request message) for requesting execution of a GUI event handler to a client device.
For example, the server communication interface generation unit 220 adds a callback function before or after the calling code that calls the GUI event handler.
In addition, the server communication interface generation unit 220 invalidates the function of the GUI event handler by editing a library that functions as a GUI event handler among a plurality of libraries (binary codes) used by the server program 110. .
After S364, the process proceeds to S365.
 S365において、クライアント通信インターフェース生成部230は、クライアント通信インターフェースファイル500にGUI101のイベントハンドラを呼び出す呼び出しコードを追加する。これにより、クライアントプログラム120は、サーバープログラム110のコールバック関数からの要求に応じて、GUI101のイベントハンドラを実行することができる。
 また、クライアント通信インターフェース生成部230は、GUI101のイベントハンドラの実行結果を応答する実行応答コードをクライアント通信インターフェースファイル500に追加する。
 S365の後、通信インターフェース編集処理(S360)は終了する。
In S <b> 365, the client communication interface generation unit 230 adds a call code that calls an event handler of the GUI 101 to the client communication interface file 500. Thereby, the client program 120 can execute the event handler of the GUI 101 in response to a request from the callback function of the server program 110.
Further, the client communication interface generation unit 230 adds an execution response code that responds to the execution result of the event handler of the GUI 101 to the client communication interface file 500.
After S365, the communication interface editing process (S360) ends.
 実施の形態4.
 高速化ロジックを含んだクライアントプログラム120を生成する形態について説明する。
 以下、実施の形態1から3と異なる事項について主に説明する。説明を省略する事項については実施の形態1から3の少なくともいずれかと同様である。
Embodiment 4 FIG.
A mode for generating the client program 120 including the acceleration logic will be described.
Hereinafter, items different from the first to third embodiments will be mainly described. Matters whose description is omitted are the same as at least one of the first to third embodiments.
 クライアントサーバープログラム生成装置200の構成は、実施の形態2(図8参照)または実施の形態3(図12参照)と同様である。 The configuration of the client server program generation device 200 is the same as that of the second embodiment (see FIG. 8) or the third embodiment (see FIG. 12).
 但し、クライアント通信インターフェース生成部230は、実施の形態2で説明した処理(図9のS250)または実施の形態3で説明した処理(図13のS350、図15のS365)に加えて、以下の処理を実行する。 However, in addition to the process described in the second embodiment (S250 in FIG. 9) or the process described in the third embodiment (S350 in FIG. 13 and S365 in FIG. 15), the client communication interface generation unit 230 performs the following processing: Execute the process.
 クライアント通信インターフェース生成部230は、回数計測コードと、回数算出コードと、条件分岐コードと、データ同期コードとをクライアント通信インターフェースファイル500に追加する。
 また、クライアント通信インターフェース生成部230は、外部関数をクライアント通信インターフェースファイル500に追加する。
The client communication interface generation unit 230 adds the number measurement code, the number calculation code, the conditional branch code, and the data synchronization code to the client communication interface file 500.
In addition, the client communication interface generation unit 230 adds the external function to the client communication interface file 500.
 回数計測コードは、実行要求コードが実行された実行要求回数を計測するソースコードである。 The number measurement code is source code for measuring the number of execution requests for which the execution request code has been executed.
 回数算出コードは、回数計測コードによって計測された回数算出コードに基づいて、実行要求コードが実行された単位時間当たりの回数を算出するソースコードである。 The number calculation code is a source code for calculating the number of times per unit time that the execution request code is executed based on the number calculation code measured by the number measurement code.
 条件分岐コードは、回数算出コードによって算出された単位時間当たりの回数と実行要求回数閾値とを比較する。実行要求回数閾値は予め決められた値である。
 単位時間当たりの回数が実行要求回数閾値より多い場合、条件分岐コードは、外部関数が使用するデータを要求するデータ要求メッセージをサーバー通信インターフェース111に送信し、外部関数が使用するデータをサーバー通信インターフェース111から受信し、受信したデータをクライアント装置のメモリに記憶し、メモリに記憶したデータを用いて外部関数を実行する。
 単位時間当たりの回数が実行要求回数より少ない場合、条件分岐コードは実行要求コードを実行する。
 単位時間当たりの回数が実行要求回数閾値と同じである場合、条件分岐コードは上記のいずれかの場合と同じ処理を実行する。つまり、条件分岐コードは外部関数と実行要求コードとのいずれかを実行する。
The conditional branch code compares the number of times per unit time calculated by the number calculation code with the execution request frequency threshold. The execution request frequency threshold is a predetermined value.
When the number of times per unit time is greater than the execution request count threshold, the conditional branch code transmits a data request message requesting data used by the external function to the server communication interface 111, and the data used by the external function is transmitted to the server communication interface. The received data is stored in the memory of the client device, and an external function is executed using the data stored in the memory.
If the number of times per unit time is less than the number of execution requests, the conditional branch code executes the execution request code.
When the number of times per unit time is the same as the execution request frequency threshold, the conditional branch code executes the same processing as in any of the above cases. That is, the conditional branch code executes either the external function or the execution request code.
 データ同期コードは、クライアント装置に記憶されているデータとサーバー装置に記憶されているデータとを同期させるために、クライアント装置のメモリに記憶されているデータを特定のタイミングでサーバー装置に送信するソースコードである。例えば、特定のタイミングは、クライアント装置のGUI101が終了になるとき、または、外部関数が所定の同期タイミング回数だけ実行されたときである。 The data synchronization code is a source for transmitting data stored in the memory of the client device to the server device at a specific timing in order to synchronize the data stored in the client device and the data stored in the server device. Code. For example, the specific timing is when the GUI 101 of the client apparatus ends or when the external function is executed a predetermined number of times of synchronization.
 実施の形態4により、クライアント装置は、サーバー装置に記憶されているデータをキャッシュし、キャッシュしたデータを用いて外部関数を実行し、サーバー装置に外部関数の実行を要求するRPCを減らすことができる。 According to the fourth embodiment, the client device can cache the data stored in the server device, execute the external function using the cached data, and reduce the RPC that requests the server device to execute the external function. .
 実施の形態5.
 各実施の形態において、サーバー通信インターフェース111およびクライアント通信インターフェース121は、HTTP(HyperText Transfer Protocol)を用いて通信を行うプログラムであってもよい。
Embodiment 5 FIG.
In each embodiment, the server communication interface 111 and the client communication interface 121 may be programs that perform communication using HTTP (HyperText Transfer Protocol).
 図16は、実施の形態5におけるクライアントサーバーシステム600の一例を示す図である。
 図16に示すクライアントサーバーシステム600は、クライアント装置601と、クライアント装置601側のファイアウォール602と、サーバー装置604と、サーバー装置604側のファイアウォール603とを備える。
 クライアントサーバーシステム600におけるRPC機構は、その通信手段として、HTTPまたはHTTPの派生手順(Websocket等)を排除しない。したがって、多重のファイアウォール(602、603)が介在しても、RPC機構に影響を与えない。
FIG. 16 is a diagram illustrating an example of the client server system 600 according to the fifth embodiment.
A client server system 600 illustrated in FIG. 16 includes a client device 601, a firewall 602 on the client device 601 side, a server device 604, and a firewall 603 on the server device 604 side.
The RPC mechanism in the client server system 600 does not exclude HTTP or an HTTP derivation procedure (Websocket or the like) as its communication means. Therefore, even if multiple firewalls (602, 603) are interposed, the RPC mechanism is not affected.
 実施の形態6.
 WEBブラウザをクライアントプログラムとして使用する形態について説明する。
 以下、実施の形態1と異なる事項について主に説明する。説明を省略する事項については実施の形態1と同様である。
Embodiment 6 FIG.
A mode in which a WEB browser is used as a client program will be described.
Hereinafter, items different from the first embodiment will be mainly described. Matters whose description is omitted are the same as those in the first embodiment.
 図17は、実施の形態6におけるアプリケーションプログラム100とサーバープログラム110とクライアントプログラム120との関係図である。
 実施の形態6におけるアプリケーションプログラム100とサーバープログラム110とクライアントプログラム120との関係について、図17に基づいて説明する。
FIG. 17 is a relationship diagram among the application program 100, the server program 110, and the client program 120 in the sixth embodiment.
A relationship among the application program 100, the server program 110, and the client program 120 in the sixth embodiment will be described with reference to FIG.
 クライアントプログラム120は、実施の形態1と異なり、WEBブラウザによって構成される。つまり、WEBブラウザがクライアントプログラム120として機能する。
 サーバープログラム110のサーバー通信インターフェース111は、データ変換関数112(データ形式変換コードの一例)を備える。
 データ変換関数112は、クライアントプログラム120から受信したメッセージのデータ形式をクライアントデータ形式からサーバーデータ形式に変換し、クライアントプログラム120に送信するメッセージのデータ形式をサーバーデータ形式からクライアントデータ形式に変換する。ここで、クライアントデータ形式はクライアントプログラム120が使用するデータ形式であり、サーバーデータ形式はサーバープログラム110が使用するデータ形式である。
 例えば、データ変換関数112は、外部関数の実行を要求する実行要求メッセージのデータ形式をクライアントデータ形式からサーバーデータ形式に変換する。また、データ変換関数112は、外部関数の実行結果を応答する実行応答メッセージのデータ形式をサーバーデータ形式からクライアントデータ形式に変換する。
Unlike the first embodiment, the client program 120 is configured by a WEB browser. That is, the WEB browser functions as the client program 120.
The server communication interface 111 of the server program 110 includes a data conversion function 112 (an example of a data format conversion code).
The data conversion function 112 converts the data format of the message received from the client program 120 from the client data format to the server data format, and converts the data format of the message transmitted to the client program 120 from the server data format to the client data format. Here, the client data format is a data format used by the client program 120, and the server data format is a data format used by the server program 110.
For example, the data conversion function 112 converts the data format of the execution request message that requests execution of the external function from the client data format to the server data format. The data conversion function 112 converts the data format of the execution response message that returns the execution result of the external function from the server data format to the client data format.
 図18は、実施の形態6におけるメッセージのデータ変換の一例を示す図である。
 図18に示すメッセージ611はクライアントプログラム120とサーバープログラム110との間で通信するメッセージの一例であり、メッセージ616はメッセージ611をJSON(JavaScript Object Notation)形式に変換したものである。「JavaScript」は登録商標である。
 メッセージヘッダ612はメッセージ611が分割されたものか否かの情報とメッセージ611のデータサイズとを示し、整数613はint形式の「4」を示し、バイナリデータサイズ614はバイナリデータ615のデータサイズを示す。
 メッセージ611とメッセージ616との相互のデータ変換は、サーバー通信インターフェース111がメッセージ611を受信した直後と、サーバー通信インターフェース111がメッセージ611を送信する直前に実行される。
FIG. 18 is a diagram illustrating an example of message data conversion in the sixth embodiment.
A message 611 illustrated in FIG. 18 is an example of a message communicated between the client program 120 and the server program 110, and the message 616 is obtained by converting the message 611 into a JSON (Java Script Object Notification) format. “JavaScript” is a registered trademark.
The message header 612 indicates whether or not the message 611 is divided and the data size of the message 611. The integer 613 indicates “4” in the int format. The binary data size 614 indicates the data size of the binary data 615. Show.
Mutual data conversion between the message 611 and the message 616 is performed immediately after the server communication interface 111 receives the message 611 and immediately before the server communication interface 111 transmits the message 611.
 クライアントサーバープログラム生成装置200の構成は実施の形態1と同様である(図2参照)。
 但し、サーバー通信インターフェースファイル400は、定型のソースコードの一部として、データ変換関数112と受信メッセージ変換コードと送信メッセージ変換コードとを含んでいる。
 受信メッセージ変換コードは、クライアントプログラム120からメッセージを受信した後、外部関数の呼び出しコードを実行する前に、データ変換関数112を呼び出すソースコードである。
 送信メッセージ変換コードは、外部関数の呼び出しコードを実行した後、クライアントプログラム120にメッセージを送信する前にデータ変換関数112を呼び出すソースコードである。
The configuration of the client server program generation device 200 is the same as that of the first embodiment (see FIG. 2).
However, the server communication interface file 400 includes the data conversion function 112, the received message conversion code, and the transmission message conversion code as a part of the standard source code.
The received message conversion code is source code for calling the data conversion function 112 after receiving a message from the client program 120 and before executing the call code for the external function.
The transmission message conversion code is source code for calling the data conversion function 112 after executing the external function call code and before transmitting the message to the client program 120.
 サーバープログラム生成方法は実施の形態1と同様である(図3参照)。 The server program generation method is the same as that in the first embodiment (see FIG. 3).
 サーバー通信インターフェース111は、定型のソースコードの一部として、オブジェクト生成関数(オブジェクト生成コードの一例)とオブジェクト選択コードとを含んでもよい。
 オブジェクト選択コードは、クライアント装置のWEBブラウザから送信されたメッセージの内容に基づいてWEBブラウザの画面に表示するGUIオブジェクトを選択し、選択したGUIオブジェクトを指定してオブジェクト生成関数を呼び出すソースコードである。
 オブジェクト生成関数は、指定されたGUIオブジェクトのデータを生成する。プルダウンメニュー、ボタン、ダイアログ、カンバス、ツリーはGUIオブジェクトの一例である。GUIオブジェクトはGUIコンポーネントともいう。
 GUIオブジェクトのデータはメッセージの一部としてクライアント装置に送信され、GUIオブジェクトはWEBブラウザによって表示される。
The server communication interface 111 may include an object generation function (an example of object generation code) and an object selection code as a part of the standard source code.
The object selection code is source code that selects a GUI object to be displayed on the screen of the WEB browser based on the content of the message transmitted from the WEB browser of the client device, calls the object generation function by specifying the selected GUI object. .
The object generation function generates data of a specified GUI object. Pull-down menus, buttons, dialogs, canvases, and trees are examples of GUI objects. The GUI object is also referred to as a GUI component.
The data of the GUI object is transmitted to the client device as a part of the message, and the GUI object is displayed by the WEB browser.
 図19は、実施の形態6におけるWEBブラウザ617の画面の一例を示す図である。
 図19に示すWEBブラウザ617は、部品一覧618と画面設計部619とを備えている。また、画面設計部619は、ボタン619Aとツリー619Bとカンバス619Cとを含んだ設計画面を表示している。
 例えば、画面設計者は部品一覧618から部品(GUIオブジェクト)を選択し、選択した部品を画面設計部619にドラッグアンドドロップすることによって画面を設計する。また、画面設計者は画面の遷移を設計する。
FIG. 19 is a diagram illustrating an example of a screen of the WEB browser 617 according to the sixth embodiment.
A WEB browser 617 shown in FIG. 19 includes a parts list 618 and a screen design unit 619. The screen design unit 619 displays a design screen including a button 619A, a tree 619B, and a canvas 619C.
For example, the screen designer selects a component (GUI object) from the component list 618 and designs the screen by dragging and dropping the selected component onto the screen design unit 619. The screen designer designs screen transitions.
 実施の形態6により、WEBブラウザ(WEBブラウザ上で動作するスクリプトを含む)をクライアントプログラム120として利用することができる。つまり、ユーザーは、一般に流通しているWEBブラウザからサーバープログラム110にアクセスすることができる。例えば、ユーザーは、WEBブラウザからサーバープログラム110にアクセスすることによって、画面を設計することができる。 According to the sixth embodiment, a WEB browser (including a script that operates on the WEB browser) can be used as the client program 120. That is, the user can access the server program 110 from a generally distributed WEB browser. For example, a user can design a screen by accessing the server program 110 from a WEB browser.
 実施の形態7.
 実施の形態6を適応したコンピュータシステムの形態について説明する。
Embodiment 7 FIG.
A form of a computer system to which the sixth embodiment is applied will be described.
 図20は、実施の形態7におけるコンピュータシステム620の一例を示す図である。
 実施の形態7におけるコンピュータシステム620の一例について、図20に基づいて説明する。
FIG. 20 is a diagram illustrating an example of a computer system 620 according to the seventh embodiment.
An example of a computer system 620 according to Embodiment 7 will be described with reference to FIG.
 ユーザーは、クラウドコンピューティングサービスに適応したサーバープログラム110にクライアントプログラム120を接続し、サーバープログラム110にアクセスしてクラウド上にデータを作成する。
 クライアントプログラム120は、認証手段があることを前提にして制約が解除されたWEBブラウザを利用し、データ制御装置621へのデータの書き込み、及び、データ制御装置621からのデータの読み出しを行う。
The user connects the client program 120 to the server program 110 adapted to the cloud computing service, accesses the server program 110, and creates data on the cloud.
The client program 120 writes data to the data control device 621 and reads data from the data control device 621 using a WEB browser whose restrictions are released on the assumption that there is an authentication means.
 実施の形態8.
 サーバープログラムが複数のクライアントプログラムとマルチキャスト通信を行う形態について説明する。
 以下、実施の形態1から3と異なる事項について主に説明する。説明を省略する事項については実施の形態1から3の少なくともいずれかと同様である。
Embodiment 8 FIG.
A mode in which the server program performs multicast communication with a plurality of client programs will be described.
Hereinafter, items different from the first to third embodiments will be mainly described. Matters whose description is omitted are the same as at least one of the first to third embodiments.
 クライアントサーバープログラム生成装置200の構成は、実施の形態1から3のいずれかと同様である(図2、図8、図12参照)。
 クライアントサーバープログラム生成方法は、実施の形態1から3のいずれかと同様である(図3、図9、図13参照)。
The configuration of the client server program generation device 200 is the same as that of any one of the first to third embodiments (see FIGS. 2, 8, and 12).
The client server program generation method is the same as in any one of the first to third embodiments (see FIGS. 3, 9, and 13).
 但し、サーバー通信インターフェース生成部220は、マルチキャスト送信コードをクライアント通信インターフェースファイル500に追加する。
 マルチキャスト送信コードは、実行要求メッセージを送信したクライアント装置を含む複数のクライアント装置に実行応答メッセージをマルチキャストで送信するソースコードである。実行応答メッセージは実行要求メッセージによって要求された外部関数の実行結果を示すメッセージである。
 なお、マルチキャストはブロードキャストと読み替えてもよい。
However, the server communication interface generation unit 220 adds the multicast transmission code to the client communication interface file 500.
The multicast transmission code is source code for multicasting an execution response message to a plurality of client devices including the client device that has transmitted the execution request message. The execution response message is a message indicating the execution result of the external function requested by the execution request message.
Multicast may be read as broadcast.
 図21は、実施の形態8におけるクライアントサーバーシステム630の一例を示す図である。
 実施の形態8におけるクライアントサーバーシステム630の一例について、図21に基づいて説明する。
FIG. 21 is a diagram illustrating an example of the client server system 630 according to the eighth embodiment.
An example of the client server system 630 according to the eighth embodiment will be described with reference to FIG.
 ここで、クライアント装置635がデータ変更のRPCを発行したものとする。
 サーバー装置631は、クライアント装置635には同期的RPCとしてメッセージを戻すが、クライアント装置632~634、クライアント装置636およびクライアント装置637には自ら管理するセッション情報を用いてデータ変更の内容をマルチキャストする。
 クライアントプログラム120のリスニングスレッドは非同期にメッセージを受け取り、データ変更を表示に反映させる。
Here, it is assumed that the client device 635 has issued an RPC for changing data.
The server device 631 returns a message as a synchronous RPC to the client device 635, but multicasts the contents of the data change to the client devices 632 to 634, the client device 636, and the client device 637 using session information managed by itself.
The listening thread of the client program 120 receives the message asynchronously and reflects the data change on the display.
 実施の形態9.
 実施の形態1から8のいずれかを適応したコンピュータシステムの形態について説明する。
Embodiment 9 FIG.
A form of a computer system to which any one of the first to eighth embodiments is applied will be described.
 図22は、実施の形態9におけるコンピュータシステム640の一例を示す図である。
 実施の形態9におけるコンピュータシステム640の一例について、図22に基づいて説明する。
FIG. 22 is a diagram illustrating an example of a computer system 640 according to the ninth embodiment.
An example of a computer system 640 according to Embodiment 9 will be described with reference to FIG.
 クライアント装置647は、ファイアウォール646を挟んで認証サーバー641から認証されると、認証チケットが与えられる。
 クライアント装置647は、サーバー装置(641~645)が提供するサービスのうち所望のサービスをURLに指定し、認証チケットを用いてサービス起動サーバー648にアクセスする。これにより、所望のサービスを提供するサーバー装置のサーバープログラムが実行される。
When the client device 647 is authenticated by the authentication server 641 across the firewall 646, an authentication ticket is given.
The client device 647 designates a desired service among the services provided by the server devices (641 to 645) in the URL, and accesses the service activation server 648 using the authentication ticket. Thereby, the server program of the server device that provides a desired service is executed.
 ここで、クライアント装置647はエンジニアリングサーバー643のURLを指定し、サービス起動サーバー648に認証チケットを渡したものとする。
 サービス起動サーバー648は、認証サーバー641にチケット情報を問い合わせてクライアント装置647のアクセスを認証する。
 クライアント装置647の認証チケットが認証サーバー851から与えられた認証チケットに合致すれば、サービス起動サーバー648はエンジニアリングサーバー643のサーバープログラムを起動する。
Here, it is assumed that the client device 647 specifies the URL of the engineering server 643 and passes the authentication ticket to the service activation server 648.
The service activation server 648 inquires ticket information to the authentication server 641 and authenticates the access of the client device 647.
If the authentication ticket of the client device 647 matches the authentication ticket given from the authentication server 851, the service activation server 648 activates the server program of the engineering server 643.
 資産サーバー642、エンジニアリングサーバー643、機器管理サーバー644および生産管理サーバー645のそれぞれのサーバープログラムは、本来ならばシステムの利用シーンに応じて連携して動作することが望ましいにも関わらず、1つのコンピュータに閉じて利用されてきたプログラムである。
 これらのサーバープログラムを各実施の形態で説明したようにクライアントサーバー化することによって、システムのユーザーに極めて高い利便性を与えることができる。
Each server program of the asset server 642, the engineering server 643, the equipment management server 644, and the production management server 645 is one computer although it is desirable that the server programs operate in accordance with the use scene of the system. It is a program that has been closed and used.
By making these server programs into client servers as described in the respective embodiments, extremely high convenience can be given to users of the system.
 各実施の形態は、クライアントサーバープログラム生成装置200の形態の一例である。
 つまり、クライアントサーバープログラム生成装置200は、各実施の形態で説明した機能または構成の一部を備えなくても構わない。また、クライアントサーバープログラム生成装置200は、各実施の形態で説明していない機能または構成を備えても構わない。さらに、各実施の形態は、矛盾が生じない範囲で一部または全てを組み合わせても構わない。
Each embodiment is an example of a form of the client server program generation device 200.
That is, the client server program generation device 200 may not have a part of the function or configuration described in each embodiment. Further, the client server program generation device 200 may have a function or configuration not described in each embodiment. Furthermore, some or all of the embodiments may be combined as long as no contradiction occurs.
 各実施の形態においてフローチャート等を用いて説明した処理手順は、各実施の形態に係る方法の処理手順の一例および各実施の形態に係るプログラム(例えば、クライアントサーバープログラム生成プログラム)の処理手順の一例である。
 つまり、各実施の形態に係る方法の処理手順および各実施の形態に係るプログラムの処理手順は、各実施の形態で説明した処理手順と一部異なる処理手順で実現されても構わない。
The processing procedures described using the flowcharts and the like in each embodiment are an example of a processing procedure of a method according to each embodiment and an example of a processing procedure of a program (for example, a client server program generation program) according to each embodiment. It is.
That is, the processing procedure of the method according to each embodiment and the processing procedure of the program according to each embodiment may be realized by a processing procedure partially different from the processing procedure described in each embodiment.
 100 アプリケーションプログラム、101 GUI、110 サーバープログラム、111 サーバー通信インターフェース、112 データ変換関数、120 クライアントプログラム、121 クライアント通信インターフェース、199 ネットワーク、200 クライアントサーバープログラム生成装置、210 アプリケーションプログラム解析部、211 API解析部、220 サーバー通信インターフェース生成部、230 クライアント通信インターフェース生成部、280 クライアントサーバープログラム生成部、290 装置記憶部、291 APIリスト、300 アプリケーションファイル、400 サーバー通信インターフェースファイル、500 クライアント通信インターフェースファイル、600 クライアントサーバーシステム、601 クライアント装置、602 ファイアウォール、603 ファイアウォール、604 サーバー装置、611 メッセージ、612 メッセージヘッダ、613 整数、614 バイナリデータサイズ、615 バイナリデータ、616 メッセージ、617 WEBブラウザ、618 部品一覧、619 画面設計部、619A ボタン、619B ツリー、619C カンバス、620 コンピュータシステム、621 データ制御装置、630 クライアントサーバーシステム、631 サーバー装置、632,633,634,635,636,637 クライアント装置、640 コンピュータシステム、641 認証サーバー、642 資産サーバー、643 エンジニアリングサーバー、644 機器管理サーバー、645 生産管理サーバー、646 ファイアウォール、647 クライアント装置、648 サービス起動サーバー、901 演算装置、902 補助記憶装置、903 主記憶装置、904 通信装置、905 入出力装置、909 バス。 100 application program, 101 GUI, 110 server program, 111 server communication interface, 112 data conversion function, 120 client program, 121 client communication interface, 199 network, 200 client server program generator, 210 application program analysis unit, 211 API analysis unit , 220 Server communication interface generation unit, 230 Client communication interface generation unit, 280 Client server program generation unit, 290 Device storage unit, 291 API list, 300 Application file, 400 Server communication interface file, 500 Client communication interface file, 60 Client server system, 601 client device, 602 firewall, 603 firewall, 604 server device, 611 message, 612 message header, 613 integer, 614 binary data size, 615 binary data, 616 message, 617 WEB browser, 618 component list, 619 screen Design department, 619A button, 619B tree, 619C canvas, 620 computer system, 621 data control device, 630 client server system, 631 server device, 632, 633, 634, 635, 636, 637 client device, 640 computer system, 641 authentication Server, 642 asset server, 643 engineering server Bar, 644 device management server, 645 production management server, 646 firewall 647 client device 648 service activation server 901 computing device 902 an auxiliary storage device, 903 main storage, 904 communication device, 905 input device, 909 a bus.

Claims (12)

  1.  ユーザーインターフェースプログラムとデータ処理プログラムとを備えるアプリケーションプログラムの前記データ処理プログラムのソースプログラムファイルを解析し、前記データ処理プログラムに含まれる複数の関数のうち前記ユーザーインターフェースプログラムから呼び出される外部関数を特定するアプリケーションプログラム解析部と、
     サーバー通信プログラムと前記アプリケーションプログラムとを備えるサーバープログラムの前記サーバー通信プログラムのソースプログラムファイルに、前記外部関数の実行を要求する実行要求メッセージを受信したときに前記サーバープログラムの前記アプリケーションプログラムに含まれる前記外部関数を呼び出す呼び出しコードを追加するサーバー通信プログラム編集部と
    を備えることを特徴とするクライアントサーバープログラム生成装置。
    An application that analyzes a source program file of the data processing program of an application program including a user interface program and a data processing program, and identifies an external function called from the user interface program among a plurality of functions included in the data processing program A program analysis unit;
    The server program comprising the server communication program and the application program, the source program file of the server communication program receives an execution request message for requesting execution of the external function, and is included in the application program of the server program A client server program generation device comprising: a server communication program editing unit for adding a call code for calling an external function.
  2.  クライアント通信プログラムと前記ユーザーインターフェースプログラムとを備えるクライアントプログラムの前記クライアント通信プログラムのソースプログラムファイルに、前記ユーザーインターフェースプログラムから前記外部関数の実行が要求されたときに前記実行要求メッセージを送信する実行要求コードを追加するクライアント通信プログラム編集部を備える
    ことを特徴とする請求項1記載のクライアントサーバープログラム生成装置。
    An execution request code for transmitting the execution request message to the source program file of the client communication program of a client program comprising a client communication program and the user interface program when the user interface program requests execution of the external function The client server program generation apparatus according to claim 1, further comprising a client communication program editing unit for adding the client communication program.
  3.  前記クライアント通信プログラム編集部は、前記実行要求コードが実行された実行要求回数を計測する回数計測コードと、前記回数計測コードによって計測された前記実行要求回数に基づいて前記実行要求コードが実行された単位時間当たりの回数を算出する回数算出コードと、前記回数算出コードによって算出された前記単位時間当たりの回数が実行要求回数閾値より多い場合に前記実行要求コードと前記外部関数とのうち前記外部関数を実行する条件分岐コードと、を前記クライアント通信プログラムのソースプログラムファイルに追加する
    ことを特徴とする請求項2記載のクライアントサーバープログラム生成装置。
    The client communication program editing unit is configured to execute the execution request code based on the number measurement code for measuring the number of execution requests for which the execution request code has been executed and the number of execution requests measured by the number measurement code. Number of times calculation code for calculating the number of times per unit time, and the number of times per unit time calculated by the number of times calculation code when the number of times per unit time is greater than an execution request number of times threshold 3. The client server program generation device according to claim 2, wherein conditional branching code for executing is added to a source program file of the client communication program.
  4.  前記サーバー通信プログラムはHTTP(HyperText Transfer Protocol)を用いて通信を行うプログラムであることを特徴とする請求項1記載のクライアントサーバープログラム生成装置。 2. The client server program generation device according to claim 1, wherein the server communication program is a program for performing communication using HTTP (HyperText Transfer Protocol).
  5.  前記サーバー通信プログラムのソースプログラムは、前記実行要求メッセージのデータ形式をクライアントプログラムが使用するクライアントデータ形式から前記サーバープログラムが使用するサーバーデータ形式に変換するデータ形式変換コードを含む
    ことを特徴とする請求項1記載のクライアントサーバープログラム生成装置。
    The source program of the server communication program includes a data format conversion code for converting a data format of the execution request message from a client data format used by a client program to a server data format used by the server program. Item 4. The client server program generation device according to Item 1.
  6.  前記クライアントプログラムはWEBブラウザであり、
     前記サーバー通信プログラムのソースプログラムは、前記WEBブラウザの画面に表示するGUI(Graphical User Interface)オブジェクトを生成するオブジェクト生成コードを含む
    ことを特徴とする請求項5記載のクライアントサーバープログラム生成装置。
    The client program is a WEB browser;
    6. The client server program generation apparatus according to claim 5, wherein the source program of the server communication program includes an object generation code for generating a GUI (Graphical User Interface) object to be displayed on the screen of the WEB browser.
  7.  前記サーバー通信プログラム編集部は、前記外部関数の実行結果を前記外部関数の実行を要求したクライアント装置を含む複数のクライアント装置に送信するマルチキャストコードを前記サーバー通信プログラムのソースプログラムファイルに追加する
    ことを特徴とする請求項1記載のクライアントサーバープログラム生成装置。
    The server communication program editing unit adds a multicast code for transmitting the execution result of the external function to a plurality of client devices including a client device that has requested execution of the external function to a source program file of the server communication program. The client server program generation device according to claim 1, wherein:
  8.  ユーザーインターフェースプログラムとデータ処理プログラムとを備えるアプリケーションプログラムの前記データ処理プログラムのソースプログラムファイルを解析し、前記データ処理プログラムに含まれる複数の関数のうち前記ユーザーインターフェースプログラムから呼び出される外部関数を特定するアプリケーションプログラム解析部と、
     前記アプリケーションプログラム解析部によって特定された前記外部関数に、ユーザーインターフェースを使用するユーザーインターフェース処理と前記ユーザーインターフェースを使用しないデータ処理とが含まれるか否か、を判定する外部関数解析部と、
     前記外部関数解析部によって前記外部関数に前記ユーザーインターフェース処理と前記データ処理とが含まれると判定された場合、サーバー通信プログラムと前記アプリケーションプログラムとを備えるサーバープログラムの前記サーバー通信プログラムのソースプログラムファイルに、前記外部関数の実行を要求する実行要求メッセージを受信したときに前記データ処理を実行する実行コードを追加するサーバー通信プログラム編集部と
    を備えることを特徴とするクライアントサーバープログラム生成装置。
    An application that analyzes a source program file of the data processing program of an application program including a user interface program and a data processing program, and identifies an external function called from the user interface program among a plurality of functions included in the data processing program A program analysis unit;
    An external function analysis unit that determines whether or not the external function identified by the application program analysis unit includes a user interface process that uses a user interface and a data process that does not use the user interface;
    When the external function analysis unit determines that the user interface process and the data process are included in the external function, a source program file of the server communication program of a server program comprising a server communication program and the application program And a server communication program editing unit for adding an execution code for executing the data processing when an execution request message for requesting execution of the external function is received.
  9.  前記サーバー通信プログラム編集部は、前記外部関数解析部によって前記外部関数に前記ユーザーインターフェース処理と前記データ処理とが含まれると判定された場合、前記ユーザーインターフェース処理の実行を要求するユーザーインターフェース要求メッセージを送信するユーザーインターフェース要求コードを前記サーバー通信プログラムのソースプログラムファイルに追加する
    ことを特徴とする請求項8記載のクライアントサーバープログラム生成装置。
    When the external function analysis unit determines that the external interface includes the user interface process and the data process, the server communication program editing unit sends a user interface request message requesting execution of the user interface process. 9. The client server program generation device according to claim 8, wherein a user interface request code to be transmitted is added to a source program file of the server communication program.
  10.  クライアント通信プログラムと前記ユーザーインターフェースプログラムとを備えるクライアントプログラムの前記クライアント通信プログラムのソースプログラムファイルに、前記ユーザーインターフェース要求メッセージを受信したときに前記ユーザーインターフェースプログラムを呼び出す呼び出しコードを追加するクライアント通信プログラム編集部を備える
    ことを特徴とする請求項9記載のクライアントサーバープログラム生成装置。
    A client communication program editing unit for adding a call code for calling the user interface program when receiving the user interface request message to a source program file of the client communication program of a client program comprising a client communication program and the user interface program 10. The client server program generation device according to claim 9, further comprising:
  11.  ユーザーインターフェースプログラムとデータ処理プログラムとを備えるアプリケーションプログラムの前記データ処理プログラムのソースプログラムファイルを解析し、前記データ処理プログラムに含まれる複数の関数のうち前記ユーザーインターフェースプログラムから呼び出される外部関数を特定するアプリケーションプログラム解析処理と、
     サーバー通信プログラムと前記アプリケーションプログラムとを備えるサーバープログラムの前記サーバー通信プログラムのソースプログラムファイルに、前記外部関数の実行を要求する実行要求メッセージを受信したときに前記サーバープログラムの前記アプリケーションプログラムに含まれる前記外部関数を呼び出す呼び出しコードを追加するサーバー通信プログラム生成処理と
    をコンピュータに実行させるためのクライアントサーバープログラム生成プログラム。
    An application that analyzes a source program file of the data processing program of an application program including a user interface program and a data processing program, and identifies an external function called from the user interface program among a plurality of functions included in the data processing program Program analysis processing,
    The server program comprising the server communication program and the application program, the source program file of the server communication program receives an execution request message for requesting execution of the external function, and is included in the application program of the server program A client server program generation program for causing a computer to execute a server communication program generation process for adding a call code for calling an external function.
  12.  ユーザーインターフェースプログラムとデータ処理プログラムとを備えるアプリケーションプログラムの前記データ処理プログラムのソースプログラムファイルを解析し、前記データ処理プログラムに含まれる複数の関数のうち前記ユーザーインターフェースプログラムから呼び出される外部関数を特定するアプリケーションプログラム解析処理と、
     前記アプリケーションプログラム解析処理によって特定された前記外部関数に、ユーザーインターフェースを使用するユーザーインターフェース処理と前記ユーザーインターフェースを使用しないデータ処理とが含まれるか否か、を判定する外部関数解析処理と、
     前記外部関数解析処理によって前記外部関数に前記ユーザーインターフェース処理と前記データ処理とが含まれると判定された場合、サーバー通信プログラムと前記アプリケーションプログラムとを備えるサーバープログラムの前記サーバー通信プログラムのソースプログラムファイルに、前記外部関数の実行を要求する実行要求メッセージを受信したときに前記データ処理を実行する実行コードを追加するサーバー通信プログラム編集処理とをコンピュータに実行させるためのクライアントサーバープログラム生成プログラム。
    An application that analyzes a source program file of the data processing program of an application program including a user interface program and a data processing program, and identifies an external function called from the user interface program among a plurality of functions included in the data processing program Program analysis processing,
    An external function analysis process for determining whether or not the external function specified by the application program analysis process includes a user interface process using a user interface and a data process not using the user interface;
    When it is determined by the external function analysis process that the external interface includes the user interface process and the data process, a source program file of the server communication program of a server program comprising a server communication program and the application program A client server program generation program for causing a computer to execute a server communication program editing process for adding an execution code for executing the data processing when an execution request message requesting execution of the external function is received.
PCT/JP2013/076308 2013-09-27 2013-09-27 Client/server program generation device and client/server program generation program WO2015045108A1 (en)

Priority Applications (2)

Application Number Priority Date Filing Date Title
PCT/JP2013/076308 WO2015045108A1 (en) 2013-09-27 2013-09-27 Client/server program generation device and client/server program generation program
TW102139486A TW201512984A (en) 2013-09-27 2013-10-31 Client/server program generation device and client/server program generation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2013/076308 WO2015045108A1 (en) 2013-09-27 2013-09-27 Client/server program generation device and client/server program generation program

Publications (1)

Publication Number Publication Date
WO2015045108A1 true WO2015045108A1 (en) 2015-04-02

Family

ID=52742311

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2013/076308 WO2015045108A1 (en) 2013-09-27 2013-09-27 Client/server program generation device and client/server program generation program

Country Status (2)

Country Link
TW (1) TW201512984A (en)
WO (1) WO2015045108A1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113785268A (en) * 2019-05-22 2021-12-10 欧姆龙株式会社 Information providing system, server, and information providing method

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN107291524B (en) * 2016-03-31 2020-04-07 阿里巴巴集团控股有限公司 Remote command processing method and device

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1173306A (en) * 1997-08-28 1999-03-16 Mitsubishi Electric Corp Device and method for generating client/server program
JP2000137600A (en) * 1998-10-29 2000-05-16 Nec Corp Method and device for preparing client/server application and information recording medium
JP2002132502A (en) * 2000-10-25 2002-05-10 Nec Software Hokuriku Ltd Automatic creating system and method of distributed object with interpretation of language function
JP2005228183A (en) * 2004-02-16 2005-08-25 Hitachi Ltd Program execution method and computer system for executing the program
JP2006113661A (en) * 2004-10-12 2006-04-27 Fukuoka Prefecture Migration processing system, process and communication testing apparatus, and script creation apparatus

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH1173306A (en) * 1997-08-28 1999-03-16 Mitsubishi Electric Corp Device and method for generating client/server program
JP2000137600A (en) * 1998-10-29 2000-05-16 Nec Corp Method and device for preparing client/server application and information recording medium
JP2002132502A (en) * 2000-10-25 2002-05-10 Nec Software Hokuriku Ltd Automatic creating system and method of distributed object with interpretation of language function
JP2005228183A (en) * 2004-02-16 2005-08-25 Hitachi Ltd Program execution method and computer system for executing the program
JP2006113661A (en) * 2004-10-12 2006-04-27 Fukuoka Prefecture Migration processing system, process and communication testing apparatus, and script creation apparatus

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113785268A (en) * 2019-05-22 2021-12-10 欧姆龙株式会社 Information providing system, server, and information providing method
CN113785268B (en) * 2019-05-22 2023-12-15 欧姆龙株式会社 Information providing system, server, and information providing method

Also Published As

Publication number Publication date
TW201512984A (en) 2015-04-01

Similar Documents

Publication Publication Date Title
US11675930B2 (en) Remoting application across a network using draw commands with an isolator application
US10469561B2 (en) System and method for managing multiple variants of an HTTP object
US10255255B2 (en) Customization of mobile applications using web-based technology
US10102306B2 (en) Patching base document object model (DOM) with DOM-differentials to generate high fidelity replay of webpage user interactions
US10614155B2 (en) Single page application authoring in a content management system
TW201441829A (en) Client side page processing
WO2023093414A1 (en) Micro-application development method and apparatus, and device, storage medium and program product
CN105786455B (en) Data processing method and device and terminal
CN112565406B (en) Gray release method, gray release system and electronic equipment
US10282172B2 (en) Authoring and deploying television apps and pages in a content management system
US10103961B2 (en) Collecting client-side application performance monitoring information
US10664648B2 (en) Webpage rendering using a remotely generated layout node tree
US8706803B1 (en) Client-side generation of preliminary version of network page
CN113688173A (en) Report information processing method and device, electronic equipment and storage medium
US9830307B1 (en) Ahead of time compilation of content pages
US8769652B2 (en) Computer based method and system for registering a user at a server computer system
JP6505849B2 (en) Generation of element identifier
WO2015045108A1 (en) Client/server program generation device and client/server program generation program
Chmielewski Device-independent architecture for ubiquitous applications
JP2015156209A (en) information processing system
US9674220B2 (en) System and method thereof for optimizing delivery of content over a network
US11758016B2 (en) Hosted application as web widget toolkit
Celesti et al. Evaluating alternative daas solutions in private and public openstack clouds
US20160092037A1 (en) Computer-Implemented Methods, Computer Readable Media, And Systems For Distributed Processing
KR20210040333A (en) Request processing method, apparatus, device and computer storage medium

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 13894815

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 13894815

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: JP