SAP and its partners have taken the first step towards industrialization – from development to configuration. They facilitate development by combining technologies like J2EE or J2ME with tools like SAP NetWeaver Developer Studio and SAP NetWeaver Web Application Server. Meanwhile, products like Aris for SAP NetWeaver or SAP NetWeaver Development Infrastructure (NWDI) help to implement methods like Rational Unified Process (RUP). However, simply coupling a technology and a product is not enough, since business applications usually employ several technologies at once. The SAP product portfolio therefore comprises a range of integrated tools. These cover the entire software life-cycle and the various technologies, thereby supporting the development process from both a technical and an organizational point of view.
New challenges for developers
Industrialization represents both a challenge and an opportunity for developers. On the one hand, time and resources are becoming ever more limited, while technologies are becoming more complex and flexible, such that they can theoretically solve any problem at all. On the other hand, the range of tools on offer is expanding, and work done using them is visualized more effectively. Selecting the correct tools and managing them intuitively can cut familiarization times significantly. Implementation-related tasks can be completely automated, leaving developers free to concentrate on meeting the client’s needs on the business side. At the same time, developers need to specialize more, as the rising flood of technology prevents them from having the necessary level of expertise to be able to perform high-quality development work on all components in all fields. By outsourcing and sharing work globally, thus reducing the degree of vertical integration, they are trying to enhance quality and make development processes easier to plan. It’s not just about developing new software components any more. The aim is also to make better use of what is already in place, for example through configuration. This noticeably reduces the amount of programming work required. Atomic functionalities, also known as services, such as database access with the means to make and break a connection, are encapsulated once and once only and thus no longer need to be reprogrammed manually again and again. They can be re-used through configuration and composition.
Many of the business processes in a company are very similar to one another. They can be broken down into individual steps. By recombining these steps with each other in different ways, complex tasks such as company-wide dynamic approval processes can be implemented. At the same time, increasing the number of steps that are reused can considerably cut development costs. This works because composition is not performed manually through programming alone, but is achieved instead using tools like cross-component BPM (ccBPM) or SAP NetWeaver Exchange Infrastructure (SAP NetWeaver XI) at configuration level. The individual process steps are encapsulated in a generic web service and then stored in a repository. From there, they can be recombined in the future to produce a variety of specialist processes, thereby forming the basis for the composition of dynamic processes such as approval or ordering procedures.
Interactive or non-interactive?
These processes can either be interactive or non-interactive. A non-interactive process – also known as an application-2-application process – such as an ordering process or transactions using distributed posting systems can run fully automatically in line with predefined rules. If, for example, the warehouse stocks of a dealer fall below a critical level, the process can select the appropriate producer from a list and place an order in his system. Non-interactive process steps can be combined with existing standards to form a complete process. For example, companies in some countries dispatch goods and invoices at the same time, checking that the transaction has been posted correctly at a later date. Other firms start by sending out the invoice and then dispatch the goods once payment has been received. The individual steps in the process are the same, only the order is different. The order of the steps can be defined dynamically – according to country-specific conditions, for example – using SAP NetWeaver XI and ccBPM.
With interactive processes, by contrast, users have to take action – for example by entering data. Implementing these processes in applications is a far more complex business, and creating the right intuitive user interface requires a great deal of work. The interactive process can be represented in SAP Enterprise Portal using a portal screen sequence – a sequence of several input masks. These standardized screens accept user data for specific recurrent transactions involving variable data. For example, a travel cost accounting system performs postings according to the data which the user inputs.
Why interaction can be a problem
Making a distinction between interactive and non-interactive is vital when automating the sequence of process steps. Non-interactive processes can be compiled into a single sequence with the help of current standards and technologies and tools based on these. If interactive applications are to use services, programming is usually required. Interactive applications therefore represent something of a challenge when it comes to industrialization.
Unlike non-interactive processes, interactive applications cannot be developed in a largely automated and standardized manner, and in-depth expertise is required. The developer not only needs to know what his process is supposed to achieve at business level, he also needs to know how this can be implemented in technological terms. The main problem with interactive applications is the fact that there is currently no standard for their implementation or, more importantly, for sequence control within the interactive application. All that is available is a white paper called “BPEL4PEOPLE”. Despite the lack of a standard in this area, however, SAP has managed to provide a tool known as Composite Application Framework (CAF), which comprises an important component called “Guided Procedures”. This tool provides the developer with the resources he needs to implement sequence control within an interactive process, thereby solving the problem of the lack of standards for the meantime. Even in this area, there is a high degree of integration in the development environment. Add to this existing tools like SAP NetWeaver Developer Studio, and it is perfectly legitimate to talk about industrialization of the software development process here.
Highly integrated and recyclable
A development environment which promotes the industrialization of the application development process is ideally highly integrated, hides technological details from the developer, and supports the reuse of development objects. Hidden behind a framework that simplifies things, a complex technology can be made more transparent and therefore easier to understand. The Composite Application Framework from SAP provides precisely such a framework and, when combined with SAP NetWeaver Developer Studio, meets the needs of industrialization. It is model-driven, which means that it provides tools which abstractly define applications using metadata. Usable applications can then be generated from the metadata. This approach facilitates rapid development, since the model created can be easily tested in formal terms and generation of the application avoids simple programming errors.
Employing reusable modules – also known as patterns – reduces workload and complexity for developers and shortens familiarization times for users. The developer does not have to implement the functions himself – which can be a time-consuming and error-prone process – and the user can work with all the lists based on this pattern as soon as he has learned how to use one of them. These input masks are automatically generated in line with best practice based on the interface for a particular functionality. The masks can be used for the user interface and for the sequence logic. A good example of a user interface is the list pattern, which is a graphic screen element. A list of entries is transferred into the list pattern, which then automatically displays it together with a variety of handy functions like “Change column width” or “Filter in list form”.
The Composite Application Framework is divided into two layers, the process layer (CAF Guided Procedures) and the service and user interface (UI) layer (CAF Core). Although the two layers can be used independently of one another, they only achieve their full strength when used together. CAF Guided Procedures allow interactive business processes to be visually modeled and implemented. If an interactive business process only uses existing services, it can be implemented in a composite application without having to create even a single line of program code. With CAF Core, services which take their data from legacy or third-party systems can be created. A developer can define model-driven business objects and UI elements in this service and UI layer. All these objects can then be used in CAF Guided Procedures.