Ever since the Internet took over the world of IT, the Java programming language has spread rapidly. Java enables the development of web-browser-based programs. The expanded Java 2 Enterprise Edition (J2EE) standard allows distributed client-server applications which can also access existing systems. As increasing numbers of programmers become familiar with Java, it becomes an ever more essential software development tool. But the more it is used, the more apparent the disadvantages become. The Java development tools are geared to individual developers at the local front end and to straightforward applications. They are not suitable for the more complex tasks that today’s developers in business environments are required to deal with. These projects involve numerous developers – sometimes as many as several hundred – and it is these that the new SAP solution is designed for.
No more bottlenecks
The SAP NetWeaver Development Infrastructure removes the bottlenecks from Java programming by combining two worlds in one. It combines the local development environments on the developers’ workstation terminals with a central test environment. The infrastructure is then able to fulfil the requirements of today’s developers. Solutions are required that guarantee comprehensive life-cycle management. This starts with modeling and development and includes tests and test routines, implementation, delivery, maintenance and subsequent program extensions and modifications. The fundamental elements of the SAP NetWeaver Development Infrastructure are the Design Time Repository, Component Build Service, Change Management Service and SAP NetWeaver Developer Studio.
Disorder is the worst enemy of a development infrastructure. In Java programs, the development objects need to be stored and managed with the utmost care. It is because of these tiny coded elements that Java (like ABAP) is called an object-oriented programming language. Objects are nothing more than miniature programs with data and functions assigned to them. They are used to generate a company logo, for example, or a table on an HTML page, or to call up the shopping cart in an online shop or make a holiday application form appear on screen in an HR system. The individual application components, on the other hand, for example the complete order process of an online shop or the holiday application in the HR system, are made up of a vast number of these programmed development objects, all coordinated with each other.
Centrally stored versions
During the software life-cycle, applications and the development objects on which they are based are the subject of continuous change and expansion. The Design Time Repository (DTR) in the SAP NetWeaver Development Infrastructure therefore manages the development objects like a central storage facility. DTR prevents the errors that result from different versions of the same objects being used and possibly copied in a distributed development environment. Because the DTR ensures that all developers only receive objects in a source-code version that is currently valid, it also performs the function of a documentation center. It saves the “blueprints” of the various versions and logs them throughout the life-cycle. This precise change history is particularly valuable to users who are required for legal or administrative reasons to document their data processing operations (such as pharmaceuticals manufacturers who have to supply documentation to licensing authorities or companies that have to comply with the Sarbanes-Oxley Act).
Compiling and testing
One of the features of Java is that the program commands appear in a Java byte code that is first executed in the runtime environment on the user’s workstation terminal. To enable developers to create software and test it thoroughly before it goes live, the SAP NetWeaver Development Infrastructure features a Component Build Service (CBS). The CBS compiles data, which means – networked with the Design Time Repository – it combines the individual development objects into software components and transfers them from the Java-typical metalanguage into the bits and bytes of a machine language. The compiling process thus ensures that the different parts of the software are all perfectly coordinated like an efficient gear system. The software component as a whole unit has been developed in a way that is both syntactically and semantically correct. Syntactically correct means without program errors and semantically correct means the component fulfils its function within the IT-supported business process.
Group work is a tried-and-tested way of developing and maintaining sizeable business applications. A daily rhythm becomes established, with the working day finishing with the modeled software section being returned to the test environment in a usable version and made available to the other developers. Developers make their task easier by “checking out” the centrally stored objects for further development, i.e. by downloading copies of them onto their workstation terminal and then working with them offline. They conclude their development work by compiling the changes and “checking them in” again. In order to coordinate all the developers within a group and synchronize the various developer groups with each other, an infrastructure must fulfil some complex logistical requirements. The SAP NetWeaver Development Infrastructure supports distributed organization of tasks. To this end, virtual working areas, called workspaces, can be set up in the DTR as required. The Component Build Service allows division into different development projects (buildspaces).
In practice, developers today tend to work on several projects in parallel. This means they are no longer able to work without structural aids that allow them to divide the development projects into separate, logical units, which is where the Change Management Service (CMS) comes in. As part of the SAP NetWeaver Development Infrastructure, the CMS supports a multi-project landscape above and beyond the tried-and-tested multi-system landscape in the ABAP environment. The CMS is able to manage a theoretically unlimited number of DTR and CBS servers (hardware, physically present hosts) and development projects (software, logical development units). In future, the transport management (TMS) for the ABAP platform will be integrated in the new development infrastructure so that software projects developed in both an ABAP and a non-ABAP context can be processed by a Change Management System.
The way a multi-project landscape works can be explained using the following example: A systems house wants to develop an e-commerce application that can be used by different business customers and adapted further if required. The core of this application consists of two software components, the catalog server for searching for products and a transaction server for processing orders. Depending on the customer, the software component interfaces also need to be set up in accordance with the company’s design guidelines (logo, color or symbols). In this case, it is advisable to use separate processes in order to develop the components individually, some of them being universally applicable components and others customer-specific design elements. With the aid of the CMS, as the accompanying graphic shows, different development units (tracks) can be set up.
As a successor to the two software components, the catalog server and the transaction server, every customer project undertaken by the systems house forms a separate development unit. CMS assigns each of these tracks logical units in the DTR (workspace) and CBS (buildspace). Every project stores its own source code in the DTR and a binary code in the CBS. Each project also compiles data in its own buildspace and then performs a central test within the track. Within a track, runtime systems for different development stages (development, consolidation, quality assurance and production) can be added for central tests.
At the start of the development for the catalog server and/or the transaction server, the required components must be loaded into the tracks using the CMS. At the end of the two projects, stable versions of the software components are produced and supplied to the tracks of the customer projects under CMS control. Every project is therefore built upon stable versions of its predecessors.
User interface with tool collection
The SAP NetWeaver Developer Studio is installed at each development workplace. This is a tool collection accessed via a clearly laid out graphical user interface. The Studio provides access to all development activities and functions as a central instance in the software logistics of development processes. It provides the means to display the current status of projects and forms an integrated development environment (IDE) based on the open-source project Eclipse. SAP supplies Eclipse plug-ins including those that support working with the SAP NetWeaver development infrastructure, for example tools for business applications, database directories or Web Services.
The SAP NetWeaver Development Infrastructure is now available as part of SAP NetWeaver. Over 800 programmers within SAP currently use this solution to develop and maintain software. The J2EE standard was used throughout the development of the SAP NetWeaver Development Infrastructure. All elements of the infrastructure are J2EE application components based on the SAP Web Application Server 6.40. Depending on the level of performance required, the infrastructure is fully scalable and easy to expand with additional hardware.