English:
[0001] Business service management (BSM) is a suite of products for monitoring and measuring information technology services from a business perspective. BSM gives users the ability to collect data (both performance metrics and events) from a wide range of data collectors associated with an Information Technology infrastructure. These data collectors range from collectors that monitor low level hardware performance such as processor usage to higher level collectors that can monitor business transactions that span multiple machines and processes such as order fulfillment. BSM contains a wide variety of ways to analyze and manage the data obtained from monitoring. In addition, implementations of the BSM may contain many applications that range from a dashboard that displays the real-time status of various business processes to an application allowing users to create Service Level Agreements on their business applications or hardware performance.
[0002] Implementations of BSM aim to meet the needs of a diverse customer audience. Not all customers want to run the same data collectors or use the same set of applications to analyze and report on their data. In addition, capacity levels can vary as well. For example, one customer may need to monitor the performance of 100 servers and have 10 concurrent users on a BSM system, while another will monitor 10,000 hosts and have 75 concurrent users on the BSM system.
[0003] FIG. 1 illustrates an example system that includes a BSM deployment that manages a computer infrastructure that includes one or more computing devices connected to a network.
[0007] FIG. 5 illustrates an example graphical user interface associated with the example software deployment tool of FIG. 1 that enables a user to input business needs and software selection information and receive information about hardware requirements based on those business needs and software selection information inputs.
[0008] FIG. 6 illustrates an example table of information that may provide hardware requirement information for software components.
[0009] FIG. 7 illustrates an example table of information that may used to determine a capacity level of a software component.
[0010] FIG. 8 illustrates an example graphical user that may be used to configure and/or deploy the BSM deployment of FIG. 1.
[0011] FIG. 9 is a schematic illustration of an example processor platform that may be used and/or programmed to execute the example interactions, the example processes and/or the example machine-accessible instructions of FIGS. 3-4 to implement any or all of the example methods, apparatus and/or articles of manufacture described herein.
[0012] Methods, apparatus, and articles of manufacture to deploy software applications are disclosed. In disclosed examples, a deployment management tool receives information from users regarding business needs and desired software for installation. The example deployment management tool determines software components associated with the software applications based on the business needs. In addition, the example deployment management tool determines hardware requirements for each of the software components and adds the hardware requirements to determine a hardware profile for the planned installation of BSM. Based on the hardware profile and available hardware resources, the example deployment tool installs and configures BSM. The deployment tool then monitors the BSM deployment to determine if the operation of the BSM deployment exceeds the configured capacity levels and determine if the hardware requirements for the actual capacity level of the BSM deployment exceeds the available hardware resources of the computer system(s) on which BSM is installed. When the operation of the BSM deployment exceeds the configured capacity level and/or the hardware requirements exceed the hardware resources, the deployment tool provides an alert to the user.
[0013] FIG. 1 illustrates an example system 100 that includes a BSM deployment 102 that manages a computer infrastructure 106 that includes one or more computing devices connected to a network 104. According to the illustrated example, the BSM deployment 102 includes a server deployment tool 108.
[0014] The BSM deployment 102 of the illustrated example enables users of the BSM deployment 102 (e.g., system administrators) to monitor and manage the computing devices of the computer infrastructure 106. For example, the BSM deployment 102 may enable monitoring of performance of software applications executing on the computing devices, configure and/or install software applications on the computing devices, monitor the computing devices for hardware or software errors, monitor changes in the computer devices, etc. The example BSM deployment 102 is a software application that is installed on a server computer. Alternatively, the BSM deployment 102 could be implemented by one or more software applications that are installed on one or more computers.
[0015] The example BSM deployment 102 includes the server deployment tool 108. The server deployment tool 108 obtains user input regarding the operation of the BSM deployment 102 and installs, configures, and/or tunes the installation of the BSM deployment 102 based on the user input. The server deployment tool 108 may be a standalone system (e.g., a software application) or may operate in conjunction with systems of the BSM deployment 102 (e.g., an installer for the BSM deployment 102). Accordingly, as described in further detail herein, some implementations of the server deployment tool 108 enable a user to customize the deployment of the BSM deployment 102 to fit their needs without the need for the user to provide or determine hardware requirements. For example, the user can specify the set of application components of the BSM deployment 102 that they desire and specify a capacity level reflecting their usage and the server deployment tool will determine a hardware profile for the system and configure the BSM deployment 102 accordingly. The example server deployment tool 108 additionally monitors the BSM deployment 102 during operation to notify users when their usage or configuration exceeds the available hardware resources and/or configuration.
[0016] While the examples described herein reference the BSM deployment 102, the methods, apparatus, and articles of manufacture described herein are applicable to other types of systems. For example, the server deployment tool 108 may be used to install, configure, and/or tune any type of software/hardware system. The references to the BSM deployment 102 throughout this patent are intended to be examples and the scope of coverage of this disclosure is not limited to implementations that use and/or include a BSM product.
[0017] The network 104 of the illustrated example communicatively couples the one or more computing devices of the computer infrastructure 106 and the BSM deployment 102. The network 104 may be any type of one or more network(s) such as, for example, any combination of a wired network, a wireless network, a local area network, a wide area network, the internet, etc.
[0018] The computer infrastructure 106 of the illustrated example includes one or more computing devices. The one or more computing devices may be any type of computing device such as, for example, personal computer(s), server(s), desktop computer(s), laptop computer(s), router(s), switch(es), hub(s), gateway(s), firewall(s), control system(s), mobile computing device(s), etc. For example, the computer infrastructure 106 may be associated with a business and may include any or all of the computing devices of that business. The computing devices of the computer infrastructure 106 may be located at one physical location or may be distributed throughout several physical locations. According to the illustrated example, the BSM deployment 102 monitors, manages, and/or configures the computing devices of the computer infrastructure 106.
[0019] While an example system 100 has been illustrated in FIG. 1 , one or more of the BSM deployment 102, software deployment tool 108, and/or devices illustrated in FIG. 1 may be combined, divided, re-arranged, omitted, eliminated and/or implemented in any way. Further, the example system 100 may be implemented by hardware, software, firmware and/or any combination of hardware, software and/or firmware. Example hardware includes, but is not limited to, the example processor platform P100, and/or any number and/or type(s) of circuit(s), programmable processor(s), application-specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)), field-programmable logic device(s) (FPLD(s)), and/or field-programmable gate array(s) (FPGA(s)), etc.
[0020] FIG. 2 is a block diagram of an example implementation of the server deployment tool 108 of FIG. 1. The example server deployment tool 108 includes a business needs receiver 202, a software selection receiver 204, a software component selector 206, a software component resource index 208, a requirements processor 210, a software installer/configurer 212, and a capacity monitor 214.
[0021] The business needs receiver 202 of the illustrated example receives information about the business needs of the implementation of the BSM deployment 102. For example, the business needs receiver 202 may receive the business needs from a user via a user interface, from an input file, etc. The business needs receiver 202 of the illustrated example does not query the user for a computer hardware requirement. For example, FIG. 5 illustrates an example graphical user interface that may be provided to users to receive the business needs information. The business needs received by the business needs receiver 202, may include any type of information about the environment in which the BSM deployment 102 is to operate. For example, the business needs information may include any type of capacity information, such as, for example, the number of users of the BSM deployment 102, the number of computing devices to be monitored by the BSM deployment 102, the number of applications to be monitored by the BSM deployment 102, the number of transactions to be monitored by the BSM deployment 102, the number of users of the computing devices to be monitored by the BSM deployment 102, a number of hosts to be monitored, etc. While the business needs receiver 202 has been described as receiving data associated with business needs, the business needs receiver 202 may receive any type of information associated with the capacity and usage of the BSM deployment 102 such as, for example, the needs of a person, the capacity needed for several businesses, etc. The business needs receiver 202 sends the received information to the software component selector 206.
[0022] The software selection receiver 204 of the illustrated example receives information about software selected for inclusion in the BSM deployment 102. For example, the software selection receiver 204 may receive a selection of software applications to be included in the installation of the BSM deployment 102 from a user via a user interface, from an input file, etc. For example, FIG. 5 illustrates an example graphical user interface that may be provided to users to receive the software selection information. The software selection received by the software selection receiver 204 may be any type of information about the software applications to be included. For example, the software selection information may be selections of specific software applications, may be information about features or capabilities of the BSM deployment 102 selected by the user that are interpreted by the software selection receiver 204 to identify software applications needed to provide the features or capabilities, etc. The software selection receiver 204 sends the received information to the software component selector 206.
[0023] The software component selector 206 of the illustrated example receives the business needs information from the business needs receiver 202 and the software selection information from the software selection receiver 204 and determines software components to be installed. The example software component selector 206 accesses the software component resource index 208 to determine the components to be installed based on the business needs information and the software selection information. For example, the software component selector 206 may determine a set of components that correspond to a selected software application and then may select among the components based on the identified business needs (e.g., select components that are needed to provide a capacity level specified by the business needs). The software component selector 206 sends the identified components to the requirements processor 210.
[0024] The software component resource index 208 may be any type of structured data, flat file, or other data storage that provides information about the available software components. For example, the software component resource index 208 may be implemented by an extensible markup language (XML) file, a spreadsheet, one or more database tables, etc. The example software component resource index 208 stores a list of available software components (e.g., component parts of software applications that can be selectively installed). In addition, the example software component resource index 208 stores an identification of the hardware requirements for utilizing each software component (e.g., memory requirements, processor requirements, storage space requirements, etc.). The software component resource index 208 may store all information in one data storage or may be implemented by multiple data stores.
[0025] The requirements processor 210 receives the identified software components and utilizes the information in the software component resource index 208 to determine the hardware requirements for installing and/or executing the identified software components. For example, the requirements processor 210 may analyze each software component to determine the associated hardware requirements and then may combine (e.g., sum or add) the individual hardware requirements to determine a total hardware profile for the identified set of software components. The hardware requirements may be any hardware profiles associated with the software components. For example, the hardware requirements may be threshold hardware capabilities to enable the software components to execute, may be threshold hardware capabilities to enable the software components to be installed, threshold hardware capabilities to enable the software to be executed and used, recommended hardware capabilities for using the software components, etc. The requirements processor 210 sends the identified software components and hardware requirements to the software installer/configurer 212. In addition, the requirements processor 210 may provide the hardware requirements to the user for review. Further, the requirements processor 210 may analyze the hardware resources available for use with the BSM deployment 102 to determine if sufficient hardware resources are available and alert the user if the selected business needs and software selections cannot be configured due to deficiency of the hardware resources. While analysis of hardware requirements are described herein, the requirements processor 210 may analyze any other capabilities associated with the software components such as, for example, operating system requirements, system configuration settings, etc.
[0026] The example software installer/configurer 212 receives the identified software components and hardware requirements and installs and/or configures the BSM deployment 102 based on the software components and the hardware requirements. For example, the software installer/configurer 212 may install and/or activate the identified software components, may configure components to run and/or not run based on the identified software components and hardware requirements, may tune the memory usage of the components, etc. The particular processes performed by the software installer/configurer 212 may be based on the particular BSM deployment 102 or other software system that is being installed.
[0027] After the software components are installed and/or configured, the example capacity monitor 214 continuously, periodically, aperiodically, and/or upon request compares the operation of the BSM deployment 102 to the configured capacity levels and the current hardware requirements of the BSM deployment 102 to the available hardware resources to determine if the hardware resources are sufficient for the operating capacity level. When the hardware resources are not sufficient, the capacity monitor 214 displays an alert to the user (e.g., the system administrator) and/or adjusts the configuration of the software system to run within the constraints presented by the hardware resources based on the operating capacity level. For example, if the system was implemented based on an expected capacity of 10 users and the capacity monitor 214 determines that 100 users are accessing the system, the capacity monitor 214 may alert the user. In addition, the capacity monitor may determine the hardware requirements for 100 users, may determine that the current available hardware resources are insufficient, and may display an alert requesting the attention of the user. The capacity monitor 214 may run during operation of the BSM deployment 102, during idle time of the BSM deployment 102, and/or at any other time.
[0028] While FIG. 2 includes blocks 202-214 separated and coupled in a particular manner, variations are possible. For example, blocks 202-214 may be rearranged. In addition, two or more separate blocks may be combined and implemented by a single component and/or individual blocks may be divided and implemented by several components.
[0029] FIGS. 3-4 depict flow diagrams representative of example processes that may be implemented using, for example, computer readable instructions that may be used to deploy a software application such as the BSM deployment 102. The example processes of FIGS. 3-4 may be performed using a processor, a controller and/or any other suitable processing device. For example, the example processes of FIGS. 3-4 may be implemented using coded instructions (e.g., computer readable instructions) stored on a tangible computer readable medium such as a flash memory, a read-only memory (ROM), and/or a random-access memory (RAM). As used herein, the term tangible computer readable medium is expressly defined to include any type of computer readable storage and to exclude propagating signals. Additionally or alternatively, the example processes of FIGS. 3-4 may be implemented using coded instructions (e.g., computer readable instructions) stored on a non-transitory computer readable medium such as a flash memory, a read-only memory (ROM), a random-access memory (RAM), a cache, or any other storage media in which information is stored for any duration (e.g., for extended time periods, permanently, brief instances, for temporarily buffering, and/or for caching of the information). As used herein, the term non-transitory computer readable medium is expressly defined to include any type of computer readable medium and to exclude propagating signals.
[0030] Alternatively, some or all of the example processes of FIGS. 3-4 may be implemented using any combination(s) of application specific integrated circuit(s) (ASIC(s)), programmable logic device(s) (PLD(s)), field programmable logic device(s) (FPLD(s)), discrete logic, hardware, firmware, etc. Also, some or all of the example processes of FIGS. 3-4 may be implemented manually or as any combination(s) of any of the foregoing techniques, for example, any combination of firmware, software, discrete logic and/or hardware. Further, although the example processes of FIGS. 3-4 are described with reference to the flow diagrams of FIGS. 3-4, other methods of implementing the processes of FIGS.3-4 may be employed. For example, the order of execution of the blocks may be changed, and/or some of the blocks described may be changed, eliminated, sub-divided, or combined. Additionally, any or all of the example processes of FIGS. 3-4 may be performed sequentially and/or in parallel by, for example, separate processing threads, processors, devices, discrete logic, circuits, etc.
[0031] FIG. 3 is a flowchart representative of example machine readable instructions to implement the software deployment tool 108. The illustrated example of FIG. 3 begins when the business needs receiver 202 queries a user (e.g., a system administrator) of the software deployment tool 200 for business needs information (block 302). In response, the business needs receiver 202 receives business needs information for the BSM deployment 102 from the user (block 304). In the illustrated example, the software selection receiver 204 then queries the user for one or more software applications to be installed for the BSM deployment 102 (block 306). In response, the software selection receiver 204 receives an indication of the software application(s) to be installed (block 308).
[0032] Next, the software component selector 206 determines a set of components of the software applications based on the business needs information and the indication of the software application(s) to install (block 310). Using the determined set of components, the requirements processor 210 determines the hardware requirements for each of the identified components of the software applications and the business needs information (block 312). Then, the requirements processor 210 determines the total hardware requirements for the set of software components (block 314). For example, the requirements processor 210 may sum the requirements for each of the software components to determine a hardware requirements total. Next, the requirements processor 210 determines the total available hardware resources (block 316). For example, the requirements processor 210 may analyze each of the one or more computer systems available for the installation of the BSM deployment 102 to determine the total available hardware resources. The requirements processor determines if the total hardware requirements exceed the total available hardware resources (block 318). When the total hardware requirements exceed the total available hardware resources, the requirements processor 210 provides a capacity alert indicating that the available hardware resources are insufficient for the selected business needs and software selections. The process of FIG. 3 then terminates and/or control loops back to block 302. The user may start over and provide different information for the business need(s) and/or software selection(s) or may obtain additional hardware to meet the requirements.
[0033] If the total hardware requirements do not exceed the total available hardware resources (block 318), the software installer/configurer 212 installs the identified software components (block 322). For example, the software installer/configurer 312 may copy the components to the one or more computer systems for use with the BSM deployment 102, may instruct an installer for the BSM deployment 102 to copy components to the one or more computer systems, may inactivate or activate software components based on the identified software components, etc. The software installer/configurer 212 then tunes and/or configures the software components (block 324). For example, the software installer/configurer 212 may configure memory allocation for one or more of the software components. The process of FIG. 3 then terminates and/or control returns to block 302.
[0034] FIG. 4 is a flowchart representative of example machine readable instructions to implement the capacity monitor 214 of FIG. 2. The example process begins when the capacity monitor 214 determines an application capacity level (block 402). For example, the capacity monitor 214 may analyze the operation of the BSM deployment 102 to determine the operating capacity (e.g., the number of users of the BSM deployment 102, the number of transactions monitored by the BSM deployment 102, etc.). The capacity monitor then determines hardware requirements for the operating capacity level (block 404). For example, the capacity monitor 214 may analyze the installed software components and use a listing of the associated requirements that is based on capacity (e.g., the software component resource index 208) to determine the hardware requirements for the capacity level. Next, the capacity monitor 214 determines the total available hardware resources for the one or more computers on which the BSM deployment 102 runs (block 406). The capacity monitor determines if the total hardware requirements exceed the total available hardware resources (block 408). When the total hardware requirements do not exceed the total available hardware resources, control returns to block 402 to perform another round of monitoring. When the total hardware requirements exceed the total available hardware resources, the capacity monitor 214 provides a capacity alert and/or instructions for tuning the capacity (block 410). For example, the capacity monitor 214 may indicate that the user needs to increase hardware resources, reduce the capacity level of the BSM deployment 102, and/or remove some of the software components. Control then returns to block 402 to perform another round of monitoring.
[0035] While the example process illustrated by FIG. 4 is a loop, any type of implementation may be used. For example, the process of FIG. 4 may execute once after being triggered by, for example, a fuse that detects that the capacity level exceeds the load the system can maintain. In another implementation, the process of FIG. 4 could be schedule to execute at particular times based on a schedule.
[0036] FIG. 5 illustrates an example graphical user interface 500 associated with the example software deployment tool 108 of FIG. 1 that enables a user to input business needs and software selection information and receive information about hardware requirements based on those business needs and software selection information inputs. The example graphical user interface 500 includes a user input section 504, a software component information section 506, and a hardware requirements section 508.
[0037] The user input section 504 of the illustrated example provides several fields in which the user (e.g., a system administrator) can input business needs information and software selection information. For example, the user input section 504 enables a user to input a number of hosts for an operations manager (OMI) 510, a number of applications to be monitored by an end user management system (EUM) 512, a number of queues to be monitored by a business transaction management system (BTM), a number of hosts for a system availability management system (SAM) 516, whether particular software components should be enabled or disabled, etc. While the example user input section 504 provides a table for user input, any type of user input element may be used such as, for example, several pages of fields, drop down boxes, checkboxes, radio buttons, text fields, etc. In addition, any type of business needs information or other information associated with the capacity of the software to be deployed by the software deployment tool 108, may be included. In the illustrated example, the user inputs are processed as they are input by the user. However, any other type of trigger may cause processing of the data such as, for example, a submit button, a determination that all fields have been completed, etc. The data input into the user input section 504 is used by the software deployment tool 108 to determine the capacity level and, thereby, the software installation and configuration for the software to be deployed by the software deployment tool 108.
[0038] The software component information section 506 indicates information about software components to be installed and there capacity levels based on the business needs information from the user. For example, the software component information section 506 may include a field for each software component that is a part of the software to be deployed by the software deployment tool 108. In the illustrated example, the fields for each software component indicate whether or not the software component will be installed based on the business needs information and software selection information provided from the user. In addition, the example software component information section 506 indicates a capacity level for software components. For example, the software component information section 506 may indicate a capacity level of small, medium, large, extra large, etc. Alternatively, the capacity level could be any other indication of the capacity of the software to be deployed by the software deployment tool 108 (e.g., the capacity to monitor computing devices and/or users).
[0039] The hardware requirements section 508 displays an indication of the hardware requirements calculated for the software components identified in the software component information section based on the business needs identified in the user input section 504. The example hardware requirements section 508 includes memory requirements in gigabytes (GB) 518 and processor requirements in number of needed CPU cores 520. The example hardware requirements section 508 provides hardware requirements for several different system deployment types 522 such as a single server implementation, two server implementations, etc. The hardware requirements section 508 provides a user with information to understand the hardware needed to deploy the particular software system.
[0040] The software component information section 506 and/or the hardware requirements section 508 may be used by the software deployment tool 108 when deploying the software system. For example, the software components may be configured by the software installer/configurer 212 as shown in the software component information section 506. The requirements processor 210 may determine if the available hardware resources are sufficient to meet the hardware requirements identified in the hardware requirements section 508. The data identified in the software component information section 506 and/or the hardware requirements section 508 may be transferred by the user from the graphical user interface 500 to the software deployment tool 108, may be an interface displaying data of the software deployment tool 108, etc.
[0041] While the graphical user interface 500 includes the user input section 504, the software component information section 506, and the hardware requirements section 508 on a single user interface, the sections may alternatively be provided on separate user interfaces. The graphical user interface 500 may be integrated with any other available interface. Additionally, any of the sections may be implemented using any type of user interface components and/or may be implemented by output to a file.
[0042] FIG. 6 illustrates an example table of information 602 that may provide hardware requirement information for software components. The example table of information 602 may be stored in the software component resource index 208 and may be accessed by the software component selector 206 and/or the requirements processor 210. The example table of information 602 includes a column identifying a process or software component 606, a column identifying the name of a monitoring application 608, a column of the name of a software application 610, an indication of what parameter a capacity level is based on 612, a column identifying a computing device on which the software application and/or process is operating 614, column(s) identifying hardware needed when the process or software component is deactivated 616, column(s) identifying hardware needed when the process or software component is activated 618, column(s) identifying a minimum hardware requirement for the process or software component 620, column(s) identifying hardware requirements when the process or software component is set to a small capacity level 622, and column(s) identifying hardware needed when the process or software component is set to a large capacity level 624. Additional columns or configurations may be used in other implementations. The example table of information 602 may be used as a lookup table when determining the hardware requirements corresponding to the software components to be deployed by the software deployment tool 108.
[0043] FIG. 7 illustrates an example table of information 702 that may be used to determine a capacity level of a software component. The example table of information 702 provides information that may be used by the software deployment tool 108 to determine the appropriate capacity level for software components based on the business need(s) identified by users. The example table of information 702 includes a column identifying a category of business need(s) 708, a column of metric(s) that may be input by a user 710, a column identifying the corresponding software application 712, a column identifying a capacity parameter for the metric corresponding to a deactivation of the software application 714, a column identifying a capacity parameter for the metric corresponding to a small capacity level for the software application 716, and a column identifying a capacity parameter for the metric corresponding to a large capacity level for the software application 716.
[0044] FIG. 8 illustrates an example graphical user interface 802 that may be used to configure and/or deploy the BSM deployment 102 of FIG. 1 . The example graphical user interface 802 includes a file input user interface element 804 to enable a user to input a hardware and software profile such as, for example, the hardware and software profile identified by the graphical user interface 500 may be stored in a file and input using the file input user interface element 804. The graphical user interface 802 additionally includes metric capacity level user interface elements 808 that enable a user to adjust the capacity level(s) for metric(s). The graphical user interface 802 also includes an indication of the software component(s) to be activated and the associated capacity level(s) 810. Further, the graphical user interface 802 includes an indication of the computing device(s) (machine(s)) on which the software system is to be deployed by the software deployment tool 108, which includes the associated hardware resources of the computing devices.
[0045] FIG. 9 is a schematic diagram of an example processor platform P100 that may be used and/or programmed to execute the interactions and/or the example machine readable instructions of FIGS. 3-4 to implement software deployment tool 108 of FIG. 1 and/or the business needs receiver 202, the software selection receiver 204, the software component selector 206, the requirements processor 210, the software installer/configurer 212, and/or the capacity monitor 214 of FIG. 2. One or more general-purpose processors, processor cores, microcontrollers, etc may be used to implement the processor platform P100.
[0046] The processor platform P100 of FIG. 9 includes at least one programmable processor P105. The processor P105 may implement, for example, the BSM deployment 102, the software deployment tool 108, the business needs receiver 202, the software selection receiver 204, the software component selector 206, the requirements processor 210, the software installer/configurer 212, and/or the capacity monitor 214. The processor P105 executes coded instructions P1 10 and/or P1 12 present in main memory (i.e., a computer readable storage medium) of the processor P105 (e.g., within a RAM P1 15 and/or a ROM P120) and/or stored in the tangible computer-readable storage medium P150. The processor P105 may be any type of processing unit, such as a processor core, a processor and/or a microcontroller. The processor P105 may execute, among other things, the example interactions and/or the example machine-accessible instructions of FIGS. 3-4 to deploy the BSM deployment 102, as described herein. Thus, the coded instructions P1 10, P1 12 may include the instructions of FIGS. 3-4.
[0047] The processor P105 is in communication with the main memory (including a ROM P120 and/or the RAM P1 15) via a bus P125. The RAM P1 15 may be implemented by dynamic random access memory (DRAM), synchronous dynamic random access memory (SDRAM), and/or any other type of RAM device, and ROM may be implemented by flash memory and/or any other desired type of memory device. The tangible computer-readable memory P150 may be any type of tangible computer-readable medium such as, for example, compact disk (CD), a CD-ROM, a floppy disk, a hard drive, a digital versatile disk (DVD), and/or a memory associated with the processor P105. Access to the memory P1 15, the memory P120, and/or the tangible computer-medium P150 may be controlled by a memory controller.
[0048] The processor platform P100 also includes an interface circuit P130. Any type of interface standard, such as an external memory interface, serial port, general-purpose input/output, etc, may implement the interface circuit P130. One or more input devices P135 and one or more output devices P140 are connected to the interface circuit P130.

