Information processing apparatus, computer-readable recording medium, and information processing system

An information processing apparatus includes: an acquisition unit that acquires sets of apparatus type specifying information that specify types of apparatuses connected to the apparatus; an identifying unit that identifies the apparatus types of the connected apparatuses into a first apparatus type corresponding to a control program transmitted from a server and a second apparatus type different from the first apparatus type; and a specifying unit that, according to the sets of apparatus type specifying information on the apparatus types that are identified by the identifying unit and correspondence information that associates the sets of apparatus type specifying information with the types of user interface for accepting a setting relating to the process required to the apparatus, specifies a first type corresponding to the first apparatus type and a second type corresponding to the second apparatus type among the types of user interface.

CROSS-REFERENCE TO RELATED APPLICATIONS

The present application claims priority to and incorporates by reference the entire contents of Japanese Patent Application No. 2015-058801 filed in Japan on Mar. 20, 2015.

BACKGROUND OF THE INVENTION

1. Field of the Invention

The present invention relates generally to an information processing apparatus, a computer-readable recording medium having a computer program for information processing, and an information processing system.

2. Description of the Related Art

As for a program, such as a printer driver, for controlling apparatuses that are connected to a computer and used, a technology of acquiring information from an apparatus to switch between display and non-display of a user interface (UI) for setting an optional function of the apparatus and of reading a setting file to change words that are used by the UI.

For example, Japanese Laid-open Patent Publication No. 2010-204894 discloses a technology of passing functional information containing language information from a printer to a printer driver and changing the text string displayed by the UI in accordance with the language environment of an operation system (OS). The technology according to Japanese Laid-open Patent Publication No. 2010-204894 makes enables display of a text string that is newly added in accordance with the function expansion of the printer, or a text string that is not prepared by the OS, in a correct language.

In the conventional technology, switching between display and non-display of the UI for setting an optional function of the apparatus and replacing words used by the UI in order to deal with a new setting are performed based on the original UI.

On the other hand, when a connected printer is replaced with another printer, for vender's convenience, UIs that are significantly different in the position at which the UI is displayed and in the method of displaying the UI may be used respectively for the printer driver corresponding to the printer to be replaced and the printer driver of the printer with which the printer is replaced. In such a case, there is a problem in that the user has to additionally learn operations on the UI after replacement, which is burdensome. This problem is not solved by the technology according to Japanese Laid-open Patent Publication No. 2010-204894.

In view of the above circumstances, there is a need to reduce the work of the user to operate the UI.

SUMMARY OF THE INVENTION

According to exemplary embodiments of the present invention, there is provided an information processing apparatus that is connectable to a plurality of apparatuses and to which a control program for issuing a request for a process to an apparatus corresponding to any one of the apparatuses is transmitted from a server, the information processing apparatus comprising: an acquisition unit that acquires sets of apparatus type specifying information that specify apparatus types of the connected apparatuses; an identifying unit that identifies the apparatus types of the connected apparatuses into a first apparatus type corresponding to the control program transmitted from the server and a second apparatus type different from the first apparatus type; and a specifying unit that, according to the sets of apparatus type specifying information on the apparatus types that are identified by the identifying unit and correspondence information that associates the sets of apparatus type specifying information with the types of user interface for accepting a setting relating to the process required to the apparatus, specifies a first type corresponding to the first apparatus type and a second type corresponding to the second apparatus type among the types of user interface.

Exemplary embodiments of the present invention also provide a non-transitory computer-readable recording medium that contains an information processing program for causing a computer included in an information processing apparatus which is connectable to a plurality of apparatuses and to which a control program for issuing a request for a process to an apparatus corresponding to any one of the apparatuses is transmitted from a server, to perform an information processing method comprising: acquiring sets of apparatus type specifying information that specify apparatus types of the connected apparatuses; identifying the apparatus types of the connected apparatuses into a first apparatus type corresponding to the control program transmitted from the server and a second apparatus type different from the first apparatus type; and according to the sets of apparatus type specifying information on the apparatus types that are identified by the identifying unit and correspondence information that associates the sets of apparatus type specifying information with the types of user interface for accepting a setting relating to the process required to the apparatus, specifying a first type corresponding to the first apparatus type and a second type corresponding to the second apparatus type among the types of user interface.

Exemplary embodiments of the present invention also provide an information processing system comprising: a storage unit that stores correspondence information that associates sets of apparatus type specifying information that specify apparatus types of apparatuses with types of user interface for accepting a setting relating to a process required to the apparatus; an acquisition unit that acquires the sets of apparatus type specifying information that specify a plurality of connected apparatuses; an identifying unit that identifies the apparatus types of the connected apparatuses into a first apparatus type corresponding to a control program for issuing a request for a process to an apparatus corresponding to any one of the apparatuses; and a specifying unit that, according to the sets of apparatus type specifying information on the apparatus types that are identified by the identifying unit and the correspondence information, specifies a first type corresponding to the first apparatus type and a second type corresponding to the second apparatus type among the types of user interface.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

With reference to the accompanying drawings, embodiments of an information processing apparatus, a computer-readable recording medium having a computer program for information processing, and an information processing system will be described in detail below.

First Embodiment

FIG. 1shows an exemplary configuration of an information processing apparatus according to a first embodiment of the present invention. As shown inFIG. 1, the information processing system includes a personal computer (PC)10, a distribution server20, and a plurality of printer apparatuses30aand30bthat are communicably connected to one another via a network40, such as a local area network (LAN).FIG. 1shows the printer apparatuses30aand30balso as “PRINTER(A)” and “PRINTER(B)”.

FIG. 1shows the example where the information processing system includes the two printer apparatuses30aand30b; however, the embodiment is not limited to this. In other words, the information processing system according to the first embodiment may include three or more printer apparatuses and each printer apparatus may be a multifunction printer (MFP) having multiple functions, such as a printer function, a scanner function, a copy function, and a FAX function, that are incorporated in a single housing.

FIG. 1shows that the information system includes the single PC10and the single distribution server20; however, the embodiment is not limited to this. In other words, the information processing system according to the first embodiment may include a plurality of PCs10, and the distribution server20is not necessarily configured by using a single information processing apparatus, i.e., the distribution server20may be configured by using multiple information processing apparatuses that are connected to one another. The network40is not necessarily a network depending on wired communications, i.e., the network40may be a network using wireless communications. The network40is not necessarily a LAN, i.e., the network40may be configured depending on wireless communications according to Bluetooth (trademark) or communications via a serial bus, such as a universal serial bus (USB).

As for the configuration shown inFIG. 1, when a driver program corresponding to, for example, the printer apparatus30ais already installed in the PC10, the PC10can transmit various setting instructions, such as a print instruction, to the printer apparatus30aaccording to operations of a user on the PC10. The printer apparatus30aperforms operations according to the instructions transmitted from the PC10. Similarly, when a driver program corresponding to the printer apparatus30bis already installed in the PC10, the printer apparatus30bperforms printing and various setting operations according to instructions issued from the PC10according to operations of the user on the PC10.

Alternatively, it is possible to install, in the PC10, the driver program corresponding to the printer apparatus30aand the driver program corresponding to the printer apparatus30b. In this case, according to user operations, the PC10transmits instructions for printing and various types of setting to the selected one of the printer apparatuses30aand30b.

In response to, for example, a request from the PC10, the distribution server20distributes the driver program corresponding to the printer apparatus30aor the driver program corresponding to the printer apparatus30b.

As for such a configuration, to install the driver program corresponding to the printer apparatus30bin the PC10, the PC10detects apparatus type specifying information that specifies the type of the apparatus from all apparatuses connected to the network40according to an installation instruction. The PC10acquires the detected apparatus type specifying information from each of the apparatuses and specifies the apparatus type specifying information corresponding to the apparatus type of the printer apparatus30bwhose corresponding driver program is required to be installed. The PC10then transmits the specified apparatus type specifying information to the distribution server20.

The distribution server20previously stores driver programs respectively corresponding to various printer apparatuses in association with apparatus type specifying information. According to the apparatus type specifying information that is transmitted from the PC10, the distribution server20transmits the driver program corresponding to the printer apparatus30bto the PC10. The PC10installs the driver program transmitted from the distribution server20in the PC10itself. This enables the use of the printer apparatus30bvia the PC10.

According to the first embodiment, to install the driver program corresponding to the printer apparatus30ain addition to the driver program corresponding to the printer apparatus30bthat is already installed, the PC10detects the apparatus type specifying information on all apparatuses on the network40and acquires the detected apparatus type specifying information. The PC10transmits the acquired apparatus type specifying information to the distribution server20. The PC10adds identifying information for identifies the printer apparatus30awhose corresponding driver program is required to be installed to the apparatus type specifying information corresponding to the printer apparatus30aand transmits the apparatus type specifying information added with the identifying information to the distribution server20.

On the other hand, the distribution server20previously stores a table that associates sets of apparatus type specifying information on the printer apparatuses30aand30bwith the types (UI types) of user interfaces (UI) of the driver programs. The distribution server20refers to the table according to each set of apparatus type specifying information that is transmitted from the PC10and acquires the UI type associated with each set of apparatus type specifying information. The distribution server20transmits information representing the acquired UI type together with the apparatus type specifying information to the PC10.

Accordingly, the PC10knows whether the UI of the driver program to be additionally installed is different from the UI of the driver program that is already installed.

Furthermore, when the UI of the driver program to be additionally installed and the UI of the driver program that is already installed are different form each other, the PC10can select whether to use the UI of the driver program to be additionally installed or the UI of the driver program that is already installed. The PC10transmits the result of selecting to the distribution server20.

When the selecting result transmitted from the PC10represents that the UI of the driver program already installed is to be used, the distribution server20combines the driver program to be additionally installed and the UI of the driver program already installed and transmits the driver program and the UI that are combined to the PC10. The PC10installs the driver program to which the UI of the driver program already installed is combined. Accordingly, the user can operate the driver program additionally installed in an operation environment common with the driver program already installed, which reduces the work of the user.

