WO2022113315A1 - ユーザインタフェース拡張システム、ユーザインタフェース拡張方法及びユーザインタフェース拡張プログラム - Google Patents

ユーザインタフェース拡張システム、ユーザインタフェース拡張方法及びユーザインタフェース拡張プログラム Download PDF

Info

Publication number
WO2022113315A1
WO2022113315A1 PCT/JP2020/044397 JP2020044397W WO2022113315A1 WO 2022113315 A1 WO2022113315 A1 WO 2022113315A1 JP 2020044397 W JP2020044397 W JP 2020044397W WO 2022113315 A1 WO2022113315 A1 WO 2022113315A1
Authority
WO
WIPO (PCT)
Prior art keywords
base point
additional
screen
user interface
unit
Prior art date
Application number
PCT/JP2020/044397
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 JP2022564975A priority Critical patent/JPWO2022113315A1/ja
Priority to PCT/JP2020/044397 priority patent/WO2022113315A1/ja
Priority to US18/038,354 priority patent/US20240004528A1/en
Publication of WO2022113315A1 publication Critical patent/WO2022113315A1/ja

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/451Execution arrangements for user interfaces
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/048Interaction techniques based on graphical user interfaces [GUI]
    • G06F3/0484Interaction techniques based on graphical user interfaces [GUI] for the control of specific functions or operations, e.g. selecting or manipulating an object, an image or a displayed text element, setting a parameter value or selecting a range

