Component Build Service Architecture

Definition

The Component Build Service (CBS) stores all archives that are used or produced during software development in buildspaces. You can load up-to-date archives of the referenced components loaded on the developer machines and you can update them if required.

Based on the information about dependencies between components, the CBS provides an instant automated rebuild of these changed components and of the dependent components at the developers’ requests.

The CBS is tightly integrated with the DTR and the CBS provides the activation concept for development components (DCs).

This means that only if a new or a changed DC that was submitted by the developer is successfully built, then and only then is this activity put automatically in the DTR by the CBS. This DC is released only after that successful build and can be used by any other developer. The source is now marked as “active”.

In combination with a check that up-to-date archives are used in the build process, the activation concept guarantees a consistent build environment even for large development teams. The incremental build significantly reduces the time needed for the central build cycle.

Use

CBS is the place where the central build is performed - that is, the activities you check in to the CMS transport queue first have to be successfully built, before they can be set as "active". Active changes are the ones that everybody in the project uses. The build that is done by the CBS guarantees the success of the build of the whole product.

The CBS is a J2EE-based database application. There a few ways to work with the CBS:

?     SAP NetWeaver Developer Studio: Activation view and Activation Request view are integrated into Developer Studio: developers use them to start the central build of their development components and to monitor the processing of their build requests. For more information about working with the Developer Studio, see Administration of NWDI in the Developer Studio.

?     The CBS Web User Interface is the interface in which the administration of the CBS mainly takes place. For more information about the CBS Web UI, see CBS Web UI.

?     Command line tools: There is a dedicated command line tool for working with the CBS. For more information, see Command Line Tools of the NWDI.

Structure

Architecture of the CBS and integration with other services of the NWDI

?     CBS Request Receiver

The Request Receiver is a J2EE application that accepts requests from the CBS Web UI or from client applications such as the Change Management Service (CMS) or the SAP NetWeaver Developer Studio. The Request Receiver does not execute the requests immediately. It places them in a request queue. A request number is assigned to the request and reported back to the requesting developer. The execution is done later by the CBS J2EE service. The user can use the CBS Web UI or the SAP NetWeaver Developer Studio to query the processing status of the request.

?     CBS Database

The CBS database contains the request queue and the archive pool with the built and imported archives. It also contains data on the buildspaces, the activated development components and the activation state of activities in the DTR.

?     CBS J2EE Service

This is a service of the J2EE Engine, which implements the actual build engine. It takes the requests from the request queue and starts a build task for every request to execute the request. The CBS can execute several build tasks in parallel. You can determine this in the settings of the service. Additionally, you can balance the load by operating several server nodes with individual CBS J2EE services in one J2EE cluster, which synchronize using the shared database.

?     Build Directory in the File System

To start the build for a request, the CBS J2EE service first creates a temporary directory in the file system of the server. It copies the source text from the DTR and the required libraries from the archive pool into this directory. In addition, it copies the buildspace-related components of the build environment, the build plug-ins. The build plug-ins are the component-type specific generators and build tools. Since these must be used in the appropriate version, they are part of the buildspace as well and are transported like source code and build results by the Change Management Service. 

?     CBS Build Controller

After preparing the build directory, the CBS J2EE service starts the CBS Build Controller. The CBS Build Controller loads the required build plug-ins and requests them to execute the actual build. The CBS Build Controller is a Java command line application, which is started as a separate process.

?     CBS Web UI

The CBS has a Web Dynpro-based Web interface, which allows users to use the CBS from within a Web browser.