FIG. 2is an exemplary functional block diagram for explaining the functions of the distribution server20according to the first embodiment. According toFIG. 2, the distribution server20includes a receiver200, a distribution service unit201, a transmitter202, a UI table203, and a driver storage unit204. The UI table203is stored in a storage, such as a hard disk drive or a non-volatile semiconductor memory. The driver storage unit204can use the storage.

The receiver200, the distribution service unit201, and the transmitter202can be configured by, for example, using a program that runs on the central processing unit (CPU). Alternatively, part of or all of the receiver200, the distribution service unit201and the transmitter202can be configured by using hardware.

The receiver200receives data that is transmitted via the network40. The distribution service unit201performs a process of distributing a driver program in accordance with a request that is transmitted via the network40. The transmitter202transmits data to a specified address via the network40.

The UI table203is a table (correspondence information) that associates sets of apparatus type specifying information that specifies the types of printer apparatuses and UI types. Here, a UI refers to a UI that can be used for a driver program for controlling a printer apparatus via the PC10. The UI may differ depending on, for example, the type of printer apparatus or the version of driver program. The UI table203is updated according to the printer apparatus connected to the network40and a version up of the driver program.

When the operating system (OS) that runs on the PC10is Windows (trademark), a plug and play (PnP) name (PnP device ID) can be used as the apparatus type specifying information that specifies the apparatus types of the printer apparatuses30aand30b. A PnP name refers to apparatus type specifying information that is allocated to each type of apparatus. The apparatus type specifying information is not limited to PnP names as long as the apparatus type specifying information can uniquely identify the apparatus type of the printer apparatus. For example, the apparatus type names of printer apparatuses may be used as the apparatus type specifying information.

FIG. 3shows an example of the UI table203that can be used for the first embodiment. As shown inFIG. 3, the UI table203stores apparatus type specifying information and UI type in association with each other. As described above, the apparatus type names of printer apparatuses may be used as the apparatus type specifying information. According to the example shown inFIG. 3, a UI type of “Type#A” is associated with apparatus type specifying information of “PRINTER(A)”. Similarly, a UI type of “Type#B” is associated with apparatus type specifying information of “PRINTER(B)”, a UI type of “Type#A” is associated with apparatus type specifying information of “PRINTER(E)”, and a UI type of “Type#X” is associated with apparatus type specifying information of “PRINTER(F)”. As described above, multiple sets of apparatus type specifying information can be associated with one UI type.

The driver storage unit204stores driver programs corresponding to various apparatus types. A driver program refers to a program that is installed in an apparatus, such as a PC, connected to a printer apparatus and that is for controlling processes that are executed by the printer apparatus via the apparatus. The printer driver includes a driver main unit and a UI unit. The UI unit displays a screen for accepting a setting on a process executed by the printer apparatus from a user. The driver main unit has a function other than the UI unit of the driver program. The driver storage unit204stores, for example, each of the driver main unit and the UI unit in association with the apparatus type specifying information. Alternatively, the driver storage unit204may store a driver program obtained by previously combining the driver main unit and the UI unit that match in apparatus type.

The distribution service unit201includes a UI specifying unit210and a combining unit211. The UI specifying unit210refers to the UI table203according to the apparatus type specifying information that is received by the receiver200and specifies the UI type that is associated with the apparatus type specifying information. The combining unit211acquires the UI unit and the driver main unit from the driver storage unit204and combines the UI unit and the driver unit, which are acquired, to generate a driver program. The combining unit211causes the transmitter202to transmit the generated driver program to a specified address.

FIG. 4is a functional block diagram for explaining functions of the PC10according to the first embodiment. The PC10includes a transmitter/receiver101, an installer102, a screen generation unit103, and a determination unit104. The transmitter/receiver101, the installer102, the screen generation unit103, and the determination unit104can be configured by using a program that runs on the CPU. Alternatively, part of or all of the transmitter/receiver101, the installer102, the screen generation unit103, and the determination unit104may be configured by using hardware.

The transmitter/receiver101transmits/receives data via the network40. The installer102performs a process of installing a driver program in the PC10. The screen generation unit103generates screen information for displaying information on a display device, such as a liquid crystal display (LCD), according to an instruction from an installation processing unit110, which will be described below. When there are multiple driver programs that are candidates to be installed in the PC10, the determination unit104determines a driver program to be installed.

The installer102includes the installation processing unit110and an acquisition unit111. The installation processing unit110controls the process of installing the driver program in the PC10. Via the transmitter/receiver101, the acquisition unit111communicates with the printer apparatuses30aand30bthat are connected to the network40, detects the apparatus type specifying information on the printer apparatuses30aand30b, and acquires the detected apparatus type specifying information.

FIG. 5shows an exemplary hardware configuration of the PC10that can be used for the first embodiment. The PC10includes a CPU1001, a read only memory (ROM)1002, a random access memory (RAM)1003, a display control unit1004, a storage1006, a data I/F1007, and a communication I/F1009that are all communicably connected via a bus1000. The storage1006is a non-volatile semiconductor memory, such as a hard disk drive or a flash memory, that stores a program that runs on the CPU1001and various types of data.

According to the program that is read from the ROM1002or the storage1006, the CPU1001controls whole operations of the PC10while using the RAM1003as a work memory. The display control unit1004to which a display1005including a display device depending on, for example, an LCD is connected causes the display1005to display a screen according to screen information that is supplied from the CPU1001.

The data I/F1007controls input/output of data from/to an external apparatus. For the data I/F1007, for example, a universal serial bus (USB) can be used. Alternatively, an interface using wireless communications according to, for example, Bluetooth (trademark) may be used for the data I/F1007. According to the example shown inFIG. 5, an input device1008that accepts a user input is connected to the data I/F1007. The input device1008includes a pointing device, such as a mouse or a touch pad, and a character input device, such as a keyboard.

The communication I/F1009controls communications via the network40according to an instruction from the CPU1001.

The transmitter/receiver101, the installer102, the screen generation unit103, and the determination unit104are implemented by using the program that runs on the CPU1001. The program is stored in a computer (such as the distribution server20) that is connected to the network40to which the communication I/F1009is connected and the program is configured to be downloaded by the PC10via the network40and thus provided. Alternatively, the program may be configured to be provided or distributed via the network40.

Alternatively, the program may be recorded in a computer-readable recording medium, such as a compact disk (CD) or a digital versatile disk (DVD), in a file in an installable or an executable form and thus provided. In this case, for example, the program is provided to the PC10via, for example, an external driver device, or a computer, connected to the data I/F1007. Alternatively, the program may be previously stored in the ROM1002or the storage1006and thus provided.

The program has a module configuration including the above-describe various units (the transmitter/receiver101, the installer102, the screen generation unit103, and the determination unit104). As for practical hardware, the CPU1001reads the program from, for example, the storage1006and executes the program so that the various units are loaded into a main storage device (such as the RAM1003) and the units are generated in the main storage device.

FIG. 6shows an exemplary hardware configuration of a distribution server20that can be used for the first embodiment. The distribution server20can be configured by using a general-purpose computer apparatus, and elements relating to user operations, such as an input device and a display, may be omitted. For example, according to the example shown inFIG. 6, compared to the configuration of the PC10shown inFIG. 5, the display control unit1004and the data I/F1007are omitted from the configuration of distribution server20.

The distribution server20shown inFIG. 6includes a CPU2001, a ROM2002, a RAM2003, a storage2004, and a communication I/F2005that are all connected to be externally communicable via a bus2000.

The storage2004is a non-volatile semiconductor memory, such as a hard disk drive or a flash memory, that stores a program that runs on the CPU2001and various types of data including the UI table203and the driver main unit and the UI unit that are stored in the driver storage unit204.

According to the program that is read from the ROM2002or the storage2004, the CPU2001controls whole operations of the distribution server20while using the RAM2003as a work memory. The communication I/F2005controls communications via the network40according to an instruction from the CPU2001.

The configuration of the distribution server20is not limited to the example shown inFIG. 6. Similarly to, for example, the case of the PC10shown inFIG. 5, the distribution server20may further include a display control unit that causes a display to display a screen according to screen information that is generated by the CPU2001on the display, a data I/F that inputs/outputs data from/to an external apparatus, and an input device that accepts a user input.

The receiver200, the distribution service unit201, and the transmitter202run on the CPU2001. The program is stored in a computer that is connected to the network40to which the communication I/F2005is connected and the program is configured to be downloaded by the distribution server20via the network40and thus provided. Alternatively, the program may be configured to be provided or distributed via the network40.

Alternatively, the program may be provided in a non-transitory computer-readable recording medium, such as a compact disk (CD) or a digital versatile disk (DVD), in a file in an installable or an executable form and thus provided. In this case, for example, the distribution server20may be provided with a data I/F to supply the program to the distribution server20via an external driver device, or an external computer, that is connected to the data I/F. Similarly to the program, the UI table203and each of the driver main units and the UIs that are stored in the driver storage unit204may be provided to the distribution server20via the network40, or a computer-readable recording medium, such as a CD or a DVD.

The program has a module configuration including the above-describe various units (the receiver200, the distribution service unit201, and the transmitter202). As for practical hardware, the CPU2001reads the program from the storage2004and executes the program so that the various units are loaded into a main storage device (such as the RAM2003) and the units are generated in the main storage device.

Details of Process According to First Embodiment

The installation process of installing a driver program in the PC10according to the first embodiment will be described more in detail below.FIG. 7shows the flow of the installation process according to the first embodiment. Components shown inFIG. 7that are common withFIGS. 1, 2 and 4are denoted with the same reference numerals as those shown inFIGS. 1, 2 and 4to omit detailed descriptions of the components. The function units of the PC10and the distribution server20shown inFIG. 7represent components closely tied to the installation process and other components are omitted.