Definitions

  • This disclosure relates to a user interface extension system, a user interface extension method, and a user interface extension program.
  • UI extension technology displays an additional UI on the screen of an existing system to improve system operation.
  • the conventional UI extension is targeted at Web systems.
  • the conventional UI extension uses a method such as a proxy server, a browser add-on, or inter-process communication for the HTTP (Hypertext Transfer Protocol) response of the Web system or the DOM (Document Object Model) drawn on the Web browser. ..
  • the conventional UI extension inserts HTML (HyperText MarkupLanguage) and JavaScript (registered trademark) into the Web system, thereby enabling the display of an additional UI.
  • the present application has been made in view of the above, and aims to apply the user interface extension to a wide range of systems.
  • the user interface extension system includes a base point search unit for searching a base point UI which is a base point for displaying an additional user interface (UI) added to the screen of the system from the screen of the system, and a background.
  • a base point search unit for searching a base point UI which is a base point for displaying an additional user interface (UI) added to the screen of the system from the screen of the system, and a background.
  • UI user interface
  • the user interface extension can be applied to a wide range of systems.
  • FIG. 1 is an explanatory diagram showing an example of a conventional UI extension.
  • FIG. 2 is an explanatory diagram showing an example of UI extension according to an implementation example.
  • FIG. 3A is an explanatory diagram showing an example of display control of an additional UI.
  • FIG. 3B is an explanatory diagram showing an example of display control of the additional UI.
  • FIG. 3C is an explanatory diagram showing an example of display control of an additional UI.
  • FIG. 4 is a diagram showing an example of the user interface expansion system according to the embodiment.
  • FIG. 5 is a diagram showing an example of a rule storage unit according to an embodiment.
  • FIG. 6 is an explanatory diagram showing an example of a base point search process for searching for a base point UI that is a base point for displaying an additional UI.
  • FIG. 7 is an explanatory diagram showing an example of a display control process for controlling the display of an additional UI.
  • FIG. 8 is an explanatory diagram showing an example of a data distribution process in which data is distributed between an existing UI and an additional UI.
  • FIG. 9A is an explanatory diagram showing an example of a timing generation process that generates a timing for redisplaying an additional UI.
  • FIG. 9B is an explanatory diagram showing an example of a timing generation process that generates a timing for redisplaying an additional UI.
  • FIG. 10 is a flowchart showing an example of a process for expanding the UI of the screen of the existing system, which is executed by the terminal device according to the embodiment.
  • FIG. 10 is a flowchart showing an example of a process for expanding the UI of the screen of the existing system, which is executed by the terminal device according to the embodiment.
  • FIG. 11 is a flowchart showing an example of a process for monitoring an existing system, which is executed by the terminal device according to the embodiment.
  • FIG. 12 is a flowchart showing an example of a process for searching a base UI of an existing system, which is executed by the terminal device according to the embodiment.
  • FIG. 13 is a flowchart showing an example of a process for controlling the display of an additional UI, which is executed by the terminal device according to the embodiment.
  • FIG. 14 is a flowchart showing an example of a process for monitoring changes in an existing system, which is executed by the terminal device according to the embodiment.
  • FIG. 15 is a flowchart showing an example of a process for distributing data between an existing UI and an additional UI, which is executed by the terminal device according to the embodiment.
  • FIG. 16 is a diagram showing an example of a hardware configuration.
  • UI extensions for Web systems have been proposed.
  • the conventional UI extension displays an additional UI by inserting HTML into the DOM tree drawn on the Web browser.
  • both the existing UI and the additional UI are in the DOM tree on the same web browser.
  • data can be distributed between the existing UI and the additional UI by executing JavaScript that operates the DOM on the Web browser.
  • the distribution of data involves, for example, reflecting the values entered in the additional UI in the existing UI.
  • FIG. 1 is an explanatory diagram showing an example of a conventional UI extension.
  • the screen 10 is a screen of a Web system (for example, a screen of an existing business system).
  • the screen 10 includes the existing UI 11.
  • the conventional UI extension displays the additional UI 12 by inserting an additional HTML into the DOM tree on the screen 10 of the Web system.
  • an existing UI 11 and an additional UI 12 exist in the same Web browser.
  • step S12 data is distributed between the existing UI 11 and the additional UI 12 by executing the API for operating the DOM tree with JavaScript (step S12).
  • the existing UI 11 and the additional UI 12 are in the same web browser. Therefore, in the conventional UI extension, data can be distributed relatively easily by operating the DOM tree with a program (JavaScript) that operates in a Web browser.
  • JavaScript JavaScript
  • the conventional UI extension operates the DOM tree, it is difficult to apply the conventional UI extension to a system other than the Web system.
  • the user interface extension system provides a UI extension that can be applied regardless of the implementation of the system.
  • the user interface extension system operates a web browser having the same size as the screen of the existing system and having a transparent background at the upper part of this screen independently of this screen, and displays an additional UI on this web browser.
  • the user interface extension system distributes data between existing and additional UIs that are completely independent of the additional UIs by using the Accessibility API in combination with keyboard emulation using image processing. ..
  • FIG. 2 is an explanatory diagram showing an example of UI extension according to the implementation example.
  • the screen 10 may be a screen of a system other than the Web system, or may be a screen of the Web system.
  • the user interface extension system displays an additional UI on the independent Web browser 20 having a transparent background (step S21).
  • the Web browser 20 is completely independent of the screen 10. That is, the process of the Web browser 20 is different from the process of the screen 10.
  • the user interface extension system combines Accessibility API and virtual keyboard operation to distribute data between existing UI and additional UI (step). S22).
  • the user interface extension system operates the existing system with the Accessibility API and reflects the contents of the additional UI in the existing UI.
  • the user interface extension system virtually executes the copy / paste operation of the keyboard. Specifically, the user interface extension system copies the contents of the additional UI and pastes the contents into the existing UI, thereby reflecting the contents of the additional UI in the existing UI.
  • the user interface expansion system can dramatically improve the operability of the business system without modifying the existing business system, thereby improving the efficiency of the business. Further, the user interface extension system can make it possible to apply the UI extension to a wide range of systems and services other than the Web system.
  • UI extension technology has been proposed in order to update the business system in a timely manner.
  • the UI extension technique for expanding the UI of a business system is discussed in detail in, for example, Patent Document 1 described above.
  • the UI extension technology controls the display of the UI added to the screen of the business system.
  • 3A, 3B and 3C are explanatory views showing an example of display control of an additional UI.
  • the additional UI is displayed on the screen of the existing system, such as the screen of the business system.
  • the base UI which is the base point of the display, is specified for the additional UI.
  • the base UI is a UI that exists on the screen of an existing Web system. When this origin UI is displayed on the screen, the additional UI is displayed on the screen based on the relative coordinates from the origin UI.
  • the "base point UI" may be referred to as the "base point UI”.
  • the conventional UI extension inserts an additional UI at the end of the DOM tree that constitutes the screen of the existing system.
  • the conventional UI extension can display an additional UI without the influence of directly modifying the screen of the existing Web system.
  • the screen 30 of the existing system includes the existing UI 31 and the base point UI 32.
  • the base point UI 32 is a UI that serves as a base point for displaying an additional UI 31 displayed on the screen 30 of the existing system.
  • the arrow shown in FIG. 3A indicates the correspondence between the DOM tree of the screen and the appearance of the screen.
  • the conventional UI extension displays the additional UI by inserting the HTML of the additional UI at the end of the DOM tree rendered in the Web browser.
  • an additional UI 33 (text box) is displayed by the conventional UI extension.
  • the HTML of the additional UI 33 is inserted into the DOM of the screen 30 of the existing system.
  • systems other than the Web system do not have a DOM tree in the first place. Therefore, when the UI extension targets a system other than the Web system, the conventional UI extension may display the additional UI on the system screen by inserting the HTML of the additional UI into the DOM tree. Can not.
  • the screen 30 of the existing system includes the existing UI 31 and the base UI 32. Further, the additional UI 33 is displayed on the screen 30 of the existing system.
  • the base UI is specified from the UI displayed on the existing system screen in order to determine whether to display an additional UI. Then, when the base UI is displayed, the conventional UI extension controls to display the corresponding additional UI.
  • the base point UI 32 is the base point UI corresponding to the additional UI 31. If the base UI 32 is displayed, the additional UI 33 is also displayed. If the base UI 32 is not displayed, then the additional UI 33 is not displayed either.
  • the conventional UI extension targets the Web system.
  • the API of JavaScript that operates the DOM tree is called (step S31).
  • the conventional UI extension confirms whether or not the UI of the base point exists (step S32). For example, in the conventional UI extension, it is possible to easily check whether the base UI exists by checking the execution result of "document.getElementById (" text01 ”)" based on the id information. ..
  • the screen 40 of the existing system includes an existing U41, an existing U42, and an additional UI43.
  • the conventional UI extension distributes data between the UI displayed on the existing system and the additional UI. For example, when the value of the added UI (pull-down) is selected, the conventional UI extension reflects the information corresponding to the selected value in the UI (text box) of the existing system. As a result, the conventional UI extension realizes UI efficiency such as simplification of input.
  • both the additional UI and the existing UI are in the same DOM tree rendered in the web browser. Therefore, in the conventional UI extension, the following two processes in data distribution can be easily realized by calling the API of JavaScript that operates the DOM tree (step S41).
  • the first process is to reflect the operation for the additional UI in the existing UI of the system screen (step S42).
  • the second process is to reflect the information of the existing UI of the system screen in the additional UI (step S43).
  • the conventional UI extension when the conventional UI extension sets a value to an existing UI according to the selection of an additional UI, the conventional UI extension executes the following JavaScript.
  • the conventional UI extension inserts an additional UI at the end of the DOM tree. Therefore, in the conventional UI extension, it is difficult to display an additional UI on the screen of a system having a GUI other than the Web system.
  • the first process is a display process that displays an additional UI on the system screen.
  • the second process is a specific process for specifying a UI as a base point.
  • the third process is a distribution process for distributing data between an existing UI and an additional UI.
  • the third process includes a process of reflecting the operation for the additional UI on the existing UI of the system screen and a process of reflecting the information of the existing UI of the system screen on the additional UI.
  • the user interface extension system executes the process described below.
  • the user interface extension system displays an additional UI on the system screen.
  • the user interface extension system operates a web browser with a transparent background at the top of the system screen, independent of the system screen, and displays an additional UI on the transparent web browser.
  • the user interface extension system specifies the UI that serves as the base point.
  • the user interface extension system specifies the UI as a base point by the following two methods according to the implementation of the system.
  • the first method is to specify the UI by the accessibility API using the property value of the UI that is the base point.
  • the second method is to specify the UI by image processing such as pattern matching using the captured image of the UI as the base point.
  • the user interface extension system distributes data between the existing UI and the additional UI.
  • the user interface extension system distributes data by the following two methods depending on the implementation of the system.
  • the user interface extension system uses the Accessibility API to acquire and modify the properties of the existing UI, thereby distributing the data.
  • the user interface extension system distributes data via the clipboard by a keyboard copy and paste operation.
  • the user interface extension system can apply the UI extension to a system other than the Web system.
  • the user interface extension system can display an additional UI on the screen of a system having a GUI of a system other than the Web system.
  • the user interface extension system can circulate data between existing UIs and additional UIs.
  • FIG. 4 is a diagram showing an example of the user interface expansion system 1 according to the embodiment.
  • the user interface expansion system 1 includes a terminal device 100 and a content providing device 200.
  • the user interface expansion system 1 may include a plurality of terminal devices 100 and a plurality of content providing devices 200.
  • the terminal device 100 and the content providing device 200 are connected to the network N by wire or wirelessly, respectively.
  • the network N is, for example, a network such as the Internet, WAN (Wide Area Network), and LAN (Local Area Network).
  • the components of the user interface expansion system 1 can communicate with each other via the network N.
  • the terminal device 100 is an information processing device that executes processing for expanding the user interface.
  • the terminal device 100 may be any type of information processing device including a client device.
  • a configuration example of the terminal device 100 will be described in detail in the next section.
  • the content providing device 200 is an information processing device used by the content provider.
  • the content provider provides the content to the terminal device 100.
  • the term "content" may include various information about the screen, such as the screen of an application (ie, a window) or the content of a web page.
  • the content providing device 200 may be any type of information processing device including a server.
  • the terminal device 100 has a communication unit 110, an input unit 120, an output unit 130, an existing system 140, a storage unit 150, and a control unit 160.
  • the communication unit 110 is realized by, for example, a NIC (Network Interface Card) or the like.
  • the communication unit 110 is connected to the network by wire or wirelessly.
  • the communication unit 110 is communicably connected to the content providing device 200 via the network N.
  • the communication unit 110 can send and receive information to and from the content providing device 200 via a network.
  • the input unit 120 is an input device that receives various operations from the user of the terminal device 100.
  • the input unit 120 is realized by a keyboard, a mouse, operation keys, or the like.
  • the output unit 130 is a display device for displaying various information.
  • the output unit 130 is realized by a liquid crystal display, an organic EL (Electro Luminescence) display, or the like.
  • a touch panel is adopted for the terminal device 100, the input unit 120 and the output unit 130 are integrated.
  • the existing system 140 is existing software such as a business system and various applications.
  • the existing system 140 receives the content from the content providing device 200. Further, the existing system 140 has a UI. The received content is provided to the user of the terminal device 100 via this UI.
  • the existing system 140 is shown as software installed in the terminal device 100, but is not limited thereto.
  • the existing system 140 may be installed in the content providing device 200. However, it is assumed that the UI of the existing system 140 exists in the terminal device 100.
  • the storage unit 150 is realized by, for example, a semiconductor memory element such as a RAM (Random Access Memory) or a flash memory (Flash Memory), or a storage device such as a hard disk or an optical disk. As shown in FIG. 4, the storage unit 150 includes a rule storage unit 151 and a clipboard storage unit 152.
  • the rule storage unit 151 stores the rules related to the system definition.
  • the rule contains at least one system definition.
  • FIG. 5 is a diagram showing an example of the rule storage unit 151 according to the embodiment.
  • the rule storage unit 151 stores a rule including a plurality of system definitions.
  • Each system definition includes a system determination condition, environment settings (monitoring interval, monitoring event) and at least one additional UI setting (base point definition, display condition, appearance definition, operation definition).
  • the system judgment condition includes, for example, a process name (for example, myapplication.exe) and a window title name (for example, my application).
  • the environment setting includes at least one of a monitoring interval indicating the timing for monitoring changes in the existing system or a monitoring event indicating a list of events used as changes in the existing system.
  • a monitoring interval indicating the timing for monitoring changes in the existing system
  • a monitoring event indicating a list of events used as changes in the existing system.
  • preferences include monitoring intervals (eg, 5 seconds) and monitoring events (eg, mouse wheel events, window resizing events).
  • Additional UI settings include base point definition, display condition, appearance definition or operation definition.
  • the additional UI settings are 1) a base point definition that includes captured images or property values that are information about the UI of the existing system that is the base point when the added UI is displayed, and 2) the added UI is displayed. It includes at least one of a display condition indicating a condition, 3) an appearance definition indicating the appearance of the added UI, or 4) an operation definition indicating the behavior of the added UI.
  • the clipboard storage unit 152 stores the clipboard.
  • the clipboard is used by the data distribution unit 164, which will be described later.
  • the control unit 160 is a controller, and for example, various programs (user interface expansion) stored in a storage device inside the terminal device 100 by a processor such as a CPU (Central Processing Unit) or an MPU (Micro Processing Unit). It is realized by executing RAM or the like as a work area (corresponding to an example of a program). Further, the control unit 160 may be realized by an integrated circuit such as an ASIC (Application Specific Integrated Circuit), an FPGA (Field Programmable Gate Array), or a GPU PPU (General Purpose Graphic Processing Unit).
  • ASIC Application Specific Integrated Circuit
  • FPGA Field Programmable Gate Array
  • GPU PPU General Purpose Graphic Processing Unit
  • the control unit 160 includes a first timing generation unit 161, a base point search unit 162, a display control unit 163, a data distribution unit 164, and a second timing generation unit 165. Realize or execute the functions and actions of information processing described below.
  • One or more processors of the terminal device 100 can realize the function of each control unit in the control unit 160 by executing the instruction stored in the one or more memories of the terminal device 100.
  • the internal configuration of the control unit 160 is not limited to the configuration shown in FIG. 4, and may be any other configuration as long as it is configured to perform information processing described later.
  • the display control unit 163 may perform all or part of the information processing described later with respect to the units other than the display control unit 163.
  • control unit 160 is implemented as a first application installed in the terminal device 100.
  • existing system 140 described above is implemented as a second application installed in the terminal device 100.
  • the first timing generation unit 161 determines the timing for searching the base point UI from the screen of the system. For example, the first timing generation unit 161 monitors the existing system 140. Then, the first timing generation unit 161 determines the timing for searching the base point UI from the screen of the existing system 140 based on whether the screen of the existing system 140 is visually displayed. In this way, the first timing generation unit 161 adjusts the timing for searching the base point UI.
  • the first timing generation unit 161 can monitor the existing system 140 by using a method such as UI Automation or global hook.
  • the first timing generation unit 161 acquires the system determination condition and the environment setting from all the system definitions of the rules stored in the rule storage unit 151.
  • the first timing generation unit 161 determines whether or not the window of the system that matches the system determination condition is displayed in the foreground on the desktop every time the monitoring interval of the environment setting elapses.
  • the base point search unit 162 is called by using all the additional UI settings included in the system definition as input.
  • Base point search unit 162 searches the screen of this system for a base point UI that is a base point for displaying an additional UI added to the screen of the system. For example, the base point search unit 162 uses the additional UI setting stored in the rule stored in the rule storage unit 151 as an input. Then, the base point search unit 162 searches for a UI (base point UI) that matches the base point definition from the screen of the existing system 140 at the timing instructed by the first timing generation unit 161.
  • the base point search unit 162 is called at the timing instructed by the first timing generation unit 161.
  • the base point search unit 162 searches for a UI (base point UI) that matches the property value of the base point definition by using the accessibility API.
  • the base point search unit 162 uses the captured image of the base point definition and the captured image showing the current display of the screen of the existing system as inputs. Then, the base point search unit 162 searches for a UI (base point UI) that matches the captured image of the base point definition by an arbitrary image processing method such as template matching.
  • the base point search unit 162 acquires the value from the base point UI by the information processing (acquisition of the value) described later with respect to the data distribution unit 164. Then, the base point search unit 162 determines whether the value of the base point UI matches the display condition.
  • the base point search unit 162 returns a match or a mismatch as a determination result. If the determination results match, the base point search unit 162 returns the coordinates and size of the base point UI together with the determination result. In addition, the base point search unit 162 adds the base point UI as a monitoring target to the second timing generation unit 165. If the base point UI is not found, the base point search unit 162 returns a discrepancy as a determination result.
  • the base point search unit 162 identifies the base point UI to be displayed as an additional UI based on the property value of the UI used in the accessibility API and the result of image processing of the captured image of the system screen. ..
  • FIG. 6 is an explanatory diagram showing an example of a base point search process for searching for a base point UI that is a base point for displaying an additional UI.
  • the base point search unit 162 identifies the UI as the base point from the existing system (for example, the existing system 140).
  • the UI extension targets the Web system
  • the UI that is the base point can be easily specified by using the API of JavaScript that operates the DOM.
  • the UI extension cannot utilize a unified mechanism such as JavaScript API.
  • the base point search unit 162 specifies the UI that is the base point by using Accessibly API and image processing in combination in order to support the implementation of various systems.
  • the rule stored in the rule storage unit 151 described above holds a base point definition for specifying a base point.
  • the base point search unit 162 can set either the property value for specifying the base point UI in the accessibility API or the captured image for specifying the base point UI by image processing in this base point definition.
  • the process 51 is a process of specifying the base point UI by the accessibility API.
  • the base point search unit 162 can use the accessibility API depending on the implementation of the system. For example, in the implementation of WPF (Windows Presentation Foundation) of Windows (registered trademark), the base point search unit 162 can use UI Automation or the like. Further, in the implementation of Java (registered trademark) Swing or the like, the base point search unit 162 can use Java Access Bridge or the like. When the base point search unit 162 can use the accessibility API, the base point search unit 162 can acquire the property value of each UI constituting the system screen.
  • WPF Windows Presentation Foundation
  • Java registered trademark
  • the base point search unit 162 can acquire the property value of each UI constituting the system screen.
  • the base point search unit 162 can set a property value in the base point definition of the rule stored in the rule storage unit 151. In this case, the base point search unit 162 can sequentially acquire the property value of the UI of the target existing system by the accessibility API. The base point search unit 162 can specify the UI as the base point by determining whether or not there is an acquired property value that matches the property value of the base point definition.
  • the process 52 is a process of specifying the base point UI by image processing.
  • the accessibility API may not be available to the base point search unit 162.
  • the base point search unit 162 can set the captured image as the base point definition.
  • the base point search unit 162 can specify the UI as the base point by collating the current captured image on the system screen with the captured image set in the base point definition by image processing such as template matching.
  • Display control unit 163 The display control unit 163 displays a new screen with a transparent background on top of the screen of the system. Then, the display control unit 163 displays an additional UI at a position based on the base point UI on this new screen.
  • the display control unit 163 uses the additional UI setting stored in the rule stored in the rule storage unit 151 and the search result of the base point search unit 162 as inputs. Then, the display control unit 163 displays a Web browser having a transparent background whose window size matches the window size of the screen of the existing system 140 at the upper part of the screen of the existing system 140. Further, the display control unit 163 displays an additional UI on this Web browser according to the appearance definition.
  • the display control unit 163 uses the determination result output by the base point search unit 162, the coordinates of the base point UI, and the size of the base point UI as inputs. If the determination results match, the display control unit 163 calculates the display position of the additional UI from the coordinates of the base point UI and the relative coordinates set in the appearance definition.
  • the display control unit 163 When the corresponding additional UI is not displayed on the transparent Web browser, the display control unit 163 newly displays the additional UI at the calculated display position according to the HTML information set in the appearance definition. do. If the corresponding additional UI is already displayed, the display control unit 163 modifies the current display position of the additional UI to the calculated display position.
  • the display control unit 163 hides the corresponding additional UI.
  • the transparent web browser displays all the operation events that occurred in the area where the additional UI is not displayed at the bottom of the transparent web browser. It may be distributed to the system of. For example, the transparent Web browser may distribute all the operation events to the existing system without processing all the operation events in the area where the additional UI is not displayed.
  • the display control unit 163 operates a Web browser with a transparent background, which is independent of the system screen, and displays an additional UI on the Web browser.
  • FIG. 7 is an explanatory diagram showing an example of a display control process for controlling the display of an additional UI.
  • the display control unit 163 displays an additional UI on the screen 60 of the system.
  • the screen 60 of the system is a screen of an existing system.
  • the display control unit 163 operates the Web browser 70 with a transparent background on the upper part of the Web browser 70 independently of the screen 60 of the system, and displays the UI 71 on the transparent Web browser 70.
  • the screen 60 of the system may be implemented by WPF of Windows, Swing of Java, or the like.
  • the UI 71 looks like the UI 71 has been added to the screen 60 of the original system, similar to the conventional UI extension.
  • the data distribution unit 164 distributes data between the existing UI of the screen of the system and the additional UI. For example, the data distribution unit 164 uses the additional UI settings stored in the rules stored in the rule storage unit 151 as input. Then, the data distribution unit 164 is input to each UI between the additional UI displayed on the transparent Web browser by the display control unit 163 and the UI displayed on the existing system 140 according to the operation definition. Or, the displayed data is distributed to both parties.
  • the data distribution unit 164 provides data distribution corresponding to at least one operation definition of value acquisition, value setting, and click operation stored in the rule stored in the rule storage unit 151.
  • the data distribution unit 164 acquires the value displayed on the UI of the existing system 140. Then, the data distribution unit 164 reflects the acquired value as it is in the additional UI displayed on the transparent Web browser by the display control unit 163. Alternatively, the data distribution unit 164 processes or converts the acquired value and reflects the value in the additional UI.
  • the data distribution unit 164 determines whether the UI of the target existing system (for example, the existing system 140) corresponds to the accessibility API. When the UI of the target existing system corresponds to the Accessibility API, the data distribution unit 164 acquires the value displayed on the UI of the existing system by using the Accessibility API. If the UI of the target existing system does not support Accessibility API, the data distribution unit 164 performs a keyboard copy operation on the UI of the existing system to store the clipboard in the clipboard storage unit 152. Get the value displayed in the UI of the existing system via.
  • the data distribution unit 164 acquires the value displayed in the additional UI displayed on the transparent Web browser by the display control unit 163. Then, the data distribution unit 164 reflects the acquired value as it is in the UI of the existing system 140.
  • the data distribution unit 164 determines whether the UI of the target existing system (for example, the existing system 140) corresponds to the accessibility API. When the UI of the target existing system corresponds to the Accessibility API, the data distribution unit 164 uses the Accessibility API to reflect the value in the UI of the existing system. If the UI of the target existing system does not support Accessibility API, the data distribution unit 164 performs a keyboard paste operation on the UI of the existing system to store the clipboard in the clipboard storage unit 152. The value is reflected in the UI of the existing system via.
  • the operation definition is a click operation and the click operation is performed on the additional UI displayed on the transparent Web browser by the display control unit 163, the data distribution unit 164 is added to the UI of the existing system 140. , Reflect this click operation.
  • the data distribution unit 164 determines whether the UI of the target existing system (for example, the existing system 140) corresponds to the accessibility API. When the UI of the target existing system corresponds to the Accessibility API, the data distribution unit 164 uses the Accessibility API to reflect the click operation on the UI of the existing system. If the UI of the target existing system does not support the accessibility API, the data distribution unit 164 temporarily minimizes the entire transparent Web browser. Then, the data distribution unit 164 reflects the click operation on the UI of the existing system by generating a click event at the coordinates where the UI of the existing system is displayed.
  • the data distribution unit 164 uses the Accessibility API to reflect the click operation on the UI of the existing system. If the UI of the target existing system does not support the accessibility API, the data distribution unit 164 temporarily minimizes the entire transparent Web browser. Then, the data distribution unit 164 reflects the click operation on the UI of the existing system by generating a click event at the coordinates where the UI of the existing system is displayed.
  • FIG. 8 is an explanatory diagram showing an example of a data distribution process in which data is distributed between an existing UI and an additional UI.
  • the data distribution unit 164 distributes data between the existing UI and the additional UI by using the accessibility API and the virtual keyboard operation.
  • the data distribution unit 164 enables data distribution between the existing UI and the additional UI by using Accessibly API and virtual keyboard operation together in order to support the implementation of various systems. do.
  • the data distribution unit 164 when the data distribution unit 164 can use Accessibly API, the data distribution unit 164 acquires an API for operating each UI constituting the screen of the system. By calling these APIs, the data distribution unit 164 can set a value for the UI and acquire a value from the UI.
  • the data distribution unit 164 acquires an additional UI value by calling the JavaScript API for the transparent Web browser (step S80A-1). For example, the data distribution unit 164 can easily acquire the value of the additional UI by using the method "$ (" ext01 "). Val ()".
  • the data distribution unit 164 calls the API for setting the Accessibly API value, and reflects the value acquired from the additional UI in the UI of the existing system (step S80A-2).
  • the data distribution unit 164 may not be able to use Accessibly API. Even in such a case, the data distribution unit 164 can cause the software to execute a keyboard copy or paste operation by a virtual keyboard operation.
  • the data distribution unit 164 can distribute data between the existing UI and the additional UI via the clipboard.
  • the data distribution unit 164 acquires an additional UI value as in the case of Accessibly API (step S80B-1).
  • the data distribution unit 164 sets the value acquired from the additional UI in the clipboard (step S80B-2).
  • the data distribution unit 164 focuses on the existing UI for which data is desired to be distributed (step S80B-3).
  • the existing UI for which data is desired to be distributed is an existing UI for which the user of the terminal device 100 wants to distribute data.
  • the data distribution unit 164 executes the paste keyboard operation from the software (step S80B-4). That is, the human (user) does not operate the keyboard.
  • the second timing generation unit 165 determines the timing for redisplaying the additional UI displayed by the display control unit 163, based on whether a predetermined event has occurred on the screen of the system. For example, the second timing generation unit 165 uses the environment setting stored in the rule stored in the rule storage unit 151 as an input. Then, the second timing generation unit 165 monitors the change of the existing system 140 and instructs the timing when the additional UI needs to be redisplayed. In this way, the second timing generation unit 165 adjusts the timing for redisplaying the additional UI. The second timing generation unit 165 can monitor changes in the existing system 140 by using a method such as UI Automation or global hook.
  • the second timing generation unit 165 processes according to the event type. To call.
  • the second timing generation unit 165 can execute at least one of the following four processes.
  • the second timing generator 165 when the mouse wheel event occurs in the window of the target system (eg, the existing system 140), the second timing generator 165 will have all the additional UIs included in the corresponding system definition.
  • the setting is used as an input to call the base point search unit 162.
  • the second timing generation unit 165 makes the display position of the additional UI follow the change of the display position of the base point UI by scrolling the mouse wheel.
  • the second timing generation unit 165 sets the size of the corresponding transparent Web browser to this Web browser. Change the size of to follow the size of the system window.
  • the second timing generator 165 calls the base point search unit 162, using all the additional UI settings contained in the corresponding system definition as inputs. As a result, the second timing generation unit 165 makes the display position of the additional UI follow the change of the display position of the base point UI due to the size change of the window.
  • the second timing generator 165 when an update event such as a drawing reload occurs in the window of the target system (for example, the existing system 140), the second timing generator 165 is set to the corresponding transparent Web browser. Remove all additional UIs displayed. After deleting the additional UI, the second timing generator 165 calls the base point search unit 162 using all the additional UI settings contained in the corresponding system definition as inputs. As a result, the second timing generation unit 165 switches the display of the additional UI according to the change of the display content of the screen of the system.
  • an update event such as a drawing reload occurs in the window of the target system (for example, the existing system 140)
  • the second timing generator 165 is set to the corresponding transparent Web browser. Remove all additional UIs displayed. After deleting the additional UI, the second timing generator 165 calls the base point search unit 162 using all the additional UI settings contained in the corresponding system definition as inputs. As a result, the second timing generation unit 165 switches the display of the additional UI according to the change
  • the second timing generation unit 165 when the mouse click event or the focus change event occurs in the window of the target system (for example, the existing system 140), the second timing generation unit 165 generates the corresponding event. Identify the UI that was created. When the corresponding UI matches the base point UI registered as the monitoring target by the base point search unit 162, the base point search unit 162 is called by using the additional UI setting including the base point definition corresponding to the base point UI as an input. .. As a result, the second timing generation unit 165 switches the display of the corresponding additional UI according to the change in the value of the base point UI.
  • 9A and 9B are explanatory views showing an example of a timing generation process that generates a timing for redisplaying an additional UI.
  • the transparent web browser that displays the additional UI is completely independent of the screen of the existing system 140. Therefore, the following measures may be required.
  • the existing UI and the additional UI exist in the same DOM tree. Therefore, the conventional user interface extension does not need to consider the following correspondence.
  • the first response is to detect a change in the value of the UI at the base point and notify an additional UI (independent transparent Web system) of the change in value.
  • the second correspondence is to delete (clear) the UI added to the transparent Web system and to specify the timing of redrawing.
  • the control unit 160 has a second timing generation unit 165.
  • the target of the UI extension was the Web system. Therefore, by registering a listener for the event to be observed by using the event listener function of JavaScript, it is possible to easily acquire the change in the value of the UI of the base point.
  • the target existing system includes a system other than the Web system. Therefore, it is not easy to register a listener for an existing UI event.
  • the second timing generation unit 165 determines whether the existing UI clicked or the existing UI whose focus has been changed is the base UI at the timing when the mouse click or focus change event occurs. In any system implementation, mouse clicks or focus changes are easily observed events.
  • the second timing generation unit 165 may refer to the corresponding additional UI to the base point search unit 162. Call the process of to check the display condition of the corresponding additional UI again. As a result, the second timing generation unit 165 notifies the additional UI of the timing when the value of the base point UI may have been changed, thereby enabling display control of the additional UI. In this way, the second timing generation unit 165 monitors the mouse click and the focus change, and notifies the possibility that the value of the base point UI has changed.
  • the mouse click or focus change event does not always occur at the timing when the value of the base point UI is changed. As a result, the value of the base UI may not have changed. Even in such a case, the inconvenience of rechecking the display conditions does not occur.
  • the second timing generator 165 may monitor the other events. good. When another event occurs, the second timing generation unit 165 may notify the possibility that the value of the base point UI has changed, as in the case of mouse click or focus change.
  • the second timing generation unit 165 may also register a listener for each UI of the base point. can. When the event occurs, the second timing generation unit 165 can notify the corresponding additional UI of the timing when the value of the base point UI is changed.
  • the base point UI91 and the corresponding additional UI92 are displayed on the screen 90 of the existing system.
  • the display condition of the additional UI 92 is the condition that "the value of the UI of the base point is" aaa "". In most cases, a mouse click or focus change event occurs when the value in the base UI changes.
  • the second timing generation unit 165 detects a change in the value of the UI91 of the base point at the timing when the value of the UI91 of the base point is changed, and hides the additional UI92.
  • the second timing generation unit 165 deletes (clears) all the UIs added to the transparent Web browser, and newly performs display control.
  • the existing UI and the additional UI are displayed in the DOM tree of the same Web browser. Therefore, the timing at which the additional UI was deleted (cleared) or redrawn was self-evident.
  • the existing UI is completely independent of the area where the additional UI is displayed. Even if the existing UI is reloaded, the additional UI will remain intact. It is possible to switch between non-display and display by display control processing for each monitoring interval. However, the additional UI cannot be reloaded. It is also possible to reload the new additional UI each time (that is, delete the additional UI and then add the UI) without hiding the additional UI in the display control process. In this case, the content input by the user to the additional UI is cleared at each monitoring interval, which is unusable as a user interface extension.
  • the second timing generation unit 165 can set the update (reload) event arbitrarily (for example, when the update button on the screen of the existing system is pressed, when the tab is switched, etc.). To. Then, when the update event occurs, the second timing generation unit 165 deletes (clears) all the UIs added to the corresponding transparent Web browser, and newly performs display control. As a result, the second timing generation unit 165 enables the redrawing of the additional UI.
  • the base point UI91 and the corresponding additional UI92 are displayed on the screen 90 of the existing system.
  • the entire scroll area is redrawn and the base point UI91 disappears.
  • the additional UI 92 is automatically deleted.
  • the additional UI 92 is left as it is.
  • the additional UI 92 is only hidden at best, and the additional UI 92 is not deleted (cleared).
  • the second timing generation unit 165 applies a new display control to the additional UI 92.
  • the new display control is detailed below with reference to FIG.
  • FIG. 10 is a flowchart showing an example of a process for expanding the UI of the screen of an existing system, which is executed by the terminal device 100 according to the embodiment.
  • the first timing generation unit 161 of the terminal device 100 monitors the existing system (step S101). Monitoring of existing systems is detailed below with reference to FIG.
  • the base point search unit 162 of the terminal device 100 determines whether it is the timing to search the base point UI of the existing system (step S102). When it is determined that it is not the timing to search the base UI of the existing system at the present time (step S102: No), the processing procedure returns to step S101.
  • the base point search unit 162 searches for the base point UI of the existing system (step S103).
  • the search for the base UI of the existing system is detailed below with reference to FIG.
  • step S104 the display control unit 163 of the terminal device 100 controls the display of the additional UI. Control of the display of additional UI is detailed below with reference to FIG.
  • step S105 the second timing generation unit 165 of the terminal device 100 monitors changes in the existing system. Monitoring changes in existing systems is detailed below with reference to FIG.
  • step S106 determines whether it is time to redisplay the additional UI.
  • step S106 determines whether it is time to redisplay the additional UI.
  • the second timing generation unit 165 of the terminal device 100 distributes data between the existing UI and the additional UI. (Step S107). The flow of data between the existing UI and the additional UI is detailed below with reference to FIG.
  • the terminal device 100 executes step S107 after step S105 and step S106, but the order is not limited to this.
  • the terminal device 100 may monitor changes in the existing system after the distribution of data between the existing UI and the additional UI.
  • FIG. 11 is a flowchart showing an example of a process for monitoring an existing system, which is executed by the terminal device 100 according to the embodiment.
  • the first timing generation unit 161 of the terminal device 100 executes monitoring of the existing system in parallel for each system definition stored in the rule storage unit 151.
  • the first timing generation unit 161 determines whether or not the time set in the monitoring interval has elapsed based on the system definition stored in the rule storage unit 151 (step S201). .. When it is determined that the time set for the monitoring interval has not elapsed (step S201: No), the first timing generation unit 161 executes step S201 again.
  • step S201 When it is determined that the time set for the monitoring interval has elapsed (step S201: Yes), the first timing generation unit 161 displays a system window matching the system determination condition in the foreground on the desktop. (Step S202). When it is determined that the window of the system matching the system determination condition is not displayed in the foreground on the desktop (step S202: No), the processing procedure returns to step S201.
  • the first timing generator 161 is used for all the additional UIs included in the system definition.
  • the base point search unit 162 is called (step S203).
  • the first timing generation unit 161 instructs the base point search unit 162 to search for the base point UI.
  • the base point search unit 162 can determine whether or not the current time is the timing to search the base point UI of the existing system.
  • FIG. 12 is a flowchart showing an example of a process for searching a base UI of an existing system, which is executed by the terminal device 100 according to the embodiment.
  • the base point search unit 162 of the terminal device 100 searches for the base point UI of the existing system for each additional UI setting stored in the rule storage unit 151.
  • the base point search unit 162 determines whether or not there is an instruction to search the base point UI (step S301). When it is determined that there is no instruction to search the base point UI (step S301: No), the base point search unit 162 waits until the timing of searching the base point UI of the existing system. Then, the base point search unit 162 executes step S301 again.
  • step S301 When it is determined that there is an instruction to search the base point UI (step S301: Yes), the base point search unit 162 determines whether all the additional UI settings have been processed (step S302). When it is determined that the processing of all the additional UI settings has been completed (step S302: Yes), the processing procedure ends.
  • the base point search unit 162 acquires the base point definition from the rule storage unit 151 (step S303).
  • the base point search unit 162 searches for the base point UI based on the acquired base point definition (step S304).
  • the base point search unit 162 executes the search of the base point UI in parallel for each base point definition.
  • the base point search unit 162 sequentially acquires the property values of the UI of the existing system by using the accessibility API, and searches for the UI (base point UI) that matches the property value of the base point definition (step S304A-1).
  • the base point search unit 162 acquires a captured image of the target existing system (step S304B-1). Next, the base point search unit 162 searches for a UI (base point UI) that matches the captured image of the base point definition from the captured images of the existing system (step S304B-2).
  • UI base point UI
  • the base point search unit 162 determines whether or not the base point UI has been found (step S305). When it is determined that the base point UI has not been found (step S305: No), the display control unit 163 is called by using the corresponding additional UI setting and the determination result (mismatch) as inputs. Then, the base point search unit 162 executes step S302 again.
  • step S305 When it is determined that the base point UI has been found (step S305: Yes), the base point search unit 162 determines whether or not there is a display condition (step S307).
  • the base point search unit 162 determines whether the value of the base point UI matches the display condition (step S308). In other words, when the base point search unit 162 can acquire the display condition, the base point search unit 162 executes step S308.
  • the base point search unit 162 can acquire the value of the base point UI by, for example, the information processing (acquisition of the value) described above for the data distribution unit 164.
  • step S308: Yes When it is determined that the value of the base point UI matches the display condition (step S308: Yes), the base point search unit 162 acquires the coordinates and size of the base point UI (step S309). When it is determined that the value of the base point UI does not match the display condition (step S308: No), the processing procedure proceeds to step S306.
  • step S307 When it is determined that there is no display condition (step S307: No), the processing procedure proceeds to step S309. In other words, when the base point search unit 162 cannot acquire the display condition, the base point search unit 162 executes step S309.
  • the base point search unit 162 adds the base point UI to the second timing generation unit 165 as a monitoring target (step S310).
  • the base point search unit 162 calls the display control unit 163 using the corresponding additional UI setting, the determination result (match), the coordinates of the base point UI, and the size of the base point UI as inputs (step S311). Then, the base point search unit 162 executes step S302 again.
  • FIG. 13 is a flowchart showing an example of a process for controlling the display of an additional UI, which is executed by the terminal device 100 according to the embodiment.
  • the display control unit 163 of the terminal device 100 executes control of the display of the additional UI based on the additional UI setting, the determination result (match or mismatch) of the base point search unit 162, and the coordinates and size of the base point UI.
  • the display control unit 163 determines whether the value of the base point UI matches the display condition (step S401). When it is determined that the value of the base point UI does not match the display condition (step S401: No), the display control unit 163 determines whether the additional UI is already displayed on the transparent Web browser (step S402). ). When it is determined that the additional UI has not yet been displayed on the transparent Web browser (step S402: No), the processing procedure ends.
  • step S403 When it is determined that the additional UI is already displayed on the transparent Web browser (step S402: Yes), the display control unit 163 hides the additional UI (step S403).
  • step S401 When it is determined in step S401 that the value of the base point UI matches the display condition (step S401: Yes), the display control unit 163 determines from the relative coordinates, coordinates, and size set in the appearance definition of the additional UI setting. The display position of the additional UI on the transparent Web browser is calculated (step S404).
  • the display control unit 163 determines whether the additional UI is already displayed on the transparent Web browser (step S405). When it is determined that the additional UI is already displayed on the transparent Web browser (step S405: Yes), the display control unit 163 corrects the display position of the additional UI to the calculated display position (step S405: Yes). Step S406).
  • step S405 When it is determined that the additional UI has not yet been displayed on the transparent Web browser (step S405: No), the display control unit 163 sets the HTML information set in the appearance definition stored in the rule storage unit 151. A new UI is newly displayed at the calculated display position according to the procedure (step S407).
  • FIG. 14 is a flowchart showing an example of a process for monitoring changes in an existing system, which is executed by the terminal device 100 according to the embodiment.
  • the second timing generation unit 165 of the terminal device 100 executes step S500 for monitoring changes in the existing system in parallel for each system definition stored in the rule storage unit 151.
  • the second timing generation unit 165 determines whether or not the event set as the monitoring event has occurred (step S500A-1). When it is determined that the event set in the monitoring event has not occurred (step S500A-1: No), the second timing generation unit 165 executes step S500A-1 again.
  • step S500A-1 When it is determined that the event set as the monitoring event has occurred (step S500A-1: Yes), the second timing generation unit 165 executes the process corresponding to the event (step S500A-2). Then, the second timing generation unit 165 executes step S500A-1 again.
  • the second timing generation unit 165 determines whether a mouse wheel event has occurred (step S500B-1). When it is determined that the mouse wheel event has not occurred (step S500B-1: No), the second timing generation unit 165 executes step S500B-1 again.
  • step S500B-1 When it is determined that a mouse wheel event has occurred (step S500B-1: Yes), the second timing generation unit 165 uses all the additional UI settings included in the system definition as input, and the base point search unit 162. Is called (step S500B-2). In other words, the second timing generation unit 165 instructs the base point search unit 162 to search for the base point UI. As a result, the base point search unit 162 can determine whether or not it is time to redisplay the additional UI. Then, the second timing generation unit 165 executes step S500B-1 again.
  • the second timing generation unit 165 determines whether a window size change event has occurred (step S500C-1). When it is determined that the window size change event has not occurred (step S500C-1: No), the second timing generation unit 165 executes step S500C-1 again.
  • step S500C-1 When it is determined that the window size change event has occurred (step S500C-1: Yes), the second timing generation unit 165 acquires the window size of the target existing system (step S500C-2).
  • the second timing generation unit 165 changes the size of the corresponding transparent Web browser to the acquired window size (step S500C-3).
  • the second timing generation unit 165 calls the base point search unit 162 using all the additional UI settings included in the system definition as inputs (step S500C-4). As a result, the base point search unit 162 can determine whether it is time to redisplay the additional UI. Then, the second timing generation unit 165 executes step S500C-1 again.
  • the second timing generation unit 165 determines whether an update event has occurred (step S500D-1). When it is determined that the update event has not occurred (step S500D-1: No), the second timing generation unit 165 executes step S500D-1 again.
  • step S500D-1 When it is determined that the update event has occurred (step S500D-1: Yes), the second timing generation unit 165 deletes all the additional UIs displayed on the corresponding transparent Web browser (step S500D-). 2).
  • the second timing generation unit 165 calls the base point search unit 162 using all the additional UI settings included in the system definition as inputs (step S500D-3). As a result, the base point search unit 162 can determine whether it is time to redisplay the additional UI. Then, the second timing generation unit 165 executes step S500D-1 again.
  • the second timing generation unit 165 determines whether a mouse click event or a focus change event has occurred (step S500E-1). When it is determined that the mouse click event and the focus change event have not occurred (step S500E-1: No), the second timing generation unit 165 executes step S500E-1 again.
  • step S500E-1 When it is determined that a mouse click event or a focus change event has occurred (step S500E-1: Yes), the second timing generation unit 165 identifies the UI in which the corresponding event has occurred (step S500E-2).
  • the second timing generation unit 165 determines whether the specified UI matches the base point UI registered as the monitoring target (step S500E-3). When it is determined that the specified UI does not match the base point UI registered as the monitoring target (step S500E-3: No), the second timing generation unit 165 executes step S500E-1 again.
  • the second timing generation unit 165 sets an additional UI including the base point definition corresponding to the base point UI. Is used as an input to call the base point search unit 162 (step S500E-4). As a result, the base point search unit 162 can determine whether it is time to redisplay the additional UI. Then, the second timing generation unit 165 executes step S500E-1 again.
  • FIG. 15 is a flowchart showing an example of a process for distributing data between an existing UI and an additional UI, which is executed by the terminal device 100 according to the embodiment.
  • the data distribution unit 164 of the terminal device 100 performs steps S600 for distributing data between the existing UI and the additional UI in parallel for each UI behavior indicated by the operation definition stored in the rule storage unit 151. Run.
  • the data distribution unit 164 determines whether the UI of the existing system corresponds to the accessibility API (step S600A-1).
  • step S600A-1 When it is determined that the UI of the existing system corresponds to the Accessibility API (step S600A-1: Yes), the data distribution unit 164 uses the Accessibility API to change to the UI of the existing system specified in the operation definition. Acquire the displayed value (step S600A-2).
  • the data distribution unit 164 processes and converts the acquired value as necessary, and reflects the acquired value in the additional UI displayed on the transparent Web browser specified in the operation definition (). Step S600A-3).
  • step S600A-1 When it is determined in step S600A-1 that the UI of the existing system does not correspond to the accessibility API (step S600A-1: No), the data distribution unit 164 uses the UI of the existing system specified in the operation definition. Focus (step S600A-4).
  • the data distribution unit 164 executes a copy operation using the keyboard (for example, Ctrl-A, Ctrl-C, etc.) from the software (step S600A-5). That is, humans do not operate the keyboard.
  • the keyboard for example, Ctrl-A, Ctrl-C, etc.
  • the data distribution unit 164 acquires the clipboard value from the clipboard storage unit 152 (step S600A-6). Then, the data distribution unit 164 executes step S600A-3.
  • the data distribution unit 164 acquires the value displayed in the additional UI displayed on the transparent Web browser specified in the operation definition (step S600B-1).
  • the data distribution unit 164 determines whether the UI of the existing system corresponds to the accessibility API (step S600B-2).
  • step S600B-2 When it is determined that the UI of the existing system corresponds to the Accessibility API (step S600B-2: Yes), the data distribution unit 164 uses the Accessibility API to change to the UI of the existing system specified in the operation definition. , Reflect the acquired value (step S600B-3).
  • step S600B-2 When it is determined that the UI of the existing system does not correspond to the accessibility API (step S600B-2: No), the data distribution unit 164 focuses on the UI of the existing system specified in the operation definition (step S600B). -4).
  • the data distribution unit 164 sets the value acquired in the clipboard (step S600B-5).
  • the data distribution unit 164 executes a paste operation (for example, Ctrl-V, etc.) using the keyboard from the software (step S600B-6). That is, humans do not operate the keyboard.
  • a paste operation for example, Ctrl-V, etc.
  • the data distribution unit 164 determines whether the UI of the existing system corresponds to the accessibility API (step S600C-1).
  • step S600C-1 When it is determined that the UI of the existing system corresponds to the Accessibility API (step S600C-1: Yes), the data distribution unit 164 uses the Accessibility API to change to the UI of the existing system specified in the operation definition. Reflect the click operation (step S600C-2).
  • step S600C-1 When it is determined that the UI of the existing system does not support the accessibility API (step S600C-1: No), the data distribution unit 164 temporarily minimizes the entire transparent Web browser (step S600C-3). ).
  • the data distribution unit 164 generates a click event at the coordinates where the UI of the existing system is displayed (step S600C-4). It was
  • the user interface expansion system 1 includes a base point search unit 162 and a display control unit 163.
  • the base point search unit 162 searches for a base point UI that is a base point for displaying an additional user interface (UI) added to the screen of the system from the screen of this system. Further, in the user interface expansion system 1 according to the embodiment, the display control unit 163 displays a new screen with a transparent background on top of the screen of the system, and adds it to a position based on the base point UI on this new screen. Display the UI of.
  • UI user interface
  • the user interface extension system 1 can apply the user interface extension to a wide range of systems.
  • a new screen independent of the system is displayed superimposed on the screen of the system.
  • the user interface extension system 1 can provide an applicable user interface extension regardless of the implementation of the system.
  • the base point search unit 162 searches for the base point UI based on the property value of the base point UI used in the accessibility API or the captured image of the screen of the system.
  • the user interface extension system 1 can search the base point UI from the screen of the system having no DOM tree.
  • the user interface extension system 1 has a data distribution unit 164 that distributes data between an existing UI and an additional UI of the screen of the system by using an accessibility API or a virtual keyboard operation. ..
  • the user interface expansion system 1 can reflect the contents of the additional UI on the UI of the screen of the system that does not have the DOM tree.
  • the user interface expansion system 1 monitors the system and determines a first timing for searching the base point UI from the screen of the system based on whether the screen of the system is visually displayed. It has one timing generation unit 161. Further, in the user interface expansion system 1 according to the embodiment, the base point search unit 162 searches for the base point UI based on the first timing determined by the first timing generation unit 161.
  • the user interface expansion system 1 can search for the base point UI at an appropriate timing.
  • the user interface expansion system 1 monitors changes in the system and redisplays an additional UI displayed by the display control unit 163 based on whether a predetermined event has occurred on the screen of the system. It has a second timing generation unit 165 that determines the second timing.
  • the user interface expansion system 1 can redisplay the additional UI at an appropriate timing.
  • the user interface extension system 1 may be implemented in various different forms other than the above-mentioned embodiment. Therefore, in the following, another embodiment of the above-mentioned user interface extension system 1 will be described.
  • the content providing device 200 may execute a part of the processing executed by the terminal device 100 in the above-described embodiment.
  • the content providing device 200 may perform all or part of the above-mentioned information processing with respect to the first timing generation unit 161, the base point search unit 162, and the second timing generation unit 165.
  • the existing system 140 may be installed in the content providing device 200.
  • the content providing device 200 may perform the above-mentioned information processing with respect to the first timing generation unit 161, the base point search unit 162, and the second timing generation unit 165.
  • the UI of the existing system 140 exists in the terminal device 100.
  • the terminal device 100 can perform the above-mentioned information processing with respect to the display control unit 163 and the data distribution unit 164 via this UI.
  • the user interface expansion system 1 includes a terminal device 100 and a content providing device 200.
  • the content providing device 200 may share a part of the above-mentioned information processing with respect to the first timing generation unit 161, the base point search unit 162, and the second timing generation unit 165.
  • each component of each device shown in the figure is a functional concept, and does not necessarily have to be physically configured as shown in the figure. That is, the specific form of distribution / integration of each device is not limited to the one shown in the figure, and all or part of them may be functionally or physically distributed / physically in any unit according to various loads and usage conditions. Can be integrated and configured.
  • a part or all of the storage unit 150 shown in FIG. 4 may not be held by the terminal device 100, but may be held by a storage server or the like.
  • the terminal device 100 acquires various information such as display conditions by accessing the storage server.
  • FIG. 16 is a diagram showing an example of a hardware configuration.
  • the terminal device 100 and the content providing device 200 according to the above-described embodiment are realized by, for example, a computer 1000 having a configuration as shown in FIG.
  • FIG. 16 shows an example of a computer in which a terminal device 100 and a content providing device 200 are realized by executing a program.
  • the computer 1000 has, for example, a memory 1010 and a CPU 1020.
  • the computer 1000 also has a hard disk drive interface 1030, a disk drive interface 1040, a serial port interface 1050, a video adapter 1060, and a network interface 1070. Each of these parts is connected by a bus 1080.
  • the memory 1010 includes a ROM (Read Only Memory) 1011 and a RAM 1012.
  • the ROM 1011 stores, for example, a boot program such as a BIOS (Basic Input Output System).
  • BIOS Basic Input Output System
  • the hard disk drive interface 1030 is connected to the hard disk drive 1090.
  • the disk drive interface 1040 is connected to the disk drive 1100.
  • a removable storage medium such as a magnetic disk or an optical disk is inserted into the disk drive 1100.
  • the serial port interface 1050 is connected to, for example, a mouse 1110 and a keyboard 1120.
  • the video adapter 1060 is connected to, for example, the display 1130.
  • the hard disk drive 1090 stores, for example, an OS (Operating System) 1091, an application program 1092, a program module 1093, and program data 1094. That is, the program that defines each process of the terminal device 100 and the content providing device 200 is implemented as a program module 1093 in which a code that can be executed by the computer 1000 is described.
  • the program module 1093 is stored in, for example, the hard disk drive 1090.
  • the program module 1093 for executing the same processing as the functional configuration in the terminal device 100 and the content providing device 200 is stored in the hard disk drive 1090.
  • the hard disk drive 1090 may be replaced by an SSD (Solid State Drive).
  • the setting data used in the processing of the above-described embodiment is stored as program data 1094 in, for example, a memory 1010 or a hard disk drive 1090. Then, the CPU 1020 reads the program module 1093 and the program data 1094 stored in the memory 1010 and the hard disk drive 1090 into the RAM 1012 and executes them as needed.
  • the program module 1093 and the program data 1094 are not limited to those stored in the hard disk drive 1090, but may be stored in, for example, a removable storage medium and read by the CPU 1020 via the disk drive 1100 or the like. Alternatively, the program module 1093 and the program data 1094 may be stored in another computer connected via a network (LAN, WAN, etc.). Then, the program module 1093 and the program data 1094 may be read from another computer by the CPU 1020 via the network interface 1070.
  • LAN local area network
  • WAN wide area network
  • the above-mentioned “section, module, unit” can be read as “means” or “circuit”.
  • the display control unit can be read as a display control means or a display control circuit.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

