In an effective enterprise, business data should flow through the company as quickly as possible – which means in real time – to give customers the best possible service. With physical delivery, as long as the goods are shipped the same day, the customer will not notice the difference. For instance, an order on a web store does not have to be processed in three milliseconds. But, in the case of electronic delivery, for example of computer software, customers value quick response time in the order of seconds to minutes. There is an increased focus on real-time business processes, meaning that batch processing as we know it is no longer state-of-the-art. Instead of running a fixed sequence of batch jobs every night, some or all of these might have to run as often as once per transaction at random intervals or, depending on events, at any time of the day or night.
Event-driven instead of time-driven batches
Traditional schedulers define jobs which are typically run once a day at a given time to update, for example, a booking system. Time-driven batches used to be very effective when companies had a static environment. Traditional (so-called mainframe) schedulers create a scheduling plan for a particular period of time – mostly 24 hours. If for any reason changes have to be made, as an end-user requests a report for example, they have to be executed manually. Due to longer trading hours, globalization and time zones, overnight batch windows are shortening. Simultaneously, business requirements are dictating that information stored in many systems be as up-to-date as possible. Yesterday’s information is no longer good enough.
With the increasing reliance on SAP applications and ever-changing business requirements, time-driven scheduling would simply need too many changes as the requirements change in time. Only automation of background processing can ensure that the right service is available at the right time. This means that a modern scheduling system must be able to trigger jobs based on more dynamic conditions: arrival of an e-mail or B2B message, completion (or failure) of another job (or a group of jobs), infrastructure events like the CPU load on a host, or business events like the raising of purchase orders or the receipt of an invoice. The system load can be spread throughout the day. An event-driven and real-time process scheduling solution can even ensure that processes only take place when system resources allow for it, ensuring optimal system performance at all times.
Automation of background jobs
SAP’s open interface eXternal Interface for Job Background Processing (SAP BC-XBP) supports complementary processing management and job scheduling software. SAP partner Redwood Software has developed a real-time event-driven job scheduling solution meeting all the demands of asynchronous processing within an enterprise: Cronacle for SAP solutions. Scheduling and asynchronous processing are closely related. Scheduling is concerned with starting tasks at the appropriate time, determined by rules and external conditions. Asynchronous processing allows a task to be decoupled from its initiation. Schedulers can provide asynchronous processing facilities by allowing systems to request execution of a task at a particular time (or on a particular schedule), or when triggered by an external event.
Administrators can manage and monitor all batch workload across multiple platforms including UNIX, Linux, Windows 2000, J2EE, Z-OS and OpenVMS from a central point of control. Additionally, they are able to automate and integrate background processing across an SAP business application running in heterogeneous environments. Cronacle manages a high-volume batch workload by delivering an asynchronous environment and executing near real-time business transactions. As well as offering comprehensive calendar-based scheduling, Cronacle uses business events to control background processing. The solution certified for SAP NetWeaver with its components SAP Business Intelligence (SAP BI) and SAP Web Application Server (SAP WAS) manages complete business processes spanning over various systems.
Jobs dependent on events
At the core of the event-based scheduling paradigm is the requirement that the events that happen can be identified. Once an event is recognized and raised, it is not difficult to start the reacting process. As a basic step, Cronacle defines explicitly named events. Jobs are defined as dependent on events either individually or as a particularly defined group of jobs. A job definition can also specify that it wants an additional job instance to be created whenever the event happens. So, operators no longer have to ensure that a job is waiting for a particular event. Cronacle allows events to be raised by many sources, including files, programs, SAP alerts, SAP events, web services, SMTP mails, HTTP files, FTP files, as well as the internal Cronacle occurrences.
More complex dependencies can be defined as job chains. The main benefit is that the system is easier to control as it is now possible to repeat or skip steps on-the-fly, whilst still ensuring that this happens in a coordinated fashion. In Cronacle, grouping takes place by creating a new object called a job chain. Job chains look a lot like a job in SAP, since they consist of steps that are (normally) executed sequentially. Job chains can execute multiple programs in a single step in parallel. In SAP’s Basis component Computer Center Management System (CCMS, known as BC-CCM), the complete job will be aborted if a job step results in an error. With job chains, administrators can define how to handle the result of a step. Every step can result in one of the following results internally:
- Completed – the job finished normally
- Error – the job returned a return value considered a problem
- Canceled – the job was canceled by the operator before it ran
- Unknown – the system that the job ran on crashed when the job was running
- Killed – the job was stopped by the operator whilst it ran
For each of these, administrators can define how to handle the result: continue processing and go to the next step, go to a particular step in the job chain (both earlier or later steps are allowed), quit processing further steps and report job chain as completed, quit processing further steps and report job chain result as error, restart job chain or ask the operator what to do. The last option is attractive if manual intervention is needed. The job chain gets the intermediary status of Console and waits for the operator to decide on how to continue the job chain. Since job chains are themselves job definitions, they can be nested to any depth. One job chain can be dependent on another job chain which is dependent on a third one, and so on.
Tailored for SAP NetWeaver
SAP NetWeaver provides an open technology stack that allows customers to highly integrate their business processes (inside and outside the enterprise) while still providing a simple user interface. As the SAP NetWeaver technology will be used by all future SAP applications, Cronacle offers in-depth integration into key areas of the technology, such as Java, SAP BI and SAP Enterprise Portal (SAP EP). Thus, background processing can be automated while at the same reducing time the amount of administration and operation required.
With an increased number of applications being developed in the J2EE stack of SAP WAS, Java is quickly gaining importance. Applications such as SAP xApps but also tailor-made Java applications need to integrate with other SAP applications. Cronacle as an event-driven Java-compliant scheduling tool can manage both the SAP and the Java processes. The Cronacle proposition for the NetWeaver technology stack provides many functions on the application platform level such as ABAP scheduling, J2EE deployment as well as full Java scheduling functionality, automation of SAP events, of transport or support packaging, and of batch input, as well as managing the user jobs. With its certified SAP BI interface, Cronacle provides features such as workflow automation, full support of monitoring and scheduling SAP BI process chains.
Integrating SAP BW and SAP Solution Manager with non-SAP solutions
More and more SAP customers are implementing SAP Business Information Warehouse (SAP BW) which adds a lot of value to upper management. In order to manage the BW processes, SAP introduced a method called process chains which allows BW administrators to manage complex processes. Processing in SAP BW is dependent on the availability of the correct data. These dependencies are managed by Cronacle. As soon as all pre-processing is finished, for example, all customer data are updated in mySAP CRM, processing in BW can start. On the business process monitoring level, Cronacle provides full integration with SAP Solution Manager with its toolset allowing customers to monitor their critical business processes. All metrics and alerts available to SAP Solution Manager, for example CPU usage of the application servers, can be used by Cronacle for dynamic load balancing. SAP and non-SAP business processes can be automated and controlled from a single point.