Patent Publication Number: US-9906416-B2

Title: Method and apparatus to manage service level agreement

Description:
CROSS-REFERENCE TO RELATED APPLICATIONS 
     This application claims priority under 35 U.S.C. § 119(a) from Korean Patent Application No. 10-2012-0135564, filed on Nov. 27, 2012, in the Korean Intellectual Property Office, the disclosure of which is incorporated herein in its entirety by reference. 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present general inventive concept relates to a method and apparatus to manage a service level agreement (SLA) through a network. 
     2. Description of the Related Art 
     A service vendor promises to provide a customer with a service over a level negotiated through a service quality contract, which is referred to as service level agreement (SLA). The service vendor evaluates a service level while periodically monitoring the performance of a product that the service vendor sold. When it is determined that a current service level does not satisfy the SLA, the service vendor is requested to take necessary maintenance action with respect to a service item having a problem. 
     A service level management (SLM) system to efficiently perform SLA management has been studied. In a current SLM system, a service level provided by sold products is monitored through a network and a result of the monitoring is statistically analyzed, thereby automatically generating a service level report. The service vendor finds any problems or errors in service items through the service level report and takes necessary action. According to the current SLM system, since the service vendor passively recognizes a problem and then takes necessary action, there is no immediate response to the problem. Also, when a new SLA item is added or deleted after a contract is made, a change of SLA items is not reflected in SLA management software that is installed on the SLM system. Thus, the changed SLA item is manually managed until new SLA management software capable of monitoring the changed SLA items is developed. 
     Accordingly, there is no conventional method of automatically managing the errors and/or problems associated with SLA items. 
     SUMMARY OF THE INVENTION 
     The present general inventive concept provides a method and apparatus that may automate service level agreement (SLA) management, may automatically take any necessary action on an SLA item having an error to efficiently and quickly fix the error, and may improve a service level. 
     The present general inventive concept also provides a method and apparatus to dynamically manage changes of SLA items. 
     Additional features and utilities of the present general inventive concept will be set forth in part in the description which follows and, in part, will be obvious from the description, or may be learned by practice of the general inventive concept. 
     The foregoing and/or other features and utilities of the present general inventive concept are achieved by providing a method of managing a service level agreement (SLA) with respect to devices on a network by using a server includes selecting at least one SLA item to quantitatively measure service levels provided by the devices, setting a service management automatic option with respect to the selected SLA item, monitoring the service levels provided by the devices with respect to the selected SLA item, and executing a predetermined event to control the devices according to a result of the monitoring and a setting of the service management automatic option. 
     The monitoring of the service levels may include receiving a normal operation time of each device and an error fix time consumed to fix an error occurring on the selected SLA item, and calculating an average operation rate of the devices based on the normal operation time and the error fix time. 
     The monitoring of the service levels may include receiving error type information indicating cause of an error occurring on the devices, and the executing of a predetermined event comprises executing an event corresponding to the error type information by referring to an error management policy that is previously stored in the server. 
     The method may further include setting a target service level with respect to the selected SLA item based on input by a user. 
     In the monitoring of the service levels, the monitoring result and the set target service level may be compared with each other and the selected SLA item may be indicated to be in a warning state or normal state. 
     The method may further include obtaining SLA extended data to add a new SLA item to the SLA items, and installing the SLA extended data on the server. 
     The installing of the SLA extended data may include parsing a predetermined extensible markup language (XML) file included in the SLA extended data, determining whether the new SLA item is to be added to the existing SLA items based on the parsed predetermined XML file, and installing the SLA extended data according to a result of the determination. 
     The service management automatic option may include an automatic management mode in which the server automatically controls the devices, a semiautomatic management mode in which the server controls the devices only when the monitoring result does not satisfy a predetermined service level, and a manual management mode in which the devices are controlled in accordance with a command by a user, and the SLA items may include at least one of a device firmware management item, a device driver management item, a device consumables management item, and a server software management item, the software being installed on the server. 
     In the executing of the event, at least one of a device firmware update event, a device driver update event, a device rebooting event, and a server software update event, the software being installed on the server may be executed. 
     The selecting of at least one SLA item may include when a user requests registration of an SLA item, receiving an input of a representative name and summary information of the SLA item to be registered, via a graphic user interface (GUI), receiving a selection of at least one of the devices to which the SLA item to be registered is applied, and outputting a list of the SLA items and receiving a selection of the SLA item to be registered from the list. 
     The foregoing and/or other features and utilities of the present general inventive concept may also be achieved by providing a non-transitory computer-readable recording medium having recorded thereon a program to execute the above method. 
     The foregoing and/or other features and utilities of the present general inventive concept may also be achieved by providing a server for managing a service level agreement (SLA) with respect to devices on a network includes a network interface to connect to the network, a user interface to receive a selection of at least one SLA item to quantitatively measure service levels provided by the devices and to receive inputs of a target service level with respect to the selected SLA item and a setting of a service management automatic option, and a control unit to monitor the service levels provided by the devices with respect to the selected SLA item and to execute a predetermined event to control the devices according to a result of the monitoring and the setting of the service management automatic option. 
     The control unit may receive a normal operation time of each device and an error fix time consumed to fix an error occurring on the selected SLA item and may calculate an average operation rate of the devices based on the normal operation time and the error fix time. 
     When an error occurs on the devices, the control unit may receive error type information indicating cause of the error through the network interface and may execute an event corresponding to the error type information by referring to an error management policy that is previously stored in the server. 
     The control unit may compare the monitoring result and the target service level and indicates the selected SLA item to be in a warning state or normal state. 
     The service management automatic option may include an automatic management mode in which the server automatically controls the devices, a semiautomatic management mode in which the server controls the devices only when the monitoring result does not satisfy a predetermined service level, and a manual management mode in which the devices are controlled in accordance with a command by a user, and wherein the SLA items may include at least one of a device firmware management item, a device driver management item, a device consumables management item, and a server software management item, the software being installed on the server. 
     The control unit may obtain SLA extended data to add a new SLA item to the SLA items through the network interface or an external input port provided in the server, and comprises a bundle extension unit to install the SLA extended data on the server. 
     The bundle extension unit may include an extensible markup language (XML) parser to parse a predetermined XML file included in the SLA extended data and an installer to determine whether the new SLA item is to be added to the existing SLA items based on the parsed predetermined XML file and installing the SLA extended data according to a result of the determination. 
     The control unit may execute at least one of a device firmware update event, a device driver update event, a device rebooting event, and a server software update event, the software being installed on the server. 
     The user interface may receive an input of a representative name and summary information of an SLA item to be registered, via a graphic user interface (GUI), when a user requests registration of the SLA item, may receive a selection of at least one of the devices to which the SLA item to be registered is applied, may output a list of the SLA items, and may receive a selection of the SLA item to be registered from the list. 
     The foregoing and/or other features and utilities of the present general inventive concept may also be achieved by providing a server to manage a service level agreement (SLA) with respect to one or more devices on a network, the server including a network interface to connect to the network, and a control unit to monitor service levels provided by the devices with respect to at least one SLA item and to execute a predetermined event to control the devices according to a result of the monitoring based on a preset service management automatic option. 
     The preset service management automatic option may be one of an automatic management mode, a semiautomatic management mode, and a manual management mode. 
     When the preset service management automatic option is the semiautomatic management mode, the server may compare a predetermined service level and the monitoring result, and may either automatically perform the predetermined event when the service levels provided by the devices are lower than the predetermined service level, or may not perform the predetermined event until a user command is received when the service levels provided by the devices are equal to or higher than the predetermined service level. 
     The server may further include a user interface to display a plurality of SLA items, to allow a user to select the at least one SLA item from the plurality of SLA items to quantitatively measure the service levels provided by the devices, to allow a user to preset the service management automatic option, and to receive inputs of a target service level with respect to the at least one selected SLA item and the preset service management automatic option, and a storage unit to store an error management policy. 
     The control unit may further include a graphic user interface (GUI) generation unit to generate a GUI to be output through the user interface to allow a user to view the SLA items, a monitoring unit to monitor the service levels provided by the devices with respect to the selected SLA items through the user interface, and an event execution unit to execute the event by referring to the error management policy stored in the storage unit executes the event corresponding error type information. 
     The event execution unit may execute at least one of a device firmware update event, a device driver update event, a device rebooting event, and an SLA management software update event. 
    
    
     
       BRIEF DESCRIPTION OF THE DRAWINGS 
       The above and other features and utilities of the present general inventive concept will become more apparent and more readily appreciated from the following description of the exemplary embodiments, taken in conjunction with the accompanying drawings of which: 
         FIG. 1  is a view schematically illustrating a service level agreement (SLA) management system according to an exemplary embodiment of the present general inventive concept; 
         FIG. 2  is a flowchart illustrating an SLA management method according to an exemplary embodiment of the present general inventive concept; 
         FIG. 3  is a flowchart illustrating a process of registering an SLA item, according to an exemplary embodiment of the present general inventive concept; 
         FIG. 4  is a flowchart illustrating a process of managing an average operation rate of devices, exemplary embodiment of the present general inventive concept; 
         FIG. 5  is a flowchart illustrating a process of adding a new SLA item, according to an exemplary embodiment of the present general inventive concept; 
         FIGS. 6A and 6B  are block diagrams schematically illustrating an SLM server, according to an exemplary embodiment of the present general inventive concept; 
         FIG. 7  is a sequence diagram of SLA management software, according to an exemplary embodiment of the present general inventive concept; and 
         FIGS. 8 through 14  illustrate a GUI of the SLA management software, according to an exemplary embodiment of the present general inventive concept. 
     
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     Reference will now be made in detail to the embodiments of the present general inventive concept, examples of which are illustrated in the accompanying drawings, wherein like reference numerals refer to the like elements throughout. The embodiments are described below in order to explain the present general inventive concept while referring to the figures. 
     As used herein, the term “and/or” includes any and all combinations of one or more of the associated listed items. Expressions such as “at least one of,” when preceding a list of elements, modify the entire list of elements and do not modify the individual elements of the list. 
       FIG. 1  is a view schematically illustrating a service level agreement (SLA) management system  100  according to an exemplary embodiment of the present general inventive concept. Referring to  FIG. 1 , the SLA management system  100  includes a main server  110 , branch servers  120  and  130 , and image forming apparatuses  140 , specifically denoted as image forming apparatus  141 , image forming apparatus  142 , image forming apparatus  143 , and image forming apparatus  144 . 
     The main server  110  and the branch servers  120  and  130  control the image forming apparatuses  140  to manage service levels provided by the image forming apparatuses  140 . Services provided by the image forming apparatuses  140  include print, scan, copy, and fax functions, but an SLA item is not limited thereto. For example, the management of firmware in each of the image forming apparatuses  140 , a printer driver to drive each of the image forming apparatuses  140 , and consumables such as toner or paper needed by the image forming apparatuses  140  may be SLA items. Since the main server  110  and the branch servers  120  and  130  manage an SLA through a computerized process, the SLA items related to software of the image forming apparatuses  140  may be major management targets. 
     As illustrated in  FIG. 1 , the image forming apparatuses  140  may be located at different locations. For example, the image forming apparatuses  141  and  142  and the image forming apparatuses  143  and  144  are located at different locations, namely network  2  and network  3 , respectively. To manage the image forming apparatuses  140  by locations, the branch server  120  manages services of the image forming apparatuses  141  and  142  and the branch server  130  manages services of the image forming apparatuses  143  and  144 . 
     The main server  110  and the branch servers  120  and  130  belong to hierarchically different classes. Since the main server  110  belongs to class that is higher than the branch servers  120  and  130 , the main server  110  may manage the branch servers  120  and  130  and simultaneously manage services of all the image forming apparatuses  140 . The management of the branch servers  120  and  130  may be included in an SLA item according to a contract. A service vendor may manage the branch servers  120  and  130  by using the main server  110 . For example, the main server  110  may check a version of the SLA management software installed on the branch servers  120  and  130  and update the software to the latest version. 
     In the following description, it is assumed that an SLM server  600   a  or  600   b , as illustrated in  FIG. 6 , denotes the main server  110  or the branch servers  120  and  130 , and devices denote the image forming apparatuses  140 . 
       FIG. 2  is a flowchart illustrating an SLA management method according to an exemplary embodiment of the present general inventive concept. Referring to  FIG. 2  and  FIG. 6 , the SLM server  600   a  or  600   b  selects at least one SLA item to quantitatively measure service levels provided by devices, such as the image forming apparatuses  140 , as illustrated in  FIG. 1  (S 205 ). SLA management software installed on the SLM server  600   a  or  600   b  provides a user with a graphic user interface (GUI) to output a list of SLA items. The SLM server  600   a  or  600   b  selects at least one SLA item from the SLA item list. The SLA items may include the management of firmware in each device, a driver to drive each device, consumables such as toner and paper of each device, and SLA management software installed on the SLM server  600   a  or  600   b . The above SLA items are listed for convenience of explanation and an SLA item may be diversely changed according to a contract between a service vendor and a customer. 
     The SLM server  600   a  or  600   b  sets a service management automatic option with respect to a selected SLA item (S 210 ). The service management automatic option may include an automatic management mode, a semiautomatic management mode, and a manual management mode. The SLM server  600   a  or  600   b  sets any one of the automatic management mode, the semiautomatic management mode, and the manual management mode, for an SLA item selected based on a user input. 
     In the automatic management mode, when a service error occurs on a selected SLA item while the SLM server  600   a  or  600   b  monitors the devices, the SLM server  600   a  or  600   b  automatically performs an event to fix the service trouble without a user command. The detailed content on the performance of an event will be described later. In the manual management mode, when a service error occurs on a selected SLA item while the SLM server  600   a  or  600   b  monitors the devices, the SLM server  600   a  or  600   b  continuously monitors the devices without performing an event to fix the service error until a user inputs a command. However, in the manual management mode, the SLM server  600   a  or  600   b  may display that a service error occurs on the selected SLA item through a service analysis report indicating a current service level. In the semiautomatic management mode, when a service error occurs on a selected SLA item while the SLM server  600   a  or  600   b  monitors the devices, the SLM server  600   a  or  600   b  compares a predetermined service level and a monitored service level. The predetermined service level and the monitored service level are values calculated as quantitative numbers by a statistical analysis method. 
     As a result of the comparison, if the monitored service level is equal to or greater than a predetermined service level, the SLM server  600   a  or  600   b  operates in the manual management mode. Otherwise, if the monitored service level is less than the predetermined service level, the SLM server  600   a  or  600   b  operates in the automatic management mode. 
       FIG. 12  illustrates a GUI  1200  to set a service management automatic option. When a user selects a semiautomatic management mode  1220 , the user may directly input a predetermined service level through an input box  1221 . A current operation rate  1210  denotes a target service level set on the SLM server  600   a  or  600   b . The current operation rate  1210  may be directly input by a user through the input box  1310  a GUI  1300  of  FIG. 13 . A detailed content of the target service level will be described later. Further, the user may choose to select a fully automatic control  1230  (a.k.a., a set service management automatic option) or a fully manual control  1240  (a.k.a., a manual management mode). 
     The SLM server  600   a  or  600   b  monitors service levels provided by the devices with respect to a selected SLA item (S 215 ). The SLM server  600   a  or  600   b  may periodically receive data about services currently provided by the devices, through a network. SLA management software installed on the SLM server  600   a  or  600   b  includes an observer module  720  of  FIG. 7 . The observer module  720  requests and receives the data about services currently provided by the devices, in a polling method. The observer module  720  may request and receive all data about the services, from the devices. According to another exemplary embodiment, the observer module  720  may request and receive only data corresponding to the selected SLA item of the services. When a device where a service error occurs with respect to the selected SLA item exists, the observer module  720  may receive error type information indicating the reason for the service error. 
     The SLM server  600   a  or  600   b  may statistically analyze a result of the monitoring and provided a user with an analysis report on the service levels provided by the devices. In other words, the SLM server  600   a  or  600   b  may accumulate the monitoring results from the past to the present, calculate an average value of each of service levels, and provide a user with a service analysis report. The SLM server  600   a  or  600   b  may compare a preset target service level and an analyzed service level with respect to the selected SLA item. If the analyzed service level is lower than the preset target service level, the SLM server  600   a  or  600   b  may output a warning message. 
     The SLM server  600   a  or  600   b  performs a predetermined event to control the devices according to the monitoring result and the service management automatic option setting (S 220 ). In other words, the SLM server  600   a  or  600   b  detects that a service error occurs on the selected SLA item as a result of monitoring and performs a predetermined event to fix the service error. The predetermined event signifies an event corresponding to the error type information. The SLM server  600   a  or  600   b  stores an error management policy in which the error type information and an event corresponding thereto are mapped with each other. When the service error is detected, the SLM server  600   a  or  600   b  performs an event corresponding to the error type information by referring to the stored error management policy. The event is a process defined to recover a service error occurring on a device by controlling the devices. For example, when firmware that is currently installed on a device malfunctions, the SLM server  600   a  or  600   b  may check a version of the firmware and update the firmware to the latest version. If the firmware is already the latest version, the SLM server  600   a  or  600   b  may reinstall the firmware or reboot the device. 
     The event performed by the SLM server  600   a  or  600   b  may include updating firmware of each device, updating a driver of each device, rebooting of each device, and updating SLA management installed on the SLM server  600   a  or  600   b . The event to be performed may be diversely modified according to embodiments. For example, a message including the error type information may be transmitted to a service vendor. 
     When a service error does not occur on the selected SLA item as a result of the monitoring, the SLM server  600   a  or  600   b  continues the monitoring. 
     Otherwise, when a service error occurs on the selected SLA item as a result of the monitoring, the SLM server  600   a  or  600   b  refers to the set service management automatic option. When the automatic management mode is set, the SLM server  600   a  or  600   b  automatically performs an event corresponding to the error type information without a user command. When the semiautomatic management mode is set, the SLM server  600   a  or  600   b  compares the predetermined service level and the monitoring result. If the service levels provided by the devices are lower than the predetermined service level, an event corresponding to the error type information is automatically performed. However, if the service levels provided by the devices are equal to or higher than the predetermined service level, the SLM server  600   a  or  600   b  continues the monitoring and does not perform an event until a user command is received. The predetermined service level in the semiautomatic management mode may be a certain value set by a user of the SLM server  600   a  or  600   b  or a service level agreed between a service vendor and a customer. When the manual management mode is set, the SLM server  600   a  or  600   b  continues the monitoring and waits until a user command is received. 
       FIG. 3  is a flowchart illustrating a process of registering an SLA item, according to an exemplary embodiment of the present general inventive concept. Operation S 205  of  FIG. 2  denotes a process of registering an SLA item. The SLM server  600   a  or  600   b  may manage only registered SLA items among the overall SLA items. Thus, the SLM server  600   a  or  600   b  selects an SLA item subject to a management and registers the selected SLA item as a management target via SLA management software. 
     Referring to  FIG. 3 , the SLM server  600   a  or  600   b  receives a request to register an SLA item from a user (S 305 ). Referring to  FIG. 14 , which illustrates a GUI  1400 , a “+” button  1491  registers an SLA item and a “−” button  1492  deletes an SLA item. SLA items  1450 ,  1460 , and  1470  indicate SLA items that are currently registered on the SLM server  600   a  or  600   b . A user may request registration of an SLA item on the SLM server  600   a  or  600   b  by using the “+” button  1491 . Thus, the SLM server  600   a  or  600   b  may dynamically manage the SLA items by registering or deleting the SLA items. 
     The SLM server  600   a  or  600   b  receives an input of a representative name and summary information of an SLA item to be registered, from a user (S 310 ). The SLM server  600   a  or  600   b  generates a GUI  900  of  FIG. 9  and provides the generated GUI  900  to a user. The GUI  900  includes an SLA item representative name input box  910  and a summary information input box  920 . When a plurality of SLA items are registered and managed as a group, a user inputs a representative name of an SLA item group in the SLA item representative name input box  910 . A description about the SLA items to be registered may be input in the summary information input box  920 . 
     The SLM server  600   a  or  600   b  receives a selection of at least one device to which the SLA item to be registered is applied, of the devices (S 315 ). The SLM server  600   a  or  600   b  generates a GUI  1000  of  FIG. 10  and provides the generated GUI  1000  to a user. Referring to  FIG. 10 , the GUI  1000  includes a server button  1012  and a device button  1011 . When the SLM server  600   a  or  600   b  is the main server  110  of  FIG. 1 , a list of the branch servers  120  and  130  is output by selecting the server button  1012 . When the device button  1011  is selected, a device list  1020  is output. If a user selects a plurality of devices from the device list  1020 , the selected devices are managed as one group. Alternatively, the devices are grouped in advance and a list of devices in the group may be output. 
     Next, the SLM server  600   a  or  600   b  outputs a list of total SLA items and receives a selection of SLA items to be registered from the list (S 320 ). The SLM server  600   a  or  600   b  generates a GUI  1100  of  FIG. 11  and provides the generated GUI  1100  to a user. Referring to  FIG. 11 , lists  1110  and  1120  of SLA items are output. The SLA items illustrated in  FIG. 11  are exemplary and the present general inventive concept is not limited thereto. The list  1110  indicates the SLA items with respect to the devices and the list  1120  indicates the SLA items with respect to other SLM servers, such as the branch servers  120  and  130 . For example, when the SLM server  600   a  or  600   b  is the main server  110  of  FIG. 1 , the list  1120  indicates the SLA items with respect to the branch servers  120  and  130 . In operation S 315 , since a user selected the device button  1011 , the list  1120  may be either omitted or inactivated not to be selected. 
       FIG. 4  is a flowchart illustrating a process of managing an average operation rate of devices, according to an exemplary embodiment of the present general inventive concept. 
     An operation rate of a device may be calculated by using a normal operation time and an error fix time as illustrated in Equation 1. 
     
       
         
           
             
               
                 
                   
                     operation 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     rate 
                   
                   = 
                   
                     
                       operation 
                       ⁢ 
                       
                           
                       
                       ⁢ 
                       time 
                     
                     
                       
                         operation 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         time 
                       
                       + 
                       
                         error 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         fix 
                         ⁢ 
                         
                             
                         
                         ⁢ 
                         time 
                       
                     
                   
                 
               
               
                 
                   [ 
                   
                     Equation 
                     ⁢ 
                     
                         
                     
                     ⁢ 
                     1 
                   
                   ] 
                 
               
             
           
         
       
     
     The normal operation time denotes a time during which a device is normally operated with respect to a selected SLA item without service error. The error fix time denotes a time from service error occurs with respect to a selected SLA item to the service error is fixed. When a plurality of SLA items are selected, the normal operation time denotes a time during which a device is normally operated with respect to the selected SLA items without service error. 
     The average operation time of devices denotes an average value of the operation rates of the devices. When a selected SLA item is applied to a plurality of devices, an operation rate of each device is calculated and an average of the calculated operation rates of the devices is calculated, thereby obtaining an average operation rate of devices. 
     The SLM server  600   a  or  600   b  receives the normal operation time of the devices to which the selected SLA item in the monitoring operation (S 215 ) is applied, and the time consumed to fix a service error occurring on the selected SLA item, from each device (S 405 ). The SLM server  600   a  or  600   b  may receive the above-described error type information. 
     The SLM server  600   a  or  600   b  calculates an average operation rate of devices by using the normal operation time and the error fix time (S 410 ). The SLM server  600   a  or  600   b  calculates an average operation rate by using the normal operation time and the error fix time accumulated from the past, with the last received normal operation time and error fix time. Equation 1 may be referred to by a method of calculating an average operation rate. 
     The SLM server  600   a  or  600   b  displays a state of the SLA item by comparing a monitoring result and a target service level (S 415 ). The following description is based on an assumption that the monitoring result is an average operation rate of devices calculated in S 410 . The target service level denotes a target value set to a service level of a selected SLA item. The target service level is one reference value and may be input directly by a user as illustrated in  FIG. 13 . The state of an SLA item may include a normal state or a warning state. Although the state of an SLA item is described in two ways in the current embodiment of the present general inventive concept, the state of an SLA item may be described in greater classification number N (N&gt;2). 
     Referring to  FIG. 14 , when a user selects a report menu  1410 , the SLM server  600   a  or  600   b  statistically analyzes the monitoring result and provides the user with a service analysis report with respect to a service level provided by devices. In the SLM server  600   a  or  600   b , an operation rate  1420  set as the target service level is set to be 95%. Also, according to the monitoring result, the average operation rate  1440  is calculated to be 94.3%. The SLM server  600   a  or  600   b  compares the set operation rate  1420  and the calculated average operation rate  1440  and displays an SLA item state  1430  as a warning state. 
     In  FIG. 14 , a “34 th  Development Team Service Management”  1450 , a “Latest Bundle Service Management”  1460 , and a “Firmware Service Management”  1470  displayed as service items that are representative names of SLA items input in S 310  of  FIG. 3 . The service items  1450 ,  1460 , and  1470  are respectively set to an automatic management mode, a semiautomatic management mode, and a manual management mode. When any one of the service items  1450  to  1470  is selected, a list of devices and an operation rate of each device are displayed on a box  1480 . 
     The SLM server  600   a  or  600   b  referring to the error policy management executes an event corresponding to the error type information (S 420 ). When a service error occurs in the 34 th  Development Team Service Management  1450  that is set to the automatic management mode, the SLM server  600   a  or  600   b  referring to the error policy management executes an event corresponding to the error type information received in S 405 . When service error occurs in the Latest Bundle Service Management  1460  that is set to the semiautomatic management mode, the SLM server  600   a  or  600   b  determines whether to execute the event by comparing the operation rate of 94% of the Latest Bundle Service Management  1460  and the service level set value of 90% for the semiautomatic management mode. For the Firmware Service Management  1470  set to the manual management mode, the SLM server  600   a  or  600   b  does not execute the event and waits until there is a command by a user. 
       FIG. 5  is a flowchart illustrating a process of adding a new SLA item, according to an exemplary embodiment of the present general inventive concept. It is possible to add new SLA items later to the SLA management software installed on the SLM server  600   a  or  600   b . Accordingly, if a contract between a service vendor and a customer is revised, the SLM server  600   a  or  600   b  may reflect a revised contract by adding new SLA items to the previously installed SLA management software. 
     The SLA management software is operated based on an open type framework open services gateway initiative (OSGi). The SLA items may be exposed to OSGi as a bundle or imported from the outside. 
     Referring to  FIG. 5 , the SLM server  600   a  or  600   b  obtains SLA extended data (S 505 ). The SLM server  600   a  or  600   b  may obtain SLA extended data via an external input port, for example, a USB port or optical disc input port, or download SLA extended data through a network. 
     The SLM server  600   a  or  600   b  parses an extensible markup language (XML) file included in the SLA extended data (S 510 ). The XML file includes information about new SLA items included in the SLA extended data. The information about new SLA items may include, for example, information about the type of a user interface (UI), information about a position where UIs of the new SLA items are displayed, with respect to the UIs of the existing SLA items, and information about a method of displaying service levels of the new SLA items. The information about the UI is indicated in the XML file. 
     The SLM server  600   a  or  600   b  determines whether a new SLA item may be added to the existing SLA items based on a parsed XML file (S 515 ). For example, the SLM server  600   a  or  600   b  determines whether UIs of new SLA items may be actually extended with respect to the existing SLA items by using the information about a position where the UIs of the new SLA items are displayed. 
     If the addition of new SLA items is possible, the SLM server  600   a  or  600   b  installs SLA extended data (S 520 ). The SLM server  600   a  or  600   b  updates the UI of the SLA management software by adding UI of the new SLA item to the UI of the existing SLA items. 
     Otherwise, if the addition of new SLA items is not possible, the SLM server  600   a  or  600   b  does not install the SLA extended data (S 525 ). At this time, the SLM server  600   a  or  600   b  may discard of the SLA extended data. 
       FIGS. 6A and 6B  are block diagrams schematically illustrating the SLM servers  600   a  and  600   b  respectively, according to an exemplary embodiment of the present general inventive concept. Descriptions that are identical to those of  FIGS. 1-5  are omitted herein. Accordingly, the embodiments of  FIGS. 1-5  may be referred to by embodiments of the SLM servers  600   a  and  600   b  of  FIGS. 6A and 6B . 
     Referring to  FIG. 6A , the SLM server  600   a  includes a user interface  620   a , a control unit  630   a , and a network interface  610   a . The network interface  610   a  as a unit to connect to a network transmits and receives data with respect to devices, such as the image forming apparatuses  140 , according to wired or wireless communication specifications. 
     The user interface  620   a  denotes an input/output (I/O) interface to receive a user manipulation input or to provide a result of the user manipulation to a user. For example, the user interface  620   a  may be an interface for input/output (I/O) of a human interface device (HID). The user interface  620   a  receives a selection of at least one SLA item to quantitatively measure a service level provided by the devices and receives an input of setting a target service level and a service management automatic option of a selected SLA item. 
     The control unit  630   a  monitors the service level provided by the devices with respect to the selected SLA item and executes a predetermined event to control the devices according to a monitoring result and the service management automatic option setting. In other words, the control unit  630   a  executes the SLA management software installed on the SLM server  600   a  or  600   b , thereby performing the monitoring and the event. 
       FIG. 6B  illustrates the SLM server  600   a  of  FIG. 6A  in detail. Referring to  FIG. 6B , the SLM server  600   b  includes a network interface  610   b , a user interface  620   b , a control unit  630   b , an external input port  640   b , and a storage unit  650   b .  FIG. 6A  may be referred to for a description about the network interface  610   b.    
     When a user requests registration of an SLA item, the user interface  620   b  receives via a GUI an input of a representative name and summary information of an SLA item to be registered. Next, the user interface  620   b  receives a selection of at least one of the devices to which the SLA item to be registered is applied. The user interface  620   b  outputs a list of SLA items and receives a selection of an SLA item to be registered from the list. 
     A GUI generation unit  631   b  generates a GUI to be output through the user interface  620   b . In other words, a GUI is generated by SLA software.  FIGS. 8-14  illustrate GUIs generated by the GUI generation unit  631   b.    
     A monitoring unit  632   b  monitors a service level provided by the devices with respect to a selected SLA items through the user interface  620   b . The monitoring unit  632   b  receives a normal operation time of each device through the network interface  610   b . Also, when an error occurs on the selected SLA item, the monitoring unit  632   b  may receive the time consumed to fix the error or error type information. When an error occurs, the monitoring unit  632   b  requests an event execution unit  633   b  to execute an event corresponding to the error type information. 
     The monitoring unit  632   b  calculates an average operation rate of the devices based on the normal operation time and the error fix time. Equation 1 may be referred to by a method of calculating an operation rate of a device. 
     The monitoring unit  632   b  indicates the selected SLA item in a warning state or a normal state by comparing the monitoring result and a preset target service level. In other words, when a user selects the report  1410  of  FIG. 14 , the monitoring unit  632   b  generates a service analysis report. The service analysis report includes a state of an SLA item. 
     The storage unit  650   b  stores SLA management software and set values for the SLA management software. The storage unit  650   b  stores error type information an error management policy mapped with events corresponding thereto. 
     The event execution unit  633   b  executes an event to control the devices according to the monitoring result and the service management automatic option setting. When the monitoring unit  632   b  requests execution of an event, the event execution unit  633   b , referring to the error management policy stored in the storage unit  650   b , executes an event corresponding to the error type information. For example, the event execution unit  633   b  executes a device firmware update event, a device driver update event, a device rebooting event, and an SLA management software update event. 
     The external input port  640   b  as a device to communicate data with an external apparatus may be, for example, a USB input port or an optical disc reproduction and recording apparatus. The external input port  640   b  obtains SLA extended data to add a new SLA item to the existing SLA items. 
     A bundle extension unit  634   b  installs SLA extension data obtained through the external input port  640 . An XML parser  635   b  parses a predetermined XML file included in the SLA extended data. An installer  636   b  determines whether a new SLA item may be added to the existing SLA items based on a parsed XML file and installs SLA extended data according to a result of the determination. 
       FIG. 7  is a sequence diagram of SLA management software, according to an exemplary embodiment of the present general inventive concept. 
     The SLA management software according to the present embodiment is operated based on an OSGi open type framework and includes an OSGi intro module  710 , an observer module  720 , an event mapping module  730 , and an implement module  740 . The OSGi intro module  710  performs registration of an SLA item in  FIG. 3 . The observer module  720  monitors a service level provided by the devices. When the observer module  720  fires an event, the event mapping module  730  requests the implement module  740  to execute an event corresponding to error type information by referring to an error management policy. The implement module  740  that is a module to execute a requested event may be, for example, a firmware update module, a driver update module, and an SLA management software update module. 
     The OSGi intro module  710  selects and registers an SLA item and requests monitoring from the observer module  720  (S 705 ). The observer module  720  periodically monitors the devices with respect to a selected SLA item and fires an event when a service error occurs (S 710 ). The observer module  720  may transfer to the event mapping module  730  error type information indicating cause of the service error and information about a device where the service error occurs. 
     The event mapping module  730 , referring to the error management policy, determines what job is to be done with respect to a fired event. In other words, the event mapping module  730 , referring to the error management policy, requests the implement module  740  to execute an event corresponding to the error type information. 
     The implement module  740  executes an event (S 720 ). A result of the execution of an event may be stored in the SLM server  600   a  or  600   b . The implement module  740  transfers an event execution result to the event mapping module  730  (S 730 ). If the service error is not fixed as a result of the execution of an event, the event mapping module  730 , referring to the error management policy, may request the implement module  740  to execute another event. 
     The event mapping module  730  transfers a received event execution result to the observer module  720 . If the service error is not fixed as a result of the execution of an event, the observer module  720  may fire the same event again or cancel the firing of an event. If the event is fired again, other error type information may be transferred to the event mapping module  730 . 
     The observer module  720  transfers a received event execution result to the OSGi intro module  710  (S 735 ). 
       FIG. 8  illustrates a GUI  800  generated by the GUI generation unit  631   b , according to an exemplary embodiment of the present general inventive concept. A user may select an operation rate history  810  in order to view information corresponding to the devices and their respective operation times and errors. For example, device model names, serial numbers, and host names may be displayed in a device identifying box  820 . An operation time box  821  mat display operation times of each of the corresponding devices. Further, an error time box  822  may display a time during which an error occurred during operation of each of the devices. 
     As described above, according to the present general inventive concept, since necessary action is automatically taken on an SLA item having an error while a server monitors SLA, an immediate response is possible to be provided. Also, since a customer or a service vendor can change an SLA item, SLA items may be flexibly managed. 
     The present general inventive concept can also be embodied as computer-readable codes on a computer-readable medium. The computer-readable medium can include a computer-readable recording medium and a computer-readable transmission medium. The computer-readable recording medium is any data storage device that can store data that can be thereafter read by a computer system. Examples of the computer-readable recording medium include read-only memory (ROM), random-access memory (RAM), CD-ROMs, magnetic tapes, floppy disks, and optical data storage devices. The computer-readable recording medium can also be distributed over network coupled computer systems so that the computer-readable code is stored and executed in a distributed fashion. The computer-readable transmission medium can transmit carrier waves or signals (e.g., wired or wireless data transmission through the Internet). Also, functional programs, codes, and code segments to accomplish the present general inventive concept can be easily construed by programmers skilled in the art to which the present general inventive concept pertains. 
     While this invention has been particularly shown and described with reference to exemplary embodiments thereof, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the general inventive concept as defined by the appended claims and their equivalents.