ユーザインタフェース拡張システム(1)は、基点探索部(162)と、表示制御部(163)とを備える。基点探索部(162)は、システムの画面に追加される追加のユーザインタフェース(UI)の表示の基点となる基点UIを、このシステムの画面から探索する。表示制御部(163)は、背景が透明な新たな画面を、システムの画面と重ねて表示し、この新たな画面において、基点UIに基づく位置に追加のUIを表示する。

Description

ユーザインタフェース拡張システム、ユーザインタフェース拡張方法及びユーザインタフェース拡張プログラム
 本開示は、ユーザインタフェース拡張システム、ユーザインタフェース拡張方法及びユーザインタフェース拡張プログラムに関する。
 従来、ユーザインタフェース(UI)拡張技術が提案されている。UI拡張技術は、既存システムの画面上に、追加のUIを表示し、システム操作を改善するものである。
 従来のUI拡張は、Webシステムを対象としている。例えば、従来のUI拡張は、WebシステムのHTTP(Hypertext Transfer Protocol)レスポンスまたはWebブラウザに描画されたDOM(Document Object Model)に対して、プロキシサーバ、ブラウザのアドオンまたはプロセス間通信等の手法を用いる。これにより、従来のUI拡張は、Webシステムに、HTML(Hyper Text Markup Language)やJavaScript(登録商標)を挿入し、それによって、追加のUIの表示を可能にしている。
