WO2010001871A1 - アプリケーション拡張システム、拡張方法、拡張プログラム - Google Patents

アプリケーション拡張システム、拡張方法、拡張プログラム Download PDF

Info

Publication number
WO2010001871A1
WO2010001871A1 PCT/JP2009/061891 JP2009061891W WO2010001871A1 WO 2010001871 A1 WO2010001871 A1 WO 2010001871A1 JP 2009061891 W JP2009061891 W JP 2009061891W WO 2010001871 A1 WO2010001871 A1 WO 2010001871A1
Authority
WO
WIPO (PCT)
Prior art keywords
definition
data
browser
application
automatic execution
Prior art date
Application number
PCT/JP2009/061891
Other languages
English (en)
French (fr)
Inventor
小山 和也
圭一 井口
貴稔 北野
Original Assignee
日本電気株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 日本電気株式会社 filed Critical 日本電気株式会社
Priority to JP2010519068A priority Critical patent/JP5321586B2/ja
Priority to US12/999,962 priority patent/US20110093801A1/en
Publication of WO2010001871A1 publication Critical patent/WO2010001871A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/957Browsing optimisation, e.g. caching or content distillation

Definitions

  • the present invention relates to an application extension system that is customized mainly to meet the requirements of users of existing Web systems, and more particularly, to an application extension system, an extension method, and an extension program that customize the behavior of an application composed of a plurality of Web pages. .
  • GUI Graphic User Interface
  • HTML Hyper Text Markup Language
  • script language is interpreted, executed, and displayed on a general-purpose Web browser on the client terminal using a protocol such as HTTP (HyperText Transport Protocol).
  • HTTP HyperText Transport Protocol
  • the Web system currently used is not necessarily made suitable for the user's request and is often a system that is difficult for the user to use. This is because it is generally difficult to accurately and comprehensively grasp the requirements for the system when constructing an information system, and even if a system suitable for the request is constructed once, the user's request itself is time consuming. It can be caused by various causes, such as the fact that multiple users sometimes have conflicting requirements and it is difficult to build an information system that satisfies all users' requirements at the same time. It is. In order to adapt the system to the user's requirements in such a case, there is simply a means of modifying or rebuilding the system itself.
  • the system itself has a customization function that allows the user to change the behavior.
  • the customization function that allows the user to change the behavior.
  • not all systems have a customization function, and even if there is a customization function, it is often insufficient to satisfy a user's request.
  • Patent Document 1 discloses a technique for inserting a script for changing a page into a Web page as an HTTP proxy, and executing the script on the Web browser to change the GUI.
  • Patent Document 2 additional information is given to Web content by a device on a terminal instead of a general-purpose Web browser.
  • Patent Document 3 facilitates the process of converting a Web screen for a mobile terminal by analyzing the meaning of the page.
  • Patent Document 4 by automatically executing a Web page operation on a server, a system that outputs only HTML for human use can be operated by e-mail.
  • Patent Document 5 automatic operation of a Web system is performed in order to link a client / server system and a Web system on a client terminal.
  • Japanese Patent No. 3396177 Japanese Patent No. 3594231 JP 2002-116983 A JP 2002-342152 A JP 2001-101132 A
  • the first problem is that it is difficult to customize across a plurality of pages in a Web system configured by screen transitions of a plurality of Web pages.
  • customization across multiple pages means changing the content of customization of another page or changing the screen transition relationship between pages depending on the content of a certain page.
  • the contents of the automatic execution and the determination of the start timing are performed on the client terminal by the user and other devices on the terminal. It cannot be controlled to automatically execute multiple users in the same form, and cannot be used to realize customization across multiple pages.
  • the second problem is that it is difficult to change the customization method according to the content of the Web page.
  • the conversion content is fixedly determined by the URL of the target Web page, or the content is simply changed according to the user's preference or role displayed on the Web page.
  • the customization contents cannot be changed depending on the contents of the Web page to be performed. Therefore, for example, when a Web system in which display content is determined by the session state and different content is displayed with the same URL, or when the Web system itself changes content according to the viewer or situation, appropriate customization is performed. I can't.
  • the present invention has been made in view of the problem, and an application that enables customization across a plurality of pages of a Web system configured by screen transitions of a plurality of Web pages and allows a customization method to be changed according to the content of the Web page.
  • An object is to provide an expansion system, an expansion method, and an expansion program.
  • the present invention provides, as a first aspect, an interface for receiving registration of a process determination definition including an automatic execution start condition and an automatic execution definition indicating the contents of the process performed as automatic execution, A communication interface for receiving a communication message from the application, and upon receiving the communication message from the browser or application, determines whether to execute the registered automatic execution definition according to the registered process determination definition, and
  • the present invention provides an application expansion system characterized in that at least one GUI operation instruction is sent to a browser in accordance with an automatic execution definition determined to be transmitted to an application or browser as a destination.
  • this invention is a process which receives registration with the automatic execution definition which shows the content of the process determination definition containing the starting conditions of automatic execution, and the said automatic execution as a 2nd aspect.
  • Receiving a communication message from a browser or an application, determining whether to execute the registered automatic execution definition according to the registered processing determination definition, and receiving the received communication message at a destination A method for extending an application, comprising: transmitting to a certain application or the browser; and sending at least one GUI operation instruction to the browser according to the automatic execution definition determined to be executed. is there.
  • the present invention provides, as a third aspect, an application expansion program that causes a computer to execute the application expansion method according to the second aspect.
  • an application extension system, an extension method, and an extension program that enable customization across a plurality of pages of a Web system configured by screen transitions of a plurality of Web pages and can change the customization method according to the contents of the Web page. Can provide.
  • the application extension system 1 includes an interface 11 that receives registration of a process determination definition 13 that includes a start condition for automatic execution and an automatic execution definition 14 that indicates the contents of the process to be performed as automatic execution.
  • the communication interface 12 that receives a communication message from the browser 20 or the application 30, and the control unit 15 is registered according to the registered processing decision definition 13 when receiving the communication message from the browser 20 or the application 30.
  • the GUI operation instruction is an instruction related to an arbitrary operation on the GUI such as inputting a value in a GUI input field displayed on the browser 20 or pressing a button on the GUI.
  • the type of the interface 11 is arbitrary.
  • it may be an interface for receiving the processing decision definition 13 and the automatic execution definition 14 from an external device (not shown), or an interface for accepting an input operation for registering these definitions (a user such as a keyboard). Interface).
  • the function of the control unit 15 can be realized by software processing by a computer.
  • FIG. 2 shows the configuration of the application extension system according to this embodiment.
  • the application extension system 101 includes a proxy unit 110, a browser control unit 120, an extension definition management unit 130, and a data management unit 140.
  • the proxy unit 110 includes a communication processing unit 111, a message storage unit 112, an information extraction unit 113, a process determination unit 114, and a conversion execution unit 115. Note that some of the functions of the communication interface 12 and the control unit 15 in FIG. 1 correspond to the communication processing unit 111. A part of the function of the control unit 15 in FIG. 1 corresponds to the information extraction unit 113. A part of the function of the control unit 15 in FIG. A part of the function of the control unit 15 in FIG. 1 corresponds to the conversion execution unit 115.
  • the extended definition management unit 130 includes an information extraction definition 131, a process determination definition 132, a conversion definition 133, and an automatic execution definition 134.
  • the browser control unit 120 is installed on the terminal device 104 with the web browser 103 and is connected to the web browser 103. A part of the function of the control unit 15 in FIG. 1 corresponds to the browser control unit 120. Although the configuration corresponding to the interface 11 in FIG. 1 is not shown, the communication relay apparatus 102 may be provided with a user interface, or the process decision definition 132 or automatic execution via any external apparatus including the terminal apparatus 104 The definition 134 may be registered.
  • the proxy unit 110, the browser control unit 120, the extended definition management unit 130, and the data management unit 140 are installed on the communication relay device 102. Further, the communication processing unit 111 is connected to the external web browser 103 and the web application 105. There may be a plurality of Web browsers 103 and Web applications 105.
  • the proxy unit 110 the communication processing unit 111, the information extraction unit 113, and the processing determination unit 114 can realize functions by software processing by a computer. Further, the browser control unit 120 can also realize the function by software processing by a computer.
  • FIG. 3 shows the structure of the information extraction definition 131.
  • the information extraction definition 131 is defined by an extraction formula and a storage destination. There are various methods for describing the extraction formula. Preferred examples include an HTTP protocol specific header name, an XPath description formula for the internal structure of HTML, and a calculation formula for performing numerical value and character string operations.
  • the storage destination is the data name of the data management unit 140.
  • FIG. 4 shows the structure of the processing decision definition 132.
  • the processing decision definition 132 is defined as a list of operations and evaluation expressions for the data name and its value, and a definition name of the conversion definition 133 or the automatic execution definition 134 that is executed when the evaluation expression is satisfied.
  • the process determination definition 13 in FIG. 1 corresponds to the process determination definition 132.
  • FIG. 5 shows the structure of the conversion definition 133.
  • the conversion definition 133 is defined as a list of definition names (conversion definition names) and conversion programs (conversion contents) for processing HTTP protocol headers and message data.
  • FIG. 6 shows the structure of the automatic execution definition 134.
  • the automatic execution definition 134 is defined by a list of definition names (automatic execution definition names) and process descriptions as definition contents. Note that the automatic execution definition 14 in FIG. 1 corresponds to the automatic execution definition 134.
  • FIG. 7 shows the data structure of the data management unit 140.
  • the data management unit 140 can have a plurality of data blocks 601, and each data block 601 is defined as a list of data names and data values.
  • a well-known technique can be applied to a description method such as an extraction formula, an operation, an evaluation formula, a conversion program, or a macro description, and is not limited to a specific description method.
  • the communication processing unit 111 receives a request message from the Web browser 103 to the Web application 105 or a response message from the Web application 105 to the Web browser 103, records the message in the message storage unit 112, and calls the information extraction unit 113.
  • the information extraction unit 113 extracts necessary information from the request or response message in the message storage unit 112 in accordance with the information extraction definition 131 of the extended definition management unit 130, stores the information in the data management unit 140, and calls the processing determination unit 114.
  • the process determination unit 114 refers to the data of the data management unit 140 according to the process determination definition 132 of the extended definition management unit 130, determines the conversion or automatic execution process to be applied, and executes the conversion execution unit 115 or the browser control unit 120. Instruct.
  • the conversion execution unit 115 Upon receiving the execution instruction, the conversion execution unit 115 executes the conversion definition 133 specified by the extended definition management unit 130, changes the request or response message in the message storage unit 112, and sends a transmission instruction to the communication processing unit 111.
  • the communication processing unit 111 Upon receiving the transmission instruction, the communication processing unit 111 transmits the changed message recorded in the message storage unit 112 to the Web browser 103 or the Web application 105.
  • the browser control unit 120 Upon receiving the execution instruction, the browser control unit 120 executes the designated automatic execution definition 134 of the extended definition management unit 130 and sends a control event corresponding to the user's GUI to the Web browser 103.
  • FIG. 8 shows a flow of operations of the application extension system 101 according to the present embodiment.
  • the application extension system 101 first waits for reception of a communication message (step S701).
  • the communication processing unit 111 receives a message
  • the communication processing unit 111 records the message in the message storage unit 112 (step S702).
  • the information extraction unit 113 extracts the information extraction definition 131 from the extended definition management unit 130 (step S703), extracts information from the message according to the information extraction definition 131 (step S704), and extracts the extracted information from the data management unit 140. (Step S705).
  • the process determination unit 114 extracts the process determination definition 132 from the extended definition management unit 130 (step S706), and determines a process to be applied by referring to the data of the data management unit 140 according to the process determination definition 132 (step S706). If the conversion processing has been determined (step S708 / Yes), the conversion definition 133 designated is extracted from the extended definition management unit 130 (step S709), the conversion definition 133 is executed, and data management is performed as necessary. The message recorded in the message storage unit 112 is changed with reference to the data of the unit 140 (step S710). If there is no conversion process to be applied (step S708 / No), no conversion definition is executed.
  • step S711 if the automatic execution process is determined (step S711 / Yes), the browser control unit 120 is instructed to execute the determined automatic execution definition 134 (step S712).
  • the communication processing unit 111 transmits the message recorded in the message storage unit 112 to the web browser 103 or the web application 105 (step S713). Thereafter, the process returns to step S701.
  • FIG. 9 shows an operation flow of the browser control unit 120.
  • the browser control unit 120 receives the execution instruction (step S801), the browser control unit 120 retrieves the automatic execution definition 134 designated from the extended definition management unit 130 (step S802). Then, the browser control unit 120 extracts a process description to be executed next from the automatic execution definition 134 (step S803). If the process description is data processing of the data management unit 140 (step S804 / Yes), the browser control unit 120 calls the data management unit 140 to refer to and store data (step S805). If the process description is browser control (steps S804 / No, S806 / Yes), the browser control unit 120 generates a control event corresponding to a designated user GUI operation such as data input or button click on the web browser 103. Send (step S807). If there is a further process description to be executed (step S808 / Yes), the process returns to step S803 to repeat the execution.
  • Automatic execution by the browser control unit 120 and message processing by the proxy unit 110 are performed in parallel, and when the next message is sent to the proxy unit 110 in the course of automatic execution by the browser control unit 120, Also, the processing after step S701 is applied.
  • the application extension system 1 includes a proxy unit 110 that controls HTTP communication, a browser control unit 120 that automatically performs a GUI operation of the Web application 105 by the Web browser 103, and between different pages. And a data management unit 140 that manages data shared between applications, and the proxy unit 110 extracts necessary information from the request or response message, stores it in the data management unit 140, and executes it from the contents of the data management unit 140 Decide what to do.
  • the content of the process is the conversion of the request or response message and the start of automatic execution.
  • the contents of a page can be used to convert other pages in a Web page configured by screen transitions of multiple Web pages, or the user's operation procedure can be changed across multiple screens. It is possible to change the customization method depending on the customization over a plurality of pages and the content of the Web page.
  • the proxy unit 110 first extracts information from the Web page and stores it in the data management unit 140, and the processing determination unit 132 uses information extracted from the same or different page stored in the data management unit 140.
  • the customization method is determined, the determined content is instructed to the conversion execution unit 115 or the browser control unit 120, and the conversion execution unit 115 performs conversion processing using information included in the same or different pages stored in the data management unit 140.
  • the browser control unit 120 can start automatic execution on the Web browser 103 used by the user in accordance with an instruction from the proxy unit 110 and shift the screen to another page.
  • the application extension system changes the behavior of an application across multiple pages, realizes customization without changing an existing application, or responds to different requests depending on users with one application. Applicable to usage.
  • the data management unit 140 simply stores the instructed data. However, in the present embodiment, this data is managed by the Web browser 103, the communication relay device 102, and the Web application 105. Manage by associating with some session managed between.
  • the session here is a mechanism for handling a plurality of HTTP requests and responses generated by a series of operations as a lump, which is widely used in the Web system in general.
  • There may be various units such as the proxy unit 110 is provided with a login process and the login is valid.
  • There are various methods for realizing a session but the method is not limited to a specific method.
  • a preferred example of session management is to record a session ID using an HTTP cookie and attach this ID to the message.
  • the communication processing unit 111 identifies a session when receiving a message
  • the message is recorded in the message storage unit 112 together with a session ID that uniquely identifies the session in the communication relay apparatus 102, and the data management unit 140 Data to be saved is saved separately for each session ID.
  • the information extraction unit 113, the process determination unit 114, and the browser control unit 120 operate as a process for receiving a certain message, only data that matches the session ID of the received message is operated (reading or rewriting).
  • the data management unit 140 may discard the data of the session.
  • data used for process determination, conversion, automatic execution, and the like can be handled as temporary data that is valid only during a specific series of processes of a specific user.
  • the data management unit 140 treats all data as temporary data associated with the session. However, in the present embodiment, the data management unit 140 uses the temporary data depending on the data or does not depend on the session. Allows selection of data. Further, in the case of permanent data, the sharing range may be set. The sharing range may be various forms such as sharing in all communications, sharing between all sessions of the same user, and sharing between users having a specific user attribute.
  • the communication processing unit 111 has information on the management unit such as a user management function and an authentication function, and can acquire information on the management unit such as a user to which the message belongs. There is a need.
  • FIG. 10 shows the structure of data managed by the data management unit 140 of this embodiment.
  • the data management unit 140 has a shared range item for each data block. If this is temporary, the data management unit 140 manages the data in association with the session as in the second embodiment, and the shared range is permanent. In a typical case, all sessions operate on the same data. When a shared range such as between users is set at the time of permanent, data is managed separately for each shared range.
  • the browser control unit 120 is provided in advance on the terminal device 104.
  • the browser control unit 120 is implemented as a script executed on the Web browser 103.
  • the conversion executing unit 115 inserts the browser control unit 120 into the response message.
  • the name and contents of the automatic execution definition 134 to be started are inserted at the same time, or acquired by communicating with the communication relay apparatus 102 after the browser control unit 120 starts executing on the Web browser 103.
  • FIG. 11 shows an operation flow of the application extension system according to the present embodiment.
  • the operation corresponding to step S712 is different from the flowchart shown in FIG.
  • the process determination unit 114 determines automatic execution (step S711 / Yes)
  • the conversion execution unit 115 is instructed to execute automatically, and the conversion execution unit 115 receives an automatic execution instruction in addition to execution.
  • Processing for inserting the script of the browser control unit 120 into the response message is performed (step S1001).
  • the other operations are the same as those shown in FIG.
  • FIG. 12 shows an operation flow of the browser control unit 120 according to the present embodiment.
  • the script of the browser control unit 120 first generates a window different from the window displaying the GUI of the Web application 105, executes the script in the generated window, and operates as the browser control unit 120. This is performed (step S1101).
  • the subsequent processing is the same as that after step S802 in FIG.
  • the terminal device 104 can realize an application expansion system without preparation if there is only a general-purpose browser.
  • the script normally executed in the Web browser stops when the screen transition occurs. However, by generating another window and causing the browser control unit 120 to execute it, the original Web application 105 is executed. Even if the window displaying the GUI changes, the function as the browser control unit 120 can be continued.
  • the browser control unit 120 is arranged on the terminal device 104.
  • the browser control unit is arranged in the communication relay device 102, and a control event from the browser control unit to the web browser 103 is sent. You may make it transmit using communication.
  • Various communication methods can be considered, and a preferred example is a remote processing call by a remote procedure call.
  • FIG. 13 shows the configuration of the application extension system according to this embodiment.
  • the browser control unit 1201 is different from the first embodiment in that the browser control unit 1201 is arranged on the communication relay device 102. Whether or not such remote control of the Web browser 103 is possible depends on the creation of the OS of the Web browser 103 and the terminal device 104, but the remote control of the function itself is a widely used general technique. If this is an environment that can be used, the configuration of this embodiment is applied, and if only the general-purpose Web browser 103 is provided on the terminal device 104 side, an application expansion system can be realized without preparation.
  • the conversion execution unit 115 is arranged on the communication relay device 102. However, the conversion execution unit is arranged on the terminal device 104, and the screen is rewritten after the Web browser 103 displays the page. You may do it.
  • FIG. 14 shows the configuration of the application extension system according to the present embodiment.
  • a conversion execution unit 1301 is arranged on the terminal device 104, and the conversion processing is performed on a screen obtained as a result of interpretation and execution by the Web browser 103, not a communication message including HTML or the like.
  • the content of the screen to be converted may not be included in the response message as HTML.
  • screen conversion of such a Web application can also be realized.
  • a seventh embodiment in which the present invention is preferably implemented will be described.
  • the information extraction definition 131 all definitions of the information extraction definition 131 are always evaluated.
  • the information extraction definition includes a start condition using an HTTP header, data of the data management unit 140, or the like. And only the extraction formulas that satisfy the activation conditions are evaluated.
  • FIG. 15 shows the configuration of the information extraction definition 131 of the application extension system according to this embodiment.
  • Information extraction from request message post data and response message HTML data is largely dependent on the presence or content of HTML in the post data depending on the message. May cause different data to be extracted.
  • a proxy unit 110, a data management unit 140, and an extended definition management unit 130 are installed on the communication relay device 102, and the browser control unit 120 connected to the Web browser 103 is connected to the terminal device 104. Is installed.
  • the communication processing unit 111 of the proxy unit 110 is connected to the Web browser 103 and the Web application 1501.
  • FIG. 17 is a diagram illustrating the operation of the Web application 1501.
  • the web application 1501 is an application for inputting information a1, a2, b1, b2, c1, c2 across three pages, page A, page B, and page C, and pressing the “Next” button after inputting data. In order to move to the next page.
  • the “Register” button is pressed on the C page, the input data is saved in the application.
  • the Web application 1501 is customized such that some input fields are omitted so that the user's input work can be simplified as a user request.
  • FIG. 18 shows the operation of the Web application 1501 that has been customized by the user.
  • a2, b1, and b2 are always the same fixed value, input is omitted, and only a1, c1, and c2 are input, and c1 is not a completely fixed value but is often the same value, so a default value is set and necessary. Only be able to change.
  • FIG. 19 shows the information extraction definition 131 registered in the extended definition management unit 130.
  • An XPath expression “// table / tr [1] / td [1]” for extracting the item name (character string a1, b1, c1, etc.) in the first input field in the page is specified as the extraction expression.
  • the contents are stored in the “item name” of the data P as a storage destination.
  • FIG. 20 shows the process decision definition 132 registered in the extended definition management unit 130. Whether the page content is page A, B, or C is determined based on the value of “item name” of data P. If page A or page C, conversion definition A or C is converted. Definition B and automatic execution definition B are executed.
  • FIG. 21 shows a conversion definition 133 registered in the extended definition management unit 130.
  • the conversion definition A the value of the data name “a2” of the data X is inserted in the input field of a2, and conversion is performed so as to hide the display of the character string of the a2 and the input field.
  • conversion definition B conversion is performed so as to hide the display of the character strings b1 and b2 and the input field.
  • conversion definition C conversion is performed so that the value of the data name “c1” of the data X is inserted into the input field of c1.
  • the display is hidden, it is not displayed on the Web browser 103, but it can be operated from the Web browser control unit 120 and the input data is transmitted to the server.
  • FIG. 22 shows an automatic execution definition 134 registered in the extended definition management unit 130.
  • the automatic execution definition B is composed of five processing descriptions, that is, data fetching and setting in the input field two by two and button depression.
  • FIG. 23 shows data managed by the data management unit 140. There is temporary data data P possessed by data of “item name” and permanent data data X having data of “a2”, “b1”, “b2”, and “c1”.
  • FIG. 24 shows an example of the operation of the application extension system.
  • the communication processing unit 111 records the request message in the message storage unit 112, and the information extraction unit 113 tries to extract information.
  • the extraction formula is applied only to the HTML document of the response message, the value of the item name of the data P is an empty string in the case of the request message.
  • the processing determination unit 114 evaluates the three evaluation formulas of the processing determination definition 132, but since there is no corresponding formula here, it is determined that no processing is performed, and the communication processing unit 111 receives the received request. A message is transmitted to the Web application 1501.
  • the Web application 1501 when receiving the request message, the Web application 1501 returns the HTML of page A as a response message because it is the first communication, and this is sent to the communication processing unit 111 (2302).
  • the communication processing unit 111 records the response message in the message storage unit 112, the information extraction unit 113 tries to extract information, extracts the character string “a1” as the item name of the first input field in the page, and the data P Store in the data value of “Item name”.
  • the process determining unit 114 evaluates the three evaluation expressions of the process determination definition 132, and determines that the conversion definition A is executed from the processing contents because the expression on the first line satisfies the condition. 115 is instructed to execute conversion definition A.
  • the conversion execution unit 115 extracts the conversion definition A from the extended definition management unit 130, executes the definition content, extracts the value “value 1” of the data name a2 of the data X, and sets it as the initial value of the input field of a2.
  • the HTML of the response message in the message storage unit 112 is changed so that the display of a2 and the input field cannot be seen.
  • the communication processing unit 111 transmits the changed response message to the web browser 103 (2302 ').
  • the Web browser 103 displays the received page A, but the input field a2 is not displayed here.
  • the communication processing unit 111 records the response message in the message storage unit 112, the information extraction unit 113 attempts to extract information, extracts the character string “b1” as the item name of the first input field in the page, and the data P Stored in the item name value of.
  • the process determining unit 114 evaluates the three evaluation expressions of the process determination definition 132, and the expression on the second line satisfies the condition, so that the conversion definition B and the automatic execution definition B are executed from the process contents.
  • the conversion execution unit 115 is instructed to execute conversion definition B
  • the browser control unit 120 is instructed to execute automatic execution definition B.
  • the conversion execution unit 115 extracts the conversion definition B from the extended definition management unit 130, changes the HTML of the response message in the message storage unit 112 so as to hide the display and input fields of b1 and b2, and the communication processing unit 111. Transmits the changed response message to the Web browser 103 (2304 ′).
  • the browser control unit 120 retrieves the definition contents of the automatic execution definition B from the extended definition management unit 130, sequentially executes the process descriptions, and performs data X.x as data processing on the first and third lines. b1 and data X.
  • a value is extracted from b2, and an input and a control event for pressing the “next” button are sent to the browser in the input fields b1 and b2 on lines 2, 4, and 5 (2305, 2306, and 2307).
  • the next request message is sent to the Web application 1501.
  • the “Next” button is displayed on the Web browser 103, and it appears that the page B automatically and automatically shifts to the next screen.
  • the third request message is sent to the Web application 1501 in the same way as the first and second (2308), and the contents of page C are returned as a response message (2309).
  • the communication processing unit 111 records the response message in the message storage unit 112, the information extraction unit 113 attempts to extract information, extracts the character string “c1” as the item name of the first input field in the page, and the data P Stored in the item name value of.
  • the process determining unit 114 evaluates the three evaluation expressions of the process determination definition 132, and the expression on the third line satisfies the condition, so that the conversion definition C is determined to be executed from the processing contents, and the conversion executing unit 115 Is instructed to execute the conversion definition C, and the conversion execution unit 115 retrieves and executes the conversion definition C.
  • c1 is extracted, an initial value is set in the input field of c1, and it is transmitted to the Web browser 103 (2309 ').
  • the user can use the Web application 1501 as if a partial page transition as shown in FIG. 18 is omitted.
  • the execution state inside the Web application 1501 and the execution state of the Web browser 103 such as the generation of cookies and windows are the same as when directly used without using the application extension system. Even if there are a plurality of pages other than B and C and the operation depends on these execution states, it is possible to continue using other pages as they are even after customization.
  • the sharing range of data X which is permanent data
  • the sharing range of this permanent data is set for each department to which the user belongs, the fixed value automatically entered for each department is changed. Can be easily done.
  • FIG. 25 shows the configuration of the application extension system. This embodiment is the same as the first embodiment except that the connected Web application is different from the registered extended definition. Web applications are connected to Web applications 2402, 2403, and 2404.
  • FIG. 26 shows the operation of the Web application 2402.
  • the Web application 2402 inputs information across three pages, page A, page B, and page C, but the input items are only a1, b1, and c1.
  • FIG. 27 shows the operation of the Web application 2403.
  • the web application 2403 includes page D and page E.
  • the input value of b1 of the web application 2402 is input to page D, the related information of the input value is displayed on page E.
  • FIG. 28 shows the operation of the Web application 2404.
  • the Web application 2404 includes a page F and a page G.
  • the value of b1 of the Web application 2402 is input to the page F, the related information of the input value is displayed on the page G.
  • the input content of a1 is the customer's industry name
  • the Web application 2403 manages manufacturing industry information
  • the Web application 2404 manages information of other industries.
  • FIG. 29 is a diagram illustrating the operation of the Web application 2402 that has been customized by the user.
  • Page A remains the same, but the contents entered on the previous page are added to pages B and C, and the result obtained by searching the related information of the input value to b1 in Web application 2403 or 2404 is additionally displayed on page C. .
  • FIG. 30 shows the information extraction definition 131 registered in the extended definition management unit 130.
  • the request is an HTTP POST command.
  • the values of the data to be POSTed are a1 and b1, respectively, and values are stored in a1 and b1 of data Y, respectively.
  • FIG. 31 shows the processing decision definition z definition 132 registered in the extended definition management unit 130. Based on the value of the “item name” of the data P, it is determined whether the page content is page B or page C. If page B, conversion definition B is executed. Further, in the case of page C, the value of a1 in data Y is referred to. If a1 is “manufacturing”, conversion definition C1 and automatic execution definition C1 are converted. If a1 is not “manufacturing”, conversion definition C2 and automatic execution definition C2 are displayed. Execute.
  • FIG. 32 shows a conversion definition 133 registered in the extended definition management unit 130.
  • the conversion definition B display of a1 and its value is added.
  • the embedded display of the Web application 2403 is added in addition to the display of the values of a1 and b1.
  • the embedded display of the Web application 2404 is added in addition to the display of the values of a1 and b1.
  • the embedded display can be described in an HTML IF frame or the like.
  • FIG. 33 shows an automatic execution definition 134 registered in the extended definition management unit 130.
  • the automatic execution definition C1 is composed of three process descriptions, that is, data extraction, setting in an input field, and pressing of a search button.
  • the automatic execution definition C2 is composed of three process descriptions: data extraction, setting in an input field, and pressing of a submit button.
  • FIG. 34 shows data managed by the data management unit 140. There is data P of temporary data having data of “item name” and data Y of temporary data having data of “a1” and “b1”.
  • FIG. 35 shows the operation of the application extension system. Note that the operation of the communication processing unit 111 receiving a message, recording the message in the message storage unit 112, and transmitting the last recorded message is the same as that in the first embodiment, and thus description thereof is omitted. Further, the item name of the first input column in the page is stored in the data P, and the part used for the determination of pages B and C is the same as that in the first embodiment, so that the description is omitted.
  • the information extraction unit 113 extracts the values of a1 and b1 input from the request message sent when the “Next” button on page A and page B is pressed, and stores them in the data Y. .
  • conversion definition B is selected and executed by the conversion execution unit 115.
  • the input value a1 included in the previous request message is extracted from the data Y and embedded in the HTML of page B.
  • the input value of a1 included in the previous request message is extracted from the data Y and evaluated, and the value is Whether the conversion definition C1 and the automatic execution definition C1, or the conversion definition C2 and the automatic execution definition C2 are to be performed is determined depending on whether or not it is “manufacturing”.
  • the conversion execution unit 115 executes the conversion definition C1, and the input values of a1 and b1 in the previous page are extracted from the data Y and the display is added. In addition, an embedded display of the Web application 2403 is added.
  • the automatic execution definition C1 is executed by the browser control unit 120, the b1 input value of the data Y is extracted, inserted into the b1 input field of the embedded Web application 2403, and the search button is pressed.
  • the page E of the Web application 2403 is embedded and displayed in the related information portion of the page C.
  • the conversion definition C2 is executed by the conversion execution unit 115, the input values of a1 and b1 in the previous page are extracted from the data Y, and the display is added. In addition, an embedded display of the Web application 2404 is added.
  • the automatic execution definition C2 is executed by the browser control unit 120, the b1 input value of the data Y is taken out, inserted into the b1 input field of the embedded Web application 2404, and the submit button is pressed.
  • the page G of the Web application 2404 is embedded in the related information portion of the page C.
  • a Web system constituted by HTTP and HTML is taken as an example.
  • the message delivery protocol is not limited to HTTP, and the message content is also limited to HTML. is not.
  • the present invention is applicable to a system in which a browser on a general-purpose terminal acquires, interprets, and displays data describing the contents of a GUI from an application through communication, and the user operates the GUI displayed on the browser. Is applicable. As described above, the present invention can be variously modified.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • Information Transfer Between Computers (AREA)

Abstract

 Webシステムの複数ページにまたがるカスタマイズを可能とし、Webページの内容に応じてカスタマイズ方法を変更できるアプリケーション拡張システム、拡張方法、拡張プログラムを提供する。  自動実行の起動条件を含む処理決定定義13と自動実行として行う処理の内容を示す自動実行定義14との登録を受けるインタフェース11と、ブラウザ20又はアプリケーション30からの通信メッセージを受信する通信インタフェース12とを備え、ブラウザ20又はアプリケーション30からの通信メッセージ受信時に、登録されている処理決定定義13に従って、登録済みの自動実行定義14を実行するかを決定し、通信メッセージを、送り先であるアプリケーション30又はブラウザ20へ送信し、実行すると決定した自動実行定義14に従って、ブラウザ20に少なくとも一つのGUI操作指示を送る。

Description

アプリケーション拡張システム、拡張方法、拡張プログラム
 本発明は、主に既存のWebシステムの利用者の要求に適合するようカスタマイズするアプリケーション拡張システムに関し、特に、複数のWebページからなるアプリケーションの振る舞いをカスタマイズするアプリケーション拡張システム、拡張方法及び拡張プログラムに関する。
 HTML(Hyper Text Markup Language)やスクリプト言語などの記述言語で記述されたGUI(Graphical User Interface)データをHTTP(HyperText Transport Protocol)などのプロトコルによってクライアント端末の汎用Webブラウザに解釈や実行、表示を行わせるWebシステムが、様々な情報システムによって幅広く利用され、既に多くの企業や組織で多数の情報や機能を持ったWebシステムが多数存在している。
 しかしながら、現在使用しているWebシステムが、必ずしも利用者の要求に適した作りになっているとは限らず、利用者にとって使いづらいシステムになっていることが多い。これは、一般的に情報システム構築時に、システムに求められる要件を正確かつ網羅的に把握することが困難であること、一度は要求に適したシステムを構築しても利用者の要求自体が時間とともに変化してしまうこと、そもそも複数の利用者が時には矛盾する要求を持っており、全ての利用者の要求を同時に満たす情報システムの構築が困難である、などの様々な原因で引き起こされ得るものである。このような場合にシステムを利用者の要求に適合させるには、単純にはシステム自体を改造、又は再構築するという手段がある。
 しかしこのような改造や再構築は、多くの場合に多額の開発コストを必要とする。さらに、異なる利用者に向けてそれぞれ専用のシステムを構築してしまうと、その運用や保守コストも増大するという問題がある。
 また、システムによっては、その振る舞いを利用者が変更できるようなカスタマイズ機能をシステム自身で持つものもある。しかし、全てのシステムがカスタマイズ機能を持つとは限らず、またカスタマイズ機能があってもそれが利用者の要求を満足するのに不十分である場合も多い。
 この問題に対応するために、既存のWebシステム自体は変更せず、その入出力部分であるHTTPやHTML、ブラウザに表示されたGUI等に手を加えてカスタマイズを実現する技術がある。
 例えば、単一のWebページを変換するものとして、HTMLを加工して、HTMLにより構成されるGUIの一部となるGUI部品の追加、変更、削除などを行う技術がある。特許文献1にはHTTPのプロキシとしてWebページにページを変更するためのスクリプトを挿入し、このスクリプトがWebブラウザ上で実行されてGUIの変更を行う手法を開示している。
 また、特許文献2には、汎用のWebブラウザではなく端末上の装置でWebコンテンツに付加情報を付与している。
 また、GUIの画面の一部を抽出したり変換したりするものとして、特許文献3ではWebの画面を携帯端末向けに変換する処理を、ページの意味を解析することで容易化している。
 また、Webページを書き換えるものではないが、Webページ上で本来ユーザが行う操作を自動実行する技術も開示されている。例えば、特許文献4では、サーバ上でWebページ操作を自動実行することで、人間が使用するためのHTMLのみ出力するシステムを電子メールで操作可能としている。また、特許文献5では、クライアント端末上でクライアント/サーバ型のシステムとWebシステムとを連携するためにWebシステムの自動操作を行っている。
特許第3396177号公報 特許第3594231号公報 特開2002-116983号公報 特開2002-342152号公報 特開2001-101132号公報
 第1の問題は、複数Webページの画面遷移によって構成されるWebシステムの、複数ページにまたがるカスタマイズが困難であったことである。ここで、複数ページにまたがるカスタマイズとは、あるページの内容に依存して他のページのカスタマイズの内容を変更したり、ページ間の画面遷移関係を変更したりすることである。
 単一ページを変換する技術では、一度の変換処理が一つのページ内で完結しており、例えば複数のページの内容を一つのページにまとめて表示するような変更は行えない。また、ページ遷移形態の変更は行えないため、複数のページに亘ってユーザが行う作業の一部のページ遷移を省略するような変更や、特定のユーザ操作による複数画面遷移を経なければ到達できないようなWebシステム内の機能を取り出して合成することもできない。
 自動実行の技術のうちサーバ上で自動実行を行う方式では、ページ遷移を自動的に行うことで、ユーザにページ遷移を省略したように見せることは可能であるが、通常クライアント端末上にあるWebブラウザに相当するHTMLやスクリプト言語などの実行解釈機能をサーバ上で動作させているため、例えばセッション情報や追加のウインドウの表示などといったWebシステムの操作過程でブラウザ上に生成される実行状態が全てサーバ上に存在してしまうため、この実行状態を端末上のブラウザへ移す、又は端末上のブラウザからサーバ上に移すことができない。
 このため、動作にこのような実行状態を必要とするWebシステムでは、普段はユーザが端末上のWebブラウザで手動でWebシステムを操作し、その操作の一部を自動実行させて、自動実行後再び手動操作を継続するといった、ユーザによる端末上でのブラウザの手動操作と自動実行とをシームレスに切り替えることができない。
 一方、自動実行の技術のうちクライアント端末上で自動実行を行う技術では、自動実行の内容や起動タイミングの決定はクライアント端末上でユーザや端末上の他の装置によって行われるため、サービス提供者が複数のユーザに対して同じ形で自動実行を行うように制御することができず、複数ページにまたがるカスタマイズの実現には使用できない。
 第2の問題は、Webページの内容に応じたカスタマイズ方法の変更が困難だったことである。
 上記特許文献では、対象とするWebページのURLによって固定的に変換内容を決定するか、又はWebページに表示しているユーザの嗜好や役割に応じて内容を変更するだけであり、表示しようとするWebページの内容によってカスタマイズ内容を変更させることができない。よって、例えば表示内容がセッション状態によって決定され異なるコンテンツが同一URLで表示されるようなWebシステムや、Webシステム自体が閲覧者や状況に応じてコンテンツを変更させる場合に、適切なカスタマイズを行うことができない。さらに、あるページの内容によってその後に表示する別のページの内容のカスタマイズ方法を変更することができない。
 本発明は係る問題に鑑みてなされたものであり、複数Webページの画面遷移によって構成されるWebシステムの、複数ページにまたがるカスタマイズを可能とし、Webページの内容に応じてカスタマイズ方法を変更できるアプリケーション拡張システム、拡張方法、拡張プログラムを提供することを目的とする。
 上記目的を達成するため、本発明は、第1の態様として、自動実行の起動条件を含む処理決定定義と自動実行として行う処理の内容を示す自動実行定義との登録を受けるインタフェースと、ブラウザ又はアプリケーションからの通信メッセージを受信する通信インタフェースとを備え、ブラウザ又はアプリケーションからの通信メッセージ受信時に、登録されている処理決定定義に従って、登録済みの自動実行定義を実行するかを決定し、通信メッセージを、送り先であるアプリケーション又はブラウザへ送信し、実行すると決定した自動実行定義に従って、ブラウザに少なくとも一つのGUI操作指示を送ることを特徴とするアプリケーション拡張システムを提供するものである。
 また、上記目的を達成するため、本発明は、第2の態様として、自動実行の起動条件を含む処理決定定義と前記自動実行として行う処理の内容を示す自動実行定義との登録を受け付ける工程と、ブラウザ又はアプリケーションからの通信メッセージを受信する工程と、登録されている前記処理決定定義に従って、登録済みの前記自動実行定義を実行するかを決定する工程と、前記受信した通信メッセージを、送り先である前記アプリケーション又は前記ブラウザへ送信する工程と、実行すると決定した前記自動実行定義に従って、前記ブラウザに少なくとも一つのGUI操作指示を送る工程とを有することを特徴とするアプリケーション拡張方法を提供するものである。
 また、上記目的を達成するため、本発明は、第3の態様として、上記第2の態様に係るアプリケーション拡張方法をコンピュータに実行させるアプリケーション拡張プログラムを提供するものである。
 本発明によれば、複数Webページの画面遷移によって構成されるWebシステムの、複数ページにまたがるカスタマイズを可能とし、Webページの内容に応じてカスタマイズ方法を変更できるアプリケーション拡張システム、拡張方法、拡張プログラムを提供できる。
本発明に係るアプリケーション拡張システムの構成を示す図である。 本発明を好適に実施した第1の実施形態に係るアプリケーション拡張システムの構成を示す図である。 第1の実施形態に係るアプリケーション拡張システムの情報抽出定義の構成を示す図である。 第1の実施形態に係るアプリケーション拡張システムの処理決定定義の構成を示す図である。 第1の実施形態に係るアプリケーション拡張システムの変換定義の構成を示す図である。 第1の実施形態に係るアプリケーション拡張システムの自動実行定義の構成を示す図である。 第1の実施形態に係るアプリケーション拡張システムのデータ管理部が管理するデータの構造を示す図である。 第1の実施形態に係るアプリケーション拡張システムの動作の流れを示す図である。 第1の実施形態に係るアプリケーション拡張システムのブラウザ制御部の動作の流れを示す図である。 本発明を好適に実施した第3の実施形態に係るアプリケーション拡張システムのデータ管理部が管理するデータの構造を示す図である。 本発明を好適に実施した第4の実施形態に係るアプリケーション拡張システムの動作の流れを示す図である。 第4の実施形態に係るアプリケーション拡張システムのブラウザ制御部の動作の流れを示す図である。 本発明を好適に実施した第5の実施形態に係るアプリケーション拡張システムの構成を示す図である。 本発明を好適に実施した第6の実施形態に係るアプリケーション拡張システムの構成を示す図である。 本発明を好適に実施した第7の実施形態に係るアプリケーション拡張システムの情報抽出定義の構成を示す図である。 第1の実施例に係るアプリケーション拡張システムの構成を示す図である。 第1の実施例でのWebアプリケーションの動作を示す図である。 第1の実施例でのWebアプリケーションの動作を示す図である。 第1の実施例での情報抽出定義の構成を示す図である。 第1の実施例での処理決定定義の構成を示す図である。 第1の実施例での変換定義の構成を示す図である。 第1の実施例での自動実行定義の構成を示す図である。 第1の実施例でのデータ管理部が管理するデータの構造を示す図である。 第1の実施例でのアプリケーション拡張システムの動作を示す図である。 第2の実施例に係るアプリケーション拡張システムの構成を示す図である。 第2の実施例でのWebアプリケーションの動作を示す図である。 第2の実施例でのWebアプリケーションの動作を示す図である。 第2の実施例でのWebアプリケーションの動作を示す図である。 第2の実施例でのWebアプリケーションの動作を示す図である。 第2の実施例での情報抽出定義の構成を示す図である。 第2の実施例での処理決定定義の構成を示す図である。 第2の実施例での変換定義の構成を示す図である。 第2の実施例での自動実行定義の構成を示す図である。 第2の実施例でのデータ管理部が管理するデータの構造を示す図である。 第2の実施例でのアプリケーション拡張システムの動作を示す図である。
 図1に示すように、本発明に係るアプリケーション拡張システム1は、自動実行の起動条件を含む処理決定定義13と自動実行として行う処理の内容を示す自動実行定義14との登録を受けるインタフェース11と、ブラウザ20又はアプリケーション30からの通信メッセージを受信する通信インタフェース12とを備え、制御部15は、ブラウザ20又はアプリケーション30からの通信メッセージ受信時に、登録されている処理決定定義13に従って、登録済みの自動実行定義14を実行するかを決定し、通信メッセージを、送り先であるアプリケーション30又はブラウザ20へ送信し、実行すると決定した自動実行定義14に従って、ブラウザ20に少なくとも一つのGUI操作指示を送ることを特徴とする。GUI操作指示とは、ブラウザ20に表示されるGUIの入力欄に値を入力させたり、GUI上のボタンを押下させたりするなどの、GUI上の任意の操作に関する指示である。
 ここで、インタフェース11の種類は任意である。例えば、不図示の外部装置から処理決定定義13及び自動実行定義14を受信するためのインタフェースであっても良いし、これらの定義を登録するための入力操作を受け付けるためのインタフェース(キーボード等のユーザインタフェース)であっても良い。また、制御部15の機能はコンピュータによるソフトウェア処理によって実現できる。
 このような構成とすることにより、複数Webページの画面遷移によって構成されるWebシステムの、複数ページにまたがるカスタマイズを可能とし、Webページの内容に応じてカスタマイズ方法を変更できる。
 以下、本発明の好適な実施の形態について説明する。
 〔第1の実施形態〕
 本発明を好適に実施した第1の実施形態について説明する。図2に、本実施形態に係るアプリケーション拡張システムの構成を示す。アプリケーション拡張システム101は、プロキシ部110、ブラウザ制御部120、拡張定義管理部130、及びデータ管理部140を有する。
 プロキシ部110は、通信処理部111、メッセージ記憶部112、情報抽出部113、処理決定部114及び変換実行部115を有する。なお、図1における通信インタフェース12及び制御部15の機能の一部が通信処理部111に相当する。また、図1における制御部15の機能の一部が情報抽出部113に相当する。また、図1における制御部15の機能の一部が処理決定部114に相当する。また、図1における制御部15の機能の一部が変換実行部115に相当する。
 拡張定義管理部130は、情報抽出定義131、処理決定定義132、変換定義133及び自動実行定義134を有する。
 ブラウザ制御部120は、Webブラウザ103のある端末装置104上に設置され、Webブラウザ103に接続される。なお、図1における制御部15の機能の一部がブラウザ制御部120に相当する。図1におけるインタフェース11に相当する構成は不図示であるが、通信中継装置102がユーザインタフェースを備えていても良いし、端末装置104を含む任意の外部装置を介して処理決定定義132や自動実行定義134が登録される構成であっても良い。
 プロキシ部110、ブラウザ制御部120、拡張定義管理部130及びデータ管理部140は、通信中継装置102上に設置される。また、通信処理部111は、外部のWebブラウザ103とWebアプリケーション105とに接続される。Webブラウザ103とWebアプリケーション105とは複数でも良い。
 プロキシ部110のうち、通信処理部111、情報抽出部113、処理決定部114はコンピュータによるソフトウェア処理で機能を実現できる。また、ブラウザ制御部120も、コンピュータによるソフトウェア処理によって機能を実現できる。
 図3に、情報抽出定義131の構造を示す。情報抽出定義131は抽出式と保存先とで定義される。抽出式の記述方法は様々なものが考えられるが、好適な例としてはHTTPプロトコルの特定ヘッダ名やHTMLの内部構造に対するXPath記述式、さらに数値や文字列演算などを行う計算式などである。保存先はデータ管理部140のデータ名である。
 図4に、処理決定定義132の構造を示す。処理決定定義132は、データ名及びその値に対する演算や評価式と、評価式が満たされた時に実行する変換定義133又は自動実行定義134の定義名とのリストとして定義される。なお、図1における処理決定定義13が処理決定定義132に相当する。
 図5に、変換定義133の構造を示す。変換定義133は、定義名(変換定義名)と、HTTPプロトコルのヘッダやメッセージデータを加工するための変換プログラム(変換内容)とのリストとして定義される。
 図6に、自動実行定義134の構造を示す。自動実行定義134は、定義名(自動実行定義名)と、定義内容として処理記述とのリストで定義される。なお、図1における自動実行定義14が自動実行定義134に相当する。
 図7に、データ管理部140が持つデータの構造を示す。データ管理部140は複数のデータブロック601を持つことができ、各データブロック601はデータ名とデータ値とのリストとして定義される。
 抽出式や演算、評価式、変換プログラム、マクロ記述などの記述方法には、公知技術を適用可能であり、特定の記述方法に限定されない。
 アプリケーション拡張システム101の動作について説明する。
 通信処理部111はWebブラウザ103からWebアプリケーション105への要求メッセージ、又はWebアプリケーション105からWebブラウザ103への応答メッセージを受信し、メッセージをメッセージ記憶部112に記録し、情報抽出部113を呼び出す。
 情報抽出部113は、拡張定義管理部130の情報抽出定義131に従い、メッセージ記憶部112の要求や応答メッセージから必要な情報を抽出し、データ管理部140に保存し、処理決定部114を呼び出す。
 処理決定部114は、拡張定義管理部130の処理決定定義132に従ってデータ管理部140のデータを参照し、適用すべき変換又は自動実行処理を決定し、変換実行部115又はブラウザ制御部120に実行を指示する。
 変換実行部115は、実行指示を受けると拡張定義管理部130の指定された変換定義133を実行し、メッセージ記憶部112の要求又は応答メッセージを変更し、通信処理部111に送信指示を送る。
 通信処理部111は、送信指示を受けるとメッセージ記憶部112に記録されている変更済みのメッセージをWebブラウザ103又はWebアプリケーション105に送信する。
 ブラウザ制御部120は、実行指示を受けると拡張定義管理部130の指定された自動実行定義134を実行し、Webブラウザ103へユーザのGUIに相当する制御イベントを送る。
 図8に、本実施形態に係るアプリケーション拡張システム101の動作の流れを示す。
 アプリケーション拡張システム101は、まず通信メッセージの受信を待ち(ステップS701)、通信処理部111がメッセージを受信すると、通信処理部111はメッセージをメッセージ記憶部112に記録する(ステップS702)。
 次に、情報抽出部113は、拡張定義管理部130から情報抽出定義131を取り出し(ステップS703)、情報抽出定義131に従ってメッセージから情報を抽出し(ステップS704)、抽出した情報をデータ管理部140に保存する(ステップS705)。
 次に、処理決定部114は、拡張定義管理部130から処理決定定義132を取り出し(ステップS706)、処理決定定義132に従ってデータ管理部140のデータを参照して適用すべき処理を決定し(ステップS707)、変換処理が決定されていれば(ステップS708/Yes)、拡張定義管理部130から指定された変換定義133を取り出し(ステップS709)、変換定義133を実行して必要に応じてデータ管理部140のデータを参照しながらメッセージ記憶部112に記録されているメッセージを変更する(ステップS710)。適用すべき変換処理が無ければ(ステップS708/No)、いずれの変換定義も実行しない。
 次に、自動実行処理が決定されていれば(ステップS711/Yes)、決定した自動実行定義134の実行をブラウザ制御部120に指示する(ステップS712)。
 最後に、通信処理部111は、メッセージ記憶部112に記録されているメッセージをWebブラウザ103又はWebアプリケーション105へ送信する(ステップS713)。その後、ステップS701へ戻る。
 図9に、ブラウザ制御部120の動作の流れを示す。
 ブラウザ制御部120は、実行指示を受けると(ステップS801)、拡張定義管理部130から指定された自動実行定義134を取り出す(ステップS802)。そして、ブラウザ制御部120は、自動実行定義134から次に実行すべき処理記述を取り出す(ステップS803)。処理記述がデータ管理部140のデータ処理であれば(ステップS804/Yes)、ブラウザ制御部120は、データ管理部140を呼び出してデータの参照や蓄積を行う(ステップS805)。処理記述がブラウザ制御であれば(ステップS804/No、S806/Yes)、ブラウザ制御部120は、Webブラウザ103にデータの入力やボタンのクリックなどの指定されたユーザGUI操作に相当する制御イベントを送る(ステップS807)。さらに実行すべき処理記述があれば(ステップS808/Yes)、ステップS803に戻って実行を繰り返す。
 ブラウザ制御部120による自動実行とプロキシ部110によるメッセージ処理とは並行して行われ、ブラウザ制御部120による自動実行の過程で次のメッセージがプロキシ部110へ送られた場合、このメッセージに対してもステップS701以降の処理が適用される。
 このように、本実施形態に係るアプリケーション拡張システム1は、HTTPの通信を制御するプロキシ部110と、Webブラウザ103によるWebアプリケーション105のGUI操作を自動的に行うブラウザ制御部120と、異なるページ間やアプリケーション間で共有するデータを管理するデータ管理部140とを備え、プロキシ部110が要求や応答メッセージから必要な情報を抽出してデータ管理部140に保存し、データ管理部140の内容から実行すべき処理の内容を決定する。処理の内容は要求又は応答メッセージの変換と自動実行の開始となる。
 元のWebアプリケーションに対するカスタマイズの内容として、異なるページへの遷移や、ユーザの操作のエミュレーションが必要な場合は、ブラウザ制御部120に自動実行を指示する。
 また、元のWebブラウザに対するカスタマイズの内容として、ページ内の書き換えが必要な場合は変換処理を指示する。
 処理内容の決定や、変換処理、自動実行処理で別ページに含まれる情報を利用する場合は、データ管理部140から取得することで、複数ページにまたがる情報を用いた拡張を行う。
 このような構成とすることにより、複数Webページの画面遷移によって構成されるWebページにおいて、あるページの内容を他のページの変換に使用したり、複数の画面にまたがったユーザの操作手順を変更するといった、複数ページにまたがるカスタマイズと、Webページの内容によってカスタマイズ方法を変更することが可能となる。
 これは、まずプロキシ部110がWebページ内から情報を抽出してデータ管理部140に保存し、処理決定部132がデータ管理部140に保存された同一又は異なるページから抽出された情報を用いてカスタマイズ方法を決定し、決定内容を変換実行部115又はブラウザ制御部120に指示し、変換実行部115がデータ管理部140に保存された同一又は異なるページに含まれる情報を用いた変換処理を行い、ブラウザ制御部120がプロキシ部110からの指示によってユーザが使用しているWebブラウザ103上で自動実行を開始し他のページへ画面遷移させることができるためである。
 本実施形態に係るアプリケーション拡張システムは、複数のページにまたがってアプリケーションの振る舞いを変更し、既存のアプリケーションを変更せずにカスタマイズを実現したり、利用者によって異なる要求に一つのアプリケーションで対応するといった用途に適用できる。
 〔第2の実施形態〕
 本発明を好適に実施した第2の実施形態について説明する。
 上記第1の実施形態においては、データ管理部140は単純に指示されたデータを保存していたが、本実施形態においては、このデータの管理をWebブラウザ103と通信中継装置102やWebアプリケーション105間で管理される何らかのセッションに関連付けて管理する。ここでいうセッションとは、一般にWebシステムで広く用いられている、一連の操作によって発生する複数のHTTP要求や応答を一塊として扱うための仕組みであり、塊として扱う単位は端末装置ごと、利用ユーザごと、プロキシ部110にログイン処理を設けてログインが有効な間、など様々な単位がありうる。セッションを実現する方法は様々なものがあるが、特定の方法には限定されない。セッション管理の好適な例は、HTTPのクッキーを用いてセッションIDを記録し、このIDをメッセージに付与するものである。
 本実施形態では、通信処理部111がメッセージ受信時にセッションを識別すると、セッションを通信中継装置102内で一意に識別するセッションIDとあわせてメッセージをメッセージ記憶部112に記録し、データ管理部140は保存するデータをセッションIDごとに分けて保存する。また、あるメッセージ受信に対する処理として情報抽出部113、処理決定部114、ブラウザ制御部120が動作する場合、受信したメッセージのセッションIDが一致するデータのみを操作(読み出しや書き換えなど)する。
 何らかの形でセッションの終了(ログアウトやブラウザとの接続の切断やタイムアウトなど)が通信処理部111によって検出された場合、データ管理部140はそのセッションのデータを破棄しても良い。
 データ管理部140のデータをセッションに関連付けて管理することで、処理の決定や変換、自動実行などで用いるデータを特定ユーザの特定の一連処理中でのみ有効な一時的データとして扱うことができる。
 〔第3の実施形態〕
 本発明を好適に実施した第3の実施形態について説明する。
 上記第2の実施形態においては、データ管理部140は全てのデータをセッションに関連付けられた一時的データとして扱っていたが、本実施形態においては、データによって一時的データかセッションに依存しない永続的データかを選択できるようにする。さらに永続的データの場合その共有範囲などを設定できるようにしても良い。共有範囲は、全ての通信で共有、同じユーザの全てのセッション間で共有、ある特定のユーザ属性を持つユーザ間で共有などの様々形態が考えられる。
 ユーザやユーザ属性など何らかの管理単位で共有範囲を指定可能にする場合、通信処理部111がユーザ管理機能や認証機能など管理単位に関する情報を持ち、メッセージが属するユーザなどの管理単位の情報を取得できる必要がある。
 図10に、本実施形態のデータ管理部140に管理されるデータの構造を示す。本実施形態では、データ管理部140が、データブロックごとに共有範囲の項目を持ち、これが一時的の場合にはデータを第2の実施形態のようにセッションに関連付けて管理し、共有範囲が永続的なものの場合は全てのセッションが同一のデータを操作する。永続的の時にさらにユーザ間などの共有範囲が設定されている場合、この共有範囲ごとにデータを分けて管理する。
 一時的データや共有データを混在して管理可能とすることで、処理の決定や実行に必要な様々な情報を柔軟に管理することが可能となる。
 〔第4の実施形態〕
 本発明を好適に実施した第4の実施形態について説明する。
 上記第1の実施形態においては、ブラウザ制御部120は端末装置104上に事前に配備されていたが、本実施形態においては、ブラウザ制御部120をWebブラウザ103上で実行されるスクリプトとして実装し、処理決定部114が自動実行を決定した時に、変換実行部115が応答メッセージの中にブラウザ制御部120を挿入するようにする。開始すべき自動実行定義134の名前や内容は同時に挿入するか、又はWebブラウザ103上でブラウザ制御部120が実行を開始した後に通信中継装置102と通信して取得する。
 図11に、本実施形態に係るアプリケーション拡張システムの動作の流れを示す。図8に示したフローチャートとはステップS712の相当する部分の動作が異なっている。本実施形態では、処理決定部114が自動実行を決定すると(ステップS711/Yes)、変換実行部115に自動実行の指示を行い、変換実行部115は実行に加え、自動実行の指示を受けると応答メッセージにブラウザ制御部120のスクリプトを挿入する処理を行う(ステップS1001)。これ以外は図8に示した動作と同様である。
 図12に、本実施形態に係るブラウザ制御部120の動作の流れを示す。ブラウザ制御部120のスクリプトは、まず最初にWebアプリケーション105のGUIを表示しているウインドウとは別のウインドウを生成し、その生成したウインドウ内でスクリプトを実行し、ブラウザ制御部120としての動作を行う(ステップS1101)。以降の処理は、図9のステップS802以降と同様である。
 ブラウザ制御部120を通信中継装置102が挿入することで、端末装置104側は汎用のブラウザのみがあれば事前準備なしにアプリケーション拡張システムを実現できる。
 また、通常Webブラウザ内で実行されるスクリプトは画面遷移が起きると実行が停止してしまうが、別ウインドウを生成してこれにブラウザ制御部120の実行を行わせることで、元のWebアプリケーション105のGUIを表示しているウインドウが画面遷移してしまっても、ブラウザ制御部120としての機能を継続することができる。
 〔第5の実施形態〕
 本発明を好適に実施した第5の実施形態について説明する。
 上記第1の実施形態においては、ブラウザ制御部120は端末装置104上に配備されていたが、ブラウザ制御部を通信中継装置102内に配置し、ブラウザ制御部からWebブラウザ103への制御イベントを通信を用いて送信するようにしても良い。通信方式は様々なものが考えられるが、好適な例はリモートプロシジャーコール(Remote Procedure Call)による遠隔処理呼び出しである。
 図13に、本実施形態に係るアプリケーション拡張システムの構成を示す。ブラウザ制御部1201が通信中継装置102上に配置されている点で、第1の実施形態と異なっている。
 このようなWebブラウザ103の遠隔制御が可能か否かは、Webブラウザ103や端末装置104のOSなどの作りに依存するが、機能の遠隔制御自体は広く使用されている一般的な技術であり、これが利用できる環境であれば、本実施形態の構成を適用し、端末装置104側は汎用のWebブラウザ103のみがあれば事前準備なしにアプリケーション拡張システムを実現できる。
 〔第6の実施形態〕
 本発明を好適に実施した第6の実施形態について説明する。
 上記第1の実施形態では、変換実行部115は通信中継装置102上に配備されていたが、変換実行部を端末装置104上に配置し、Webブラウザ103がページを表示した後で画面を書き換えるようにしても良い。
 図14に、本実施形態に係るアプリケーション拡張システムの構成を示す。変換実行部1301が端末装置104上に配置され、変換処理はHTMLなどを含んだ通信メッセージではなく、Webブラウザ103が解釈実行した結果の画面に対して行う。
 スクリプトのWebブラウザ103での実行によって表示する内容をWebブラウザ103上で動的に生成するWebアプリケーション105では、変換すべき画面の内容がHTMLとして応答メッセージには含まれない場合があるが、本実施形態ではこのようなWebアプリケーションの画面変換も実現可能である。
 〔第7の実施形態〕
 本発明を好適に実施した第7の実施形態について説明する。
 上記第1の実施形態では、情報抽出定義131は常に全ての定義が評価されていたが、本実施形態においては、情報抽出定義がHTTPヘッダやデータ管理部140のデータなどを用いた起動条件を持つようにし、起動条件を満たした抽出式のみを評価するようにする。
 図15に、本実施形態に係るアプリケーション拡張システムの情報抽出定義131の構成を示す。
 要求メッセージのポストデータや応答メッセージのHTMLデータからの情報抽出は、メッセージによってポストデータはHTMLの有無や内容が大きく変化するため、抽出式の対象となるデータが存在しない場合や、本来の意図とは異なるデータが抽出されてしまう可能性がある。本実施形態のように、起動条件を指定することで意図したメッセージにのみ抽出式を適用することが可能となる。
 以下、本発明の好適な実施の形態に係るアプリケーション拡張システムの実施例について説明する。
 〔構成〕
 図16に示すように、通信中継装置102上にプロキシ部110、データ管理部140、拡張定義管理部130が設置されており、また端末装置104にはWebブラウザ103に接続されたブラウザ制御部120が設置されている。
 プロキシ部110の通信処理部111は、Webブラウザ103とWebアプリケーション1501とに接続されている。
 図17は、Webアプリケーション1501の動作示す図である。
 Webアプリケーション1501は、ページA、ページB、ページCの3ページにまたがり情報a1、a2、b1、b2、c1、c2を入力するアプリケーションであり、データを入力後「次へ」ボタンを押下することで次のページに遷移するようになっている。また、Cページで「登録」ボタンを押下すると入力データがアプリケーションに保存される。
 また、Webアプリケーション1501の全てのページは同一のURLでアクセスするようになっており、アプリケーション内部でそれ以前の通信の状態から応答メッセージで返すWebページの内容を変更するようになっている。
 ここで、利用者の要求として、ユーザの入力作業を簡略化できるように、いくつかの入力欄は省略するようにWebアプリケーション1501をカスタマイズすることを想定する。
 図18に、利用者の望むカスタマイズがなされたWebアプリケーション1501の動作を示す。
 a2、b1、b2は常に同じ固定値なので入力を省略し、a1、c1、c2のみを入力し、またc1は完全に固定値ではないが多くの場合同じ値なので既定値を設定し必要な時のみ変更できるようにする。
 図19は、拡張定義管理部130に登録されている情報抽出定義131である。抽出式として、ページ内の一つ目の入力欄の項目名(文字列a1、b1、c1など)を取り出すためのXPath式“//table/tr[1]/td[1]”が指定されており、保存先としてデータPの“項目名”にその内容を保存するようになっている。
 図20は、拡張定義管理部130に登録されている処理決定定義132である。データPの“項目名”の値によってページの内容がページA、B、Cのいずれであるかを判別し、ページAかページCならば変換定義AかCを、ページBの場合には変換定義Bと自動実行定義Bとを実行する。
 図21は、拡張定義管理部130に登録されている変換定義133である。
 変換定義Aでは、a2の入力欄にデータXのデータ名“a2”の値を挿入し、かつa2の文字列及び入力欄の表示を隠すように変換する。
 変換定義Bでは、b1、b2の文字列及び入力欄の表示を隠すように変換する。
 変換定義Cでは、c1の入力欄にデータXのデータ名“c1”の値を挿入するように変換する。
 なお、表示を隠す場合、Webブラウザ103上には表示はされないが、Webブラウザ制御部120からは操作可能で入力されたデータはサーバへ送信される状態である。
 図22は、拡張定義管理部130に登録されている自動実行定義134である。自動実行定義Bは、データの取り出し及び入力欄への設定が二つずつと、ボタンの押下とで五つの処理記述からなる。
 図23は、データ管理部140が管理するデータである。“項目名”のデータが持つ一時的データのデータPと、“a2”、“b1”、“b2”、“c1”のデータを持つ永続的データのデータXとがある。
 〔動作〕
 アプリケーション拡張システムの動作について説明する。図24にアプリケーション拡張システムの動作の一例を示す。ユーザがWebブラウザ103からアプリケーション拡張システム101の通信処理部111を介してWebアプリケーション1501にアクセス要求を送ると(2301)、通信処理部111は要求メッセージをメッセージ記憶部112に記録し、情報抽出部113が情報抽出を試みる。ここでは抽出式は応答メッセージのHTML文書にのみ適用されるため、要求メッセージの場合データPの項目名の値は空文字列となる。
 次に、処理決定部114が処理決定定義132の三つの評価式を評価するが、ここでは該当する式は無いため、何の処理も行わないことが決定され、通信処理部111は受信した要求メッセージをWebアプリケーション1501に送信する。
 なお、ここでは要求メッセージに対する処理は行わないため、以後ページBとページCとに対する要求メッセージの処理の記載は省略する。
 次に、Webアプリケーション1501は、要求メッセージを受け取ると、最初の通信なのでページAのHTMLを応答メッセージとして返し、これが通信処理部111へ送られる(2302)。
 通信処理部111は応答メッセージをメッセージ記憶部112に記録し、情報抽出部113が情報抽出を試み、ページ内の一つ目の入力欄の項目名として文字列“a1”を取り出し、データPの“項目名”のデータ値に格納する。
 次に、処理決定部114が処理決定定義132の三つの評価式を評価し、1行目の式が条件を満たすため、その処理内容から変換定義Aを実行することを決定し、変換実行部115に変換定義Aの実行を指示する。
 変換実行部115は、拡張定義管理部130から変換定義Aを取り出し、その定義内容を実行し、データXのデータ名a2の値“値1”を取り出し、a2の入力欄の初期値として設定すると同時に、a2の表示及び入力欄を見えなくなるようにメッセージ記憶部112の応答メッセージのHTMLを変更する。
 変換が終了すると、通信処理部111は変更された応答メッセージをWebブラウザ103に送信する(2302’)。
 Webブラウザ103は、受信したページAを表示するが、ここではa2の入力欄は表示されない。
 次に、ユーザがa1に値を入力し、「次へ」ボタンを押下すると(2303)、二つ目の要求メッセージがアプリケーション拡張システムを介してWebアプリケーション1501へ送られ、Webアプリケーション1501はページBの内容を応答メッセージとして返す(2304)。
 通信処理部111は、応答メッセージをメッセージ記憶部112に記録し、情報抽出部113が情報抽出を試み、ページ内の一つ目の入力欄の項目名として文字列“b1”を取り出し、データPの項目名の値に格納する。
 次に、処理決定部114が処理決定定義132の三つの評価式を評価し、2行目の式が条件を満たすため、その処理内容から変換定義Bと自動実行定義Bとを実行することを決定し、変換実行部115に変換定義Bの実行を、ブラウザ制御部120に自動実行定義Bの実行をそれぞれ指示する。
 変換実行部115は、拡張定義管理部130から変換定義Bを取り出し、b1とb2との表示及び入力欄を見えなくするようにメッセージ記憶部112の応答メッセージのHTMLを変更し、通信処理部111は変更された応答メッセージをWebブラウザ103に送信する(2304’)。
 同時にブラウザ制御部120は、拡張定義管理部130から自動実行定義Bの定義内容を取り出し、処理記述を順次実行し、1行目と3行目とでデータ処理としてデータX.b1とデータX.b2から値を取り出し、2、4、5行目でブラウザにb1とb2との入力欄に入力と「次へ」ボタンの押下という制御イベントとを送る(2305、2306、2307)。
 この自動実行により、Webアプリケーション1501に次の要求メッセージが送られることとなる。
 この結果、Webブラウザ103にページBは「次へ」ボタンのみ表示されて、かつすぐに自動で次の画面に遷移してしまうように見える。
 次に、三つ目の要求メッセージが一つ目や二つ目と同様にWebアプリケーション1501へ送られ(2308)、応答メッセージとしてページCの内容が返る(2309)。
 通信処理部111は、応答メッセージをメッセージ記憶部112に記録し、情報抽出部113が情報抽出を試み、ページ内の一つ目の入力欄の項目名として文字列“c1”を取り出し、データPの項目名の値に格納する。
 次に処理決定部114が処理決定定義132の三つの評価式を評価し、3行目の式が条件を満たすため、その処理内容から変換定義Cを実行することを決定し、変換実行部115に変換定義Cの実行を指示し、変換実行部115は変換定義Cを取り出して実行し、データX.c1を取り出しc1の入力欄に初期値を設定し、Webブラウザ103へ送信する(2309’)。
 これにより、ユーザはWebアプリケーション1501をあたかも図18のような一部ページ遷移を省略した形で利用することが可能となる。
 さらに、Webアプリケーション1501の内部の実行状態や、クッキーやウインドウの生成といったWebブラウザ103の実行状態はアプリケーション拡張システムを使用せず直接使用した場合と同じであるため、たとえWebアプリケーション1501がページA、B、C以外の複数のページを持ち、その動作がこれら実行状態に依存するものであっても、カスタマイズを施した後でも他のページをそのまま使い続けることが可能となる。
 また、ここでは永続データであるデータXの共有範囲は特に規定しなかったが、例えばこの永続データの共有範囲をユーザの所属部門ごととすると、所属部門ごとに自動入力する固定値の値を変更することが容易に行える。
 〔構成〕
 図25に、アプリケーション拡張システムの構成を示す。接続されるWebアプリケーションと、登録される拡張定義が異なる以外は、実施例1と同様である。Webアプリケーションとしては、Webアプリケーション2402、2403、2404に接続されている。
 図26に、Webアプリケーション2402の動作を示す。Webアプリケーション2402は、Webアプリケーション1501と同様にページA、ページB、ページCの3ページにまたがり情報を入力するが、入力項目はa1、b1、c1のみである。
 図27に、Webアプリケーション2403の動作を示す。Webアプリケーション2403は、ページDとページEとからなり、ページDにWebアプリケーション2402のb1の入力値を入力すると、ページEで入力値の関連情報を表示する。
 図28に、Webアプリケーション2404の動作を示す。Webアプリケーション2404は、ページFとページGとからなり、ページFにWebアプリケーション2402のb1の値を入力すると、ページGで入力値の関連情報を表示する。
 ここで、a1の入力内容は顧客の業種名とし、Webアプリケーション2403は製造業の情報を、Webアプリケーション2404はそれ以外の業種の情報を管理しているとする。
 利用者の要求として、ユーザが入力作業をしやすくなるよう、参考に関連情報の表示を追加するようWebアプリケーション2402をカスタマイズするとする。図29は、利用者の望むカスタマイズがなされたWebアプリケーション2402の動作を示す図である。ページAは変わらないが、ページBとCとでは前のページで入力した内容を、さらにページCではWebアプリケーション2403又は2404でb1への入力値の関連情報を検索した結果を追加して表示する。
 図30に、拡張定義管理部130に登録されている情報抽出定義131を示す。抽出式として、実施例1と同様にページ内の一つ目の入力欄の項目名を取り出すためのXPath式とその保存先データPの“項目名”に加えて、要求がHTTPのPOSTコマンドである場合にそのPOSTするデータの名前がそれぞれa1、b1のものの値を取り出し、データYのa1かb1にそれぞれ保存する定義を持つ。
 図31に、拡張定義管理部130に登録されている処理決定定z義132を示す。データPの“項目名”の値によってページの内容がページBかページCかを判別し、ページBなら変換定義Bを実行する。さらにページCの場合、データYのa1の値を参照し、a1が“製造業”なら変換定義C1及び自動実行定義C1を、a1が“製造業”でなければ変換定義C2及び自動実行定義C2を実行する。
 図32は、拡張定義管理部130に登録されている変換定義133である。
 変換定義Bでは、a1とその値の表示を追加する。
 変換定義C1では、a1及びb1のそれぞれの値の表示に加え、Webアプリケーション2403の埋め込み表示を追加する。
 変換定義C2では、a1及びb1のそれぞれの値の表示に加え、Webアプリケーション2404の埋め込み表示を追加する。
 なお、埋め込み表示はHTMLのIFrameなどで記述できる。
 図33は、拡張定義管理部130に登録されている自動実行定義134である。
 自動実行定義C1は、データの取り出しと、入力欄への設定と、検索ボタンの押下との三つの処理記述からなる。一方、自動実行定義C2は、データの取り出しと、入力欄への設定と、submitボタンの押下との三つの処理記述からなる。
 図34は、データ管理部140の管理するデータである。
 “項目名”のデータを持つ一時的データのデータPと、“a1”、“b1”のデータを持つ一時的データのデータYとがある。
 〔動作〕
 図35に、アプリケーション拡張システムの動作を示す。なお、通信処理部111がメッセージを受信してメッセージ記憶部112に記録し、最後に記録されたメッセージを送信する動作は第1の実施例と同様であるため、説明は省略する。
 また、ページ内の一つ目の入力欄の項目名をデータPに格納し、ページB、Cの判定に用いる部分も第1の実施例と同じであるため、説明は省略する。
 本実施例では、ページAとページBの「次へ」ボタンを押下したときに送られる要求メッセージから、情報抽出部113がそれぞれ入力されたa1とb1との値を取り出し、データYに格納する。
 ページBの応答メッセージに対しては、変換定義Bが選択されて変換実行部115で実行される。変換処理としては、以前の要求メッセージに含まれていたa1の入力値がデータYから取り出されてページBのHTMLに埋め込まれる。
 ページCの応答メッセージに対しては、まず処理決定定義132の評価式を評価する段階で、以前の要求メッセージに含まれていたa1の入力値がデータYから取り出されて評価され、その値が“製造業”か否かで、変換定義C1及び自動実行定義C1か、変換定義C2及び自動実行定義C2かの、どちらの処理が行われるかが決定される。
 a1の入力値が“製造業”だった場合、変換実行部115で変換定義C1が実行され、前のページでのa1、b1の入力値がデータYから取り出されて表示が追加されるのに加えて、Webアプリケーション2403の埋め込み表示が追加される。
 次いで、ブラウザ制御部120で自動実行定義C1が実行され、データYのb1の入力値が取り出され、埋め込み表示されているWebアプリケーション2403のb1の入力欄に挿入し、検索ボタンが押下される。
 その結果、ページCの関連情報の部分には、Webアプリケーション2403のページEが埋め込み表示されることとなる。
 a1の入力値が“製造業”以外だった場合、変換実行部115で変換定義C2が実行され、前のページでのa1、b1の入力値がデータYから取り出されて表示が追加されるのに加えて、Webアプリケーション2404の埋め込み表示が追加される。
 次いで、ブラウザ制御部120で自動実行定義C2が実行され、データYのb1の入力値が取り出され、埋め込み表示されているWebアプリケーション2404のb1の入力欄に挿入し、submitボタンが押下される。
 その結果、ページCの関連情報の部分には、Webアプリケーション2404のページGが埋め込まれることになる。
 これにより、以前にやりとりされた要求や応答のメッセージの内容を参照し、その内容を追加表示したり、内容に応じてカスタマイズの動作を変更したりできる。
 また、ページEやページGのように、何らかのGUI操作を行わないと表示できない情報を、他のアプリケーションと組み合わせて表示することが可能となる。
 アプリケーションには変更を加えずにカスタマイズを実現することで、アプリケーション拡張システムを複数配置したり、又はユーザによって適用する拡張定義を変更するだけで、異なる要求を持つ利用者ごとにアプリケーションの振る舞いをカスタマイズして見せることが可能となる。
 なお、上記各実施形態においては、HTTPとHTMLとにより構成されるWebシステムを例としたが、メッセージの配送プロトコルはHTTPに限定されるものではなく、またメッセージの内容もHTMLに限定されるものではない。汎用的な端末上のブラウザが、通信を介してアプリケーションからGUIの内容を記述したデータを取得して解釈、表示し、ユーザがブラウザに表示されたGUIを操作する形式のシステムであれば本発明は適用可能である。
 このように、本発明は様々な変形が可能である。
 この出願は、2008年6月30日に出願された日本出願特願2008-170297を基礎とする優先権を主張し、その開示の全てをここに取り込む。
 1、101  アプリケーション拡張システム
 11  インタフェース
 12  通信インタフェース
 13、132  処理決定定義
 14、134  自動実行定義
 15  制御部
 20  ブラウザ
 30  アプリケーション
 102  通信中継装置
 103  Webブラウザ
 104  端末装置
 105、1501、2402、2403、2404  Webアプリケーション
 110  プロキシ部
 111  通信処理部
 112  メッセージ記憶部
 113  情報抽出部
 114  処理決定部
 115、1301  変換実行部
 120、1201  ブラウザ制御部
 130  拡張定義管理部
 131  情報抽出定義
 133  変換定義
 140  データ管理部

Claims (16)

  1.  自動実行の起動条件を含む処理決定定義と前記自動実行として行う処理の内容を示す自動実行定義との登録を受けるインタフェースと、
     ブラウザ又はアプリケーションからの通信メッセージを受信する通信インタフェースとを備え、
     前記ブラウザ又はアプリケーションからの通信メッセージ受信時に、
     登録されている前記処理決定定義に従って、登録済みの前記自動実行定義を実行するかを決定し、
     前記通信メッセージを、送り先である前記アプリケーション又は前記ブラウザへ送信し、
     実行すると決定した前記自動実行定義に従って、前記ブラウザに少なくとも一つのGUI操作指示を送ることを特徴とするアプリケーション拡張システム。
  2.  前記ブラウザと前記アプリケーションとの間の通信メッセージを制御するプロキシ部と、
     前記ブラウザの少なくとも一つのGUI操作を前記自動実行定義に従って自動実行するブラウザ制御部と、
     前記処理決定定義及び前記自動実行定義を格納する拡張定義管理部とを有し、
     前記プロキシ部が通信メッセージ受信時に前記処理決定定義に従って自動実行の開始を決定して前記ブラウザ制御部に自動実行の開始を指示し、
     自動実行の開始指示を受けた前記ブラウザ制御部が、前記自動実行定義に従ってGUI操作を行うことを特徴とする請求項1記載のアプリケーション拡張システム。
  3.  前記拡張定義管理部は、通信メッセージを変換するための変換定義をさらに格納し、
     前記プロキシ部は、処理決定時にさらに変換処理を行うか否かを決定し、
     変換処理を行う場合には、前記変換定義に従って通信メッセージを変換することを特徴とする請求項2記載のアプリケーション拡張システム。
  4.  前記通信メッセージから抽出されたデータを保持するデータ管理部を備え、
     前記拡張定義管理部は、通信メッセージから情報を抽出するための情報抽出定義をさらに格納し、
     前記プロキシ部は、通信メッセージ受信時に前記情報抽出定義に従って前記通信メッセージから情報を抽出し、取得したデータを前記データ管理部へ保存する情報抽出手段と、前記処理決定の際に前記データ管理部のデータを参照して処理を決定する処理決定手段と、変換処理の際に前記データ管理部のデータを参照して変換処理を行う変換実行手段とを有し、
     前記ブラウザ制御部は前記データ管理部のデータを参照して自動実行処理を行うことを特徴とする請求項3記載のアプリケーション拡張システム。
  5.  前記プロキシ部が、通信メッセージ受信時に前記ブラウザと前記アプリケーションとの間のセッション情報を認識し、
     前記データ管理部は、保持するデータを前記セッション情報ごとに管理し、
     前記プロキシ部の情報抽出処理手段、処理決定手段、及び変換実行手段と、前記ブラウザ制御部とは、処理する通信メッセージのセッションに関連した前記データ管理部から読み出して、各々における処理に用いることを特徴とする請求項4記載のアプリケーション拡張システム。
  6.  前記データ管理部は、前記セッションごとに管理されるデータに加え、異なるセッション間で共有されるデータを保持し、前記プロキシ部及び前記ブラウザ制御部は、両種類のデータを各々における処理に用いることを特徴とする請求項5記載のアプリケーション拡張システム。
  7.  端末装置と通信中継装置とで構成され、
     前記ブラウザ制御部が前記端末装置上に、前記プロキシ部が前記通信中継装置上にそれぞれ配置されたことを特徴とする請求項2から6のいずれか1項記載のアプリケーション拡張システム。
  8.  端末装置と通信中継装置とで構成され、
     前記ブラウザ制御部と前記プロキシ部とが、前記通信中継装置上に配置されたことを特徴とする請求項2から6のいずれか1項記載のアプリケーション拡張システム。
  9.  前記プロキシ部が、自動実行の開始を決定した時に、前記ブラウザが応答メッセージ受信時に自動起動するように前記ブラウザ制御部を通信の応答メッセージ内に挿入し、前記ブラウザ制御部が前記ブラウザによって起動されると自動実行を開始することを特徴とする請求項2から6のいずれか1項記載のアプリケーション拡張システム。
  10.  端末装置と通信中継装置とで構成され、
     前記端末装置上に配置される変換実行部をさらに有し、前記プロキシ部が変換処理の実行を決定した時に、前記変換実行部に変換処理の実行を指示し、前記ブラウザが応答メッセージを解析して処理した結果の表示画面を前記変換実行部が変換することを特徴とする請求項3から6のいずれか1項記載のアプリケーション拡張システム。
  11.  自動実行の起動条件を含む処理決定定義と前記自動実行として行う処理の内容を示す自動実行定義との登録を受け付ける工程と、
     ブラウザ又はアプリケーションからの通信メッセージを受信する工程と、
     登録されている前記処理決定定義に従って、登録済みの前記自動実行定義を実行するかを決定する工程と、
     前記受信した通信メッセージを、送り先である前記アプリケーション又は前記ブラウザへ送信する工程と、
     実行すると決定した前記自動実行定義に従って、前記ブラウザに少なくとも一つのGUI操作指示を送る工程とを有することを特徴とするアプリケーション拡張方法。
  12.  通信メッセージを変換するための変換定義の登録をさらに受け付け、
     自動実行定義を実行するかを決定する際に、変換処理を行うか否かをさらに決定し、
     変換処理を行う場合には、前記変換定義に従って通信メッセージの変換を行うことを特徴とする請求項11記載のアプリケーション拡張方法。
  13.  前記通信メッセージから情報を抽出するための情報抽出定義の登録をさらに受け付け、
     通信メッセージ受信時に前記情報抽出定義に従って前記通信メッセージから抽出したデータを保存し、
     自動実行定義を実行するか否かの決定、変換処理、自動実行処理の際には、前記保存したデータを用いることを特徴とする請求項12記載のアプリケーション拡張方法。
  14.  前記通信メッセージ受信時に前記ブラウザと前記アプリケーションとの間のセッション情報を認識し、
     前記通信メッセージから抽出して保存したデータを前記セッション情報ごとに管理し、
     前記保存したデータのうち、処理する通信メッセージのセッションに関連するデータを読み出して、前記通信メッセージからのデータの抽出、自動実行定義を実行するか否かの決定、変換処理、及び自動実行処理に用いることを特徴とする請求項13記載のアプリケーション拡張方法。
  15.  前記セッションごとに管理されるデータに加え、異なるセッション間で共有されるデータも保持し、両種類のデータを前記通信メッセージからのデータの抽出、自動実行定義を実行するか否かの決定、変換処理、及び自動実行処理に用いることを特徴とする請求項14記載のアプリケーション拡張方法。
  16.  請求項11から15のいずれか1項記載のアプリケーション拡張方法をコンピュータに実行させるアプリケーション拡張プログラム。
     
PCT/JP2009/061891 2008-06-30 2009-06-29 アプリケーション拡張システム、拡張方法、拡張プログラム WO2010001871A1 (ja)

Priority Applications (2)

Application Number Priority Date Filing Date Title
JP2010519068A JP5321586B2 (ja) 2008-06-30 2009-06-29 アプリケーション拡張システム、拡張方法、拡張プログラム
US12/999,962 US20110093801A1 (en) 2008-06-30 2009-06-29 Application extension system, extension method, extension program

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
JP2008170297 2008-06-30
JP2008-170297 2008-06-30

Publications (1)

Publication Number Publication Date
WO2010001871A1 true WO2010001871A1 (ja) 2010-01-07

Family

ID=41465966

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/061891 WO2010001871A1 (ja) 2008-06-30 2009-06-29 アプリケーション拡張システム、拡張方法、拡張プログラム

Country Status (3)

Country Link
US (1) US20110093801A1 (ja)
JP (1) JP5321586B2 (ja)
WO (1) WO2010001871A1 (ja)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011145918A (ja) * 2010-01-15 2011-07-28 Hitachi Solutions Ltd Webアプリケーション表示制御システム
JP2011203800A (ja) * 2010-03-24 2011-10-13 Nomura Research Institute Ltd 企業Webページ管理システム
JP2013531295A (ja) * 2010-06-10 2013-08-01 アリババ・グループ・ホールディング・リミテッド オープン・アプリケーション・プログラミング・インターフェースに基づくオンライン・ビジネス法、システム、並びに、装置
JP2013186886A (ja) * 2012-12-05 2013-09-19 Murakumo Corp 情報処理装置、方法およびプログラム
WO2013168235A1 (ja) * 2012-05-08 2013-11-14 株式会社富士通ビー・エス・シー プログラム、情報処理装置およびデータ提供方法
JP2015148916A (ja) * 2014-02-06 2015-08-20 コニカミノルタ株式会社 操作処理装置、情報機器の制御方法およびコンピュータープログラム
JP2021140587A (ja) * 2020-03-06 2021-09-16 株式会社C−Rise 情報処理方法、コンピュータプログラム及び情報処理装置
WO2021199278A1 (ja) * 2020-03-31 2021-10-07 株式会社Peco 動物患者用電子カルテの提供方法

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8959425B2 (en) 2011-12-09 2015-02-17 Microsoft Corporation Inference-based extension activation
US9679163B2 (en) * 2012-01-17 2017-06-13 Microsoft Technology Licensing, Llc Installation and management of client extensions
US8843822B2 (en) 2012-01-30 2014-09-23 Microsoft Corporation Intelligent prioritization of activated extensions
US9449112B2 (en) 2012-01-30 2016-09-20 Microsoft Technology Licensing, Llc Extension activation for related documents
US9256445B2 (en) 2012-01-30 2016-02-09 Microsoft Technology Licensing, Llc Dynamic extension view with multiple levels of expansion
US11782876B2 (en) * 2019-10-04 2023-10-10 Canon Kabushiki Kaisha Information processing apparatus, method of controlling the same, and storage medium
US20230236712A1 (en) * 2022-01-24 2023-07-27 UiPath Inc. Browser-Based Robotic Process Automation (RPA) Robot Design Interface

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5918013A (en) * 1996-06-03 1999-06-29 Webtv Networks, Inc. Method of transcoding documents in a network environment using a proxy server
US5968119A (en) * 1996-12-09 1999-10-19 Wall Data Incorporated Method of accessing information of an SNA host computer from a client computer using a specific terminal emulation
JP3396177B2 (ja) * 1999-01-26 2003-04-14 インターナショナル・ビジネス・マシーンズ・コーポレーション ウェブページカスタマイズシステム
US6742043B1 (en) * 2000-01-14 2004-05-25 Webtv Networks, Inc. Reformatting with modular proxy server
US7210100B2 (en) * 2000-09-27 2007-04-24 Eizel Technologies, Inc. Configurable transformation of electronic documents
US7823070B2 (en) * 2003-12-19 2010-10-26 Fuji Xerox Co., Ltd. Methods and systems for extending existing user interfaces
US7509374B2 (en) * 2005-09-09 2009-03-24 Alchemic Solutions Group, Inc. Systems and methods for creating customized applications
US7664862B2 (en) * 2008-01-14 2010-02-16 International Business Machines Corporation Browser-based proxy server for customization and distribution of existing applications

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
DAISUKE IMAMURA ET AL.: "Web Application Frame Work Staveware", TOSHIBA REVIEW, vol. 59, no. 11, 1 November 2004 (2004-11-01), pages 47 - 50 *
KAZUYA KOYAMA ET AL.: "Web Service Network no Kanri Gijutsu", IEICE TECHNICAL REPORT, vol. 105, no. 526, 12 January 2006 (2006-01-12), pages 31 - 36 *
KEN'ICHI TAKAHASHI ET AL.: "2 So Kozo ni yoru Web Application no Web Service Henkan", TRANSACTIONS OF INFORMATION PROCESSING SOCIETY OF JAPAN, vol. 49, no. 1, 15 January 2008 (2008-01-15), pages 393 - 401 *

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2011145918A (ja) * 2010-01-15 2011-07-28 Hitachi Solutions Ltd Webアプリケーション表示制御システム
JP2011203800A (ja) * 2010-03-24 2011-10-13 Nomura Research Institute Ltd 企業Webページ管理システム
JP2013531295A (ja) * 2010-06-10 2013-08-01 アリババ・グループ・ホールディング・リミテッド オープン・アプリケーション・プログラミング・インターフェースに基づくオンライン・ビジネス法、システム、並びに、装置
US9146786B2 (en) 2010-06-10 2015-09-29 Alibaba Group Holding Limited Online business method, system and apparatus based on open application programming interface
US9699257B2 (en) 2010-06-10 2017-07-04 Alibaba Group Holding Limited Online business method, system and apparatus based on open application programming interface
WO2013168235A1 (ja) * 2012-05-08 2013-11-14 株式会社富士通ビー・エス・シー プログラム、情報処理装置およびデータ提供方法
JP2013186886A (ja) * 2012-12-05 2013-09-19 Murakumo Corp 情報処理装置、方法およびプログラム
JP2015148916A (ja) * 2014-02-06 2015-08-20 コニカミノルタ株式会社 操作処理装置、情報機器の制御方法およびコンピュータープログラム
JP2021140587A (ja) * 2020-03-06 2021-09-16 株式会社C−Rise 情報処理方法、コンピュータプログラム及び情報処理装置
WO2021199278A1 (ja) * 2020-03-31 2021-10-07 株式会社Peco 動物患者用電子カルテの提供方法
JP7005085B1 (ja) * 2020-03-31 2022-01-21 株式会社Peco 方法、プログラム、カルテ情報提供システム

Also Published As

Publication number Publication date
JPWO2010001871A1 (ja) 2011-12-22
US20110093801A1 (en) 2011-04-21
JP5321586B2 (ja) 2013-10-23

Similar Documents

Publication Publication Date Title
JP5321586B2 (ja) アプリケーション拡張システム、拡張方法、拡張プログラム
US10545749B2 (en) System for cloud computing using web components
KR101507629B1 (ko) 기존 애플리케이션들의 커스터마이징 및 분산을 위한 브라우저-기반 프록시 서버
US7761601B2 (en) Strategies for transforming markup content to code-bearing content for consumption by a receiving device
US8838808B2 (en) Asynchronous communication in web applications
US8782127B2 (en) Notification based web applications
US20100058118A1 (en) Storage medium recording information reacquisition procedure generation program and information reacquisition procedure generation apparatus
MXPA05002276A (es) Sistema y metodo para construir aplicaciones inalambricas con asignacion inteligente entre interfaz de usuario y componentes de datos.
KR20080041634A (ko) 클라이언트-서버 통신 개선 방법, 클라이언트-서버아키텍처 내의 서버, 클라이언트-서버 아키텍처 시스템 및컴퓨터 판독가능한 저장 매체
US20110145695A1 (en) Web page conversion system
US20040167749A1 (en) Interface and method for testing a website
US20130198333A1 (en) Method and device for recording and reproducing web operation
JP4846832B2 (ja) Webページの表示方法、計算機システム及びプログラム
JP5151696B2 (ja) ユニフォームリソースロケータ情報を書き換えるプログラム
JPH11167584A (ja) ページ遷移方法及びその実施装置並びにその処理プログラムとデータを記録した媒体
JP4302057B2 (ja) シームレス・ユビキタスシステム及び記録媒体並びにコンピュータの処理継続方法
US20050198568A1 (en) Table display switching method, text data conversion program, and tag program
CN102804177B (zh) 提供自适应上下文模型框架的方法、装置
JP5393242B2 (ja) データ提供方法および中間サーバ装置
US20100287292A1 (en) Method, apparatus and computer program product for generating a content website in a data communications network
US20070073902A1 (en) Information processor, information processing method and program
KR100798147B1 (ko) 표준 항목 리포지터리 기반의 화면간 자동 데이터 전송시스템 및 그 방법
JP2007272443A (ja) 開発支援装置、開発支援方法および開発支援プログラム
KR20050086185A (ko) 가전기기 네트워크 시스템 및 그 동작방법
CN109117283A (zh) 一种网络环境下遥控wps软件的方法

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: 09773449

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 12999962

Country of ref document: US

WWE Wipo information: entry into national phase

Ref document number: 2010519068

Country of ref document: JP

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 09773449

Country of ref document: EP

Kind code of ref document: A1