WO2016117096A1 - アプリケーション機能拡張方法、アプリケーション機能拡張プログラム、及びアプリケーション機能拡張装置 - Google Patents

アプリケーション機能拡張方法、アプリケーション機能拡張プログラム、及びアプリケーション機能拡張装置 Download PDF

Info

Publication number
WO2016117096A1
WO2016117096A1 PCT/JP2015/051736 JP2015051736W WO2016117096A1 WO 2016117096 A1 WO2016117096 A1 WO 2016117096A1 JP 2015051736 W JP2015051736 W JP 2015051736W WO 2016117096 A1 WO2016117096 A1 WO 2016117096A1
Authority
WO
WIPO (PCT)
Prior art keywords
application
terminal
function expansion
application function
logic
Prior art date
Application number
PCT/JP2015/051736
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 PCT/JP2015/051736 priority Critical patent/WO2016117096A1/ja
Priority to EP15878789.5A priority patent/EP3249530A4/en
Priority to JP2016570433A priority patent/JP6468293B2/ja
Publication of WO2016117096A1 publication Critical patent/WO2016117096A1/ja
Priority to US15/641,903 priority patent/US20170300320A1/en

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/76Adapting program code to run in a different environment; Porting
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • 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]
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/70Software maintenance or management
    • G06F8/71Version control; Configuration management
    • 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/4401Bootstrapping
    • G06F9/4411Configuring for operating with peripheral devices; Loading of device drivers
    • 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/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06VIMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
    • G06V20/00Scenes; Scene-specific elements
    • G06V20/20Scenes; Scene-specific elements in augmented reality scenes