特開2018-5344号公報
 しかしながら、従来のUI拡張では、ユーザインタフェース拡張を広範なシステムに適用することが難しい。例えば、アーキテクチャの制約により、従来のUI拡張は、Webシステムの画面以外の画面に適用できない場合がある。
 本願は、上記に鑑みてなされたものであって、ユーザインタフェース拡張を広範なシステムに適用することを目的とする。
 本開示の実施形態に係るユーザインタフェース拡張システムは、システムの画面に追加される追加のユーザインタフェース(UI)の表示の基点となる基点UIを、当該システムの画面から探索する基点探索部と、背景が透明な新たな画面を、前記システムの画面と重ねて表示し、当該新たな画面において、前記基点UIに基づく位置に前記追加のUIを表示する表示制御部とを備える。
 実施形態の一態様によれば、ユーザインタフェース拡張を広範なシステムに適用することができる。
図1は、従来のUI拡張の一例を示す説明図である。 図2は、実装例に係るUI拡張の一例を示す説明図である。 図3Aは、追加のUIの表示制御の一例を示す説明図である。 図3Bは、追加のUIの表示制御の一例を示す説明図である。 図3Cは、追加のUIの表示制御の一例を示す説明図である。 図4は、実施形態に係るユーザインタフェース拡張システムの一例を示す図である。 図5は、実施形態に係るルール記憶部の一例を示す図である。 図6は、追加のUIの表示の基点となる基点UIを探索する基点探索処理の一例を示す説明図である。 図7は、追加のUIの表示を制御する表示制御処理の一例を示す説明図である。 図8は、既存のUIと追加のUIとの間でデータを流通するデータ流通処理の一例を示す説明図である。 図9Aは、追加のUIを再表示するタイミングを発生させるタイミング発生処理一例を示す説明図である。 図9Bは、追加のUIを再表示するタイミングを発生させるタイミング発生処理一例を示す説明図である。 図10は、実施形態に係る端末装置によって実行される、既存システムの画面のUIを拡張するための処理の一例を示すフローチャートである。 図11は、実施形態に係る端末装置によって実行される、既存システムを監視するための処理の一例を示すフローチャートである。 図12は、実施形態に係る端末装置によって実行される、既存システムの基点UIを探索するための処理の一例を示すフローチャートである。 図13は、実施形態に係る端末装置によって実行される、追加のUIの表示を制御するための処理の一例を示すフローチャートである。 図14は、実施形態に係る端末装置によって実行される、既存システムの変化を監視するための処理の一例を示すフローチャートである。 図15は、実施形態に係る端末装置によって実行される、既存のUIと追加のUIとの間でデータを流通するための処理の一例を示すフローチャートである。 図16は、ハードウェア構成の一例を示す図である。
 以下、本開示の実施形態について、図面を参照しつつ詳細に説明する。なお、この実施形態により本発明が限定されるものではない。1つまたは複数の実施形態の詳細は、以下の説明および図面に記載される。また、複数の実施形態は、処理内容を矛盾させない範囲で適宜組み合わせることが可能である。また、以下の1つまたは複数の実施形態において同一の部位には同一の符号を付し、重複する説明は省略する。
〔1.概要〕
 本節では、本明細書に記載されるいくつかの実装形態の概要について説明する。なお、この概要は、読者の便宜のために提供されるものであって、本発明や、以下の節で説明される実施形態を限定することを意図するものではない。
 従来、Webシステムを対象としたUI拡張が提案されている。従来のUI拡張は、Webブラウザに描画されたDOMツリーに対し、HTMLを挿入することで、追加のUIを表示する。従来のUI拡張では、既存のUIおよび追加のUIの両方が、同じWebブラウザ上のDOMツリー内に存在する。
 従来のUI拡張では、Webブラウザ上でDOMを操作するJavaScriptを実行することで、既存のUIと追加のUIとの間でデータを流通することができる。データの流通は、例えば、追加のUIに入力された値を、既存のUIに反映させることを含む。しかしながら、上述したような仕組みにより、従来のUI拡張をWebシステム以外のシステムに適用することは難しい。
 図1は、従来のUI拡張の一例を示す説明図である。図1の例では、画面10は、Webシステムの画面(例えば、既存の業務システムの画面)である。画面10は、既存のUI11を含む。
 はじめに、従来のUI拡張は、Webシステムの画面10のDOMツリーに追加のHTMLを挿入することで、追加のUI12を表示する。図1の例では、同じWebブラウザ内に、既存のUI11および追加のUI12が存在する。
 続いて、従来のUI拡張は、DOMツリーを操作するAPIをJavaScriptで実行することで、既存のUI11と追加のUI12の間で、データを流通する(ステップS12)。既存のUI11および追加のUI12は、同じWebブラウザ内に存在する。このため、従来のUI拡張は、Webブラウザで動作するプログラム(JavaScript)でDOMツリーを操作することで、比較的容易にデータを流通することができる。しかしながら、従来のUI拡張は、DOMツリーを操作するため、従来のUI拡張を、Webシステム以外のシステムに適用することは難しい。
 そこで、実施形態に係るユーザインタフェース拡張システムは、システムの実装によらずに適用可能なUI拡張を提供する。ユーザインタフェース拡張システムは、既存システムの画面と同じサイズの背景が透明なWebブラウザを、この画面の上部でこの画面とは独立して動作させ、このWebブラウザに、追加のUIを表示する。さらに、ユーザインタフェース拡張システムは、Accessibility APIと、画像処理を使用したキーボードエミュレーションとの併用により、追加のUIから完全に独立している既存のUIと追加のUIとの間で、データを流通する。
 図2は、実装例に係るUI拡張の一例を示す説明図である。図2の例では、画面10は、Webシステム以外のシステムの画面であってもよいし、Webシステムの画面であってもよい。
 実装例に係るUI拡張では、ユーザインタフェース拡張システムは、背景が透明な独立したWebブラウザ20に、追加のUIを表示する(ステップS21)。Webブラウザ20は、画面10から完全に独立している。すなわち、Webブラウザ20のプロセスは、画面10のプロセスとは異なる。
 Webブラウザ以外の様々な実装のシステムに対応するために、ユーザインタフェース拡張システムは、Accessibility APIと仮想的なキーボード操作とを組み合わせて、既存のUIと追加のUIの間でデータを流通する(ステップS22)。
 既存システムのUIがAccessibility APIを利用できる場合には、ユーザインタフェース拡張システムは、Accessibility APIで、既存システムを操作して、追加のUIの内容を、既存のUIに反映させる。
 既存システムのUIがAccessibility APIを利用できない場合には、ユーザインタフェース拡張システムは、キーボードのコピーペースト操作を仮想的に実行する。具体的は、ユーザインタフェース拡張システムは、追加のUIの内容をコピーして、その内容を既存のUIにペーストし、それによって、追加のUIの内容を既存のUIに反映させる。
 これにより、ユーザインタフェース拡張システムは、既存の業務システムを改造せずに、業務システムの操作性を飛躍的に改善し、それによって、業務を効率化することができる。さらに、ユーザインタフェース拡張システムは、Webシステム以外の広範なシステムやサービスへのUI拡張の適用を可能にすることができる。
