batch processing with websphere

93
© 2008 IBM Corporation Snehal S. Antani [email protected] WebSphere XD Technical Lead WW SOA Technology Practice, ISSW, SWG, IBM http://snehalantani.googlepages.com Batch Processing with WebSphere Technical Overview of WebSphere XD Compute Grid Chris Vignola [email protected] STSM, Compute Grid Lead Architect WebSphere XD Development, SWG, IBM http://chris.vignola.googlepages.com

Upload: snehalantani

Post on 15-Nov-2014

133 views

Category:

Documents


0 download

DESCRIPTION

Batch processing is an integral part of an IT infrastructure. Core business processes- calculating interest and credit scores, payments processing, billing systems, and so on all rely on batch as the execution environment. The emergence and evolution of standards, middleware, interpreted languages such as Java will have significant impacts on the strategic business and technical direction of batch. This presentation will introduce WebSphere XD Compute Grid, WebSphere's batch processing runtime.

TRANSCRIPT

Page 1: Batch Processing with WebSphere

© 2008 IBM Corporation

Snehal S. [email protected]

WebSphere XD Technical LeadWW SOA Technology Practice, ISSW, SWG, IBM

http://snehalantani.googlepages.com

Batch Processing with WebSphereTechnical Overview of WebSphere XD Compute Grid

Chris [email protected]

STSM, Compute Grid Lead ArchitectWebSphere XD Development, SWG, IBMhttp://chris.vignola.googlepages.com

Page 2: Batch Processing with WebSphere

2© 2008 IBM Corporation

Agenda

• Modern Batch Processing - Requirements & Motivation

• Infrastructure– Container-managed services– Job-dispatching– Parallel Processing– External Scheduler Integration – Resource Management– 24x7 OLTP + Batch

• Applications– Options for expressing batch applications– Design Patterns and proven approaches– Development tooling

• High Performance Batch Processing

• Conclusions

Page 3: Batch Processing with WebSphere

3© 2008 IBM Corporation

Goal

To Deliver a Modern Batch Processing Platform for the Enterprise

Platform: runtime components (schedule, dispatch, govern), e-2-e Development Tooling, workload management integration, operational control with external scheduler integration

Enterprise: Platform-neutral applications, Standardized Application Architecture, Standardized Operational Procedures

Modern: 24x7 Batch, Sharing business services across batch and OLTP, parallel-processing and caching, container-managed QoS, design patterns

Page 4: Batch Processing with WebSphere

4© 2008 IBM Corporation

Types of Batch Processing - Queue Based

RecordProducer

RecordConsumers

DB

Queue-based batch processing

1. Asynchronously process 1 record at a time (X records = X transactions, X select statements, X RPC’s for insert statements)

2. Used when Random access to data is required

3. Solved using message-driven beans and JMS

4. Resource consumption managed by manipulating number of MDB threads

5. Parallelism provided by running multiple MDB’s across a cluster of servers

6. Limited options for operational control

(Out of Compute Grid’s Scope for now…sort of)

Page 5: Batch Processing with WebSphere

5© 2008 IBM Corporation

Types of Batch Processing - Bulk I/O

Select * from table1While (data in cursor) { Tran.begin() { process M records; } Tran.begin() { process M records; }

…}

Insert M records, M/N RPC’s

1. Asynchronously process chunks of records at a time(X records = X/M transactions, 1 select, X/N RPC’s for inserts)

2. Should be used for sequential data access

3. Execute a single select against the database, leverage JDBC Batching for writes

4. Periodically commit M records in a given Syncpoint (aka Checkpoint interval)

5. Bulk I/O optimizations can double throughput and cut CPU consumption by 50%

Insert M records, M/N RPC’s

Page 6: Batch Processing with WebSphere

6© 2008 IBM Corporation

Compute Grid Infrastructure

Page 7: Batch Processing with WebSphere

7© 2008 IBM Corporation

Batch Platform + OLTP (WLM Integration, Job Pacing, Job Throttling,..)

