BACKGROUND OF THE INVENTION 1. Field of the Invention
The present invention relates to an embedded device provided with a Web browser, a control method therefor, a program for implementing the control method, and a storage medium storing the program.
2. Description of the Related Art
As is well known, the Internet has been developed by Web servers that supply HTML (Hypertext Markup Language) document data using HTTP (Hypertext Transfer Protocol) and Web browsers as clients that acquire the HTML document data using HTTP and display the acquired data.
The most basic function of a Web server is to provide a file transfer service for sending a file in response to a file acquisition request transmitted by a client using HTTP. In this case, basically, the Web server merely reads out a static file stored therein, and sends the same, but it can also have a function of dynamically generating and sending data in response to a HTTP request (a GET request or a POST request) in addition to the basic function.
Processing performed by the Web server to dynamically generate a HTTP response as described above is referred to as server-side processing. The server-side processing can also be realized by being delegated from the Web server to external software implemented according to the CGI (Common Gateway Interface) specification, the Java (registered trademark) Servlet specification, or the like. The external software to which the processing is delegated from the Web server according to the Interface specification is implemented as an execution type program executed by a server machine, a program described in an instruction language for the Java or another virtual machine, or a text format script executed by an interpreter. Examples of the text format scripts executed by an interpreter (script execution environment) include a shell script, JavaScript, PHP (Personal HomePage or PHP: Hypertext Processor), and so forth. To provide a script for linkage to a Web server for execution of the server-side processing is referred to as server-side scripting.
A HTML document can express a form for requiring user input, using a form element (FORM) in HTML. When a form element-based form is displayed on a Web browser and a user inputs data into the form and instructs submission thereof, the data input to the form is sent as a HTTP request (a GET request or a POST request) to a Web server. Accordingly, by configuring a HTML document to be sent from the Web server to a client such that the HTML document includes a form that can receive a user instruction for server-side processing, it is possible to provide a kind of user interface for enabling the user to interact with the server-side processing via a Web browser (the form can also be configured such that a client-side file input to the form is uploaded to the server). The server-side processing enables not only dynamic generation of a HTTP response, but also execution of processing for providing some service as a side effect.
Thus, the user is allowed to use business logic, back-end services, and the like that exist on the server side via a Web browser. Consequently, a model for a distributed system is widely used in which HTML is used as a kind of user interface description language and a client-side Web browser is given charge of only user interface processing for services for which the major part of processing is executed on a server side (the small-sized client in such a model is referred to as a thin client).
Client-side processing is also well known in which computation is performed on a Web browser side. In the client-side processing, software for carrying out some processing is sent from a Web server to a client in response to a request from the Web browser, and the software is executed on a processing system incorporated in the Web browser. In this case, dynamic document generation and interaction with the user are achieved by the client-side processing executed on the Web browser, and hence communication with the server is not absolutely necessary. An object format program described in the instruction language for the Java virtual machine and implemented according to an interface specification based on a Java Applet operates on the Java virtual machine incorporated as a plug-in in the Web browser. Further, conventionally, many Web browsers have a JavaScript interpreter incorporated therein as a text based scripting language. The client-side JavaScript is a combination of a DOM (Document Object Model) defined by the Web browser and a script function of the JavaScript interpreter. An approach by a scripting language, such as JavaScript, is more advantageous than an approach by a Java Applet or the like, because the scripting language is text based, and therefore it has a higher affinity for a markup language, such as HTML, and hence a provider of a HTML document content can easily provide an “executable content”. Further, a client-side JavaScript interpreter is configured to be linked to a DOM as a data structure enabling a Web browser to internally handle a document, so that the document displayed on the Web browser can be operated so as to easily provide a user with dynamic information and user interface.
The core part of the JavaScript language was standardized as ECMAScript by ECMA (European Computer Manufacturers Association). See e.g. “JavaScript The Definitive Guide, Third Edition”, David Flanagan, O' Reilly, 1998, for details of client-side processing and JavaScript.
The DOM is an object model for handling the structure of a document described in a markup language, such as HTML. Each Web browser, such as Netscape Navigator (registered trademark) or Internet Explorer (registered trademark), has conventionally provided a specific DOM to be implemented for client-side processing using JavaScript or the like. The DOM specification was standardized by the W3C (World Wide Web Consortium) such that an interface compliant with standard specifications is available for implementation by each Web browser.
Further, a Web browser for a general-purpose desktop computer captures objects and the like based on plug-ins, dynamic link libraries, and native machine codes and dynamically couple them to the execution form of the Web browser so as to expand the function of the Web browser itself.
For example, Japanese Laid-Open Patent Publication (Kokai) No. H11-187061 discloses apparatus control by server-side processing (CGI).
Further, Japanese Laid-Open Patent Publications (Kokai) Nos. H11-134125, H11-212751, H11-327834, and 2000-194531 each disclose a Web pullprint facility incorporated or embedded in a digital multi-function machine. The embedded pullprint facility includes a data-acquiring mechanism based on HTTP similar to one provided in a Web browser, and a rendering mechanism, such as HTML and prints out a content acquired from a URL (Uniform Resource Locator) designated by the user.
Further, a system is known in which various embedded devices, which incorporate an operating system or software, comprised of firmware provided with the Java virtual machine can acquire and dynamically load a program described in an object format (bytecode) of the Java virtual machine from a server, and execute the same.
However, a Web browser incorporated in the firmware of such an embedded device is required to be used in a different way from a Web browser for general-purpose desktop computers. This is because calculation resources (a CPU, a memory, an external storage, the size and resolution of a display, a keyboard, a pointing device, etc.) of an embedded device are generally inferior in function and performance to a general-purpose desktop computer. Further, the general-purpose desktop computer is placed on a desk to cope with various kinds of jobs so that the user can sit on a chair and operate the computer with composure, whereas a multi-function machine, such as a digital copying machine, is to be placed in a corner of an office and shared by a plurality of staff members, for example, i.e. used in a particular situation and a particular mode of use. Therefore, to use a Web browser incorporated in an embedded device to perform general net-surfing or browsing is not impossible, but cannot be said to be an optimal use of the Web browser.
Therefore, when the Web browser incorporated in the embedded device is used, it is required to browse a content linked and optimally adapted to the intrinsic function of the embedded device.
Examples of application of the embedded browser include sales of consumables, reference to manuals, diagnosis of an apparatus, and usage of other services. For example, if the remaining amount of toner in a multi-function machine is small when a Web browser incorporated in the machine displays a portal page provided by a distributor of the machine, it is effective to provide fine services intimately related to specific use of the machine in a customer environment e.g. by dynamically displaying a guide recommending online purchase of toner. Further, when the Web browser incorporated in the machine displays a page where the latest version of a manual of the apparatus, a collection of exemplary cases of usage, a know-how collection, etc. are disclosed, it is also effective to provide fine services e.g. by selectively displaying information related to the machine or a group of options actually incorporated in the machine. In many cases, for maintenance or repair of the machine, it is required to refer to or change a variety of parameters managed as internal data by firmware incorporated in the machine, or to call a plurality of diagnosis codes, setup codes, or the like built in the firmware in appropriate order and combination. Moreover, appropriate processing to be executed for maintenance or repair of the machine can differ depending on the mounting conditions of optional units or the version of the firmware. The appropriate processing may be changed with an increase in stored know-how. For the above described reasons, it is difficult for an end user or a customer engineer at a maintenance or repair site to grasp everything and perform optimal processing, or it requires a great cost. Therefore, if for the management processing of the machine, access is made from the Web browser incorporated therein in a customer environment to a page disclosing machine or apparatus management information provided by a service company, it enables the end user or the customer engineer to view an optimal operation manual dynamically reflecting the current status of the machine. Further, if a user interface page carefully prepared by the service company in accordance with most recent know-how is displayed according to the kind of the machine and the status of the same, to allow the end user or the customer engineer to give an execution instruction for referring to or changing parameters within the machine or to select a combination of a diagnosis code and a setup code, it is very convenient to the end user or the customer engineer.
As is apparent from the above described examples, it is desired to dynamically provide a content optimized for access from the embedded browser and linked to the function and status of the machine in a manner flexibly expandable by a server. However, in the case where the user does not desire, from the viewpoint of protection of privacy, that information of the machine is sent to a server (content provider), the server-side processing performed using a CGI program or the like is not suitable, and hence it is necessary to achieve the provision of such a content by the client-side processing.
Further, consideration must be given to ensure that a content acquired from outside via a network can be fully linked to the function and status of an apparatus and at the same time security of the embedded device is not threatened.
Furthermore, in most cases, the browser incorporated in the embedded device is implemented as firmware on a real-time OS, which makes it difficult to achieve expansion of the function of the browser itself, as is distinct from a browser for general-purpose desktop computers, by capturing objects or the like based on plug-ins, dynamic link libraries, or native machine codes and dynamically coupling the objects or the like to the execution form of the browser. Therefore, it is desirable that the function of the browser itself is fixed before shipment of the system, and provision of a dynamic content linked to the function and status of the apparatus is flexibly and expandably performed by-the server.
In Japanese Laid-Open Patent Publication (Kokai) No. H11-187061 referred to above, however, only apparatus control by the server-side processing (CGI) is disclosed, but no description is given of apparatus control by the client-side processing on the embedded browser.
Further, as described hereinabove, the approach by the Java virtual machine or the like is inferior to the approach by a scripting language, such as JavaScript, in respect of affinity for a text based markup language, such as HTML, and accessibility from a program to the DOM, of a source document incorporating (or associated with) the program, and hence is not easy to use by a content provider that provides a distributed system utilizing the browser incorporated in the embedded device.
SUMMARY OF THE INVENTION It is an object of the present invention to provide an embedded device incorporating a Web browser, a control method therefor, which enable a server to provide a dynamic content adapted and linked to a function specific to the embedded device and a status of the same, as an easily and flexibly expandable service in response to access from the embedded browser, and enable securing privacy and security of information on a client, as well as a program for implementing the control method, and a storage medium storing the program.
To attain the above object, in a first aspect of the present invention, there is provided an embedded device comprising a browser unit adapted to load content data containing at least document data which is described in a markup language and has a script or information for reference to a script embedded therein, and to perform presentation based on the loaded content data, a control unit adapted to control information and operation of the embedded device, a script processing unit incorporated in the browser unit, adapted to interpret the document data contained in the loaded content data and to process the script or the information for reference to a script embedded in the document data, and a first interface unit adapted to provide an interface via which the script processing unit gains access, based on the processing of the script, to the information and operation of the embedded device, controlled by the control unit.
With the arrangement of the embedded device according to the first aspect of the present invention, the script processing means interprets the document data contained in the loaded Web content and processes the script embedded in the document data or the script referred to based on the reference information; the first interface means enables accessing the internal data structure of the document data managed in the browser means, based on the processing of the script; and the second interface means enables the script processing means to access the information and operation of the embedded device, controlled by the control means, based on the processing of the script. Further, a dynamic content adapted and linked to the function specific to the embedded device and the status of the same are generated via the first and second interface means, and then a presentation is performed based on the generated content. Therefore, preparation of only a single content on the server side makes it possible to selectively present proper information according to the configuration of the embedded device and the status of the same. Further, the dynamic content is basically generated by client-side processing, so that privacy and security of client-side information can be secured.
Preferably, the embedded device is further comprised of a second interface unit adapted to provide an interface via which the script processing unit gains access, based on the processing of the script, to an internal data structure of the document data, managed in the browser unit, and the script processing unit inserts partial document data generated based on a result obtained by gaining access, via the first interface unit, to the information and operation of the embedded device, controlled by the control unit, into the document data at a position therein determined according to a result obtained by gaining access, via the second interface unit, to the internal data structure of the document data.
Preferably, the second interface unit constructs a document object model for access by the script processing unit to the internal data structure of the document data, the document object model being constructed by associating objects to be processed by the script processing unit with respective elements of the document data, associating an attribute of each of the objects with an attribute of a corresponding one of the elements of the document data, associating an operation on each of the objects with an operation on a corresponding one of the elements of the document data, associating a relationship between the objects with a relationship between the elements of the document data, and associating events generated for objects associated with the document data or respective ones of the elements of the document data, with events generated for the document data or the corresponding elements of the document data.
More preferably, the script processing unit gains access, via the first interface unit, to the information and operation of the embedded device, controlled by the control unit, in response to an event generated for the document data or an element of the document data.
Preferably, the first interface unit constructs a device object model for access by the script processing unit to the information and operation of the embedded device, controlled by the control unit, the device object model being constructed by associating objects to be processed by the script processing unit with respective resources constituting the embedded device, associating an attribute of each of the objects with an attribute of a corresponding one of the resources, associating an operation on each of the objects with an operation on a corresponding one of the resources, and associating a relationship between the objects associated with the respective resources, with a relationship between the resources.
More preferably, in the device object model, an abstract-concrete relationship is inherited, a concrete class being provided with at least a part of at least one of an attribute of an associated abstract class and an operation thereon, and each object belonging to each class being provided with at least a part of at least one of an attribute of the class and an operation thereon.
More preferably, in the device object model, a parent-child aggregation relationship is represented, and a whole object being provided with an operation or an attribute for searching zero or more partial objects associated with the whole object.
More preferably, the device object model is constructed by further associating events and exceptions generated for objects associated with the embedded device or respective ones of the resources of the embedded device, with events and exceptions generated for the embedded device or corresponding ones of the resources of the embedded device.
Preferably, in the case a user gives an instruction for externally outputting from the embedded device a result obtained by the script processing unit gaining access, via the first interface unit, to the information and operation of the embedded device, controlled by the control unit, the browser unit inhibits the result from being externally outputted in response to the instruction.
Preferably, in the case a user gives an instruction for outputting from the embedded device a result obtained by the script processing unit gaining access, via the first interface unit, to the information and operation of the embedded device, controlled by the control unit, the browser unit requests the user to confirm whether to permit the result to be externally outputted in response to the instruction, in advance or whenever the instruction is given.
More preferably, an access right is held for each of the objects constituting the device object model, and in the case the script processing unit attempts access to an object which the script processing unit is not authorized to access, an attribute of the object, or an operation on the object, the first interface unit inhibits the access.
Further preferably, the embedded device further comprises a setting unit adapted to set an access right to each of the objects constituting the device object model.
Further preferably, each of the objects constituting the device object model inherits an access right held for a class to which the object belongs.
Further preferably, an access right to each of the objects constituting the device object model is set to an access right held for an object including the object and being in an aggregation relationship therewith.
To attain the above object, in a second aspect of the present invention, there is provided an embedded device comprising a browser unit adapted to load content data containing at least document data described in a markup language, and to perform presentation based on the loaded content data, a control unit adapted to control information and operation of the embedded device, and an interface unit adapted to provide an interface via which the browser unit accesses the information and operation of the embedded device, controlled by the control unit, wherein the browser unit identifies a user currently utilizing the embedded device, based on a result. obtained by gaining access, via the interface unit, to the information and operation of the embedded device, controlled by the control unit, and displays a content of a document according to the user.
To attain the above object, in a third aspect of the present invention, there is provided an embedded device comprising a browser unit adapted to load content data containing at least document data described in a markup language, and to perform presentation based on the loaded content data, a control unit adapted to control information and operation of the embedded device, and an interface unit adapted to provide an interface via which the browser unit accesses the information and operation of the embedded device, controlled by the control unit, wherein the browser unit determines information specific to the embedded device or a status of the embedded device based on a result obtained by gaining access, via the interface unit, to the information and operation of the embedded device, controlled by the control unit, and displays a content of a document according to the determination.
With the arrangement of the embedded device according to the third aspect of the present invention, the type of the embedded device, the type of each option unit mounted in the embedded device, the version of each of the embedded device and the option units, or the status of each of the embedded device and the option units is discriminated based on a result obtained by access to the information and operation of the embedded device, controlled by the control means via the interface means, and the content of a document is displayed based on the result of the discrimination, so that the content can be used, for example, to provide an electronic manual or the like optimized for the status of the very embedded device whose browser means is currently performing browsing.
Preferably, the information specific to the embedded device contains at least one of a type of the embedded device, a type of at least one option unit mounted in the embedded device, and versions of the embedded device and the option unit.
Preferably, the document contains at least one of a manual for at least one of the embedded device and at least one option unit mounted in the embedded device, a suggestion to a user, and information for referring to the manual or the suggestion.
To attain the above object, in a fourth aspect of the present invention, there is provided an embedded device comprising a browser unit adapted to load content data containing at least document data described in a markup language, and to perform presentation based on the loaded content data, a control unit adapted to control information and operation of the embedded device, and an interface unit adapted to provide an interface via which the browser unit accesses the information and operation of the embedded device, controlled by the control unit, wherein the browser unit determines whether or not an internal program is stored in the embedded device, based on a result obtained by gaining access, via the interface unit, to the information and operation of the embedded device, controlled by the control unit, and when an internal program is stored in the embedded device, displays a document containing a user input element for giving an instruction for starting the internal program.
To attain the above object, in a fifth aspect of the present invention, there is provided an embedded device comprising a control unit adapted to control information and operation of the embedded device, a script processing unit adapted to process a script, and an interface unit adapted to provide an interface via which the script processing unit gains access, based on the processing of the script, to the information and operation of the embedded device, controlled by the control unit, wherein the interface unit constructs a device object model for access by the script processing unit to the information and operation of the embedded device, controlled by the control unit, the device object model being constructed by associating objects to be processed by the script processing unit with respective resources constituting the embedded device, associating an attribute of each of the objects with an attribute of a corresponding one of the resources, associating an operation on each of the objects with an operation on a corresponding one of the resources, and associating a relationship between the objects associated with the respective resources, with a relationship between the resources.
Preferably, in the device object model, an abstract-concrete relationship is inherited, a concrete class being provided with at least a part of at least one of an attribute of an associated abstract class and an operation thereon, and each object belonging to each class being provided with at least a part of at least one of an attribute of the class and an operation thereon.
Preferably, in the device object model, a parent-child aggregation relationship is represented, and a whole object being provided with an operation or an attribute for searching zero or more partial objects associated with the whole object.
Preferably, the device object model is constructed by further associating events and exceptions generated for objects associated with the embedded device or respective ones of the resources of the embedded device, with events and exceptions generated for the embedded device or corresponding ones of the resources of the embedded device.
To attain the above object, in a sixth aspect of the present invention, there is provided a method of controlling an embedded device, comprising a browser step of loading content data containing at least document data which is described in a markup language and has a script or information for reference to a script embedded therein, and performing presentation based on the loaded content data, a control step of controlling information and operation of the embedded device, a script processing step of interpreting the document data contained in the loaded content data and processing the script or the information for reference to a script embedded in the document data, the script processing step being incorporated in the browser step, and an interface step of providing an interface via which access to the information and operation of the embedded device, controlled in the control step, is gained based on the processing of the script, in the script processing step.
To attain the above object, in a seventh aspect of the present invention, there is provided a method of controlling an embedded device, comprising a browser step of loading content data containing at least document data described in a markup language, and performing presentation based on the loaded content data, a control step of controlling information and operation of the embedded device, and an interface step of providing an interface via which access to the information and operation of the embedded device, controlled in the control step, is gained in the browser step, wherein the browser step comprises identifying a user currently using the embedded device, based on a result obtained by gaining access, in the interface step, to the information and operation of the embedded device, controlled in the control step, and displays a content of a document according to the user.
To attain the above object, in an eighth aspect of the present invention, there is provided a method of controlling an embedded device, comprising a browser step of loading content data containing at least document data described in a markup language, and performing presentation based on the loaded content data, a control step of controlling information and operation of the embedded device, and an interface step of providing an interface via which access to the information and operation of the embedded device, controlled in the control step, is gained in the browser step, wherein the browser step determines information specific to the embedded device or status of the embedded device based on a result obtained by gaining access, in the interface step, to the information and operation of the embedded device, controlled in the control step, and displays a content of a document according to the determination.
To attain the above object, in a ninth aspect of the present invention, there is provided a method of controlling an embedded device, comprising a browser step of loading content data containing at least document data described in a markup language, and performing presentation based on the loaded content data, a control step of controlling information and operation of the embedded device, and an interface step of providing an interface via which access to the information and operation of the embedded device, controlled in the control step, is gained in the browser step wherein the browser step determines whether or not an internal program is stored in the embedded device, based on a result obtained by gaining access, in the interface step, to the information and operation of the embedded device, controlled in the control step, and when an internal program is stored in the embedded device, displays a document containing a user input element for giving an instruction for starting the internal program.
To attain the above object, in a tenth aspect of the present invention, there is provided a method of controlling an embedded device, comprising a control step of controlling information and operation of the embedded device, a script processing step of processing a script, and an interface step of providing an interface via which access to the information and operation of the embedded device, controlled in the control step, is gained based on the processing of the script in the script processing step, the interface step comprises constructing a device object model for access in the script processing step to the information and operation of the embedded device, controlled in the control step, the device object model being constructed by associating objects to be processed in the script processing step with respective resources constituting the embedded device, associating an attribute of each of the objects with an attribute of a corresponding one of the resources, associating an operation on each of the objects with an operation on a corresponding one of the resources, and associating relationships between the objects associated with the respective resources, with relationships between the resources.
To attain the above object, in an eleventh aspect of the present invention, there is provided a program for causing a computer to execute a method of controlling an embedded device, the method comprising a browser step of loading content data containing at least document data which is described in a markup language and has a script or information for reference to a script embedded therein, and performing presentation based on the loaded content data, a control step of controlling information and operation of the embedded device, a script processing step of interpreting the document data contained in the loaded content data and processing the script or the information for reference to a script embedded in the document data, the script processing step being incorporated in the browser step, and an interface step of providing an interface via which access to the information and operation of the embedded device, controlled in the control step, is gained based on the processing of the script, in the script processing step.
To attain the above object, in a twelfth aspect of the present invention, there is provided a computer-readable storage medium storing the program according toclaim29.
BRIEF DESCRIPTION OF THE DRAWINGSFIG. 1 is a block diagram showing the whole arrangement of an image processing system including image processing apparatuses to which is applied an embedded device according to a first embodiment of the present invention;
FIG. 2 is a block diagram showing the software configuration of the image processing apparatus inFIG. 1;
FIG. 3 is a block diagram showing the hardware configuration of the image processing apparatus inFIG. 1;
FIG. 4 is a perspective view showing the appearance of the image processing apparatus inFIG. 1;
FIG. 5 is a view showing details of the appearance of an operating unit appearing inFIG. 4;
FIG. 6 is a block diagram showing details of the functional configuration of the operating unit inFIG. 5;
FIG. 7 is a block diagram showing, by way of example, a network configuration, which is useful in explaining the operation of applications incorporated in the image processing apparatus inFIG. 1;
FIG. 8 is a block diagram showing the software configuration of a Web browser module appearing inFIG. 2;
FIG. 9 is a view showing, by way of example, the layout of a screen of a Web browser, which is displayed on a LCD display unit appearing inFIG. 5;
FIG. 10 is a sequence diagram showing, by way of example, a flow of request and response processing using HTTP;
FIG. 11 is a diagram showing, by way of example, a flow of server-side processing and client-side processing;
FIG. 12 is a diagram showing, by way of example, the structure of data for managing a user account of each user utilizing the image processing apparatus inFIG. 1;
FIG. 13 is a diagram showing, by way of example, the structure of data for managing user groups that use the image processing apparatus inFIG. 1;
FIG. 14 is a schematic diagram showing, by way of example, the structure of data of a resource class, in which various resources constituting the image processing apparatus inFIG. 1 are expressed in an abstracted manner;
FIGS. 15A to15C are class diagrams showing, by way of example, the structure of data illustrating the inheritance relationship between resources constituting the image processing apparatus inFIG. 1;
FIG. 16 is a class diagram showing, by way of example, the structure of data illustrating the aggregation relationship between resources handled by the image processing apparatus inFIG. 1;
FIG. 17 is a diagram showing a part of objects forming respective instances of a device object model;
FIG. 18 is a diagram showing, by way of example, a parent-child hierarchical structure of client-side objects provided as an operational environment of a script by a JavaScript interpreter incorporated in an embedded Web browser;
FIG. 19 is a view showing, by way of example, a document acquired from a server by the Web browser;
FIG. 20 is a continued part of the document inFIG. 19;
FIG. 21 is a view showing, by way of example, a dynamically adapted document displayed on the Web browser;
FIG. 22 is a view showing, by way of example, another dynamically adapted document displayed on the Web browser;
FIG. 23 is a view showing, by way of example, a screen for an e-mail transmission function started based on a URL dynamically generated by script processing;
FIG. 24 is a view showing, by way of example, a document acquired from a server by a Web browser of an image processing apparatus to which is applied an embedded device according to a second embodiment of the present invention;
FIG. 25 is a continued part of the document inFIG. 24;
FIG. 26 is a continued part of the document inFIG. 25;
FIG. 27 is a view showing, by way of example, a dynamically adapted manual document displayed on the Web browser;
FIG. 28 is a view showing, by way of example, a document acquired from a server by a Web browser of an image processing apparatus to which is applied an embedded device according to a third embodiment of the present invention;
FIG. 29 is a continued part of the document inFIG. 28;
FIG. 30 is a view showing, by way of example, a dynamically adapted device management document displayed on the Web browser;
FIG. 31 is a view showing an example of the device management document dynamically modified again after completion of display immediately after document acquisition and displayed on the Web browser;
FIG. 32 is a view showing another example of the device management document dynamically modified again after completion of display immediately after document acquisition and displayed on the Web browser;
FIG. 33 is a view showing, by way of example, a document acquired from a server by a Web browser of an image processing apparatus to which is applied an embedded device according to a fourth embodiment of the present invention;
FIG. 34 is a continued part of the document inFIG. 33;
FIG. 35 is a view showing, by way of example, a dynamic device report document displayed on the Web browser;
FIG. 36 is a view showing, by way of example, another dynamically adapted document displayed on the Web browser;
FIG. 37 is a diagram useful in explaining logical usage of a HDD;
FIG. 38 is a view showing, by way of example, a user interface for referring to and setting an access right to a document resource instance as an example of a resource;
FIG. 39 is a view showing, by way of example, a user interface for referring to and setting an access right to a color copying function resource instance as another example of the resource;
FIG. 40 is a view showing, by way of example, a user interface displaying the inheritance relationship between resources for referring to and setting an access right to a color copying function resource class;
FIG. 41 is a view showing, by way of example, a user interface displaying the inheritance relationship between resources for referring to and setting an access right to a copying function resource class;
FIG. 42 is a view showing, by way of example, a user interface displaying the inheritance relationship between resources for referring to and setting an access right to a monochrome copying function resource class;
FIG. 43 is a view showing, by way of example, a user interface displaying the aggregation relationship between resources for referring to and setting an access right to a printer unit resource class;
FIG. 44 is a view showing, by way of example, a user interface displaying the aggregation relationship between resources for referring to and setting an access right to a discharge unit resource class; and
FIG. 45 is a view showing, by way of example, a screen displaying an access right violation error.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS The present invention will now be described in detail with reference to the drawings showing preferred embodiments thereof.
FIG. 1 is a block diagram showing the whole arrangement of an image processing system including image processing apparatuses to which is applied an embedded device according to a first embodiment of the present invention.
The image processing system is comprised of an application service provider (ASP)site153, awide area network152, and auser site151.
Thewide area network152 is the Internet, for example. Alternatively, thewide area network152 may be a virtual private network (VPN) or a dedicated private network.
TheASP site153 provides predetermined services for theuser site151 via thewide area network152. Examples of the services provided by theASP site153 include provision, preparation, retrieval, storage, authentication, and distribution, printing, publication, management, translation, and consignment of information. Further, theASP site153 provides services for completing formalities in government offices, services for executing electronic commercial transactions, and so forth.
TheASP site153 includes a local area network (LAN)154, and aserver155.
TheLAN154 is a network within theASP site153, via which are interconnected network devices within theASP site153. Further, theLAN154 is connected to thewide area network152 via a router, not shown, or the like.
On theserver155, a software process group for implementing services provided by the ASP operates. The software process group is comprised of the following software modules: a HTTP server which transmits a content e.g. in HTML format in response to a HTTP request (request based on HTTP) from a client, a group of Web applications implemented as a CGI program, a Servlet, and so forth, and executed by the HTTP server in response to a HTTP request to perform predetermined processing and a dynamically varying HTTP response, and a group of business logics, such as an electronic commercial transaction program, and a back-end database management system, for use in execution of the predetermined processing by the CGI program and the Servlet.
Theuser site151 is comprised of ahost computer101, a plurality of network apparatuses, such as theimage processing apparatuses110,120, and130, and aLAN100 via which are interconnected the plurality of network apparatuses. TheLAN100 of theuser site151 is connected to thewide area network152 via a router, not shown, or the like. The router also functions as a so-called firewall. More specifically, the router performs packet filtering and the like so as to protect theuser site151 from attacks from external networks. Further, the router can perform network address conversion and network port conversion for address management and the like. Communications between theuser site151 and the external networks are restricted by these functions of the router. In short, only communications using some specific protocols are allowed in many cases. For example, an outbound HTTP connection is a generally permitted communication, which is one of the reasons why provision of application services based on a general Web-based technique is effective.
Every one of theimage processing apparatuses110,120, and130 corresponds to the embedded device of the present embodiment. However, since theimage processing apparatuses110,120, and130 are the same in construction, theimage processing apparatus110 alone will be referred to as the embedded device of the present embodiment for convenience of description.
Theimage processing apparatus110 is a MFP (Multi Function Peripheral) capable of inputting and outputting and transmitting and receiving images and performing various kinds of image processing. Theimage processing apparatus110 is comprised of areader unit113 as an image input device, aprinter unit114 as an image output device, acontroller unit111, and anoperating unit112 as a user interface.
Thereader unit113, theprinter unit114, and theoperating unit112 are each connected to thecontroller unit111 to be controlled by commands from thecontroller unit111. Thecontroller unit111 is connected to network transmission means, such as theLAN100.
The otherimage processing apparatuses120 and130 having the same apparatus configuration as theimage processing apparatus110 are also connected to theLAN100. Theimage processing apparatus120 is comprised of areader unit123, aprinter unit124, and anoperating unit122. Thereader unit123, theprinter unit124, and theoperating unit122 are connected to acontroller unit121 and controlled by the same. Similarly, theimage processing apparatus130 is comprised of areader unit133, aprinter unit134, and anoperating unit132, which are connected to acontroller unit131 and controlled by the same.
Ahost computer101 is connected to the network transmission means, such as theLAN100. Thehost computer101 is provided with a Web browser, as will be described in detail hereinafter, and displays the status of each of theimage processing apparatuses110,120, and130 based on a HTML file received therefrom. Further, thehost computer101 receives services from theserver155 through HTTP connection.
FIG. 2 is a block diagram showing the software configuration of theimage processing apparatus110. The otherimage processing apparatuses120 and130 are the same in software configuration as theimage processing apparatus110.
A user interface (hereinafter abbreviated as “UI”)module201 mediates between the apparatus and the user s operation for various operations and configuration or setting of theimage processing apparatus110. Thismodule201 transfers input information to various modules, described hereinafter, in response to user's operations so as to make requests for processing or for data settings.
An address-book module202 manages data delivery destinations, communication destinations, and so forth. Data can be added to, deleted from, or acquired from data managed by the address-book module202, by an operation via theUI module201. Further, the address-book module202 supplies data delivery/communication destination information to modules, referred to hereinbelow.
AWeb server module203 provides information described e.g. in HTML, in response to a request from a Web client (e.g. from the host computer101), using HTTP.
Auniversal send module204 controls data distribution. Themodule204 distributes data designated by the user via theUI module201 to a similarly designated communication (output) destination. Further, when the user instructs data for distribution to be generated using the scanner function of theimage processing apparatus110, theuniversal send module204 causes acontrol API module218, referred to hereinafter, to operate theimage processing apparatus110 to generate the data.
AP550 module205 is executed in theuniversal send module204 when a printer is designated as an output destination. AnE-mail module206 is executed in theuniversal send module204 when an E-mail address is designated as a communication destination. A database (DB)module207 is executed in theuniversal send module204 when a database is designated as an output destination. ADP module208 is executed in theuniversal send module204 when an image processing apparatus similar to theimage processing apparatus110 is designated as an output destination.
A remotecopy scan module209 reads image information using the scanner function of theimage processing apparatus110 and outputs the read image information to another image processing apparatus connected to theimage processing apparatus110 via the network or the like, to thereby perform the copy function realized singly by theimage processing apparatus110, using the other image processing apparatus.
A remotecopy print module210 prints out image information acquired by another image processing apparatus connected to theimage processing apparatus110 via the network or the like, using the printer function of theimage processing apparatus110 to thereby perform the copy function realized singly by theimage processing apparatus110, using the other image processing apparatus.
AWeb browser module211 is for reading information from various kinds of Web sites (homepages) on the Internet or an intranet and displays the information. The configuration of the Web browser will be described in detail hereinafter.
AHTTP module212 is used by theimage processing apparatus110 in performing HTTP communication. TheHTTP module212 provides communication functions for theWeb server module203 and theWeb browser module211 using a TCP/IP (Transmission Control Protocol/Internet Protocol)communication module216, referred to hereinafter. Themodule212 is compatible with various protocols, including HTTP, used on the Web, and also provides communication functions, particularly using security protocols.
ALPR module213 provides a communication function for theprinter module205 within theuniversal send module204, using the TCP/IP communication module216.
An SMTP (Simple Mail Transfer Protocol)module214 provides a communication function for theE-mail module206 within theuniversal send module204, using the TCP/IP communication module216.
A SLM (Salutation Manager)module215 provides a communication function for thedatabase module207 and theDP module208 within theuniversal send module204, the remotecopy scan module209, and the remotecopy print module210, using the TCP/IP communication module216.
The TCP/IP communication module216 provides a network communication function for each of the above described modules using anetwork driver217, described below.
Thenetwork driver217 controls system parts physically connected to the network.
Thecontrol API module218 provides interface with downstream modules including ajob manager module219, described below, for theuniversal send module204 and other upstream modules. Thecontrol API module218 thus serves to reduce dependence between the upstream modules and the downstream modules, thereby enhancing versatility of each of the modules.
Thejob manager module219 interprets various kinds of processing designated by the above described modules via thecontrol API module218, and gives instructions tomodules220,224, and226, referred to hereinafter. Further, thejob manager module219 performs centralized control of processing carried out by hardware of theimage processing apparatus110.
TheCODEC manager module220 controls various types of data compression and expansion during processing designated by thejob manager module219.
Anencoder module221 compresses data scanned in scan processing carried out by thejob manager module219 or thescan manager224, described hereinafter, using a predetermined encoding method.
A JPEG (Joint Photographic Expert Group)codec module222 is used to JPEG-compress data scanned in scan processing carried out by thejob manager module219 or thescan manager224 or to expand JPEG-compressed print data in print processing carried out by theprint manager module226.
A MMR (Modified Modified READ)codec module223 is used to MMR-compress data scanned in scan processing carried out by thejob manager module219 or thescan manager224 or to expand MMR-compressed print data in print processing carried out by theprint manager module226.
AnIEI CODEC module229 is used to decode information embedded in data scanned in scan processing carried out by thejob manager module219 or thescan manager224, or to embed information in print image data in print processing carried out by theprint manager module226. Information is embedded in image data using an encoding technique, such as bar code and digital watermarking. TheIEI CODEC module229 also supports character recognition in which characters in an image of image data are recognized by image area separation and an OCR (Optical Character Reader) technique and converted into text data, as a kind of decoding technique. Further, conversion of text data into image data and overlaying of the image data obtained by the conversion and original image data, which are performed using a raster image processor, is supported as a kind of encoding technique (information embedding technique).
Thescan manager module224 controls scan processing designated by thejob manager module219.
A SCSI (Small Computer System Interface)driver225 provides communication interface between thescan manager module224 and thereader unit113 internally connected to theimage processing apparatus110.
Theprint manager module226 controls print processing designated by thejob manager module219.
Anengine interface module227 provides interface between theprint manager module226 and theprinter unit114.
Aparallel port driver228 provides interface when a data print function, such as a reference print function of theWeb server module203 or a Web pullprint function of theWeb browser module211, outputs data to an output device, not shown, via a parallel port.
FIG. 3 is a block diagram showing details of the hardware configuration of theimage processing apparatus110.
Thecontroller unit111 is connected to thereader unit113 as an image input device and theprinter unit114 as an image output device as well as to the LAN and the public communication line (WAN) so as to input and output image information and device information.
ACPU301 is a controller that controls the overall operation of theimage processing apparatus110.
ARAM302 is a system work memory used for theCPU301 to operate. TheRAM302 also functions as an image memory for temporarily storing image data.
AROM303 is a boot ROM, and stores a boot program for the system.
AHDD304 is a hard disk drive, and stores system software and image data.
An operating unit I/F306 provides interface with the operating unit (UI)112, and outputs to theoperating unit112 image data to be displayed on a display, not shown, of the same. The operating unit I/F306 also plays the role of transferring data input by the user via theoperating unit112 to theCPU301.
A network I/F308 provides interface with theLAN100, and inputs/outputs information via theLAN100.
Amodem309 provides interface with the public communication line, and inputs/outputs information via the public communication line.
The above describeddevices301 to306,308, and309 are arranged on asystem bus307.
An image bus I/F305 is a bus bridge that connects between thesystem bus307 and animage bus310 for high-speed transmission of image data, and at the same time converts the data structure of the image data.
Theimage bus310 is implemented by a PCI (Peripheral Component Interconnect) bus or an IEEE 1394 bus.
On theimage bus310, there are arrangeddevices311 to316 described below.
A raster image processor (RIP)311 expands a PDL (Page Description Language) code received from the network into a bitmap image. TheRIP311 not only processes the PDL code, but also carries out processing for direct printing in which PDF (Portable Document Format) data or application data specific to each application is expanded into a bitmap image.
A device I/F unit312 connects between thecontroller unit111 and thereader unit113 as an input device and theprinter unit114 as an output device to perform synchronous-to-asynchronous or asynchronous-to-synchronous conversion of image data.
A scannerimage processing section313 corrects, processes, and edits input image data.
A printerimage processing section314 performs correction, resolution conversion, etc. of image data to be printed out.
Animage rotation unit315 rotates image data.
Animage compression unit316 compresses or expands multi-valued image data using a JPEG format, and binary image data using a JBIG (Joint Bi-level Image experts Group), MMR or MH (Modified Huffman) format.
FIG. 4 is a view showing the appearance of theimage processing apparatus110.
Thereader unit113 as an image input device illuminates an image on a sheet as an original and scans the image by a CCD line sensor, not shown, to thereby generate raster image data.
When the user sets original sheets on atray406 of anoriginal feeder405 and operates theoperating unit112 to instruct theimage processing apparatus110 to read an original image, theCPU301 inFIG. 3 gives the instruction to thereader unit113. In response to this instruction, afeeder405 feeds the original sheets one by one, and thereader unit113 sequentially reads original images.
Theprinter unit114 as an image output device prints out raster image data on a sheet. Examples of the printing method include the electrophotographic printing method using a photosensitive drum or a photosensitive belt, and the inkjet printing method in which an image is directly printed on a sheet by jetting ink onto the sheet from an array of small nozzles, and any suitable printing method may be employed. A printing operation is carried out in response to an instruction from theCPU308.
Theprinter unit114 is provided with a plurality of sheet feed stages such that a desired sheet size or a desired sheet orientation can be selected andsheet cassettes401,402, and403 associated with the respective sheet feed stages. Adischarge tray404 receives printed sheets.
FIG. 5 is a view showing details of the appearance of theoperating unit112.
ALCD display unit501 is provided with aLCD502 having a touch panel sheet affixed thereon, and displays a system operating screen and keys realized by software (hereinafter referred to as “software keys”). When a software key displayed on theLCD502 is pressed, theLCD display unit501 transmits position information indicative of the pressed position to theCPU301.
Astart key505 is used e.g. for starting an operation of reading an original image. In the center of thestart key505, there is provided anLED indicator506 formed by two LEDs which emit a green light and a red light, to indicate whether or not the function of thestart key505 is available.
Astop key503 is operated to stop a current operation of the system.
AnID key507 is used to enter a user ID.
Areset key504 is used to initialize settings configured by inputs via theoperating unit112.
FIG. 6 is a block diagram showing details of the functional configuration of theoperating unit112.
As described hereinabove, theoperating unit112 is connected to thesystem bus307 via the operating unit I/F306, and theCPU301, theRAM302, theROM303, and theHDD304 are connected to thesystem bus307. TheCPU301 performs centralized control of access to the various devices connected to thesystem bus307, based on control programs stored in theROM303 and theHDD304. Further, theCPU301 reads input information from thereader unit113 connected thereto via the device I/F312, and outputs an image signal as output information to theprinter unit114 connected to theCPU301 via the device I/F312. TheRAM302 is the main memory of theCPU301, and functions as a work area or the like for theCPU301.
A user input from thetouch panel502 or the key503,504,505 or507 realized by hardware is transmitted to theCPU301 via aninput port601. TheCPU301 generates display screen data based on user inputs and control programs, and outputs the generated display screen data to theLCD display unit501 via anoutput port602 that is used to control a screen output device. Further, theCPU301 controls theLED indicator506 as required.
FIG. 7 is a block diagram of an example of network configuration, which is useful in explaining the operation of an application embedded in theimage processing apparatus110.
InFIG. 7,reference numeral4300 designates a multi-function machine on a receiver side (printing side) in remote copying.Reference numeral4350 designates a printer apparatus, such as a laser beam printer (LBP), for receiving and printing image data distributed from theuniversal send module204 by broadcast distribution.Reference numeral4400 designates a device on a receiver side (printing side) in remote printing.Reference numeral4450 designates a groupware server for receiving and storing image data distributed by broadcast distribution.Reference numerals4500 and4600 designate image database servers for receiving and storing binary image data distributed by broadcast distribution.Reference numeral4550 designates a mail server for receiving and storing an e-mail distributed by broadcast distribution.Reference numeral4650 designates a Web server having an information content.Reference numeral4700 designates a Web browser for accessing a Web server or the like.
TheUI module201 was described in detailed hereinabove, and hence a description will now be given of the address-book module202.
The address-book module202 is stored in a nonvolatile memory, such as a battery-backed up memory or a hard disk, within theimage processing apparatus110, and the features of apparatuses connected to the network are written in the address-book module202. More specifically, the address-book module202 contains pieces of information listed as follows:
(1) the formal name and alias name of each apparatus
(2) the network address of each apparatus
(3) network protocols compatible with each apparatus
(4) document formats compatible with each apparatus
(5) compression types compatible with each apparatus
(6) image resolutions compatible with each apparatus
(7) information on sizes of feedable sheets and sheet feed stages for printer apparatuses
(8) the names of folders which can store documents, for server apparatuses
Each of applications described below is capable of discriminating the features of a distribution destination based on information written in the address-book module202. The address-book module202 is editable, and pieces of information stored e.g. in servers within the network are downloaded and used by the address-book module202. Alternatively, the pieces of information stored in the servers can be directly referred to.
A remote copy application executed by the remotecopy scan module209 converts binary image data read by a scanner into a MMR-compressed and TIFF (Tagged Image File Format) formatted file, based on information on a resolution compatible with an apparatus designated as a distribution destination, which can be recognized from the address-book module202, followed by transmitting the file e.g. to themulti-function machine4300 on the network via theSLM module215.
Differently from the remote copy application, a broadcast distribution application executed by theuniversal send module204 is capable of transmitting image data given by one-time image scanning to a plurality of distribution destinations. Further, the distribution destinations are not limited to printer apparatuses, but the image data can be directly distributed e.g. to servers. In the following, a description will be given on a destination-by-destination basis.
When it is determined from the address-book module202 that a network printer protocol used by destination apparatuses is LPD (Line Printer Daemon) and the apparatuses are capable of processing the known print description language (PDL), an image is read according to an image resolution of the apparatus similarly recognizable from theaddress book202, compressed by theencoder module221, converted into PDL data, and then transmitted by theLPR module213 to each destination apparatus, such as theprinter apparatus4350.
When the destination apparatuses can perform communication through a SLM and are servers, the address of each server and the designated folder in the server are recognized from the address-book module202, and then, as in the remote copy application, binary image data read by the scanner can be MMR-compressed and converted into a TIFF file, and then be stored in the designated folder in the server, such as theserver4550 or4500, on the network via theSLM module215. Further, when it is determined that destination servers are capable of processing a JPEG-compressed multi-valued image, image data read by the scanner can be JPEG-compressed and converted into a JFIF (JPEG File Interchange Format) file, and then be stored in a specific folder in each server, such as theserver4600, on the network via theSLM module215.
When a destination apparatus is an E-mail server, mail addresses written in the address-book module202 are recognized, binary image data read by the scanner is MMR-compressed and converted into a TIFF file, and then transmitted to the E-mail server, such as theE-mail server4550, on the network via theSMTP module214. Thereafter, data distribution is performed by theE-mail server4550.
A Web-pullprint application executed by theWeb browser module211 prints Web site information e.g. of theWeb server4650.
A Web server application executed by theWeb server module203 supplies information described e.g. in HTML to theWeb browser4700, etc. via theHTTP module212. The Web server application not only generates static information, such as a HTML document, but also dynamically generates a document reflecting apparatus management information and provides e.g. theWeb browser4700 with the document. The management information is acquired via theuniversal send module204, the remotecopy scan module209, the remotecopy print module210, and thecontrol API module218, and sent to the Web clients via theHTTP module212, the TCP/IP communication module216, and thenetwork driver217. Further, theWeb server module203 also provides the reference print function for the Web clients. In reference printing, a Web client transmits URL information to theWeb server module203, as a content of a HTTP POST request (or by embedding the information in a portion of a path defined in a HTTP GET request). TheWeb server module203 receives the URL information and acquires data from a site indicated by the received URL information, using HTTP. Then, theWeb server module203 passes the acquired data to thecontrol API module218 without processing the same, whereby printing of the data is performed. When data described in various PDLs and the like and printable by a printer are stored in sites allowing data acquisition using HTTP, a client has only to designate a URL associated with each of the sites for a Web server to achieve desired printing (i.e. simply by sending data references in place of data entities). The printer can be equipped with a direct print function for directly printing PDF data or application data, so that it is possible to efficiently print various kinds of data stored in the Web servers on the network in a scattered manner.
FIG. 8 is a block diagram showing the software configuration of theWeb browser module211.
Aprotocol processing section801 establishes connection to an external network node via theHTTP module212 for communication. More specifically, theprotocol processing section801 issues a HTTP request to a resource described by a URL, and obtains a response to the request. In this process, encoding/decoding of communication data is also performed according to selected one or more of various coding formats. When text data having a structure described in a markup language, such as HTML, and data to be embedded in the structure, such as images, a script, and a style, are acquired, theprotocol processing section801 passes these data to acontent parser802. On the other hand, when a content in text data format, in which an entire page does not have an image data format or a structure, has been acquired, theprotocol processing section801 passes the data to arenderer808. In response to this, therenderer808 performs rendering and causes theUI module201 to display the result of the rendering.
Further, when data in a format that cannot be processed by theWeb browser module211 has been acquired, theprotocol processing section801 determines that the data is to be subjected to alternative processing, described hereinafter, and passes the data to thecontrol API module218.
Thecontent parser802 receives content data expressed in an expression format, such as HTML, XML (Extensible Markup Language), or XHML (Extensible Hypertext Markup Language), performs word/phrase analysis and syntax analysis, and generates a parse tree.
ADOM constructing section803 receives the parse tree and constructs a DOM corresponding to the structure of the content data. The conventional HTML allows various grammatical omissions and diverse variations. Moreover, contents presented in the actual world are often not properly formatted. To solve the problems, theDOM constructing section803 infers a proper logical structure which grammatically improper content data should have, and attempts to construct a proper DOM.
ADOM processing section804 holds and manages the DOM constructed by theDOM constructing section803, in a memory, as a tree structure expressing the nested relationship of object groups. TheWeb browser module211 carries out various processes based on this DOM.
Alayout engine807 recursively determines a display presentation of each object according to the tree structure of the object group held by theDOM processing section804, whereby the layout of an entire document is eventually obtained. The display presentation of each object can be explicitly specified in the form of a style sheet, such as a CSS (Cascading Style Sheet), by a description embedded in the document or a description in another file linked to the document.
Astyle sheet parser806 analyzes the style sheet related to the content document.
Thelayout engine807 determines the layout of the document such that the layout reflects results of the analysis of the style sheet performed by thestyle sheet parser806.
Therenderer808 generates GUI (Graphical User Interface) data to be displayed on theLCD display unit501, in accordance with the document layout determined by thelayout engine807. The generated GUI data is displayed on theLCD display unit501 by theUI module201.
Anevent processing section809 events inputted by the user's operations on thetouch panel502 or keys of theoperating unit112, and carries out processing in accordance with the events. Theevent processing section809 also receives status transition events of apparatuses and jobs from thecontrol API module218 and carries out processing in accordance with each of the events.
In the tree structure of the DOM managed by theDOM processing section804, there are registered event handlers that handle the respective events, on an object class-by-object class basis and on an object instance-by-object instance basis.
In accordance with an event that has occurred, theevent processing section809 determines an object which should handle the event, from the object group managed by theDOM processing section804, and transmits the event to the object. The object having received the event executes various processes according to the algorithm of an event handler corresponding to the event. Processing executed by the event handlers include updating of the DOM held by theDOM processing section804, issuing of a redrawing command to thelayout engine807, issuing of a HTTP request-issuing command to theprotocol processing section801, and control of the functions of an image processing apparatus by calling thecontrol API module218.
Ascript interpreter805 interprets and executes a script written e.g. in JavaScript or ECMAScript. The script is embedded in a document, or described in another file linked to the document, for manipulation of the DOM or the like. A content provider can use the script to program the dynamic behavior of a document to be provided.
FIG. 9 is a view showing, by way of example, the layout of a screen of a Web browser, which is displayed on theLCD display unit501.
Atab901 shown inFIG. 9 is used for screen switching between the Web browser function and the other functions (copying, boxing, transmission, and expansion functions).
AURL entry field902 is used by the user to enter a URL of a desired resource. When the user designates this field, a virtual full keyboard, not shown, for entering characters is displayed. The user can enter a desired character string using software keys arranged on the virtual full keyboard in a manner imitating key tops.
AnOK button903 is a software key used for determining an entered URL character string. When the URL is determined, theWeb browser module211 issues a HTTP request for acquisition of the resource.
Aprogress bar904 indicates the progress of content acquisition processing executed in response to the HTTP request.
Acontent display area905 displays the acquired resource.
Areturn button906 is a software key for redisplaying a content displayed before the currently displayed one when going back to contents displayed in the past according to the history of display thereof.
Anadvance button907 is a software key for advancing the displayed content to a content displayed after the currently displayed one when going back to contents displayed in the past according to the history of display thereof.
A reloadbutton908 is a software key for reacquiring and redisplaying the currently displayed content.
Astop button909 is a software key for stopping content acquisition processing being currently executed.
Astatus area910 displays messages from the functions of theimage processing apparatus110. Even when a Web browser screen is being currently displayed, a message sent from thereader unit113, theprinter unit114, or some other function, for attracting the attention of the user can be displayed in thestatus area910. Similarly, messages from the Web browser function are displayed in thestatus area910. The Web browser function displays a URL character string of a link destination, a title character string associated with a content, or a message designated by a script, in thestatus area910.
FIG. 10 is a sequence diagram showing, by way of example, a flow of request and response processing using the HTTP.
Aclient1001 is software that transmits HTTP requests and receives HTTP responses. Theclient1001 corresponds to a Web browser built in theimage processing apparatus110, a general Web browser operating on a PC (Personal Computer), a PDA (Personal Digital Assistant), a cellular phone or the like, or each of various software programs for accessing a Web server by the same method as used by the Web browser, and utilizing or relaying services.
Aserver1002 is software that receives a HTTP request, carries out processing in response to the HTTP request, and then sends a HTTP response. Theserver1002 corresponds to each of HTTP servers including the software operating on theserver155.
In aHTTP request1003, theclient1001 transmits a GET request for a desired resource to theserver1002. In general, a resource is designated in URI (Uniform Resource Identifier) (particularly, URL) format. Theserver1002 acquires or generates data associated with the resource designated in the GET request, and sends the data as aHTTP response1004. When the designated resource is associated with a static file, theserver1002 reads the file from a file system of theserver155, to acquire data thereof. On the other hand, when the designated resource is associated with processing executed by a CGI program or a Servlet, theserver1002 performs the processing. That is, server-side processing is executed. The server-side processing is executed to generate a response to a request, and during the execution of the server-side processing, a side effect, such as execution of business logic needed to achieve a predetermined service, or access to a back-end database management system, can be provided. Then, theserver1002 sends data generated through the server-side processing. For example, when a resource for displaying a catalog of consumables used by theimage processing apparatus110 is designated, software for electronic commerce is executed, and pieces of information obtained by referring to records including latest price information and stock status information of sheets, toners, and component parts are formatted in HTML or XML to thereby generate catalog document data.
When the data obtained from theHTTP response1004 is formatted such that the data can be displayed, theclient1001 displays the content of the data. If the obtained data is a HTML document, for example, with reference information (such as an image, an embedded object, the URI of an acquisition source of the HTML document, and so forth) of other resources embedded therein, the Web browser repeats transmission of a HTTP request a number of times required for acquisition of the other resources for reference. When obtained data is a document formatted e.g. in HTML, the Web browser can repeatedly acquire and display new resources one after another simply by the user selecting an anchor, such as a hypertext in a page displayed on a Web browser, in which link information is embedded.
AHTTP request1005 is a POST request. If a HTML document contains a form element (FORM), and POST is designated as a method thereof, a POST request for a designated resource is transmitted when the user submits the form element. In the POST request, data is transmitted from theclient1001 to the server1002 (transmission of data from theserver1002 to theclient1001 is also performed as a response). Information input by the user is encoded in the form element (FORM) displayed on the Web browser, and sent to theserver1002 as a POST request. The designated resource in theserver1002 receives the data sent from theclient1001, and performs processing. Then, the designated resource generates aHTTP response1006, and sends the same to theclient1001.
Theclient1001 can show its own identity to theserver1002 by the User-Agent attribute of the protocol header contained in a message transmitted as a HTTP request from theclient1001 to theserver1002. As the value of the User-Agent header, there is entered a specific character string indicative of implementation of the embedded Web browser.
The data type of data sent from theserver1001 to theclient1002 as a HTTP response is described by the Content-Type attribute of the protocol header of the HTTP response. More specifically, in the Content-Type, a descriptor of the data type is described e.g. when a HTML document is transmitted in the HTTP response, as:
Content-Type: text/html; charset=Shift_JIS, and when a PDF document is transmitted in the HTTP response, as:
Content-Type: application/pdf
FIG. 11 is a diagram showing, by way of example, the flow of the server-side processing and client-side processing.
In theHTTP request1003, theclient1001 transmits a GET request for a desired resource to theserver1002. In general, a resource is designated in URI (particularly, URL) format. Theserver1002 acquires or generates data corresponding to the resource designated in the GET request, and sends the data as aHTTP response1004. When the data obtained from theHTTP response1004 is in a displayable format, theclient1001 displays the content of the data. If the obtained data is a HTML document or the like, the Web browser constructs a DOM by theDOM constructing section803 while interpreting the document. When a script written e.g. in JavaScript is embedded in the document, the embedded script is loaded into an associated script interpreter, and then the client-side processing is executed. In the client-side processing, it is possible to carry out different processing depending on the content of the embedded script. For example, it is possible to perform dynamic document manipulation, such as insertion of data generated by the script into a document being analyzed. When an event handler corresponding to an onload event in a document is loaded and registered in a script interpreter, a code of the event handler is executed in timing in which all resources constituting the document are acquired and analyzed. The execution of the code also makes it possible to manipulate the document.
Further, when a user input means, such as the touch panel, is operated to generate an event in a document or a document element, or when an event, such as the time-up of a timer monitored by a script interpreter, has occurred, if the script interpreter contains a code of a script loaded and registered as an event handler, the script code is executed.
In the client-side processing which is executed by the script interpreter on theclient1001, it is not necessarily required to transmit user input to theserver1002, as is distinct from the server-side processing. If processing that can be achieved by simple computing is executed on the client side, communication time for transmitting a request to and receiving a response from theserver1002 can be saved, which makes it possible to reduce turnaround time. Further, since processing is shared by theclients1001, it is possible to avoid concentration of load on the computing resource of theserver1002. In particular, since it is possible to dispense with interactive communication with theserver1002 for realizing the processing, information the privacy of which the user of an apparatus wants to maintain can be processed while being saved in the apparatus without being delivered to theserver1002.
Actually, the client-side processing and the server-side processing are often combined appropriately to implement services.
FIG. 12 is a diagram showing, by way of example, the structure of data for managing the user account of each user using theimage processing apparatus110. In the user account information table, each row corresponds to an individual user who is allowed to use the apparatus.
InFIG. 12, each of user names “system” and “guest” indicates a virtual user's name internally used in theimage processing apparatus110, and the other user names correspond to respective real individual users that actually use theimage processing apparatus110.
The user name “system” is used for identifying a resource whose owner is an apparatus system. The user name “guest” is used for representing an unauthenticated user when theimage processing apparatus110 is operated such that some resources are available without user authentication. Each column is defined as follows:
A user name column contains identifiers for identifying respective users. InFIG. 12, each user name is represented by a character string, but internally, it may be represented e.g. by a numerical value corresponding to an associated individual user.
A primary group column contains identifiers for identifying respective default groups to which the users belong. Each user is allowed to belong not only to a default group, but also to other groups. The groups will be described hereinafter.
A password column contains passwords for use in authenticating the respective users by what-you-know type user authentication. When the function of a smart card is used for user authentication, it is not necessary to use information in this column. Further, the present column may be used for containing PINs (Personal Identification Numbers) to be used together with respective smart cards.
An e-mail address column contains e-mail addresses of the respective users.
An extension number column contains extension telephone numbers of the respective users.
A variety of columns other than the above-mentioned columns may be added for registering user-by-user information. For example, by additionally providing columns for registering user full names, default functions, default in-box folders, optional settings, and so forth, such pieces of information can be stored as specific information on a user-by-user basis.
FIG. 13 is a diagram showing, by way of example, the structure of data for managing user groups that use theimage processing apparatus110. InFIG. 13, each row corresponds to a group to which a user or users can belong.
A group is an object representative of a set of users. Various sets, such as departments, posts, roles, and so forth of an organization, can be defined as respective groups. An individual user can belong to a plurality of groups simultaneously.
A group name column contains identifiers for identifying respective groups. InFIG. 13, each group name is represented by a character string, but internally, it may be represented e.g. by a numerical value associated with the group.
A member list column contains a list defining users belonging to the associated groups. In the present embodiment, the group name “system” represents a virtual group used as a primary group of the user system. A group name “guest” corresponds to a guest user allowed to use the apparatus without user authentication. A group name “admin” represents an administrator group that administers the apparatus. A group name “user” represents a group of all users having user accounts for the apparatus. Group names “rd” and “sales” represent respective groups associated with departments of the organization. A group name “manager” represents a group associated with posts of the organization. A group name “operator” represents a group corresponding to a role for executing expert operations, such as data backup in the apparatus, which is second to that of the administer.
FIG. 14 is a schematic diagram showing, by way of example, the structure of data of a resource class, in which various resources constituting theimage processing apparatus110 are expressed in an abstracted manner.
The resource class is one of classes corresponding to designs for respective objects constituting a device object model. Each of the objects (and object classes as designs for the respective objects) of the device object has several internal features. The features include attributes (also referred to as properties, data members, or variables) holding data and references to other objects, and operations (also referred to as methods or member functions).
The objects and object classes of the device object model are bound to script languages supported by the script interpreter, such that the objects and object classes can be used based on the syntax and semantics of each of the script languages. In JavaScript, the objects of the device object model are associated with an object type of JavaScript. The object classes of the device object model are associated with classes defined by JavaScript. Similarly to many other script languages, JavaScript is not a “strongly typed” language, and hence it has no concept of a class defined by Java or C++. In JavaScript, however, each object corresponding to a class is defined, and a constructor of an object and the prototype object are used to substantially realize numerous concepts of the class.
Theresource class1901 is a superclass of classes corresponding to all the resources to be handled by theimage processing apparatus110. Theresource class1901 can hold a plurality of instance attributes and class attributes.
Owner ID is an instance attribute which holds an identifier of a user that owns the resource.
Group ID is an instance attribute which holds an identifier of a group that owns the resource.
Read Permission to Owner is an instance attribute, which indicates whether or not the user identified by Owner ID is authorized to read from the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
Write Permission to Owner is an instance attribute, which indicates whether or not the user identified by Owner ID is authorized to write in the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
Execution Permission to Owner is an instance attribute which indicates whether or not the user identified by Owner ID is authorized to execute the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
Read Permission to Group is an instance attribute which indicates whether or not a group identified by Group ID is authorized to read from the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
Write Permission to Group is an instance attribute, which indicates whether or not the group identified by Group ID is authorized to write in the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
Execution Permission to Group is an instance attribute which indicates whether or not the group identified by Group ID is authorized to execute the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
Read Permission to Another Person is an instance attribute, which indicates whether or not a user who is neither identified by User ID nor belongs to a group identified by Group ID is authorized to read from the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
Write Permission to Other Person is an instance attribute which indicates whether or not the user who is neither identified by User ID nor belongs to the group identified by Group ID is authorized to write in the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
Execution Permission to Another Person is an instance attribute which indicates whether or not the user who is neither identified by User ID nor belongs to the group identified by Group ID is authorized to execute the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
Default Owner ID is a class attribute which holds an identifier of a default user that owns the resource.
Default Group ID is a class attribute which holds an identifier of a default group that owns the resource.
Default Read Permission to Owner is a class attribute which indicates whether or not the user identified by Owner ID is authorized to read from the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
Default Write Permission to Owner is a class attribute, which indicates whether or not the user identified by Owner ID is authorized to write in the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
Default Execution Permission to Owner is a class attribute which indicates whether or not the user identified by Owner ID is authorized to execute the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
Default Read Permission to Group is a class attribute which indicates whether or not a user belonging to a group identified by Group ID is authorized to read from the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
Default Write Permission to Group is a class attribute which indicates whether or not the user belonging to the group identified by Group ID is authorized to write in the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
Default Execution Permission to Group is a class attribute which indicates whether or not the user belonging to the group identified by Group ID is authorized to execute operation of the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
Default Read Permission to Another Person is a class attribute which indicates whether or not a user who is neither identified by User ID nor belongs to a group identified by Group ID is authorized to read from the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
Default Write Permission to Another Person is a class attribute which indicates whether or not the user who is neither identified by User ID nor belongs to the group identified by Group ID is authorized to write in the resource. The present at-tribute can assume one of values “permitted”, “not permitted”, and “not set”.
Default Execution Permission to Another Person is a class attribute which indicates whether or not the user who is neither identified by User ID nor belongs to the group identified by Group ID is authorized to execute the resource. The present attribute can assume one of values “permitted”, “not permitted”, and “not set”.
When a script, such as JavaScript, is used to handle an object constituting a device object model, the script is assumed to be given the same authority as that of an actual user operating the Web browser is Only when the script is authorized to read the object, reading of an attribute from the script is allowed. Only when the script is authorized to write the object, changing of an attribute of the object from the script is allowed, and only when the script is authorized to execute the object, calling of an operation on the object from the script is allowed. Further, in the above described attributes of permission and default permission, “read”, “write”, and “execute” sometimes have respective meanings determined by adding definitions of semantics specific to each of resources represented by respective subclasses succeeding the present resource class.
The instance attributes of permission and the class attributes of default permission, described above, are in corresponding relationship. In generation of an instance from the class of a resource, an instance attribute of permission associated with the instance generated using a class attribute of default permission of the class is initialized. Alternatively, when an instance attribute of permission is not set yet to an instance of a resource, a class attribute of default permission held in the class of the instance may be used instead.
Although in the present embodiment, a resource access authority is represented by the above described permission attribute group, a known access control list (ACL) may be held for each class corresponding to a resource to thereby express the resource access authority.
FIGS. 15A to15C are class diagrams showing, by way of example, the structure of data illustrating the inheritance relationship between the resources constituting theimage processing apparatus110.
Each class inFIGS. 15A to15C are used to generate (instantiate) an object. Object groups generated by the classes are held in theDOM processing section804 to form the device object model to be accessed by thescript interpreter805.
Relations between classes are serialized into a byte string and permanently stored as a file in theHDD304 even when theimage processing apparatus110 is inoperative. Upon the start of theimage processing apparatus110 and during operation of the same, the file is read by theCPU301 of thecontroller unit111, and class groups and object groups as instances thereof, which are shown in the present glass diagram, are dynamically generated and maintained/managed in theRAM302, as data structures in each of which the relationship between classes or objects is maintained.
Theresource class1901 is an abstraction of system resources. This class is used for controlling access to the multi-userimage processing apparatus110. The resource class has at least the attributes described with reference toFIG. 14, and the attributes are inherited by all subclasses described below, as characteristics common to all the subclasses.
Aunit class1902 is a subclass of theresource class1901. Theunit class1902 is an abstraction of physical units constituting theimage processing apparatus110.
Anoperating unit class1903, ascanner unit class1904, a markingunit class1905, an originalfeeder unit class1906, a sheetfeeder unit class1907, and adischarge unit class1902 are all subclasses of theunit class1902.
An externalinterface unit class1940 is a subclass of theunit class1902. The externalinterface unit class1940 is an abstraction of external connection interface units.
An image processing systemnetwork unit class1941, aUSB unit class1942, and acommunication unit class1943 are all subclasses of the externalinterface unit class1940.
Areader unit class1971 is a subclass of theunit class1902, and corresponds to thereader unit113.
Aprinter unit class1972 is a subclass of theunit class1902, and corresponds to theprinter unit114.
Adevice class1970 is a subclass of theunit class1902, and corresponds to theimage processing apparatus110.
Anexternal unit class1948 is a subclass of theunit class1902. Theexternal unit class1948 is an abstraction of external units connected to the apparatus via external interface units and the like.
Atransport class1945 is a subclass of theresource class1901. Thetransport class1945 is an abstraction of various communication paths allowing theimage processing apparatus110 to communicate with other nodes via networks and communication lines.
Anetwork port class1946 is a subclass oftransport class1945. Thenetwork port class1946 is an abstraction of communication paths for communication with processes of the other nodes by network interfacing. An instance of thenetwork port class1946 is characterized by a protocol, such as TCP (Transmission Control Protocol) or UDP (User Datagram Protocol), and a port number associated with the protocol.
Acommunication line class1947 is an abstraction of communication paths for communication with other apparatuses through communication lines used by a facsimile and the like. An instance of thecommunication line class1947 is characterized e.g. by a line number assigned to a line in a telephone exchange line network.
Afunction class1909 is a subclass of theresource class1901. Thefunction class1909 is an abstraction of functions provided by the image processing system.
A copyingfunction class1910 is a subclass of thefunction class1909. The copyingfunction class1910 is indicative of a function of copying an original printed on a sheet. Further, amonochrome copying class1911 and acolor copying class1912 are subclasses of the copyingfunction class1910.
Atransmission function class1913 is a subclass of thefunction class1909. Thetransmission function class1913 is indicative of a function of transmitting digital document data using various protocols. Further, afax transmission class1914, ane-mail transmission class1915, a file transfer/transmission class1916, a file sharedtransmission class1917, and a database input/transmission class1918 are subclasses of thetransmission function class1913. Each of theclasses1914 to1918 is indicative of a function of sending digital document data using an associated protocol.
Abox function class1919 is a subclass of thefunction class1909. Thebox function class1919 is indicative of functions of storing image data read from originals and document data obtained by PDL development, in a storage within the system, and further browsing, printing, transmitting, and managing the stored document data.
Abox storage class1950 is a subclass of thebox function class1919. Thebox storage class1950 corresponds particularly to a part of the box function, i.e. a function of storing document data and the like in the storage.
Abox output class1951 is a subclass of thebox function class1919. Thebox output class1951 corresponds particularly to printing and transmission functions performed as a part of the box function by reading document data stored in the storage.
Asecure print class1952 is a subclass of thebox function class1919. Thesecure print class1952 corresponds particularly to a reserved printing function performed as a part of the box function to temporarily store print data received from a client PC in the storage, without carrying out printing immediately, and print the print data when a user executes an explicit printing operation via theoperating unit112.
Areception function class1922 is a subclass of thefunction class1909. Thereception function class1922 is indicative of functions of receiving digital document data using the same protocols as used by thetransmission function class1913, and storing, transferring, and printing the received digital document data.
Ascanning function class1953 is a subclass of thefunction class1909. Thescanning function class1953 is indicative of functions of reading an original image using thereader unit113, and converting the original image into electronic document data.
Aprinting function class1954 is a subclass of thefunction class1909. Theprinting function class1954 is indicative of a function of printing out print data received from a client PC or the like, by theprinter unit114.
ALIPS print class1955 is a subclass of theprinting function class1954. TheLIPS print class1955 is indicative of functions of interpreting, expanding, and printing out PDL data written in the known LIPS language and received from a client PC or the like.
APostScript print class1956 is a subclass of theprinting function class1954. ThePostScript print class1956 is indicative of functions of interpreting, expanding, and printing out PDL data written in the known PostScript language and received from a client PC or the like.
APCL print class1957 is a subclass of theprinting function class1954. ThePCL print class1957 is indicative of functions of interpreting, expanding, and printing out PDL data written in the known PCL language and received from a client PC or the like.
Ajob class1921 is a subclass of theresource class1901. Thejob class1921 is an abstraction of actual jobs corresponding to various services of thefunction class1909.
Ajob list class1958 is a container that can store a plurality of job instances. Thejob list class1958 is an abstraction of specific kinds of job sets, such as a list of jobs which are currently being executed and a list of currently suspended jobs.
Alog class1922 is a subclass of theresource class1901. Thelog class1922 is an abstraction of log information records including information on execution and termination of objects in thejob class1921 and information on various events that occur in accordance with system operations.
Alog list class1959 is a container that can store a plurality of log instances. Thelog list class1959 is an abstraction of sets of specific types of histories, such as a job log and a system log.
Abox class1923 is a subclass of theresource class1901. Thebox class1923 is an abstraction of management units of a file system handled by thefunction class1909.
Afolder class1924 is a subclass of theresource class1901. Thefolder class1924 is an abstraction of a management structure for grouping a plurality of files in the file system handled by thefunction class1909.
Adocument class1925 is a subclass of theresource class1901. Thedocument class1925 is an abstraction of files, i.e. various kinds of digital documents in the file system handled by thefunction class1909.
Anaddress book class1926 is a subclass of theresource class1901. Theaddress book class1926 is an abstraction of an address list for use in registering system users and user groups and used by function classes including thetransmission function class1913 and thereception function class1920, for handling address information.
A receptiontransfer rule class1927 is an abstraction of a group of rules for setting transfer conditions, designating transfer destinations, describing behaviors, and so forth in transfer of received documents by thereception function class1920.
Aconfiguration class1928 is a subclass of theresource class1901. Theconfiguration class1928 is an abstraction of configurations of operation parameters for controlling various operations of the system. Auser configuration class1929 and anadministrator configuration class1930 are subclasses of theconfiguration class1928. Theuser configuration class1929 is indicative of configurations for end users, and theadministrator configuration class1930 indicative of configurations for administrators.
An encryption key/electronic certificate class1960 is a subclass of theresource class1901. The encryption key/electronic certificate class1960 is indicative of data of various electronic keys, signatures, certificates, etc. held and managed by theimage processing apparatus110 and used for encryption processing, user authentication, client authentication, server authentication, and so forth. In general, instances of the encryption key/electronic certificate class1960 are very important for security and include information to be owned on a user-by-user basis, and therefore, access to the instances must be strictly controlled.
FIG. 16 is a class diagram showing, by way of example, the structure of data illustrating the aggregation relationship between resources handled by theimage processing apparatus110.
Each class inFIG. 16 is used to generate (instantiate) an object. Object groups generated by the classes are held in theDOM processing section804 to form the device object model to be accessed by thescript interpreter805.
Relations between classes are serialized into a byte string and permanently stored as a file in theHDD304 even when theimage processing apparatus110 is inoperative. Upon the start of theimage processing apparatus110 and during operation of the same, the file is read by theCPU301 of thecontroller unit111, and class groups and object groups as instances thereof, which are shown in the present glass diagram, are dynamically generated and maintained/managed in theRAM302, as data structures in each of which the relationship between classes and objects is maintained. The data structure expresses the parent-child aggregation relationship between the resources. In the present embodiment, the aggregation relationship between the resources is defined to reduce load for managing the various resource groups related to theimage processing apparatus110. When any physically and conceptually inclusive relationship is recognized between a unit and a subunit (partial unit) or between a container and a content and is available for resource management, the inclusive relationship is introduced into the definitions.
The classes inFIG. 16 are the same as the corresponding ones of the classes inFIGS. 15A to15C. Therefore, detailed description thereof is omitted, with the same reference numerals designating the same classes.
Thedevice class1970 represents the entireimage processing apparatus110 for convenience of description. Thereader unit class1971 is a part of thedevice class1970. The originalfeeder unit class1906 and thescanner unit class1904 are parts of thereader unit class1971.
The operatingunit class1903 is a part of thedevice class1970.
Theprinter unit class1972 is a part of thedevice class1970. The sheetfeeder unit class1907, the markingunit class1905, and thedischarge unit class1908 are parts of thedevice class1970.
Thenetwork unit class1941 is a part of thedevice class1970. Thenetwork port class1946 is a part of thenetwork unit class1941.
Thecommunication unit class1943 is a part of thedevice class1970. Thecommunication line class1947 is a part of thecommunication unit class1943.
TheUSB unit class1942 is a part of thedevice class1970. Theexternal unit class1948 is a part of theUSB unit class1942.
Thebox class1923 is a part of thedevice class1970. Thefolder class1924 is a part of thebox class1923. Thedocument class1925 is a part of thefolder class1924.
Thejob list class1958 is a part of thedevice class1970. Thejob class1921 is a part of thejob list class1958.
Thelog list class1959 is a part of thedevice class1970. Thelog class1922 is a part of thelog list class1959.
FIG. 17 is a diagram showing part of objects forming respective instances of the device object model.
InFIG. 17, each block represents an object, i.e. an instance of each class. Number attached to each object represents a reference numeral depending on the associated class.
Each of the objects constituting the device object model has characteristics of the associated class, i.e. attributes and operations to be executed. In addition to the characteristics defined by the class of the object, characteristics of a parent class in an abstract-concrete relationship are inherited. For example, an object “device” of a Device class has not only characteristics defined by thedevice class1970, but also characteristics of theunit class1902 as an abstract class of thedevice class1970 and characteristics of thesource class1901 as an abstract class of theunit class1902. Further, characteristics are inherited from an Element class, not shown, and a Node class, not shown, as abstract classes of theresource class1901, and an Object class, not shown, at the highest level in hierarchy of the inheritance relationship defined by JavaScript. Each object refers to a child object thereof by its attribute. For example, the object “device” has an attribute “printer”, and the attribute “printer” refers to instances of theprinter unit class1972.
The object “device” is an instance of thedevice class1970, and has the following attributes:
An attribute “serial” represents a serial number. An attribute “vender” represents a vender. An attribute “model” represents a model. These attributes are a part of attributes inherited from theunit class1902.
An attribute “firstChild” refers to a first object as a child in a parent-child relationship. This attribute is one of attributes inherited from the Node class of the DOM.
The attribute “printer” refers to the instances of theprinter unit class1972 as a child of the object “device” in the parent-child relationship. An attribute “reader” refers to instances of thereader unit class1971 as a child of the object “device” in the parent-child relationship. An attribute “communication” refers to instances of thecommunication unit class1943 as a child of the object “device” in the parent-child relationship. An attribute “log” refers to instances of thelog list class1959 as a child of the object “device” in the parent-child relationship. The above described attributes are a part of the attributes defined by thedevice class1970.
An operation “diag” performs self-diagnosis of theimage processing apparatus110. This operation “diag” is one of operations inherited from theunit class1902.
An operation “getNumberOfJobs” returns the number of jobs currently being executed in the entireimage processing apparatus110. An operation “getCurrentUser” returns an object indicative of a user currently using the apparatus. These are a part of operations defined by thedevice class1970.
An operation “getElementById” retrieves an object having an ID designated by “id” from an object group of children of the object “device” in the parent-child relationship, and returns a reference of the retrieved object. An operation “getElementByTagName” retrieves an object group having a name designated by “name” from the object group of children of the object “device” in the parent-child relationship, and returns a list of references of the retrieved objects. These are a part of operations inherited from the Node class of the DOM.
An object created as an instance of theprinter unit class1972 has the following characteristics:
Attributes “serial”, “vender”, “version”, and “firstChild” are the same as those of the object “device”. An attribute “isOnline” is a predicate that assumes a true value when theprinter unit114 is online. An attribute “finisher” refers to instances of thedischarge unit class1908 as a child of the unit class in the parent-child relationship. An attribute “papersupply” refers to instances of the sheetfeeder unit class1907 as a child of this unit class in the parent-child relationship. An attribute “marking” refers to instances of themarking class1905 as a child of this unit class in the parent-child relationship. These are a part of attributes defined by theprinter unit class1972.
Operations “diag”, “getElementById”, and “getElementByTagName” are the same as those of the object “device”. An operation “getNumberOfJobs” returns the number of jobs being currently executed byprinter unit114. An operation “getTotalCounter” returns the total or accumulated number of copies printed by theprinter unit114. An operation “getToner” returns the remaining amount of toner held in theprinter unit114. An operation “setOnline” brings theprinter unit114 into an online state. An operation “setOffline” brings theprinter unit114 into an offline state.
FIG. 18 is a diagram showing, by way of example, a parent-child hierarchical structure of client-side objects provided as an operational environment of a script by a JavaScript interpreter incorporated in an embedded Web browser.
A Window object is at the highest level in the parent-child hierarchical structure of client-side JavaScript objects. The Window object corresponds to a window (frame) for displaying a browser document. Client-side objects are all referred to through the Window object. The Window object is a global object linked to the head of a scope chain in a language processing system. The Window object has an attribute “document” and an attribute “location”. The attribute “document” refers to a Document object associated with the corresponding window. The attribute “location” refers to a Location object associated with the corresponding window. The Window object also has an attribute “frames []”. Use of the attribute “frames []” makes it possible to refer to Window objects associated with respective frames constituting an original window. For example, the attribute “document” refers to a Document object associated with the current window, and “frames [1].document” refers to a Document as a second child frame of the current window. An object referred to through the current window or one of the other Window objects can refer to an object other than itself. For example, by utilizing a “frames []” array of the Document object, it is possible to refer to Form objects corresponding to a plurality of HTML forms to be displayed in a document. To refer to one of these forms, a description “self.document.forms[0]” is used.
In the Web browser in the present embodiment, the device object model is positioned in the above described object hierarchy. An attribute “device” of the Window object refers to the instance of the device object model (i.e. the object “device” inFIG. 17).
Now, a description will be given of a control operation executed by theimage processing apparatus110 configured as above.
FIGS. 19 and 20 are views showing, by way of example, a document acquired from a server by the Web browser.
FIGS. 19 and 20 show a HTML document having the JavaScript code embedded therein. The script embedded in the document is loaded into the script interpreter and executed for interpretation of the document by the Web browser, and as a consequence, a document dynamically adapted to a specific embedded device incorporating the Web browser is generated and displayed by the client-side processing.FIGS. 21 and 22 illustrates examples of a dynamically adapted document displayed on the Web browser. A description will be given of details of the document inFIGS. 19 and 20 mainly based on script portions embedded in the document, in association with the examples inFIGS. 21 and 22.
InLine7 inFIG. 19, a user object using the current apparatus is acquired by the operation “getCurrentUser” of the object “device”, and the attribute “name” of the user object is read out. As a consequence, the name (“Taro Yamada” in the illustrated examples inFIGS. 21 and 22) of the user using the apparatus is inserted into the document.
InLine9, the model name of the apparatus is read out by the attribute “model” of the object “device”, and the model name (“MFP3200” in the illustrated examples inFIGS. 21 and 22) is inserted into the document.
InLines12 to33, pieces of information useful to the specific apparatus are selectively inserted according to the actual mounting state of each of subunits constituting the apparatus.
InLine13, the object “device” refers to an object “reader”, and an attribute “model” of the object “reader” is read out, whereby it is determined whether or not the model of the reader unit constituting the apparatus is equal to “S500”. If the model of the reader unit is equal to “S500”, the object “reader” refers to an object “feeder” inLine14, and an attribute “model” of the object “feeder” is read out, whereby it is determined whether or not the model of an original feeder unit mounted in thereader unit113 is equal to “DF03”. If the model of the original feeder unit is equal to “DF03”, information specifically related to the specific original feeder unit is inserted into the document inLines15 to21. The inserted information contains an embedded link to an information source that provides further detailed information, and inLines19 and20, the URL of this link dynamically generates a most appropriate URL according to the original feeder unit model read out by “device.reader.model”, for guiding the Web browser to a most appropriate page. The apparatus in the illustrated examples inFIGS. 21 and 22 includes a reader unit of the present model and has an original feeder unit mounted on the reader.unit, and therefore information for guiding the Web browser to a trade-in campaign is inserted in the document.
Lines24 to32 describe processing to be executed when the model of the printer unit included in the apparatus is “P9900”. The apparatus in the examples inFIGS. 21 and 22 does not include a printer unit of this model, and hence the information ofLines24 to32 is not inserted in the document.
InLines35 to56 inFIG. 20, most recently released or latest firmware versions and the versions of firmware incorporated in the actual apparatus, which are grasped on the server side, are compared with each other, and if any old version still remains incorporated in the apparatus, information recommending making a request for upgrading services provided by a customer engineer is selectively inserted into the document.
InLine35, an array “latests” is generated for storing most recently released firmware versions on a subunit-by-subunit basis.
InLines36 to41, an object storing an attribute “version” representative of a latest version and an attribute “label” representative of a display label is generated for each of the operating unit, the printer unit, the reader unit, the network unit, the communication unit, and the USB unit, and the objects are stored in the array “latests” as an associative array with object names as keys.
Lines42 to55 form a loop to be repeated for each of all the elements in the array “latests”.
InLine42, the key of an element in the array “latests” is represented by a variable “unit”.
InLine43, an attribute of the object “device” is accessed using an associative array notation “device[unit]”. For example, if the value of “unit” is a character string ‘operationPanel’, “device [unit]” represents “device[“operationPanel”]”. In JavaScript, this represents the same as “device.operationPanel” in dot notation, and therefore “device[“operationPanel”]” means access to an attribute (property) “operationPanel” of the object “device”. The attribute “operationPanel” is an operating unit object as a component of the device object. In the present line, it is determined whether “device[unit]”, i.e. an object of a unit is neither undefined or null, and “device[unit].version” i.e. the version of the object of the unit assumes a smaller value than the latest version of firmware for the unit, which is stored in the array “latests” inLines36 to41, in the actual device object model of the system. If these conditions are satisfied, it means that the operating firmware of the unit is older than the most recently released version. In this case, inLines44 to54, the information recommending making a request for firmware version-up (e.g. ROM replacement) services provided by a customer engineer is inserted into the document. The inserted information contains an embedded anchor “mailto” which refers to URLs based on a pseudo protocol. InFIG. 21, this anchor is displayed as hypertext “send a request to the support center by e-mail”. When the user points at this hypertext and clicks, an e-mail client function is invoked from the Web browser. The URL contains not only a destination address “support@canon.jp”, but also encoded “subject” and “body”, so that the destination address and the initial values of the subject and the body are passed to the e-mail client function.
FIG. 23 shows, by way of example, a screen associated with the thus activated e-mail client function. On the illustrated screen is set the destination address designated by the content provider. Further, there is set a subject including a model name and a serial number of a device, which are acquired from an actual device object. Furthermore, in association with a subunit of which firmware of a newer version is available, the model name of the subunit and the version of firmware currently incorporated in the subunit, which were acquired from the actual device object, are set in the body.
Referring again toFIG. 20, inLines59 to67, the amounts of consumables in the operating embedded device remaining at this time are checked, and if the remaining amount of any consumable article is insufficient, data for recommending ordering the consumable article and displaying a link to an online ordering page is inserted into the document.
InLine59, a method “getToner()” of the printer unit object as a component of the device object is invoked by an operation “device.printer.getToner()”, whereby the percentage of the remaining amount of toner is obtained.
InLine60, it is determined whether or not the remaining amount of toner is below 10%, and if it is below 10%, the fact is inserted into the document.
InLine61, a URL to be inserted into the document is generated. In this line, an attribute “device.printer.model” is read out to be embedded into a URL, whereby an URL directly linked to a page for online sales of a toner suited to a model currently used by the user can be generated.
InLines62 and63, a message warning that the remaining amount of toner is insufficient and including hypertext for guiding to the page for online sales of the suited toner is inserted into the document.
If the remaining amount of toner is not less than 10%, this message is not contained in the document, as is seen in the illustrated exemplary inFIG. 21, whereas if the remaining amount of toner is below 10%, the message is inserted into the document as is seen in the illustrated exemplary inFIG. 22.
InLine71, a link to a latest manual provided by the server is generated. An attribute “device.manual” is read out, and a URL having this attribute embedded therein is generated for reference, so that the user can trace this link to thereby directly reach the manual suited to the apparatus in use.
FIG. 21 is a view showing, by way of example, a dynamically adapted document displayed on the Web browser. The document is displayed on thecontent display area905 of the Web browser.
In themessage5001 written in the content document, there is inserted the name of the user (Taro Yamada) currently using theimage processing apparatus110, which was acquired from the device object model by the script.
In themessage5002 written in the content document, there is also inserted a device model name (MFP3200) acquired from the device object model by the script.
Aparagraph5003 is inserted into the document after it is determined whether or not the model of thereader unit113 and that of the original feeder unit, which were acquired from the device object model by the script, satisfy the conditions for providing the information and, as a result, it is determined that the conditions are satisfied. The URL of an anchor contained in theparagraph5003 contains the model name of the original feeder unit, which was acquired from the device object model, and therefore the user can select an underlined link to thereby shift the screen directly to a page for the trade-in campaign for the original feeder unit.
Aparagraph5004 is inserted into the document after comparison is performed by the script between the latest firmware versions of the respective subunits, which are described in the content, and the firmware versions of the respective subunits actually operating, which were acquired from the device object model and as a result, it is determined that upgradable subunits exist. The link contained in theparagraph5004 contains the URL for mail transmission. The URL contains not only the destination address described in the content, but also encoded information on the apparatus model, the serial number of the apparatus, the names of units to be upgraded, and the firmware versions of the currently used units, so that the user can select an underlined link to thereby automatically generate an e-mail for reporting necessary information to the support center.
Alink5005 is a link to a latest manual page set on the server. This anchor has an URL containing encoded information on a path to the latest manual described in the content and the device model name acquired from the device object model, so that the user can select the underlined link to thereby shift the screen directly to a manual page specific for the embedded device.
FIG. 22 is a view showing, by way of example, another dynamically adapted document displayed on the Web browser. The document is displayed on thecontent display area905 of the Web browser.FIG. 22 shows a case where the same embedded device that displayed the document inFIG. 21 acquires and displays the identical content in different timing.
Aparagraph5101 is inserted into the document after it is determined whether or not the current remaining amount of toner acquired by the script by invoking a toner remaining amount acquisition operation of the device object model is below a predetermined value (10%) defined by a script of the content, and as a result, it is determined that the remaining amount of toner is below the predetermined value. In a message in theparagraph5101 is embedded the currently remaining amount of toner (8%) acquired by the script by invoking the remaining amount of toner acquisition operation of the device object model.
FIG. 23 is a view showing, by way of example, a screen for an e-mail transmission function started based on a URL dynamically generated by script processing. The e-mail transmission screen is displayed on theoperating unit112.
InFIG. 23, in adestination address field5201 is set the destination address designated by the content provider. In asubject field5202 is set the subject including the model name and the serial number of the apparatus, which were acquired from the actual device object. In thebody field5203 are set, as to a subunit for which firmware of a newer version is available, the model name of the subunit and the version of the firmware currently incorporated in the subunit, which were acquired from the associated actual device object.
Information required for making a request for a dispatch of a customer engineer is automatically set, so that the user can send an e-mail immediately or after adding a message, if he/she desires.
Reference numeral5204 designates a cancel button which is used to close the e-mail transmission screen without sending an e-mail.
Reference numeral5205 designates a send button which is used to send an e-mail.
According to the image processing apparatus of the present embodiment, it is possible to provide the following advantageous effects:
A document that selectively presents appropriate information according to the configuration and status of a system can be provided simply by preparing a single content on a server that provides services. Timely information can be provided by updating the server-side content, and adapting the server-side content to a specific embedded device used by the user can be executed by the client-side processing using JavaScript to generate a piece of HTML data and insert the same into a content. The combination of the server-side processing and the client-side processing makes it possible to provide flexible and fine services. The present image forming apparatus can be used, for example, to personalize a Web page content and provide a most appropriate suggestion according to the configuration and dynamic status of the apparatus. Further, since the configuration and status of the apparatus can be reflected in a dynamically generated URL, the present image forming apparatus can be used for displaying a link allowing direct shift to a page most suited to the apparatus among Web pages for information presentation and online sales (conventionally, only a link to an index-like page containing options that are not necessarily suited to a specific apparatus can be displayed, which takes a user time and labor for selecting the most suitable option from the page). Moreover, the present image forming apparatus can be used for providing a prototype of an e-mail to be sent to the support center, by generating a URL. These are all advantageous e.g. for CRM (Customer Relationship Management) as well.
Next, a description will be given of an image processing apparatus to which is applied an embedded device according to a second embodiment of the present invention.
The image processing apparatus of the present embodiment is distinguished from the image processing apparatus of the first embodiment only in the content of a document acquired from a server. Therefore, the hardware configuration and software configuration of a system including the image processing apparatus of the present embodiment are the same as those of the system including the image processing apparatus of the first embodiment.
FIGS.24 to26 are views showing, by way of example, a document acquired from the server by the Web browser.
FIGS.24 to26 show a HTML document having the JavaScript code embedded therein. The script embedded in the document is loaded into the script interpreter and executed for interpretation of the document by the Web browser, and as a consequence, a document dynamically adapted to a specific embedded device incorporating the Web browser is generated and displayed by the client-side processing.FIG. 27 shows, by way example, a dynamically adapted document displayed on the Web browser. A description will be given of details of the document in FIGS.24 to26 mainly based on script portions embedded in the document, in association with the illustrated example inFIG. 27.
InLines18 to26 inFIG. 24, it is determined whether or not the discharge unit as an option unit is mounted, and if the discharge unit is mounted, a link for directly displaying a manual for the unit is displayed. On the other hand, if the discharge unit is not mounted, a document for displaying a link to a page for ordering the discharge unit is inserted into the document. Whether or not the discharge unit is mounted is determined based on whether or not an attribute “device.printer.finisher” of the device object model is set to a value other than “null” (i.e. by referring to a FinisherUnit class object). The content of an anchor is displayed using an image (IMG element of HTML) of the model of the unit (area5301 inFIG. 27). When the unit is not mounted, the portion of the apparatus image corresponding to the unit is displayed as a translucent image with a character “unmounted” superposed thereon.
Similarly, inLines31 to38, it is determined whether or not the original feeder unit as an option unit is mounted, and if the original feeder unit is mounted, a link for directly displaying a manual for the unit is displayed. On the other hand, if the original feeder unit is not mounted, a document for displaying a link to a page for ordering the original feeder unit is inserted into the document. Whether or not the original feeder unit is mounted is determined based on whether or not an attribute “device.reader. feeder” of the device object model is set to a value other than “null” (i.e. by referring to a DocumentFeederUnit class object). The content of an anchor is displayed using an image (IMG element of HTML) of the model of the unit (area5302 inFIG. 27). When the unit is not mounted, the portion of the apparatus image corresponding to the unit is displayed as a translucent image with a character “unmounted” superposed thereon.
InLines43 to52 inFIG. 25, it is determined whether or not the sheet feeder unit as an option unit is mounted, and if the sheet feeder unit is mounted, a link for directly displaying a manual for the unit is displayed. On the other hand, if the sheet feeder unit is not mounted, a document for displaying a link to a page for ordering the sheet feeder unit is inserted into the document. Whether or not the sheet feeder unit is mounted is determined based on whether or not an attribute “device.printer.paperSupply” of the device object model is set to a value other than “null” (i.e. by referring to a paperSupplyUnit class object). The content of an anchor is displayed using an image (IMG element of HTML) of the model of the unit. When the unit is not mounted, the portion of the apparatus image corresponding to the unit is displayed as a translucent image with a character “unmounted” superposed thereon (area5305 inFIG. 27).
InLines59 and60, a link for directly displaying a manual associated with the model of thereader unit113 is displayed. The content of an anchor is displayed using an image of the model of the unit (area5303 inFIG. 27).
InLines67 and68, a link for directly displaying a manual associated with the model of theprinter unit114 is displayed. The content of an anchor is displayed using an image of the model of the unit (area5304 inFIG. 27).
InLines78 and79 inFIG. 26, a link for directly displaying a manual associated with the model of thereader unit113 is displayed. The content of an anchor is displayed as itemized text including the model name of the unit (character string5306 inFIG. 27).
InLines83 to86, it is determined whether or not the original feeder unit as an option unit is mounted, and if the original feeder unit is mounted, a link for directly displaying a manual for the unit is displayed. Whether or not the original feeder unit is mounted is determined based on whether or not the attribute “device.reader.feeder” of the device object model is set to a value other than “null” (i.e. by referring to the DocumentFeederUnit class object). The content of an anchor is displayed as itemized text including the model name of the unit (character string5307 inFIG. 27).
InLines90 and91, a link for directly displaying a manual associated with the model of theprinter unit114 is displayed. The content of an anchor is displayed as itemized text including the model name of the unit (character string5308 inFIG. 27).
InLines95 to99, it is determined whether or not the sheet feeder unit as an option unit is mounted, and if the sheet feeder unit is mounted, a link for directly displaying a manual for the unit is displayed. The content of an anchor is displayed as itemized text data including the model name of the unit. In the illustrated example inFIG. 27, the sheet feeder unit is not mounted, and hence the link is not inserted.
InLines102 to106, it is determined whether or not the discharge unit as an option unit is mounted, and if the discharge unit is mounted, the link for directly displaying the manual for the unit is displayed. On the other hand, if the discharge unit is not mounted, the document for displaying the link to the page for ordering the discharge unit is inserted into the document. Whether or not the discharge unit is mounted is determined based on whether or not the attribute “device.printer.finisher” of the device object model is set to a value other than “null” (i.e. by referring to a FinisherUnit class object). The content of an anchor is displayed as itemized text including the model name of the unit (character string5309 inFIG. 27).
FIG. 27 is a view showing, by way of an example, a dynamically adapted manual document displayed on the Web browser. This manual document is displayed on thecontent display area905 of the Web browser. The description of FIGS.23 to26 was given by also referring toFIG. 27, and therefore duplicate description referring toFIG. 27 is omitted.
Although in the present embodiment, the content of the document is dynamically changed based on an algorithm of the script according to the model of a unit and whether or not an option unit is mounted, it is also possible to change the content of the document in accordance with a further dynamic state to thereby display a manual explaining the error recovery procedure according to an error occurring in the apparatus. Further, it is possible to analyze the pattern of usage of a specific apparatus by the user, based on statistical information stored in the apparatus according to the algorithm of the script, and display a guide for usage most suitable for the usage pattern.
According to the image processing apparatus of the present embodiment, it is possible to provide the following advantageous effects:
A document for dynamically presenting appropriate information according to the model of a unit as a component of the system and/or whether or not an option unit is mounted can be provided simply by preparing a single content on a server for providing services. The present apparatus can be used, for example, to provide an electronic manual or the like optimized for the status of the very apparatus whose incorporated browser is currently performing browsing.
Next, a description will be given of an image processing apparatus to which is applied an embedded device according to a third embodiment of the present invention.
The image processing apparatus of the present embodiment is distinguished from the image processing apparatus of the first embodiment only in the content of a document acquired from a server. Therefore, the hardware configuration and software configuration of a system including the image processing apparatus of the present embodiment are the same as those of the system including the image processing apparatus of the first embodiment.
FIGS. 28 and 29 are views showing, by way of example, a document acquired from a server by a Web browser.
FIGS. 28 and 29 show a HTML document having the JavaScript code embedded therein. The script embedded in the document is loaded into the script interpreter and executed for interpretation of the document by the Web browser, and as a consequence, a document dynamically adapted to a specific embedded device incorporating the Web browser is generated and displayed by the client-side processing.FIG. 30 is a view showing, by way of example, a dynamically adapted document displayed on the Web browser.
The script loaded into the script interpreter includes event handler scripts that handle a DOM event generated by user input operation for elements of the document displayed on the Web browser, a timer event, and like events. The event handlers are executed according to the respective events after the document is displayed on the Web browser. The event handlers perform control on the apparatus by manipulating the device object model, and also modify the document obtained by interpreting the acquired HTML document and displayed, by manipulating the DOM.
FIGS. 31 and 32 are views of examples of the document dynamically modified again after completion of display immediately after document acquisition and displayed on the Web browser. A description will be given of details of the document inFIGS. 28 and 29 mainly based on script portions embedded in the document, in association with the illustrated examples inFIG. 31 and32.
Lines5 to29 inFIG. 28 define a function “diag”. The function “diag” receives a reference “unit” of each unit object as an argument, and executes a self-diagnosis code for the unit. Then, the function “diag” edits the document already displayed on the Web browser, based on the result of the execution of the self-diagnosis code.
InLine6, an operation “diag” as a self-diagnosis method defined in a unit object to which reference has been made is invoked (Note that the operation “diag” is different from “diag(unit)” defined in Line5). Then, an integer value “digResult” returned as a diagnostic result is obtained. If the value “digResult” is equal to “0”, the unit is normal, and the other values represent an error code.
InLine7, a DIV element of the HTML document, to which is assigned an ID “diagDiv” , is retrieved by manipulating the DOM to obtain a reference “diagDiv” thereof.
InLine8, a first P element contained in the obtained reference “diagDiv” is retrieved to obtain a reference “oldP” thereof.
InLine9, a new P element is generated, and a reference “p” thereof is obtained.
InLine10, it is determined whether or not the result “diagResult” of the diagnosis executed inLine6 is normal. If the diagnostic result “diagResult” is normal,Lines11 and12 are executed, whereas if the diagnostic result “diagResult” is abnormal,Lines15 to26 are executed.
When the diagnostic code is terminated normally, a DOM text node formed by a character string “Diagnosis: Normal” is generated inLine11.
InLine12, the generated text node is added as a first child of the P element generated inLine9. As a result, the character string “Diagnosis: Normal” is set in text of “p”. Then, the process proceeds toLine28.
On the other hand, if it is determined that the diagnostic code is abnormal, the URL of a trouble-shooting support site, which has an error code of the diagnostic result “diagResult” embedded therein, is constructed inLine15.
InLine16, a DOM text node formed by a character string of a message containing the error code of the diagnostic result “diagResult” and warning of abnormality is generated. If the error code is “199”, a character string “Diagnosis: Abnormality is detected. Error code is #199. For detailed information,” is generated.
InLine19, the generated text node is added as a first child of the P element generated inLine9.
InLine20, an A element is generated anew, and a reference “a” thereof is obtained.
InLine21, a HREF attribute is set to the generated A element “a”. The value of the HREF attribute is equal to the URL of the trouble-shooting support site, which was constructed inLine15.
InLine22, a DOM text node formed by the same character string of the same URL is generated.
InLine23, the generated text node is added as a first child of the A element “a” generated inLine20. As a result, a character string, which is visible to the user, of a link displayed on the Web browser is set to the URL of the trouble-shooting support site.
InLine24, the A element “a” having the HREF attribute and the text node already set thereto is added as a second child of the P element.
InLine25, a DOM text node formed by a character string “Please, refer to” is generated.
InLine26, the generated text node is added as a third child of the P element.
InLine28, “oldP” so far displayed as a reference of the first P element of “diagDiv” is replaced by the newly generated and constructed reference “p”.
The function “diag” is used in the script written inLines59 to76 inFIG. 29.
InLine59, it is checked whether or not “device.printer.diag” is neither undefined nor “null”, i.e. whether the self-diagnostic code of the printer unit has been registered. If the self-diagnostic code of the printer unit has been registered, a form element (FORM) button having a label “PRINTER” thereon and in which is registered calling of the function “diag” with the printer unit object as an argument is inserted into the HTML document. Thus, the button for calling the self-diagnosis of the printer unit object is displayed.
Similarly, inLines62 to65, if a self-diagnostic code is provided, a button for calling the self-diagnosis of the discharge unit object is displayed.
Similarly, inLines66 to69, if a self-diagnostic code is provided, a button for calling the self-diagnosis of the sheet feeder unit object is displayed.
Similarly, inLines70 and71, if a self-diagnostic code is provided, a button for calling the self-diagnosis of the reader unit object is displayed.
Similarly, inLines73 to76, if a self-diagnostic code is provided, a button for calling the self-diagnosis of the original feeder unit object is displayed.
This script is executed for interpretation immediately after acquisition of a HTML document, and hence the buttons are displayed on the Web browser first. If a specific embedded device is provided with a self-diagnostic code for the printer unit and one for the reader unit,buttons5401 and5402 for the printer and the reader are displayed as shown in the example inFIG. 30.
A self-diagnostic code is executed by the function “diag” registered as an event handler, when the user clicks (or touches via the touch panel) the associated button displayed on the Web browser. For example, when the user touches thebutton5401 labeled “PRINTER” and diagnosis is completed, and if an abnormality is detected, a message warning the user of the abnormality is generated by partially modifying the currently displayed document (not by reading another document) and displayed in afield5501 inFIG. 31.
Lines32 to41 inFIG. 28 define a function “showPrinterStatus”.
InLines33 and34, the present document is searched for a DIV element which is assigned an ID “statusDiv” to obtain a reference “p” of a first P element contained in the DIV element.
InLine35, an element “isOnline” of the printer unit object is read out. If the value of the element “isOnline” is “true”, a character string “Online” is set to an attribute “data” of the first child (i.e. the text node) of the P element inLine36, whereas if the value of the element “isOnline” is “false”, a character string “Offline” is set to the attribute “data” inLine39.
The function “showPrinterStatus()” is used inLines52 et seq. inFIG. 29.
InLine52, a script is registered as an event handler corresponding to an onLoad event of a BODY element. The onLoad event handler is called or invoked in timing synchronous with completion of loading (expanding and displaying) of all data constituting a document. In the onLoad event handler, the function “setinterval” registers a timer event handler that becomes active at predetermined time intervals. When this registration is executed, the function “showPrinterStatus” is invoked at time intervals of 10,000 msec.
Immediately after the Web browser displays the document, a character string “acquiring a status . . . ”5403 as described in “statusDiv” (Line81) in the original HTML document is displayed as in the illustrated example inFIG. 30.
After the lapse of approximately 10 seconds, a status acquired from the device object model is presented to the user, for example, as acharacter string5601 in the illustrated example inFIG. 32, whereafter the status display is continually updated at time intervals of 10 seconds as long as the document is displayed by the Web browser.
Lines44 to48 inFIG. 28 define a function “errorHandler”. The function “errorHandler” receives an argument “event”.
InLines45 and46, the present document is searched for the DIV element which is assigned the ID “statusDiv” to obtain the reference “p” of the first P element contained in the DIV element.
InLine47, a character string formed by coupling attributes “unit” and “:” of the object “event” received as an argument and an attribute “message” of the object “event” is set to the attribute “data” of the first child (i.e. the text node) of the P element.
The function “errorHandler” is used inLines49 et seq. For processing an error event of the device object, it is only required to register the function “errorHandler” as an attribute “onerror” of the device object “device”. The device object model interfaces with apparatus control, and invokes the function registered in “device.onerror” when some error occurs in apparatus control. At this time, the object “event” passed as an argument has a reference “unit” of a unit object related to the error and attributes including a character string “message” for explaining the error.
FIG. 30 is a view showing, by way of an example, a dynamically adapted device management document displayed on the Web browser. This device management document is displayed on thecontent display area905 of the Web browser.
FIG. 31 is a view showing an example of the device management document dynamically modified again after completion of display immediately after document acquisition and displayed on the Web browser. This device management document is displayed on thecontent display area905 of the Web browser.
FIG. 32 is a view showing another example of the device management document dynamically modified again after completion of display immediately after document acquisition and displayed on the Web browser. This device management document is displayed on thecontent display area905 of the Web browser.
According to the image processing apparatus of the present embodiment, it is possible to provide the following advantageous effects:
Since the script manipulates the DOM, it is possible to perform not only insertion for document analysis, but also dynamic editing of a document.
The apparatus and jobs can be controlled from the script via the interface of the device object model.
An event handler for manipulating the device object model can be registered in accordance with a DOM event. This makes it possible to access apparatus control according to an event, such as a user input event or a timer event.
Further, an event from the device object model can be handled in the same manner as in processing of a DOM event.
The combination of manipulation of the DOM and that of the device object model by a script embedded in a HTML document makes it possible to describe a user interface for use in apparatus control using HTML and the script. Therefore, a function of HTML as a user interface description language can be used not only for providing a user interface for a Web application operating on a server side, but also for providing a user interface for a service provided for a device on a client side. A user interface description is prepared as a content on the server side, and acquired in response to an acquisition request from the browser of the apparatus (the embedded device), so that a latest content can be provided from a service provider side.
This is advantageous for supporting maintenance of the embedded device by a customer engineer or the user.
Next, a description will be given of an image processing apparatus to which is applied an embedded device according to a fourth embodiment of the present invention.
The image processing apparatus of the present embodiment is distinguished from the image processing apparatus of the first embodiment only in the content of a document acquired from a server. Therefore, the hardware configuration and software configuration of a system including the image processing apparatus of the present embodiment are the same as those of the system including the image processing apparatus of the first embodiment.
FIGS. 33 and 34 are views showing, by way of example, a document acquired from a server by a Web browser.
FIGS. 33 and 34 show a HTML document having the JavaScript code embedded therein. A script embedded in the document is loaded into the script interpreter and executed for interpretation of the document by the Web browser, and as a consequence, a document dynamically adapted to the specific embedded device incorporating the Web browser is generated and displayed by the client-side processing.
The script loaded into the script interpreter includes event handler scripts that handle DOM events, timer events, and the like events generated by user input operation to elements of the document displayed on the Web browser. The event handlers are executed according to the respective events after the document is displayed on the Web browser. The event handlers perform control of the apparatus by manipulating the device object model, and also modify the document obtained by interpreting the acquired HTML document and displayed, by manipulating the DOM.
FIG. 35 illustrates an example of the document displayed on the Web browser. A description will be given of details of the document inFIGS. 33 and 34 mainly based on script portions embedded in the document, in association with the illustrated example.
Lines5 to7 inFIG. 33 define a function “createCounterReport()”.
InLine6, “device.printer.getTotalCounter()” is called to obtain the current value of a print total counter cumulatively calculated by theprinter unit114, and the value is written into a text input element “counter” in a form element (FORM) contained in the present document. The text input element “counter” is described inLine31 inFIG. 34.
Lines8 to10 inFIG. 33 define a function “reportLog()”. This function receives an argument “message”.
InLine9, the argument “message” delivered to the function “reportLog()” is added to a text area element “log” in the form element (FORM) contained in the present document, and a new line is started. The text area element “log” is described inLine36 inFIG. 34.
Lines11 to19 inFIG. 33 define a function “createLogReport()”.
InLine12, the content of the text area element “log” is cleared.
InLine13, an object of thelog list class1959 is retrieved by accessing the device object model using an API similar to that of the DOM. Thelog list class1959 can have a plurality of log list objects, but here a reference to a first log list object is obtained as “log”.
InLine14, a group of objects whose tag names are “record” are retrieved from nodes as children of the log list object in the parent-child relationship by accessing the device object model using the API similar to that of the DOM, and a reference to the list is obtained as “records”.
Lines15 to21 form a loop, wherein the following processing is repeatedly carried out on the objects contained in the “records”: InLine16, one object contained in the “records” is selected, and the selected “record” object is referred to. InLines17 and18, DOM attributes of this “record” object are checked by “record.getAttribute()” as the API of the DOM. If the value of an attribute “facility” is “system”, and at the same time the value of an attribute “level” is “notice”, the value of an attribute “date” of the present object record, “:”, and the “data” attribute of a first child of the same are combined to construct a character string inLine19. Then, the constructed character string is passed to the argument to call the function “reportLog()”.
The function “createCounterReport()” and the function “createLogReport()” are used inLine25 andLine42 of the HTML document inFIG. 34.
InLine25, a script is registered as an event handler that handles an onLoad event of a BODY element. The onLoad event handler is called in timing synchronous with completion of loading (expanding and displaying) of all data constituting a document. In the handler, first, the function “createCounterReport()” is called, and then the function “createLogReport ()” is called. Further, inLine42, a script is registered as an event handler that handles an onClick event of the button input element labeled “UPDATE”. This handler operates in quite the same way as above: first, the function “createCounterReport()” is called, and then the function “createLogReport ()” is called.
Immediately after the Web browser displays the document, a total count value of theprinter unit114 is input to a text input element “counter”, and a time stamp of the “system”-related and notice-level log record object and a message are input to the text area element “log”. Thus, a displayed image as shown inFIG. 36 can be obtained. Thereafter, whenever the user pushes or touches an “UPDATE” button, contents in a counter field and a log field are updated by an onClick event handler associated with the “UPDATE” button.
Further, in the present example of the HTML document, a submit-type input element for sending a HTML form element (FORM) is described inLine43. This input element corresponds to a button labeled “SEND” in the example of display inFIG. 35. When the user pushes the “SEND” button, the contents of the counter and the log are submitted to the server. In short, results that the script obtains by accessing the device object model can be passed to the server via the form element (FORM). This makes it possible to link the server-side processing and the client-side processing to each other, and a script combining manipulation of the DOM and that of the device object model can provide an even wider range of solutions to problems.
However, some users sometimes fear that information stored in their embedded devices might easily leak out to an external network. Further, there exists a method of creating the same state as created by pushing of a “SUBMIT” button, even when the user does not push the “SUBMIT” button. This can increase the possibility that a user's privacy might be violated depending on the user environment and the manner of operation of the embedded device.
To eliminate this possibility, when a script accesses any object of the device object model even once, and an instruction for submitting information from a form element (FORM) contained in a document having the script embedded therein is issued, the user is requested to confirm whether or not to actually execute transmission processing.FIG. 36 illustrates a dialog for use in this confirmation. An instruction for submission of information from a form element (FORM) is a DOM event of a HTML document, which can be captured by a DOM management section. Further, the device object model accessed by a script is also incorporated in the DOM management section and managed by the same, so that the DOM management section can monitor access to the device object model from a script contained in a document. When any access is gained from the document, the DOM management section marks the document “dirty”. When an instruction for submission of information from the form element (FORM) is captured, the DOM management section determines whether or not a document containing the form element (FORM) is marked “dirty”. If the document is marked “dirty”, the DOM management section stops execution of processing responsive to the instruction for submission of information from the form element (FORM), or requests the user to confirm permission of the submission of information from the form element (FORM).
FIG. 35 illustrates an example of a dynamic device report document displayed on the Web browser. This device report document represents the document shown inFIGS. 33 and 34, and is displayed on thecontent display area905 of the Web browser. The display of the document or the device report document is presented in a dynamically adapted manner while reflecting access to the device object model. The device report document includes a user interface (“UPDATE” button) for starting manipulation of the device object model, and interfaces (“counter” and “log” fields) for feeding back the results of the manipulation to the Web browser. Further, the result of the access to the device object model is sent by submission of information from the form element (FORM) (i.e. by touching the “SEND” button of the displayed document).
FIG. 36 illustrates an example of a confirmation pop-up window which is displayed when submission of information from a form element (FORM) from a document that gains access to the device object model is attempted, to request the user to confirm permission of the submission from the form element (FORM).
In the present embodiment, when a script accesses any object of the device object model even once, the user is requested to confirm whether or not to permit submission from a form element (FORM) contained in a document having the script embedded therein. However, if this restriction is deemed too strict, it is possible to select only several objects of the device object model for monitoring. Alternatively, specific methods or specific properties may be selected from the characteristics of the objects forming the device object model, so as to monitor calling of the specific methods or access to the specific properties. In this case, submission from the form element (FORM) from the document from which neither the calling nor the access is not performed is permitted (i.e. permission of the submission from the form element (FORM) is not confirmed by the user).
Although in the present embodiment, permission of submission from a form element (FORM) is confirmed whenever an instruction for submission from the form element (FORM) is issued, the permission or inhibition of submission from a form element (FORM) may be configured to be fixedly set in advance. Further, rules based on the URL of a document acquisition destination and/or that of a form element (FORM) transmission destination may be set in advance such that permission or inhibition of submission from the form element (FORM) is automatically determined.
According to the image processing apparatus of the present embodiment, it is possible to provide the following advantageous effects:
The device object model can be handled in the same manner as the DOM is. The device object model and the DOM are both text based, so that a general Web designer, who is familiar with DOM manipulation by a script, can easily produce a content to be linked to the embedded device.
Further, dynamic nodes of the device object model, particularly a set of objects, such as records e.g. of logs and a plurality of mountable option units of the same kind, which require structural flexibility can be searched and manipulated as a dynamic tree structure similar to the DOM.
Next, a description will be given of an image processing apparatus to which is applied an embedded device according to a fifth embodiment of the present invention.
The hardware configuration and software configuration of the system including the image processing apparatus of the present embodiment is only partially distinguished from those of the system including the image processing apparatus of the first embodiment. Therefore, in the following, different points from the first embodiment due to partial modifications or deletions will be described.
FIG. 37 is a diagram useful in explaining logical usage of theHDD304.
In the present embodiment, the storage area of theHDD304 is logically divided into atemporary area701, and abox area702 according to the uses. Thetemporary area701 is a storage area for temporarily storing PDL expanded data or image data from the scanner so that output sequence of image data can be changed, or a plurality of copies can be outputted by one-time scanning. Thebox area702 is a storage area for using a box function. Thebox area702 is divided into small storage areas, such asareas703 to707, corresponding in number to a registered number. Each box can have its own box name. The user can designate a box to thereby store a PDL job or a scan job as a document in the box. Further, it is possible to create a folder for collectively managing a plurality of documents. Furthermore, it is possible to browse documents and folders stored in a box, or print or send a document in the box.
Similarly to the other resources in the apparatus, theboxes703 to707 are assigned users or groups having ownership. Further, access rights for permitting reading, writing, and execution can be set for each of three types of users, i.e. users as owners (hereinafter referred to as “the users u”), users belonging to the group having ownership (hereinafter referred to as “the users g”), and other users who belong neither to “the users u” nor to “the users g” (hereinafter referred to as “the users o”). Similarly, each of the folders and the documents is assigned an owner and a group so that the access rights can be set.
FIG. 38 is a view showing, by way of example, a user interface for referring to and setting an access right to a document resource instance as an example of a resource.
When a user designates reference to or setting of resource information, a graphical user interface (GUI) inFIG. 38 is displayed on theLCD display unit501.
InFIG. 38, an “INSTANCE” field shows an instance of a currently selected resource. “Technical Research Report 0110” is an identifier, i.e. a document name, assigned to the instance of the document resource.
A “CLASS” field shows the class of the currently selected resource. “DOCUMENT” shows that the currently selected resource is an instance of the document class.
A “HIERARCHY DISPLAY” button is used for hierarchically displaying the relationship between the instance of the currently selected resource and the class thereof. This display will be described in detail hereinafter.
An “OWNER INFORMATION” area is used for referring to or setting information of an owner of the currently selected resource. An “OWNER” field shows the identifier of the user owning the currently selected resource. A “GROUP” field shows the identifier of a group owning the currently selected resource.
An “ACCESS RIGHT SETTING” area is used for referring to the setting of the access rights to the currently selected resource or setting the access rights. This area is displayed as a table. In the table, rows correspond to the owner of the resource instance, the group, and another person, respectively, and each of the rows shows the states of read permission, write permission, and execution permission given to the corresponding one of the owner, the group, and the other persons. Columns show the respective states of read permission, write permission, and execution permission. Each field as an intersection of the row and the column shows the value of an associated attribute of the resource.
The above described example applies to all the objects constituting the device object model. More specifically, only when the user is authorized to read, the reading of an attribute from a script is permitted, and only when the user is authorized to write, the modification of the attribute in the script is permitted. Further, only when the user is authorized to execute, the calling an operation from the script is permitted.
Each attribute has a meaning defined according to the associated resource. The read permission associated with the document resource indicates that browsing, printing, and/or transmission of the document are/is allowed. The write permission associated with the document resource indicates that editing of the document by rewriting and/or deleting elements of the document is allowed. The execution permission associated with the document resource indicates that when processing of the document, such as printing or transmission, is stored as a job script in a job description form in association with the document, execution of the job script is allowed.
A “CANCEL” button is used for canceling a change of a changeable value even when it is changed and closing the present GUI. An “OK” button is used for saving (making effective) a change of a changeable value and closing the present GUI.
A user owning the document can use the present GUI to set a group to own the document from the groups to which the user belongs, as well as to set appropriate permissions to the owner, the group, and the other persons. On the other hand, a user authorized to write related to the administrator configuration (the members of the “admin” group are authorized to write in an attribute of an administrator configuration resource class, not shown) is allowed to change all the attributes, and hence is also allowed to change the setting of the owner of the present document. In the present embodiment, the owner is allowed to perform all the operations on the document, and the members of the group “rd” (a research and development department in an organization) to which the owner belongs are only permitted to perform the reading operation. The other users are not permitted to perform any of the operations including the reading operation.
Resources related to the document resource include a folder class and a box class. A folder is a container which can contain a plurality of documents and a plurality of other folders as contents, and a box is a top-level folder. Read permission associated with the folder and the box indicates permission to display a list of contents contained in the container. Write permission associated with the folder and the box indicates permission to add and delete a content to/from the container. Execution permission indicates permission to execute batch processing on registerable contents on a container-by-container basis.
FIG. 39 is a view showing, by way of example, a user interface for referring to and setting an access right to a color copying function resource instance as another example of the resource. Description of the same configuration of the user interface inFIG. 39 as that of the user interface inFIG. 38 is omitted.
InFIG. 39, the “INSTANCE” field shows an instance of the currently selected resource. “Nameless Instance” is an identifier, i.e. a function name, assigned to the color copying function resource instance. In the present embodiment, the color copying function class has only a single instance automatically generated by the apparatus, and hence the instance is treated as a nameless instance which has no specific name.
The “CLASS” field shows the class of the currently selected resource. “COLOR COPYING” shows that the currently selected resource is the instance of the color copying class.
The “HIERARCHY DISPLAY” button is used for hierarchically displaying the relationship between the instance of the currently selected resource and the class thereof. This display will be described in detail hereinafter.
The “OWNER INFORMATION” area is used for referring to or setting information of an owner of the currently selected resource. The “OWNER” field shows the identifier of the user owning the currently selected resource. The “GROUP” field shows the identifier of a group owning the currently selected resource.
Each attribute shown in the “ACCESS RIGHT SETTING” area has a meaning defined according to the associated resource. The semantics of the color copying function resource is defined by a function resource as a superclass. Read permission associated with the function resource indicates that monitoring of the status of the present function is allowed. Write permission associated with the function resource indicates that a special setting for controlling the operation mode of the function on a system level can be changed. Execution permission associated with the function resource indicates that the job of the function can be started.
In the illustrated example, the user owning the function is the “system”. The “system” is not an actual user, but a virtual user. Therefore, only users authorized to perform writing related to the administrator configuration can use the present GUI to change permissions to the color copying function. A group owning the function is the “sales (sales department in the organization)”. Only members belonging to this group are permitted to use the color copying function, and the other users are not.
FIG. 40 is a view showing, by way of example, a user interface displaying the inheritance relationship between resources and provided for referring to and setting access rights to the color copying function class.
When the user pushes or touches the “HIERARCHY DISPLAY” button in the user interface shown inFIG. 39, the GUI inFIG. 40 is displayed on theLCD display unit501. Description of the same configuration thereof as that of the user interface inFIG. 39 is omitted.
InFIG. 40, the uppermost area is a hierarchy display area. In the hierarchy display area, an abstract-concrete inheritance relationship is displayed in the same hierarchical representation as inFIGS. 15A to15C. In the representation of the inheritance relationship, each box represents a resource class or a resource instance. By touching one of the box areas on theoperating unit112, the user can select a resource class or instance associated with the box area. A class or instance enclosed by a rectangle having a diagonally shaded background represents the currently selected resource class or instance. When the selection is changed, the representation in areas of the GUI below the hierarchy display area is switched to a representation associated with the selected class or instance. In the present example, the color copying function class is selected.
The “OWNER INFORMATION” area is used for referring to or setting information of an owner of the currently selected resource. The “OWNER” field shows the identifier of the user owning the currently selected resource. The “GROUP” field shows the identifier of a group owning the currently selected resource.
Each attribute shown in the “ACCESS RIGHT SETTING” area has a meaning defined according to the associated resource. The semantics of the color copying function resource is defined by a function resource as a superclass. Read permission associated with the function resource indicates that monitoring of the status of the present function is allowed. Write permission associated with the function resource indicates that a special setting for controlling the operation mode of the function on the system level can be changed. Execution permission associated with the function resource indicates that the job of the function can be started.
In the illustrated example, the user owning the function is the “system”. The “system” is not an actual user, but a virtual user. Therefore, only users authorized to perform writing related to the administrator configuration can use the present GUI to change permissions to the color copying function. A group owning the function is the “sales (sales department in the organization)”. Only members belonging to this group are permitted to used the color copying function, and the other users are not.
FIG. 41 is a view showing, by way of example, a user interface displaying the inheritance relationship between resources and provided for referring to and setting access rights to the copying function class.
When the user pushes or touches a box representative of the copying function class in the hierarchy display area inFIG. 40, the GUI inFIG. 41 is displayed on theLCD display unit501. Description of the same configuration thereof as that of the user interface inFIG. 40 is omitted.
InFIG. 41, the uppermost area is the hierarchy display area. In the illustrated example, the copying function class is selected. The copying function class is a superclass obtained by abstracting the color copying function and the monochrome copying function. The superclass is used for inheritance of default attribute values common to subclasses.
In the illustrated example, the user owning the function is the “system”. The “system” is not an actual user, but a virtual user. Therefore, only users authorized to perform writing related to the administrator configuration can use the present GUI to change permissions to the copying function. A group owning the function is the “user” (all users). All users having a user account for the apparatus are permitted to used the copying function, and the other users, i.e. the guest users are not.
FIG. 42 is a view showing, by way of example, a user interface displaying the inheritance relationship between resources and provided for referring to and setting access rights to the monochrome copying function class.
When the user pushes or touches a box representative of the monochrome copying function class in the hierarchy display area inFIG. 41, the graphical user interface (GUI) inFIG. 42 is displayed on theLCD display unit501. Description of the same configuration of the user interface inFIG. 42 as that of the user interface inFIG. 41 is omitted.
InFIG. 42, the uppermost area is the hierarchy display area. In the illustrated example, the monochrome copying function class is selected. The monochrome copying function class is a subclass obtained by specializing the copying function class. The monochrome copying function class inherits default values from the copying function class as a superclass.
In the illustrated example, the user owning the function is the “system”. The “system” is not an actual user, but a virtual user. Therefore, only users authorized to perform writing related to the administrator configuration can use the present GUI to change permissions to the monochrome copying function. A group owning the function is not set, and hence “user” (all users) is inherited from the copying function class as a superclass.
In the “ACCESS RIGHT SETTING” area, none of the permission attributes are set. Therefore, each of the corresponding permission attributes is inherited from the copying function class as a superclass.
FIG. 43 is a view showing, by way of example, a user interface displaying the aggregation relationship between resources and provided for referring to and setting access rights to the printer unit class.
The GUI inFIG. 43 is displayed on theLCD display unit501. Description of the same configuration thereof as that of the user interface e.g. inFIG. 40 is omitted.
InFIG. 43, the uppermost area is the hierarchy display area. In the hierarchy display area, a parent-child aggregation relationship is displayed in the same hierarchical representation as inFIG. 16. In the representation of the aggregation relationship, each box represents a resource class or a resource instance. By pushing or touching one of the box areas on theoperating unit112, the user can select a resource class or instance associated with the box area. A class or instance enclosed by a rectangle having a diagonally shaded background represents the currently selected resource class or instance. When the selection is changed, the representation in areas of the GUI below the hierarchy display area is switched to a representation associated with the selected class or instance. In the present example, the printer unit class is selected.
The “OWNER INFORMATION” area is used for referring to or setting information of an owner of the currently selected resource. The “OWNER” field shows the identifier of the user owning the currently selected resource. The “GROUP” field shows the identifier of a group owning the currently selected resource.
Each attribute shown in the “ACCESS RIGHT SETTING” area has a meaning defined according to the associated resource. Theprinter unit class1972 in the present embodiment only integrates the sheetfeeder unit class1907, the markingunit class1905, and thedischarge unit class1908, as child unit classes thereof, for collectively handling them. Therefore, actually, theprinter unit class1972 receives none of a read access, a write access, and an execution access. However, the printer unit resource holds access right setting attributes such that they can be referred to and set. In the present embodiment, the attribute values of theprinter unit class1972 are directly used as default attribute values of the child unit classes of theprinter unit class1972. Therefore, insofar as the attribute values of the child unit classes as children in the parent-child relationship are left unset, as the value of an attribute of the whole unit class is changed, a corresponding one of the unset attributes of the child unit classes is changed to assume the same value.
FIG. 44 is a view showing, by way of example, a user interface displaying the aggregation relationship between resources and provided for referring to and setting access rights to a discharge unit resource class. Description of the same configuration thereof as that of the user interface inFIG. 43 is omitted.
InFIG. 44, the discharge unit class is selected. Thedischarge unit class1908 is a child unit class of theprinter unit class1972.
InFIG. 44, the attributes of the group and the access rights are left unset, and therefore the values of the corresponding attributes of the printer unit resource are assumed to be set thereto.
FIG. 45 is a view showing, by way of example, a screen displaying an access right violation error.
When processing executed by a user has failed due to lack of an access right, the GUI inFIG. 45 is displayed on theLCD display unit501. A message on the GUI is provided to notify the user of lack of the access right necessary for the processing. Further, the message shows a resource that caused the failure and a permission necessary for accessing the resource. When the user pushes or touches a “DETAIL” button, information concerning the error is displayed in more detail. Information (e.g.FIG. 39) on the resource that caused the failure can also be displayed as detailed information. When the user touches an “OK” button, the present GUI is closed.
In the present embodiment, the hierarchical structure representative of the aggregation relationship between the parent classes and the child classes is held, and insofar as the attributes indicative of access rights to the resources are concerned, the values of the respective attributes of a parent class are used as default values of the corresponding attributes of an associated child class. Therefore, when the attribute values are unset in a child class, the corresponding attribute values can be supplied from an associated parent class, so that insofar as a resource group having a plurality of child classes is concerned, simply by setting the attribute values once in a class including the child classes, it is possible to easily set default access rights common to the partial resources. Further, special access rights different from the common defaults can be set, as required, for a more partial resource (and its child classes if any).
Further, there are provided a GUI hierarchically displaying the parent-child aggregation relationship between the resource classes, and a GUI for use in referring to and setting access right information on each class and each instance with reference to the aggregation relationship between the classes. Therefore, the user can clearly grasp the aggregation relationship between the resources and easily set the access rights properly based on the grasped aggregation relationship.
Although in each of the above described embodiments, only the DOM of a HTML document is used, the present invention can also be applied to general documents described in other markup languages including XHTML. For example, by manipulating the SVG DOM from the script, it is possible to combine a user interface graphically richer than that provided by a document formed only by HTML, and manipulation of the device object model.
Further, although in the above described embodiments, HTTP is used between the browser and the server, HTTPS (Hypertext Transfer Protocol Security) as a matter of course and any other protocol which is and will be generally used in the Web technique may be employed.
Furthermore, although in the above described embodiments, the authority to carry out processing in accordance with execution of a script is determined based on the user currently using the Web browser, this is not limitative, but the access rights to a script may be uniquely determined, or alternatively the access rights may be determined based on a script provider identified by a signature or the like added to a script.
Although in the above described embodiments the access rights are set on an object-by-object basis, they may be set according to each of the operations included in the classes.
The present invention is not limited to the above described embodiments, but can be modified in various manners based on the subject matter of the present invention, which should not be excluded from within the scope of the present invention insofar as functions as recited in the appended claims or the functions performed by the construction of either of the above described embodiments can be achieved. Further, the present invention may either be applied to a system composed of a plurality of apparatuses or to a single apparatus.
Further, it is to be understood that the object of the present invention may also be accomplished by supplying a computer or a CPU with a program code of software, which realizes the functions of any of the above described embodiments, and causing the computer or CPU to read out and execute the program code.
The above program has only to realize the functions of any of the above described embodiments on a computer, and the form of the program may be an object code, a program code executed by an interpreter, or script data supplied to an OS.
Further, it is to be understood that the object of the present invention may also be accomplished by supplying a system or an apparatus with a storage medium in which a program code of software, which realizes the functions of any of the above described embodiments is stored, and causing a computer (or CPU or MPU) of the system or apparatus to read out and execute the program code stored in the storage medium.
In this case, the program code itself read from the storage medium realizes the functions of any of the above described embodiments, and therefore the program code and the storage medium in which the program code is stored constitute the present invention.
Examples of the storage medium for supplying the program code include a floppy (registered trademark) disk, a hard disk, a magnetic-optical disk, a CD-ROM, a CD-R, a CD-RW, a DVD-ROM, a DVD-RAM, a DVD−RW, a DVD+RW, a magnetic tape, a nonvolatile memory card, and a ROM. Alternatively, the program may be downloaded via a network from another computer, a database, or the like, not shown, connected to the Internet, a commercial network, a local area network, or the like.
Further, it is to be understood that the functions of any of the above described embodiments may be accomplished not only by executing the program code read out by a computer, but also by causing an OS (operating system) or the like which operates on the computer to perform a part or all of the actual operations based on instructions of the program code.
Further, it is to be understood that the functions of any of the above described embodiments may be accomplished by writing a program code read out from the storage medium into a memory provided on an expansion board inserted into a computer or a memory provided in an expansion unit connected to the computer and then causing a CPU or the like provided in the expansion board or the expansion unit to perform a part or all of the actual operations based on instructions of the program code.
CROSS REFERENCE TO RELATED APPLICATION This application claims priority from Japanese Patent Application No. 2004-268483 filed Sep. 15, 2004, which is hereby incorporated by reference herein.