# Patent

## Title
Shipment infrastructure for add-on content

## Abstract

A system including a software maintenance tool of a business process platform to manage software changes related to a main software product including a software enhancement supplement of the main software product; and a control unit interfaced with the software maintenance tool and provided by a software product provider to create, assemble, and provision the software enhancement supplement to the software maintenance tool based on a type of content comprising the software enhancement supplement.

## Background
FIELD
Some embodiments herein relate to the shipment of computer software content. In particular, some embodiments concern an infrastructure to support provisioning and shipment of supplemental computer software content, including the installation and maintenance of the supplemental computer software content.
BACKGROUND
Business oriented computing systems, applications, and platforms may be developed and deployed to business entities to address both specific and general needs, capabilities, and management functionalities of the business entities. In general, a computer software product may be shipped and deployed by a software product provider to a software customer (e.g., a business or enterprise), wherein the software product includes a number of functionalities that can be used by the customer in the operation of their business to, for example, improve resource management, production, invoicing, customer support, and other functions relevant to their business.
While a computer software product may initially meet the requirements and needs of a software product customer or user, the customer's requirements and needs may change some time after the initial deployment of the business computer software product. The customer's requirements regarding the software product may change due to a change in the customer's needs, as driven by a change in the customer's business functions and operations, by a change in the customer's desire to further integrate the computer product into the operation of its business, and other factors. In some instances, the customer may desire additional features that are not present in the initial computer software product shipped or delivered to them.
In some instances, a software product provider may provide additional features to a computer software product in the form of a release of a new product of an existing product. A typically common aspect of a new product release of an existing product is that the new product release is typically provided as a standard solution to all customers. That is, the new product includes a common set of functionalities that is made available to all customers at the same time. Additionally, such new products typically include numerous changes that are developed by and at the discretion of the software provider.
In some instances, a new software product release product may not adequately address the desired requirements of a particular customer. Also, it is typically not practical for a software product provider to provide a complete product or product version upgrade at the request of an individual customer or small select group of customers since, for example, the modification of a computer software product is time and resource intensive and may include the development, testing, installation, and maintenance of the new product or product version. Additionally, the desire to have a particular product feature may be unique to a select few or one customer. In some instances, the customer requirements may not coincide with the software provider's product or product version release schedule. Also, the provisioning and management of different product or product version releases based on individual customer requests may not be supported, practical, and/or efficient for the software product provider.
Accordingly, a method and mechanism for an infrastructure that supports the shipment and provisioning of supplemental software enhancements are provided in some embodiments herein.



DESCRIPTION OF DRAWINGS
FIG. 1 is an exemplary block diagram illustrating a system, in accordance with various aspects of the present disclosure;
FIG. 2 is an exemplary depiction of supplement content, in accordance with some embodiments herein; and
FIG. 3 is an illustrative diagram depicting modeling of supplemental content, in accordance with some aspects of the present disclosure.