Batch Platform (Parallel Processing, Job Mgmt, Scheduler Integration

Batch Container (Checkpoint/Restart, Execution Metrics, …)

EJB 3 EJB 2SpringBatch

C.G.API

BDSFramework

ibatis

JDB

C

JPA

Hibernate

WX

S

Pure

Query

Data Fabric

BDSFramework

+ Spring

Pojo – Annotation –

AOP

Page 8: Batch Processing with WebSphere

8© 2008 IBM Corporation

Container-Managed Services for Batch

JVM

Multi-Tenant Batch Container

SecurityMGR

TransactionMGR

CheckpointMGR

RestartMGR

ConnectionMGR

Etc…

BatchJob 1

BatchJob 3

BatchJob 2

JTA-BackedCheckpoint Intervals

Page 9: Batch Processing with WebSphere

9© 2008 IBM Corporation

Container-Managed Services

- Container-Managed Checkpoint Strategies

- Keep track of the current input and output positions on behalf of the batch step

- Store these values as part of the same global transaction as the business logic

- Provide flexible options: Time-based, Record-based, Custom algorithms

- Container-Managed Restart Capabilities

- Seek to the correct positions in the input and output streams

- Restart should be transparent to the application

- Dynamically adjust the checkpoint strategies based on Workload Management metrics, OLTP load, and application priorities

Page 10: Batch Processing with WebSphere

10© 2008 IBM Corporation

Resource Manager

Batch Platform

Job Dispatcher

Job Dispatcher

BatchContainer

JVMResource Manager

BatchContainer

JVM

Job

EnterpriseScheduler

DispatchPolicies

ResourceMetrics

- Jobs are submitted to the system via an enterprise scheduler, process server, Job Dispatcher GUI, or programmatically via EJB, JMS, or Web Services

- Administrator can define dispatch & partitioning policies

- Job Dispatcher selects the best endpoint for job execution based on execution metrics

- Job Dispatcher aggregates job logs and provides life-cycle management (start/stop/cancel/etc)

PartitioningStrategies

JobLogs

Job life-cycle managementJobJob

GUI

LifecycleCommands

LifecycleCommands

EJBWeb Services

JMS

Page 11: Batch Processing with WebSphere

11© 2008 IBM Corporation

Parallel Processing

Resource Manager

Job Dispatcher

Job Dispatcher

BatchContainer

JVMResource Manager

BatchContainer

JVM

ReconcileAccounts Job

Partitionby Bank Branch

Branch2job

Branch1job

Branch4job

Branch3job

AggregatedJob Log

-Operational experience for managing 1 job should be identical to managing 10,000 parallel jobs

Page 12: Batch Processing with WebSphere

12© 2008 IBM Corporation

Predictable Scale-up and Scale-out

- Processing 1 million records takes X seconds

- Processing 10 million records takes 10x seconds

- Processing 100 million records takes 100x seconds

- Processing 1 million records across 10 parallel jobs takes x/10 seconds

- Processing 10 million records across 10 parallel jobs takes x seconds

- Processing 100 million records across 10 parallel jobs takes 10x seconds

Scale-up: (aka Vertical scalability)

Scale-out: (aka Horizontal scalability)

- Important for capacity planning

Page 13: Batch Processing with WebSphere

13© 2008 IBM Corporation

Operational Control via Enterprise Schedulers

EnterpriseScheduler Target

-Common job management and scheduling infrastructure for all batch job types

-Existing auditing/archiving/log management infrastructure can be fully reused

-Specific z/OS integrations with JES

Multi-TenantBatch Container

Auditing/Archiving/Log Mgmt

Connector

Submit Job 1

Job 1

Job 1 RC=0

RC=0

Submit Job 2 if Job 1 RC = 0

Job Dispatcher

Job 1 RC=0

Page 14: Batch Processing with WebSphere

14© 2008 IBM Corporation

OLTP and Batch Interleave

DB

public void doBatch() {Session session = sessionFactory.openSession();Transaction tx = session.beginTransaction();for ( int i=0; i<100000; i++ ) { Customer customer = new Customer(.....); Cart cart = new Cart(...); customer.setCart(cart) // needs to be persisted as well session.save(customer); if ( i % 20 == 0 ) { //20, same as the JDBC batch size //flush a batch of inserts and release memory: session.flush(); session.clear(); }}tx.commit();session.close();}

Source: some Hibernate Batch website

public Customer getCustomer() {….}

-Batch application’s hold on DB locks can adversely impact OLTP workloads

-OLTP Service Level Agreements can be breached

-How do you manage this?

-WLM will make the problem worse!

BATCH

OLTP

X

Page 15: Batch Processing with WebSphere

15© 2008 IBM Corporation

OLTP + Batch (in progress…)

Workload Manager (zWLM, WebSphere Virtual Enterprise, etc)

SharedResources

BatchJobs

OLTPApplications

WLM says, “A Batch Job is negatively impacting my OLTP, and OLTP is more important”

-Dynamically reduce checkpoint interval for the batch job(s)

-Dynamically inject pauses between checkpoint intervals for the batch job(s)

WLM says, “The deadline for a particular batch job is approaching, need to speed it up”

-Dynamically increase checkpoint interval for the batch job(s)

-Dynamically decrease pauses between checkpoint intervals for the batch job(s)

Page 16: Batch Processing with WebSphere

16© 2008 IBM Corporation

WebSphere Compute Grid summary• Leverages J2EE Application Servers

(WebSphere today… more tomorrow)– Transactions– Security– high availability including dynamic servants on z/OS– Leverages the inherent WAS QoS– Connection Pooling– Thread Pooling

• Platform for executing transactional java batch applications• Checkpoint/Restart• Batch Data Stream Management • Parallel Job Execution• Operational Control• External Scheduler Integration• SMF Records for Batch• zWLM Integration

Page 17: Batch Processing with WebSphere

17© 2008 IBM Corporation

Compute Grid Applications

Page 18: Batch Processing with WebSphere

18© 2008 IBM Corporation

Components of a Batch Application

Input

BDS

Step 1

Output

BDS

-Where does the data come from?

- How should the business logic process a record?

- Where should the data be written to?

- How should the Step be: - Check pointed? - Results processed? Etc…

… Step N

Input

BDSInput

BDS

Output

BDSOutput

BDS

Complete Batch Job

Start Batch Job

- Execute Step N if Step N-1 rc = 0

Page 19: Batch Processing with WebSphere

19© 2008 IBM Corporation

Input OutputBatchJob Step

Fixed Block DatasetVariable Block

DatasetJDBC

FileIBATIS

Fixed Block DatasetVariable Block DatasetJDBCJDBC w/ BatchingFileIBATIS

How to think about batch jobs

-The better the contract between the container and the application, the more container-managed services can be provided.

-Batch Data Stream Framework (BDSFW) provides an application structure and libraries for building apps

-Customer implements pattern interfaces for input/output/step

-Pattern interfaces are very lightweight. They follow typical lifecycle activities:

-I/O patterns: initialize, map raw data to single record, map single record to raw data, close

-Step pattern: Initialize, process a single record, destroy.

-Object transformation can be done in any technology that can be run within the application server (Java, JNI, etc)

-BDS Framework is the recommended approach for building applications. The customer is free to implement applications in many other ways though (see slide 7 for some examples).

Map Data to Object

TransformObject

Map Objectto Data

Page 20: Batch Processing with WebSphere

20© 2008 IBM Corporation

Batch Application Design

Input DS Processor

Validation 1 Validation 2

Validation… Validation N

Output DS

InputDom. Obj

OutputDom. Obj

1. Batch Input Data Stream (Input DS) manages acquiring data and creating domain objects

2. Record processor applies business validations, transformations, and logic on the object

3. Batch Output Data Stream (Output DS) persists the output domain object

4. Processor and OutputDS are not dependent on Input method (file, db, etc)

5. Processor and OutputDS only operate on discrete business records

6. Customers can use favorite IOC container to assemble the Kernel, and use xJCL to wire the batch flow (input -> process -> output) together.

Kernel

select account … from t1 insert balance into …

Page 21: Batch Processing with WebSphere

21© 2008 IBM Corporation

Input DS Processor

Validation… Validation N

Output DS

InputDom. Obj

OutputDom. Obj

Kernel

select account … from t1 where acount > X and account < Y

insert balance into …

Multi-threadedValidation

CachedValidation

Compute GridParallel Job Manager

X=000Y=299

X=300Y=699

X=700Y=999

Job Instance 1

Job Instance 2

Job Instance 3

Batch Application Design - Parallelism

-Multiple instances of the application can be created using the Parallel Job Manager

- Each instance operates on its own data segment using constrained SQL queries (for example).

Page 22: Batch Processing with WebSphere

22© 2008 IBM Corporation

A Batch Application Development Approach (1)Design Patterns, Domain-Driven Development, Business-Driven Assembly

BDSFW Steps

Pojo Input Streams(Dom. Obj. Factories)

Shared LibrariesShared Libraries Shared Libraries

Pojo Business Logic(Dom. Obj. Processors)

Pojo Output Streams(Dom. Obj. Persisters)

xJCL TemplatexJCL TemplatexJCL Template

App.ear

�XML-based App Development

Business Analysts

Rules Validation & Transformation Tools

Developers

�XML-based App Development

�XML-based App Development

�XML-based App Development

�XML-based App Development

Page 23: Batch Processing with WebSphere

23© 2008 IBM Corporation

A Batch Application Approach (2)

Dependency Injection & AOP Container

Data Fabric for Referential Data

public oDTO sharedService (iDTO)OLTP Client

iDTO

oDTO

BDSFW Service Wrapper

Bulk Data Reader

Bulk Data Writer

iDTO oDTOBatch Container

Web Service, EJB, etc…

OLTP Container

-Application developers are exposed to Pojo’s and the DI/AOP Container

- OLTP and Batch Wrappers can be generated

- DBA’s can focus on writing highly-tuned SQL statements for bulk reading/writing (SwissRe has 300 page SQL queries for Batch!)

Page 24: Batch Processing with WebSphere

24© 2008 IBM Corporation

XD Compute Grid makes it easy for developers to encapsulate input/output data streams using POJOs that optionally support checkpoint/restart semantics.

Checkpoint & Restart with Batch Data Streams

Job Start

BatchContainer

open()

positionAtInitialCheckpoint()

externalizeCheckpoint()

close()

1

2

3

4

Job Restart

BatchContainer

open()

internalizeCheckpoint()

positionAtCurrentCheckpoint()

externalizeCheckpoint()

close()

1

2

3

5

4

Page 25: Batch Processing with WebSphere

25© 2008 IBM Corporation

Batch Container

BatchD

ataStream

Interface

initialize(props)

open()

externalizeChecpoint()

internalizeCheckpoint()

close()

JobStepInterface

de

stroyJo

bS

tep

()

processJobStep()

crea

teJo

bS

tep

setP

rop

ertie

s()

BatchRecord

Processorin

itialize

()

pro

cessR

eco

rd()

com

ple

teR

eco

rd()

FileR

eaderPattern

initialize(props)

fetchRecord()

processHeader()

BatchD

ataStream

Interface

initialize(props)

open()

externalizeChecpoint()

internalizeCheckpoint()

close()

FileW

riterPattern

initialize(props)

writeRecord()

writeHeader()

ByteR

eaderPatternA

dapter

GenericXDBatchStep ByteW

riterPatternA

dapter

The BDS Framework - Implements checkpoint/restart for common IO types

Page 26: Batch Processing with WebSphere

26© 2008 IBM Corporation

Compute GridPojo-based App

End-to-end Development tooling

CG BDS Framework

Eclipse-basedCG Batch Simulator

RAD-FriendlyCG Batch Unit Test

Environment

CG Batch Packager

CommonDeployment Process

Compute GridInfrastructure

-Customer develops business service POJO’s

-Applications are assembled via IOC Container

-XD BDS Framework acts as bridge between job business logic and XD Compute Grid programming model

-XD Batch Simulator for development

-XD Batch Unit test environment for unit testing

-XD batch packager for .ear creation

BusinessServices

Java IDE

Business ServicesTesting Infrastructure

RAD-Friendly Unit-testingfor OLTP

Page 27: Batch Processing with WebSphere

27© 2008 IBM Corporation

High Performance Batch Applications

Page 28: Batch Processing with WebSphere

28© 2008 IBM Corporation

Key Influencers for HPC Grids

• Proximity to the Data – Bring the business logic to the data: co-locate on the same platform

– Bring the data to the business logic: in-memory databases, caching

• Data-aware Routing– Partitioned data with intelligent routing of work

• Divide and Conquer– Highly parallel execution of workloads across the grid

• On-Demand Scalability

Page 29: Batch Processing with WebSphere

29© 2008 IBM Corporation

Compute Grid + XTP = eXtreme BatchBringing the data closer to the business logic

-Proximity of the business logic to the data significantly influences performance

-Bring data to the business logic via caching

-Bring business logic to the data via co-location

- Increase cache hits and reduce data access through affinity routing

- Data is partitioned across the cluster of workers

- Work requests are divided into partitions that correspond to the data

- Work partitions are intelligently routed to the correct work with the data preloaded.

Dispatcher

Worker w/A-M Data

Worker w/N – Z Data

LargeWork Request

Records A-M

Records N-Z

A-M

N-Z

Page 30: Batch Processing with WebSphere

30© 2008 IBM Corporation

Proximity of Data - Options

System z

DB2 z/OSz/OS

WAS

z/Linux WAS

T2

T4 w/SSL over hyper socket

Distributed OSWAS

T4 w/SSL over network

Distributed OS

WAS

Cache + T4 w/SSL over network

WXS

1.

2.

4.

3.

1. WAS z/OS using optimized mem-to-mem JDBC Type-2 Driver

2. WAS z/Linux using JDBC Type-4 driver and SSL over optimized z network stack

3. WAS distributed (unix/linux/windows/etc) using JDBC Type-4 driver and SSL over traditional network stack

4. WAS distributed coupled with WebSphere eXtreme Scale cache

If the data is on z/OS, the batch application should run on z/OS.

Page 31: Batch Processing with WebSphere

31© 2008 IBM Corporation

Data Gridnear-cache

GEE

PJM

CPU

DG Server

CPU

DG Server

CPU

System p

Database

CPU CPU

Data Gridnear-cache

GEE

CPU CPU

CPU

Data Gridnear-cache

GEE

CPU CPU

eXtreme Transaction Processing with Compute Grid

Records A-I Records J-R Records S-Z

Records A-M Records N-Z

Large Grid Job

A-IJ-R

S-Z

WS - XS

Page 32: Batch Processing with WebSphere

32© 2008 IBM Corporation

eXtreme Transaction Processingcoupling DB2 data partitioning and parallel processing

GEE GEE GEE

Controller

Servant Servant Servant

GEE GEE GEE

Controller

Servant Servant Servant

WSXD - CG WSXD - CG

System z

Records A-M Records N-Z

A-D E-I J-M N-Q R-T W-Z

DB2 Data Sharing Partition

DB2 Data Sharing Partition

Records A-M Records N-Z

PJM

Large Grid Job

Page 33: Batch Processing with WebSphere

33© 2008 IBM Corporation

Data Gridnear-cache

GEE

LPAR

Job Scheduler

CPU

LPAR

DG Server

CPU

LPAR

DG Server

CPU

LPAR

System p

Database

CPU CPU

Data Gridnear-cache

GEE

LPAR

CPU CPU

CPU

Data Gridnear-cache

GEE

LPAR

CPU CPU

On-Demand Scalabilitywith WebSphere Virtual Enterprise

ApplicationPlacement Controller

CPU

LPAR

CPU

WS - VE

Page 34: Batch Processing with WebSphere

34© 2008 IBM Corporation

On-Demand Scalabilitywith WebSphere z/OS

GEE

Job Scheduler

GEE GEE

Controller

Servant Servant Servant

GEE GEE GEE

Controller

Servant Servant Servant

WS – XD CG

DB2 on z/OS

System z

zWLM zWLM

WS – XD CG

Page 35: Batch Processing with WebSphere

35© 2008 IBM Corporation

JobScheduler

On-DemandRouter

Parallel JobManager

Parallel JobManager

JobScheduler

1

2

3

5

Bringing it all togetherbatch using CG, HPC and XTP on z/OS

WS - VE

WSXD - CG

DB2 Data Sharing Partition

DB2 Data Sharing Partition

CR

SR SR SR

Grid Endpoint

CR

SR SR

Grid Endpoint

CR

SR SR

Grid Endpoint

SR SR4

Page 36: Batch Processing with WebSphere

36© 2008 IBM Corporation

Wall St. Bank High Performance, Highly-Parallel Batch Jobs with XD Compute Grid and eXtreme Scale on Distributed Platforms

DatabaseObject Grid

Chunk Execution Endpoint (s)

Init (Stream Input from File )

Validate/Entitle

Output Results

Long Running

Scheduler

Select File / Chunker /

Status

File on

Shared Store

Major Wall St. Bank uses the Parallel Job Manager for highly parallel XD Compute Grid jobs with eXtreme Scale for high-performance data access to achieve a cutting edge grid platform

Applying the Pattern at the bank

Page 37: Batch Processing with WebSphere

37© 2008 IBM Corporation

Conclusions

Page 38: Batch Processing with WebSphere

38© 2008 IBM Corporation

Why Maverick Batch is BAD…

• Customers are not in the business of building/owning/maintaining infrastructure code

– Developers love writing infrastructure code

– IT Managers avoid owning and maintaining infrastructure code

– IT Executives hate paying for code that doesn’t support the core business

• Learn from history… … “Maverick” OLTP in the mid-1990’s… WebSphere emerged to stamp out “Maverick” OLTP… OLTP has evolved…… It’s time for Compute Grid to stamp out “Maverick” Batch

Page 39: Batch Processing with WebSphere

39© 2008 IBM Corporation

Business Benefit… Cut IT development, operations, and maintenance costs by pursuing the “Unified Batch Architecture” strategy with Compute Grid

Page 40: Batch Processing with WebSphere

40© 2008 IBM Corporation

The Batch Vision

- Portable Batch applications across platforms and J2EE vendors

- Location of the data dictates the placement of the batch application

- Centrally managed by your enterprise scheduler

- Integrating with existing: Disaster Recovery, Auditing, Logging, Archiving

Enterprise Scheduler

Existing Business Processes

Common Batch Application Architecture and Runtime

App 1 App 2 App 3 App 4 …. App N

WAS DistrWAS CEJEE Server WAS z/OS

DB2 z/OSDB2 UDBWXSNon-DB2

Page 41: Batch Processing with WebSphere

41© 2008 IBM Corporation

WebSphere XD Compute Grid Summary• IBM WebSphere XD Compute Grid delivers a complete batch platform

– End-to-end Application Development tools– Application Container with Batch QoS (checkpoint/restart/etc)– Features for Parallel Processing, Job Management, Disaster Recovery, High Availability– Scalable, secure runtime infrastructure that integrates with WebSphere Virtual Enterprise and WLM on z/OS– Designed to integrate with existing batch assets (Tivoli Workload Scheduler, etc)– Supports all platforms that run WebSphere, including z/OS.– Experienced Services and Technical Sales resources available to bring the customer to production

• Is ready for “prime time”. Several customers in production on Distributed and z/OS today 1.Swiss Reinsurance, Public Reference, Production 4/2008 on z/OS2.German Auto Insurer, Production 7/2008 on Distributed3.Turkish Bank, Production on Distributed4.Japanese Bank, Production on Distributed5.Danish Bank, Pre-production on z/OS6.Wall Street Bank (two different projects), Pre-production on Distributed7.South African Bank, Pre-production on Distributed8.Danish business partner selling a core-banking solution built on Compute Grid.– > 20 customers currently evaluating the product (PoC, PoT)–Numerous other customers in pre-production

•Vibrant Customer Community–Customer conference held in Zurich in September, 2008. 6 customers and > 50 people attended–User group established for sharing best practices and collecting product requirements–Over 300,000 hits in the Compute Grid developers forum since January 22nd, 2008. (5k reads per week)

Page 42: Batch Processing with WebSphere

42© 2008 IBM Corporation

References• WebSphere Extended Deployment Compute Grid ideal for handling

mission-critical batch workloadshttp://www.ibm.com/developerworks/websphere/techjournal/0804_antani/0804_antani.html

• CCR2 article on SwissRe and Compute Grid

http://www-01.ibm.com/software/tivoli/features/ccr2/ccr2-2008-12/swissre-websphere-compute-grid-zos.html

• WebCasts and Podcasts on WebSphere XD Compute Gridhttp://snehalantani.googlepages.com/recordedinterviews

• Java Batch Programming with XD Compute Gridhttp://www.ibm.com/developerworks/websphere/techjournal/0801_vignola/0801_vignola.html

• WebSphere Compute Grid Frequently Asked Questionshttp://www-128.ibm.com/developerworks/forums/thread.jspa?threadID=228441&tstart=0

• Development Tooling Summary for XD Compute Grid http://www.ibm.com/developerworks/forums/thread.jspa?threadID=190624

• Compute Grid Discussion forumhttp://www.ibm.com/developerworks/forums/forum.jspa?forumID=1240

• Compute Grid Trial Downloadhttp://www.ibm.com/developerworks/downloads/ws/wscg/learn.html?S_TACT=105AGX10&S_CMP=ART

• Compute Grid Wiki (product documentation) http://www.ibm.com/developerworks/wikis/display/xdcomputegrid/Home?S_TACT=105AGX10&S_CMP=ART

Page 43: Batch Processing with WebSphere

43© 2008 IBM Corporation

Backup

Page 44: Batch Processing with WebSphere

44© 2008 IBM Corporation

Grow into Compute Grid

JZOS/J2SE

Batch Simulator

BDS Framework

Batch Application

BDS Framework

Batch Application

Compute Grid

-Start with JZOS or J2SE-based Java batch infrastructure

-Grow into Compute Grid-based Java batch infrastructure

-Leverage FREE Compute Grid development tools and frameworks to build Compute-Grid-Ready batch applications

Page 45: Batch Processing with WebSphere

45© 2008 IBM Corporation

Key Application and Operational Components to Manage

Application Developers

-Business logic

- Dependency injection data (Application Context in Spring for example)

Operations & Infrastructure

- Job Instance Configuration (xJCL, JCL, etc)

- Operation’s concerns for partitioning, checkpoint strategies, and data location

Key point: Job instance configuration should be independently managed from business logic wiring

Page 46: Batch Processing with WebSphere

46© 2008 IBM Corporation

8 am 8 pm 8 am

Online Batch

Current Batch Processing Technique

24x7 Batch and OLTP

Modern Batch Processing Technique

8 am

Batch

8 am

Batch

Batch

BatchBatch

Batch

Batch

Batch

Batch

BatchBatch

Online

Page 47: Batch Processing with WebSphere

47© 2008 IBM Corporation

MessageDrivenBean

msg queuejob definition

The “Maverick” Batch Environment

• Roll Your Own (RYO)• Seems easy – even tempting • Message-driven Beans or • CommonJ Work Objects or …

But …

• No job definition language• No batch programming model• No checkpoint/restart• No batch development tools • No operational commands• No OLTP/batch interleave • No logging • No job usage accounting• No monitoring• No job console• No enterprise scheduler integration• No visibility to WLM• No Workload throttling/pacing/piping• …

CommonJWork

job definition WebService

create

Page 48: Batch Processing with WebSphere

48© 2008 IBM Corporation

Operational Control in “Maverick” Batch

Process 10 mil. records

Queue

MDBAsync Batch“Job”

Application Server

How do you stop this batch “job” ?

ProblemTicket

Queue

SystemsAdministrator

IT Operations

Kill - 9

Abendaddressspace

Page 49: Batch Processing with WebSphere

49© 2008 IBM Corporation

ParallelJob

ManagerJob

Dispatcher

xJCLRepository

Job Template

GEE

Submit Parallel Job

1.

2.3.

Grid

1. Large, single job is submitted to the Job Dispatcher of XD Compute Grid

2. The Parallel Job Manager (PJM), with the option of using job partition templates stored in a repository, breaks the single batch job into many smaller partitions.

3. The PJM dispatches those chunks across the cluster of Grid Execution Environments (GEE)

4. The cluster of GEE’s execute the parallel jobs, applying qualities of service like checkpointing, job restart, transactional integrity, etc.

ParallelJobs

4.

Submitting a job to the Parallel Job Manager

Page 50: Batch Processing with WebSphere

50© 2008 IBM Corporation

XD Compute Grid Components

• Job Scheduler (JS)– The job entry point to XD Compute grid– Job life-cycle management (Submit, Stop, Cancel, etc) and monitoring– Dispatches workload to either the PJM or GEE– Hosts the Job Management Console (JMC)

• Parallel Job Manager (PJM)- – Breaks large batch jobs into smaller partitions for parallel execution– Provides job life-cycle management (Submit, Stop, Cancel, Restart) for the

single logical job and each of its partitions– Is *not* a required component in compute grid

• Grid Endpoints (GEE)– Executes the actual business logic of the batch job

Page 51: Batch Processing with WebSphere

51© 2008 IBM Corporation

Solution: Integrated Operational Control

-Provide an operational infrastructure for starting/stopping/canceling/restarting/etc batch jobs.

- Integrate that operational infrastructure with existing enterprise schedulers such as Tivoli Workload Scheduler

- Provide log management and integration with archiving and auditing systems

- Provide resource usage monitoring

- Integrate with existing security and disaster recovery procedures

Page 52: Batch Processing with WebSphere

52© 2008 IBM Corporation

WebSphere XD Compute GridBDS Framework Overview

• BDS Framework implements XD batch programming model for common use-cases: – Accessing MVS Datasets, Databases, files, JDBC Batching– Provides all of the restart logic specific to XD Batch programming model

• Customer’s focus on business logic by implementing light-weight pattern interfaces; doesn’t need to learn or understand the details of the XD Batch programming model

• Enables XD Batch experts to implement best-practices patterns under the covers

• XD BDS Framework owned and maintained by IBM; will be reused across customer implementations to provide stable integration point for business logic.

Page 53: Batch Processing with WebSphere

53© 2008 IBM Corporation

Batch Processing with WebSphere XD Compute Grid

• Compute Grid design has been influenced by a number of domains• Most important: Customer collaborations and partnerships

– Continuous cycle of Discovery and Validation– Discover new features by working directly with our clients– Validate ideas, features, and strategy directly with our clients

Page 54: Batch Processing with WebSphere

54© 2008 IBM Corporation

WebSphere Compute Grid- Quick Summary

- Provide container-managed services such as checkpoint strategies, restart capabilities, and threshold policies that govern the execution of batch jobs.

- Provides a parallel processing infrastructure for partitioning, dispatching, managing and monitoring parallel batch jobs.

- Enables the standardization of batch processing across the enterprise; stamping out homegrown, maverick batch infrastructures and integrating the control of the batch infrastructure with existing enterprise schedulers, disaster recovery processes, archiving, and auditing systems.

- Delivers a workload-managed batch processing platform, enabling 24x7 combined batch and OLTP capabilities.

- Plain-old-Java-Object (POJO)-based application development with end-to-end development tooling, libraries, and patterns for sharing business services across OLTP and batch execution paradigms.

Page 55: Batch Processing with WebSphere

55© 2008 IBM Corporation

Competitive Differentiation• Spring Batch

– Only delivers an application container (no runtime!)– Spring Batch applications can not be workload-managed on z/OS– Competes with the Batch Data Stream (BDS) Framework, which is part of Compute Grid’s FREE application

development tooling package.– Lacks operational controls like start/stop/monitor/cancel/etc– No parallel processing infrastructure

• Datasynapse, Gigaspaces, Gridgain:– No batch-oriented container services like checkpoint/restart– Does not support z/OS

• Java Batch System (JBS) and related technologies (Condor, Torque, etc)– No batch-oriented container services like checkpoint/restart– Not intended for concurrent Batch and OLTP executions– Does not support z/OS

• Note: If the data is on z/OS, the batch application should run on z/OS

Page 56: Batch Processing with WebSphere

56© 2008 IBM Corporation

Shared Service Example - “Data Injection” Pattern

agnostic to source and destination of the data

Page 57: Batch Processing with WebSphere

57© 2008 IBM Corporation

OLTP Wrapper to the Shared ServiceData is injected into the shared service

Page 58: Batch Processing with WebSphere

58© 2008 IBM Corporation

SwissRe Application Architecture for Shared OLTP and Batch Services

OLTP

EJB

ExposedServices

ExposedServices

CG BatchApplication

Batch

PrivateServices

Data Access Layer (DAL)

kernel

Transaction, Security Demarcation

DB

Hibernate JDBC SQLJ

-J2EE and XD manage Security, transactions

- Spring-based application Configuration

- Custom authorization service within kernel for business-level rules

- Initial data access using Hibernate. Investigating JDBC, SQLJ, etc

Page 59: Batch Processing with WebSphere

59© 2008 IBM Corporation

Execution Agnostic Application “Kernel”

Page 60: Batch Processing with WebSphere

60© 2008 IBM Corporation

Compute Grid (Batch) Wrapper to the Shared Service

Page 61: Batch Processing with WebSphere

61© 2008 IBM Corporation

OLTP Wrapper to the Shared Service

Page 62: Batch Processing with WebSphere

62© 2008 IBM Corporation

Development Tooling Story for WebSphere XD Compute Grid

• 1. The Batch Datastream (BDS) Framework. This is a development toolkit that implements the Compute Grid interfaces for accessing common input and output sources such as files, databases, and so on. The following post goes into more details.

2. a Pojo-based application development model. As of XD 6.1, you only have to write Pojo-based business logic. Tooling executed during the deployment process will generate the necessary Compute Grid artifacts to run your application. The following developerworks article goes into more details: Intro to Batch Programming with WebSphere XD Compute Grid

3. The Batch Simulator. A light-weight, non-J2EE batch runtime that exercises the Compute Grid programming model. This runs in any standard Java development environment like Eclipse, and facilitates simpler application development since you're only dealing with Pojo's and no middleware runtime. The Batch Simulator is really for developing and testing your business logic. Once your business logic is sound, you would execute function tests, system tests, and then deploy to production. You can download this from batch simulator download

4. The Batch Packager. This utility generates the necessary artifacts for deploying your Pojo-based business logic into the Compute Grid runtime. The packager is a script that can be integrated into the deployment process of your application. It can also be run independently of the WebSphere runtime, so you don't need any heavy-weight installs in your development environment.

5. The Unit-test environment (UTE). The UTE package is described in the following post. The UTE runs your batch application in a single WebSphere server that has the Compute Grid runtime installed. It's important to function-test your applications in the UTE to ensure that it behaves as expected when transactions are applied.

Page 63: Batch Processing with WebSphere

63© 2008 IBM Corporation

Application Design Considerations

• Strategy Pattern for well structured batch applications– Use the BDS Framework!!!– Think of batch jobs as a record-oriented Input-Process-Output task– Strategy Pattern allows flexible Input, Process, and Output objects

(think “toolbox” of input BDS, process steps, and output BDS)

• Designing “services” shared across OLTP and Batch– Cross-cutting Functions (Logging, Auditing, Authorization, etc)– Data-injection approach, not Data-acquisition approach– POJO-based “services”, not heavy-weight services– Be aware of transaction scope for OLTP and Batch.

TxRequiresNew in OLTP + TXRequires in Batch => Deadlock Possible

• Designing the Data Access Layer (DAL)– DAO Factory pattern to ensure options down the road– Context-based DAL for OLTP & Batch in same JVM– Configuration-based DAL for OLTP & Batch in different JVM’s

Page 64: Batch Processing with WebSphere

64© 2008 IBM Corporation

SwissRe Batch and Online Infrastructure

TWS

JES

JCL

WSGridJCL

CG z/OSGrid Endpoint

CG z/OSGrid Endpoint

CG JobScheduler

- Maintains close proximity to the data for performance

- Common:

-Security

-Archiving

-Auditing

-Disaster recovery

WAS z/OSOLTP

JESInitiators

IHS

DB2 z/OS

OLTP

Batch

System Z with z/OS

Page 65: Batch Processing with WebSphere

65© 2008 IBM Corporation

wsgrid JobScheduler

GridEndpoint

jzos

db21 23Job

SchedulerGrid

EndpointGrid

EndpointGrid

Endpoint

4 5

End-to-end:

6. Monitoring

7. Security

8. Workload Management

9. Disaster Recovery

10. Life-cycle (application, xJCL, etc)

1. WSGrid to Job Scheduler

2. Job Scheduler to Grid Endpoint

3. Grid Endpoint to resources (DB2, JZOS)

4. Job Scheduler High Availability

5. Grid Endpoint High Availability

Page 66: Batch Processing with WebSphere

66© 2008 IBM Corporation

End-to-end Failure Scenarios

1. GEE servant fails (z/OS)A:

- Job status is restartable.- wsgrid ends with non-zero return code- rc should be 0, 4, 8, 12, 16

B: - WLM starts a new servant- servant failure is transparent to WSGrid- Job restarted transparently on available servant.

2. GEE CR fails (z/OS, but synonymous to Server failure on Distributed)- Job is in restartable state- WSGrid receives non-zero return code.

Page 67: Batch Processing with WebSphere

67© 2008 IBM Corporation

End-to-end Failure Scenarios

3. Job Scheduler SR fails (z/OS)A: Jobs in execution (dispatched from this Scheduler)

- WSGrid continues running- Job continues to run.- Failure is scheduling tier is transparent to job execution.

B: New jobs being scheduled - New SR starts, business as usual. - SR fails to start, job should be available for other scheduler to manage. - if any Job Scheduler SR is available in the system, the job must be scheduled! Failure should

be transparent to the job submitter.

4. Job Scheduler CR fails (z/OS, but synonymous to Server failure on Distributed)

- WSGrid and Job continue to run. Any failure in scheduler tier is transparent to job and user. (goal) - Interim: WSGrid fails with non-zero RC; job managed by this JS should be canceled

Page 68: Batch Processing with WebSphere

68© 2008 IBM Corporation

End-to-end Failover Scenarios

5. Scheduler Messaging Engine (Adjunct) fails (z/OS) - Jobs managed by this JS are canceled. WSGrid fails with non-zero RC. - Note: use of messaging engine (SIB generally) is just an interim solution. Shared queues, etc needed.

6. WSGrid is terminated- Job is canceled

7. Quiesce the LPAR/Node (for rolling IPL and system maintenance)1. No new work should be scheduled to JS on that node. Work should be routed to other JS2. no new work should be submitted to GEE on that node. Work should be routed to other GEE's3. After X time interval (3.5 hours in SwissRe's case), jobs running in that GEE should be stopped.4. After Y time interval (4 hours in SwissRe's case), where x < y, jobs still running in the GEE should be canceled. 5. WSGrid gets non-zero RC for steps 3 and 4.

Page 69: Batch Processing with WebSphere

© 2008 IBM Corporation

Execution Environment – z/OS WLM Integration

• WAS uses WLM to control the number of Servant Regions• Control Regions are MVS started task• Servant Regions are started automatically by WLM an a as-needed basis• WLM queues the user work from the Controller to the Servant region according to service

class• WLM queuing places user requests in a servant based on same service class• WLM ensures that all user requests in a given servant has been assigned to the same service

class• A Servant running no work can run work assigned to any service class• WLM and WAS Worker thread : WLM dispatch work as long as it has worker threads• Behavior of WAS Worker Threads (ORB workload profile)

– ISOLATE : number of threads is 1. Servants are restricted to a single application thread– IOBOUND : number of threads is 3 * Number of CPUs)– CPUBOUND : number of threads is the Number of CPUs)– LONGWAIT : number of threads is 40

• XD service policies contain one or more transaction class definition• XD service policies create the goal, while the job transaction class connects the job to the

goal• XD service policy transaction class is propagated to the Compute Grid Execution

Environment• Transaction class is assigned to a job during by the Scheduler during dispatch/classification

phase• When a job dispatch reaches GEE the Tclass is extracted from the HTTP request• Tclass is mapped to WLM service class. An enclave is created.• XD Service policies are not automatically defined in the z/OS WLM.

Page 70: Batch Processing with WebSphere

© 2008 IBM Corporation

Execution Environment – z/OS Security Considerations

• Compute Grid runs jobs under server credential by default• In order to run jobs under user credential:

– WAS security must be enabled– Application security must be enabled– WebSphere variable RUN_JOBS_UNDER_USER_CREDENTIAL must be set

to “true”– Enable z/OS thread identity synchronization– Enable RunAs thread identity

Page 71: Batch Processing with WebSphere

© 2008 IBM Corporation

• SMF accounting records for J2EE batch jobs

– SMF 120 (J2EE) records tailored to jobs

– Record includes: job id, user, accounting string, CPU time

• Dynamic Servants for J2EE batch job dispatch

– XD v6.1.0.0 uses pre-started servants (min=max, round-robin dispatch)

– XD v6.1.0.1 New support will exploit WLM to start new servants to execute J2EE batch jobs on demand

• Service policy classification and delegation

– Leverages XD job classification to select z/OS service class by propagating transaction class from Job Entry Server to z/OS app server for job registration with WLM

Compute Grid – z/OS Integration Summary

Page 72: Batch Processing with WebSphere

© 2008 IBM Corporation

Compute Grid – Job Management Console

• Web Interface to Scheduler Hosted in same server (cluster) that hosts scheduler function Replaces job management function formerly found in admin

console

• Essential job management functions job submission job operations

cancel, stop suspend, resume restart, purge

job repository management save, delete job definitions

job schedule management create, delete job schedules

• Basic Security Model userid/password login lrsubmitter, lrAdmin roles

Page 73: Batch Processing with WebSphere

© 2008 IBM Corporation

Compute Grid – Jog Management Console

Page 74: Batch Processing with WebSphere

74© 2008 IBM Corporation

Infrastructure Design Considerations

• High Availability practices– Job Scheduler can be made highly available (as of 6.1)– Cluster GEE’s

• Disaster Recovery practices– Today, Active/Inactive approach– Tomorrow, Active/Active approach

• Security– Job Submitter and Compute Grid Admin roles– Options for using Job Submitter identity or Server’s identity

(Performance degradation today!)

• Connecting Compute Grid to the Enterprise Scheduler– JMS Client connector bridges enterprise scheduler to Job Scheduler– JMS best practices for securing, tuning, etc apply

Page 75: Batch Processing with WebSphere

75© 2008 IBM Corporation

High Availability

Page 76: Batch Processing with WebSphere

76© 2008 IBM Corporation

Topology Questions…

• First, is the Parallel Job Manager (PJM) needed, will you run highly-parallel jobs?

• What are the high availability requirements for the JS, PJM, and GEE?– Five 9’s? Continuous?

• What are the scalability requirements for the JS, PJM, GEE?– Workloads are predictable and system resources are static?– Workloads can fluctuate and system resources are needed on-demand?

• What are the performance requirements for the batch jobs themselves? – They must complete within some constrained time window?

• What will the workload be on the system?– How many concurrent jobs? How many highly-parallel jobs? Submission rate of jobs?

Page 77: Batch Processing with WebSphere

77© 2008 IBM Corporation

Topology Considerations…

• If the Job Scheduler (JS) does not have system resources available when under load, managing jobs, monitoring jobs, and using the JMC will be impacted.

• If the PJM does not have system resources available when under load, managing highly parallel jobs and monitoring the job partitions will be impacted.

• If the GEE does not have system resources available when under load, the execution time of the business logic will be impacted.

• The most available and scalable production environment will have:– Redundant JS. JS clustered across two datacenters.

– Redundant PJM. PJM clustered across two datacenters.

– n GEE’s, where n is f(workload goals). Clustered across two datacenters

Page 78: Batch Processing with WebSphere

78© 2008 IBM Corporation

Cost Considerations…

• GEE will most likely require the most CPU resources. The total number of CPU’s needed is dependent on:

• the workload goals

• max number of concurrent jobs in the system.

• PJM will require fewer CPU’s than the GEE. The total number of CPU’s needed is dependent on:

• Rate at which highly-parallel jobs are submitted

• Max number of concurrent parallel partitions running in the system.

• Job Scheduler will require fewer CPU resources than the GEE, and perhaps the PJM too. The total number of CPU’s needed is dependent on:

• Rate at which jobs will be submitted

• Max number of concurrent jobs in the system

Page 79: Batch Processing with WebSphere

79© 2008 IBM Corporation

Example Production Topology- Highly Available/Scalable Compute Grid

GEE

JVM

LPAR

JS

JVM

CPU

LPAR

Frame 1

CPU CPU

PJM

LPAR

CPU CPU

GEE

JVM

LPAR

JS

CPU

LPAR

Frame 2

CPU CPU

PJM

LPAR

CPU CPU

DB

Load Balancer

JVM

JVMJVM

Page 80: Batch Processing with WebSphere

80© 2008 IBM Corporation

GEE

JVM

LPAR

Frame 1

CPU CPU

PJM

JVM

LPAR

CPU CPU

GEE

JVM

LPAR

Frame 2

CPU CPUDB

Load Balancer

JSPJM

JVM

LPAR

CPU CPU

JS

Pro: Faster interaction between JS and PJM due to co-location and ejb-local-home optimizations

Con: Possibility of starving JS or PJM due to workload fluctuations

Example Production Topology- Co-locate the Job Scheduler and PJM

Page 81: Batch Processing with WebSphere

81© 2008 IBM Corporation

Frame 1 Frame 2

DB

Load Balancer

PJM

JVM

LPAR

JS

Con: Possibility of starving JS, PJM, and GEE due to workload fluctuations

Con: Not scalable

Example Production Topology- Co-locate the Job Scheduler, PJM, and GEE

GEE

CPU CPU

PJM

JVM

LPAR

JS

GEE

CPU CPU

Page 82: Batch Processing with WebSphere

82© 2008 IBM Corporation

Data Gridnear-cache

GEE

LPAR

Job Scheduler

CPU

LPAR

DG Server

CPU

LPAR

DG Server

CPU

LPAR

System p

Database

CPU CPU

Data Gridnear-cache

GEE

LPAR

CPU CPU

CPU

Data Gridnear-cache

GEE

LPAR

CPU CPU

Proximity to the Dataco-locate business logic and data with caching

WSXD - CG

Page 83: Batch Processing with WebSphere

83© 2008 IBM Corporation

Data Gridnear-cache

GEE

PJM

CPU

DG Server

CPU

DG Server

CPU

System p

Database

CPU CPU

Data Gridnear-cache

GEE

CPU CPU

CPU

Data Gridnear-cache

GEE

CPU CPU

Divide and Conquerhighly parallel Grid jobs

Records A-I Records J-R Records S-Z

Records A-M Records N-Z

Large Grid Job

WS - XS

Page 84: Batch Processing with WebSphere

84© 2008 IBM Corporation

Divide and Conquerhighly parallel grid jobs

GEE GEE GEE

Controller

Servant Servant Servant

GEE GEE GEE

Controller

Servant Servant Servant

WSXD - CG WSXD - CG

System z

DB2

PJM

Large Grid Job

Page 85: Batch Processing with WebSphere

85© 2008 IBM Corporation

Data Gridnear-cache

GEE

Job Scheduler

CPU

DG Server

CPU

DG Server

CPU

Database

CPU CPU

Data Gridnear-cache

GEE

CPU CPU

CPU

Data Gridnear-cache

GEE

CPU CPU

Records A-I Records J-R Records S-Z

Records A-M Records N-Z

Data-aware Routingpartition data with intelligent workload routing

System p

WS - XS

Page 86: Batch Processing with WebSphere

86© 2008 IBM Corporation

Data-aware Routingpartition data with intelligent workload routing

GEE

Job Scheduler

GEE GEE

Controller

Servant Servant Servant

GEE GEE GEE

Controller

Servant Servant Servant

WSXD - CG WSXD - CG

System z

Records A-M Records N-Z

A-D E-I J-M N-Q R-T W-Z

DB2 Data Sharing Partition

DB2 Data Sharing Partition

Records A-M Records N-Z

Page 87: Batch Processing with WebSphere

87© 2008 IBM Corporation

Enterprise Scheduler Integration

Tivoli Workload Scheduler

JES

JCL

WSGrid

In Queue

Out Queue

JobScheduler

xJCL

msg

GEE

Job

GEE

Job

Dynamic Scheduling

- enterprise scheduler for operational control

- Jobs and commands are submitted from WSGRID

- Jobs can dynamically schedule ES via its EJB interface

1.

2. 3. 4.5.

6.

7.

Page 88: Batch Processing with WebSphere

88© 2008 IBM Corporation

High Availability – Summary & Key Considerations

• Clustered Job Scheduler– Configure Job Schedulers on clusters

– Multiple active Job Schedulers (since XD 6.1)

– Jobs can be managed by any scheduler in your cluster

• Clustered Endpoints– Batch applications hosted on clusters

• Network Database

• Shared File System

Page 89: Batch Processing with WebSphere

89© 2008 IBM Corporation

Disaster Recovery

Page 90: Batch Processing with WebSphere

90© 2008 IBM Corporation

Disaster Recovery

• DR Topology– Build separate cells for geographically dispersed sites

– Limit Compute Grid scheduling domains to endpoints within a cell

– Use Active/Inactive DR domains

• Jobs cannot be processed on primary and back domains simultaneously

– Active/Active DR Topology is through a pair of Active/Inactive DR domains

• Host backup (inactive) domain on a remote site

• DR Activation Process– Use CG provided DR scripts to prepare the inactive domain for takeover

– Complete takeover by activating the inactive domain

Page 91: Batch Processing with WebSphere

91© 2008 IBM Corporation

Active/Active Multi-site Disaster Recovery Topology

LRS

PJM PJM

GEE GEE

CG Domain A1

LRS

PJM PJM

GEE GEE

CG Domain A2

LRS

PJM PJM

GEE GEE

CG Domain B2

LRS

PJM PJM

GEE GEE

CG Domain B1

Database D1

failover failoverSite1 Site2

Database D2

Page 92: Batch Processing with WebSphere

92© 2008 IBM Corporation

What’s next for Compute Grid?1. ‘ilities: Continue to Harden Compute Grid.

• end-to-end HA, Scalability, Reliability

• Further improve consumability: simplify xJCL, more BDSFW Patterns

• Public and shared Infrastructure Verification Tests (IVT)

2. 24x7 Batch: Enterprise Workload Management.

• Job Pacing, Job Throttling, Dynamic Checkpoint Intervals

3. Operational Control and Integration: Collaborations across IBM

• High-performance WSGrid, TWS Integration

4. High Performance

• Parallel Job Manager improvements, Daemon Jobs for Real-time Processing, Data pre-fetching BDSFW patterns

5. Ubiquity

• JEE Vendor Portability (Portable Batch Container)

• Multi-programming model support (Spring Batch, JZOS)

Page 93: Batch Processing with WebSphere

93© 2008 IBM Corporation

© IBM Corporation 2008. All Rights Reserved.

The workshops, sessions and materials have been prepared by IBM or the session speakers and reflect their own views. They are provided for informational purposes only, and are neither intended to, nor shall have the effect of being, legal or other guidance or advice to any participant. While efforts were made to verify the completeness and accuracy of the information contained in this presentation, it is provided AS IS without

warranty of any kind, express or implied. IBM shall not be responsible for any damages arising out of the use of, or otherwise related to, this presentation or any other materials. Nothing contained in this presentation is intended to, nor shall have the effect of, creating any warranties or representations from IBM or its suppliers or licensors, or altering the terms and conditions of the applicable license agreement governing the use of IBM software.

References in this presentation to IBM products, programs, or services do not imply that they will be available in all countries in which IBM operates. Product release dates and/or capabilities referenced in this presentation may change at any time at IBM’s sole discretion based on market opportunities or other factors, and are not intended to be a commitment to future product or feature availability in any way. Nothing contained in these materials is intended to, nor shall have the effect of, stating or implying that any activities undertaken by you will result in any specific sales, revenue growth or other results. Performance is based on measurements and projections using standard IBM benchmarks in a controlled environment. The actual throughput or performance that any user will experience will vary depending upon many factors, including considerations such as the amount of

multiprogramming in the user's job stream, the I/O configuration, the storage configuration, and the workload processed. Therefore, no assurance can be given that an individual user will achieve results similar to those stated here.

All customer examples described are presented as illustrations of how those customers have used IBM products and the results they may have achieved. Actual environmental costs and performance characteristics may vary by customer.

The following are trademarks of the International Business Machines Corporation in the United States and/or other countries. For a complete list of IBM trademarks, see www.ibm.com/legal/copytrade.shtmlAIX, CICS, CICSPlex, DB2, DB2 Universal Database, i5/OS, IBM, the IBM logo, IMS, iSeries, Lotus, MQSeries, OMEGAMON, OS/390, Parallel Sysplex, pureXML, Rational, RACF, Redbooks, Sametime, Smart SOA, System i, System i5, System z , Tivoli, WebSphere, zSeries and z/OS. Java and all Java-based trademarks are trademarks of Sun Microsystems, Inc. in the United States, other countries, or both.Microsoft and Windows are trademarks of Microsoft Corporation in the United States, other countries, or both.Intel and Pentium are trademarks or registered trademarks of Intel Corporation or its subsidiaries in the United States and other countries.UNIX is a registered trademark of The Open Group in the United States and other countries.Linux is a registered trademark of Linus Torvalds in the United States, other countries, or both.

Other company, product, or service names may be trademarks or service marks of others.