An organization's process of designing a new software application to be deployed on its computer system usually begins with a requirements document. This document is a high level “blueprint” which spells out certain features and functionality (e.g., processes and steps) to be implemented by an application for the organization. In many cases, rather than creating its own code from scratch, an organization may find it more cost-effective to purchase or license complex software that provides more functionality than the organization needs, but which can be configured to meet the organization's particular requirements.
Unfortunately, due to the complexity of such software it is usually necessary to hire a consultant or team of consultants skilled in the programming of the software to perform such a configuration. And once the software has been configured to the organization's particular requirements, it is extraordinarily difficult to reconfigure the software should the organization revise its requirements from those originally listed in the requirements document. This difficulty stems from the fact that current configuration tools provide access only to low-level settings and parameters of the software that are organized and structured independent of an organization's particular requirements as specified in the corresponding requirements document. Thus, the task of determining how to correctly configure those low-level settings and parameters in accordance with an organization's particular requirements falls to the skill and experience of the hired personnel.
Accordingly, there is a need in the art for a system and method that reduces the current difficulties associated with application configuration.
The present invention significantly reduces the current difficulties associated with application configuration by providing a configuration environment that directly links pre-defined application requirements to the generation of application configuration components which implement those requirements. In this manner, an organization can supply its application requirements to the configuration environment through a user-friendly graphical user interface, and the configuration environment can automatically generate and deploy the appropriate application configuration components.
Further, if, after deployment, an organization later revises its requirements through the graphical user interface, the configuration environment can automatically redeploy the application with the appropriate application configuration components. Not only is this aspect useful to organizations that revise their requirements after deployment, but it is also useful to those organizations who have not yet established specific requirements, but would like to explore and visualize what an application may look like based upon different available features and functionality.
Via the user interface (110), the user is able to assess application requirements (112) from which the application configuration environment (100) can generate a configuration proposal (116) for presentation to the user (step 210). The user may then accept the proposal or revise it in accordance with the user's requirements. Based on rules and/or mappings associated with the pre-defined application requirements, the application configuration environment (100) may generate application configuration components (e.g., 122 and 126) to be utilized for implementing the application in accordance with the assessed requirements (step 220). The application may then be deployed by copying the application configuration components from the application configuration repository (120) to the application execution repository (150).
A pre-defined application requirement may include any stored application requirement (e.g., a listing of one or more business packages, business topics or business options) that the application configuration environment (100) makes available to the user for selecting or choosing via the user interface (110). An application configuration component may take any electronic form (e.g., content, metadata, scripts, executable code, schemas, etc.) that can be utilized by an application execution environment (140) to implement an application based on the user-provided requirements. The rules and/or mappings associated with the pre-defined application requirements allows the application configuration environment (100) to directly generate the appropriate application configuration component(s) based on a user's requirements.
Additionally, by storing the user's requirements (e.g., in a customer profile), the application configuration environment (100) is able to retrieve them later if a user wishes to revise the user's deployed application based on different requirements. As shown in
In providing the user interface (110) to assist the user in assessing the requirements for an application, the application configuration environment (100) may present a three level scoping methodology to the user as shown in
During this meeting, the business software provider representative offers the company representative to assess the company's high-level requirements using the configuration user interface (110) on her laptop in less than 45 minutes, for example (
Furthermore, the business software provider can use this information for basically any follow-up activity—without wasting time asking things the company representative has answered before. A key aspect to the company representative is the offer that after those 45 minutes, the company may receive free access to a company-specific demonstration system right after the information day (in 4 hours, for example) —and at the same time a great portion of a potential implementation could already be considered as done. Thus, it would not be a classic demo system to the company, but a preview of a live system.
During a subsequent 2-day workshop (e.g., two week later), the business software provider representative, together with the company representative and possibly other company representatives, define the detailed scope for the potential application (
The business software provider representative and the other workshop participants are introduced to the pre-defined application requirements (e.g., a “business adaptation catalog”)—a complete and transparent representation of the entire set of the business software provider's application capabilities. Basically any configuration of the business software provider's application can be triggered by making selections in this catalog—without the need to dig into the system details.
Based on the already defined high-level application scope, the system automatically determines all relevant application capabilities and highlights them accordingly. Now during the workshop, they go through the pre-selected features and verify them. Dependencies between different features are automatically controlled by the application configuration environment (100) during this process, always ensuring consistent business processes within the application.
Once they are finished reviewing the pre-selected features and adding optional functionality to their application scope, the system automatically compiles a detailed list of business options for the selected scope (
The input device (2820) may include a keyboard, mouse, pen-operated touch screen or monitor, voice-recognition device, or any other device that provides input. Output device 2830 may include a monitor, printer, disk drive, speakers, or any other device that provides output.
The storage (2840) may include volatile and nonvolatile data storage, including one or more electrical, magnetic or optical memories such as a RAM, cache, hard drive, CD-ROM drive, tape drive or removable storage disk. The communication device (2860) may include a modem, network interface card, or any other device capable of transmitting and receiving signals over a network. The components of the computing device may be connected in any manner, such as via electrical bus or wirelessly.
The software (2850), which may be stored in the storage (2840) and executed by the processor (2810), may include, for example, the application programming that embodies the functionality of the present invention (e.g., as embodied in the application configuration environment (100)). The software (2850) may include a combination of client applications and enterprise servers such as an application server and a database server.
The computing device may communicate within or over any network, which may include any type of interconnected communication system, which may implement any communications protocol, and which may be secured by any security protocol. Any corresponding network links may include telephone lines, DSL, cable networks, T1 or T3 lines, wireless network connections, or any other arrangement that implements the transmission and reception of network signals.
The computing device may implement any operating system, such as Windows or UNIX. The software (2850) may be written in any programming language, such as ABAP, C, C++, Java or Visual Basic. In various embodiments, application software embodying the functionality of the present invention may be deployed on a standalone machine, in a client/server arrangement or through a Web browser as a Web-based application or Web service, for example.
Several embodiments of the invention are specifically illustrated and/or described herein. However, it will be appreciated that modifications and variations of the invention are covered by the above teachings and within the purview of the appended claims without departing from the spirit and intended scope of the invention.
For example, software modules that implement the present invention such as the application configuration environment (100) may comprise several discrete modules that together still provide the same functionality, data specified in the referenced data stores (such as the application configuration repository (120) and the application execution repository (150), for example) may be spread over several databases and/or systems, and the process flow diagrams of