Patent Document

CLAIM OF PRIORITY  
       [0001]     The present patent application claims the priority benefit of the filing date of European Application (EPO) No. 04 025 504.4 filed Oct. 27, 2004, which is incorporated herein by reference.  
       TECHNICAL FIELD  
       [0002]     This application relates generally to servicing of a software system landscape by means of transport requests, and more particularly to a method for tracking transport requests and a computer system with a software system landscape and trackable transport requests.  
       BACKGROUND  
       [0003]     Complex software like applicant&#39;s SAP R/3 Release 4.5 (SAP) requires customization, e.g. selection of predefined functionality, and adaptation, e.g. addition of or amendment to functionality, as well as other servicing like program and data updates, cf. “SAP System Landscape Optimization” by A. Schneider-Neureither (Ed.), SAP Press, 2004, ISBN 1-59229-026-4, and “SAP R/3 Änderungs-und Transportmanagement” by Metzger and R6 hrs, Galileo Press GmbH, Bonn, Germany, 4 th  reprint 2004, ISBN 3-934358-42-X.  
         [0004]     Before such servicing may be performed, however, it has to be assured that the customizations, adaptations, program and data updates etc. are free of errors and integrate flawlessly into the software and data environment. In a factory for instance servicing errors are bound to result in costly workflow disruptions due to software malfunction or data corruption. Apart from the servicing side, other use of the software like training of new or inexperienced users may also result in a disruption of the productive system.  
         [0005]     Such complex software may therefore be implemented in form of separate logical systems that together form a system landscape. A typical implementation of the aforementioned SAP software for instance may, cf.  FIG. 1 , comprise a development system  101  for customizing and development work, a quality assurance system  102  for testing functionality using representative test data, a training system  103  for training new users, and several productive systems  104 , e.g. each for a different factory, for actual productive use. Other or additional users and systems may be defined according to the particular requirements.  
         [0006]     The logical systems are identical in large parts, function autonomously and may be run on a single computer. The quality assurance system  102  for example resembles the productive system  104  in that it provides all the functionality, its present data and additionally special test data. New customization settings or adaptations may thus be thoroughly tested in the quality assurance system  102  without jeopardizing the productive system  104 . Likewise, the training system  103  resembles the productive system  104  in that it provides some of the functionality and special test data. A new user using the training system  103  may thus become accustomed to the functionality and observe the effect of his actions, albeit without disturbing the productive system  104 .  
         [0007]     A transport management system connects the logical systems and serves to forward approved services to the next stage of the system landscape via logical transport paths  105 . A service may for example be approved in the development system  101  for export. It will then be forwarded to an input buffer of the quality assurance system  102 . Import into the quality assurance system  102  is approved manually by an operator. Once the service has been imported into the quality assurance system  102 , it will automatically be forwarded to an import buffer of the training system  103  and the productive systems  104  where it will be imported following manual approval by an operator.  
         [0008]     The operator is in charge of manually assuring that no untested service is imported. For that purpose, he needs to manually compare a service identifier with approved service identifiers. This process is time consuming and bears the risk of errors.  
         [0009]     The operator is also in charge of manually assuring that services are imported into their target systems only. A project like adaptation of the software to new legislation may require servicing of particular systems of the system landscape only. Presently, all systems simply forward the imported services to all other systems connected thereto. During the project, a considerable number of services may be required over a considerable period of time, and access to systems that are not affected by the project has to be denied manually by the operator for each and every service. This process is time consuming and bears the risk of errors. An automated way presently is to change system changeability parameters of each system on a project basis, e.g. to specify in each system whether it accepts services corresponding to a particular project. This, too, is time consuming and bears the risk of errors and requires authorized access to each system.  
         [0010]     The operator is finally in charge of manually assuring that the services are imported in the correct order. The importance of the correct order is illustrated in  FIG. 2   a  and  FIG. 2   b . An original version  201  of the software and data is first modified by a first service  202 , resulting in modified version  203 , and subsequently by a second service  204 , resulting in modified version  205 , cf.  FIG. 2   a . However, if the second service  204  is imported before the first service  202 , the original version  201  is changed into modified version  206  by the second service  204  and subsequently into modified version  207  by the first service  202 , cf.  FIG. 2   b . The modified versions  205  and  207  differ and the version  207  will not perform as intended.  
         [0011]     In view of the fact that an SAP R/3 implementation may comprise dozens of systems and require thousands of services per month during phases of change, the operator time required becomes considerable as does the risk for errors to occur.  
       SUMMARY  
       [0012]     In one aspect of the invention, a method is provided for tracking transport requests in a system landscape comprising a central control system and a plurality of logical systems interconnected by logical transport paths, a transport request defining a software service for a system in the landscape, the method including feeding a transport request into a logical system of the plurality of logical systems; providing a data supplier in the logical system for supplying, to the central system, data supplier information containing information about the transport request; providing a data collector in the central system for obtaining the data supplier information and accordingly updating status data; and providing a tracking service in the central system, the tracking service allowing to analyze the status data.  
         [0013]     In a further aspect of the invention, a computer system is provided comprising: a central control system; a plurality of logical systems; logical transport paths that interconnect the logical systems to form a software system landscape, the logical transport paths allowing a transport request to be fed into a first system of the plurality of logical systems, a transport request defining a software service for a system in the landscape; a data supplier in the system for supplying, to the central system, data supplier information containing information about the transport request; a data collector in the central control system for obtaining the data supplier information and accordingly updating status data; and a tracking service in the central system, the tracking service allowing to analyze the status data.  
         [0014]     In a still further aspect of the invention, a computer program product is provided, the computer program product comprising on a storage medium a computer code that upon execution on a computer system performs the method according to the invention. 
     
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0015]     Further embodiments of the invention are inferable from the following description and the claims.  
         [0016]      FIG. 1  shows a system landscape of the prior art.  
         [0017]      FIGS. 2   a  and  2   b  illustrate services performed in different orders according to the prior art.  
         [0018]      FIG. 3  illustrates a system landscape according to an example embodiment of the invention.  
         [0019]      FIG. 4  shows an example embodiment of the hardware of a computer system according to the invention.  
         [0020]      FIG. 5  shows a flow diagram of a method according to an example embodiment of the invention.  
     
    
     DETAILED DESCRIPTION  
       [0021]     The embodiment shown in  FIG. 3  shows an SAP R/3 Release 4.5 system landscape  300  with separate logical systems  301  that are here divided into a global part  302 , e.g. at a main development and production facility, and local parts  303   a ,  303   b ,  303   c , e.g. at other production facilities.  
         [0022]     The global part  302  comprising at least a development system  301   a  for customizing and development work, a quality assurance system  301   b  for testing functionality using representative test data, and a productive system  301   c  for actual productive use.  
         [0023]     The local part  303   a  comprises a development system  301   d  for customizing and development work of local adaptations to SAP, e.g. to meet different legal requirements if part  303   a  is localized in a different country than the global part  302 . The local part  303   a  further comprises a quality assurance system  301   e  for testing functionality using representative test data, a training system  301   f  for training new users, and a productive system  301   g  for actual productive use.  
         [0024]     The local part  303   b  comprises a development system  301   h , a quality assurance system  301   j  and a productive system  301   k , but no training system. The local part  303   c  is a two system landscape comprising a development system  301   l  and a productive system  301   m  only.  
         [0025]     The system landscape may be different according to the actual requirements. Fewer or more, different or differently connected or grouped systems  301  may be defined as needed.  
         [0026]     The logical systems  301  are identical in large parts and function autonomously. The quality assurance system  301   j  for example resembles the productive system  301   k  in that it provides all the functionality, its present data and additionally special test data. New customization settings or adaptations may thus be thoroughly tested in the quality assurance system  301   j  without jeopardizing the productive system  301   k.    
         [0027]     Each system  301  comprises an import buffer  304  and a data supplier  305 . A transport management system connects the logical systems  301  and serves to effect software services across the system landscape via logical directional transport paths  306 . A service may for example relate to customization of a system  301 , e.g. a selection of predefined functionality in the system  301 , or an adaptation of a system  301 , e.g. an addition of or amendment to functionality, or to program and data updates or the like. A system path (not shown) is provided between each system  301  and a central system  307  having a data collector  308 .  
         [0028]     The systems  301  of each part  302 ,  303   a ,  303   b ,  303   c  and the central system  307  may be located and simultaneously executed in a single computer, or may be distributed across separate hardware. The global part  302  and the local parts  303   a ,  303   b ,  303   c  each run on physically separate computer systems, which themselves may comprise different computers.  
         [0029]     An example implementation of the local part  303   a  may comprise, cf.  FIG. 4 , a data base layer  401  for storing and retrieving business data like a factory inventory, employee data, sales figures etc. The data base layer  401  comprises one or more data base servers  402  and four data bases  403 , one for each of the systems  301   d ,  301   e ,  301   f  and  301   g.    
         [0030]     Connected to the data base layer  401  by a suitable network  404 , e.g. a LAN, is an application layer  405  for execution of the software of the systems  301   d ,  301   e ,  301   f  and  301   g . The application layer  405  comprises one or more application servers  406 .  
         [0031]     Finally, connected to the application layer  405  by a suitable network  407 , e.g. a LAN, is a presentation layer  408  for the graphical user interface (GUI). The presentation layer  408  comprises dumb terminals  409 , Personal Computers  410  and/or wireless access devices  411  like PDAs.  
         [0032]     The method according to an example embodiment of the invention is now described with reference to  FIG. 5  and  FIG. 3 .  
         [0033]     A software service is provided  501  using a transport request  309 . The transport request  309  is structured data comprising an identifier  310 , e.g. DEVK900251, general information  311  regarding the service, e.g. indicating that the service is a program patch, and service data  312 , e.g. a piece of program code for a patch.  
         [0034]     The transport request  309  is fed  502  into the import buffer  304  of one of the systems  301 , e.g. the quality assurance system  301   b  of the global part  302 . This initial feeding may occur from the development system  301   a  through a transport path  306 , but may also be effected manually as shown by path  313 . At operation  503 , the data supplier  305  of system  301   b  detects the transport request  309 , accesses at least a part of its data, in particular the identifier  310  and the general information  311 , and provides, at operation  504 , the accessed data together with further information in a predefined format as system supplier data  315  to the data collector  308 . The further information may comprise a system identifier and system status information, e.g. a list of the support packages and services installed on the system  301   b , project data, project status indicators etc.  
         [0035]     The data collector  308  updates, e.g. generates, deletes or changes, status data in a data file  314  that in this example is located within the central system  307 , operation  505 . The data file  314  may also be held in a different place or be a data base entry. The status data may contain a copy of the system supplier data  315 , or data based on an analysis of the system supplier data  315 . Likewise stored in the data file  314  or other data files is system supplier data  315  provided by the data suppliers  305  of the other systems  301 .  
         [0036]     The data collector  308  maintains an up to date record of the state of all systems  301  of the system landscape  300 . For this purpose, the data collector  308  calls each data supplier  305  periodically for an update. Alternatively or additionally, the data suppliers  305  may contact the data collector  308  if relevant data has changed.  
         [0037]     The central system  307  provides tracking services based on the data in data file  314 , operation  506 . These tracking services may comprise a request analysis, a status analysis, a sequence analysis, a project analysis, generation of reports, checking services etc. as explained in detail in the following.  
         [0038]     A request analysis allows the search through all transport requests pending in the system landscape  300  according to certain criteria. For example, all transport requests belonging to a particular project, originating from a particular developer, being older than a predeterminable period of time may be determined and provided in a results list using this tracking service.  
         [0039]     A status analysis allows the status of certain requests, e.g. the requests of the results list of the request analysis, to be analyzed. The analysis may state in which systems the requests have been approved, when they have been approved, in which systems they are pending to be approved, whether errors or system messages have been recorded during importation into a system etc.  
         [0040]     A sequence analysis allows to determine the import sequence of the transport requests into each system, the sequence of transport requests in the import buffers, and the automated centralized assessment whether the sequences are correct.  
         [0041]     A project analysis allows to determine the transport requests belonging to a particular project and its state.  
         [0042]     Reports may be generated and automatically analyzed. Such analysis may comprise comparing a report with a reference report to check for completeness, comparing the imports of transport requests in two different systems, comparing and analyzing import sequences in order to identify sequence errors, comparison of a request list with the contents of the import buffer of a system, determining the overall status of an object list, e.g. a list of objects belonging to a project, etc.  
         [0043]     Based on the tracking service results, and with consideration of further information like project association and project status data, one or more transport requests may be imported automatically, operation  507 . A manual approval of the automated import by an operator may be required.  
         [0044]     Although the foregoing has been a description of an example embodiment of the invention, it will be apparent to those skilled in the art upon review of this disclosure that numerous variations and modifications may be made in the invention. For example, instead of using SAP R/3 Release 4.5, other SAP and non-SAP systems may benefit from the invention.

Technology Category: g