Abstract:
A method for receiving input into a configuration device, configuring a first system according to a first input provided by a first user, configuring a second system according to a second input provided by a second user, and dynamically updating a first set of components in the first system and a second set of components in the second system using the configuration device, such that the configuration of the first system is maintained according to the first user input and the configuration of the second system is maintained according to the second user input is disclosed. In one embodiment, the dynamic updating of the systems occurs when a change needs to be made to the components within the systems. In one embodiment, the configuration device allows for interactive refinement of the configuration of the multiple systems by the multiple users. In alternative embodiments,

Description:
[0001]    The present application claims priority to the provisional filed application entitled  Multiuser, Multisoftware Configuration Tool for Realtime Configuration of Multiple Accounts and Multiple User Systems,  filed on Jun. 11, 2001, Ser. No. 60/297,640, which is also incorporated herein by reference. 
     
    
     
       FIELD OF THE INVENTION  
         [0002]    The present invention relates to the field of systems configuration.  
         BACKGROUND OF THE INVENTION  
         [0003]    When complex information technology (IT) systems are employed, they often require correspondingly complicated configuration tools. Typically, complex IT systems consist of a plurality of computers with software instances (e.g., copies of the same program/application being run) running on several of the computers. When one of the software instances are changed, matching changes in other software instances throughout the system are also required. Thus, a new breed of tools has evolved that allows configuration of multiple software instances at once. The concurrent software instance configuration allows necessary changes to be made throughout the system of multiple computers, instead of each instance being configured individually and the changes being made one at a time.  
           [0004]    [0004]FIG. 1 illustrates an overview of the type of complex IT system known in the prior art. The system  100  consists of multiple software instances  101  and  102   a - n.  A generic input component  105  brings input into the system from the outside, and a generic output component  106  returns results to the outside. A database  103  is incorporated into the system and is connected to the software instances  101  and  102   a - n  through internal interconnections  109   a - n.    
           [0005]    When a configuration change is required within the system, many of the components, such as the software instances  101  and  102   a - n,  the database  103 , the input component  105 , the output component  106 , and the internal interconnections  109   a - n  may be affected. Therefore, a configuration tool  110  may be used that allows changes to be made with a single input  111 , instead of having to go into each component  101 ,  102   a - n ,  103 ,  105 ,  106  and  109   a - n  and manually reconfigure them all. The configuration tool  110  allows a single input  111  to effectuate changes in multiple components  101 ,  102   a - n,    103 ,  105 ,  106  and  109   a - n  through connections  112 ,  113   a - n  and  114  that connect to the software instances  101  and  102   a - n  and the database  103 . Use of the configuration tool  110  is necessary because the different software instances  101  and  102   a - n  may have been written with different tools, different software languages, or different operating systems. There may also be other structural differences between the software instances.  
           [0006]    A major problem with the system  100  shown in FIG. 1 is that multiple users may each require different configurations, according to the user&#39;s preferences. Multiple reconfiguration of a system can become an enormous, ongoing task. Further, if multiple systems are used, such that each user may set his own parameters and his own configuration methods, it may be very difficult to manage multiple reconfigurations of multiple systems at the same time. Each system would therefore have to be reconfigured one at a time, requiring a great deal of effort and time to be spent implementing the multiple reconfiguration.  
           [0007]    What is needed is a system and method that allow configuration of multiple systems, where some of the systems may be shared by multiple users, while still allowing each user to have his own system configuration that may be dynamically updated as needed.  
         SUMMARY OF THE INVENTION  
         [0008]    In one embodiment, a method for receiving input into a configuration device, configuring a first system according to a first input provided by a first user, configuring a second system according to a second input provided by a second user, and dynamically updating a first set of components in the first system and a second set of components in the second system using the configuration device, such that the configuration of the first system is maintained according to the first user input and the configuration of the second system is maintained according to the second user input is disclosed. The dynamic updating of the systems occurs when a change needs to be made to the components within the systems, according to one embodiment. Further, the configuration device allows for interactive refinement of the configuration of the multiple systems by the multiple users, according to one embodiment.  
           [0009]    In one embodiment, the configuration device is provided by an application service provider site. In another embodiment, the configuration device resides within each system.  
       
    
    
     BRIEF DESCRIPTION OF THE INVENTION  
       [0010]    The present invention will be described by way of exemplary embodiments, but not limitations, illustrated in the accompanying drawings in which like references denote similar elements, and in which:  
         [0011]    [0011]FIG. 1 is an illustration of the Prior Art in which a configuration device is employed by a user to reconfigure components of a system.  
         [0012]    [0012]FIG. 2 is an illustration of a plurality of systems being connected to a configuration device that allows components of the systems to be reconfigured, according to one embodiment.  
         [0013]    [0013]FIG. 3 is an illustration of a network, over which a plurality of systems are connected to a configuration device that allows components of the systems to be reconfigured, according to one embodiment.  
         [0014]    [0014]FIG. 4 is a block diagram illustrating an overview of the internal workings of a configuration tool, according to one embodiment.  
         [0015]    [0015]FIG. 5 is a flow diagram illustrating an example of a business process, according to one embodiment.  
     
    
     DETAILED DESCRIPTION OF THE INVENTION  
       [0016]    In the following description, various aspects of the present invention will be described. However, it will be apparent to those skilled in the art that the present invention may be practiced with only some or all aspects of the present invention. For purposes of explanation, specific configurations are set forth in order to provide a thorough understanding of the present invention. However, it will also be apparent to one skilled in the art that the present invention may be practiced without the specific details. In other instances, well-known features are omitted or simplified in order not to obscure the present invention.  
         [0017]    Referring now to FIG. 2, an overview of a plurality of systems is illustrated—additional systems  200   a - n  being added to the system  100  of FIG. 1. The multiple systems  100  and  200   a - n  each are comprised of a plurality of computers. The systems  100  and  200   a - n  could be, for example, bank data center systems. The multiple systems  100  and  200   a - n  could each have their own configuration parameters, according to the preferences of a user (e.g., an IT administrator). Within each of the systems  100  and  200   a - n  are a plurality of components that may vary according to each system.  
         [0018]    The plurality of components within each of the systems  100  and  200   a - n  could be multiple software instances  101 ,  102   a - n,    201   a - n  and  202   a   2 - n   2 . The systems  100  and  200   a - n  may contain internal interconnections  109   a - n  and  209   a   2 - n   2 , between the multiple software instances  101 ,  102   a - n,    201   a - n  and  202   a   2 - n   2  within the systems  100  and  200   a - n.  The systems  100  and  200   a - n  could contain databases  103  and  203   a - n.  The systems  100  and  200   a - n  contain input components  105  and  205   a - n  and output components  106  and  206   a - n.    
         [0019]    The systems  100  and  200   a - n  may share software components  210   a - n.  The shared software components  210   a - n  may be run inside the systems  100  and  200   a - n , according to one embodiment. In another embodiment, the shared software components  210   a - n  may be provided by an outside software provider, such as an application service provider (ASP), on an application service provider (ASP) site. The application service provider may be, for example, a credit card acceptance center.  
         [0020]    In many situations, multiple systems need to be shared between users so as to provide access to various applications, data and specific software instances. A problem that arises with the sharing of systems is that each time one component within one of the systems is changed, other components throughout the systems may need to be changed as well. Further, specific users of the system (e.g., IT administrators) may want the configuration of their own system to be maintained in a specific way. When changes need to be made, it may take a great deal of time and effort to change all the components according to the reconfiguration (which may be, for example, the addition of a software component), while still maintaining the configuration of the system in the manner in which the system user wants.  
         [0021]    A configuration tool  270  is then used to configure parameters within the systems  100  and  200   a - n.  In one embodiment, the configuration tool  270  includes a graphical user interface that may be used by multiple users and can dynamically reconfigure multiple components within the systems  100  and  200   a - n.  An example of such a configuration tool  270  is the Exigen™ Configuration Tool™. The configuration tool  270  is connected to the systems  100  and  200   a - n  through configuration lines  112 ,  113   a - n,    114 ,  212   a - n,    213   a   2 - n   2  and  214   a - n.  Configuration lines  112 ,  113   a - n,    212   a - n  and  213   a   2 - n   2  connect to software instances  101 ,  102   a - n,    201   a - n  and  202   a   2 - n   2 . Configuration lines  214   a - n  connect to the databases  103  and  203   a - n.    
         [0022]    In one embodiment, the configuration tool  270  also connects to the shared software components  210   a - n  through connections  221   a - n.  Users of each of the systems  100  and  200   a - n  have the ability through their input lines  223  and  223   a - n  to configure the operation of their own systems. For example, when names are transmitted for credit card transactions, system  100  may require a display such that the last name is first, whereas system  200   a  may require the first name first. The users for the systems  100  or  200   a - n  can set the configuration of their system according to their own preferences. Further, the users can configure their systems  100  and  200   a - n  in conjunction with the software components  210   a - n  that are controlled through the connections  221   a - n.  Also, the owner of the system  100  or  200   a - n  may configure the system according to his requirements through the owner input line  211 . In another embodiment, the shared software components  210   a - n  may also have interconnections among themselves (not shown).  
         [0023]    Thus, multiple dynamic configurations may be transmitted from the configuration tool  270  to the IT systems  100  and  200   a - n,  and each user may see the configuration of his system in a specific way. The software instances will have been configured according to his (or the owner&#39;s) specification. Further, the software components  210   a - n  that are shared among the systems  100  and  200   a - n,  will appear to each user to be configured according to his requirements, as provided through his input  223   a - n.  The software components  210   a - n  may be additionally configured by the owner of the system  100  or  200   a - n  or by the application service provider (ASP) through the input line  211 . Therefore, the services of software components  210   a - n  may be provided to all the IT systems  100  and  200   a - n,  each receiving virtual personalized service according to the requirements of the owner or the users. Based on the user group to which the specific user belongs, a specific presentation is shown (which depends on the input  223   a - n  or  211  provided into the configuration tool  270 ). The introduction of new software components  210   a - n  that are shared by the systems  100  and  200   a - n  is therefore much easier as the necessary reconfiguration of all the software instances, databases and configuration lines within the systems can be done through the one configuration device—the configuration tool  270 , while still maintaining the specific presentation requested by each user.  
         [0024]    [0024]FIG. 3 is an illustration of the multiple systems  100  and  200   a - n  being connected to a configuration device over a network that allows components within the systems to be reconfigured. The systems  100  and  200   a - n  are composed of a plurality of computers that may be configured by users (generally a small group of users or a single user, such as an IT administrator or IT administration group) or the owner of the system  100  or  200   a - n.  The configuration tool  270  could be accessed over the network  300  by the users of the systems  100  or  200   a - n.  The shared software components  210   a - n  could be accessed by the systems  100  and  200   a - n  over the network  300  from either an application service provider (ASP) site or from one of the systems  100  or  200   a - n.    
         [0025]    The configuration tool  270  may include a database (not shown) that allows for a consistency check across the multiple systems  100  and  200   a - n  so that the consistency of the configuration of each system  100  or  200   a - n  is verified. In order to ensure consistency of the configuration of each system  100  or  200   a - n,  verification is needed when multiple software instances are connected into the systems  100  or  200   a - n,  such that the instances may be connected while still maintaining the correct configuration of each system  100  or  200   a - n  according to the requirements and preferences of the system users. The consistency check may apply to software revisions, metadata model compatibility and other similar items that may need consistency checks when they are combined together. The database would contain information on all the users and all the applications and ensure that only the appropriate applications are combined (so that the consistency of the configuration of the systems  100  and  200   a - n  is maintained). In one embodiment, the database would be local to the configuration tool  270 . The database may also, according to one embodiment, be used by the configuration tool  270  for other tasks, including providing security clearance.  
         [0026]    A security clearance may be provided for access to specific objects that may be viewed through the interface included in the configuration tool  270 . The configuration tool  270  is used to determine the rights that each user has for each object seen in the interface. The configuration tool  270  could, in one embodiment, access a database that identifies specific users and user rights. For example, each user belongs to a specific user group, and each user group has specific rights for certain object types. The configuration tool  270  displays the objects in accordance with the rights of the user (verified through, for example, the database). The access level of specific user groups and the objects assigned to specific access levels may be cross-related, such that every user&#39;s specific rights do not have to be entered in detail but instead correspond to the object access level for a group.  
         [0027]    Another aspect of the configuration tool is that it allows for the interactive refinement of a business process in order to be able to configure the specific system more accurately. FIG. 4 shows a diagram of the internal workings of the configuration tool  270 . Data  310 , business logic (processes)  301  and an organizational chart  304  are modeled within the configuration tool  270 . A user interface (Presentation)  303 , program logic  302 , and an interface section  305  (to which the program logic  302  connects) are configured by the configuration tool  270 . The program logic  302  contains a part of a work-flow engine. Another part of the work-flow engine may be contained in the presentation layer  303  because many presentations may require work-flow steps to present documents in the correct manner and sequence. The interface section  305  is connected to the other IT systems  100  and  200   a - n.  The description of the configuration of the presentation  303 , program logic  302 , and interface section  305  is linked to the business logic  301  modeled in the configuration tool  270 . The business logic  301  is in fact built up as the sum of configuration information for the program logic  302  and the presentation logic  303 . There may be many different business logic  301  instances, and the business logic  301  may be real-time or non-real-time. Further, the different instances of business logic  301  may include one another as objects, in a multi-layered architecture.  
         [0028]    The configuration tool  270  allows users to be able to tune settings and parameters in an easy-to-follow manner in order to refine their specific user systems. For example, a user may want to see how output is presented to a banking customer. The data  310  would be processed by a business process  301  and then be presented at the presentation  303 . The user, utilizing the configuration tool  270 , would be able to look into each presentation and program logic element involved in the creation of that specific presentation  303 . The user may then tune the settings and parameters to suit his specific preferences (refinement).  
         [0029]    The refinement of specific parameters, in one embodiment, is shown in the magnification glass  300  in FIG. 4. The configuration tool  270  links different layers of refinements transparently for users. The user is therefore able to look at only one object inside a process  301 , instead of having to look at all the elements involved in the refinements. FIG. 5 is a flow diagram illustrating an example  301   a  of an actual business process. By double-clicking on a shaded box  500 , the refinement for that box  500  (object) is shown. For example, if one of the boxes represents a scanning step, then the refinement would be the selection and/or configuration of the scanning device.  
         [0030]    The central storage and transparent linkage of information allows users from different user groups (e.g., HTML designers and business analysts) to easily obtain context information from the configuration tool  270  for their tasks. Descriptions of the configuration for individual components contained within systems  100  and  200   a - n  usually sit distributed on tools and locations belonging to the individual components. Examples of tools are HTML page designers, work-flow builders and business modeling tools. In traditional IT systems, each user or user group responsible for one component knows information only available in a specific tool, but has no easy access to context information. The configuration tool  270  then allows information to be centrally available, such that users from different user groups may access the information.  
         [0031]    For the purposes of this disclosure, the actual system hardware and the configuration of the hardware are considered irrelevant on an architectural level. On an application or setup level, however, they may be relevant, although no specifics are shown. Even in cases where some parameters may be hardware or firmware parameters, rather than purely software parameters, their configuration in general is effectuated in the same way: by writing some script, writing some parameters into some registers or memory locations or making other similar changes effectuated by software means. In a few cases, changes may also require the rewriting of drivers or recompiling of kernels, depending on the actual operating system used. Nevertheless, generically, all such configurations can be done in software.  
         [0032]    The processes and embodiments as described above can be stored on machine-readable medium as instructions. The machine-readable medium includes any mechanism that provides (i.e., stores and/or transmits) information in a form readable by a machine (e.g., a computer). For example, a machine-readable medium includes read only memory (ROM); random access memory (RAM); magnetic disk storage media; optical storage media; flash memory devices; electrical, optical, acoustical or other form of propagated signals (e.g., carrier waves, infrared signals, digital signals, etc.). The device or machine-readable medium may include a solid state memory device and/or a rotating magnetic or optical disk. The device or machine-readable medium may be distributed when partitions of instructions have been separated into different machines, such as across an interconnection of computers.  
         [0033]    While certain exemplary embodiments have been described and shown in the accompanying drawings, it is to be understood that such embodiments are merely illustrative of and not restrictive on the broad invention, and that this invention not be limited to the specific constructions and arrangements shown and described, since various other modifications may occur to those ordinarily skilled in the art.