1. Field of the Invention
The present invention includes subject matter drawn to a system and programmable apparatus for analyzing the delivery of business systems management services.
2. Description of the Related Art
Today's distributed processing business systems often include resources from multiple vendors and platforms connected through large open networks. To understand the status of a particular resource in a modern business system is to comprehend only a small part of the picture. To truly maximize the business value of business system investments, a business also must see how each resource affects the applications and business processes it supports.
Many resources in a distributed processing system are interdependent, and businesses must be able to demonstrate and leverage linkages between business systems and business processes. These links are critical to being agile, allowing business processes to drive technology decisions and priorities. Without these links, a business has virtually no way of knowing how an individual resource, or group of resources impact a given business process. If, for example, a particular Web server were to go down, a business would not be able to identify specific business processes that would be adversely affected.
Business systems management (BSM), also sometimes referred to as “business service management,” is an evolving technology that can be employed to help a business understand how the performance and availability of technology resources affect the applications, processes, and services that power a business. BSM technologies help a business prioritize technology resources that carry the highest business values, not just the latest problem that crops up. Revenue-generating activities, such as order processing—rather than internal processes, such as a human resources system—are prioritized in the event of a problem or outage.
BSM software products, such as TIVOLI Business Systems Manager from International Business Machines Corporation, enable a business to align daily operations management with business priorities, set and meet service level commitments, implement predictive management capabilities across business systems infrastructure, and generate reports to keep executives and business units that use the business's services informed and productive.
Problem management techniques, though, have not kept pace with the rest of BSM technology. Unlike the modern business systems just described, early business systems were based upon a relatively simple mainframe design that generally comprised a single mainframe computer connected to user terminals through a closed network. Problems in these early business systems could be detected simply by monitoring the network and the mainframe computer for undesired or unexpected performance. Likewise, any such problems could be resolved by repairing or adjusting one of these two components.
Clearly, such limited problem management techniques are inadequate for analyzing problems in a modern, complex business system in which the links between business systems and business processes are so critical. To effectively resolve problems in a modern business system, a business first must be able to identify the source of the problem—which itself may be a daunting task. The source of the problem could be a technology resource, a business process, a link between a resource and a process, or any combination thereof. Problem identification, though, is not the only new hurdle for modern business systems management. A single change to a single component of a business system can have widespread effects on many interdependent components. Sometimes, such changes can produce unexpected and undesired results. Thus, once a problem has been identified, a business also must be able to evaluate possible solutions to determine the effect of the solution on the business system as a whole.
Accordingly, there currently is a need for a problem management system that can identify a problem in a modern business system and evaluate the effect of a solution on the business system as a whole.
A system (apparatus), computer implemented method, and program product for analyzing a problem in a distributed processing business system used to provide a service performs steps comprises identifying the problem; preparing for an audit; performing the audit; reviewing the audit; developing an action plan; developing an execution plan; deploying a solution in accordance with the execution plan; monitoring the deployed solution; and recording lessons learned.
Alternatively, the system, method, and program product may be applied to evaluate the capacity of a distributed processing business system to provide a prospective service. In this alternative embodiment, the system, method, and program product comprises identifying the problem; preparing for an audit; performing the audit; reviewing the audit; preparing a rating table; populating the rating table with results from the audit; calculating a service rating based upon the results entered in the rating table; and presenting the service rating to management. If approved, the service provider develops an action plan; develops an execution plan; deploys a solution in accordance with the execution plan; monitors the deployed solution; and records lessons learned.
As will be appreciated by one skilled in the art, the present invention may be embodied as a system, programmable apparatus or computer program product. Accordingly, 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, the present invention may take the form of a computer program product embodied in any tangible medium of expression having computer usable program code embodied in the medium.
Any combination of one or more computer usable or computer readable medium(s) may be utilized. The computer-usable or computer-readable medium may be, for example but not limited to, an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system, apparatus, device, or propagation medium. More specific examples (a non-exhaustive list) of the computer-readable 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 (CDROM), an optical storage device, a transmission media such as those supporting the Internet or an intranet, or a magnetic storage device. Note that the computer-usable or computer-readable medium could even be paper or another suitable medium upon which the program is printed, as the program can be electronically captured, via, for instance, optical scanning of the paper or other medium, then compiled, interpreted, or otherwise processed in a suitable manner, if necessary, and then stored in a computer memory. In the context of this document, a computer-usable or computer-readable medium may be any medium that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device. The computer-usable medium may include a propagated data signal with the computer-usable program code embodied therewith, either in baseband or as part of a carrier wave. The computer usable program code may be transmitted using any appropriate medium, including but not limited to wireless, wireline, optical fiber cable, RF, etc.
Computer program code for carrying out operations 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) or a wide area network (WAN), or the connection may be made to an external computer (for example, through the Internet using an Internet Service Provider).
The present invention is described below 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 or other programmable data processing apparatus to function in a particular manner, such that the instructions stored in the computer-readable medium produce an article of manufacture including instruction means 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 or other programmable data processing apparatus to cause a series of operational steps to be performed on the computer or other programmable apparatus 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 inventive analysis methodology described in detail below generally is applied to business systems that are used to deliver a service to a consumer. In this context, a “consumer” may be internal or external to the service provider, and a “service” represents any function having tangible or intangible value to the consumer. The methodology comprises techniques for evaluating, researching, and analyzing processes and technology associated with a service. More particularly, the methodology provides a means to evaluate, research, and analyze “problems” with processes and technologies associated with a service. Moreover, the methodology may be applied to a service as a whole, to any distinct process used to deliver a service, and may be applied throughout the timeline of a service. The service may be an existing service or a prospective service.
Of course, the term “problem” has many definitions and implications associated with it, which depend on context. For example, poor financial performance or failing to meet contract and customer expectations are conditions that may indicate a problem with the underlying processes or technology. Sometimes, though, the methodology may be invoked even in the absence of any specific problem indicators, such as when a customer or provider believes there is room for improvement.
Before describing this methodology in detail, it is important to clarify some nomenclature. In particular, is important to distinguish services from processes and procedures.
It also is important to identify the various roles of participants in the activities required to deliver a service. There are four distinct roles within this methodology, although the same individual might fill several roles. A brief overview of these roles is provided here, but more specific responsibilities will be identified as the details of the inventive methodology are described below. First, the “project office” or “account office” is responsible for ensuring that service is delivered according to contractual obligations, and for monitoring the financial performance of the service delivery. Second, a “service delivery manager” or “account manager” is responsible for delivering all services for a specific account according to contractually defined service-level agreements. Third, an “auditor” is responsible for the auditing activities described below. The auditor also is responsible for coordinating all activities, developing the scope of an audit, and processing worksheets. Fourth, the “delivery team” is responsible for executing procedures and processes that support service delivery for a specific account in accordance with contractual service-level agreements. Members of the delivery team also participate in developing the scope of an audit, provide input to the audit, and analyze the results of the audit.
With the Action Plan and the Execution Plan in place, the team then deploys the corrective action in the production environment (1400). This sub-process is illustrated in
The Reevaluate sub-process (1500), illustrated in
After the solution is deployed, the service provider monitors the operational process to ensure that it is performing as expected (1602), as illustrated in
As noted above, the inventive methodology also encompasses the evaluation of prospective services.
A preferred form of the invention has been shown in the drawings and described above, but variations in the preferred form will be apparent to those skilled in the art. The preceding description is for illustration purposes only, and the invention should not be construed as limited to the specific form shown and described. The scope of the invention should be limited only by the language of the following claims.
With reference now to the figures and in particular with reference to
In the depicted example, server 1904 and server 1906 connect to network 1902 along with storage unit 1908. In addition, clients 1910, 1912, and 1914 connect to network 1902. Clients 1910, 1912, and 1914 may be, for example, personal computers or network computers. In the depicted example, server 1904 provides information, such as boot files, operating system images, and applications to clients 1910, 1912, and 1914. Clients 1910, 1912, and 1914 are clients to server 1904 in this example. Network data processing system 1900 may include additional servers, clients, and other devices not shown.
Program code located in network data processing system 1900 may be stored on a computer recordable storage medium and downloaded to a data processing system or other device for use. For example, program code may be stored on a computer recordable storage medium on server 1904 and downloaded to client 1910 over network 1902 for use on client 1910.
In the depicted example, network data processing system 1900 is the Internet with network 1902 representing a worldwide collection of networks and gateways that use the Transmission Control Protocol/Internet Protocol (TCP/IP) suite of protocols to communicate with one another. At the heart of the Internet is a backbone of high-speed data communication lines between major nodes or host computers, consisting of thousands of commercial, governmental, educational and other computer systems that route data and messages. Of course, network data processing system 1900 also may be implemented as a number of different types of networks, such as for example, an intranet, a local area network (LAN), or a wide area network (WAN).
Turning now to
Processor unit 2004 serves to execute instructions for software that may be loaded into memory 2006. Processor unit 2004 may be a set of one or more processors or may be a multi-processor core, depending on the particular implementation. Further, processor unit 2004 may be implemented using one or more heterogeneous processor systems in which a main processor is present with secondary processors on a single chip. As another illustrative example, processor unit 2004 may be a symmetric multi-processor system containing multiple processors of the same type.
Memory 2006 and persistent storage 2008 are examples of storage devices 2016. A storage device is any piece of hardware that is capable of storing information, such as, for example without limitation, data, program code in functional form, and/or other suitable information either on a temporary basis and/or a permanent basis. Memory 2006, in these examples, may be, for example, a random access memory or any other suitable volatile or non-volatile storage device. Persistent storage 2008 may take various forms depending on the particular implementation. For example, persistent storage 2008 may contain one or more components or devices. For example, persistent storage 2008 may be a hard drive, a flash memory, a rewritable optical disk, a rewritable magnetic tape, or some combination of the above. The media used by persistent storage 2008 also may be removable. For example, a removable hard drive may be used for persistent storage 2008.
Communications unit 2010, in these examples, provides for communications with other data processing systems or devices. In these examples, communications unit 2010 is a network interface card. Communications unit 2010 may provide communications through the use of either or both physical and wireless communications links.
Input/output unit 2012 allows for input and output of data with other devices that may be connected to data processing system 2000. For example, input/output unit 2012 may provide a connection for user input through a keyboard, a mouse, and/or some other suitable input device. Further, input/output unit 2012 may send output to a printer. Display 2014 provides a mechanism to display information to a user.
Instructions for the operating system, applications and/or programs may be located in storage devices 2016, which are in communication with processor unit 2004 through communications fabric 2002. In these illustrative examples the instruction are in a functional form on persistent storage 2008. These instructions may be loaded into memory 2006 for execution by processor unit 2004. The processes of the different embodiments may be performed by processor unit 2004 using computer implemented instructions, which may be located in a memory, such as memory 2006.
These instructions are referred to as program code, computer usable program code, or computer readable program code that may be read and executed by a processor in processor unit 2004. The program code in the different embodiments may be embodied on different physical or tangible computer readable media, such as memory 2006 or persistent storage 2008.
Program code 2018 is located in a functional form on computer readable media 2020 that is selectively removable and may be loaded onto or transferred to data processing system 2000 for execution by processor unit 2004. Program code 2018 and computer readable media 2020 form computer program product 2020 in these examples. In one example, computer readable media 2020 may be in a tangible form, such as, for example, an optical or magnetic disc that is inserted or placed into a drive or other device that is part of persistent storage 2008 for transfer onto a storage device, such as a hard drive that is part of persistent storage 2008. In a tangible form, computer readable media 2018 also may take the form of a persistent storage, such as a hard drive, a thumb drive, or a flash memory that is connected to data processing system 2000. The tangible form of computer readable media 2018 is also referred to as computer recordable storage media. In some instances, computer readable media 2020 may not be removable.
Alternatively, program code 2018 may be transferred to data processing system 2000 from computer readable media 2018 through a communications link to communications unit 2010 and/or through a connection to input/output unit 2012. The communications link and/or the connection may be physical or wireless in the illustrative examples. The computer readable media also may take the form of non-tangible media, such as communications links or wireless transmissions containing the program code.
In some illustrative embodiments, program code 2016 may be downloaded over a network to persistent storage 2008 from another device or data processing system for use within data processing system 2000. For instance, program code stored in a computer readable storage medium in a server data processing system may be downloaded over a network from the server to data processing system 2000. The data processing system providing program code 2016 may be a server computer, a client computer, or some other device capable of storing and transmitting program code 2016. The different components illustrated for data processing system 2000 are not meant to provide architectural limitations to the manner in which different embodiments may be implemented. The different illustrative embodiments may be implemented in a data processing system including components in addition to or in place of those illustrated for data processing system 2000. Other components shown in
As another example, a storage device in data processing system 2000 is any hardware apparatus that may store data. Memory 2006, persistent storage 2008 and computer readable media 2018 are examples of storage devices in a tangible form.
In another example, a bus system may be used to implement communications fabric 2002 and may be comprised of one or more buses, such as a system bus or an input/output bus. Of course, the bus system may be implemented using any suitable type of architecture that provides for a transfer of data between different components or devices attached to the bus system. Additionally, a communications unit may include one or more devices used to transmit and receive data, such as a modem or a network adapter. Further, a memory may be, for example, memory 2006 or a cache such as found in an interface and memory controller hub that may be present in communications fabric 2002.
Turning to
Application programming interface (API) 2106 allows the user of the system, such as an individual or a software routine, to invoke system capabilities using a standard consistent interface without concern for how the particular functionality is implemented. Network access software 2108 represents any software available for allowing the system to access a network. This access may be to a network, such as a local area network (LAN), wide area network (WAN), or the Internet. With the Internet, this software may include programs, such as Web browsers. Application software 2110 represents any number of software applications designed to react to data through the communications port to provide the desired functionality the user seeks. Applications at this level may include those necessary to handle data, video, graphics, photos or text, which can be accessed by users of the Internet. The mechanism of View Element Adjuster 470 (See
The flowchart and block diagrams in the Figures 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.
The terminology used herein is for the purpose of describing particular embodiments only and is not intended to be limiting of the invention. As used herein, the singular forms “a”, “an” and “the” are intended to include the plural forms as well, unless the context clearly indicates otherwise. It will be further understood that the terms “comprises” and/or “comprising,” when used in this specification, specify the presence of stated features, integers, steps, operations, elements, and/or components, but do not preclude the presence or addition of one or more other features, integers, steps, operations, elements, components, and/or groups thereof.
The corresponding structures, materials, acts, and equivalents of all means or step plus function elements in the claims below are intended to include any structure, material, or act for performing the function in combination with other claimed elements as specifically claimed. The description of the present invention has been presented for purposes of illustration and description, but is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art without departing from the scope and spirit of the invention. The embodiment was chosen and described in order to best explain the principles of the invention and the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
The invention can take the form of an entirely hardware embodiment, an entirely software embodiment or an embodiment containing both hardware and software elements. In a preferred embodiment, the invention is implemented in software, which includes but is not limited to firmware, resident software, microcode, etc.
Furthermore, the invention can take the form of a computer program product accessible from a computer-usable or computer-readable medium providing program code for use by or in connection with a computer or any instruction execution system. For the purposes of this description, a computer-usable or computer readable medium can be any tangible apparatus that can contain, store, communicate, propagate, or transport the program for use by or in connection with the instruction execution system, apparatus, or device.
The medium can be an electronic, magnetic, optical, electromagnetic, infrared, or semiconductor system (or apparatus or device) or a propagation medium. Examples of a computer-readable medium include a semiconductor or solid state memory, magnetic tape, a removable computer diskette, a random access memory (RAM), a read-only memory (ROM), a rigid magnetic disk and an optical disk. Current examples of optical disks include compact disk-read only memory (CD-ROM), compact disk-read/write (CD-R/W) and DVD.
A data processing system suitable for storing and/or executing program code will include at least one processor coupled directly or indirectly to memory elements through a system bus. The memory elements can include local memory employed during actual execution of the program code, bulk storage, and cache memories which provide temporary storage of at least some program code in order to reduce the number of times code must be retrieved from bulk storage during execution.
Input/output or I/O devices (including but not limited to keyboards, displays, pointing devices, etc.) can be coupled to the system either directly or through intervening I/O controllers.
Network adapters may also be coupled to the system to enable the data processing system to become coupled to other data processing systems or remote printers or storage devices through intervening private or public networks. Modems, cable modem and Ethernet cards are just a few of the currently available types of network adapters.
The description of the present invention has been presented for purposes of illustration and description, and is not intended to be exhaustive or limited to the invention in the form disclosed. Many modifications and variations will be apparent to those of ordinary skill in the art. The embodiment was chosen and described in order to best explain the principles of the invention, the practical application, and to enable others of ordinary skill in the art to understand the invention for various embodiments with various modifications as are suited to the particular use contemplated.
This application is a continuation-in-part of application Ser. No. 11/189,913, filed Jul. 26, 2005.
Number | Date | Country | |
---|---|---|---|
Parent | 11189913 | Jul 2005 | US |
Child | 12372669 | US |