〔2.はじめに〕
 今日、様々なシステムが、業務に使用されている。業務の実態は日々変化するため、業務の実態に合わせて業務システムをアップデートすることは、重要なことである。例えば、新規メニューが、サービスに追加されたものとする。この例では、もし、業務システムが新規メニューに対応していなければ、業務システムのユーザは、業務システム上で、新規メニューに関する業務を遂行することができない。
 そこで、業務システムをタイムリーにアップデートするために、UI拡張技術が提案されている。業務システムのUIを拡張するUI拡張技術は、例えば、上述の特許文献1で詳しく議論されている。UI拡張技術は、業務システムの画面に追加されたUIの表示を制御する。
 図3A、図3Bおよび図3Cは、追加のUIの表示制御の一例を示す説明図である。図3A、図3Bおよび図3Cでは、追加のUIが、業務システムの画面等の、既存システムの画面に表示される。また、表示の基点となる基点UIが、追加のUIに対して指定される。基点UIは、既存のWebシステムの画面に存在するUIである。この基点UIが画面に表示された場合に、追加のUIは、基点UIからの相対座標に基づいて、画面に表示される。以下では、「基点のUI」を「基点UI」と表記することがある。
 従来のUI拡張は、既存システムの画面を構成するDOMツリーの末尾に追加のUIを挿入する。従来のUI拡張は、既存のWebシステムの画面を直接改造することの影響を発生させずに、追加のUIを表示することができる。
 図3Aの例では、既存システムの画面30は、既存のUI31と、基点のUI32を含む。基点のUI32は、既存システムの画面30上に表示される追加のUI31の表示の基点となるUIである。図3Aに示された矢印は、画面のDOMツリーと、画面の見た目との対応を示す。従来のUI拡張は、WebブラウザにレンダリングされたDOMツリーの末尾に、追加のUIのHTMLを挿入することで、追加のUIを表示する。
 図3Aの例では、追加のUI33が(テキストボックス)が、従来のUI拡張によって表示される。従来のUI拡張は、既存システムの画面30のDOMに、追加のUI33のHTMLを挿入する。しかしながら、Webシステム以外のシステムは、そもそもDOMツリーを持っていない。このため、UI拡張がWebシステム以外のシステムを対象とする場合に、従来のUI拡張は、DOMツリーに追加のUIのHTMLを挿入する手法によって、システムの画面に追加のUIを表示することができない。
 図3Bの例では、図3Aの場合と同様に、既存システムの画面30は、既存のUI31と、基点のUI32を含む。また、追加のUI33が、既存システムの画面30に表示されている。
 従来のUI拡張は、追加のUIを表示するかを判定するために、既存のシステム画面に表示されているUIの中から、基点のUIを指定する。そして、基点のUIが表示されている時に、従来のUI拡張は、対応する追加のUIを表示する制御を行う。
 図3Bの例では、基点のUI32が、追加のUI31に対応する基点のUIである。基点のUI32が表示されていれば、追加のUI33も表示される。基点のUI32が表示されていなければ、追加のUI33も表示されない。
 上述したように、従来のUI拡張は、Webシステムを対象としている。従来のUI拡張は、DOMツリーを操作するJavaScriptのAPIを呼び出す(ステップS31)。これにより、従来のUI拡張は、基点のUIが存在するかを確認する(ステップS32)。例えば、従来のUI拡張は、idの情報を元に、「document.getElementById(“text01”)」の実行結果を確認することで、基点のUIが存在するかを、簡易に確認することができる。
 しかしながら、上述したように、Webシステム以外のシステムは、そもそもDOMツリーを持っていない。このため、UI拡張がWebシステム以外のシステムを対象とする場合に、従来のUI拡張は、DOMツリーを操作するAPIを用いて、基点のUIが存在するかを確認することができない。
 図3Cの例では、既存システムの画面40は、既存のU41と、既存のU42と、追加のUI43とを含む。従来のUI拡張は、既存システムに表示されているUIと、追加のUIとの間で、データを流通する。例えば、追加したUI(プルダウン)の値が選択された場合に、従来のUI拡張は、選択された値に対応する情報を、既存システムのUI(テキストボックス)に反映させる。これにより、従来のUI拡張は、入力の簡易化等のUIの効率化を実現する。
 従来のUI拡張では、追加のUIおよび既存のUIの両方が、Webブラウザにレンダリングされた同じDOMツリーの中に存在する。このため、従来のUI拡張は、DOMツリーを操作するJavaScriptのAPIを呼び出すことで、データの流通における以下の2つの処理を、簡易に実現することができる(ステップS41)。
 第1の処理は、追加のUIに対する操作を、システム画面の既存のUIに反映させることである(ステップS42)。第2の処理は、システム画面の既存のUIの情報を、追加のUIに反映させることである(ステップS43)。
 例えば、従来のUI拡張が、追加のUIの選択に応じて、既存のUIに値を設定する場合には、従来のUI拡張は、以下のようなJavaScriptを実行する。実行されるJavaScriptは、例えば、「if ($(“#ext01”).val()==“パターン1”){$(“text01”).val(“オプション1”);$(“text02”).val(“オプション2”);}」である。
 しかしながら、上述したように、Webシステム以外のシステムは、そもそもDOMツリーを持っていない。このため、UI拡張がWebシステム以外のシステムを対象とする場合に、従来のUI拡張は、DOMツリーを操作するAPIを用いて、データを流通することができない。
 上述のように、従来のUI拡張は、DOMツリーの末尾に追加のUIを挿入する。このため、従来のUI拡張では、Webシステム以外のGUIを有するシステムの画面上に追加のUIを表示することが難しい。
 Webシステム以外のシステムに適用可能なUI拡張を実現するためには、以下の3つの処理が、様々なGUIの実装を有するシステムに必要とされることが考えられる。第1の処理は、システム画面の上に追加のUIを表示する表示処理である。第2の処理は、基点となるUIを特定する特定処理である。第3の処理は、既存のUIと追加のUIとの間でデータを流通する流通処理である。具体的には、第3の処理は、追加のUIに対する操作を、システム画面の既存のUIに反映させる処理や、システム画面の既存のUIの情報を、追加のUIに反映させる処理を含む。
 そこで、Webシステム以外のシステムにUI拡張を適用するために、実施形態に係るユーザインタフェース拡張システムは、以下に説明される処理を実行する。
 実施形態に係るユーザインタフェース拡張システムは、システム画面の上に追加のUIを表示する。ユーザインタフェース拡張システムは、背景が透明なWebブラウザを、システムの画面とは独立に、システムの画面の上部で動作させ、この透明なWebブラウザに、追加のUIを表示する。
 また、ユーザインタフェース拡張システムは、基点となるUIを特定する。例えば、ユーザインタフェース拡張システムは、システムの実装に応じて、以下の2つの方法で、基点となるUIを特定する。第1の方法は、基点となるUIのプロパティ値を用いたAccessibility APIによるUIの特定である。第2の方法は、基点となるUIのキャプチャ画像を用いたパターンマッチ等の、画像処理によるUIの特定である。
 さらに、ユーザインタフェース拡張システムは、既存のUIと追加のUIとの間でデータを流通する。例えば、ユーザインタフェース拡張システムは、システムの実装に応じて、以下の2つの方法で、データを流通する。第1の方法では、ユーザインタフェース拡張システムは、Accessibility APIを用いて、既存のUIのプロパティを取得および変更し、それによって、データを流通する。第2の方法では、ユーザインタフェース拡張システムは、キーボードのコピー&ペースト操作により、クリップボードを介してデータを流通する。
 これにより、ユーザインタフェース拡張システムは、Webシステム以外のシステムにUI拡張を適用することができる。ユーザインタフェース拡張システムは、Webシステム以外のシステムのGUIを有するシステムの画面上に、追加のUIを表示することができる。また、ユーザインタフェース拡張システムは、既存のUIと追加のUIとの間で、データを流通することができる。
〔3.ユーザインタフェース拡張システムの構成〕
 次に、図4を参照して、実施形態に係るユーザインタフェース拡張システムの構成例について説明する。
 図4は、実施形態に係るユーザインタフェース拡張システム1の一例を示す図である。図4に示されるように、ユーザインタフェース拡張システム1は、端末装置100と、コンテンツ提供装置200とを含む。図4中では図示していないが、ユーザインタフェース拡張システム1は、複数台の端末装置100や、複数台のコンテンツ提供装置200を含んでもよい。
 ユーザインタフェース拡張システム1において、端末装置100およびコンテンツ提供装置200は、それぞれネットワークNと有線又は無線により接続される。ネットワークNは、例えば、インターネット、WAN(Wide Area Network)、LAN(Local Area Network)等のネットワークである。ユーザインタフェース拡張システム1の構成要素は、ネットワークNを介して互いに通信を行うことができる。
〔3-1.構成要素〕
 端末装置100は、ユーザインタフェースを拡張するための処理を実行する情報処理装置である。端末装置100は、クライアント装置を含む、任意のタイプの情報処理装置であってもよい。端末装置100の構成例は、次の節で詳述される。
 コンテンツ提供装置200は、コンテンツ提供者によって利用される情報処理装置である。コンテンツ提供者は、コンテンツを、端末装置100に提供する。「コンテンツ」という用語は、アプリケーションの画面(すなわち、ウィンドウ)やWebページの内容等の、画面に関する各種情報を包含し得る。コンテンツ提供装置200は、サーバを含む、任意のタイプの情報処理装置であってもよい。
〔3-2.端末装置の構成〕
 次に、端末装置100の構成例について説明する。
 図4に示されるように、端末装置100は、通信部110と、入力部120と、出力部130と、既存システム140と、記憶部150と、制御部160とを有する。
(通信部110)
 通信部110は、例えば、NIC(Network Interface Card)等によって実現される。通信部110は、有線または無線によりネットワーク網と接続される。通信部110は、コンテンツ提供装置200に、ネットワークNを介して、通信可能に接続される。通信部110は、コンテンツ提供装置200との間で、ネットワーク網を介して、情報の送受信を行うことができる。
(入力部120)
 入力部120は、端末装置100のユーザから各種操作を受け付ける入力装置である。例えば、入力部120は、キーボードやマウスや操作キー等によって実現される。
(出力部130)
 出力部130は、各種情報を表示するための表示装置である。例えば、出力部130は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等によって実現される。なお、端末装置100にタッチパネルが採用される場合には、入力部120と出力部130とは一体化される。
(既存システム140)
 既存システム140は、業務システムや各種アプリケーション等の既存のソフトウェアである。既存システム140は、コンテンツ提供装置200から、コンテンツを受信する。また、既存システム140は、UIを有する。受信されたコンテンツは、このUIを介して、端末装置100のユーザに提供される。
 図4の例では、既存システム140は、端末装置100にインストールされたソフトウェアとして示されているが、これに限定されるものではない。既存システム140は、コンテンツ提供装置200にインストールされていてもよい。ただし、既存システム140のUIは、端末装置100に存在するものとする。
(記憶部150)
 記憶部150は、例えば、RAM(Random Access Memory)、フラッシュメモリ(Flash Memory)等の半導体メモリ素子、または、ハードディスク、光ディスク等の記憶装置によって実現される。図4に示されるように、記憶部150は、ルール記憶部151と、クリップボード記憶部152とを有する。
(ルール記憶部151)
 ルール記憶部151は、システム定義に関するルールを記憶する。ルールは、少なくとも1つのシステム定義を含む。
 図5は、実施形態に係るルール記憶部151の一例を示す図である。図5に示されるように、ルール記憶部151は、複数のシステム定義を含むルールを記憶する。各システム定義は、システム判定条件、環境設定(監視間隔、監視イベント)および少なくとも1つの追加UI設定(基点定義、表示条件、外観定義、動作定義)を含む。
 システム判定条件は、例えば、プロセス名(例えば、myapplication.exe)やウィンドウタイトル名(例えば、マイアプリケーション)を含む。
 環境設定は、既存システムの変化を監視するタイミングを示す監視間隔または既存システムの変化として利用されるイベントの一覧を示す監視イベントのうちの少なくとも1つを含む。例えば、環境設定は、例えば、監視間隔(例えば、5秒)や監視イベント(例えば、マウスホイールイベント、ウィンドウサイズ変更イベント)を含む。
 追加UI設定は、基点定義、表示条件、外観定義または動作定義を含む。例えば、追加UI設定は、1)追加されるUIが表示される際に基点となる既存システムのUIの情報であるキャプチャ画像またはプロパティ値を含む基点定義、2)追加されるUIが表示される条件を示す表示条件、3)追加されるUIの外観を示す外観定義または4)追加されるUIの振る舞いを示す動作定義のうちの少なくとも1つを含む。
(クリップボード記憶部152)
 クリップボード記憶部152は、クリップボードを記憶する。クリップボードは、後述するデータ流通部164によって使用される。
(制御部160)
 制御部160は、コントローラ(controller)であり、例えば、CPU(Central Processing Unit)、MPU(Micro Processing Unit)等のプロセッサによって、端末装置100内部の記憶装置に記憶されている各種プログラム(ユーザインタフェース拡張プログラムの一例に相当)がRAM等を作業領域として実行されることにより実現される。また、制御部160は、例えば、ASIC(Application Specific Integrated Circuit)、FPGA(Field Programmable Gate Array)、GPGPU(General Purpose Graphic Processing Unit)等の集積回路により実現されてもよい。
 制御部160は、図4に示されるように、第1タイミング発生部161と、基点探索部162と、表示制御部163と、データ流通部164と、第2タイミング発生部165とを有し、以下に説明する情報処理の機能や作用を実現又は実行する。端末装置100の1つまたは複数のプロセッサは、端末装置100の1つまたは複数のメモリに記憶された命令を実行することによって、制御部160内の各制御部の機能を実現することができる。なお、制御部160の内部構成は、図4に示した構成に限られず、後述する情報処理を行う構成であれば他の構成であってもよい。例えば、表示制御部163は、表示制御部163以外の部に関して後述する情報処理の全部または一部を行ってもよい。
 一例として、制御部160は、端末装置100にインストールされた第1のアプリケーションとして実装される。この例では、上述の既存システム140は、端末装置100にインストールされた第2のアプリケーションとして実装される。
(第1タイミング発生部161)
 第1タイミング発生部161は、システムの画面から基点UIを探索するタイミングを決定する。例えば、第1タイミング発生部161は、既存システム140を監視する。そして、第1タイミング発生部161は、既存システム140の画面が視認可能に表示されているかに基づいて、既存システム140の画面から基点UIを探索するタイミングを決定する。このように、第1タイミング発生部161は、基点UIを探索するタイミングを調整する。第1タイミング発生部161は、UI Automationやグローバルフック等の手法を用いて、既存システム140を監視することができる。
 一例として、第1タイミング発生部161は、ルール記憶部151に記憶されたルールの全てのシステム定義から、システム判定条件と環境設定とを取得する。第1タイミング発生部161は、環境設定の監視間隔の時間が経過するごとに、システム判定条件に一致するシステムのウィンドウが、デスクトップ上に最前面で表示されているかを判定する。ウィンドウが最前面に表示されている場合には、システム定義に含まれる全ての追加UI設定を入力として使用して、基点探索部162を呼び出す。
(基点探索部162)
 基点探索部162は、システムの画面に追加される追加のUIの表示の基点となる基点UIを、このシステムの画面から探索する。例えば、基点探索部162は、ルール記憶部151に記憶されたルールに保存された追加UI設定を入力として使用する。そして、基点探索部162は、第1タイミング発生部161によって指示されたタイミングで、既存システム140の画面から、基点定義に一致するUI(基点UI)を探索する。
 一例として、基点探索部162は、第1タイミング発生部161によって指示されたタイミングで呼び出される。プロパティ値が基点定義として設定されている場合には、基点探索部162は、Accessibility APIを用いて、基点定義のプロパティ値が一致するUI(基点UI)を探索する。キャプチャ画像が基点定義として設定されている場合には、基点探索部162は、基点定義のキャプチャ画像と、既存システムの画面の現在の表示を示すキャプチャ画像とを、入力として使用する。そして、基点探索部162は、テンプレートマッチング等の任意の画像処理手法によって、基点定義のキャプチャ画像と一致するUI(基点UI)を探索する。
 基点UIが見つかり、かつ表示条件が基点定義として設定されている場合には、基点探索部162は、データ流通部164に関して後述する情報処理(値の取得)によって、基点UIから値を取得する。そして、基点探索部162は、基点UIの値が表示条件と一致しているかを判定する。
 基点探索部162は、判定結果として一致または不一致を返却する。判定結果が一致の場合には、基点探索部162は、基点UIの座標とサイズを、判定結果とともに返却する。加えて、基点探索部162は、第2タイミング発生部165に、基点UIを監視対象として追加する。基点UIが見つからなかった場合には、基点探索部162は、判定結果として不一致を返却する。
 このように、基点探索部162は、Accessibility APIで利用されるUIのプロパティ値や、システム画面のキャプチャ画像の画像処理の結果に基づいて、追加のUIの表示の対象である基点UIを特定する。
 図6は、追加のUIの表示の基点となる基点UIを探索する基点探索処理の一例を示す説明図である。基点探索部162は、既存システム(例えば、既存システム140)から、基点となるUIを特定する。
 UI拡張がWebシステムを対象とする場合には、DOMを操作するJavaScriptのAPIを利用して、基点となるUIを簡易に特定できる。しかしながら、UI拡張が任意のシステムを対象とする場合には、UI拡張は、JavaScriptのAPIのような統一的な仕組みを利用することができない。
 そこで、基点探索部162は、様々なシステムの実装に対応するために、Accessibly APIと、画像処理の併用によって、基点となるUIを特定する。上述のルール記憶部151に記憶されたルールは、基点を特定するための基点定義を保持する。基点探索部162は、Accessibility APIで基点UIを特定するためのプロパティ値または画像処理によって基点UIを特定するためのキャプチャ画像のうちのいずれかを、この基点定義に設定することができる。
 図6の例では、処理51は、Accessibility APIで基点UIを特定する処理である。基点探索部162は、システムの実装によっては、Accessibility APIを利用することができる。例えば、Windows(登録商標)のWPF(Windows Presentation Foundation)等の実装では、基点探索部162は、UI Automation等を利用することができる。また、Java(登録商標)のSwing等の実装では、基点探索部162は、Java Access Bridge等を利用することができる。基点探索部162がAccessibility APIを利用することができる場合に、基点探索部162は、システム画面を構成する各UIのプロパティ値を取得することができる。
 基点探索部162は、ルール記憶部151に記憶されたルールの基点定義に、プロパティ値を設定することができる。この場合、基点探索部162は、Accessibility APIによって、対象の既存システムのUIのプロパティ値を、逐次的に取得することができる。基点探索部162は、基点定義のプロパティ値と一致する取得されたプロパティ値が存在するかを判定することで、基点となるUIを特定することができる。
 図6の例では、処理52は、画像処理によって基点UIを特定する処理である。システムのUIが独自の実装によって構築されている場合に、基点探索部162は、Accessibility APIを利用できない場合がある。そのような場合でも、基点探索部162は、基点定義として、キャプチャ画像を設定することができる。基点探索部162は、システム画面の現在のキャプチャ画像と、基点定義に設定されたキャプチャ画像とを、テンプレートマッチ等の画像処理によって突合することで、基点となるUIを特定することができる。
