Embodiments of the invention relate generally to computer systems, and more particularly, to automated ordering of replacement parts for components in a computer system based on established service thresholds.
Whenever a hardware component in a computer system fails, the customer typically contacts a manufacturer's support center to report the failure and receive service support to correct the problem. If the support center determines that the failed component needs to be replaced, e.g., a disk drive unit in a computer, the support center may initiate the ordering of a replacement part to replace the failed component.
While this solution is viable, it creates delays and expenses for both the customer and the manufacturer. In order to minimize product service delays and expenses, product manufacturers are increasingly moving to a service model that is more simplified and automated, with some of the problem determination and repair tasks performed at the customer's site.
Exemplary embodiments of the invention relate to the automated determination of part replacement for a component in a system and ordering of a replacement part for the affected component based on an established service threshold.
One aspect of the invention concerns a service system for determining whether a replacement part needs to be ordered for a component in the system being serviced and automatically ordering the replacement part if the part is needed. The system may comprise a plurality of interconnected components, a service initiator for identifying components in the system that are not operational or do not meet certain service thresholds, and determining whether a replacement part is needed for a component based on a service threshold. If a replacement part is needed, an ordering module of the service system automatically orders the replacement part without manual intervention.
Another aspect of the invention concerns a method for determining whether a replacement part is needed for a component in a system being serviced and automatically ordering a replacement part if the part is needed. The method may comprise identifying components in the system that are not operational or do not meet certain service thresholds, and determining whether a replacement part is needed for a component based on a service threshold. If a replacement part is needed, the method may include automatically ordering the replacement part without manual intervention.
A further aspect of the invention concerns a computer program product for determining whether a replacement part is needed for a system being serviced, and automatically ordering a replacement part if the part is needed. The computer program product comprises a computer readable storage medium having computer readable program code embodied therewith. The readable program code is configured to identify components in the system that are not operational or do not meet certain service thresholds, and determine whether a replacement part is needed for a component based on a service threshold. If a replacement part is needed, the program code may be configured to automatically order the replacement part without manual intervention.
The details of the preferred embodiments of the invention, both as to its structure and operation, are described below in the Detailed Description section in reference to the accompanying drawings. The Summary is intended to identify key features of the claimed subject matter, but it is not intended to be used to limit the scope of the claimed subject matter.
Embodiments of the invention relate to the service of computer-related systems, and in particular, to the determination of components in the system that need to be replaced and automatically ordering the replacement parts for these components based on established service thresholds. The embodiments of the invention may be applicable to a wide range of products that have field replaceable components such as electronic cards, memory units, disk drives, and power components. Although computer products are used as examples for describing the embodiments of the invention, other types of systems with built-in electronic components such as appliances and machinery equipment may also include embodiments of the invention as described.
Large computer systems generally comprise multiple subsystems such as processing subsystems, storage subsystems, and communications-network subsystems. Some of these subsystems may be field-replaceable. Each subsystem may further comprise replaceable components such as electronic cards, memory units, disk drives, power supplies, cooling units, etc. During operation, any of these components may fail and become non-operational. In a typical scenario, upon knowing of the failure, a customer may contact the manufacturer's support center to receive the necessary product support service.
A service representative may perform a diagnostic procedure, either locally at the customer's site or remotely, to determine the source of the failure and affected components in the system. The service representative may conclude from the diagnostic procedure that one of the subsystems or components in the system has failed or does not operate according to certain requirements. In that case, the service representative may order a replacement unit for the identified subsystem or component if the subsystem or component is replaceable. Such a process is costly and time-consuming as it relies on the service representative's decision to order the part and the representative's initiation of the part ordering. The embodiments of the invention, as described, automate the problem determination and part ordering processes to minimize the need for human decisions and intervention by either the customer or the service representative, and thus minimizing the time it takes to bring the system back to operation and reducing service costs.
Referring now to the drawings and in particular to
Upon identifying a component 104 in the product system 103 that does not operate according to certain service thresholds, the service initiation system 105 may determine whether to initiate an order for a replacement part for the identified component 104 and perform other service tasks for the component. If the service initiation system 105 determines that a replacement part for a component 104 is needed, it communicates with the service center 107, through the product system's communication interface 106, to request an order for the replacement part.
Communication interface 106 allows the product system 103 to communicate with and transfer data to and from a customer 101 and service center 107, via a network 102. The communication interface 106 may comprise appropriate network hardware and software components such as Ethernet network cards and programs supporting HTTP and TCP/IP network protocols.
The network 102 may comprise a private, public, third-party network, or a combination thereof, and may be a wide area network (WAN) or a local area network (LAN). A public network may be connected to the Internet through appropriate security protection.
The service center 107 may include a service server 108 for processing and managing service requests and service actions relating to the products that the service center 107 supports, such as product system 103. The service server 108 may have a communications interface for receiving messages from users, customers, service representatives, products, and communications systems that have logical or physical connections to the service server 108. The service server's communications interface is further described with reference to
The service server 108 may have access to a replacement part order tracking database 109 that contains information on the products supported by the service center 107. This information may include product model numbers, model numbers of the replaceable components for each product model, serial numbers of the replacement parts, details on the orders of replacements part, service requests and service actions.
The service server 208 may be coupled to a graphic user interface or browser 212 to allow a service representative 213 to interact with the service server 208. For example, the graphic user interface or browser 212 may allow the service representative 213 to examine problem determination results sent by the service initiation system 205 to the service center 207 in connection with a service problem in product system 203. The service representative 213 may use the graphic user interface (GUI) or browser 212 to examine current service thresholds for a particular product or change these thresholds based on new service data from the field. The service thresholds, service requests and actions, and replacement part ordering information may be maintained in the order tracking database 209.
The service initiation system 305 may comprise an interactive problem determination module 315 for analyzing a failure in the product system 203 and identifying one or more components in the system 203 that are related to a failure or service need. The service initiation system 305 may further include a problem state coordinator 316 for receiving and processing service messages generated by the problem determination module 315.
The problem state coordinator 316 may initially check the service messages that the service server 208 receives for their completeness and correctness. For example, upon receiving a problem record 319, the problem state coordinator 316 may examine the problem record 319 to determine whether it includes all necessary service entitlement details for the customer and information about the product being serviced. If the customer or product information is not complete, the problem state coordinator 316 may create a service error message to inform the customer of the incomplete message and request the customer to supply the missing information or contact the service center. If the customer and product information is complete, the problem state coordinator 316 continues with the processing of the problem record 319 as further described below.
The service initiation system 305 may include a customer interface 317 to allow the customer to interact with the service initiation system 305. The customer interface 317 may be in the form or a graphic user interface (GUI) or a browser. A communication module 318 may coordinate the communications between the service initiation system 305 and external systems such as the service center's part ordering and service threshold systems, and service representative workstations. For example, when a problem record 319 is generated by the service initiation system 305, the problem state coordinator 316 may call the communication module 318 and provide the problem record 319 to the communication module 318 to be sent to the service center 207. In an embodiment of the invention, the communication module 318 may initiate an HTTPS session to the HTTP server 210, with the problem record 319 included in the outgoing message.
If the HTTP operation is successful, the communication module 318 may wait for a reply message from the HTTP server 210 before continuing. If a reply message is received before a message timeout is exceeded, the communication module 318 may call the problem state coordinator 316 to report the successful delivery of the outgoing message. On the other hand, if the HTTP session initiation is not successful or if a reply message is not received within an established time period, the communicate module 318 may notify the problem state coordinator 316 of the communication failure.
The service server 408 may comprise a part ordering module 422 for ordering for a replacement part, either through the manufacturer's part ordering system or a third-party's part ordering system. A service center interface 423 allows a service representative to interact with the service server 408, such as updating and querying information maintained in the part order tracking database 209. For example, using the service center interface 423 the service representative may check on the status of a pending part order, looking up a part's service thresholds, or changing the values of the thresholds.
Database module 424 may act as an interface between the modules 420-423 in the service server 408 and the order tracking database 425. For example, when the service coordinator 420 receives a part order status request message from the HTTP server module 421, the service coordinator 420 may parse the message and build an appropriate database query, based on the parsed message contents. The database query will execute on the database 425. The database query may include parameters that contain the product system 203's machine type model, machine serial number, problem record unique identifier, failed component serial number, and the location of a failed component in the product system.
Once the service coordinator 420 has generated the database query, it may call the database module 424 to process the database query using information in the part order database 425. After the query execution is completed, the database module 424 returns the database query results to the service coordinator 420. The query results may include the status of a replacement part order, shipping vendor, shipping tracking number, estimated arrival date, service entitlement information, and service threshold values.
The service coordinator 420 may further build an order status reply message based on the database query results and return the message to the HTTP server module 421. The HTTP server module 421 provides the reply message to the customer through the problem state coordinator 316.
At step 503, the operation check module 314 may call the communication module 318 to send the problem record to the service center 207, via the HTTP server 210, for processing by the center's service server 208. Upon receiving the problem record, the service server 208 may parse the problem record 319 to extract details about the problem. If the service server 208 determines from problem details and service thresholds associated with an affected component that a replacement of the component is needed, then the service server 208 may initiate an order for a replacement part, at step 505. The service server 208 may return information about the resolution of the problem to the customer at step 506, which may include information about the ordering of a replacement part.
When a failure or a service condition is detected in the product system 203, the service initiation server 305 may initiate an outgoing HTTPS request to the HTTP server 210 to obtain part ordering status information for an identified component and the latest service thresholds at which replacement parts are automatically ordered. The outgoing HTTPS request message may contain information for uniquely identifying a failed component in a system or a component that does not operate according to an established service threshold. The information on the affected component may include the serial number of the component, a unique problem ID, the serial number of the system, and the location of the affected component in the system.
Once the HTTPS request message arrives at the HTTP server 210, the service server 208 may look up the part order tracking database 209 to obtain relevant information about the problem reported in the request message. The retrieved data may then be added to a reply message that will be sent to the product system 203. If the response message indicates that a replacement part has not been requested for the identified component, the service initiation server 305 may look at service threshold information returned from the database query (e.g., high, medium and low) and may perform the following activities based on the service threshold:
The part service thresholds are granular to the individual components in a product system and may be dynamically adjusted. For example, a service representative 213 at the service center 207 has the ability to dynamically change the service thresholds for serviceable components in a system. Such a function provides the ability to ‘turn off’ on a global scale the automatic ordering of replacement parts for a particular component or for all components in a supported system. For example, if the manufacturer has 2,000 systems in the field, the service representative 213 can globally set a service threshold that works with the automated ordering process such that the automatic replacement part orders for a specific part in all 2,000 systems are disabled.
On the other hand, if the response message indicates that a replacement part has already been ordered for an affected component in the product system 203, then the problem record associated with the service problem is updated with the part ordering information. The service server 208 notifies the customer of the part order status, including for example, shipping vendor, shipping tracking number, estimated part arrival date, etc.
The service coordinator 420 may parse the part ordering message to extract details about the replacement part, e.g., part serial number, and builds a database query, at step 603. The database module 424 of the service server 408 processes the database query and returns resulting data to the service coordinator 420, at step 604. Using the returned data, the service coordinator 420 generates a replacement part order reply message in step 605 which the HTTP server module 421 may return to the service initiation system 305, at step 606.
In another embodiment, a service threshold may be set to initiate the ordering of a replacement part if there has been more than N number of service requests for a particular component. In yet another embodiment, a service threshold may be set to globally enable or disable automated part ordering on a specific part or to require users to execute a problem determination module prior to automatically ordering a replacement part.
The GUI or browser may send a threshold update request to the HTTP server module 421 which calls the service coordinator 420 to initiate a database operation to update the part threshold in the part order tracking database, at step 804. The HTTP server module 421 may return a threshold update message to the GUI or browser at step 805 which then notifies the service representative of the threshold update at step 806.
The subject matter described above is provided by way of illustration only and should not be construed as limiting. Various modifications and substitutions of the described components and operations can be made by those skilled in the art without departing from the spirit and scope of the present invention defined in the following claims, the scope of which is to be accorded the broadest interpretation so as to encompass such modifications and equivalent structures. As will be appreciated by those skilled in the art, the systems, methods, and procedures described herein can be embodied in a programmable computer, computer executable software, or digital circuitry. The software can be stored on computer readable media. For example, computer readable media can include a floppy disk, RAM, ROM, hard disk, removable media, flash memory, a “memory stick”, optical media, magneto-optical media, CD-ROM, etc.
As will be appreciated by one skilled in the art, aspects of the present invention may be embodied as a method, system or computer program product. Accordingly, aspects of the present invention may take the form of an entirely hardware embodiment, an entirely software embodiment (including firmware, resident software, micro-code, etc.) or an embodiment combining software and hardware aspects that may all generally be referred to herein as a “circuit,” “module” or “system.” Furthermore, aspects of the present invention may take the form of a computer program product embodied in one or more computer readable medium(s) having computer readable program code embodied thereon.
Any combination of one or more computer readable medium(s) may be utilized. The computer readable medium may be a computer readable signal medium or a computer readable storage medium. A computer readable storage medium may be, for example, but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, or device, or any suitable combination of the foregoing. More specific examples (a non-exhaustive list) of the computer readable storage medium would include the following: an electrical connection having one or more wires, a portable computer diskette, a hard disk, a random access memory (RAM), a read-only memory (ROM), an erasable programmable read-only memory (EPROM or Flash memory), an optical fiber, a portable compact disc read-only memory (CD-ROM), an optical storage device, a magnetic storage device, or any suitable combination of the foregoing. In the context of this document, a computer readable storage medium may be any tangible medium that can contain, or store a program for use by or in connection with an instruction execution system, apparatus, or device.
A computer readable signal medium may include a propagated data signal with computer readable program code embodied therein, for example, in baseband or as part of a carrier wave. Such a propagated signal may take any of a variety of forms, including, but not limited to, electro-magnetic, optical, or any suitable combination thereof. A computer readable signal medium may be any computer readable medium that is not a computer readable storage medium and that can communicate, propagate, or transport a program for use by or in connection with an instruction execution system, apparatus, or device.
Program code embodied on a computer readable medium may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc., or any suitable combination of the foregoing.
Computer program code for carrying out operations for aspects of the present invention may be written in any combination of one or more programming languages, including an object oriented programming language such as Java, Smalltalk, C++ or the like and conventional procedural programming languages, such as the “C” programming language or similar programming languages. The program code may execute entirely on the user's computer, partly on the user's computer, as a stand-alone software package, partly on the user's computer and partly on a remote computer or entirely on the remote computer or server. In the latter scenario, the remote computer may be connected to the user's computer through any type of network, including a local area network (LAN), a wide area network (WAN), Ethernet, SCSI, iSCSI, Fibre Channel, Fibre Channel over Ethernet, and Infiniband. The connection may be made to an external computer, for example, through the Internet using an Internet Service Provider.
Aspects of the present invention are described above with reference to flowchart illustrations and/or block diagrams of methods, apparatus (systems) and computer program products according to embodiments of the invention. It will be understood that each block of the flowchart illustrations and/or block diagrams, and combinations of blocks in the flowchart illustrations and/or block diagrams, can be implemented by computer program instructions. These computer program instructions may be provided to a processor of a general purpose computer, special purpose computer, or other programmable data processing apparatus to produce a machine, such that the instructions, which execute via the processor of the computer or other programmable data processing apparatus, create means for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
These computer program instructions may also be stored in a computer readable medium that can direct a computer, other programmable data processing apparatus, or other devices to function in a particular manner, such that the instructions stored in the computer readable medium produce an article of manufacture including instructions which implement the function/act specified in the flowchart and/or block diagram block or blocks.
The computer program instructions may also be loaded onto a computer, other programmable data processing apparatus, or other devices to cause a series of operational steps to be performed on the computer, other programmable apparatus or other devices to produce a computer implemented process such that the instructions which execute on the computer or other programmable apparatus provide processes for implementing the functions/acts specified in the flowchart and/or block diagram block or blocks.
The flowchart and block diagrams in the figures described above illustrate the architecture, functionality, and operation of possible implementations of systems, methods and computer program products according to various embodiments of the present invention. In this regard, each block in the flowchart or block diagrams may represent a module, segment, or portion of code, which comprises one or more executable instructions for implementing the specified logical function(s). It should also be noted that, in some alternative implementations, the functions noted in the block may occur out of the order noted in the figures. For example, two blocks shown in succession may, in fact, be executed substantially concurrently, or the blocks may sometimes be executed in the reverse order, depending upon the functionality involved. It will also be noted that each block of the block diagrams and/or flowchart illustration, and combinations of blocks in the block diagrams and/or flowchart illustration, can be implemented by special purpose hardware-based systems that perform the specified functions or acts, or combinations of special purpose hardware and computer instructions.