It is assumed that the printer apparatus30bshown inFIG. 7is an already-installed printer apparatus whose corresponding driver program is already installed in the PC10. Furthermore, it is assumed that the printer apparatus30ais a printer apparatus that is to be additionally introduced after the printer apparatus30b, i.e., the driver program corresponding to the printer apparatus30ais not installed in the PC10yet.

An exemplary process of additionally installing the driver program corresponding to the printer apparatus30ain the PC10in such a situation will be described below. For example, in response to a user operation on the PC10, the installer102in the PC10is started so that the process of installing the driver program corresponding to the printer apparatus30ais started.

When an instruction of installing the driver program corresponding to the printer apparatus30ais issued in response to, for example, a user operation, the installer102detects the apparatus type specifying information from the various apparatuses on the network40and acquires the detected apparatus type specifying information. According to the example shown inFIG. 7, the installer102detects sets of apparatus type specifying information31aand31bfrom the printer apparatuses30aand30bon the network40and acquires the detected sets of apparatus type specifying information31aand31b(step S10and step S11). The sets of apparatus type specifying information31aand31bare previously stored in recording media, such as registers or memories, of the printer apparatuses30aand30b.

The installer102transmits an apparatus type specifying information list including the sets of apparatus type specifying information31aand31bto the distribution server20(step S12). At step S12, the installer102identifiably transmits, to the distribution server20, the apparatus type specifying information31aon the printer apparatus30acorresponding to the driver program to be installed and the apparatus type specifying information31bon the printer apparatus30bwhose corresponding driver program is already installed in the PC10. For example, the installer102adds identifying information representing the driver program is to be installed to the sets of apparatus type specifying information31aand31band transmits the sets of apparatus type specifying information31aand31badded with the identifying information. As described above, the installer102functions also as an identifying unit that identifies the apparatus types represented by the sets of apparatus type specifying information31aand31band determines whether the process is to be performed on the apparatus types.

The apparatus type specifying information list and the identifying information that are transmitted from the PC10are received by the distribution server20and passed to the distribution service unit201. The distribution service unit201refers to the UI table203according to the received apparatus type specifying information list and acquires the UI types associated respectively with the sets of apparatus type specifying information31aand31bthat are contained in the apparatus type specifying information list (step S13).

The distribution service unit201acquires the UI type associated with the apparatus type specifying information31aon the printer apparatus30awhose corresponding driver program is required to be installed in the PC10. At the same time, the distribution service unit201acquires, from the various UI types stored in the UI table203, a UI type different from the UI type associated with the apparatus type specifying information31afrom among the UI types associated with the apparatus type specifying information contained in the apparatus type specifying information list that is transmitted from the PC10.

According to the example shown inFIG. 3, the UI type of “Type#A” is associated with the apparatus type specifying information31a(PRINTER(A)) on the printer apparatus30a. Furthermore, the UI type of “Type#B” is associated with the apparatus type specifying information31b(PRINTER(B)) on the printer apparatus30b. This represents that the UI type associated with the already-installed printer apparatus30bis different from the UI type associated with the printer apparatus30awhose driver program is required to be installed in the PC10.

Accordingly, the distribution service unit201transmits, to the PC10, the fact that the UI type corresponding to the printer apparatus30ato be additionally introduced is “Type#A” and the UI type corresponding to the already-installed printer apparatus30bis “Type#B” (step S14). At step S14, the distribution service unit201transmits, to the PC10, the UI types “Type#A” and “Type#B” in association with the apparatus type specifying information31aand the apparatus type specifying information31b, respectively.

The UI table203shown inFIG. 3stores the UI type of “Type#X” as a UI type different from the UI type associated with the printer apparatus30b. The apparatus type specifying information list transmitted from the PC10does not contain the apparatus type specifying information (PRINTER(F)) associated with the UI type of “Type#X”. Accordingly, the distribution service unit201excludes the UI type of “Type#X” from UI types to be transmitted to the PC10.

The UI types of “Type#A” and “Type#B” that are transmitted from the distribution service unit201are received by the PC10and passed to the installer102. The installer102passes each of the UI types of “Type#A” and “Type#B” received by the PC10to the screen generation unit103(step S15). According to the passed UI types of “Type#A” and “Type#B”, the screen generation unit103generates screen information on a selection screen on which a UI type to be used for the driver program to be installed is selected. The screen generation unit103displays the selection screen according to the generated screen information on the display1005via the display control unit1004.

FIG. 8shows an example of the selection screen generated by the screen generation unit103that can be used for the first embodiment. According toFIG. 8, a selection screen50includes a message display area500, a selection input section501, and buttons502and503.

A message that is represented by the installer102to the user is displayed on the message display area500. In this example, the UI type to be used differs between the driver program corresponding to the already-introduced printer apparatus30band the driver program corresponding to the printer apparatus30ato be additionally introduced. For this reason, as shown inFIG. 8, the screen generation unit103displays the message notifying the user of the fact on the message display area500.

The selection input section501accepts a user input for selecting a UI to be used for the driver program to be installed. According to the example shown inFIG. 8, the selection input section501displays an item of “Printer B” representing the already-introduced printer apparatus30band an item of “Printer A” representing the printer apparatus30ato be additionally introduced.

According to the example shown inFIG. 8, the selection input section501is configured by using a so-called combo box; however, the embodiment is not limited to this example. Alternatively, the selection input section501may be configured by using a so-called radio button. The default state of the selection input section501may be a state where the UI corresponding to the printer apparatus30ato be additionally introduced is selected.

The button502is a button for determining selection according to a user input made on the selection input section501. The button503is a cancel button. For example, by operating the button503, the process of installing the driver program corresponding to the printer apparatus30ato be additionally installed can be stopped.

The determination unit104acquires the user input made on the selection screen50and, according to the acquired user input, determines a UI type to be used for the driver program to be installed. The determination unit104passes information representing the determined UI type to the installer102(step S16). In order to prevent complexity, the “information representing the UI type” is referred to as the “UI type” in the descriptions below, unless otherwise denoted.

In other words, when the button502is operated on the selection screen50, the determination unit104determines a UI type corresponding to an item in a selected state from among the items of “Printer A” and “Printer B” as a UI type to be used for the driver program to be installed on the selection input section501and passes the UI type passed from the determination unit104to the installer102. The installer102transmits the UI type passed from the determination unit104to the distribution server20and issues a request for a driver (step S17).

The distribution server20receives the UI type transmitted from the installer102and passes the UI type to the distribution service unit201. The distribution service unit201generates a driver program based on the passed UI type and the apparatus type specifying information31aon the printer apparatus30awhose corresponding driver program is required to be installed in the PC10, which is the apparatus type specifying information31areceived from the installer102at step S12.

The generated driver program is transmitted from the distribution server20to the PC10(step S18). The PC10receives the driver program transmitted from the distribution server20and passes the driver program to the installer102. The installer102installs the passed driver program in the PC10(step S19).

The above-described process from step S16will be described more specifically below. As a first example, a case will be described where the UI type of the driver program corresponding to the printer apparatus30ato be additionally introduced matches the UI type that is selected by using the selection screen50. For example, it is assumed that, for the printer apparatus30ato be additionally introduced, the item of “Printer A” is selected on the selection screen50.

The UI type of “Type#A” corresponding to the item of “Printer A” is passed from the determination unit104to the installer102. The installer102transmits the UI type of “Type#A” to the distribution server20and issues a request for a driver program to the distribution server20(step S17). The distribution server20passes the received request for a driver program to the distribution service unit201.

According to the passed request for a driver program, the distribution service unit201fetches the UI unit corresponding to the UI type of “Type#A” from the driver storage unit204. The distribution service unit201further fetches, from the driver storage unit204, the driver main unit corresponding to the apparatus type specifying information31aon the printer apparatus30awhose corresponding driver program is required to be installed in the PC10. The driver main unit and the UI unit that are fetched by the distribution service unit201are combined by the combining unit211into one driver program and the driver program is transmitted to the PC10(step S18).

As a second example, a case will be described where the UI type of the driver program corresponding to the printer apparatus30ato be newly introduced and the UI type that is selected by the selection screen50differ from each other. For example, it is assumed that, for the printer apparatus30ato be additionally introduced, the item of “Printer B” representing the printer apparatus30bis selected on the selection screen50.

The installer102transmits the item of “Type#B” passed from the determination unit104corresponding to the item of “Printer B” to the distribution server20and issues a request for a driver program to the distribution server20(step S17). The distribution server20passes the received request for a driver program to the distribution service unit201.

According to the passed request for a driver program, the distribution service unit201fetches, from the driver storage unit204, the UI unit corresponding to the UI type of “Type#B” and the driver main unit corresponding to the apparatus type specifying information31aon the printer apparatus30awhose corresponding driver program is required to be installed in the PC10. The combining unit211generates combines the driver main unit and the UI unit, which are fetched, to generate a driver program.

In this case, the corresponding apparatus type differs between the UI unit and the driver main unit. For this reason, the driver program generated by the combining unit211is obtained by, for the driver main unit corresponding to the printer apparatus30awhose corresponding driver program is required to be installed in the PC10, replacing the UI unit with the UI unit of the already-introduced printer apparatus30b. In other words, the UI type of the generated driver program is the UI type of the driver program of the printer apparatus30band the driver main unit corresponds to the printer apparatus30a. The distribution service unit201transmits the driver program generated by the combining to the PC10(step S18).

As described above, according to the first embodiment, the UI of the driver program for the already-introduced printer apparatus30bcan be used for the UI of the driver program for the printer apparatus30ato be additionally introduced. This allows the user to perform an operation on the driver program corresponding to the printer apparatus30ato be additionally introduced in the same manner as the user performs an operation on the driver program corresponding to the already-introduced printer apparatus30b, which reduces the work of the user.