(表示制御部163)
 表示制御部163は、背景が透明な新たな画面を、システムの画面と重ねて表示する。そして、表示制御部163は、この新たな画面において、基点UIに基づく位置に追加のUIを表示する。
 例えば、表示制御部163は、ルール記憶部151に記憶されたルールに保存された追加UI設定と、基点探索部162の探索結果を、入力として使用する。そして、表示制御部163は、そのウィンドウサイズが既存システム140の画面のウィンドウサイズと一致する背景が透明なWebブラウザを、既存システム140の画面の上部に表示する。さらに、表示制御部163は、外観定義に従って、追加のUIをこのWebブラウザに表示する。
 一例として、表示制御部163は、基点探索部162によって出力された判定結果、基点UIの座標および基点UIのサイズを、入力として使用する。判定結果が一致である場合は、表示制御部163は、基点UIの座標と、外観定義に設定された相対座標とから、追加のUIの表示位置を計算する。
 対応する追加のUIが、透明なWebブラウザ上に表示されていない場合には、表示制御部163は、外観定義に設定されたHTML情報に従って、追加のUIを計算された表示位置に新規に表示する。対応する追加のUIが既に表示されている場合には、表示制御部163は、追加のUIの現在の表示位置を、計算された表示位置に修正する。
 判定結果が不一致であり、かつ対応する追加のUIが透明なWebブラウザ上に既に表示されている場合には、表示制御部163は、該当する追加のUIを非表示にする。
 透明なWebブラウザにおける透明な領域への操作イベントに関しては、透明なWebブラウザは、追加のUIが表示されていない領域で発生した全ての操作イベントを、透明なWebブラウザの下部に表示された既存のシステムに流通してもよい。例えば、透明なWebブラウザは、追加のUIが表示されていない領域について、全ての操作イベントを一切加工せずに、全ての操作イベントを既存のシステムに流通してもよい。
 このように、表示制御部163は、システムの画面から独立した、背景が透明なWebブラウザを動作させ、そのWebブラウザに追加のUIを表示する。
 図7は、追加のUIの表示を制御する表示制御処理の一例を示す説明図である。図7の例では、表示制御部163は、システムの画面60の上に、追加のUIを表示する。システムの画面60は、既存システムの画面である。
 表示制御部163は、背景が透明なWebブラウザ70を、システムの画面60とは独立に、Webブラウザ70の上部で動作させ、透明なWebブラウザ70に、UI71を表示する。なお、システムの画面60は、WindowsのWPFやJavaのSwing等によって実装されてもよい。端末装置100のユーザがシステムの画面60を正面から見ると、UI71は、従来のUI拡張と同じように、UI71がこの元のシステムの画面60に追加されたように見える。
(データ流通部164)
 データ流通部164は、システムの画面の既存のUIと、追加のUIとの間でデータを流通する。例えば、データ流通部164は、ルール記憶部151に記憶されたルールに保存された追加UI設定を入力として使用する。そして、データ流通部164は、動作定義に従って、表示制御部163によって透明なWebブラウザに表示された追加のUIと、既存システム140に表示されたUIとの間で、それぞれのUIに入力されたまたは表示されたデータを、双方に流通する。
 一例として、データ流通部164は、ルール記憶部151に記憶されたルールに保存された、値取得、値設定およびクリック操作のうちの少なくとも1つの動作定義に対応したデータ流通を提供する。
 例えば、動作定義が値取得である場合に、データ流通部164は、既存システム140のUIに表示されている値を取得する。そして、データ流通部164は、取得された値を、そのまま、表示制御部163によって透明なWebブラウザに表示された追加のUIに反映させる。あるいは、データ流通部164は、取得された値を加工または変換して、その値を追加のUIに反映させる。
 上述の値取得においては、データ流通部164は、対象とする既存システム(例えば、既存システム140)のUIが、Accessibility APIに対応しているかを判定する。対象とする既存システムのUIがAccessibility APIに対応している場合には、データ流通部164は、Accessibility APIを用いて、既存システムのUIに表示されている値を取得する。対象とする既存システムのUIがAccessibility APIに対応していない場合には、データ流通部164は、既存システムのUIに対してキーボードのコピー操作を行うことで、クリップボード記憶部152に記憶されたクリップボードを介して、既存システムのUIに表示された値を取得する。
 動作定義が値設定である場合には、データ流通部164は、表示制御部163によって透明なWebブラウザに表示された追加のUIに表示されている値を取得する。そして、データ流通部164は、取得された値を、そのまま既存システム140のUIに反映させる。
 上述の値設定においては、データ流通部164は、対象とする既存システム(例えば、既存システム140)のUIが、Accessibility APIに対応しているかを判定する。対象とする既存システムのUIがAccessibility APIに対応している場合には、データ流通部164は、Accessibility APIを用いて、既存システムのUIに値を反映させる。対象とする既存システムのUIがAccessibility APIに対応していない場合には、データ流通部164は、既存システムのUIに対してキーボードのペースト操作を行うことで、クリップボード記憶部152に記憶されたクリップボードを介して、既存システムのUIに値を反映させる。
 動作定義が、クリック操作であり、かつクリック操作が、表示制御部163によって透明なWebブラウザに表示された追加のUIに対してなされた場合に、データ流通部164は、既存システム140のUIに、このクリック操作を反映させる。
 例えば、データ流通部164は、対象とする既存システム(例えば、既存システム140)のUIが、Accessibility APIに対応しているかを判定する。対象とする既存システムのUIがAccessibility APIに対応している場合には、データ流通部164は、Accessibility APIを用いて、既存システムのUIにクリック操作を反映させる。対象とする既存システムのUIがAccessibility APIに対応していない場合には、データ流通部164は、一時的に透明なWebブラウザ全体を最小化する。そして、データ流通部164は、既存システムのUIが表示されている座標においてクリックイベントを発生させることで、既存システムのUIにクリック操作を反映させる。
 図8は、既存のUIと追加のUIとの間でデータを流通するデータ流通処理の一例を示す説明図である。図8の例では、データ流通部164が、Accessibility APIや仮想的なキーボード操作を使って、既存のUIと、追加のUIの間でデータを流通する。
 上述のように、UI拡張がWebシステムを対象とする場合には、同じDOMツリーに、既存のUIだけでなく追加のUIも存在する。このため、DOMを操作するJavaScriptのAPIを利用して、簡易にデータを流通することができる。しかしながら、既存システムの画面がWindowsのWPFやJavaのSwing等によって実装されている場合に、この画面は、DOMツリーを持たない。追加のUIを表示する透明のWebブラウザは、既存システムの画面から完全に独立している。したがって、従来の方法(JavaScriptのAPIを利用する方法)では、既存のUIと、追加のUIの間でデータを流通することが困難である。
 そこで、データ流通部164は、様々なシステムの実装に対応するために、Accessibly APIと仮想的なキーボード操作との併用によって、既存のUIと追加のUIとの間でのデータの流通を可能にする。
 Accessibly APIに関しては、データ流通部164がAccessibly APIを利用することができる場合に、データ流通部164は、システムの画面を構成する各UIを操作するAPIを取得する。データ流通部164は、これらのAPI呼び出すことで、UIに対して値を設定したり、UIから値を取得したりすることできる。
 図8の例では、はじめに、データ流通部164は、透明なWebブラウザに対するJavaScriptのAPIの呼び出しによって、追加のUIの値を取得する(ステップS80A-1)。例えば、データ流通部164は、「$(“ext01”).val()」というメソッドを利用して、簡易に追加のUIの値を取得することができる。
 次いで、データ流通部164は、Accessibly APIの値を設定するAPIを呼び出して、追加のUIから取得された値を、既存システムのUIに反映させる(ステップS80A-2)。
 仮想的なキーボード操作に関しては、上述したように、システムのUIが独自の実装によって構築されている場合に、データ流通部164は、Accessibly APIを利用することができない場合もある。そのような場合でも、データ流通部164は、ソフトウェアに、仮想的なキーボード操作により、キーボードのコピーまたはペースト操作を実行させることができる。データ流通部164は、クリップボードを介して、既存のUIと追加のUIの間で、データを流通することができる。
 図8の例では、はじめに、データ流通部164は、Accessibly APIの場合と同様に、追加のUIの値を取得する(ステップS80B-1)。
 次いで、データ流通部164は、追加のUIから取得された値を、クリップボードに設定する(ステップS80B-2)。
 次いで、データ流通部164は、データを流通することが望まれる既存のUIにフォーカスをあてる(ステップS80B-3)。言い換えると、データを流通することが望まれる既存のUIは、端末装置100のユーザがデータを流通したい既存のUIである。
 次いで、データ流通部164は、ソフトウェアからペーストのキーボード操作を実行する(ステップS80B-4)。すなわち、人間(ユーザ)は、キーボードを操作しない。
(第2タイミング発生部165)
 第2タイミング発生部165は、所定のイベントがシステムの画面で発生したかに基づいて、表示制御部163によって表示された追加のUIを再表示するタイミングを決定する。例えば、第2タイミング発生部165は、ルール記憶部151に記憶されたルールに保存された環境設定を、入力として使用する。そして、第2タイミング発生部165は、既存システム140の変化を監視し、追加のUIの再表示が必要とされるタイミングを指示する。このように、第2タイミング発生部165は、追加のUIを再表示するタイミングを調整する。第2タイミング発生部165は、UI Automationやグローバルフック等の手法を用いて、既存システム140の変化を監視することができる。
 より具体的には、環境設定の監視イベントに設定されたイベントが、システム判定条件に一致するシステムのウィンドウから観測された場合には、第2タイミング発生部165は、イベントの種別に合った処理を呼び出す。
 上述の監視イベントおよび呼び出される処理に関しては、第2タイミング発生部165は、以下の4つの処理のうちの少なくとも1つを実行することができる。
 第1の処理に関しては、マウスホイールイベントが、対象とするシステム(例えば、既存システム140)のウィンドウ内で発生したとき、第2タイミング発生部165は、対応するシステム定義に含まれる全ての追加UI設定を入力として使用して使用し、基点探索部162を呼び出す。これにより、第2タイミング発生部165は、追加のUIの表示位置を、マウスホイールのスクロールによる基点UIの表示位置の変更に追従させる。
 第2の処理に関しては、対象とするシステム(例えば、既存システム140)のウィンドウのサイズ変更イベントが発生したとき、第2タイミング発生部165は、対応する透明なWebブラウザのサイズを、このWebブラウザのサイズがシステムのウィンドウのサイズに追従するように、変更する。サイズの変更後に、第2タイミング発生部165は、対応するシステム定義に含まれる全ての追加UI設定を、入力として使用して、基点探索部162を呼び出す。これにより、第2タイミング発生部165は、追加のUIの表示位置を、ウィンドウのサイズ変更による基点UIの表示位置の変更に追従させる。
 第3の処理に関しては、描画のリロードなどの更新イベントが、対象とするシステム(例えば、既存システム140)のウィンドウ内で発生したとき、第2タイミング発生部165は、対応する透明なWebブラウザに表示されている全ての追加のUIを削除する。追加のUIの削除後に、第2タイミング発生部165は、対応するシステム定義に含まれる全ての追加UI設定を、入力として使用して、基点探索部162を呼び出す。これにより、第2タイミング発生部165は、システムの画面の表示内容の変更に応じて、追加のUIの表示を切り替える。
 第4の処理に関しては、マウスクリックのイベントまたはフォーカス変更のイベントが、対象とするシステム(例えば、既存システム140)のウィンドウ内で発生したとき、第2タイミング発生部165は、該当するイベントが発生したUIを特定する。該当するUIが基点探索部162によって監視対象として登録された基点UIと合致した場合には、基点UIに対応する基点定義を含む追加UI設定を、入力として使用して、基点探索部162を呼び出す。これにより、第2タイミング発生部165は、基点UIの値の変化に応じて、対応する追加のUIの表示を切り替える。
 図9Aおよび図9Bは、追加のUIを再表示するタイミングを発生させるタイミング発生処理一例を示す説明図である。
 上述したように、追加のUIを表示する透明なWebブラウザは、既存システム140の画面から完全に独立している。このため、以下の対応が必要とされる場合がある。なお、従来のユーザインタフェース拡張では、同じDOMツリーに、既存のUIおよび追加のUIが存在する。このため、従来のユーザインタフェース拡張は、以下の対応を考慮することを必要としていない。
 第1の対応は、基点のUIの値の変化を検知し、追加のUI(独立した透明なWebシステム)へ値の変化を通知することである。第2の対応は、透明なWebシステムに追加されたUIの削除(クリア)したり、再描画のタイミングを指定したりすることである。このような対応のために、制御部160は、第2タイミング発生部165を有する。
 「ある値が基点のUIに設定されている」という条件は、追加のUIの表示条件として、頻繁に登場する。このような場合、ユーザが基点のUIの値を変更したタイミングで、基点のUIの値をチェックし、値が表示条件と一致するかを判定し、追加のUIの表示を制御することが必要とされる。
 従来のUI拡張では、UI拡張の対象がWebシステムであった。このため、JavaScriptのイベントリスナーの機能を用いて、観測したいイベントに対してリスナーを登録することで、基点のUIの値の変化の取得を、簡易に実現することができる。しかしながら、実装例に係るUI拡張では、対象とする既存のシステムは、Webシステム以外のシステムも含む。このため、既存のUIのイベントにリスナーを登録することは、容易ではない。
 そこで、第2タイミング発生部165は、マウスクリックまたはフォーカス変更のイベントが発生したタイミングで、クリックされた既存のUIまたはフォーカスが変更された既存のUIが、基点のUIであるかを判定する。どのようなシステム実装でも、マウスクリックまたはフォーカス変更は、容易に観測されるイベントである。
 クリックされた既存のUIまたはフォーカスが変更された既存のUIが、基点のUIであると判定された場合に、第2タイミング発生部165は、対応する追加のUIに対して、基点探索部162の処理を呼び出して、対応する追加のUIの表示条件を再度チェックする。これにより、第2タイミング発生部165は、基点UIの値が変更された可能性があるタイミングを、追加のUIに対して通知し、それによって、追加のUIの表示制御を可能にする。このように、第2タイミング発生部165は、マウスクリックやフォーカス変更を監視し、基点UIの値の変更が発生した可能性を通知する。
 基点UIの値が変更された可能性があるタイミングに関しては、マウスクリックまたはフォーカス変更のイベントが、基点UIの値が変更されたタイミングで、常に発生するわけではない。結果的には、基点UIの値は、変更されていないかもしれない。そのような場合でも、表示条件の再度のチェックにおける不都合は、発生しない。マウスクリックおよびフォーカス変更のイベント以外の他のイベントが、基点UIの値が変更されたタイミングで発生する可能性がある場合には、第2タイミング発生部165は、他のイベントを監視してもよい。他のイベントが発生した場合に、第2タイミング発生部165は、マウスクリックやフォーカス変更の場合と同様に、基点UIの値の変更が発生した可能性を通知してもよい。
 加えて、Accessibility APIで、基点のUIに対し、値変更などのイベントのリスナーを登録することができる場合には、第2タイミング発生部165は、基点のUIごとに、リスナーを登録することもできる。イベントが発生した時に、第2タイミング発生部165は、対応する追加のUIに対して、基点UIの値が変更されたタイミングを通知することができる。
 図9Aの例では、基点のUI91および対応する追加のUI92が、既存システムの画面90上に表示されている。追加のUI92の表示条件は、「基点のUIの値が「aaa」である」という条件である。多くの場合、マウスクリックまたはフォーカス変更のイベントが、基点UIの値が変更されたタイミングで発生する。第2タイミング発生部165は、基点のUI91の値が変更されたタイミングで、基点のUI91の値の変化を検知し、追加のUI92を非表示にする。
 一方、図9Bの例では、第2タイミング発生部165は、透明なWebブラウザに追加されている全てのUIを削除(クリア)し、新たに表示制御を行う。
 従来のUI拡張では、既存のUIおよび追加のUIは、同じWebブラウザのDOMツリーに表示されている。このため、追加のUIが削除(クリア)または再描画されるタイミングは、自明であった。
 例えば、追加のUIが表示されているWebページがリロードされた場合には、全DOMツリーは、一度削除されて、新しいDOMツリーが再度読み込まれる。このため、追加のUIも削除(クリア)され、新しいDOMツリーが呼び込まれた後に、必要とされる追加のUIが再描画される。
 しかしながら、実装例に係るUI拡張では、既存のUIは、追加のUIが表示されている領域から完全に独立している。既存のUIが再度読み込まれたとしても、追加のUIは、そのままでは残ってしまう。なお、監視間隔ごとの表示制御処理によって、非表示または表示の切り替えを行うことは可能である。ただし、追加のUIを読み込みなおすことができない。表示制御処理で追加のUIを非表示にせずに、毎回、新たな追加のUIを読み込み直す(すなわち、追加のUIを削除してからUIを追加すること)ことも可能である。この場合、ユーザが追加のUIに入力した内容が、監視間隔ごとにクリアされてしまい、これは、ユーザインタフェース拡張として、利用に堪えない。
 そこで、第2タイミング発生部165は、更新(リロード)のイベントを、任意(例えば、既存システムの画面の更新ボタンが押されたときや、タブが切り換えられたとき等)に設定することを可能にする。そして、第2タイミング発生部165は、更新イベントが発生した時に、対応する透明なWebブラウザに追加されている全てのUIを削除(クリア)し、表示制御を新たに行う。これにより、第2タイミング発生部165は、追加のUIの再描画を可能にする。
 図9Bの例では、基点のUI91および対応する追加のUI92が、既存システムの画面90上に表示されている。この例では、スクロール領域内全体が再描画され、基点のUI91がなくなった。従来のWebシステムを対象としたUI拡張では、追加のUI92は、自動的に削除される。しかしながら、実装例に係るUI拡張では、追加のUI92は、そのままだと残置される。追加のUI92は、どんなに良くても非表示となるだけであり、追加のUI92は、削除(クリア)されない。第2タイミング発生部165は、追加のUI92に対して、新たな表示制御を適用する。新たな表示制御は、図14を参照して以下で詳述される。