DETAILED DESCRIPTION
In some embodiments, functional enhancements to a main computer software product may be desired and requested by a software customer or user. As used herein, the terms supplement and “add-on” may be used to refer to a functional enhancement that supplements a main computer software product or provides (i.e., adds) additional functional capability to the main computer software product. In general, the functional enhancements provided by a supplement are relatively small compared to the corresponding main computer software product to which the supplement is associated. In some embodiments, mechanisms herein support providing supplements or add-ons without the necessity to alter the main computer software product to which the supplement relates.
FIG. 1 is a block diagram of a system 100, according to some embodiments herein. It is noted that system 100 may include additional, fewer, and alternative components rather than being strictly limited to the configuration depicted in FIG. 1. Generally, system 100 provides an infrastructure for supporting the creation, assembly, and provisioning of supplements or “add-ons” that are created and provided by a software product provider. System 100 includes a service backbone 105 and a service marketplace 110 at a software product provider (e.g., developer) on a product provider side of the system that is interfaced with a local system 115 of a business process platform at a local system level on a customer/service provider side of the system. Local system 115 may be maintained or administered by a customer 120 or service provider 125 at the customer local system level 115.
On the product provider side, system 100 includes service backbone 105 that has a Content Production Management System (CPMS) 130 and a Product and Production Management System (PPMS) 135. CPMS 130 is the main control unit for the creation, assembly, and provisioning of supplements or add-ons. CPMS 130 controls to which customer(s) a supplement is to be shipped. CPMS 130 is aware of the content of a supplement. In some embodiments herein, specifics regarding how, when, and to which customer(s) the supplement is shipped may be based on the particular component or type of content comprising the supplement, and other characteristics of the supplement. Based on its knowledge of the content of the supplement, CPMS 130 controls to which customer(s) the particular supplement is shipped. Awareness of the supplement content type may be represented by meta data associated with the supplement. CPMS 130 may pass along at least portions of the meta data associated with the content type and other characteristics of the supplement to local system 115.
Returning to FIG. 1, customer service side 101 is interfaced with product provider side 102 and provides a mechanism for the delivery of content from the service factory of the product provider. As illustrated, RT system 150 and BCDT system 155 are provided on the customer side 102, where the BCDT provides a central maintenance instance for hosting the customer's workspaces. A Software Maintenance Manager (SMM) of the business process platform (e.g., ByDesign by SAP AG, but not limited thereto) provides a mechanism and infrastructure for the management of software changes in local system 115. The SMM handles the technical provisioning of a supplement published and provided by the service factory of the product provider.
In some embodiments, in addition to triggering the creation of a supplement installation recommendation the CPMS may provide required meta data for UI (user interface) related information to the customer/service provider side of system 100. In some embodiments, CPMS 130 may provide information that allows the SMM on the customer side 102 to be aware of process handling and dependencies.
PPMS 135 is a central database and knowledge base for information regarding the software products and components provided by the product provider. Supplements are modeled in PPMS 135. In some embodiments, the supplement may contain three (3) types of content. Accordingly, the supplement content is mapped to PPMS 135 entries associated with the supplement to capture relevant aspects of the supplement content.
FIG. 2 is an illustrative depiction of three types of content, 205, 220, and 230, that may comprise a supplement, in accordance with some embodiments herein. Content 205 includes both Business Configuration (Configuration or BC) objects 210 and runtime (RT) objects 215. Content 220 includes only Configuration or BC objects 210 (e.g., BC options, or BC sets), whereas content 230 includes only RT objects 235 (e.g., a query and form template). Thus, content of a supplement may include RT relevant objects, configuration relevant objects, or both. In some aspects, the RT relevant objects and the BC objects comprising the content of a supplement can be separate and distinct from each other. BC objects are installed in the Business Configuration Design Time (BCDT) system 155 on the customer/service provider side of system 100, whereas RT objects related to runtime aspects of the supplement are installed in the RT system 150.
FIG. 2 further illustrates Configuration objects of supplement content are installed in the BCDT 155 and RT objects of the content are installed in the RT system 150 on the customer/service provider side of system 100. In this manner, how, when, and where a supplement and its corresponding content is installed may be dependent on the nature of the content of the supplement.
As illustrated in FIG. 3, some embodiments of a PPMS 310 may include entries for a Supplement (Product) 315, a Supplement Version (Product Version) 320, a Software Component (SWC) 325, and a Software Component Version (SWC Version) 330 that map to content 305 of a supplement. In some embodiments, the content of each supplement is mapped to a Product in PPMS 310. PPMS may be the same as or similar to PPMS 135 shown in FIG. 1. The content is mapped to the PPMS 310 entries Product, Product Version, Software Component and Software Component Version.
It is noted that a SWC Version 330 may include a combination of BC or RT components (e.g., JAVA Runtime, ABAP Runtime, and XI (i.e., SAP Exchange Infrastructure) Runtime). As further used herein, a supplement refers to a particular Product/Product Version (PV) in PPMS. Each PV is a representation of a group of SWC versions and describes a supplement at a specific point in time of a life-cycle of the supplement and may include multiple software features.
In compliance with the modeling of a business process platform product (e.g., By Design by SAP AG, although may be extended to other platforms), each runtime stack may correspond to one supplement Software Feature. Each supplement software feature may contain one or more SWC Versions, including a corresponding Support Package Level. Each SWC Version/Software Feature is exclusively assigned to one supplement PV. Thus, in some embodiments there is no reuse of SWC versions/Software Features in different supplements.
In some embodiments, an initial shipment of a supplement corresponds to an initial product version (e.g., PV “Supplement A 1.0”) and a feature enhancement of a supplement corresponds to new PV (e.g., PV “Supplement A 2.0”). With some embodiments, shipment of initial supplement may also require the creation of Support Package Stack (SPS) based on a particular product version. As used herein, a SPS describes a product version at a specific point in time with respect to its SWC Version support package patch level. For example, in By Design each SWC Version may have only one exact Support Package Level per Support Package Stack.
In some embodiments, a supplement is based on a certain software PV/PV plus a Support Package Stack as a start release. Starting with this SPS, the service factory (CPMS 130 and PPMS 135) of the product provider may guarantee compatibility to the main product to which the supplement is associated. In this manner, a known configuration and supportable level of the product is provided from which supplements may be developed and shipped. Accordingly, accurate tracking of supplement and supplement versions may be tracked and maintained.
In addition to the creation of the supplement, individual content objects comprising a SWC Version and PV are registered in PPMS 135, as shown in FIG. 3. The assembled objects 315 of the supplement are uploaded to a service marketplace for publication to the customer.
In some embodiments herein, a maintenance package for a shipped functionality is referred to as a “hot fix”. Such hot fixes correspond to a new SPS based on a particular and specific product version (e.g. PV “Supplement A 1.0 SPS n”). In some embodiments, CPMS 130 and PPMS 135 (i.e., the service factory) support hot fixes. Since there is direct correspondence between a PV and a hot fix as identified by a SPS, there is no requirement for regular shipment of maintenance packages to all customers. Instead, a hot fix need only be shipped via SPSs with a corresponding PV to a customer having the installed PV.
In accordance with embodiments herein, supplement content may include four main instances of content, including three types of RT objects and one type of Configuration objects. Instances of supported RT types, in ByDesign by SAP for example, may include ABAP, Java, and XI types of RT content, as illustrated in FIG. 3. For example, ABAP RT content may relate to ABAP add-on packages and ABAP support packages. Java RT type content may relate to, for example, a Java support package and XI RT type content may be related to an XI support package. In some embodiments, supported content includes:

    
    
        Reports comprising ABAP+Java (optional)(BC+RT);
        Forms/Excel Templates composed of ABAP (BC+RT Content)+XI (Optional);
        Field Extensions (without value help) composed of ABAP+Java+XI
        Field Extensions (with value help) composed of ABAP (RT)+ABAP (BC)+Java+XI; and
        UI Changes composed of Java.
    
    