FIG. 9is an exemplary sequence chart of the sets of processing according to the first embodiment. The components shown inFIG. 9common withFIGS. 1, 2, 4 and 7are denoted with the same reference numerals as those shown inFIGS. 1, 2, 4 and 7to omit detailed descriptions of the components. For example, the installer102in the PC10is started and an instruction for installing a driver program corresponding to a specific apparatus (printer apparatus) is issued, so that the process according to the sequence shown inFIG. 9is started.

When an instruction for installing a driver program is issued, the installer102detects the apparatus type specifying information from each apparatus on the network40and acquires the detected apparatus type specifying information (steps S100and S101). In this example, the installer102acquires the sets of apparatus type specifying information31aand31bfrom the printer apparatuses30aand30b. The installer102identifiably transmits, to the distribution server20, the acquired apparatus type specifying information on all of the apparatuses, i.e., the apparatus type specifying information on an apparatus whose corresponding driver program is required to be installed in the PC10, and the apparatus type specifying information on an apparatus whose corresponding driver program is not to be installed but that is connected to the PC10via the network40. The distribution server20passes the received apparatus type specifying information to the distribution service unit201(step S102).

In the distribution service unit201, the UI specifying unit210refers to the UI table203according to the passed apparatus type specifying information and searches for the UI types that are associated respectively with the sets of apparatus type specifying information (step S103). At step S103, the UI specifying unit210lists up UI types different from the UI type associated with the apparatus type specifying information on the apparatus whose corresponding driver program is required to be installed in the PC10(step S104). The distribution service unit201transmits the list of the acquired UI types to the installer102(step S105).

The installer102passes the passed UI type list to the screen generation unit103. The installer102then generates the selection screen50for selecting a UI type to be used for the UI of the driver program to be installed from among the UI types contained in the UI type list (step S106). The determination unit104sends, as a response, the UI type selected according to a user operation on the selection screen50to the installer102as the selection result (step S107).

The installer102transmits the UI type shown by the selection result sent as a response from the determination unit104to the distribution server20. The distribution server20passes the received UI type to the distribution service unit201(step S108). In the distribution service unit201, the combining unit211fetches, from the driver storage unit204, the UI unit corresponding to the passed UI type and the driver main unit of the driver program corresponding to the apparatus required to be installed in the PC10and combines the UI unit and the driver main unit that are fetched to generate one driver program (step S109).

The distribution service unit201transmits the driver program generated by the combining unit211to the PC10. The PC10passes the received driver object to the installer102(step S110). The installer102then installs the passed driver program in the PC10(step S111).

Process of Replacing UI UNIT

A process of replacing a UI unit performed by the combining unit211will be described here.FIGS. 10A and 10Bshow exemplary UIs of different UI types. According toFIG. 10A, a UI screen60includes a tab unit600including multiple tabs and a setting area601including multiple input areas. Specifying a desired tab from among the multiple tabs provided to the tab unit600on the UI screen60, the UI screen60allows switching the content of the setting area601to the content corresponding to the specified tab.

On the other hand, according toFIG. 10B, a UI screen61includes a tab unit610including multiple tabs and a tab screen area611. The tab screen area611further includes a sub-tab unit620including multiple tabs and a setting area621. By specifying a desired tab from among the multiple tabs provided to the tab unit610, the content of the multiple tabs provided to the sub-tab unit602can be switched to the content corresponding to the specified tab. By specifying a desired tab from among the multiple tabs provided to the tab part610, the content of the setting area621can be switched to the content corresponding to the specified tab.

On the UI screen61, the tabs of the tab unit600on the UI screen60and the content of various setting areas601corresponding to the respective tabs, so the setting items are selectable in stages. In other words, the UI screen60and the UI screen61present common setting items to the user by using different UI types.

For example, a case will be assumed where the driver program corresponding to the already-introduced printer apparatus30bhas the UI screen60shown inFIG. 10Aand the driver program corresponding to the printer apparatus30ato be additionally introduced has the UI screen61shown inFIG. 10B. In this case, when the user uses the printer apparatus30avia the PC10, it is necessary to additionally obtain a method of operating the UI screen61different in configuration from the existing UI screen60, which may be burdensome.

Various elements constituting the UI, such as the tabs, the tab unit that is an assembly of tabs, each input area, and the message display area, are referred to as the “UI parts” or simply as “parts”.

FIG. 11is an exemplary configuration of the UI unit. The UI unit includes a UI generation unit400, UI layout information401, and function setting information402. The UI layout information401contains various setting values relating to the screen display of the UI part. The function setting information402contains various setting values that are set by the respective UI parts in the driver main unit. The UI generation unit400is a program that runs on the CPU2001of the distribution server20and, by reading the UI layout information401and the function setting information402, the UI generation unit400generates a UI according to the setting values contained in each set of information.

FIG. 12shows an example of the UI layout information401. Unless otherwise denoted, the top number of each row represents the row number for explanation and the following semi-colon of (:) distinguishes the number and the code representing the main data. The code exemplified inFIG. 12is a pseudocode imitating the method of describing C language that is generally used as a programming language.