〔4.UI拡張処理のフロー〕
 次に、図10、図11、図12、図13、図14および図15を参照して、実施形態に係る端末装置100によるUI拡張処理の手順について説明する。
 図10は、実施形態に係る端末装置100によって実行される、既存システムの画面のUIを拡張するための処理の一例を示すフローチャートである。
 図10に示されるように、はじめに、端末装置100の第1タイミング発生部161は、既存システムを監視する(ステップS101)。既存システムの監視は、図11を参照して以下で詳述される。
 次いで、端末装置100の基点探索部162は、現時点が既存システムの基点UIを探索するタイミングであるかを判定する(ステップS102)。現時点が既存システムの基点UIを探索するタイミングでないと判定された場合に(ステップS102:No)、処理手順は、ステップS101に戻る。
 現時点が既存システムの基点UIを探索するタイミングであると判定された場合に(ステップS102:Yes)、基点探索部162は、既存システムの基点UIを探索する(ステップS103)。既存システムの基点UIの探索は、図12を参照して以下で詳述される。
 次いで、端末装置100の表示制御部163は、追加のUIの表示を制御する(ステップS104)。追加のUIの表示の制御は、図13を参照して以下で詳述される。
 次いで、端末装置100の第2タイミング発生部165は、既存システムの変化を監視する(ステップS105)。既存システムの変化の監視は、図14を参照して以下で詳述される。
 次いで、基点探索部162は、現時点が追加のUIを再表示するタイミングであるかを判定する(ステップS106)。現時点が追加のUIを再表示するタイミングであると判定された場合に(ステップS106:Yes)、処理手順は、ステップS103に戻る。
 現時点が追加のUIを再表示するタイミングでないと判定された場合に(ステップS106:No)、端末装置100の第2タイミング発生部165は、既存のUIと追加のUIとの間でデータを流通する(ステップS107)。既存のUIと追加のUIとの間でのデータの流通は、図15を参照して以下で詳述される。
 なお、図10の例では、端末装置100は、ステップS105およびステップS106の後にステップS107を実行しているが、この順序に限定されるものではない。端末装置100は、既存のUIと追加のUIとの間でのデータの流通の後に、既存システムの変化を監視してもよい。
 図11は、実施形態に係る端末装置100によって実行される、既存システムを監視するための処理の一例を示すフローチャートである。端末装置100の第1タイミング発生部161は、既存システムの監視を、ルール記憶部151に記憶されたシステム定義ごとに、並列で実行する。
 図11に示されるように、はじめに、第1タイミング発生部161は、ルール記憶部151に記憶されたシステム定義に基づいて、監視間隔に設定された時間が経過したかを判定する(ステップS201)。監視間隔に設定された時間が経過していないと判定された場合に(ステップS201:No)、第1タイミング発生部161は、再度ステップS201を実行する。
 監視間隔に設定された時間が経過したと判定された場合に(ステップS201:Yes)、第1タイミング発生部161は、システム判定条件に一致するシステムのウィンドウがデスクトップ上で最前面に表示されているかを判定する(ステップS202)。システム判定条件に一致するシステムのウィンドウがデスクトップ上で最前面に表示されていないと判定された場合に(ステップS202:No)、処理手順は、ステップS201に戻る。
 システム判定条件に一致するシステムのウィンドウがデスクトップ上で最前面に表示されていると判定された場合に(ステップS202:Yes)、第1タイミング発生部161は、システム定義に含まれる全ての追加UI設定を入力として使用して、基点探索部162を呼び出す(ステップS203)。言い換えると、第1タイミング発生部161は、基点探索部162に、基点UIを探索するよう指示する。これにより、基点探索部162は、現時点が既存システムの基点UIを探索するタイミングであるかを判定することができる。
 図12は、実施形態に係る端末装置100によって実行される、既存システムの基点UIを探索するための処理の一例を示すフローチャートである。端末装置100の基点探索部162は、既存システムの基点UIの探索を、ルール記憶部151に記憶された追加UI設定ごとに実行する。
 図12に示されるように、はじめに、基点探索部162は、基点UIの探索の指示があったかを判定する(ステップS301)。基点UIの探索の指示がなかったと判定された場合に(ステップS301:No)、基点探索部162は、既存システムの基点UIを探索するタイミングまで待機する。そして、基点探索部162は、再度ステップS301を実行する。
 基点UIの探索の指示があったと判定された場合に(ステップS301:Yes)、基点探索部162は、全ての追加UI設定の処理が終わったかを判定する(ステップS302)。全ての追加UI設定の処理が終わったと判定された場合に(ステップS302:Yes)、処理手順は、終了する。
 全ての追加UI設定の処理が終わってないと判定された場合に(ステップS302:No)、基点探索部162は、ルール記憶部151から、基点定義を取得する(ステップS303)。
 次いで、基点探索部162は、取得された基点定義に基づいて、基点UIを探索する(ステップS304)。基点探索部162は、基点UIの探索を、基点定義ごとに、並列で実行する。
 一例では、基点探索部162は、Accessibility APIを用いて、既存システムのUIのプロパティ値を逐次取得し、基点定義のプロパティ値と一致するUI(基点UI)を探索する(ステップS304A-1)。
 別の例では、基点探索部162は、対象の既存システムのキャプチャ画像を取得する(ステップS304B-1)。次いで、基点探索部162は、既存システムのキャプチャ画像中から、基点定義のキャプチャ画像と一致するUI(基点UI)を探索する(ステップS304B-2)。
 次いで、基点探索部162は、基点UIが見つかったかを判定する(ステップS305)。基点UIが見つからなかったと判定された場合に(ステップS305:No)、該当する追加UI設定と判定結果(不一致)とを入力として使用して、表示制御部163を呼び出す。そして、基点探索部162は、再度ステップS302を実行する。
 基点UIが見つかったと判定された場合に(ステップS305:Yes)、基点探索部162は、表示条件があるかを判定する(ステップS307)。
 表示条件があると判定された場合に(ステップS307:Yes)、基点探索部162は、基点UIの値が表示条件と一致するかを判定する(ステップS308)。言い換えると、基点探索部162が表示条件を取得できた場合に、基点探索部162は、ステップS308を実行する。基点探索部162は、例えば、データ流通部164に関して上述した情報処理(値の取得)によって、基点UIの値を取得することができる。
 基点UIの値が表示条件と一致すると判定された場合に(ステップS308:Yes)、基点探索部162は、基点UIの座標およびサイズを取得する(ステップS309)。基点UIの値が表示条件と一致しないと判定された場合に(ステップS308:No)、処理手順は、ステップS306に移行する。
 表示条件がないと判定された場合に(ステップS307:No)、処理手順は、ステップS309に移行する。言い換えると、基点探索部162が表示条件を取得できなかった場合に、基点探索部162は、ステップS309を実行する。
 次いで、基点探索部162は、第2タイミング発生部165に基点UIを監視対象として追加する(ステップS310)。
 次いで、基点探索部162は、該当する追加UI設定、判定結果(一致)、基点UIの座標および基点UIのサイズを入力として使用して、表示制御部163を呼び出す(ステップS311)。そして、基点探索部162は、再度ステップS302を実行する。
 図13は、実施形態に係る端末装置100によって実行される、追加のUIの表示を制御するための処理の一例を示すフローチャートである。端末装置100の表示制御部163は、追加UI設定、基点探索部162の判定結果(一致または不一致)、ならびに基点UIの座標およびサイズに基づいて、追加のUIの表示の制御を実行する。
 図13に示されるように、はじめに、表示制御部163は、基点UIの値が表示条件と一致するかを判定する(ステップS401)。基点UIの値が表示条件と一致しないと判定された場合に(ステップS401:No)、表示制御部163は、追加のUIが透明なWebブラウザ上に既に表示されているかを判定する(ステップS402)。追加のUIが透明なWebブラウザ上にまだ表示されていないと判定された場合に(ステップS402:No)、処理手順は、終了する。
 追加のUIが透明なWebブラウザ上に既に表示されていると判定された場合に(ステップS402:Yes)、表示制御部163は、追加のUIを非表示にする(ステップS403)。
 ステップS401において、基点UIの値が表示条件と一致すると判定された場合に(ステップS401:Yes)、表示制御部163は、追加UI設定の外観定義に設定された相対座標、座標およびサイズから、透明なWebブラウザ上での追加のUIの表示位置を計算する(ステップS404)。
 次いで、表示制御部163は、追加のUIが透明なWebブラウザ上に既に表示されているかを判定する(ステップS405)。追加のUIが透明なWebブラウザ上に既に表示されていると判定された場合に(ステップS405:Yes)、表示制御部163は、追加のUIの表示位置を計算された表示位置に修正する(ステップS406)。
 追加のUIが透明なWebブラウザ上にまだ表示されていないと判定された場合に(ステップS405:No)、表示制御部163は、ルール記憶部151に記憶された外観定義に設定されたHTML情報に従って、追加のUIを計算された表示位置に新規に表示する(ステップS407)。
 図14は、実施形態に係る端末装置100によって実行される、既存システムの変化を監視するための処理の一例を示すフローチャートである。端末装置100の第2タイミング発生部165は、既存システムの変化の監視するステップS500を、ルール記憶部151に記憶されたシステム定義ごとに、並列で実行する。
 一例では、第2タイミング発生部165は、監視イベントに設定されたイベントが発生したかを判定する(ステップS500A-1)。監視イベントに設定されたイベントが発生しなかったと判定された場合に(ステップS500A-1:No)、第2タイミング発生部165は、再度ステップS500A-1を実行する。
 監視イベントに設定されたイベントが発生したと判定された場合に(ステップS500A-1:Yes)、第2タイミング発生部165は、イベントに対応した処理を実行する(ステップS500A-2)。そして、第2タイミング発生部165は、再度ステップS500A-1を実行する。
 別の例では、第2タイミング発生部165は、マウスホイールイベントが発生したかを判定する(ステップS500B-1)。マウスホイールイベントが発生しなかったと判定された場合に(ステップS500B-1:No)、第2タイミング発生部165は、再度ステップS500B-1を実行する。
 マウスホイールイベントが発生したと判定された場合に(ステップS500B-1:Yes)、第2タイミング発生部165は、システム定義に含まれる全ての追加UI設定を入力として使用して、基点探索部162を呼び出す(ステップS500B-2)。言い換えると、第2タイミング発生部165は、基点探索部162に、基点UIを探索するよう指示する。これにより、基点探索部162は、現時点が追加のUIを再表示するタイミングであるかを判定することができる。そして、第2タイミング発生部165は、再度ステップS500B-1を実行する。
 さらに別の例では、第2タイミング発生部165は、ウィンドウサイズ変更イベントが発生したかを判定する(ステップS500C-1)。ウィンドウサイズ変更イベントが発生しなかったと判定された場合に(ステップS500C-1:No)、第2タイミング発生部165は、再度ステップS500C-1を実行する。
 ウィンドウサイズ変更イベントが発生したと判定された場合に(ステップS500C-1:Yes)、第2タイミング発生部165は、対象の既存システムのウィンドウサイズを取得する(ステップS500C-2)。
 次いで、第2タイミング発生部165は、対応する透明なWebブラウザのサイズを取得されたウィンドウサイズに変更する(ステップS500C-3)。
 次いで、第2タイミング発生部165は、システム定義に含まれる全ての追加UI設定を入力として使用して、基点探索部162を呼び出す(ステップS500C-4)。その結果、基点探索部162は、現時点が追加のUIを再表示するタイミングであるかを判定することができる。そして、第2タイミング発生部165は、再度ステップS500C-1を実行する。
 さらに別の例では、第2タイミング発生部165は、更新イベントが発生したかを判定する(ステップS500D-1)。更新イベントが発生しなかったと判定された場合に(ステップS500D-1:No)、第2タイミング発生部165は、再度ステップS500D-1を実行する。
 更新イベントが発生したと判定された場合に(ステップS500D-1:Yes)、第2タイミング発生部165は、対応する透明なWebブラウザに表示されている追加のUIをすべて削除する(ステップS500D-2)。
 次いで、第2タイミング発生部165は、システム定義に含まれる全ての追加UI設定を入力として使用して、基点探索部162を呼び出す(ステップS500D-3)。その結果、基点探索部162は、現時点が追加のUIを再表示するタイミングであるかを判定することができる。そして、第2タイミング発生部165は、再度ステップS500D-1を実行する。
 さらに別の例では、第2タイミング発生部165は、マウスクリックイベントまたはフォーカス変更イベントが発生したかを判定する(ステップS500E-1)。マウスクリックイベントおよびフォーカス変更イベントが発生しなかったと判定された場合に(ステップS500E-1:No)、第2タイミング発生部165は、再度ステップS500E-1を実行する。
 マウスクリックイベントまたはフォーカス変更イベントが発生したと判定された場合に(ステップS500E-1:Yes)、第2タイミング発生部165は、該当するイベントが発生したUIを特定する(ステップS500E-2)。
 次いで、第2タイミング発生部165は、特定されたUIが監視対象として登録された基点UIと一致するかを判定する(ステップS500E-3)。特定されたUIが監視対象として登録された基点UIと一致しないと判定された場合に(ステップS500E-3:No)、第2タイミング発生部165は、再度ステップS500E-1を実行する。
 特定されたUIが監視対象として登録された基点UIと一致すると判定された場合に(ステップS500E-3:Yes)、第2タイミング発生部165は、基点UIに対応する基点定義を含む追加UI設定を入力として使用して、基点探索部162を呼び出す(ステップS500E-4)。その結果、基点探索部162は、現時点が追加のUIを再表示するタイミングであるかを判定することができる。そして、第2タイミング発生部165は、再度ステップS500E-1を実行する。
 図15は、実施形態に係る端末装置100によって実行される、既存のUIと追加のUIとの間でデータを流通するための処理の一例を示すフローチャートである。端末装置100のデータ流通部164は、既存のUIと追加のUIとの間でデータを流通するステップS600を、ルール記憶部151に記憶された動作定義によって示されるUIの振る舞いごとに、並列で実行する。
 値の取得に関しては、データ流通部164は、既存システムのUIがAccessibility APIに対応しているかを判定する(ステップS600A-1)。
 既存システムのUIがAccessibility APIに対応していると判定された場合に(ステップS600A-1:Yes)、データ流通部164は、Accessibility APIを用いて、動作定義で指定された既存システムのUIに表示されている値を取得する(ステップS600A-2)。
 次いで、データ流通部164は、取得された値を必要に応じて加工して変換し、動作定義で指定された透明なWebブラウザに表示された追加のUIに、取得された値を反映させる(ステップS600A-3)。
 ステップS600A-1において、既存システムのUIがAccessibility APIに対応していないと判定された場合に(ステップS600A-1:No)、データ流通部164は、動作定義で指定された既存システムのUIにフォーカスをあてる(ステップS600A-4)。
 次いで、データ流通部164は、キーボードによるコピー操作(例えば、Ctrl-A、Ctrl-C等)をソフトウェアから実行する(ステップS600A-5)。すなわち、人間は、キーボードを操作しない。
 次いで、データ流通部164は、クリップボード記憶部152から、クリップボードの値を取得する(ステップS600A-6)。そして、データ流通部164は、ステップS600A-3を実行する。
 値の設定に関しては、データ流通部164は、動作定義で指定された透明なWebブラウザに表示された追加のUIに表示されている値を取得する(ステップS600B-1)。
 次いで、データ流通部164は、既存システムのUIがAccessibility APIに対応しているかを判定する(ステップS600B-2)。
 既存システムのUIがAccessibility APIに対応していると判定された場合に(ステップS600B-2:Yes)、データ流通部164は、Accessibility APIを用いて、動作定義で指定された既存システムのUIに、取得された値を反映させる(ステップS600B-3)。
 既存システムのUIがAccessibility APIに対応していないと判定された場合に(ステップS600B-2:No)、データ流通部164は、動作定義で指定された既存システムのUIにフォーカスをあてる(ステップS600B-4)。
 次いで、データ流通部164は、クリップボードに取得された値を設定する(ステップS600B-5)。
 次いで、データ流通部164は、キーボードによるペースト操作(例えば、Ctrl-V等)をソフトウェアから実行する(ステップS600B-6)。すなわち、人間は、キーボードを操作しない。
 クリック操作に関しては、データ流通部164は、既存システムのUIがAccessibility APIに対応しているかを判定する(ステップS600C-1)。
 既存システムのUIがAccessibility APIに対応していると判定された場合に(ステップS600C-1:Yes)、データ流通部164は、Accessibility APIを用いて、動作定義で指定された既存システムのUIにクリック操作を反映させる(ステップS600C-2)。
 既存システムのUIがAccessibility APIに対応していないと判定された場合に(ステップS600C-1:No)、データ流通部164は、一時的に透明なWebブラウザ全体を最小化する(ステップS600C-3)。
 次いで、データ流通部164は、既存システムのUIが表示されている座標においてクリックイベントを発生させる(ステップS600C-4)。 
