|Publication number||US20060190417 A1|
|Application number||US 11/067,427|
|Publication date||Aug 24, 2006|
|Filing date||Feb 24, 2005|
|Priority date||Feb 24, 2005|
|Also published as||US8195502, US8489448, US20110258143, US20120221490|
|Publication number||067427, 11067427, US 2006/0190417 A1, US 2006/190417 A1, US 20060190417 A1, US 20060190417A1, US 2006190417 A1, US 2006190417A1, US-A1-20060190417, US-A1-2006190417, US2006/0190417A1, US2006/190417A1, US20060190417 A1, US20060190417A1, US2006190417 A1, US2006190417A1|
|Inventors||Gerhard Hilkemeyer, Mickey Iqbal, Robert Johanns, Vernon Lenzini, Robin McCubbin, Patrick Trees|
|Original Assignee||International Business Machines Corporation|
|Export Citation||BiBTeX, EndNote, RefMan|
|Patent Citations (11), Referenced by (17), Classifications (8), Legal Events (1)|
|External Links: USPTO, USPTO Assignment, Espacenet|
The invention relates generally to computer systems, and deals more particularly with a technique to estimate the cost of electronically distributing and maintaining software.
It is well known today to electronically distribute software via the Internet or other network. There are many factors effecting the complexity of the distribution including: (a) the requisite number of workstation and server images that need the software, (b) whether these are first time installation of the software, (c) the requisite number of application updates, operating system patches/fixes and security updates, (d) the amount and type of data that is associated with the software and must be distributed with the software, (e) the difficulty of installation, configuration, deployment and maintenance of the software applications, operating system, software packaging tools, software distribution tools and image maintenance tools, (f) the complexity of the network topology, network architecture and existing IT infrastructure and (g) any given network or systems infrastructure constraints that may impact a desired initial electronic software distribution (“ESD”) environment. Each of these requirements affects the cost of the ESD. An estimate of the cost for the initial distribution and subsequent maintenance may be required ahead of time.
Various manual and semi-automated methods were known for estimating the cost of an initial ESD. The known manual method begins with a specification of what services and products are required for the initial ESD. The overall cost of the ESD is determined based on the cost of parts and labor for each service and product, and a summation of these costs. Strategic outsourcing companies also generate bids for ESD and subsequent maintenance using a combination of manual data collection and data entry, and then computations based on this data using spreadsheet or similar calculation tools. For example, semi-automated methods calculate costs, using a program tool such as Lotus 123 or MS Excel spreadsheet program, where the various cost elements have already been identified. Once the user enters data for these variables, the spreadsheet program tool calculates the costs.
Other, more automated methods were also known for estimating the cost of performing electronic software distributions and subsequent maintenance/distribution of software updates. These methods use macros which further automate the processing of spreadsheet program tools such as those described above, with the major difference that each automated method is specific to a particular ESD tool. The macros automate calculations such as those that show a specific tool's license costs may be calculated for any given number of workstations or servers, or how many labor hours it would take to package and distribute a specific number of shrinkwraps application using a specific tool.
Other automated and semi-automated methods were known for estimating costs for various types of products and services. See U.S. Pat. No. 5,291,397 entitled “Method for Resource Allocation and Project Control for the Production of a Product”, U.S. Pat. No . 5,918,219 entitled “System and method for estimating construction project costs and schedules based on historical data”, U.S. Pat. No. 6,446,053 entitled “Computer-implemented method and system for producing a proposal for a construction project”, U.S. Pat. No. 6,477,518 entitled “Method of knowledge-based engineering cost and weight estimation of an HVAC air-handling assembly for a climate control system”, U.S. Pat. No. 6,393,290 entitled “Cost based model for wireless architecture”, U.S. Pat. No. 6,061,657 entitled “Techniques for estimating charges of delivering health care services that take complicating factors into account”, U.S. Pat. No. 6,012,054 entitled “Database system with methods for performing cost-based estimates using spline histograms”, U.S. Pat. 6,219,930 entitled “Apparatus and method of use for calculating an estimate of damaged surface repair cost”, U.S. Pat. No. 6,353,826 entitled “Database system with methodology providing improved cost estimates for query strategies”, U.S. Pat. No. 6,263,345 entitled “Histogram synthesis modeler for a database query optimizer”, U.S. Pat. No. 6,072,479 entitled “Multimedia scenario editor calculating estimated size and cost”, and U.S. Pat. No. 5,189,606 entitled “Totally integrated construction cost estimating, analysis, and reporting system”.
An object of the present invention is to automate the process of estimating the cost of an initial ESD.
Another object of the present invention is to automate the process of estimating the cost of subsequent maintenance.
Another object of the present invention is to automate the process of estimating the cost of an initial ESD while considering a wide range of factors which affect the cost.
The invention resides in a system and computer program product for estimating the cost of an ESD for software and subsequent updates for the software. Various cost factors can be considered such as one or more of the following. First program instructions determine a cost of the ESD associated with packaging together components of the software. Second program instructions receive a selection from an operator whether to push or pull the subsequent updates to a customer, and determine a cost for distributing the subsequent updates based on the selection. Third program instructions estimate a cost of the ESD associated with a type of program used by the customer to create images of the software. Fourth program instructions estimate a cost of the subsequent updates associated with distributing the updates to a remote distribution site, and then distributing the updates from the remote distribution site to the customer based on a type of customer tool used to download the updates from the remote distribution site. Fifth program instructions sum together the various costs.
The present invention will now be described in detail with reference to the figures.
The rules, facts and data entered by the knowledge engineer and stored in the knowledge database 38 (in RAM 16 or ROM 18) include the following:
(a) installation, configuration, deployment and maintenance features (for example, directories where filesets may be installed, parameters that should be passed on during installation in order to configure an operating system software, the type of deployment mechanism (PUSH, PUL or MEDIA based) that should be used and the frequency and number of patches that need to be applied over time) of various workstation and server operating systems;
(b) installation, configuration and deployment features (for example, prerequisites that need to be installed prior to installing a packaging tool application, user interface changes or desktop setting changes, and interfaces with programming languages, instructions for performing rollbacks or checkpoint restarts during deployment) of viable software packaging tools and packaging methodologies;
(c) installation, configuration and deployment features (for example, how many distribution points to set up for a given network environment, how to configure and tune distribution parameters given a set of target workstations and servers and how many infrastructure servers hosting package repositories need to be deployed in a given environment) of viable software distribution tools;
(d) installation, configuration and deployment features (for example, whether CID installation or native setup installation or bare metal image build installation will be needed, what core packages will be configured as part of the base image build and what type of deployment methodology or tool such as IBM Remote Deployment Manager program may be used) of viable workstation image creation and workstation image maintenance tools;
(e) installation, configuration and deployment features (for example, LAN or WAN installation requirements such as bandwidth, coverage area, routers, firewall rules, port settings, etc., cabling and closets used, points of deployment of network routers and gateways, etc.) of available network topology, network architecture, existing IT infrastructure and existing network or systems infrastructure constraints that may impact a desired initial ESD environment;
(f) estimated cost for performing specific distribution and maintenance tasks;
(g) historical cost data from previous initial ESDs and maintenance activities, where the cost data is correlated with respective services;
(h) facts and business rules related to utilization of combinations of available software packaging/distribution and image creation/management tool-sets;
(i) rules to establish which packaging tools and methodologies can be used in a given environment;
(j) rules to establish which distribution tools and methodologies can be used in a given environment; and
(k) rules to establish which image build tools and methodologies can be used in a given environment and rules to establish which combinations of various packaging tools, distribution tools and imaging tools may be used together in a given systems environment.
The following is a specific example of rules, facts and data, which can be stored within the knowledge database 38 to estimate the cost of an initial ESD and subsequent maintenance:
The following is an example of other, specific (business) rules within the knowledge database 38. These rules are encoded using a computer programming language which enables the cost estimating module 32 to automatically access and process the rules and apply them to the customer requirements.
The customer requirements (subsequently entered by an operator to define a proposed initial ESD and subsequent maintenance) include details about the customer's current workstation environment, which may or may not have an existing initial ESD capability. The following are examples of possible customer requirements that the customer specifies to cost estimation program tool 10:
The cost estimating module 32 estimates the cost of a proposed initial ESD “f(x)” and subsequent maintenance “f(y)”:
The following is a generalized form of an algorithm within the cost estimating module 32, which calculates both f(x) and f(y) to produce f(z) based on a given set of customer requirements, and the rules, facts and data embedded in the knowledge database 38. The following algorithm assumes that all rules, facts and data and customer requirements have already been input and stored in the knowledge database 38.
Next, the goal-seeking alternatives module 34 will, if needed, relax customer requirements, which the operator indicated as “soft”, to meet a “hard” budget constraint. For example, if the original customer requirement is for initial ESD and maintenance of ten applications (and that is a soft requirement), the goal-seeking alternatives module 34 may lower that to eight applications. As another example, if the original customer requirement is for “pushing” the software updates during the maintenance (and that is a soft requirement), the goal-seeking alternatives module 34 may lower that to a “pulling” arrangement which is less expensive. As another example, the software distribution package is very large and requires a high bandwidth to be available over a given expensive distribution period. If this is a unfeasible option to the customer, then as an alternative the bandwidth utilization option may be lowered by a certain amount by the goal seek system in order to distribute small portions of the same package over a longer period of time using low bandwidth in non-peak and less expensive time periods. As another example, it is expensive to perform ten distinct distributions of ten distinct software packages. So, the system may adjust to allow for the bundling of all ten packages into a single mega-package which can be distributed at the same time to all target end point machines. The goal seeking alternatives module 34 is a previously known program such as Excel “Goal Seek” program, Lotus 123 “Goal Seek” program or IFPS program (by Interactive Financial Planning Systems By Comshare Inc.) Before or after invoking the goal-seeking alternatives module 34, the operator can invoke the sensitivity module 39 to reduce the cost. The sensitivity module 39 allows the operator to change one or a few customer requirements. In response, the sensitivity module 39 will identify the rules which are affected by the change(s), and then notify the cost estimating module 32 to recompute the cost associated with the effected rules. The sensitivity module 39 identifies the affected rules by searching for those costing equations that include the changed customer requirement such as lower number of target end points, low bandwidth utilization decision, bundling of several packages into a single distribution etc. This avoids the need for the cost estimating module 32 to recompute all the cost elements. The sensitivity module 39 is a previously known program such as those used in IBM Lotus 123 spreadsheet program, Microsoft Excel spreadsheet program or Quattro Pro program.
Thus, a knowledge engineering team enters data, facts and rules, for an initial ESD and subsequent maintenance, into the knowledge database 38 using a data encoding program tool. Then, the operator enters the customer requirements for the proposed initial ESD and subsequent maintenance using computer templates generated by the user interface module 30. Then, the cost estimating module 32 applies the data, facts and rules in the knowledge database to the customer requirements to estimate the cost of the initial ESD and subsequent maintenance. Then, if the cost is over budget, the operator can invoke either the goal-seeking alternatives module 34 or the sensitivity module 39. The goal-seeking alternatives module 34 automatically relaxes some of the “soft” customer requirements to reduce the cost to meet any “hard” budget constraints. The sensitivity module 39 allows the operator to change one or a few customer requirements, identifies the rules which are affected by the change(s), and then notifies the cost estimating module 32 to recompute the cost associated with the effected rules. Then, the user interface module 30 displays the results to the user. The user interface module 30 can generate various types of cost estimation proposal reports including display screen reports, HTML reports, pdf files, text file reports, and CSV files based reports. The reports include various cost accounts broken down by cost categories (hardware, software, labor, etc. for initial ESD and maintenance?? The cost data can be further broken down by package creation costs, image creation costs, image deployment costs, package deployment costs, initial ESD infrastructure installation and configuration costs, server support costs etc. Then, the user can vary one or more of the customer requirements, and the cost estimating module 32 will determine the new cost of the initial ESD and subsequent maintenance and present the cost estimation as described above.
Based on the foregoing, a cost estimation program, system and method for estimating the cost of an initial ESD and subsequent maintenance have been disclosed. However, numerous modifications and substitutions can be made without deviating from the scope of the present invention. For example, additional equation parameters can be added to account for various types of hardware, software, labor, infrastructure deployment, and operations management costs related to electronic software distribution and related IT systems management discipline. Therefore, the present invention has been disclosed by way of illustration and not limitation, and reference should be made to the following claims to determine the scope of the present invention.
|Cited Patent||Filing date||Publication date||Applicant||Title|
|US5291397 *||Dec 20, 1991||Mar 1, 1994||Powell Roger A||Method for resource allocation and project control for the production of a product|
|US5765140 *||Nov 17, 1995||Jun 9, 1998||Mci Corporation||Dynamic project management system|
|US5878400 *||Jun 17, 1996||Mar 2, 1999||Trilogy Development Group, Inc.||Method and apparatus for pricing products in multi-level product and organizational groups|
|US6199193 *||Sep 16, 1997||Mar 6, 2001||Fujitsu Limited||Method and system for software development and software design evaluation server|
|US6360255 *||Jun 25, 1998||Mar 19, 2002||Cisco Technology, Inc.||Automatically integrating an external network with a network management system|
|US6421671 *||Apr 30, 1999||Jul 16, 2002||Dell Products L.P.||Method and system for automated distribution of software|
|US6513154 *||Oct 21, 1997||Jan 28, 2003||John R. Porterfield||System and method for testing of computer programs in programming effort|
|US6658643 *||Aug 23, 2000||Dec 2, 2003||International Business Machines Corporation||Method and apparatus for computer software analysis|
|US20020026342 *||Jan 29, 2001||Feb 28, 2002||Lane Mark T.||Multi-layer engine using generic controls for optimal routing scheme|
|US20050278518 *||Jun 18, 2004||Dec 15, 2005||Ming-Chih Ko||Electronic system capable of using universal plug and play (upnp) protocol to update software program and method thereof|
|US20060080656 *||Oct 12, 2004||Apr 13, 2006||Microsoft Corporation||Methods and instructions for patch management|
|Citing Patent||Filing date||Publication date||Applicant||Title|
|US7496544 *||Apr 19, 2005||Feb 24, 2009||International Business Machines Corporation||Method and apparatus for assessing products|
|US7793262||Jul 29, 2004||Sep 7, 2010||International Business Machines Corporation||Method and apparatus for facilitating software testing and report generation with interactive graphical user interface|
|US8024433 *||Apr 24, 2007||Sep 20, 2011||Osr Open Systems Resources, Inc.||Managing application resources|
|US8195502||Jun 24, 2011||Jun 5, 2012||International Business Machines Corporation||System, method and program to estimate cost of distributing software|
|US8418251 *||Apr 27, 2009||Apr 9, 2013||Symantec Corporation||Detecting malware using cost characteristics|
|US8489448||Apr 17, 2012||Jul 16, 2013||International Business Machines Corporation||System, method and program to estimate cost of distributing software|
|US8521752||Jun 3, 2005||Aug 27, 2013||Osr Open Systems Resources, Inc.||Systems and methods for arbitrary data transformations|
|US8539228||Aug 24, 2006||Sep 17, 2013||Osr Open Systems Resources, Inc.||Managing access to a resource|
|US8826223 *||Apr 18, 2012||Sep 2, 2014||International Business Machines Corporation||Techniques for objective assessment and improvement of software quality|
|US8903874||Nov 2, 2012||Dec 2, 2014||Osr Open Systems Resources, Inc.||File system directory attribute correction|
|US8990228||Jul 22, 2013||Mar 24, 2015||Osr Open Systems Resources, Inc.||Systems and methods for arbitrary data transformations|
|US20060026464 *||Jul 29, 2004||Feb 2, 2006||International Business Machines Corporation||Method and apparatus for testing software|
|US20060235708 *||Apr 19, 2005||Oct 19, 2006||International Business Machines Corporation||Method and apparatus for assessing products|
|US20110072253 *||Mar 24, 2011||International Business Machines Corporation||Method, system and program product for determining an optimal configuration and operational costs for implementing a capacity management service|
|US20120109844 *||May 3, 2012||International Business Machines Corporation||Cost-based migration waves planning|
|US20130283258 *||Apr 18, 2012||Oct 24, 2013||International Business Machines Corporation||Techniques for Objective Assessment and Improvement of Software Quality|
|EP2800035A1 *||May 3, 2013||Nov 5, 2014||Siemens Aktiengesellschaft||System for automatic estimation of software remediation effort|
|Cooperative Classification||G06Q30/0283, G06Q30/0206, G06Q40/00|
|European Classification||G06Q30/0283, G06Q30/0206, G06Q40/00|
|Mar 21, 2005||AS||Assignment|
Owner name: INTERNATIONAL BUSINESS MACHINES CORPORATION, NEW Y
Free format text: ASSIGNMENT OF ASSIGNORS INTEREST;ASSIGNORS:HILKEMEYER, GERHARD;IQBAL, MICKEY;JOHANNS, ROBERT LAURENCE;AND OTHERS;REEL/FRAME:015934/0793;SIGNING DATES FROM 20050118 TO 20050224