As shown inFIG. 12, the first row represents that the UI layout information401is described between the bracket of “{” in the first row and the bracket “}” corresponding to the bracket “{” in the seventeenth row. Information for defining the parts displayed on the UI screen is described in the section between the bracket “[” in the fourth row that is indented by one space with respect to the brackets in the first and seventeenth rows and the bracket “]” in the 16th row corresponding to the bracket “[”.

Furthermore, parts information that defines the UI parts is described in the section between the set of the bracket “{” indented by one space with respect to the brackets in the fourth row and the 16th row and the bracket “}” corresponding to the bracket “{”. According to the example shown inFIG. 12, a set of parts information is described in each of the section between the fifth row and the ninth row and the section between the 10th row and the 14th row. The items for defining the parts information are described with “,” (comma) that sections the items.

The items of “type”, “name” and “params” are described in the section between the fifth row and the ninth row. The item of “type” represents the type of part on whether the part is a combo box or a radio button. The item of “name” represents the name for association with the item of the function setting information402, which will be described below. The item of “params” represents the set of coordinates (x, y) and the size (width) at and in which the part is disposed. The set of coordinates (x, y) represents the set of coordinates of the origin of the part. For example, the origin is a set of coordinates on the upper left corner of the part that is defined by a rectangle, the x-coordinate increases rightward and the y coordinate increases downward. This example represents that the part represented in the section between the fifth row and the ninth row is a part where the type is “ComboBox”, the name is “orientation”, the set of coordinates of (x,y) is “25,22”, and the width is 174.

Similarly, it is represented that the part represented between the 10th and 14th rows is a part where the type is “ComboBox”, the name is “colorbw”, the set of coordinates of (x, y) is “228,22”, and the width is 174.

FIG. 13shows an example of the function setting information402. The code exemplified inFIG. 13is described by using extensible markup language (XML) that is one of markup languages that define and describe the meaning and structure of data by using tags. The first row inFIG. 13represents that the data is described by using XML. The second row represents the version information of the data.

The tag of “item” is described in the section between the third and sixth rows that are indented by one space with respect to the second row to define one function. Similarly, one function is defined in the section between the seventh and 10th rows.

According to the description in the third to sixth rows, the third row contains the items of “category”, “name”, “default” and “type”. The item of “name” represents a name defining a function, and the item of “name” may be used also as a key for association with the item of “name” of the UI layout information401described above with reference toFIG. 12. The item of “default” represents a default value. The item of “type” represents the type of input, such as an input selected from choices or a free input. For example, the value of the item of “type” is “pickone” in the case of an input selected from choices, or is “text” in the case of a free input.

When the value of the item of “type” is “pickone” and an input selected from choices is specified, indentation by one space is performed from the next row to specifically define the choices. According to the example shown inFIG. 13, in the fourth and fifth rows, each of the value of “color” and the value of “blackandwhite” is shown as the item of “pickone name”. Accordingly, it is represented that there are two choices of “color” and “blackandwhite” for the input represented by the value of pickone” in the item of “type” in the third row.

Similarly to the third to sixth rows, the seventh to 10th rows represent the definition of function.

The UI generation unit400associates the value of the item of “name” contained in the UI layout information401and the value of the item of “name” contained in the function setting information402with each other, generates a UI part according to the sets of coordinates contained in the UI layout information401, and configures a UI screen. Such a system allows a change only in the UI screen without changing the function setting item.

The process of combining the driver main unit of the driver program to be additionally installed and the UI unit of the already-introduced driver program will be described here. It is assumed that, on the selection screen50shown inFIG. 8, the UI screen of the already-introduced driver program is specified as one used for the UI screen of the driver program to be additionally introduced. Depending on the specifying, the process of replacing the first UI unit of the driver program to be additionally introduced with the second UI unit of the already-introduced driver program. In this case, the first UI unit may be provided with a part not existing in the second UI unit.

It is assumed that the second UI unit is assumed to have the UI layout information401. The UI layout information401illustrated inFIG. 14contains only the part for displaying a combo box. On the other hand, it is assumed that the first UI unit has the function setting information402that defines the two functions. In this case, the UI layout information401shown inFIG. 14and the function setting information402shown inFIG. 13are combined.

While the function setting information402shown inFIG. 13defines the two functions, the UI layout information401shown inFIG. 14contains only one part. For this reason, according to the UI layout information401, the part of one of the two functions in the function setting information402shown inFIG. 13cannot be displayed on the UI screen. According to the example shown inFIGS. 13 and 14, there is no definition of the UI layout information401shown inFIG. 14for the function represented by “name=“colorbw”” that is contained in the function setting information402shown inFIG. 13. Thus, according to the UI layout information shown inFIG. 14, the part relating to the function represented by “name=“colorbw”” is not displayed.

The UI generation unit400has information representing the size of each part by default, i.e., has default parameter data. The UI generation unit400adds and disposes a part defined by the function setting information402, but not defined by the UI layout information401, under the part that is defined by the UI layout information401according to the calculation based on the size information and that is disposed at the lowest position.

FIG. 15is a flowchart of an exemplary process for configuring a UI unit from UI layout information and function setting information that can be used for the first embodiment. Each set of processing shown inFIG. 15is performed by the UI generation unit400. It is assumed that the UI generation unit400is common between the first UI unit and the second UI unit.

At step S20, the UI generation unit400acquires the UI layout information401from the second UI unit whose UI screen is specified to be used. At step S21, the UI generation unit400acquires the function setting information402from the first UI unit that originally corresponds to the driver program to be additionally introduced and, at step S22, checks the function contained in the acquired function setting information402.

At the next step S23, the UI generation unit400determines whether there is a function whose corresponding part is specified but not in the UI layout information401. Upon determining that there is no function for which there is no corresponding part, the UI generation unit400moves the process to step S26and generates a UI according to the UI layout information401. In this case, the UI according to the UI layout information401acquired at step S20is generated. When a UI is generated at step S26, the sets of processing of the flowchart shown inFIG. 15are ended.

At step S23, upon determining that there is a function for which there is no corresponding part, the UI generation unit400moves the process to step S24. At step S24, according to the default parameters that the UI generation unit400has in advance, the UI generation unit400generates a part (additional part) corresponding to the function for which there is no corresponding part and generates the set of coordinates of the origin of the part. The UI generation unit400updates the UI layout information401by, for example, embedding the parameters of the generated part in the UI layout information401.

At the next step S25, the UI generation unit400determines whether the process on all functions for which there is no corresponding part ends. Upon determining that there is still a function for which there is no corresponding part, the UI generation unit400returns the process to step S24to generate a part and an origin for the next function for which there is no corresponding part.

On the other hand, upon determining that the process on all functions for each of which there is no corresponding part ends, the UI generation unit400moves the process to step S26to generate a UI according to the UI layout information401. In this case, a UI according to the UI layout information401that is updated at step S24is generated. When the UI is generated at step S26, the sets of processing of the flowchart shown inFIG. 15are ended.

The process of generating an additional part at step S24will be described more specifically by using the examples shown inFIGS. 13 and 14. In this case, it is necessary to add a part corresponding to the function represented by “name=“colorbw”” that is contained in the function setting information402shown inFIG. 13(referred to as the function of “colorbw”) to the UI layout information401shown inFIG. 14.

The UI layout information401shown inFIG. 14contains only one part for which the value of the item of “name” is “orientation” and this part serves as the part disposed at the lowest position. Furthermore, the value of the item of “params” represents that the part of “orientation” is disposed at the origin at the set of coordinates at the set of coordinates (25, 22) that is the origin.

On the other hand, the function setting information402acquired at step S21(seeFIG. 13) represents that the part for which the value of the item of “name” is “colorbw” has the value of “pickone” as the item of “Type”. With reference to the default parameters shown inFIG. 16, as for the value of “pickone” of the item of “Type”, the type of the part is a combo box, the height is 300 dots, and the width is 174 dots.

Accordingly, the UI generation unit400adds 30 dots corresponding to the height with respect to the origin at the set of coordinates (25, 22) of “orientation” to the y coordinate to obtain the origin of the part corresponding to the function of “colorbw”. According to the function setting information402, the UI generation unit400knows that, as for the function of “colorbw”, the type of input is “pickone” according to the item of “Type”. Accordingly, based on the value of “pickone” of the item of “Type” in the default parameters, the UI generation unit400generates the part corresponding to the type of “ComboBox” according to the item of “Window Controll” and associates the generated part with the setting item of the function of “colorbw”.

In this manner, it is possible to generate the UI layout information401where the part corresponding to the function of “colorbw” is disposed under the part corresponding to the function of “orientation”. Thereafter, the UI generation unit400can generate a UI to which a function is added by performing normal UI generation processing.

Second Embodiment

A second embodiment of the present invention will be described here. According to the first embodiment, whether to use the first UI unit of the already-introduced printer apparatus30b, or use the original second UI unit of the driver program of the printer apparatus30a, as the UI unit of the driver program corresponding to the printer apparatus30ato be additionally introduced is determined by selection performed by the user. Meanwhile, according to the second embodiment, which one of the first UI unit and the second UI unit is used is automatically selected according to the information on the UI units.

More specifically, according to the second embodiment, the version information on the UI unit of the driver program is used as the information on the driver program. The version information is, for example, information corresponding to the release date of the UI unit and the value of the information increases according to the ascending order of the release date.

FIG. 17shows the flow of an installation process according to the second embodiment, the components shown inFIG. 17common withFIG. 7are denoted with the same reference numerals as those shown inFIG. 7to omit detailed descriptions. Furthermore, because the functions of the PC10and the distribution server20shown inFIG. 17are approximately the same as those of the first embodiment described with reference toFIGS. 2 and 4, detailed descriptions thereof will be omitted. Similarly, because the configurations according to the first embodiment that are described with reference toFIGS. 5 and 6can be directly used for the hardware configuration of the PC10and the distribution server20, detailed descriptions thereof will be omitted. Furthermore,FIG. 17shows functions particularly closely tied to the installation process from among various functions of the PC10and the distribution server20and other functions are omitted.

According toFIG. 17, the distribution server20includes the distribution service unit201and a UI table203′.FIG. 18shows an example of the UI table203′ according to the second embodiment. As exemplified inFIG. 18, the UI table203′ according to the second embodiment stores the apparatus type specifying information (apparatus type name) and the version information on the UI unit used for the driver program associated with the apparatus type specifying information in association with each other. The version information on the UI unit will be referred to as the “UI version” below.

According to the example shown inFIG. 18, the UI version of “Ver#2” is associated with the apparatus type specifying information of “PRINTER(A))”. Similarly, the UI version of “Ver#1” is associated with the apparatus type specifying information of “PRINTER(B))” and the UI version of “Ver#2” is associated with the apparatus type specifying information of “Printer(E))”. As described above, multiple sets of apparatus type specifying information can be associated with a UI version. It is assumed that the UI version of “Ver#2” is newer that the UI version of “Ver#1”. The UI version is updated when, for example, at least one of the UI layout information401and the function setting information402contained in the UI unit is updated.

Similarly to the example shown inFIG. 7, according to the example shown inFIG. 17, it is assumed that the printer apparatus30bis an already-introduced printer apparatus, the printer apparatus30ais an apparatus to be additionally introduced, and the driver program corresponding to the printer apparatus30ais not introduced in the PC10yet.

For example, in response to a user operation on the PC10, the installer102in the PC10starts, so that the process of installing the driver program corresponding to the printer apparatus30ais started. Once the installation process starts, the installer102detects the apparatus type specifying information from each apparatus on the network40and acquires the detected apparatus type specifying information (step S30and step S31). According to this example, the installer102acquires the sets of apparatus type specifying information31aand31bfrom the respective printer apparatuses30aand30bon the network40.

The installer102transmits the apparatus type specifying information list including the acquired sets of apparatus type specifying information31aand31bto the distribution server20(step S32). Here, similarly to the example shown inFIG. 7, the apparatus type specifying information31aon the printer apparatus30aand the apparatus type specifying information31bon the printer apparatus30bare transmitted identifiably to the distribution server20.

The apparatus type specifying information list and the identifying information that are transmitted from the PC10are received by the distribution server20and are passed to the distribution service unit201. The distribution service unit201refers to the UI table203′ according to the received apparatus type specifying information list and acquires the UI versions that are associated respectively with the sets of apparatus type specifying information31aand31bthat are contained in the apparatus type specifying information list (step S33).

The distribution service unit201acquires the UI version associated with the apparatus type specifying information31afrom the UI table203′. At the same time, the distribution service unit201determines whether a UI version older than the UI version associated with the apparatus type specifying information31ais contained in the UI versions associated with the sets of apparatus type specifying information contained in the apparatus type specifying information list transmitted from the PC10. Upon determining that such an old UI version is contained, the distribution service unit201replaces the UI unit of the driver program corresponding to the printer apparatus30awhose corresponding driver program is required to be installed in the PC10with the UI unit of the old UI version.

The distribution service unit201transmits the driver program whose UI unit has been replaced to the PC10(step S34). The PC10receives the driver program transmitted from the distribution server20and passes the driver program to the installer102. The installer102installs the passed driver program in the PC10(step S35).

FIG. 19is a flowchart specifically showing the exemplary process performed by the distribution server20according to the second embodiment. In the distribution server20, at step S40, the distribution service unit201receives the apparatus type specifying information list transmitted from the PC10and acquires, from the received list, the apparatus type specifying information on the printer apparatus30awhose corresponding driver program is required to be installed in the PC10.

At the next step S41, the distribution service unit201determines whether there is a UI version that has not been compared among UI versions stored in the UI table203′. Upon determining that there is no UI version that has not been compared, the distribution service unit201moves the process to step S44. When, for example, only one printer that is the printer apparatus30ais connected the PC10, it is determined that there is no UI version that has not been compared.

At step S44, the distribution service unit201selects the UI version associated with the apparatus type specifying information that is acquired at step S40as the UI version to be used for the UI unit of the driver program to be installed. Once the process at step S44ends, the distribution service unit201moves the process to step S45.

On the other hand, upon determining that there is a UI version not having been compared, the distribution service unit201moves the process to step S42. At step S42, the distribution service unit201determines whether there is the apparatus type specifying information with to which a UI version older than the UI version associated with the apparatus type specifying information acquired at step S40is associated. Upon determining that there is not such apparatus type specifying information, the distribution service unit201moves the process to step S44.

On the other hand, upon determining that there is such apparatus type specifying information at step S42, the distribution service unit201moves the process to step S43. At step S43, the distribution service unit201selects the oldest UI version from among the UI versions associated with the sets of apparatus type specifying information corresponding to apparatuses whose corresponding driver programs are not to be installed in the PC10that are contained in the apparatus type specifying information list received from the PC10at step S40. Upon selecting the UI version, the distribution service unit291moves the process to step S45.

At step S45, the distribution service unit201packages the configuration data of the UI unit corresponding to the UI version selected at step S43or step S44in the driver program to be installed in the PC10. At the next step S46, the distribution service unit201distributes the driver program in which the configuration data of the UI unit is packaged at step S45to the PC10.

As described above, according to the second embodiment, according to the UI version, it is determined whether to replace the UI unit of the driver program to be installed in the PC10with the UI unit whose UI version is older than that of the UI unit of the driver program originally to be installed. For this reason, the work of the process of installing the driver program corresponding to the printer apparatus30ato be additionally installed and the driver program and of operations on the installed driver program is reduced.

Third Embodiment

A third embodiment of the invention will be described here. The third embodiment is an example where a printer apparatus contains the function of the distribution server20and part of the function of the PC10according to the first and second embodiment that are described above.

FIG. 20shows an exemplary configuration of an information processing system according to the third embodiment. According toFIG. 1, the information processing system includes at least one PC, that is PCs10a,10band10c, and the multiple printer apparatuses30eand30fthat are all communicably connected to one another via the network40, such as a LAN. According toFIG. 20, the PCs10a,10band10care shown also respectively as “PC(A)”, “PC(B)” and “PC(C)”. Similarly, the printer apparatuses30eand30fare shown also respectively as “PRINTER(E)” and “PRINTER(F)”.

FIG. 20shows the example where the information processing system includes the three PCs10a,10band10cand the two printer apparatuses30eand30f; however the embodiment is not limited to this example. In other words, the information processing system according to the second embodiment may include only one or two PCs or include four or more PCs. Furthermore, the information processing system may include three or more printer apparatuses. Furthermore, part or all of the multiple printer apparatuses of the information processing system may be MFPs. Furthermore, the network40may use wired or wireless communications.

As for the configuration shown inFIG. 20, it is assumed that the printer apparatus30fis already connected to the network40and the driver program corresponding to the printer apparatus30fis already installed in at least one of the PCs10ato10c. On the other hand, it is assumed that the printer apparatus30eis additionally connected to the network40and the driver program corresponding to the printer apparatus30eis not installed in any of the PCs10ato10c.

Furthermore, schematically, at least one of the printer apparatuses30eand30f(here, the printer apparatus30e) includes part of the above-described functions of the distribution server20and the PC10according to the first embodiment. In the second embodiment, a process of installing a driver program corresponding to the printer apparatus30ein the PCs10ato10cis performed via the printer apparatus30e.

FIG. 21is an exemplary functional block diagram for explaining the functions of the printer apparatus30eaccording to the third embodiment. According toFIG. 21, the printer apparatus30eincludes an installation control unit300, a determination unit301, a transmitter/receiver302, a UI table303, a storage control unit304, and apparatus type specifying information31e. From among them, the installation control unit300, the determination unit301and the transmitter/receiver302can be configured by using a program that runs on a CPU. Alternatively, part or all of the installation control unit300, the determination unit301and the transmitter/receiver302may be configured by using hardware.

The installation control unit300controls the process of installing the driver program in each of the PCs10ato10cperformed by the printer apparatus30e. The installation control unit300includes a UI function for presenting information to the user and accepting a user operation in the printer apparatus30e. The installation control unit300also includes functions equivalent to the UI specifying unit210and the combining unit211, which are described above with reference toFIG. 2, and a function equivalent to the acquisition unit111, which is described above with reference toFIG. 4.

When there are multiple PCs serving as candidate of PC in which the driver program corresponding to the printer apparatus30eis to be installed, the determination unit301determines a PC in which the driver program is to be installed. The transmitter/receiver302transmits/receives data via the network40.

The UI table303corresponds to the UI table203described with reference toFIG. 3. The UI table303is a table that associates sets of apparatus type specifying information that identify printer apparatuses and UI types. Here, for explanation, it is assumed that the UI table303associates UI types of “TYPE#A”, “TYPE#B”, “TYPE#A” and “TYPE#X” respectively with the printers (E) to (H).

The storage control unit304controls storing data in a non-volatile storage medium, such as a hard disk drive or a flash memory, and reading data from the storage medium. The storage medium for the storage control unit304stores at least a driver program for controlling the printer apparatus30evia each of the PCs10ato10cand data for configuring the UI unit that is used for the driver program. The data for configuring the UI unit includes the UI layout information401and the function setting information402. The data may further contain the UI generation unit400.

The storage medium for the storage control unit304may further store image data of a display image displayed by the UI unit that is used from the driver program. For the display image, for example, an image obtained by scaling down the UI screen displayed by the UI unit can be used. The display image is created in advance according to the UI layout information401and the function setting information402that configures the UI unit and is stored in association with each UI unit in the storage medium.

The apparatus type specifying information31eis information for identifying the apparatus type of the printer apparatus30eand, for example, a PnP name may be used. The apparatus type specifying information31emay be stored in the storage medium for the storage control unit304or may be stored in advance in the ROM of the printer apparatus30e.

FIG. 22is an exemplary functional block diagram for explaining the functions of the PC10athat can be used for the third embodiment. The configuration shown inFIG. 22may be used similarly to the PCs10band10c. According toFIG. 22, the PC10aincludes the transmitter/receiver101and an installer102a. The transmitter/receiver101and the installer102amay be configured by using a program that runs on a CPU. Alternatively, part or all of the transmitter/receiver101and the installer102amay be configured by using hardware.

The transmitter/receiver101transmits/receives data via the network40. The installer102acorresponds to the installer102described with reference toFIG. 4. The installer102aperforms the process of installing the driver program in the PC10a.

The installer102aincludes an installation processing unit110aand an application programming interface (API)112. The API112is an interface for the installation processing unit110a. The API112is capable of controlling the installation processing unit110aaccording to, for example, an instruction that is transmitted via the network40.

FIG. 23shows an exemplary hardware configuration of the printer apparatus30ethat can be used for the third embodiment. According to the example shown inFIG. 23, the printer apparatus30ehas a configuration in which a controller3100and an image formation engine3040are connected via a peripheral component interface (PCI) bus. The controller3100performs various types of control, such as control on the whole printer apparatus30e, drawing control, and control on input and display on the operation display unit3010. The image formation engine3040is, for example, a printer engine connectable to the PCI bus. The image formation engine3040includes, for example, a black and white plotter, a single-drum color plotter, and a four-drum color plotter. The image formation engine3040includes, in addition to so-called engine components, such as those plotters, an image processing component that performs error distribution or gamma conversion.

The controller3100includes a CPU3000, a north bridge (NB)3002, a system memory (MEM-P)3001, a south bridge (SB)3003, a local memory (MEM-C)3006, an application specific integrated circuit (ASIC)3005, and a hard disk drive (HDD)3007. The NB3002and the ASIC3005are connected via an accelerated graphics port (AGP) bus3004. The MEM-P3001includes a ROM3001aand a RAM3001b.

The CPU3000controls the whole printer apparatus30e. The CPU3000has a chipset consisting of the NB3002, the MEM-P3001and the SB3003. The CPU3000is connected to other devices via the chipset.

The NB3002is a bridge for connecting the CPU3000to the MEM-P3001, the SB3003and the ASIC3005. The NB3002includes a memory controller that controls read/write from/to the MEM-P3001, a PCI master, and an AGP target.

The MEM-P3001is a system memory that is used as a memory for storing programs and data, a memory for loading programs and data, a drawing memory for printer, etc. The MEM-P3001includes the ROM3001aand the RAM3001b. The ROM3001ais a memory dedicated to reading that is used as a memory for storing programs and data. The RAM3001bis a memory for loading programs and data and a readable/writable memory that is used as a drawing memory for printer. Reading/writing from/to the MEM-P3001can be controlled by the above-described storage control unit304.

The SB3003is a bridge for connecting the NB3002to the PCI device and peripheral devices. The SB3003is connected to the NB3002via a PCI bus. A communication I/F3050that performs communications via the network40is connected to the PCI bus.

The ASIC3005is an integrated circuit (IC) used for for image processing that has hardware components for image processing. The ASIC3005functions as a bridge that connects the AGP3004, the PCI bus, the HDD3007, and the MEM-C3006to one another. The ASIC3005includes a PCI target, an AGP master, an arbiter serving as the core of the ASIC3005, a memory controller that controls the MEM-C3006, and multiple direct memory access controllers (DMAC) that, for example, rotates image data by using, for example, a hardware logic, and a PCI unit that performs data transfer to/from the image formation engine3040via the PCI bus. A data I/F3030is connected to the ASIC3005via the PCI bus. For example, a USB can be used for the data I/F3030.

The operation display unit3010is directly connected to the ASIC according to the example shown inFIG. 23. The operation display unit3010includes an input device that accepts a user input and a display device that displays information by using, for example, a liquid crystal display (LCD). The operation display unit3010may include an input device using a hardware key or may be configured as a so-called touch panel in which an input device and a display device are integrally configured. The UI of the installation control unit300is used for the operation display unit3010.

The MEM-C3006is a local memory that is used as an image buffer or a code buffer. The HDD3007is a storage for storing data that, for example, accumulates image data, programs, font data, and forms. The above-described storage control unit304can control read/write in/from the HDD3007. The UI table303is stored in the HDD3007.

The above-described installation control unit300, the determination unit301, and the transmitter/receiver302are implemented by using the program that runs on the CPU3000. The program may be previously stored in the ROM3001aor the HDD3007and thus provided. Alternatively, the program may be stored in a computer that is connected to the network40to which the communication I/F3050is connected and the program may be configured to be downloaded by the PC10via the network40and thus provided. The program may be configured to be provided or distributed via the network40.

Furthermore, the program may be recorded in a computer-readable recording medium, such as a CD or a DVD, in a file in an installable form executable form and thus provided. In this case, the program is provided to the printer apparatus30evia, for example, an external driver device or an external computer that is connected to the data I/F3030.

The program has a module configuration including, for example, the above-described units (the installation control unit300, the determination unit301and the transmitter/receiver302). As for practical hardware, the CPU3000reads the program from the HDD3007and executes the program so that the above-described units are loaded into the main storage device (such as the RAM3001b), so that the units are generated in the main storage device.

With reference toFIG. 24, the installation process according to the third embodiment will be described schematically. As shown inFIG. 24, in the printer apparatus30e, the installation control unit300causes the transmitter/receiver302to communicate with another printer apparatus that is the printer apparatus30fconnected to the network40to acquire the apparatus type specifying information31fof the printer apparatus30f. For example, according to a user operation, the installation control unit300determines a UI type to be used for a driver program to be installed in a PC (the PC10a) according to the acquired apparatus type specifying information31fand the apparatus type specifying information31eof the printer apparatus30e.

When the determined UI type is different from the UI type that is associated with the apparatus type specifying information31eof the printer apparatus30e, the installation control unit300replaces the UI unit of the driver program. The installation control unit300transmits the driver program whose UI unit has been replaced to the PC10ato which the driver program is to be installed. The installer102ainstalls the driver program transmitted from the printer apparatus30einto the PC10a.

FIG. 25is a sequence chart of a set of processing according to the third embodiment. Components shown inFIG. 25that are common with the components shown inFIGS. 21, 22 and 24are denoted with the same reference numerals as those shown inFIGS. 21, 22 and 24to omit detailed descriptions. In order to avoid complication,FIG. 25shows only main function units of the PC10aand the PCs10band10care omitted.

In the printer apparatus30ethat is additionally connected to the network40, in response to a user operation on the operation display unit3010, the installation control unit300starts the process of installing the driver program for controlling the printer apparatus30ein the PCs10ato10c. The installation control unit300issues, to the transmitter/receiver302, an instruction for acquiring apparatus type specifying information of another printer connected to the network40(step S200). According to the instruction, the transmitter/receiver302communicates with each printer apparatus that is connected to the network40, detects the apparatus type specifying information of each printer apparatus, and acquires the apparatus type specifying information (step S201). According to the example shown inFIG. 24, depending on the communications with the printer apparatus30f, the transmitter/receiver302detects and acquires the apparatus type specifying information31f. The transmitter/receiver302passes the acquired apparatus type specifying information31fto the installation control unit300(step S202).

The installation control unit300passes, to the determination unit301, the apparatus type specifying information31ereceived from the transmitter/receiver302(step S203). The determination unit301acquires the apparatus type specifying information of the printer apparatus30e(step S204). Furthermore, the determination unit301refers to the UI table303according to the apparatus type specifying information31freceived from the transmitter/receiver302and performs searching on whether a UI type different from the UI type associated with the apparatus type specifying information31eis associated with the apparatus type specifying information31f(step S205).

As described above, in the UI table303, the UI type of “Type#A” is associated with the apparatus type specifying information31eof the printer apparatus30e(PRINTER(E)). Furthermore, the UI type of “Type#X” is associated with the apparatus type specifying information31fof the printer apparatus30f(PRINTER(F)). This represents that the associated UI type differs between the printer apparatus30ethat performs the process of installing the driver program and another printer apparatus that is the printer apparatus30f.

On the network40, the sets of apparatus type specifying information corresponding to PRINTER(G) and PRINTER(H) that are stored in the UI table303are not detected. In this case, the determination unit301ignores the UI types associated respectively with the PRINTER(G) and PRINTER(H). Furthermore, in the UI table303, the UI type of “Type#X” is stored as a UI type different from the UI type associated with the printer apparatus30e. However, the apparatus type specifying information list that is transmitted from the PC10does not contain the apparatus type specifying information (PRINTER(H)) associated with the UI type of “Type#X”. For this reason, the determination unit301also ignores the UI type of “Type#X”.

The determination unit301passes the result of searching at step S205to the instillation control unit300(step S206). More specifically, according to the above-describe example, the determination unit301passes, as a choice of UI unit, the UI type of “Type#B” that is different from the UI type of “Type#A” and that corresponds to the apparatus type identifying information of an apparatus that is connected to the printer apparatus30evia the network40(in this case, the apparatus type specifying information31f) to the installation control unit300(step S207).

According to the UI type of “Type#B” that is passed from the determination unit301and the UI type of “Type#A” of the UI unit contained in the driver program corresponding to the printer apparatus30e, the installation control unit300generates a UI of the selection screen for selecting a UI type to be used for the driver program corresponding to the printer apparatus30eand displays the UI on the operation display unit3010. Here, the installation control unit300acquires image data representing display images of the UI types of “Type#A” and “Type#B” from the storage medium (step S208and step S209) and displays the images based on the acquired respective sets of image data on the selection screen (step S210).

FIG. 26shows an example of a selection screen51capable of displaying an image of a display image of each UI type. According toFIG. 26, the selection screen51includes a message display area510, a selection input section511, and buttons512and513. On the message display area510, a message that is represented by the instillation control unit300to the user is displayed. The content of message is the same as that shown on the message display area500described with reference toFIG. 8and thus the same descriptions will be omitted.

The selection input section511accepts a user input for selecting a UI to be used for the driver program to be installed. According to the example shown inFIG. 26, the item of “Printer E” representing the already-introduced printer apparatus30eand the item of “Printer F” representing the printer apparatus30fto be additionally introduced are displayed on the selection input section511, and any one of the items is selected by using a radio button.

The selection input section511is provided with image display areas511aand511bat positions (in this example, the y coordinates) corresponding respectively to the items of “Printer E” and “Printer F”. On the image display area511a, an image according to the image data that is stored in, for example, the MEM-P3001or the HDD3007in association with the UI unit corresponding to the item of “Printer E” is displayed. Similarly, on the image display area511b, an image according to the image data that is stored in, for example, the MEM-P3001or the HDD3007in association with the UI unit corresponding to the item of “Printer F” is displayed.

As described above, displaying display images of UIs allows the user to intuitively select the item of “Printer E” or the item of “Printer F”, which is preferable.

The button512is a button for determining selection according to a user input made on the selection input section511. The button513is a cancel button. For example, by operating the button513, the process of installing the driver program corresponding to the printer apparatus30eto be additionally introduced can be stopped.

Alternatively, for example, the selection screen50described with reference toFIG. 8may be used as the selection screen.

FIG. 25will be refereed back here. The determination unit301acquires the user input made on the selection screen51and, according to the acquired user input, determines a UI type to be used for the driver program corresponding to the printer apparatus30e. The determination unit301passes information representing the determined UI type to the instillation control unit300.

Upon receiving the UI type from the determination unit301, the installation control unit300issues, to the transmitter/receiver302, an instruction for detecting and listing up PCs having the installer102installed therein from among the PCs10ato10con the network40(step S211) According to this instruction, the transmitter/receiver302invokes the API112of each of the PCs10ato10c(step S212). In each of the PCs having the installer102ainstalled therein among the PCs10ato10c, the API112in the installer102amakes a response to the request (step S213).

The response made by the API112of each of the PCs10ato10cis transmitted to the printer apparatus30eand received by the transmitter/receiver302. The transmitter/receiver302passes a list of PCs, among the PCs10ato10c, from which responses have been received to the installation control unit300(step S214). For information representing the PCs, the names or internet protocol (IP) addresses of the PCs on the network40may be used.

According to the information passed from the transmitter/receiver302, the installation control unit300generates a UI of a PC selection screen containing a PC list for selecting a PC in which the driver program corresponding to the printer apparatus30eis to be installed and displays the UI on the operation display unit3010(step S215).

FIG. 27shows an exemplary PC selection screen according to the third embodiment. According toFIG. 27, a PC selection screen52includes a message display area520, a PC selection area521, and buttons522and523.

On the message display area520, a message represented by the installation control unit300to the user is displayed. According to this example, the installation control unit300displays a message urging selection of a PC in which the driver program corresponding to the printer apparatus30eis to be installed on the message display area520.

On the PC selection area521, information on the PCs listed up by the transmitter/receiver302is displayed in a list. According to the example shown inFIG. 27, on the PC selection area521, information on one PC is displayed on a record containing items of “PC NAME”, “IP ADDRESS” and “Comment”. On the item of “PC name”, for example, the name of the PC on the network40is displayed. On the item of “IP address”, the IP address of the PC on the network40is displayed. On the item of “Comment”, supplementary information on the PC is displayed.

For example, it is assumed that each of the PCs10ato10chas the installer102ainstalled therein. In this case, as exemplified inFIG. 27, PC names of “PC A”, “PC B” and “PC C” corresponding respectively to the PCs10ato10cand IP addresses of the respective PCs are displayed in the respective records.

The button522is a button for determining selection according to a user input made on the PC selection area521. The button523is a cancel button. For example, by operating the button523, the process of installing the driver program corresponding to the printer apparatus30eto be additionally introduced can be stopped.

The installation control unit300acquires the user input made on the PC selection screen52and, according to the acquired user input, determines a PC in which the driver program corresponding to the printer apparatus30eis to be installed. Here, it is assumed that the PC10ais selected as a PC in which the driver program corresponding to the printer apparatus30eis to be installed. On the PC selection screen52, it is possible to select multiple PCs as PCs in which the driver program corresponding to the printer apparatus30eis to be installed.

Descriptions will refer back toFIG. 25here. Upon determining a PC in which the driver program is to be installed, as described above, for example, data that configures the UI unit corresponding to the UI type selected on the selection screen51and the driver program corresponding to the printer apparatus30eare acquired from, for example, the MEM-P3001or the HDD3007via the storage control unit304(step S216). The installation control unit300combines the data configuring the UI unit fetched via the storage control unit304from the MEM-P3001or the HDD3007and the program main unit that the driver program includes (step S217).

The installation control unit300passes, to the transmitter/receiver302, an instruction for installing the driver program that is generated by this combining to the PC10athat is selected on the PC selection screen52(step S218). According to this instruction, the transmitter/receiver302transmits the driver program that is generated by performing the combining processing at step S217to the PC10aselected as one in which the driver program is to be installed, invokes the API112, and issues an instruction for installing the driver program to the API112(step S219).

In the PC10a, according to the installation instruction issued at step S219, the API112issues, to the installation processing unit110a, an instruction for installing the driver program transmitted from the printer apparatus30e(step S220). According to the instruction, the installation processing unit110ainstalls the driver program in the PC10a(step S221).

According to the third embodiment, even when the driver program is installed in a PC via the printer apparatus, it is possible to select a UI type to be used for the driver program from the original UI type of the driver program and the UI type corresponding to the driver program of another printer apparatus that is the already-introduced printer apparatus. This reduces the work of the process of installing the driver program corresponding to the printer apparatus to be additionally introduced and of operations on the installed driver program.

Fourth Embodiment

A fourth embodiment of the invention will be described here.FIG. 28shows an exemplary configuration of an information processing system according to the fourth embodiment. According toFIG. 28, the information processing system includes a PC10dand a plurality of printer apparatuses that are the printer apparatuses30aand30bthat are communicably connected to each other via the network40, such as a LAN.FIG. 28shows the printer apparatuses30aand30balso as “PRINTER(A)” and “PRINTER(B)”. Components shown inFIG. 28that are common with those shown inFIG. 1are denoted with the same reference numerals as those shown inFIG. 1to omit detailed descriptions.

FIG. 28exemplifies that the information processing system includes the two printers that are the printer apparatuses30aand30b; however, the embodiment is not limited to this. In other words, the information processing system according to the fourth embodiment may include three or more printer apparatuses or each printer apparatus may be an MFP that incorporates multiple functions, such as the printer function, the scanner function, the copy function, and the FAX function, in a single housing.

According to the fourth embodiment, the PC10dincludes the functions of the distribution server20according to the first embodiment. In other words, the PC10dincludes a UI table that associates sets of apparatus type specifying information and UI types, the driver program corresponding to the printer apparatus30ato be additionally introduced after the already-introduced printer apparatus30b, and the configuration data of the UI unit of each of multiple UI types.

For the hardware configuration of the PC10d, it is assumed that the hardware configuration described with reference toFIG. 5is used directly.

In response to an instruction for installing the driver program corresponding to the printer apparatus30ato be additionally introduced, the PC10dacquires sets of apparatus type specifying information on the printer apparatuses30aand30bthat are connected to the network40. According to the acquired sets of apparatus type specifying information, the PC10dthen determines a UI type to be used for the driver program to be installed. When the determined UI type is different from the UI type associated with the apparatus specifying information on the printer apparatus30a, the PC10dreplaces the UI unit of the driver program and then installs the driver program in the PC10d.

FIG. 29is an exemplary functional block diagram for explaining the functions of the PC10daccording to the fourth embodiment. The PC10dincludes the transmitter/receiver101, an installer102d, the screen generation unit103, the determination unit104, and a UI table120. Components shown inFIG. 29that are common with those shown inFIG. 4are denoted with the reference numerals shown inFIG. 4to omit detailed descriptions. According toFIG. 29, the UI table120associates sets of apparatus specifying information with UI types. Here, for descriptions, it is assumed that the UI table120has the same configuration as that of the UI table203described with reference toFIG. 3.

From among the components of the PC10d, the transmitter/receiver101, the installer102d, the screen generation unit103, and the determination unit104can be configured by using a program that runs on a CPU. Alternatively, part or all of the transmitter/receiver101, the installer102d, the screen generation unit103, and the determination unit104may be configured by using hardware.

The installer102dinstalls the driver program corresponding to the printer apparatus30ain the PC10d. The installer102includes an installation processing unit110d, the acquisition unit111, and a storage control unit113. The storage control unit113is capable of controlling reading/writing data from/to the storage medium of the PC10d, such as the storage1006, the ROM1002or the RAM1003. For example, the driver program corresponding to the printer apparatus30aand multiple sets of UI unit configuration data are stored in the storage1006. The storage control unit113reads the driver programs and the UI unit configuration data from the storage1006.

The transmitter/receiver101, the installer102d, the screen generation unit103, and the determination unit104that are described above are implemented by using a program that runs on the CPU1001. The program, the UI table120, and each set of data and the program that are stored in the storage1006may be stored in a computer that is connected to the network40to which the communication I/F1009is connected, may be configured to be downloaded by the PC10dvia the network40and thus provided, or may be configured to be provided or distributed via the network40. Alternatively, the program may be recorded in a non-transitory computer-readable recording medium, such as a CD or a DVD, in a file in an installable or an executable form and thus provided.

The program has, for example, a module configuration including the above-described units (the transmitter/receiver101, the installer102d, the screen generation unit103, and the determination unit104). As for practical hardware, the CPU1001reads the program from, for example, the storage1006and executes the program so that the above-described units are loaded into the main storage device (such as the RAM1003) and the units are generated in the main storage device.

With reference toFIG. 30, an installation process according to the fourth embodiment will be described schematically. As shown inFIG. 30, the installer102dof the PC10dcommunicates with each of the printer apparatuses30aand30bthat are connected to the network40to acquire each of the sets of apparatus type specifying information31aand31bon the printer apparatuses30aand30b. According to the acquired sets of apparatus type specifying information31aand31b, the installer102drefers to the UI table120and determines an UI type to be used for the driver program that corresponds to the printer apparatus30aand that is to be installed in the PC10d.

When the determined UI type is different from the UI type that is associated with the apparatus type specifying information31bon the already-introduced printer apparatus30b, the installer102dreplaces the UI unit of the driver program corresponding to the printer apparatus30ato be additionally introduced with the UI unit of the driver program corresponding to the already-introduced printer apparatus30b. The installer102dinstalls the driver program whose UI unit has been replaced in the PC10d.

FIG. 31is an exemplary sequence chart of sets of processing according to the fourth embodiment. Components shown inFIG. 31that are common with those shown inFIGS. 29 and 30are denoted with the same reference numerals as those shown inFIGS. 29 and 30to omit detailed descriptions. For example, in the PC10d, the installer102dis started and an instruction for installing the driver program corresponding to the printer apparatus30ais issued, so that the process according to the sequence shown inFIG. 31is started.

Once the instruction for installing the driver program is issued, the installer102ddetects apparatus type specifying information from each apparatus on the network40and acquires the detected apparatus type specifying information (steps S300to S305). According to the example, the installer102dacquires the sets of apparatus type specifying information31aand31bfrom the printer apparatuses30aand30b. The installer102dpasses all of the acquired sets of apparatus type specifying information31aand31bto the determination unit104(step S306).

The determination unit104refers to the UI table120according to the passed sets of apparatus type specifying information31aand31band searches for the UI types associated respectively with the sets of apparatus type specifying information31aand31b(steps S307and S308). The determination unit104passes the search result to the installer102d(step S309).

The installer102dcauses the screen generation unit103to generate a selection screen for selecting an UI type to be used for the driver program to be installed from among the passed UI types. The generated selection screen is displayed on the display1005(step S310). Here, it is assumed that the screen generation unit103generates a screen equivalent to the selection screen50described with reference toFIG. 8. The determination unit104sends back the UI type that is selected according to a user operation on the selection screen displayed on the display1005to the installer102das the selection result.

The installer102dfetches, from the storage1006, the configuration data of the UI unit corresponding to the UI type represented by the selection result sent back from the determination unit104and the driver main unit of the driver program corresponding to the printer apparatus30aand combines the fetched UI unit and the driver main unit to generate a single driver program (step S311). The installer102dinstalls the generated driver program in the PC10d(step S312).

According to the fourth embodiment, according to the UI type passed from the determination unit104at step S309, the installer102ddetermines whether to display the selection screen50for selecting a UI type.FIG. 32shows an exemplary flowchart of a process of determining display/non-display of a selection screen according to the fourth embodiment.

At step S50, the installer102dacquires the UI types corresponding respectively to apparatuses connected to the network40(corresponding to steps S306to step S309shown inFIG. 31). At step S51, the installer102ddetermines whether there is an UI type different from the UI type corresponding to the driver program to be installed by the installer102damong the UI types acquired at step S50.

Upon determining, at step S51, that there is such a different UI type, the installer102dmoves the process to step S52. At step S52, the installer102ddisplays an UI type selection screen (corresponding to step S310shown inFIG. 31) and, at the next step S53, waits for a selection input according to a user operation on the selection screen. Upon determining that there is no input, the installer102dreturns the process to step S53. Upon determining that there is an input, the installer102dmoves the process to step S54.

At step S54, the installer102ddetermines an UI type to be used for the driver program to be installed. For example, when the installer102dmoves the process from step S53to step S54, the installer uses the UI type selected on the UI type selection screen as an UI type to be used for the driver program to be installed.

On the other hand, upon determining that there is no such a different UI type at step S51, the installer102dmoves the process to step S54. In this case, the selection screen for selecting an UI type is not displayed. When the installer102dmoves the process directly from step S51to step S54, the installer102duses the original UI type of the driver program as the UI type of the program to be installed.

According to the fourth embodiment, even when the driver program corresponding to a specific printer apparatus is to be installed in a PC, it is possible to select an UI type to be used for the driver program from the original UI type of the driver program and the UI type corresponding to the driver program corresponding to the already-introduced printer apparatus. For this reason, the work of the process of installing the driver program corresponding to the printer apparatus to be additionally introduced and of operations on the installed program can be reduced.

According to the embodiment, there is an effect that a work of a user to perform operations on an UI can be reduced.