〔5.効果〕
 上述してきたように、実施形態に係るユーザインタフェース拡張システム1は、基点探索部162と、表示制御部163とを有する。
 実施形態に係るユーザインタフェース拡張システム1において、基点探索部162は、システムの画面に追加される追加のユーザインタフェース(UI)の表示の基点となる基点UIを、このシステムの画面から探索する。また、実施形態に係るユーザインタフェース拡張システム1において、表示制御部163は、背景が透明な新たな画面を、システムの画面と重ねて表示し、この新たな画面において、基点UIに基づく位置に追加のUIを表示する。
 これにより、実施形態に係るユーザインタフェース拡張システム1は、ユーザインタフェース拡張を広範なシステムに適用することができる。
 また、実施形態に係るユーザインタフェース拡張システム1において、システムから独立した新たな画面を、システムの画面と重ねて表示する。
 これにより、実施形態に係るユーザインタフェース拡張システム1は、システムの実装によらずに適用可能なユーザインタフェース拡張を提供することができる。
 また、実施形態に係るユーザインタフェース拡張システム1において、基点探索部162は、アクセシビリティAPIで利用される基点UIのプロパティ値又はシステムの画面のキャプチャ画像に基づいて、基点UIを探索する。
 これにより、実施形態に係るユーザインタフェース拡張システム1は、DOMツリーを持たないシステムの画面から、基点UIを探索することができる。
 また、実施形態に係るユーザインタフェース拡張システム1は、アクセシビリティAPI又は仮想的なキーボード操作を用いて、システムの画面の既存のUIと追加のUIとの間でデータを流通するデータ流通部164を有する。
 これにより、実施形態に係るユーザインタフェース拡張システム1は、DOMツリーを持たないシステムの画面のUIに、追加のUIの内容を反映させることができる。
 また、実施形態に係るユーザインタフェース拡張システム1は、システムを監視し、システムの画面が視認可能に表示されているかに基づいて、システムの画面から基点UIを探索する第1のタイミングを決定する第1タイミング発生部161を有する。また、実施形態に係るユーザインタフェース拡張システム1において、基点探索部162は、第1タイミング発生部161によって決定された第1のタイミングに基づいて、基点UIを探索する。
 これにより、実施形態に係るユーザインタフェース拡張システム1は、適切なタイミングで基点UIを探索することができる。
 また、実施形態に係るユーザインタフェース拡張システム1は、システムの変化を監視し、所定のイベントがシステムの画面で発生したかに基づいて、表示制御部163によって表示された追加のUIを再表示する第2のタイミングを決定する第2タイミング発生部165を有する。
 これにより、実施形態に係るユーザインタフェース拡張システム1は、適切なタイミングで追加のUIを再表示することができる。
〔6.他の実施形態〕
 上述の実施形態に係るユーザインタフェース拡張システム1は、上述の実施形態以外にも、種々の異なる形態で実施されてよい。そこで、以下では、上記のユーザインタフェース拡張システム1の他の実施形態について説明する。
〔6-1.端末装置によるUI拡張処理の実行主体〕
 コンテンツ提供装置200は、上述の実施形態において端末装置100によって実行された処理の一部を実行してもよい。例えば、コンテンツ提供装置200は、第1タイミング発生部161、基点探索部162および第2タイミング発生部165に関して上述した情報処理の全部または一部を行ってもよい。
 例えば、既存システム140は、コンテンツ提供装置200にインストールされていてもよい。この場合、コンテンツ提供装置200は、第1タイミング発生部161、基点探索部162および第2タイミング発生部165に関して上述した情報処理を行ってもよい。ただし、既存システム140のUIは、端末装置100に存在するものとする。端末装置100は、このUIを介して、表示制御部163およびデータ流通部164に関して上述した情報処理を行うことができる。
 図4を参照して上述したように、ユーザインタフェース拡張システム1は、端末装置100と、コンテンツ提供装置200とを含む。コンテンツ提供装置200が、第1タイミング発生部161、基点探索部162および第2タイミング発生部165に関して上述した情報処理の一部を分担してもよい。
〔7.その他〕
 また、上記実施形態において説明した各処理のうち、自動的に行われるものとして説明した処理の一部を手動的に行うこともできる。あるいは、手動的に行われるものとして説明した処理の全部または一部を公知の方法で自動的に行うこともできる。この他、上記文書中や図面中で示した処理手順、具体的名称、各種のデータやパラメータを含む情報については、特記する場合を除いて任意に変更することができる。例えば、各図に示した各種情報は、図示した情報に限られない。
 また、図示した各装置の各構成要素は機能概念的なものであり、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、各装置の分散・統合の具体的形態は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。
 例えば、図4に示した記憶部150の一部又は全部は、端末装置100によって保持されるのではなく、ストレージサーバ等に保持されてもよい。この場合、端末装置100は、ストレージサーバにアクセスすることで、表示条件等の各種情報を取得する。
〔8.ハードウェア構成〕
 図16は、ハードウェア構成の一例を示す図である。上述してきた実施形態に係る端末装置100やコンテンツ提供装置200は、例えば図16に示すような構成のコンピュータ1000によって実現される。
 図16は、プログラムが実行されることにより、端末装置100やコンテンツ提供装置200が実現されるコンピュータの一例を示している。コンピュータ1000は、例えば、メモリ1010、CPU1020を有する。また、コンピュータ1000は、ハードディスクドライブインタフェース1030、ディスクドライブインタフェース1040、シリアルポートインタフェース1050、ビデオアダプタ1060、ネットワークインタフェース1070を有する。これらの各部は、バス1080によって接続される。
 メモリ1010は、ROM(Read Only Memory)1011及びRAM1012を含む。ROM1011は、例えば、BIOS(Basic Input Output System)等のブートプログラムを記憶する。ハードディスクドライブインタフェース1030は、ハードディスクドライブ1090に接続される。ディスクドライブインタフェース1040は、ディスクドライブ1100に接続される。例えば磁気ディスクや光ディスク等の着脱可能な記憶媒体が、ディスクドライブ1100に挿入される。シリアルポートインタフェース1050は、例えばマウス1110、キーボード1120に接続される。ビデオアダプタ1060は、例えばディスプレイ1130に接続される。
 ハードディスクドライブ1090は、例えば、OS(Operating System)1091、アプリケーションプログラム1092、プログラムモジュール1093、プログラムデータ1094を記憶する。すなわち、端末装置100やコンテンツ提供装置200の各処理を規定するプログラムは、コンピュータ1000により実行可能なコードが記述されたプログラムモジュール1093として実装される。プログラムモジュール1093は、例えばハードディスクドライブ1090に記憶される。例えば、端末装置100やコンテンツ提供装置200における機能構成と同様の処理を実行するためのプログラムモジュール1093が、ハードディスクドライブ1090に記憶される。なお、ハードディスクドライブ1090は、SSD(Solid State Drive)により代替されてもよい。
 また、上述した実施の形態の処理で用いられる設定データは、プログラムデータ1094として、例えばメモリ1010やハードディスクドライブ1090に記憶される。そして、CPU1020が、メモリ1010やハードディスクドライブ1090に記憶されたプログラムモジュール1093やプログラムデータ1094を必要に応じてRAM1012に読み出して実行する。
 なお、プログラムモジュール1093やプログラムデータ1094は、ハードディスクドライブ1090に記憶される場合に限らず、例えば着脱可能な記憶媒体に記憶され、ディスクドライブ1100等を介してCPU1020によって読み出されてもよい。あるいは、プログラムモジュール1093及びプログラムデータ1094は、ネットワーク(LAN、WAN等)を介して接続された他のコンピュータに記憶されてもよい。そして、プログラムモジュール1093及びプログラムデータ1094は、他のコンピュータから、ネットワークインタフェース1070を介してCPU1020によって読み出されてもよい。
 以上、本願の実施形態のいくつかを図面に基づいて詳細に説明したが、これらは例示であり、本発明を特定の例に限定するものではない。本明細書に記載された特徴は、発明を実施するための形態の欄に記載の態様を始めとして、当業者の知識に基づいて種々の変形、改良を施した他の形態で実施されることが可能である。
 また、上述してきた「部(section、module、unit)」は、「手段」や「回路」などに読み替えることができる。例えば、表示制御部は、表示制御手段や表示制御回路に読み替えることができる。
   1 ユーザインタフェース拡張システム
 100 端末装置
 110 通信部
 120 入力部
 130 出力部
 140 既存システム
 150 記憶部
 151 ルール記憶部
 152 クリップボード記憶部
 160 制御部
 161 第1タイミング発生部
 162 基点探索部
 163 表示制御部
 164 データ流通部
 165 第2タイミング発生部
 200 コンテンツ提供装置

Claims (8)

  1.  システムの画面に追加される追加のユーザインタフェース(UI)の表示の基点となる基点UIを、当該システムの画面から探索する基点探索部と、
     背景が透明な新たな画面を、前記システムの画面と重ねて表示し、当該新たな画面において、前記基点UIに基づく位置に前記追加のUIを表示する表示制御部と
     を備えることを特徴とするユーザインタフェース拡張システム。
  2.  前記表示制御部は、前記システムから独立した前記新たな画面を、前記システムの画面と重ねて表示する
     ことを特徴とする請求項1に記載のユーザインタフェース拡張システム。
  3.  前記基点探索部は、アクセシビリティAPIで利用される前記基点UIのプロパティ値又は前記システムの画面のキャプチャ画像に基づいて、前記基点UIを探索する
     ことを特徴とする請求項1又は2に記載のユーザインタフェース拡張システム。
  4.  アクセシビリティAPI又は仮想的なキーボード操作を用いて、前記システムの画面の既存のUIと前記追加のUIとの間でデータを流通するデータ流通部をさらに備える
     ことを特徴とする請求項1~3のうちいずれか1つに記載のユーザインタフェース拡張システム。
  5.  前記システムを監視し、前記システムの画面が視認可能に表示されているかに基づいて、前記システムの画面から前記基点UIを探索する第1のタイミングを決定する第1タイミング発生部をさらに備え、
     前記基点探索部は、第1タイミング発生部によって決定された第1のタイミングに基づいて、前記基点UIを探索する
     ことを特徴とする請求項1~4のうちいずれか1つに記載のユーザインタフェース拡張システム。
  6.  前記システムの変化を監視し、所定のイベントが前記システムの画面で発生したかに基づいて、前記表示制御部によって表示された追加のUIを再表示する第2のタイミングを決定する第2タイミング発生部をさらに備える
     ことを特徴とする請求項1~5のうちいずれか1つに記載のユーザインタフェース拡張システム。
  7.  コンピュータが実行するユーザインタフェース拡張方法であって、
     システムの画面に追加される追加のユーザインタフェース(UI)の表示の基点となる基点UIを、当該システムの画面から探索する基点探索工程と、
     背景が透明な新たな画面を、前記システムの画面と重ねて表示し、当該新たな画面において、前記基点UIに基づく位置に前記追加のUIを表示する表示制御工程と
     を含むことを特徴とするユーザインタフェース拡張方法。
  8.  システムの画面に追加される追加のユーザインタフェース(UI)の表示の基点となる基点UIを、当該システムの画面から探索する基点探索手順と、
     背景が透明な新たな画面を、前記システムの画面と重ねて表示し、当該新たな画面において、前記基点UIに基づく位置に前記追加のUIを表示する表示制御手順と
     をコンピュータに実行させることを特徴とするユーザインタフェース拡張プログラム。
PCT/JP2020/044397 2020-11-27 2020-11-27 ユーザインタフェース拡張システム、ユーザインタフェース拡張方法及びユーザインタフェース拡張プログラム WO2022113315A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
JP2022564975A JPWO2022113315A1 (ja) 2020-11-27 2020-11-27
PCT/JP2020/044397 WO2022113315A1 (ja) 2020-11-27 2020-11-27 ユーザインタフェース拡張システム、ユーザインタフェース拡張方法及びユーザインタフェース拡張プログラム
US18/038,354 US20240004528A1 (en) 2020-11-27 2020-11-27 User interface augmentation system, user interface augmentation method, and user interface augmentation program

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2020/044397 WO2022113315A1 (ja) 2020-11-27 2020-11-27 ユーザインタフェース拡張システム、ユーザインタフェース拡張方法及びユーザインタフェース拡張プログラム

Publications (1)

Publication Number Publication Date
WO2022113315A1 true WO2022113315A1 (ja) 2022-06-02

Family

ID=81755454

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2020/044397 WO2022113315A1 (ja) 2020-11-27 2020-11-27 ユーザインタフェース拡張システム、ユーザインタフェース拡張方法及びユーザインタフェース拡張プログラム

Country Status (3)

Country Link
US (1) US20240004528A1 (ja)
JP (1) JPWO2022113315A1 (ja)
WO (1) WO2022113315A1 (ja)

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006350490A (ja) * 2005-06-14 2006-12-28 Sony Corp 表示信号処理装置および方法、記録媒体、並びにプログラム
JP2015035120A (ja) * 2013-08-09 2015-02-19 株式会社島津製作所 表示・実行操作補助プログラム
JP2017072872A (ja) * 2015-10-05 2017-04-13 日本電信電話株式会社 操作支援システム、操作支援方法、および、操作支援プログラム
JP2020074096A (ja) * 2016-12-30 2020-05-14 ドロップボックス, インコーポレイテッド ユーザインタフェース拡張器

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060059432A1 (en) * 2004-09-15 2006-03-16 Matthew Bells User interface having viewing area with non-transparent and semi-transparent regions
US20090138811A1 (en) * 2005-11-02 2009-05-28 Masaki Horiuchi Display object penetrating apparatus
TW201013430A (en) * 2008-09-17 2010-04-01 Ibm Method and system for providing suggested tags associated with a target page for manipulation by a user
US9135022B2 (en) * 2011-11-14 2015-09-15 Microsoft Technology Licensing, Llc Cross window animation
US20130231157A1 (en) * 2012-03-02 2013-09-05 Jeffrey Chung Cellular phone with camera at front edge area
US11740758B1 (en) * 2022-08-31 2023-08-29 Snap Inc. Presenting participant reactions within a virtual working environment

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2006350490A (ja) * 2005-06-14 2006-12-28 Sony Corp 表示信号処理装置および方法、記録媒体、並びにプログラム
JP2015035120A (ja) * 2013-08-09 2015-02-19 株式会社島津製作所 表示・実行操作補助プログラム
JP2017072872A (ja) * 2015-10-05 2017-04-13 日本電信電話株式会社 操作支援システム、操作支援方法、および、操作支援プログラム
JP2020074096A (ja) * 2016-12-30 2020-05-14 ドロップボックス, インコーポレイテッド ユーザインタフェース拡張器

Also Published As

Publication number Publication date
JPWO2022113315A1 (ja) 2022-06-02
US20240004528A1 (en) 2024-01-04

Similar Documents

Publication Publication Date Title
US20100161713A1 (en) Method and system for personalizing a desktop widget
US8312450B2 (en) Widgetizing a web-based application
US11379108B2 (en) Display controlling method, terminal, information processing apparatus, and storage medium
US10643023B2 (en) Programmatic native rendering of structured content
US7395500B2 (en) Space-optimizing content display
CA2736490C (en) Method and apparatus for remotely displaying screen files and efficiently handling remote operator input
US7689916B1 (en) Automatically generating, and providing multiple levels of, tooltip information over time
JP5430743B2 (ja) グラフィカルユーザインタフェース内でスクレープされたウェブページを提供するための方法および装置
JP5520310B2 (ja) 複数ビュー要素gui内で見られるほとんどのデータを最大化するためのビュー要素サイズの最適化
US6674450B1 (en) Interactive data-bound control
US8112723B2 (en) Previewing next state based on potential action in current state
US20150074561A1 (en) Customizable themes for browsers and web content
AU2018317074B2 (en) Page updating method and device
JPH0944335A (ja) イメージ・マップと元々の外観とを表示する方法および装置
WO2009122684A1 (ja) 表示システム、表示方法、プログラム、及び記録媒体
US20080270591A1 (en) Event Notification
US20070300166A1 (en) Method and system for showing a display panel in a graphical user interface
CN115309470A (zh) 微件的加载方法、装置、设备以及存储介质
US20160371062A1 (en) Method For The Automatic Presentation And Interaction Of A Data-Form User-Interface From Object-Model Metadata Under Media And Security Constraints
US9052928B2 (en) Automatic formatting of display screen to reflect past correlative changes to data display windows
WO2022113315A1 (ja) ユーザインタフェース拡張システム、ユーザインタフェース拡張方法及びユーザインタフェース拡張プログラム
JP4977096B2 (ja) 強調表示追加方法、表示制御プログラム、及びサーバ
JP2002108323A (ja) 情報端末装置及び記憶媒体
JP7473007B2 (ja) 表示制御システム、表示制御方法及び表示制御プログラム
Hutchings et al. Quantifying the performance effect of window snipping in multiple-monitor environments

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2022564975

Country of ref document: JP

Kind code of ref document: A

WWE Wipo information: entry into national phase

Ref document number: 18038354

Country of ref document: US

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 20963579

Country of ref document: EP

Kind code of ref document: A1