Definitions

  • the disclosed technology relates to an application function expansion method, an application function expansion program, and an application function expansion apparatus.
  • an application executed on a portable information terminal is a Web (World Wide Web) application (hereinafter referred to as "application”) that processes information in cooperation with a server connected via a communication line such as the Internet. Express). Therefore, an information processing form suitable for an application using a network is being studied.
  • Web World Wide Web
  • the user When executing an application on a portable information terminal, the user wants to output information handled by the application to a peripheral device (hereinafter referred to as “device”) connected to the portable information terminal such as a printer, an external speaker, or an external monitor. May occur.
  • a peripheral device hereinafter referred to as “device”
  • the device cannot be used from the portable information terminal even if the driver corresponding to the device is installed in the portable information terminal. .
  • the disclosed technology aims to extend the functionality of an application so that the device can be used from the application without modifying the application, even if the application is not considered to be linked with the device. To do.
  • a computer is caused to specify a position where a predetermined tag corresponding to a device detected by the terminal is included from an application included in the terminal. Then, the computer is caused to insert logic for using a device corresponding to a predetermined tag at a specified position of the application.
  • the disclosed technology has the effect that the function of an application can be expanded so that the device can be used from the application without modifying the application, even if the application does not consider cooperation with the device. Have.
  • FIG. 1 It is a figure which shows the example of a display when the device which can be used in a terminal is detected. It is a figure which shows the example of a display in the case of cooperation with an application and a device. It is a schematic diagram for demonstrating sharing of the driver in an application. It is a figure which shows an example of a logic.
  • terminal In order to use a device from an application of a portable information terminal (hereinafter referred to as “terminal”), it is necessary to mount a driver corresponding to the device used in the terminal.
  • the driver includes a function group for directly controlling the device, and the application uses a device corresponding to the driver by calling a function group included in the driver.
  • the application developer can use the device by using the device via the driver function group, leaving the detailed control procedure of the device to the driver function group. Therefore, the application developer can shorten the application development time as compared with the case where the code corresponding to the driver function group is created by himself.
  • the driver is supplied independently from the application, for example, from the device developer. Therefore, the driver can be installed in the terminal at a timing different from that of the application. Further, if a code for controlling a device using a predefined driver function group, that is, a logic is described in the application, the same device can be used in a plurality of applications.
  • FIG. 25 is a diagram showing a situation where the same driver is used in a plurality of applications. As shown in FIG. 25, since the driver used in application A exists in a form separated from application A, it can also be used in application B. Therefore, by describing the logic using the driver in the application A and the application B, it is possible to share the device corresponding to the driver.
  • FIG. 26 is a diagram illustrating an example of logic in the application. As shown in FIG. 26, the application is described in a markup language such as HTML (Hyper Text Markup Language). Note that the application description language shown in FIG. 26 is an example.
  • the application description language may be any language as long as it can be interpreted by an execution unit (for example, a browser) that executes the application in accordance with the description content of the application, such as a meta language such as XML or a script language.
  • a line corresponding to an input tag represented by “ ⁇ input ...>” corresponds to logic.
  • the driver's picprint function is called and the image file represented by “www.foo.com/pic1.jpg” are output from a printer that supports a driver that includes the picprint function.
  • the application needs to include logic for outputting an image from the printer in advance.
  • an application that merely displays an image on a terminal screen and does not assume the use of a device such as a printer from the beginning.
  • it is necessary to modify the code of the application and add logic corresponding to the device to the application.
  • it is usually difficult for a user of a terminal who is not familiar with the application to add logic corresponding to the device to the application.
  • the following describes an example of extending the application functions so that the device can be used from the application without modifying the application even if the application does not include logic.
  • FIG. 1 is a diagram illustrating a configuration example of a Web system 1 according to the first embodiment.
  • the Web system 1 includes a terminal 10, a cloud server 30, a device 40, and a communication line 50, for example.
  • the terminal 10 and the cloud server 30 are connected to a communication line 50 that is, for example, an Internet line, and transmit and receive data via the communication line 50. Further, the terminal 10 and the device 40 are also connected, and data is transmitted and received between the terminal 10 and the device 40.
  • the type of the communication line 50 is not limited, and may be, for example, a line such as an intranet line or a dedicated line in addition to the Internet line, and may be wired, wireless, or a mixture of wired and wireless. It may be a connection form. Further, the connection form for connecting the terminal 10 and the device 40 may be any connection form of wired, wireless, or a mixture of wired and wireless.
  • the terminal 10 includes functional units such as an execution unit 11, a detection unit 12, a determination unit 13, an acquisition unit 14, a specification unit 15, and an insertion unit 16. Further, the terminal 10 includes, for example, each of the corresponding device DB (Database) 20, the device control logic list DB 22, and the driver DB, and the application 17 acquired from a server connected to the communication line 50 such as the cloud server 30. ,including.
  • the execution unit 11 expands the code of the application 17 in the memory 104, reads the application 17 expanded in the memory 104 line by line, and executes the application 17 while interpreting the description content of the read line.
  • the execution unit 11 calls the detection unit 12 when executing the application 17.
  • the detection unit 12 When the detection unit 12 is called from the execution unit 11, the detection unit 12 detects the device 40 that can be connected to the terminal 10 and refers to the corresponding device DB 20 to determine whether the detected device 40 corresponds to the terminal 10, that is, the detected device. Whether or not 40 is available on the terminal 10 is detected.
  • FIG. 2 is a diagram illustrating an example of a data structure in the corresponding device DB 20.
  • the corresponding device DB 20 includes information (corresponding device information) in which a device name corresponding to the terminal 10 is described, for example. If the device name of the detected device 40 is included in the corresponding device information, the detection unit 12 determines that the device 40 corresponding to the terminal 10 has been detected. Note that there is no duplication in the device names included in the corresponding device information, and the device 40 can be uniquely identified from the device names.
  • the detecting unit 12 When detecting the device 40 corresponding to the terminal 10, the detecting unit 12 outputs the device name of the detected device 40 to the determining unit 13.
  • the determination unit 13 refers to the device control logic list DB 22 and determines whether or not the device control logic 34 corresponding to the device name received from the detection unit 12 already exists in the terminal 10.
  • the device control logic 34 is information including information (logic correspondence information) that associates a code for controlling the device 40, that is, logic, and a tag indicating a logic insertion position in the application 17. .
  • FIG. 3 shows an example of the device control logic 34.
  • the device control logic 34 shown in FIG. 3 associates logic for calling the function group of the driver 32 and using the device 40 from the application 17 with a tag in the row direction.
  • the symbols “X” and “Y” represent the file names of resources to be output to the device 40.
  • the device control logic 34 shown in FIG. 3 includes two pieces of logic correspondence information, but the number of logic correspondence information included in the device control logic 34 is not limited.
  • the logic of the device control logic 34 shown in FIG. 3 is described in the HTML language, it may be another language, or may be information specifying the URL (Uniform Resource Locator) of the file describing the logic.
  • FIG. 4 is a diagram illustrating an example of a data structure of the device control logic list DB 22.
  • the device control logic list DB 22 associates, for example, a device name with a device control logic 34 corresponding to the device name.
  • the determination unit 13 includes a device control logic 34 corresponding to the device name input from the detection unit 12 in the terminal 10. It is determined that it exists. Then, the determination unit 13 outputs the device name input from the detection unit 12 to the specifying unit 15.
  • the determination unit 13 outputs the device name input from the detection unit 12 to the acquisition unit 14.
  • the acquisition unit 14 acquires the driver 32 and the device control logic 34 corresponding to the device name input from the determination unit 13.
  • the driver 32 and the device control logic 34 are prepared in advance in the cloud server 30 for each device name, and the acquisition unit 14 acquires the driver 32 and the device control logic 34 corresponding to the device name from the cloud server 30.
  • the acquisition unit 14 associates the acquired device control logic 34 with the device name and stores it in the device control logic list DB 22. Furthermore, the acquisition unit 14 stores the acquired driver 32 in the driver DB 24 and stores information (driver correspondence information) that associates the device name with the driver 32 in the driver DB 24.
  • FIG. 5 is a diagram illustrating an example of the data structure of the driver DB 24.
  • the device name and the driver 32 are associated in the row direction.
  • the driver corresponding to the device name “dev1” is “dev1.drv”.
  • the acquisition unit 14 After acquiring the driver 32 and the device control logic 34 corresponding to the device name input from the determination unit 13, the acquisition unit 14 outputs, for example, a notification informing the acquisition end to the determination unit 13.
  • the determination unit 13 When the determination unit 13 receives the notification from the acquisition unit 14, the determination unit 13 outputs the device name input from the detection unit 12 to the specifying unit 15.
  • the specifying unit 15 refers to the device control logic list DB 22 and acquires the device control logic 34 corresponding to the device name input from the determination unit 13. Then, the specifying unit 15 reads the code of the application 17 expanded in the memory 104 and determines whether or not the application 17 includes the same code as the tag of the device control logic 34.
  • the specifying unit 15 specifies the line number of the line including the same code as the tag in the application 17. At this time, the specifying unit 15 refers to the driver correspondence information, acquires the driver 32 corresponding to the device name input from the determination unit 13 from the driver DB 24 and expands the acquired driver 32 in the memory 104. It can be used from the application 17.
  • the specifying unit 15 outputs the logic of the device control logic 34 corresponding to the specified line number and the device name input from the determining unit 13 to the inserting unit 16.
  • the inserting unit 16 inserts the logic received from the specifying unit 15 into the line next to the line number received from the specifying unit 15 for the application 17 expanded in the memory 104. After the logic is inserted into the application 17, the insertion unit 16 outputs a notification instructing re-reading of the application to the execution unit 11.
  • the execution unit 11 When the execution unit 11 receives the notification from the insertion unit 16, the execution unit 11 re-reads the application 17 after the logic insertion developed in the memory 104 and executes the application 17.
  • the cloud server 30 includes a driver 32 and a device control logic 34 corresponding to the device name.
  • the cloud server 30 manages the driver 32 and the device control logic 34 in association with the device name and receives the device name from the terminal 10, the cloud server 30 sends the driver 32 and the device control logic 34 corresponding to the received device name to the terminal 10. Send.
  • FIG. 6 shows a configuration diagram when the terminal 10 is realized by a computer.
  • the computer 100 includes a CPU 102, a memory 104, and a nonvolatile storage unit 106.
  • the CPU 102, the memory 104, and the nonvolatile storage unit 106 are connected to each other via a bus 108.
  • the computer 100 includes an I / O (Input / Output) 110 for connecting other devices and the computer 100 and transmitting / receiving data to / from each other, and the I / O 110 is connected to the bus 108.
  • an input device 112 a display device 114, and a communication device 116 are connected to the I / O 110.
  • the input device 112 includes an interface device for the user to give an instruction to the computer 100, such as a touch panel installed on the display screen of the display device 114, for example.
  • the input device 112 includes a reading device for reading data recorded on the recording medium 160 such as a CD-ROM or a flash memory.
  • the display device 114 includes, for example, a display device that displays a processing result in the computer 100.
  • the communication device 116 includes an interface for connecting to the device 40 and the communication line 50, and transmits and receives data to and from other electronic devices such as the device 40 and the cloud server 30.
  • the storage unit 106 can be realized by an HDD (Hard Disk Drive) or a flash memory.
  • the storage unit 106 stores an application function expansion program 118 for causing the computer 100 to function as the terminal 10 shown in FIG.
  • the application function expansion program 118 stored in the storage unit 106 includes, for example, a detection process 120, a determination process 122, an acquisition process 124, a specific process 126, an insertion process 128, and an execution process 130.
  • the CPU 102 reads out the application function expansion program 118 from the storage unit 106, expands it in the memory 104, and executes each process of the application function expansion program 118.
  • the CPU 102 reads the application function expansion program 118 from the storage unit 106, expands it in the memory 104, and executes the application function expansion program 118, whereby the computer 100 operates as the terminal 10 illustrated in FIG. Further, when the CPU 102 executes the detection process 120, the computer 100 operates as the detection unit 12 illustrated in FIG. Further, when the CPU 102 executes the determination process 122, the computer 100 operates as the determination unit 13 illustrated in FIG. Further, when the CPU 102 executes the acquisition process 124, the computer 100 operates as the acquisition unit 14 illustrated in FIG. Further, when the CPU 102 executes the specifying process 126, the computer 100 operates as the specifying unit 15 illustrated in FIG. Further, when the CPU 102 executes the insertion process 128, the computer 100 operates as the insertion unit 16 illustrated in FIG. Further, when the CPU 102 executes the execution process 130, the computer 100 operates as the execution unit 11 illustrated in FIG.
  • the storage unit 106 stores a device control logic list information storage area 134, a corresponding device information storage area 136, a driver information storage area 138, and an application information storage area 140.
  • the CPU 102 expands the information for generating the logic correspondence information stored in the device control logic list information storage area 134 in the memory 104, so that the device control logic list DB 22 is generated in the memory 104. Further, the CPU 102 expands the information for generating the corresponding device information stored in the corresponding device information storage area 136 in the memory 104, so that the corresponding device DB 20 is generated in the memory 104. Further, the CPU 102 develops the driver 32 and the information for generating the driver correspondence information stored in the driver information storage area 138 in the memory 104, so that the driver DB 24 is generated in the memory 104. Further, the CPU 102 develops information for generating the application 17 stored in the application information storage area 140 in the memory 104, so that the application 17 can be executed by the CPU 102.
  • the computer 100 can be realized by, for example, a semiconductor integrated circuit, more specifically, an ASIC (Application Specific Integrated Circuit) or the like.
  • a semiconductor integrated circuit more specifically, an ASIC (Application Specific Integrated Circuit) or the like.
  • the operation of the first embodiment will be described.
  • the terminal 10 according to the first embodiment for example, when a user of the terminal 10 instructs the terminal 10 to execute the application 17 specified by the input device 112, the specified application 17 is expanded in the memory 104 and executed. Next, application function expansion processing is executed.
  • FIG. 7 is a flowchart showing an example of the flow of application function expansion processing executed by the terminal 10 according to the first embodiment.
  • step S ⁇ b> 10 the detection unit 12 detects a device 40 that can be connected to the terminal 10 via the communication device 116.
  • a known technique can be used for detecting the device 40 that can be connected to the terminal 10 via the communication device 116.
  • the detection unit 12 connects the terminal 10 to the wireless access point, and connects to the terminal 10 by scanning information on the device 40 connected to the wireless access point. Get device names of possible devices 40.
  • the detection unit 12 scans the information of the device 40 by using a known connection protocol such as UPnP (Universal Plug and Play) or DLNA (registered trademark), for example. Can be obtained.
  • UPnP Universal Plug and Play
  • DLNA registered trademark
  • identification information that can identify the device 40 such as an SSID may be acquired, and the device name may be specified from the SSID.
  • the detection unit 12 may acquire a device name connectable to the terminal 10 by using short-range wireless communication such as NFC (Near Field Communication) or RFID (Radio Frequency IDentifier).
  • NFC Near Field Communication
  • RFID Radio Frequency IDentifier
  • step S20 the detection unit 12 determines whether or not the device 40 represented by the device name acquired in the process of step S10 can be used in the terminal 10. Specifically, when the device name acquired in step S10 is included in the corresponding device information stored in the corresponding device DB 20 expanded in the memory 104, the detection unit 12 detects the device detected in step S10. Is determined to be available on the terminal 10. On the other hand, when the device name acquired in the process of step S10 is not included in the corresponding device information, the detection unit 12 determines that the device 40 detected in the process of step S10 cannot be used in the terminal 10.
  • step S20 determines whether there is no device 40 that can be used by the terminal 10 is a device 40 that can be used by the terminal 10. If the determination process in step S20 is negative, since there is no device 40 that can be used by the terminal 10, the application function expansion process is terminated, and the terminal 10 does not cooperate with the device 40 but the application 17 specified by the user. Execute. On the other hand, if the determination process in step S20 is affirmative, the process proceeds to step S30. At this time, the detection unit 12 stores the device name acquired in the process of step S ⁇ b> 10 in a predetermined area of the memory 104.
  • step S30 the determination unit 13 acquires the device name acquired in step S10 from the memory 104. Then, the determination unit 13 refers to the device control logic list DB 22 illustrated in FIG. 4 and determines whether or not the acquired device name is included in the device name column of the device control logic list DB 22.
  • step S50 If the determination is affirmative, since the terminal 10 has already acquired the driver 32 and the device control logic 34 corresponding to the acquired device name, the process proceeds to step S50. On the other hand, in the case of negative determination, since the terminal 32 does not have the driver 32 and the device control logic 34 corresponding to the acquired device name, the process proceeds to step S40.
  • step S40 the acquisition unit 14 acquires the device name acquired in step S10 from the memory 104. Then, the acquisition unit 14 transmits the acquired device name to the cloud server 30 and acquires the driver 32 and the device control logic 34 corresponding to the transmitted device name from the cloud server 30.
  • the driver 32 and the device control logic 34 are arranged in the cloud server 30 connected to the communication line 50 such as the Internet line.
  • the driver 32 and the device control logic 34 may be arranged in a server (local server) that is not connected to the Internet line, or in the device 40 itself.
  • any terminal 10 that can be connected to the Internet line can be accessed. Accordingly, the visibility of the driver 32 and the device control logic 34 is improved as compared with the case where the driver 32 and the device control logic 34 are arranged in other information devices other than the cloud server 30.
  • the access permission range to the driver 32 and the device control logic 34 can be limited to the terminal 10 in the local network to which the local server is connected. Therefore, the confidentiality of the driver 32 and the device control logic 34 is improved as compared with the case where the driver 32 and the device control logic 34 are arranged in other information devices other than the local server.
  • the driver 32 and the device control logic 34 are arranged in the device 40, the cloud server 30 or the local server becomes unnecessary. Therefore, compared to the case where the driver 32 and the device control logic 34 are arranged in other information devices other than the device 40, the number of information devices necessary for obtaining the driver 32 and the device control logic 34 can be reduced.
  • the acquisition unit 14 associates the acquired device control logic 34 with the acquired device name and stores it in the device control logic list DB 22. Furthermore, the acquisition unit 14 stores the acquired driver 32 in the driver DB 24, associates the acquired driver 32 with the device name, and adds the acquired driver 32 to the driver correspondence information of the driver DB 24 illustrated in FIG.
  • step S50 the specifying unit 15 acquires the device name acquired in step S10 from the memory 104. Then, the specifying unit 15 refers to the device control logic list DB 22 and performs device control corresponding to the acquired device name from the row data in which the acquired device name is set in the device name column of the device control logic list DB 22. The logic 34 is acquired.
  • step S60 the specifying unit 15 specifies the logic insertion position in the application 17 expanded in the memory 104. Specifically, the specifying unit 15 reads the code of the application 17 expanded in the memory 104, and inserts the line number of the line including the same code as the acquired device control logic 34 tag in the application 17 into the logic insertion. Specify as location. When the application 17 includes a plurality of codes that are the same as the tags of the acquired device control logic 34, the specifying unit 15 specifies the line number of the line including each code as the logic insertion position.
  • step S70 the specifying unit 15 determines whether or not there is at least one logic insertion position specified in the process of step S60. In the case of negative determination, the application 17 deployed in the memory 104 does not have a position to insert the logic included in the device control logic 34 acquired in the process of step S50. Therefore, the application function expansion process is terminated, and the terminal 10 executes the application 17 designated by the user without cooperating with the device 40.
  • the specifying unit 15 stores the logic included in the device control logic 34 acquired in step S50 and the line number of the application 17 acquired in step S60 in a predetermined area of the memory 104. . Further, the specifying unit 15 refers to the driver correspondence information in the driver DB 24, acquires the driver 32 corresponding to the acquired device name from the driver DB 24 and expands the acquired driver 32 in the memory 104, thereby acquiring the acquired driver 32 from the application 17. Make it available. Needless to say, the timing of developing the driver in the memory 104 is not limited to the timing of processing step S70.
  • step S80 the insertion unit 16 obtains the logic and the line number of the application 17 stored from the memory 104 when the determination in step S70 is affirmative. Then, the insertion unit 16 inserts the acquired logic at a position after the line represented by the acquired line number in the application 17 expanded in the memory 104.
  • logic can be inserted into the application 17 being executed by using, for example, a DOM (Document Object Model) that is an API (Application Programming Interface) that can access the application 17 expanded in the memory 104. .
  • step S90 the execution unit 11 re-reads the application 17 in which the logic is inserted in the process of step S80 from the memory 104, and executes the application 17.
  • the application function expansion process shown in FIG. 7 automatically inserts the logic of the device 40 detected by the terminal 10 into the running application 17 without the user's operation, and the device 17 can be used from the application 17. Become.
  • the logic and tag corresponding to the device 40 are included in the device control logic 34 and managed integrally. However, as long as the logic and the tag are associated with each other, the logic and the tag May be managed separately.
  • logic may be included in the device control logic 34, and tags corresponding to the logic may be managed by a DB (not shown).
  • the device 40 that can be connected to the terminal 10 is detected. I made it.
  • the device 40 that can be connected to the terminal 10 may be periodically detected after the terminal 10 is activated. In this case, since the detection of the device 40 has been completed before the execution of the application 17, it is necessary until the device 40 can be used from the application 17 compared to the case where the device 40 is detected after the execution of the application 17. Time can be shortened.
  • the device 40 that can be connected to the terminal 10 is periodically detected, the number of times the device 40 is detected increases. Therefore, compared with the case where the device 40 is detected as the application 17 is executed, the consumption of the terminal 10 Electric power increases. Therefore, from the viewpoint of reducing the power consumption of the terminal 10, it is preferable to detect the device 40 in accordance with the execution of the application 17.
  • the device control logic 34 acquired from the cloud server 30 is stored in the terminal 10, and when the device control logic corresponding to the detected device 40 exists in the terminal 10, the device control logic 34 is stored in the terminal 10.
  • the device control logic 34 was used.
  • the device control logic 34 may be acquired from the cloud server 30 each time a device is detected by the terminal 10 without storing the device control logic 34 in the terminal 10.
  • FIG. 8 is a diagram illustrating the terminal 10 before the logic of the device 40 detected by the terminal 10 is inserted into the application 17 that displays an image developed in the memory 104.
  • the printer is detected as the device 40 that the terminal 10 can use.
  • the tag of the device control logic 34 corresponding to the detected printer includes an img tag
  • the terminal 10 inserts logic for outputting an image to the printer in a line immediately after the img tag of the application 17.
  • FIG. 9 shows a state where the application function expansion process shown in FIG. 7 is executed, and the logic of the device 40 (in this case, a printer) detected by the terminal 10 is inserted into the application 17 shown in FIG. FIG.
  • the logic inserted in the application 17 illustrated in FIG. 9 includes a command for displaying the button 60 labeled “print image” on the display device 114 of the terminal 10, for example.
  • the button 60 When the user of the terminal 10 presses the button 60, the photoprint function included in the driver 32 corresponding to the detected printer is called, and the image of the image file specified as “URL” by the img tag is output from the device 40.
  • FIG. 10 is a diagram showing the terminal 10 before the logic of the device 40 detected by the terminal 10 is inserted into the application 17 that outputs sound and is expanded in the memory 104.
  • “controls” of the audio tag is a command for displaying an operation item 62 for temporarily stopping sound and designating a reproduction position on the display device 114 of the terminal 10.
  • the sound of the sound file specified by is output.
  • the application 17 illustrated in FIG. 10 does not include logic for outputting sound from the external speaker in cooperation with an external speaker that is an example of the device 40.
  • an external speaker is detected as the device 40 that can be used by the terminal 10.
  • the terminal 10 inserts logic for outputting audio to the external speaker in the line immediately after the audio tag of the application 17.
  • the logic inserted in the application 17 illustrated in FIG. 11 includes a command for displaying the button 60 labeled “Play with speaker” on the display device 114 of the terminal 10, for example.
  • the button 60 When the user of the terminal 10 presses the button 60, the aplay function included in the driver 32 corresponding to the detected external speaker is called, and the audio of the audio file specified as “URL” by the audio tag is the device 40. Output from an external speaker.
  • FIG. 12 is a diagram illustrating the terminal 10 before the logic of the device 40 detected by the terminal 10 is inserted in the application 17 that displays the moving image, which is expanded in the memory 104.
  • 114 is a command to be displayed.
  • “controls” of the video tag is a command for displaying the operation item 62 for temporarily stopping the moving image and designating the reproduction position as described above.
  • the application 17 illustrated in FIG. 12 does not include logic for outputting a moving image from the external monitor in cooperation with the external monitor that is an example of the device 40.
  • an external monitor is detected as the device 40 that can be used by the terminal 10. If the tag of the device control logic 34 corresponding to the detected external monitor includes a video tag, the terminal 10 inserts logic for outputting a moving image to the external monitor in the line immediately after the video tag of the application 17.
  • FIG. 13 executes the application function expansion process shown in FIG. 7, and the logic of the device 40 (in this case, an external monitor) detected by the terminal 10 is inserted into the application 17 shown in FIG. It is a figure which shows the terminal 10 after.
  • the logic inserted in the application 17 illustrated in FIG. 13 includes a command for displaying the button 60 indicated as “play on monitor” on the display device 114 of the terminal 10, for example.
  • the button 60 When the user of the terminal 10 presses the button 60, the vplay function included in the driver 32 corresponding to the detected external monitor is called, and the moving image of the moving image file designated as “URL” by the video tag is the device 40. Output from an external monitor.
  • the application 17 displays a button 60 for receiving an instruction to start cooperation between the application 17 and the device 40 on the display device 114. To do. Then, the application 17 starts cooperation between the application 17 and the device 40 when the button 60 is pressed by the user of the terminal 10.
  • the display of the button 60 is not essential. For example, the application 17 may automatically start cooperation between the application 17 and the device 40 without waiting for an instruction from the user of the terminal 10.
  • the logic of the device 40 that can be used by the terminal 10 detected by the detection unit 12 is automatically inserted into the application 17, and the application 17 cooperates with the device 40 such as a printer. become able to.
  • the problem can be solved by using the device control logic 34A shown in FIG. 14 instead of the device control logic 34 shown in FIG. 14 instead of the device control logic 34 shown in FIG.
  • the device control logic 34A includes logic corresponding information for associating the application name of the application 17 corresponding to the device 40 with the logic corresponding to the device 40 and the tag.
  • the application name of the device control logic 34A describes an application name that permits insertion of the corresponding logic.
  • the specifying unit 15 first determines whether or not the acquired application name of the device control logic 34A matches the application name of the application 17 being executed by the execution unit 11. If the determination is affirmative, the specifying unit 15 continues the process of step S60 described above. On the other hand, in the case of negative determination, the specifying unit 15 ends the application function expansion process shown in FIG. 7 without specifying the logic insertion position.
  • the logic of the device 40 corresponding to the device control logic 34A is inserted only into the application 17 described in the application name column of the device control logic 34A. Therefore, the terminal 10 can specify the device 40 that can be linked for each application 17.
  • the application name of the device control logic 34A shown in FIG. 14 may include an application name that prohibits insertion of the corresponding logic. In this case, if the acquired application name of the device control logic 34A matches the application name of the application 17 being executed, the application function expansion process shown in FIG. 7 is terminated without specifying the logic insertion position by the specifying unit 15. do it.
  • the application 17 is downloaded to the terminal 10 from an information device connected to the communication line 50, for example, and executed.
  • the domain of the information device from which the application 17 is acquired may be different from the domain of the cloud server 30 including the device control logic 34 that defines the logic to be inserted into the acquired application 17.
  • the domain is address information on the communication line 50 assigned so as not to overlap each other in order to identify information devices.
  • the logic of the device control logic 34 is inserted into the application 17 acquired from different domains.
  • the operation of acquiring the device control logic 34 from a domain different from the domain of the information device from which the application 17 is acquired is called a so-called cross-site request and may be prohibited by the execution unit 11.
  • the managers of the application 17 and the device control logic 34 may be different because the acquisition source domains of the application 17 and the device control logic 34 are different. Therefore, since the device control logic 34 provided by a person other than the administrator of the application 17 may include malicious logic such as guidance to an unauthorized site, the execution unit 11 is a device from the security viewpoint. The acquisition of the control logic 34 is prohibited.
  • FIG. 15 is a diagram illustrating an example of a cross-site request.
  • the terminal 10 acquires the application 17 from the Web server 31 represented by a domain “www.server1.com”, for example. Then, the terminal 10 executes the application function expansion process shown in FIG. 7 and tries to acquire the device control logic 34 from the cloud server 30 represented by the domain “www.server2.com”, for example. However, as described above, the execution unit 11 may refuse to acquire the device control logic 34 from the viewpoint of security.
  • CORS Cross Origin Resource Sharing
  • the device control logic 34 can be acquired from the cloud server 30 by making the terminal 10 and the cloud server 30 correspond to CORS.
  • FIG. 16 is a diagram illustrating an example of a cross-site request to which CORS is applied.
  • the acquisition unit 14 When acquiring the device control logic 34 from a domain different from the acquisition source of the application 17, the acquisition unit 14 adds the acquisition source domain (www.server1.com) to the origin header and transmits it to the cloud server 30. .
  • the cloud server 30 adds the acquisition source domain of the application 17 added to the origin header to the Access-Control-Allow-Origin header of the message including the device control logic 34. Then, the cloud server 30 transmits a message including the device control logic 34 in which the Access-Control-Allow-Origin header is set to the terminal 10.
  • the acquisition unit 14 In the terminal 10, when the Access-Control-Allow-Origin header includes the same domain as the domain added to the origin header, the acquisition unit 14 is permitted to acquire the device control logic by the execution unit 11.
  • the logic corresponding to the device 40 is added to the application 17 that is not considered for cooperation with the device 40 by executing the application function expansion process shown in FIG. Can be inserted. Accordingly, the device 40 can be used even by the application 17 that is not considered for cooperation with the device 40.
  • the application function expansion process inserts logic into the application 17 expanded in the memory 104, the code of the application 17 itself stored in the storage unit 106 is not rewritten.
  • the logic of the device 40 that can be linked with the application 17 detected by the terminal 10 is automatically inserted into the application 17 without any user operation. Therefore, even when the user has determined the device 40 that the user wants to use in advance, the logic of all the devices 40 that can cooperate with the application 17 is inserted into the application 17, and the application 17 cooperates with the unnecessary device 40. There is a case.
  • the configuration of the Web system in the second embodiment and the computer configuration for realizing the terminal 10 are the same as the configuration of the Web system 1 (FIG. 1) and the computer configuration (FIG. 6) in the first embodiment. .
  • the terminal 10 according to the second embodiment executes the application function expansion process at the same timing as in the first embodiment.
  • FIG. 17 is a flowchart showing an example of the flow of application function expansion processing executed by the terminal 10 according to the second embodiment.
  • the flowchart shown in FIG. 17 is different from the flowchart of the application function expansion process in the first embodiment shown in FIG. 7 in that the processes in steps S22 and S24 are added.
  • step S22 the detection unit 12 displays on the display device 114 an icon associated with the device 40 determined to be usable in the terminal 10 by the determination process in step S20.
  • step S24 the detection unit 12 determines whether an icon is selected by the user of the terminal 10, and repeats the process of step S24 until an affirmative determination is made, that is, until an icon is selected.
  • the detection unit 12 stores the device name of the device 40 corresponding to the icon selected by the user of the terminal 10 in a predetermined area of the memory 104. Then, the process proceeds to step S30.
  • FIG. 18 is a diagram showing an example of a screen displayed on the display device 114 of the terminal 10 when the process of step S22 is executed.
  • an icon corresponding to the device 40 that can be used in the terminal 10 is displayed in the area 64 positioned below the display device 114.
  • the icon for example, a design that schematically shows the appearance of the corresponding device 40 is used.
  • the corresponding device 40 may be a character or a combination of a design and a character. There may be.
  • an icon 66 indicating a printer and an icon 68 indicating a storage device are displayed.
  • the position of the region 64 is an example, and it goes without saying that the region 64 may be arranged at any position on the display device 114.
  • the running application 17 and the printer indicated by the icon 66 can be linked.
  • FIG. 19 is a diagram illustrating an example of a screen displayed on the display device 114 of the terminal 10 after the icon 66 is selected.
  • the button 60 for instructing the printer to output an image is displayed in the area 64.
  • an icon selected by the user in this case, the icon 66
  • the icon 66 may be displayed as shown in FIG.
  • FIG. 20 is a diagram illustrating a configuration example of a Web system according to the third embodiment.
  • the Web system 2 shown in FIG. 20 is different from the Web system 1 shown in FIG. 1 in that an imaging device 150 is newly added and the detection unit 12 is replaced with a detection unit 12A.
  • the detection unit 12A causes the imaging device 150 to capture an image around the terminal 10A along with the execution of the application 17 in the execution unit 11.
  • the detection unit 12 ⁇ / b> A detects the device 40 included in the captured image and refers to the corresponding device DB 20 to detect whether the detected device 40 can be used in the terminal 10. Then, when the device 40 is available, the detection unit 12A outputs the detected device name of the device 40 to the determination unit 13.
  • FIG. 21 shows a configuration example when the terminal 10A according to the third embodiment is realized by a computer.
  • the configuration example of the computer 100A illustrated in FIG. 21 is different from the configuration example of the computer 100 illustrated in FIG. 6 in that the imaging device 150 is newly connected to the I / O 110 and the detection process 120 is replaced with the detection process 120A. It is. Note that the application function expansion program 118 is replaced with the application function expansion program 118A along with the replacement with the detection process 120A.
  • the imaging device 150 is a device having a function of capturing an image and converting the captured image into image data. Specifically, for example, a camera is applied. Further, when the CPU 102 executes the detection process 120A, the computer 100A operates as the detection unit 12A illustrated in FIG.
  • the computer 100A can be realized by, for example, a semiconductor integrated circuit, more specifically, an ASIC or the like.
  • the timing at which the terminal 10A according to the third embodiment executes the application function expansion process is the same as in the first embodiment and the second embodiment. That is, when the user of the terminal 10 ⁇ / b> A instructs the terminal 10 ⁇ / b> A to execute the application 17 specified by the input device 112, for example, the terminal 10 ⁇ / b> A has an application function when the specified application 17 is expanded in the memory 104 and executed. Perform extension processing.
  • the device 40 has a position where identification information for specifying the device 40 in advance, for example, a label on which characters representing the device name are written can be seen from the outside. It is assumed that it is affixed to.
  • the label may include a barcode representing the device name instead of characters.
  • FIG. 22 is a flowchart illustrating an example of the flow of application function expansion processing executed by the terminal 10A according to the third embodiment.
  • the flowchart shown in FIG. 22 is different from the flowchart of the first embodiment shown in FIG. 7 in that the processes in steps S10 and S20 are replaced with steps S11 and S21, respectively, and the processes in steps S23, S25, and S27 are newly performed. This is an added point.
  • step S ⁇ b> 11 the detection unit 12 ⁇ / b> A acquires an image (captured image) around the terminal 10 ⁇ / b> A captured by the imaging device 150. And when the label which described the device name was contained in the captured image, 12 A of detection parts read a device name from a label using a well-known character recognition technique, and detect the device 40 contained in a captured image.
  • step S21 the detection unit 12A determines whether the device 40 included in the captured image detected in the process of step S11 is a device 40 that can be used in the terminal 10A.
  • the determination method may be determined with reference to the corresponding device DB 20 as already described in step S20 of FIG. If the determination process in step S21 is negative, the process proceeds to step S25.
  • step S25 the detection unit 12A determines whether an imaging end instruction is notified from the input device 112, for example. If the determination is affirmative, the application function expansion process shown in FIG. 22 is terminated. If the determination is negative, the process proceeds to step S11, and the detection unit 12A repeats the process of detecting the device 40 included in the captured image.
  • step S21 determines whether the determination process in step S21 is affirmative.
  • the process proceeds to step S23.
  • step S ⁇ b> 23 the detection unit 12 ⁇ / b> A highlights and displays the detected device 40 in order to show the user where the detected device 40 exists in the captured image displayed on the display device 114, for example.
  • a method of highlighting and displaying the device 40 for example, a method of pointing the device 40 with an arrow or the like, surrounding the device 40 with a frame, or changing the color of the device 40 can be considered.
  • step S27 the detection unit 12A determines whether the user has selected the device 40 included in the captured image. In the determination, for example, when the user presses the device 40 displayed on the display device 114 with a finger, operation information notified from a touch panel which is one of the input devices 112 installed on the surface of the display device 114 is detected. This can be determined by acquiring the part 12A. That is, when the detection unit 12A acquires operation information from the touch panel, the process proceeds to step S30. When the operation information cannot be acquired, the process of step S27 is repeated, and the process waits until the detected device 40 is selected.
  • the application 17 being executed can use the device 40 selected from the captured images by the user.
  • FIG. 23 is a diagram illustrating a display example of a captured image when the device 40 usable in the terminal 10A is detected.
  • the captured image is displayed on the display device 114 of the terminal 10A.
  • the device 40 detected by the application function expansion process is highlighted and displayed, for example, indicating the frame 70 surrounding the device 40 and the device 40.
  • An icon 72 is displayed.
  • a balloon labeled “cooperate with printer A” may be displayed, and the device name to be linked with the application 17 may be displayed on the display device 114.
  • the display device 114 also displays an application image 74 displayed by the running application 17.
  • an application image 74 displayed by the running application 17.
  • FIG. 24 is a diagram illustrating a display example when the user selects the device 40 to be linked with the application 17.
  • the user selects the device 40 to be linked with the application 17, it is preferable to display the correspondence between the application image 74 of the application 17 and the device 40 to be linked in an easy-to-understand manner.
  • a line segment 76 that associates the application image 74 with the device 40 to be linked is displayed on the display device 114.
  • the user presses the portion of the display device 114 where the device 40 is displayed for example, a balloon labeled “execute printing” is displayed on the display device 114, and the device 40 (in this case, a printer) displays. Output the print result.
  • the user selects the device 40 to be linked with the application 17 while viewing the image of the actual device 40 by the AR (Augmented Reality) technology using the captured image. can do. Therefore, for example, the operability related to the cooperation between the application 17 and the device 40 can be improved as compared with the case where the device 40 to be linked with the application 17 is selected from the list of device names.
  • the mode in which the application function expansion program is stored (installed) in advance in the storage unit has been described.
  • the application function expansion program according to the disclosed technology can also be provided in a form recorded on a computer-readable recording medium 160.
  • the application function expansion program according to the disclosed technology can be provided in a form recorded in a portable recording medium such as a CD-ROM, a DVD-ROM, and a USB memory.
  • the application function expansion program according to the disclosed technology can be provided in a form recorded in a semiconductor memory such as a flash memory.
  • the form in which the logic of the device detected by the terminal 10 is inserted into the running application 17 has been described.
  • the logic of the device detected by the terminal 10 may be inserted into the application 17 waiting for execution developed in the memory 104.

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Security & Cryptography (AREA)
  • Human Computer Interaction (AREA)
  • Multimedia (AREA)
  • Information Transfer Between Computers (AREA)
  • Stored Programmes (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

 端末は、端末に含まれるアプリケーションから、端末で検知されたデバイスに対応した予め定めたタグが含まれる位置を特定し、アプリケーションの特定した位置に、予め定めたタグに対応したデバイスを利用するためのロジックを挿入する。

Description

アプリケーション機能拡張方法、アプリケーション機能拡張プログラム、及びアプリケーション機能拡張装置
 開示の技術は、アプリケーション機能拡張方法、アプリケーション機能拡張プログラム、及びアプリケーション機能拡張装置に関する。
 近年、スマートフォン及びタブレット端末等の携帯情報端末の高性能化に伴い、これまでパーソナルコンピュータが担っていた情報処理の一部を、携帯情報端末で実行する機会が増加している。多くの場合、携帯情報端末で実行されるアプリケーションは、インターネット等の通信回線を経由して接続されたサーバ等と連携して情報を処理するWeb(World Wide Web)アプリケーション(以降、「アプリケーション」と表す)である。そのため、ネットワークを利用するアプリケーションに適した情報処理の形態が検討されている。
特開2005-50241号公報 特開2013-81127号公報 特開2013-235387号公報
 携帯情報端末でアプリケーションを実行する際、ユーザはアプリケーションで扱われる情報を、プリンタ、外部スピーカ、外部モニタ等、携帯情報端末に接続される周辺デバイス(以降、「デバイス」と表す)に出力したい場合が生じることがある。
 しかしながら、アプリケーションにデバイスを制御するためのコード(ロジック)が含まれていなければ、例えデバイスに対応するドライバが携帯情報端末にインストールされていたとしても、携帯情報端末からデバイスを利用することができない。
 しかも、アプリケーションにロジックを追加するためにはアプリケーションを改修する必要があるため、アプリケーションに関する専門的知識を持たない携帯情報端末のユーザではアプリケーションの改修が困難となる場合が多い。
 一つの側面として、開示の技術は、デバイスとの連携が考慮されていないアプリケーションであっても、アプリケーションを改修することなくアプリケーションからデバイスが利用できるように、アプリケーションの機能を拡張することを目的とする。
 一つの態様では、コンピュータに、端末に含まれるアプリケーションから、前記端末で検知したデバイスに対応した予め定めたタグが含まれる位置を特定させる。そして、コンピュータに、アプリケーションの特定した位置に、予め定めたタグに対応したデバイスを利用するためのロジックを挿入させる。
 一つの側面として、開示の技術は、デバイスとの連携が考慮されていないアプリケーションであっても、アプリケーションを改修することなくアプリケーションからデバイスが利用できるように、アプリケーションの機能を拡張できる、という効果を有する。
第1実施形態及び第2実施形態に係るWebシステムの構成例を示す図である。 対応デバイスDBのデータ構造の一例を示す図である。 デバイス制御ロジックの一例を示す図である。 デバイス制御ロジックリストDBのデータ構造の一例を示す図である。 ドライバDBのデータ構造の一例を示す図である。 第1実施形態及び第2実施形態に係る端末をコンピュータで実現する場合の構成例を示す図である。 第1実施形態に係るアプリケーション機能拡張処理の流れの一例を示すフローチャートである。 アプリケーションにプリンタのロジックが挿入される前の端末の一例を示す図である。 アプリケーションにプリンタのロジックが挿入された後の端末の一例を示す図である。 アプリケーションに外部スピーカのロジックが挿入される前の端末の一例を示す図である。 アプリケーションに外部スピーカのロジックが挿入された後の端末の一例を示す図である。 アプリケーションに外部モニタのロジックが挿入される前の端末の一例を示す図である。 アプリケーションに外部モニタのロジックが挿入された後の端末の一例を示す図である。 デバイス制御ロジックの一例を示す図である。 クロスサイトリクエストの一例を示す図である。 CORSを適用したクロスサイトリクエストの一例を示す図である。 第2実施形態に係るアプリケーション機能拡張処理の流れの一例を示すフローチャートである。 デバイスの選択画面の一例を示す図である。 選択したデバイスとの連携を指示する画面の一例を示す図である。 第3実施形態に係るWebシステムの構成例を示す図である。 第3実施形態に係る端末をコンピュータで実現する場合の構成例を示す図である。 第3実施形態に係るアプリケーション機能拡張処理の流れの一例を示すフローチャートである。 端末で利用可能なデバイスを検知した場合の表示例を示す図である。 アプリケーションとデバイスとの連携の際の表示例を示す図である。 アプリケーションでのドライバの共有について説明するための模式図である。 ロジックの一例を示す図である。
 以下、図面を参照して開示の技術の実施形態の一例を詳細に説明する。なお、機能が同じ働きを担う構成要素及び処理には、全図面を通して同じ符号を付与し、重複する説明を適宜省略する場合がある。
(第1実施形態)
 携帯情報端末(以降、「端末」と表す)のアプリケーションからデバイスを利用するためには、端末内に利用するデバイスに対応したドライバを実装する必要がある。ドライバはデバイスを直接制御するための関数群を含み、アプリケーションはドライバに含まれる関数群を呼び出すことで、ドライバに対応したデバイスを利用する。このように、アプリケーションの開発者は、ドライバの関数群を経由してデバイスを利用することで、デバイスの詳細な制御手順はドライバの関数群に任せた上で、デバイスを利用することができる。従って、アプリケーションの開発者は、ドライバの関数群に相当するコードを自作する場合に比べて、アプリケーションの開発時間を短縮することができる。
 ドライバは、アプリケーションとは独立に例えばデバイスの開発元等から供給される。従って、ドライバは、アプリケーションと異なるタイミングで端末内にインストールすることが可能となる。また、アプリケーションに、予め規定されたドライバの関数群を利用してデバイスを制御するためのコード、すなわちロジックを記述すれば、複数のアプリケーションで同じデバイスが利用可能となる。
 図25は、複数のアプリケーションで同じドライバを使用する状況を表した図である。図25に示すように、アプリケーションAで使用するドライバは、アプリケーションAと分離した形態で存在するため、アプリケーションBでも使用することが可能となる。従って、アプリケーションA及びアプリケーションBに、ドライバを利用するロジックを記述しておくことで、ドライバに対応したデバイスを共有することができる。
 図26は、アプリケーションにおけるロジックの一例を示す図である。アプリケーションは図26に示すように、例えばHTML(Hyper Text Markup Language)等のマークアップ言語で記述される。なお、図26に示すアプリケーションの記述言語は一例である。アプリケーションの記述言語は、例えばXML等のメタ言語、又はスクリプト言語等、アプリケーションの記述内容に従ってアプリケーションを実行する実行部(例えばブラウザ等)で解釈可能な言語であれば如何なる言語であってもよい。
 図26の例では、“<input ・・・>”で表されるinputタグに相当する行がロジックに相当する。例えばユーザが端末の画面に表示される「画像を印刷」と表記されたボタンを押すことで、ドライバのpicprint関数が呼び出され、“www.foo.com/pic1.jpg”で表される画像ファイルの画像がpicprint関数を含むドライバに対応したプリンタから出力される。
 このように、例えばアプリケーションからプリンタを利用するには、アプリケーションにプリンタから画像を出力するためのロジックが予め含まれている必要がある。しかし、アプリケーションの中には、例えば端末の画面に画像を表示するだけで、プリンタ等のデバイスの利用を当初から想定していないアプリケーションも存在する。デバイスの利用を想定していないアプリケーションでデバイスを利用するためには、アプリケーションのコードを改修して、アプリケーションにデバイスに対応したロジックを追加する必要がある。しかし、アプリケーションに精通していない端末のユーザが、アプリケーションにデバイスに対応したロジックを追加するのは通常困難である。
 以下では、アプリケーションにロジックが含まれない場合であっても、アプリケーションを改修することなくアプリケーションからデバイスが利用できるように、アプリケーションの機能を拡張する例について説明する。
 図1は、第1実施形態に係るWebシステム1の構成例を示す図である。
 図1に示すように、Webシステム1は、例えば端末10、クラウドサーバ30、デバイス40、及び通信回線50を含む。端末10及びクラウドサーバ30は、例えばインターネット回線である通信回線50に接続され、通信回線50を経由してデータの送受信を行う。また、端末10及びデバイス40も接続され、端末10及びデバイス40の間でデータの送受信を行う。
 なお、通信回線50の種類に制限はなく、例えばインターネット回線の他、イントラネット回線、又は専用線等のような回線であってもよく、更に、有線、無線、又は有線と無線との混在の何れの接続形態であってもよい。また、端末10及びデバイス40を接続する接続形態も、有線、無線、又は有線と無線との混在の何れの接続形態であってもよい。
 端末10は、例えば実行部11、検知部12、決定部13、取得部14、特定部15、及び挿入部16の各機能部を含む。また、端末10は、例えば対応デバイスDB(Database)20、デバイス制御ロジックリストDB22、及びドライバDBの各DBと、例えばクラウドサーバ30のように通信回線50に接続されるサーバから取得したアプリケーション17と、を含む。
 実行部11は、アプリケーション17のコードをメモリ104に展開して、メモリ104に展開されたアプリケーション17を1行ずつ読み込み、読み込んだ行の記述内容を解釈しながらアプリケーション17を実行する。なお、実行部11は、アプリケーション17を実行する際、検知部12を呼び出す。
 検知部12は、実行部11から呼び出されると端末10に接続可能なデバイス40を検知すると共に、対応デバイスDB20を参照して、検知したデバイス40が端末10に対応しているか、すなわち検知したデバイス40が端末10で利用可能か否かを検知する。
 図2は、対応デバイスDB20におけるデータ構造の一例を示す図である。対応デバイスDB20は、例えば端末10に対応したデバイス名が記載された情報(対応デバイス情報)を含む。検知部12は、検知したデバイス40のデバイス名が対応デバイス情報に含まれていれば、端末10に対応するデバイス40を検知したと判定する。なお、対応デバイス情報に含まれるデバイス名に重複はなく、デバイス名から一意にデバイス40を特定することができる。
 検知部12は、端末10に対応するデバイス40を検知した場合、検知したデバイス40のデバイス名を決定部13に出力する。
 決定部13は、デバイス制御ロジックリストDB22を参照して、検知部12から受け付けたデバイス名に対応するデバイス制御ロジック34が既に端末10内に存在するか否かを判定する。
 ここで、デバイス制御ロジック34とは、デバイス40を制御するためのコード、すなわちロジックと、アプリケーション17におけるロジックの挿入位置を示すタグと、を対応づけた情報(ロジック対応情報)を含む情報である。
 図3に、デバイス制御ロジック34の一例を示す。図3に示すデバイス制御ロジック34は、ドライバ32の関数群を呼び出してアプリケーション17からデバイス40を利用するためのロジックと、タグと、を行方向に対応づける。
 なお、図3に示すデバイス制御ロジック34において、‘X’及び‘Y’の記号は、デバイス40への出力対象となるリソースのファイル名を表す。また、図3に示すデバイス制御ロジック34には2つのロジック対応情報が含まれているが、デバイス制御ロジック34に含まれるロジック対応情報の数に制限はない。また、図3に示すデバイス制御ロジック34のロジックはHTML言語で記述されているが他の言語でもよく、ロジックを記述したファイルのURL(Uniform Resource Locator)を指定する情報であってもよい。
 図4は、デバイス制御ロジックリストDB22のデータ構造の一例を示す図である。デバイス制御ロジックリストDB22は、例えばデバイス名と、デバイス名に対応するデバイス制御ロジック34と、を対応付ける。決定部13は、デバイス制御ロジックリストDB22のデバイス名欄に検知部12から入力されたデバイス名が含まれる場合、検知部12から入力されたデバイス名に対応するデバイス制御ロジック34が端末10内に存在すると判定する。そして、決定部13は、検知部12から入力されたデバイス名を特定部15に出力する。
 一方、検知部12から入力されたデバイス名に対応するデバイス制御ロジック34が端末10内に存在しない場合、決定部13は、検知部12から入力されたデバイス名を取得部14に出力する。
 取得部14は、決定部13から入力されたデバイス名に対応したドライバ32及びデバイス制御ロジック34を取得する。一例としてドライバ32及びデバイス制御ロジック34は、デバイス名毎にクラウドサーバ30に予め用意され、取得部14は、デバイス名に対応したドライバ32及びデバイス制御ロジック34をクラウドサーバ30から取得する。
 取得部14は、取得したデバイス制御ロジック34をデバイス名と対応づけ、デバイス制御ロジックリストDB22に格納する。更に、取得部14は、取得したドライバ32をドライバDB24に格納すると共に、デバイス名とドライバ32を対応づける情報(ドライバ対応情報)をドライバDB24に格納する。
 図5は、ドライバDB24のデータ構造の一例を示す図である。ドライバDB24ではデバイス名とドライバ32とが行方向に対応づけられ、例えば図5に示す例では、デバイス名“dev1”に対応するドライバは“dev1.drv”であることを示している。
 取得部14は、決定部13から入力されたデバイス名に対応したドライバ32及びデバイス制御ロジック34を取得した後、例えば取得終了を知らせる通知を決定部13に出力する。
 決定部13は、取得部14から通知を受け付けると、検知部12から入力されたデバイス名を特定部15に出力する。
 特定部15は、デバイス制御ロジックリストDB22を参照して、決定部13から入力されたデバイス名に対応したデバイス制御ロジック34を取得する。そして、特定部15は、メモリ104に展開されたアプリケーション17のコードを読み込み、アプリケーション17にデバイス制御ロジック34のタグと同じコードが含まれるか否かを判定する。
 アプリケーション17にデバイス制御ロジック34のタグと同じコードが含まれる場合は、特定部15はアプリケーション17におけるタグと同じコードが含まれる行の行番号を特定する。この際、特定部15は、ドライバ対応情報を参照して、決定部13から入力されたデバイス名に対応したドライバ32をドライバDB24から取得してメモリ104に展開することで、取得したドライバ32をアプリケーション17から利用可能にする。
 そして、特定部15は、特定した行番号及び決定部13から入力されたデバイス名に対応したデバイス制御ロジック34のロジックを挿入部16に出力する。
 挿入部16は、メモリ104に展開されたアプリケーション17に対して、特定部15から受け付けたロジックを、特定部15から受け付けた行番号の次の行に挿入する。アプリケーション17へのロジック挿入後、挿入部16はアプリケーションの再読み込みを指示する通知を実行部11に出力する。
 実行部11は、挿入部16から通知を受け付けると、メモリ104に展開されたロジック挿入後のアプリケーション17を再読み込みし、アプリケーション17を実行する。
 一方、クラウドサーバ30は、デバイス名に対応するドライバ32及びデバイス制御ロジック34を含む。クラウドサーバ30は、ドライバ32及びデバイス制御ロジック34をデバイス名と紐付けて管理し、端末10からデバイス名を受信した際、受信したデバイス名に対応するドライバ32及びデバイス制御ロジック34を端末10に送信する。
 次に、図6に、端末10をコンピュータで実現する場合の構成図を示す。
 コンピュータ100は、CPU102、メモリ104、及び不揮発性の記憶部106を含む。CPU102、メモリ104、及び不揮発性の記憶部106は、バス108を介して互いに接続されている。また、コンピュータ100は、他の装置とコンピュータ100とを接続し、互いにデータを送受信するためのI/O(Input/Output)110を備え、I/O110はバス108に接続されている。また、I/O110には、例えば入力装置112、表示装置114、及び通信装置116が接続されている。
 入力装置112は、例えば表示装置114の表示画面上に設置されたタッチパネル等の、ユーザがコンピュータ100に指示を与えるためのインターフェース装置を含む。また、入力装置112は、例えばCD-ROM又はフラッシュメモリ等の、記録媒体160に記録されるデータを読み取るための読み取り装置を含む。表示装置114は、例えばコンピュータ100での処理結果を表示する表示デバイス等を含む。また、通信装置116は、デバイス40、及び通信回線50に接続するためのインターフェースを含み、デバイス40、及びクラウドサーバ30等の、他の電子機器とデータの送受信を行う。なお、記憶部106はHDD(Hard Disk Drive)又はフラッシュメモリ等によって実現できる。
 記憶部106には、コンピュータ100を図1に示す端末10として機能させるためのアプリケーション機能拡張プログラム118が記憶されている。記憶部106に記憶されているアプリケーション機能拡張プログラム118は、例えば検知プロセス120、決定プロセス122、取得プロセス124、特定プロセス126、挿入プロセス128、及び実行プロセス130を含む。
 CPU102は、アプリケーション機能拡張プログラム118を記憶部106から読み出してメモリ104に展開し、アプリケーション機能拡張プログラム118が有する各プロセスを実行する。
 CPU102が、アプリケーション機能拡張プログラム118を記憶部106から読み出してメモリ104に展開し、アプリケーション機能拡張プログラム118を実行することで、コンピュータ100が図1に示す端末10として動作する。また、CPU102が検知プロセス120を実行することで、コンピュータ100が図1に示す検知部12として動作する。また、CPU102が決定プロセス122を実行することで、コンピュータ100が図1に示す決定部13として動作する。また、CPU102が取得プロセス124を実行することで、コンピュータ100が図1に示す取得部14として動作する。また、CPU102が特定プロセス126を実行することで、コンピュータ100が図1に示す特定部15として動作する。また、CPU102が挿入プロセス128を実行することで、コンピュータ100が図1に示す挿入部16として動作する。また、CPU102が実行プロセス130を実行することで、コンピュータ100が図1に示す実行部11として動作する。
 更に、記憶部106には、デバイス制御ロジックリスト情報格納領域134、対応デバイス情報格納領域136、ドライバ情報格納領域138、及びアプリケーション情報格納領域140が記憶されている。
 CPU102が、デバイス制御ロジックリスト情報格納領域134に格納されたロジック対応情報を生成する情報をメモリ104に展開することで、メモリ104にデバイス制御ロジックリストDB22が生成される。また、CPU102が、対応デバイス情報格納領域136に格納された対応デバイス情報を生成する情報をメモリ104に展開することで、メモリ104に対応デバイスDB20が生成される。また、CPU102が、ドライバ情報格納領域138に格納されたドライバ32及びドライバ対応情報を生成する情報をメモリ104に展開することで、メモリ104にドライバDB24が生成される。また、CPU102が、アプリケーション情報格納領域140に格納されたアプリケーション17を生成する情報をメモリ104に展開することで、アプリケーション17がCPU102で実行可能な状態となる。
 なお、コンピュータ100は、例えば半導体集積回路、より詳しくはASIC(Application Specific Integrated Circuit)等で実現することも可能である。
 次に、第1実施形態の作用について説明する。第1実施形態に係る端末10は、例えば端末10の利用者が、入力装置112で指定したアプリケーション17の実行を端末10に指示し、指定したアプリケーション17がメモリ104に展開されて実行される際に、アプリケーション機能拡張処理を実行する。
 図7は、第1実施形態に係る端末10で実行されるアプリケーション機能拡張処理の流れの一例を示すフローチャートである。
 まず、ステップS10において、検知部12は、通信装置116を介して端末10に接続可能なデバイス40を検知する。通信装置116を介して端末10に接続可能なデバイス40を検知する手法には公知の技術を利用することができる。
 例えば、通信装置116に無線LANが含まれる場合、検知部12は、端末10を無線アクセスポイントに接続し、無線アクセスポイントに接続されているデバイス40の情報をスキャンすることで、端末10に接続可能なデバイス40のデバイス名を取得する。なお、検知部12は、デバイス40の情報をスキャンする際、例えばUPnP(Universal Plug and Play)、又はDLNA(登録商標)等の公知の接続プロトコルを利用して、端末10に接続可能なデバイス名を取得できる。また、デバイス名の替わりに、SSID等、デバイス40を識別することができる識別情報を取得し、SSIDからデバイス名を特定するようにしてもよい。
 また、通信装置116にブルートゥース(Bluetooth(登録商標))が含まれる場合、ブルートゥースのペアリングモードを利用して、端末10に接続可能なデバイス名を取得する。この他、検知部12は、NFC(Near Field Communication)等の近距離無線通信、又はRFID(Radio Frequency IDentifier)を利用して、端末10に接続可能なデバイス名を取得するようにしてもよい。なお、ここでは説明の便宜上、検知部12は公知のデバイス検知手法により、端末10に接続可能なデバイス40のデバイス名を1つ取得するものとして説明を進める。
 ステップS20において、検知部12は、ステップS10の処理で取得したデバイス名で表されるデバイス40が、端末10で利用可能か否かを判定する。具体的には、検知部12は、メモリ104に展開された対応デバイスDB20に記憶されている対応デバイス情報にステップS10の処理で取得したデバイス名が含まれる場合、ステップS10の処理で検知したデバイスが端末10で利用可能と判定する。一方、検知部12は、対応デバイス情報にステップS10の処理で取得したデバイス名が含まれない場合、ステップS10の処理で検知したデバイス40が端末10で利用できないと判定する。
 ステップS20における判定処理が否定判定の場合には、端末10で利用可能なデバイス40が存在しないため、アプリケーション機能拡張処理を終了し、端末10はデバイス40と連携することなくユーザが指定したアプリケーション17を実行する。一方、ステップS20における判定処理が肯定判定の場合には、ステップS30に移行する。この際、検知部12は、ステップS10の処理で取得したデバイス名をメモリ104の予め定めた領域に記憶する。
 ステップS30において、決定部13は、メモリ104からステップS10の処理で取得されたデバイス名を取得する。そして、決定部13は、図4に示したデバイス制御ロジックリストDB22を参照して、デバイス制御ロジックリストDB22のデバイス名欄に、取得したデバイス名が含まれるか否かを判定する。
 肯定判定の場合には、端末10は、取得したデバイス名に対応したドライバ32及びデバイス制御ロジック34を既に取得しているため、ステップS50に移行する。一方、否定判定の場合には、端末10には取得したデバイス名に対応したドライバ32及びデバイス制御ロジック34が存在しないため、ステップS40に移行する。
 ステップS40において、取得部14は、メモリ104からステップS10の処理で取得されたデバイス名を取得する。そして、取得部14は、取得したデバイス名をクラウドサーバ30に送信し、送信したデバイス名に対応するドライバ32及びデバイス制御ロジック34を、クラウドサーバ30から取得する。
 なお、第1実施形態では、ドライバ32及びデバイス制御ロジック34が、インターネット回線等の通信回線50に接続されたクラウドサーバ30に配置される例について説明する。しかし、ドライバ32及びデバイス制御ロジック34は、インターネット回線に接続されないサーバ(ローカルサーバ)、又はデバイス40自体に配置してもよい。
 クラウドサーバ30にドライバ32及びデバイス制御ロジック34を配置した場合、インターネット回線に接続可能な端末10であれば、何れの端末10からもアクセス可能となる。従って、クラウドサーバ30以外の他の情報機器にドライバ32及びデバイス制御ロジック34を配置する場合に比べ、ドライバ32及びデバイス制御ロジック34の公開性が向上する。
 また、ローカルサーバにドライバ32及びデバイス制御ロジック34を配置した場合、ドライバ32及びデバイス制御ロジック34へのアクセス許可範囲を、ローカルサーバが接続されるローカルネットワーク内の端末10に限定できる。従って、ローカルサーバ以外の他の情報機器にドライバ32及びデバイス制御ロジック34を配置する場合に比べ、ドライバ32及びデバイス制御ロジック34の秘匿性が向上する。
 また、デバイス40にドライバ32及びデバイス制御ロジック34を配置した場合、クラウドサーバ30又はローカルサーバが不要となる。従って、デバイス40以外の他の情報機器にドライバ32及びデバイス制御ロジック34を配置する場合に比べ、ドライバ32及びデバイス制御ロジック34の取得に必要となる情報機器数を削減することができる。
 取得部14は、取得したデバイス制御ロジック34を取得したデバイス名と対応づけ、デバイス制御ロジックリストDB22に格納する。更に、取得部14は、取得したドライバ32をドライバDB24に格納すると共に、取得したドライバ32をデバイス名と対応づけて、図5に示したドライバDB24のドライバ対応情報に追加する。
 ステップS50において、特定部15は、メモリ104からステップS10の処理で取得されたデバイス名を取得する。そして、特定部15は、デバイス制御ロジックリストDB22を参照して、デバイス制御ロジックリストDB22のデバイス名欄に、取得したデバイス名が設定されている行データから、取得したデバイス名に対応するデバイス制御ロジック34を取得する。
 ステップS60において、特定部15は、メモリ104に展開されたアプリケーション17へのロジックの挿入位置を特定する。具体的には、特定部15は、メモリ104に展開されたアプリケーション17のコードを読み込み、アプリケーション17における、取得したデバイス制御ロジック34のタグと同じコードが含まれる行の行番号を、ロジックの挿入位置として特定する。なお、アプリケーション17に、取得したデバイス制御ロジック34のタグと同じコードが複数含まれる場合、特定部15は、各々のコードが含まれる行の行番号をロジックの挿入位置として特定する。
 ステップS70において、特定部15は、ステップS60の処理で特定したロジックの挿入位置が少なくとも1つ以上あるか否かを判定する。否定判定の場合、メモリ104に展開されたアプリケーション17には、ステップS50の処理で取得したデバイス制御ロジック34に含まれるロジックを挿入する位置が存在しない。従って、アプリケーション機能拡張処理を終了し、端末10はデバイス40と連携することなくユーザが指定したアプリケーション17を実行する。
 一方、肯定判定の場合、ステップS80に移行する。この際、特定部15は、ステップS50の処理で取得したデバイス制御ロジック34に含まれるロジックと、ステップS60の処理で取得したアプリケーション17の行番号と、をメモリ104の予め定めた領域に記憶する。また、特定部15は、ドライバDB24のドライバ対応情報を参照して、取得したデバイス名に対応するドライバ32をドライバDB24から取得してメモリ104に展開することで、取得したドライバ32をアプリケーション17から利用可能にする。なお、メモリ104へのドライバの展開タイミングは、ステップS70を処理するタイミングに限定されないことは言うまでもない。
 ステップS80において、挿入部16は、メモリ104からステップS70の判定処理で肯定判定となった場合に記憶された、ロジック及びアプリケーション17の行番号を取得する。そして、挿入部16は、メモリ104に展開されたアプリケーション17の、取得した行番号で表される行以降の位置に、取得したロジックを挿入する。なお、実行中のアプリケーション17へのロジックの挿入は、例えばメモリ104に展開されたアプリケーション17にアクセスすることができるAPI(Application Programming Interface)であるDOM(Document Object Model)を利用することで実現できる。
 ステップS90において、実行部11はメモリ104から、ステップS80の処理でロジックが挿入されたアプリケーション17を再読み込みし、アプリケーション17を実行する。
 以上、図7に示すアプリケーション機能拡張処理により、実行中のアプリケーション17に、端末10が検知したデバイス40のロジックがユーザの操作なしに自動的に挿入され、アプリケーション17からデバイス40の利用が可能となる。
 なお、第1実施形態では一例として、デバイス40に対応したロジック及びタグをデバイス制御ロジック34に含めて一体に管理したが、ロジックとタグとの対応づけが行われさえすれば、ロジックとタグとを別々に管理するようにしてもよい。例えばデバイス制御ロジック34にロジックを含め、ロジックに対応するタグは図示しないDBで管理するようにしてもよい。
 また、第1実施形態では一例として、ステップS10の処理において、端末10に接続可能なデバイス40のデバイス名が1つ取得されるものとして説明を進めた。仮にステップS10の処理において複数のデバイス名が取得される場合には、取得した複数のデバイス名に含まれるデバイス名毎にステップS20~S90の処理を実行すればよい。
 また、第1実施形態では一例として、ステップS10の処理において、端末10のユーザが指定したアプリケーション17がメモリ104に展開されて実行される際に、端末10に接続可能なデバイス40を検知するようにした。しかし、端末10の起動後から定期的に端末10に接続可能なデバイス40を検知するようにしてもよい。この場合、アプリケーション17の実行前にデバイス40の検知が終了しているため、アプリケーション17を実行してからデバイス40を検知する場合に比べて、アプリケーション17からデバイス40が利用可能になるまでに要する時間を短縮することができる。
 しかし、定期的に端末10に接続可能なデバイス40を検知する場合、デバイス40の検知回数が増加するため、アプリケーション17の実行に合わせてデバイス40を検知する場合と比較して、端末10の消費電力が増加する。従って、端末10の消費電力低減の観点からは、アプリケーション17の実行に合わせてデバイス40を検知する方が好ましい。
 また、第1実施形態では一例として、クラウドサーバ30から取得したデバイス制御ロジック34を端末10に保存し、検知したデバイス40に対応するデバイス制御ロジックが端末10に存在する場合は、端末10に保存したデバイス制御ロジック34を用いた。しかし、デバイス制御ロジック34を端末10に保存せずに、端末10でデバイスを検知する度にクラウドサーバ30からデバイス制御ロジック34を取得するようにしてもよい。
 図8は、メモリ104に展開された、画像を表示するアプリケーション17に、端末10が検知したデバイス40のロジックが挿入される前の端末10を示す図である。なお、図8に例示するアプリケーション17は、“<img src=“URL”>”で表されるimgタグを含む。imgタグは、「src=“URL”」で指定される画像ファイルの画像を端末10の表示装置114に表示する命令である。
 端末10が図8に例示するアプリケーション17を実行した場合、端末10の表示装置114に「src=“URL”」で指定される画像ファイルの画像が表示される。しかし、図8に例示するアプリケーション17には、デバイス40の一例であるプリンタと連携して、画像をプリンタに出力するロジックが含まれていない。
 一方、図7に示すアプリケーション機能拡張処理を実行することで、例えば端末10が利用可能なデバイス40としてプリンタを検知する。検知したプリンタに対応するデバイス制御ロジック34のタグにimgタグが含まれる場合、端末10は画像をプリンタに出力するロジックをアプリケーション17のimgタグの直後の行に挿入する。
 図9は、図7に示すアプリケーション機能拡張処理を実行し、メモリ104に展開された図8に示すアプリケーション17に、端末10が検知したデバイス40(この場合、プリンタ)のロジックが挿入された後の端末10を示す図である。
 なお、図9に例示したアプリケーション17に挿入されるロジックは、例えば「画像を印刷」と表記されたボタン60を端末10の表示装置114に表示する命令を含む。端末10のユーザがボタン60を押した場合に、検知したプリンタに対応するドライバ32に含まれるphotoprint関数が呼び出され、imgタグで“URL”として指定された画像ファイルの画像がデバイス40から出力される。
 また、図10は、メモリ104に展開された、音を出力するアプリケーション17に端末10が検知したデバイス40のロジックが挿入される前の端末10を示す図である。なお、図10に例示するアプリケーション17は、“<audio src=“URL”controls>”で表されるaudioタグを含む。audioタグは、「src=“URL”」で指定される音声ファイルの音声を端末10に内蔵された図示しない音声出力装置から出力する命令である。また、audioタグの“controls”は、端末10の表示装置114に音声の一時停止、及び再生位置の指定等を行うための操作アイテム62を表示する命令である。
 端末10が図10に例示するアプリケーション17を実行した場合、端末10の表示装置114に操作アイテム62が表示されると共に、端末10に内蔵された図示しない音声出力装置から「src=“URL”」で指定される音声ファイルの音声が出力される。しかし、図10に例示するアプリケーション17には、デバイス40の一例である外部スピーカと連携して、音声を外部スピーカから出力するロジックが含まれていない。
 一方、図7に示すアプリケーション機能拡張処理を実行することで、例えば端末10が利用可能なデバイス40として外部スピーカを検知する。検知した外部スピーカに対応するデバイス制御ロジック34のタグにaudioタグが含まれる場合、端末10は音声を外部スピーカに出力するロジックをアプリケーション17のaudioタグの直後の行に挿入する。
 図11は、図7に示すアプリケーション機能拡張処理を実行し、メモリ104に展開された図10に示すアプリケーション17に、端末10が検知したデバイス40(この場合、外部スピーカ)のロジックが挿入された後の端末10を示す図である。
 なお、図11に例示したアプリケーション17に挿入されるロジックは、例えば「スピーカで再生」と表記されたボタン60を端末10の表示装置114に表示する命令を含む。端末10のユーザがボタン60を押した場合に、検知した外部スピーカに対応するドライバ32に含まれるaplay関数が呼び出され、audioタグで“URL”として指定された音声ファイルの音声がデバイス40である外部スピーカから出力される。
 また、図12は、メモリ104に展開された、動画を表示するアプリケーション17に端末10が検知したデバイス40のロジックが挿入される前の端末10を示す図である。なお、図12に例示するアプリケーション17は、“<video src=“URL”controls>”で表されるvideoタグを含む。videoタグは、「src=“URL”」で指定される動画ファイルに含まれる音声を端末10に内蔵された図示しない音声出力装置から出力すると共に、動画ファイルに含まれる画像を端末10の表示装置114に表示する命令である。また、videoタグの“controls”は、既に述べたように動画の一時停止、及び再生位置の指定等を行うための操作アイテム62を表示する命令である。
 端末10が図12に例示するアプリケーション17を実行した場合、端末10の表示装置114には、「src=“URL”」で指定される動画ファイルの映像、及び操作アイテム62が表示される。また、端末10に内蔵された図示しない音声出力装置から「src=“URL”」で指定される動画ファイルの音声が出力される。
 しかし、図12に例示するアプリケーション17には、デバイス40の一例である外部モニタと連携して、動画を外部モニタから出力するロジックが含まれていない。
 一方、図7に示すアプリケーション機能拡張処理を実行することで、例えば端末10が利用可能なデバイス40として外部モニタを検知する。検知した外部モニタに対応するデバイス制御ロジック34のタグにvideoタグが含まれる場合、端末10は動画を外部モニタに出力するロジックをアプリケーション17のvideoタグの直後の行に挿入する。
 図13は、図7に示すアプリケーション機能拡張処理を実行し、メモリ104に展開された図12に示すアプリケーション17に、端末10が検知したデバイス40(この場合、外部モニタ)のロジックが挿入された後の端末10を示す図である。
 なお、図13に例示したアプリケーション17に挿入されるロジックは、例えば「モニタで再生」と表記されたボタン60を端末10の表示装置114に表示する命令を含む。端末10のユーザがボタン60を押した場合に、検知した外部モニタに対応するドライバ32に含まれるvplay関数が呼び出され、videoタグで“URL”として指定された動画ファイルの動画がデバイス40である外部モニタから出力される。
 なお、図9、図11、及び図13に示したアプリケーション17とデバイス40との連携例では、アプリケーション17は表示装置114に、アプリケーション17とデバイス40との連携開始の指示を受け付けるボタン60を表示する。そして、アプリケーション17は、端末10のユーザによりボタン60が押下されたタイミングで、アプリケーション17とデバイス40との連携を開始する。しかし、ボタン60の表示は必須ではなく、例えばアプリケーション17は、端末10のユーザの指示を待たずに自動的にアプリケーション17とデバイス40との連携を開始してもよい。
 このように、図7に示すアプリケーション機能拡張処理では、検知部12で検知した端末10で利用可能なデバイス40のロジックを自動的にアプリケーション17に挿入され、アプリケーション17がプリンタ等のデバイス40と連携できるようになる。
 しかし、アプリケーション17の中には、例えば機密情報を扱うアプリケーション17もある。こうした機密情報を扱うアプリケーション17では、機密情報を外部に持ち出せないようにするため、例えばアプリケーション17から機密情報をプリンタに出力させたくないといった事情が存在することがある。
 この場合、例えば図3に示したデバイス制御ロジック34の替わりに、図14に示すデバイス制御ロジック34Aを用いることで解決することができる。
 デバイス制御ロジック34Aは、デバイス40に対応したロジックとタグの他、更にデバイス40に対応したアプリケーション17のアプリケーション名を対応づけるロジック対応情報を含む。デバイス制御ロジック34Aのアプリケーション名には、対応するロジックの挿入を許可するアプリケーション名が記載される。
 図7のステップS60の処理において、特定部15は、まず取得したデバイス制御ロジック34Aのアプリケーション名が、実行部11で実行中のアプリケーション17のアプリケーション名と一致するか否を判定する。そして、肯定判定の場合には、特定部15は引き続き既に説明したステップS60の処理を続行する。一方、否定判定の場合には、特定部15は、ロジックの挿入位置を特定せずに図7に示すアプリケーション機能拡張処理を終了する。
 以上の処理により、デバイス制御ロジック34Aのアプリケーション名欄に記載されたアプリケーション17だけに、デバイス制御ロジック34Aに対応するデバイス40のロジックが挿入される。従って、端末10は、連携可能なデバイス40をアプリケーション17毎に指定することができる。
 なお、図14に示すデバイス制御ロジック34Aのアプリケーション名には、対応するロジックの挿入を禁止するアプリケーション名を記載してもよい。この場合、取得したデバイス制御ロジック34Aのアプリケーション名が実行中のアプリケーション17のアプリケーション名と一致すれば、特定部15でロジックの挿入位置を特定することなく、図7に示すアプリケーション機能拡張処理を終了すればよい。
 また、アプリケーション17は、例えば通信回線50に接続された情報機器から端末10にダウンロードされ実行される。この際、アプリケーション17の取得元である情報機器のドメインと、取得したアプリケーション17に挿入されるロジックを規定したデバイス制御ロジック34を含むクラウドサーバ30のドメインと、が異なる場合がある。なお、ドメインとは、情報機器を識別するため、互いに重複しないように割り当てられた通信回線50上のアドレス情報である。
 この場合、互いに異なるドメインから取得したアプリケーション17に、デバイス制御ロジック34のロジックを挿入することになる。しかし、アプリケーション17の取得元である情報機器のドメインと異なるドメインからデバイス制御ロジック34を取得する動作は、所謂クロスサイトリクエストと言われ、実行部11において禁止されることがある。なぜなら、アプリケーション17とデバイス制御ロジック34との取得元のドメインが異なるということは、アプリケーション17とデバイス制御ロジック34との管理者が異なる可能性がある。従って、アプリケーション17の管理者以外が提供するデバイス制御ロジック34には、不正サイトへの誘導等、悪意のあるロジックが記載されている可能性があるため、セキュリティの観点から、実行部11はデバイス制御ロジック34の取得を禁止する。
 図15は、クロスサイトリクエストの例を示す図である。図15に示すように、端末10は、例えば“www.server1.com”のドメインで表されるWebサーバ31からアプリケーション17を取得する。そして、端末10で図7に示したアプリケーション機能拡張処理を実行し、例えば“www.server2.com”のドメインで表されるクラウドサーバ30からデバイス制御ロジック34を取得しようとする。しかし、既に説明したようにセキュリティの観点から、実行部11がデバイス制御ロジック34の取得を拒否する場合がある。
 こうしたクロスサイトリクエストを回避するための仕組みとして、例えばCORS(Cross Origin Resource Sharing)が知られている。このため、例えば端末10及びクラウドサーバ30をCORSに対応させることで、クラウドサーバ30からデバイス制御ロジック34を取得することができるようになる。
 図16は、CORSを適用したクロスサイトリクエストの例を示す図である。取得部14は、アプリケーション17の取得元と異なるドメインからデバイス制御ロジック34を取得する際、アプリケーション17の取得元のドメイン(www.server1.com)をoriginヘッダに付加してクラウドサーバ30に送信する。一方、クラウドサーバ30は、デバイス制御ロジック34を含む電文のAccess-Control-Allow-Originヘッダに、originヘッダに付加されたアプリケーション17の取得元のドメインを付加する。そして、クラウドサーバ30は、Access-Control-Allow-Originヘッダが設定されたデバイス制御ロジック34を含む電文を端末10に送信する。端末10では、Access-Control-Allow-Originヘッダに、originヘッダに付加したドメインと同じドメインが含まれる場合、実行部11により取得部14でのデバイス制御ロジックの取得が許可される。
 以上、端末10でアプリケーション17を実行する際、併せて図7に示したアプリケーション機能拡張処理を実行することにより、デバイス40との連携が考慮されていないアプリケーション17に、デバイス40に対応するロジックを挿入することができる。従って、デバイス40との連携が考慮されていないアプリケーション17であっても、デバイス40を利用することができるようになる。
 更に、アプリケーション機能拡張処理は、メモリ104に展開されたアプリケーション17にロジックを挿入するため、記憶部106に記憶されるアプリケーション17自体のコードが書き換えられることもない。
(第2実施形態)
 第1実施形態に係るアプリケーション機能拡張処理は、端末10が検出したアプリケーション17と連携可能なデバイス40のロジックを、ユーザの操作なしに自動的にアプリケーション17に挿入する。従って、ユーザが予め利用したいデバイス40を決めている場合であっても、アプリケーション17と連携可能な全てのデバイス40のロジックがアプリケーション17に挿入されてしまい、アプリケーション17が不必要なデバイス40と連携する場合がある。
 そこで、第2実施形態では、ユーザが利用したいデバイス40を選択し、アプリケーション17が、ユーザが選択したデバイス40と連携するようにしたアプリケーション機能拡張処理について説明する。なお、第2実施形態におけるWebシステムの構成、及び端末10を実現するコンピュータ構成は、第1実施形態におけるWebシステム1の構成(図1)、及びコンピュータ構成(図6)と同様の構成となる。
 次に、第2実施形態の作用について説明する。第2実施形態に係る端末10は、第1実施形態の場合と同様のタイミングでアプリケーション機能拡張処理を実行する。
 図17は、第2実施形態に係る端末10で実行されるアプリケーション機能拡張処理の流れの一例を示すフローチャートである。図17に示すフローチャートが図7に示す第1実施形態におけるアプリケーション機能拡張処理のフローチャートと異なる点は、ステップS22及びステップS24の処理が追加された点である。
 ステップS22において、検知部12は、ステップS20の判定処理によって端末10で利用可能と判定したデバイス40に対応付けられたアイコンを表示装置114に表示する。
 ステップS24において、検知部12は、端末10のユーザによってアイコンが選択されたか否か判定し、肯定判定になるまで、すなわちアイコンが選択されるまでステップS24の処理を繰り返す。端末10のユーザによってアイコンが選択されると、検知部12は、端末10のユーザによって選択されたアイコンに対応するデバイス40のデバイス名を、メモリ104の予め定めた領域に記憶する。そして、ステップS30に移行する。
 以後、既に説明したステップS30~ステップS90の処理を実行することで、アプリケーション17からユーザが選択したデバイス40のみを利用することができるようになる。
 図18は、ステップS22の処理を実行した場合に、端末10の表示装置114に表示される画面例を示す図である。ステップS22の処理により、例えば表示装置114の下部に位置する領域64に、端末10で利用可能なデバイス40に対応するアイコンが表示される。
 アイコンには、例えば対応するデバイス40の外観等を模式的に示す図案が用いられるが、対応するデバイス40を一意に表すことができる形態であれば、文字、又は図案と文字との組み合わせ等であってもよい。なお、図18の例では、例えばプリンタを示すアイコン66、及び記憶装置を示すアイコン68が表示されている。また、領域64の位置は一例であり、表示装置114の何れの位置に配置してもよいことは言うまでもない。
 ユーザが領域64に表示されるアイコンの中から、例えばアイコン66を選択すれば、実行中のアプリケーション17とアイコン66で示されるプリンタとを連携させることができる。
 図19は、アイコン66選択後に、端末10の表示装置114に表示される画面例を示す図である。
 例えば、アイコン66で表されるプリンタに対応するデバイス制御ロジック34のロジックにボタン60を表示する命令が含まれる場合、領域64にはプリンタに画像の出力を指示するボタン60が表示される。この際、図19に示すように、ボタン60に加え、更にユーザが選択したアイコン(この場合、アイコン66)を表示してもよい。ユーザが選択したアイコンを表示することで、アイコンを表示しない場合に比べて、アプリケーション17が何れのデバイス40と連携しているかをユーザに通知することができる。
 このように第2実施形態に係るアプリケーション機能拡張処理によれば、端末10で利用可能なデバイス40の一覧を示すユーザインターフェースを提供し、ユーザに利用したいデバイス40を選択させることができる。
(第3実施形態)
 第1実施形態及び第2実施形態に係る図7及び図17のアプリケーション機能拡張処理では、ステップS10において通信装置116を用いた公知の技術により、端末10に接続可能なデバイス40を検知する例を説明した。一方、第3実施形態では、カメラ等の撮像装置を用いて、端末10に接続可能なデバイス40を検知する例について説明する。
 図20は、第3実施形態に係るWebシステムの構成例を示す図である。図20に示すWebシステム2が図1に示したWebシステム1と異なる点は、新たに撮像装置150が追加され、検知部12が検知部12Aに置き換えられた点である。
 検知部12Aは、実行部11でのアプリケーション17の実行に伴い、撮像装置150によって端末10A周辺の画像を撮像させる。検知部12Aは、撮像された画像に含まれるデバイス40を検知し、対応デバイスDB20を参照して、検知したデバイス40が端末10で利用可能か否かを検知する。そして、検知部12Aは、デバイス40が利用可能である場合、決定部13に検知したデバイス40のデバイス名を出力する。
 次に、図21に、第3実施形態に係る端末10Aをコンピュータで実現する場合の構成例を示す。図21に示すコンピュータ100Aの構成例が図6に示したコンピュータ100の構成例と異なる点は、I/O110に新たに撮像装置150が接続され、検知プロセス120が検知プロセス120Aに置き換えられた点である。なお、検知プロセス120Aへの置き換えに伴い、アプリケーション機能拡張プログラム118がアプリケーション機能拡張プログラム118Aに置き換えられる。
 撮像装置150は、画像を撮像し、撮像した画像を画像データに変換する機能を有する装置であり、具体的には例えばカメラが適用される。また、CPU102が検知プロセス120Aを実行することで、コンピュータ100Aが図20に示す検知部12Aとして動作する。
 なお、コンピュータ100Aは、例えば半導体集積回路、より詳しくはASIC等で実現することも可能である。
 次に、第3実施形態の作用について説明する。第3実施形態に係る端末10Aがアプリケーション機能拡張処理を実行するタイミングは、第1実施形態及び第2実施形態と同様である。すなわち、端末10Aは、例えば端末10Aの利用者が、入力装置112で指定したアプリケーション17の実行を端末10Aに指示し、指定したアプリケーション17がメモリ104に展開されて実行される際に、アプリケーション機能拡張処理を実行する。
 なお、第3実施形態に係るアプリケーション機能拡張処理を実行するにあたり、デバイス40には予めデバイス40を特定するための識別情報、例えばデバイス名を表す文字が記載されたラベルが、外部から目視できる位置に貼り付けられているものとする。なお、ラベルには文字に代えて、デバイス名を表すバーコード等が記載されていてもよい。
 図22は、第3実施形態に係る端末10Aで実行されるアプリケーション機能拡張処理の流れの一例を示すフローチャートである。図22に示すフローチャートが図7に示す第1実施形態のフローチャートと異なる点は、ステップS10及びS20の処理が、それぞれステップS11及びS21に置き換えられ、新たにステップS23、S25、及びS27の処理が追加された点である。
 まず、ステップS11において、検知部12Aは、撮像装置150で撮像された端末10A周辺の画像(撮像画像)を取得する。そして、検知部12Aは、撮像画像にデバイス名を記載したラベルが含まれる場合、公知の文字認識技術を用いてラベルからデバイス名を読み取り、撮像画像に含まれるデバイス40を検知する。
 ステップS21において、検知部12Aは、ステップS11の処理で検知した撮像画像に含まれるデバイス40が、端末10Aで利用可能なデバイス40であるか否かを判定する。判定の方法は既に図7のステップS20の処理で説明したように、対応デバイスDB20を参照して判定すればよい。ステップS21の判定処理が否定判定の場合にはステップS25に移行する。
 ステップS25において、検知部12Aは、例えば入力装置112から撮像の終了指示が通知されたか否かを判定する。そして、肯定判定の場合は図22に示すアプリケーション機能拡張処理を終了し、否定判定の場合はステップS11に移行して、検知部12Aは撮像画像に含まれるデバイス40を検知する処理を繰り返す。
 一方、ステップS21の判定処理が肯定判定の場合には、ステップS23に移行する。ステップS23において、検知部12Aは、例えば表示装置114に表示される撮像画像において、検知したデバイス40が何処に存在するかをユーザに示すため、検知したデバイス40を強調して表示する。ここでデバイス40を強調して表示する方法としては、例えばデバイス40を矢印等で指し示す、デバイス40を枠で囲む、又はデバイス40の色を変える等、の方法が考えられる。
 ステップS27において、検知部12Aはユーザが撮像画像に含まれるデバイス40を選択したか否かを判定する。当該判定は、例えばユーザが表示装置114に表示されたデバイス40を指で押すことで、表示装置114の表面に設置された入力装置112の1つであるタッチパネルから通知される操作情報を、検知部12Aが取得することで判定できる。すなわち、検知部12Aがタッチパネルから操作情報を取得した場合にはステップS30に移行し、操作情報を取得できない場合にはステップS27の処理を繰り返し、検知したデバイス40が選択されるまで待機する。
 以降、ステップS30~S90の各処理を実行することで、実行中のアプリケーション17は、ユーザが撮像画像の中から選択したデバイス40を利用することができるようになる。
 図23は、端末10Aで利用可能なデバイス40を検知した場合の撮像画像の表示例を示す図である。
 端末10Aの表示装置114には撮像画像が表示され、図23の例では、アプリケーション機能拡張処理によって検知したデバイス40を強調して表示するため、例えばデバイス40を囲む枠70、及びデバイス40を指し示すアイコン72が表示される。
 更に、例えば「プリンタAと連携」と表記した吹き出しを表示して、アプリケーション17と連携させるデバイス名を表示装置114に表示するようにしてもよい。
 また、表示装置114には、実行中のアプリケーション17によって表示されるアプリケーション画像74も表示される。この場合、図23に示すように、表示装置114に撮像画像を表示している期間は、ユーザに検知したデバイス40を確認し易くさせるため、アプリケーション画像74を半透明で表示することが好ましい。
 図24は、ユーザがアプリケーション17と連携させるデバイス40を選択した場合の表示例を示す図である。
 ユーザがアプリケーション17と連携させるデバイス40を選択した場合、アプリケーション17のアプリケーション画像74と、連携させるデバイス40と、の対応をわかりやすく表示することが好ましい。図24の例では、例えばアプリケーション画像74と、連携させるデバイス40と、を対応付ける線分76を表示装置114に表示している。そして、ユーザが表示装置114のデバイス40が表示されている箇所を押下することで、例えば表示装置114に「印刷を実行」と表記した吹き出しを表示して、デバイス40(この場合、プリンタ)から印刷結果を出力する。
 このように第3実施形態に係るアプリケーション機能拡張処理によれば、撮像画像を用いたAR(Augmented Reality)技術により、ユーザは実際のデバイス40の画像を見ながらアプリケーション17と連携させるデバイス40を選択することができる。従って、例えばデバイス名の一覧からアプリケーション17と連携させるデバイス40を選択する場合に比べて、アプリケーション17とデバイス40との連携に係る操作性を向上させることができる。
 以上、各実施形態を用いて開示の技術を説明したが、開示の技術は各々の実施形態に記載の範囲には限定されない。開示の技術の要旨を逸脱しない範囲で各々の実施形態に多様な変更または改良を加えることができ、当該変更または改良を加えた形態も開示の技術の技術的範囲に含まれる。例えば、開示の技術の要旨を逸脱しない範囲で処理の順序を変更してもよい。
 また、各実施形態では、アプリケーション機能拡張プログラムが記憶部に予め記憶(インストール)されている態様を説明したが、これに限定されるものではない。開示の技術に係るアプリケーション機能拡張プログラムは、コンピュータ読取可能な記録媒体160に記録されている形態で提供することも可能である。例えば、開示の技術に係るアプリケーション機能拡張プログラムは、CD-ROM、DVD-ROM、及びUSBメモリ等の可搬型記録媒体に記録されている形態で提供することも可能である。また、開示の技術に係るアプリケーション機能拡張プログラムは、フラッシュメモリ等の半導体メモリ等に記録されている形態で提供することも可能である。
 また、各実施形態では、実行中のアプリケーション17に、端末10で検知したデバイスのロジックを挿入する形態について説明した。しかし、例えばメモリ104に展開された実行待ち状態のアプリケーション17に、端末10で検知したデバイスのロジックを挿入するようにしてもよい。
 なお、第1実施形態のアプリケーション機能拡張処理で示した示唆は、第2実施形態、及び第3実施形態のアプリケーション機能拡張処理にも適用することができる。

Claims (22)

  1.  端末に搭載されたコンピュータで、
     前記端末に含まれるアプリケーションから、前記端末で検出したデバイスに対応した予め定めたタグが含まれる位置を特定し、
     前記アプリケーションの特定した位置に、前記予め定めたタグに対応した前記デバイスを利用するためのロジックを挿入する
     アプリケーション機能拡張方法。
  2.  前記アプリケーションは前記端末で実行中のアプリケーションである
     請求項1記載のアプリケーション機能拡張方法。
  3.  前記アプリケーションに対して前記デバイスの利用が予め許可されている場合に、前記アプリケーションから、前記デバイスに対応した前記予め定めたタグが含まれる位置を特定する
     請求項1又は請求項2記載のアプリケーション機能拡張方法。
  4.  前記端末に含まれる表示装置に、前記デバイスに対応付けた識別画像を表示し、
     前記アプリケーションから、ユーザによって選択された識別画像で表される前記デバイスに対応した前記予め定めたタグが含まれる位置を特定する
     請求項1~請求項3の何れか1項に記載のアプリケーション機能拡張方法。
  5.  前記端末に含まれる表示装置に、前記アプリケーションと、前記デバイスと、の連携開始の指示を受け付ける画面アイテムを表示する
     請求項1~請求項4の何れか1項に記載のアプリケーション機能拡張方法。
  6.  前記端末は撮像装置を備え、
     前記撮像装置で撮像した画像からデバイスを検知する
     請求項1~請求項5の何れか1項に記載のアプリケーション機能拡張方法。
  7.  前記検知したデバイスを前記端末に含まれる表示装置に強調表示する
     請求項6記載のアプリケーション機能拡張方法。
  8.  端末に搭載されたコンピュータに、
     前記端末に含まれるアプリケーションから、前記端末で検出したデバイスに対応した予め定めたタグが含まれる位置を特定し、
     前記アプリケーションの特定した位置に、前記予め定めたタグに対応した前記デバイスを利用するためのロジックを挿入する
     ことを含む処理を実行させるためのアプリケーション機能拡張プログラム。
  9.  前記アプリケーションは前記端末で実行中のアプリケーションである
     請求項8記載のアプリケーション機能拡張プログラム。
  10.  前記アプリケーションに対して前記デバイスの利用が予め許可されている場合に、前記アプリケーションから、前記デバイスに対応した前記予め定めたタグが含まれる位置を特定する
     請求項8又は請求項9記載のアプリケーション機能拡張プログラム。
  11.  前記端末に含まれる表示装置に、前記デバイスに対応付けた識別画像を表示し、
     前記アプリケーションから、ユーザによって選択された識別画像で表される前記デバイスに対応した前記予め定めたタグが含まれる位置を特定する
     請求項8~請求項10の何れか1項に記載のアプリケーション機能拡張プログラム。
  12.  前記端末に含まれる表示装置に、前記アプリケーションと、前記デバイスと、の連携開始の指示を受け付ける画面アイテムを表示する
     請求項8~請求項11の何れか1項に記載のアプリケーション機能拡張プログラム。
  13.  前記端末は撮像装置を備え、
     前記撮像装置で撮像した画像からデバイスを検知する
     請求項8~請求項12の何れか1項に記載のアプリケーション機能拡張プログラム。
  14.  前記検知したデバイスを前記端末に含まれる表示装置に強調表示する
     請求項13記載のアプリケーション機能拡張プログラム。
  15.  端末に含まれるアプリケーションから、検知部で検知したデバイスに対応した予め定めたタグが含まれる位置を特定する特定部と、
     前記特定部で特定した前記アプリケーションの位置に、前記予め定めたタグに対応した前記デバイスを利用するためのロジックを挿入する挿入部と、
     を含むアプリケーション機能拡張装置。
  16.  前記アプリケーションは前記端末で実行中のアプリケーションである
     請求項15記載のアプリケーション機能拡張装置。
  17.  前記特定部は、前記アプリケーションに対して前記デバイスの利用が予め許可されている場合に、前記アプリケーションから、前記デバイスに対応した前記予め定めたタグが含まれる位置を特定する
     請求項15又は請求項16記載のアプリケーション機能拡張装置。
  18.  前記検知部は、前記端末に含まれる表示装置に、前記デバイスに対応付けた識別画像を表示させ、
     前記特定部は、前記アプリケーションから、ユーザによって選択された識別画像で表される前記デバイスに対応した前記予め定めたタグが含まれる位置を特定する
     請求項15~請求項17の何れか1項に記載のアプリケーション機能拡張装置。
  19.  前記挿入部は、前記端末に含まれる表示装置に、前記アプリケーションと、前記デバイスと、の連携開始の指示を受け付ける画面アイテムを表示させる命令を含むロジックを挿入する
     請求項15~請求項18の何れか1項に記載のアプリケーション機能拡張装置。
  20.  前記端末は撮像装置を備え、
     前記検知部は、前記撮像装置で撮像した画像からデバイスを検知する
     請求項15~請求項19の何れか1項に記載のアプリケーション機能拡張装置。
  21.  前記検知部は、検知したデバイスを前記端末に含まれる表示装置に強調して表示させる
     請求項20記載のアプリケーション機能拡張装置。
  22.  コンピュータに、
     端末に含まれるアプリケーションから、前記端末で検知されたデバイスに対応した予め定めたタグが含まれる位置を特定し、
     前記アプリケーションの特定した位置に、前記予め定めたタグに対応した前記デバイスを利用するためのロジックを挿入する
     ことを含む処理を実行させるためのアプリケーション機能拡張プログラムを記録したコンピュータ読み取り可能な記録媒体。
PCT/JP2015/051736 2015-01-22 2015-01-22 アプリケーション機能拡張方法、アプリケーション機能拡張プログラム、及びアプリケーション機能拡張装置 WO2016117096A1 (ja)

Priority Applications (4)

Application Number Priority Date Filing Date Title
PCT/JP2015/051736 WO2016117096A1 (ja) 2015-01-22 2015-01-22 アプリケーション機能拡張方法、アプリケーション機能拡張プログラム、及びアプリケーション機能拡張装置
EP15878789.5A EP3249530A4 (en) 2015-01-22 2015-01-22 Application function expansion method, application function expansion program, and application function expansion device
JP2016570433A JP6468293B2 (ja) 2015-01-22 2015-01-22 アプリケーション機能拡張方法、アプリケーション機能拡張プログラム、及びアプリケーション機能拡張装置
US15/641,903 US20170300320A1 (en) 2015-01-22 2017-07-05 Application functionality extension method, application functionality extension program, and application functionality extension apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2015/051736 WO2016117096A1 (ja) 2015-01-22 2015-01-22 アプリケーション機能拡張方法、アプリケーション機能拡張プログラム、及びアプリケーション機能拡張装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US15/641,903 Continuation US20170300320A1 (en) 2015-01-22 2017-07-05 Application functionality extension method, application functionality extension program, and application functionality extension apparatus

Publications (1)

Publication Number Publication Date
WO2016117096A1 true WO2016117096A1 (ja) 2016-07-28

Family

ID=56416661

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2015/051736 WO2016117096A1 (ja) 2015-01-22 2015-01-22 アプリケーション機能拡張方法、アプリケーション機能拡張プログラム、及びアプリケーション機能拡張装置

Country Status (4)

Country Link
US (1) US20170300320A1 (ja)
EP (1) EP3249530A4 (ja)
JP (1) JP6468293B2 (ja)
WO (1) WO2016117096A1 (ja)

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000347839A (ja) * 1999-06-01 2000-12-15 Hitachi Ltd データ処理装置およびプログラム実行方法
JP2001222404A (ja) * 2000-02-14 2001-08-17 Sharp Corp データ転送装置
JP2003099302A (ja) * 2001-09-21 2003-04-04 Ricoh Co Ltd 文書変換サービス方法、文書のデータ構造、記憶媒体及び情報処理装置
JP2013235331A (ja) * 2012-05-07 2013-11-21 Canon Inc 携帯端末、情報処理装置、画像形成装置及びそれら制御方法、並びにプログラム、情報処理システム
US20140153557A1 (en) * 2012-12-04 2014-06-05 Samsung Electronics Co., Ltd. Wi-fi direct connection method using access point and device having wi-fi direct connection function

Family Cites Families (49)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3969723A (en) * 1974-07-03 1976-07-13 General Electric Company On-line modification of computer programs
US5715463A (en) * 1992-03-31 1998-02-03 International Business Machines Corporation Installation utility for device drivers and utility programs
US5657433A (en) * 1994-05-19 1997-08-12 Hitachi, Ltd. Method for generating, managing and displaying information retrieval data on information processing system
JPH09223096A (ja) * 1996-02-20 1997-08-26 Fuji Xerox Co Ltd 管理装置及びクライアント装置
US6442683B1 (en) * 1999-10-07 2002-08-27 Micron Technology, Inc. Apparatus for automatically retrieving and installing device drivers across a network
US6473854B1 (en) * 1999-10-07 2002-10-29 Micron Technology, Inc. Method for automatically retrieving and installing device drivers across a network
JP4344105B2 (ja) * 2001-09-12 2009-10-14 セイコーエプソン株式会社 ソースファイル生成装置
US6857119B1 (en) * 2001-09-25 2005-02-15 Oracle International Corporation Techniques for modifying a compiled application
US7254814B1 (en) * 2001-09-28 2007-08-07 Emc Corporation Methods and apparatus for managing plug-in services
US20030128235A1 (en) * 2002-01-10 2003-07-10 International Business Machines Corporation System for associating graphics frames with events and method therefor
EP1525522A2 (en) * 2002-06-06 2005-04-27 Green Border Technologies Method and system for implementing a secure application execution environment using derived user accounts for internet content
US20040068720A1 (en) * 2002-10-02 2004-04-08 Robert Hundt Dynamic instrumentation of an executable program
ATE549852T1 (de) * 2002-12-12 2012-03-15 Seiko Epson Corp Bildverarbeitungsverfahren und bildverarbeitungssystem unter verwendung desselben
US7487500B1 (en) * 2003-10-09 2009-02-03 Nortel Networks Limited System and method for installing and configuring software for a network element in an optical communications network
JP2005208894A (ja) * 2004-01-22 2005-08-04 Canon Inc 周辺装置制御方法、制御プログラム及びその装置
US7603420B2 (en) * 2004-03-31 2009-10-13 International Business Machines Corporation Method and apparatus for automatic e-mail response interruption based on user activity
US8661420B2 (en) * 2004-08-03 2014-02-25 Oracle International Corporation System and method for runtime interface versioning
US20060070089A1 (en) * 2004-08-20 2006-03-30 Shahid Shoaib Method and apparatus for dynamic replacement of device drivers in the operating system (OS) kernel
US8065674B2 (en) * 2004-09-01 2011-11-22 Microsoft Corporation Privileged used control of device installation and/or availability
KR100673313B1 (ko) * 2004-12-30 2007-01-24 재단법인서울대학교산학협력재단 코드조각 번호 매김을 이용한 프로그램 간의 코드조각결합방법
US20070005554A1 (en) * 2005-06-30 2007-01-04 Allstream Corp. Symbolic reference for a computer addressable data object
JP4756988B2 (ja) * 2005-10-18 2011-08-24 キヤノン株式会社 プログラム、機能情報提供装置、および機能情報提供方法
JP2007329530A (ja) * 2006-06-06 2007-12-20 Casio Comput Co Ltd 映像機器、映像機器の表示処理方法、及び映像機器の処理プログラム
US8793662B2 (en) * 2008-03-25 2014-07-29 Microsoft Corporation Runtime code hooking for print driver and functionality testing
US8131768B2 (en) * 2008-05-08 2012-03-06 Nec Laboratories America, Inc. Symbolic program analysis using term rewriting and generalization
NZ591880A (en) * 2008-10-27 2013-12-20 Sato Kk Label printer api using program scripting language
WO2010079566A1 (ja) * 2009-01-09 2010-07-15 日本電気株式会社 サービス提供装置、サービス提供システム、サービス提供方法および記憶媒体
US10055251B1 (en) * 2009-04-22 2018-08-21 The Trustees Of Columbia University In The City Of New York Methods, systems, and media for injecting code into embedded devices
US8732728B2 (en) * 2009-07-20 2014-05-20 Samsung Electronics Co., Ltd. System and method to allow multiple plug-in applications real-time access to a camera application in a mobile device
US8595284B2 (en) * 2009-12-14 2013-11-26 Samsung Electronics Co., Ltd Web application script migration
US8352949B1 (en) * 2009-12-30 2013-01-08 Sap Ag Communication between integrated device and mobile application client on mobile personal communication device
JP5531362B2 (ja) * 2010-06-11 2014-06-25 株式会社日立製作所 Webページ供給システム、Webページ供給方法、及び制御プログラム
US20120017119A1 (en) * 2010-07-16 2012-01-19 Fujitsu Limited Solving Hybrid Constraints to Generate Test Cases for Validating a Software Module
US8613007B2 (en) * 2010-09-29 2013-12-17 Business Objects Software Limited Server independent deployment of plug-ins
JP5257437B2 (ja) * 2010-10-20 2013-08-07 コニカミノルタビジネステクノロジーズ株式会社 携帯端末及び処理装置の操作方法
US8554797B2 (en) * 2010-12-17 2013-10-08 Sap Ag System and method for modular business applications
US8943487B2 (en) * 2011-01-20 2015-01-27 Fujitsu Limited Optimizing libraries for validating C++ programs using symbolic execution
CN102682014A (zh) * 2011-03-14 2012-09-19 腾讯科技(深圳)有限公司 在浏览器上实现的开放式插件管理平台及插件管理方法
US8645924B2 (en) * 2011-06-06 2014-02-04 Fujitsu Limited Lossless path reduction for efficient symbolic execution and automatic test generation
JP5699959B2 (ja) * 2012-02-13 2015-04-15 コニカミノルタ株式会社 携帯端末及び印刷指示プログラム並びに印刷指示方法
TWI470549B (zh) * 2012-04-20 2015-01-21 Insyde Software Corp A method of using an image recognition guide to install an application, and an electronic device
US9087191B2 (en) * 2012-08-24 2015-07-21 Vmware, Inc. Method and system for facilitating isolated workspace for applications
US9436838B2 (en) * 2012-12-20 2016-09-06 Intel Corporation Secure local web application data manager
US9075601B1 (en) * 2013-03-07 2015-07-07 Ca, Inc. Providing a scripting interface to existing code
US9229702B1 (en) * 2013-08-28 2016-01-05 Lithium Technologies, Inc. Systems and methods for application plugin deployment for websites
US9703551B2 (en) * 2014-04-28 2017-07-11 Ca, Inc. Modifying mobile application binaries to call external libraries
US9684547B2 (en) * 2014-05-29 2017-06-20 Apple Inc. Method and apparatus for handling security of an application and its extension
KR102086731B1 (ko) * 2014-06-25 2020-04-14 에스케이플래닛 주식회사 클라우드 스트리밍 서비스 제공 방법, 이를 위한 장치 및 시스템, 그리고 이를 위한 클라우드 스트리밍용 스크립트 코드를 기록한 컴퓨터 판독 가능한 기록매체
US10007534B2 (en) * 2015-08-11 2018-06-26 Vmware, Inc. Methods and apparatus to manage asset capabilities in a computing environment using a common agent framework

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2000347839A (ja) * 1999-06-01 2000-12-15 Hitachi Ltd データ処理装置およびプログラム実行方法
JP2001222404A (ja) * 2000-02-14 2001-08-17 Sharp Corp データ転送装置
JP2003099302A (ja) * 2001-09-21 2003-04-04 Ricoh Co Ltd 文書変換サービス方法、文書のデータ構造、記憶媒体及び情報処理装置
JP2013235331A (ja) * 2012-05-07 2013-11-21 Canon Inc 携帯端末、情報処理装置、画像形成装置及びそれら制御方法、並びにプログラム、情報処理システム
US20140153557A1 (en) * 2012-12-04 2014-06-05 Samsung Electronics Co., Ltd. Wi-fi direct connection method using access point and device having wi-fi direct connection function

Non-Patent Citations (1)

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

Also Published As

Publication number Publication date
JPWO2016117096A1 (ja) 2017-10-12
EP3249530A1 (en) 2017-11-29
JP6468293B2 (ja) 2019-02-13
EP3249530A4 (en) 2018-01-24
US20170300320A1 (en) 2017-10-19

Similar Documents

Publication Publication Date Title
KR102168413B1 (ko) 통신 장치, 통신 장치를 제어하는 제어 방법, 및 컴퓨터 제어 프로그램
JP5795582B2 (ja) 統合ユーザインターフェース生成方法及びそれを行う装置
JP6562660B2 (ja) 通信装置及びその制御方法と、プログラム
JP6200136B2 (ja) 画像形成装置、検索システム、画像形成装置の制御方法及びプログラム
JP6520404B2 (ja) 携帯端末及び出力プログラム
JP2008147961A (ja) 画像形成装置、画面管理方法及び画面管理プログラム
KR20180006225A (ko) 모바일 기기에서의 인쇄 데이터 처리 방법 및 그 장치
JP6763209B2 (ja) プログラム及び携帯端末
JP6547531B2 (ja) コンテンツ指定プログラム及び携帯端末
JP5685935B2 (ja) 制御装置及びプログラム
JP6468293B2 (ja) アプリケーション機能拡張方法、アプリケーション機能拡張プログラム、及びアプリケーション機能拡張装置
JP6406060B2 (ja) 画像形成装置、サーバ装置、携帯端末、及び通信システム
JP2016076849A (ja) 画像形成システム、画像形成装置、外部端末およびプログラム
JP6119772B2 (ja) 画像処理システム、画像処理装置、端末装置及びプログラム
JP6544162B2 (ja) 出力プログラム及び携帯端末
JP6107834B2 (ja) コンテンツ伝送システム、コンテンツ伝送装置及びコンテンツ伝送方法
JP6520405B2 (ja) 携帯端末、コンテンツ指定プログラム、及び出力プログラム
JP6156800B2 (ja) 機器情報表示装置、機器サーバ、機器情報表示システム、機器情報表示方法、及び、プログラム
JP6696609B2 (ja) 携帯端末及び出力プログラム
JP6975414B2 (ja) プログラム及び携帯端末
US11231890B2 (en) Preset information displaying method and information processing apparatus
JP6677335B2 (ja) 携帯端末、コンテンツ指定プログラム、及び出力プログラム
JP6711438B2 (ja) 携帯端末及び出力プログラム
KR100906763B1 (ko) Smil 프레임워크 설정 방법 및 장치
JP2016224643A (ja) 携帯端末及び出力プログラム

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

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2016570433

Country of ref document: JP

Kind code of ref document: A

REEP Request for entry into the european phase

Ref document number: 2015878789

Country of ref document: EP

NENP Non-entry into the national phase

Ref country code: DE