In some embodiments, a customer (e.g., a project team) may order or otherwise request a supplement or functionality that is developed and published as a supplement. In some embodiments, the customer (e.g., 120) may make determinations based on business relevant questions regarding supplements ordered and used by the customer's business. In such instances, the customer may work in the BCDT user interface to control and communicate with the local system 115.
As related to the supplements herein, a user interface of the SMM may be accessed and used to control the installation and maintenance of supplements published to the customer by the service factory of the product provider. In some embodiments, an IT Administrator may be responsible for the software maintenance of local system 115, wherein the illustrated SMM provides the mechanism for such tasks. In some instances, the SMM may be controlled directly or locally by a user (e.g., user 125 via a workcenter 147) or controlled remotely via a central console by, for example, a Service Provider Cockpit 145. Work centers 147 and 149 relate to a change and deploy work space for controlling and interfacing with SMM of RT system 150 and BCDT system 155 at the local system 115. Work center 153 provides a work space for controlling and interfacing with the BCDT of BCDT 155.
System 100 provides the infrastructure to facilitate and otherwise support the installation and maintenance of supplements published by the product provider. Regarding an installation of a supplement, a customer order for a requested enhancement may be received by the product provider. Content developed in response to the customer request for a feature or functionality is developed by CPMS 130, including internal testing and approval, and is registered with PPMS 135. The supplement created in the product provider's service backbone 105 will contain corresponding installation and maintenance packages. These installation and maintenance packages are then published and shipped to the customer system 115 and installed into the customer local system 115.
In some embodiments, supplements provide by the product provider may be developed and provided on demand in response to a customer's specific request. In some other instances, supplements may be developed and provided by the product developer and offered to suitable customers from a catalog or repository of supplements. The supplement provided in the catalog of content may be browsed or otherwise viewed and ordered from the catalog by the customer.
An Installation Recommendation is created on backbone 105 and pushed to customer system 115. Based on the content of the supplement (e.g., RT only, Configuration only, or RT and Configuration), the Installation Recommendation is sent to either RT system 150, BCDT system 155, or both. In an instance the Installation Recommendation regarding a supplement is sent to both RT system 150 and BCDT 155, a determination is made regarding any dependency handling based on the inclusion of both RT and Configuration objects in the content of the supplement. As used herein, dependency handling refers to a RT object of the supplement being dependent on the Configuration aspects of the supplement, as specified by the Installation Recommendation. In some embodiments, an Installation Recommendation for a supplement containing both RT and Configuration content is not displayed in RT system 150 until after a prerequisite activity for the supplement is created by the BCDT system 155. Once the prerequisite activity has been created in the BCDT, the installation of the supplement proceeds with the Installation Recommendation being made available in RT system 150. Upon being made available (i.e., visible for selection), the installation of the supplement including both RT and Configuration type content is completed.
With respect to supporting a maintenance function related to the shipment of supplements, a hot fix that addresses corrections of an associated supplement are shipped via the SPS. Based on the content type of a supplement, the SPS contains either RT objects, Configuration (BCDT) objects, or both. In some embodiments, the hot fix content comprising a SPS content also determines whether BC re-scoping is required or not.
For some embodiments, maintenance packages only contain hot fix content. That is, the hot fix does not include any additional functional enhances but instead include content directed to correcting or fixing the shipped supplement. Accordingly, a hot fix (i.e., a supplement update recommendation) may be displayed to a customer on the customer side 102 and applied to the system by IT Administrator without additional notification from BCDT since, in some embodiments, no new enhancements are included in the hot fix.
In some embodiments, a Software Lifecycle Management (SLM) control is provided at 160 of FIG. 1. SLM 160 may provide a mechanism for planning and executing of software changes in system 100. In some embodiments, SLM 160 maintains a life cycle schedule for a main product and a separate life cycle schedule for a supplement associated with Product/Product Version. A separation of the life cycle of the supplement from its associated Product allows for the independent installation and maintenance of the supplement. It is noted that the life cycle of a supplement not exceed (i.e, outlive) the lifecycle of the Product associated with the supplement.
The embodiments herein may be implemented in computer hardware, including firmware. The embodiments herein may, in some instances, be implemented in computer software, while in some instances embodiments may be implemented in a combination of hardware and software. Some embodiments may be implemented as a computer program product, i.e., a computer program tangibly embodied in a hardware medium, e.g., in a machine-readable storage device having program code or instructions stored thereof, for execution by, or to control the operation of, a data processor (e.g., a programmable processor, a computer, or network of computers). In some embodiments, a computer program in accordance with the present disclosure may be implemented independent of a particular programming language and/or processing system and/or computer operation or application platform.
Suitable processors for the execution of a program of instructions include, by way of example, both general and special purpose microprocessors, and the sole processor or one of multiple processors of any kind of computer. Storage devices and mediums suitable for tangibly embodying computer program instructions and data may include, for example, all forms of non-volatile memory, magnetic disks, magneto-optical disks, CD-ROM and DVD-ROM disks. In related embodiments, computer program may operate independent of any particular form of programming language, computing system, industry, application, communication protocol, and operating system.
A number of embodiments of the invention have been described herein. However, it will be understood that various modifications may be made without departing from the spirit and scope of the invention. Accordingly, other implementations are within the scope of the following claims.