中文:
[0001]业务服务管理(BSM)是用于从业务的角度来监视和测量信息技术服务的一套产品。BSM给予用户从与信息技术基础设施相关联的各式各样的数据收集器收集数据(性能度量和事件两者)的能力。这些数据收集器的范围从监视低水平硬件性能(诸如处理器使用)的收集器到可以对跨越多个机器和处理的业务交易(诸如订单执行)进行监视的较高水平收集器。BSM包含对从监视获得的数据进行分析和管理的各种方式。另外,BSM的实现可以包含许多应用,这些应用的范围从显示各种业务处理的实时状态的仪表板到允许用户就他们的业务应用或硬件性能创建服务水平协议的应用。
[0002]BSM的实现旨在满足不同客户群的需要。并非全部的客户都想要运行相同的数据收集器或者使用同一组应用来就他们的数据进行分析并提出报告。另外,容量水平也可以变化。例如,一个客户可能需要监视100个服务器的性能并且具有10个在BSM系统上的并发用户,而另一个客户将监视10,000个主机并且具有75个在该BSM系统上的并发用户。
[0003]图1图示了包括BSM部署的示例系统,该BSM部署对包括连接到网络的一个或更多计算设备的计算机基础设施进行管理。
[0007]图5图示了与图1的示例软件部署工具相关联的示例图形用户界面,其使用户能输入业务需要和软件选择信息并且能接收关于基于那些业务需要和软件选择信息输入的硬件需求的信息。
[0008]图6图示了可以提供针对软件部件的硬件需求信息的信息的示例表格。
[0009]图7图示了可以被用于确定软件部件的容量水平的信息的示例表格。
[0010]图8图示了可以被用于配置和/或部署图1的BSM部署的示例图形用户。
[0011]图9是示例处理器平台的示意图示,该处理器平台可以被使用和/或被编程来执行图3-4的示例交互、示例处理和/或示例机器可访问指令以实现在此描述的示例方法、装置和/或制品中的任何或者全部。
[0012]公开了部署软件应用的方法、装置和制品。在公开的示例中,部署管理工具从用户接收关于业务需要和期望的用于安装的软件的信息。该示例部署管理工具基于业务需要确定与软件应用相关联的软件部件。另外,该示例部署管理工具确定软件部件中的每一个的硬件需求并且添加该硬件需求来确定针对BSM的计划安装的硬件简档。基于该硬件简档和可用硬件资源,示例部署工具安装并配置BSM。该部署工具然后监视BSM部署以确定BSM部署的操作是否超过了所配置的容量水平并且确定BSM部署的实际容量水平的硬件需求是否超过了在其上安装有BSM的(一个或多个)计算机系统的可用硬件资源。当BSM部署的操作超过了所配置的容量水平和/或硬件需求超过了硬件资源时,该部署工具向用户提供警报。
[0013]图1图示了包括BSM部署102的示例系统100,该BSM部署102对包括连接到网络104的一个或更多计算设备的计算机基础设施106进行管理。根据图示的示例,该BSM部署102包括服务器部署工具108。
[0014]图示的示例的BSM部署102使该BSM部署102的用户(例如,系统管理员)能监视并管理计算机基础设施106的计算设备。例如,该BSM部署102可以实现对计算设备上执行的软件应用的性能进行监视、在计算设备上配置和/或安装软件应用、针对硬件或软件错误监视计算设备、监视计算机设备中的变化等。示例BSM部署102是安装在服务器计算机上的软件应用。可替换地,该BSM部署102可以通过安装在一个或更多计算机上的一个或更多软件应用来实现。
[0015]该示例BSM部署102包括服务器部署工具108。该服务器部署工具108获得关于该BSM部署102的操作的用户输入并且基于该用户输入,安装、配置和/或调谐该BSM部署102的安装。该服务器部署工具108可以是独立的系统(例如,软件应用)或者可以结合该BSM部署102的系统进行操作(例如,针对该BSM部署102的安装器)。因此,如在此更详细地描述的那样,服务器部署工具108的一些实现使用户能定制该BSM部署102的部署以符合他们的需要,而无需用户提供或确定硬件需求。例如,用户可以指定他们期望的BSM部署102的应用部件组和指定反映它们的使用的容量水平,并且服务器部署工具将确定系统的硬件简档并相应地配置BSM部署102。示例服务器部署工具108在操作期间另外监视BSM部署102以当它们的使用或配置超过了可用硬件资源和/或配置时通知用户。
[0016]尽管在此描述的示例提及该BSM部署102,但是在此描述的方法、装置和制品可用于其它类型的系统。例如,服务器部署工具108可以被用于安装、配置和/或调谐任何类型的软件/硬件系统。贯穿本专利的对BSM部署102的提及旨在为示例并且本公开的覆盖范围不限于使用和/或包括BSM产品的实现。
[0017]图示的示例的网络104通信地将计算机基础设施106的一个或更多计算设备和BSM部署102耦合。该网络104可以是任何类型的一个或更多网络,诸如,例如有线网络、无线网络、局域网、广域网、互联网等的任何组合。
[0018]图示的示例的计算机基础设施106包括一个或更多计算设备。该一个或更多计算设备可以是任何类型的计算设备,诸如,例如(一个或多个)个人计算机、(一个或多个)服务器、(一个或多个)台式计算机、(一个或多个)膝上型计算机、(一个或多个)路由器、(一个或多个)交换机、(一个或多个)集线器、(一个或多个)网关、(一个或多个)防火墙、(一个或多个)控制系统、(一个或多个)移动计算设备等。例如,计算机基础设施106可以与业务相关联并且可以包括此业务的计算设备中的任何或全部。该计算机基础设施106的计算设备可以定位在一个物理位置处或者可以遍及几个物理位置地分布。根据图示的示例,该BSM部署102监视、管理和/或配置计算机基础设施106的计算设备。
[0019]尽管已经在图1中图示了示例系统100,但是可以以任何方式将图1中图示出的BSM部署102、软件部署工具108和/或设备中的一个或更多进行组合、分开、重新布置、省略、除去和/或实现。此外,该示例系统100可以通过硬件、软件、固件和/或硬件、软件和/或固件的任何组合实现。示例硬件包括,但不限于,示例处理器平台P100和/或任何数量和/或(一个或多个)类型的(一个或多个)电路、(一个或多个)可编程处理器、(一个或多个)专用集成电路(ASIC)、(一个或多个)可编程逻辑器件(PLD)、(一个或多个)现场可编程逻辑器件(FPLD)和/或(一个或多个)现场可编程门阵列(FPGA)等。
[0020]图2是图1的服务器部署工具108的示例实现的框图。该示例服务器部署工具108包括业务需要接收器202、软件选择接收器204、软件部件选择器206、软件部件资源索引208、需求处理器210、软件安装器/配置器212、以及容量监视器214。
[0021]图示的示例的业务需要接收器202接收关于该BSM部署102的实现的业务需要的信息。例如,业务需要接收器202可以经由用户界面从用户、从输入文件等接收业务需要。图示的示例的业务需要接收器202不针对计算机硬件需求向用户进行询问。例如,图5图示了可以被提供给用户来接收业务需要信息的示例图形用户界面。由业务需要接收器202接收的业务需要可以包括任何类型的关于在其中BSM部署102将进行操作的环境的信息。例如,业务需要信息可以包括任何类型的容量信息,诸如,例如BSM部署102的用户的数量、要被BSM部署102监视的计算设备的数量、要被BSM部署102监视的应用的数量、要被BSM部署102监视的交易的数量、要被BSM部署102监视的计算设备的用户的数量、要被监视的主机的数量等。尽管业务需要接收器202已经被描述为接收与业务需要相关联的数据,但是业务需要接收器202可以接收任何类型的与BSM部署102的容量和使用相关联的信息,诸如,例如人的需要、几个业务所需要的容量等。业务需要接收器202将接收到的信息发送给软件部件选择器206。
[0022]图示的示例的软件选择接收器204接收关于被选择为包括在BSM部署102中的软件的信息。例如,软件选择接收器204可以经由用户界面从用户、从输入文件等接收对要包括在BSM部署102的安装中的软件应用的选择。例如,图5图示了可以被提供给用户来接收软件选择信息的示例图形用户界面。由软件选择接收器204接收到的软件选择可以是任何类型的关于要被包括的软件应用的信息。例如,软件选择信息可以是特定软件应用的选择,可以是关于由用户选择的BSM部署102的特征或能力的信息等,这些特征或能力被软件选择接收器204解释以识别提供所述特征或能力所需要的软件应用。该软件选择接收器204将接收到的信息发送到软件部件选择器206。
[0023]图示的示例的软件部件选择器206从业务需要接收器202接收业务需要信息并且从软件选择接收器204接收软件选择信息并且确定要安装的软件部件。示例软件部件选择器206访问软件部件资源索引208以基于业务需要信息和软件选择信息来确定要安装的部件。例如,软件部件选择器206可以确定对应于所选择的软件应用的一组部件,并且然后可以基于识别出的业务需要在这些部件中进行选择(例如,选择提供由业务需要指定的容量水平所需要的部件)。软件部件选择器206将识别出的部件发送到需求处理器210。
[0024]软件部件资源索引208可以是任何类型的结构化数据、平面文件、或其它提供关于可用软件部件的信息的数据储存器。例如,软件部件资源索引208可以通过可扩展标记语言(XML)文件、电子表格、一个或更多数据库表格等来实现。示例软件部件资源索引208存储可用软件部件(例如,可以选择性地安装的软件应用的部件部分)的列表。另外,示例软件部件资源索引208对利用每一个软件部件的硬件需求(例如,存储器需求、处理器需求、存储空间需求等)的标识进行存储。软件部件资源索引208可以将全部信息存储在一个数据储存器中或者可以通过多个数据储存库来实现。
[0025]需求处理器210接收识别出的软件部件并且利用软件部件资源索引208中的信息来确定用于安装和/或执行识别出的软件部件的硬件需求。例如,需求处理器210可以分析每一个软件部件来确定相关联的硬件需求并且然后可以将单独的硬件需求进行组合(例如,求和或相加)来确定针对识别出的软件部件组的总硬件简档。硬件需求可以是与软件部件相关联的任何硬件简档。例如,硬件需求可以是使软件部件能执行的阈值硬件能力,可以是使软件部件能被安装的阈值硬件能力、使软件能被执行和使用的阈值硬件能力、用于使用软件部件的推荐硬件能力等。需求处理器210将识别出的软件部件和硬件需求发送到软件安装器/配置器212。另外,需求处理器210可以向用户提供硬件需求以供审阅。此外,需求处理器210可以分析可用于与BSM部署102一起使用的硬件资源来确定是否有足够的硬件资源可用并且如果由于硬件资源的短缺导致不能对被选择的业务需要和软件选择进行配置的话警告用户。尽管在此描述了硬件需求的分析,但是需求处理器210可以分析任何其它与软件部件相关联的能力,诸如,例如操作系统需求,系统配置设置等。
[0026]示例软件安装器/配置器212接收识别出的软件部件和硬件需求并且基于该软件部件和硬件需求安装和/或配置BSM部署102。例如,软件安装器/配置器212可以安装和/或激活识别出的软件部件,可以基于识别出的软件部件和硬件需求将部件配置为运行和/或不运行,可以调谐部件的存储器使用等。由软件安装器/配置器212执行的特定处理可以基于特定BSM部署102或其它正安装的软件系统。
[0027]在软件部件被安装和/或被配置之后,示例容量监视器214连续地、周期地、非周期地和/或依据请求地将BSM部署102的操作与所配置的容量水平进行比较并且将BSM部署102的当前的硬件需求与可用硬件资源进行比较来确定硬件资源对于操作容量水平是否足够。当硬件资源不足够时,容量监视器214向用户(例如,系统管理员)显示警报和/或基于操作容量水平调整软件系统的配置以在由硬件资源给出的约束内运行。例如,如果基于10个用户的预期容量实现了系统并且容量监视器214确定100个用户正在访问该系统,则容量监视器214可能警告用户。另外,容量监视器可以确定100个用户的硬件需求,可以确定当前的可用硬件资源是不足够的,并且可以显示请求用户注意的警报。容量监视器214可以在BSM部署102的操作期间、在BSM部署102的空闲时间期间和/或在任何其它时间运行。
[0028]尽管图2包括以特定方式分离和耦合的块202-214,但是可以进行改变。例如,可以将块202-214重新布置。另外,两个或更多分开的块可以进行组合并且通过单个部件实现和/或单独块可以被分开并且通过几个部件实现。
[0029]图3-4描绘了表示示例处理的流程图,该示例处理可以使用例如计算机可读指令来实现,该计算机可读指令可以被用于部署软件应用(诸如BSM部署102)。图3-4的示例处理可以使用处理器、控制器和/或任何其它合适的处理设备来执行。例如,图3-4的示例处理可以使用在有形计算机可读介质(诸如闪速存储器、只读存储器(ROM)、和/或随机存取存储器(RAM))上存储的编码指令(例如,计算机可读指令)来实现。如在此所使用的那样,术语有形计算机可读介质清楚地被定义为包括任何类型的计算机可读储存器并且把传播信号排除在外。另外或可替换地,图3-4的示例处理可以使用在非暂时计算机可读介质上存储的编码指令(例如,计算机可读指令)来实现,该非暂时计算机可读介质诸如是闪速存储器、只读存储器(ROM)、随机存取存储器(RAM)、高速缓冲存储器、或任何其它在其中存储信息达任何持续时间(例如,达扩展的时间周期、永久地、简短的阶段、用于临时缓冲、和/或用于信息的缓存)的存储介质。如在此所使用的那样,术语非暂时计算机可读介质清楚地被定义为包括任何类型的计算机可读介质并且把传播信号排除在外。
[0030]可替换地,图3-4的示例处理中的一些或全部可以使用(一个或多个)专用集成电路(ASIC)、(一个或多个)可编程逻辑器件(PLD)、(一个或多个)现场可编程逻辑器件(FPLD)、分立逻辑、硬件、固件等的任何组合来实现。此外,图3-4的示例处理中的一些或全部可以手动地实现或实现为上述技术中的任何技术的任何组合(例如,固件、软件、分立逻辑和/或硬件的任何组合)。此外,虽然参考图3-4的流程图描述了图3-4的示例处理,但是也可以采用实现图3-4的处理的其它方法。例如,可以改变块执行顺序和/或可以改变、除去、细分或组合所描述的块中的一些。另外,图3-4的示例处理中的任何或全部可以通过例如单独处理线程、处理器、设备、分立逻辑、电路等顺序地和/或并行地执行。
[0031]图3是表示实现软件部署工具108的示例机器可读指令的流程图。图3的图示的示例当业务需要接收器202询问软件部署工具200的用户(例如,系统管理员)业务需要信息时开始(块302)。作为响应,业务需要接收器202从用户接收BSM部署102的业务需要信息(块304)。在图示的示例中,软件选择接收器204然后询问用户将要为BSM部署102安装的一个或更多软件应用(块306)。作为响应,软件选择接收器204接收将要安装的(一个或多个)软件应用的指示(块308)。
[0032]接着,软件部件选择器206基于业务需要信息和要安装的(一个或多个)软件应用的指示确定软件应用的一组部件(块310)。使用确定的部件组,需求处理器210确定业务需要信息和软件应用的识别出的部件中的每一个的硬件需求(块312)。然后,需求处理器210确定软件部件组的总硬件需求(块314)。例如,需求处理器210可以将软件部件中的每一个的需求进行相加来确定总硬件需求。接着,需求处理器210确定总的可用硬件资源(块316)。例如,需求处理器210可以分析可用于BSM部署102的安装的一个或更多计算机系统中的每一个以确定总的可用硬件资源。需求处理器确定总硬件需求是否超过了总的可用硬件资源(块318)。当总硬件需求超过了总的可用硬件资源时,需求处理器210提供指示可用硬件资源对于被选择的业务需要和软件选择而言是不足够的容量警报。图3的处理然后停止和/或控制返回至块302。用户可以重新开始并提供(一个或多个)业务需要和/或(一个或多个)软件选择的不同的信息或者可以获得另外的硬件以满足需求。
[0033]如果总硬件需求未超过总的可用硬件资源(块318),软件安装器/配置器212对识别出的软件部件进行安装(块322)。例如,软件安装器/配置器212可以向用于与BSM部署102一起使用的该一个或更多计算机系统复制部件,可以指示BSM部署102的安装器向该一个或更多计算机系统复制部件,可以基于识别出的软件部件使软件部件去激活或激活等。软件安装器/配置器212然后调谐和/或配置软件部件(块324)。例如,软件安装器/配置器212可以配置用于软件部件中的一个或更多的存储器分配。图3的处理然后停止和/或控制返回块302。
[0034]图4是表示实现图2的容量监视器214的示例机器可读指令的流程图。示例处理当容量监视器214确定应用容量水平时开始(块402)。例如,容量监视器214可以分析BSM部署102的操作来确定操作容量(例如,BSM部署102的用户的数量、由BSM部署102监视的交易的数量等)。容量监视器然后确定操作容量水平的硬件需求(块404)。例如,容量监视器214可以分析安装的软件部件并使用基于容量的相关联的需求的列表(例如,软件部件资源索引208)来确定容量水平的硬件需求。接着,容量监视器214确定BSM部署102在其上运行的一个或更多计算机的总的可用硬件资源(块406)。容量监视器确定总硬件需求是否超过了总的可用硬件资源(块408)。当总硬件需求未超过总的可用硬件资源时,控制返回至块402来执行另一轮监视。当总硬件需求超过了总的可用硬件资源时,容量监视器214提供容量警报和/或用于调谐容量的指令(块410)。例如,容量监视器214可以指示用户需要增加硬件资源、减少BSM部署102的容量水平、和/或移除软件部件中的一些。控制然后返回至块402来执行另一轮监视。
[0035]尽管由图4图示的示例处理是循环,但是也可以使用任何类型的实现。例如,图4的处理可以在被例如检测出容量水平超过了系统可以维持的负载的熔断器触发之后执行一次。在另一个实现中,图4的处理可以基于时间表而被安排为在特定时间执行。
[0036]图5图示了与图1的示例软件部署工具108相关联的示例图形用户界面500,该示例图形用户界面500使用户能输入业务需要和软件选择信息并且能接收关于基于那些业务需要和软件选择信息输入的硬件需求的信息。示例图形用户界面500包括用户输入部分504、软件部件信息部分506、以及硬件需求部分508。
[0037]图示的示例的用户输入部分504提供在其中用户(例如,系统管理员)可以输入业务需要信息和软件选择信息的几个字段。例如,用户输入部分504使用户能输入用于操作管理器(OMI)510的主机的数量、要由最终用户管理系统(EUM)512监视的应用的数量、要由业务交易管理系统(BTM)监视的队列的数量、用于系统可用性管理系统(SAM)516的主机的数量、应当启用还是禁用特定软件部件等。尽管示例用户输入部分504提供用于用户输入的表格,但是也可以使用任何类型的用户输入元素,诸如,例如几页的字段、下拉框、复选框、单选按钮、文本字段等。另外,可以包括任何类型的业务需要信息或与要由软件部署工具108部署的软件的容量相关联的其它信息。在图示的示例中,在用户输入用户输入时处理这些用户输入。然而,任何其它类型的触发可以引发对数据的处理,这些其它类型的触发诸如例如提交按钮、已经完成全部字段的确定等。软件部署工具108使用输入到用户输入部分504中的数据来确定容量水平,并且由此确定用于要由软件部署工具108部署的软件的软件安装和配置。
[0038]软件部件信息部分506基于来自用户的业务需要信息指示关于要安装的软件部件和它们的容量水平的信息。例如,软件部件信息部分506可以包括针对每一个软件部件的字段,该每一个软件部件是要由软件部署工具108部署的软件的一部分。在图示的示例中,针对每一个软件部件的字段基于从用户提供的业务需要信息和软件选择信息指示是否将安装该软件部件。另外,示例软件部件信息部分506指示软件部件的容量水平。例如,软件部件信息部分506可以指示小、中等、大、超大等的容量水平。可替换地,容量水平可以是要由软件部署工具108部署的软件的容量的任何其它指示(例如,监视计算设备和/或用户的容量)。
[0039]硬件需求部分508显示对基于在用户输入部分504中识别出的业务需要在软件部件信息部分中识别出的软件部件计算的硬件需求的指示。示例硬件需求部分508包括以千兆字节(GB)为单位的存储器需求518和以需要的CPU核的数量计的处理器需求520。示例硬件需求部分508提供针对几个不同系统部署类型522(诸如单个服务器实现、两个服务器实现等)的硬件需求。硬件需求部分508为用户提供理解部署特定软件系统所需要的硬件的信息。
[0040]当部署软件系统时,可以由软件部署工具108使用软件部件信息部分506和/或硬件需求部分508。例如,如在软件部件信息部分506中所示出的那样可以通过软件安装器/配置器212配置软件部件。需求处理器210可以确定可用硬件资源是否足够满足在硬件需求部分508中识别出的硬件需求。在软件部件信息部分506和/或硬件需求部分508中识别出的数据可以由用户从图形用户界面500传输至软件部署工具108,可以是显示软件部署工具108的数据的界面等。
[0041]尽管图形用户界面500包括在单个用户界面上的用户输入部分504、软件部件信息部分506、以及硬件需求部分508,但是这些部分可以可替换地被提供在分开的用户界面上。可以将图形用户界面500与任何其它可用界面集成。另外,可以使用任何类型的用户界面部件来实现这些部分中的任何部分,和/或可以通过输出到文件来实现这些部分中的任何部分。
[0042]图6图示了可以提供软件部件的硬件需求信息的示例信息表格602。示例信息表格602可以被存储在软件部件资源索引208中并且可以被软件部件选择器206和/或需求处理器210访问。示例信息表格602包括识别处理或软件部件的列606、识别监视应用的名称的列608、软件应用的名称的列610、容量水平基于什么参数的指示612、识别在其上软件应用和/或处理进行操作的计算设备的列614、识别当使处理或软件部件去激活时所需要的硬件的(一个或多个)列616、识别当使处理或软件部件激活时所需要的硬件的(一个或多个)列618、识别处理或软件部件的最小硬件需求的(一个或多个)列620、识别当处理或软件部件被设置成小容量水平时的硬件需求的(一个或多个)列622、以及识别当处理或软件部件被设置成大容量水平时所需要的硬件的(一个或多个)列624。可以在其它实现中使用另外的列或配置。当确定对应于要由软件部署工具108部署的软件部件的硬件需求时,可以将示例信息表格602用作查找表。
[0043]图7图示了可以被用于确定软件部件的容量水平的示例信息表格702。示例信息表格702提供可以由软件部署工具108使用以基于由用户识别出的(一个或多个)业务需要来确定软件部件的适当的容量水平的信息。示例信息表格702包括识别(一个或多个)业务需要的类别的列708、可以由用户输入的(一个或多个)度量的列710、识别相应的软件应用的列712、识别对应于软件应用的去激活的度量的容量参数的列714、识别对应于软件应用的小容量水平的度量的容量参数的列716、以及识别对应于软件应用的大容量水平的度量的容量参数的列716。
[0044]图8图示了可以被用于配置和/或部署图1的BSM部署102的示例图形用户界面802。示例图形用户界面802包括使用户能输入硬件和软件简档的文件输入用户界面元件804,诸如例如,由图形用户界面500识别出的硬件和软件简档可以存储在文件中并使用该文件输入用户界面元件804进行输入。图形用户界面802另外包括使用户能调整(一个或多个)度量的(一个或多个)容量水平的度量容量水平用户界面元件808。图形用户界面802还包括要激活的(一个或多个)软件部件的指示和相关联的(一个或多个)容量水平810。此外,图形用户界面802包括在其上将由软件部署工具108部署软件系统的(一个或多个)计算设备(机器)的指示,其包括计算设备的相关联的硬件资源。
[0045]图9是示例处理器平台P100的示意图,该示例处理器平台P100可以被使用和/或被编程来执行图3-4的交互和/或示例机器可读指令以实现图1的软件部署工具108和/或图2的业务需要接收器202、软件选择接收器204、软件部件选择器206、需求处理器210、软件安装器/配置器212、和/或容量监视器214。一个或更多通用处理器、处理器核、微控制器等可以被用于实现处理器平台P100。
[0046]图9的处理器平台P100包括至少一个可编程处理器P105。处理器P105可以实现例如BSM部署102、软件部署工具108、业务需要接收器202、软件选择接收器204、软件部件选择器206、需求处理器210、软件安装器/配置器212、和/或容量监视器214。处理器P105执行在处理器P105的主存储器(即,计算机可读存储介质)中(例如,在RAM P115和/或ROM P120内)存在和/或在有形计算机可读存储介质P150中存储的编码指令P110和/或P112。处理器P105可以是任何类型的处理单元,诸如处理器核、处理器和/或微处理器。如在此所描述的那样,处理器P105可以尤其执行图3-4的示例交互和/或示例机器可访问指令来部署BSM部署102。因此,编码指令P110、P112可以包括图3-4的指令。
[0047]处理器P105经由总线P125与主存储器(包括ROM P120和/或RAM P115)进行通信。RAM P115可以通过动态随机存取存储器(DRAM)、同步动态随机存取存储器(SDRAM)和/或任何其它类型的RAM器件来实现,并且ROM可以通过闪速存储器和/或任何其它期望类型的存储器件来实现。有形计算机可读存储器P150可以是任何类型的有形计算机可读介质,诸如,例如紧致盘(CD)、CD-ROM、软盘、硬盘驱动器、数字通用盘(DVD)和/或与处理器P115相关联的存储器。可以由存储器控制器控制对存储器P115、存储器P120和/或有形计算机介质P150的访问。
[0048]处理器平台P100还包括接口电路P130。任何类型的接口标准(诸如外部存储器接口、串行端口、通用输入/输出等)可以实现接口电路P130。一个或更多输入设备P135和一个或更多输出设备P140连接到接口电路P130。