US20060190417A1
2006-08-24
11/067,427
2005-02-24
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.
Get notified when new applications in this technology area are published.
G06Q40/00 » CPC main
Finance; Insurance; Tax strategies; Processing of corporate or income taxes
G06Q30/0206 » CPC further
Commerce, e.g. shopping or e-commerce; Marketing, e.g. market research and analysis, surveying, promotions, advertising, buyer profiling, customer management or rewards; Price estimation or determination; Market predictions or demand forecasting Price or cost determination based on market factors
G06Q30/0283 » CPC further
Commerce, e.g. shopping or e-commerce; Marketing, e.g. market research and analysis, surveying, promotions, advertising, buyer profiling, customer management or rewards; Price estimation or determination Price estimation or determination
G06F17/00 IPC
Digital computing or data processing equipment or methods, specially adapted for specific functions
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.
SUMMARY OF THE INVENTIONThe 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.
BRIEF DESCRIPTION OF THE FIGURESFIG. 1 is a block diagram illustrating a computer system which includes a cost estimation program according to the present invention.
FIG. 2 illustrates a specific (screen interface) example of rules, facts and data which can be entered and stored in a knowledge base within the cost estimating program of FIG. 1 to estimate the cost of an initial ESD and subsequent maintenance.
FIG. 3 illustrates another, specific (screen interface) example of rules, facts and data which can be entered and stored within the knowledge base within the cost estimating program of FIG. 1 to estimate the cost of an initial ESD and subsequent maintenance.
DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTSThe present invention will now be described in detail with reference to the figures. FIG. 1 illustrates a cost estimation program 10 executing in a computer 12 to estimate the cost of an initial ESD and subsequent maintenance. Computer 12 is a standard type such as a known workstation or server, and includes a CPU 14, operating system 15, RAM 16, ROM 18 and disk storage 20. Cost estimation program 10 includes a user interface program module 30, a cost estimating program module 32, a goal-seeking alternatives program module 34, a rules, facts and knowledge database 38, a sensitivity program module 39, a knowledge database manager program module 41, and a systems framework program module 40. The user interface module 30 allows a knowledge engineer to enter customer requirements. The customer requirements determine the unique ESD environment variables and needs (such as number of workstations and servers, type of network used, types of applications requiring upgrades, etc.) for the initial ESD and subsequent ESD maintenance for each customer. The user interface module 30 also allows a knowledge engineer to enter rules, facts and data into the knowledge database 38 which can then be used by the cost estimating module to estimate the cost of an initial ESD and subsequent maintenance. The user interface module 30 also allows a subsequent operator to specify other customer requirements that impact the cost of the initial ESD and subsequent maintenance. The knowledge engineer and subsequent operator can designate the customer requirements as âsoftâ or âhardâ. The cost estimating module 32 applies the rules, facts and data in the knowledge database 38 to the customer requirements to determine labor, hardware, software and infrastructure costs. The goal-seeking alternatives module 34 relaxes customer requirements, which the operator indicated as âsoftâ, to meet a âhardâ budget constraint. 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. (This avoids the need for the cost estimating module 32 to recompute all the component costs.) The database manager module 41 manages the data, facts and rules in the knowledge database 38. The systems framework module 40 logically interconnects the user interface module 30, cost estimating module 32, alternatives module 34, knowledge database 38 and knowledge database manager 41. Systems framework module 40 can be implemented in a variety of programming languages, such as JAVA, to provide multiple operating system support, multiple hardware support, distributed objects and multi-language support. The systems framework module 40 also can be installed and configured to operate in a multi-tier systems architecture, where the various program modules and database may actually reside on different computer systems interconnected via a distributed network computing architecture.
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:
FIG. 2 illustrates another, specific example of rules, facts and data which can be stored in the knowledge database 38 to estimate the cost of an initial ESD and subsequent maintenance. A developer enters the rules, facts and data for the number of hours of labor for each function. These are fields C2-C45.
FIG. 3 illustrates another, 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. As shown in FIG. 3, a knowledge engineer already entered the rules, facts and data for the numbers of various types of units. These are the fields in the middle column of FIG. 3, where examples of numbers are shown.
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.
1. A computer program product to estimate the cost of an ESD for software and subsequent updates for said software, said program product comprising:
a computer readable medium;
first program instructions to determine a cost of said ESD associated with packaging together components of said software; and
second program instructions to receive a selection from an operator whether to push or pull said subsequent updates to a customer, and determine a cost for distributing said subsequent updates based on said selection; and wherein
said first and second program instructions are recorded on said medium.
2. A computer program product as set forth in claim 1 further comprising:
third program instructions to estimate a cost of said ESD associated with a type of program used by said customer to create images of said software; and wherein
said third program instructions are recorded on said medium.
3. A computer program product as set forth in claim 2 further comprising:
fourth program instructions to sum the cost of said ESD associated with packaging said software and the cost of said ESD associated with the type of program used by said customer to create images of said software; and
wherein said fourth program instructions are recorded on said medium.
4. A computer program product as set forth in claim 1 further comprising:
third program instructions to estimate a cost of said subsequent updates associated with distributing said updates to a remote distribution site, and then distributing said updates from said remote distribution site to said customer based on a type of customer tool used to download said updates from said remote distribution site; and wherein
said third program instructions are recorded on said medium.
5. A computer program product as set forth in claim 4 further comprising:
fourth program instructions to sum the cost for distributing said subsequent updates based on said selection and the cost for distributing said subsequent updates to said remote distribution site, and then distributing said software updates from said remote distribution site to said customer based on a type of customer tool used to download said software updates from said remote distribution site; and wherein
said fourth program instructions are recorded on said medium.
6. A computer program product to estimate the cost of an ESD for software and subsequent updates for said software, said program product comprising:
a computer readable medium;
first program instructions to estimate a cost of said ESD associated with a type of program used by said customer to create images of said software; and
second program instructions to receive a selection from an operator whether to push or pull subsequent updates to a customer, and determine a cost for distributing said subsequent updates based on said selection; and wherein
said first and second program instructions are recorded on said medium.
7. A computer program product as set forth in claim 6 further comprising:
third program instructions to sum the cost of said ESD associated with the type of program used by said customer to create images of said software and the cost for distributing said subsequent updates based on said selection; and
wherein said third program instructions are recorded on said medium.
8. A computer program product as set forth in claim 6 further comprising:
third program instructions to estimate a cost of said subsequent updates associated with distributing said updates to a remote distribution site, and then distributing said updates from said remote distribution site to said customer based on a type of customer tool used to download said updates from said remote distribution site; and wherein
said third program instructions are recorded on said medium.
9. A computer program product as set forth in claim 8 further comprising:
fourth program instructions to sum the cost of said ESD associated with the type of program used by said customer to create images of said software, the cost for distributing said subsequent updates based on said selection, and the cost for distributing said subsequent updates to said remote distribution site and then distributing said software updates from said remote distribution site to said customer based on a type of customer tool used to download said software updates from said remote distribution site; and wherein
said fourth program instructions are recorded on said medium.
10. A computer program product to estimate the cost of distributing software updates, said program product comprising:
a computer readable medium;
first program instructions to estimate a cost associated with distributing said software updates to a remote distribution site, and then distributing said updates from said remote distribution site to said customer based on a type of customer tool used to download said updates from said remote distribution site; and
second program instructions to receive a selection from an operator whether to push or pull subsequent updates to a customer from said remote site, and determine a cost for distributing said subsequent updates based on said selection; and wherein
said first and second program instructions are recorded on said medium.
11. A computer program product as set forth in claim 10 further comprising:
third program instructions to sum the cost associated with distributing said updates to a remote distribution site and then distributing said updates from said remote distribution site to said customer based on a type of customer tool used to download said updates from said remote distribution site, and the cost for distributing said subsequent updates based on said selection; and
wherein said third program instructions are recorded on said medium.
12. A computer system product for estimating the cost of distributing software updates, said system comprising:
means for estimating a cost associated with distributing said software updates to a remote distribution site, and then distributing said updates from said remote distribution site to said customer based on a type of customer tool used to download said updates from said remote distribution site; and
means for receiving a selection from an operator whether to push or pull subsequent updates to a customer from said remote site, and determining a cost for distributing said subsequent updates based on said selection.