## Claims

1. A system comprising:
a processor, the processor to execute program instructions to cause a software maintenance tool of a business process platform to manage software changes related to a main software product including a software enhancement supplement of the main software product;
a control unit interfaced with the software maintenance tool and provided by a software product provider to create, assemble, and provision the software enhancement supplement to the software maintenance tool based on a type of content comprising the software enhancement supplement, wherein the type of content comprising the software enhancement supplement is one of a Business Configuration object, a Runtime object, and a combination of Business Configuration object and a Runtime object;
a Runtime (RT) system to handle an installation process of a Runtime object type of content comprising the software enhancement supplement; and
a Business Configuration Design Time (BCDT) system to handle an installation process of a Business Configuration object type of content comprising the software enhancement supplement, wherein the software enhancement supplement is received by the RT system and the BCDT system based on the content type of the software enhancement supplement.

2. The system of claim 1, further comprising a knowledge base to map the software enhancement supplement to main software product.

3. The system of claim 1, wherein the software enhancement supplement relates to a specific Product Version of the main software product.

4. The system of claim 1, wherein a maintenance package is associated with the software enhancement supplement to provide a fix for the software enhancement supplement.

5. The system of claim 4, wherein the type of content of the fix depends on the type of content comprising the software enhancement supplement.

6. The system of claim 1, wherein the software enhancement supplement is created by the control unit in response to a request from a customer for a functionality not included in the main software product.

7. The system of claim 1, wherein the creation, assembly, and provisioning of the software enhancement supplement is provided independently of the main software product.

8. The system of claim 1, wherein the software maintenance tool controls an installation and maintenance of the software enhancement supplement created and provided by the control unit.

9. The system of claim 8, wherein the installation of the software enhancement supplement by the software maintenance tool is based on the type of content comprising the software enhancement supplement.

10. The system of claim 9, wherein the software maintenance tool is informed of the type of content comprising the software enhancement supplement by the control unit.

11. The system of claim 1, further comprising a software lifecycle management tool to manage the lifecycle of the software enhancement supplement and the main software product.

12. The system of claim 11, wherein the software lifecycle management tool manages the lifecycle of the software enhancement supplement and the main software product independent of each other, except that the software enhancement supplement cannot have a life cycle greater that the main software product.